feat(governance): 新增 AI Agent 市場雷達讀回
Some checks failed
Code Review / ai-code-review (push) Successful in 13s
CD Pipeline / tests (push) Successful in 1m54s
CD Pipeline / build-and-deploy (push) Successful in 5m8s
CD Pipeline / post-deploy-checks (push) Failing after 1m21s
Ansible / Reboot Recovery Contract / validate (push) Has been cancelled

This commit is contained in:
Your Name
2026-06-25 10:43:16 +08:00
parent 279f953144
commit ea0d697e51
19 changed files with 5433 additions and 10 deletions

View File

@@ -0,0 +1,59 @@
from __future__ import annotations
import json
from src.services.ai_agent_market_radar_readback import (
load_latest_ai_agent_market_radar_readback,
)
def test_ai_agent_market_radar_readback_committed_snapshot_is_safe():
payload = load_latest_ai_agent_market_radar_readback()
assert payload["schema_version"] == "ai_agent_market_radar_readback_v1"
assert payload["summary"]["overall_completion_percent"] == 42.2
assert payload["summary"]["market_candidates"] == 13
assert payload["summary"]["market_sources"] == 34
assert payload["summary"]["changed_candidates"] == 13
assert payload["summary"]["integration_blocked_candidates"] == 13
assert payload["summary"]["replacement_decisions_approved"] == 0
policy = payload["policy"]
assert policy["read_only"] is True
assert policy["sdk_installation_approved"] is False
assert policy["paid_api_calls_approved"] is False
assert policy["replay_candidate_approved"] is False
assert policy["shadow_or_canary_approved"] is False
assert policy["production_routing_approved"] is False
assert policy["telegram_send_approved"] is False
assert policy["host_write_approved"] is False
assert policy["workflow_modification_approved"] is False
assert policy["openclaw_replacement_approved"] is False
serialized = json.dumps(payload, ensure_ascii=False)
assert "/Users/" not in serialized
assert ".claude/projects" not in serialized
assert ".codex" not in serialized
assert "192.168." not in serialized
assert "auth.json" not in serialized
def test_ai_agent_market_radar_readback_contains_market_practice_plan():
payload = load_latest_ai_agent_market_radar_readback()
practices = {
row["practice"]: row["awoooi_status"]
for row in payload["market_practice_alignment"]
}
assert practices["多 Agent handoff / specialist delegation"] == "partially_modeled"
assert practices["Durable execution / persistence / human-in-the-loop"] == (
"needed_for_incident_loop"
)
candidates = {
row["candidate_id"]: row
for row in payload["candidate_role_plan"]
}
assert candidates["openclaw_incumbent"]["gate_status"] == "production_baseline"
assert candidates["nemo_nemotron_fabric"]["gate_status"] == "integration_blocked"
assert candidates["langgraph_incident_kernel"]["gate_status"] == "integration_blocked"

View File

@@ -0,0 +1,34 @@
from __future__ import annotations
import json
from fastapi import FastAPI
from fastapi.testclient import TestClient
from src.api.v1.agents import router
def test_ai_agent_market_radar_readback_endpoint_returns_committed_snapshot():
app = FastAPI()
app.include_router(router, prefix="/api/v1")
client = TestClient(app)
response = client.get("/api/v1/agents/ai-agent-market-radar-readback")
assert response.status_code == 200
data = response.json()
assert data["schema_version"] == "ai_agent_market_radar_readback_v1"
assert data["summary"]["overall_completion_percent"] == 42.2
assert data["summary"]["market_candidates"] == 13
assert data["summary"]["market_sources"] == 34
assert data["summary"]["changed_candidates"] == 13
assert data["summary"]["integration_blocked_candidates"] == 13
assert data["summary"]["replacement_decisions_approved"] == 0
assert data["policy"]["openclaw_replacement_approved"] is False
assert data["policy"]["telegram_send_approved"] is False
serialized = json.dumps(data, ensure_ascii=False)
assert "/Users/" not in serialized
assert ".claude/projects" not in serialized
assert ".codex" not in serialized
assert "192.168." not in serialized