CI Pipeline / best-practices (push) Successful in 11s
CI Pipeline / documentation (push) Successful in 3s
CI Pipeline / rust-surface (push) Failing after 17s
CI Pipeline / go-surface (push) Failing after 20s
CI Pipeline / gitea-offline (push) Successful in 16s
CI Pipeline / required-checks (push) Canceled after 0s
CI Pipeline / CI Pipeline / notify-event-bridge (push) Canceled after 0s
CI Pipeline / type-check (push) Canceled after 29s
deploy / deploy (push) Canceled after 47s
Auto-version and Release / release (push) Canceled after 50s
CI Pipeline / lint (push) Canceled after 45s
CI Pipeline / unit-tests (push) Canceled after 45s
CI Pipeline / canary (push) Canceled after 46s
43 lines
1.8 KiB
Python
43 lines
1.8 KiB
Python
#!/usr/bin/env python3
|
|
"""Open + walk the #2479 dichotomy-wave construction contract for the
|
|
provider_budget gap-closing port to verifying. Full lifecycle in ONE
|
|
process (close happens after the commits land, with SHA evidence)."""
|
|
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-gap-pb")
|
|
|
|
r = iface.submit_need(
|
|
"Close the provider_budget dichotomy gaps (#2479 tranche, GO side): "
|
|
"port the 10 audit-missing functions (get_tracker/track_usage/"
|
|
"check_provider/get_best_provider/failover/get_status/to_dict/_load/"
|
|
"_save/_init_default_providers) name-preserving into the existing "
|
|
"src/go/provider-budget Go port — tracker with order-preserving "
|
|
"storage load (dict-order tie-break parity), config seeding "
|
|
"(ollama skip + anthropic type detection), per-type health-check "
|
|
"endpoints with IO behind injectable seams (clock, config path, "
|
|
"transport), api_key-excluding to_dict, module-level singleton "
|
|
"wrappers. Truth frozen via the shared freeze_truth.py harness "
|
|
"(RUNE_PROVIDER_BUDGET_CORE=python, fixture-home replay contract); "
|
|
"VERBATIM-embedded Go battery; 200-op live parity seed 2479; "
|
|
"Python port test (oracle pinned + harness gate); audit 5/20 → 20/20.",
|
|
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")
|