
    _j              	           d dl Z d dlZd dlZd dlmZ  ee                                          j        d         Zedz  Z	dZ
dddd	d
ddddZd Zd Zd Zedk    r e             dS dS )    N)Path   zscript/project-manifest.json@b4f8136eb6ac3ef29c2c6036ad0fc73726e8317ce0f8205a1c4bf1cb83da230dzscript/image-prompts.jsonzimage/intro-poster-master.pngz image/intro-poster-1920x1080.pngzscript/layout-manifest.jsonzscript/tts-manifest.jsonzlog/tts.jsonzaudio/intro-voice.wavzaudio/intro-silence-2s.wav)image_promptsintro_poster_masterintro_posterlayout_manifesttts_manifesttts_receiptintro_voiceintro_silencec                    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)handles    script/route-production-paths.py<lambda>zsha256.<locals>.<lambda>   s    &++o">">     r   )hashlibsha256openiterupdate	hexdigest)pathdigestblockr   s      @r   r   r      s    ^F	4 !F>>>>DD 	! 	!EMM%    	!! ! ! ! ! ! ! ! ! ! ! ! ! ! ! s   ,A##A'*A'c                     |                      | j        dz             }|                    t          j        |dd          dz   d           t          j        ||            d S )Nz.partF   )ensure_asciiindent
utf-8encoding)with_suffixsuffix
write_textjsondumpsosreplace)r   valueparts      r   atomic_jsonr0      sa    DK'122DOODJu5CCCdJU\O]]]JtTr   c            	         t          j        t                              d                    } |                     d          dk    s-|                     di                               d          dk    rt          d          t          t          t                    rt          st          d	          |                     d
          t          k    rt          d          t          | d         d         z  }t          j        |                    d                    }|                    d          dus|                    d
          t          k    rt          d          |                    d          dk    s0|                    d          dk    s|                    d          durt          d          | d         fdt                                          D             }|rt          d|                               t                                                     D ]M\  }}t          |z                                  }|                    t                                                     Nddt          t          |                    t                              t          |          d| d<   t!          t          |            t#          t          j        ddt'          t                    dd                     d S )Nr$   r%   
active_runzrun-002stepsstory	completedzIproduction routing blocked until active run-002 Story Promotion Gate PASSz-run-002 production routing hash is not frozencandidate_sha256zcandidate hash driftactive_pathssemantic_reviewverifiedTz.semantic audit not terminal on exact candidatesemantic_verdictPASSprovenance_verdictstaleFz!semantic/provenance gate not PASSc                 H    i | ]\  }}|v 	|         |k    ||         S  r?   ).0keyr.   actives      r   
<dictcomp>zmain.<locals>.<dictcomp>3   s=    ooojc5vZ`adZeinZnZnfSkZnZnZnr   zactive path alias conflicts: )statusr9   aliases_addedsemantic_review_pathsemantic_review_sha256production_routing)rD   r9   rE   )r!   )r*   loadsMANIFEST	read_textgetRuntimeError
isinstanceEXPECTED_CANDIDATEstrROOTREQUIREDitemsr   resolverelative_tor   r0   printr+   sorted)manifestsemantic_pathsemantic	conflictsrA   relr   rB   s          @r   mainr]   $   s   z(,,g,>>??H||L!!Y..(,,w2K2K2O2OPW2X2X\g2g2gfggg(#.. L6H LJKKK||&''+===12228N34EFFMz-1171CCDDH||Jt++x||<N/O/OSe/e/eKLLL||&''611X\\BV5W5W[a5a5aemeqeqryezez  CH  fH  fH>???n%FooooHNN4D4DoooI HF9FFGGG
MM(LLNN ) )Ss
##%%((((4( #M$=$=d$C$C D D"("7"7& &H!"
 (###	$*PVW_P`P`aapu
v
v
vwwwwwr   __main__)r   r*   r,   pathlibr   __file__rT   parentsrQ   rJ   rO   rR   r   r0   r]   __name__r?   r   r   <module>rc      s      				      tH~~'*00W 0:64.!*1	 	    x x x> zDFFFFF r   