neoctl 0.1.4 → 0.1.6

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 (69) hide show
  1. package/README.md +369 -151
  2. package/dist/agents/smoke-agents.js +21 -4
  3. package/dist/agents/smoke-agents.js.map +1 -1
  4. package/dist/core/query-engine.d.ts +20 -1
  5. package/dist/core/query-engine.js +86 -12
  6. package/dist/core/query-engine.js.map +1 -1
  7. package/dist/core/query.d.ts +2 -1
  8. package/dist/core/query.js +2 -0
  9. package/dist/core/query.js.map +1 -1
  10. package/dist/core/smoke-core-loop.js +19 -3
  11. package/dist/core/smoke-core-loop.js.map +1 -1
  12. package/dist/index.d.ts +0 -1
  13. package/dist/index.js +0 -1
  14. package/dist/index.js.map +1 -1
  15. package/dist/model/communication-logger.d.ts +2 -1
  16. package/dist/model/communication-logger.js +3 -0
  17. package/dist/model/communication-logger.js.map +1 -1
  18. package/dist/model/config.d.ts +7 -4
  19. package/dist/model/config.js +41 -12
  20. package/dist/model/config.js.map +1 -1
  21. package/dist/model/deepseek-adapter.d.ts +29 -0
  22. package/dist/model/deepseek-adapter.js +108 -0
  23. package/dist/model/deepseek-adapter.js.map +1 -0
  24. package/dist/model/env.js +25 -13
  25. package/dist/model/env.js.map +1 -1
  26. package/dist/model/model-metadata.json +677 -677
  27. package/dist/model/openai-adapter.d.ts +1 -1
  28. package/dist/model/openai-chat-mapper.d.ts +3 -1
  29. package/dist/model/openai-chat-mapper.js +26 -8
  30. package/dist/model/openai-chat-mapper.js.map +1 -1
  31. package/dist/model/openai-mappers.d.ts +5 -2
  32. package/dist/model/openai-mappers.js +17 -4
  33. package/dist/model/openai-mappers.js.map +1 -1
  34. package/dist/model/openai-responses-mapper.d.ts +1 -1
  35. package/dist/model/openai-responses-mapper.js +2 -1
  36. package/dist/model/openai-responses-mapper.js.map +1 -1
  37. package/dist/model/provider-factory.js +16 -0
  38. package/dist/model/provider-factory.js.map +1 -1
  39. package/dist/model/smoke-deepseek-mapper.d.ts +1 -0
  40. package/dist/model/smoke-deepseek-mapper.js +65 -0
  41. package/dist/model/smoke-deepseek-mapper.js.map +1 -0
  42. package/dist/model/smoke-openai.js +1 -1
  43. package/dist/model/smoke-openai.js.map +1 -1
  44. package/dist/model/smoke-responses-mapper.js +6 -6
  45. package/dist/model/smoke-responses-mapper.js.map +1 -1
  46. package/dist/repl/commands.d.ts +5 -0
  47. package/dist/repl/commands.js +6 -0
  48. package/dist/repl/commands.js.map +1 -1
  49. package/dist/repl/index.js +542 -40
  50. package/dist/repl/index.js.map +1 -1
  51. package/dist/repl/render.js +0 -2
  52. package/dist/repl/render.js.map +1 -1
  53. package/dist/repl/status-line.d.ts +0 -1
  54. package/dist/repl/status-line.js +27 -34
  55. package/dist/repl/status-line.js.map +1 -1
  56. package/dist/session/session-export.d.ts +33 -0
  57. package/dist/session/session-export.js +351 -0
  58. package/dist/session/session-export.js.map +1 -0
  59. package/dist/session/smoke-session.js +22 -1
  60. package/dist/session/smoke-session.js.map +1 -1
  61. package/dist/skills/smoke-skills.js +1 -1
  62. package/dist/tools/builtins/search-providers.d.ts +15 -1
  63. package/dist/tools/builtins/search-providers.js +195 -1
  64. package/dist/tools/builtins/search-providers.js.map +1 -1
  65. package/dist/tools/builtins/search-tool.js +2 -2
  66. package/dist/tools/builtins/search-tool.js.map +1 -1
  67. package/dist/tools/smoke-tool-system.js +43 -9
  68. package/dist/tools/smoke-tool-system.js.map +1 -1
  69. package/package.json +50 -49
@@ -1,677 +1,677 @@
1
- {
2
- "updatedAt": "2026-05-08",
3
- "notes": [
4
- "Static model metadata used for local REPL telemetry. Values are best-effort and should be refreshed when providers update model cards.",
5
- "MODEL_CONTEXT_WINDOW_TOKENS or OPENAI_CONTEXT_WINDOW_TOKENS overrides contextWindowTokens at runtime.",
6
- "modelIds are exact official model IDs/aliases from provider documentation; matching is direct and does not use regex.",
7
- "imageInput indicates whether provider documentation lists image input / vision support for the model.",
8
- "reasoningEfforts lists the exact reasoning.effort values the /model command may set; omitted/empty means no supported effort enum is configured for that model."
9
- ],
10
- "sources": {
11
- "openai-models": "https://platform.openai.com/docs/models",
12
- "anthropic-models": "https://docs.anthropic.com/en/docs/about-claude/models/overview",
13
- "anthropic-context-windows": "https://docs.anthropic.com/en/docs/build-with-claude/context-windows",
14
- "gemini-models": "https://ai.google.dev/gemini-api/docs/models",
15
- "deepseek-pricing": "https://api-docs.deepseek.com/quick_start/pricing/",
16
- "deepseek-models": "https://api-docs.deepseek.com/quick_start/parameter_settings/",
17
- "mistral-known-limitations": "https://docs.mistral.ai/resources/known-limitations",
18
- "anthropic-vision": "https://docs.anthropic.com/en/docs/build-with-claude/vision",
19
- "mistral-vision": "https://docs.mistral.ai/capabilities/vision",
20
- "openai-reasoning": "https://developers.openai.com/api/docs/guides/reasoning",
21
- "deepseek-thinking-mode": "https://api-docs.deepseek.com/guides/thinking_mode"
22
- },
23
- "models": [
24
- {
25
- "id": "gpt-5.5",
26
- "provider": "openai",
27
- "modelIds": [
28
- "gpt-5.5"
29
- ],
30
- "contextWindowTokens": 1050000,
31
- "maxOutputTokens": 128000,
32
- "reasoning": true,
33
- "imageInput": true,
34
- "source": "openai-models",
35
- "reasoningEfforts": [
36
- "none",
37
- "low",
38
- "medium",
39
- "high",
40
- "xhigh"
41
- ]
42
- },
43
- {
44
- "id": "gpt-5.5-pro",
45
- "provider": "openai",
46
- "modelIds": [
47
- "gpt-5.5-pro"
48
- ],
49
- "contextWindowTokens": 1050000,
50
- "maxOutputTokens": 128000,
51
- "reasoning": true,
52
- "imageInput": true,
53
- "source": "openai-models",
54
- "reasoningEfforts": [
55
- "none",
56
- "low",
57
- "medium",
58
- "high",
59
- "xhigh"
60
- ]
61
- },
62
- {
63
- "id": "gpt-5.4",
64
- "provider": "openai",
65
- "modelIds": [
66
- "gpt-5.4"
67
- ],
68
- "contextWindowTokens": 1050000,
69
- "maxOutputTokens": 128000,
70
- "reasoning": true,
71
- "imageInput": true,
72
- "source": "openai-models",
73
- "reasoningEfforts": [
74
- "none",
75
- "low",
76
- "medium",
77
- "high",
78
- "xhigh"
79
- ]
80
- },
81
- {
82
- "id": "gpt-5.4-mini",
83
- "provider": "openai",
84
- "modelIds": [
85
- "gpt-5.4-mini"
86
- ],
87
- "contextWindowTokens": 400000,
88
- "maxOutputTokens": 128000,
89
- "reasoning": true,
90
- "imageInput": true,
91
- "source": "openai-models",
92
- "reasoningEfforts": [
93
- "none",
94
- "low",
95
- "medium",
96
- "high",
97
- "xhigh"
98
- ]
99
- },
100
- {
101
- "id": "gpt-5.4-nano",
102
- "provider": "openai",
103
- "modelIds": [
104
- "gpt-5.4-nano"
105
- ],
106
- "contextWindowTokens": 400000,
107
- "maxOutputTokens": 128000,
108
- "reasoning": true,
109
- "imageInput": true,
110
- "source": "openai-models",
111
- "reasoningEfforts": [
112
- "none",
113
- "low",
114
- "medium",
115
- "high",
116
- "xhigh"
117
- ]
118
- },
119
- {
120
- "id": "gpt-5.2",
121
- "provider": "openai",
122
- "modelIds": [
123
- "gpt-5.2"
124
- ],
125
- "contextWindowTokens": 400000,
126
- "maxOutputTokens": 128000,
127
- "knowledgeCutoff": "2025-08-31",
128
- "reasoning": true,
129
- "imageInput": true,
130
- "source": "openai-models",
131
- "reasoningEfforts": [
132
- "none",
133
- "low",
134
- "medium",
135
- "high",
136
- "xhigh"
137
- ]
138
- },
139
- {
140
- "id": "gpt-5.2-codex",
141
- "provider": "openai",
142
- "modelIds": [
143
- "gpt-5.2-codex"
144
- ],
145
- "contextWindowTokens": 400000,
146
- "maxOutputTokens": 128000,
147
- "knowledgeCutoff": "2025-08-31",
148
- "reasoning": true,
149
- "imageInput": true,
150
- "source": "openai-models",
151
- "reasoningEfforts": [
152
- "low",
153
- "medium",
154
- "high",
155
- "xhigh"
156
- ]
157
- },
158
- {
159
- "id": "gpt-5.2-pro",
160
- "provider": "openai",
161
- "modelIds": [
162
- "gpt-5.2-pro"
163
- ],
164
- "contextWindowTokens": 400000,
165
- "maxOutputTokens": 128000,
166
- "reasoning": true,
167
- "imageInput": true,
168
- "source": "openai-models",
169
- "reasoningEfforts": [
170
- "none",
171
- "low",
172
- "medium",
173
- "high",
174
- "xhigh"
175
- ]
176
- },
177
- {
178
- "id": "gpt-5.1",
179
- "provider": "openai",
180
- "modelIds": [
181
- "gpt-5.1"
182
- ],
183
- "contextWindowTokens": 400000,
184
- "maxOutputTokens": 128000,
185
- "knowledgeCutoff": "2024-09-30",
186
- "reasoning": true,
187
- "imageInput": true,
188
- "source": "openai-models",
189
- "reasoningEfforts": [
190
- "none",
191
- "low",
192
- "medium",
193
- "high"
194
- ]
195
- },
196
- {
197
- "id": "gpt-5.1-codex",
198
- "provider": "openai",
199
- "modelIds": [
200
- "gpt-5.1-codex"
201
- ],
202
- "contextWindowTokens": 400000,
203
- "maxOutputTokens": 128000,
204
- "knowledgeCutoff": "2024-09-30",
205
- "reasoning": true,
206
- "imageInput": true,
207
- "source": "openai-models",
208
- "reasoningEfforts": [
209
- "low",
210
- "medium",
211
- "high"
212
- ]
213
- },
214
- {
215
- "id": "gpt-5.1-codex-max",
216
- "provider": "openai",
217
- "modelIds": [
218
- "gpt-5.1-codex-max"
219
- ],
220
- "contextWindowTokens": 400000,
221
- "maxOutputTokens": 128000,
222
- "knowledgeCutoff": "2024-09-30",
223
- "reasoning": true,
224
- "imageInput": true,
225
- "source": "openai-models",
226
- "reasoningEfforts": [
227
- "low",
228
- "medium",
229
- "high"
230
- ]
231
- },
232
- {
233
- "id": "gpt-5.1-codex-mini",
234
- "provider": "openai",
235
- "modelIds": [
236
- "gpt-5.1-codex-mini"
237
- ],
238
- "contextWindowTokens": 400000,
239
- "maxOutputTokens": 128000,
240
- "knowledgeCutoff": "2024-09-30",
241
- "reasoning": true,
242
- "imageInput": true,
243
- "source": "openai-models",
244
- "reasoningEfforts": [
245
- "low",
246
- "medium",
247
- "high"
248
- ]
249
- },
250
- {
251
- "id": "gpt-5",
252
- "provider": "openai",
253
- "modelIds": [
254
- "gpt-5"
255
- ],
256
- "contextWindowTokens": 400000,
257
- "maxOutputTokens": 128000,
258
- "reasoning": true,
259
- "imageInput": true,
260
- "source": "openai-models",
261
- "reasoningEfforts": [
262
- "minimal",
263
- "low",
264
- "medium",
265
- "high"
266
- ]
267
- },
268
- {
269
- "id": "gpt-5-codex",
270
- "provider": "openai",
271
- "modelIds": [
272
- "gpt-5-codex"
273
- ],
274
- "contextWindowTokens": 400000,
275
- "maxOutputTokens": 128000,
276
- "reasoning": true,
277
- "imageInput": true,
278
- "source": "openai-models",
279
- "reasoningEfforts": [
280
- "minimal",
281
- "low",
282
- "medium",
283
- "high"
284
- ]
285
- },
286
- {
287
- "id": "gpt-5-mini",
288
- "provider": "openai",
289
- "modelIds": [
290
- "gpt-5-mini"
291
- ],
292
- "contextWindowTokens": 400000,
293
- "maxOutputTokens": 128000,
294
- "reasoning": true,
295
- "imageInput": true,
296
- "source": "openai-models",
297
- "reasoningEfforts": [
298
- "minimal",
299
- "low",
300
- "medium",
301
- "high"
302
- ]
303
- },
304
- {
305
- "id": "gpt-5-nano",
306
- "provider": "openai",
307
- "modelIds": [
308
- "gpt-5-nano"
309
- ],
310
- "contextWindowTokens": 400000,
311
- "maxOutputTokens": 128000,
312
- "reasoning": true,
313
- "imageInput": true,
314
- "source": "openai-models",
315
- "reasoningEfforts": [
316
- "minimal",
317
- "low",
318
- "medium",
319
- "high"
320
- ]
321
- },
322
- {
323
- "id": "gpt-5-pro",
324
- "provider": "openai",
325
- "modelIds": [
326
- "gpt-5-pro"
327
- ],
328
- "contextWindowTokens": 400000,
329
- "maxOutputTokens": 272000,
330
- "reasoning": true,
331
- "imageInput": true,
332
- "source": "openai-models",
333
- "reasoningEfforts": [
334
- "minimal",
335
- "low",
336
- "medium",
337
- "high"
338
- ]
339
- },
340
- {
341
- "id": "gpt-4.1",
342
- "provider": "openai",
343
- "modelIds": [
344
- "gpt-4.1"
345
- ],
346
- "contextWindowTokens": 1047576,
347
- "maxOutputTokens": 32768,
348
- "reasoning": false,
349
- "imageInput": true,
350
- "source": "openai-models"
351
- },
352
- {
353
- "id": "gpt-4.1-mini",
354
- "provider": "openai",
355
- "modelIds": [
356
- "gpt-4.1-mini"
357
- ],
358
- "contextWindowTokens": 1047576,
359
- "maxOutputTokens": 32768,
360
- "reasoning": false,
361
- "imageInput": true,
362
- "source": "openai-models"
363
- },
364
- {
365
- "id": "gpt-4.1-nano",
366
- "provider": "openai",
367
- "modelIds": [
368
- "gpt-4.1-nano"
369
- ],
370
- "contextWindowTokens": 1047576,
371
- "maxOutputTokens": 32768,
372
- "reasoning": false,
373
- "imageInput": true,
374
- "source": "openai-models"
375
- },
376
- {
377
- "id": "gpt-4o",
378
- "provider": "openai",
379
- "modelIds": [
380
- "gpt-4o"
381
- ],
382
- "contextWindowTokens": 128000,
383
- "maxOutputTokens": 16384,
384
- "reasoning": false,
385
- "imageInput": true,
386
- "source": "openai-models"
387
- },
388
- {
389
- "id": "gpt-4o-mini",
390
- "provider": "openai",
391
- "modelIds": [
392
- "gpt-4o-mini"
393
- ],
394
- "contextWindowTokens": 128000,
395
- "maxOutputTokens": 16384,
396
- "reasoning": false,
397
- "imageInput": true,
398
- "source": "openai-models"
399
- },
400
- {
401
- "id": "chatgpt-4o-latest",
402
- "provider": "openai",
403
- "modelIds": [
404
- "chatgpt-4o-latest"
405
- ],
406
- "contextWindowTokens": 128000,
407
- "maxOutputTokens": 16384,
408
- "reasoning": false,
409
- "imageInput": true,
410
- "source": "openai-models"
411
- },
412
- {
413
- "id": "gpt-4o-search-preview",
414
- "provider": "openai",
415
- "modelIds": [
416
- "gpt-4o-search-preview"
417
- ],
418
- "contextWindowTokens": 128000,
419
- "maxOutputTokens": 16384,
420
- "reasoning": false,
421
- "imageInput": true,
422
- "source": "openai-models"
423
- },
424
- {
425
- "id": "gpt-4o-mini-search-preview",
426
- "provider": "openai",
427
- "modelIds": [
428
- "gpt-4o-mini-search-preview"
429
- ],
430
- "contextWindowTokens": 128000,
431
- "maxOutputTokens": 16384,
432
- "reasoning": false,
433
- "imageInput": true,
434
- "source": "openai-models"
435
- },
436
- {
437
- "id": "o4-mini",
438
- "provider": "openai",
439
- "modelIds": [
440
- "o4-mini"
441
- ],
442
- "contextWindowTokens": 200000,
443
- "maxOutputTokens": 100000,
444
- "reasoning": true,
445
- "imageInput": true,
446
- "source": "openai-models",
447
- "reasoningEfforts": [
448
- "low",
449
- "medium",
450
- "high"
451
- ]
452
- },
453
- {
454
- "id": "o4-mini-deep-research",
455
- "provider": "openai",
456
- "modelIds": [
457
- "o4-mini-deep-research"
458
- ],
459
- "contextWindowTokens": 200000,
460
- "maxOutputTokens": 100000,
461
- "reasoning": true,
462
- "imageInput": true,
463
- "source": "openai-models",
464
- "reasoningEfforts": [
465
- "low",
466
- "medium",
467
- "high"
468
- ]
469
- },
470
- {
471
- "id": "gpt-4",
472
- "provider": "openai",
473
- "modelIds": [
474
- "gpt-4"
475
- ],
476
- "contextWindowTokens": 8192,
477
- "maxOutputTokens": 8192,
478
- "reasoning": false,
479
- "imageInput": false,
480
- "source": "openai-models"
481
- },
482
- {
483
- "id": "claude-opus-4-7",
484
- "provider": "anthropic",
485
- "modelIds": [
486
- "claude-opus-4-7"
487
- ],
488
- "contextWindowTokens": 1000000,
489
- "maxOutputTokens": 128000,
490
- "reasoning": true,
491
- "imageInput": true,
492
- "source": "anthropic-models"
493
- },
494
- {
495
- "id": "claude-sonnet-4-6",
496
- "provider": "anthropic",
497
- "modelIds": [
498
- "claude-sonnet-4-6"
499
- ],
500
- "contextWindowTokens": 1000000,
501
- "maxOutputTokens": 64000,
502
- "reasoning": true,
503
- "imageInput": true,
504
- "source": "anthropic-models"
505
- },
506
- {
507
- "id": "claude-haiku-4-5",
508
- "provider": "anthropic",
509
- "modelIds": [
510
- "claude-haiku-4-5",
511
- "claude-haiku-4-5-20251001"
512
- ],
513
- "contextWindowTokens": 200000,
514
- "maxOutputTokens": 64000,
515
- "reasoning": true,
516
- "imageInput": true,
517
- "source": "anthropic-models"
518
- },
519
- {
520
- "id": "gemini-3.1-pro-preview",
521
- "provider": "google",
522
- "modelIds": [
523
- "gemini-3.1-pro-preview",
524
- "gemini-3.1-pro-preview-customtools"
525
- ],
526
- "contextWindowTokens": 1048576,
527
- "maxOutputTokens": 65536,
528
- "reasoning": true,
529
- "imageInput": true,
530
- "source": "gemini-models"
531
- },
532
- {
533
- "id": "gemini-3-flash-preview",
534
- "provider": "google",
535
- "modelIds": [
536
- "gemini-3-flash-preview"
537
- ],
538
- "contextWindowTokens": 1048576,
539
- "maxOutputTokens": 65536,
540
- "reasoning": true,
541
- "imageInput": true,
542
- "source": "gemini-models"
543
- },
544
- {
545
- "id": "gemini-2.5-pro",
546
- "provider": "google",
547
- "modelIds": [
548
- "gemini-2.5-pro"
549
- ],
550
- "contextWindowTokens": 1048576,
551
- "maxOutputTokens": 65536,
552
- "reasoning": true,
553
- "imageInput": true,
554
- "source": "gemini-models"
555
- },
556
- {
557
- "id": "gemini-2.5-flash",
558
- "provider": "google",
559
- "modelIds": [
560
- "gemini-2.5-flash"
561
- ],
562
- "contextWindowTokens": 1048576,
563
- "maxOutputTokens": 65536,
564
- "reasoning": true,
565
- "imageInput": true,
566
- "source": "gemini-models"
567
- },
568
- {
569
- "id": "gemini-2.5-flash-lite",
570
- "provider": "google",
571
- "modelIds": [
572
- "gemini-2.5-flash-lite"
573
- ],
574
- "contextWindowTokens": 1048576,
575
- "maxOutputTokens": 65536,
576
- "reasoning": true,
577
- "imageInput": true,
578
- "source": "gemini-models"
579
- },
580
- {
581
- "id": "gemini-2.0-flash",
582
- "provider": "google",
583
- "modelIds": [
584
- "gemini-2.0-flash"
585
- ],
586
- "contextWindowTokens": 1048576,
587
- "maxOutputTokens": 8192,
588
- "reasoning": true,
589
- "imageInput": true,
590
- "source": "gemini-models"
591
- },
592
- {
593
- "id": "deepseek-v4-pro",
594
- "provider": "deepseek",
595
- "modelIds": [
596
- "deepseek-v4-pro"
597
- ],
598
- "contextWindowTokens": 1000000,
599
- "maxOutputTokens": 384000,
600
- "reasoning": true,
601
- "imageInput": false,
602
- "source": "deepseek-pricing",
603
- "reasoningEfforts": [
604
- "high",
605
- "max"
606
- ]
607
- },
608
- {
609
- "id": "deepseek-v4-flash",
610
- "provider": "deepseek",
611
- "modelIds": [
612
- "deepseek-v4-flash"
613
- ],
614
- "contextWindowTokens": 1000000,
615
- "maxOutputTokens": 384000,
616
- "reasoning": true,
617
- "imageInput": false,
618
- "source": "deepseek-pricing",
619
- "reasoningEfforts": [
620
- "high",
621
- "max"
622
- ]
623
- },
624
- {
625
- "id": "deepseek-chat",
626
- "provider": "deepseek",
627
- "modelIds": [
628
- "deepseek-chat"
629
- ],
630
- "contextWindowTokens": 1000000,
631
- "maxOutputTokens": 384000,
632
- "reasoning": false,
633
- "imageInput": false,
634
- "source": "deepseek-pricing",
635
- "notes": "Compatibility alias for non-thinking mode of deepseek-v4-flash."
636
- },
637
- {
638
- "id": "deepseek-reasoner",
639
- "provider": "deepseek",
640
- "modelIds": [
641
- "deepseek-reasoner"
642
- ],
643
- "contextWindowTokens": 1000000,
644
- "maxOutputTokens": 384000,
645
- "reasoning": true,
646
- "imageInput": false,
647
- "source": "deepseek-pricing",
648
- "notes": "Compatibility alias for thinking mode of deepseek-v4-flash.",
649
- "reasoningEfforts": [
650
- "high",
651
- "max"
652
- ]
653
- },
654
- {
655
- "id": "mistral-large-latest",
656
- "provider": "mistral",
657
- "modelIds": [
658
- "mistral-large-latest"
659
- ],
660
- "contextWindowTokens": 131072,
661
- "reasoning": false,
662
- "imageInput": true,
663
- "source": "mistral-known-limitations"
664
- },
665
- {
666
- "id": "mistral-small-latest",
667
- "provider": "mistral",
668
- "modelIds": [
669
- "mistral-small-latest"
670
- ],
671
- "contextWindowTokens": 32768,
672
- "reasoning": false,
673
- "imageInput": true,
674
- "source": "mistral-known-limitations"
675
- }
676
- ]
677
- }
1
+ {
2
+ "updatedAt": "2026-05-08",
3
+ "notes": [
4
+ "Static model metadata used for local REPL telemetry. Values are best-effort and should be refreshed when providers update model cards.",
5
+ "MODEL_CONTEXT_WINDOW_TOKENS or OPENAI_CONTEXT_WINDOW_TOKENS overrides contextWindowTokens at runtime.",
6
+ "modelIds are exact official model IDs/aliases from provider documentation; matching is direct and does not use regex.",
7
+ "imageInput indicates whether provider documentation lists image input / vision support for the model.",
8
+ "reasoningEfforts lists the exact reasoning.effort values the /model command may set; omitted/empty means no supported effort enum is configured for that model."
9
+ ],
10
+ "sources": {
11
+ "openai-models": "https://platform.openai.com/docs/models",
12
+ "anthropic-models": "https://docs.anthropic.com/en/docs/about-claude/models/overview",
13
+ "anthropic-context-windows": "https://docs.anthropic.com/en/docs/build-with-claude/context-windows",
14
+ "gemini-models": "https://ai.google.dev/gemini-api/docs/models",
15
+ "deepseek-pricing": "https://api-docs.deepseek.com/quick_start/pricing/",
16
+ "deepseek-models": "https://api-docs.deepseek.com/quick_start/parameter_settings/",
17
+ "mistral-known-limitations": "https://docs.mistral.ai/resources/known-limitations",
18
+ "anthropic-vision": "https://docs.anthropic.com/en/docs/build-with-claude/vision",
19
+ "mistral-vision": "https://docs.mistral.ai/capabilities/vision",
20
+ "openai-reasoning": "https://developers.openai.com/api/docs/guides/reasoning",
21
+ "deepseek-thinking-mode": "https://api-docs.deepseek.com/guides/thinking_mode"
22
+ },
23
+ "models": [
24
+ {
25
+ "id": "gpt-5.5",
26
+ "provider": "openai",
27
+ "modelIds": [
28
+ "gpt-5.5"
29
+ ],
30
+ "contextWindowTokens": 1050000,
31
+ "maxOutputTokens": 128000,
32
+ "reasoning": true,
33
+ "imageInput": true,
34
+ "source": "openai-models",
35
+ "reasoningEfforts": [
36
+ "none",
37
+ "low",
38
+ "medium",
39
+ "high",
40
+ "xhigh"
41
+ ]
42
+ },
43
+ {
44
+ "id": "gpt-5.5-pro",
45
+ "provider": "openai",
46
+ "modelIds": [
47
+ "gpt-5.5-pro"
48
+ ],
49
+ "contextWindowTokens": 1050000,
50
+ "maxOutputTokens": 128000,
51
+ "reasoning": true,
52
+ "imageInput": true,
53
+ "source": "openai-models",
54
+ "reasoningEfforts": [
55
+ "none",
56
+ "low",
57
+ "medium",
58
+ "high",
59
+ "xhigh"
60
+ ]
61
+ },
62
+ {
63
+ "id": "gpt-5.4",
64
+ "provider": "openai",
65
+ "modelIds": [
66
+ "gpt-5.4"
67
+ ],
68
+ "contextWindowTokens": 1050000,
69
+ "maxOutputTokens": 128000,
70
+ "reasoning": true,
71
+ "imageInput": true,
72
+ "source": "openai-models",
73
+ "reasoningEfforts": [
74
+ "none",
75
+ "low",
76
+ "medium",
77
+ "high",
78
+ "xhigh"
79
+ ]
80
+ },
81
+ {
82
+ "id": "gpt-5.4-mini",
83
+ "provider": "openai",
84
+ "modelIds": [
85
+ "gpt-5.4-mini"
86
+ ],
87
+ "contextWindowTokens": 400000,
88
+ "maxOutputTokens": 128000,
89
+ "reasoning": true,
90
+ "imageInput": true,
91
+ "source": "openai-models",
92
+ "reasoningEfforts": [
93
+ "none",
94
+ "low",
95
+ "medium",
96
+ "high",
97
+ "xhigh"
98
+ ]
99
+ },
100
+ {
101
+ "id": "gpt-5.4-nano",
102
+ "provider": "openai",
103
+ "modelIds": [
104
+ "gpt-5.4-nano"
105
+ ],
106
+ "contextWindowTokens": 400000,
107
+ "maxOutputTokens": 128000,
108
+ "reasoning": true,
109
+ "imageInput": true,
110
+ "source": "openai-models",
111
+ "reasoningEfforts": [
112
+ "none",
113
+ "low",
114
+ "medium",
115
+ "high",
116
+ "xhigh"
117
+ ]
118
+ },
119
+ {
120
+ "id": "gpt-5.2",
121
+ "provider": "openai",
122
+ "modelIds": [
123
+ "gpt-5.2"
124
+ ],
125
+ "contextWindowTokens": 400000,
126
+ "maxOutputTokens": 128000,
127
+ "knowledgeCutoff": "2025-08-31",
128
+ "reasoning": true,
129
+ "imageInput": true,
130
+ "source": "openai-models",
131
+ "reasoningEfforts": [
132
+ "none",
133
+ "low",
134
+ "medium",
135
+ "high",
136
+ "xhigh"
137
+ ]
138
+ },
139
+ {
140
+ "id": "gpt-5.2-codex",
141
+ "provider": "openai",
142
+ "modelIds": [
143
+ "gpt-5.2-codex"
144
+ ],
145
+ "contextWindowTokens": 400000,
146
+ "maxOutputTokens": 128000,
147
+ "knowledgeCutoff": "2025-08-31",
148
+ "reasoning": true,
149
+ "imageInput": true,
150
+ "source": "openai-models",
151
+ "reasoningEfforts": [
152
+ "low",
153
+ "medium",
154
+ "high",
155
+ "xhigh"
156
+ ]
157
+ },
158
+ {
159
+ "id": "gpt-5.2-pro",
160
+ "provider": "openai",
161
+ "modelIds": [
162
+ "gpt-5.2-pro"
163
+ ],
164
+ "contextWindowTokens": 400000,
165
+ "maxOutputTokens": 128000,
166
+ "reasoning": true,
167
+ "imageInput": true,
168
+ "source": "openai-models",
169
+ "reasoningEfforts": [
170
+ "none",
171
+ "low",
172
+ "medium",
173
+ "high",
174
+ "xhigh"
175
+ ]
176
+ },
177
+ {
178
+ "id": "gpt-5.1",
179
+ "provider": "openai",
180
+ "modelIds": [
181
+ "gpt-5.1"
182
+ ],
183
+ "contextWindowTokens": 400000,
184
+ "maxOutputTokens": 128000,
185
+ "knowledgeCutoff": "2024-09-30",
186
+ "reasoning": true,
187
+ "imageInput": true,
188
+ "source": "openai-models",
189
+ "reasoningEfforts": [
190
+ "none",
191
+ "low",
192
+ "medium",
193
+ "high"
194
+ ]
195
+ },
196
+ {
197
+ "id": "gpt-5.1-codex",
198
+ "provider": "openai",
199
+ "modelIds": [
200
+ "gpt-5.1-codex"
201
+ ],
202
+ "contextWindowTokens": 400000,
203
+ "maxOutputTokens": 128000,
204
+ "knowledgeCutoff": "2024-09-30",
205
+ "reasoning": true,
206
+ "imageInput": true,
207
+ "source": "openai-models",
208
+ "reasoningEfforts": [
209
+ "low",
210
+ "medium",
211
+ "high"
212
+ ]
213
+ },
214
+ {
215
+ "id": "gpt-5.1-codex-max",
216
+ "provider": "openai",
217
+ "modelIds": [
218
+ "gpt-5.1-codex-max"
219
+ ],
220
+ "contextWindowTokens": 400000,
221
+ "maxOutputTokens": 128000,
222
+ "knowledgeCutoff": "2024-09-30",
223
+ "reasoning": true,
224
+ "imageInput": true,
225
+ "source": "openai-models",
226
+ "reasoningEfforts": [
227
+ "low",
228
+ "medium",
229
+ "high"
230
+ ]
231
+ },
232
+ {
233
+ "id": "gpt-5.1-codex-mini",
234
+ "provider": "openai",
235
+ "modelIds": [
236
+ "gpt-5.1-codex-mini"
237
+ ],
238
+ "contextWindowTokens": 400000,
239
+ "maxOutputTokens": 128000,
240
+ "knowledgeCutoff": "2024-09-30",
241
+ "reasoning": true,
242
+ "imageInput": true,
243
+ "source": "openai-models",
244
+ "reasoningEfforts": [
245
+ "low",
246
+ "medium",
247
+ "high"
248
+ ]
249
+ },
250
+ {
251
+ "id": "gpt-5",
252
+ "provider": "openai",
253
+ "modelIds": [
254
+ "gpt-5"
255
+ ],
256
+ "contextWindowTokens": 400000,
257
+ "maxOutputTokens": 128000,
258
+ "reasoning": true,
259
+ "imageInput": true,
260
+ "source": "openai-models",
261
+ "reasoningEfforts": [
262
+ "minimal",
263
+ "low",
264
+ "medium",
265
+ "high"
266
+ ]
267
+ },
268
+ {
269
+ "id": "gpt-5-codex",
270
+ "provider": "openai",
271
+ "modelIds": [
272
+ "gpt-5-codex"
273
+ ],
274
+ "contextWindowTokens": 400000,
275
+ "maxOutputTokens": 128000,
276
+ "reasoning": true,
277
+ "imageInput": true,
278
+ "source": "openai-models",
279
+ "reasoningEfforts": [
280
+ "minimal",
281
+ "low",
282
+ "medium",
283
+ "high"
284
+ ]
285
+ },
286
+ {
287
+ "id": "gpt-5-mini",
288
+ "provider": "openai",
289
+ "modelIds": [
290
+ "gpt-5-mini"
291
+ ],
292
+ "contextWindowTokens": 400000,
293
+ "maxOutputTokens": 128000,
294
+ "reasoning": true,
295
+ "imageInput": true,
296
+ "source": "openai-models",
297
+ "reasoningEfforts": [
298
+ "minimal",
299
+ "low",
300
+ "medium",
301
+ "high"
302
+ ]
303
+ },
304
+ {
305
+ "id": "gpt-5-nano",
306
+ "provider": "openai",
307
+ "modelIds": [
308
+ "gpt-5-nano"
309
+ ],
310
+ "contextWindowTokens": 400000,
311
+ "maxOutputTokens": 128000,
312
+ "reasoning": true,
313
+ "imageInput": true,
314
+ "source": "openai-models",
315
+ "reasoningEfforts": [
316
+ "minimal",
317
+ "low",
318
+ "medium",
319
+ "high"
320
+ ]
321
+ },
322
+ {
323
+ "id": "gpt-5-pro",
324
+ "provider": "openai",
325
+ "modelIds": [
326
+ "gpt-5-pro"
327
+ ],
328
+ "contextWindowTokens": 400000,
329
+ "maxOutputTokens": 272000,
330
+ "reasoning": true,
331
+ "imageInput": true,
332
+ "source": "openai-models",
333
+ "reasoningEfforts": [
334
+ "minimal",
335
+ "low",
336
+ "medium",
337
+ "high"
338
+ ]
339
+ },
340
+ {
341
+ "id": "gpt-4.1",
342
+ "provider": "openai",
343
+ "modelIds": [
344
+ "gpt-4.1"
345
+ ],
346
+ "contextWindowTokens": 1047576,
347
+ "maxOutputTokens": 32768,
348
+ "reasoning": false,
349
+ "imageInput": true,
350
+ "source": "openai-models"
351
+ },
352
+ {
353
+ "id": "gpt-4.1-mini",
354
+ "provider": "openai",
355
+ "modelIds": [
356
+ "gpt-4.1-mini"
357
+ ],
358
+ "contextWindowTokens": 1047576,
359
+ "maxOutputTokens": 32768,
360
+ "reasoning": false,
361
+ "imageInput": true,
362
+ "source": "openai-models"
363
+ },
364
+ {
365
+ "id": "gpt-4.1-nano",
366
+ "provider": "openai",
367
+ "modelIds": [
368
+ "gpt-4.1-nano"
369
+ ],
370
+ "contextWindowTokens": 1047576,
371
+ "maxOutputTokens": 32768,
372
+ "reasoning": false,
373
+ "imageInput": true,
374
+ "source": "openai-models"
375
+ },
376
+ {
377
+ "id": "gpt-4o",
378
+ "provider": "openai",
379
+ "modelIds": [
380
+ "gpt-4o"
381
+ ],
382
+ "contextWindowTokens": 128000,
383
+ "maxOutputTokens": 16384,
384
+ "reasoning": false,
385
+ "imageInput": true,
386
+ "source": "openai-models"
387
+ },
388
+ {
389
+ "id": "gpt-4o-mini",
390
+ "provider": "openai",
391
+ "modelIds": [
392
+ "gpt-4o-mini"
393
+ ],
394
+ "contextWindowTokens": 128000,
395
+ "maxOutputTokens": 16384,
396
+ "reasoning": false,
397
+ "imageInput": true,
398
+ "source": "openai-models"
399
+ },
400
+ {
401
+ "id": "chatgpt-4o-latest",
402
+ "provider": "openai",
403
+ "modelIds": [
404
+ "chatgpt-4o-latest"
405
+ ],
406
+ "contextWindowTokens": 128000,
407
+ "maxOutputTokens": 16384,
408
+ "reasoning": false,
409
+ "imageInput": true,
410
+ "source": "openai-models"
411
+ },
412
+ {
413
+ "id": "gpt-4o-search-preview",
414
+ "provider": "openai",
415
+ "modelIds": [
416
+ "gpt-4o-search-preview"
417
+ ],
418
+ "contextWindowTokens": 128000,
419
+ "maxOutputTokens": 16384,
420
+ "reasoning": false,
421
+ "imageInput": true,
422
+ "source": "openai-models"
423
+ },
424
+ {
425
+ "id": "gpt-4o-mini-search-preview",
426
+ "provider": "openai",
427
+ "modelIds": [
428
+ "gpt-4o-mini-search-preview"
429
+ ],
430
+ "contextWindowTokens": 128000,
431
+ "maxOutputTokens": 16384,
432
+ "reasoning": false,
433
+ "imageInput": true,
434
+ "source": "openai-models"
435
+ },
436
+ {
437
+ "id": "o4-mini",
438
+ "provider": "openai",
439
+ "modelIds": [
440
+ "o4-mini"
441
+ ],
442
+ "contextWindowTokens": 200000,
443
+ "maxOutputTokens": 100000,
444
+ "reasoning": true,
445
+ "imageInput": true,
446
+ "source": "openai-models",
447
+ "reasoningEfforts": [
448
+ "low",
449
+ "medium",
450
+ "high"
451
+ ]
452
+ },
453
+ {
454
+ "id": "o4-mini-deep-research",
455
+ "provider": "openai",
456
+ "modelIds": [
457
+ "o4-mini-deep-research"
458
+ ],
459
+ "contextWindowTokens": 200000,
460
+ "maxOutputTokens": 100000,
461
+ "reasoning": true,
462
+ "imageInput": true,
463
+ "source": "openai-models",
464
+ "reasoningEfforts": [
465
+ "low",
466
+ "medium",
467
+ "high"
468
+ ]
469
+ },
470
+ {
471
+ "id": "gpt-4",
472
+ "provider": "openai",
473
+ "modelIds": [
474
+ "gpt-4"
475
+ ],
476
+ "contextWindowTokens": 8192,
477
+ "maxOutputTokens": 8192,
478
+ "reasoning": false,
479
+ "imageInput": false,
480
+ "source": "openai-models"
481
+ },
482
+ {
483
+ "id": "claude-opus-4-7",
484
+ "provider": "anthropic",
485
+ "modelIds": [
486
+ "claude-opus-4-7"
487
+ ],
488
+ "contextWindowTokens": 1000000,
489
+ "maxOutputTokens": 128000,
490
+ "reasoning": true,
491
+ "imageInput": true,
492
+ "source": "anthropic-models"
493
+ },
494
+ {
495
+ "id": "claude-sonnet-4-6",
496
+ "provider": "anthropic",
497
+ "modelIds": [
498
+ "claude-sonnet-4-6"
499
+ ],
500
+ "contextWindowTokens": 1000000,
501
+ "maxOutputTokens": 64000,
502
+ "reasoning": true,
503
+ "imageInput": true,
504
+ "source": "anthropic-models"
505
+ },
506
+ {
507
+ "id": "claude-haiku-4-5",
508
+ "provider": "anthropic",
509
+ "modelIds": [
510
+ "claude-haiku-4-5",
511
+ "claude-haiku-4-5-20251001"
512
+ ],
513
+ "contextWindowTokens": 200000,
514
+ "maxOutputTokens": 64000,
515
+ "reasoning": true,
516
+ "imageInput": true,
517
+ "source": "anthropic-models"
518
+ },
519
+ {
520
+ "id": "gemini-3.1-pro-preview",
521
+ "provider": "google",
522
+ "modelIds": [
523
+ "gemini-3.1-pro-preview",
524
+ "gemini-3.1-pro-preview-customtools"
525
+ ],
526
+ "contextWindowTokens": 1048576,
527
+ "maxOutputTokens": 65536,
528
+ "reasoning": true,
529
+ "imageInput": true,
530
+ "source": "gemini-models"
531
+ },
532
+ {
533
+ "id": "gemini-3-flash-preview",
534
+ "provider": "google",
535
+ "modelIds": [
536
+ "gemini-3-flash-preview"
537
+ ],
538
+ "contextWindowTokens": 1048576,
539
+ "maxOutputTokens": 65536,
540
+ "reasoning": true,
541
+ "imageInput": true,
542
+ "source": "gemini-models"
543
+ },
544
+ {
545
+ "id": "gemini-2.5-pro",
546
+ "provider": "google",
547
+ "modelIds": [
548
+ "gemini-2.5-pro"
549
+ ],
550
+ "contextWindowTokens": 1048576,
551
+ "maxOutputTokens": 65536,
552
+ "reasoning": true,
553
+ "imageInput": true,
554
+ "source": "gemini-models"
555
+ },
556
+ {
557
+ "id": "gemini-2.5-flash",
558
+ "provider": "google",
559
+ "modelIds": [
560
+ "gemini-2.5-flash"
561
+ ],
562
+ "contextWindowTokens": 1048576,
563
+ "maxOutputTokens": 65536,
564
+ "reasoning": true,
565
+ "imageInput": true,
566
+ "source": "gemini-models"
567
+ },
568
+ {
569
+ "id": "gemini-2.5-flash-lite",
570
+ "provider": "google",
571
+ "modelIds": [
572
+ "gemini-2.5-flash-lite"
573
+ ],
574
+ "contextWindowTokens": 1048576,
575
+ "maxOutputTokens": 65536,
576
+ "reasoning": true,
577
+ "imageInput": true,
578
+ "source": "gemini-models"
579
+ },
580
+ {
581
+ "id": "gemini-2.0-flash",
582
+ "provider": "google",
583
+ "modelIds": [
584
+ "gemini-2.0-flash"
585
+ ],
586
+ "contextWindowTokens": 1048576,
587
+ "maxOutputTokens": 8192,
588
+ "reasoning": true,
589
+ "imageInput": true,
590
+ "source": "gemini-models"
591
+ },
592
+ {
593
+ "id": "deepseek-v4-pro",
594
+ "provider": "deepseek",
595
+ "modelIds": [
596
+ "deepseek-v4-pro"
597
+ ],
598
+ "contextWindowTokens": 1000000,
599
+ "maxOutputTokens": 384000,
600
+ "reasoning": true,
601
+ "imageInput": false,
602
+ "source": "deepseek-pricing",
603
+ "reasoningEfforts": [
604
+ "high",
605
+ "max"
606
+ ]
607
+ },
608
+ {
609
+ "id": "deepseek-v4-flash",
610
+ "provider": "deepseek",
611
+ "modelIds": [
612
+ "deepseek-v4-flash"
613
+ ],
614
+ "contextWindowTokens": 1000000,
615
+ "maxOutputTokens": 384000,
616
+ "reasoning": true,
617
+ "imageInput": false,
618
+ "source": "deepseek-pricing",
619
+ "reasoningEfforts": [
620
+ "high",
621
+ "max"
622
+ ]
623
+ },
624
+ {
625
+ "id": "deepseek-chat",
626
+ "provider": "deepseek",
627
+ "modelIds": [
628
+ "deepseek-chat"
629
+ ],
630
+ "contextWindowTokens": 1000000,
631
+ "maxOutputTokens": 384000,
632
+ "reasoning": false,
633
+ "imageInput": false,
634
+ "source": "deepseek-pricing",
635
+ "notes": "Compatibility alias for non-thinking mode of deepseek-v4-flash."
636
+ },
637
+ {
638
+ "id": "deepseek-reasoner",
639
+ "provider": "deepseek",
640
+ "modelIds": [
641
+ "deepseek-reasoner"
642
+ ],
643
+ "contextWindowTokens": 1000000,
644
+ "maxOutputTokens": 384000,
645
+ "reasoning": true,
646
+ "imageInput": false,
647
+ "source": "deepseek-pricing",
648
+ "notes": "Compatibility alias for thinking mode of deepseek-v4-flash.",
649
+ "reasoningEfforts": [
650
+ "high",
651
+ "max"
652
+ ]
653
+ },
654
+ {
655
+ "id": "mistral-large-latest",
656
+ "provider": "mistral",
657
+ "modelIds": [
658
+ "mistral-large-latest"
659
+ ],
660
+ "contextWindowTokens": 131072,
661
+ "reasoning": false,
662
+ "imageInput": true,
663
+ "source": "mistral-known-limitations"
664
+ },
665
+ {
666
+ "id": "mistral-small-latest",
667
+ "provider": "mistral",
668
+ "modelIds": [
669
+ "mistral-small-latest"
670
+ ],
671
+ "contextWindowTokens": 32768,
672
+ "reasoning": false,
673
+ "imageInput": true,
674
+ "source": "mistral-known-limitations"
675
+ }
676
+ ]
677
+ }