
    !j                    4   d Z ddlmZ ddlZddlZddlZddlmZ  ee      j                         j                  d   Z ee      ej                  vr"ej                  j                  d ee             ddlmZmZmZ d
dZdddZed	k(  r e e             y)u@  scripts/run_pre_authorized_contract_derivation.py — contract auto-derivation CLI (task-2553+5).

evidence bundle → pre_authorized_action_contract (9-R.2 matrix, fail-closed).

  python3 scripts/run_pre_authorized_contract_derivation.py       --evidence memory/fixtures/<task>.auto-derived-evidence-bundle.json       [--out memory/events/<task>.auto-derived-contract.json]

동작:
  - evidence bundle 로드 → anu_v3.pre_authorized_contract_deriver.derive
  - DERIVED → contract(_provenance stamp 포함) + derivation result JSON 기록
  - HOLD_FOR_CHAIR → hold_reasons 포함 result JSON 기록 (자동 진행 금지)
  - exit code: 0 = DERIVED / 2 = HOLD_FOR_CHAIR / 3 = 입력/IO 오류

부작용 = result JSON 1개 쓰기만. GitHub/credential/network/subprocess 0.
deriver 출력 = gate 입력 (one-way isolation).
    )annotationsN)Path   )STATUS_DERIVEDSTATUS_HOLDderivec                2    | r| nd}t         dz  dz  | dz  S )Nzunknown-taskmemoryeventsz.auto-derived-contract.json)
_WORKSPACE)task_idsafes     E/home/jay/workspace/scripts/run_pre_authorized_contract_derivation.py_default_outr   &   s(    7>D 8+6Q.RRR    c           
        t        j                  d      }|j                  ddd       |j                  dd d	       |j                  |       }	 t	        j
                  t        |j                        j                  d
            }t        |      }|j                  rt        |j                        n#t!        t#        |j%                  dd                  }	 |j&                  j)                  dd       |j+                  t	        j,                  |dd      dz   d
       |d   }t        d|j%                  d      d| d|j%                  d       d|        |t.        k(  ry|t0        k(  ryy# t        t        f$ r(}t        d| t        j                         Y d }~yd }~ww xY w# t        $ r(}t        d| t        j                         Y d }~yd }~ww xY w)Nu?   PRE_AUTHORIZED contract auto-derivation (evidence → contract))descriptionz
--evidenceTuP   evidence bundle JSON 경로 (schemas/pre_authorized_evidence_bundle.schema.json))requiredhelpz--outud   derivation result JSON 출력 경로 (미지정 시 memory/events/<task>.auto-derived-contract.json))defaultr   zutf-8)encodingz[deriver] INPUT_ERROR: )file   r    )parentsexist_okF   )ensure_asciiindent
z[deriver] OUT_WRITE_ERROR: statusz[deriver] task=z status=z hold_reasons=hold_reasonsz -> r   )argparseArgumentParseradd_argument
parse_argsjsonloadsr   evidence	read_textOSError
ValueErrorprintsysstderrr   outr   strgetparentmkdir
write_textdumpsr   r   )argvapnsbundleeresultout_pathr!   s           r   mainr>   +   s   		 	 U
B OO_  
 OOs  
 
t	BD-777IJ
 F^F RVVLVZZ	25N1O$P dT:JJvE!<tC 	 	
 HF	
&**Y/2(6( C

>234z	C
 ; Z  's+#**=  +A3/cjjAs1   8E2 A	F, 2F)F$$F),	G5GG__main__)r   r1   returnr   )N)r7   zlist[str] | Noner@   int)__doc__
__future__r   r#   r'   r.   pathlibr   __file__resolver   r   r1   pathinsert&anu_v3.pre_authorized_contract_deriverr   r   r   r   r>   __name__
SystemExit r   r   <module>rM      s   $ #   
 (^##%--a0
z?#(("HHOOAs:' S
/d z
TV
 r   