from pathlib import Path
import sys,json,shutil
LOCAL=Path(__file__).resolve().parent.parent;BASE=LOCAL.parent
sys.path.insert(0,str(BASE/'2026-10-29_contextra-fight-b-refine_r01/helpers'))
import control_refine as c
c.LOCAL=LOCAL;c.REMOTE=c.old.RB+'/'+LOCAL.name;c.PREFIX='contextra-r5-1030-r01-';c.REPORT=LOCAL/'reports'
P=BASE/'2026-10-30_contextra-fight-robust-32clips_r01'
names=['01_camera24_fight','07_KISA_fight_C00_015_0009','08_KISA_fight_C00_018_0012','09_KISA_fight_C00_021_0011']+['SELF_'+x for x in ('C10','C11','C12','C15','C16','C17','C19','L02')]
if sys.argv[1]=='setup':
 c.REPORT.mkdir(exist_ok=True);c.checked_resources();c.snapshot('before')
 c.old.checked(['test','!','-e',c.REMOTE])
 for name in ('specs.json','sources.json','self_maps.json','feedback.json','cases.json','baseline_fingerprints.json'):
  value=c.read(P/name)
  if name in ('specs.json','sources.json','self_maps.json'):value={k:v for k,v in value.items() if k in names}
  (LOCAL/name).write_text(json.dumps(value,ensure_ascii=False))
 assert sum(len(s['selected_samples']) for s in c.read(LOCAL/'specs.json').values())==11939
 c.old.checked(['mkdir',c.REMOTE],sudo=True);c.old.checked(['chown','si:si',c.REMOTE],sudo=True)
 c.old.checked(['mkdir','-p',c.REMOTE+'/download',c.REMOTE+'/reports'])
 for p in [LOCAL/'helpers',*LOCAL.glob('*.json')]:c.old.scp(str(p),'si@58.233.207.31:'+c.REMOTE+'/')
elif sys.argv[1]=='jobs':
 for clip in names:
  c.run_job('replay',clip)
  c.run_job('render_r5',clip)
elif sys.argv[1]=='pull':c.old.scp('si@58.233.207.31:'+c.REMOTE+'/download/.',str(LOCAL/'Contextra_Fight_R5_Review_20261030'))
elif sys.argv[1]=='package':c.run_job('package_r5','all')
elif sys.argv[1]=='finish':c.finish()
