
    ؁jJ                       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 ddlmZ  ed      Zedz  Z ed      Zed	z  Zd
ZdZede z  Z ee      j1                         j2                  Zedz  ZdZh 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)e*dk(  r e+ e)             y))zFBuild, verify, and seal the immutable Task26 token-rotation successor.    )annotationsN)Path)castz)/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@4e9962be49b72951c3b9ed7e1a4fe36d0ca03e757872ae03364c1ab7a790f32b@33688875a0d1ce20955bd8272257ee34d84cb138f6a23a43e5d16682368ae5e5z*task26-clarification-normalized-successor-verify_candidate.py)zcheckin_cli/customer_admin.py/checkin_cli/activation_token_rotation_policy.pytests/test_customer_admin.py>   .venv.ruff_cache.pytest_cachedistbuild__pycache__c                P    t        j                  | ddd      j                         S )NT),:)	sort_keys
separatorsensure_ascii)jsondumpsencodevalues    m/home/cube/projects/richard/traning coach/.omo/senpi-task/task26-token-rotation-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,   /   s    $//#$$r   c                    | j                   j                  dd       | j                  |       | j                  d       y )NTparentsexist_ok   )parentmkdirwrite_byteschmod)r+   r'   s     r   writer6   3   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  )cwdr7   capture_outputtimeoututf-8replacei )
subprocessrun
returncodeAssertionErrorstdoutstderrdecode)commandr:   r7   r8   results        r   r@   r@   9   sW    ^^G#dTXYF""fmmfmm;CCGYWX^X_`aaMr   c                    dd}t        j                  | |d|       |j                  d       |j                  d      D ]5  }|j	                         r|j                  d       %|j                  d       7 y )Nc                `    |D ch c]  }|t         v s|j                  d      s|  c}S c c}w )N).pyc.pyoz	.egg-info)IGNOREDendswith)
_directorynamesnames      r   ignorezclean_copy.<locals>.ignoreA   s,    !&j$'/T]]Kh=ijjjs   ++F)symlinksrQ     *i  )rN   strrO   	list[str]returnzset[str])shutilcopytreer5   rglobis_dir)sourcedestinationrQ   r+   s       r   
clean_copyr^   @   s`    k OOFK%Ge!!#&;;=JJuJJu	 'r   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 )NrT   c              3  ,   K   | ]  }|t         v   y wr#   rL   .0parts     r   	<genexpr>z#source_inventory.<locals>.<genexpr>Q   s     9eVdd$'/Vd   rJ   rK   )sortedrZ   relative_tois_file
is_symlinkanypartsrP   rM   r,   as_posix)rootrG   r+   relatives       r   source_inventoryrq   M   s    Ftzz#'##D)||~!2c9eV^VdVd9e6e99./&1$&7x  "# ( Mr   c                l    | j                  dd      }|j                  d      |j                  d      z   S )Nr=   r>   zerror[zwarning[)rE   count)r'   texts     r   diagnostic_countru   Y   s/    ::gy)D::h$**Z"888r   c                    t        j                  | |d       |j                  d      D ]%  }|j                  |j	                         rdnd       ' |j                  d       y )NF)rR   rT   @  r1   )rX   rY   rZ   r5   r[   )r\   r]   r+   s      r   copy_sealed_treerx   ^   sK    
OOFK%8!!#&

DKKM5u5 'er   c                T   t        t        j                        }|j                  ddddd       t	        ddddd	d
t        |      t        |       g|j                  |      }t        |j                  d            }t        |      dk(  sJ |d   |j                  |j                  z   fS )N	946684800UTC1)SOURCE_DATE_EPOCHTZ
UV_OFFLINEPYTHONDONTWRITEBYTECODEuvr   z--wheel	--offlinez--no-build-isolationz	--out-dirr:   r7   z*.whl   r   )dictosenvironupdater@   rU   r2   listgloblenrC   rD   )r\   outputr7   rG   wheelss        r   build_wheelr   e   s    
rzz
CJJ[Smpqr	w	;0FUXY_U`beflbmnMMF
 &++g&'Fv;!!9fmmfmm333r   c                   789:; t         j                         rt         j                         rJ t        j                  t         dz  j                               } | d   t        k(  sJ t        t         dz        t        k(  sJ t        t        j                  dt        t         dz        t        t               gt               t        t              7t        t               8t#        78fdt%        8      t%        7      z  D              }|t#        t&              k(  sJ t)        j*                  dt,        	      5 }t/        |      ;;fd
dD        \  9}}t1        t        9       t1        t        |       t1        t        |       t3        t4        j6                        }|j9                  dt        ;dz        d       t        t        j                  dddddddddg
||      }d|j:                  v rd|j:                  v sJ t        t        j                  ddddddg||      }d|j:                  v sJ t        t        j                  dddddgt&        ||      }t        dddd d!d"d#t        t         t&        d$   z        t        t         t&        d%   z        g	;d&'      }	t        dddd d!d"d#gd( t&        D        ;d&'      }
t        j                  |	j:                        }t        j                  |
j:                        }t=        |      t=        |      cxk(  rd)k(  sJ  J t        dddd d*d!d+d,gd- t&        D        ;      }t        ddd.d t&        d$   gt         d&'      }t        ddd.d t&        d$   t&        d/   gt        d&'      }t        ddd.d t&        d/   gt              }t?        |j:                  |j@                  z         d0k(  sJ t?        |j:                  |j@                  z         d0k(  sJ tC        9;d1z        \  }}tC        |;d2z        \  }}|jE                         |jE                         k(  sJ t        |      }tG        jH                  |      5 }|jK                         }|D ch c]  }|jL                   c}d3hk(  sJ t#        d4 |D              }t#        9fd59d6z  jO                  d7      D              }||k(  sJ |D ])  }|jQ                  |      9|z  jE                         k(  r)J  d8|v sJ 	 d d d        ;d9z  }tG        jH                  |      5 }|jS                  |       d d d        t        t        j                  dd:d;t        |      g;i |d<t        |      i      }t        j                  |j:                        }|d=   d>u sJ t        t              7k(  sJ ;d?z  :d@D ]  }:|z  jU                  d>d>A        tW        t         :dBz         t         jO                  d7      D  cg c]  } | jY                         s|  }!} t&        D ]h  }"t[        :dCz  |"z  t        |"z  jE                                t         |"z  j]                         sBt[        :dDz  |"z  t         |"z  jE                                j t#        t        d6z  jO                  d7            D ]  } | jY                         st_        dE | ja                  t              jb                  D              rD| jd                  jg                  dF      r`t[        :dGz  | ja                  t              z  | jE                                 t[        :dHz  t        dIz  jE                                t[        :dJz  t        dKz  jE                                t[        :dLz  t        t&        d%   z  jE                                t[        :dMz  |jE                                t[        :dNz  |j:                  |j@                  z          t[        :dOz  |j:                  |j@                  z          t[        :dPz  |j:                  |j@                  z   dQz          t[        :dRz  |	j:                         t[        :dSz  |
j:                         t[        :dTz  |j:                  |j@                  z          t[        :dUz  |j:                  |j@                  z          t[        :dVz  |j:                  |j@                  z          t[        :dWz  |j:                  |j@                  z          t[        :dXz  |       t[        :dYz  |       t[        :dZz  |j:                         t[        :dz  th        jE                                g }#t&        D ]`  }"t         |"z  }$t        |"z  }%|#jk                  |"|$j]                         rd[nd\|$j]                         rt        |$      nd t        |%      d]       b d^t        d_|#d`da}&t[        :dbz  tm        |&             i dcdddedfdgdhd$didjdkdld$dmddndod)dpd)dqd$drd$dsd0dtd0dud$dvd>dwd%dxd>dyd>dzd>d$d$d$d{}'t[        :d|z  tm        |'             t#        :fd}:jO                  d7      D              }(|(D cg c]/  }|:|z  jo                         jp                  t        :|z        d~1 })}d|)t=        |)      ts        tu        |)            d}*t[        :dz  tm        |*             dt        t        ||#d}+dddt        t        t        t         dz        t=        |!      dBd>d|+ts        tu        |+            dM||jo                         jp                  t=              t=              d8d%ddbt        :dbz        d|t        :d|z        t        :dz        t=        |)      t        :dz        dd},ts        tu        |,            }-i |,d|-i}.t[        :dz  tm        |.             dd|-|.d   t        :dz        |.d   |t        |.d   d	}/t[        :dz  tm        |/             d|-|/d   t        :dz        d}0t[        :dz  tm        |0             t#        d :jO                  d7      D        d d>      D ]  }1|1jw                  d        :jw                  d       t,        d|- z  }2|2j]                         rJ :jy                  |2       |2jw                  d       t        t        j                  dt        |2dz        t        |2      g;      }3t        j                  |3j:                        }4ddnd|-t        |2dz        t        |2dz        |4d$d$d$d$dd}5|2jw                  d       t[        |2dz  tm        |5             |2jw                  d       t        t        j                  dt        |2dz        t        |2      g;      }6t{        t        j|                  i t        j                  |6j:                        t        |2      t        |2dz        t        |2dz        t        |2dz        t        |2dz        dd>             d d d        y$c c}w # 1 sw Y   	RxY w# 1 sw Y   	+xY wc c} w c c}w # 1 sw Y   y$xY w)Nzcandidate-manifest.jsonfull_candidate_digestz.artifacts/hermes_agent-0.17.0-py3-none-any.whlz-Br   )r:   c              3  j   K   | ]*  }j                  |      j                  |      k7  s'| , y wr#   )get)rc   r+   before_inventoryold_inventorys     r   re   zmain.<locals>.<genexpr>{   sP       O*T$XeXiXijnXo  tD  tH  tH  IM  tN  YN*Ts   (33z.task26-token-rotation-)prefixdirc              3  (   K   | ]	  }|z    y wr#    )rc   rP   	temporarys     r   re   zmain.<locals>.<genexpr>   s     +rIqI,<Iqs   )zsource-azsource-bzsuite-sourcer|   pycache)r   PYTHONPYCACHEPREFIXz-mpytestz-pzno:cacheproviderr
   z-ktoken_rotation_waiverz-qr   s	   43 passeds   85 deselecteds
   679 passed
compileallz-fuvxr   ruffr8   z
--no-cachez--output-formatr   r      F)r:   r8   c              3  @   K   | ]  }t        t        |z          y wr#   rU   	WORKSPACErc   targets     r   re   zmain.<locals>.<genexpr>   s-       ]L  DKy]`ajmsas]t  DK      z
--isolatedz--selectzE9,F63,F7,F82c              3  @   K   | ]  }t        t        |z          y wr#   r   r   s     r   re   zmain.<locals>.<genexpr>   s=       m\  T[  JPmpqz  ~D  rD  nE  T[r   tyr   '   zwheel-azwheel-b)i  r   r   r   r   r   c              3  l   K   | ],  }|j                   j                  d       s|j                    . yw)zcheckin_cli/N)filename
startswith)rc   items     r   re   zmain.<locals>.<genexpr>   s'     $qutH`H`aoHpT]]us    44c              3  |   K   | ]3  }|j                         r!|j                        j                          5 y wr#   rj   ri   rn   )rc   r+   source_as     r   re   zmain.<locals>.<genexpr>   s6      $AD<<>   *335A   9<checkin_clirT   r	   zinstalled-wheelz-czimport json,checkin_cli.activation_token_rotation_policy as m; print(json.dumps({'origin':m.__file__,'inside':str(m.__file__).startswith(str(__import__('sys').argv[1]))},sort_keys=True))
PYTHONPATHinsideT	candidate)		artifactsbindingszsource-delta/before/checkin_clizsource-delta/before/testszsource-delta/after/checkin_clizsource-delta/after/testssnapshot/package-runtimezsnapshot/package-metadata
historicalr.   z historical/predecessor-candidatezsource-delta/afterzsource-delta/beforec              3  ,   K   | ]  }|t         v   y wr#   ra   rb   s     r   re   zmain.<locals>.<genexpr>   s     )hFgd$'/Fgrf   rg   r   z(snapshot/package-metadata/pyproject.tomlzpyproject.tomlz!snapshot/package-metadata/uv.lockzuv.lockz%snapshot/tests/test_customer_admin.pyz5artifacts/physique_checkin_cli-0.1.0-py3-none-any.whlz"artifacts/focused-waiver-tests.txtz artifacts/full-package-tests.txtzartifacts/compileall.txts   PASS
zartifacts/ruff-predecessor.jsonzartifacts/ruff-successor.jsonzartifacts/ruff-critical.txtzartifacts/ty-predecessor.txtzartifacts/ty-successor.txtzartifacts/ty-new-module.txtzartifacts/wheel-build-1.txtzartifacts/wheel-build-2.txtzartifacts/loaded-source.txtmodifiedadded)r+   changebefore_sha256after_sha256z*task26-checkin-cli-token-rotation-delta-v1@81b1b7e1d5ffd89c9287334587833a0762f46d5cc9d123645d38cde77cd56601   )schemapredecessor_full_digest!baseline_profile_candidate_digestfiles
file_countzbindings/source-delta.jsonr   z task26-token-rotation-quality-v1status%PASS_WITH_PREEXISTING_STATIC_BASELINEfocused_waiver_tests+   U   )passedfailed
deselectedfull_package_testsi  )r   r   PASSruff_predecessor_diagnosticsruff_successor_diagnosticsruff_regression_deltaruff_critical_errorsty_predecessor_diagnosticsty_successor_diagnosticsty_diagnostic_deltanew_module_ty_cleanreproducible_wheel_buildswheel_builds_byte_identicalwheel_source_parity"loaded_source_inside_wheel_extract)network_actionslive_authority_mutationsdeployment_actionszartifacts/quality-summary.jsonc              3  |   K   | ]3  }|j                         r!|j                        j                          5 y wr#   r   )rc   r+   stagings     r   re   zmain.<locals>.<genexpr>  s6      
*||~ W%..0*r   )r+   bytesr%   z'task26-token-rotation-hash-inventory-v1)r   entriesentry_countentries_sha256zhash-inventory.jsonztask26-token-rotation-core-v1)r   r   predecessor_wheel_sha256profile_wheel_sha256source_deltaz,task26-token-rotation-successor-candidate-v1PASS_SEALED_UNDEPLOYED*IMMUTABLE_SUCCESSOR_CANDIDATE_NOT_DEPLOYED)full_digestwheel_sha256manifest_sha256r   preserved_pathverified)r+   r%   r   member_countpackage_member_countnew_module_memberreproducible_roundsNOT_PERFORMED)r   state	authoritypredecessorcore_materialcore_candidate_digestprofile_wheelsource_delta_pathsource_delta_sha256quality_summary_pathquality_summary_sha256inventory_sha256inventory_countverifier_sha256
deploymentz'task26-token-rotation-successor-seal-v1r   r  r  )	r   r   r   r   r   r  r   r   r  zcandidate-seal.jsonz3task26-token-rotation-independent-verifier-input-v1r   )r   r   r   seal_sha256zverifier-input.jsonc              3  B   K   | ]  }|j                         s|  y wr#   )r[   )rc   r+   s     r   re   zmain.<locals>.<genexpr>_  s      V2D$2Ds   c                ,    t        | j                        S r#   )r   rm   r*   s    r   <lambda>zmain.<locals>.<lambda>_  s    ilmqmwmwixr   )keyreverserw   rS   z task26-token-rotation-successor-z9task26-token-rotation-independent-verification-receipt-v1)r  live_authoritynetworkgit)r   r   r   r   r  r  verification	mutationszindependent-verification.json)candidate_rootr   r  verification_sha256r  )r   )?PREDECESSORr[   rk   r   loads	read_textPREDECESSOR_DIGESTr,   PREDECESSOR_WHEELr@   sys
executablerU   PROJECTrq   r   PREVIOUS_PACKAGErh   setTARGETStempfileTemporaryDirectoryOUTPUTr   r^   r   r   r   r   rC   r   ru   rD   r   r)   zipfileZipFileinfolist	date_timerZ   read
extractallr3   rx   rj   r6   existsrl   ri   rm   rP   rM   VERIFIERappendr!   statst_sizer%   r   r5   renameprintr   )<prior_manifestdelta_pathstemporary_namesource_bsuite_sourcer7   focusfullcompile_resultruff_oldruff_newruff_old_rowsruff_new_rowsruff_criticalty_oldty_new	ty_modulewheel_abuild_awheel_bbuild_b
wheel_hasharchiveinfosr   package_memberssource_membersmemberextractloaded
loaded_rowrp   r+   predecessor_filesr   delta_filesbeforeafterdeltaqualityindexed_pathsr   	inventoryr   manifest_corer   manifestsealverifier_input	directoryfinalrG   r   receiptresult2r   r   r   r   r   s<                                                          @@@@@r   mainrZ  r   s   (>(>(@@@ZZ/H!H S S UVN126HHHH{%UUVZkkkks;1F#FG[IYZ`gh'	2$%56M  O#m*<sCS?T*T  O  OK&/)))		$	$,E6	RVd(	+rIq+r((L9h'9h'9l+2::

s3y[dOdKefg^^T449KMkmq  tK  MQ  R

 u||+0@ELL0PPPCNND$$@RTXY_kqtu+++^^T4tTLGLR^dg
 K,@QSY[^_oryz{r|_|[}  @C  DT  W^  _`  Wa  Da  @b  c

 K,@QSY  M  ]L  DK  ]L  M

 

8??3

8??3=!S%7=2=====K,jZi  ]  m\  T[  m\  ]

 e[$DJZbghe[$WQZPV_glmT7GAJGYW	 =>"DDD =>"DDD&xY1FG&xY1FG!!#w'9'9';;;; )
__W%$$&E/45utDNNu5:O9PPPP$$qu$qqO# $%5<<SA$ N
 #n444)||F+60A/M/M/OOOO *DWWW & //__W%w' &^^T4  *f  hk  ls  ht  u333c'l3

 ZZ.
(#t+++	*.>>>>k) wHx&&td&C w 	g0R&RS.9.?.?.DW.DdT.DWF'0069I<N;Z;Z;\] 6)113g 55>AQTZAZ@f@f@hi  I5<<SABD||~c)hdFVFVW`FaFgFg)h&hquqzqz  rD  rD  EU  rVg ::T=M=Mi=XXZ^ZiZiZkl C 	gBBYQaEaDmDmDopg;;i)>S=_=_=abg??)gVWjBXAdAdAfggOOQXQcQcQefg<<ellU\\>YZg::DKK$++<UVg22N4I4INLaLa4adm4mng998??Kg77Ig55}7K7KmNbNb7bcg668UVg44fmmfmm6STg55y7G7G)JZJZ7Z[g55w?g55w?g55v}}Eg--x/B/B/DE/1F%.F&E(.*W8>V!4T +E 2	    C'91s 
 	g44j6GH
8
=
 #rQb$Q
 !SA">	

 &
 +B
 )"
 $Q
 #A
 )"
 '
 "1
 "4
 (
 *4
  "4!
" 1$#
$  !()"#)
, 	g88*W:MN 
c*
 
 *
) 8);(A(A(C(K(KWbcjmucuWvw) 	 

 @w<$Yw%78	
	 	g--z)/DE5'9(9$.'
 E-E1 1#.{=V/V#W!"34"D  +%+Im,D%EO$ // #E
(+O(<%V'( ">#.w9U/U#V$D&1'<\2\&] +G6K,K L"7|*75J+JK)=,
@ 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cnndC8M0M,NPSTYPZ[ajk::fmm,Q-%0&u/D'DE*53H+HI$()Q1UVW	
 	Ee55z'7JKEs~~tS9N1N-OQTUZQ[\bkldjj 
jj(
!%j*53L+LM&u/D'DE#.u7V/V#W +E4I,I J
  	s 
SB ] 6 &% &%  XR
s 
SB s   :L"y5y1yA2y7	y"y5#y5C	y5>y+y+A	y5"Ay5 /y50y5M,y584y0,Ny5yy	y5y(	#y55y>__main__)r   objectrW   r   )r'   r   rW   rU   )r+   r   rW   rU   )r+   r   r'   r   rW   None)
rF   rV   r:   r   r7   zdict[str, str] | Noner8   boolrW   z"subprocess.CompletedProcess[bytes])r\   r   r]   r   rW   r]  )ro   r   rW   zdict[str, str])r'   r   rW   int)r\   r   r   r   rW   ztuple[Path, bytes])rW   r_  ),__doc__
__future__r   r$   r   r   rX   r)  r?   r  r  r   pathlibr   typingr   r  r  r   r  r  r  r  __file__resolver2   HEREr'  r  rL   r   r!   r%   r,   r6   r@   r^   rq   ru   rx   r   rZ  __name__
SystemExitr   r   r   <module>ri     s   L "   	    
     :
;	)	)RS	\\ W V CDVCWXXH~&&''
 T`$+% HL[_ 
	9

4M` z
TV
 r   