SIGN IN SIGN UP

feat: add model capability enrichment from models.dev and combo model support (#8)

* feat: add models.dev configuration types and constants

Add OmniRouteModelsDevConfig and OmniRouteModelMetadataConfig types
Add MODELS_DEV_DEFAULT_URL, MODELS_DEV_CACHE_TTL, and MODELS_DEV_TIMEOUT_MS constants

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

* feat: add models.dev API client with capability lookup

Implement models.dev data fetching with caching
Add model lookup by provider and normalized keys
Add capability conversion from models.dev to OmniRoute format
Add resolveProviderAlias helper for provider name mapping

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

* feat: add OmniRoute combo model discovery and capability calculation

Implement combo model fetching from /api/combos endpoint
Add underlying model resolution for combo models
Calculate lowest common capabilities using min() for numeric values
Calculate conservative boolean capabilities using every()
Add enrichComboModels for automatic combo model enrichment

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

* feat: integrate models.dev and combo enrichment into model fetching

Update fetchModels to call enrichModelMetadata pipeline
Add applyModelsDevMetadata for enriching regular models
Add splitOmniRouteModelForLookup and resolveProviderAlias helpers
Update clearModelCache to also clear combo cache
Add config parsing helpers for modelsDev and modelMetadata options

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

* feat: export new runtime functions and types

Export clearModelsDevCache from models-dev module
Export clearComboCache, fetchComboData, resolveUnderlyingModels,
calculateModelCapabilities from omniroute-combos module

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

* docs: add documentation for combo model capability enrichment

Document combo model capability calculation using lowest common denominator
Add example showing how capabilities are calculated from underlying models
Update API section with new runtime exports
Add combo model feature to features list

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

* fix: respect models.dev enabled config option and remove dead code

* fix: optional chaining bug in isComboModel when comboCache is null
S
Sebastian Rumpf committed
aecf904c18435e192dc7c99798af7ea102f732cb
Parent: 925f077
Committed by GitHub <noreply@github.com> on 3/10/2026, 3:02:44 PM