Files
olp/models-registry.json
dtzp555-maxandGitHub 7019294c63 feat(sandbox): Phase 7 Solution 1 implementation + opus 4.8 (#68)
Implements ADR 0014 Amendment 1 (4-layer Solution 1) + ADR 0002 Amendment 9 (Provider ISOLATION contract) + opus 4.8 model.

Fresh-context opus reviewer APPROVE_WITH_MINOR; 2 nit fold-ins applied. 813 unit tests pass.

Known deferred coverage: Suite 44 PI231 E2E tests are placeholders under describe.skip pending Task #9 (PI231 prod-target validation). The load-bearing negative test ('in-sandbox cat ~/.olp/keys.json MUST fail') will be validated when Task #9 runs against the merged code.

PR-B outer-bwrap superseded; archive at phase-7-pr-b-outer-bwrap-snapshot branch.
2026-05-29 10:43:53 +10:00

205 lines
8.7 KiB
JSON

{
"version": "0.1.0-bootstrap",
"comment": "OLP models registry — SPOT for (provider, model) → metadata per CLAUDE.md release_kit overlay. v0.1 founding shipped zero Enabled Providers per ALIGNMENT.md § Provider Inventory. D4 populates providers.anthropic as Candidate; D5 transitions to Enabled pending E2E audit. Schema validated by .github/workflows/alignment.yml; provider keys must match ALIGNMENT.md inventory.",
"quota_probe": {
"schema_version": "2026-05-26",
"comment": "D81 — ADR 0013 Rule 5 mandate: schema_version pinned in registry so downstream consumers can detect schema drift. fields_pinned is load-bearing: if Anthropic adds/renames a header, dashboard consumers comparing field-presence against this list can flag 'schema drift detected'. Last verified: 2026-05-26 via live probe against api.anthropic.com (Path B per ADR 0013 Rule 5).",
"anthropic": {
"status": "live",
"source": "anthropic-ratelimit-unified-headers",
"endpoint": "https://api.anthropic.com/v1/messages",
"fields_pinned": [
"status",
"representative_claim",
"reset",
"fallback_percentage",
"status_5h",
"utilization_5h",
"reset_5h",
"status_7d",
"utilization_7d",
"reset_7d",
"overage_status",
"overage_disabled_reason",
"overage_reset"
]
},
"openai": {
"status": "unavailable",
"reason": "no public quota endpoint exposed by the openai/codex CLI; audit-derived spend tracking only at v0.5.0",
"re_entry_point": "lib/providers/openai.mjs DL-N (when OpenAI publishes a documented quota endpoint)"
},
"mistral": {
"status": "unavailable",
"reason": "no public quota endpoint accessible to Vibe / Le Chat member / La Plateforme API keys per D84 spike 2026-05-26 (https://docs.mistral.ai/api). Mistral Admin API exposes billing/usage but requires org-admin scope (out of scope for OLP family-tier deployment).",
"re_entry_point": "lib/providers/mistral.mjs DL-7 (when Mistral publishes a member-key-accessible usage endpoint, or when OLP scope expands to admin-key deployment)",
"admin_api_reference": "https://docs.mistral.ai/admin/security-access/admin-api"
}
},
"bootstrapCreated": 1778630400,
"bootstrapCreatedComment": "Fallback Unix timestamp for models whose precise release date is unknown. Value = 2026-05-13 (the day before the Anthropic billing-split announcement that triggered OLP). Used by handleModels() in server.mjs when a model entry does not have a model-level 'created' field. Per F12 round-5 cold-audit: OpenAI spec treats 'created' as a stable per-model attribute; synthesizing Date.now() on each request causes spurious updates for clients caching models by 'created'.",
"providers": {
"anthropic": {
"displayName": "Anthropic Claude",
"tier": "D",
"candidate": true,
"models": [
{
"id": "claude-opus-4-8",
"displayName": "Claude Opus 4.8",
"contextWindow": 200000,
"deprecated": false,
"created": 1783814400,
"_comment": "claude-opus-4-8 added 2026-05-29 (Task #15). Model id confirmed via Anthropic published model lineup. `created` set to 1783814400 (2026-07-10) — strictly later than claude-opus-4-7's 1782864000 so OpenAI-spec /v1/models 'created' ordering reflects release recency. If a primary-source Anthropic announcement URL becomes available, replace this placeholder with the announcement timestamp."
},
{
"id": "claude-opus-4-7",
"displayName": "Claude Opus 4.7",
"contextWindow": 200000,
"deprecated": false,
"created": 1782864000
},
{
"id": "claude-sonnet-4-6",
"displayName": "Claude Sonnet 4.6",
"contextWindow": 200000,
"deprecated": false,
"created": 1775001600
},
{
"id": "claude-haiku-4-5",
"displayName": "Claude Haiku 4.5",
"contextWindow": 200000,
"deprecated": false,
"created": 1769904000
}
],
"aliases": {
"claude": "claude-sonnet-4-6",
"sonnet": "claude-sonnet-4-6",
"opus": "claude-opus-4-8",
"haiku": "claude-haiku-4-5"
}
},
"openai": {
"displayName": "OpenAI Codex",
"tier": "D",
"candidate": true,
"comment": "Model IDs sourced from canonical Codex models doc (https://developers.openai.com/codex/models, retrieved 2026-05-23). Each id is documented as a `codex -m <id>` example on that page. D7 E2E will probe each one.",
"models": [
{
"id": "gpt-5.5",
"displayName": "GPT-5.5",
"contextWindow": null,
"deprecated": false,
"note": "Frontier recommended model. Docs example: `codex -m gpt-5.5`.",
"created": 1778630400
},
{
"id": "gpt-5.4",
"displayName": "GPT-5.4",
"contextWindow": null,
"deprecated": false,
"note": "Docs example: `codex -m gpt-5.4`.",
"created": 1778630400
},
{
"id": "gpt-5.4-mini",
"displayName": "GPT-5.4 Mini",
"contextWindow": null,
"deprecated": false,
"note": "Lower-cost gpt-5.4 variant. Docs example: `codex -m gpt-5.4-mini`.",
"created": 1778630400
},
{
"id": "gpt-5.3-codex",
"displayName": "GPT-5.3-Codex",
"contextWindow": null,
"deprecated": false,
"note": "Docs example: `codex -m gpt-5.3-codex`. Distinct from the -spark variant.",
"created": 1778630400
},
{
"id": "gpt-5.3-codex-spark",
"displayName": "GPT-5.3-Codex Spark",
"contextWindow": null,
"deprecated": false,
"note": "Research preview. Docs example: `codex -m gpt-5.3-codex-spark`.",
"created": 1778630400
}
],
"aliases": {
"codex": "gpt-5.3-codex",
"codex-spark": "gpt-5.3-codex-spark",
"gpt5": "gpt-5.5",
"gpt5-mini": "gpt-5.4-mini"
}
},
"mistral": {
"displayName": "Mistral Vibe",
"tier": "D",
"candidate": true,
"comment": "Model IDs sourced from canonical Mistral models registry (https://docs.mistral.ai/getting-started/models/models_overview, retrieved 2026-05-23). Each id is the date-stamped canonical form Mistral's own model registry uses. The short forms (devstral-2, devstral-small-2) are aliases used in Vibe's config.toml TOML examples and are exposed as user-facing aliases below. Both models have 262144-token context window per the canonical registry + DOCS-5 launch announcement.",
"models": [
{
"id": "devstral-2-25-12",
"displayName": "Devstral 2",
"contextWindow": 262144,
"deprecated": false,
"note": "123B-parameter dense transformer. DOCS-5: $0.40/$2.00 per million tokens (input/output). Canonical date-stamped id; Vibe config.toml accepts the short form 'devstral-2' as an alias.",
"created": 1764547200
},
{
"id": "devstral-small-2-25-12",
"displayName": "Devstral Small 2",
"contextWindow": 262144,
"deprecated": false,
"note": "24B-parameter model, runs on consumer-grade GPUs. DOCS-5: $0.10/$0.30 per million tokens (input/output). Canonical date-stamped id; Vibe config.toml accepts the short form 'devstral-small-2' as an alias.",
"created": 1764547200
}
],
"aliases": {
"devstral": "devstral-2-25-12",
"devstral-2": "devstral-2-25-12",
"devstral-small": "devstral-small-2-25-12",
"devstral-small-2": "devstral-small-2-25-12"
}
},
"grok": {
"displayName": "xAI Grok",
"tier": "C",
"candidate": true,
"models": [],
"comment": "anticipated Phase 8+; no canonical models pinned yet"
},
"kimi": {
"displayName": "Moonshot Kimi",
"tier": "C",
"candidate": true,
"models": [],
"comment": "anticipated Phase 8+; no canonical models pinned yet"
},
"minimax": {
"displayName": "MiniMax",
"tier": "B",
"candidate": true,
"models": [],
"comment": "anticipated Phase 8+; no canonical models pinned yet"
},
"glm": {
"displayName": "Zhipu GLM",
"tier": "B",
"candidate": true,
"models": [],
"comment": "anticipated Phase 8+; no canonical models pinned yet"
},
"qwen": {
"displayName": "Alibaba Qwen",
"tier": "B",
"candidate": true,
"models": [],
"comment": "anticipated Phase 8+; no canonical models pinned yet"
}
}
}