
    FjD                       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ZddlmZ  ed      Zedz  Z ed      Zedz  Zd	Zed
e z  ZdZdZdZdZh dZeehz  Zh dZ ee      j9                  d      Zd"dZd"dZd#dZ d$dZ!d%dZ"dddd&dZ#d'dZ$d(dZ%d)dZ&d)dZ'd*dZ(d+dZ)d,d Z*e+d!k(  r e, e*             y)-z6Seal the test-only Task26 inode-replacement successor.    )annotationsN)Pathz)/home/cube/projects/richard/traning coachz.omo/evidence/task26z?/home/cube/.hermes/profiles/dualcoachtest/workspace/checkin_cliz>task26-owner-customer-v1-candidate-v3/snapshot/profile-package@4a8627af8f9b931d537e17dbd3e357b7a0f2b2abffdbf28f6ad19a8d32893ec0z task26-token-rotation-successor-@f75856d6d986b64d3d2f083aec2f865c7aea19f5950b84ff06e519f2f6505af6z tests/test_adaptive_nutrition.py@9d323da1fb01e3b05df6557795d87b6e26b8d0e7c8ca83f03b3287a237929369@0831230dbebb27303a55d9ac2cb349adb217cd639d1db2981eab0974db527354>   tests/test_customer_admin.pycheckin_cli/customer_admin.py/checkin_cli/activation_token_rotation_policy.py>   .venv.ruff_cache.pytest_cachedistbuild__pycache__verify_candidate.pyc                P    t        j                  | ddd      j                         S )NT),:)	sort_keys
separatorsensure_ascii)jsondumpsencodevalues    g/home/cube/projects/richard/traning coach/.omo/senpi-task/task26-test-fix-st_01a00b29/seal_candidate.py	canonicalr   %   s!    ::et
QUV]]__    c                    t        |       dz   S )N   
)r   r   s    r   
json_bytesr#   )   s    Ue##r    c                H    t        j                  |       j                         S N)hashlibsha256	hexdigest)raws    r   r'   r'   -   s    >>#((**r    c                4    t        | j                               S r%   )r'   
read_bytespaths    r   sha256_filer.   1   s    $//#$$r    c                    | j                   j                  dd       | j                  |       | j                  d       y )NTparentsexist_ok   )parentmkdirwrite_byteschmod)r-   r)   s     r   writer8   5   s3    KKdT2SJJur    T)envcheckc                   t        j                  | ||dd      }|rA|j                  r5t        |j                  |j
                  z   j                  dd      dd        |S )NTi  )cwdr9   capture_outputtimeoutzutf-8replacei )
subprocessrun
returncodeAssertionErrorstdoutstderrdecode)commandr<   r9   r:   results        r   rA   rA   ;   sW    ^^G#dTXYF""fmmfmm;CCGYWX^X_`aaMr    c               2    t        ddd|  ddg|||      S )Nbashz-czumask z; exec "$@"z	umask-runr<   r9   )rA   )maskrG   r<   r9   s       r   	run_umaskrM   B   s*    tfM:KR'RX[adeer    c                T   i }t        | j                  d            D ]  }|j                  |       }|j                         r,|j	                         st        d |j                  D              rQ|j                  j                  d      rmt        |      ||j                         <    |S )N*c              3  ,   K   | ]  }|t         v   y wr%   )IGNORED).0parts     r   	<genexpr>z#source_inventory.<locals>.<genexpr>J   s     9eVdd$'/Vds   z.pycz.pyoz	.egg-info)sortedrglobrelative_tois_file
is_symlinkanypartsnameendswithr.   as_posix)rootrH   r-   relatives       r   source_inventoryrb   F   s    Ftzz#'##D)||~!2c9eV^VdVd9e6e99;<&1$&7x  "# ( Mr    c                    dd}t        j                  | |d|       |j                  d       |j                  d      D ]%  }|j                  |j	                         rdnd       ' y )Nc                `    |D ch c]  }|t         v s|j                  d      s|  c}S c c}w )NrU   )rQ   r^   )
_directorynamesr]   s      r   ignorezclean_copy.<locals>.ignoreS   s,    !&j$'/T]]Kh=ijjjs   ++F)symlinksrg     rO   i  )re   strrf   	list[str]returnzset[str])shutilcopytreer7   rW   is_dir)sourcedestinationrg   r-   s       r   
clean_copyrr   R   sU    k OOFK%Ge!!#&

DKKM5u5 'r    c                    t        j                  | |d       |j                  d      D ]%  }|j                  |j	                         rdnd       ' |j                  d       y )NF)rh   rO   @  r3   )rm   rn   rW   r7   ro   )rp   rq   r-   s      r   copy_sealed_treeru   \   sK    
OOFK%8!!#&

DKKM5u5 'er    c           
     D   | j                  d      D ci c]  }|j                         ro|j                  |       j                         t	        |      |j                         j                  t        j                  |j                         j                        f c}S c c}w )NrO   )	rW   rY   rX   r_   r.   statst_sizeS_IMODEst_mode)r`   r-   s     r   tree_inventoryr{   c   s     JJsO#D<<> 	'')K,=tyy{?R?RTXT`T`aeajajalatatTu+vv#  s   BBc                   t        |ddddddt        |      t        |       g|j                  i |ddd	d
      }t        |j	                  d            }t        |      dk(  sJ |d   |j                  |j                  z   fS )Nuvr   z--wheel	--offlinez--no-build-isolationz	--out-dir	946684800UTC1)SOURCE_DATE_EPOCHTZ
UV_OFFLINErK   z*.whl   r   )rM   rj   r4   listgloblenrD   rE   )rp   outputrL   r9   rH   wheelss         r   build_wheelr   k   s    	w	;0FUXY_U`beflbmnMMUsUEQTU	F &++g&'Fv;!!9fmmfmm333r    c                   345 t         j                         rt         j                         rJ t        j                  t         dz  j                               } | d   t        k(  sJ t         dz  }t        |      t        k(  sJ t        t        j                  dt        t         dz        t        t               gt               t        t        t        z        t         k(  sJ t        t"        t        z        t$        k(  sJ t'        t"              }t'        t              }t)        |      t)        |      z  D ch c](  }|j+                  |      |j+                  |      k7  s'|* }}|t,        k(  sJ t        j                  t         dz  j                               }|d   D ch c]  }|d	   	 c}t.        k(  sJ |d   D ]  }||d	      |d
   k(  rJ  t"        t        z  j                         }d|v rd|v sJ d|v sJ d|v sJ t1        j2                  dt4              5 }	t7        |	      55fddD        \  }
3}t9        t"        |
       t9        t"        3       t9        t"        |       t;        t<        j>                        }|jA                  dt        5dz        d       t         d}tC        dt        j                  ddddd|dg|
|      }tC        dt        j                  ddddd|dg|
|      }d|jD                  v rd|jD                  v sJ tC        dt        j                  ddddddg|
|      }d |jD                  v sJ tC        dt        j                  ddd!dd"t        g|
|      }tC        dd#d$d%d&d'd(d)d*t        g	|
|      }tG        35d+z  d,|      \  }}tG        |5d-z  d,|      \  }}|jI                         |jI                         cxk(  r|jI                         k(  sJ  J t        |      t        |      cxk(  r
t        k(  sJ  J t         d.z  }tK        jL                  |      5 }|jO                         }tQ        |      d/k(  r|D ch c]  }|jR                   c}d0hk(  sJ tU        d1 |D              }tU        3fd23d3z  jW                  d4      D              }||k(  rtQ        |      d5k(  sJ |D ]C  }|jY                  |      3|z  jI                         cxk(  r||z  jI                         k(  r@J  J  t[        d6 |D              rJ 	 d d d        t'        t"              |k(  sJ 5d7z  4d8D ]  }4|z  j]                  d9d9:        t_        t         4d;z         ta        t               }ta        4d;z        } || k(  sJ tc        4d<z  t        z  t        t        z  jI                                tc        4d=z  t        z  t"        t        z  jI                                tc        4d>z  t"        t        z  jI                                tc        4dz  |jI                                tc        4d?z  |jD                  |jd                  z          tc        4d@z  |jD                  |jd                  z          tc        4dAz  |jD                  |jd                  z          tc        4dBz  |jD                  |jd                  z   dCz          tc        4dDz  |jD                  |jd                  z          tc        4dEz  |       tc        4dFz  |       tc        4dz  tf        jI                                t        dGt         t$        dHg}!dIt        |!dJdK}"tc        4dLz  ti        |"             i dMdNdOdPdQdJdRdSdTdJdRdSdUdVdRdSdWddXd9dYd9dZd9d[d9d!dPd\dRd]d^d_d,d,gd`d9dad9dbd9dcdRdRdRdRdRdRdd}#tc        4dez  ti        |#             tU        4fdf4jW                  d4      D              }$|$D cg c]/  }|4|z  jk                         jl                  t        4|z        dg1 }%}dh|%tQ        |%      to        tq        |%            di}&tc        4djz  ti        |&             dkt        t        |!dl}'dmdndot        t        t         dz        tQ        |      d;dRd9dp|'to        tq        |'            dt        |jk                         jl                  d/d5dcd^d9dqdLt        4dLz        det        4dez        t        4djz        tQ        |%      t        4dz        drds}(to        tq        |(            })i |(d|)i}*tc        4dz  ti        |*             dtdn|)|*du   t        4dz        |*dv   t        t        |*dw   dx	}+tc        4dyz  ti        |+             dz|)|+d{   t        4dyz        d|},tc        4d}z  ti        |,             tU        d~ 4jW                  d4      D        d d9      D ]  }-|-js                  d        4js                  d       t4        d|) z  }.|.ju                         rJ 4jw                  |.       |.js                  d       t        t        j                  dt        |.dz        t        |.      g5      }/t        j                  |/jD                        }0ddPdn|)t        |.dyz        t        |.dz        |0dRdRdRdRdRdRdRdRdd}1|.js                  d       tc        |.dz  ti        |1             |.js                  d       t        t        j                  dt        |.dz        t        |.      g5      }2ty        t        jz                  i t        j                  |2jD                        t        |.      t        |.dz        t        |.dyz        t        |.djz        t        |.dez        t        |.dz        dd9             d d d        yRc c}w c c}w c c}w # 1 sw Y   xY wc c}w # 1 sw Y   yRxY w)Nzcandidate-manifest.jsonfull_candidate_digestz5artifacts/physique_checkin_cli-0.1.0-py3-none-any.whlz-Br   )r<   zbindings/source-delta.jsonfilesr-   after_sha256zpath.chmod(0o600)zreplacement.chmod(0o600)z*assert path.read_bytes() == b"replacement"zAos.read(original_fd, len(complete) + 8) == complete + b'{"torn":'z.task26-inode-test-fix-)prefixdirc              3  (   K   | ]	  }|z    y wr%    )rR   r]   	temporarys     r   rT   zmain.<locals>.<genexpr>   s     $dBc$Y%5Bcs   )suitezsource-azsource-br   pycache)PYTHONDONTWRITEBYTECODEPYTHONPYCACHEPREFIXzB::test_overlay_recovery_rejects_symlink_and_data_inode_replacement077z-mpytestz-pzno:cacheproviderz-qrK   022s   1 passeds
   679 passed
compileallz-fuvxr~   ruffr:   z
--isolatedz
--no-cachez--selectzE9,F63,F7,F82zwheel-a002zwheel-bzsnapshot/package-runtime2   )i  r   r   r   r   r   c              3  l   K   | ],  }|j                   j                  d       s|j                    . yw)zcheckin_cli/Nfilename
startswithrR   items     r   rT   zmain.<locals>.<genexpr>   s'     $qutH`H`aoHpT]]us    44c              3  |   K   | ]3  }|j                         r!|j                        j                          5 y wr%   rY   rX   r_   )rR   r-   source_as     r   rT   zmain.<locals>.<genexpr>   s6      $AD<<>   *335As   9<checkin_clirO   .   c              3  R   K   | ]  }|j                   j                  d        ! yw)ztests/Nr   r   s     r   rT   zmain.<locals>.<genexpr>   s      P%$4==33H=%s   %'	candidate)	artifactsbindingsztest-delta/before/testsztest-delta/after/testszsnapshot/tests
historicalTr0   z historical/predecessor-candidateztest-delta/beforeztest-delta/afterz)snapshot/tests/test_adaptive_nutrition.pyz'artifacts/focused-overlay-umask-077.txtz'artifacts/focused-overlay-umask-022.txtz$artifacts/full-package-umask-077.txtzartifacts/compileall.txts   PASS
zartifacts/ruff-critical.txtz%artifacts/wheel-build-1-umask-002.txtz%artifacts/wheel-build-2-umask-002.txtmodified)r-   changebefore_sha256r   ztask26-inode-test-fix-delta-v1r   )schemapredecessor_full_digestr   
file_countzbindings/test-delta.jsonr   z task26-inode-test-fix-quality-v1statusPASSfocused_overlay_umask_077r   )passedfailedfocused_overlay_umask_022full_package_umask_077i  strict_umaskwritable_copy_correctedfixture_mode_assertions!named_replacement_bytes_assertion held_fd_original_bytes_assertionruff_critical_errorsreproducible_wheel_builds   wheel_build_umaskswheel_builds_byte_identical wheel_unchanged_from_predecessorwheel_source_parityF)wheel_contains_testspredecessor_byte_and_mode_driftunindexed_countdeployment_actionslive_authority_mutationsnetwork_actionsgit_actionszartifacts/quality-summary.jsonc              3  ~   K   | ]4  }|j                         s|j                        j                          6 y wr%   r   )rR   r-   stagings     r   rT   zmain.<locals>.<genexpr>   s4     uPbfjfrfrftt//8AACPbs   =$=)r-   bytesr'   z'task26-inode-test-fix-hash-inventory-v1)r   entriesentry_countentries_sha256zhash-inventory.jsonztask26-inode-test-fix-core-v1)r   r   profile_wheel_sha256
test_deltaz,task26-inode-test-fix-successor-candidate-v1PASS_SEALED_UNDEPLOYED)IMMUTABLE_TEST_FIX_SUCCESSOR_NOT_DEPLOYED)full_digestmanifest_sha256r   preserved_pathbyte_and_mode_driftverified)r-   r'   r   member_countpackage_member_counttests_packagedreproducible_roundsbyte_identical_to_predecessorNOT_PERFORMED)r   state	authoritypredecessorcore_materialcore_candidate_digestprofile_wheeltest_delta_pathtest_delta_sha256quality_summary_pathquality_summary_sha256inventory_sha256inventory_countverifier_sha256
deploymentz'task26-inode-test-fix-successor-seal-v1r   r   r   )	r   r   r   r   r   r   wheel_sha256r   r   zcandidate-seal.jsonz3task26-inode-test-fix-independent-verifier-input-v1r   )r   r   r   seal_sha256zverifier-input.jsonc              3  B   K   | ]  }|j                         s|  y wr%   )ro   )rR   r-   s     r   rT   zmain.<locals>.<genexpr>?  s      V2D$2Ds   c                ,    t        | j                        S r%   )r   r\   r,   s    r   <lambda>zmain.<locals>.<lambda>?  s    ilmqmwmwixr    )keyreversert   ri   z task26-inode-test-fix-successor-z9task26-inode-test-fix-independent-verification-receipt-v1)r   live_authorityservicenetworkgitplantodoledger)r   r   r   r   r   r   verification	mutationszindependent-verification.json)candidate_rootr   r   r   quality_sha256verification_sha256)r   )>PREDECESSORro   rZ   r   loads	read_textPREDECESSOR_DIGESTr.   WHEEL_SHA256rA   sys
executablerj   PROJECTBASELINE	TEST_PATHOLD_TEST_SHA256	WORKSPACENEW_TEST_SHA256rb   setgetEXPECTED_TOTAL_DELTAPREDECESSOR_DELTAtempfileTemporaryDirectoryOUTPUTr   rr   dictosenvironupdaterM   rD   r   r+   zipfileZipFileinfolistr   	date_timerV   rW   readr[   r5   ru   r{   r8   rE   VERIFIERr#   rw   rx   r'   r   r7   existsrenameprintr   )6predecessor_manifestpredecessor_wheellive_beforebaseliner-   total_deltapredecessor_deltarow	test_texttemporary_namer   source_br9   focus_target	focus_077	focus_022fullcompile_resultr   wheel_abuild_awheel_bbuild_bpredecessor_sourcearchiveinfosr   package_memberssource_membersmemberra   original_treecopied_treedelta_filesdeltaqualityindexed_pathsr   	inventoryr   manifest_corer   manifestsealverifier_input	directoryfinalfirstr  receiptsecondr   r   r   s6                                                      @@@r   mainrQ  w   s   (>(>(@@@::{5N'N&Y&Y&[\ 78<NNNN#&]]()\999s;1F#FG[IYZ`ghx)+,???y9,-@@@"9-K)H$'MC4D$Dt$DDUYHZ^i^m^mnr^sHs4$DKt....

K2N$N#Y#Y#[\#4W#=>#=CCK#=>BSSSS )3v;'3~+>>>> * Y&113I)+0Ji0WWW79DDDPT]]]]		$	$,E6	RVd(	$dBc$d!x9e$9h'9h'2::

s3y[dOdKefg#$fgecnndD(DRdfrtx%y  @E  KN  O	ecnndD(DRdfrtx%y  @E  KN  O	i...;)BRBR3RRRtXtM_ae flqwz{+++"53>>4|UY[_aj*kqv|  AK,jZiktu	
 'xY1FsS&xY1FsS!!#w'9'9';]?P?[?[?]]]]]]7#{7';K|KKKKK(+EE__W%$$&Eu:#E(JEDE(JOdNe(eee$$qu$qqO# $%5<<SA$ N
 #n4_9MQS9SSS)||F+60A/M/M/O}TfioToS{S{S}}}}}} *P%PPPPP &  	*k999k) GHx&&td&C Gg0R&RS&{3$W/Q%QR+++g++i7(Y:N9Z9Z9\]g**Y6Y9N8Z8Z8\]gCCiR[F[EgEgEijgOOQXQcQcQefgAA9CSCSV_VfVfCfggAA9CSCSV_VfVfCfgg>>dkk@YZg22N4I4INLaLa4adm4mng55t{{T[[7PQg??Ig??Ig--x/B/B/DE  ,+	
  7'9 	
 	g22Ju4EF
8
f
 (A)C
 (A)C	

 %&B
 E
 &t
 &t
 0
 /
 &
 #A
 (
 !5%.
 *4
  /!
" "4#
$ %*/0 "#() 1
4 	g88*W:MNuPWP]P]^aPbuu *
) 8);(A(A(C(K(KWbcjmucuWvw) 	 

 @w<$Yw%78	
	 	g--z)/DE5'9$0%	
 E-D1#.{=V/V#W!-0"D'(  +%+Im,D%EO& // "(*"''(15	  :!,W7Q-Q!R$D&1'<\2\&] +G6K,K L"7|*75J+JK)? ,
B Y}56JmJ%<kJg11:h3GH?.%0%-.E%F*75N+NO (); <('9'(9:

 	g--z$/?@K%0#$56&w1F'FG	
 	g--z./IJ V'--2D V\x  CG  HIOOE" He;K=II<<>!!uES^^T3u7L/L+MsSXzZ`ijzz%,,/Q-%0&u/D'DE*53H+HI(()Q1YZcdnoyz  GH  I	
 	Ee55z'7JKEcnndC8M0M,NPSTYPZ[ajkdjj 
jj'
!%j*53L+LM&u/D'DE +E4I,I J)%2R*RS#.u7V/V#W
  	Q 
Sb { u ?L )K &%Z
Q 
Sb s^   8(o!o#o!Ho-4#oo*BooKo-54o()No-oo%	 o--o6__main__)r   objectrl   r   )r)   r   rl   rj   )r-   r   rl   rj   )r-   r   r)   r   rl   None)
rG   rk   r<   r   r9   zdict[str, str] | Noner:   boolrl   "subprocess.CompletedProcess[bytes])
rL   rj   rG   rk   r<   r   r9   dict[str, str]rl   rV  )r`   r   rl   rW  )rp   r   rq   r   rl   rT  )r`   r   rl   zdict[str, tuple[str, int, int]])
rp   r   r   r   rL   rj   r9   rW  rl   ztuple[Path, bytes])rl   int)-__doc__
__future__r   r&   r   r  rm   rw   r@   r  r  r  pathlibr   r  r  r  r  r
  r  r  r  r  r  r  r  rQ   __file__	with_namer$  r   r#   r'   r.   r8   rA   rM   rb   rr   ru   r{   r   rQ  __name__
SystemExitr   r    r   <module>r`     s!   < "   	    
    :
;	)	)RS	TTW 9:L9MNNQ.	TT 
 )I;6 
S>##$9:`$+% HL[_ f	6	4iX z
TV
 r    