1.4 KiB
1.4 KiB
Dynamic Model Discovery
Overview
Runtime model discovery from provider APIs with caching, TUI management, and CLI flags.
Components
- model-discovery.ts — Provider adapters (OpenAI, Ollama, OpenRouter, Google) + static adapters
- discovery-cache.ts — Disk cache at
{agentDir}/discovery-cache.jsonwith per-provider TTLs - models-json-writer.ts — Safe read-modify-write for
models.jsonwith file locking - provider-manager.ts — TUI component for provider management (
/providercommand) - model-registry.ts — Extended with
discoverModels(),getAllWithDiscovered(), cache integration - settings-manager.ts —
modelDiscoverysettings (enabled, providers, ttlMinutes, autoRefreshOnModelSelect) - args.ts —
--discover,--add-provider,--base-url,--discover-modelsCLI flags - list-models.ts — Rewritten with
[discovered]badge support - main.ts — CLI handlers for new flags
- interactive-mode.ts —
/providercommand handler - preferences.ts —
updatePreferencesModels()andvalidateModelId()helpers
TTL Strategy
- Ollama: 5 min (local, models change often)
- OpenAI / Google / OpenRouter: 1 hour
- Default: 24 hours
Merge Rules
- Discovered models never override existing built-in or custom models
- Discovered models are appended to the registry with
[discovered]badge - Background discovery is opt-in via
modelDiscovery.enabledsetting