#!/usr/bin/env python3
"""Run exactly the approved independent probe, keeping evidence in this slice."""
import base64
import hashlib
import shlex
import subprocess
import sys
from pathlib import Path

root = Path(__file__).parent
lane = sys.argv[1]
assert lane in ('B', 'C')
plan = (root / 'precision-proposal.json').read_bytes()
assert hashlib.sha256(plan).hexdigest() == 'd1b5bfd58086c6408196363964bc62a17d8f9f6932a3ea27536ae9d789d3b60c'
encoded = base64.b64encode(plan).decode()
payload = ('<?php\n$lane=' + repr(lane) + ';$plan=json_decode(base64_decode(' + repr(encoded) + '),true);\n').encode() + (root / 'precision-run.php').read_bytes().removeprefix(b'<?php')
pid = 10001 if lane == 'B' else 112175
php = '/usr/local/php7.3/bin/php' if lane == 'B' else '/www/server/php/73/bin/php'
child = php if lane == 'B' else php + ' -c /www/server/php/73/etc/php-cli.ini -d extension=/home/dmdba/dmdbms/drivers/php_pdo/libphp73_dm.so -d extension=/home/dmdba/dmdbms/drivers/php_pdo/php73_pdo_dm.so'
wrapper = '$env=[];foreach(explode(chr(0),file_get_contents("/proc/' + str(pid) + '/environ")) as $s){$v=explode("=",$s,2);if(count($v)===2)$env[$v[0]]=$v[1];}if(($env["POC_EXTERNAL_STUBS"]??"")!=="1"||($env["POC_REAL_QUEUE"]??"0")!=="0")exit(78);$env["PM_LANE"]="' + lane + '";$env["PM_ROOT"]="' + ('/tmp/zhct-http-store-mysql.dQTTBP' if lane == 'B' else '/tmp/zhct-dm-poc-20260928.fcpiiN/store') + '";$p=proc_open(' + repr(child) + ',[0=>STDIN,1=>STDOUT,2=>STDERR],$pipes,null,$env);exit(proc_close($p));'
command = ['docker', 'exec', '-i', 'zhctapp_v2_0', php, '-r', wrapper] if lane == 'B' else ['ssh', '-S', '/private/tmp/cdx-train-root-20261010.sock', '-o', 'BatchMode=yes', 'root@121.43.241.161', php + ' -r ' + shlex.quote(wrapper)]
evidence = root / 'private-evidence' / (lane + '-precision.jsonl')
assert not evidence.exists(), 'Never replay a partially executed lane'
with evidence.open('xb') as output, evidence.with_suffix('.stderr').open('xb') as error:
    evidence.chmod(0o600)
    evidence.with_suffix('.stderr').chmod(0o600)
    result = subprocess.run(command, input=payload, stdout=output, stderr=error, check=False)
print(lane, 'exit', result.returncode, 'evidence', evidence.name)
sys.exit(result.returncode)
