"""Runnable learner driver. Implement the two decision helpers; no live actions.""" import hashlib import json from pathlib import Path import sys sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "project")) import opslab def blocking_reasons(evidence: dict) -> list[str]: """Apply every condition in capstone/BRIEF.md; missing evidence blocks. Return sorted reason strings; do not mutate supplied evidence. """ raise NotImplementedError("Complete the cross-layer decision") def recommend(evidence: dict) -> dict: """Return decision, blocking_reasons, recovery_required, live_authorization. A pass is PASS_SIMULATION only. Live authorization is always False. """ raise NotImplementedError("Complete the bounded recommendation") def main() -> int: evidence = opslab.capstone_evidence(opslab.load()) try: decision = recommend(evidence) except NotImplementedError as error: print(json.dumps({"status": "starter_incomplete", "message": str(error), "evidence_kind": evidence["evidence_kind"], "live_authorization": False, "holdout_route_decision": evidence["route"]["decision"]}, indent=2)) return 3 print(json.dumps({"recommendation": decision, "evidence": evidence, "decision_code_sha256": hashlib.sha256(Path(__file__).read_bytes()).hexdigest()}, indent=2, sort_keys=True, allow_nan=False)) return 0 if __name__ == "__main__": raise SystemExit(main())