import json
import subprocess
from pathlib import Path

P=Path(__file__).resolve().parent
mounted='/workspace/zhct/zhctprompt/work_ai_api/2026-09-30-dm8-interface-acceptance/parallel-ai-remaining-read12-20261011'
for test,prefix in [('StaffReadResponseContract.check.php','staff'),('FoodIntoleranceContract.check.php','food')]:
    for phase in ['original','candidate']:
        cmd=['docker','exec','zhctapp_v2_0','/usr/local/php7.4/bin/php',mounted+'/'+test,'/workspace/zhct/zhctproject/ai_api']
        cmd.append(mounted+('/private/candidate' if phase=='candidate' else '/private/source-original'))
        r=subprocess.run(cmd,capture_output=True,text=True)
        parsed=json.loads(r.stdout)
        assert parsed['SQL']==parsed['PDO']==parsed['HTTP']==parsed['DML']==0
        assert bool(parsed['failures'])==(phase=='original')
        assert r.returncode==(1 if phase=='original' else 0)
        target=P/(prefix+'-contract-'+phase+'.json')
        target.write_text(json.dumps({'command':'Docker PHP7.4 actual classes; private isolated original or candidate root','exit_code':r.returncode,'result':parsed,'stderr':r.stderr},ensure_ascii=False,indent=2)+'\n')
        print(prefix,phase,parsed['assertions'],'failures',len(parsed['failures']))
