"""Install this report's protocol replays into a scenario harness; app sources stay unchanged.
Usage: python setup-replay.py CHECKOUT DIRECTORY_WITH_REPLAY_FILES
Run from CHECKOUT/scripts with T3_SCENARIO_APP_DIR pointing at the app commit:
  T3CODE_DEV_SEED=0 pnpm exec e2e run scenarios/finished-child-question.e2e.ts
Use a fresh app home per side. This harness starts Chromium at 1280x800 and records video.
"""
import json
from pathlib import Path
import shutil
import subprocess
import sys
repo, artifacts = map(lambda x: Path(x).resolve(), sys.argv[1:])
for name in ['codex-question-replay.mjs', 'parent-question-replay.mjs']:
    (artifacts / name).chmod(0o755)
p = repo / 'scripts/scenarios/start-app.ts'
s = subprocess.check_output(['git', '-C', str(repo), 'show', 'HEAD:scripts/scenarios/start-app.ts'], text=True)
s = s.replace('enabled: false,', 'enabled: driver === "codex",')
s = s.replace('binaryPath: noModel', 'binaryPath: ' + json.dumps(str(artifacts / 'codex-question-replay.mjs')))
parent = {'driver': 'acpRegistry', 'displayName': 'Proof replay', 'enabled': True, 'config': {'source': 'local', 'commandPath': str(artifacts / 'parent-question-replay.mjs'), 'commandArgs': []}}
s = s.replace('providerInstances: Object.fromEntries(', 'providerInstances: {proofParent: ' + json.dumps(parent) + ', ...Object.fromEntries(')
s = s.replace('      ),\n    }),', '      )},\n    }),')
p.write_text(s)
p = repo / 'scripts/e2e.config.ts'
s = p.read_text().replace('  ],\n  // One server', '  ].filter((target) => target.name === "web"),\n  // One server')
p.write_text(s)
shutil.copy2(artifacts / 'finished-child-question.e2e.ts', repo / 'scripts/scenarios/finished-child-question.e2e.ts')
