feat(ai): add guarded Claude fallback route

This commit is contained in:
ogt
2026-07-15 15:57:24 +08:00
parent f57845ba5e
commit 5c5eb48091
56 changed files with 4942 additions and 760 deletions

View File

@@ -19,7 +19,7 @@ def test_ai_provider_route_matrix_endpoint_returns_committed_snapshot():
assert data["program_status"]["current_task_id"] == "P1-004"
assert data["program_status"]["next_task_id"] == "P1-005"
assert data["program_status"]["read_only_mode"] is True
assert data["rollups"]["total_routes"] == len(data["provider_routes"]) == 7
assert data["rollups"]["total_routes"] == len(data["provider_routes"]) == 8
assert data["rollups"]["provider_switch_allowed_count"] == 0
assert data["rollups"]["paid_api_call_allowed_count"] == 0
assert data["rollups"]["shadow_or_canary_allowed_count"] == 0
@@ -31,6 +31,7 @@ def test_ai_provider_route_matrix_endpoint_returns_committed_snapshot():
assert data["approval_boundaries"]["cost_change_approved"] is False
assert any(route["route_id"] == "ollama_global_endpoint_order" for route in data["provider_routes"])
assert any(route["route_id"] == "alert_ai_ollama_first_lane" for route in data["provider_routes"])
assert any(route["route_id"] == "claude_paid_fallback_policy" for route in data["provider_routes"])
nemotron = next(
route for route in data["provider_routes"]
if route["route_id"] == "nemotron_tool_calling_candidate"