| |
| """Live twin-gate calibration: 6 edge dilemmas — text (severity) + byte receipts.""" |
|
|
| from __future__ import annotations |
|
|
| import json |
| import sys |
| from datetime import datetime, timezone |
| from pathlib import Path |
|
|
| ROOT = Path(__file__).resolve().parents[1] |
| sys.path.insert(0, str(ROOT / "stack")) |
|
|
| from lygo_stack import deploy_stack |
|
|
| SCENARIOS = ROOT / "tests" / "pilot_edge_scenarios.json" |
| OUT = ROOT / "tests" / "twin_gate_calibration_last_run.json" |
|
|
|
|
| def main() -> int: |
| data = json.loads(SCENARIOS.read_text(encoding="utf-8")) |
| stack = deploy_stack("TWIN_GATE_CALIBRATION") |
| rows = [] |
| print("TWIN GATE CALIBRATION — live text + byte per scenario") |
| for sc in data.get("scenarios", []): |
| q = sc["query"] |
| sev = float(sc.get("severity", 0.8)) |
| cat = sc.get("byte_category", "high_entropy_dilemma") |
| ent = float(sc.get("entropy_level", 0.85)) |
| sw = float(sc.get("severity_weight", sev)) |
| text = stack.process_ethical_query( |
| q, severity=sev, severity_weight=sw, purpose=f"twin_{sc['id']}" |
| ) |
| vector = { |
| "id": sc["id"], |
| "payload": { |
| "claim": q, |
| "entropy_level": ent, |
| "layer1_sovereignty": "enforced", |
| "primordial_law": True, |
| }, |
| } |
| byte = stack.process_falsifiable_vector(vector, category=cat) |
| t0 = text.get("p0") or {} |
| row = { |
| "id": sc["id"], |
| "label": sc.get("label"), |
| "severity": sev, |
| "severity_weight": sw, |
| "text": { |
| "verdict": t0.get("verdict"), |
| "phi_risk": t0.get("phi_risk", t0.get("risk")), |
| "p0_raw_phi": t0.get("p0_raw_phi"), |
| "p0_raw_verdict": t0.get("p0_raw_verdict"), |
| "semantic_gate": t0.get("semantic_gate"), |
| "tags": (text.get("semantic_analysis") or {}).get("tags"), |
| "hash": t0.get("hash"), |
| "light_code": text.get("light_code"), |
| }, |
| "byte": { |
| "category": cat, |
| "entropy_level": ent, |
| "verdict": byte.get("decision"), |
| "phi_risk": byte.get("phi_risk"), |
| "hash": byte.get("p0_hash"), |
| "gate_len": byte.get("gate_len"), |
| "repair": byte.get("repair_triggered"), |
| "light_code": byte.get("light_code"), |
| }, |
| "delta_phi": round(float(byte.get("phi_risk", 0)) - float(t0.get("phi_risk", t0.get("risk", 0))), 4), |
| } |
| rows.append(row) |
| print( |
| f"{sc['id']}: text {row['text']['verdict']} phi={row['text']['phi_risk']} | " |
| f"byte {row['byte']['verdict']} phi={row['byte']['phi_risk']} | Δ={row['delta_phi']}" |
| ) |
|
|
| deltas = [r["delta_phi"] for r in rows] |
| soften_text = sum(1 for r in rows if r["text"]["verdict"] == "SOFTEN") |
| payload = { |
| "signature": "Δ9Φ963-TWIN-GATE-CALIBRATION-v2", |
| "timestamp": datetime.now(timezone.utc).isoformat(), |
| "summary": { |
| "text_soften_count": soften_text, |
| "mean_delta_phi": round(sum(deltas) / max(1, len(deltas)), 4), |
| "max_delta_phi": max(deltas) if deltas else 0, |
| }, |
| "scenarios": rows, |
| } |
| print(f"SUMMARY: text SOFTEN {soften_text}/{len(rows)} | mean Δφ={payload['summary']['mean_delta_phi']}") |
| OUT.write_text(json.dumps(payload, indent=2), encoding="utf-8") |
| print(f"Wrote {OUT}") |
| return 0 |
|
|
|
|
| if __name__ == "__main__": |
| raise SystemExit(main()) |