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