#!/usr/bin/env python3
from __future__ import annotations
import json, subprocess, sys
from pathlib import Path
ROOT=Path(__file__).resolve().parent; AD=ROOT/'adapters'; REC=ROOT/'receipts'
SCRIPTS=['blackbody.py','barrier.py','quantum_optics.py','hall_singlet.py','detector_sandbox.py']

def main():
    runs=[]
    for script in SCRIPTS:
        p=subprocess.run([sys.executable,str(AD/script)],cwd=AD,capture_output=True,text=True)
        try: payload=json.loads(p.stdout)
        except Exception: payload={'ok':False,'parse_error':True,'stdout':p.stdout[-3000:]}
        runs.append({'script':script,'exit_code':p.returncode,'ok':p.returncode==0 and bool(payload.get('ok')),'benchmark_id':payload.get('benchmark_id'),'stderr':p.stderr[-2000:]})
    summary={'schema':'classical-reconstruction-suite-receipt/v1','ok':all(r['ok'] for r in runs),'adapter_count':len(runs),'runs':runs}
    (REC/'summary-v1.json').write_text(json.dumps(summary,indent=2)+'\n','utf-8')
    print(json.dumps(summary,indent=2)); return 0 if summary['ok'] else 1
if __name__=='__main__': raise SystemExit(main())
