pi-ollama-cloud 0.12.0 → 0.12.2

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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [0.12.2] - 2026-09-27
6
+
7
+ - Refresh the model catalog for the September 25, 2026 retirements (`deepseek-v4-flash:0731`, `glm-5.1`, `qwen3.5:397b`): dropped from the generated catalog and pricing, 20 -> 17 models. Recommended replacements per Ollama: `deepseek-v4.1-flash`, `glm-5.3`, and `glm-5.3-flash` / `deepseek-v4.1-flash`.
8
+
9
+ ## [0.12.1] - 2026-09-14
10
+
11
+ - Omit empty `openRouterRouting` / `vercelGatewayRouting` from `buildCompat` (set to `undefined`, not `{}`): pi-ai reads the raw `model.compat` and treats `{}` as truthy, sending a stray `provider: {}` on every Ollama chat completion. Fixes #60. Thanks @0xbentang (#61).
12
+
5
13
  ## [0.12.0] - 2026-09-11
6
14
 
7
15
  - Source per-model thinking levels from models.dev instead of hardcoded maps. `scripts/generate-reasoning.ts` fetches the `ollama-cloud` provider's `reasoning_options` into `reasoning.generated.ts`, and `thinking-levels.ts` maps each model's effort values onto Pi's levels (toggle-only models become a binary on/off map; models with no models.dev entry fall back to `DEFAULT`). The `off` switch is handled by a small override table for models verified not to honor `reasoning_effort:"none"` (`gpt-oss:20b`, `gpt-oss:120b`, `minimax-m2.7`). Removed the now-stale per-family maps and the `docs/think-experiment.md` doc.
@@ -1,57 +1,16 @@
1
1
  // Auto-generated by scripts/generate-models.ts
2
2
  // Do not edit manually.
3
- // Generated: 2026-09-12T02:41:57.025Z
4
- // Model count: 20
3
+ // Generated: 2026-09-27T00:52:07.773Z
4
+ // Model count: 17
5
5
 
6
6
  import type { ProviderModelConfig } from "@earendil-works/pi-coding-agent";
7
7
 
8
8
  export const GENERATED_MODELS: ProviderModelConfig[] = [
9
- {
10
- id: "deepseek-v4-flash:0731",
11
- name: "deepseek-v4-flash:0731",
12
- compat: {
13
- maxTokensField: "max_tokens",
14
- openRouterRouting: {},
15
- requiresAssistantAfterToolResult: false,
16
- requiresReasoningContentOnAssistantMessages: false,
17
- requiresThinkingAsText: false,
18
- requiresToolResultName: false,
19
- sendSessionAffinityHeaders: false,
20
- supportsDeveloperRole: false,
21
- supportsLongCacheRetention: false,
22
- supportsReasoningEffort: true,
23
- supportsStore: false,
24
- supportsStrictMode: false,
25
- supportsUsageInStreaming: true,
26
- thinkingFormat: "openai",
27
- vercelGatewayRouting: {},
28
- zaiToolStream: false,
29
- },
30
- contextWindow: 1048576,
31
- cost: {
32
- cacheRead: 0.014,
33
- cacheWrite: 0,
34
- input: 0.44,
35
- output: 1.32,
36
- },
37
- input: ["text"],
38
- maxTokens: 65536,
39
- reasoning: true,
40
- thinkingLevelMap: {
41
- high: "high",
42
- low: null,
43
- medium: null,
44
- minimal: null,
45
- off: "none",
46
- xhigh: "max",
47
- },
48
- },
49
9
  {
50
10
  id: "deepseek-v4-pro:0813",
51
11
  name: "deepseek-v4-pro:0813",
52
12
  compat: {
53
13
  maxTokensField: "max_tokens",
54
- openRouterRouting: {},
55
14
  requiresAssistantAfterToolResult: false,
56
15
  requiresReasoningContentOnAssistantMessages: false,
57
16
  requiresThinkingAsText: false,
@@ -64,7 +23,6 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
64
23
  supportsStrictMode: false,
65
24
  supportsUsageInStreaming: true,
66
25
  thinkingFormat: "openai",
67
- vercelGatewayRouting: {},
68
26
  zaiToolStream: false,
69
27
  },
70
28
  contextWindow: 1048576,
@@ -91,7 +49,6 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
91
49
  name: "deepseek-v4.1-flash",
92
50
  compat: {
93
51
  maxTokensField: "max_tokens",
94
- openRouterRouting: {},
95
52
  requiresAssistantAfterToolResult: false,
96
53
  requiresReasoningContentOnAssistantMessages: false,
97
54
  requiresThinkingAsText: false,
@@ -104,7 +61,6 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
104
61
  supportsStrictMode: false,
105
62
  supportsUsageInStreaming: true,
106
63
  thinkingFormat: "openai",
107
- vercelGatewayRouting: {},
108
64
  zaiToolStream: false,
109
65
  },
110
66
  contextWindow: 1048576,
@@ -131,7 +87,6 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
131
87
  name: "gemma4:31b",
132
88
  compat: {
133
89
  maxTokensField: "max_tokens",
134
- openRouterRouting: {},
135
90
  requiresAssistantAfterToolResult: false,
136
91
  requiresReasoningContentOnAssistantMessages: false,
137
92
  requiresThinkingAsText: false,
@@ -144,7 +99,6 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
144
99
  supportsStrictMode: false,
145
100
  supportsUsageInStreaming: true,
146
101
  thinkingFormat: "openai",
147
- vercelGatewayRouting: {},
148
102
  zaiToolStream: false,
149
103
  },
150
104
  contextWindow: 262144,
@@ -166,52 +120,11 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
166
120
  xhigh: null,
167
121
  },
168
122
  },
169
- {
170
- id: "glm-5.1",
171
- name: "glm-5.1",
172
- compat: {
173
- maxTokensField: "max_tokens",
174
- openRouterRouting: {},
175
- requiresAssistantAfterToolResult: false,
176
- requiresReasoningContentOnAssistantMessages: false,
177
- requiresThinkingAsText: false,
178
- requiresToolResultName: false,
179
- sendSessionAffinityHeaders: false,
180
- supportsDeveloperRole: false,
181
- supportsLongCacheRetention: false,
182
- supportsReasoningEffort: true,
183
- supportsStore: false,
184
- supportsStrictMode: false,
185
- supportsUsageInStreaming: true,
186
- thinkingFormat: "openai",
187
- vercelGatewayRouting: {},
188
- zaiToolStream: false,
189
- },
190
- contextWindow: 202752,
191
- cost: {
192
- cacheRead: 0.2,
193
- cacheWrite: 0,
194
- input: 1,
195
- output: 3.2,
196
- },
197
- input: ["text"],
198
- maxTokens: 131072,
199
- reasoning: true,
200
- thinkingLevelMap: {
201
- high: null,
202
- low: null,
203
- medium: "medium",
204
- minimal: null,
205
- off: "none",
206
- xhigh: null,
207
- },
208
- },
209
123
  {
210
124
  id: "glm-5.2",
211
125
  name: "glm-5.2",
212
126
  compat: {
213
127
  maxTokensField: "max_tokens",
214
- openRouterRouting: {},
215
128
  requiresAssistantAfterToolResult: false,
216
129
  requiresReasoningContentOnAssistantMessages: false,
217
130
  requiresThinkingAsText: false,
@@ -224,7 +137,6 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
224
137
  supportsStrictMode: false,
225
138
  supportsUsageInStreaming: true,
226
139
  thinkingFormat: "openai",
227
- vercelGatewayRouting: {},
228
140
  zaiToolStream: false,
229
141
  },
230
142
  contextWindow: 1048576,
@@ -251,7 +163,6 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
251
163
  name: "glm-5.3",
252
164
  compat: {
253
165
  maxTokensField: "max_tokens",
254
- openRouterRouting: {},
255
166
  requiresAssistantAfterToolResult: false,
256
167
  requiresReasoningContentOnAssistantMessages: false,
257
168
  requiresThinkingAsText: false,
@@ -264,7 +175,6 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
264
175
  supportsStrictMode: false,
265
176
  supportsUsageInStreaming: true,
266
177
  thinkingFormat: "openai",
267
- vercelGatewayRouting: {},
268
178
  zaiToolStream: false,
269
179
  },
270
180
  contextWindow: 1048576,
@@ -291,7 +201,6 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
291
201
  name: "glm-5.3-flash",
292
202
  compat: {
293
203
  maxTokensField: "max_tokens",
294
- openRouterRouting: {},
295
204
  requiresAssistantAfterToolResult: false,
296
205
  requiresReasoningContentOnAssistantMessages: false,
297
206
  requiresThinkingAsText: false,
@@ -304,7 +213,6 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
304
213
  supportsStrictMode: false,
305
214
  supportsUsageInStreaming: true,
306
215
  thinkingFormat: "openai",
307
- vercelGatewayRouting: {},
308
216
  zaiToolStream: false,
309
217
  },
310
218
  contextWindow: 1048576,
@@ -331,7 +239,6 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
331
239
  name: "gpt-oss:120b",
332
240
  compat: {
333
241
  maxTokensField: "max_tokens",
334
- openRouterRouting: {},
335
242
  requiresAssistantAfterToolResult: false,
336
243
  requiresReasoningContentOnAssistantMessages: false,
337
244
  requiresThinkingAsText: false,
@@ -344,7 +251,6 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
344
251
  supportsStrictMode: false,
345
252
  supportsUsageInStreaming: true,
346
253
  thinkingFormat: "openai",
347
- vercelGatewayRouting: {},
348
254
  zaiToolStream: false,
349
255
  },
350
256
  contextWindow: 131072,
@@ -371,7 +277,6 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
371
277
  name: "gpt-oss:20b",
372
278
  compat: {
373
279
  maxTokensField: "max_tokens",
374
- openRouterRouting: {},
375
280
  requiresAssistantAfterToolResult: false,
376
281
  requiresReasoningContentOnAssistantMessages: false,
377
282
  requiresThinkingAsText: false,
@@ -384,7 +289,6 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
384
289
  supportsStrictMode: false,
385
290
  supportsUsageInStreaming: true,
386
291
  thinkingFormat: "openai",
387
- vercelGatewayRouting: {},
388
292
  zaiToolStream: false,
389
293
  },
390
294
  contextWindow: 131072,
@@ -411,7 +315,6 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
411
315
  name: "kimi-k2.6",
412
316
  compat: {
413
317
  maxTokensField: "max_tokens",
414
- openRouterRouting: {},
415
318
  requiresAssistantAfterToolResult: false,
416
319
  requiresReasoningContentOnAssistantMessages: false,
417
320
  requiresThinkingAsText: false,
@@ -424,7 +327,6 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
424
327
  supportsStrictMode: false,
425
328
  supportsUsageInStreaming: true,
426
329
  thinkingFormat: "openai",
427
- vercelGatewayRouting: {},
428
330
  zaiToolStream: false,
429
331
  },
430
332
  contextWindow: 262144,
@@ -451,7 +353,6 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
451
353
  name: "kimi-k2.7-code",
452
354
  compat: {
453
355
  maxTokensField: "max_tokens",
454
- openRouterRouting: {},
455
356
  requiresAssistantAfterToolResult: false,
456
357
  requiresReasoningContentOnAssistantMessages: false,
457
358
  requiresThinkingAsText: false,
@@ -464,7 +365,6 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
464
365
  supportsStrictMode: false,
465
366
  supportsUsageInStreaming: true,
466
367
  thinkingFormat: "openai",
467
- vercelGatewayRouting: {},
468
368
  zaiToolStream: false,
469
369
  },
470
370
  contextWindow: 262144,
@@ -491,7 +391,6 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
491
391
  name: "kimi-k3",
492
392
  compat: {
493
393
  maxTokensField: "max_tokens",
494
- openRouterRouting: {},
495
394
  requiresAssistantAfterToolResult: false,
496
395
  requiresReasoningContentOnAssistantMessages: false,
497
396
  requiresThinkingAsText: false,
@@ -504,7 +403,6 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
504
403
  supportsStrictMode: false,
505
404
  supportsUsageInStreaming: true,
506
405
  thinkingFormat: "openai",
507
- vercelGatewayRouting: {},
508
406
  zaiToolStream: false,
509
407
  },
510
408
  contextWindow: 1048576,
@@ -531,7 +429,6 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
531
429
  name: "minimax-m2.7",
532
430
  compat: {
533
431
  maxTokensField: "max_tokens",
534
- openRouterRouting: {},
535
432
  requiresAssistantAfterToolResult: false,
536
433
  requiresReasoningContentOnAssistantMessages: false,
537
434
  requiresThinkingAsText: false,
@@ -544,7 +441,6 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
544
441
  supportsStrictMode: false,
545
442
  supportsUsageInStreaming: true,
546
443
  thinkingFormat: "openai",
547
- vercelGatewayRouting: {},
548
444
  zaiToolStream: false,
549
445
  },
550
446
  contextWindow: 196608,
@@ -571,7 +467,6 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
571
467
  name: "minimax-m3",
572
468
  compat: {
573
469
  maxTokensField: "max_tokens",
574
- openRouterRouting: {},
575
470
  requiresAssistantAfterToolResult: false,
576
471
  requiresReasoningContentOnAssistantMessages: false,
577
472
  requiresThinkingAsText: false,
@@ -584,7 +479,6 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
584
479
  supportsStrictMode: false,
585
480
  supportsUsageInStreaming: true,
586
481
  thinkingFormat: "openai",
587
- vercelGatewayRouting: {},
588
482
  zaiToolStream: false,
589
483
  },
590
484
  contextWindow: 512000,
@@ -611,7 +505,6 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
611
505
  name: "mistral-large-3:675b",
612
506
  compat: {
613
507
  maxTokensField: "max_tokens",
614
- openRouterRouting: {},
615
508
  requiresAssistantAfterToolResult: false,
616
509
  requiresReasoningContentOnAssistantMessages: false,
617
510
  requiresThinkingAsText: false,
@@ -624,7 +517,6 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
624
517
  supportsStrictMode: false,
625
518
  supportsUsageInStreaming: true,
626
519
  thinkingFormat: "openai",
627
- vercelGatewayRouting: {},
628
520
  zaiToolStream: false,
629
521
  },
630
522
  contextWindow: 262144,
@@ -643,7 +535,6 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
643
535
  name: "nemotron-3-nano:30b",
644
536
  compat: {
645
537
  maxTokensField: "max_tokens",
646
- openRouterRouting: {},
647
538
  requiresAssistantAfterToolResult: false,
648
539
  requiresReasoningContentOnAssistantMessages: false,
649
540
  requiresThinkingAsText: false,
@@ -656,7 +547,6 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
656
547
  supportsStrictMode: false,
657
548
  supportsUsageInStreaming: true,
658
549
  thinkingFormat: "openai",
659
- vercelGatewayRouting: {},
660
550
  zaiToolStream: false,
661
551
  },
662
552
  contextWindow: 262144,
@@ -683,7 +573,6 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
683
573
  name: "nemotron-3-super",
684
574
  compat: {
685
575
  maxTokensField: "max_tokens",
686
- openRouterRouting: {},
687
576
  requiresAssistantAfterToolResult: false,
688
577
  requiresReasoningContentOnAssistantMessages: false,
689
578
  requiresThinkingAsText: false,
@@ -696,7 +585,6 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
696
585
  supportsStrictMode: false,
697
586
  supportsUsageInStreaming: true,
698
587
  thinkingFormat: "openai",
699
- vercelGatewayRouting: {},
700
588
  zaiToolStream: false,
701
589
  },
702
590
  contextWindow: 262144,
@@ -723,7 +611,6 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
723
611
  name: "nemotron-3-ultra",
724
612
  compat: {
725
613
  maxTokensField: "max_tokens",
726
- openRouterRouting: {},
727
614
  requiresAssistantAfterToolResult: false,
728
615
  requiresReasoningContentOnAssistantMessages: false,
729
616
  requiresThinkingAsText: false,
@@ -736,7 +623,6 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
736
623
  supportsStrictMode: false,
737
624
  supportsUsageInStreaming: true,
738
625
  thinkingFormat: "openai",
739
- vercelGatewayRouting: {},
740
626
  zaiToolStream: false,
741
627
  },
742
628
  contextWindow: 262144,
@@ -758,44 +644,4 @@ export const GENERATED_MODELS: ProviderModelConfig[] = [
758
644
  xhigh: null,
759
645
  },
760
646
  },
761
- {
762
- id: "qwen3.5:397b",
763
- name: "qwen3.5:397b",
764
- compat: {
765
- maxTokensField: "max_tokens",
766
- openRouterRouting: {},
767
- requiresAssistantAfterToolResult: false,
768
- requiresReasoningContentOnAssistantMessages: false,
769
- requiresThinkingAsText: false,
770
- requiresToolResultName: false,
771
- sendSessionAffinityHeaders: false,
772
- supportsDeveloperRole: false,
773
- supportsLongCacheRetention: false,
774
- supportsReasoningEffort: true,
775
- supportsStore: false,
776
- supportsStrictMode: false,
777
- supportsUsageInStreaming: true,
778
- thinkingFormat: "openai",
779
- vercelGatewayRouting: {},
780
- zaiToolStream: false,
781
- },
782
- contextWindow: 262144,
783
- cost: {
784
- cacheRead: 0.6,
785
- cacheWrite: 0,
786
- input: 0.6,
787
- output: 3.6,
788
- },
789
- input: ["text", "image"],
790
- maxTokens: 65536,
791
- reasoning: true,
792
- thinkingLevelMap: {
793
- high: null,
794
- low: null,
795
- medium: "medium",
796
- minimal: null,
797
- off: "none",
798
- xhigh: null,
799
- },
800
- },
801
647
  ];
package/models.ts CHANGED
@@ -113,18 +113,28 @@ function buildCompat(): ProviderModelConfig["compat"] {
113
113
  thinkingFormat: "openai",
114
114
  // Ollama does not support tool_choice, so strict mode is unavailable (ollama: docs.ollama.com/api/openai-compatibility, pi: types.ts#supportsStrictMode).
115
115
  supportsStrictMode: false,
116
- // Anthropic cache_control not relevant; Ollama has implicit KV cache only (pi: types.ts#cacheControlFormat).
117
- // Explicitly undefined: JSON.stringify drops undefined values, keeping
118
- // models.generated.ts structurally consistent with assembleModels() runtime output.
119
116
  // Session affinity headers not relevant for Ollama (pi: types.ts#sendSessionAffinityHeaders).
120
117
  sendSessionAffinityHeaders: false,
121
118
  // No explicit cache-retention API (pi: types.ts#supportsLongCacheRetention).
122
119
  supportsLongCacheRetention: false,
123
120
  // Not z.ai (pi: types.ts#zaiToolStream).
124
121
  zaiToolStream: false,
122
+ // Anthropic cache_control not relevant; Ollama has implicit KV cache only (pi: types.ts#cacheControlFormat).
123
+ // Explicitly undefined: JSON.stringify drops undefined values, keeping
124
+ // models.generated.ts structurally consistent with assembleModels() runtime output.
125
125
  cacheControlFormat: undefined,
126
- openRouterRouting: {},
127
- vercelGatewayRouting: {},
126
+ // OpenRouter / Vercel AI Gateway routing prefs. pi-ai's OpenAI transport
127
+ // truthiness-checks the raw model.compat (not the resolved getCompat() value)
128
+ // and forwards it verbatim: `if (model.compat?.openRouterRouting)
129
+ // params.provider = ...` in packages/ai/src/api/openai-completions.ts. `{}` is
130
+ // truthy, so baking it in sent a stray `provider: {}` on every Ollama request.
131
+ // Express "none" as undefined, never `{}`; undefined is falsy at the wire site
132
+ // and JSON.stringify drops it from models.generated.ts. The boolean flags above
133
+ // stay explicit `false` on purpose: omitting a boolean makes getCompat() fall
134
+ // back to detectCompat's generic-OpenAI defaults, which are wrong for Ollama
135
+ // (e.g. maxTokensField -> "max_completion_tokens", supportsStrictMode -> true).
136
+ openRouterRouting: undefined,
137
+ vercelGatewayRouting: undefined,
128
138
  };
129
139
  }
130
140
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-ollama-cloud",
3
- "version": "0.12.0",
3
+ "version": "0.12.2",
4
4
  "type": "module",
5
5
  "keywords": [
6
6
  "pi-package"
@@ -1,7 +1,7 @@
1
1
  // Auto-generated by scripts/generate-pricing.ts
2
2
  // Do not edit manually.
3
- // Generated: 2026-09-12T02:41:55.206Z
4
- // Model count: 20
3
+ // Generated: 2026-09-27T00:52:06.074Z
4
+ // Model count: 17
5
5
 
6
6
  export interface ModelPrice {
7
7
  input: number;
@@ -11,11 +11,9 @@ export interface ModelPrice {
11
11
  }
12
12
 
13
13
  export const MODEL_PRICING: Record<string, ModelPrice> = {
14
- "deepseek-v4-flash:0731": { input: 0.44, output: 1.32, cacheRead: 0.014, cacheWrite: 0 },
15
14
  "deepseek-v4-pro:0813": { input: 1.32, output: 3.96, cacheRead: 0.044, cacheWrite: 0 },
16
15
  "deepseek-v4.1-flash": { input: 0.3, output: 1.2, cacheRead: 0.006, cacheWrite: 0 },
17
16
  "gemma4:31b": { input: 0.14, output: 0.4, cacheRead: 0.05, cacheWrite: 0 },
18
- "glm-5.1": { input: 1, output: 3.2, cacheRead: 0.2, cacheWrite: 0 },
19
17
  "glm-5.2": { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 },
20
18
  "glm-5.3": { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 },
21
19
  "glm-5.3-flash": { input: 0.15, output: 0.5, cacheRead: 0.03, cacheWrite: 0 },
@@ -30,5 +28,4 @@ export const MODEL_PRICING: Record<string, ModelPrice> = {
30
28
  "nemotron-3-nano:30b": { input: 0.06, output: 0.24, cacheRead: 0.06, cacheWrite: 0 },
31
29
  "nemotron-3-super": { input: 0.015, output: 0.6, cacheRead: 0.015, cacheWrite: 0 },
32
30
  "nemotron-3-ultra": { input: 0.1, output: 3, cacheRead: 0.1, cacheWrite: 0 },
33
- "qwen3.5:397b": { input: 0.6, output: 3.6, cacheRead: 0.6, cacheWrite: 0 },
34
31
  };
@@ -1,6 +1,6 @@
1
1
  // Auto-generated by scripts/generate-reasoning.ts
2
2
  // Do not edit manually.
3
- // Model count: 22
3
+ // Model count: 23
4
4
 
5
5
  export type ModelsDevReasoningOption =
6
6
  | { type: "toggle" }
@@ -13,6 +13,7 @@ export const MODEL_REASONING_OPTIONS: Record<string, ModelsDevReasoningOption[]>
13
13
  "deepseek-v4-flash": [{ type: "toggle" }, { type: "effort", values: ["high", "max"] }],
14
14
  "deepseek-v4-flash:0731": [{ type: "toggle" }, { type: "effort", values: ["high", "max"] }],
15
15
  "deepseek-v4-pro": [{ type: "toggle" }, { type: "effort", values: ["high", "max"] }],
16
+ "deepseek-v4-pro:0813": [{ type: "toggle" }, { type: "effort", values: ["high", "max"] }],
16
17
  "deepseek-v4.1-flash": [{ type: "toggle" }, { type: "effort", values: ["low", "high", "max"] }],
17
18
  "gemma4:31b": [{ type: "toggle" }],
18
19
  "glm-5.1": [{ type: "toggle" }],