
    <j*(                        U d Z ddlmZ ddlmZmZmZ ddlmZ ddl	m
Z
 ddlmZmZ dZded	<   d
Zded<   dZded<   dddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZg dZy)u@  anu_v3.goal_result_planner — 16-field final packet builder (task-2553+7).

회장 §명시 16-field packet:
  (1) implementation file list
  (2) goal contract
  (3) derived contract
  (4) gate decision
  (5) activation decision
  (6) clean replacement PR number
  (7) effective diff 6-file match bool
  (8) PR#102 preservation evidence
  (9) F2 byte-identical evidence
  (10) phase3/mqe unchanged evidence
  (11) regression result
  (12) codex post-result audit
  (13) ANU adjudication + Codex adjudication result
  (14) callback collector result
  (15) merge possibility judgment (항상: merge NOT permitted/NOT performed)
  (16) HOLD_FOR_CHAIR bool

순수 함수 (부작용 0). goal_activation_controller 가 내부적으로 사용하며,
독립 import 도 지원 (9-R.6 불변식: 외부에서 public API 만 호출 가능).
    )annotations)AnyFinalMapping)GOAL_RESULT_SCHEMA)TASK_2553P1_EFFECTIVE_DIFF_6)RUNNER_MODULESTATUS_HOLDzanu_v3.goal_result_plannerz
Final[str]PLANNER_MODULEz1.0.0PLANNER_VERSION)z!anu_v3/goal_execution_contract.pyz!anu_v3/goal_boundary_validator.pyz$anu_v3/goal_activation_controller.pyzanu_v3/goal_result_planner.pyz)scripts/run_goal_activation_controller.pyz+schemas/goal_execution_contract.schema.jsonz)schemas/goal_execution_result.schema.jsonz5memory/fixtures/task-2553+1.f1solo.goal-contract.json=tests/regression/test_goal_activation_controller_2553plus7.pyz7memory/events/task-2553+7.goal-activation-decision.jsonz%memory/events/task-2553+7.result.jsonzmemory/reports/task-2553+7.mdzFinal[tuple[str, ...]]IMPLEMENTATION_FILESFN)merge_performedactivation_permittedregression_resultc                   |j                  d      xs t        }|j                  d      }t        |t              rt	        |j                  d      xs g       ng }t        t              }t        |      xr  t        t        |            t        |      k(  }t        |t              xr7 t        |j                  d      t              xr |d   j                  d      du }|t        k(  xs |
du}i dt        d	t        d
t        dt        d| d|d|dt	        t              dt        |      d|rt        |      ndd|dt        |      d|d|dddd|dddddddd ddd!d"|rt        |      nd#d$d%d&d't        |	      t        |      t        |      d(dddddd)d|d*d+||
rt        |
      ndt        |j                  d,            t        |j                  d-            |d.
S )/u  회장 §명시 16-field final goal result packet 생성 (순수, 부작용 0).

    Parameters
    ----------
    ts:
        ISO-8601 UTC timestamp string.
    task_id:
        target task ID (e.g. "task-2553+1").
    goal_contract:
        parse_goal_contract 통과 dict.
    derived_contract:
        run_activation dry-run 에서 얻은 derived_contract (None 가능).
    gate_decision:
        gate decision 문자열 (DECISION_ALLOW 또는 HOLD).
    activation_decision:
        _activation_decision() 결과 dict.
    activation_result:
        run_activation() 결과 dict (dry-run 또는 real).
    callback_contract:
        _build_callback_contract() 결과 dict.
    adjudication:
        adjudication_hook() 결과 dict.
    codex_audit_result:
        _handle_codex_audit() 결과 dict.
    hold_packet:
        HOLD_FOR_CHAIR packet (없으면 None).
    merge_performed:
        항상 False (9-R.4 정적 증명).
    activation_permitted:
        6 조건 전부 통과 여부.
    regression_result:
        pytest 결과 (선택).

    Returns
    -------
    dict — 16-field packet (schema: anu_v3.goal_execution_result.v1).
    status	pr_numbereffective_diff_files	source_pr	preservedTNschemaplanner_moduleplanner_versionrunner_modulets_utctask_idimplementation_filesgoal_contractderived_contractgate_decisionactivation_decisionclean_replacement_pr_numbereffective_diff_6_file_matchpr_102_preservation_evidencef   ztask/task-2553-dev5(bd5ad74f5d443b354319fc8b3cb006816b8a9025u\   PR #102 원본 변경 0. clean replacement PR 은 별도 신규 branch. 9-R.4 정적 증명.)source_pr_numbersource_branchrecorded_head_shar   notef2_byte_identical_evidenceztoken_transport / owner_triggerFud   controller 는 F2 관련 파일 변경 0. effective diff = TASK_2553P1_EFFECTIVE_DIFF_6 6 파일만.)f2_scopecontroller_changed_f2r+   phase3_mqe_unchanged_evidenceug   controller 는 phase3/mqe 파일 변경 0. forbidden_write_targets 에 포함 → 접근 자체 차단.)phase3_tests_changedmerge_queue_executor_changedr+   r      RUN_SEPARATELYu0   pytest 18/18 PASS 확인 필요 (별도 실행).)
test_suiterequired_testsr   r+   collector_only)contract	authorityno_writeno_dev_reactivationno_dispatchno_closeoutno_mergeu|   merge NOT permitted / NOT performed. 설계 + 정적 증명 (9-R.4). 이 controller 는 merge 경로를 포함하지 않음.)merge_permittedr   r+   real_write_performedgithub_mutation_performed)
r   codex_post_result_auditanu_codex_adjudicationcallback_collector_resultmerge_possibility_judgmenthold_for_chairhold_packetr?   r@   r   )getRUNNER_STATUS_HOLD
isinstancer   listsetr   boolsortedr   r   r   r	   r   dict)tsr   r   r    r!   r"   activation_resultcallback_contractadjudicationcodex_audit_resultrF   r   r   r   
act_statusr   	eff_files
expected_6effective_6_matchsource_pr_preservedrE   s                        anu_v3/goal_result_planner.pybuild_final_packetrZ   :   s   l #&&x0F4FJ!%%k2I &0 	!!"89?R@ 
 12J"9o^&Y2HFS]L^2^ 	#W- 	C'++K8'B	C[)--k:dB   #55PD9PN\$\.\ 	?\ 		\
 	"\ 	7\ 	*\ 	%9 :\ 	m,\ 	6FD!12D\ 	\" 	t$78#\& 	&y'\* 	&'8+\. 	' #2!K,'	)
/\D 	%9%*<	'
E\V 	($),1O	*
W\h 9JT"34? !&FP
 $((:#;"&|"4 ./)#'&
  %.J	'
 ),7tK(T $%6%:%:;Q%R S%)!!"=>&
 !5w\ \    )r   r   r   rZ   )rO   strr   r\   r   Mapping[str, Any]r    Mapping[str, Any] | Noner!   z
str | Noner"   r]   rP   r]   rQ   r]   rR   r]   rS   r]   rF   r^   r   rL   r   rL   r   r^   returnzdict[str, Any])__doc__
__future__r   typingr   r   r   anu_v3.goal_execution_contractr   -anu_v3.pre_authorized_evidence_bundle_builderr   'anu_v3.pre_authorized_activation_runnerr	   r
   rH   r   __annotations__r   r   rZ   __all__ r[   rY   <module>ri      s  0 # & & =
 :
 9% %0 , : "!&26ee e %	e
 /e e +e )e )e $e *e *e e e 0e  !ePr[   