
    2xj                    &   d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlmZ  ee      j                         j                  Zedz  Zedz  Zedz  Zedz  Zed	z  Z ed
      Z ed      ZddZddZedk(  r e e             y)zEIndependent offline verifier for the sealed Task26 invite harness v2.    )annotationsN)Pathzinvite_harness_v2.pyzpermission-seal-v2.jsonzschema-v2.jsonzOPERATIONS-v2.mdzapproval-receipt.jsonz9/home/cube/projects/richard/hermes-agent/.venv/bin/pythonz`/home/cube/.hermes/profiles/dualcoachtest/data/profile-reset-archives/task26-live-reset-2e0894eac                d    t        j                  | j                               j                         S N)hashlibsha256
read_bytes	hexdigest)paths    R.omo/evidence/task26/task26-invite-harness-st_01a0056a-v2/independent_verify_v2.pyshar      s!    >>$//+,6688    c                    t        t        j                        dk(  rt        t        j                  d         nd } t	        j
                  t        j                               }t        t              |d   k(  t        t              |d   k(  t        t              |d   k(  t        t              |d   k(  t        j                  t        j                         j                        dk(  t!        d t        t        t        fD              t"        j$                  d	z  j'                         d
}t)        j*                  d      5 }t        |      }|dz  dz  }|j-                  dd       j/                  d       dz  j/                  d       dD ]6  }t1        j2                  t4        |z  ||z         ||z  j/                  d       8 t7        t9        fdj;                  d      D                    }g }dD ]  }	||	 dz  }
t=        j>                  tA        tB              dtA        t              |	dtA              dtA        t              dtA        |
      g
dddi tD        jF                  ddi       }|jI                  |jJ                         |jJ                  d!k(  xr) t	        j
                  |
j                               d"   d#k(  ||	 d$<    t7        t9        fd%j;                  d      D                    }||k(  |d&<   d d d        d't!        |jM                               rd#nd(||d&   rd!ndd!d)}t	        jN                  |dd*+      d,z   }| tE        jP                  | tD        jR                  tD        jT                  z  tD        jV                  z  tD        jX                  z  d      }tE        jZ                  |d-      5 }|j]                  |       d d d        nt_        |d./       |d"   d#k(  rd!S dS # 1 sw Y   xY w# 1 sw Y   !xY w)0N      harness_sha256schema_sha256operations_sha256approval_receipt_sha256i@  c              3  |   K   | ]4  }t        j                  |j                         j                        d k(   6 yw)  N)statS_IMODEst_mode).0r   s     r   	<genexpr>zmain.<locals>.<genexpr>&   s.     #z[ySWDLL1D1D$E$N[ys   :<z3task26-invite-harness-st_01a0056a/invite_harness.py)harness_hashschema_hashoperations_hashapproval_hashharness_modesealed_files_privatev1_preservedztask26-invite-v2-verify-)prefixprofilez6data/profile-reset-archives/task26-live-reset-2e0894eaTi  )parentsmodedata)zmanifest.jsonzreceipt.jsonr   c              3     K   | ]?  }|j                         s|j                        j                         t        |      f A y wr   is_filerelative_toas_posixr   r   itemr%   s     r   r   zmain.<locals>.<genexpr>3   sE       B\nTXrvr~r~  sAt//8AACSYO\n
   A/A*)zdry-runverifyz.jsonz-Bz	--profilez--permissionz	--receiptFPYTHONDONTWRITEBYTECODE1)textcapture_outputcheckenvr   statusPASS_passc              3     K   | ]?  }|j                         s|j                        j                         t        |      f A y wr   r*   r.   s     r   r   zmain.<locals>.<genexpr>?   sA       A[mSWquq}q}qd..w7@@BCIN[mr0   disposable_profile_unchangedz<task26-invite-harness-v2-independent-verification-receipt-v1FAIL)schemar9   checksdry_run_verify_exit_codesprofile_mutations-network_service_telegram_provider_git_actions),:)	sort_keys
separators
w )end)0lensysargvr   jsonloads
PERMISSION	read_textr   HARNESSSCHEMA
OPERATIONSAPPROVALr   r   r   allHEREparentexiststempfileTemporaryDirectorymkdirchmodshutilcopyfile
LIVE_RESETtuplesortedrglob
subprocessrunstrPYTHONosenvironappend
returncodevaluesdumpsopenO_WRONLYO_CREATO_EXCL	O_CLOEXECfdopenwriteprint)outputsealr@   	temporaryrootarchivenamebeforeexitsr'   receiptresultafterreceipt_valuerawfdstreamr%   s                    @r   mainr      s   "%chh-1"4T#((1+$F::j**,-DG-=(>>6{d?&;;z?d3F.GGX$/H*IIW\\^%;%;<E ##z\fhnpx[y#z z'\\ddfF 
	$	$,F	G9I"TTd/e	6	  '5DOOJ-w~>t^""5) 6 v  B\c\i\ijm\n  B  B  C)DvU^+G^^VdCL$S\Z+s7|M$eBrzzB#<cB	F LL**+%+%6%6!%;%s

7K\K\K^@_`h@ims@sFdV5>" * f  A[b[h[hil[m  A  A  B175-./ 
H2 Q0&f%*"()G"HQa9:M **]dz
JT
QCWWVR[[2::5		ABLLPRWXYYr36LL   	crh'6118q8O 
H	GF  s   ?GO7P7P P__main__)r   r   returnrg   )r   int)__doc__
__future__r   r   rO   ri   r_   r   re   rM   r[   pathlibr   __file__resolverY   rX   rS   rQ   rT   rU   rV   rh   ra   r   r   __name__
SystemExit r   r   <module>r      s    K "   	    
  H~&&
'
'--
	 	 &&
))	I	Jtu
939l z
TV
 r   