
    &_j                         d dl Z d dlZd dlmZ  ee                                          j        d         Zedz  Zg dZ	dd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work/story/run-002)pov_identity_powerexternal_goal_deadlinepressure_systemomitted_group_or_relationshipconsent_agency_mechanismprotagonist_active_mistake	real_lossreveal_provenanceclimax_forum_mechanismresolution_modelsocial_professional_payoffromantic_payoff_ending_image   
         )
teaser_pressure_retentiondistinctive_recallable_premiseprotagonist_agencyzmulti-reversal_story_engine,relationship_attraction_resistance_asymmetry/escalation_mini_payoff_irreversible_consequencefair_seeded_evidence_twistchoice_driven_costly_climaxaccessible_setting_professionoriginalityc                 r    t          j        |                                                                           S N)hashlibsha256
read_bytes	hexdigest)paths    #script/validate-creative-options.pyr!   r!   $   s(    >$//++,,66888    c                      t          |           r   )RuntimeError)messages    r%   failr*   (   s    
w

r&   c                  l   t          j        t          dz                                            } t          dz  }t          dz  }t          dz  }t          dz  }t          dz  }t          dz  }|                     d          d	k    s|                     d
          dk    rt          d           t          j        |                                          }t          j        |                                          }t          j        |                                          }	t          j        |                                          }
t          j        |                                          }t          j        |                                          }|                    di           }t          |          t          |          t          |          t          |          t          |          d}||k    rt          d           |                    d
          dk    s|                    d          dk    rt          d           |                    d          dk    s|                    d          durt          d           |	                    d
          dk    rt          d           |
                    d          dus|
                    d          dk    rt          d           |                    d          dus|                    d          dk    rt          d            |                    d!g           }t          |          d"k    st          d# |D                       d"k    rt          d$           d% |	                    d&g           D             }|D ] }|                    d          dk    s|                    d'          d(k    r%t          d)|                    d*                      t          |                    d+g                     |vr%t          d,|                    d*                      |                    d-i           }t          |          t          k    r%t          d.|                    d*                      |                    d/i           t                    t          t                    k    r%t          d0|                    d*                      t          fd1t                                          D                       r%t          d2|                    d*                      t!                                                    }|                    d3          |k    r%t          d4|                    d*                      |                    d5g           }t          |          d6k    st!          d7 |D                       d8k     r%t          d9|                    d*                      |                    d:i           }h d;}t          |                    d<i                     |k    r%t          d=|                    d*                      t          |d<                                                   r%t          d>|                    d*                      t          |                    d?g                     d"k     r%t          d@|                    d*                      |                    dA          s%t          dB|                    d*                      t          |                    dCg                     dDk    r%t          dE|                    d*                      |                    dFg           }t          |          dk    s dG |D             dH |dI         D             k    r%t          dJ|                    d*                      t          dK |D                       r%t          dL|                    d*                      |D ]2}t%          |                    dM          t                    s;t          dN|                    d*           dO|                    dP                      |                    dQ          }t%          |t&                    r|                                s;t          dR|                    d*           dO|                    dP                      |                    dS          dTurdU|dV<   t          |dM                   d"k    r|                    dW          dXk    rdU|dV<   4|dYk    ot+          dZ |D                       |d[<   d\ |D             }|st          d]           |                    d^          }|d_ |D             vrt          d`           t-          t          j        dadt          |          db |D             |ddcdTd                     d S )eNzscript/project-manifest.jsonzfamily-lock.jsonzcorpus-inventory.jsonzname-candidate-check.jsonz corpus-fingerprint-findings.jsonz0fingerprint-index-11-muoi-hai-giay-bong-toi.jsonzcreative-options.json
active_runzrun-002statusz$run-002_options_ready_for_validationz2manifest not ready for Creative Options validationbindings)family_lock_sha256corpus_inventory_sha256name_candidate_check_sha256"corpus_fingerprint_findings_sha256fingerprint_index_11_sha256z$Creative Options input binding driftlocked_before_premisestory_family_primaryu   Cưới trước yêu sauzfamily-first lock failedcovered_prior_project_count   identity_coverage_completeTzcorpus/name coverage incompletepassedzname candidate check failedverified)actual_unique_fingerprinted_project_countz3semantic fingerprint coverage is not terminal 17/17inventory_index   z-repaired index-11 fingerprint is not terminaloptionsr   c                 8    h | ]}|                     d           S 	option_idget.0rows     r%   	<setcomp>zmain.<locals>.<setcomp>Q   s$    CCCscggk22CCCr&   z'exactly three distinct options requiredc                 f    h | ].}|                     d           du t          |d                   /S )eligibleTpair)rC   tuplerE   items     r%   rG   zmain.<locals>.<setcomp>S   sE       88J4'' 	d6l'''r&   candidate_pairsstory_family_secondaryu
   không cózfamily drift in rA   central_namesz"central names are not eligible in fingerprintz+12-axis fingerprint schema/order failed in rubric_scoreszrubric schema failed in c              3      K   | ];\  }}t          |         t                     p|         d k     p|         |k    V  <dS )r   N)
isinstanceint)rE   keymaximumscoress      r%   	<genexpr>zmain.<locals>.<genexpr>c   so        D  D`l`cel:fSk3///[6#;?[fSkT[F[  D  D  D  D  D  Dr&   zrubric bounds failed in rubric_totalzrubric total mismatch in gate2_answersr   c              3   Z   K   | ]&}t          |                    d                     V  'dS )answeredN)boolrC   rL   s     r%   rY   zmain.<locals>.<genexpr>i   s6      $T$TDT$((:*>*>%?%?$T$T$T$T$T$Tr&      z"Gate 2 answer threshold failed in 	hard_gate>   system_reform_resolutionprocedural_evidence_enginedecide_for_spouse_as_protectionone_sided_self_erasure_rewarded#solvable_by_one_honest_conversation+climax_depends_on_public_or_family_approval6proposal_invitation_permission_or_adjacent_seat_endingprohibited_patternsz#hard-gate pattern schema failed in zprohibited pattern present in power_shiftszthree power shifts required in !real_loss_not_repaired_by_apologyzreal loss missing in "independent_private_climax_choicesr   z+two independent climax choices required in corpus_comparisonsc                 8    h | ]}|                     d           S projectrB   rE   xs     r%   rG   zmain.<locals>.<setcomp>   s$    %L%L%L1aeeI&6&6%L%L%Lr&   c                     h | ]
}|d          S rn    rp   s     r%   rG   zmain.<locals>.<setcomp>   s     PyPyPybcQRS\Q]PyPyPyr&   entriesz)17-project comparison coverage failed in c              3   D   K   | ]}|                     d           dvV  dS )verdict>   PASSREDESIGNNrB   rp   s     r%   rY   zmain.<locals>.<genexpr>   s4      QQquuY';;QQQQQQr&   z$comparison verdict schema failed in shared_axeszshared_axes missing in z	 against ro   decisive_differencezdecisive difference missing in causal_chain_sameFrx   rv   three_axis_chain_adjudicationdifferent_causal_chainU   c              3   H   K   | ]}|                     d           dk    V  dS )rv   rw   NrB   rp   s     r%   rY   zmain.<locals>.<genexpr>   s3      -^-^QaeeI.>.>&.H-^-^-^-^-^-^r&   rI   c                 "    g | ]}|d          
|S )rI   rs   rD   s     r%   
<listcomp>zmain.<locals>.<listcomp>   s!    777s:7777r&   z*no Creative Option eligible for Brief Lockselected_option_idc                     h | ]
}|d          S r@   rs   rD   s     r%   rG   zmain.<locals>.<setcomp>   s    ===SK(===r&   zselected option is not eligiblerw   c                     g | ]
}|d          S r@   rs   rD   s     r%   r   zmain.<locals>.<listcomp>   s    BBB#S-BBBr&   )r-   r:   options_sha256eligible_optionsr   corpus_project_count)ensure_ascii)jsonloadsROOT	read_textRUNrC   r*   r!   lenrK   listREQUIRED_AXESset
RUBRIC_MAXanyitemssumvaluesrT   strstripallprintdumps)manifestfamily_pathcorpus_path
names_pathfindings_pathrepaired_fingerprint_pathoptions_pathfamilycorpusnamesfindingsrepaired_fingerprintr>   r.   expectedrowseligible_name_pairsrF   fptotalanswersr`   required_falsecomparisons
comparison
differencerI   selectedrX   s                               @r%   mainr   ,   s@
   z4"@@KKMMNNH**K//K22J<<M #&X X00L||L!!Y..(,,x2H2HLr2r2rABBBZ--//00FZ--//00FJz++--..Ez-113344H:&?&I&I&K&KLLj//1122G{{:r**H$[11#)+#6#6'-j'9'9.4].C.C'-.G'H'H H 83444zz(666&**E[:\:\`{:{:{'(((zz/00B66&**Ea:b:bjn:n:n.///yyh&&*+++||Jt++x||<g/h/hln/n/nBCCC
++477;O;S;STe;f;fjl;l;l<===;;y"%%D
4yyA~~CCdCCCDDII6777 II/44  
  6_ 6_77)**.IIISWWUmMnMnr~M~M~:CGGK$8$8::;;;"--..6IIILcggk6J6JLLMMMWW]B''88}$$Usww{?S?SUUVVV"--v;;#j//))BCGGK,@,@BBCCC  D  D  D  Dpz  qA  qA  qC  qC  D  D  D  D  D 	DBCGGK,@,@BBCCCFMMOO$$77>""e++CSWW[-A-ACCDDD''/2..w<<2$T$TG$T$T$T!T!TWX!X!XLcggk6J6JLLMMMGGK,,	
 
 
 y}}2B7788NJJMsww{7K7KMMNNNy./668899 	JH#''+2F2FHHIIIy}}^R0011A55I377;3G3GIIJJJ}}@AA 	A?)=)=??@@@y}}A2FFGG1LLUsww{?S?SUUVVVgg2B77{r!!%L%L%L%L%LPyPygmnwgxPyPyPy%y%ySSWW[=Q=QSSTTTQQ[QQQQQ 	PN8L8LNNOOO% 		3 		3Jjnn];;TBB kisww{/C/Ciijnn]fNgNgiijjj#(=>>Jj#.. sj6F6F6H6H sqsww{7K7KqqV`VdVdenVoVoqqrrr~~122%??(2
9%:m,--22z~~Fe7f7f  kC  8C  8C(2
9%2+^#-^-^R]-^-^-^*^*^J77t777H ;9:::{{/00H==H=====.///	$* ..BBBBB& "         r&   __main__)r    r   pathlibr   __file__resolveparentsr   r   r   r   r!   r*   r   __name__rs   r&   r%   <module>r      s           tH~~'*
!!   "$&(#%4679"$#%%& 
9 9 9     p p pf zDFFFFF r&   