llm.rb 13.0.0 → 14.0.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.
Files changed (106) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +505 -14
  3. data/README.md +484 -50
  4. data/bin/llm.rb +148 -0
  5. data/data/anthropic.json +206 -263
  6. data/data/bedrock.json +2138 -1860
  7. data/data/deepinfra.json +1003 -624
  8. data/data/deepseek.json +38 -34
  9. data/data/google.json +1079 -371
  10. data/data/mistral.json +448 -368
  11. data/data/moonshot.json +384 -0
  12. data/data/openai.json +974 -1343
  13. data/data/xai.json +154 -126
  14. data/data/zai.json +191 -191
  15. data/lib/llm/agent.rb +123 -20
  16. data/lib/llm/context.rb +71 -88
  17. data/lib/llm/cost.rb +23 -17
  18. data/lib/llm/error.rb +0 -8
  19. data/lib/llm/function/array.rb +3 -3
  20. data/lib/llm/function/async/task.rb +2 -0
  21. data/lib/llm/function/fiber/task.rb +2 -0
  22. data/lib/llm/function/fork/task.rb +2 -0
  23. data/lib/llm/function/ractor/task.rb +2 -0
  24. data/lib/llm/function/sequential/group.rb +4 -1
  25. data/lib/llm/function/sequential/task.rb +1 -1
  26. data/lib/llm/function/task.rb +4 -0
  27. data/lib/llm/function/thread/task.rb +2 -0
  28. data/lib/llm/function.rb +33 -6
  29. data/lib/llm/guard/loop.rb +89 -0
  30. data/lib/llm/guard/null.rb +19 -0
  31. data/lib/llm/guard.rb +61 -0
  32. data/lib/llm/provider.rb +36 -0
  33. data/lib/llm/providers/anthropic/stream_parser.rb +1 -0
  34. data/lib/llm/providers/anthropic.rb +2 -9
  35. data/lib/llm/providers/bedrock/request_adapter.rb +1 -1
  36. data/lib/llm/providers/bedrock/stream_parser.rb +1 -0
  37. data/lib/llm/providers/bedrock.rb +1 -8
  38. data/lib/llm/providers/google/stream_parser.rb +1 -0
  39. data/lib/llm/providers/google.rb +1 -8
  40. data/lib/llm/providers/mistral.rb +1 -1
  41. data/lib/llm/providers/moonshot.rb +76 -0
  42. data/lib/llm/providers/ollama.rb +2 -9
  43. data/lib/llm/providers/openai/responses/stream_parser.rb +1 -0
  44. data/lib/llm/providers/openai/responses.rb +7 -9
  45. data/lib/llm/providers/openai/stream_parser.rb +1 -0
  46. data/lib/llm/providers/openai.rb +4 -11
  47. data/lib/llm/repl/bar.rb +4 -3
  48. data/lib/llm/repl/{transcript.rb → buffer.rb} +69 -29
  49. data/lib/llm/repl/color.rb +78 -0
  50. data/lib/llm/repl/command.rb +12 -5
  51. data/lib/llm/repl/commands/compact.rb +2 -2
  52. data/lib/llm/repl/commands/help.rb +3 -5
  53. data/lib/llm/repl/input/char.rb +46 -0
  54. data/lib/llm/repl/input/row.rb +39 -0
  55. data/lib/llm/repl/input.rb +251 -66
  56. data/lib/llm/repl/markdown/table.rb +11 -3
  57. data/lib/llm/repl/markdown.rb +34 -8
  58. data/lib/llm/repl/node.rb +37 -0
  59. data/lib/llm/repl/status.rb +42 -7
  60. data/lib/llm/repl/stream.rb +18 -6
  61. data/lib/llm/repl/walker.rb +3 -2
  62. data/lib/llm/repl/window.rb +54 -35
  63. data/lib/llm/repl.rb +74 -32
  64. data/lib/llm/skill.rb +20 -4
  65. data/lib/llm/stream.rb +8 -7
  66. data/lib/llm/tool.rb +29 -0
  67. data/lib/llm/tools/{swap_text.rb → edit-file.rb} +3 -3
  68. data/lib/llm/tools/git.rb +3 -0
  69. data/lib/llm/tools/mkdir.rb +3 -0
  70. data/lib/llm/tools/rg.rb +3 -0
  71. data/lib/llm/tools/ruby.rb +46 -0
  72. data/lib/llm/tools/shell.rb +3 -0
  73. data/lib/llm/tracer/pretty_logger.rb +127 -0
  74. data/lib/llm/tracer.rb +1 -0
  75. data/lib/llm/transformer/null.rb +21 -0
  76. data/lib/llm/transformer.rb +55 -0
  77. data/lib/llm/version.rb +1 -1
  78. data/lib/llm.rb +12 -2
  79. data/llm.gemspec +9 -2
  80. data/resources/deepdive/advanced/cancellation.md +74 -0
  81. data/resources/deepdive/advanced/compaction.md +83 -0
  82. data/resources/deepdive/advanced/context.md +267 -0
  83. data/resources/deepdive/advanced/guard.md +371 -0
  84. data/resources/deepdive/advanced/tracer.md +180 -0
  85. data/resources/deepdive/advanced/transformer.md +67 -0
  86. data/resources/deepdive/advanced/transports.md +45 -0
  87. data/resources/deepdive/everything_else/audio.md +122 -0
  88. data/resources/deepdive/everything_else/cost.md +99 -0
  89. data/resources/deepdive/everything_else/images.md +89 -0
  90. data/resources/deepdive/everything_else/object.md +108 -0
  91. data/resources/deepdive/everything_else/ocr.md +48 -0
  92. data/resources/deepdive/fundamentals/agents.md +202 -0
  93. data/resources/deepdive/fundamentals/builtin_tools.md +191 -0
  94. data/resources/deepdive/fundamentals/concurrency.md +104 -0
  95. data/resources/deepdive/fundamentals/database.md +449 -0
  96. data/resources/deepdive/fundamentals/embeddings.md +157 -0
  97. data/resources/deepdive/fundamentals/repl.md +87 -0
  98. data/resources/deepdive/fundamentals/schema.md +61 -0
  99. data/resources/deepdive/fundamentals/skills.md +106 -0
  100. data/resources/deepdive/fundamentals/stream.md +110 -0
  101. data/resources/deepdive/fundamentals/tools.md +265 -0
  102. data/resources/deepdive/protocols/a2a.md +106 -0
  103. data/resources/deepdive/protocols/mcp.md +111 -0
  104. data/resources/deepdive.md +58 -1792
  105. metadata +51 -7
  106. data/lib/llm/loop_guard.rb +0 -107
data/data/mistral.json CHANGED
@@ -7,21 +7,84 @@
7
7
  "name": "Mistral",
8
8
  "doc": "https://docs.mistral.ai/getting-started/models/",
9
9
  "models": {
10
- "open-mistral-nemo": {
11
- "id": "open-mistral-nemo",
12
- "name": "Open Mistral Nemo",
13
- "description": "Legacy model retained for compatibility with older integrations",
14
- "family": "mistral-nemo",
10
+ "mistral-small-2506": {
11
+ "id": "mistral-small-2506",
12
+ "name": "Mistral Small 3.2",
13
+ "description": "Efficient Mistral model for fast chat, extraction, and production assistants",
14
+ "family": "mistral-small",
15
15
  "attachment": false,
16
16
  "reasoning": false,
17
17
  "tool_call": true,
18
18
  "temperature": true,
19
- "knowledge": "2024-07",
20
- "release_date": "2024-07-01",
21
- "last_updated": "2024-07-01",
19
+ "knowledge": "2025-03",
20
+ "release_date": "2025-06-20",
21
+ "last_updated": "2025-06-20",
22
22
  "modalities": {
23
23
  "input": [
24
+ "text",
25
+ "image"
26
+ ],
27
+ "output": [
24
28
  "text"
29
+ ]
30
+ },
31
+ "open_weights": true,
32
+ "limit": {
33
+ "context": 128000,
34
+ "output": 16384
35
+ },
36
+ "cost": {
37
+ "input": 0.1,
38
+ "output": 0.3
39
+ }
40
+ },
41
+ "pixtral-large-latest": {
42
+ "id": "pixtral-large-latest",
43
+ "name": "Pixtral Large (latest)",
44
+ "description": "Mistral's larger vision model for document-heavy image understanding and chat",
45
+ "family": "pixtral",
46
+ "attachment": true,
47
+ "reasoning": false,
48
+ "tool_call": true,
49
+ "temperature": true,
50
+ "knowledge": "2024-11",
51
+ "release_date": "2024-11-01",
52
+ "last_updated": "2024-11-04",
53
+ "modalities": {
54
+ "input": [
55
+ "text",
56
+ "image"
57
+ ],
58
+ "output": [
59
+ "text"
60
+ ]
61
+ },
62
+ "open_weights": true,
63
+ "limit": {
64
+ "context": 128000,
65
+ "output": 128000
66
+ },
67
+ "cost": {
68
+ "input": 2,
69
+ "output": 6
70
+ }
71
+ },
72
+ "pixtral-12b": {
73
+ "id": "pixtral-12b",
74
+ "name": "Pixtral 12B",
75
+ "description": "Mistral vision-language model for image understanding and multimodal chat",
76
+ "family": "pixtral",
77
+ "attachment": true,
78
+ "reasoning": false,
79
+ "tool_call": true,
80
+ "temperature": true,
81
+ "knowledge": "2024-09",
82
+ "release_date": "2024-09-01",
83
+ "last_updated": "2024-09-01",
84
+ "modalities": {
85
+ "input": [
86
+ "text",
87
+ "image"
25
88
  ],
26
89
  "output": [
27
90
  "text"
@@ -32,7 +95,6 @@
32
95
  "context": 128000,
33
96
  "output": 128000
34
97
  },
35
- "status": "deprecated",
36
98
  "cost": {
37
99
  "input": 0.15,
38
100
  "output": 0.15
@@ -68,18 +130,18 @@
68
130
  "output": 0.7
69
131
  }
70
132
  },
71
- "mistral-small-2506": {
72
- "id": "mistral-small-2506",
73
- "name": "Mistral Small 3.2",
74
- "description": "Efficient Mistral model for fast chat, extraction, and production assistants",
75
- "family": "mistral-small",
133
+ "labs-devstral-small-2512": {
134
+ "id": "labs-devstral-small-2512",
135
+ "name": "Devstral Small 2",
136
+ "description": "Legacy model retained for compatibility with older integrations",
137
+ "family": "devstral",
76
138
  "attachment": false,
77
139
  "reasoning": false,
78
140
  "tool_call": true,
79
141
  "temperature": true,
80
- "knowledge": "2025-03",
81
- "release_date": "2025-06-20",
82
- "last_updated": "2025-06-20",
142
+ "knowledge": "2025-12",
143
+ "release_date": "2025-12-09",
144
+ "last_updated": "2025-12-09",
83
145
  "modalities": {
84
146
  "input": [
85
147
  "text",
@@ -91,19 +153,20 @@
91
153
  },
92
154
  "open_weights": true,
93
155
  "limit": {
94
- "context": 128000,
95
- "output": 16384
156
+ "context": 256000,
157
+ "output": 256000
96
158
  },
159
+ "status": "deprecated",
97
160
  "cost": {
98
- "input": 0.1,
99
- "output": 0.3
161
+ "input": 0,
162
+ "output": 0
100
163
  }
101
164
  },
102
- "magistral-small": {
103
- "id": "magistral-small",
104
- "name": "Magistral Small",
165
+ "magistral-medium-latest": {
166
+ "id": "magistral-medium-latest",
167
+ "name": "Magistral Medium (latest)",
105
168
  "description": "Mistral reasoning model for transparent analysis, math, and complex decisions",
106
- "family": "magistral-small",
169
+ "family": "magistral-medium",
107
170
  "attachment": false,
108
171
  "reasoning": true,
109
172
  "reasoning_options": [],
@@ -111,7 +174,7 @@
111
174
  "temperature": true,
112
175
  "knowledge": "2025-06",
113
176
  "release_date": "2025-03-17",
114
- "last_updated": "2025-03-17",
177
+ "last_updated": "2025-03-20",
115
178
  "modalities": {
116
179
  "input": [
117
180
  "text"
@@ -123,60 +186,59 @@
123
186
  "open_weights": true,
124
187
  "limit": {
125
188
  "context": 128000,
126
- "output": 128000
189
+ "output": 16384
127
190
  },
128
191
  "cost": {
129
- "input": 0.5,
130
- "output": 1.5
192
+ "input": 2,
193
+ "output": 5
131
194
  }
132
195
  },
133
- "devstral-small-2507": {
134
- "id": "devstral-small-2507",
135
- "name": "Devstral Small",
136
- "description": "Legacy model retained for compatibility with older integrations",
137
- "family": "devstral",
138
- "attachment": false,
196
+ "mistral-medium-2508": {
197
+ "id": "mistral-medium-2508",
198
+ "name": "Mistral Medium 3.1",
199
+ "description": "Mistral model for multilingual chat, reasoning, and tool-assisted workflows",
200
+ "family": "mistral-medium",
201
+ "attachment": true,
139
202
  "reasoning": false,
140
203
  "tool_call": true,
141
204
  "temperature": true,
142
205
  "knowledge": "2025-05",
143
- "release_date": "2025-07-10",
144
- "last_updated": "2025-07-10",
206
+ "release_date": "2025-08-12",
207
+ "last_updated": "2025-08-12",
145
208
  "modalities": {
146
209
  "input": [
147
- "text"
210
+ "text",
211
+ "image"
148
212
  ],
149
213
  "output": [
150
214
  "text"
151
215
  ]
152
216
  },
153
- "open_weights": true,
217
+ "open_weights": false,
154
218
  "limit": {
155
- "context": 128000,
156
- "output": 128000
219
+ "context": 262144,
220
+ "output": 262144
157
221
  },
158
- "status": "deprecated",
159
222
  "cost": {
160
- "input": 0.1,
161
- "output": 0.3
223
+ "input": 0.4,
224
+ "output": 2
162
225
  }
163
226
  },
164
- "labs-devstral-small-2512": {
165
- "id": "labs-devstral-small-2512",
166
- "name": "Devstral Small 2",
167
- "description": "Legacy model retained for compatibility with older integrations",
168
- "family": "devstral",
227
+ "mistral-large-2411": {
228
+ "id": "mistral-large-2411",
229
+ "name": "Mistral Large 2.1",
230
+ "description": "Flagship Mistral model for advanced reasoning, coding, and multilingual work",
231
+ "family": "mistral-large",
169
232
  "attachment": false,
170
233
  "reasoning": false,
171
234
  "tool_call": true,
172
235
  "temperature": true,
173
- "knowledge": "2025-12",
174
- "release_date": "2025-12-09",
175
- "last_updated": "2025-12-09",
236
+ "knowledge": "2024-11",
237
+ "release_date": "2024-11-18",
238
+ "last_updated": "2024-11-18",
176
239
  "modalities": {
177
240
  "input": [
178
- "text",
179
- "image"
241
+ "text"
180
242
  ],
181
243
  "output": [
182
244
  "text"
@@ -184,12 +246,36 @@
184
246
  },
185
247
  "open_weights": true,
186
248
  "limit": {
187
- "context": 256000,
188
- "output": 256000
249
+ "context": 131072,
250
+ "output": 16384
189
251
  },
190
- "status": "deprecated",
191
252
  "cost": {
192
- "input": 0,
253
+ "input": 2,
254
+ "output": 6
255
+ }
256
+ },
257
+ "voxtral-mini-tts-latest": {
258
+ "id": "voxtral-mini-tts-latest",
259
+ "name": "Voxtral Mini TTS (latest)",
260
+ "description": "Multilingual text-to-speech model with zero-shot voice cloning",
261
+ "family": "voxtral",
262
+ "attachment": false,
263
+ "reasoning": false,
264
+ "tool_call": false,
265
+ "temperature": false,
266
+ "release_date": "2026-03-01",
267
+ "last_updated": "2026-03-01",
268
+ "modalities": {
269
+ "input": [
270
+ "text"
271
+ ],
272
+ "output": [
273
+ "audio"
274
+ ]
275
+ },
276
+ "open_weights": false,
277
+ "limit": {
278
+ "context": 0,
193
279
  "output": 0
194
280
  }
195
281
  },
@@ -233,18 +319,18 @@
233
319
  "output": 7.5
234
320
  }
235
321
  },
236
- "devstral-medium-latest": {
237
- "id": "devstral-medium-latest",
238
- "name": "Devstral 2 (latest)",
322
+ "devstral-small-2507": {
323
+ "id": "devstral-small-2507",
324
+ "name": "Devstral Small",
239
325
  "description": "Legacy model retained for compatibility with older integrations",
240
326
  "family": "devstral",
241
327
  "attachment": false,
242
328
  "reasoning": false,
243
329
  "tool_call": true,
244
330
  "temperature": true,
245
- "knowledge": "2025-12",
246
- "release_date": "2025-12-02",
247
- "last_updated": "2025-12-02",
331
+ "knowledge": "2025-05",
332
+ "release_date": "2025-07-10",
333
+ "last_updated": "2025-07-10",
248
334
  "modalities": {
249
335
  "input": [
250
336
  "text"
@@ -255,27 +341,27 @@
255
341
  },
256
342
  "open_weights": true,
257
343
  "limit": {
258
- "context": 262144,
259
- "output": 262144
344
+ "context": 128000,
345
+ "output": 128000
260
346
  },
261
347
  "status": "deprecated",
262
348
  "cost": {
263
- "input": 0.4,
264
- "output": 2
349
+ "input": 0.1,
350
+ "output": 0.3
265
351
  }
266
352
  },
267
- "open-mixtral-8x22b": {
268
- "id": "open-mixtral-8x22b",
269
- "name": "Mixtral 8x22B",
353
+ "open-mistral-7b": {
354
+ "id": "open-mistral-7b",
355
+ "name": "Mistral 7B",
270
356
  "description": "Mistral model for multilingual chat, reasoning, and tool-assisted workflows",
271
- "family": "mixtral",
357
+ "family": "mistral",
272
358
  "attachment": false,
273
359
  "reasoning": false,
274
360
  "tool_call": true,
275
361
  "temperature": true,
276
- "knowledge": "2024-04",
277
- "release_date": "2024-04-17",
278
- "last_updated": "2024-04-17",
362
+ "knowledge": "2023-12",
363
+ "release_date": "2023-09-27",
364
+ "last_updated": "2023-09-27",
279
365
  "modalities": {
280
366
  "input": [
281
367
  "text"
@@ -286,47 +372,48 @@
286
372
  },
287
373
  "open_weights": true,
288
374
  "limit": {
289
- "context": 64000,
290
- "output": 64000
375
+ "context": 8000,
376
+ "output": 8000
291
377
  },
292
378
  "cost": {
293
- "input": 2,
294
- "output": 6
379
+ "input": 0.25,
380
+ "output": 0.25
295
381
  }
296
382
  },
297
- "codestral-latest": {
298
- "id": "codestral-latest",
299
- "name": "Codestral (latest)",
300
- "description": "Mistral code model for completions, refactors, and developer IDE workflows",
301
- "family": "codestral",
302
- "attachment": false,
383
+ "mistral-medium-2505": {
384
+ "id": "mistral-medium-2505",
385
+ "name": "Mistral Medium 3",
386
+ "description": "Mistral model for multilingual chat, reasoning, and tool-assisted workflows",
387
+ "family": "mistral-medium",
388
+ "attachment": true,
303
389
  "reasoning": false,
304
390
  "tool_call": true,
305
391
  "temperature": true,
306
- "knowledge": "2024-10",
307
- "release_date": "2024-05-29",
308
- "last_updated": "2025-01-04",
392
+ "knowledge": "2025-05",
393
+ "release_date": "2025-05-07",
394
+ "last_updated": "2025-05-07",
309
395
  "modalities": {
310
396
  "input": [
311
- "text"
397
+ "text",
398
+ "image"
312
399
  ],
313
400
  "output": [
314
401
  "text"
315
402
  ]
316
403
  },
317
- "open_weights": true,
404
+ "open_weights": false,
318
405
  "limit": {
319
- "context": 256000,
320
- "output": 4096
406
+ "context": 131072,
407
+ "output": 131072
321
408
  },
322
409
  "cost": {
323
- "input": 0.3,
324
- "output": 0.9
410
+ "input": 0.4,
411
+ "output": 2
325
412
  }
326
413
  },
327
- "ministral-8b-latest": {
328
- "id": "ministral-8b-latest",
329
- "name": "Ministral 8B (latest)",
414
+ "ministral-3b-latest": {
415
+ "id": "ministral-3b-latest",
416
+ "name": "Ministral 3B (latest)",
330
417
  "description": "Compact Mistral model for edge, latency-sensitive, and cost-efficient workloads",
331
418
  "family": "ministral",
332
419
  "attachment": false,
@@ -350,15 +437,15 @@
350
437
  "output": 128000
351
438
  },
352
439
  "cost": {
353
- "input": 0.1,
354
- "output": 0.1
440
+ "input": 0.04,
441
+ "output": 0.04
355
442
  }
356
443
  },
357
- "mistral-medium-2604": {
358
- "id": "mistral-medium-2604",
359
- "name": "Mistral Medium 3.5",
360
- "description": "Balanced Mistral model for enterprise assistants, multilingual work, and tools",
361
- "family": "mistral-medium",
444
+ "mistral-small-latest": {
445
+ "id": "mistral-small-latest",
446
+ "name": "Mistral Small (latest)",
447
+ "description": "Efficient Mistral model for fast chat, extraction, and production assistants",
448
+ "family": "mistral-small",
362
449
  "attachment": true,
363
450
  "reasoning": true,
364
451
  "reasoning_options": [
@@ -371,10 +458,10 @@
371
458
  }
372
459
  ],
373
460
  "tool_call": true,
374
- "structured_output": true,
375
461
  "temperature": true,
376
- "release_date": "2026-04-29",
377
- "last_updated": "2026-04-29",
462
+ "knowledge": "2025-06",
463
+ "release_date": "2026-03-16",
464
+ "last_updated": "2026-03-16",
378
465
  "modalities": {
379
466
  "input": [
380
467
  "text",
@@ -386,30 +473,29 @@
386
473
  },
387
474
  "open_weights": true,
388
475
  "limit": {
389
- "context": 262144,
390
- "output": 262144
476
+ "context": 256000,
477
+ "output": 256000
391
478
  },
392
479
  "cost": {
393
- "input": 1.5,
394
- "output": 7.5
480
+ "input": 0.15,
481
+ "output": 0.6
395
482
  }
396
483
  },
397
- "mistral-large-2512": {
398
- "id": "mistral-large-2512",
399
- "name": "Mistral Large 3",
400
- "description": "Mistral's largest general model for enterprise agents, coding, and multilingual reasoning",
401
- "family": "mistral-large",
402
- "attachment": true,
484
+ "open-mixtral-8x22b": {
485
+ "id": "open-mixtral-8x22b",
486
+ "name": "Mixtral 8x22B",
487
+ "description": "Mistral model for multilingual chat, reasoning, and tool-assisted workflows",
488
+ "family": "mixtral",
489
+ "attachment": false,
403
490
  "reasoning": false,
404
491
  "tool_call": true,
405
492
  "temperature": true,
406
- "knowledge": "2024-11",
407
- "release_date": "2024-11-01",
408
- "last_updated": "2025-12-02",
493
+ "knowledge": "2024-04",
494
+ "release_date": "2024-04-17",
495
+ "last_updated": "2024-04-17",
409
496
  "modalities": {
410
497
  "input": [
411
- "text",
412
- "image"
498
+ "text"
413
499
  ],
414
500
  "output": [
415
501
  "text"
@@ -417,30 +503,29 @@
417
503
  },
418
504
  "open_weights": true,
419
505
  "limit": {
420
- "context": 262144,
421
- "output": 262144
506
+ "context": 64000,
507
+ "output": 64000
422
508
  },
423
509
  "cost": {
424
- "input": 0.5,
425
- "output": 1.5
510
+ "input": 2,
511
+ "output": 6
426
512
  }
427
513
  },
428
- "mistral-large-latest": {
429
- "id": "mistral-large-latest",
430
- "name": "Mistral Large (latest)",
431
- "description": "Flagship Mistral model for advanced reasoning, coding, and multilingual work",
432
- "family": "mistral-large",
433
- "attachment": true,
514
+ "mistral-nemo": {
515
+ "id": "mistral-nemo",
516
+ "name": "Mistral Nemo",
517
+ "description": "Efficient Mistral-NVIDIA open model for multilingual chat and local deployment",
518
+ "family": "mistral-nemo",
519
+ "attachment": false,
434
520
  "reasoning": false,
435
521
  "tool_call": true,
436
522
  "temperature": true,
437
- "knowledge": "2024-11",
438
- "release_date": "2024-11-01",
439
- "last_updated": "2025-12-02",
523
+ "knowledge": "2024-07",
524
+ "release_date": "2024-07-01",
525
+ "last_updated": "2024-07-01",
440
526
  "modalities": {
441
527
  "input": [
442
- "text",
443
- "image"
528
+ "text"
444
529
  ],
445
530
  "output": [
446
531
  "text"
@@ -448,59 +533,79 @@
448
533
  },
449
534
  "open_weights": true,
450
535
  "limit": {
451
- "context": 262144,
452
- "output": 262144
536
+ "context": 128000,
537
+ "output": 128000
453
538
  },
454
539
  "cost": {
455
- "input": 0.5,
456
- "output": 1.5
540
+ "input": 0.15,
541
+ "output": 0.15
457
542
  }
458
543
  },
459
- "mistral-embed": {
460
- "id": "mistral-embed",
461
- "name": "Mistral Embed",
462
- "description": "Embedding model for semantic search, retrieval, clustering, and ranking pipelines",
463
- "family": "mistral-embed",
464
- "attachment": false,
465
- "reasoning": false,
466
- "tool_call": false,
467
- "temperature": false,
468
- "release_date": "2023-12-11",
469
- "last_updated": "2023-12-11",
544
+ "mistral-small-2603": {
545
+ "id": "mistral-small-2603",
546
+ "name": "Mistral Small 4",
547
+ "description": "Fast Mistral production model for chat, extraction, and cost-sensitive agents",
548
+ "family": "mistral-small",
549
+ "attachment": true,
550
+ "reasoning": true,
551
+ "reasoning_options": [
552
+ {
553
+ "type": "effort",
554
+ "values": [
555
+ "none",
556
+ "high"
557
+ ]
558
+ }
559
+ ],
560
+ "tool_call": true,
561
+ "temperature": true,
562
+ "knowledge": "2025-06",
563
+ "release_date": "2026-03-16",
564
+ "last_updated": "2026-03-16",
470
565
  "modalities": {
471
566
  "input": [
472
- "text"
567
+ "text",
568
+ "image"
473
569
  ],
474
570
  "output": [
475
571
  "text"
476
572
  ]
477
573
  },
478
- "open_weights": false,
574
+ "open_weights": true,
479
575
  "limit": {
480
- "context": 8000,
481
- "output": 3072
576
+ "context": 256000,
577
+ "output": 256000
482
578
  },
483
579
  "cost": {
484
- "input": 0.1,
485
- "output": 0
580
+ "input": 0.15,
581
+ "output": 0.6
486
582
  }
487
583
  },
488
- "magistral-medium-latest": {
489
- "id": "magistral-medium-latest",
490
- "name": "Magistral Medium (latest)",
491
- "description": "Mistral reasoning model for transparent analysis, math, and complex decisions",
492
- "family": "magistral-medium",
493
- "attachment": false,
584
+ "mistral-medium-2604": {
585
+ "id": "mistral-medium-2604",
586
+ "name": "Mistral Medium 3.5",
587
+ "description": "Balanced Mistral model for enterprise assistants, multilingual work, and tools",
588
+ "family": "mistral-medium",
589
+ "attachment": true,
494
590
  "reasoning": true,
495
- "reasoning_options": [],
591
+ "reasoning_options": [
592
+ {
593
+ "type": "effort",
594
+ "values": [
595
+ "none",
596
+ "high"
597
+ ]
598
+ }
599
+ ],
496
600
  "tool_call": true,
601
+ "structured_output": true,
497
602
  "temperature": true,
498
- "knowledge": "2025-06",
499
- "release_date": "2025-03-17",
500
- "last_updated": "2025-03-20",
603
+ "release_date": "2026-04-29",
604
+ "last_updated": "2026-04-29",
501
605
  "modalities": {
502
606
  "input": [
503
- "text"
607
+ "text",
608
+ "image"
504
609
  ],
505
610
  "output": [
506
611
  "text"
@@ -508,43 +613,67 @@
508
613
  },
509
614
  "open_weights": true,
510
615
  "limit": {
511
- "context": 128000,
512
- "output": 16384
616
+ "context": 262144,
617
+ "output": 262144
513
618
  },
514
619
  "cost": {
515
- "input": 2,
516
- "output": 5
620
+ "input": 1.5,
621
+ "output": 7.5
517
622
  }
518
623
  },
519
- "mistral-medium-2508": {
520
- "id": "mistral-medium-2508",
521
- "name": "Mistral Medium 3.1",
522
- "description": "Mistral model for multilingual chat, reasoning, and tool-assisted workflows",
523
- "family": "mistral-medium",
624
+ "voxtral-mini-latest": {
625
+ "id": "voxtral-mini-latest",
626
+ "name": "Voxtral Mini (latest)",
627
+ "description": "Speech transcription model for accurate audio-to-text and captioning workflows",
628
+ "family": "voxtral",
629
+ "attachment": false,
630
+ "reasoning": false,
631
+ "tool_call": false,
632
+ "temperature": false,
633
+ "release_date": "2026-02-01",
634
+ "last_updated": "2026-02-01",
635
+ "modalities": {
636
+ "input": [
637
+ "audio"
638
+ ],
639
+ "output": [
640
+ "text"
641
+ ]
642
+ },
643
+ "open_weights": false,
644
+ "limit": {
645
+ "context": 0,
646
+ "output": 0
647
+ }
648
+ },
649
+ "voxtral-small-latest": {
650
+ "id": "voxtral-small-latest",
651
+ "name": "Voxtral Small (latest)",
652
+ "description": "Instruct model with native audio input for speech understanding and tool use",
653
+ "family": "voxtral",
524
654
  "attachment": true,
525
655
  "reasoning": false,
526
656
  "tool_call": true,
527
657
  "temperature": true,
528
- "knowledge": "2025-05",
529
- "release_date": "2025-08-12",
530
- "last_updated": "2025-08-12",
658
+ "release_date": "2025-07-15",
659
+ "last_updated": "2025-07-15",
531
660
  "modalities": {
532
661
  "input": [
533
662
  "text",
534
- "image"
663
+ "audio"
535
664
  ],
536
665
  "output": [
537
666
  "text"
538
667
  ]
539
668
  },
540
- "open_weights": false,
669
+ "open_weights": true,
541
670
  "limit": {
542
- "context": 262144,
543
- "output": 262144
671
+ "context": 32000,
672
+ "output": 32000
544
673
  },
545
674
  "cost": {
546
- "input": 0.4,
547
- "output": 2
675
+ "input": 0.1,
676
+ "output": 0.3
548
677
  }
549
678
  },
550
679
  "devstral-latest": {
@@ -578,22 +707,21 @@
578
707
  "output": 2
579
708
  }
580
709
  },
581
- "pixtral-large-latest": {
582
- "id": "pixtral-large-latest",
583
- "name": "Pixtral Large (latest)",
584
- "description": "Mistral's larger vision model for document-heavy image understanding and chat",
585
- "family": "pixtral",
586
- "attachment": true,
710
+ "ministral-8b-latest": {
711
+ "id": "ministral-8b-latest",
712
+ "name": "Ministral 8B (latest)",
713
+ "description": "Compact Mistral model for edge, latency-sensitive, and cost-efficient workloads",
714
+ "family": "ministral",
715
+ "attachment": false,
587
716
  "reasoning": false,
588
717
  "tool_call": true,
589
718
  "temperature": true,
590
- "knowledge": "2024-11",
591
- "release_date": "2024-11-01",
592
- "last_updated": "2024-11-04",
719
+ "knowledge": "2024-10",
720
+ "release_date": "2024-10-01",
721
+ "last_updated": "2024-10-04",
593
722
  "modalities": {
594
723
  "input": [
595
- "text",
596
- "image"
724
+ "text"
597
725
  ],
598
726
  "output": [
599
727
  "text"
@@ -605,26 +733,24 @@
605
733
  "output": 128000
606
734
  },
607
735
  "cost": {
608
- "input": 2,
609
- "output": 6
736
+ "input": 0.1,
737
+ "output": 0.1
610
738
  }
611
739
  },
612
- "mistral-medium-2505": {
613
- "id": "mistral-medium-2505",
614
- "name": "Mistral Medium 3",
615
- "description": "Mistral model for multilingual chat, reasoning, and tool-assisted workflows",
616
- "family": "mistral-medium",
617
- "attachment": true,
618
- "reasoning": false,
619
- "tool_call": true,
620
- "temperature": true,
621
- "knowledge": "2025-05",
622
- "release_date": "2025-05-07",
623
- "last_updated": "2025-05-07",
740
+ "mistral-embed": {
741
+ "id": "mistral-embed",
742
+ "name": "Mistral Embed",
743
+ "description": "Embedding model for semantic search, retrieval, clustering, and ranking pipelines",
744
+ "family": "mistral-embed",
745
+ "attachment": false,
746
+ "reasoning": false,
747
+ "tool_call": false,
748
+ "temperature": false,
749
+ "release_date": "2023-12-11",
750
+ "last_updated": "2023-12-11",
624
751
  "modalities": {
625
752
  "input": [
626
- "text",
627
- "image"
753
+ "text"
628
754
  ],
629
755
  "output": [
630
756
  "text"
@@ -632,39 +758,29 @@
632
758
  },
633
759
  "open_weights": false,
634
760
  "limit": {
635
- "context": 131072,
636
- "output": 131072
761
+ "context": 8000,
762
+ "output": 3072
637
763
  },
638
764
  "cost": {
639
- "input": 0.4,
640
- "output": 2
765
+ "input": 0.1,
766
+ "output": 0
641
767
  }
642
768
  },
643
- "mistral-small-latest": {
644
- "id": "mistral-small-latest",
645
- "name": "Mistral Small (latest)",
646
- "description": "Efficient Mistral model for fast chat, extraction, and production assistants",
647
- "family": "mistral-small",
648
- "attachment": true,
649
- "reasoning": true,
650
- "reasoning_options": [
651
- {
652
- "type": "effort",
653
- "values": [
654
- "none",
655
- "high"
656
- ]
657
- }
658
- ],
769
+ "codestral-latest": {
770
+ "id": "codestral-latest",
771
+ "name": "Codestral (latest)",
772
+ "description": "Mistral code model for completions, refactors, and developer IDE workflows",
773
+ "family": "codestral",
774
+ "attachment": false,
775
+ "reasoning": false,
659
776
  "tool_call": true,
660
777
  "temperature": true,
661
- "knowledge": "2025-06",
662
- "release_date": "2026-03-16",
663
- "last_updated": "2026-03-16",
778
+ "knowledge": "2024-10",
779
+ "release_date": "2024-05-29",
780
+ "last_updated": "2025-01-04",
664
781
  "modalities": {
665
782
  "input": [
666
- "text",
667
- "image"
783
+ "text"
668
784
  ],
669
785
  "output": [
670
786
  "text"
@@ -673,25 +789,25 @@
673
789
  "open_weights": true,
674
790
  "limit": {
675
791
  "context": 256000,
676
- "output": 256000
792
+ "output": 4096
677
793
  },
678
794
  "cost": {
679
- "input": 0.15,
680
- "output": 0.6
795
+ "input": 0.3,
796
+ "output": 0.9
681
797
  }
682
798
  },
683
- "devstral-2512": {
684
- "id": "devstral-2512",
685
- "name": "Devstral 2",
686
- "description": "Mistral's coding-agent model for repository work, terminal tasks, and software fixes",
799
+ "devstral-medium-latest": {
800
+ "id": "devstral-medium-latest",
801
+ "name": "Devstral 2 (latest)",
802
+ "description": "Legacy model retained for compatibility with older integrations",
687
803
  "family": "devstral",
688
804
  "attachment": false,
689
805
  "reasoning": false,
690
806
  "tool_call": true,
691
807
  "temperature": true,
692
808
  "knowledge": "2025-12",
693
- "release_date": "2025-12-09",
694
- "last_updated": "2025-12-09",
809
+ "release_date": "2025-12-02",
810
+ "last_updated": "2025-12-02",
695
811
  "modalities": {
696
812
  "input": [
697
813
  "text"
@@ -711,22 +827,21 @@
711
827
  "output": 2
712
828
  }
713
829
  },
714
- "pixtral-12b": {
715
- "id": "pixtral-12b",
716
- "name": "Pixtral 12B",
717
- "description": "Mistral vision-language model for image understanding and multimodal chat",
718
- "family": "pixtral",
719
- "attachment": true,
830
+ "devstral-2512": {
831
+ "id": "devstral-2512",
832
+ "name": "Devstral 2",
833
+ "description": "Mistral's coding-agent model for repository work, terminal tasks, and software fixes",
834
+ "family": "devstral",
835
+ "attachment": false,
720
836
  "reasoning": false,
721
837
  "tool_call": true,
722
838
  "temperature": true,
723
- "knowledge": "2024-09",
724
- "release_date": "2024-09-01",
725
- "last_updated": "2024-09-01",
839
+ "knowledge": "2025-12",
840
+ "release_date": "2025-12-09",
841
+ "last_updated": "2025-12-09",
726
842
  "modalities": {
727
843
  "input": [
728
- "text",
729
- "image"
844
+ "text"
730
845
  ],
731
846
  "output": [
732
847
  "text"
@@ -734,35 +849,27 @@
734
849
  },
735
850
  "open_weights": true,
736
851
  "limit": {
737
- "context": 128000,
738
- "output": 128000
852
+ "context": 262144,
853
+ "output": 262144
739
854
  },
855
+ "status": "deprecated",
740
856
  "cost": {
741
- "input": 0.15,
742
- "output": 0.15
857
+ "input": 0.4,
858
+ "output": 2
743
859
  }
744
860
  },
745
- "mistral-small-2603": {
746
- "id": "mistral-small-2603",
747
- "name": "Mistral Small 4",
748
- "description": "Fast Mistral production model for chat, extraction, and cost-sensitive agents",
749
- "family": "mistral-small",
861
+ "mistral-large-latest": {
862
+ "id": "mistral-large-latest",
863
+ "name": "Mistral Large (latest)",
864
+ "description": "Flagship Mistral model for advanced reasoning, coding, and multilingual work",
865
+ "family": "mistral-large",
750
866
  "attachment": true,
751
- "reasoning": true,
752
- "reasoning_options": [
753
- {
754
- "type": "effort",
755
- "values": [
756
- "none",
757
- "high"
758
- ]
759
- }
760
- ],
867
+ "reasoning": false,
761
868
  "tool_call": true,
762
869
  "temperature": true,
763
- "knowledge": "2025-06",
764
- "release_date": "2026-03-16",
765
- "last_updated": "2026-03-16",
870
+ "knowledge": "2024-11",
871
+ "release_date": "2024-11-01",
872
+ "last_updated": "2025-12-02",
766
873
  "modalities": {
767
874
  "input": [
768
875
  "text",
@@ -774,17 +881,17 @@
774
881
  },
775
882
  "open_weights": true,
776
883
  "limit": {
777
- "context": 256000,
778
- "output": 256000
884
+ "context": 262144,
885
+ "output": 262144
779
886
  },
780
887
  "cost": {
781
- "input": 0.15,
782
- "output": 0.6
888
+ "input": 0.5,
889
+ "output": 1.5
783
890
  }
784
891
  },
785
- "devstral-small-2505": {
786
- "id": "devstral-small-2505",
787
- "name": "Devstral Small 2505",
892
+ "devstral-medium-2507": {
893
+ "id": "devstral-medium-2507",
894
+ "name": "Devstral Medium",
788
895
  "description": "Legacy model retained for compatibility with older integrations",
789
896
  "family": "devstral",
790
897
  "attachment": false,
@@ -792,8 +899,8 @@
792
899
  "tool_call": true,
793
900
  "temperature": true,
794
901
  "knowledge": "2025-05",
795
- "release_date": "2025-05-07",
796
- "last_updated": "2025-05-07",
902
+ "release_date": "2025-07-10",
903
+ "last_updated": "2025-07-10",
797
904
  "modalities": {
798
905
  "input": [
799
906
  "text"
@@ -809,43 +916,13 @@
809
916
  },
810
917
  "status": "deprecated",
811
918
  "cost": {
812
- "input": 0.1,
813
- "output": 0.3
814
- }
815
- },
816
- "mistral-nemo": {
817
- "id": "mistral-nemo",
818
- "name": "Mistral Nemo",
819
- "description": "Efficient Mistral-NVIDIA open model for multilingual chat and local deployment",
820
- "family": "mistral-nemo",
821
- "attachment": false,
822
- "reasoning": false,
823
- "tool_call": true,
824
- "temperature": true,
825
- "knowledge": "2024-07",
826
- "release_date": "2024-07-01",
827
- "last_updated": "2024-07-01",
828
- "modalities": {
829
- "input": [
830
- "text"
831
- ],
832
- "output": [
833
- "text"
834
- ]
835
- },
836
- "open_weights": true,
837
- "limit": {
838
- "context": 128000,
839
- "output": 128000
840
- },
841
- "cost": {
842
- "input": 0.15,
843
- "output": 0.15
919
+ "input": 0.4,
920
+ "output": 2
844
921
  }
845
922
  },
846
- "devstral-medium-2507": {
847
- "id": "devstral-medium-2507",
848
- "name": "Devstral Medium",
923
+ "devstral-small-2505": {
924
+ "id": "devstral-small-2505",
925
+ "name": "Devstral Small 2505",
849
926
  "description": "Legacy model retained for compatibility with older integrations",
850
927
  "family": "devstral",
851
928
  "attachment": false,
@@ -853,8 +930,8 @@
853
930
  "tool_call": true,
854
931
  "temperature": true,
855
932
  "knowledge": "2025-05",
856
- "release_date": "2025-07-10",
857
- "last_updated": "2025-07-10",
933
+ "release_date": "2025-05-07",
934
+ "last_updated": "2025-05-07",
858
935
  "modalities": {
859
936
  "input": [
860
937
  "text"
@@ -870,22 +947,23 @@
870
947
  },
871
948
  "status": "deprecated",
872
949
  "cost": {
873
- "input": 0.4,
874
- "output": 2
950
+ "input": 0.1,
951
+ "output": 0.3
875
952
  }
876
953
  },
877
- "mistral-large-2411": {
878
- "id": "mistral-large-2411",
879
- "name": "Mistral Large 2.1",
880
- "description": "Flagship Mistral model for advanced reasoning, coding, and multilingual work",
881
- "family": "mistral-large",
954
+ "magistral-small": {
955
+ "id": "magistral-small",
956
+ "name": "Magistral Small",
957
+ "description": "Mistral reasoning model for transparent analysis, math, and complex decisions",
958
+ "family": "magistral-small",
882
959
  "attachment": false,
883
- "reasoning": false,
960
+ "reasoning": true,
961
+ "reasoning_options": [],
884
962
  "tool_call": true,
885
963
  "temperature": true,
886
- "knowledge": "2024-11",
887
- "release_date": "2024-11-18",
888
- "last_updated": "2024-11-18",
964
+ "knowledge": "2025-06",
965
+ "release_date": "2025-03-17",
966
+ "last_updated": "2025-03-17",
889
967
  "modalities": {
890
968
  "input": [
891
969
  "text"
@@ -896,26 +974,26 @@
896
974
  },
897
975
  "open_weights": true,
898
976
  "limit": {
899
- "context": 131072,
900
- "output": 16384
977
+ "context": 128000,
978
+ "output": 128000
901
979
  },
902
980
  "cost": {
903
- "input": 2,
904
- "output": 6
981
+ "input": 0.5,
982
+ "output": 1.5
905
983
  }
906
984
  },
907
- "open-mistral-7b": {
908
- "id": "open-mistral-7b",
909
- "name": "Mistral 7B",
910
- "description": "Mistral model for multilingual chat, reasoning, and tool-assisted workflows",
911
- "family": "mistral",
985
+ "open-mistral-nemo": {
986
+ "id": "open-mistral-nemo",
987
+ "name": "Open Mistral Nemo",
988
+ "description": "Legacy model retained for compatibility with older integrations",
989
+ "family": "mistral-nemo",
912
990
  "attachment": false,
913
991
  "reasoning": false,
914
992
  "tool_call": true,
915
993
  "temperature": true,
916
- "knowledge": "2023-12",
917
- "release_date": "2023-09-27",
918
- "last_updated": "2023-09-27",
994
+ "knowledge": "2024-07",
995
+ "release_date": "2024-07-01",
996
+ "last_updated": "2024-07-01",
919
997
  "modalities": {
920
998
  "input": [
921
999
  "text"
@@ -926,29 +1004,31 @@
926
1004
  },
927
1005
  "open_weights": true,
928
1006
  "limit": {
929
- "context": 8000,
930
- "output": 8000
1007
+ "context": 128000,
1008
+ "output": 128000
931
1009
  },
1010
+ "status": "deprecated",
932
1011
  "cost": {
933
- "input": 0.25,
934
- "output": 0.25
1012
+ "input": 0.15,
1013
+ "output": 0.15
935
1014
  }
936
1015
  },
937
- "ministral-3b-latest": {
938
- "id": "ministral-3b-latest",
939
- "name": "Ministral 3B (latest)",
940
- "description": "Compact Mistral model for edge, latency-sensitive, and cost-efficient workloads",
941
- "family": "ministral",
942
- "attachment": false,
1016
+ "mistral-large-2512": {
1017
+ "id": "mistral-large-2512",
1018
+ "name": "Mistral Large 3",
1019
+ "description": "Mistral's largest general model for enterprise agents, coding, and multilingual reasoning",
1020
+ "family": "mistral-large",
1021
+ "attachment": true,
943
1022
  "reasoning": false,
944
1023
  "tool_call": true,
945
1024
  "temperature": true,
946
- "knowledge": "2024-10",
947
- "release_date": "2024-10-01",
948
- "last_updated": "2024-10-04",
1025
+ "knowledge": "2024-11",
1026
+ "release_date": "2024-11-01",
1027
+ "last_updated": "2025-12-02",
949
1028
  "modalities": {
950
1029
  "input": [
951
- "text"
1030
+ "text",
1031
+ "image"
952
1032
  ],
953
1033
  "output": [
954
1034
  "text"
@@ -956,12 +1036,12 @@
956
1036
  },
957
1037
  "open_weights": true,
958
1038
  "limit": {
959
- "context": 128000,
960
- "output": 128000
1039
+ "context": 262144,
1040
+ "output": 262144
961
1041
  },
962
1042
  "cost": {
963
- "input": 0.04,
964
- "output": 0.04
1043
+ "input": 0.5,
1044
+ "output": 1.5
965
1045
  }
966
1046
  }
967
1047
  }