feat(catalog): pin kimi-k3.1-pro, MiniMax-M3.1-Flash and gpt-6.1-terra in the offline seed

Models.dev already lists these rows, so a live refresh shows them; the bundled
seed is what a first run, an offline start and a deep-offline install read, and
it stopped at `kimi-k3`, `MiniMax-M3` and `gpt-6-astra`.

`scripts/catalog/models_dev_seed.toml` now names `kimi-k3.1-pro`,
`kimi-k3.1-pro-highspeed`, `MiniMax-M3.1-Flash` (both the direct and the
Anthropic-compatible MiniMax entry, which share one upstream roster) and
`gpt-6.1-terra`. `seed lock` re-pinned the referenced rows and `seed render`
regenerated the bundled asset.

Verified: `seed render --check` reports the bundled asset matches the spec and
lock; `seed age --max-days 30` passes at 0.0 days; `defaults audit` reports
"0 stale"; `cargo test -p codewhale-config --lib --locked catalog` runs 71
cases, 71 pass. The four pre-existing rows for each provider are still present
in the rendered asset.

Not established: no provider call exercised any of these new ids, and their
limits and prices are whatever Models.dev publishes.
This commit is contained in:
CodeWhale Bot committed 2026-10-29 22:38:36 -07:00
1 parent 5e9cefdaa1
commit 0e3677b50d
5 files changed
+555 -30

No files matched your search

+1
View File
@@ -57,6 +57,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
- **Newer model rows in the offline catalog:** the bundled seed now carries `kimi-k3.1-pro` and `kimi-k3.1-pro-highspeed` (Moonshot), `MiniMax-M3.1-Flash` (MiniMax and its Anthropic-compatible endpoint) and `gpt-6.1-terra` (OpenAI), which Models.dev already listed and Codewhale did not pin. Live refreshes from Models.dev were already showing these online; the seed is what a first run, an offline start and a deep-offline install read, so it is now re-locked at 2026-10-30 and rendered. `seed render --check` matches and `defaults audit` reports no stale default.
- **Skills ownership (internal):** skill discovery, provenance, mutation and bundled skill content move into `codewhale-skills`. Native roots still use the existing host manager's selection and lifetime checks. (S20, #5316)
- **Model pricing ownership (internal):** hand-sourced price metadata and recorded-time rules move into `codewhale-models`; cost auditing and live catalog callers use the same owner. (S24p1, #5316)
+297 -15
View File
@@ -9,8 +9,8 @@
"default_rows": "Each provider's `default: true` wire id equals that provider's built-in DEFAULT_*_MODEL so RouteResolver::new() and the descriptor stay in agreement when offline.",
"pending_release_metadata": "GLM-5.3 is live on the Z.ai Coding Plan (docs.z.ai/devpack/overview and docs.z.ai/devpack/latest-model, recorded 2026-08-13) and is the default direct Z.ai model (DEFAULT_ZAI_MODEL); explicit GLM-5.2 selections keep their own id. First-party wire id is GLM-5.3; OpenRouter mirror is z-ai/glm-5.3. Capability/limit/dialect values still inherit from GLM-5.2 until Z.ai publishes distinct 5.3 numbers. Pricing stays absent: Coding Plan publishes credit multipliers, not a USD PAYG row we can stand behind. Z.ai may auto-route GLM-5.2/GLM-5.1 requests to GLM-5.3 on their side; Codewhale still sends the selected picker id. Do not send a [1m] suffix. Scope stays first-party Z.ai plus the OpenRouter mirror; add third-party gateway rows only against that gateway's own published roster.",
"generated_by": "python3 scripts/catalog_models_dev.py seed render from scripts/catalog/models_dev_seed.toml and scripts/catalog/models_dev_seed.lock.json. Do not edit this file by hand; see docs/CATALOG_REFRESH.md.",
"upstream": "https://models.dev/catalog.json fetched 2026-10-23T14:52:11Z sha256 32dcb918ab35c61aa6ff1502c153965a3a35135956e9ffe73c7b06d1fa756fee",
"coverage": "23 providers, 128 provider model rows, 4 canonical model entries."
"upstream": "https://models.dev/catalog.json fetched 2026-10-30T05:26:16Z sha256 5048a9f4555766dbe616aa3fbe49a6c5cae7fdcce56b7a9fa529383992ed9036",
"coverage": "23 providers, 133 provider model rows, 4 canonical model entries."
},
"models": {
"deepseek/deepseek-v4-pro-0813": {
@@ -1213,6 +1213,102 @@
"KIMI_API_KEY"
],
"models": {
"kimi-k3.1-pro": {
"id": "kimi-k3.1-pro",
"canonical_model_id": "moonshotai/kimi-k3.1-pro",
"name": "Kimi K3.1 Pro",
"description": "Multimodal Kimi model with 1M context and always-on reasoning for coding, 3D creation, financial research, and agentic work",
"family": "kimi-k3",
"release_date": "2026-10-23",
"last_updated": "2026-10-23",
"attachment": true,
"reasoning": true,
"reasoning_options": [
{
"type": "effort",
"values": [
"low",
"high",
"max"
]
}
],
"interleaved": {
"field": "reasoning_content"
},
"tool_call": true,
"structured_output": true,
"temperature": false,
"open_weights": false,
"modalities": {
"input": [
"text",
"image",
"video"
],
"output": [
"text"
]
},
"limit": {
"context": 1048576,
"output": 1048576
},
"cost": {
"input": 2,
"output": 10,
"cache_read": 0.2,
"cache_write": 2
}
},
"kimi-k3.1-pro-highspeed": {
"id": "kimi-k3.1-pro-highspeed",
"canonical_model_id": "moonshotai/kimi-k3.1-pro",
"name": "Kimi K3.1 Pro Highspeed",
"description": "Multimodal Kimi model with 1M context and always-on reasoning for coding, 3D creation, financial research, and agentic work",
"family": "kimi-k3",
"release_date": "2026-10-23",
"last_updated": "2026-10-23",
"attachment": true,
"reasoning": true,
"reasoning_options": [
{
"type": "effort",
"values": [
"low",
"high",
"max"
]
}
],
"interleaved": {
"field": "reasoning_content"
},
"tool_call": true,
"structured_output": true,
"temperature": false,
"open_weights": false,
"modalities": {
"input": [
"text",
"image",
"video"
],
"output": [
"text"
]
},
"limit": {
"context": 1048576,
"output": 1048576
},
"cost": {
"input": 4,
"output": 20,
"cache_read": 0.2,
"cache_write": 4
}
},
"kimi-k3": {
"id": "kimi-k3",
"canonical_model_id": "moonshotai/kimi-k3",
@@ -1394,6 +1490,52 @@
"MINIMAX_API_KEY"
],
"models": {
"MiniMax-M3.1-Flash": {
"id": "MiniMax-M3.1-Flash",
"canonical_model_id": "minimax/MiniMax-M3.1-Flash",
"name": "MiniMax-M3.1-Flash",
"description": "Frontier multimodal coding model with 1M context window and tunable thinking depth",
"family": "minimax",
"release_date": "2026-10-19",
"last_updated": "2026-10-19",
"attachment": true,
"reasoning": true,
"reasoning_options": [
{
"type": "effort",
"values": [
"low",
"medium",
"high",
"xhigh",
"max"
]
}
],
"tool_call": true,
"structured_output": false,
"temperature": true,
"open_weights": false,
"modalities": {
"input": [
"text",
"image",
"video"
],
"output": [
"text"
]
},
"limit": {
"context": 1000000,
"output": 524288
},
"cost": {
"input": 0.15,
"output": 0.6,
"cache_read": 0.015
}
},
"MiniMax-M3": {
"id": "MiniMax-M3",
"name": "MiniMax-M3",
@@ -1526,6 +1668,52 @@
"MINIMAX_API_KEY"
],
"models": {
"MiniMax-M3.1-Flash": {
"id": "MiniMax-M3.1-Flash",
"canonical_model_id": "minimax/MiniMax-M3.1-Flash",
"name": "MiniMax-M3.1-Flash",
"description": "Frontier multimodal coding model with 1M context window and tunable thinking depth",
"family": "minimax",
"release_date": "2026-10-19",
"last_updated": "2026-10-19",
"attachment": true,
"reasoning": true,
"reasoning_options": [
{
"type": "effort",
"values": [
"low",
"medium",
"high",
"xhigh",
"max"
]
}
],
"tool_call": true,
"structured_output": false,
"temperature": true,
"open_weights": false,
"modalities": {
"input": [
"text",
"image",
"video"
],
"output": [
"text"
]
},
"limit": {
"context": 1000000,
"output": 524288
},
"cost": {
"input": 0.15,
"output": 0.6,
"cache_read": 0.015
}
},
"MiniMax-M3": {
"id": "MiniMax-M3",
"name": "MiniMax-M3",
@@ -4148,6 +4336,100 @@
}
}
}
},
"gpt-6.1-terra": {
"id": "gpt-6.1-terra",
"canonical_model_id": "openai/gpt-6.1-terra",
"name": "GPT-6.1 Terra",
"description": "Fast, efficient model for visual reasoning, precise computer use, and clear, natural writing.",
"family": "gpt-terra",
"knowledge": "2026-06-01",
"release_date": "2026-10-26",
"last_updated": "2026-10-26",
"attachment": true,
"reasoning": true,
"reasoning_options": [
{
"type": "effort",
"values": [
"none",
"low",
"medium",
"high",
"xhigh",
"max"
]
}
],
"tool_call": true,
"structured_output": true,
"temperature": false,
"open_weights": false,
"modalities": {
"input": [
"text",
"image",
"pdf"
],
"output": [
"text"
]
},
"limit": {
"context": 1050000,
"input": 922000,
"output": 128000
},
"cost": {
"input": 1,
"output": 5,
"cache_read": 0.05,
"cache_write": 1.25,
"tiers": [
{
"input": 2,
"output": 7.5,
"cache_read": 0.1,
"cache_write": 2.5,
"tier": {
"type": "context",
"size": 272000
}
}
],
"context_over_200k": {
"input": 2,
"output": 7.5,
"cache_read": 0.1,
"cache_write": 2.5
}
},
"experimental": {
"modes": {
"fast": {
"cost": {
"input": 2,
"output": 10,
"cache_read": 0.1,
"cache_write": 2.5
},
"provider": {
"body": {
"service_tier": "priority"
}
}
},
"pro": {
"provider": {
"body": {
"reasoning": {
"mode": "pro"
}
}
}
}
}
}
}
}
},
@@ -4765,9 +5047,9 @@
"output": 384000
},
"cost": {
"input": 0.885312,
"output": 1.770624,
"cache_read": 0.073776
"input": 0.816234,
"output": 1.632468,
"cache_read": 0.06802
}
},
"deepseek/deepseek-v4-flash": {
@@ -5005,8 +5287,8 @@
},
"cost": {
"input": 0.1,
"output": 0.95,
"cache_read": 0.05
"output": 0.9,
"cache_read": 0.025
}
},
"qwen/qwen3.7-plus": {
@@ -5146,9 +5428,9 @@
"output": 943718
},
"cost": {
"input": 0.0341,
"input": 0.006,
"output": 7,
"cache_read": 0.033
"cache_read": 0.005
}
},
"z-ai/glm-5.3": {
@@ -5188,9 +5470,9 @@
"output": 943718
},
"cost": {
"input": 0.079,
"output": 1.4,
"cache_read": 0.078
"input": 0.08,
"output": 3.6,
"cache_read": 0.076
}
},
"z-ai/glm-5.3-flash": {
@@ -5229,11 +5511,11 @@
},
"limit": {
"context": 1048576,
"output": 943717
"output": 131072
},
"cost": {
"input": 0.15,
"output": 0.5,
"input": 0.0497,
"output": 0.0701,
"cache_read": 0.03
}
},
+1
View File
@@ -57,6 +57,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
- **Newer model rows in the offline catalog:** the bundled seed now carries `kimi-k3.1-pro` and `kimi-k3.1-pro-highspeed` (Moonshot), `MiniMax-M3.1-Flash` (MiniMax and its Anthropic-compatible endpoint) and `gpt-6.1-terra` (OpenAI), which Models.dev already listed and Codewhale did not pin. Live refreshes from Models.dev were already showing these online; the seed is what a first run, an offline start and a deep-offline install read, so it is now re-locked at 2026-10-30 and rendered. `seed render --check` matches and `defaults audit` reports no stale default.
- **Skills ownership (internal):** skill discovery, provenance, mutation and bundled skill content move into `codewhale-skills`. Native roots still use the existing host manager's selection and lifetime checks. (S20, #5316)
- **Model pricing ownership (internal):** hand-sourced price metadata and recorded-time rules move into `codewhale-models`; cost auditing and live catalog callers use the same owner. (S24p1, #5316)
+251 -15
View File
@@ -1,8 +1,8 @@
{
"source": {
"url": "https://models.dev/catalog.json",
"fetched_at": "2026-10-23T14:52:11Z",
"sha256": "32dcb918ab35c61aa6ff1502c153965a3a35135956e9ffe73c7b06d1fa756fee"
"fetched_at": "2026-10-30T05:26:16Z",
"sha256": "5048a9f4555766dbe616aa3fbe49a6c5cae7fdcce56b7a9fa529383992ed9036"
},
"models": {
"deepseek/deepseek-v4-pro-0813": {
@@ -2885,6 +2885,52 @@
"cache_read": 0.12
}
}
},
"MiniMax-M3.1-Flash": {
"id": "MiniMax-M3.1-Flash",
"canonical_model_id": "minimax/MiniMax-M3.1-Flash",
"name": "MiniMax-M3.1-Flash",
"description": "Frontier multimodal coding model with 1M context window and tunable thinking depth",
"family": "minimax",
"release_date": "2026-10-19",
"last_updated": "2026-10-19",
"attachment": true,
"reasoning": true,
"reasoning_options": [
{
"type": "effort",
"values": [
"low",
"medium",
"high",
"xhigh",
"max"
]
}
],
"tool_call": true,
"structured_output": false,
"temperature": true,
"open_weights": false,
"modalities": {
"input": [
"text",
"image",
"video"
],
"output": [
"text"
]
},
"limit": {
"context": 1000000,
"output": 524288
},
"cost": {
"input": 0.15,
"output": 0.6,
"cache_read": 0.015
}
}
},
"moonshotai": {
@@ -3056,6 +3102,102 @@
"cache_read": 0.3,
"cache_write": 3
}
},
"kimi-k3.1-pro": {
"id": "kimi-k3.1-pro",
"canonical_model_id": "moonshotai/kimi-k3.1-pro",
"name": "Kimi K3.1 Pro",
"description": "Multimodal Kimi model with 1M context and always-on reasoning for coding, 3D creation, financial research, and agentic work",
"family": "kimi-k3",
"release_date": "2026-10-23",
"last_updated": "2026-10-23",
"attachment": true,
"reasoning": true,
"reasoning_options": [
{
"type": "effort",
"values": [
"low",
"high",
"max"
]
}
],
"interleaved": {
"field": "reasoning_content"
},
"tool_call": true,
"structured_output": true,
"temperature": false,
"open_weights": false,
"modalities": {
"input": [
"text",
"image",
"video"
],
"output": [
"text"
]
},
"limit": {
"context": 1048576,
"output": 1048576
},
"cost": {
"input": 2,
"output": 10,
"cache_read": 0.2,
"cache_write": 2
}
},
"kimi-k3.1-pro-highspeed": {
"id": "kimi-k3.1-pro-highspeed",
"canonical_model_id": "moonshotai/kimi-k3.1-pro",
"name": "Kimi K3.1 Pro Highspeed",
"description": "Multimodal Kimi model with 1M context and always-on reasoning for coding, 3D creation, financial research, and agentic work",
"family": "kimi-k3",
"release_date": "2026-10-23",
"last_updated": "2026-10-23",
"attachment": true,
"reasoning": true,
"reasoning_options": [
{
"type": "effort",
"values": [
"low",
"high",
"max"
]
}
],
"interleaved": {
"field": "reasoning_content"
},
"tool_call": true,
"structured_output": true,
"temperature": false,
"open_weights": false,
"modalities": {
"input": [
"text",
"image",
"video"
],
"output": [
"text"
]
},
"limit": {
"context": 1048576,
"output": 1048576
},
"cost": {
"input": 4,
"output": 20,
"cache_read": 0.2,
"cache_write": 4
}
}
},
"novita-ai": {
@@ -4085,6 +4227,100 @@
}
}
}
},
"gpt-6.1-terra": {
"id": "gpt-6.1-terra",
"canonical_model_id": "openai/gpt-6.1-terra",
"name": "GPT-6.1 Terra",
"description": "Fast, efficient model for visual reasoning, precise computer use, and clear, natural writing.",
"family": "gpt-terra",
"knowledge": "2026-06-01",
"release_date": "2026-10-26",
"last_updated": "2026-10-26",
"attachment": true,
"reasoning": true,
"reasoning_options": [
{
"type": "effort",
"values": [
"none",
"low",
"medium",
"high",
"xhigh",
"max"
]
}
],
"tool_call": true,
"structured_output": true,
"temperature": false,
"open_weights": false,
"modalities": {
"input": [
"text",
"image",
"pdf"
],
"output": [
"text"
]
},
"limit": {
"context": 1050000,
"input": 922000,
"output": 128000
},
"cost": {
"input": 1,
"output": 5,
"cache_read": 0.05,
"cache_write": 1.25,
"tiers": [
{
"input": 2,
"output": 7.5,
"cache_read": 0.1,
"cache_write": 2.5,
"tier": {
"type": "context",
"size": 272000
}
}
],
"context_over_200k": {
"input": 2,
"output": 7.5,
"cache_read": 0.1,
"cache_write": 2.5
}
},
"experimental": {
"modes": {
"fast": {
"cost": {
"input": 2,
"output": 10,
"cache_read": 0.1,
"cache_write": 2.5
},
"provider": {
"body": {
"service_tier": "priority"
}
}
},
"pro": {
"provider": {
"body": {
"reasoning": {
"mode": "pro"
}
}
}
}
}
}
}
},
"openrouter": {
@@ -4175,9 +4411,9 @@
"output": 384000
},
"cost": {
"input": 0.885312,
"output": 1.770624,
"cache_read": 0.073776
"input": 0.816234,
"output": 1.632468,
"cache_read": 0.06802
}
},
"dots-studio/dots-3-note-preview:free": {
@@ -4290,8 +4526,8 @@
},
"cost": {
"input": 0.1,
"output": 0.95,
"cache_read": 0.05
"output": 0.9,
"cache_read": 0.025
}
},
"qwen/qwen3.6-flash": {
@@ -4545,9 +4781,9 @@
"output": 943718
},
"cost": {
"input": 0.0341,
"input": 0.006,
"output": 7,
"cache_read": 0.033
"cache_read": 0.005
}
},
"z-ai/glm-5.3": {
@@ -4587,9 +4823,9 @@
"output": 943718
},
"cost": {
"input": 0.079,
"output": 1.4,
"cache_read": 0.078
"input": 0.08,
"output": 3.6,
"cache_read": 0.076
}
},
"z-ai/glm-5.3-flash": {
@@ -4628,11 +4864,11 @@
},
"limit": {
"context": 1048576,
"output": 943717
"output": 131072
},
"cost": {
"input": 0.15,
"output": 0.5,
"input": 0.0497,
"output": 0.0701,
"cache_read": 0.03
}
}
+5
View File
@@ -84,6 +84,8 @@ npm = "@ai-sdk/openai-compatible"
env = ["MOONSHOT_API_KEY", "KIMI_API_KEY"]
default = "kimi-k2.7-code"
models = [
"kimi-k3.1-pro",
"kimi-k3.1-pro-highspeed",
"kimi-k3",
"kimi-k2.7-code",
"kimi-k2.7-code-highspeed",
@@ -98,6 +100,7 @@ npm = "@ai-sdk/openai-compatible"
env = ["MINIMAX_API_KEY"]
default = "MiniMax-M3"
models = [
"MiniMax-M3.1-Flash",
"MiniMax-M3",
"MiniMax-M2.7",
"MiniMax-M2.7-highspeed",
@@ -112,6 +115,7 @@ npm = "@ai-sdk/anthropic"
env = ["MINIMAX_API_KEY"]
default = "MiniMax-M3"
models = [
"MiniMax-M3.1-Flash",
"MiniMax-M3",
"MiniMax-M2.7",
"MiniMax-M2.7-highspeed",
@@ -220,6 +224,7 @@ models = [
"gpt-6-sol",
"gpt-6-luna",
"gpt-6.1-sol",
"gpt-6.1-terra",
]
[[providers]]