dsh-model-think-level 1.1.1 → 1.1.3
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.
- package/lib/client.js +2 -2
- package/lib/client.js.map +3 -3
- package/lib/index.js +339 -101
- package/lib/index.js.map +2 -2
- package/lib/knowledge.d.ts +8 -3
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -275,52 +275,57 @@ var KNOWLEDGE_BASE = [
|
|
|
275
275
|
patterns: ["gpt-5.6"],
|
|
276
276
|
// gpt-5.6 spans the full modern ladder including max; the sol/luna/terra
|
|
277
277
|
// variants share it (official reasoning guide: values "can include none
|
|
278
|
-
// minimal low medium high xhigh, and max").
|
|
278
|
+
// minimal low medium high xhigh, and max"). pi-ai 1.2.0 catalog
|
|
279
|
+
// confirms the FULL ladder at a 272,000 context.
|
|
279
280
|
efforts: { off: "none", low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: "max" },
|
|
280
281
|
defaultEffort: "medium",
|
|
281
282
|
compat: { thinkingFormat: "openai", supportsReasoningEffort: true },
|
|
282
283
|
input: ["text", "image"],
|
|
283
|
-
contextWindow:
|
|
284
|
+
contextWindow: 272e3,
|
|
284
285
|
maxTokens: 128e3,
|
|
285
|
-
note: "GPT-5.6\uFF08\u522B\u540D\u5373 sol\uFF09\u6863\u4F4D\uFF1ANone / Low / Medium(\u9ED8\u8BA4) / High / XHigh / Max\uFF1Bsol/luna/terra \u540C\u6863\uFF0C\u5E26\u56FE\u8F93\u5165\u3002"
|
|
286
|
+
note: "GPT-5.6\uFF08\u522B\u540D\u5373 sol\uFF09\u6863\u4F4D\uFF1ANone / Low / Medium(\u9ED8\u8BA4) / High / XHigh / Max\uFF1Bsol/luna/terra \u540C\u6863\uFF0C\u5E26\u56FE\u8F93\u5165\u30022026-10 \u6821\u51C6\uFF1A\u4E0A\u4E0B\u6587\u6309 pi-ai 1.2.0 \u76EE\u5F55\u8BB0 272,000\uFF08\u6B64\u524D\u8BEF\u8BB0 1,050,000\uFF09\u3002"
|
|
286
287
|
},
|
|
287
288
|
{
|
|
288
289
|
id: "openai-gpt-5-5",
|
|
289
290
|
patterns: ["gpt-5.5"],
|
|
290
291
|
// gpt-5.5 defaults to medium (official reasoning guide) and tops out at
|
|
291
|
-
// xhigh
|
|
292
|
+
// xhigh (max is ABSENT from the pi-ai 1.2.0 catalog); the -pro variant
|
|
293
|
+
// (1.05M context, Responses-only) keeps high/xhigh only.
|
|
292
294
|
efforts: { off: "none", low: "low", medium: "medium", high: "high", xhigh: "xhigh" },
|
|
293
295
|
defaultEffort: "medium",
|
|
294
296
|
compat: { thinkingFormat: "openai", supportsReasoningEffort: true },
|
|
295
297
|
input: ["text", "image"],
|
|
296
|
-
contextWindow:
|
|
298
|
+
contextWindow: 272e3,
|
|
297
299
|
maxTokens: 128e3,
|
|
298
|
-
note: "GPT-5.5 \u6863\u4F4D\uFF1ANone / Low / Medium(\u9ED8\u8BA4) / High / XHigh\uFF0C\u5E26\u56FE\u8F93\u5165\u3002pro \u53D8\u4F53\u4EC5
|
|
300
|
+
note: "GPT-5.5 \u6863\u4F4D\uFF1ANone / Low / Medium(\u9ED8\u8BA4) / High / XHigh\uFF08\u65E0 Max \u6863\uFF09\uFF0C\u5E26\u56FE\u8F93\u5165\u3002pro \u53D8\u4F53\u4EC5 High(\u9ED8\u8BA4) / XHigh\u30011.05M \u4E0A\u4E0B\u6587\u4E14\u4EC5 Responses API\u30022026-10 \u6821\u51C6\uFF1A\u4E0A\u4E0B\u6587\u6309 pi-ai 1.2.0 \u76EE\u5F55\u8BB0 272,000\uFF08\u6B64\u524D\u8BEF\u8BB0 1,050,000\uFF09\u3002"
|
|
299
301
|
},
|
|
300
302
|
{
|
|
301
303
|
id: "openai-gpt-5-4",
|
|
302
304
|
patterns: ["gpt-5.4"],
|
|
303
305
|
// Official model page: none (default) / low / medium / high / xhigh;
|
|
304
|
-
// pro drops none+low
|
|
306
|
+
// pro drops none+low (medium/high/xhigh, 1.05M, Responses-only);
|
|
307
|
+
// mini/nano sit on 400K. pi-ai 1.2.0 catalog: 272,000 context.
|
|
305
308
|
efforts: { off: "none", low: "low", medium: "medium", high: "high", xhigh: "xhigh" },
|
|
306
309
|
defaultEffort: "off",
|
|
307
310
|
compat: { thinkingFormat: "openai", supportsReasoningEffort: true },
|
|
308
311
|
input: ["text", "image"],
|
|
309
|
-
contextWindow:
|
|
312
|
+
contextWindow: 272e3,
|
|
310
313
|
maxTokens: 128e3,
|
|
311
|
-
note: "GPT-5.4 \u6863\u4F4D\uFF1ANone(\u9ED8\u8BA4) / Low / Medium / High / XHigh\uFF0C\u5E26\u56FE\u8F93\u5165\u3002pro \u53D8\u4F53\u4EC5 Medium/High/XHigh\uFF1Bmini/nano \u4E3A 400K \u4E0A\u4E0B\u6587\u3002"
|
|
314
|
+
note: "GPT-5.4 \u6863\u4F4D\uFF1ANone(\u9ED8\u8BA4) / Low / Medium / High / XHigh\uFF0C\u5E26\u56FE\u8F93\u5165\u3002pro \u53D8\u4F53\u4EC5 Medium/High/XHigh\uFF081.05M\uFF09\uFF1Bmini/nano \u4E3A 400K \u4E0A\u4E0B\u6587\u30022026-10 \u6821\u51C6\uFF1A\u4E0A\u4E0B\u6587\u6309 pi-ai 1.2.0 \u76EE\u5F55\u8BB0 272,000\uFF08\u6B64\u524D\u8BEF\u8BB0 1,050,000\uFF09\u3002"
|
|
312
315
|
},
|
|
313
316
|
{
|
|
314
317
|
id: "openai-gpt-5-3",
|
|
315
318
|
patterns: ["gpt-5.3"],
|
|
316
|
-
//
|
|
317
|
-
|
|
319
|
+
// pi-ai 1.2.0 catalog (gpt-5.3-codex): none IS accepted on the codex
|
|
320
|
+
// line, spelled 'none' -- the older "no none" reading is retired.
|
|
321
|
+
// gpt-5.3-chat (non-reasoning) keys its own openai-chat entry.
|
|
322
|
+
efforts: { off: "none", low: "low", medium: "medium", high: "high", xhigh: "xhigh" },
|
|
318
323
|
defaultEffort: "medium",
|
|
319
324
|
compat: { thinkingFormat: "openai", supportsReasoningEffort: true },
|
|
320
325
|
input: ["text", "image"],
|
|
321
326
|
contextWindow: 4e5,
|
|
322
327
|
maxTokens: 128e3,
|
|
323
|
-
note: "GPT-5.3-Codex \u6863\u4F4D\
|
|
328
|
+
note: "GPT-5.3-Codex \u6863\u4F4D\uFF1ANone / Low / Medium(\u9ED8\u8BA4) / High / XHigh\uFF0C\u5E26\u56FE\u8F93\u5165\u3001400K\uFF1B2026-10 \u6821\u51C6\uFF1ANone \u6863\u6309 pi-ai 1.2.0 \u76EE\u5F55\u8865\u56DE\uFF08\u6B64\u524D\u6309\u65E7\u6A21\u578B\u9875\u8BB0\u4E3A\u65E0 None\uFF09\u3002gpt-5.3-chat \u4E3A\u975E\u63A8\u7406\u804A\u5929\u6A21\u578B\uFF08\u89C1 chat \u6761\u76EE\uFF09\u3002"
|
|
324
329
|
},
|
|
325
330
|
{
|
|
326
331
|
id: "openai-gpt-5-1",
|
|
@@ -366,6 +371,20 @@ var KNOWLEDGE_BASE = [
|
|
|
366
371
|
maxTokens: 128e3,
|
|
367
372
|
note: "GPT-5 \u521D\u4EE3\u6863\u4F4D\uFF1AMinimal / Low / Medium / High\uFF0C\u65E0\u5173\u95ED\u6863\u3002"
|
|
368
373
|
},
|
|
374
|
+
{
|
|
375
|
+
id: "openai-gpt-5-2-chat",
|
|
376
|
+
// pi-ai 1.2.0 catalog: gpt-5.2-chat-latest IS a reasoning model with a
|
|
377
|
+
// tiny ladder (off[omit] / medium / xhigh) at 128K -- it must not fall
|
|
378
|
+
// into the non-reasoning openai-chat entry below, which is why that
|
|
379
|
+
// entry's 'gpt-5.2-chat' pattern moved here.
|
|
380
|
+
patterns: ["gpt-5.2-chat"],
|
|
381
|
+
efforts: { off: null, medium: "medium", xhigh: "xhigh" },
|
|
382
|
+
compat: { thinkingFormat: "openai", supportsReasoningEffort: true },
|
|
383
|
+
input: ["text", "image"],
|
|
384
|
+
contextWindow: 128e3,
|
|
385
|
+
maxTokens: 16384,
|
|
386
|
+
note: "GPT-5.2-Chat\uFF08\u5B98\u65B9 id gpt-5.2-chat-latest\uFF09\uFF1Api-ai 1.2.0 \u76EE\u5F55\u8BB0\u4E3A\u63A8\u7406\u6A21\u578B\uFF0C\u4EC5 Medium / XHigh \u4E24\u6863\uFF08off \u4EE5\u7701\u7565\u8868\u8FBE\uFF0C\u975E\u663E\u5F0F\u5173\u95ED\uFF09\uFF0C128K / 16,384 \u8F93\u51FA\u30022026-10 \u65B0\u589E\u6761\u76EE\u3002"
|
|
387
|
+
},
|
|
369
388
|
{
|
|
370
389
|
id: "openai-chat",
|
|
371
390
|
// Non-reasoning chat lines across generations: they take no
|
|
@@ -373,23 +392,22 @@ var KNOWLEDGE_BASE = [
|
|
|
373
392
|
// Official ids are the *-chat-latest snapshots; the bare -chat spellings
|
|
374
393
|
// stay for gateways serving them. gpt-5-chat-latest was removed upstream
|
|
375
394
|
// on 2026-07-23 and gpt-chat-latest has no model page anymore -- the
|
|
376
|
-
// patterns persist for compatibility only.
|
|
395
|
+
// patterns persist for compatibility only. ('gpt-5.2-chat' moved to its
|
|
396
|
+
// own reasoning entry above per pi-ai 1.2.0.)
|
|
377
397
|
patterns: [
|
|
378
398
|
"gpt-5.1-chat-latest",
|
|
379
|
-
"gpt-5.2-chat-latest",
|
|
380
399
|
"gpt-5.3-chat-latest",
|
|
381
400
|
"gpt-5-chat-latest",
|
|
382
401
|
"gpt-chat-latest",
|
|
383
402
|
"gpt-5-chat",
|
|
384
403
|
"gpt-5.1-chat",
|
|
385
|
-
"gpt-5.2-chat",
|
|
386
404
|
"gpt-5.3-chat"
|
|
387
405
|
],
|
|
388
406
|
efforts: false,
|
|
389
407
|
input: ["text", "image"],
|
|
390
408
|
contextWindow: 128e3,
|
|
391
409
|
maxTokens: 16384,
|
|
392
|
-
note: "-chat \u7CFB\u5217\uFF08\u5B98\u65B9 id \u4E3A gpt-5.x-chat-latest\uFF09\u4E3A\u975E\u63A8\u7406\u804A\u5929\u6A21\u578B\uFF0C\u4E0D\u652F\u6301 effort \u53C2\u6570\uFF08\u52FF\u52FE\u601D\u8003\u6863\uFF09\uFF1B\u5B98\u65B9\u652F\u6301\u56FE\u7247\u8F93\u5165\uFF0C128K / 16,384 \u8F93\u51FA\u3002gpt-5-chat-latest \u5DF2\u4E8E 2026-07-23 \u4E0B\u67B6\u3001gpt-chat-latest \u5DF2\u65E0\u5B98\u65B9\u9875\u9762\uFF08\u4FDD\u7559\u6A21\u5F0F\u4F9B\u7F51\u5173\uFF09\u3002"
|
|
410
|
+
note: "-chat \u7CFB\u5217\uFF08\u5B98\u65B9 id \u4E3A gpt-5.x-chat-latest\uFF09\u4E3A\u975E\u63A8\u7406\u804A\u5929\u6A21\u578B\uFF0C\u4E0D\u652F\u6301 effort \u53C2\u6570\uFF08\u52FF\u52FE\u601D\u8003\u6863\uFF09\uFF1B\u5B98\u65B9\u652F\u6301\u56FE\u7247\u8F93\u5165\uFF0C128K / 16,384 \u8F93\u51FA\u3002gpt-5-chat-latest \u5DF2\u4E8E 2026-07-23 \u4E0B\u67B6\u3001gpt-chat-latest \u5DF2\u65E0\u5B98\u65B9\u9875\u9762\uFF08\u4FDD\u7559\u6A21\u5F0F\u4F9B\u7F51\u5173\uFF09\u3002gpt-5.2-chat \u53E6\u6709\u63A8\u7406\u6761\u76EE\u3002"
|
|
393
411
|
},
|
|
394
412
|
{
|
|
395
413
|
id: "openai-o",
|
|
@@ -424,20 +442,63 @@ var KNOWLEDGE_BASE = [
|
|
|
424
442
|
maxTokens: 131072,
|
|
425
443
|
note: "GPT-OSS \u5F00\u6E90\u6743\u91CD\uFF08Ollama/vLLM \u5E38\u89C1\uFF09\uFF1Areasoning effort Low / Medium / High\uFF0C\u7EAF\u6587\u672C\uFF0C131K \u4E0A\u4E0B\u6587 / 131K \u8F93\u51FA\u30022026-09 \u590D\u6838\uFF1A\u5B98\u65B9\u6A21\u578B\u9875\u73B0\u5728\u5199 Chat Completions = Not supported\u3001\u65E0\u56FE\u7247\u8F93\u5165\uFF08\u9ED8\u8BA4 Low \u6765\u81EA\u5B98\u65B9 CLI\uFF0C\u4E0D\u662F API \u9875\uFF09\uFF0C\u56E0\u6B64\u8FD9\u91CC\u4E0D\u518D\u58F0\u660E Off\u3002"
|
|
426
444
|
},
|
|
445
|
+
{
|
|
446
|
+
id: "openai-gpt-6",
|
|
447
|
+
// GPT-6 luna/sol/terra (2026, after astra): pi-ai 1.2.0 catalog carries
|
|
448
|
+
// the FULL ladder with an explicit 'none' off for luna/sol. astra keys
|
|
449
|
+
// its own entry above (its off is the omit-style null), and 6.1-sol's
|
|
450
|
+
// off is likewise omit-expressed there -- 'none' is not proven manually
|
|
451
|
+
// adjustable on it, so it stays in the astra entry's shape.
|
|
452
|
+
patterns: ["gpt-6-luna", "gpt-6-sol", "gpt-6-terra", "gpt-6.1"],
|
|
453
|
+
efforts: { off: "none", low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: "max" },
|
|
454
|
+
compat: { thinkingFormat: "openai", supportsReasoningEffort: true },
|
|
455
|
+
input: ["text", "image"],
|
|
456
|
+
contextWindow: 272e3,
|
|
457
|
+
maxTokens: 128e3,
|
|
458
|
+
note: 'GPT-6 \u7CFB\uFF08luna/sol/terra\uFF0C2026-10 \u6821\u51C6\u65B0\u589E\uFF09\uFF1Api-ai 1.2.0 \u76EE\u5F55\u5168\u6863 None / Low / Medium / High / XHigh / Max\uFF0C\u5E26\u56FE\u8F93\u5165\uFF0C272,000 \u4E0A\u4E0B\u6587 / 128,000 \u8F93\u51FA\u3002gpt-6-astra \u89C1\u5355\u72EC\u6761\u76EE\uFF08\u88F8 "gpt-6" \u4E0E 6.1-sol \u7531 astra \u6761\u76EE\u627F\u63A5\uFF0Coff \u4EE5\u7701\u7565\u8868\u8FBE\uFF0C"none" \u672A\u8BC1\u5B9E\u53EF\u624B\u8C03\uFF09\u3002'
|
|
459
|
+
},
|
|
427
460
|
{
|
|
428
461
|
id: "openai-gpt-6-astra",
|
|
429
462
|
// Longest-pattern-wins keeps this ahead of the 5.x entries; 'astra' is the
|
|
430
463
|
// only stable token an aggregator is likely to expose.
|
|
431
|
-
patterns: ["gpt-6-astra", "gpt-6"],
|
|
464
|
+
patterns: ["gpt-6-astra", "gpt-6", "gpt-6.1-sol"],
|
|
432
465
|
// Official reasoning guide: none returns HTTP 400 on this model, and the
|
|
433
|
-
// model page lists low/medium/high/xhigh/max.
|
|
434
|
-
//
|
|
466
|
+
// model page lists low/medium/high/xhigh/max. pi-ai 1.2.0 catalog adds
|
|
467
|
+
// minimal as present-null (omit-expressed) and keeps astra at 272,000.
|
|
468
|
+
// The bare 'gpt-6' stem lives here (not on the luna/sol/terra sibling)
|
|
469
|
+
// so gateways serving unversioned "gpt-6" keep the omit-style off that
|
|
470
|
+
// astra/6.1-sol actually use; 'gpt-6.1' likewise -- only 6.1-sol exists
|
|
471
|
+
// in the 1.2.0 catalog, and its off is omit-expressed like astra's.
|
|
435
472
|
efforts: { low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: "max" },
|
|
436
473
|
compat: { thinkingFormat: "openai", supportsReasoningEffort: true },
|
|
437
474
|
input: ["text", "image"],
|
|
475
|
+
contextWindow: 272e3,
|
|
476
|
+
maxTokens: 128e3,
|
|
477
|
+
note: 'GPT-6 Astra \u6863\u4F4D\uFF1ALow / Medium / High / XHigh / Max\u2014\u2014**\u6CA1\u6709 None \u6863**\uFF08\u5B98\u65B9\u539F\u6587\uFF1A\u8BBE\u4E3A none \u8FD4\u56DE HTTP 400\uFF09\uFF0C\u56E0\u6B64\u672C\u6761\u76EE\u4E0D\u58F0\u660E Off\u3002\u5E26\u56FE\u8F93\u5165\uFF1B2026-10 \u6821\u51C6\uFF1A\u4E0A\u4E0B\u6587\u6309 pi-ai 1.2.0 \u76EE\u5F55\u8BB0 272,000\uFF08\u6B64\u524D\u8BEF\u8BB0 1,050,000\uFF09\u3002\u5DE5\u5177\u8C03\u7528\u9700\u8D70 Responses API\u3002gpt-6 luna/sol/terra \u89C1\u5355\u72EC\u6761\u76EE\uFF1B\u88F8 "gpt-6" \u4E0E 6.1-sol\uFF08off \u4EE5\u7701\u7565\u8868\u8FBE\uFF09\u7531\u672C\u6761\u76EE\u627F\u63A5\u3002'
|
|
478
|
+
},
|
|
479
|
+
{
|
|
480
|
+
id: "openai-gpt-daybreak",
|
|
481
|
+
// pi-ai 1.2.0 catalog: gpt-daybreak-blue-latest (1.05M) and -red-latest
|
|
482
|
+
// (400K) take the FULL modern ladder with an explicit 'none' off.
|
|
483
|
+
patterns: ["gpt-daybreak"],
|
|
484
|
+
efforts: { off: "none", low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: "max" },
|
|
485
|
+
compat: { thinkingFormat: "openai", supportsReasoningEffort: true },
|
|
486
|
+
input: ["text", "image"],
|
|
438
487
|
contextWindow: 105e4,
|
|
439
488
|
maxTokens: 128e3,
|
|
440
|
-
note: "GPT-
|
|
489
|
+
note: "GPT-Daybreak\uFF08blue-latest 1.05M / red-latest 400K\uFF0C2026-10 \u65B0\u589E\uFF09\uFF1Api-ai 1.2.0 \u76EE\u5F55\u5168\u6863 None / Low / Medium / High / XHigh / Max\uFF0C\u5E26\u56FE\u8F93\u5165 / 128,000 \u8F93\u51FA\u3002"
|
|
490
|
+
},
|
|
491
|
+
{
|
|
492
|
+
id: "openai-gpt-realtime",
|
|
493
|
+
// pi-ai 1.2.0 catalog: gpt-realtime-2.1 -- minimal joins the ladder as a
|
|
494
|
+
// real wire value (off stays omit-style), 128K in / 32K out.
|
|
495
|
+
patterns: ["gpt-realtime"],
|
|
496
|
+
efforts: { minimal: "minimal", low: "low", medium: "medium", high: "high", xhigh: "xhigh" },
|
|
497
|
+
compat: { thinkingFormat: "openai", supportsReasoningEffort: true },
|
|
498
|
+
input: ["text", "image"],
|
|
499
|
+
contextWindow: 128e3,
|
|
500
|
+
maxTokens: 32e3,
|
|
501
|
+
note: "GPT-Realtime 2.1\uFF082026-10 \u65B0\u589E\uFF09\uFF1Api-ai 1.2.0 \u76EE\u5F55\u6863\u4F4D Minimal / Low / Medium / High / XHigh\uFF08off \u4EE5\u7701\u7565\u8868\u8FBE\uFF09\uFF0C128,000 \u4E0A\u4E0B\u6587 / 32,000 \u8F93\u51FA\u3002"
|
|
441
502
|
},
|
|
442
503
|
{
|
|
443
504
|
id: "openai-gpt-5-6-cyber",
|
|
@@ -515,20 +576,19 @@ var KNOWLEDGE_BASE = [
|
|
|
515
576
|
note: "GPT-4/3.5 \u4EE3\u9645\uFF1A\u975E\u63A8\u7406\u6A21\u578B\uFF0C\u4E0D\u652F\u6301 effort \u53C2\u6570\uFF08\u52FF\u52FE\u601D\u8003\u6863\uFF09\u3002gpt-4-turbo/4.1 \u8D77\u652F\u6301\u56FE\u7247\uFF0C\u89C1\u5355\u72EC\u6761\u76EE\uFF1B\u65B0\u4EE3\u8BF7\u7528 GPT-5 \u7CFB\uFF08\u89C1 openai-chat/gpt-5.x \u6761\u76EE\uFF09\u3002"
|
|
516
577
|
},
|
|
517
578
|
{
|
|
518
|
-
id: "anthropic-claude-5",
|
|
519
|
-
// Claude
|
|
520
|
-
//
|
|
521
|
-
//
|
|
522
|
-
//
|
|
523
|
-
//
|
|
524
|
-
|
|
525
|
-
//
|
|
526
|
-
//
|
|
527
|
-
//
|
|
528
|
-
//
|
|
529
|
-
//
|
|
530
|
-
|
|
531
|
-
// makes pi-ai dispatch these as output_config.effort.
|
|
579
|
+
id: "anthropic-claude-5-5",
|
|
580
|
+
// Claude 5.5 generation (2026-10): haiku/opus/sonnet-5-5 all take the
|
|
581
|
+
// FULL effort ladder per pi-ai 1.2.0's official catalog (off and
|
|
582
|
+
// minimal are present-null = omit-expressed, the five rungs dispatch as
|
|
583
|
+
// output_config.effort). Absorbs the turn-2 haiku-5.5 entry: pi-ai
|
|
584
|
+
// 1.2.0 names xhigh/max for the whole generation, the catalog size is
|
|
585
|
+
// 1M/128K (not the 200K/64K first read off ofox's aggregator listing),
|
|
586
|
+
// patterns cover the whole generation plus the bare aggregator
|
|
587
|
+
// spelling. ('claude-haiku-5-5' is NOT listed separately: loose
|
|
588
|
+
// normalization folds '-' and '.' identically, so the dotted spelling
|
|
589
|
+
// already keys the dash spelling -- listing both would trip the
|
|
590
|
+
// unique-normalized-pattern hygiene test.)
|
|
591
|
+
patterns: ["claude-haiku-5.5", "claude-opus-5-5", "claude-sonnet-5-5", "haiku-5.5", "claude-5-5"],
|
|
532
592
|
efforts: { low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: "max" },
|
|
533
593
|
defaultEffort: "high",
|
|
534
594
|
// No thinkingFormat: pi-ai has no 'anthropic' member, and the
|
|
@@ -539,31 +599,58 @@ var KNOWLEDGE_BASE = [
|
|
|
539
599
|
input: ["text", "image"],
|
|
540
600
|
contextWindow: 1e6,
|
|
541
601
|
maxTokens: 128e3,
|
|
542
|
-
note: "Claude 5 \u4EE3\
|
|
602
|
+
note: "Claude 5.5 \u4EE3\uFF08Haiku 5.5 / Opus 5.5 / Sonnet 5.5\uFF09\uFF1Api-ai 1.2.0 \u5B98\u65B9\u76EE\u5F55\u5168\u6863 Low / Medium / High(\u9ED8\u8BA4) / XHigh / Max\uFF0C\u81EA\u9002\u5E94\u601D\u8003\uFF0C1M \u4E0A\u4E0B\u6587 / 128K \u8F93\u51FA\u3002off/minimal \u4EE5\u7701\u7565\u8868\u8FBE\uFF08\u76EE\u5F55\u5C06\u4E24\u952E\u8BB0\u4E3A null\uFF0C\u975E\u663E\u5F0F\u5173\u95ED\uFF09\u3002"
|
|
603
|
+
},
|
|
604
|
+
{
|
|
605
|
+
id: "anthropic-claude-5",
|
|
606
|
+
// Claude 5th generation (fable/mythos-5/opus-5/sonnet-5, 2026): adaptive
|
|
607
|
+
// thinking. 2026-10 calibration against pi-ai 1.2.0's official catalog:
|
|
608
|
+
// low/medium/high were REMOVED from these models' effort maps (they
|
|
609
|
+
// remain on the 5.5 generation) -- fable-5 and opus-5 keep only
|
|
610
|
+
// xhigh/max (with an omit-expressed off), sonnet-5 keeps xhigh/max with
|
|
611
|
+
// no off at all. Mythos has no pi-ai entry; it stays matched here
|
|
612
|
+
// conservatively on the same-generation shape. Mythos Preview is split
|
|
613
|
+
// into its own entry below.
|
|
614
|
+
patterns: ["claude-fable-5", "claude-mythos-5", "claude-opus-5", "claude-sonnet-5"],
|
|
615
|
+
// Ladder per pi-ai 1.2.0 (claude-fable-5 / claude-opus-5 /
|
|
616
|
+
// claude-sonnet-5). NOTE: Anthropic's own OpenAI-SDK compatibility
|
|
617
|
+
// layer IGNORES reasoning_effort (thinking is driven by its own param,
|
|
618
|
+
// on by default for Claude 5) -- the declaration bites on third-party
|
|
619
|
+
// gateways that map it; on the native anthropic-messages protocol,
|
|
620
|
+
// anthropicAdaptive pins the compat that makes pi-ai dispatch these as
|
|
621
|
+
// output_config.effort.
|
|
622
|
+
efforts: { xhigh: "xhigh", max: "max" },
|
|
623
|
+
// pi-ai 1.2.0 publishes no default rung for this generation; the old
|
|
624
|
+
// 'high' default was removed with the low/medium/high rungs themselves.
|
|
625
|
+
compat: { supportsReasoningEffort: true },
|
|
626
|
+
anthropicAdaptive: true,
|
|
627
|
+
input: ["text", "image"],
|
|
628
|
+
contextWindow: 1e6,
|
|
629
|
+
maxTokens: 128e3,
|
|
630
|
+
note: "Claude 5 \u4EE3\uFF08Fable 5 / Mythos 5 / Opus 5 / Sonnet 5\uFF09\uFF1A2026-10 \u6821\u51C6\u2014\u2014pi-ai 1.2.0 \u5B98\u65B9\u76EE\u5F55\u5DF2\u6536\u7D27\u4E3A XHigh / Max\uFF08low/medium/high \u6863\u5DF2\u4ECE\u8BE5\u4EE3 effort \u76EE\u5F55\u79FB\u9664\uFF1BFable 5 \u4E0E Opus 5 \u53E6\u63A5\u53D7\u4EE5\u7701\u7565\u8868\u8FBE\u7684 off\uFF0CSonnet 5 \u65E0 off\uFF09\u30021M \u4E0A\u4E0B\u6587 / 128K \u8F93\u51FA\uFF08Batch 300K\uFF09\u3002\u5B98\u65B9\u652F\u6301 PDF \u8F93\u5165\u3002\u6CE8\u610F\uFF1AAnthropic \u5B98\u65B9 OpenAI \u517C\u5BB9\u5C42\u4F1A\u5FFD\u7565 effort \u53C2\u6570\uFF0C\u58F0\u660E\u5728\u7B2C\u4E09\u65B9\u7F51\u5173\u6620\u5C04\u65F6\u751F\u6548\u3002"
|
|
543
631
|
},
|
|
544
632
|
{
|
|
545
633
|
id: "anthropic-claude-5-1",
|
|
546
634
|
// Ahead of the claude-5 entry, whose 'claude-fable-5' / 'claude-mythos-5'
|
|
547
635
|
// patterns are prefixes of these ids and would win the equal-length tie.
|
|
548
|
-
//
|
|
549
|
-
//
|
|
550
|
-
//
|
|
551
|
-
// does not declare per model.
|
|
636
|
+
// 2026-10 calibration: pi-ai 1.2.0 keeps fable-5-1 on the same tight
|
|
637
|
+
// xhigh/max map as fable-5 (plus mid-conversation effort support,
|
|
638
|
+
// which this plugin does not declare per model).
|
|
552
639
|
patterns: ["claude-fable-5-1", "claude-mythos-5-1"],
|
|
553
|
-
efforts: {
|
|
554
|
-
defaultEffort: "high",
|
|
640
|
+
efforts: { xhigh: "xhigh", max: "max" },
|
|
555
641
|
compat: { supportsReasoningEffort: true },
|
|
556
642
|
anthropicAdaptive: true,
|
|
557
643
|
input: ["text", "image"],
|
|
558
644
|
contextWindow: 1e6,
|
|
559
645
|
maxTokens: 128e3,
|
|
560
|
-
note: "Claude Fable 5.1 / Mythos 5.1\
|
|
646
|
+
note: "Claude Fable 5.1 / Mythos 5.1\uFF1A2026-10 \u6821\u51C6\u2014\u2014pi-ai 1.2.0 \u76EE\u5F55\u6863\u4F4D XHigh / Max\uFF08off \u4EE5\u7701\u7565\u8868\u8FBE\uFF09\uFF0C\u81EA\u9002\u5E94\u601D\u8003\u5E38\u5F00\uFF08\u4E0D\u63A5\u53D7 enabled/disabled\uFF09\u30021M \u4E0A\u4E0B\u6587 / 128K \u8F93\u51FA\uFF1BFable 5.1 \u652F\u6301\u4F1A\u8BDD\u4E2D\u9014\u6539\u6863\uFF08\u9700 beta header\uFF0C\u672C\u63D2\u4EF6\u4E0D\u6D89\u53CA\uFF09\u3002"
|
|
561
647
|
},
|
|
562
648
|
{
|
|
563
649
|
id: "anthropic-claude-mythos-preview",
|
|
564
650
|
// Official effort matrix: max is available, xhigh is NOT (the matrix's
|
|
565
651
|
// xhigh list covers Fable 5 / Mythos 5 / Opus 5 / Opus 4.8 / Opus 4.7 /
|
|
566
|
-
// Sonnet 5 only).
|
|
652
|
+
// Sonnet 5 only). pi-ai 1.2.0 has no mythos entry at all; this entry
|
|
653
|
+
// keeps its doc-derived ladder unchanged.
|
|
567
654
|
patterns: ["claude-mythos-preview"],
|
|
568
655
|
efforts: { low: "low", medium: "medium", high: "high", max: "max" },
|
|
569
656
|
// Anthropic's effort page: the API default is HIGH across the whole
|
|
@@ -574,35 +661,35 @@ var KNOWLEDGE_BASE = [
|
|
|
574
661
|
input: ["text", "image"],
|
|
575
662
|
contextWindow: 1e6,
|
|
576
663
|
maxTokens: 128e3,
|
|
577
|
-
note: "Claude Mythos Preview\uFF1A\u5B98\u65B9\u6863\u4F4D Low / Medium / High / Max\uFF08\u65E0 XHigh\uFF09\uFF0C1M \u4E0A\u4E0B\u6587\u3002"
|
|
664
|
+
note: "Claude Mythos Preview\uFF1A\u5B98\u65B9\u6863\u4F4D Low / Medium / High / Max\uFF08\u65E0 XHigh\uFF09\uFF0C1M \u4E0A\u4E0B\u6587\u3002pi-ai 1.2.0 \u76EE\u5F55\u65E0 mythos \u6761\u76EE\uFF0C\u672C\u6863\u4F4D\u6CBF\u7528\u5B98\u65B9 effort \u77E9\u9635\u3002"
|
|
578
665
|
},
|
|
579
666
|
{
|
|
580
667
|
id: "anthropic-claude-opus-4-high",
|
|
581
668
|
patterns: ["claude-opus-4-8", "claude-opus-4-7"],
|
|
582
|
-
//
|
|
583
|
-
//
|
|
584
|
-
|
|
585
|
-
|
|
669
|
+
// 2026-10 calibration: pi-ai 1.2.0's catalog lists ONLY xhigh/max for
|
|
670
|
+
// opus-4-7/4-8 -- the low/medium/high rungs are gone from the official
|
|
671
|
+
// effort maps (xhigh remains the recommended coding start on 4.7).
|
|
672
|
+
efforts: { xhigh: "xhigh", max: "max" },
|
|
586
673
|
compat: { supportsReasoningEffort: true },
|
|
587
674
|
anthropicAdaptive: true,
|
|
588
675
|
input: ["text", "image"],
|
|
589
676
|
contextWindow: 1e6,
|
|
590
677
|
maxTokens: 128e3,
|
|
591
|
-
note: "Claude Opus 4.7/4.8 \
|
|
678
|
+
note: "Claude Opus 4.7/4.8\uFF1A2026-10 \u6821\u51C6\u2014\u2014pi-ai 1.2.0 \u5B98\u65B9\u76EE\u5F55\u6863\u4F4D\u4EC5 XHigh / Max\uFF08low/medium/high \u5DF2\u4ECE\u8BE5\u4EE3\u76EE\u5F55\u79FB\u9664\uFF1Bxhigh \u4E3A\u5B98\u65B9\u63A8\u8350\u7684\u7F16\u7801\u8D77\u6B65\u6863\uFF09\u30021M \u4E0A\u4E0B\u6587\u3002"
|
|
592
679
|
},
|
|
593
680
|
{
|
|
594
681
|
id: "anthropic-claude-4-6",
|
|
595
682
|
patterns: ["claude-opus-4-6", "claude-sonnet-4-6"],
|
|
596
|
-
//
|
|
597
|
-
//
|
|
598
|
-
|
|
599
|
-
|
|
683
|
+
// 2026-10 calibration: pi-ai 1.2.0 narrows the 4.6 generation to a
|
|
684
|
+
// single rung -- max only (the official effort page's "some models that
|
|
685
|
+
// support max don't support xhigh" reading tightens further).
|
|
686
|
+
efforts: { max: "max" },
|
|
600
687
|
compat: { supportsReasoningEffort: true },
|
|
601
688
|
anthropicAdaptive: true,
|
|
602
689
|
input: ["text", "image"],
|
|
603
690
|
contextWindow: 1e6,
|
|
604
691
|
maxTokens: 128e3,
|
|
605
|
-
note: "Claude 4.6 \u4EE3\
|
|
692
|
+
note: "Claude 4.6 \u4EE3\uFF08Opus 4.6 / Sonnet 4.6\uFF09\uFF1A2026-10 \u6821\u51C6\u2014\u2014pi-ai 1.2.0 \u5B98\u65B9\u76EE\u5F55\u4EC5\u5269 Max \u4E00\u6863\uFF08low/medium/high/xhigh \u5747\u5DF2\u4ECE\u76EE\u5F55\u79FB\u9664\uFF09\u30021M \u4E0A\u4E0B\u6587\u3002"
|
|
606
693
|
},
|
|
607
694
|
{
|
|
608
695
|
id: "anthropic-claude-opus-4-5",
|
|
@@ -623,18 +710,19 @@ var KNOWLEDGE_BASE = [
|
|
|
623
710
|
id: "anthropic-claude",
|
|
624
711
|
// Everything else in the Claude line: 3.x and the 4.5-generation
|
|
625
712
|
// Sonnet/Haiku. Anthropic's official effort support list names exactly
|
|
626
|
-
//
|
|
627
|
-
//
|
|
628
|
-
//
|
|
629
|
-
//
|
|
630
|
-
//
|
|
631
|
-
//
|
|
713
|
+
// the 5.5/5/5.1 generations plus opus-4-5/4-6/4-7/4-8/sonnet-4-6 -- none
|
|
714
|
+
// of the models matching this entry take the effort parameter (their
|
|
715
|
+
// thinking rides thinking.type), so a ladder here would be refused.
|
|
716
|
+
// `false` is the honest "no effort control" declaration, matching the
|
|
717
|
+
// openai-chat convention. (The 5.5 generation -- haiku/opus/sonnet-5-5,
|
|
718
|
+
// including aggregator spellings like 'haiku-5.5' -- keys its own
|
|
719
|
+
// strictly longer entry above.)
|
|
632
720
|
patterns: ["claude"],
|
|
633
721
|
efforts: false,
|
|
634
722
|
input: ["text", "image"],
|
|
635
723
|
contextWindow: 2e5,
|
|
636
724
|
maxTokens: 64e3,
|
|
637
|
-
note: "Claude 3.x \u4E0E Sonnet 4.5 / Haiku 4.5\uFF1A\u5B98\u65B9 effort \u53C2\u6570\u4E0D\u652F\u6301\uFF08\u4EC5
|
|
725
|
+
note: "Claude 3.x \u4E0E Sonnet 4.5 / Haiku 4.5\uFF1A\u5B98\u65B9 effort \u53C2\u6570\u4E0D\u652F\u6301\uFF08\u4EC5 5.5/5/5.1 \u4EE3\u3001Opus 4.5/4.6/4.7/4.8\u3001Sonnet 4.6 \u652F\u6301\uFF09\uFF0C\u601D\u8003\u7531 thinking.type \u63A7\u5236\u2014\u2014\u52FF\u52FE\u601D\u8003\u6863\u3002\u53C2\u8003\u5BB9\u91CF 200K / 64K\uFF08Haiku 3.5 \u4E3A\u7EAF\u6587\u672C\uFF0C\u6309\u9700\u53D6\u6D88\u56FE\u7247\uFF09\u3002Haiku 5.5 \u53CA\u6574\u4E2A 5.5 \u4EE3\u89C1\u4E0A\u65B9 anthropic-claude-5-5 \u6761\u76EE\u3002"
|
|
638
726
|
},
|
|
639
727
|
{
|
|
640
728
|
id: "google-gemini",
|
|
@@ -651,27 +739,39 @@ var KNOWLEDGE_BASE = [
|
|
|
651
739
|
input: ["text", "image"],
|
|
652
740
|
contextWindow: 1048576,
|
|
653
741
|
maxTokens: 65536,
|
|
654
|
-
note: "Gemini \u901A\u7528\u5B89\u5168\u6863\uFF1ALow / Medium / High\uFF08\u5B98\u65B9 OpenAI \u517C\u5BB9\u6620\u5C04\u8868\u53E6\u6536 minimal\uFF1A2.5 \u7CFB\u6620\u5C04\u4E3A 1,024 \u9884\u7B97\u30013.1 Flash-Lite/3 Flash \u539F\u751F minimal\u30013.1 Pro \u843D low\uFF09\u3002none \u4EC5\u80FD\u5173 2.5 \u975E Pro\uFF1B2.5 Pro \u4E0E 3 \u4EE3\u4E0D\u53EF\u5173\uFF1B\u5404\u578B\u9ED8\u8BA4\u4E0D\u4E00\uFF08flash-lite \u9ED8\u8BA4\u5173\uFF09\u3002\u5B98\u65B9\u53E6\u6536\u97F3\u9891/\u89C6\u9891/PDF\u3002"
|
|
742
|
+
note: "Gemini \u901A\u7528\u5B89\u5168\u6863\uFF1ALow / Medium / High\uFF08\u5B98\u65B9 OpenAI \u517C\u5BB9\u6620\u5C04\u8868\u53E6\u6536 minimal\uFF1A2.5 \u7CFB\u6620\u5C04\u4E3A 1,024 \u9884\u7B97\u30013.1 Flash-Lite/3 Flash \u539F\u751F minimal\u30013.1 Pro \u843D low\uFF09\u3002none \u4EC5\u80FD\u5173 2.5 \u975E Pro\uFF1B2.5 Pro \u4E0E 3 \u4EE3\u4E0D\u53EF\u5173\uFF1B\u5404\u578B\u9ED8\u8BA4\u4E0D\u4E00\uFF08flash-lite \u9ED8\u8BA4\u5173\uFF09\u3002\u5B98\u65B9\u53E6\u6536\u97F3\u9891/\u89C6\u9891/PDF\u3002Gemma-4 \u89C1\u4E0B\u6761\u3002"
|
|
743
|
+
},
|
|
744
|
+
{
|
|
745
|
+
id: "google-gemma-4",
|
|
746
|
+
// 2026-10 calibration NEW entry: pi-ai 1.2.0 keys gemma-4-26b-a4b-it /
|
|
747
|
+
// gemma-4-31b-it with a THREE-slot map {off:null, minimal:'MINIMAL',
|
|
748
|
+
// high:'HIGH'} -- the Google native spelling for this open model goes
|
|
749
|
+
// upper-case enum style, and the medium/low rungs are ABSENT (they are
|
|
750
|
+
// not accepted). Vision per catalog; 262,144 in / 32,768 out.
|
|
751
|
+
patterns: ["gemma-4"],
|
|
752
|
+
efforts: { off: null, minimal: "MINIMAL", high: "HIGH" },
|
|
753
|
+
compat: { thinkingFormat: "openai", supportsReasoningEffort: true },
|
|
754
|
+
input: ["text", "image"],
|
|
755
|
+
contextWindow: 262144,
|
|
756
|
+
maxTokens: 32768,
|
|
757
|
+
note: "Gemma 4\uFF0826b/31b-it\uFF09\uFF1A\u4E09\u6863 Minimal / High\uFF08\u6863\u4F4D\u7EBF\u4E3A\u5B98\u65B9\u5927\u5199\u679A\u4E3E\u62FC\u5199\uFF09\uFF0Coff \u4EE5\u7701\u7565\u8868\u8FBE\uFF1BLow/Medium \u4E0D\u88AB\u63A5\u53D7\u3002\u5E26\u56FE\u8F93\u5165\uFF0C262,144 / 32,768\uFF082026-10 \u6821\u51C6\u65B0\u589E\uFF09\u3002"
|
|
655
758
|
},
|
|
656
759
|
{
|
|
657
760
|
id: "xai-grok-4-7",
|
|
658
761
|
// grok-4.7 shipped after the 2026-08 pass that read it as 404 upstream;
|
|
659
|
-
// that reading is retired here.
|
|
660
|
-
//
|
|
661
|
-
//
|
|
662
|
-
//
|
|
663
|
-
//
|
|
664
|
-
//
|
|
665
|
-
// and whether thinking can be closed are NOT established, so neither an
|
|
666
|
-
// `off` nor a defaultEffort is declared. Capacity follows the sources
|
|
667
|
-
// that agree (500K context); max output disagrees across catalogs
|
|
668
|
-
// (450K vs 500K), so it stays out.
|
|
762
|
+
// that reading is retired here. 2026-10 calibration: pi-ai 1.2.0 is
|
|
763
|
+
// now a first-party catalog entry -- the ladder
|
|
764
|
+
// off[omit]/low/medium/high/xhigh is confirmed (max stays ABSENT), and
|
|
765
|
+
// the earlier "xhigh unverified" hedge is retired. Capacity: 500K in /
|
|
766
|
+
// 500K out per the catalog, so the "max output disagrees across
|
|
767
|
+
// catalogs" note is resolved as 500,000.
|
|
669
768
|
patterns: ["grok-4.7"],
|
|
670
769
|
efforts: { low: "low", medium: "medium", high: "high", xhigh: "xhigh" },
|
|
671
770
|
compat: { thinkingFormat: "openai", supportsReasoningEffort: true },
|
|
672
771
|
input: ["text", "image"],
|
|
673
772
|
contextWindow: 5e5,
|
|
674
|
-
|
|
773
|
+
maxTokens: 5e5,
|
|
774
|
+
note: 'Grok 4.7\uFF1A\u6863\u4F4D Low / Medium / High / XHigh\uFF0C\u601D\u8003\u4E0D\u53EF\u5173\u95ED\uFF08off \u4EC5\u4EE5\u7701\u7565\u8868\u8FBE\uFF09\uFF1B\u5E26\u56FE\u8F93\u5165\uFF0C500K \u4E0A\u4E0B\u6587 / 500K \u8F93\u51FA\uFF082026-10 \u6821\u51C6\uFF1Api-ai 1.2.0 \u5B98\u65B9\u76EE\u5F55\u786E\u8BA4\u6863\u4F4D\u4E0E\u5BB9\u91CF\uFF0C"\u4E0A\u6E38 404"\u4E0E"\u6863\u4F4D\u672A\u8BC1\u5B9E"\u4E24\u6761\u65E7\u8BB0\u5F55\u4F5C\u5E9F\uFF09\u3002grok-4.5 \u4F20 xhigh \u88AB\u9759\u9ED8\u6309 High \u5904\u7406\u7684\u8BF4\u660E\u89C1\u5176\u6761\u76EE\u3002'
|
|
675
775
|
},
|
|
676
776
|
{
|
|
677
777
|
id: "xai-grok-high",
|
|
@@ -706,17 +806,18 @@ var KNOWLEDGE_BASE = [
|
|
|
706
806
|
// levels (none / low / medium / high) with a 1M context window; the
|
|
707
807
|
// deprecated grok-4-fast/grok-4-1-fast/grok-4-0709 slugs redirect to
|
|
708
808
|
// grok-4.3 at low/none. The old "no none for 4.3" reading of the docs
|
|
709
|
-
// was wrong and is fixed here.
|
|
809
|
+
// was wrong and is fixed here. 2026-10 calibration: pi-ai 1.2.0's
|
|
810
|
+
// catalog has NO xhigh for 4.3 (it joins at 4.6/4.7) and puts the
|
|
811
|
+
// output cap at 30,000 -- the xhigh rung from the earlier pass is
|
|
812
|
+
// retired.
|
|
710
813
|
patterns: ["grok-4.3"],
|
|
711
|
-
|
|
712
|
-
// spans none/low/medium/high/XHIGH with defaultEffort "low" -- xhigh
|
|
713
|
-
// joined the ladder after the 2026-08 pass, and low is the default.
|
|
714
|
-
efforts: { off: "none", low: "low", medium: "medium", high: "high", xhigh: "xhigh" },
|
|
814
|
+
efforts: { off: "none", low: "low", medium: "medium", high: "high" },
|
|
715
815
|
defaultEffort: "low",
|
|
716
816
|
compat: { thinkingFormat: "openai", supportsReasoningEffort: true },
|
|
717
817
|
input: ["text", "image"],
|
|
718
818
|
contextWindow: 1e6,
|
|
719
|
-
|
|
819
|
+
maxTokens: 3e4,
|
|
820
|
+
note: "Grok 4.3\uFF1A\u5B98\u65B9\u56DB\u7EA7 reasoning effort\uFF08None / Low(\u9ED8\u8BA4) / Medium / High\uFF09\uFF0C1M \u4E0A\u4E0B\u6587 / 30,000 \u8F93\u51FA\uFF082026-10 \u6821\u51C6\uFF1AXHigh \u6863\u6309 pi-ai 1.2.0 \u76EE\u5F55\u79FB\u9664\u2014\u2014\u5B83\u81EA 4.6 \u8D77\u624D\u52A0\u5165\uFF1B\u5E26\u56FE\u8F93\u5165\uFF09\u3002grok-4-fast \u7B49\u65E7 slug 2026-05-15 \u8D77\u81EA\u52A8\u91CD\u5B9A\u5411\u5230\u672C\u578B\u53F7\u3002"
|
|
720
821
|
},
|
|
721
822
|
{
|
|
722
823
|
id: "xai-grok",
|
|
@@ -734,40 +835,74 @@ var KNOWLEDGE_BASE = [
|
|
|
734
835
|
},
|
|
735
836
|
{
|
|
736
837
|
id: "mistral-magistral",
|
|
737
|
-
//
|
|
738
|
-
//
|
|
739
|
-
//
|
|
740
|
-
//
|
|
741
|
-
//
|
|
742
|
-
//
|
|
743
|
-
// parameter onto magistral ids can be tuned by hand.
|
|
838
|
+
// 2026-10 calibration REVERSAL: pi-ai 1.2.0's official catalog keys
|
|
839
|
+
// magistral-medium-latest on the new mistral-conversations protocol
|
|
840
|
+
// WITH a two-state effort map (none/high, off spelled 'none') -- the
|
|
841
|
+
// earlier "no effort parameter / deprecated" reading is retired. The
|
|
842
|
+
// ladder is the same two-state shape the modern mistral-medium/small
|
|
843
|
+
// line takes; vision per the catalog; capacity 262,144 in / 16,384 out.
|
|
744
844
|
patterns: ["magistral"],
|
|
745
|
-
efforts:
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
845
|
+
efforts: { off: "none", high: "high" },
|
|
846
|
+
// The catalog's no-parameter behaviour maps to the 'none' wire value.
|
|
847
|
+
defaultEffort: "off",
|
|
848
|
+
compat: { thinkingFormat: "openai", supportsReasoningEffort: true },
|
|
849
|
+
input: ["text", "image"],
|
|
850
|
+
contextWindow: 262144,
|
|
851
|
+
maxTokens: 16384,
|
|
852
|
+
note: 'Magistral\uFF08magistral-medium-latest\uFF09\uFF1A2026-10 \u6821\u51C6\u2014\u2014pi-ai 1.2.0 \u76EE\u5F55\u663E\u793A\u73B0\u5F79 magistral \u8D70 mistral-conversations \u534F\u8BAE\u5E76\u63A5\u53D7 effort\uFF08None / High \u4E24\u6863\uFF0C\u9ED8\u8BA4 None\uFF09\uFF0C\u5E26\u56FE\u8F93\u5165\uFF0C262,144 / 16,384\u3002\u65E9\u524D"\u8BE5\u7EBF\u65E0 effort \u53C2\u6570\u4E14\u5DF2\u5F03\u7528"\u7684\u8BB0\u5F55\u4F5C\u5E9F\u3002'
|
|
750
853
|
},
|
|
751
854
|
{
|
|
752
855
|
id: "mistral-medium-3",
|
|
753
856
|
// Official reasoning page + mistral-common request.py (the first-party
|
|
754
857
|
// protocol enum) name the reasoning_effort models: values are exactly
|
|
755
|
-
// none/high.
|
|
756
|
-
//
|
|
757
|
-
//
|
|
758
|
-
//
|
|
759
|
-
//
|
|
760
|
-
// reasoning_effort) does not get the ladder.
|
|
858
|
+
// none/high. 2026-10 calibration adds pi-ai 1.2.0's catalog ids: the
|
|
859
|
+
// reasoning line now spans mistral-large-4 (1M/262K, vision),
|
|
860
|
+
// mistral-medium-2604 / mistral-medium-latest (262K/262K, vision) plus
|
|
861
|
+
// the earlier small-2603/small-latest pair -- all on the same
|
|
862
|
+
// two-state none/high map on the mistral-conversations protocol.
|
|
761
863
|
// Normalization folds '.' and '-' to the same space, so the one dotted
|
|
762
864
|
// spelling also keys the API id (mistral-medium-3-5).
|
|
763
|
-
patterns: [
|
|
865
|
+
patterns: [
|
|
866
|
+
"mistral-medium-3.5",
|
|
867
|
+
"mistral-large-4",
|
|
868
|
+
"mistral-medium-2604",
|
|
869
|
+
"mistral-medium-latest",
|
|
870
|
+
"mistral-small-latest",
|
|
871
|
+
"mistral-small-2603"
|
|
872
|
+
],
|
|
764
873
|
efforts: { off: "none", high: "high" },
|
|
765
874
|
// mistral-common's ModelSettings defaults reasoning_effort to None --
|
|
766
875
|
// the endpoint's no-parameter behaviour IS the none/off level.
|
|
767
876
|
defaultEffort: "off",
|
|
768
877
|
compat: { thinkingFormat: "openai", supportsReasoningEffort: true },
|
|
769
878
|
input: ["text", "image"],
|
|
770
|
-
note: "Mistral \u73B0\u5F79\u63A8\u7406\u6863\uFF1ANone / High\
|
|
879
|
+
note: "Mistral \u73B0\u5F79\u63A8\u7406\u6863\uFF082026-10 \u6269\u5145\uFF09\uFF1ANone / High \u4E24\u6863\uFF0C\u5B98\u65B9 reasoning_effort \u679A\u4E3E\u5373 none/high\uFF1B\u73B0\u5F79\u578B\u53F7 mistral-large-4\uFF081M\uFF09\u3001mistral-medium-3.5\uFF082604/latest\uFF09\u3001mistral-small-2603\uFF08Small 4\uFF09\u7ECF\u5B83\u63A7\u5236\uFF0C\u5747\u5E26\u89C6\u89C9\u3002\u5BB9\u91CF\uFF1Alarge-4 262,144 \u8F93\u51FA\u3001medium 262,144 \u8F93\u51FA\u3001small 256,000 \u8F93\u51FA\uFF08\u4E0A\u4E0B\u6587\u5747 262,144\uFF09\u3002\u975E\u63A8\u7406\u65E7\u6B3E\u89C1\u4E0B\u6761\u3002"
|
|
880
|
+
},
|
|
881
|
+
{
|
|
882
|
+
id: "mistral-legacy",
|
|
883
|
+
// 2026-10 calibration: pi-ai 1.2.0 keys the NON-reasoning mistral line
|
|
884
|
+
// (r=false, no tlm) separately from the two-state reasoning line above.
|
|
885
|
+
// These slugs take no effort parameter at all; matching them here keeps
|
|
886
|
+
// auto-adapt from handing them the reasoning ladder via the generic
|
|
887
|
+
// 'mistral' stem. devstral/ministral/codestral/pixtral/voxtral carry
|
|
888
|
+
// the stem too and are covered by the same false declaration.
|
|
889
|
+
patterns: [
|
|
890
|
+
"mistral-large-2411",
|
|
891
|
+
"mistral-large-latest",
|
|
892
|
+
"mistral-large-2512",
|
|
893
|
+
"mistral-medium-2505",
|
|
894
|
+
"mistral-medium-2508",
|
|
895
|
+
"mistral-small-2506",
|
|
896
|
+
"mistral-nemo",
|
|
897
|
+
"devstral",
|
|
898
|
+
"ministral",
|
|
899
|
+
"codestral",
|
|
900
|
+
"pixtral",
|
|
901
|
+
"voxtral"
|
|
902
|
+
],
|
|
903
|
+
efforts: false,
|
|
904
|
+
input: ["text", "image"],
|
|
905
|
+
note: "Mistral \u975E\u63A8\u7406\u7EBF\uFF082026-10 \u65B0\u589E\u6761\u76EE\uFF09\uFF1Alarge-2411/2512/latest\u3001medium-2505/2508\u3001small-2506\u3001nemo \u53CA devstral/ministral/codestral/pixtral/voxtral \u7B49\u4E13\u7528\u7EBF\u5747\u4E0D\u63A5\u53D7 effort \u53C2\u6570\uFF08\u52FF\u52FE\u601D\u8003\u6863\uFF09\u3002\u591A\u6570\u73B0\u5F79\u6B3E\u5E26\u89C6\u89C9\uFF08large-2411 \u4E3A\u7EAF\u6587\u672C\uFF09\u3002"
|
|
771
906
|
},
|
|
772
907
|
{
|
|
773
908
|
id: "qwen-vision",
|
|
@@ -884,7 +1019,12 @@ var KNOWLEDGE_BASE = [
|
|
|
884
1019
|
// variant the 5.3 ladder (low/high/max). Native multimodal (320B), which
|
|
885
1020
|
// the text-only glm-5.3 entry must NOT claim — hence this separate entry;
|
|
886
1021
|
// the longer pattern wins over plain 'glm-5.3'.
|
|
887
|
-
|
|
1022
|
+
// 'glm-5.3-flashx' is the same model under a relay spelling (ofox lists
|
|
1023
|
+
// 'z-ai/glm-5.3-flashx' named 'GLM-5.3-FlashX'). It must be listed
|
|
1024
|
+
// explicitly: boundary matching rejects the bare 'glm 5 3 flash' needle
|
|
1025
|
+
// there because the next character is the alnum 'x', and the shorter
|
|
1026
|
+
// 'glm-5.3' would then claim the id as the text-only model.
|
|
1027
|
+
patterns: ["glm-5.3-flash", "glm-5.3-flashx"],
|
|
888
1028
|
efforts: { low: "low", high: "high", max: "max" },
|
|
889
1029
|
defaultEffort: "max",
|
|
890
1030
|
compat: { thinkingFormat: "zai", supportsReasoningEffort: true },
|
|
@@ -975,6 +1115,23 @@ var KNOWLEDGE_BASE = [
|
|
|
975
1115
|
contextWindow: 262144,
|
|
976
1116
|
note: "Kimi K2.7 Code\uFF08\u542B\u9AD8\u901F\u7248\uFF09\uFF1A\u59CB\u7EC8\u601D\u8003\u2014\u2014thinking.type \u4EC5\u63A5\u53D7 enabled\uFF08\u4F20 disabled \u62A5\u9519\uFF09\uFF0C\u65E0 Off \u6863\uFF1B\u5E26\u89C6\u89C9\uFF0C256K\u3002"
|
|
977
1117
|
},
|
|
1118
|
+
{
|
|
1119
|
+
id: "kimi-for-coding",
|
|
1120
|
+
// 2026-10 calibration NEW entry: pi-ai 1.2.0 keys kimi-for-coding on
|
|
1121
|
+
// anthropic-messages with a four-rung map (off omit-expressed, then
|
|
1122
|
+
// low/high/max) plus forceAdaptiveThinking -- Moonshot's coding
|
|
1123
|
+
// endpoint speaks the Anthropic shape, not the deepseek thinking.type
|
|
1124
|
+
// switch the K2 line uses. -highspeed twin has NO tlm (no effort
|
|
1125
|
+
// control); 1M in / 32,768 out, vision.
|
|
1126
|
+
patterns: ["kimi-for-coding"],
|
|
1127
|
+
efforts: { low: "low", high: "high", max: "max" },
|
|
1128
|
+
compat: { supportsReasoningEffort: true },
|
|
1129
|
+
anthropicAdaptive: true,
|
|
1130
|
+
input: ["text", "image"],
|
|
1131
|
+
contextWindow: 1048576,
|
|
1132
|
+
maxTokens: 32768,
|
|
1133
|
+
note: "Kimi for Coding\uFF1AMoonshot \u7F16\u7801\u4E13\u7EBF\u8D70 anthropic-messages \u534F\u8BAE\u3001\u81EA\u9002\u5E94\u601D\u8003\uFF0C\u6863\u4F4D Low / High / Max\uFF08off \u4EE5\u7701\u7565\u8868\u8FBE\uFF09\uFF1B\u5E26\u56FE\u8F93\u5165\uFF0C1M \u4E0A\u4E0B\u6587 / 32,768 \u8F93\u51FA\u3002\u9AD8\u901F\u7248\uFF08-highspeed\uFF09\u65E0 effort \u63A7\u4EF6\uFF082026-10 \u6821\u51C6\u65B0\u589E\uFF09\u3002"
|
|
1134
|
+
},
|
|
978
1135
|
{
|
|
979
1136
|
id: "kimi-moonshot-v1-vision",
|
|
980
1137
|
// Legacy Moonshot V1 vision variants (official model list): plain
|
|
@@ -1090,18 +1247,35 @@ var KNOWLEDGE_BASE = [
|
|
|
1090
1247
|
input: ["text", "image"],
|
|
1091
1248
|
note: "\u8C46\u5305\u6863\u4F4D\uFF1AOff / Low / Medium / High\u2014\u2014effort \u9636\u68AF\u4ECD\u662F\u793E\u533A\u8BC1\u636E\u3001\u5B98\u65B9 Ark \u6587\u6863\u660E\u5217\u7684\u4E3A thinking.type \u5F00\u5173\uFF082026-08-24 \u590D\u6838\u4ECD\u672A\u89C1\u5230 effort \u5B98\u65B9\u660E\u6587\uFF09\u3002seed \u4EE3\u6536\u56FE\uFF081.5-pro \u4F8B\u5916\uFF09\u3002"
|
|
1092
1249
|
},
|
|
1250
|
+
{
|
|
1251
|
+
id: "minimax-m2",
|
|
1252
|
+
// 2026-10 calibration NEW entry: pi-ai 1.2.0 keys MiniMax-M2.5 (and the
|
|
1253
|
+
// M2 line) with NO thinkingLevelMap and supportsReasoningEffort:false
|
|
1254
|
+
// on the anthropic-messages protocol -- unlike M3 below, the M2
|
|
1255
|
+
// generation predates the thinking parameter entirely. `false` keeps
|
|
1256
|
+
// auto-adapt from handing it the M3 declaration. Text-only;
|
|
1257
|
+
// 204,800 in / 131,072 out.
|
|
1258
|
+
patterns: ["minimax-m2"],
|
|
1259
|
+
efforts: false,
|
|
1260
|
+
input: ["text"],
|
|
1261
|
+
contextWindow: 204800,
|
|
1262
|
+
maxTokens: 131072,
|
|
1263
|
+
note: "MiniMax-M2 / M2.5\uFF08\u542B -highspeed\uFF09\uFF1A\u65E0\u601D\u8003\u63A7\u4EF6\u3001\u65E0 effort \u53C2\u6570\uFF08M3 \u624D\u5F15\u5165 thinking \u53C2\u6570\uFF09\uFF0C\u7EAF\u6587\u672C\uFF0C204,800 / 131,072\uFF082026-10 \u6821\u51C6\u65B0\u589E\uFF1BM3 \u89C1\u4E0B\u6761\uFF09\u3002"
|
|
1264
|
+
},
|
|
1093
1265
|
{
|
|
1094
1266
|
id: "minimax-m3",
|
|
1095
1267
|
// Official M3 README: a thinking parameter with enabled / adaptive /
|
|
1096
1268
|
// disabled -- NO reasoning_effort ladder. That is exactly the
|
|
1097
1269
|
// deepseek-shaped toggle, so the kimi-style declaration fits; "adaptive"
|
|
1098
1270
|
// is not expressible in the level vocabulary and defaults apply.
|
|
1271
|
+
// 2026-10 calibration adds the catalog's 512,000 output cap.
|
|
1099
1272
|
patterns: ["minimax-m3"],
|
|
1100
1273
|
efforts: { off: null, high: "high" },
|
|
1101
1274
|
compat: { thinkingFormat: "deepseek" },
|
|
1102
1275
|
input: ["text", "image"],
|
|
1103
1276
|
contextWindow: 1048576,
|
|
1104
|
-
|
|
1277
|
+
maxTokens: 512e3,
|
|
1278
|
+
note: "MiniMax-M3\uFF1A\u5B98\u65B9 thinking \u53C2\u6570 enabled/adaptive/disabled\uFF08\u65E0 effort \u6863\uFF09\uFF0C\u5F00=High\u3001\u5173=disabled\uFF1B\u539F\u751F\u591A\u6A21\u6001\uFF08\u56FE/\u89C6\u9891\uFF0C\u6838\u5FC3\u8BCD\u8868\u4EC5\u542B\u56FE\uFF09\uFF0C1M \u4E0A\u4E0B\u6587 / 512,000 \u8F93\u51FA\uFF082026-10 \u6821\u51C6\u8865\u5BB9\u91CF\uFF09\u3002"
|
|
1105
1279
|
},
|
|
1106
1280
|
{
|
|
1107
1281
|
id: "mimo-v2-6",
|
|
@@ -1152,6 +1326,70 @@ var KNOWLEDGE_BASE = [
|
|
|
1152
1326
|
input: ["text"],
|
|
1153
1327
|
contextWindow: 131072,
|
|
1154
1328
|
note: "\u767E\u5EA6\u5343\u5E06 ERNIE \u7CFB\uFF1A\u5B98\u65B9 OpenAI \u517C\u5BB9\u63A5\u53E3\u65E0 reasoning_effort \u53C2\u6570\u2014\u2014\u601D\u8003\u7531\u6A21\u578B\u53D8\u4F53\u51B3\u5B9A\uFF08-Thinking \u7CFB\u5217\u59CB\u7EC8\u601D\u8003\u3001\u666E\u901A\u7CFB\u5217\u4E0D\u601D\u8003\uFF09\uFF0C\u52FF\u52FE\u601D\u8003\u6863\u3002ERNIE 4.5 Turbo VL \u652F\u6301\u56FE\u7247\uFF0C\u6309\u9700\u624B\u52FE\uFF1B\u53C2\u8003\u5BB9\u91CF\u53D6 Turbo 128K \u6863\u3002"
|
|
1329
|
+
},
|
|
1330
|
+
{
|
|
1331
|
+
id: "fireworks-ember",
|
|
1332
|
+
// 2026-10 calibration NEW entry: Fireworks' ember-1 keys on
|
|
1333
|
+
// anthropic-messages in pi-ai 1.2.0 with a five-rung map (off spelled
|
|
1334
|
+
// 'none') plus forceAdaptiveThinking/allowEmptySignature -- a relay
|
|
1335
|
+
// model that genuinely dispatches output_config.effort. Vision;
|
|
1336
|
+
// 1,048,576 in / 131,072 out.
|
|
1337
|
+
patterns: ["ember-1"],
|
|
1338
|
+
efforts: { off: "none", low: "low", medium: "medium", high: "high", max: "max" },
|
|
1339
|
+
compat: { supportsReasoningEffort: true },
|
|
1340
|
+
anthropicAdaptive: true,
|
|
1341
|
+
input: ["text", "image"],
|
|
1342
|
+
contextWindow: 1048576,
|
|
1343
|
+
maxTokens: 131072,
|
|
1344
|
+
note: "Fireworks ember-1\uFF1Aanthropic-messages \u534F\u8BAE\u81EA\u9002\u5E94\u601D\u8003\uFF0C\u6863\u4F4D None(\u5173) / Low / Medium / High / Max\uFF08off \u663E\u5F0F none \u62FC\u5199\uFF09\uFF1B\u5E26\u56FE\u8F93\u5165\uFF0C1M \u4E0A\u4E0B\u6587 / 131,072 \u8F93\u51FA\uFF082026-10 \u6821\u51C6\u65B0\u589E\uFF09\u3002"
|
|
1345
|
+
},
|
|
1346
|
+
{
|
|
1347
|
+
id: "thinkingmachines-inkling",
|
|
1348
|
+
// 2026-10 calibration NEW entry: pi-ai 1.2.0 keys inkling (Thinking
|
|
1349
|
+
// Machines) with the FULL seven-rung ladder incl. explicit max, vision,
|
|
1350
|
+
// 524,288 in / 131,072 out. On together.ai the relay exposes
|
|
1351
|
+
// supportsReasoningEffort:false -- the ladder below still keys the
|
|
1352
|
+
// model name first; relays that forward it accept the rungs.
|
|
1353
|
+
patterns: ["inkling"],
|
|
1354
|
+
efforts: {
|
|
1355
|
+
off: "none",
|
|
1356
|
+
minimal: "minimal",
|
|
1357
|
+
low: "low",
|
|
1358
|
+
medium: "medium",
|
|
1359
|
+
high: "high",
|
|
1360
|
+
xhigh: "xhigh",
|
|
1361
|
+
max: "max"
|
|
1362
|
+
},
|
|
1363
|
+
defaultEffort: "medium",
|
|
1364
|
+
compat: { thinkingFormat: "openai", supportsReasoningEffort: true },
|
|
1365
|
+
input: ["text", "image"],
|
|
1366
|
+
contextWindow: 524288,
|
|
1367
|
+
maxTokens: 131072,
|
|
1368
|
+
note: "Thinking Machines Inkling\uFF1A\u5168\u6863 Minimal / Low / Medium(\u9ED8\u8BA4) / High / XHigh / Max\uFF0Coff \u663E\u5F0F none\uFF1B\u5E26\u56FE\u8F93\u5165\uFF0C512K \u4E0A\u4E0B\u6587 / 131,072 \u8F93\u51FA\uFF082026-10 \u6821\u51C6\u65B0\u589E\uFF1Btogether \u4E2D\u7EE7\u4FA7 effort \u53C2\u6570\u672A\u5F00\u653E\uFF0C\u9700\u652F\u6301\u65B9\u8F6C\u53D1\uFF09\u3002"
|
|
1369
|
+
},
|
|
1370
|
+
{
|
|
1371
|
+
id: "antling-ring",
|
|
1372
|
+
// 2026-10 calibration NEW entry: Ant Ling's Ring-2.6-1T takes a
|
|
1373
|
+
// two-rung map (high/xhigh) with off omit-expressed; Ling-2.6(-flash)
|
|
1374
|
+
// is r=false (non-reasoning) and keys the second entry. 262,144 in /
|
|
1375
|
+
// 65,536 out per pi-ai 1.2.0.
|
|
1376
|
+
patterns: ["ring-2.6"],
|
|
1377
|
+
efforts: { high: "high", xhigh: "xhigh" },
|
|
1378
|
+
compat: { thinkingFormat: "openai", supportsReasoningEffort: true },
|
|
1379
|
+
input: ["text"],
|
|
1380
|
+
contextWindow: 262144,
|
|
1381
|
+
maxTokens: 65536,
|
|
1382
|
+
note: "\u8682\u8681 Ling Ring-2.6-1T\uFF1A\u6863\u4F4D High / XHigh\uFF08off \u4EE5\u7701\u7565\u8868\u8FBE\uFF09\uFF1B262,144 / 65,536\uFF082026-10 \u6821\u51C6\u65B0\u589E\uFF09\u3002"
|
|
1383
|
+
},
|
|
1384
|
+
{
|
|
1385
|
+
id: "antling-ling",
|
|
1386
|
+
// 2026-10 calibration NEW entry: Ling-2.6-1T / Ling-2.6-flash are
|
|
1387
|
+
// non-reasoning (r=false, no tlm in pi-ai 1.2.0) -- declared false so
|
|
1388
|
+
// auto-adapt does not hand them the Ring ladder.
|
|
1389
|
+
patterns: ["ling-2.6"],
|
|
1390
|
+
efforts: false,
|
|
1391
|
+
input: ["text"],
|
|
1392
|
+
note: "\u8682\u8681 Ling-2.6\uFF08\u542B -flash\uFF09\uFF1A\u975E\u601D\u8003\u6A21\u578B\uFF0C\u65E0 effort \u63A7\u4EF6\uFF082026-10 \u6821\u51C6\u65B0\u589E\uFF1BRing-2.6 \u601D\u8003\u7EBF\u89C1\u4E0A\u6761\uFF09\u3002"
|
|
1155
1393
|
}
|
|
1156
1394
|
];
|
|
1157
1395
|
var GENERIC_OPENAI_EFFORTS = {
|