Files
svrnty-vision/tools/validate_svrnty_vision_bte_provider_gateway_refresh.py
T
2026-06-19 16:10:15 -04:00

72 lines
2.7 KiB
Python

#!/usr/bin/env python3
"""Validate the Svrnty Vision BTE provider-gateway refresh proof."""
from __future__ import annotations
import json
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
PROOF = ROOT / "docs/goal-runs/bte-product-ready-provider-gateway-refresh/svrnty-vision-work-007-provider-gateway-refresh.json"
MD = ROOT / "docs/goal-runs/bte-product-ready-provider-gateway-refresh/svrnty-vision-work-007-provider-gateway-refresh.md"
def require(condition: bool, errors: list[str], message: str) -> None:
if not condition:
errors.append(message)
def main() -> int:
errors: list[str] = []
proof = json.loads(PROOF.read_text(encoding="utf-8"))
md = MD.read_text(encoding="utf-8")
require(proof.get("schema") == "svrnty-vision.bte-product-ready-provider-gateway-refresh-proof.v1", errors, "schema")
require(proof.get("work_item_id") == "SVRNTY-VISION-WORK-007", errors, "work_item_id")
require(proof.get("route") == "svrnty-vision", errors, "route")
require(proof.get("approval", {}).get("expired") is True, errors, "approval_expired")
refresh = proof.get("gateway_refresh", {})
host = refresh.get("host_port_container", {}).get("healthz", {})
bte_ns = refresh.get("bte_network_namespace_container", {}).get("healthz_from_bte_runtime_namespace", {})
require(host.get("http_status") == 200 and host.get("body_status") == "ok", errors, "host_healthz")
require(bte_ns.get("http_status") == 200 and bte_ns.get("body_status") == "ok", errors, "bte_namespace_healthz")
readyz = proof.get("downstream_bte_recheck", {}).get("readyz", {})
require(readyz.get("http_status") == 200 and readyz.get("body_status") == "Healthy", errors, "bte_readyz")
effects = proof.get("tool_effects", {})
require(effects.get("gateway_runtime_started") is True, errors, "gateway_runtime_started")
for key in (
"provider_call_from_this_route",
"profile_exposure_changed",
"mcp_registered",
"archive_delete_performed",
"raw_payload_storage_created",
"product_ready_claim_made",
):
require(effects.get(key) is False, errors, f"forbidden_effect:{key}")
for snippet in (
"No credentials or secrets",
"No Profile Exposure",
"raw payload storage",
"Product Ready claim",
"bte-work-019",
):
require(snippet in md, errors, f"md_missing:{snippet}")
result = {
"ok": not errors,
"validator": "svrnty-vision-bte-provider-gateway-refresh-v1",
"checked": [str(PROOF.relative_to(ROOT)), str(MD.relative_to(ROOT))],
"errors": errors,
}
print(json.dumps(result, indent=2))
return 0 if not errors else 1
if __name__ == "__main__":
raise SystemExit(main())