pi-fireworks-provider 1.6.2 → 1.7.0

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/README.md CHANGED
@@ -15,10 +15,10 @@ _Kimi, MiniMax, GLM, DeepSeek, GPT-OSS — via Fireworks AI's Anthropic Messages
15
15
 
16
16
  ## Features
17
17
 
18
- - **50+ AI Models** including Kimi K2.5, MiniMax M2.5, GLM 4.5/4.7/5, DeepSeek V3.1/V3.2, DeepSeek V4 Flash, and GPT-OSS
18
+ - **52+ AI Models** including Kimi K2.5, MiniMax M2.5, GLM 4.5/4.7/5, DeepSeek V3.1/V3.2, DeepSeek V4 Flash, and GPT-OSS
19
19
  - **Dual API support** via Fireworks AI's Anthropic Messages and OpenAI-compatible completions endpoints (per-model routing, matching pi core's Fireworks provider)
20
20
  - **Service tiers** — toggle Fireworks `priority` vs `standard` per request on supported models (with priority pricing reflected in cost tracking), via a keybinding, `/fireworks-tier`, and a footer status area
21
- - **Preserved thinking** — toggle Fireworks' `reasoning_history: "preserved"` so prior assistant reasoning is retained across turns (better multi-turn recall; uses more tokens), via the `/fireworks-settings` panel, with a model-select notification. Matches neuralwatt/makora's settings-only UX, adapted to Fireworks' single global `reasoning_history` knob
21
+ - **Preserved thinking** — toggle Fireworks' `reasoning_history: "preserved"` so prior assistant reasoning is retained across turns (better multi-turn recall; uses more tokens), via the `/fireworks-settings` panel, with a model-select notification. Applied only on models whose documented support includes `"preserved"` (Kimi K2.6/K2.7, GLM 5.2/4.7, …); interleaved-only models like DeepSeek V4 and MiniMax M2 keep their default. Matches neuralwatt/makora's settings-only UX, adapted to Fireworks' global `reasoning_history` knob
22
22
  - **Logit bias** — set an OpenAI-style `logit_bias` map (token ID → -100..100) via a nested `/fireworks-settings` panel (add / edit / delete arbitrary token IDs), sent on every Fireworks OpenAI-completions request; persisted to `~/.pi/agent/extensions/fireworks.json`
23
23
  - **Settings panel** — `/fireworks-settings` (TUI) to configure preserved thinking, logit bias, service tier, and display preferences; persisted to `~/.pi/agent/extensions/fireworks.json`
24
24
  - **Cost Tracking** with per-model pricing for budget management
@@ -75,11 +75,12 @@ pi
75
75
  | DeepSeek V3.1 | Text | 164K | 164K | $0.56 | $1.68 |
76
76
  | DeepSeek V3.2 | Text | 164K | 160K | $0.56 | $1.68 |
77
77
  | DeepSeek V4 Flash | Text | 1.0M | 384K | $0.14 | $0.28 |
78
- | DeepSeek V4 Flash 0731 | Text | 1.0M | 384K | $0.14 | $0.28 |
78
+ | DeepSeek V4 Flash 0731 | Text | 1.0M | 384K | $0.22 | $0.66 |
79
+ | DeepSeek V4 Flash Vision Exp | Text + Image | 1.0M | 384K | $0.22 | $0.66 |
79
80
  | DeepSeek V4 Pro | Text | 1.0M | 384K | $1.74 | $3.48 |
80
81
  | DeepSeek V4 Pro (router) | Text | 1.0M | 384K | $1.74 | $3.48 |
81
- | DeepSeek V4 Pro 0813 | Text | 1.0M | 384K | | |
82
- | DeepSeek-V4-Flash-Vision-Exp | Text + Image | 1.0M | 0 | | |
82
+ | DeepSeek V4 Pro 0813 | Text | 1.0M | 384K | $1.32 | $3.96 |
83
+ | DeepSeek V4.1 Flash | Text + Image | 1.0M | 384K | $0.22 | $0.66 |
83
84
  | Gemma 4 26B A4B IT | Text + Image | 262K | 33K | — | — |
84
85
  | Gemma 4 31B IT | Text + Image | 262K | 33K | — | — |
85
86
  | GLM 4.5 | Text | 131K | 131K | $0.55 | $2.19 |
@@ -114,13 +115,14 @@ pi
114
115
  | MiniMax-M2.5 | Text | 197K | 197K | $0.30 | $1.20 |
115
116
  | MiniMax-M2.7 | Text | 197K | 197K | $0.30 | $1.20 |
116
117
  | MiniMax-M3 | Text + Image | 512K | 512K | $0.30 | $1.20 |
117
- | Muse Glimmer 30B | Text + Image | 131K | 131K | | |
118
- | Nemotron 3.5 Lightning 30B A3B | Text | 262K | 262K | | |
118
+ | Muse Glimmer 30B | Text + Image | 131K | 131K | $0.35 | $1.50 |
119
+ | Nemotron 3.5 Lightning 30B A3B | Text | 262K | 262K | $0.05 | $0.20 |
119
120
  | NVIDIA Nemotron 3 Ultra NVFP4 | Text | 262K | 66K | $0.60 | $2.40 |
120
121
  | Qwen 3.7 Plus | Text + Image | 262K | 66K | $0.40 | $1.60 |
121
122
  | Qwen3 8B | Text | 41K | 41K | $0.20 | $0.20 |
122
123
  | Qwen3 VL 30B A3B Instruct | Text + Image | 262K | 33K | $0.50 | $0.50 |
123
124
  | Qwen3 VL 30B A3B Thinking | Text + Image | 262K | 33K | $0.50 | $0.50 |
125
+ | Qwen3.8 Max | Text | 262K | 131K | $2.00 | $6.00 |
124
126
  | Qwen3.8-2.4T-A95B | Text | 262K | 131K | — | — |
125
127
  *Costs are per million tokens. Prices subject to change - check [fireworks.ai](https://fireworks.ai) for current pricing.*
126
128
 
@@ -250,5 +250,21 @@
250
250
  "deferredToolsMode": "kimi",
251
251
  "supportsReasoningEffort": true
252
252
  }
253
+ },
254
+ {
255
+ "id": "accounts/fireworks/models/qwen3p8-max",
256
+ "name": "Qwen3.8 Max",
257
+ "reasoning": true,
258
+ "cost": {
259
+ "input": 2,
260
+ "output": 6,
261
+ "cacheRead": 0.25,
262
+ "cacheWrite": 0
263
+ },
264
+ "input": [
265
+ "text"
266
+ ],
267
+ "contextWindow": 262144,
268
+ "maxTokens": 131072
253
269
  }
254
270
  ]
package/index.ts CHANGED
@@ -384,19 +384,28 @@ function stripAnchorBleedInPlace(obj: Record<string, unknown>): void {
384
384
  // orthogonal to the "fast" router model IDs (e.g. routers/...-fast), which are
385
385
  // separate models; priority applies to the base models below.
386
386
  //
387
- // Per-request priority pricing (USD per million tokens) from Fireworks' tier
388
- // reference. cacheWrite is not tiered (stays 0).
387
+ // Per-model priority pricing (USD per million tokens, input / cached input /
388
+ // output) from https://docs.fireworks.ai/serverless/pricing that table is
389
+ // the source of truth for the Priority serving path. Entries for the undated
390
+ // DeepSeek aliases (not listed there) keep their previously curated values.
389
391
  const PRIORITY_PRICING: Record<string, { input: number; output: number; cacheRead: number; cacheWrite: number }> = {
390
- "accounts/fireworks/models/glm-5p2": { input: 1.75, output: 5.5, cacheRead: 0.175, cacheWrite: 0 },
391
- "accounts/fireworks/models/glm-5p3": { input: 1.75, output: 5.5, cacheRead: 0.325, cacheWrite: 0 },
392
- "accounts/fireworks/models/kimi-k2p7-code": { input: 1.43, output: 6, cacheRead: 0.29, cacheWrite: 0 },
393
- "accounts/fireworks/models/minimax-m3": { input: 0.45, output: 1.8, cacheRead: 0.09, cacheWrite: 0 },
394
- "accounts/fireworks/models/deepseek-v4-pro": { input: 2.61, output: 5.22, cacheRead: 0.218, cacheWrite: 0 },
395
- "accounts/fireworks/models/kimi-k2p6": { input: 1.5, output: 6, cacheRead: 0.22, cacheWrite: 0 },
396
- "accounts/fireworks/models/minimax-m2p7": { input: 0.45, output: 1.8, cacheRead: 0.09, cacheWrite: 0 },
397
- "accounts/fireworks/models/glm-5p1": { input: 2.1, output: 6.6, cacheRead: 0.39, cacheWrite: 0 },
398
- "accounts/fireworks/models/gpt-oss-120b": { input: 0.18, output: 0.72, cacheRead: 0.018, cacheWrite: 0 },
399
- "accounts/fireworks/models/deepseek-v4-flash":{ input: 0.21, output: 0.42, cacheRead: 0.045, cacheWrite: 0 },
392
+ "accounts/fireworks/models/kimi-k3": { input: 3.75, output: 18.75, cacheRead: 0.375, cacheWrite: 0 },
393
+ "accounts/fireworks/models/kimi-k2p7-code": { input: 1.425, output: 6, cacheRead: 0.285, cacheWrite: 0 },
394
+ "accounts/fireworks/models/kimi-k2p6": { input: 1.5, output: 6, cacheRead: 0.22, cacheWrite: 0 },
395
+ "accounts/fireworks/models/deepseek-v4p1-flash": { input: 0.275, output: 0.825, cacheRead: 0.00875, cacheWrite: 0 },
396
+ "accounts/fireworks/models/deepseek-v4-flash-0731": { input: 0.275, output: 0.825, cacheRead: 0.00875, cacheWrite: 0 },
397
+ "accounts/fireworks/models/deepseek-v4-flash": { input: 0.21, output: 0.42, cacheRead: 0.045, cacheWrite: 0 },
398
+ "accounts/fireworks/models/deepseek-v4-flash-vision-exp": { input: 0.275, output: 0.825, cacheRead: 0.00875, cacheWrite: 0 },
399
+ "accounts/fireworks/models/deepseek-v4-pro-0813": { input: 1.65, output: 4.95, cacheRead: 0.055, cacheWrite: 0 },
400
+ "accounts/fireworks/models/deepseek-v4-pro": { input: 2.61, output: 5.22, cacheRead: 0.218, cacheWrite: 0 },
401
+ "accounts/fireworks/models/glm-5p2": { input: 1.75, output: 5.5, cacheRead: 0.18, cacheWrite: 0 },
402
+ "accounts/fireworks/models/glm-5p3": { input: 1.75, output: 5.5, cacheRead: 0.325, cacheWrite: 0 },
403
+ "accounts/fireworks/models/glm-5p1": { input: 2.1, output: 6.6, cacheRead: 0.39, cacheWrite: 0 },
404
+ "accounts/fireworks/models/minimax-m3": { input: 0.45, output: 1.8, cacheRead: 0.09, cacheWrite: 0 },
405
+ "accounts/fireworks/models/minimax-m2p7": { input: 0.45, output: 1.8, cacheRead: 0.09, cacheWrite: 0 },
406
+ "accounts/fireworks/models/qwen3p8-max": { input: 3, output: 9, cacheRead: 0.375, cacheWrite: 0 },
407
+ "accounts/fireworks/models/gpt-oss-120b": { input: 0.18, output: 0.72, cacheRead: 0.018, cacheWrite: 0 },
408
+ "accounts/fireworks/models/muse-glimmer-30b": { input: 0.525, output: 2.25, cacheRead: 0.06, cacheWrite: 0 },
400
409
  };
401
410
 
402
411
  type ServiceTier = "standard" | "priority";
@@ -698,8 +707,11 @@ function recomputePriorityCost(message: any): any {
698
707
  //
699
708
  // Unlike neuralwatt/makora (which use per-model vLLM `chat_template_kwargs`
700
709
  // flags like preserve_thinking/clear_thinking), Fireworks' knob is a single
701
- // global top-level param that applies to every reasoning model. We expose it
702
- // as one on/off toggle. See https://docs.fireworks.ai/guides/reasoning#preserved-thinking.
710
+ // top-level param (`reasoning_history`). It accepts three values "disabled",
711
+ // "interleaved", and "preserved" but per-model support varies (Fireworks API
712
+ // reference). We expose the strongest mode as one on/off toggle and only send
713
+ // "preserved" where the model accepts it. See
714
+ // https://docs.fireworks.ai/guides/reasoning#preserved-thinking.
703
715
 
704
716
  // A Fireworks model is preserve-eligible if it's a reasoning model. We read
705
717
  // `reasoning` off the registered model when available, but also accept a
@@ -709,6 +721,30 @@ function isPreserveEligible(model: any): boolean {
709
721
  return model.reasoning === true;
710
722
  }
711
723
 
724
+ // Models whose `reasoning_history` support does NOT include "preserved".
725
+ // Fireworks currently documents MiniMax M2 and DeepSeek V4 as supporting only
726
+ // "interleaved" (default) / "disabled"; Kimi K2.6/K2.7, Kimi K2 Instruct,
727
+ // GLM 4.7/5.2, and Qwen 3.6 do support "preserved". Models outside the
728
+ // documented table stay permissive (previous behavior) since the docs defer to
729
+ // each provider's own documentation.
730
+ const REASONING_HISTORY_NO_PRESERVE: ReadonlySet<string> = new Set([
731
+ "accounts/fireworks/models/minimax-m2p1",
732
+ "accounts/fireworks/models/minimax-m2p5",
733
+ "accounts/fireworks/models/minimax-m2p7",
734
+ "accounts/fireworks/models/deepseek-v4-flash",
735
+ "accounts/fireworks/models/deepseek-v4-flash-0731",
736
+ "accounts/fireworks/models/deepseek-v4-flash-vision-exp",
737
+ "accounts/fireworks/models/deepseek-v4-pro",
738
+ "accounts/fireworks/models/deepseek-v4-pro-0813",
739
+ "accounts/fireworks/models/deepseek-v4p1-flash",
740
+ ]);
741
+
742
+ // True when the model accepts `reasoning_history: "preserved"`. Gates the
743
+ // preserve toggle so it never injects a value Fireworks rejects.
744
+ function supportsPreservedReasoningHistory(id: string | undefined): boolean {
745
+ return !!id && !REASONING_HISTORY_NO_PRESERVE.has(id);
746
+ }
747
+
712
748
  // Runtime state: whether preserved thinking is active. Initialized from the
713
749
  // config-file default at session_start (mirrors neuralwatt/makora, which drive
714
750
  // preserve state from the config file, not session entries) and updated by the
@@ -1097,6 +1133,7 @@ export {
1097
1133
  setTier,
1098
1134
  updateTierStatus,
1099
1135
  isPreserveEligible,
1136
+ supportsPreservedReasoningHistory,
1100
1137
  setPreserve,
1101
1138
  isValidBiasValue,
1102
1139
  parseLogitBiasMap,
@@ -1142,9 +1179,17 @@ export default function (pi: ExtensionAPI) {
1142
1179
  function notifyPreserveOnSelect(model: any, ctx: any): void {
1143
1180
  if (!model || model.provider !== "fireworks") return;
1144
1181
  if (!isPreserveEligible(model)) return;
1145
- const msg = preserveOn
1146
- ? `Preserved thinking ON for ${model.name || model.id} — full reasoning history retained across turns (better multi-turn recall; uses more tokens). Open /fireworks-settings to change.`
1147
- : `Preserved thinking OFF for ${model.name || model.id} — reasoning stripped each turn (Fireworks default; lighter, weaker multi-turn recall). Open /fireworks-settings to change.`;
1182
+ const name = model.name || model.id;
1183
+ let msg: string;
1184
+ if (preserveOn && !supportsPreservedReasoningHistory(model.id)) {
1185
+ // DeepSeek V4 / MiniMax M2 only support "interleaved"; don't claim
1186
+ // preserved is active for them when it can't be requested.
1187
+ msg = `${name} keeps Fireworks' default reasoning history (interleaved) — preserved thinking is not supported by this model. Open /fireworks-settings to change.`;
1188
+ } else if (preserveOn) {
1189
+ msg = `Preserved thinking ON for ${name} — full reasoning history retained across turns (better multi-turn recall; uses more tokens). Open /fireworks-settings to change.`;
1190
+ } else {
1191
+ msg = `Preserved thinking OFF for ${name} — using the model's default reasoning history (interleaved for most models; lighter, weaker multi-turn recall). Open /fireworks-settings to change.`;
1192
+ }
1148
1193
  if (modelSelectNotifyTimer) clearTimeout(modelSelectNotifyTimer);
1149
1194
  modelSelectNotifyTimer = setTimeout(() => {
1150
1195
  modelSelectNotifyTimer = null;
@@ -1231,12 +1276,14 @@ export default function (pi: ExtensionAPI) {
1231
1276
  // Preserved thinking: inject top-level `reasoning_history: "preserved"`
1232
1277
  // so Fireworks renders prior assistant reasoning (reasoning_content on the
1233
1278
  // OpenAI endpoint, thinking blocks on the Anthropic endpoint) into the
1234
- // model's context instead of stripping it. The only accepted value is
1235
- // "preserved"; omitted = stripped (Fireworks default / pi core). Applies to
1236
- // any Fireworks reasoning model on both transports. pi-ai already replays
1237
- // the reasoning field/block on prior assistant turns; this flag is what
1238
- // makes Fireworks honor it. See https://docs.fireworks.ai/guides/reasoning.
1239
- if (preserveOn && isPreserveEligible(model)) {
1279
+ // model's context instead of stripping it. `reasoning_history` also accepts
1280
+ // "disabled" and "interleaved"; we only ever request the strongest mode and
1281
+ // only on models whose documented support includes it (omitted = the
1282
+ // model/template default, e.g. interleaved for DeepSeek V4). pi-ai already
1283
+ // replays the reasoning field/block on prior assistant turns; this flag is
1284
+ // what makes Fireworks honor it. See
1285
+ // https://docs.fireworks.ai/guides/reasoning#preserved-thinking.
1286
+ if (preserveOn && isPreserveEligible(model) && supportsPreservedReasoningHistory(model.id)) {
1240
1287
  payload.reasoning_history = "preserved";
1241
1288
  modified = true;
1242
1289
  }
@@ -1429,7 +1476,7 @@ export default function (pi: ExtensionAPI) {
1429
1476
  {
1430
1477
  id: "preserveThinking",
1431
1478
  label: "Preserved thinking",
1432
- description: "Inject reasoning_history:\"preserved\" so Fireworks retains prior assistant reasoning across turns (better multi-turn recall; uses more tokens). Off = Fireworks default (stripped). Applies to every Fireworks reasoning model on both endpoints.",
1479
+ description: "Inject reasoning_history:\"preserved\" so Fireworks retains prior assistant reasoning across turns (better multi-turn recall; uses more tokens). Off = the model's default reasoning history (interleaved for most models). Only sent on models whose documented support includes \"preserved\" (Kimi K2.6/K2.7, GLM 4.7/5.2, …); DeepSeek V4 and MiniMax M2 are interleaved-only.",
1433
1480
  currentValue: preserveOn ? "on" : "off",
1434
1481
  values: ["on", "off"],
1435
1482
  },
package/models.json CHANGED
@@ -80,6 +80,23 @@
80
80
  "contextWindow": 1048576,
81
81
  "maxTokens": 0
82
82
  },
83
+ {
84
+ "id": "accounts/fireworks/models/deepseek-v4p1-flash",
85
+ "name": "DeepSeek V4.1 Flash",
86
+ "reasoning": false,
87
+ "input": [
88
+ "text",
89
+ "image"
90
+ ],
91
+ "cost": {
92
+ "input": 0,
93
+ "output": 0,
94
+ "cacheRead": 0,
95
+ "cacheWrite": 0
96
+ },
97
+ "contextWindow": 1048576,
98
+ "maxTokens": 0
99
+ },
83
100
  {
84
101
  "id": "accounts/fireworks/models/deepseek-v4-pro",
85
102
  "name": "DeepSeek-V4-Pro",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-fireworks-provider",
3
- "version": "1.6.2",
3
+ "version": "1.7.0",
4
4
  "description": "Fireworks AI provider extension for pi - Access Kimi, MiniMax, GLM, DeepSeek, and GPT-OSS models through the Fireworks AI API",
5
5
  "type": "module",
6
6
  "main": "index.ts",
package/patch.json CHANGED
@@ -15,6 +15,15 @@
15
15
  "maxTokens": 163840,
16
16
  "compat": {
17
17
  "supportsReasoningEffort": true
18
+ },
19
+ "thinkingLevelMap": {
20
+ "off": "none",
21
+ "minimal": null,
22
+ "low": "low",
23
+ "medium": "medium",
24
+ "high": "high",
25
+ "xhigh": null,
26
+ "max": null
18
27
  }
19
28
  },
20
29
  "accounts/fireworks/models/deepseek-v3p2": {
@@ -33,6 +42,15 @@
33
42
  "maxTokens": 160000,
34
43
  "compat": {
35
44
  "supportsReasoningEffort": true
45
+ },
46
+ "thinkingLevelMap": {
47
+ "off": "none",
48
+ "minimal": null,
49
+ "low": "low",
50
+ "medium": "medium",
51
+ "high": "high",
52
+ "xhigh": null,
53
+ "max": null
36
54
  }
37
55
  },
38
56
  "accounts/fireworks/models/deepseek-v4-flash": {
@@ -50,7 +68,8 @@
50
68
  "contextWindow": 1000000,
51
69
  "maxTokens": 384000,
52
70
  "compat": {
53
- "supportsReasoningEffort": true
71
+ "supportsReasoningEffort": true,
72
+ "requiresReasoningContentOnAssistantMessages": true
54
73
  },
55
74
  "thinkingLevelMap": {
56
75
  "off": "none",
@@ -58,7 +77,7 @@
58
77
  "low": "low",
59
78
  "medium": "medium",
60
79
  "high": "high",
61
- "xhigh": "xhigh",
80
+ "xhigh": "max",
62
81
  "max": "max"
63
82
  }
64
83
  },
@@ -77,7 +96,8 @@
77
96
  "contextWindow": 1000000,
78
97
  "maxTokens": 384000,
79
98
  "compat": {
80
- "supportsReasoningEffort": true
99
+ "supportsReasoningEffort": true,
100
+ "requiresReasoningContentOnAssistantMessages": true
81
101
  },
82
102
  "thinkingLevelMap": {
83
103
  "off": "none",
@@ -85,7 +105,7 @@
85
105
  "low": "low",
86
106
  "medium": "medium",
87
107
  "high": "high",
88
- "xhigh": "xhigh",
108
+ "xhigh": "max",
89
109
  "max": "max"
90
110
  }
91
111
  },
@@ -111,7 +131,7 @@
111
131
  "minimal": null,
112
132
  "low": null,
113
133
  "medium": null,
114
- "high": null,
134
+ "high": "high",
115
135
  "xhigh": null,
116
136
  "max": null
117
137
  }
@@ -138,7 +158,7 @@
138
158
  "minimal": null,
139
159
  "low": null,
140
160
  "medium": null,
141
- "high": null,
161
+ "high": "high",
142
162
  "xhigh": null,
143
163
  "max": null
144
164
  }
@@ -165,7 +185,7 @@
165
185
  "minimal": null,
166
186
  "low": null,
167
187
  "medium": null,
168
- "high": null,
188
+ "high": "high",
169
189
  "xhigh": null,
170
190
  "max": null
171
191
  }
@@ -217,11 +237,11 @@
217
237
  "thinkingLevelMap": {
218
238
  "off": "none",
219
239
  "minimal": null,
220
- "low": "high",
221
- "medium": "high",
240
+ "low": null,
241
+ "medium": null,
222
242
  "high": "high",
223
243
  "xhigh": null,
224
- "max": "max"
244
+ "max": null
225
245
  }
226
246
  },
227
247
  "accounts/fireworks/models/glm-5p2": {
@@ -235,7 +255,7 @@
235
255
  "low": "high",
236
256
  "medium": "high",
237
257
  "high": "high",
238
- "xhigh": null,
258
+ "xhigh": "max",
239
259
  "max": "max"
240
260
  },
241
261
  "input": [
@@ -378,7 +398,8 @@
378
398
  "contextWindow": 262144,
379
399
  "maxTokens": 256000,
380
400
  "compat": {
381
- "supportsReasoningEffort": true
401
+ "supportsReasoningEffort": true,
402
+ "requiresReasoningContentOnAssistantMessages": true
382
403
  }
383
404
  },
384
405
  "accounts/fireworks/models/kimi-k2p5": {
@@ -397,7 +418,8 @@
397
418
  "contextWindow": 262144,
398
419
  "maxTokens": 256000,
399
420
  "compat": {
400
- "supportsReasoningEffort": true
421
+ "supportsReasoningEffort": true,
422
+ "requiresReasoningContentOnAssistantMessages": true
401
423
  }
402
424
  },
403
425
  "accounts/fireworks/models/kimi-k2p6": {
@@ -416,7 +438,8 @@
416
438
  "contextWindow": 262000,
417
439
  "maxTokens": 262000,
418
440
  "compat": {
419
- "supportsReasoningEffort": true
441
+ "supportsReasoningEffort": true,
442
+ "requiresReasoningContentOnAssistantMessages": true
420
443
  }
421
444
  },
422
445
  "accounts/fireworks/models/kimi-k2p7-code": {
@@ -435,7 +458,8 @@
435
458
  "contextWindow": 262000,
436
459
  "maxTokens": 262000,
437
460
  "compat": {
438
- "supportsReasoningEffort": true
461
+ "supportsReasoningEffort": true,
462
+ "requiresReasoningContentOnAssistantMessages": true
439
463
  }
440
464
  },
441
465
  "accounts/fireworks/models/minimax-m2p1": {
@@ -798,22 +822,23 @@
798
822
  "low": "low",
799
823
  "medium": "medium",
800
824
  "high": "high",
801
- "xhigh": "xhigh",
825
+ "xhigh": "max",
802
826
  "max": "max"
803
827
  },
804
828
  "input": [
805
829
  "text"
806
830
  ],
807
831
  "cost": {
808
- "input": 0.14,
809
- "output": 0.28,
810
- "cacheRead": 0.028,
832
+ "input": 0.22,
833
+ "output": 0.66,
834
+ "cacheRead": 0.007,
811
835
  "cacheWrite": 0
812
836
  },
813
837
  "contextWindow": 1000000,
814
838
  "maxTokens": 384000,
815
839
  "compat": {
816
- "supportsReasoningEffort": true
840
+ "supportsReasoningEffort": true,
841
+ "requiresReasoningContentOnAssistantMessages": true
817
842
  }
818
843
  },
819
844
  "accounts/fireworks/models/inkling": {
@@ -851,12 +876,12 @@
851
876
  "contextWindow": 1048576,
852
877
  "maxTokens": 131072,
853
878
  "thinkingLevelMap": {
854
- "off": null,
879
+ "off": "none",
855
880
  "minimal": null,
856
881
  "low": "low",
857
882
  "medium": "medium",
858
883
  "high": "high",
859
- "xhigh": null,
884
+ "xhigh": "max",
860
885
  "max": "max"
861
886
  },
862
887
  "compat": {
@@ -1029,7 +1054,8 @@
1029
1054
  "contextWindow": 1048576,
1030
1055
  "maxTokens": 384000,
1031
1056
  "compat": {
1032
- "supportsReasoningEffort": true
1057
+ "supportsReasoningEffort": true,
1058
+ "requiresReasoningContentOnAssistantMessages": true
1033
1059
  },
1034
1060
  "thinkingLevelMap": {
1035
1061
  "off": "none",
@@ -1037,8 +1063,14 @@
1037
1063
  "low": "low",
1038
1064
  "medium": "medium",
1039
1065
  "high": "high",
1040
- "xhigh": "xhigh",
1066
+ "xhigh": "max",
1041
1067
  "max": "max"
1068
+ },
1069
+ "cost": {
1070
+ "input": 1.32,
1071
+ "output": 3.96,
1072
+ "cacheRead": 0.044,
1073
+ "cacheWrite": 0
1042
1074
  }
1043
1075
  },
1044
1076
  "accounts/fireworks/models/muse-glimmer-30b": {
@@ -1052,6 +1084,12 @@
1052
1084
  "maxTokens": 131072,
1053
1085
  "compat": {
1054
1086
  "supportsReasoningEffort": true
1087
+ },
1088
+ "cost": {
1089
+ "input": 0.35,
1090
+ "output": 1.5,
1091
+ "cacheRead": 0.04,
1092
+ "cacheWrite": 0
1055
1093
  }
1056
1094
  },
1057
1095
  "accounts/fireworks/models/nemotron-lightning-3p5-30b-a3b": {
@@ -1064,6 +1102,12 @@
1064
1102
  "maxTokens": 262144,
1065
1103
  "compat": {
1066
1104
  "supportsReasoningEffort": true
1105
+ },
1106
+ "cost": {
1107
+ "input": 0.05,
1108
+ "output": 0.2,
1109
+ "cacheRead": 0.01,
1110
+ "cacheWrite": 0
1067
1111
  }
1068
1112
  },
1069
1113
  "accounts/fireworks/models/qwen3p8-2p4t-a95b": {
@@ -1080,8 +1124,93 @@
1080
1124
  "low": "low",
1081
1125
  "medium": "medium",
1082
1126
  "high": "high",
1083
- "xhigh": null,
1084
- "max": null
1127
+ "xhigh": "xhigh",
1128
+ "max": "max"
1129
+ },
1130
+ "compat": {
1131
+ "supportsReasoningEffort": true
1132
+ }
1133
+ },
1134
+ "accounts/fireworks/models/deepseek-v4p1-flash": {
1135
+ "name": "DeepSeek V4.1 Flash",
1136
+ "reasoning": true,
1137
+ "input": [
1138
+ "text",
1139
+ "image"
1140
+ ],
1141
+ "cost": {
1142
+ "input": 0.22,
1143
+ "output": 0.66,
1144
+ "cacheRead": 0.007,
1145
+ "cacheWrite": 0
1146
+ },
1147
+ "contextWindow": 1048576,
1148
+ "maxTokens": 384000,
1149
+ "thinkingLevelMap": {
1150
+ "off": "none",
1151
+ "minimal": null,
1152
+ "low": "low",
1153
+ "medium": "medium",
1154
+ "high": "high",
1155
+ "xhigh": "max",
1156
+ "max": "max"
1157
+ },
1158
+ "compat": {
1159
+ "supportsReasoningEffort": true,
1160
+ "requiresReasoningContentOnAssistantMessages": true
1161
+ }
1162
+ },
1163
+ "accounts/fireworks/models/deepseek-v4-flash-vision-exp": {
1164
+ "name": "DeepSeek V4 Flash Vision Exp",
1165
+ "reasoning": true,
1166
+ "input": [
1167
+ "text",
1168
+ "image"
1169
+ ],
1170
+ "cost": {
1171
+ "input": 0.22,
1172
+ "output": 0.66,
1173
+ "cacheRead": 0.007,
1174
+ "cacheWrite": 0
1175
+ },
1176
+ "contextWindow": 1048576,
1177
+ "maxTokens": 384000,
1178
+ "thinkingLevelMap": {
1179
+ "off": "none",
1180
+ "minimal": null,
1181
+ "low": "low",
1182
+ "medium": "medium",
1183
+ "high": "high",
1184
+ "xhigh": "max",
1185
+ "max": "max"
1186
+ },
1187
+ "compat": {
1188
+ "supportsReasoningEffort": true,
1189
+ "requiresReasoningContentOnAssistantMessages": true
1190
+ }
1191
+ },
1192
+ "accounts/fireworks/models/qwen3p8-max": {
1193
+ "name": "Qwen3.8 Max",
1194
+ "reasoning": true,
1195
+ "input": [
1196
+ "text"
1197
+ ],
1198
+ "cost": {
1199
+ "input": 2,
1200
+ "output": 6,
1201
+ "cacheRead": 0.25,
1202
+ "cacheWrite": 0
1203
+ },
1204
+ "contextWindow": 262144,
1205
+ "maxTokens": 131072,
1206
+ "thinkingLevelMap": {
1207
+ "off": "none",
1208
+ "minimal": null,
1209
+ "low": "low",
1210
+ "medium": "medium",
1211
+ "high": "high",
1212
+ "xhigh": "xhigh",
1213
+ "max": "max"
1085
1214
  },
1086
1215
  "compat": {
1087
1216
  "supportsReasoningEffort": true