
    e`j                         d dl mZ d dlZd dlZd dlZd dlZ ed          Zej        ZdZ	dZ
d Zd Zd Zd	 Zd
 Zd Zd Zedk    r e             dS dS )    )PathNzR/data/video-pipeline/HaTramAudio/project/028-Nguoi-Thay-Ten-Tren-Tam-Bien-Cua-Hangzrun-20260722T063856Z-87753fd5Levyc                      t           j                             t           j        j                                                                      dd          S )Nz+00:00Z)datetimenowtimezoneutc	isoformatreplace     work/audit_publish_ready.pyr   r      s<    "&&x'8'<==GGIIQQRZ[^__
_r   c                    t          j                    }|                     d          5 t          fdd          D ]}|                    |           	 d d d            n# 1 swxY w Y   |                                S )Nrbc                  .                          d          S )Ni   )read)fs   r   <lambda>zsha.<locals>.<lambda>	   s    qvvk** r   r   )hashlibsha256openiterupdate	hexdigest)phbr   s      @r   shar      s    
>ffTll <a****3//;;a;< < < < < < < < < < < < < < <	s   ,A##A'*A'c                     t          j        t          dz                                            } t          t
          t          d                                D ]0\  }}|                     |          |k    rt          d|z             1d S )Nz.ownership-lock.json)
project_idrun_idownerzownership mismatch )
jsonloadsROOT	read_textPIDRUNOWNERitemsgetRuntimeError)dkvs      r   guardr1      s~    :t**557788s599??AA = =SQqUU1XXq[[|$9!$;<<<[= =r   c                 ^    t          j        t          | z                                            S )N)r$   r%   r&   r'   )rels    r   loadr4      s!    TZc 4 4 6 6777r   c                     t                       |                     d| j        z   dz             }|                    t	          j        |dd          dz              t          j        ||            d S )N.z.tmpF   )ensure_asciiindent
)r1   	with_namename
write_textr$   dumpsosr   )r   r.   ts      r   atomicrA      s    !++c!&j&788djQR`emnFoFoFoptFt9u9u9uvx  wA  BC  DE  wF  wF  wF  wF  wFr   c                     t          |           }|                                rt          |          |k    rt          dt	          |          z             t	          |          ||                                j        dS )Nzartifact hash mismatch )pathr   bytes)r   is_filer   r-   strstatst_size)rC   expectedr   s      r   artrJ      si    ::			\s1vvx''l;TUXYZU[U[;[.\.\(\A1ABBBr   c                     t                       t          d          } | d         |                     di           g d}t          fd|D                       rt	          d          t          d          }t          d          }t          d	          }t          d
          }t          d          }t          d          }t          d          }t          d          }	t          d          }
||||||||	|
g	}t          d |D                       rt	          d          t          fd|D                       rt	          d          d         d         d         d         t          fd|||	fD                       rt	          d          t          fd|||	fD                       rt	          d          |                    d          |                    d          k    s,|                    d          |                    d          k    rt	          d          |	                    d          |                    d          k    rt	          d          t          t          d z            t          t          d!z  |d"                   t          |d#         |d                   t          |d#         |d                   t          |d#         |d                   t          |d#         |d                   t          |d#         |d                   t          |d#         |d                   t          |	d#         |	d                   t          |
d#         |
d                   d$
}i d%d&d'd&d(d&d)d&d*d+|d,         cxk    od-k    nc d.|                    d/          d0k    o|                    d1          d ud2|                    d3          d4u o|                    d5          d4u d6d&d7|                    d7          d&u d8|                    d8          d&u d9t          d: |||	fD                       d;|                    d<          d=k    d>t          d? |||	fD                       d@|dA         dB         dCk     dDd&dEd&}t          |                                          st	          dF          i dGdHdIt          dJt          dKdLdMd&dNdOdPdQdRd#|dA         dS         d|dA         dT         dU|dV|dWd&dXd&d<d=dYdZd[t                      i}t          t          d\z  |           t          t          j        dLd&dOt!          |          |dA         dB         d]                     d S )^Nzscript/project-manifest.jsoncanon_sha256gate_events)	storyttsposterlayoutintrofootagefinal_render	transcodemetadatac              3      K   | ]\}                     |i                                d           dk    p*                     |i                                d          duV  ]dS )status	completedverifiedTNr,   ).0xeventss     r   	<genexpr>zmain.<locals>.<genexpr>   sl      vvhi

1RX&&3cvzz!B7G7G7K7KJ7W7W_c7cvvvvvvr   zgate events incompletezscript/promotion-report.jsonzlog/tts.jsonzlog/poster.jsonzlog/layout.jsonzlog/intro-render.jsonzlog/footage-render.jsonzlog/final-render.jsonzlog/transcode-upload.jsonzlog/metadata.jsonc              3   r   K   | ]2}|                     d           dup|                     d          dvV  3dS )rZ   TrX   >   passedrY   Nr[   r\   r]   s     r   r_   zmain.<locals>.<genexpr>   sI      ii[\j%Vx@V)Viiiiiir   zupstream receipt not verifiedc              3   t   K   | ]2}|                     d           p|                     d          k    V  3dS )source_canon_sha256rL   Nr[   )r\   r]   canons     r   r_   zmain.<locals>.<genexpr>   sF      YY1$	%	%	>~)>)>FYYYYYYr   zcanon lineage mismatchrP   artifact_sha256rQ   c              3   J   K   | ]}|                     d           k    V  dS )source_poster_sha256Nr[   )r\   r]   poster_hs     r   r_   zmain.<locals>.<genexpr>   s5      MMA$%%x/MMMMMMr   zposter lineage mismatchc              3   J   K   | ]}|                     d           k    V  dS )source_layout_sha256Nr[   )r\   r]   layout_hs     r   r_   zmain.<locals>.<genexpr>   s5      LLA$%%x/LLLLLLr   zlayout lineage mismatchsource_intro_sha256source_footage_sha256zfinal direct upstream mismatchsource_final_sha256z"transcode direct upstream mismatchzstory/story-canon.txtzstory/spoken-narration.txtspoken_narration_sha256artifact_path)
re   	narrationrO   rP   rQ   rR   rS   finalupload_copyrV   'all_upstream_receipts_terminal_verifiedTcanon_bound_end_to_endall_artifact_hashes_matchdirect_upstream_bindings_match'production_audio_duration_40_60_minutesi`	  duration_secondsi  provider_raster_onlyprovider_skillztao-anhprovider_panel_sourcestext_postprocessing_absenttext_postprocessedFtypography_postprocess"human_poster_approval_not_requiredmirror_appliedsource_audio_discardedtechnical_media_qa_verifiedc              3   l   K   | ]/}|                     d i                                d          du V  0dS )technical_qarZ   TNr[   rb   s     r   r_   zmain.<locals>.<genexpr>"   s        \
j  \
j  RS  ]
^
  ]
b
  ]
b
  c
q
  r
t
  ]
u
  ]
u
  ]
y
  ]
y
  z
D  ]
E  ]
E  IM  ]
M  \
j  \
j  \
j  \
j  \
j  \
jr   footage_content_qa_not_run
content_qanot_run_by_policydownstream_frame_qa_not_runc              3   H   K   | ]}|                     d           dk    V  dS )frame_qaprohibited_not_runNr[   rb   s     r   r_   zmain.<locals>.<genexpr>"   s}        UZ  UZ  BC  VW  V[  V[  \f  Vg  Vg  i}  V}  UZ  UZ  UZ  UZ  UZ  UZr   upload_copy_under_one_gbrt   rD   i ʚ;voice_test_not_requiredlistening_test_not_requiredzpublish checks failedschema_version   r!   r"   rX   rY   rZ   	readinessreadyrd   rh   rk   rC   r   	artifactscheckspostiz_upload_allowed.postiz_schedule_allowed_after_calendar_recheckr   r   
audited_atzlog/publish-ready.json)rX   rZ   r   r   upload_bytes)r1   r4   r,   anyr-   rJ   r&   allvaluesr(   r)   r   rA   printr$   r>   len)mrequiredpromorO   rP   rQ   rR   footrs   transmetareceiptsr   r   r.   re   r^   rl   ri   s                  @@@@r   mainr      s   4.//a6GquuUbceOfOf  qJ  qJ  qJgovvvvmuvvvvv  d  ~J  Kc  ~d  ~d  xd*++^0D0DCDQbLcLcVko  qB  lC  lCdj  JN  Of  Jg  Jg  DI  mq  rK  mL  mL  hl  SW  Xo  Sp  Sp  MR  w{  |W  wX  wX  qv  ^b  cv  ^w  ^w  Y]VF5eE$
?ii`hiiiii  ^p|  ~]  q^  q^  k^YYYYPXYYYYY  G`l  nF  aG  aG  [G

,
-vh7GHY7ZhMMMM%e9LMMMMM{T`azT{T{N{LLLL$uU9KLLLLLzS_`ySzSzMz	II#$$eii0A&B&BBBeiiPgFhFhjnjrjr  tE  kF  kF  GF  GF  MY  Zz  M{  M{  G{	II#$$eii0A&B&BBBVzI{I{C{44U;;DQmLmns  uN  oO  IP  IP  WZ  [^  _n  [o  ps  tE  pF  WG  WG  QT  U[  \k  Ul  ms  tE  mF  QG  QG  QT  U[  \k  Ul  ms  tE  mF  QG  QG  PS  TY  Zi  Tj  kp  qB  kC  PD  PD  OR  SW  Xg  Sh  im  n  i@  OA  OA  JM  NS  Tc  Nd  ej  k|  e}  J~  J~  MP  QV  Wf  Qg  hm  n  h@	  MA	  MA	  M	P	  Q	U	  V	e	  Q	f	  g	k	  l	}	  g	~	  M		  M		  @
  @
 	h	24  	h8PQU  	hVqrv  	h  xX  Y]  	h  ^G  HL  NQ  Rd  Ne  Hk  Hk  Hk  Hk  gk  Hk  Hk  Hk  Hk  	h  lB  CI  CM  CM  N^  C_  C_  aj  Cj  C_  ou  oy  oy  zR  oS  oS  [_  o_  	h  `|  }C  }G  }G  H\  }]  }]  af  }f  }X  kq  ku  ku  vN  kO  kO  SX  kX  	h  Y}  ~B  	h  CS  TX  T\  T\  ]m  Tn  Tn  rv  Tv  	h  wO	  P	T	  P	X	  P	X	  Y	q	  P	r	  P	r	  v	z	  P	z	  	h  {	X
  Y
\
  \
j  \
j  X\  ]b  ch  Wi  \
j  \
j  \
j  Y
j  Y
j  	h  kG  HL  HP  HP  Q]  H^  H^  `s  Hs  	h  tQ  RU  UZ  UZ  HL  MR  SX  GY  UZ  UZ  UZ  RZ  RZ  	h  [u  v  @M  vN  OV  vW  Xe  ve  	h  f  @D  	h  Eb  cg  	hFMMOOH<0G#H#HH ~Q  ~|C  ~  ~Xk  ~*UY  ~Zefm  ~  oD  EJ  ~  Ka  bj  ~  kA  BJ  ~  KZ  [d  er  [s  tz  [{  ~  |M  NW  Xe  Nf  go  Np  ~  q|  }F  ~  GO  PV  ~  Wn  os  ~  td  ei  ~  jv  wJ  ~  KU  Vj  ~  kw  x{  x}  x}  ~  ~  E  FJ  Kc  Fc  de  f  f  f  gl  mq  mw  B	M	  Y	]	  j	q	  {	~	  	E
  {	F
  {	F
  V
_
  `
m
  V
n
  o
v
  V
w
  xx
  xx
  my
  my
  gz
  gz
  gz
  gz
  gz
r   __main__)pathlibr   r   r   r$   r?   r&   r<   r(   r)   r*   r   r   r1   r4   rA   rJ   r   __name__r   r   r   <module>r      s                        	T
^__dhdm`c  sRnq  Y_  SX _ _ _  
= = = 8 7 7 F  F  FC C Cz
 z
 z
  Zr   