-
Notifications
You must be signed in to change notification settings - Fork 1
Closed
Labels
Description
Part of epic #978.
Problem
available_models in AcpConfig is a static list in config.toml that the user must
maintain manually. As seen in Zed's model picker (built-in agents show all provider
models dynamically), users expect to see all models that Zeph has access to — grouped
by provider — without manual configuration.
Current flow:
config.toml [acp] available_models = ["claude-opus-4-6", "gpt-4o"]
→ AcpAgentState::available_models
→ SessionModelState { available_models }
→ Zed model picker
Desired flow:
LlmOrchestrator::list_models() (per-provider)
→ deduplicated, sorted list
→ SessionModelState { available_models }
→ Zed model picker (shows all configured models automatically)
Design
- Add
list_models() -> Vec<String>method toLlmProvidertrait in
zeph-llm/src/provider.rs— returns model IDs this provider supports. - Implement for
ClaudeProvider,OpenAiProvider,OllamaProvider:- Claude/OpenAI: return static list of known models (from config
modelfield + known variants) - Ollama: query local API
GET /api/tagsto list installed models
- Claude/OpenAI: return static list of known models (from config
- In
LlmOrchestrator(zeph-llm): aggregatelist_models()across all providers. - In
src/acp.rs: ifconfig.acp.available_modelsis empty, populate from
orchestrator.list_models()at startup. - Keep manual
config.tomloverride working (non-empty list takes precedence).
Acceptance criteria
- When
[acp] available_models = [], Zed model picker shows all models from
configured providers automatically - Ollama models reflect currently installed models at startup
- Static override (
available_models = [...]in config) still works - Model IDs shown in picker match IDs accepted by
/model <id>command
Files
crates/zeph-llm/src/provider.rs— addlist_models()to traitcrates/zeph-llm/src/claude.rs,openai.rs,ollama.rs— implement trait methodcrates/zeph-llm/src/orchestrator.rs— aggregate across providerssrc/acp.rs— auto-populate if config list is emptycrates/zeph-core/src/config/types.rs— document new auto-discovery behaviour
Reactions are currently unavailable