@oh-my-pi/pi-catalog 18.4.2 → 18.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,13 +1,12 @@
1
1
  // Command Code Provider API deployment contract. Model capabilities and effort
2
- // ladders follow command-code@1.44.0: the thinking-efforts below reproduce the
3
- // bundle's 36-id effort registry 1:1 (verified against its effort map), plus
4
- // the 5 Muse Spark lineage ids whose ladder OMP's classes/meta.kdl carries and
5
- // `deepseek/deepseek-v4.1-flash`, which postdates that bundle (see its rule).
6
- // Every id the 1.44.0 census serves without an effort dial keeps a missing
7
- // ladder here as a deliberate absence, not a gap (`modelSupportsReasoning-
8
- // Effort` is false for those ids in that bundle). Later bundles (1.53.0) hand
9
- // dials to a few further ids — MiniMaxAI/MiniMax-M3 and meta/muse-spark-1.3's
10
- // `max` — which stay out of this change.
2
+ // ladders follow command-code@1.67.0. The thinking-efforts below reproduce that
3
+ // bundle's effort registry exactly, including the Muse Spark ids it now lists.
4
+ // An id that 1.67.0 serves without an effort dial has no ladder here on
5
+ // purpose, not by oversight (`modelSupportsReasoningEffort` is false for it in
6
+ // that bundle). The one exception is `claude-sonnet-5-5`: served since
7
+ // 2026-09-29 but not yet in the command-code@1.67.0 registry, so its ladder,
8
+ // image input, and price come from Anthropic's first-party catalog at
9
+ // Anthropic list price.
11
10
  provider "commandcode" {
12
11
  default-model "claude-sonnet-5"
13
12
  env "COMMAND_CODE_API_KEY" "COMMANDCODE_API_KEY"
@@ -18,12 +17,24 @@ provider "commandcode" {
18
17
  // backfill reasoning, input, or limits during generation.
19
18
  skip-cross-provider-reference-fills #true
20
19
  discovery label="Command Code" allow-unauthenticated=#true
20
+ // Command Code serves TypeSafe's jev only through the System One route
21
+ // (`POST /provider/v1/systemone`); `/provider/v1/models` omits it.
22
+ seed api="typesafe" base-url="https://api.commandcode.ai/provider" bundle="always" {
23
+ model "typesafe/jev" name="TypeSafe Jev" {
24
+ reasoning #false
25
+ input "text"
26
+ // Jev bills input only (command-code@1.67.0 display rate after its free window).
27
+ cost input=0.042 output=0 cache-read=0 cache-write=0
28
+ limits
29
+ supports-tools #false
30
+ }
31
+ }
21
32
 
22
33
  supports-developer-role #false
23
34
  supports-store #false
24
- // No effort dial by default: only the exact ids below expose one
25
- // upstream (command-code@1.44.0 effort registry + Muse Spark lineage).
26
- // Every other served id must omit the effort control on the wire.
35
+ // No effort dial by default. Only the exact ids below expose one upstream
36
+ // (command-code@1.67.0 effort registry); every other served id must omit
37
+ // the effort control on the wire.
27
38
  supports-reasoning-effort #false
28
39
  // Discovery rows carry no reasoning metadata and stay neutral, so exact
29
40
  // ladders below opt into repairing the neutral default (the cascade
@@ -31,9 +42,10 @@ provider "commandcode" {
31
42
  thinking-upgrade-neutral #true
32
43
  thinking-mode "effort"
33
44
  max-tokens-field "max_tokens"
34
- // Default output cap: the Provider API exposes no per-model maximum and
35
- // the CLI requests 64K by default, so 64K (2^16); the two registry caps
36
- // below are the only per-model maxOutputTokens in command-code@1.44.0.
45
+ // Default output cap: the Provider API exposes no per-model maximum, and
46
+ // the CLI requests 64K by default, so the default is 64K (2^16). The
47
+ // per-model caps below are the only maxOutputTokens that the
48
+ // command-code@1.67.0 registry sets.
37
49
  limits-patch {
38
50
  max-tokens 65536
39
51
  }
@@ -42,8 +54,13 @@ provider "commandcode" {
42
54
  supports-eager-tool-input-streaming #false
43
55
  supports-long-cache-retention #false
44
56
  }
57
+ models "typesafe/jev" {
58
+ kind "judge"
59
+ }
45
60
  models "claude-fable-5" "claude-fable-5-1" "claude-opus-4-7" "claude-opus-4-8" \
46
- "claude-opus-5" "claude-sonnet-4-6" "claude-sonnet-5" {
61
+ "claude-opus-5" "claude-opus-5-5" "claude-sonnet-4-6" "claude-sonnet-5" "claude-sonnet-5-5" \
62
+ "gpt-5.6-luna" "gpt-5.6-sol" "gpt-5.6-terra" "gpt-6-astra" "gpt-6-luna" "gpt-6-sol" \
63
+ "meta/muse-spark-1.3" {
47
64
  supports-reasoning-effort #true
48
65
  thinking-efforts "low" "medium" "high" "xhigh" "max"
49
66
  }
@@ -52,44 +69,27 @@ provider "commandcode" {
52
69
  supports-reasoning-effort #true
53
70
  thinking-efforts "high" "max"
54
71
  }
55
- models "deepseek/deepseek-v4-flash-fast" "moonshotai/Kimi-K3" "z-ai/glm-5.3-flash" \
56
- "zai-org/GLM-5.3" {
57
- supports-reasoning-effort #true
58
- thinking-efforts "low" "high" "max"
59
- }
60
- // `deepseek/deepseek-v4.1-flash` postdates command-code@1.44.0, so it is
61
- // absent from that bundle's effort registry; command-code@1.53.0 lists it
62
- // in the same low/high/max group as Kimi K3 and GLM-5.3, and the live docs
63
- // model table carries the same scale plus image input.
64
- models "deepseek/deepseek-v4.1-flash" {
72
+ models "deepseek/deepseek-v4-flash-fast" "deepseek/deepseek-v4.1-flash" \
73
+ "deepseek/deepseek-v4.1-flash-fast" "moonshotai/Kimi-K3" "z-ai/glm-5.3-flash" \
74
+ "z-ai/glm-5.3-flashx" "zai-org/GLM-5.3" {
65
75
  supports-reasoning-effort #true
66
76
  thinking-efforts "low" "high" "max"
67
- // The class's `token="vision"` exemption misses this id (its name
68
- // carries no `vision` token) even though the deployment serves it with
69
- // image input, so the opt-out is explicit here.
70
- strip-image-input #false
71
- input-modalities "text" "image"
72
77
  }
73
78
  models "google/gemini-3.1-flash-lite" "google/gemini-3.5-flash" \
74
79
  "google/gemini-3.5-flash-lite" "google/gemini-3.6-flash" "google/gemini-3.7-flash" \
75
- "google/gemini-3.8-flash" "gpt-5.4-mini" "xai/grok-4.5" {
80
+ "google/gemini-3.8-flash" "gpt-5.4-mini" "MiniMaxAI/MiniMax-M3" \
81
+ "stealth/space-bunny-alpha" "stepfun/Step-5-Preview" "tencent/hy4-preview" "xai/grok-4.5" {
76
82
  supports-reasoning-effort #true
77
83
  thinking-efforts "low" "medium" "high"
78
84
  }
79
- models "gpt-5.3-codex" "gpt-5.4" "gpt-5.5" "xai/grok-4.6" {
85
+ models "gpt-5.3-codex" "gpt-5.4" "gpt-5.5" "meta/muse-spark-1.1" "meta/muse-spark-1.2" \
86
+ "meta/muse-spark-1.2-contributor" "meta/muse-spark-1.3-contributor" "xai/grok-4.6" \
87
+ "xai/grok-4.7" {
80
88
  supports-reasoning-effort #true
81
89
  thinking-efforts "low" "medium" "high" "xhigh"
82
90
  }
83
- models "gpt-5.6-luna" "gpt-5.6-sol" "gpt-5.6-terra" {
84
- supports-reasoning-effort #true
85
- thinking-efforts "low" "medium" "high" "xhigh" "max"
86
- }
87
- models "meta/muse-spark-1.1" "meta/muse-spark-1.2" "meta/muse-spark-1.2-contributor" \
88
- "meta/muse-spark-1.3" "meta/muse-spark-1.3-contributor" {
89
- supports-reasoning-effort #true
90
- thinking-efforts "minimal" "low" "medium" "high" "xhigh"
91
- }
92
- models "Qwen/Qwen3.8-27B" "Qwen/Qwen3.8-Flash" "Qwen/Qwen3.8-Max" "Qwen/Qwen3.8-Max-0902" {
91
+ models "Qwen/Qwen3.8-27B" "Qwen/Qwen3.8-Flash" "Qwen/Qwen3.8-Max" "Qwen/Qwen3.8-Max-0902" \
92
+ "Qwen/Qwen3.8-Omni-Flash" "stealth/pixel-canary" {
93
93
  supports-reasoning-effort #true
94
94
  thinking-efforts "low" "medium" "xhigh"
95
95
  }
@@ -97,20 +97,54 @@ provider "commandcode" {
97
97
  supports-reasoning-effort #true
98
98
  thinking-efforts "high" "xhigh"
99
99
  }
100
- models "tencent/hy4-preview" {
101
- supports-reasoning-effort #true
102
- thinking-efforts "low" "medium" "high"
100
+ // Image input follows command-code@1.67.0: every served id outside its text-only set.
101
+ // residue: the vendor's text-only set cuts across classes (Qwen, DeepSeek, GLM,
102
+ // MiniMax, and Xiaomi each have ids on both sides), so no class selector
103
+ // expresses this list.
104
+ models "claude-fable-5" "claude-fable-5-1" "claude-haiku-4-5-20251001" "claude-opus-4-7" \
105
+ "claude-opus-4-8" "claude-opus-5" "claude-opus-5-5" "claude-sonnet-4-6" "claude-sonnet-5" \
106
+ "claude-sonnet-5-5" \
107
+ "deepseek/deepseek-v4-flash-vision-exp" "deepseek/deepseek-v4.1-flash-fast" \
108
+ "google/gemini-3.1-flash-lite" \
109
+ "google/gemini-3.5-flash" "google/gemini-3.5-flash-lite" "google/gemini-3.6-flash" \
110
+ "google/gemini-3.7-flash" "google/gemini-3.8-flash" "gpt-5.3-codex" "gpt-5.4" \
111
+ "gpt-5.4-mini" "gpt-5.5" "gpt-5.6-luna" "gpt-5.6-sol" "gpt-5.6-terra" "gpt-6-astra" \
112
+ "gpt-6-luna" "gpt-6-sol" "meta/muse-spark-1.1" "meta/muse-spark-1.2" \
113
+ "meta/muse-spark-1.2-contributor" "meta/muse-spark-1.3" "meta/muse-spark-1.3-contributor" \
114
+ "MiniMaxAI/MiniMax-M3" "moonshotai/Kimi-K2.5" "moonshotai/Kimi-K2.6" \
115
+ "moonshotai/Kimi-K2.7-Code" "moonshotai/Kimi-K2.7-Code-Highspeed" "moonshotai/Kimi-K3" \
116
+ "Qwen/Qwen3.6-Plus" "Qwen/Qwen3.7-Flash" "Qwen/Qwen3.7-Plus" "Qwen/Qwen3.8-27B" \
117
+ "Qwen/Qwen3.8-Flash" "Qwen/Qwen3.8-Max" "Qwen/Qwen3.8-Max-0902" "Qwen/Qwen3.8-Omni-Flash" \
118
+ "sakana/fugu-ultra" "stealth/pixel-canary" "stealth/space-bunny-alpha" \
119
+ "stepfun/Step-3.7-Flash" "stepfun/Step-5-Preview" "thinkingmachines/inkling" \
120
+ "thinkingmachines/inkling-small" "xai/grok-4.5" "xai/grok-4.6" "xai/grok-4.7" \
121
+ "xiaomi/mimo-v2.5" "xiaomi/mimo-v2.6-flash" "xiaomi/mimo-v2.6-pro" \
122
+ "xiaomi/mimo-v2.6-pro-ultraspeed" "z-ai/glm-5.3-flash" "z-ai/glm-5.3-flashx" {
123
+ input-modalities "text" "image"
103
124
  }
104
- models "Qwen/Qwen3.8-27B" {
125
+ // The class's `token="vision"` exemption misses this id (its name carries no
126
+ // `vision` token) even though the deployment serves it with image input, so
127
+ // the opt-out is explicit here.
128
+ models "deepseek/deepseek-v4.1-flash" {
129
+ strip-image-input #false
130
+ input-modalities "text" "image"
131
+ }
132
+ models "inclusionai/ling-3.0-flash-sante:free" "poolside/laguna-s-2.1-free" "Qwen/Qwen3.8-27B" {
105
133
  limits-patch {
106
134
  max-tokens 32768
107
135
  }
108
136
  }
109
- models "z-ai/glm-5.3-flash" {
137
+ models "Qwen/Qwen3.8-Omni-Flash" "stealth/pixel-canary" "z-ai/glm-5.3-flash" \
138
+ "z-ai/glm-5.3-flashx" {
110
139
  limits-patch {
111
140
  max-tokens 131072
112
141
  }
113
142
  }
143
+ models "stealth/space-bunny-alpha" {
144
+ limits-patch {
145
+ max-tokens 524288
146
+ }
147
+ }
114
148
  // Codex SKUs report the output budget inside the advertised window, so
115
149
  // the class lineage pins the 272K prompt window; restate it here or the
116
150
  // class rule wins the whole limits axis and drops the 64K provider cap.
@@ -120,22 +154,32 @@ provider "commandcode" {
120
154
  max-tokens 65536
121
155
  }
122
156
  }
157
+ // Command Code's Responses endpoint rejects an object `tool_choice` and returns
158
+ // no bytes from `image_generation` (verified 2026-09-29), so the openai
159
+ // class's hosted-image and image-model grants do not apply and named choices
160
+ // degrade to `"required"`. Hosted web search still works with a string `tool_choice`.
161
+ models "gpt-5.3-codex" "gpt-5.4" "gpt-5.4-mini" "gpt-5.5" "gpt-5.6-luna" "gpt-5.6-sol" \
162
+ "gpt-5.6-terra" "gpt-6-astra" "gpt-6-luna" "gpt-6-sol" {
163
+ hosted-image #false
164
+ image-model #false
165
+ supports-named-tool-choice #false
166
+ }
123
167
  // ---------------------------------------------------------------------------
124
- // Provider pricing. Every model id served by GET /provider/v1/models is
125
- // priced here; discovery defaults each model to zero cost and the mapper
126
- // never inherits another provider's rates, so this table is the sole
127
- // pricing source. Base rates are Command Code's per-1M-token USD list
128
- // prices, cross-checked 1:1 against the rate card bundled in
129
- // command-code@1.44.0 (67 rows, zero mismatches) and the live catalog on
130
- // 2026-09-09 (68 rows: the bundle plus `inclusionai/ling-3.0-flash-sante:free`).
131
- // The page's Sonnet 4.5 / Opus 4.6 / GPT-6 Astra rows are not served by
132
- // the Provider API and stay absent. A "—" Cache Write column on the page
133
- // means 0. Standing deals (MiniMax M3 50% off, MiMo V2.5 discounts) are
134
- // priced at their current effective rates. Free models
135
- // (`poolside/laguna-s-2.1-free`, `meituan/LongCat-2.0:free`,
136
- // `inclusionai/ling-3.0-flash-sante:free`) keep the zero discovery default.
168
+ // This table prices every model id that GET /provider/v1/models serves.
169
+ // Discovery defaults each model to zero cost and the mapper never inherits
170
+ // another provider's rates, so this table is the only pricing source.
171
+ // Base rates are Command Code's per-1M-token USD display rates. They follow
172
+ // `getDisplayRates` in command-code@1.67.0, read on 2026-09-29. That table
173
+ // prices 83 of the 84 ids the live catalog served that day; it has no
174
+ // `claude-sonnet-5-5`. DeepSeek V4 Flash and its vision-exp variant bill on
175
+ // the V4.1 Flash gateway slug.
176
+ // A missing cache-write rate means 0. Standing deals (MiniMax M3 50% off,
177
+ // MiMo discounts) use their current effective rates.
178
+ // Free models (`poolside/laguna-s-2.1-free`,
179
+ // `inclusionai/ling-3.0-flash-sante:free`, `stealth/pixel-canary`,
180
+ // `stealth/space-bunny-alpha`) keep the zero discovery default.
137
181
  // ---------------------------------------------------------------------------
138
- models "claude-sonnet-5" {
182
+ models "claude-sonnet-5" "claude-sonnet-5-5" {
139
183
  cost-patch {
140
184
  input 2.0
141
185
  output 10.0
@@ -176,6 +220,14 @@ provider "commandcode" {
176
220
  cache-write 6.25
177
221
  }
178
222
  }
223
+ models "claude-opus-5-5" {
224
+ cost-patch {
225
+ input 4.0
226
+ output 20.0
227
+ cache-read 0.2
228
+ cache-write 5.0
229
+ }
230
+ }
179
231
  models "claude-haiku-4-5-20251001" {
180
232
  cost-patch {
181
233
  input 1.0
@@ -184,6 +236,51 @@ provider "commandcode" {
184
236
  cache-write 1.25
185
237
  }
186
238
  }
239
+ models "gpt-6-astra" {
240
+ cost-patch {
241
+ input 10.0
242
+ output 50.0
243
+ cache-read 1.0
244
+ cache-write 12.5
245
+ }
246
+ long-context-cost {
247
+ input-threshold 272000
248
+ input 20.0
249
+ output 75.0
250
+ cache-read 2.0
251
+ cache-write 25.0
252
+ }
253
+ }
254
+ models "gpt-6-sol" {
255
+ cost-patch {
256
+ input 2.0
257
+ output 10.0
258
+ cache-read 0.2
259
+ cache-write 2.5
260
+ }
261
+ long-context-cost {
262
+ input-threshold 272000
263
+ input 4.0
264
+ output 15.0
265
+ cache-read 0.4
266
+ cache-write 5.0
267
+ }
268
+ }
269
+ models "gpt-6-luna" {
270
+ cost-patch {
271
+ input 0.1
272
+ output 0.5
273
+ cache-read 0.01
274
+ cache-write 0.125
275
+ }
276
+ long-context-cost {
277
+ input-threshold 272000
278
+ input 0.2
279
+ output 0.75
280
+ cache-read 0.02
281
+ cache-write 0.25
282
+ }
283
+ }
187
284
  models "gpt-5.6-sol" {
188
285
  cost-patch {
189
286
  input 5.0
@@ -243,6 +340,7 @@ provider "commandcode" {
243
340
  // DeepSeek V4 bills time-dependent rates; the page displays the off-peak
244
341
  // rates that apply 17h/day (peak doubles input/output). Off-peak is the
245
342
  // documented display convention; the Usage page stays authoritative.
343
+ // V4.1 Flash Fast displays 0.16 / 0.58 / 0.016.
246
344
  models "deepseek/deepseek-v4-pro" {
247
345
  cost-patch {
248
346
  input 0.66
@@ -251,11 +349,14 @@ provider "commandcode" {
251
349
  cache-write 0.0
252
350
  }
253
351
  }
254
- models "deepseek/deepseek-v4-flash" "deepseek/deepseek-v4-flash-vision-exp" {
352
+ // command-code@1.67.0 bills the flash id and its vision-exp variant on the
353
+ // V4.1 Flash gateway slug, so all three ids share the V4.1 Flash off-peak rates.
354
+ models "deepseek/deepseek-v4-flash" "deepseek/deepseek-v4-flash-vision-exp" \
355
+ "deepseek/deepseek-v4.1-flash" {
255
356
  cost-patch {
256
- input 0.22
257
- output 0.66
258
- cache-read 0.007
357
+ input 0.15
358
+ output 0.6
359
+ cache-read 0.003
259
360
  cache-write 0.0
260
361
  }
261
362
  }
@@ -267,13 +368,11 @@ provider "commandcode" {
267
368
  cache-write 0.0
268
369
  }
269
370
  }
270
- // Served by the live catalog but absent from command-code@1.44.0: models
271
- // page off-peak rates as listed 2026-09-10 (cache-write "—" means 0).
272
- models "deepseek/deepseek-v4.1-flash" {
371
+ models "deepseek/deepseek-v4.1-flash-fast" {
273
372
  cost-patch {
274
- input 0.15
275
- output 0.6
276
- cache-read 0.003
373
+ input 0.16
374
+ output 0.58
375
+ cache-read 0.016
277
376
  cache-write 0.0
278
377
  }
279
378
  }
@@ -327,6 +426,14 @@ provider "commandcode" {
327
426
  cache-write 0.0
328
427
  }
329
428
  }
429
+ models "z-ai/glm-5.3-flashx" {
430
+ cost-patch {
431
+ input 0.37
432
+ output 1.25
433
+ cache-read 0.075
434
+ cache-write 0.0
435
+ }
436
+ }
330
437
  models "zai-org/GLM-5.3" "zai-org/GLM-5.2" "zai-org/GLM-5.1" {
331
438
  cost-patch {
332
439
  input 1.4
@@ -368,9 +475,17 @@ provider "commandcode" {
368
475
  cache-write 0.0
369
476
  }
370
477
  }
371
- // MiMo V2.5 carries standing Xiaomi discounts; priced at the current
478
+ models "meituan/LongCat-2.0" {
479
+ cost-patch {
480
+ input 0.3
481
+ output 1.2
482
+ cache-read 0.006
483
+ cache-write 0.0
484
+ }
485
+ }
486
+ // MiMo carries standing Xiaomi discounts; priced at the current
372
487
  // unified-context effective rates.
373
- models "xiaomi/mimo-v2.5-pro" {
488
+ models "xiaomi/mimo-v2.5-pro" "xiaomi/mimo-v2.6-pro" {
374
489
  cost-patch {
375
490
  input 0.435
376
491
  output 0.87
@@ -378,7 +493,7 @@ provider "commandcode" {
378
493
  cache-write 0.0
379
494
  }
380
495
  }
381
- models "xiaomi/mimo-v2.5" {
496
+ models "xiaomi/mimo-v2.5" "xiaomi/mimo-v2.6-flash" {
382
497
  cost-patch {
383
498
  input 0.14
384
499
  output 0.28
@@ -386,6 +501,14 @@ provider "commandcode" {
386
501
  cache-write 0.0
387
502
  }
388
503
  }
504
+ models "xiaomi/mimo-v2.6-pro-ultraspeed" {
505
+ cost-patch {
506
+ input 4.35
507
+ output 8.7
508
+ cache-read 0.036
509
+ cache-write 0.0
510
+ }
511
+ }
389
512
  models "Qwen/Qwen3.8-Max-0902" {
390
513
  cost-patch {
391
514
  input 2.0
@@ -418,6 +541,14 @@ provider "commandcode" {
418
541
  cache-write 0.0
419
542
  }
420
543
  }
544
+ models "Qwen/Qwen3.8-Omni-Flash" {
545
+ cost-patch {
546
+ input 0.15
547
+ output 0.47
548
+ cache-read 0.016
549
+ cache-write 0.0
550
+ }
551
+ }
421
552
  models "Qwen/Qwen3.7-Max" {
422
553
  cost-patch {
423
554
  input 2.5
@@ -486,12 +617,20 @@ provider "commandcode" {
486
617
  }
487
618
  models "stepfun/Step-3.5-Flash" {
488
619
  cost-patch {
489
- input 0.1
620
+ input 0.09
490
621
  output 0.3
491
622
  cache-read 0.02
492
623
  cache-write 0.0
493
624
  }
494
625
  }
626
+ models "stepfun/Step-5-Preview" {
627
+ cost-patch {
628
+ input 1.0
629
+ output 2.7
630
+ cache-read 0.05
631
+ cache-write 0.0
632
+ }
633
+ }
495
634
  models "tencent/hy4-preview" {
496
635
  cost-patch {
497
636
  input 0.834
@@ -624,4 +763,12 @@ provider "commandcode" {
624
763
  cache-write 0.0
625
764
  }
626
765
  }
766
+ models "xai/grok-4.7" {
767
+ cost-patch {
768
+ input 1.2
769
+ output 3.6
770
+ cache-read 0.3
771
+ cache-write 0.0
772
+ }
773
+ }
627
774
  }
@@ -9,7 +9,8 @@ provider "openai-codex" {
9
9
  web-search "codex"
10
10
 
11
11
  seed api="openai-codex-responses" base-url="https://chatgpt.com/backend-api" bundle="always" {
12
- model "gpt-image-1" name="GPT Image 1" {
12
+ // Label only: the Codex backend ignores `tool.model` and runs gpt-image-2-codex.
13
+ model "gpt-image-2" name="GPT Image 2" {
13
14
  reasoning #false
14
15
  input "text" "image"
15
16
  cost input=0 output=0 cache-read=0 cache-write=0
@@ -18,7 +19,7 @@ provider "openai-codex" {
18
19
  }
19
20
  }
20
21
 
21
- models "gpt-image-1" {
22
+ models "gpt-image-2" {
22
23
  kind "image"
23
24
  }
24
25
 
@@ -88,6 +89,23 @@ provider "openai-codex" {
88
89
  cache-write 0
89
90
  }
90
91
  }
92
+ // GPT-6.1 Sol keeps GPT-6 Sol's $2/$10 list price but halves cached input
93
+ // to $0.10 (OpenAI API docs, 2026-09-29). Like Astra, Codex reports a 272K
94
+ // default and an 872K maximum while OpenAI documents 922K max input (1.05M
95
+ // total); the curated maximum applies only with extended context on, and a
96
+ // higher live maximum still wins.
97
+ models "gpt-6.1-sol" "gpt-6.1-sol-wm" {
98
+ cost-patch {
99
+ input 2.0
100
+ output 10.0
101
+ cache-read 0.1
102
+ cache-write 0
103
+ }
104
+ limits-patch {
105
+ context-window 272000
106
+ }
107
+ max-context-window 922000
108
+ }
91
109
  models "gpt-6-luna" "gpt-6-luna-wm" {
92
110
  cost-patch {
93
111
  input 0.1
@@ -3,12 +3,6 @@
3
3
  provider "openai" {
4
4
  default-model "gpt-5.5"
5
5
  env "OPENAI_API_KEY"
6
- // Responses web search is documented for GPT-5.5 and GPT-6 Astra, and has
7
- // been live-verified for GPT-6 Luna and GPT-5.6 Luna. Keep this capability
8
- // model-scoped so realtime and other unverified OpenAI models stay excluded.
9
- models "gpt-5.5" "gpt-6-astra" "gpt-6-luna" "gpt-5.6-luna" {
10
- web-search "openai"
11
- }
12
6
  kind-apis {
13
7
  embedding "openai-embeddings"
14
8
  image "openai-responses"
@@ -5,6 +5,14 @@ provider "web" {
5
5
  allow-unauthenticated #true
6
6
 
7
7
  seed api="web-search" base-url="web://search" bundle="always" {
8
+ // Placeholder resolved at search time to the session's active model, when it declares a grounding.
9
+ model "hosted" name="Session model" {
10
+ reasoning #false
11
+ input "text"
12
+ cost input=0 output=0 cache-read=0 cache-write=0
13
+ limits
14
+ supports-tools #false
15
+ }
8
16
  model "parallel" name="Parallel" {
9
17
  reasoning #false
10
18
  input "text"
@@ -191,10 +191,15 @@ behavior {
191
191
  glob="claude-fable-*" glob="claude-mythos-*"
192
192
  route "openai-responses" prefix="grok-4." prefix="gpt-5" prefix="gpt-6" prefix="oswe" prefix="mai-"
193
193
  }
194
- // Command Code serves Claude models through its Anthropic-compatible
195
- // Messages endpoint and every other model through chat completions.
194
+ // Command Code serves Claude ids through its Anthropic-compatible Messages
195
+ // endpoint, its ten GPT ids (the same set command-code@1.67.0 marks
196
+ // `spec: "responses"`) through its Responses endpoint, and every other id
197
+ // through chat completions.
196
198
  api-routes provider="commandcode" default="openai-completions" {
197
199
  route "anthropic-messages" prefix="claude-"
200
+ route "openai-responses" exact="gpt-5.3-codex" exact="gpt-5.4" exact="gpt-5.4-mini" exact="gpt-5.5" \
201
+ exact="gpt-5.6-luna" exact="gpt-5.6-sol" exact="gpt-5.6-terra" exact="gpt-6-astra" \
202
+ exact="gpt-6-luna" exact="gpt-6-sol"
198
203
  }
199
204
  // ZenMux fronts Anthropic ids on a dedicated Messages endpoint; every
200
205
  // other namespace stays on chat completions.
@@ -636,6 +636,9 @@ collapse {
636
636
  provider-alias "devin" "grok-4.6" "grok-4-6"
637
637
  provider-alias "devin" "swe-1.7" "swe-1-7"
638
638
  provider-alias "devin" "swe-1.7-lightning" "swe-1-7-lightning"
639
+ // Retired id: the Codex image model was relabeled to what the backend runs
640
+ // (gpt-image-2-codex); keep saved `openai-codex/gpt-image-1` roles resolving.
641
+ provider-alias "openai-codex" "gpt-image-1" "gpt-image-2"
639
642
  variant-family "cursor" "cursor-grok-4.5" name="Grok 4.5" {
640
643
  members "cursor-grok-4.5-low" "cursor-grok-4.5-medium" "cursor-grok-4.5-high"
641
644
  route "low" "cursor-grok-4.5-low"