# Engine Extension Ports (Draft) This document defines the draft port set used to keep core runtime extensible. ## Port Modules - `runtime/ports/control_plane.py` - `AssistantRuntimeConfigProvider` - `ConversationHistoryStore` - `KnowledgeRetriever` - `ToolCatalog` - `ControlPlaneGateway` - `runtime/ports/llm.py` - `LLMServiceSpec` - `LLMPort` - optional extensions: `LLMCancellable`, `LLMRuntimeConfigurable` - `runtime/ports/tts.py` - `TTSServiceSpec` - `TTSPort` - `runtime/ports/asr.py` - `ASRServiceSpec` - `ASRPort` - explicit mode ports: `OfflineASRPort`, `StreamingASRPort` - `runtime/ports/service_factory.py` - `RealtimeServiceFactory` ## Adapter Layer - `providers/factory/default.py` provides `DefaultRealtimeServiceFactory`. - It maps resolved provider specs to concrete adapters. - Runtime orchestration (`runtime/pipeline/duplex.py`) depends on the factory port/specs, not concrete provider classes. ## Provider Behavior (Current) - LLM: - supported providers: `openai`, `openai_compatible`, `openai-compatible`, `siliconflow` - fallback: `MockLLMService` - TTS: - supported providers: `dashscope`, `volcengine`, `openai_compatible`, `openai-compatible`, `siliconflow` - fallback: `MockTTSService` - ASR: - supported providers: `openai_compatible`, `openai-compatible`, `siliconflow`, `dashscope`, `volcengine` - fallback: `BufferedASRService` ## Notes - This is a draft contract set; follow-up work can add explicit capability negotiation and contract-version fields.