Files
rune/scripts/walk_contract_self_model.py

40 lines
1.6 KiB
Python

#!/usr/bin/env python3
"""Open + walk the #2479 dichotomy-wave construction contract for
self_model to verifying. Full lifecycle in ONE process."""
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-i")
r = iface.submit_need(
"Complete the self_model dichotomy port to FULL Rust (#2479 "
"tranche): the bounded persistent self-model kernel — "
"estimate_tokens / compile_self_model (greedy weight-fill with "
"stable tie ordering and evidence overflow) / why_question — as "
"doc-envelope FFI (smm_* symbols, free via capability_scoring "
"cs_free_string — no free re-export); smm_loader mirroring "
"broker_loader.py; facade keeps the Python floor, RUNE_SMM_CORE="
"python pin; frozen-oracle battery (every branch: empty corpus, "
"exact-fit boundary, evidence overflow, key defaults, stable "
"weight ties, zero budget, why-match across statements+evidence); "
"live parity 100% (frozen + fuzz seeds); Phase B language-advantage "
"pass (ASCII byte fast-path token estimate).",
origin="builder",
)
print("submit_need:", json.dumps(r)[:300])
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)[:150])
if not t.get("success"):
sys.exit(1)
print("CONTRACT", cid, "verifying")