neoctl 0.2.32 → 0.2.34

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,18 +1,13 @@
1
- {
2
- "updatedAt": "2026-09-03",
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": {
1
+ {
2
+ "updatedAt": "2026-09-05",
3
+ "notes": [
4
+ "Static metadata for the supported multimodal GPT model aliases.",
5
+ "MODEL_CONTEXT_WINDOW_TOKENS or OPENAI_CONTEXT_WINDOW_TOKENS overrides contextWindowTokens at runtime.",
6
+ "modelIds are matched exactly."
7
+ ],
8
+ "sources": {
11
9
  "openai-models": "https://developers.openai.com/api/docs/models",
12
- "gemini-models": "https://ai.google.dev/gemini-api/docs/models",
13
- "mistral-known-limitations": "https://docs.mistral.ai/resources/known-limitations",
14
- "mistral-vision": "https://docs.mistral.ai/capabilities/vision",
15
- "openai-reasoning": "https://developers.openai.com/api/docs/guides/reasoning"
10
+ "openai-reasoning": "https://developers.openai.com/api/docs/guides/reasoning"
16
11
  },
17
12
  "models": [
18
13
  {
@@ -80,557 +75,25 @@
80
75
  ]
81
76
  },
82
77
  {
83
- "id": "gpt-5.5",
84
- "provider": "openai",
85
- "modelIds": [
86
- "gpt-5.5"
87
- ],
88
- "contextWindowTokens": 1050000,
89
- "maxOutputTokens": 128000,
90
- "reasoning": true,
91
- "imageInput": true,
92
- "source": "openai-models",
93
- "reasoningEfforts": [
94
- "none",
95
- "low",
96
- "medium",
97
- "high",
98
- "xhigh"
99
- ]
100
- },
101
- {
102
- "id": "gpt-5.5-pro",
103
- "provider": "openai",
104
- "modelIds": [
105
- "gpt-5.5-pro"
106
- ],
107
- "contextWindowTokens": 1050000,
108
- "maxOutputTokens": 128000,
109
- "reasoning": true,
110
- "imageInput": true,
111
- "source": "openai-models",
112
- "reasoningEfforts": [
113
- "none",
114
- "low",
115
- "medium",
116
- "high",
117
- "xhigh"
118
- ]
119
- },
120
- {
121
- "id": "gpt-5.4",
122
- "provider": "openai",
123
- "modelIds": [
124
- "gpt-5.4"
125
- ],
126
- "contextWindowTokens": 1050000,
127
- "maxOutputTokens": 128000,
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.4-mini",
141
- "provider": "openai",
142
- "modelIds": [
143
- "gpt-5.4-mini"
144
- ],
145
- "contextWindowTokens": 400000,
146
- "maxOutputTokens": 128000,
147
- "reasoning": true,
148
- "imageInput": true,
149
- "source": "openai-models",
150
- "reasoningEfforts": [
151
- "none",
152
- "low",
153
- "medium",
154
- "high",
155
- "xhigh"
156
- ]
157
- },
158
- {
159
- "id": "gpt-5.4-nano",
160
- "provider": "openai",
161
- "modelIds": [
162
- "gpt-5.4-nano"
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.2",
179
- "provider": "openai",
180
- "modelIds": [
181
- "gpt-5.2"
182
- ],
183
- "contextWindowTokens": 400000,
184
- "maxOutputTokens": 128000,
185
- "knowledgeCutoff": "2025-08-31",
186
- "reasoning": true,
187
- "imageInput": true,
188
- "source": "openai-models",
189
- "reasoningEfforts": [
190
- "none",
191
- "low",
192
- "medium",
193
- "high",
194
- "xhigh"
195
- ]
196
- },
197
- {
198
- "id": "gpt-5.2-codex",
199
- "provider": "openai",
200
- "modelIds": [
201
- "gpt-5.2-codex"
202
- ],
203
- "contextWindowTokens": 400000,
204
- "maxOutputTokens": 128000,
205
- "knowledgeCutoff": "2025-08-31",
206
- "reasoning": true,
207
- "imageInput": true,
208
- "source": "openai-models",
209
- "reasoningEfforts": [
210
- "low",
211
- "medium",
212
- "high",
213
- "xhigh"
214
- ]
215
- },
216
- {
217
- "id": "gpt-5.2-pro",
218
- "provider": "openai",
219
- "modelIds": [
220
- "gpt-5.2-pro"
221
- ],
222
- "contextWindowTokens": 400000,
223
- "maxOutputTokens": 128000,
224
- "reasoning": true,
225
- "imageInput": true,
226
- "source": "openai-models",
227
- "reasoningEfforts": [
228
- "none",
229
- "low",
230
- "medium",
231
- "high",
232
- "xhigh"
233
- ]
234
- },
235
- {
236
- "id": "gpt-5.1",
237
- "provider": "openai",
238
- "modelIds": [
239
- "gpt-5.1"
240
- ],
241
- "contextWindowTokens": 400000,
242
- "maxOutputTokens": 128000,
243
- "knowledgeCutoff": "2024-09-30",
244
- "reasoning": true,
245
- "imageInput": true,
246
- "source": "openai-models",
247
- "reasoningEfforts": [
248
- "none",
249
- "low",
250
- "medium",
251
- "high"
252
- ]
253
- },
254
- {
255
- "id": "gpt-5.1-codex",
256
- "provider": "openai",
257
- "modelIds": [
258
- "gpt-5.1-codex"
259
- ],
260
- "contextWindowTokens": 400000,
261
- "maxOutputTokens": 128000,
262
- "knowledgeCutoff": "2024-09-30",
263
- "reasoning": true,
264
- "imageInput": true,
265
- "source": "openai-models",
266
- "reasoningEfforts": [
267
- "low",
268
- "medium",
269
- "high"
270
- ]
271
- },
272
- {
273
- "id": "gpt-5.1-codex-max",
274
- "provider": "openai",
275
- "modelIds": [
276
- "gpt-5.1-codex-max"
277
- ],
278
- "contextWindowTokens": 400000,
279
- "maxOutputTokens": 128000,
280
- "knowledgeCutoff": "2024-09-30",
281
- "reasoning": true,
282
- "imageInput": true,
283
- "source": "openai-models",
284
- "reasoningEfforts": [
285
- "low",
286
- "medium",
287
- "high"
288
- ]
289
- },
290
- {
291
- "id": "gpt-5.1-codex-mini",
292
- "provider": "openai",
293
- "modelIds": [
294
- "gpt-5.1-codex-mini"
295
- ],
296
- "contextWindowTokens": 400000,
297
- "maxOutputTokens": 128000,
298
- "knowledgeCutoff": "2024-09-30",
299
- "reasoning": true,
300
- "imageInput": true,
301
- "source": "openai-models",
302
- "reasoningEfforts": [
303
- "low",
304
- "medium",
305
- "high"
306
- ]
307
- },
308
- {
309
- "id": "gpt-5",
310
- "provider": "openai",
311
- "modelIds": [
312
- "gpt-5"
313
- ],
314
- "contextWindowTokens": 400000,
315
- "maxOutputTokens": 128000,
316
- "reasoning": true,
317
- "imageInput": true,
318
- "source": "openai-models",
319
- "reasoningEfforts": [
320
- "minimal",
321
- "low",
322
- "medium",
323
- "high"
324
- ]
325
- },
326
- {
327
- "id": "gpt-5-codex",
328
- "provider": "openai",
329
- "modelIds": [
330
- "gpt-5-codex"
331
- ],
332
- "contextWindowTokens": 400000,
333
- "maxOutputTokens": 128000,
334
- "reasoning": true,
335
- "imageInput": true,
336
- "source": "openai-models",
337
- "reasoningEfforts": [
338
- "minimal",
339
- "low",
340
- "medium",
341
- "high"
342
- ]
343
- },
344
- {
345
- "id": "gpt-5-mini",
346
- "provider": "openai",
347
- "modelIds": [
348
- "gpt-5-mini"
349
- ],
350
- "contextWindowTokens": 400000,
351
- "maxOutputTokens": 128000,
352
- "reasoning": true,
353
- "imageInput": true,
354
- "source": "openai-models",
355
- "reasoningEfforts": [
356
- "minimal",
357
- "low",
358
- "medium",
359
- "high"
360
- ]
361
- },
362
- {
363
- "id": "gpt-5-nano",
364
- "provider": "openai",
365
- "modelIds": [
366
- "gpt-5-nano"
367
- ],
368
- "contextWindowTokens": 400000,
369
- "maxOutputTokens": 128000,
370
- "reasoning": true,
371
- "imageInput": true,
372
- "source": "openai-models",
373
- "reasoningEfforts": [
374
- "minimal",
375
- "low",
376
- "medium",
377
- "high"
378
- ]
379
- },
380
- {
381
- "id": "gpt-5-pro",
382
- "provider": "openai",
383
- "modelIds": [
384
- "gpt-5-pro"
385
- ],
386
- "contextWindowTokens": 400000,
387
- "maxOutputTokens": 272000,
388
- "reasoning": true,
389
- "imageInput": true,
390
- "source": "openai-models",
391
- "reasoningEfforts": [
392
- "minimal",
393
- "low",
394
- "medium",
395
- "high"
396
- ]
397
- },
398
- {
399
- "id": "gpt-4.1",
400
- "provider": "openai",
401
- "modelIds": [
402
- "gpt-4.1"
403
- ],
404
- "contextWindowTokens": 1047576,
405
- "maxOutputTokens": 32768,
406
- "reasoning": false,
407
- "imageInput": true,
408
- "source": "openai-models"
409
- },
410
- {
411
- "id": "gpt-4.1-mini",
412
- "provider": "openai",
413
- "modelIds": [
414
- "gpt-4.1-mini"
415
- ],
416
- "contextWindowTokens": 1047576,
417
- "maxOutputTokens": 32768,
418
- "reasoning": false,
419
- "imageInput": true,
420
- "source": "openai-models"
421
- },
422
- {
423
- "id": "gpt-4.1-nano",
424
- "provider": "openai",
425
- "modelIds": [
426
- "gpt-4.1-nano"
427
- ],
428
- "contextWindowTokens": 1047576,
429
- "maxOutputTokens": 32768,
430
- "reasoning": false,
431
- "imageInput": true,
432
- "source": "openai-models"
433
- },
434
- {
435
- "id": "gpt-4o",
436
- "provider": "openai",
437
- "modelIds": [
438
- "gpt-4o"
439
- ],
440
- "contextWindowTokens": 128000,
441
- "maxOutputTokens": 16384,
442
- "reasoning": false,
443
- "imageInput": true,
444
- "source": "openai-models"
445
- },
446
- {
447
- "id": "gpt-4o-mini",
448
- "provider": "openai",
449
- "modelIds": [
450
- "gpt-4o-mini"
451
- ],
452
- "contextWindowTokens": 128000,
453
- "maxOutputTokens": 16384,
454
- "reasoning": false,
455
- "imageInput": true,
456
- "source": "openai-models"
457
- },
458
- {
459
- "id": "chatgpt-4o-latest",
460
- "provider": "openai",
461
- "modelIds": [
462
- "chatgpt-4o-latest"
463
- ],
464
- "contextWindowTokens": 128000,
465
- "maxOutputTokens": 16384,
466
- "reasoning": false,
467
- "imageInput": true,
468
- "source": "openai-models"
469
- },
470
- {
471
- "id": "gpt-4o-search-preview",
472
- "provider": "openai",
473
- "modelIds": [
474
- "gpt-4o-search-preview"
475
- ],
476
- "contextWindowTokens": 128000,
477
- "maxOutputTokens": 16384,
478
- "reasoning": false,
479
- "imageInput": true,
480
- "source": "openai-models"
481
- },
482
- {
483
- "id": "gpt-4o-mini-search-preview",
484
- "provider": "openai",
485
- "modelIds": [
486
- "gpt-4o-mini-search-preview"
487
- ],
488
- "contextWindowTokens": 128000,
489
- "maxOutputTokens": 16384,
490
- "reasoning": false,
491
- "imageInput": true,
492
- "source": "openai-models"
493
- },
494
- {
495
- "id": "o4-mini",
496
- "provider": "openai",
497
- "modelIds": [
498
- "o4-mini"
499
- ],
500
- "contextWindowTokens": 200000,
501
- "maxOutputTokens": 100000,
502
- "reasoning": true,
503
- "imageInput": true,
504
- "source": "openai-models",
505
- "reasoningEfforts": [
506
- "low",
507
- "medium",
508
- "high"
509
- ]
510
- },
511
- {
512
- "id": "o4-mini-deep-research",
513
- "provider": "openai",
514
- "modelIds": [
515
- "o4-mini-deep-research"
516
- ],
517
- "contextWindowTokens": 200000,
518
- "maxOutputTokens": 100000,
519
- "reasoning": true,
520
- "imageInput": true,
521
- "source": "openai-models",
522
- "reasoningEfforts": [
523
- "low",
524
- "medium",
525
- "high"
526
- ]
527
- },
528
- {
529
- "id": "gpt-4",
530
- "provider": "openai",
531
- "modelIds": [
532
- "gpt-4"
533
- ],
534
- "contextWindowTokens": 8192,
535
- "maxOutputTokens": 8192,
536
- "reasoning": false,
537
- "imageInput": false,
538
- "source": "openai-models"
539
- },
540
- {
541
- "id": "gemini-3.1-pro-preview",
542
- "provider": "google",
543
- "modelIds": [
544
- "gemini-3.1-pro-preview",
545
- "gemini-3.1-pro-preview-customtools"
546
- ],
547
- "contextWindowTokens": 1048576,
548
- "maxOutputTokens": 65536,
549
- "reasoning": true,
550
- "imageInput": true,
551
- "source": "gemini-models"
552
- },
553
- {
554
- "id": "gemini-3-flash-preview",
555
- "provider": "google",
556
- "modelIds": [
557
- "gemini-3-flash-preview"
558
- ],
559
- "contextWindowTokens": 1048576,
560
- "maxOutputTokens": 65536,
561
- "reasoning": true,
562
- "imageInput": true,
563
- "source": "gemini-models"
564
- },
565
- {
566
- "id": "gemini-2.5-pro",
567
- "provider": "google",
568
- "modelIds": [
569
- "gemini-2.5-pro"
570
- ],
571
- "contextWindowTokens": 1048576,
572
- "maxOutputTokens": 65536,
573
- "reasoning": true,
574
- "imageInput": true,
575
- "source": "gemini-models"
576
- },
577
- {
578
- "id": "gemini-2.5-flash",
579
- "provider": "google",
580
- "modelIds": [
581
- "gemini-2.5-flash"
582
- ],
583
- "contextWindowTokens": 1048576,
584
- "maxOutputTokens": 65536,
585
- "reasoning": true,
586
- "imageInput": true,
587
- "source": "gemini-models"
588
- },
589
- {
590
- "id": "gemini-2.5-flash-lite",
591
- "provider": "google",
592
- "modelIds": [
593
- "gemini-2.5-flash-lite"
594
- ],
595
- "contextWindowTokens": 1048576,
596
- "maxOutputTokens": 65536,
597
- "reasoning": true,
598
- "imageInput": true,
599
- "source": "gemini-models"
600
- },
601
- {
602
- "id": "gemini-2.0-flash",
603
- "provider": "google",
604
- "modelIds": [
605
- "gemini-2.0-flash"
606
- ],
607
- "contextWindowTokens": 1048576,
608
- "maxOutputTokens": 8192,
609
- "reasoning": true,
610
- "imageInput": true,
611
- "source": "gemini-models"
612
- },
613
- {
614
- "id": "mistral-large-latest",
615
- "provider": "mistral",
616
- "modelIds": [
617
- "mistral-large-latest"
618
- ],
619
- "contextWindowTokens": 131072,
620
- "reasoning": false,
621
- "imageInput": true,
622
- "source": "mistral-known-limitations"
623
- },
624
- {
625
- "id": "mistral-small-latest",
626
- "provider": "mistral",
627
- "modelIds": [
628
- "mistral-small-latest"
629
- ],
630
- "contextWindowTokens": 32768,
631
- "reasoning": false,
632
- "imageInput": true,
633
- "source": "mistral-known-limitations"
634
- }
635
- ]
636
- }
78
+ "id": "gpt-6-astra",
79
+ "provider": "openai",
80
+ "modelIds": [
81
+ "gpt-6",
82
+ "gpt-6-astra"
83
+ ],
84
+ "contextWindowTokens": 256000,
85
+ "maxOutputTokens": 128000,
86
+ "reasoning": true,
87
+ "imageInput": true,
88
+ "source": "openai-models",
89
+ "reasoningEfforts": [
90
+ "none",
91
+ "low",
92
+ "medium",
93
+ "high",
94
+ "xhigh",
95
+ "max"
96
+ ]
97
+ }
98
+ ]
99
+ }
@@ -901,6 +901,8 @@ function InkRepl({ runtime, initialCommandLine }) {
901
901
  event.type === "thinking.delta")
902
902
  return;
903
903
  if (event.type === "message") {
904
+ if (event.message.isMeta === true)
905
+ return;
904
906
  let replacedStreamingContent = false;
905
907
  if (event.message.role === "assistant" && assistantLineId.current !== undefined) {
906
908
  const text = assistantText(event.message);