Orchestrata Ultimate / RTM / 011-provider-manager

RTM: 011-provider-manager

Requirement to symbol to test rows for 011-provider-manager: Provider Manager.

At a glance

Item Value
Requirement IDs 60
Traced from src/ 39 (65.0%)
Untraced 21
Cited from tests/ 1 (1.7%)
Traced in src/ but not cited from tests/ 38

Reading this matrix

This matrix lists each of the 60 requirement IDs of spec 011-provider-manager with the src/ symbols that cite it and the tests that cite it. 39 of them (65.0%) have at least one citing symbol and 21 have none.

1 requirement is also cited from tests/, and 38 are traced in code but never named by a test. A test citation is a @traces on a test function; it shows intent to cover, not that the test runs or reaches the symbol.

Rows showing none in the symbols column are the gaps to close first. The densest untraced groups are REQ-011-* (21).

Requirement to symbols to tests

Requirement Symbols in src/ Tests citing it
REQ-011-001 IProviderManager defined as ABC in orchestrata-core interfaces module orchestrata_ultimate/core/protocols/providers ProviderManagerProtocol L240 tests/knowledge_graph/test_graph_context_injection.py::test_call_llm_accepts_graph_context
tests/knowledge_graph/test_graph_context_injection.py::test_call_reasoner_passes_graph_context
tests/knowledge_graph/test_graph_context_injection.py::test_graph_context_empty_string_treated_as_none
+3 more
REQ-011-002 IProviderManager registered with ComponentType.PROVIDER_MANAGER in DI container none none
REQ-011-003 IComponent lifecycle implemented (initialize, start, stop, get_health) orchestrata_ultimate/core/protocols/base ComponentProtocol L202
orchestrata_ultimate/core/protocols/providers ProviderManagerProtocol L240
orchestrata_ultimate/providers/provider_manager ProviderManager L74
+4 more
none
REQ-011-004 ProviderRequest data class defined with messages, model, capabilities, parameters orchestrata_ultimate/core/protocols/providers ProviderRequest L94 none
REQ-011-005 ProviderResponse data class defined with content, model_used, provider_used, usage, cost orchestrata_ultimate/core/protocols/providers ProviderResponse L116 none
REQ-011-006 Execute accepts ProviderRequest and returns ProviderResponse orchestrata_ultimate/core/protocols/providers execute L248
orchestrata_ultimate/providers/provider_manager _enforce_budget L311
orchestrata_ultimate/providers/provider_manager execute L247
none
REQ-011-007 Provider selected based on model specification or capability matching orchestrata_ultimate/core/protocols/providers supports_capability L234
orchestrata_ultimate/providers/adapters/anthropic_adapter supports_capability L224
orchestrata_ultimate/providers/adapters/claude_cli_adapter supports_capability L307
+9 more
none
REQ-011-008 Response normalized to common ProviderResponse format orchestrata_ultimate/providers/adapters/anthropic_adapter complete L136
orchestrata_ultimate/providers/provider_manager _record_success L369
orchestrata_ultimate/providers/provider_manager execute L247
none
REQ-011-009 ProviderError raised with details when all providers fail orchestrata_ultimate/providers/provider_manager ProviderError L49
orchestrata_ultimate/providers/provider_manager __init__ L53
orchestrata_ultimate/providers/provider_manager _enforce_budget L311
+1 more
none
REQ-011-010 Cost recorded for every executed request orchestrata_ultimate/providers/cost_tracker CostTracker L70
orchestrata_ultimate/providers/provider_manager _record_failure L415
orchestrata_ultimate/providers/provider_manager _record_success L369
+1 more
none
REQ-011-011 Routing strategy: cost_optimized implemented orchestrata_ultimate/core/protocols/providers RoutingStrategy L34
orchestrata_ultimate/providers/router RequestRouter L22
orchestrata_ultimate/providers/router _rank L188
none
REQ-011-012 Routing strategy: latency_optimized implemented orchestrata_ultimate/core/protocols/providers RoutingStrategy L34
orchestrata_ultimate/providers/router RequestRouter L22
orchestrata_ultimate/providers/router _rank L188
none
REQ-011-013 Routing strategy: quality_optimized implemented orchestrata_ultimate/core/protocols/providers RoutingStrategy L34
orchestrata_ultimate/providers/router RequestRouter L22
orchestrata_ultimate/providers/router _rank L188
none
REQ-011-014 Routing strategy: round_robin implemented orchestrata_ultimate/core/protocols/providers RoutingStrategy L34
orchestrata_ultimate/providers/router RequestRouter L22
orchestrata_ultimate/providers/router _rank L188
none
REQ-011-015 Providers filtered by availability before routing orchestrata_ultimate/providers/provider_manager _token_counter_for L531
orchestrata_ultimate/providers/provider_manager get_rate_limit_backoff L447
orchestrata_ultimate/providers/router RequestRouter L22
+3 more
none
REQ-011-016 Providers filtered by rate limit headroom before routing orchestrata_ultimate/providers/provider_manager get_rate_limit_backoff L447
orchestrata_ultimate/providers/router RequestRouter L22
orchestrata_ultimate/providers/router get_rate_limit_backoff L174
+2 more
none
REQ-011-017 Routing decisions logged for auditability none none
REQ-011-018 Cost estimated before execution based on input token count orchestrata_ultimate/core/protocols/providers CostEstimate L68
orchestrata_ultimate/core/protocols/providers estimate_cost L253
orchestrata_ultimate/providers/provider_manager _estimate_cost_for_pricing L553
+1 more
none
REQ-011-019 Actual cost recorded after execution based on usage orchestrata_ultimate/providers/cost_tracker calculate_cost L94
orchestrata_ultimate/providers/cost_tracker record_cost L125
none
REQ-011-020 Cumulative cost tracked per volk_id orchestrata_ultimate/providers/cost_tracker get_usage L185
orchestrata_ultimate/providers/cost_tracker record_cost L125
orchestrata_ultimate/providers/provider_manager get_usage L467
none
REQ-011-021 Cumulative cost tracked per session_id orchestrata_ultimate/providers/cost_tracker get_usage L185
orchestrata_ultimate/providers/cost_tracker record_cost L125
orchestrata_ultimate/providers/provider_manager get_usage L467
none
REQ-011-022 Cumulative cost tracked per project_id and portfolio_id orchestrata_ultimate/providers/provider_manager get_usage L467 none
REQ-011-023 Cost queries supported with time range filters orchestrata_ultimate/core/protocols/providers get_usage L258
orchestrata_ultimate/providers/provider_manager get_usage L467
none
REQ-011-024 Dynamic provider registration and deregistration orchestrata_ultimate/core/protocols/providers deregister_provider L281
orchestrata_ultimate/core/protocols/providers register_provider L271
orchestrata_ultimate/providers/adapters/claude_cli_adapter close L280
+6 more
none
REQ-011-025 Provider configuration validated on registration orchestrata_ultimate/core/protocols/providers register_provider L271
orchestrata_ultimate/providers/provider_manager register_provider L191
none
REQ-011-026 YAML configuration loading from configs/production.yaml none none
REQ-011-027 Environment variable interpolation for secrets none none
REQ-011-028 Model registry with capabilities, context_window, pricing orchestrata_ultimate/core/protocols/providers ModelInfo L173
orchestrata_ultimate/core/protocols/providers ModelPricing L161
orchestrata_ultimate/core/protocols/providers get_models L229
+8 more
none
REQ-011-029 IProvider protocol defined for adapter implementations orchestrata_ultimate/core/protocols/providers ProviderProtocol L216 none
REQ-011-030 OpenAI adapter implemented orchestrata_ultimate/providers/adapters/openai_adapter OpenAIAdapter L24 none
REQ-011-031 Anthropic adapter implemented orchestrata_ultimate/providers/adapters/anthropic_adapter AnthropicAdapter L125
orchestrata_ultimate/providers/adapters/anthropic_adapter _build_anthropic_messages L67
orchestrata_ultimate/providers/adapters/anthropic_adapter _translate_tool_choice_to_anthropic L43
+1 more
none
REQ-011-032 DeepSeek adapter implemented orchestrata_ultimate/providers/adapters/deepseek_adapter DeepSeekAdapter L25 none
REQ-011-033 Ollama adapter implemented orchestrata_ultimate/providers/adapters/ollama_adapter OllamaAdapter L21 none
REQ-011-034 Custom adapter registration supported none none
REQ-011-035 Fallback chains configurable per capability class none none
REQ-011-036 Fallback triggered on timeout, rate limit, server error orchestrata_ultimate/providers/router get_fallback_chain L87 none
REQ-011-037 Fallback NOT triggered on auth error, invalid request, budget exceeded none none
REQ-011-038 Circuit breaker per provider (closed/open/half-open) orchestrata_ultimate/providers/circuit_breaker CircuitBreaker L46
orchestrata_ultimate/providers/circuit_breaker CircuitState L36
orchestrata_ultimate/providers/circuit_breaker _load_state L161
+4 more
none
REQ-011-039 Circuit opens after configurable consecutive failures (default: 5) orchestrata_ultimate/providers/circuit_breaker CircuitBreaker L46
orchestrata_ultimate/providers/circuit_breaker __init__ L56
orchestrata_ultimate/providers/circuit_breaker record_failure L125
none
REQ-011-040 Half-open probe after configurable cooldown (default: 60s) orchestrata_ultimate/providers/circuit_breaker CircuitBreaker L46
orchestrata_ultimate/providers/circuit_breaker __init__ L56
orchestrata_ultimate/providers/circuit_breaker is_available L95
+1 more
none
REQ-011-041 Per-provider RPM and TPM tracking orchestrata_ultimate/providers/rate_limiter RateLimiter L20
orchestrata_ultimate/providers/rate_limiter __init__ L33
orchestrata_ultimate/providers/rate_limiter _maybe_reset_window L139
+7 more
none
REQ-011-042 Rate limit headers parsed from provider responses orchestrata_ultimate/providers/rate_limiter RateLimiter L20 none
REQ-011-043 Request queuing when rate limit headroom < 10% orchestrata_ultimate/providers/rate_limiter RateLimiter L20
orchestrata_ultimate/providers/rate_limiter has_low_headroom L103
none
REQ-011-044 Alternative provider routing when primary rate-limited orchestrata_ultimate/providers/rate_limiter RateLimiter L20 none
REQ-011-045 Budget limits configurable at Volk, project, portfolio level orchestrata_ultimate/core/protocols/providers get_remaining_budget L286
orchestrata_ultimate/providers/cost_tracker CostTracker L70
orchestrata_ultimate/providers/cost_tracker budget_key L60
+5 more
none
REQ-011-046 BudgetExceededError raised when budget exhausted orchestrata_ultimate/providers/provider_manager BudgetExceededError L59
orchestrata_ultimate/providers/provider_manager __init__ L63
none
REQ-011-047 Budget warning events at 80%, 90%, 95% thresholds none none
REQ-011-048 PAM++ governance overrides for emergency escalations none none
REQ-011-049 Model access policies enforced via Prolog governance none none
REQ-011-050 Per-Volk model allowlists and denylists supported none none
REQ-011-051 All provider operations logged to audit trail none none
REQ-011-052 Audit records stored in Neo4j for compliance queries none none
REQ-011-053 Audit queries by time range, volk, provider, cost threshold none none
REQ-011-054 Provider selection < 5ms (P95) none none
REQ-011-055 Cost estimation < 2ms (P95) none none
REQ-011-056 Full request overhead < 20ms (P95) none none
REQ-011-057 Concurrent requests: 200+ simultaneous none none
REQ-011-058 API keys in environment variables, never in code or logs none none
REQ-011-059 API keys excluded from audit records and error messages none none
REQ-011-060 Provider credentials rotatable without restart none none