Skip to content
Source
Sign inSign up

model-manifest.md

36 lines2.1 KB

1# Model manifest
2​
3The [bundled manifest](../../apps/server/src/provider/model-manifest.json) allows
4offline startup; fetching it from `main` lets model metadata change between
5releases. Failed fetches or invalid data preserve the last usable manifest.
6Remote data must pass both catalog-reference validation and the owning provider's
7adapter validation before replacing the cache.
8​
9A newer bundle outranks the cached remote manifest by `updatedAt`, so a release can
10correct model data before the next successful fetch. Bump `updatedAt` whenever the
11file changes. Fetch time cannot establish which copy contains the newer edit.
12​
13Generic catalog data describes presentation and capabilities. Each provider owns
14its adapter schema and dispatch mappings. Providers never read the manifest
15itself: the server exposes each driver's entry through the
16[`ModelCatalog`](../../packages/provider-core/src/server/ModelCatalog.ts) port,
17and compatibility policies stay with the server. Claude uses the manifest for its entire
18built-in catalog. Adding a model with an existing capability profile is a JSON
19edit; a new profile is needed only for a new capability combination. Codex still
20gets its model list from its app server.
21​
22A model that needs a newer provider CLI should still be announced as soon as it
23ships. Claude entries set `adapter.claudeCode.minVersion`; Codex entries set
24`adapter.codex.minVersion`, since Codex's own `model/list` cannot name models
25released after the installed build. Snapshots report those models in
26`updateRequiredModels`, and the picker tells the user which update unlocks them.
27​
28`currentModels.claudeAgent` is the current-model classification overlay for
29releases that predate catalog discovery; it does not add models to their catalogs.
30Catalog-aware releases use `providers.claudeAgent.models[].status` instead.
31Codex uses `currentModels.codex` as a legacy-classification overlay for discovered
32models.
33​
34Model data is schema-validated configuration. Tests should cover resolver, cache,
35and adapter semantics with synthetic model names, so adding a model never requires
36tests that repeat the configuration.