@johnowennixon/diffdash 1.6.1 → 1.8.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.
@@ -1,373 +1,554 @@
1
1
  import { abort_with_error } from "./lib_abort.js";
2
- const LLM_MODEL_DETAILS = [
2
+ function provider_options_anthropic({ thinking }) {
3
+ return thinking
4
+ ? {
5
+ anthropic: {
6
+ thinking: {
7
+ type: "enabled",
8
+ budgetTokens: 1024,
9
+ },
10
+ },
11
+ }
12
+ : undefined;
13
+ }
14
+ function provider_options_openai({ reasoning_effort, }) {
15
+ return {
16
+ openai: {
17
+ reasoningEffort: reasoning_effort,
18
+ },
19
+ };
20
+ }
21
+ function provider_options_openrouter({ only }) {
22
+ return {
23
+ openrouter: {
24
+ provider: {
25
+ only: [only],
26
+ },
27
+ },
28
+ };
29
+ }
30
+ export const LLM_MODEL_DETAILS = [
3
31
  {
4
32
  llm_model_name: "claude-3.5-haiku",
5
- llm_provider: "anthropic",
6
- llm_model_code_direct: "claude-3-5-haiku-latest",
7
- llm_model_code_requesty: "anthropic/claude-3-5-haiku-latest",
8
- llm_model_code_openrouter: "anthropic/claude-3.5-haiku",
33
+ llm_model_code: "claude-3-5-haiku-latest",
34
+ llm_api_code: "anthropic",
9
35
  context_window: 200_000,
10
36
  cents_input: 80,
11
37
  cents_output: 400,
38
+ default_reasoning: false,
12
39
  has_structured_json: true,
40
+ recommended_temperature: undefined,
41
+ provider_options: provider_options_anthropic({ thinking: false }),
13
42
  },
14
43
  {
15
44
  llm_model_name: "claude-3.7-sonnet",
16
- llm_provider: "anthropic",
17
- llm_model_code_direct: "claude-3-7-sonnet-20250219",
18
- llm_model_code_requesty: "anthropic/claude-3-7-sonnet-latest",
19
- llm_model_code_openrouter: "anthropic/claude-3.7-sonnet",
45
+ llm_model_code: "claude-3-7-sonnet-latest",
46
+ llm_api_code: "anthropic",
20
47
  context_window: 200_000,
21
48
  cents_input: 300,
22
49
  cents_output: 1500,
50
+ default_reasoning: false,
23
51
  has_structured_json: true,
52
+ recommended_temperature: undefined,
53
+ provider_options: provider_options_anthropic({ thinking: false }),
24
54
  },
25
55
  {
26
56
  llm_model_name: "claude-sonnet-4",
27
- llm_provider: "anthropic",
28
- llm_model_code_direct: "claude-sonnet-4-0",
29
- llm_model_code_requesty: "anthropic/claude-sonnet-4-20250514",
30
- llm_model_code_openrouter: "anthropic/claude-sonnet-4",
57
+ llm_model_code: "claude-sonnet-4-0",
58
+ llm_api_code: "anthropic",
31
59
  context_window: 200_000,
32
60
  cents_input: 300,
33
61
  cents_output: 1500,
62
+ default_reasoning: false,
34
63
  has_structured_json: true,
64
+ recommended_temperature: undefined,
65
+ provider_options: provider_options_anthropic({ thinking: false }),
35
66
  },
36
67
  {
37
- llm_model_name: "codex-mini",
38
- llm_provider: "openai",
39
- llm_model_code_direct: "codex-mini-latest",
40
- llm_model_code_requesty: null,
41
- llm_model_code_openrouter: "openai/codex-mini",
68
+ llm_model_name: "claude-sonnet-4-thinking",
69
+ llm_model_code: "claude-sonnet-4-0",
70
+ llm_api_code: "anthropic",
42
71
  context_window: 200_000,
43
- cents_input: 150,
44
- cents_output: 600,
72
+ cents_input: 300,
73
+ cents_output: 1500,
74
+ default_reasoning: false,
45
75
  has_structured_json: true,
76
+ recommended_temperature: undefined,
77
+ provider_options: provider_options_anthropic({ thinking: true }),
46
78
  },
47
79
  {
48
- llm_model_name: "deepseek-v3",
49
- llm_provider: "deepseek",
50
- llm_model_code_direct: "deepseek-chat",
51
- llm_model_code_requesty: "novita/deepseek/deepseek-v3-0324",
52
- llm_model_code_openrouter: "deepseek/deepseek-chat-v3-0324",
80
+ llm_model_name: "codestral-2508",
81
+ llm_model_code: "mistralai/codestral-2508",
82
+ llm_api_code: "openrouter",
83
+ context_window: 256_000,
84
+ cents_input: 30,
85
+ cents_output: 90,
86
+ default_reasoning: false,
87
+ has_structured_json: true,
88
+ recommended_temperature: undefined,
89
+ provider_options: provider_options_openrouter({ only: "mistral" }),
90
+ },
91
+ {
92
+ llm_model_name: "deepseek-chat",
93
+ llm_model_code: "deepseek-chat",
94
+ llm_api_code: "deepseek",
53
95
  context_window: 64_000,
54
96
  cents_input: 27,
55
97
  cents_output: 110,
56
- has_structured_json: true,
98
+ default_reasoning: false,
99
+ has_structured_json: false,
100
+ recommended_temperature: undefined,
101
+ provider_options: undefined,
57
102
  },
58
103
  {
59
- llm_model_name: "deepseek-r1",
60
- llm_provider: "deepseek",
61
- llm_model_code_direct: "deepseek-reasoner",
62
- llm_model_code_requesty: "netmind/deepseek-ai/DeepSeek-R1-0528",
63
- llm_model_code_openrouter: "deepseek/deepseek-r1-0528",
104
+ llm_model_name: "deepseek-reasoner",
105
+ llm_model_code: "deepseek-reasoner",
106
+ llm_api_code: "deepseek",
64
107
  context_window: 163_840,
65
108
  cents_input: 55,
66
109
  cents_output: 219,
110
+ default_reasoning: true,
67
111
  has_structured_json: true,
112
+ recommended_temperature: undefined,
113
+ provider_options: undefined,
68
114
  },
69
115
  {
70
116
  llm_model_name: "devstral-medium",
71
- llm_provider: null,
72
- llm_model_code_direct: "devstral-medium-latest",
73
- llm_model_code_requesty: "mistral/devstral-medium-latest",
74
- llm_model_code_openrouter: "mistralai/devstral-medium",
117
+ llm_model_code: "mistralai/devstral-medium",
118
+ llm_api_code: "openrouter",
75
119
  context_window: 128_000,
76
120
  cents_input: 40,
77
121
  cents_output: 200,
122
+ default_reasoning: false,
78
123
  has_structured_json: true,
124
+ recommended_temperature: undefined,
125
+ provider_options: provider_options_openrouter({ only: "mistral" }),
79
126
  },
80
127
  {
81
128
  llm_model_name: "devstral-small",
82
- llm_provider: null,
83
- llm_model_code_direct: "devstral-small-latest",
84
- llm_model_code_requesty: "mistral/devstral-small-latest",
85
- llm_model_code_openrouter: "mistralai/devstral-small",
129
+ llm_model_code: "mistralai/devstral-small",
130
+ llm_api_code: "openrouter",
86
131
  context_window: 128_000,
87
132
  cents_input: 10,
88
133
  cents_output: 30,
134
+ default_reasoning: false,
89
135
  has_structured_json: true,
90
- },
91
- {
92
- llm_model_name: "ernie-4.5-300b",
93
- llm_provider: null,
94
- llm_model_code_direct: null,
95
- llm_model_code_requesty: null,
96
- llm_model_code_openrouter: "baidu/ernie-4.5-300b-a47b",
97
- context_window: 123_000,
98
- cents_input: 30,
99
- cents_output: 100,
100
- has_structured_json: true,
136
+ recommended_temperature: undefined,
137
+ provider_options: provider_options_openrouter({ only: "mistral" }),
101
138
  },
102
139
  {
103
140
  llm_model_name: "gemini-2.0-flash",
104
- llm_provider: "google",
105
- llm_model_code_direct: "gemini-2.0-flash",
106
- llm_model_code_requesty: "google/gemini-2.0-flash-001",
107
- llm_model_code_openrouter: "google/gemini-2.0-flash-001",
141
+ llm_model_code: "gemini-2.0-flash",
142
+ llm_api_code: "google",
108
143
  context_window: 1_048_576,
109
144
  cents_input: 10,
110
145
  cents_output: 40,
146
+ default_reasoning: false,
111
147
  has_structured_json: true,
148
+ recommended_temperature: undefined,
149
+ provider_options: undefined,
112
150
  },
113
151
  {
114
152
  llm_model_name: "gemini-2.5-flash",
115
- llm_provider: "google",
116
- llm_model_code_direct: "gemini-2.5-flash",
117
- llm_model_code_requesty: "google/gemini-2.5-flash",
118
- llm_model_code_openrouter: "google/gemini-2.5-flash",
153
+ llm_model_code: "gemini-2.5-flash",
154
+ llm_api_code: "google",
119
155
  context_window: 1_048_576,
120
156
  cents_input: 30,
121
157
  cents_output: 250,
158
+ default_reasoning: false,
122
159
  has_structured_json: true,
160
+ recommended_temperature: undefined,
161
+ provider_options: undefined,
123
162
  },
124
163
  {
125
164
  llm_model_name: "gemini-2.5-pro",
126
- llm_provider: "google",
127
- llm_model_code_direct: "gemini-2.5-pro",
128
- llm_model_code_requesty: "google/gemini-2.5-pro",
129
- llm_model_code_openrouter: "google/gemini-2.5-pro",
165
+ llm_model_code: "gemini-2.5-pro",
166
+ llm_api_code: "google",
130
167
  context_window: 1_048_576,
131
168
  cents_input: 125,
132
169
  cents_output: 1000,
170
+ default_reasoning: false,
133
171
  has_structured_json: true,
172
+ recommended_temperature: undefined,
173
+ provider_options: undefined,
134
174
  },
135
175
  {
136
- llm_model_name: "glm-4-32b",
137
- llm_provider: null,
138
- llm_model_code_direct: null,
139
- llm_model_code_requesty: null,
140
- llm_model_code_openrouter: "thudm/glm-4-32b",
141
- context_window: 32_000,
142
- cents_input: 24,
143
- cents_output: 24,
176
+ llm_model_name: "glm-4-32b@z-ai",
177
+ llm_model_code: "z-ai/glm-4-32b",
178
+ llm_api_code: "openrouter",
179
+ context_window: 128_000,
180
+ cents_input: 10,
181
+ cents_output: 10,
182
+ default_reasoning: false,
183
+ has_structured_json: false,
184
+ recommended_temperature: undefined,
185
+ provider_options: provider_options_openrouter({ only: "z-ai" }),
186
+ },
187
+ {
188
+ llm_model_name: "glm-4.5@z-ai",
189
+ llm_model_code: "z-ai/glm-4.5",
190
+ llm_api_code: "openrouter",
191
+ context_window: 128_000,
192
+ cents_input: 60,
193
+ cents_output: 220,
194
+ default_reasoning: true,
195
+ has_structured_json: false,
196
+ recommended_temperature: undefined,
197
+ provider_options: provider_options_openrouter({ only: "z-ai/fp8" }),
198
+ },
199
+ {
200
+ llm_model_name: "glm-4.5-air@z-ai",
201
+ llm_model_code: "z-ai/glm-4.5-air",
202
+ llm_api_code: "openrouter",
203
+ context_window: 128_000,
204
+ cents_input: 20,
205
+ cents_output: 110,
206
+ default_reasoning: true,
144
207
  has_structured_json: false,
208
+ recommended_temperature: undefined,
209
+ provider_options: provider_options_openrouter({ only: "z-ai/fp8" }),
145
210
  },
146
211
  {
147
212
  llm_model_name: "gpt-4.1",
148
- llm_provider: "openai",
149
- llm_model_code_direct: "gpt-4.1",
150
- llm_model_code_requesty: "openai/gpt-4.1",
151
- llm_model_code_openrouter: "openai/gpt-4.1",
213
+ llm_model_code: "gpt-4.1",
214
+ llm_api_code: "openai",
152
215
  context_window: 1_047_576,
153
216
  cents_input: 200,
154
217
  cents_output: 800,
218
+ default_reasoning: false,
155
219
  has_structured_json: true,
220
+ recommended_temperature: 0.6,
221
+ provider_options: undefined,
156
222
  },
157
223
  {
158
224
  llm_model_name: "gpt-4.1-mini",
159
- llm_provider: "openai",
160
- llm_model_code_direct: "gpt-4.1-mini",
161
- llm_model_code_requesty: "openai/gpt-4.1-mini",
162
- llm_model_code_openrouter: "openai/gpt-4.1-mini",
225
+ llm_model_code: "gpt-4.1-mini",
226
+ llm_api_code: "openai",
163
227
  context_window: 1_047_576,
164
228
  cents_input: 40,
165
229
  cents_output: 160,
230
+ default_reasoning: false,
166
231
  has_structured_json: true,
232
+ recommended_temperature: 0.6,
233
+ provider_options: undefined,
167
234
  },
168
235
  {
169
236
  llm_model_name: "gpt-4.1-nano",
170
- llm_provider: "openai",
171
- llm_model_code_direct: "gpt-4.1-nano",
172
- llm_model_code_requesty: "openai/gpt-4.1-nano",
173
- llm_model_code_openrouter: "openai/gpt-4.1-nano",
237
+ llm_model_code: "gpt-4.1-nano",
238
+ llm_api_code: "openai",
174
239
  context_window: 1_047_576,
175
240
  cents_input: 10,
176
241
  cents_output: 40,
242
+ default_reasoning: false,
177
243
  has_structured_json: true,
244
+ recommended_temperature: 0.6,
245
+ provider_options: undefined,
178
246
  },
179
247
  {
180
- llm_model_name: "gpt-4o",
181
- llm_provider: "openai",
182
- llm_model_code_direct: "gpt-4o-2024-11-20",
183
- llm_model_code_requesty: "openai/gpt-4o-2024-11-20",
184
- llm_model_code_openrouter: "openai/gpt-4o-2024-11-20",
185
- context_window: 128_000,
186
- cents_input: 250,
248
+ llm_model_name: "gpt-5",
249
+ llm_model_code: "gpt-5",
250
+ llm_api_code: "openai",
251
+ context_window: 400_000,
252
+ cents_input: 125,
187
253
  cents_output: 1000,
254
+ default_reasoning: true,
188
255
  has_structured_json: true,
256
+ recommended_temperature: undefined,
257
+ provider_options: undefined,
189
258
  },
190
259
  {
191
- llm_model_name: "gpt-4o-mini",
192
- llm_provider: "openai",
193
- llm_model_code_direct: "gpt-4o-mini",
194
- llm_model_code_requesty: "openai/gpt-4o-mini-2024-07-18",
195
- llm_model_code_openrouter: "openai/gpt-4o-mini-2024-07-18",
196
- context_window: 128_000,
260
+ llm_model_name: "gpt-5-minimal",
261
+ llm_model_code: "gpt-5",
262
+ llm_api_code: "openai",
263
+ context_window: 400_000,
264
+ cents_input: 125,
265
+ cents_output: 1000,
266
+ default_reasoning: false,
267
+ has_structured_json: true,
268
+ recommended_temperature: undefined,
269
+ provider_options: provider_options_openai({ reasoning_effort: "minimal" }),
270
+ },
271
+ {
272
+ llm_model_name: "gpt-5-mini",
273
+ llm_model_code: "gpt-5-mini",
274
+ llm_api_code: "openai",
275
+ context_window: 400_000,
276
+ cents_input: 25,
277
+ cents_output: 200,
278
+ default_reasoning: true,
279
+ has_structured_json: true,
280
+ recommended_temperature: undefined,
281
+ provider_options: undefined,
282
+ },
283
+ {
284
+ llm_model_name: "gpt-5-mini-high",
285
+ llm_model_code: "gpt-5-mini",
286
+ llm_api_code: "openai",
287
+ context_window: 400_000,
288
+ cents_input: 25,
289
+ cents_output: 200,
290
+ default_reasoning: true,
291
+ has_structured_json: true,
292
+ recommended_temperature: undefined,
293
+ provider_options: provider_options_openai({ reasoning_effort: "high" }),
294
+ },
295
+ {
296
+ llm_model_name: "gpt-5-mini-low",
297
+ llm_model_code: "gpt-5-mini",
298
+ llm_api_code: "openai",
299
+ context_window: 400_000,
300
+ cents_input: 25,
301
+ cents_output: 200,
302
+ default_reasoning: true,
303
+ has_structured_json: true,
304
+ recommended_temperature: undefined,
305
+ provider_options: provider_options_openai({ reasoning_effort: "low" }),
306
+ },
307
+ {
308
+ llm_model_name: "gpt-5-mini-medium",
309
+ llm_model_code: "gpt-5-mini",
310
+ llm_api_code: "openai",
311
+ context_window: 400_000,
312
+ cents_input: 25,
313
+ cents_output: 200,
314
+ default_reasoning: true,
315
+ has_structured_json: true,
316
+ recommended_temperature: undefined,
317
+ provider_options: provider_options_openai({ reasoning_effort: "medium" }),
318
+ },
319
+ {
320
+ llm_model_name: "gpt-5-mini-minimal",
321
+ llm_model_code: "gpt-5-mini",
322
+ llm_api_code: "openai",
323
+ context_window: 400_000,
324
+ cents_input: 25,
325
+ cents_output: 200,
326
+ default_reasoning: false,
327
+ has_structured_json: true,
328
+ recommended_temperature: undefined,
329
+ provider_options: provider_options_openai({ reasoning_effort: "minimal" }),
330
+ },
331
+ {
332
+ llm_model_name: "gpt-5-nano",
333
+ llm_model_code: "gpt-5-nano",
334
+ llm_api_code: "openai",
335
+ context_window: 400_000,
336
+ cents_input: 5,
337
+ cents_output: 40,
338
+ default_reasoning: true,
339
+ has_structured_json: true,
340
+ recommended_temperature: undefined,
341
+ provider_options: undefined,
342
+ },
343
+ {
344
+ llm_model_name: "gpt-5-nano-minimal",
345
+ llm_model_code: "gpt-5-nano",
346
+ llm_api_code: "openai",
347
+ context_window: 400_000,
348
+ cents_input: 5,
349
+ cents_output: 40,
350
+ default_reasoning: false,
351
+ has_structured_json: true,
352
+ recommended_temperature: undefined,
353
+ provider_options: provider_options_openai({ reasoning_effort: "minimal" }),
354
+ },
355
+ {
356
+ llm_model_name: "gpt-oss-120b@cerebras",
357
+ llm_model_code: "openai/gpt-oss-120b",
358
+ llm_api_code: "openrouter",
359
+ context_window: 131_072,
360
+ cents_input: 25,
361
+ cents_output: 69,
362
+ default_reasoning: false,
363
+ has_structured_json: true,
364
+ recommended_temperature: undefined,
365
+ provider_options: provider_options_openrouter({ only: "cerebras" }),
366
+ },
367
+ {
368
+ llm_model_name: "gpt-oss-120b@groq",
369
+ llm_model_code: "openai/gpt-oss-120b",
370
+ llm_api_code: "openrouter",
371
+ context_window: 131_072,
197
372
  cents_input: 15,
198
- cents_output: 60,
373
+ cents_output: 75,
374
+ default_reasoning: false,
199
375
  has_structured_json: true,
376
+ recommended_temperature: undefined,
377
+ provider_options: provider_options_openrouter({ only: "groq" }),
200
378
  },
201
379
  {
202
380
  llm_model_name: "grok-3",
203
- llm_provider: null,
204
- llm_model_code_direct: "grok-3",
205
- llm_model_code_requesty: "xai/grok-3-beta",
206
- llm_model_code_openrouter: "x-ai/grok-3",
381
+ llm_model_code: "x-ai/grok-3",
382
+ llm_api_code: "openrouter",
207
383
  context_window: 131_072,
208
384
  cents_input: 300,
209
385
  cents_output: 1500,
386
+ default_reasoning: true,
210
387
  has_structured_json: true,
388
+ recommended_temperature: undefined,
389
+ provider_options: undefined,
211
390
  },
212
391
  {
213
392
  llm_model_name: "grok-3-mini",
214
- llm_provider: null,
215
- llm_model_code_direct: "grok-3-mini",
216
- llm_model_code_requesty: "xai/grok-3-mini-beta",
217
- llm_model_code_openrouter: "x-ai/grok-3-mini",
393
+ llm_model_code: "x-ai/grok-3-mini",
394
+ llm_api_code: "openrouter",
218
395
  context_window: 131_072,
219
396
  cents_input: 30,
220
397
  cents_output: 50,
398
+ default_reasoning: true,
221
399
  has_structured_json: true,
400
+ recommended_temperature: undefined,
401
+ provider_options: undefined,
402
+ },
403
+ // {
404
+ // llm_model_name: "grok-4",
405
+ // llm_model_code: "x-ai/grok-4", // BYOK required
406
+ // llm_api_code: "openrouter",
407
+ // context_window: 256_000,
408
+ // cents_input: 300,
409
+ // cents_output: 1500,
410
+ // default_reasoning: true,
411
+ // has_structured_json: true,
412
+ // recommended_temperature: undefined,
413
+ // provider_options: undefined,
414
+ // },
415
+ {
416
+ llm_model_name: "kimi-k2@groq",
417
+ llm_model_code: "moonshotai/kimi-k2",
418
+ llm_api_code: "openrouter",
419
+ context_window: 131_072,
420
+ cents_input: 100,
421
+ cents_output: 300,
422
+ default_reasoning: false,
423
+ has_structured_json: false,
424
+ recommended_temperature: undefined,
425
+ provider_options: provider_options_openrouter({ only: "groq" }),
222
426
  },
223
427
  {
224
- llm_model_name: "grok-4",
225
- llm_provider: null,
226
- llm_model_code_direct: "grok-4",
227
- llm_model_code_requesty: "xai/grok-4",
228
- llm_model_code_openrouter: "x-ai/grok-4",
229
- context_window: 256_000,
230
- cents_input: 300,
231
- cents_output: 1500,
232
- has_structured_json: true,
233
- },
234
- {
235
- llm_model_name: "kimi-k2",
236
- llm_provider: null,
237
- llm_model_code_direct: "kimi-k2-0711-preview",
238
- llm_model_code_requesty: null /* "novita/moonshotai/kimi-k2-instruct" */,
239
- llm_model_code_openrouter: "moonshotai/kimi-k2",
428
+ llm_model_name: "kimi-k2@moonshotai",
429
+ llm_model_code: "moonshotai/kimi-k2",
430
+ llm_api_code: "openrouter",
240
431
  context_window: 131_072,
241
432
  cents_input: 60,
242
433
  cents_output: 250,
434
+ default_reasoning: false,
243
435
  has_structured_json: true,
436
+ recommended_temperature: undefined,
437
+ provider_options: provider_options_openrouter({ only: "moonshotai" }),
244
438
  },
245
439
  {
246
- llm_model_name: "llama-4-maverick",
247
- llm_provider: null,
248
- llm_model_code_direct: null,
249
- llm_model_code_requesty: "parasail/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",
250
- llm_model_code_openrouter: "meta-llama/llama-4-maverick",
251
- context_window: 1_048_576,
252
- cents_input: 15,
440
+ llm_model_name: "llama-4-maverick@cerebras",
441
+ llm_model_code: "meta-llama/llama-4-maverick",
442
+ llm_api_code: "openrouter",
443
+ context_window: 32_000,
444
+ cents_input: 20,
253
445
  cents_output: 60,
446
+ default_reasoning: false,
254
447
  has_structured_json: true,
448
+ recommended_temperature: undefined,
449
+ provider_options: provider_options_openrouter({ only: "cerebras" }),
255
450
  },
256
451
  {
257
- llm_model_name: "llama-4-scout",
258
- llm_provider: null,
259
- llm_model_code_direct: null,
260
- llm_model_code_requesty: "parasail/meta-llama/Llama-4-Scout-17B-16E-Instruct",
261
- llm_model_code_openrouter: "meta-llama/llama-4-scout",
262
- context_window: 1_048_576,
263
- cents_input: 14,
264
- cents_output: 58,
452
+ llm_model_name: "llama-4-scout@cerebras",
453
+ llm_model_code: "meta-llama/llama-4-scout",
454
+ llm_api_code: "openrouter",
455
+ context_window: 32_000,
456
+ cents_input: 65,
457
+ cents_output: 85,
458
+ default_reasoning: false,
265
459
  has_structured_json: true,
460
+ recommended_temperature: undefined,
461
+ provider_options: provider_options_openrouter({ only: "cerebras" }),
266
462
  },
267
463
  {
268
464
  llm_model_name: "mercury",
269
- llm_provider: null,
270
- llm_model_code_direct: null,
271
- llm_model_code_requesty: null,
272
- llm_model_code_openrouter: "inception/mercury",
465
+ llm_model_code: "inception/mercury",
466
+ llm_api_code: "openrouter",
273
467
  context_window: 32_000,
274
468
  cents_input: 25,
275
469
  cents_output: 100,
470
+ default_reasoning: false,
276
471
  has_structured_json: false,
472
+ recommended_temperature: undefined,
473
+ provider_options: undefined,
277
474
  },
278
475
  {
279
476
  llm_model_name: "mercury-coder",
280
- llm_provider: null,
281
- llm_model_code_direct: null,
282
- llm_model_code_requesty: null,
283
- llm_model_code_openrouter: "inception/mercury-coder-small-beta",
477
+ llm_model_code: "inception/mercury-coder-small-beta",
478
+ llm_api_code: "openrouter",
284
479
  context_window: 32_000,
285
480
  cents_input: 25,
286
481
  cents_output: 100,
482
+ default_reasoning: false,
287
483
  has_structured_json: false,
484
+ recommended_temperature: undefined,
485
+ provider_options: undefined,
288
486
  },
289
487
  {
290
488
  llm_model_name: "mistral-medium-3",
291
- llm_provider: null,
292
- llm_model_code_direct: null,
293
- llm_model_code_requesty: null,
294
- llm_model_code_openrouter: "mistralai/mistral-medium-3",
489
+ llm_model_code: "mistralai/mistral-medium-3",
490
+ llm_api_code: "openrouter",
295
491
  context_window: 131_072,
296
492
  cents_input: 40,
297
493
  cents_output: 200,
494
+ default_reasoning: false,
298
495
  has_structured_json: true,
496
+ recommended_temperature: undefined,
497
+ provider_options: provider_options_openrouter({ only: "mistral" }),
299
498
  },
300
499
  {
301
- llm_model_name: "o3",
302
- llm_provider: "openai",
303
- llm_model_code_direct: "o3-2025-04-16",
304
- llm_model_code_requesty: "openai/o3-2025-04-16",
305
- llm_model_code_openrouter: "openai/o3-2025-04-16",
306
- context_window: 200_000,
307
- cents_input: 200,
308
- cents_output: 800,
309
- has_structured_json: true,
310
- },
311
- {
312
- llm_model_name: "o3-pro",
313
- llm_provider: "openai",
314
- llm_model_code_direct: "o3-pro",
315
- llm_model_code_requesty: "openai/o3-pro",
316
- llm_model_code_openrouter: "openai/o3-pro",
317
- context_window: 200_000,
318
- cents_input: 2000,
319
- cents_output: 8000,
320
- has_structured_json: true,
321
- },
322
- {
323
- llm_model_name: "o4-mini",
324
- llm_provider: "openai",
325
- llm_model_code_direct: "o4-mini-2025-04-16",
326
- llm_model_code_requesty: "openai/o4-mini-2025-04-16",
327
- llm_model_code_openrouter: "openai/o4-mini-2025-04-16",
328
- context_window: 200_000,
329
- cents_input: 110,
330
- cents_output: 440,
500
+ llm_model_name: "qwen3-235b-a22b-2507-instruct@cerebras",
501
+ llm_model_code: "qwen/qwen3-235b-a22b-2507",
502
+ llm_api_code: "openrouter",
503
+ context_window: 262_144,
504
+ cents_input: 60,
505
+ cents_output: 120,
506
+ default_reasoning: false,
331
507
  has_structured_json: true,
508
+ recommended_temperature: undefined,
509
+ provider_options: provider_options_openrouter({ only: "cerebras" }),
332
510
  },
333
511
  {
334
- llm_model_name: "qwen3-30b-a3b",
335
- llm_provider: null,
336
- llm_model_code_direct: null,
337
- llm_model_code_requesty: null,
338
- llm_model_code_openrouter: "qwen/qwen3-30b-a3b",
339
- context_window: 40_000,
340
- cents_input: 8,
341
- cents_output: 29,
512
+ llm_model_name: "qwen3-235b-a22b-2507-thinking@cerebras",
513
+ llm_model_code: "qwen/qwen3-235b-a22b-thinking-2507",
514
+ llm_api_code: "openrouter",
515
+ context_window: 262_144,
516
+ cents_input: 60,
517
+ cents_output: 120,
518
+ default_reasoning: true,
342
519
  has_structured_json: true,
520
+ recommended_temperature: undefined,
521
+ provider_options: provider_options_openrouter({ only: "cerebras" }),
343
522
  },
344
523
  {
345
- llm_model_name: "qwen3-32b",
346
- llm_provider: null,
347
- llm_model_code_direct: null,
348
- llm_model_code_requesty: "deepinfra/Qwen/Qwen3-32B",
349
- llm_model_code_openrouter: "qwen/qwen3-32b",
350
- context_window: 40_000,
351
- cents_input: 10,
352
- cents_output: 30,
524
+ llm_model_name: "qwen3-coder@alibaba",
525
+ llm_model_code: "qwen/qwen3-coder",
526
+ llm_api_code: "openrouter",
527
+ context_window: 262_144,
528
+ cents_input: 150,
529
+ cents_output: 750,
530
+ default_reasoning: false,
353
531
  has_structured_json: true,
532
+ recommended_temperature: undefined,
533
+ provider_options: provider_options_openrouter({ only: "alibaba/opensource" }),
354
534
  },
355
535
  {
356
- llm_model_name: "qwen3-235b-a22b",
357
- llm_provider: null,
358
- llm_model_code_direct: null,
359
- llm_model_code_requesty: "deepinfra/Qwen/Qwen3-235B-A22B",
360
- llm_model_code_openrouter: "qwen/qwen3-235b-a22b",
361
- context_window: 40_000,
362
- cents_input: 20,
363
- cents_output: 60,
536
+ llm_model_name: "qwen3-coder@cerebras",
537
+ llm_model_code: "qwen/qwen3-coder",
538
+ llm_api_code: "openrouter",
539
+ context_window: 131_072,
540
+ cents_input: 200,
541
+ cents_output: 200,
542
+ default_reasoning: false,
364
543
  has_structured_json: true,
544
+ recommended_temperature: undefined,
545
+ provider_options: provider_options_openrouter({ only: "cerebras" }),
365
546
  },
366
547
  ];
367
548
  export function llm_model_get_details({ llm_model_names, }) {
368
549
  return LLM_MODEL_DETAILS.filter((detail) => llm_model_names.includes(detail.llm_model_name));
369
550
  }
370
- export function llm_model_get_choices(llm_model_details) {
551
+ export function llm_model_get_choices({ llm_model_details }) {
371
552
  return llm_model_details.map((model) => model.llm_model_name);
372
553
  }
373
554
  export function llm_model_find_detail({ llm_model_details, llm_model_name, }) {