+
    i	                    z   ^ RI Ht ^ RIt^ RIt^ RIt^ RIHt ]! ]4      P                  4       P                  ^,          t
]! ]
4      ]P                  9  d#   ]P                  P                  ^ ]! ]
4      4       ^ RIHtHtHt ^ RIHtHtHtHtHt ^ RIHtHt ^ RIHt ^ RIHt R	 tR
 t ]!R8X  d
   ] ! 4        R# R# )    )annotationsN)Path)DB_PATHinit_db	fetch_one)create_projectcreate_scenecreate_taskmark_task_submittedupdate_task_from_callback)validate_payloadValidationError)_extract_assets)download_pending_assetsc                    \         P                  ! 4       '       d   \         P                  ! 4        R FJ  p \        \	        \         4      V ,           4      pVP                  4       '       g   K:  VP                  4        KL  	  \        4        R# )-walN)r   z-shm)r   existsunlinkr   strr   )suffixps     scripts/validate_next_stage.pyreset_dbr      sO    ~~)"W&'88::qxxz # I    c                 "   \        4        \        R RR4       \        RRRR R^RRR	R
R^RR/4       Rp  \        RRR/4       \        RRRR/4      p\        VRRRRRRRRR//4       RRRRRRRRR R!R"R#R$R%//R&R'R"R(R$R)R*R+RR/.//p\        V4      p\        WC4       \        R,V34      p\        4       p\        R-V34      p\        \        P                  ! RR.R/V R0VR1VR2V/R3^R47      4       R#   \         d   p\        T4      p  Rp?LRp?ii ; i)5	proj_demozDemo ProjectzNext stage validationscene_idscene_demo_001
project_idordering	narrationnvisual_promptvtarget_duration
scene_typetextN
text2videoduration5promptdemokling_demo_task_002req_demo_002
request_iddatatask_idtask_status	submittedsucceedtask_status_msgokfinal_unit_deduction12	task_infoparent_videoidparent_1urlzhttps://example.com/parent.mp4task_resultvideosvid_002zCfile:///Users/moon/.openclaw/workspace/youtube-automation/README.mdwatermark_url zbSELECT final_unit_deduction, parent_video_id, parent_video_url FROM tasks WHERE task_id_internal=?z4SELECT local_path FROM assets WHERE source_task_id=?Tvalidation_errornormalized_task_fields
downloadedasset_local_pathF)ensure_asciiindent)r   r   r	   r   r   r   r
   r   r   r   r   r   printjsondumps)rC   er1   payloadinternaltaskrE   assets           r   mainrQ      s   J;0GH*-l;zRST_`cdstw  yJ  KL  MY  Z`  a  b"
3'78 *L8F:KLG!6Vdekmv  xM  N[  \g  mh  Ii  j'i$tntJu=]&^_4	%8}  N  OQ  R\  ]`  #a  "b  cG )1HH&y  }E  |G  HD(*JLxkZE	$**dD"46FH`bfht  wA  CU  W\  ]  lq  z{  |  }%  "q6"s   C. .D9D		D__main__)"
__future__r   rJ   ossyspathlibr   __file__resolveparentsROOTr   pathinsert
scripts.dbr   r   r   scripts.repositoryr   r	   r
   r   r   scripts.validatorsr   r   server.callback_receiverr   scripts.asset_downloaderr   r   rQ   __name__ r   r   <module>rd      s    "  	 
 H~''*t9CHHHHOOAs4y! 2 2 x x @ 4 <}: zF r   