#!/usr/bin/env python3
import subprocess
import sys
from pathlib import Path

# Reuse the same launch envelope as the approved precision runner, without
# invoking it or its SQL. This script feeds only logic-read-only.php.
import shlex
root = Path(__file__).parent
lane = sys.argv[1]
assert lane in ('B', 'C')
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)]
namespace = sys.argv[2] if len(sys.argv) > 2 else 'read-private-evidence'
assert namespace in ('read-private-evidence', 'schema-private-evidence')
script = sys.argv[3] if len(sys.argv) > 3 else 'logic-read-only.php'
assert script in ('logic-read-only.php', 'schema-post-read.php', 'schema-post-read-v2.php')
evidence = root / namespace
evidence.mkdir(mode=0o700,exist_ok=True)
output_name = lane + '-' + script.removesuffix('.php')
assert not (evidence / (output_name + '.json')).exists(), 'Preserve prior evidence'
with (evidence / (output_name + '.json')).open('xb') as output, (evidence / (output_name + '.stderr')).open('xb') as error:
    (evidence / (output_name + '.json')).chmod(0o600)
    (evidence / (output_name + '.stderr')).chmod(0o600)
    result = subprocess.run(command,input=(root/script).read_bytes(),stdout=output,stderr=error,check=False)
print(lane, 'exit', result.returncode)
sys.exit(result.returncode)
