#!/usr/bin/env python3 """Open + walk the #2479 dichotomy-wave construction contract for construction_depth to verifying. Full lifecycle in ONE process (shared-store clobber hazard). The close step runs separately (close_contract script) after the register commit, per the dichotomy-wave store pattern.""" import json import sys from pathlib import Path sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "src")) from rune.construction_interface import ConstructionInterface iface = ConstructionInterface(builder="factory-batch-b") r = iface.submit_need( "Complete the construction_depth dichotomy port to FULL Rust (#2479 " "tranche): oracle-exact depth kernel (UNKNOWN ceremony/bypassed, " "PROJECT_BUILD full-lifecycle strings, EXISTING_PROJECT_CHANGE base " "ceremony + wide-surface escalation restored to oracle truth), " "doc-envelope FFI (cd_select_depth, free via capability_scoring " "cs_free_string — no free re-export), cd_loader mirroring " "broker_loader.py, facade delegation with RUNE_CD_CORE=python pin, " "frozen-oracle battery (40 cases, every public function/branch), live " "parity 100%, Phase B language-advantage pass.", origin="builder", ) print("submit_need:", json.dumps(r)[:400]) if not r.get("success"): print("NEED FAILED — aborting") sys.exit(1) cid = r["ids"]["contract_id"] print("contract_id:", cid) for phase in ("approved", "building", "verifying"): t = iface.transition(cid, phase) print(f"transition->{phase}:", json.dumps(t)[:200]) if not t.get("success"): sys.exit(1) print("CONTRACT", cid, "verifying")