
    _j                         d dl Z d dlZd dlZd dlmZmZ d dlmZ  ee                                          j	        d         Z
e
dz  Ze
dz  Ze
dz  e
dz  gZd	d
gZd Zd Zd Zd Zd Zedk    r e             dS dS )    N)datetimetimezone)Path   z"log/run-002/audit-set-lock-v4.jsonz#log/run-002/semantic-review-v4.jsonz(log/run-002/auditor-A-structural-v4.jsonz&log/run-002/auditor-B-semantic-v4.jsonzblocking-A-structuralzblocking-B-semanticc                 r    t          j        |                                                                           S N)hashlibsha256
read_bytes	hexdigest)paths    (script/finalize-run002-semantic-audit.pyr
   r
      s(    >$//++,,66888    c                     t          j        d | D             ddd                              d          }t          j        |                                          S )Nc                 ,    i | ]}|d          |d         S r   r
    .0rows     r   
<dictcomp>z$audit_set_digest.<locals>.<dictcomp>   s"    444Vc(m444r   FT),:)ensure_ascii	sort_keys
separatorsutf-8)jsondumpsencoder	   r
   r   )rowspayloads     r   audit_set_digestr#      s`    j44t444	  
 fWoo  >'"",,...r   c                    | j                             dd           |                     | j        dz             }t	          j        |dd          dz                       d          }t          |d	          5 }|                    |           |	                                 t          j        |                                           d d d            n# 1 swxY w Y   t          j        ||            d S )
NT)parentsexist_okz.partF   )r   indent
r   xb)parentmkdirwith_suffixsuffixr   r   r    openwriteflushosfsyncfilenoreplace)r   valuepartdatahandles        r   atomic_jsonr:       s   KdT222DK'122DJu5;;;dBJJ7SSD	dD		 "VT
!!!" " " " " " " " " " " " " " " JtTs   7ACCCc                      t          |           r   )RuntimeError)messages    r   failr>   +   s    
w

r   c                  	   t                                           rt          d           t          t                    } t          j        t                              d                    }|                    d          dk    s|                    d          durt          d           g }|                    d	g           D ]v}t          |d
         z  }|d         |d
         |
                                j        |
                                j        t          |          d}|                    |           w||                    d	          k    rt          d           t          |          }||                    d          k    rt          d           g }d |D             }t          t                     D ][\  }	}|                                st          d|            t          j        |                    d                    }
t"          |	         }|
                    d          |k    |
                    d          dk    |
                    d          dk    |
                    d          du |
                    d          du |
                    d          du |
                    d          |                    d          k    |
                    d          |k    |
                    d          | k    |
                    d          |k    |
                    d          dk    |
                    d           dk    |
                    d!          d"k    |
                    d#          du d$}t%          |                                          st          d%| d&|            |                    |t)          |                    t                              t          |          dddddd"|
                    d'g           d(
           ]t-          j        t0          j                                                  }i dd"ddddddd|d         d|d| ddd)d"d*d"ddd dd+d,d-dd.|d|d#dd/|i}t7          t           |           t9          t          j        d"t          t                     |d         |t"          d0d1                     d S )2Nz!semantic aggregate must be virginr   )encodingstatusFROZENverifiedTz"audit-set lock not terminal FROZENlocked_filesr   key)rE   r   bytesmtime_nsr
   z&frozen snapshot drift before aggregateaudit_set_sha256z!audit-set digest not reproduciblec                 ,    i | ]}|d          |d         S r   r   r   s     r   r   zmain.<locals>.<dictcomp>H   s"    JJJcs6{CMJJJr   zauditor report missing: 
auditor_idrun_idzrun-002revisionv4staleFterminal	full_readcandidate_sha256audit_lock_receipt_sha256observed_hashesblocker_countr   
high_countverdictPASSpromotion_eligible)rJ   rK   rL   stale_falserO   rP   	candidate	audit_setlock_receiptrS   blockers_zero
highs_zerorV   rX   z"auditor report failed validation: z: findings)
rJ   r   report_sha256rO   rN   rP   rT   rU   rV   r_   provenance_verdictsemantic_verdictindependent_auditor_countr'   auditor_disagreementauditor_reportscompleted_at)rA   semantic_review_sha256rQ   rH   auditors)r   )OUTPUT_PATHexistsr>   r
   	LOCK_PATHr   loads	read_textgetROOTstatst_sizest_mtime_nsappendr#   	enumerateREPORTSEXPECTED_IDSallvaluesstrrelative_tor   nowr   utc	isoformatr:   printr   )	lock_hashlockcurrent_rowsexpectedr   currentr[   reportsrS   indexreportexpected_idchecksr{   	aggregates                  r   mainr   /   sB    20111y!!I:i))7);;<<DxxX%%*)=)=T)I)I1222LHH^R00 	% 	%hv&&E?V$YY[[(		/Tll
 
 	G$$$$txx////5666 ..IDHH/00000111GJJ\JJJO )) " "t{{}} 	42D22333DNNGN<<=="5) **\22kAjj**i7

:..$6!::g..%7

:..$6K00D8$677488DV;W;WW$6779D"JJ'BCCyP%zz*;<<O#ZZ88A= **\22a7zz),,6"(**-A"B"Bd"J
 
  6==??## 	OMkMMVMMNNN%((..//#D\\

:r22
 
 	 	 	 	 ,x|
$
$
.
.
0
0C&D 	) 	D	
 	D!34 	I 	$Y 	 	f 	F 	 	a 	$Q 	 	7  	?!" 	d#$ 	% I( Y'''	$*"("5"5%&89%          r   __main__)r	   r   r2   r   r   pathlibr   __file__resolver%   ro   rk   ri   ru   rv   r
   r#   r:   r>   r   __name__r   r   r   <module>r      s     				 ' ' ' ' ' ' ' '      tH~~'*77	::5533 ()>?9 9 9/ / /       Z Z Zz zDFFFFF r   