
    _j                        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 ed          Zej	        Z
dZdZedz  ez  Z ej                    dz  Zedz  ed	z  ed
z  dZd Zd Zd Zd Zd Zedk    r e             dS dS )    )PathNzD/data/video-pipeline/HaTramAudio/project/025-Nguoi-Giu-Cho-Cuoi-Cungzrun-20260721T232244Z-a0837ee4Levyzwork/artworkzA.hermes/skills/content-creation/tao-anh/scripts/generate_image.pyzintro-poster-provider.pngzleft-panel-provider.pngzright-panel-provider.png)intro_poster
left_panelright_panelc                      t           j                             t           j        j                                                                      dd          S )Nz+00:00Z)datetimenowtimezoneutc	isoformatreplace     >work/artwork/run-20260721T172022Z-9462493a/generate_artwork.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	          fdt
          t          t          d                                D                       rt          d          t          j        t          dz                                            } | 
                    di           
                    di           }| 
                    d          }| 
                    d	i           
                    d          d
k    s0|
                    d          dus|
                    d          |k    rt          d          t          t          dz            |k    rt          d          | |fS )Nz.ownership-lock.jsonc              3   P   K   | ] \  }}                     |          |k    V  !d S )N)get).0kvds      r   	<genexpr>zguard.<locals>.<genexpr>   s5      UU!a!UUUUUUr   )
project_idrun_idownerzownership mismatchzscript/project-manifest.jsongate_eventsstorycanon_sha256steps	completedverifiedTz#Story Gate is not committed/currentzstory/story-canon.txtzcanon drift)jsonloadsROOT	read_textanyPIDRUNOWNERitemsRuntimeErrorr%   r"   )mecanonr)   s      @r   guardrA      s}   :t**557788UUUUS#eLLRRTTUUUUU~\hi}\~\~V~:t22==??@@155WYCZCZC^C^_fgiCjCjqrqvqv  xF  rG  rGkpEE'"'""K//1553D3DD3P3PTUTYTYZhTiTikpTpTp  xD  Ej  xk  xk  rk$$%%u,,<3N3N-N	%r   c                    t                       | j                            dd           |                     d| j        z   dz             }|                    t          j        |dd          dz              t          j	        ||            d S )	NT)parentsexist_ok.z.tmpF   )ensure_asciiindent
)
rA   parentmkdir	with_namename
write_textr4   dumpsosr   )r   r)   ts      r   atomicrR      s    d	3	3	3akk#af*VBS6T6TAUVUaUabfblmn  }B  JK  cL  cL  cL  MQ  cQ  VR  VR  VR  SU  S]  ^_  `a  Sb  Sb  Sb  Sb  Sbr   c                  
   t                      \  } }t          j        t          dz                                            }|                    d          |k    s0|                    d          dk    s|                    d          durt          d          |                    di                                           D ]2\  }}t          t          |z            |k    rt          d	|z             3g }t                                          D ]0\  }}t                       |                    d
i                               |i           }t          |                    dd                                                    }	t                                          |	j        vs:|	                                r&t          |	          |                    d          k    rt          d|z             |	                    d          }
t          | dz  }|                                r|                                rt          j        |                                          }|                    d          dk    ru|                    d          |k    r\|                    d          |d         k    r=|                    d          t          |          k    r|                    |           t          d|z             |                                rt          d|z             dt"          t$          dddd||t'          |	          |d         t'          |          dt)                      d}t+          ||           t-          j        t0          j        t'          t4                    d|
dt'          |          dddd d!d d"d d#d$d%d&d'd(gd)t,          j        t,          j        d*+          }|j        d,k    r]|                    d-dd.|j        p|j        d/d          t)                      d0           t+          ||           t          d1|z             |                                r=|                                 j!        d2k     s |"                                d d3         d4k    rt          d5|z             t                       |                    ddd)t'          |          t          |          |                                 j!        dt)                      d6           t+          ||           |                    |           2tG          t          j$        d7dd8 |D             d9d:                     d S );Nzscript/image-prompts.jsonsource_canon_sha256provider_skillztao-anhtext_postprocessing_allowedFzprompt bundle contract mismatchauthority_sha256zauthority drift r<   prompt_path prompt_sha256zprompt binding mismatch zutf-8)encodingz.generation.jsonstatus	generatedartifact_sha256zstale artwork receipt/artifact zunreceipted artwork exists    
requestingzcx/gpt-5.5-image)schema_versionr+   r,   r\   r3   rU   provider_modelrT   rolerX   rZ   outputtext_postprocessed
created_atz--promptz--outputz--n1z--sizeautoz	--qualityz--backgroundz--detailhighz--formatpngz	--timeout600Ti  )textstdoutstderrtimeoutr   failedprovider_failediP)r\   r3   
error_typeerror
updated_atzprovider failed i      s   PNG

zinvalid provider PNG )r\   r3   technical_verifiedartifact_pathr^   artifact_bytesprovider_requestscompleted_atgenerated_awaiting_artwork_qac                 >    g | ]}|d          |d         |d         dS )rc   rw   r^   )rc   pathr   r   )r&   xs     r   
<listcomp>zmain.<locals>.<listcomp>*   sp      Vp  Vp  Vp  fg^_`f^gop  rA  pB  LM  N_  L`  Wa  Wa  Vp  Vp  Vpr   )r\   r3   r<   )rG   )%rA   r4   r5   r6   r7   r%   r=   r<   r"   OUTPUTSr   resolveWORKrC   is_fileexistsappendr9   r:   strr   rR   
subprocessrunsys
executableGENPIPE
returncoder   rn   rm   statst_size
read_bytesprintrO   )r>   r@   bundlerelexpecteddonerc   outitemrX   promptreceiptoldattemptresults                  r   mainr      s   	5
D)D$D#O#O#Q#QRR
JJ$%%u,,

;K0L0Li0W0W[a[e[e  gD  \E  \E  MR  \R  \R  Ye  fG  YH  YH  SHZZ 2266<<>> H H\Sc]]H<0B30F#G#GG L LXT#'''vzz'"%%))$r22$tDHH][]D^D^?_?_?g?g?i?i;	\\^^;...k6I6I6K6K.sS^O_O_aeaiaijyazazOzOz  BN  Oi  jn  On  Bo  Bo  |o					0	0&>W>W>W9W^^ >#**,, >z'##%%&&3	ggh$$1F)G)G)N)NSVSZSZ[jSkSkmq  sB  nC  TC  TC  HK  HO  HO  Pa  Hb  Hb  dg  hk  dl  dl  Hl  Hl  mq  mx  mx  y|  m}  m}  m}  ~F	7<	=	==ZZ\\H%B4%GHHH3\]bt}  Pb  y~  FJ  Y\  ]h  Yi  Yi  z~  N  zO  Y\  ]`  Ya  Ya  w|  JM  JO  JO  P  P'  QW  X_  `g  Qh  Qh  Qh	CF:cRUhhW\]`aijpq|  ~D  ES  TZ  [e  fl  mw  x}  ~I  JO  P  VZ  bl  bq  yC  yH  QT  
U  
U  
U&
>>HCT^d^k^|ouo|  D  E  E  ^F  TW  TY  TY  Z  Z  [  [  [  \b  cj  kr  \s  \s  \s  zF  GY  Z^  G^  z_  z_  t_	  Q#((**,T11S^^5E5Ebqb5IK_5_5_fr  tK  LP  tP  gQ  gQ  aQ''''..;%UYjmnqjrjr  FI  JM  FN  FN  `c  `h  `h  `j  `j  `r  GH  X[  X]  X]  ^  ^  _  _  _  `f  gn  ov  `w  `w  `w  x|  xC  xC  DK  xL  xL  xL  xLtz;u  Vp  Vp  ko  Vp  Vp  Vp  q  q  D  E  E  E  F  F  F  F  Fr   __main__)pathlibr   r
   r   r4   rP   r   r   r6   rM   r9   r:   r;   r   homer   r   r   r"   rA   rR   r   __name__r   r   r   <module>r      s         . . . . . . . . . . . . . . . . . . . . . . . .	T
PQQVZV_RU  eD`c  KQ  EJ  W[  \j  Wj  kn  Wn  RV  s|  sw  s|  s~  s~  B  sB  or88dKdFdsw  yS  tS  	T  	T _ _ _  
  b b bF F F, Zr   