1.5 KiB
1.5 KiB
Model Capabilities Maintenance
This project treats model capability resolution as a layered system:
- runtime metadata from connected providers
models.devbundled/runtime snapshot data- explicit compatibility aliases
- heuristic fallback as the last resort
Internal policy
- Built-in OmO agent/category requirement models must use canonical model IDs.
- Aliases exist only to preserve compatibility with historical OmO names or provider-specific decorations.
- New decorated names like
-high,-low, or-thinkingshould not be added to built-in requirements when a canonical model ID plus structured settings can express the same thing. - If a provider or config input still uses an alias, normalize it at the edge and continue internally with the canonical ID.
When adding an alias
- Add the alias rule to
src/shared/model-capability-aliases.ts. - Include a rationale for why the alias exists.
- Add or update tests so the alias is covered explicitly.
- Ensure the alias canonical target exists in the bundled
models.devsnapshot.
Guardrails
bun run test:model-capabilities enforces the following invariants:
- exact alias targets must exist in the bundled snapshot
- exact alias keys must not silently become canonical
models.devIDs - pattern aliases must not rewrite canonical snapshot IDs
- built-in requirement models must stay canonical and snapshot-backed
The scheduled refresh-model-capabilities workflow runs these guardrails before opening an automated snapshot refresh PR.