from pathlib import Path
import subprocess,sys,os,re,json
R=Path(__file__).resolve().parents[1];q1=R/'src/static_preflight_q1.py'
cp=subprocess.run([sys.executable,str(q1)],cwd=R,text=True,capture_output=True,env={**os.environ,'PYTHONDONTWRITEBYTECODE':'1'});print(cp.stdout,end='')
m=re.findall(r'SUMMARY\s+(\d+)/(\d+)\s+PASS',cp.stdout);bp,bt=(map(int,m[-1]) if m else (0,1));checks=[]
def ck(n,v):checks.append((n,bool(v)))
ROOT=R.parents[2]
try:
    sys.path.insert(0,str(ROOT/'internal_verification/lab_oracles'))
    from semantic_bundle_validator import load_bundle,validate_bundle
    sem=validate_bundle(load_bundle(ROOT))
    for n in ['golden_policy_exact','baseline_fixture_exact','probe_expectations_exact','requirements_exact','toolchain_exact','evidence_contract_flags_exact','learner_template_blank','table_schema_exact','transfer_unprefilled','assessment_blocking_exact','decision_template_blank']:ck(n,sem[n])
except ModuleNotFoundError:
    print('INFO standalone release mode: package-internal semantic oracle is intentionally unavailable')
s=(R/'src/browser_boundary.py').read_text();ck('runtime repair tokens',all(x in s for x in ['DENY_STATE_CHANGE_SAFE_METHOD','CORS_METHOD_NOT_SHARED','CSP_POLICY_NOT_APPLICABLE']))
for n,v in checks:print(('PASS' if v else 'FAIL'),n)
p=bp+sum(v for _,v in checks);t=bt+len(checks);print(f'SUMMARY {p}/{t} PASS');sys.exit(0 if cp.returncode==0 and p==t else 1)
