
    k_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mZmZ d dlm	Z	  e	d          Z
dZdZdZe
d	z  d
z  Ze
d	z  dz  Ze
dz  dz  Ze
dz  dz  Ze
dz  dz  Ze
dz  dz  Ze
d	z  dz  Zedz  edz  ddfedz  edz  ddfedz  edz  ddfdZd,dZd-d"Zd.d$Zd/d&Zd0d)Zd.d*Zed+k    r e             dS dS )1    )annotationsN)datetimetimezone)PathzQ/data/video-pipeline/HaTramAudio/project/020-Chiec-Nhan-Chi-Deo-Khi-Co-Nguoi-Nhinz(020-Chiec-Nhan-Chi-Deo-Khi-Co-Nguoi-Nhinzrun-20260721T124541Z-88551d8aLevyimageprovider
normalizedlogzartwork-qa.jsonscriptzimage-prompts.jsonzpromotion-report.jsonzproject-manifest.jsonzlayout-manifest.jsonzleft-panel-provider.pngzleft-panel-656x1080.png  8  zright-panel-provider.pngzright-panel-656x1080.pngzintro-poster-provider.pngzintro-poster-1920x1080.png  )
left_panelright_panelintro_posterreturnstrc                     t          j        t          j                                                                      dd          S )Nz+00:00Z)r   nowr   utc	isoformatreplace     work/build_layout.pyr   r      s0    <%%//1199(CHHHr   pathr   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    !&&"9"9 r   r   )hashlibsha256openiterupdate	hexdigest)r   hblockr#   s      @r   shar-   !   s    A	4 A99993?? 	 	EHHUOOOO	               ;;==s   ,A##A'*A'Nonec                    t          j        t          dz                      d                    } t          t
          t          d                                D ]0\  }}|                     |          |k    rt          d|           1d S )Nz.ownership-lock.jsonutf-8encoding)
project_idrun_idownerzownership mismatch: )
jsonloadsROOT	read_text
PROJECT_IDRUN_IDOWNERitemsgetRuntimeError)dkeyvalues      r   guardrC   )   s    
D11<<g<NNOOA%/6ERRXXZZ = =
U55::;c;;<<< = =r   tuple[int, int]c                ^   t          j        ddddddddd	t          |           g
          }t          j        |                              d
g           }t          |          dk    rt          d|            t          |d         d                   t          |d         d                   fS )Nffprobez-verrorz-select_streamszv:0z-show_entrieszstream=width,heightz-ofr6   streams   zinvalid image stream: r   widthheight)	
subprocesscheck_outputr   r6   r7   r>   lenr?   int)r   rawrH   s      r   dimsrQ   0   s    

!4"3UOMbvs4yy#  C joo!!)R00G
7||q:D::;;;wqz'"##SH)=%>%>>>r   rB   dictc                    t                       |                     d| j        z   dz             }|                    t	          j        |dd          dz   d           t          j        ||            d S )	N.z.tmpF   )ensure_asciiindent
r0   r1   )rC   	with_namename
write_textr6   dumpsosr   )r   rB   tmps      r   atomic_jsonr_   ;   sl    	GGG
..ty61
2
2CNN4:e%BBBTIT[N\\\JsDr   c                    t                       t          j        t                              d                    } |                     di                               di           }|                     di                               d          dk    s|                    d          durt          d	          t          j        t                              d                    }t          j        t                              d                    }t          j        t                              d                    }|                    d
          p|                    d          }|                     d
          |k    s|                    d
          |k    rt          d          |                    d          r|                    d          dk    rt          d          |                    d          |k    s|                    d          |k    rt          d          t                              dd           i }t                                          D ]\  }\  }}	}
}|                                st          d|           |                    di                               |i                               d          }t          |          }||k    rt          d|           t!          |          \  }}||z  }|
|z  }t#          ||z
            |z  }|dk    rt          d| d|d          |	                    d|	j        z   dz             }t)          j        ddddd d!t-          |          d"d#|
 d$| d%d&d't-          |          g           t!          |          |
|fk    rt          d(|           t                       t/          j        ||	           t-          |          |||gt-          |	          t          |	          |
|g|d)d*d*d*d*d+||<   t          d,z  }|                    d|j        z   dz             }t)          j        ddddd d!t-          t          d-         d.                   d!t-          t          d/         d.                   d0d1d2d3d&d't-          |          g           t!          |          d4k    rt          d5          t                       t/          j        ||           i d6d.d7t2          d8t4          ddddd9dd:d;d|d<t          t                    d=dd|d>t-          |          d?t          |          d@dAdBgdCg dDg dEg dFdGdHdIdJt7                      }t9          t:          |           t=          t          j        ddt-          |          |d?         dKd*L                     d S )MNr0   r1   gate_eventsstorysteps	completedverifiedTzStory Gate is not committedcanon_sha256source_canon_sha256z!Story Gate canon binding mismatchstatuspassedzartwork visual QA is not passedz artwork authority canon mismatch)parentsexist_okzmissing provider artifact: r=   artifact_sha256zprovider hash mismatch: gp=
ף?z.aspect ratio too far for full-frame resample: z delta=z.6frT   z.tmp.pngffmpegz-hide_bannerz	-loglevelrG   z-yz-iz-vfzscale=:z:flags=lanczosz	-frames:v1z normalized dimensions mismatch: full_frame_resample_onlyF)source_pathsource_sha256source_dimensionstarget_pathtarget_sha256target_dimensionsratio_delta	operationcroppadrotatetypography_postprocesszlayout-1920x1080.pngr   rI   r   z-filter_complexz[0:v]format=rgb24[left];[1:v]format=rgb24[right];color=c=#101820:s=1920x1080:r=1[base];[base][left]overlay=0:0[tmp];[tmp][right]overlay=1264:0,format=rgb24[out]z-mapz[out])r   r   zlayout dimensions mismatchschema_versionr3   r4   technical_verified
content_qanot_run_by_policyartwork_qa_sha256provider_only_typographylayout_pathlayout_sha256layout_dimensionsr   r   coordinates)r   r   r   r   )r   r   i`  r   )i  r   r   r   )leftcenterrightcenter_fillz#101820
created_at)rh   re   layoutr   )rV   ) rC   r6   r7   PROJECT_MANIFESTr9   r>   r?   
ARTWORK_QAPROMPTS	PROMOTION
NORMALIZEDmkdirTARGETSr=   is_filer-   rQ   absrY   rZ   rL   
check_callr   r]   r   r:   r;   r   r_   MANIFESTprintr\   )project_manifestrb   qaprompts	promotion
canon_hashr=   rA   sourcetargettwthexpectedsource_hashswshsource_ratiotarget_ratiorw   r^   r   
tmp_layoutmanifests                          r   mainr   B   sp   	GGGz"2"<"<g"<"N"NOO  3377DDEGR((,,W55DD		R\H]H]eiHiHi8999	J(('(::	;	;Bj**G*<<==G
9...@@AAI~..V)--@U2V2VJN++z99UYY~=V=VZd=d=d>???66* >!1!1X!=!=<===	vv#$$
22gkkBW6X6X\f6f6f=>>>TD111E)0 #
 #
%%ffb"~~ 	GEVEEFFF66'2&&**333778IJJ&kk(""?#??@@@fBBwBw,566EmPSmm\gmmmnnnsV[0:=>>nk7D$F3B33333[#s3xx
 	 	 	 99R  G#GGHHH

3v;;("$bv;; [["$b&3&+
 
c

 00F!!#"3j"@AAJ.+wc','*++T3w}7Ma7P3Q3Q 	kc3z??    J<''7888	GGGJz6"""!j 	& 	+	
 	D 	d 	) 	z 	S__ 	#D 	 	s6{{ 	V 	dD\ 	 1 1 1=P=P=P[o[o[opp  	y!" 	cee#H& (###	$*Vgop  hA  B  B  QV  W  W  W  X  X  X  X  Xr   __main__)r   r   )r   r   r   r   )r   r.   )r   r   r   rD   )r   r   rB   rR   r   r.   )
__future__r   r%   r6   r]   rL   r   r   pathlibr   r8   r:   r;   r<   PROVIDERr   r   r   r   r   r   r   r   r-   rC   rQ   r_   r   __name__r   r   r   <module>r      s   " " " " " "   				     ' ' ' ' ' ' ' '      t_``7
	('>J&G^l*
E\--

/0
08O55	(?%<< '>2277F_9_adfjk99:Hb;bdgimn ;;ZJf=fhlnrs I I I I   = = = =? ? ? ?   WX WX WX WXt zDFFFFF r   