Pattern Proposal: Pluggable Adapter Client
Summary
Uniform interface for external backend services allowing seamless swapping between production implementations and deterministic mock providers.
Candidate Pattern
- ID:
pluggable-adapter-client - Classification: architectural
- Maturity: strategic_direction
- Type: emerging
Observed Signals
No specific signals listed.
Evidence
Supporting Evidence
- src/cas_runner/llm/litellm_client.py (LiteLLMClient) - Wraps external LiteLLM SDK calls.
- src/cas_runner/llm/mock_client.py (MockLLMClient) - Provides in-memory simulated responses with the same interface.
Scope Assessment
- Evidence Strength: high
- Confidence: high
- Applies to: ideas-to-life-cas
Rationale
- Intent: Isolate third-party network APIs behind a stable local contract to permit offline testing and vendor independence.
- Context: The governance framework interacts with external inference or analytical models, but testing and dry-run environments must operate offline without API tokens.
- Force: Direct coupling to external SDKs hampers integration testing in isolated CI environments.
- Force: Vendor API shifts ripple across the codebase if not isolated.
Traceability
Artifact source: proposed-patterns