"""Reuse the bounded CPU trial controller; only this run is writable."""
import json
from pathlib import Path
import shutil
import sys

LOCAL = Path(__file__).resolve().parent.parent
BASE = LOCAL.parent
OLD = BASE / '2026-10-29_contextra-fight-b-refine_r01'
sys.path.insert(0, str(OLD / 'helpers'))
import control_refine as c

c.LOCAL = LOCAL
c.REMOTE = c.old.RB + '/' + LOCAL.name
c.PREFIX = 'contextra-integrated-1030-r01-'
c.REPORT = LOCAL / 'reports'


def setup():
    c.REPORT.mkdir(exist_ok=True)
    c.checked_resources()
    assert c.old.checked(['docker', 'image', 'inspect', c.old.IMAGE, '--format', '{{.Id}}']).decode().strip() == c.old.IMAGE
    c.old.checked(['test', '!', '-e', c.REMOTE])
    for name in ('specs.json', 'cases.json', 'self_maps.json'):
        shutil.copy2(OLD / name, LOCAL / name)
    assert len(c.read(LOCAL / 'specs.json')) == 37
    contract = c.read(OLD / 'execution_contract.json')
    contract.update(baseline_run=OLD.name, candidate='B_Integrated', frozen=False,
                    legacy_baseline='read-only', label_leakage_forbidden=True)
    (LOCAL / 'execution_contract.json').write_text(json.dumps(contract, indent=2))
    c.snapshot('before')
    c.old.checked(['mkdir', c.REMOTE], sudo=True)
    c.old.checked(['chown', 'si:si', c.REMOTE], sudo=True)
    c.old.checked(['chmod', '700', c.REMOTE])
    c.old.checked(['mkdir', '-p', c.REMOTE + '/work', c.REMOTE + '/reports', c.REMOTE + '/download/validation'])
    c.sync()
    print('SETUP_PASS 37 inputs, GPU=0, baseline unchanged', flush=True)


if __name__ == '__main__':
    action = sys.argv[1]
    if action == 'setup': setup()
    elif action == 'sync': c.sync()
    elif action == 'one': c.run_job(sys.argv[2], sys.argv[3] if len(sys.argv) > 3 else 'all')
    elif action == 'many': c.many(sys.argv[2], sys.argv[3])
    elif action == 'develop':
        c.many('enhance_motion','develop')
        c.run_job('probe_refinement')
    elif action == 'prepare-all':
        c.many('augment','all')
        c.many('enhance_motion','all')
    elif action == 'check':
        c.run_job('test_integrated')
        c.run_job('probe_final')
    elif action == 'finish': c.finish()
    elif action == 'pull-reports': c.old.scp('si@58.233.207.31:' + c.REMOTE + '/reports/.', str(c.REPORT))
    else: raise ValueError(action)
