df71850d4f442dfb8c116f90160c8c505d8311b9
Introduces the IProviderAdapter interface as the architecture foundation for multi-provider support. Extracts Ollama logic into OllamaAdapter and makes ProviderService adapter-aware while preserving the full existing API. ## What changed ### @mosaic/types — new provider adapter types - IProviderAdapter interface: register(), listModels(), healthCheck(), createCompletion() - ProviderHealth / ProviderHealthStatus — health check result - CompletionParams / CompletionMessage / CompletionTool — completion request - CompletionEvent / CompletionUsage — streamed completion response ### apps/gateway — adapter implementation - apps/gateway/src/agent/adapters/ollama.adapter.ts — OllamaAdapter (extracted from ProviderService) - apps/gateway/src/agent/adapters/index.ts — barrel export - ProviderService.onModuleInit() is now async (awaits registerAll()) - New ProviderService methods: registerAll(), getAdapter(), healthCheckAll() - PROVIDER_ADAPTERS symbol exported as future DI injection token - Anthropic/OpenAI/Z.ai remain as direct registry calls (M3-002 to M3-005 scope) - Updated provider.service.test.ts: all tests now await onModuleInit() ## Pi SDK compatibility findings Pi SDK uses ModelRegistry as central registry. The adapter pattern is a Mosaic abstraction layered on top — adapters call registry.registerProvider() during register(). Pi SDK has no native adapter concept; it does not conflict. createCompletion() is defined in the interface but not called by the Pi layer. Pi SDK's AgentSession.prompt() and ModelRegistry.getAvailable() handle all actual completions. createCompletion() is reserved for future direct-completion use cases (post-M3 scope). OllamaAdapter throws NotImplementedError for now. No Pi SDK friction was found for the adapter pattern. The registry integration point (registerProvider()) is exactly what the existing code already used. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Merge pull request 'feat(gateway): add Anthropic, OpenAI, Z.ai LLM providers (P8-002)' (#212) from feat/p8-002-llm-providers into main
Description
Self-hosted multi-user AI agent platform — web dashboard, TUI, remote control, shared memory, mission orchestration
Releases
11
mosaic v0.0.29
Latest
Languages
TypeScript
74.5%
Shell
19.7%
PowerShell
3%
JavaScript
1.4%
Python
1%
Other
0.4%