#!/usr/bin/env python3 from __future__ import annotations import json, os, shutil from pathlib import Path from fastapi.testclient import TestClient from app import app def main() -> int: os.environ["SUBSTRATE_ACTION_KEY"] = "test-secret-key" os.environ["SUBSTRATE_RECEIPT_ROOT"] = "runs/api_receipts_validation" root = Path(os.environ["SUBSTRATE_RECEIPT_ROOT"]) if root.exists(): shutil.rmtree(root) client = TestClient(app) report = { "version": "v3.3.1", "health_ok": False, "unauthorized_blocked": False, "command_ok": False, "receipt_fetch_ok": False, "pressure_spine_hir_x_oam": False, "source_mutation_blocked": False, "workspace_local_receipt_written": False, "human_review_required": False, "overlay_proposal_present": False, "canonical_boundary_present": False, "status": "FAIL" } health = client.get("/v1/mesh/health") report["health_ok"] = health.status_code == 200 and health.json().get("status") == "HELD" unauth = client.post("/v1/mesh/command", json={"raw_user_text":"robotics humans DNA"}) report["unauthorized_blocked"] = unauth.status_code == 401 headers = {"Authorization": "Bearer test-secret-key"} payload = { "command_type":"DISCOVER", "raw_user_text":"robotics humans DNA", "workspace_id":"workspace_validation_001", "session_id":"user_001", "source_mutation_allowed": False } command = client.post("/v1/mesh/command", json=payload, headers=headers) if command.status_code == 200: data = command.json() report["command_ok"] = (data.get("status") == "HELD" and bool(data.get("command_id"))) report["pressure_spine_hir_x_oam"] = data.get("receipt", {}).get("pressure_spine") == "HIR × OAM" report["source_mutation_blocked"] = data.get("receipt", {}).get("source_mutation") == "NONE__OVERLAY_PROPOSAL_ONLY" report["human_review_required"] = data.get("human_review_required") is True report["overlay_proposal_present"] = bool(data.get("overlay_proposals")) report["canonical_boundary_present"] = data.get("boundary", {}).get("canonical_sources") == "READ_ONLY" and data.get("boundary", {}).get("canonical_lexicon") == "READ_ONLY" report["workspace_local_receipt_written"] = Path(data.get("api_receipt_paths", {}).get("response_path", "")).exists() receipt = client.get(f"/v1/mesh/receipt/{data['command_id']}?workspace_id=workspace_validation_001", headers=headers) report["receipt_fetch_ok"] = receipt.status_code == 200 and receipt.json().get("command_id") == data["command_id"] # Save example response for packet readers. ex = Path("examples/responses") ex.mkdir(parents=True, exist_ok=True) (ex / "robotics_humans_dna_api_response.json").write_text(json.dumps(data, indent=2, ensure_ascii=False), encoding="utf-8") report["status"] = "PASS" if all(v is True for k,v in report.items() if k not in {"version","status"}) else "FAIL" Path("V3_3_1_VALIDATION_RESULT.json").write_text(json.dumps(report, indent=2), encoding="utf-8") print(json.dumps(report, indent=2)) return 0 if report["status"] == "PASS" else 1 if __name__ == "__main__": raise SystemExit(main())