83 lines
3.2 KiB
Python
83 lines
3.2 KiB
Python
#!/usr/bin/env python3
|
|
"""Validate the Svrnty Vision local VLM provider proof packet."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import json
|
|
from pathlib import Path
|
|
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
PROOF = ROOT / "docs/goal-runs/bte-product-ready-local-vlm-provider-refresh/svrnty-vision-work-008-local-vlm-provider-proof.json"
|
|
MD = ROOT / "docs/goal-runs/bte-product-ready-local-vlm-provider-refresh/svrnty-vision-work-008-local-vlm-provider-proof.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-local-vlm-provider-proof.v1", errors, "schema")
|
|
require(proof.get("work_item_id") == "SVRNTY-VISION-WORK-008", errors, "work_item_id")
|
|
require(proof.get("route") == "svrnty-vision", errors, "route")
|
|
|
|
route = proof.get("provider_route_resolution", {})
|
|
require(route.get("registered_ollama_provider_route_found") is False, errors, "registered_route")
|
|
require(route.get("adapter_owner_route_used_for_proof") == "svrnty-vision", errors, "adapter_owner")
|
|
|
|
provider = proof.get("configured_provider", {})
|
|
require(provider.get("expected_model") == "qwen3-vl:32b", errors, "expected_model")
|
|
|
|
health = proof.get("health_proof", {})
|
|
for key in ("ollama_tags", "openai_models"):
|
|
probe = health.get(key, {})
|
|
require(probe.get("http_status") == 200, errors, f"{key}:http_status")
|
|
require(probe.get("expected_model_present") is True, errors, f"{key}:model_present")
|
|
|
|
gateway = proof.get("gateway_recheck", {})
|
|
for key in ("host_healthz", "bte_runtime_namespace_healthz"):
|
|
probe = gateway.get(key, {})
|
|
require(probe.get("http_status") == 200 and probe.get("body_status") == "ok", errors, f"{key}:healthz")
|
|
|
|
effects = proof.get("tool_effects", {})
|
|
require(effects.get("provider_health_probe_performed") is True, errors, "provider_health_probe")
|
|
require(effects.get("bte_provider_call_performed_by_bte_route") is True, errors, "bte_provider_call")
|
|
for key in (
|
|
"provider_start_or_refresh_performed",
|
|
"direct_model_inference_performed",
|
|
"gateway_runtime_started",
|
|
"profile_exposure_changed",
|
|
"mcp_registered",
|
|
"archive_delete_performed",
|
|
"raw_payload_storage_created_by_this_route",
|
|
"product_ready_claim_made",
|
|
):
|
|
require(effects.get(key) is False, errors, f"forbidden_effect:{key}")
|
|
|
|
for snippet in (
|
|
"local VLM provider health proven",
|
|
"qwen3-vl:32b",
|
|
"No direct model inference",
|
|
"No credentials",
|
|
"Product Ready claim",
|
|
):
|
|
require(snippet in md, errors, f"md_missing:{snippet}")
|
|
|
|
result = {
|
|
"ok": not errors,
|
|
"validator": "svrnty-vision-bte-local-vlm-provider-proof-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())
|