@yanlinglabs/winter-provider-catalog 0.0.23 → 0.0.27

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/dist/index.js CHANGED
@@ -48,6 +48,12 @@ var CONTINUATIONS = ["none", "plaintext", "opaque-provider-state", "server-respo
48
48
  var READABLE_STATES = ["none", "summary", "full-exposed"];
49
49
  var REPLAY_SCOPES = ["current-tool-loop", "current-turn", "selected-turns", "all-turns"];
50
50
  var TOOL_LOOP_REQUIREMENTS = ["hard-error", "silent-degradation", "not-required"];
51
+ var EFFORT_REQUEST_FIELDS = ["output_config.effort"];
52
+ var BLOCK_BINDING_BETAS = ["thinking-binding-controls-2026-08-01"];
53
+ var PER_MESSAGE_EFFORT_BETAS = ["mid-conversation-output-config-2026-07-01"];
54
+ var PER_MESSAGE_EFFORT_ITEMS = ["configuration_update"];
55
+ var MID_CONVERSATION_TOOL_CHANGE_BETAS = ["mid-conversation-tool-changes-2026-07-01"];
56
+ var INLINE_TOOL_DEFINITION_BETAS = ["inline-tools-2026-09-15"];
51
57
  var CATALOG_VOCABULARIES = {
52
58
  protocols: PROTOCOLS,
53
59
  authKinds: AUTH_KINDS,
@@ -71,7 +77,13 @@ var CATALOG_VOCABULARIES = {
71
77
  continuations: CONTINUATIONS,
72
78
  readableStates: READABLE_STATES,
73
79
  replayScopes: REPLAY_SCOPES,
74
- toolLoopRequirements: TOOL_LOOP_REQUIREMENTS
80
+ toolLoopRequirements: TOOL_LOOP_REQUIREMENTS,
81
+ effortRequestFields: EFFORT_REQUEST_FIELDS,
82
+ blockBindingBetas: BLOCK_BINDING_BETAS,
83
+ perMessageEffortBetas: PER_MESSAGE_EFFORT_BETAS,
84
+ perMessageEffortItems: PER_MESSAGE_EFFORT_ITEMS,
85
+ midConversationToolChangeBetas: MID_CONVERSATION_TOOL_CHANGE_BETAS,
86
+ inlineToolDefinitionBetas: INLINE_TOOL_DEFINITION_BETAS
75
87
  };
76
88
  var SECRET_FIELD_NAME_RE = /^(?:api[_-]?key|apikey|secret|secret[_-]?key|password|passwd|token|access[_-]?token|refresh[_-]?token|id[_-]?token|bearer|private[_-]?key|client[_-]?secret|session[_-]?token|credential|credentials|authorization|auth[_-]?token|aws[_-]?secret[_-]?access[_-]?key|aws[_-]?access[_-]?key[_-]?id)$/i;
77
89
  var SECRET_VALUE_PATTERNS = [
@@ -286,6 +298,35 @@ function checkReasoning(errs, v, path) {
286
298
  if (typeof val !== "string" || !TOOL_LOOP_REQUIREMENTS.includes(val))
287
299
  errs.add(p, `unknown tool-loop requirement ${describe(val)}`);
288
300
  }, false);
301
+ checkEvidence(errs, v["effortRequest"], `${path}.effortRequest`, (val, p) => {
302
+ if (!isRecord(val))
303
+ return errs.add(p, `expected {field}, got ${describe(val)}`);
304
+ for (const key of Object.keys(val))
305
+ if (key !== "field")
306
+ errs.add(`${p}.${key}`, "unknown key");
307
+ if (typeof val["field"] !== "string" || !EFFORT_REQUEST_FIELDS.includes(val["field"]))
308
+ errs.add(`${p}.field`, `unknown effort request field ${describe(val["field"])}`);
309
+ }, false);
310
+ checkEvidence(errs, v["blockBinding"], `${path}.blockBinding`, (val, p) => {
311
+ if (!isRecord(val))
312
+ return errs.add(p, `expected {beta}, got ${describe(val)}`);
313
+ for (const key of Object.keys(val))
314
+ if (key !== "beta")
315
+ errs.add(`${p}.${key}`, "unknown key");
316
+ if (typeof val["beta"] !== "string" || !BLOCK_BINDING_BETAS.includes(val["beta"]))
317
+ errs.add(`${p}.beta`, `unknown block-binding beta ${describe(val["beta"])}`);
318
+ }, false);
319
+ checkEvidence(errs, v["perMessageEffort"], `${path}.perMessageEffort`, (val, p) => {
320
+ if (!isRecord(val))
321
+ return errs.add(p, `expected {beta} or {item}, got ${describe(val)}`);
322
+ const keys = Object.keys(val);
323
+ if (keys.length !== 1 || keys[0] !== "beta" && keys[0] !== "item")
324
+ return errs.add(p, `expected exactly one of {beta} or {item}, got keys ${describe(keys)}`);
325
+ if (keys[0] === "beta" && (typeof val["beta"] !== "string" || !PER_MESSAGE_EFFORT_BETAS.includes(val["beta"])))
326
+ errs.add(`${p}.beta`, `unknown per-message effort beta ${describe(val["beta"])}`);
327
+ if (keys[0] === "item" && (typeof val["item"] !== "string" || !PER_MESSAGE_EFFORT_ITEMS.includes(val["item"])))
328
+ errs.add(`${p}.item`, `unknown per-message effort item ${describe(val["item"])}`);
329
+ }, false);
289
330
  }
290
331
  function checkProvider(errs, v, path) {
291
332
  if (!isRecord(v)) {
@@ -526,6 +567,24 @@ function checkModel(errs, v, path) {
526
567
  checkEvidence(errs, v["parallelTools"], `${path}.parallelTools`, evidenceBoolean, false);
527
568
  checkEvidence(errs, v["structuredOutput"], `${path}.structuredOutput`, evidenceBoolean, false);
528
569
  checkEvidence(errs, v["promptCaching"], `${path}.promptCaching`, evidenceBoolean, false);
570
+ checkEvidence(errs, v["deferredToolLoading"], `${path}.deferredToolLoading`, evidenceBoolean, false);
571
+ checkEvidence(errs, v["midConversationSystem"], `${path}.midConversationSystem`, evidenceBoolean, false);
572
+ checkEvidence(errs, v["promptCacheKey"], `${path}.promptCacheKey`, evidenceBoolean, false);
573
+ const betaOnly = (vocabulary, what) => (val, p) => {
574
+ if (!isRecord(val))
575
+ return errs.add(p, `expected {beta}, got ${describe(val)}`);
576
+ for (const key of Object.keys(val))
577
+ if (key !== "beta")
578
+ errs.add(`${p}.${key}`, "unknown key");
579
+ if (typeof val["beta"] !== "string" || !vocabulary.includes(val["beta"]))
580
+ errs.add(`${p}.beta`, `unknown ${what} beta ${describe(val["beta"])}`);
581
+ };
582
+ checkEvidence(errs, v["midConversationToolChanges"], `${path}.midConversationToolChanges`, betaOnly(MID_CONVERSATION_TOOL_CHANGE_BETAS, "mid-conversation tool-change"), false);
583
+ checkEvidence(errs, v["inlineToolDefinitions"], `${path}.inlineToolDefinitions`, betaOnly(INLINE_TOOL_DEFINITION_BETAS, "inline tool-definition"), false);
584
+ checkEvidence(errs, v["clientToolSearch"], `${path}.clientToolSearch`, evidenceBoolean, false);
585
+ checkEvidence(errs, v["additionalToolsItem"], `${path}.additionalToolsItem`, evidenceBoolean, false);
586
+ checkEvidence(errs, v["allowedToolsChoice"], `${path}.allowedToolsChoice`, evidenceBoolean, false);
587
+ checkEvidence(errs, v["assistantPrefill"], `${path}.assistantPrefill`, evidenceBoolean, false);
529
588
  checkEvidence(errs, v["classifierEligible"], `${path}.classifierEligible`, evidenceBoolean, false);
530
589
  checkEvidence(errs, v["pricing"], `${path}.pricing`, (val, p) => checkPricing(errs, val, p), false);
531
590
  if (v["reasoning"] !== undefined)
@@ -7754,6 +7813,7 @@ var catalog_default = {
7754
7813
  id: "xai",
7755
7814
  displayName: "xAI (Grok)",
7756
7815
  protocols: [
7816
+ "openai-responses",
7757
7817
  "openai-chat-completions"
7758
7818
  ],
7759
7819
  authKinds: [
@@ -7764,7 +7824,7 @@ var catalog_default = {
7764
7824
  },
7765
7825
  modelDiscovery: "openai-models",
7766
7826
  liveCatalogAuthority: "unknown",
7767
- adapterId: "winter.openai-chat-completions",
7827
+ adapterId: "winter.openai-responses",
7768
7828
  family: "openai",
7769
7829
  upstream: {
7770
7830
  project: "winter",
@@ -10709,13 +10769,13 @@ var catalog_default = {
10709
10769
  },
10710
10770
  pricing: {
10711
10771
  value: {
10712
- inputPerMTokUsd: 0.144,
10713
- outputPerMTokUsd: 0.574
10772
+ inputPerMTokUsd: 0.149,
10773
+ outputPerMTokUsd: 0.596
10714
10774
  },
10715
10775
  source: "official-doc",
10716
- sourceRef: "https://www.alibabacloud.com/help/en/model-studio/qwen3-coder-next — China (Beijing) qwen3-coder-next: input $0.144, output $0.574 per million tokens; ≤32K input; >32K–128K $0.216/$0.861; >128K–256K $0.359/$1.434",
10717
- confidence: "declared",
10718
- observedAt: "2026-09-25T09:40:00Z"
10776
+ sourceRef: "https://help.aliyun.com/zh/model-studio/model-pricing — Beijing CNY list, qwen3-coder-next, ≤32K; 32K–128K: ¥1.5/¥6; 128K–256K: ¥2.5/¥10 input tier: ¥1 input/¥4 output per million; USD = CNY × 0.1490 (CNY→USD reference rate for 2026-09-25, https://www.investing.com/currencies/cny-usd-historical-data) — the one rate every CNY-derived price in this catalog uses; not an Alibaba FX quote.",
10777
+ confidence: "inferred",
10778
+ observedAt: "2026-09-25T12:31:56.381Z"
10719
10779
  },
10720
10780
  unsupportedParameters: [],
10721
10781
  status: "candidate",
@@ -10817,13 +10877,13 @@ var catalog_default = {
10817
10877
  },
10818
10878
  pricing: {
10819
10879
  value: {
10820
- inputPerMTokUsd: 0.574,
10821
- outputPerMTokUsd: 2.294
10880
+ inputPerMTokUsd: 0.596,
10881
+ outputPerMTokUsd: 2.384
10822
10882
  },
10823
10883
  source: "official-doc",
10824
- sourceRef: "https://www.alibabacloud.com/help/en/model-studio/qwen3-coder-plus — China (Beijing) qwen3-coder-plus: input $0.574, output $2.294 per million tokens; ≤32K input; >32K–128K $0.861/$3.441; >128K–256K $1.434/$5.735; >256K–1M $2.868/$28.671",
10825
- confidence: "declared",
10826
- observedAt: "2026-09-25T09:40:00Z"
10884
+ sourceRef: "https://help.aliyun.com/zh/model-studio/model-pricing — Beijing CNY list, qwen3-coder-plus, ≤32K; 32K–128K: ¥6/¥24; 128K–256K: ¥10/¥40; 256K–1M: ¥20/¥200 input tier: ¥4 input/¥16 output per million; USD = CNY × 0.1490 (CNY→USD reference rate for 2026-09-25, https://www.investing.com/currencies/cny-usd-historical-data) — the one rate every CNY-derived price in this catalog uses; not an Alibaba FX quote.",
10885
+ confidence: "inferred",
10886
+ observedAt: "2026-09-25T12:31:56.381Z"
10827
10887
  },
10828
10888
  unsupportedParameters: [],
10829
10889
  status: "candidate",
@@ -10927,13 +10987,13 @@ var catalog_default = {
10927
10987
  },
10928
10988
  pricing: {
10929
10989
  value: {
10930
- inputPerMTokUsd: 0.115,
10931
- outputPerMTokUsd: 0.917
10990
+ inputPerMTokUsd: 0.1192,
10991
+ outputPerMTokUsd: 0.9536
10932
10992
  },
10933
10993
  source: "official-doc",
10934
- sourceRef: "https://www.alibabacloud.com/help/en/model-studio/qwen3-5-122b-a10b — China (Beijing) qwen3.5-122b-a10b: input $0.115, output $0.917 per million tokens; ≤128K input; >128K–256K $0.287/$2.294",
10935
- confidence: "declared",
10936
- observedAt: "2026-09-25T09:40:00Z"
10994
+ sourceRef: "https://help.aliyun.com/zh/model-studio/model-pricing — Beijing CNY list, qwen3.5-122b-a10b, ≤128K; >128K–256K: ¥2/¥16 input tier: ¥0.8 input/¥6.4 output per million; USD = CNY × 0.1490 (CNY→USD reference rate for 2026-09-25, https://www.investing.com/currencies/cny-usd-historical-data) — the one rate every CNY-derived price in this catalog uses; not an Alibaba FX quote.",
10995
+ confidence: "inferred",
10996
+ observedAt: "2026-09-25T12:31:56.381Z"
10937
10997
  },
10938
10998
  unsupportedParameters: [],
10939
10999
  status: "candidate",
@@ -11037,13 +11097,13 @@ var catalog_default = {
11037
11097
  },
11038
11098
  pricing: {
11039
11099
  value: {
11040
- inputPerMTokUsd: 0.172,
11041
- outputPerMTokUsd: 1.032
11100
+ inputPerMTokUsd: 0.1788,
11101
+ outputPerMTokUsd: 1.0728
11042
11102
  },
11043
11103
  source: "official-doc",
11044
- sourceRef: "https://www.alibabacloud.com/help/en/model-studio/qwen3-5-397b-a17b — China (Beijing) qwen3.5-397b-a17b: input $0.172, output $1.032 per million tokens; ≤128K input; >128K–256K $0.43/$2.58",
11045
- confidence: "declared",
11046
- observedAt: "2026-09-25T09:40:00Z"
11104
+ sourceRef: "https://help.aliyun.com/zh/model-studio/model-pricing — Beijing CNY list, qwen3.5-397b-a17b, ≤128K; >128K–256K: ¥3/¥18 input tier: ¥1.2 input/¥7.2 output per million; USD = CNY × 0.1490 (CNY→USD reference rate for 2026-09-25, https://www.investing.com/currencies/cny-usd-historical-data) — the one rate every CNY-derived price in this catalog uses; not an Alibaba FX quote.",
11105
+ confidence: "inferred",
11106
+ observedAt: "2026-09-25T12:31:56.381Z"
11047
11107
  },
11048
11108
  unsupportedParameters: [],
11049
11109
  status: "candidate",
@@ -11133,13 +11193,13 @@ var catalog_default = {
11133
11193
  },
11134
11194
  pricing: {
11135
11195
  value: {
11136
- inputPerMTokUsd: 0.115,
11137
- outputPerMTokUsd: 0.688
11196
+ inputPerMTokUsd: 0.1192,
11197
+ outputPerMTokUsd: 0.7152
11138
11198
  },
11139
11199
  source: "official-doc",
11140
- sourceRef: "https://www.alibabacloud.com/help/en/model-studio/model-pricing — China (Beijing) qwen3.5-plus: input $0.115, output $0.688 per million tokens; ≤128K input; >128K–256K $0.287/$1.72; >256K–1M $0.573/$3.44",
11141
- confidence: "declared",
11142
- observedAt: "2026-09-25T09:40:00Z"
11200
+ sourceRef: "https://help.aliyun.com/zh/model-studio/model-pricing — Beijing CNY list, qwen3.5-plus, ≤128K; 128K–256K: ¥2/¥12; 256K–1M: ¥4/¥24 input tier: ¥0.8 input/¥4.8 output per million; USD = CNY × 0.1490 (CNY→USD reference rate for 2026-09-25, https://www.investing.com/currencies/cny-usd-historical-data) — the one rate every CNY-derived price in this catalog uses; not an Alibaba FX quote.",
11201
+ confidence: "inferred",
11202
+ observedAt: "2026-09-25T12:31:56.381Z"
11143
11203
  },
11144
11204
  unsupportedParameters: [],
11145
11205
  status: "candidate",
@@ -11243,13 +11303,13 @@ var catalog_default = {
11243
11303
  },
11244
11304
  pricing: {
11245
11305
  value: {
11246
- inputPerMTokUsd: 0.412564,
11247
- outputPerMTokUsd: 2.475384
11306
+ inputPerMTokUsd: 0.447,
11307
+ outputPerMTokUsd: 2.682
11248
11308
  },
11249
11309
  source: "official-doc",
11250
- sourceRef: "https://www.alibabacloud.com/help/en/model-studio/qwen3-6-27b — China (Beijing) qwen3.6-27b: input $0.412564, output $2.475384 per million tokens; all input",
11251
- confidence: "declared",
11252
- observedAt: "2026-09-25T09:40:00Z"
11310
+ sourceRef: "https://help.aliyun.com/zh/model-studio/model-pricing — Beijing CNY list, qwen3.6-27b, ≤256K input tier: ¥3 input/¥18 output per million; USD = CNY × 0.1490 (CNY→USD reference rate for 2026-09-25, https://www.investing.com/currencies/cny-usd-historical-data) — the one rate every CNY-derived price in this catalog uses; not an Alibaba FX quote.",
11311
+ confidence: "inferred",
11312
+ observedAt: "2026-09-25T12:31:56.381Z"
11253
11313
  },
11254
11314
  unsupportedParameters: [],
11255
11315
  status: "candidate",
@@ -11346,13 +11406,13 @@ var catalog_default = {
11346
11406
  },
11347
11407
  pricing: {
11348
11408
  value: {
11349
- inputPerMTokUsd: 0.165,
11350
- outputPerMTokUsd: 0.99
11409
+ inputPerMTokUsd: 0.1788,
11410
+ outputPerMTokUsd: 1.0728
11351
11411
  },
11352
11412
  source: "official-doc",
11353
- sourceRef: "https://www.alibabacloud.com/help/en/model-studio/model-pricing — China (Beijing) qwen3.6-flash: input $0.165, output $0.99 per million tokens; ≤256K input; >256K–1M $0.66/$3.961",
11354
- confidence: "declared",
11355
- observedAt: "2026-09-25T09:40:00Z"
11413
+ sourceRef: "https://help.aliyun.com/zh/model-studio/model-pricing — Beijing CNY list, qwen3.6-flash, ≤256K; 256K–1M: ¥4.8/¥28.8 input tier: ¥1.2 input/¥7.2 output per million; USD = CNY × 0.1490 (CNY→USD reference rate for 2026-09-25, https://www.investing.com/currencies/cny-usd-historical-data) — the one rate every CNY-derived price in this catalog uses; not an Alibaba FX quote.",
11414
+ confidence: "inferred",
11415
+ observedAt: "2026-09-25T12:31:56.381Z"
11356
11416
  },
11357
11417
  unsupportedParameters: [],
11358
11418
  status: "candidate",
@@ -11442,13 +11502,13 @@ var catalog_default = {
11442
11502
  },
11443
11503
  pricing: {
11444
11504
  value: {
11445
- inputPerMTokUsd: 0.276,
11446
- outputPerMTokUsd: 1.651
11505
+ inputPerMTokUsd: 0.298,
11506
+ outputPerMTokUsd: 1.788
11447
11507
  },
11448
11508
  source: "official-doc",
11449
- sourceRef: "https://www.alibabacloud.com/help/en/model-studio/model-pricing — China (Beijing) qwen3.6-plus: input $0.276, output $1.651 per million tokens; ≤256K input; >256K–1M $1.101/$6.602",
11450
- confidence: "declared",
11451
- observedAt: "2026-09-25T09:40:00Z"
11509
+ sourceRef: "https://help.aliyun.com/zh/model-studio/model-pricing — Beijing CNY list, qwen3.6-plus, ≤256K; >256K–1M: ¥8/¥48 input tier: ¥2 input/¥12 output per million; USD = CNY × 0.1490 (CNY→USD reference rate for 2026-09-25, https://www.investing.com/currencies/cny-usd-historical-data) — the one rate every CNY-derived price in this catalog uses; not an Alibaba FX quote.",
11510
+ confidence: "inferred",
11511
+ observedAt: "2026-09-25T12:31:56.381Z"
11452
11512
  },
11453
11513
  unsupportedParameters: [],
11454
11514
  status: "candidate",
@@ -11536,13 +11596,13 @@ var catalog_default = {
11536
11596
  },
11537
11597
  pricing: {
11538
11598
  value: {
11539
- inputPerMTokUsd: 1.65,
11540
- outputPerMTokUsd: 4.951
11599
+ inputPerMTokUsd: 1.788,
11600
+ outputPerMTokUsd: 5.364
11541
11601
  },
11542
11602
  source: "official-doc",
11543
- sourceRef: "https://www.alibabacloud.com/help/en/model-studio/model-pricing — China (Beijing) qwen3.7-max: input $1.65, output $4.951 per million tokens; 0–1M input tokens",
11544
- confidence: "declared",
11545
- observedAt: "2026-09-25T09:40:00Z"
11603
+ sourceRef: "https://help.aliyun.com/zh/model-studio/model-pricing — Beijing CNY list, qwen3.7-max, 0–1M input tier: ¥12 input/¥36 output per million; USD = CNY × 0.1490 (CNY→USD reference rate for 2026-09-25, https://www.investing.com/currencies/cny-usd-historical-data) — the one rate every CNY-derived price in this catalog uses; not an Alibaba FX quote.",
11604
+ confidence: "inferred",
11605
+ observedAt: "2026-09-25T12:31:56.381Z"
11546
11606
  },
11547
11607
  unsupportedParameters: [],
11548
11608
  status: "candidate",
@@ -11639,13 +11699,13 @@ var catalog_default = {
11639
11699
  },
11640
11700
  pricing: {
11641
11701
  value: {
11642
- inputPerMTokUsd: 0.276,
11643
- outputPerMTokUsd: 1.101
11702
+ inputPerMTokUsd: 0.298,
11703
+ outputPerMTokUsd: 1.192
11644
11704
  },
11645
11705
  source: "official-doc",
11646
- sourceRef: "https://www.alibabacloud.com/help/en/model-studio/model-pricing — China (Beijing) qwen3.7-plus: input $0.276, output $1.101 per million tokens; ≤256K input; >256K–1M $0.826/$3.301; list price before limited-time 20% discount",
11647
- confidence: "declared",
11648
- observedAt: "2026-09-25T09:40:00Z"
11706
+ sourceRef: "https://help.aliyun.com/zh/model-studio/model-pricing — Beijing CNY list, qwen3.7-plus, ≤256K; >256K–1M: ¥6/¥24; base list price before temporary 20% promotion input tier: ¥2 input/¥8 output per million; USD = CNY × 0.1490 (CNY→USD reference rate for 2026-09-25, https://www.investing.com/currencies/cny-usd-historical-data) — the one rate every CNY-derived price in this catalog uses; not an Alibaba FX quote.",
11707
+ confidence: "inferred",
11708
+ observedAt: "2026-09-25T12:31:56.381Z"
11649
11709
  },
11650
11710
  unsupportedParameters: [],
11651
11711
  status: "candidate",
@@ -11735,13 +11795,13 @@ var catalog_default = {
11735
11795
  },
11736
11796
  pricing: {
11737
11797
  value: {
11738
- inputPerMTokUsd: 0.113,
11739
- outputPerMTokUsd: 0.382
11798
+ inputPerMTokUsd: 0.1192,
11799
+ outputPerMTokUsd: 0.4023
11740
11800
  },
11741
11801
  source: "official-doc",
11742
- sourceRef: "https://www.alibabacloud.com/help/en/model-studio/model-pricing — China (Beijing) qwen3.8-flash: input $0.113, output $0.382 per million tokens; 0–1M input tokens",
11743
- confidence: "declared",
11744
- observedAt: "2026-09-25T09:40:00Z"
11802
+ sourceRef: "https://help.aliyun.com/zh/model-studio/model-pricing — Beijing CNY list, qwen3.8-flash, 0–1M input tier: ¥0.8 input/¥2.7 output per million; USD = CNY × 0.1490 (CNY→USD reference rate for 2026-09-25, https://www.investing.com/currencies/cny-usd-historical-data) — the one rate every CNY-derived price in this catalog uses; not an Alibaba FX quote.",
11803
+ confidence: "inferred",
11804
+ observedAt: "2026-09-25T12:31:56.381Z"
11745
11805
  },
11746
11806
  unsupportedParameters: [],
11747
11807
  status: "candidate",
@@ -11831,13 +11891,13 @@ var catalog_default = {
11831
11891
  },
11832
11892
  pricing: {
11833
11893
  value: {
11834
- inputPerMTokUsd: 1.65,
11835
- outputPerMTokUsd: 4.951
11894
+ inputPerMTokUsd: 1.788,
11895
+ outputPerMTokUsd: 5.364
11836
11896
  },
11837
11897
  source: "official-doc",
11838
- sourceRef: "https://www.alibabacloud.com/help/en/model-studio/model-pricing — China (Beijing) qwen3.8-max: input $1.65, output $4.951 per million tokens; 0–1M input tokens",
11839
- confidence: "declared",
11840
- observedAt: "2026-09-25T09:40:00Z"
11898
+ sourceRef: "https://help.aliyun.com/zh/model-studio/model-pricing — Beijing CNY list, qwen3.8-max, 0–1M input tier: ¥12 input/¥36 output per million; USD = CNY × 0.1490 (CNY→USD reference rate for 2026-09-25, https://www.investing.com/currencies/cny-usd-historical-data) — the one rate every CNY-derived price in this catalog uses; not an Alibaba FX quote.",
11899
+ confidence: "inferred",
11900
+ observedAt: "2026-09-25T12:31:56.381Z"
11841
11901
  },
11842
11902
  unsupportedParameters: [],
11843
11903
  status: "candidate",
@@ -12163,13 +12223,13 @@ var catalog_default = {
12163
12223
  },
12164
12224
  pricing: {
12165
12225
  value: {
12166
- inputPerMTokUsd: 0.144,
12167
- outputPerMTokUsd: 0.574
12226
+ inputPerMTokUsd: 0.149,
12227
+ outputPerMTokUsd: 0.596
12168
12228
  },
12169
12229
  source: "official-doc",
12170
- sourceRef: "https://www.alibabacloud.com/help/en/model-studio/qwen3-coder-next — China (Beijing) qwen3-coder-next: input $0.144, output $0.574 per million tokens; ≤32K input; >32K–128K $0.216/$0.861; >128K–256K $0.359/$1.434",
12171
- confidence: "declared",
12172
- observedAt: "2026-09-25T09:40:00Z"
12230
+ sourceRef: "https://help.aliyun.com/zh/model-studio/model-pricing — Beijing CNY list, qwen3-coder-next, ≤32K; 32K–128K: ¥1.5/¥6; 128K–256K: ¥2.5/¥10 input tier: ¥1 input/¥4 output per million; USD = CNY × 0.1490 (CNY→USD reference rate for 2026-09-25, https://www.investing.com/currencies/cny-usd-historical-data) — the one rate every CNY-derived price in this catalog uses; not an Alibaba FX quote.",
12231
+ confidence: "inferred",
12232
+ observedAt: "2026-09-25T12:31:56.381Z"
12173
12233
  },
12174
12234
  unsupportedParameters: [],
12175
12235
  status: "candidate",
@@ -12265,13 +12325,13 @@ var catalog_default = {
12265
12325
  },
12266
12326
  pricing: {
12267
12327
  value: {
12268
- inputPerMTokUsd: 0.574,
12269
- outputPerMTokUsd: 2.294
12328
+ inputPerMTokUsd: 0.596,
12329
+ outputPerMTokUsd: 2.384
12270
12330
  },
12271
12331
  source: "official-doc",
12272
- sourceRef: "https://www.alibabacloud.com/help/en/model-studio/qwen3-coder-plus — China (Beijing) qwen3-coder-plus: input $0.574, output $2.294 per million tokens; ≤32K input; >32K–128K $0.861/$3.441; >128K–256K $1.434/$5.735; >256K–1M $2.868/$28.671",
12273
- confidence: "declared",
12274
- observedAt: "2026-09-25T09:40:00Z"
12332
+ sourceRef: "https://help.aliyun.com/zh/model-studio/model-pricing — Beijing CNY list, qwen3-coder-plus, ≤32K; 32K–128K: ¥6/¥24; 128K–256K: ¥10/¥40; 256K–1M: ¥20/¥200 input tier: ¥4 input/¥16 output per million; USD = CNY × 0.1490 (CNY→USD reference rate for 2026-09-25, https://www.investing.com/currencies/cny-usd-historical-data) — the one rate every CNY-derived price in this catalog uses; not an Alibaba FX quote.",
12333
+ confidence: "inferred",
12334
+ observedAt: "2026-09-25T12:31:56.381Z"
12275
12335
  },
12276
12336
  unsupportedParameters: [],
12277
12337
  status: "candidate",
@@ -12868,13 +12928,13 @@ var catalog_default = {
12868
12928
  },
12869
12929
  pricing: {
12870
12930
  value: {
12871
- inputPerMTokUsd: 0.165,
12872
- outputPerMTokUsd: 0.99
12931
+ inputPerMTokUsd: 0.1788,
12932
+ outputPerMTokUsd: 1.0728
12873
12933
  },
12874
12934
  source: "official-doc",
12875
- sourceRef: "https://www.alibabacloud.com/help/en/model-studio/model-pricing — China (Beijing) qwen3.6-flash: input $0.165, output $0.99 per million tokens; ≤256K input; >256K–1M $0.66/$3.961",
12876
- confidence: "declared",
12877
- observedAt: "2026-09-25T09:40:00Z"
12935
+ sourceRef: "https://help.aliyun.com/zh/model-studio/model-pricing — Beijing CNY list, qwen3.6-flash, ≤256K; 256K–1M: ¥4.8/¥28.8 input tier: ¥1.2 input/¥7.2 output per million; USD = CNY × 0.1490 (CNY→USD reference rate for 2026-09-25, https://www.investing.com/currencies/cny-usd-historical-data) — the one rate every CNY-derived price in this catalog uses; not an Alibaba FX quote.",
12936
+ confidence: "inferred",
12937
+ observedAt: "2026-09-25T12:31:56.381Z"
12878
12938
  },
12879
12939
  unsupportedParameters: [],
12880
12940
  status: "candidate",
@@ -13239,13 +13299,13 @@ var catalog_default = {
13239
13299
  },
13240
13300
  pricing: {
13241
13301
  value: {
13242
- inputPerMTokUsd: 0.113,
13243
- outputPerMTokUsd: 0.382
13302
+ inputPerMTokUsd: 0.1192,
13303
+ outputPerMTokUsd: 0.4023
13244
13304
  },
13245
13305
  source: "official-doc",
13246
- sourceRef: "https://www.alibabacloud.com/help/en/model-studio/model-pricing — China (Beijing) qwen3.8-flash: input $0.113, output $0.382 per million tokens; 0–1M input tokens",
13247
- confidence: "declared",
13248
- observedAt: "2026-09-25T09:40:00Z"
13306
+ sourceRef: "https://help.aliyun.com/zh/model-studio/model-pricing — Beijing CNY list, qwen3.8-flash, 0–1M input tier: ¥0.8 input/¥2.7 output per million; USD = CNY × 0.1490 (CNY→USD reference rate for 2026-09-25, https://www.investing.com/currencies/cny-usd-historical-data) — the one rate every CNY-derived price in this catalog uses; not an Alibaba FX quote.",
13307
+ confidence: "inferred",
13308
+ observedAt: "2026-09-25T12:31:56.381Z"
13249
13309
  },
13250
13310
  unsupportedParameters: [],
13251
13311
  status: "candidate",
@@ -15083,7 +15143,16 @@ var catalog_default = {
15083
15143
  "max"
15084
15144
  ],
15085
15145
  continuation: "opaque-provider-state",
15086
- defaultEffort: "high"
15146
+ defaultEffort: "high",
15147
+ effortRequest: {
15148
+ value: {
15149
+ field: "output_config.effort"
15150
+ },
15151
+ source: "official-doc",
15152
+ confidence: "declared",
15153
+ observedAt: "2026-09-25T12:30:00Z",
15154
+ sourceRef: "https://platform.claude.com/docs/en/build-with-claude/effort — the effort page's supportedModels list names claude-fable-5-1, claude-fable-5, claude-opus-5-5, claude-opus-5, claude-opus-4-8, claude-opus-4-7, claude-opus-4-6, claude-opus-4-5-20251101, claude-sonnet-5 and claude-sonnet-4-6: effort is requested through `output_config.effort` (Claude 4.7 and later reject a manual `thinking.budget_tokens`, https://platform.claude.com/docs/en/build-with-claude/thinking-troubleshooting#rejected-configurations)."
15155
+ }
15087
15156
  },
15088
15157
  pricing: {
15089
15158
  value: {
@@ -15100,9 +15169,50 @@ var catalog_default = {
15100
15169
  unsupportedParameters: [
15101
15170
  "temperature",
15102
15171
  "top_p",
15103
- "top_k"
15172
+ "top_k",
15173
+ "thinking.type.enabled",
15174
+ "thinking.type.disabled"
15104
15175
  ],
15105
15176
  status: "candidate",
15177
+ deferredToolLoading: {
15178
+ value: true,
15179
+ source: "official-doc",
15180
+ confidence: "declared",
15181
+ observedAt: "2026-09-25T18:30:00Z",
15182
+ sourceRef: 'https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool — the Model compatibility table lists Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 5, Opus 4.8, 4.7, 4.6, Sonnet 4.6, Opus 4.5, Sonnet 4.5 and Haiku 4.5 (not Sonnet 5); "Custom tool search implementation": a client tool returns a tool_result whose content carries {type:"tool_reference", tool_name} blocks, every referenced tool declared in tools with defer_loading: true, and the API expands them; "The prefix is untouched, so prompt caching is preserved" (https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-use-with-prompt-caching).'
15183
+ },
15184
+ midConversationSystem: {
15185
+ value: true,
15186
+ source: "official-doc",
15187
+ confidence: "declared",
15188
+ observedAt: "2026-09-25T19:00:00Z",
15189
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages — "This feature is available on Claude Fable 5.1, Claude Mythos 5.1, Claude Fable 5, Claude Mythos 5, Claude Opus 5.5, Claude Opus 4.8, and Claude Opus 5. No beta header is required for mid-conversation system messages. This feature is not available on Claude Sonnet 5."'
15190
+ },
15191
+ midConversationToolChanges: {
15192
+ value: {
15193
+ beta: "mid-conversation-tool-changes-2026-07-01"
15194
+ },
15195
+ source: "official-doc",
15196
+ confidence: "declared",
15197
+ observedAt: "2026-09-26T00:00:00Z",
15198
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages — tool_addition / tool_removal blocks in a role:"system" message, by reference ("Add/remove by reference: mid-conversation-tool-changes-2026-07-01 — Claude API, Amazon Bedrock, Google Cloud"); available on Claude Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 4.8 and Opus 5, "Not available on Claude Sonnet 5". Retrieved 2026-09-26; release note 2026-07-24 (https://platform.claude.com/docs/en/release-notes/overview).'
15199
+ },
15200
+ inlineToolDefinitions: {
15201
+ value: {
15202
+ beta: "inline-tools-2026-09-15"
15203
+ },
15204
+ source: "official-doc",
15205
+ confidence: "declared",
15206
+ observedAt: "2026-09-26T00:00:00Z",
15207
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages — tool_addition with a tool_definition ("Add/remove by reference + define by value: inline-tools-2026-09-15 — Claude API"); "The inline-tools-2026-09-15 header covers all reference-based changes"; redefinition: "send a different definition under the same name ... The new definition replaces the earlier one from that position onward" (no removal first, a tool declared in tools included); a definition reusing the name of a different type of tool is a 400 tool_name_conflict. Same model list as midConversationToolChanges. Claude API only, so set on the anthropic and console providers (both api.anthropic.com), never on a cloud reseller. Retrieved 2026-09-26; release note 2026-09-22.'
15208
+ },
15209
+ assistantPrefill: {
15210
+ value: false,
15211
+ source: "official-doc",
15212
+ confidence: "declared",
15213
+ observedAt: "2026-09-26T00:00:00Z",
15214
+ sourceRef: `https://platform.claude.com/docs/en/models/opus-5-5/migration-guide — "Don't end messages with a prefilled assistant turn: it is rejected"; "Prefilling assistant messages returns a 400 error on Claude Opus 4.6 and later Opus models, including Claude Opus 5.5"; Sonnet 5 and Opus 5: "Manual extended thinking, non-default sampling parameters, and assistant prefill return a 400 error on both models"; the Fable 5.1 guide: prefill "returns a 400 error, unchanged from Claude Fable 5". Live gate 2026-09-26 on claude-opus-5-5: "This model does not support assistant message prefill. The conversation must end with a user message."`
15215
+ },
15106
15216
  canonicalModelId: "claude-fable-5",
15107
15217
  modelFamily: "claude"
15108
15218
  },
@@ -15235,6 +15345,33 @@ var catalog_default = {
15235
15345
  sourceRef: `continuity report §4.4, BOTH halves, applied per anthropic/claude-opus-5's own evidence. Own-state acceptance: a Claude model's own thinking blocks are replayed to it unchanged, in order, with signatures intact. Why the domain is NARROW: prior thinking/redacted_thinking blocks are tied to the model that produced them, so "same provider" is not automatically "same continuation domain" — the domain is this model alone.`,
15236
15346
  confidence: "declared",
15237
15347
  observedAt: "2026-09-07T00:00:00Z"
15348
+ },
15349
+ effortRequest: {
15350
+ value: {
15351
+ field: "output_config.effort"
15352
+ },
15353
+ source: "official-doc",
15354
+ confidence: "declared",
15355
+ observedAt: "2026-09-25T12:30:00Z",
15356
+ sourceRef: "https://platform.claude.com/docs/en/build-with-claude/effort — the effort page's supportedModels list names claude-fable-5-1, claude-fable-5, claude-opus-5-5, claude-opus-5, claude-opus-4-8, claude-opus-4-7, claude-opus-4-6, claude-opus-4-5-20251101, claude-sonnet-5 and claude-sonnet-4-6: effort is requested through `output_config.effort` (Claude 4.7 and later reject a manual `thinking.budget_tokens`, https://platform.claude.com/docs/en/build-with-claude/thinking-troubleshooting#rejected-configurations)."
15357
+ },
15358
+ blockBinding: {
15359
+ value: {
15360
+ beta: "thinking-binding-controls-2026-08-01"
15361
+ },
15362
+ source: "official-doc",
15363
+ confidence: "declared",
15364
+ observedAt: "2026-09-25T13:00:00Z",
15365
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/thinking-troubleshooting — "A 400 error says a thinking block signature is invalid": on Claude Fable 5.1 and Opus 5.5 a replayed thinking block is bound to the conversation (system, tools and earlier messages) and is rejected once that prefix changes (enforced for accounts created on or after 2026-08-31); the documented escape is the `thinking-binding-controls-2026-08-01` beta with `thinking.block_binding.prefix_mismatch_behavior: "drop_block"`. See also https://platform.claude.com/docs/en/models/opus-5-5/whats-new-opus-5-5 ("Thinking blocks are tied to the model and the conversation").'
15366
+ },
15367
+ perMessageEffort: {
15368
+ value: {
15369
+ beta: "mid-conversation-output-config-2026-07-01"
15370
+ },
15371
+ source: "official-doc",
15372
+ confidence: "declared",
15373
+ observedAt: "2026-09-25T18:00:00Z",
15374
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/effort#change-effort-mid-conversation-beta — "On Claude Fable 5.1, Claude Mythos 5.1, Claude Opus 5.5, and Claude Opus 5, use a per-message effort change, which keeps the prompt cache": a role:"system" message with empty content and output_config.effort, beta header mid-conversation-output-config-2026-07-01; "Models without per-message effort, including Claude Fable 5, return a 400 error". claude 2.1.282 sends the older alias per-turn-control-2026-07-01, which the page does not document.'
15238
15375
  }
15239
15376
  },
15240
15377
  pricing: {
@@ -15249,8 +15386,52 @@ var catalog_default = {
15249
15386
  confidence: "declared",
15250
15387
  observedAt: "2026-09-08T00:00:00Z"
15251
15388
  },
15252
- unsupportedParameters: [],
15389
+ unsupportedParameters: [
15390
+ "thinking.type.enabled",
15391
+ "thinking.type.disabled",
15392
+ "tool_choice.any",
15393
+ "tool_choice.tool"
15394
+ ],
15253
15395
  status: "candidate",
15396
+ deferredToolLoading: {
15397
+ value: true,
15398
+ source: "official-doc",
15399
+ confidence: "declared",
15400
+ observedAt: "2026-09-25T18:30:00Z",
15401
+ sourceRef: 'https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool — the Model compatibility table lists Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 5, Opus 4.8, 4.7, 4.6, Sonnet 4.6, Opus 4.5, Sonnet 4.5 and Haiku 4.5 (not Sonnet 5); "Custom tool search implementation": a client tool returns a tool_result whose content carries {type:"tool_reference", tool_name} blocks, every referenced tool declared in tools with defer_loading: true, and the API expands them; "The prefix is untouched, so prompt caching is preserved" (https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-use-with-prompt-caching).'
15402
+ },
15403
+ midConversationSystem: {
15404
+ value: true,
15405
+ source: "official-doc",
15406
+ confidence: "declared",
15407
+ observedAt: "2026-09-25T19:00:00Z",
15408
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages — "This feature is available on Claude Fable 5.1, Claude Mythos 5.1, Claude Fable 5, Claude Mythos 5, Claude Opus 5.5, Claude Opus 4.8, and Claude Opus 5. No beta header is required for mid-conversation system messages. This feature is not available on Claude Sonnet 5."'
15409
+ },
15410
+ midConversationToolChanges: {
15411
+ value: {
15412
+ beta: "mid-conversation-tool-changes-2026-07-01"
15413
+ },
15414
+ source: "official-doc",
15415
+ confidence: "declared",
15416
+ observedAt: "2026-09-26T00:00:00Z",
15417
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages — tool_addition / tool_removal blocks in a role:"system" message, by reference ("Add/remove by reference: mid-conversation-tool-changes-2026-07-01 — Claude API, Amazon Bedrock, Google Cloud"); available on Claude Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 4.8 and Opus 5, "Not available on Claude Sonnet 5". Retrieved 2026-09-26; release note 2026-07-24 (https://platform.claude.com/docs/en/release-notes/overview).'
15418
+ },
15419
+ inlineToolDefinitions: {
15420
+ value: {
15421
+ beta: "inline-tools-2026-09-15"
15422
+ },
15423
+ source: "official-doc",
15424
+ confidence: "declared",
15425
+ observedAt: "2026-09-26T00:00:00Z",
15426
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages — tool_addition with a tool_definition ("Add/remove by reference + define by value: inline-tools-2026-09-15 — Claude API"); "The inline-tools-2026-09-15 header covers all reference-based changes"; redefinition: "send a different definition under the same name ... The new definition replaces the earlier one from that position onward" (no removal first, a tool declared in tools included); a definition reusing the name of a different type of tool is a 400 tool_name_conflict. Same model list as midConversationToolChanges. Claude API only, so set on the anthropic and console providers (both api.anthropic.com), never on a cloud reseller. Retrieved 2026-09-26; release note 2026-09-22.'
15427
+ },
15428
+ assistantPrefill: {
15429
+ value: false,
15430
+ source: "official-doc",
15431
+ confidence: "declared",
15432
+ observedAt: "2026-09-26T00:00:00Z",
15433
+ sourceRef: `https://platform.claude.com/docs/en/models/opus-5-5/migration-guide — "Don't end messages with a prefilled assistant turn: it is rejected"; "Prefilling assistant messages returns a 400 error on Claude Opus 4.6 and later Opus models, including Claude Opus 5.5"; Sonnet 5 and Opus 5: "Manual extended thinking, non-default sampling parameters, and assistant prefill return a 400 error on both models"; the Fable 5.1 guide: prefill "returns a 400 error, unchanged from Claude Fable 5". Live gate 2026-09-26 on claude-opus-5-5: "This model does not support assistant message prefill. The conversation must end with a user message."`
15434
+ },
15254
15435
  canonicalModelId: "claude-fable-5.1",
15255
15436
  modelFamily: "claude"
15256
15437
  },
@@ -15345,8 +15526,17 @@ var catalog_default = {
15345
15526
  confidence: "declared",
15346
15527
  observedAt: "2026-09-05T00:00:00Z"
15347
15528
  },
15348
- unsupportedParameters: [],
15529
+ unsupportedParameters: [
15530
+ "thinking.type.adaptive"
15531
+ ],
15349
15532
  status: "candidate",
15533
+ deferredToolLoading: {
15534
+ value: true,
15535
+ source: "official-doc",
15536
+ confidence: "declared",
15537
+ observedAt: "2026-09-25T18:30:00Z",
15538
+ sourceRef: 'https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool — the Model compatibility table lists Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 5, Opus 4.8, 4.7, 4.6, Sonnet 4.6, Opus 4.5, Sonnet 4.5 and Haiku 4.5 (not Sonnet 5); "Custom tool search implementation": a client tool returns a tool_result whose content carries {type:"tool_reference", tool_name} blocks, every referenced tool declared in tools with defer_loading: true, and the API expands them; "The prefix is untouched, so prompt caching is preserved" (https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-use-with-prompt-caching).'
15539
+ },
15350
15540
  canonicalModelId: "claude-haiku-4.5-20251001",
15351
15541
  modelFamily: "claude"
15352
15542
  },
@@ -15441,8 +15631,17 @@ var catalog_default = {
15441
15631
  confidence: "declared",
15442
15632
  observedAt: "2026-09-19T00:00:00Z"
15443
15633
  },
15444
- unsupportedParameters: [],
15634
+ unsupportedParameters: [
15635
+ "thinking.type.adaptive"
15636
+ ],
15445
15637
  status: "candidate",
15638
+ deferredToolLoading: {
15639
+ value: true,
15640
+ source: "official-doc",
15641
+ confidence: "declared",
15642
+ observedAt: "2026-09-25T18:30:00Z",
15643
+ sourceRef: 'https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool — the Model compatibility table lists Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 5, Opus 4.8, 4.7, 4.6, Sonnet 4.6, Opus 4.5, Sonnet 4.5 and Haiku 4.5 (not Sonnet 5); "Custom tool search implementation": a client tool returns a tool_result whose content carries {type:"tool_reference", tool_name} blocks, every referenced tool declared in tools with defer_loading: true, and the API expands them; "The prefix is untouched, so prompt caching is preserved" (https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-use-with-prompt-caching).'
15644
+ },
15446
15645
  canonicalModelId: "claude-haiku-4.5",
15447
15646
  modelFamily: "claude"
15448
15647
  },
@@ -15540,7 +15739,16 @@ var catalog_default = {
15540
15739
  "high"
15541
15740
  ],
15542
15741
  continuation: "opaque-provider-state",
15543
- defaultEffort: "high"
15742
+ defaultEffort: "high",
15743
+ effortRequest: {
15744
+ value: {
15745
+ field: "output_config.effort"
15746
+ },
15747
+ source: "official-doc",
15748
+ confidence: "declared",
15749
+ observedAt: "2026-09-25T12:30:00Z",
15750
+ sourceRef: "https://platform.claude.com/docs/en/build-with-claude/effort — the effort page's supportedModels list names claude-fable-5-1, claude-fable-5, claude-opus-5-5, claude-opus-5, claude-opus-4-8, claude-opus-4-7, claude-opus-4-6, claude-opus-4-5-20251101, claude-sonnet-5 and claude-sonnet-4-6: effort is requested through `output_config.effort` (Claude 4.7 and later reject a manual `thinking.budget_tokens`, https://platform.claude.com/docs/en/build-with-claude/thinking-troubleshooting#rejected-configurations)."
15751
+ }
15544
15752
  },
15545
15753
  pricing: {
15546
15754
  value: {
@@ -15554,8 +15762,17 @@ var catalog_default = {
15554
15762
  confidence: "declared",
15555
15763
  observedAt: "2026-09-19T00:00:00Z"
15556
15764
  },
15557
- unsupportedParameters: [],
15765
+ unsupportedParameters: [
15766
+ "thinking.type.adaptive"
15767
+ ],
15558
15768
  status: "candidate",
15769
+ deferredToolLoading: {
15770
+ value: true,
15771
+ source: "official-doc",
15772
+ confidence: "declared",
15773
+ observedAt: "2026-09-25T18:30:00Z",
15774
+ sourceRef: 'https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool — the Model compatibility table lists Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 5, Opus 4.8, 4.7, 4.6, Sonnet 4.6, Opus 4.5, Sonnet 4.5 and Haiku 4.5 (not Sonnet 5); "Custom tool search implementation": a client tool returns a tool_result whose content carries {type:"tool_reference", tool_name} blocks, every referenced tool declared in tools with defer_loading: true, and the API expands them; "The prefix is untouched, so prompt caching is preserved" (https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-use-with-prompt-caching).'
15775
+ },
15559
15776
  canonicalModelId: "claude-opus-4.5",
15560
15777
  modelFamily: "claude"
15561
15778
  },
@@ -15564,7 +15781,9 @@ var catalog_default = {
15564
15781
  providerId: "anthropic",
15565
15782
  upstreamId: "claude-opus-4.6",
15566
15783
  displayName: "Claude Opus 4.6",
15567
- aliases: [],
15784
+ aliases: [
15785
+ "claude-opus-4-6"
15786
+ ],
15568
15787
  endpoints: [
15569
15788
  "chat"
15570
15789
  ],
@@ -15651,7 +15870,16 @@ var catalog_default = {
15651
15870
  "max"
15652
15871
  ],
15653
15872
  continuation: "opaque-provider-state",
15654
- defaultEffort: "high"
15873
+ defaultEffort: "high",
15874
+ effortRequest: {
15875
+ value: {
15876
+ field: "output_config.effort"
15877
+ },
15878
+ source: "official-doc",
15879
+ confidence: "declared",
15880
+ observedAt: "2026-09-25T12:30:00Z",
15881
+ sourceRef: "https://platform.claude.com/docs/en/build-with-claude/effort — the effort page's supportedModels list names claude-fable-5-1, claude-fable-5, claude-opus-5-5, claude-opus-5, claude-opus-4-8, claude-opus-4-7, claude-opus-4-6, claude-opus-4-5-20251101, claude-sonnet-5 and claude-sonnet-4-6: effort is requested through `output_config.effort` (Claude 4.7 and later reject a manual `thinking.budget_tokens`, https://platform.claude.com/docs/en/build-with-claude/thinking-troubleshooting#rejected-configurations)."
15882
+ }
15655
15883
  },
15656
15884
  pricing: {
15657
15885
  value: {
@@ -15667,6 +15895,20 @@ var catalog_default = {
15667
15895
  },
15668
15896
  unsupportedParameters: [],
15669
15897
  status: "candidate",
15898
+ deferredToolLoading: {
15899
+ value: true,
15900
+ source: "official-doc",
15901
+ confidence: "declared",
15902
+ observedAt: "2026-09-25T18:30:00Z",
15903
+ sourceRef: 'https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool — the Model compatibility table lists Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 5, Opus 4.8, 4.7, 4.6, Sonnet 4.6, Opus 4.5, Sonnet 4.5 and Haiku 4.5 (not Sonnet 5); "Custom tool search implementation": a client tool returns a tool_result whose content carries {type:"tool_reference", tool_name} blocks, every referenced tool declared in tools with defer_loading: true, and the API expands them; "The prefix is untouched, so prompt caching is preserved" (https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-use-with-prompt-caching).'
15904
+ },
15905
+ assistantPrefill: {
15906
+ value: false,
15907
+ source: "official-doc",
15908
+ confidence: "declared",
15909
+ observedAt: "2026-09-26T00:00:00Z",
15910
+ sourceRef: `https://platform.claude.com/docs/en/models/opus-5-5/migration-guide — "Don't end messages with a prefilled assistant turn: it is rejected"; "Prefilling assistant messages returns a 400 error on Claude Opus 4.6 and later Opus models, including Claude Opus 5.5"; Sonnet 5 and Opus 5: "Manual extended thinking, non-default sampling parameters, and assistant prefill return a 400 error on both models"; the Fable 5.1 guide: prefill "returns a 400 error, unchanged from Claude Fable 5". Live gate 2026-09-26 on claude-opus-5-5: "This model does not support assistant message prefill. The conversation must end with a user message."`
15911
+ },
15670
15912
  canonicalModelId: "claude-opus-4.6",
15671
15913
  modelFamily: "claude"
15672
15914
  },
@@ -15675,7 +15917,9 @@ var catalog_default = {
15675
15917
  providerId: "anthropic",
15676
15918
  upstreamId: "claude-opus-4.7",
15677
15919
  displayName: "Claude Opus 4.7",
15678
- aliases: [],
15920
+ aliases: [
15921
+ "claude-opus-4-7"
15922
+ ],
15679
15923
  endpoints: [
15680
15924
  "chat"
15681
15925
  ],
@@ -15763,7 +16007,16 @@ var catalog_default = {
15763
16007
  "max"
15764
16008
  ],
15765
16009
  continuation: "opaque-provider-state",
15766
- defaultEffort: "high"
16010
+ defaultEffort: "high",
16011
+ effortRequest: {
16012
+ value: {
16013
+ field: "output_config.effort"
16014
+ },
16015
+ source: "official-doc",
16016
+ confidence: "declared",
16017
+ observedAt: "2026-09-25T12:30:00Z",
16018
+ sourceRef: "https://platform.claude.com/docs/en/build-with-claude/effort — the effort page's supportedModels list names claude-fable-5-1, claude-fable-5, claude-opus-5-5, claude-opus-5, claude-opus-4-8, claude-opus-4-7, claude-opus-4-6, claude-opus-4-5-20251101, claude-sonnet-5 and claude-sonnet-4-6: effort is requested through `output_config.effort` (Claude 4.7 and later reject a manual `thinking.budget_tokens`, https://platform.claude.com/docs/en/build-with-claude/thinking-troubleshooting#rejected-configurations)."
16019
+ }
15767
16020
  },
15768
16021
  pricing: {
15769
16022
  value: {
@@ -15780,9 +16033,24 @@ var catalog_default = {
15780
16033
  unsupportedParameters: [
15781
16034
  "temperature",
15782
16035
  "top_p",
15783
- "top_k"
16036
+ "top_k",
16037
+ "thinking.type.enabled"
15784
16038
  ],
15785
16039
  status: "candidate",
16040
+ deferredToolLoading: {
16041
+ value: true,
16042
+ source: "official-doc",
16043
+ confidence: "declared",
16044
+ observedAt: "2026-09-25T18:30:00Z",
16045
+ sourceRef: 'https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool — the Model compatibility table lists Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 5, Opus 4.8, 4.7, 4.6, Sonnet 4.6, Opus 4.5, Sonnet 4.5 and Haiku 4.5 (not Sonnet 5); "Custom tool search implementation": a client tool returns a tool_result whose content carries {type:"tool_reference", tool_name} blocks, every referenced tool declared in tools with defer_loading: true, and the API expands them; "The prefix is untouched, so prompt caching is preserved" (https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-use-with-prompt-caching).'
16046
+ },
16047
+ assistantPrefill: {
16048
+ value: false,
16049
+ source: "official-doc",
16050
+ confidence: "declared",
16051
+ observedAt: "2026-09-26T00:00:00Z",
16052
+ sourceRef: `https://platform.claude.com/docs/en/models/opus-5-5/migration-guide — "Don't end messages with a prefilled assistant turn: it is rejected"; "Prefilling assistant messages returns a 400 error on Claude Opus 4.6 and later Opus models, including Claude Opus 5.5"; Sonnet 5 and Opus 5: "Manual extended thinking, non-default sampling parameters, and assistant prefill return a 400 error on both models"; the Fable 5.1 guide: prefill "returns a 400 error, unchanged from Claude Fable 5". Live gate 2026-09-26 on claude-opus-5-5: "This model does not support assistant message prefill. The conversation must end with a user message."`
16053
+ },
15786
16054
  canonicalModelId: "claude-opus-4.7",
15787
16055
  modelFamily: "claude"
15788
16056
  },
@@ -15791,7 +16059,9 @@ var catalog_default = {
15791
16059
  providerId: "anthropic",
15792
16060
  upstreamId: "claude-opus-4.8",
15793
16061
  displayName: "Claude Opus 4.8",
15794
- aliases: [],
16062
+ aliases: [
16063
+ "claude-opus-4-8"
16064
+ ],
15795
16065
  endpoints: [
15796
16066
  "chat"
15797
16067
  ],
@@ -15879,7 +16149,16 @@ var catalog_default = {
15879
16149
  "max"
15880
16150
  ],
15881
16151
  continuation: "opaque-provider-state",
15882
- defaultEffort: "high"
16152
+ defaultEffort: "high",
16153
+ effortRequest: {
16154
+ value: {
16155
+ field: "output_config.effort"
16156
+ },
16157
+ source: "official-doc",
16158
+ confidence: "declared",
16159
+ observedAt: "2026-09-25T12:30:00Z",
16160
+ sourceRef: "https://platform.claude.com/docs/en/build-with-claude/effort — the effort page's supportedModels list names claude-fable-5-1, claude-fable-5, claude-opus-5-5, claude-opus-5, claude-opus-4-8, claude-opus-4-7, claude-opus-4-6, claude-opus-4-5-20251101, claude-sonnet-5 and claude-sonnet-4-6: effort is requested through `output_config.effort` (Claude 4.7 and later reject a manual `thinking.budget_tokens`, https://platform.claude.com/docs/en/build-with-claude/thinking-troubleshooting#rejected-configurations)."
16161
+ }
15883
16162
  },
15884
16163
  pricing: {
15885
16164
  value: {
@@ -15896,9 +16175,49 @@ var catalog_default = {
15896
16175
  unsupportedParameters: [
15897
16176
  "temperature",
15898
16177
  "top_p",
15899
- "top_k"
16178
+ "top_k",
16179
+ "thinking.type.enabled"
15900
16180
  ],
15901
16181
  status: "candidate",
16182
+ deferredToolLoading: {
16183
+ value: true,
16184
+ source: "official-doc",
16185
+ confidence: "declared",
16186
+ observedAt: "2026-09-25T18:30:00Z",
16187
+ sourceRef: 'https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool — the Model compatibility table lists Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 5, Opus 4.8, 4.7, 4.6, Sonnet 4.6, Opus 4.5, Sonnet 4.5 and Haiku 4.5 (not Sonnet 5); "Custom tool search implementation": a client tool returns a tool_result whose content carries {type:"tool_reference", tool_name} blocks, every referenced tool declared in tools with defer_loading: true, and the API expands them; "The prefix is untouched, so prompt caching is preserved" (https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-use-with-prompt-caching).'
16188
+ },
16189
+ midConversationSystem: {
16190
+ value: true,
16191
+ source: "official-doc",
16192
+ confidence: "declared",
16193
+ observedAt: "2026-09-25T19:00:00Z",
16194
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages — "This feature is available on Claude Fable 5.1, Claude Mythos 5.1, Claude Fable 5, Claude Mythos 5, Claude Opus 5.5, Claude Opus 4.8, and Claude Opus 5. No beta header is required for mid-conversation system messages. This feature is not available on Claude Sonnet 5."'
16195
+ },
16196
+ midConversationToolChanges: {
16197
+ value: {
16198
+ beta: "mid-conversation-tool-changes-2026-07-01"
16199
+ },
16200
+ source: "official-doc",
16201
+ confidence: "declared",
16202
+ observedAt: "2026-09-26T00:00:00Z",
16203
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages — tool_addition / tool_removal blocks in a role:"system" message, by reference ("Add/remove by reference: mid-conversation-tool-changes-2026-07-01 — Claude API, Amazon Bedrock, Google Cloud"); available on Claude Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 4.8 and Opus 5, "Not available on Claude Sonnet 5". Retrieved 2026-09-26; release note 2026-07-24 (https://platform.claude.com/docs/en/release-notes/overview).'
16204
+ },
16205
+ inlineToolDefinitions: {
16206
+ value: {
16207
+ beta: "inline-tools-2026-09-15"
16208
+ },
16209
+ source: "official-doc",
16210
+ confidence: "declared",
16211
+ observedAt: "2026-09-26T00:00:00Z",
16212
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages — tool_addition with a tool_definition ("Add/remove by reference + define by value: inline-tools-2026-09-15 — Claude API"); "The inline-tools-2026-09-15 header covers all reference-based changes"; redefinition: "send a different definition under the same name ... The new definition replaces the earlier one from that position onward" (no removal first, a tool declared in tools included); a definition reusing the name of a different type of tool is a 400 tool_name_conflict. Same model list as midConversationToolChanges. Claude API only, so set on the anthropic and console providers (both api.anthropic.com), never on a cloud reseller. Retrieved 2026-09-26; release note 2026-09-22.'
16213
+ },
16214
+ assistantPrefill: {
16215
+ value: false,
16216
+ source: "official-doc",
16217
+ confidence: "declared",
16218
+ observedAt: "2026-09-26T00:00:00Z",
16219
+ sourceRef: `https://platform.claude.com/docs/en/models/opus-5-5/migration-guide — "Don't end messages with a prefilled assistant turn: it is rejected"; "Prefilling assistant messages returns a 400 error on Claude Opus 4.6 and later Opus models, including Claude Opus 5.5"; Sonnet 5 and Opus 5: "Manual extended thinking, non-default sampling parameters, and assistant prefill return a 400 error on both models"; the Fable 5.1 guide: prefill "returns a 400 error, unchanged from Claude Fable 5". Live gate 2026-09-26 on claude-opus-5-5: "This model does not support assistant message prefill. The conversation must end with a user message."`
16220
+ },
15902
16221
  canonicalModelId: "claude-opus-4.8",
15903
16222
  modelFamily: "claude"
15904
16223
  },
@@ -16038,6 +16357,24 @@ var catalog_default = {
16038
16357
  sourceRef: "continuity report §4.4, BOTH halves. Own-state acceptance: the model's own `thinking` blocks are replayed to it unchanged, in order, with their signatures intact (§4.4's replay rules and its worked request). Why the domain is NARROW: \"when changing Claude models, prior `thinking` and `redacted_thinking` blocks should be stripped because they are tied to the model that produced them. Therefore 'same provider' is not automatically 'same continuation domain.'\" The domain is this model alone, never the Anthropic provider.",
16039
16358
  confidence: "declared",
16040
16359
  observedAt: "2026-09-05T00:00:00Z"
16360
+ },
16361
+ effortRequest: {
16362
+ value: {
16363
+ field: "output_config.effort"
16364
+ },
16365
+ source: "official-doc",
16366
+ confidence: "declared",
16367
+ observedAt: "2026-09-25T12:30:00Z",
16368
+ sourceRef: "https://platform.claude.com/docs/en/build-with-claude/effort — the effort page's supportedModels list names claude-fable-5-1, claude-fable-5, claude-opus-5-5, claude-opus-5, claude-opus-4-8, claude-opus-4-7, claude-opus-4-6, claude-opus-4-5-20251101, claude-sonnet-5 and claude-sonnet-4-6: effort is requested through `output_config.effort` (Claude 4.7 and later reject a manual `thinking.budget_tokens`, https://platform.claude.com/docs/en/build-with-claude/thinking-troubleshooting#rejected-configurations)."
16369
+ },
16370
+ perMessageEffort: {
16371
+ value: {
16372
+ beta: "mid-conversation-output-config-2026-07-01"
16373
+ },
16374
+ source: "official-doc",
16375
+ confidence: "declared",
16376
+ observedAt: "2026-09-25T18:00:00Z",
16377
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/effort#change-effort-mid-conversation-beta — "On Claude Fable 5.1, Claude Mythos 5.1, Claude Opus 5.5, and Claude Opus 5, use a per-message effort change, which keeps the prompt cache": a role:"system" message with empty content and output_config.effort, beta header mid-conversation-output-config-2026-07-01; "Models without per-message effort, including Claude Fable 5, return a 400 error". claude 2.1.282 sends the older alias per-turn-control-2026-07-01, which the page does not document.'
16041
16378
  }
16042
16379
  },
16043
16380
  pricing: {
@@ -16055,9 +16392,51 @@ var catalog_default = {
16055
16392
  unsupportedParameters: [
16056
16393
  "temperature",
16057
16394
  "top_p",
16058
- "top_k"
16395
+ "top_k",
16396
+ "thinking.type.enabled",
16397
+ "thinking.type.disabled+output_config.effort.xhigh",
16398
+ "thinking.type.disabled+output_config.effort.max"
16059
16399
  ],
16060
16400
  status: "candidate",
16401
+ deferredToolLoading: {
16402
+ value: true,
16403
+ source: "official-doc",
16404
+ confidence: "declared",
16405
+ observedAt: "2026-09-25T18:30:00Z",
16406
+ sourceRef: 'https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool — the Model compatibility table lists Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 5, Opus 4.8, 4.7, 4.6, Sonnet 4.6, Opus 4.5, Sonnet 4.5 and Haiku 4.5 (not Sonnet 5); "Custom tool search implementation": a client tool returns a tool_result whose content carries {type:"tool_reference", tool_name} blocks, every referenced tool declared in tools with defer_loading: true, and the API expands them; "The prefix is untouched, so prompt caching is preserved" (https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-use-with-prompt-caching).'
16407
+ },
16408
+ midConversationSystem: {
16409
+ value: true,
16410
+ source: "official-doc",
16411
+ confidence: "declared",
16412
+ observedAt: "2026-09-25T19:00:00Z",
16413
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages — "This feature is available on Claude Fable 5.1, Claude Mythos 5.1, Claude Fable 5, Claude Mythos 5, Claude Opus 5.5, Claude Opus 4.8, and Claude Opus 5. No beta header is required for mid-conversation system messages. This feature is not available on Claude Sonnet 5."'
16414
+ },
16415
+ midConversationToolChanges: {
16416
+ value: {
16417
+ beta: "mid-conversation-tool-changes-2026-07-01"
16418
+ },
16419
+ source: "official-doc",
16420
+ confidence: "declared",
16421
+ observedAt: "2026-09-26T00:00:00Z",
16422
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages — tool_addition / tool_removal blocks in a role:"system" message, by reference ("Add/remove by reference: mid-conversation-tool-changes-2026-07-01 — Claude API, Amazon Bedrock, Google Cloud"); available on Claude Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 4.8 and Opus 5, "Not available on Claude Sonnet 5". Retrieved 2026-09-26; release note 2026-07-24 (https://platform.claude.com/docs/en/release-notes/overview).'
16423
+ },
16424
+ inlineToolDefinitions: {
16425
+ value: {
16426
+ beta: "inline-tools-2026-09-15"
16427
+ },
16428
+ source: "official-doc",
16429
+ confidence: "declared",
16430
+ observedAt: "2026-09-26T00:00:00Z",
16431
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages — tool_addition with a tool_definition ("Add/remove by reference + define by value: inline-tools-2026-09-15 — Claude API"); "The inline-tools-2026-09-15 header covers all reference-based changes"; redefinition: "send a different definition under the same name ... The new definition replaces the earlier one from that position onward" (no removal first, a tool declared in tools included); a definition reusing the name of a different type of tool is a 400 tool_name_conflict. Same model list as midConversationToolChanges. Claude API only, so set on the anthropic and console providers (both api.anthropic.com), never on a cloud reseller. Retrieved 2026-09-26; release note 2026-09-22.'
16432
+ },
16433
+ assistantPrefill: {
16434
+ value: false,
16435
+ source: "official-doc",
16436
+ confidence: "declared",
16437
+ observedAt: "2026-09-26T00:00:00Z",
16438
+ sourceRef: `https://platform.claude.com/docs/en/models/opus-5-5/migration-guide — "Don't end messages with a prefilled assistant turn: it is rejected"; "Prefilling assistant messages returns a 400 error on Claude Opus 4.6 and later Opus models, including Claude Opus 5.5"; Sonnet 5 and Opus 5: "Manual extended thinking, non-default sampling parameters, and assistant prefill return a 400 error on both models"; the Fable 5.1 guide: prefill "returns a 400 error, unchanged from Claude Fable 5". Live gate 2026-09-26 on claude-opus-5-5: "This model does not support assistant message prefill. The conversation must end with a user message."`
16439
+ },
16061
16440
  canonicalModelId: "claude-opus-5",
16062
16441
  modelFamily: "claude"
16063
16442
  },
@@ -16199,6 +16578,33 @@ var catalog_default = {
16199
16578
  sourceRef: "continuity report §3 (wire probe of the pinned Claude Agent SDK, 0.3.250→0.3.258) — every uncompacted historical thinking/redacted block is replayed on every later request",
16200
16579
  confidence: "declared",
16201
16580
  observedAt: "2026-09-05T00:00:00Z"
16581
+ },
16582
+ effortRequest: {
16583
+ value: {
16584
+ field: "output_config.effort"
16585
+ },
16586
+ source: "official-doc",
16587
+ confidence: "declared",
16588
+ observedAt: "2026-09-25T12:30:00Z",
16589
+ sourceRef: "https://platform.claude.com/docs/en/build-with-claude/effort — the effort page's supportedModels list names claude-fable-5-1, claude-fable-5, claude-opus-5-5, claude-opus-5, claude-opus-4-8, claude-opus-4-7, claude-opus-4-6, claude-opus-4-5-20251101, claude-sonnet-5 and claude-sonnet-4-6: effort is requested through `output_config.effort` (Claude 4.7 and later reject a manual `thinking.budget_tokens`, https://platform.claude.com/docs/en/build-with-claude/thinking-troubleshooting#rejected-configurations)."
16590
+ },
16591
+ blockBinding: {
16592
+ value: {
16593
+ beta: "thinking-binding-controls-2026-08-01"
16594
+ },
16595
+ source: "official-doc",
16596
+ confidence: "declared",
16597
+ observedAt: "2026-09-25T13:00:00Z",
16598
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/thinking-troubleshooting — "A 400 error says a thinking block signature is invalid": on Claude Fable 5.1 and Opus 5.5 a replayed thinking block is bound to the conversation (system, tools and earlier messages) and is rejected once that prefix changes (enforced for accounts created on or after 2026-08-31); the documented escape is the `thinking-binding-controls-2026-08-01` beta with `thinking.block_binding.prefix_mismatch_behavior: "drop_block"`. See also https://platform.claude.com/docs/en/models/opus-5-5/whats-new-opus-5-5 ("Thinking blocks are tied to the model and the conversation").'
16599
+ },
16600
+ perMessageEffort: {
16601
+ value: {
16602
+ beta: "mid-conversation-output-config-2026-07-01"
16603
+ },
16604
+ source: "official-doc",
16605
+ confidence: "declared",
16606
+ observedAt: "2026-09-25T18:00:00Z",
16607
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/effort#change-effort-mid-conversation-beta — "On Claude Fable 5.1, Claude Mythos 5.1, Claude Opus 5.5, and Claude Opus 5, use a per-message effort change, which keeps the prompt cache": a role:"system" message with empty content and output_config.effort, beta header mid-conversation-output-config-2026-07-01; "Models without per-message effort, including Claude Fable 5, return a 400 error". claude 2.1.282 sends the older alias per-turn-control-2026-07-01, which the page does not document.'
16202
16608
  }
16203
16609
  },
16204
16610
  pricing: {
@@ -16213,8 +16619,52 @@ var catalog_default = {
16213
16619
  confidence: "declared",
16214
16620
  observedAt: "2026-09-25T10:25:20Z"
16215
16621
  },
16216
- unsupportedParameters: [],
16622
+ unsupportedParameters: [
16623
+ "thinking.type.enabled",
16624
+ "thinking.type.disabled",
16625
+ "tool_choice.any",
16626
+ "tool_choice.tool"
16627
+ ],
16217
16628
  status: "candidate",
16629
+ deferredToolLoading: {
16630
+ value: true,
16631
+ source: "official-doc",
16632
+ confidence: "declared",
16633
+ observedAt: "2026-09-25T18:30:00Z",
16634
+ sourceRef: 'https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool — the Model compatibility table lists Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 5, Opus 4.8, 4.7, 4.6, Sonnet 4.6, Opus 4.5, Sonnet 4.5 and Haiku 4.5 (not Sonnet 5); "Custom tool search implementation": a client tool returns a tool_result whose content carries {type:"tool_reference", tool_name} blocks, every referenced tool declared in tools with defer_loading: true, and the API expands them; "The prefix is untouched, so prompt caching is preserved" (https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-use-with-prompt-caching).'
16635
+ },
16636
+ midConversationSystem: {
16637
+ value: true,
16638
+ source: "official-doc",
16639
+ confidence: "declared",
16640
+ observedAt: "2026-09-25T19:00:00Z",
16641
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages — "This feature is available on Claude Fable 5.1, Claude Mythos 5.1, Claude Fable 5, Claude Mythos 5, Claude Opus 5.5, Claude Opus 4.8, and Claude Opus 5. No beta header is required for mid-conversation system messages. This feature is not available on Claude Sonnet 5."'
16642
+ },
16643
+ midConversationToolChanges: {
16644
+ value: {
16645
+ beta: "mid-conversation-tool-changes-2026-07-01"
16646
+ },
16647
+ source: "official-doc",
16648
+ confidence: "declared",
16649
+ observedAt: "2026-09-26T00:00:00Z",
16650
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages — tool_addition / tool_removal blocks in a role:"system" message, by reference ("Add/remove by reference: mid-conversation-tool-changes-2026-07-01 — Claude API, Amazon Bedrock, Google Cloud"); available on Claude Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 4.8 and Opus 5, "Not available on Claude Sonnet 5". Retrieved 2026-09-26; release note 2026-07-24 (https://platform.claude.com/docs/en/release-notes/overview).'
16651
+ },
16652
+ inlineToolDefinitions: {
16653
+ value: {
16654
+ beta: "inline-tools-2026-09-15"
16655
+ },
16656
+ source: "official-doc",
16657
+ confidence: "declared",
16658
+ observedAt: "2026-09-26T00:00:00Z",
16659
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages — tool_addition with a tool_definition ("Add/remove by reference + define by value: inline-tools-2026-09-15 — Claude API"); "The inline-tools-2026-09-15 header covers all reference-based changes"; redefinition: "send a different definition under the same name ... The new definition replaces the earlier one from that position onward" (no removal first, a tool declared in tools included); a definition reusing the name of a different type of tool is a 400 tool_name_conflict. Same model list as midConversationToolChanges. Claude API only, so set on the anthropic and console providers (both api.anthropic.com), never on a cloud reseller. Retrieved 2026-09-26; release note 2026-09-22.'
16660
+ },
16661
+ assistantPrefill: {
16662
+ value: false,
16663
+ source: "official-doc",
16664
+ confidence: "declared",
16665
+ observedAt: "2026-09-26T00:00:00Z",
16666
+ sourceRef: `https://platform.claude.com/docs/en/models/opus-5-5/migration-guide — "Don't end messages with a prefilled assistant turn: it is rejected"; "Prefilling assistant messages returns a 400 error on Claude Opus 4.6 and later Opus models, including Claude Opus 5.5"; Sonnet 5 and Opus 5: "Manual extended thinking, non-default sampling parameters, and assistant prefill return a 400 error on both models"; the Fable 5.1 guide: prefill "returns a 400 error, unchanged from Claude Fable 5". Live gate 2026-09-26 on claude-opus-5-5: "This model does not support assistant message prefill. The conversation must end with a user message."`
16667
+ },
16218
16668
  canonicalModelId: "claude-opus-5.5",
16219
16669
  modelFamily: "claude"
16220
16670
  },
@@ -16326,8 +16776,17 @@ var catalog_default = {
16326
16776
  confidence: "declared",
16327
16777
  observedAt: "2026-09-19T00:00:00Z"
16328
16778
  },
16329
- unsupportedParameters: [],
16779
+ unsupportedParameters: [
16780
+ "thinking.type.adaptive"
16781
+ ],
16330
16782
  status: "candidate",
16783
+ deferredToolLoading: {
16784
+ value: true,
16785
+ source: "official-doc",
16786
+ confidence: "declared",
16787
+ observedAt: "2026-09-25T18:30:00Z",
16788
+ sourceRef: 'https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool — the Model compatibility table lists Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 5, Opus 4.8, 4.7, 4.6, Sonnet 4.6, Opus 4.5, Sonnet 4.5 and Haiku 4.5 (not Sonnet 5); "Custom tool search implementation": a client tool returns a tool_result whose content carries {type:"tool_reference", tool_name} blocks, every referenced tool declared in tools with defer_loading: true, and the API expands them; "The prefix is untouched, so prompt caching is preserved" (https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-use-with-prompt-caching).'
16789
+ },
16331
16790
  canonicalModelId: "claude-sonnet-4.5",
16332
16791
  modelFamily: "claude"
16333
16792
  },
@@ -16336,7 +16795,9 @@ var catalog_default = {
16336
16795
  providerId: "anthropic",
16337
16796
  upstreamId: "claude-sonnet-4.6",
16338
16797
  displayName: "Claude Sonnet 4.6",
16339
- aliases: [],
16798
+ aliases: [
16799
+ "claude-sonnet-4-6"
16800
+ ],
16340
16801
  endpoints: [
16341
16802
  "chat"
16342
16803
  ],
@@ -16423,7 +16884,16 @@ var catalog_default = {
16423
16884
  "max"
16424
16885
  ],
16425
16886
  continuation: "opaque-provider-state",
16426
- defaultEffort: "high"
16887
+ defaultEffort: "high",
16888
+ effortRequest: {
16889
+ value: {
16890
+ field: "output_config.effort"
16891
+ },
16892
+ source: "official-doc",
16893
+ confidence: "declared",
16894
+ observedAt: "2026-09-25T12:30:00Z",
16895
+ sourceRef: "https://platform.claude.com/docs/en/build-with-claude/effort — the effort page's supportedModels list names claude-fable-5-1, claude-fable-5, claude-opus-5-5, claude-opus-5, claude-opus-4-8, claude-opus-4-7, claude-opus-4-6, claude-opus-4-5-20251101, claude-sonnet-5 and claude-sonnet-4-6: effort is requested through `output_config.effort` (Claude 4.7 and later reject a manual `thinking.budget_tokens`, https://platform.claude.com/docs/en/build-with-claude/thinking-troubleshooting#rejected-configurations)."
16896
+ }
16427
16897
  },
16428
16898
  pricing: {
16429
16899
  value: {
@@ -16439,6 +16909,13 @@ var catalog_default = {
16439
16909
  },
16440
16910
  unsupportedParameters: [],
16441
16911
  status: "candidate",
16912
+ deferredToolLoading: {
16913
+ value: true,
16914
+ source: "official-doc",
16915
+ confidence: "declared",
16916
+ observedAt: "2026-09-25T18:30:00Z",
16917
+ sourceRef: 'https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool — the Model compatibility table lists Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 5, Opus 4.8, 4.7, 4.6, Sonnet 4.6, Opus 4.5, Sonnet 4.5 and Haiku 4.5 (not Sonnet 5); "Custom tool search implementation": a client tool returns a tool_result whose content carries {type:"tool_reference", tool_name} blocks, every referenced tool declared in tools with defer_loading: true, and the API expands them; "The prefix is untouched, so prompt caching is preserved" (https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-use-with-prompt-caching).'
16918
+ },
16442
16919
  canonicalModelId: "claude-sonnet-4.6",
16443
16920
  modelFamily: "claude"
16444
16921
  },
@@ -16580,6 +17057,15 @@ var catalog_default = {
16580
17057
  sourceRef: 'continuity report §4.4, BOTH halves. Own-state acceptance: §4.4 requires the model\'s own assistant blocks — `thinking` with its signature, `redacted_thinking` — replayed unchanged and in order across a tool loop. Why the domain is NARROW: Anthropic documents model switching as a boundary at which those blocks are STRIPPED, because they are tied to the producing model; "same provider" is therefore not "same continuation domain", and this domain is the model alone.',
16581
17058
  confidence: "declared",
16582
17059
  observedAt: "2026-09-05T00:00:00Z"
17060
+ },
17061
+ effortRequest: {
17062
+ value: {
17063
+ field: "output_config.effort"
17064
+ },
17065
+ source: "official-doc",
17066
+ confidence: "declared",
17067
+ observedAt: "2026-09-25T12:30:00Z",
17068
+ sourceRef: "https://platform.claude.com/docs/en/build-with-claude/effort — the effort page's supportedModels list names claude-fable-5-1, claude-fable-5, claude-opus-5-5, claude-opus-5, claude-opus-4-8, claude-opus-4-7, claude-opus-4-6, claude-opus-4-5-20251101, claude-sonnet-5 and claude-sonnet-4-6: effort is requested through `output_config.effort` (Claude 4.7 and later reject a manual `thinking.budget_tokens`, https://platform.claude.com/docs/en/build-with-claude/thinking-troubleshooting#rejected-configurations)."
16583
17069
  }
16584
17070
  },
16585
17071
  pricing: {
@@ -16597,9 +17083,17 @@ var catalog_default = {
16597
17083
  unsupportedParameters: [
16598
17084
  "temperature",
16599
17085
  "top_p",
16600
- "top_k"
17086
+ "top_k",
17087
+ "thinking.type.enabled"
16601
17088
  ],
16602
17089
  status: "candidate",
17090
+ assistantPrefill: {
17091
+ value: false,
17092
+ source: "official-doc",
17093
+ confidence: "declared",
17094
+ observedAt: "2026-09-26T00:00:00Z",
17095
+ sourceRef: `https://platform.claude.com/docs/en/models/opus-5-5/migration-guide — "Don't end messages with a prefilled assistant turn: it is rejected"; "Prefilling assistant messages returns a 400 error on Claude Opus 4.6 and later Opus models, including Claude Opus 5.5"; Sonnet 5 and Opus 5: "Manual extended thinking, non-default sampling parameters, and assistant prefill return a 400 error on both models"; the Fable 5.1 guide: prefill "returns a 400 error, unchanged from Claude Fable 5". Live gate 2026-09-26 on claude-opus-5-5: "This model does not support assistant message prefill. The conversation must end with a user message."`
17096
+ },
16603
17097
  canonicalModelId: "claude-sonnet-5",
16604
17098
  modelFamily: "claude"
16605
17099
  },
@@ -22444,13 +22938,12 @@ var catalog_default = {
22444
22938
  value: [
22445
22939
  "text",
22446
22940
  "image",
22447
- "video",
22448
- "pdf"
22941
+ "video"
22449
22942
  ],
22450
22943
  source: "official-doc",
22451
- sourceRef: "https://docs.aws.amazon.com/nova/latest/userguide/what-is-nova.html — Amazon Nova Lite supports text, image, video, pdf inputs; PDF is mapped from document support",
22452
- confidence: "inferred",
22453
- observedAt: "2026-09-25T11:00:00Z"
22944
+ sourceRef: "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-amazon-nova-lite.html — per-model Input Modalities table marks Text, Image, Video supported; PDF is not listed as a separate modality",
22945
+ confidence: "declared",
22946
+ observedAt: "2026-09-25T12:31:56.381Z"
22454
22947
  },
22455
22948
  outputModalities: {
22456
22949
  value: [
@@ -22595,13 +23088,12 @@ var catalog_default = {
22595
23088
  value: [
22596
23089
  "text",
22597
23090
  "image",
22598
- "video",
22599
- "pdf"
23091
+ "video"
22600
23092
  ],
22601
23093
  source: "official-doc",
22602
- sourceRef: "https://docs.aws.amazon.com/nova/latest/userguide/what-is-nova.html — Amazon Nova Premier supports text, image, video, pdf inputs; PDF is mapped from document support",
22603
- confidence: "inferred",
22604
- observedAt: "2026-09-25T11:00:00Z"
23094
+ sourceRef: "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-amazon-nova-premier.html — per-model Input Modalities table marks Text, Image, Video supported; PDF is not listed as a separate modality",
23095
+ confidence: "declared",
23096
+ observedAt: "2026-09-25T12:31:56.381Z"
22605
23097
  },
22606
23098
  outputModalities: {
22607
23099
  value: [
@@ -22683,13 +23175,12 @@ var catalog_default = {
22683
23175
  value: [
22684
23176
  "text",
22685
23177
  "image",
22686
- "video",
22687
- "pdf"
23178
+ "video"
22688
23179
  ],
22689
23180
  source: "official-doc",
22690
- sourceRef: "https://docs.aws.amazon.com/nova/latest/userguide/what-is-nova.html — Amazon Nova Pro supports text, image, video, pdf inputs; PDF is mapped from document support",
22691
- confidence: "inferred",
22692
- observedAt: "2026-09-25T11:00:00Z"
23181
+ sourceRef: "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-amazon-nova-pro.html — per-model Input Modalities table marks Text, Image, Video supported; PDF is not listed as a separate modality",
23182
+ confidence: "declared",
23183
+ observedAt: "2026-09-25T12:31:56.381Z"
22693
23184
  },
22694
23185
  outputModalities: {
22695
23186
  value: [
@@ -23127,13 +23618,12 @@ var catalog_default = {
23127
23618
  value: [
23128
23619
  "text",
23129
23620
  "image",
23130
- "video",
23131
- "pdf"
23621
+ "video"
23132
23622
  ],
23133
23623
  source: "official-doc",
23134
- sourceRef: "https://docs.aws.amazon.com/nova/latest/nova2-userguide/what-is-nova-2.html — Amazon Nova 2 Lite (US Geo) supports text, image, video, pdf inputs; PDF is mapped from document support",
23135
- confidence: "inferred",
23136
- observedAt: "2026-09-25T11:00:00Z"
23624
+ sourceRef: "https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-amazon-nova-2-lite.html — per-model Input Modalities table marks Text, Image, Video supported; PDF is not listed as a separate modality",
23625
+ confidence: "declared",
23626
+ observedAt: "2026-09-25T12:31:56.381Z"
23137
23627
  },
23138
23628
  outputModalities: {
23139
23629
  value: [
@@ -25807,6 +26297,20 @@ var catalog_default = {
25807
26297
  },
25808
26298
  unsupportedParameters: [],
25809
26299
  status: "candidate",
26300
+ promptCacheKey: {
26301
+ value: true,
26302
+ source: "official-doc",
26303
+ confidence: "declared",
26304
+ observedAt: "2026-09-25T19:30:00Z",
26305
+ sourceRef: "https://github.com/openai/codex/blob/main/codex-rs/core/src/client.rs — Codex (the vendor's own client for this backend) sets prompt_cache_key on every Responses request, to the session id (or source:parent_thread_id for internal sessions); https://developers.openai.com/api/docs/guides/prompt-caching documents the field."
26306
+ },
26307
+ clientToolSearch: {
26308
+ value: true,
26309
+ source: "upstream-static",
26310
+ confidence: "declared",
26311
+ observedAt: "2026-09-26T00:00:00Z",
26312
+ sourceRef: "codex-rs models-manager/models.json (cloned 25270df, 2026-09-26): supports_search_tool is true on every bundled model; core/src/tools/spec_plan.rs:653-666 turns on the client tool_search (tools/src/tool_search.rs:84-110, core/src/tools/handlers/tool_search_spec.rs:98) when the provider's namespace capability is on (default true) -- the vendor's own client sends it to chatgpt.com/backend-api/codex."
26313
+ },
25810
26314
  canonicalModelId: "gpt-5.6-luna",
25811
26315
  modelFamily: "gpt"
25812
26316
  },
@@ -25914,6 +26418,20 @@ var catalog_default = {
25914
26418
  },
25915
26419
  unsupportedParameters: [],
25916
26420
  status: "candidate",
26421
+ promptCacheKey: {
26422
+ value: true,
26423
+ source: "official-doc",
26424
+ confidence: "declared",
26425
+ observedAt: "2026-09-25T19:30:00Z",
26426
+ sourceRef: "https://github.com/openai/codex/blob/main/codex-rs/core/src/client.rs — Codex (the vendor's own client for this backend) sets prompt_cache_key on every Responses request, to the session id (or source:parent_thread_id for internal sessions); https://developers.openai.com/api/docs/guides/prompt-caching documents the field."
26427
+ },
26428
+ clientToolSearch: {
26429
+ value: true,
26430
+ source: "upstream-static",
26431
+ confidence: "declared",
26432
+ observedAt: "2026-09-26T00:00:00Z",
26433
+ sourceRef: "codex-rs models-manager/models.json (cloned 25270df, 2026-09-26): supports_search_tool is true on every bundled model; core/src/tools/spec_plan.rs:653-666 turns on the client tool_search (tools/src/tool_search.rs:84-110, core/src/tools/handlers/tool_search_spec.rs:98) when the provider's namespace capability is on (default true) -- the vendor's own client sends it to chatgpt.com/backend-api/codex."
26434
+ },
25917
26435
  canonicalModelId: "gpt-5.6-sol",
25918
26436
  modelFamily: "gpt"
25919
26437
  },
@@ -26021,6 +26539,20 @@ var catalog_default = {
26021
26539
  },
26022
26540
  unsupportedParameters: [],
26023
26541
  status: "candidate",
26542
+ promptCacheKey: {
26543
+ value: true,
26544
+ source: "official-doc",
26545
+ confidence: "declared",
26546
+ observedAt: "2026-09-25T19:30:00Z",
26547
+ sourceRef: "https://github.com/openai/codex/blob/main/codex-rs/core/src/client.rs — Codex (the vendor's own client for this backend) sets prompt_cache_key on every Responses request, to the session id (or source:parent_thread_id for internal sessions); https://developers.openai.com/api/docs/guides/prompt-caching documents the field."
26548
+ },
26549
+ clientToolSearch: {
26550
+ value: true,
26551
+ source: "upstream-static",
26552
+ confidence: "declared",
26553
+ observedAt: "2026-09-26T00:00:00Z",
26554
+ sourceRef: "codex-rs models-manager/models.json (cloned 25270df, 2026-09-26): supports_search_tool is true on every bundled model; core/src/tools/spec_plan.rs:653-666 turns on the client tool_search (tools/src/tool_search.rs:84-110, core/src/tools/handlers/tool_search_spec.rs:98) when the provider's namespace capability is on (default true) -- the vendor's own client sends it to chatgpt.com/backend-api/codex."
26555
+ },
26024
26556
  canonicalModelId: "gpt-5.6-terra",
26025
26557
  modelFamily: "gpt"
26026
26558
  },
@@ -26130,6 +26662,20 @@ var catalog_default = {
26130
26662
  },
26131
26663
  unsupportedParameters: [],
26132
26664
  status: "candidate",
26665
+ promptCacheKey: {
26666
+ value: true,
26667
+ source: "official-doc",
26668
+ confidence: "declared",
26669
+ observedAt: "2026-09-25T19:30:00Z",
26670
+ sourceRef: "https://github.com/openai/codex/blob/main/codex-rs/core/src/client.rs — Codex (the vendor's own client for this backend) sets prompt_cache_key on every Responses request, to the session id (or source:parent_thread_id for internal sessions); https://developers.openai.com/api/docs/guides/prompt-caching documents the field."
26671
+ },
26672
+ clientToolSearch: {
26673
+ value: true,
26674
+ source: "upstream-static",
26675
+ confidence: "declared",
26676
+ observedAt: "2026-09-26T00:00:00Z",
26677
+ sourceRef: "codex-rs models-manager/models.json (cloned 25270df, 2026-09-26): supports_search_tool is true on every bundled model; core/src/tools/spec_plan.rs:653-666 turns on the client tool_search (tools/src/tool_search.rs:84-110, core/src/tools/handlers/tool_search_spec.rs:98) when the provider's namespace capability is on (default true) -- the vendor's own client sends it to chatgpt.com/backend-api/codex."
26678
+ },
26133
26679
  canonicalModelId: "gpt-6-astra",
26134
26680
  modelFamily: "gpt"
26135
26681
  },
@@ -26239,6 +26785,20 @@ var catalog_default = {
26239
26785
  },
26240
26786
  unsupportedParameters: [],
26241
26787
  status: "candidate",
26788
+ promptCacheKey: {
26789
+ value: true,
26790
+ source: "official-doc",
26791
+ confidence: "declared",
26792
+ observedAt: "2026-09-25T19:30:00Z",
26793
+ sourceRef: "https://github.com/openai/codex/blob/main/codex-rs/core/src/client.rs — Codex (the vendor's own client for this backend) sets prompt_cache_key on every Responses request, to the session id (or source:parent_thread_id for internal sessions); https://developers.openai.com/api/docs/guides/prompt-caching documents the field."
26794
+ },
26795
+ clientToolSearch: {
26796
+ value: true,
26797
+ source: "upstream-static",
26798
+ confidence: "declared",
26799
+ observedAt: "2026-09-26T00:00:00Z",
26800
+ sourceRef: "codex-rs models-manager/models.json (cloned 25270df, 2026-09-26): supports_search_tool is true on every bundled model; core/src/tools/spec_plan.rs:653-666 turns on the client tool_search (tools/src/tool_search.rs:84-110, core/src/tools/handlers/tool_search_spec.rs:98) when the provider's namespace capability is on (default true) -- the vendor's own client sends it to chatgpt.com/backend-api/codex."
26801
+ },
26242
26802
  canonicalModelId: "gpt-6-luna",
26243
26803
  modelFamily: "gpt"
26244
26804
  },
@@ -26348,6 +26908,20 @@ var catalog_default = {
26348
26908
  },
26349
26909
  unsupportedParameters: [],
26350
26910
  status: "candidate",
26911
+ promptCacheKey: {
26912
+ value: true,
26913
+ source: "official-doc",
26914
+ confidence: "declared",
26915
+ observedAt: "2026-09-25T19:30:00Z",
26916
+ sourceRef: "https://github.com/openai/codex/blob/main/codex-rs/core/src/client.rs — Codex (the vendor's own client for this backend) sets prompt_cache_key on every Responses request, to the session id (or source:parent_thread_id for internal sessions); https://developers.openai.com/api/docs/guides/prompt-caching documents the field."
26917
+ },
26918
+ clientToolSearch: {
26919
+ value: true,
26920
+ source: "upstream-static",
26921
+ confidence: "declared",
26922
+ observedAt: "2026-09-26T00:00:00Z",
26923
+ sourceRef: "codex-rs models-manager/models.json (cloned 25270df, 2026-09-26): supports_search_tool is true on every bundled model; core/src/tools/spec_plan.rs:653-666 turns on the client tool_search (tools/src/tool_search.rs:84-110, core/src/tools/handlers/tool_search_spec.rs:98) when the provider's namespace capability is on (default true) -- the vendor's own client sends it to chatgpt.com/backend-api/codex."
26924
+ },
26351
26925
  canonicalModelId: "gpt-6-sol",
26352
26926
  modelFamily: "gpt"
26353
26927
  },
@@ -27060,7 +27634,16 @@ var catalog_default = {
27060
27634
  "max"
27061
27635
  ],
27062
27636
  continuation: "opaque-provider-state",
27063
- defaultEffort: "high"
27637
+ defaultEffort: "high",
27638
+ effortRequest: {
27639
+ value: {
27640
+ field: "output_config.effort"
27641
+ },
27642
+ source: "official-doc",
27643
+ confidence: "declared",
27644
+ observedAt: "2026-09-25T12:30:00Z",
27645
+ sourceRef: "https://platform.claude.com/docs/en/build-with-claude/effort — the effort page's supportedModels list names claude-fable-5-1, claude-fable-5, claude-opus-5-5, claude-opus-5, claude-opus-4-8, claude-opus-4-7, claude-opus-4-6, claude-opus-4-5-20251101, claude-sonnet-5 and claude-sonnet-4-6: effort is requested through `output_config.effort` (Claude 4.7 and later reject a manual `thinking.budget_tokens`, https://platform.claude.com/docs/en/build-with-claude/thinking-troubleshooting#rejected-configurations)."
27646
+ }
27064
27647
  },
27065
27648
  pricing: {
27066
27649
  value: {
@@ -27077,9 +27660,50 @@ var catalog_default = {
27077
27660
  unsupportedParameters: [
27078
27661
  "temperature",
27079
27662
  "top_p",
27080
- "top_k"
27663
+ "top_k",
27664
+ "thinking.type.enabled",
27665
+ "thinking.type.disabled"
27081
27666
  ],
27082
27667
  status: "candidate",
27668
+ deferredToolLoading: {
27669
+ value: true,
27670
+ source: "official-doc",
27671
+ confidence: "declared",
27672
+ observedAt: "2026-09-25T18:30:00Z",
27673
+ sourceRef: 'https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool — the Model compatibility table lists Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 5, Opus 4.8, 4.7, 4.6, Sonnet 4.6, Opus 4.5, Sonnet 4.5 and Haiku 4.5 (not Sonnet 5); "Custom tool search implementation": a client tool returns a tool_result whose content carries {type:"tool_reference", tool_name} blocks, every referenced tool declared in tools with defer_loading: true, and the API expands them; "The prefix is untouched, so prompt caching is preserved" (https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-use-with-prompt-caching).'
27674
+ },
27675
+ midConversationSystem: {
27676
+ value: true,
27677
+ source: "official-doc",
27678
+ confidence: "declared",
27679
+ observedAt: "2026-09-25T19:00:00Z",
27680
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages — "This feature is available on Claude Fable 5.1, Claude Mythos 5.1, Claude Fable 5, Claude Mythos 5, Claude Opus 5.5, Claude Opus 4.8, and Claude Opus 5. No beta header is required for mid-conversation system messages. This feature is not available on Claude Sonnet 5."'
27681
+ },
27682
+ midConversationToolChanges: {
27683
+ value: {
27684
+ beta: "mid-conversation-tool-changes-2026-07-01"
27685
+ },
27686
+ source: "official-doc",
27687
+ confidence: "declared",
27688
+ observedAt: "2026-09-26T00:00:00Z",
27689
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages — tool_addition / tool_removal blocks in a role:"system" message, by reference ("Add/remove by reference: mid-conversation-tool-changes-2026-07-01 — Claude API, Amazon Bedrock, Google Cloud"); available on Claude Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 4.8 and Opus 5, "Not available on Claude Sonnet 5". Retrieved 2026-09-26; release note 2026-07-24 (https://platform.claude.com/docs/en/release-notes/overview).'
27690
+ },
27691
+ inlineToolDefinitions: {
27692
+ value: {
27693
+ beta: "inline-tools-2026-09-15"
27694
+ },
27695
+ source: "official-doc",
27696
+ confidence: "declared",
27697
+ observedAt: "2026-09-26T00:00:00Z",
27698
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages — tool_addition with a tool_definition ("Add/remove by reference + define by value: inline-tools-2026-09-15 — Claude API"); "The inline-tools-2026-09-15 header covers all reference-based changes"; redefinition: "send a different definition under the same name ... The new definition replaces the earlier one from that position onward" (no removal first, a tool declared in tools included); a definition reusing the name of a different type of tool is a 400 tool_name_conflict. Same model list as midConversationToolChanges. Claude API only, so set on the anthropic and console providers (both api.anthropic.com), never on a cloud reseller. Retrieved 2026-09-26; release note 2026-09-22.'
27699
+ },
27700
+ assistantPrefill: {
27701
+ value: false,
27702
+ source: "official-doc",
27703
+ confidence: "declared",
27704
+ observedAt: "2026-09-26T00:00:00Z",
27705
+ sourceRef: `https://platform.claude.com/docs/en/models/opus-5-5/migration-guide — "Don't end messages with a prefilled assistant turn: it is rejected"; "Prefilling assistant messages returns a 400 error on Claude Opus 4.6 and later Opus models, including Claude Opus 5.5"; Sonnet 5 and Opus 5: "Manual extended thinking, non-default sampling parameters, and assistant prefill return a 400 error on both models"; the Fable 5.1 guide: prefill "returns a 400 error, unchanged from Claude Fable 5". Live gate 2026-09-26 on claude-opus-5-5: "This model does not support assistant message prefill. The conversation must end with a user message."`
27706
+ },
27083
27707
  canonicalModelId: "claude-fable-5",
27084
27708
  modelFamily: "claude"
27085
27709
  },
@@ -27212,6 +27836,33 @@ var catalog_default = {
27212
27836
  sourceRef: `continuity report §4.4, BOTH halves, applied per anthropic/claude-opus-5's own evidence. Own-state acceptance: a Claude model's own thinking blocks are replayed to it unchanged, in order, with signatures intact. Why the domain is NARROW: prior thinking/redacted_thinking blocks are tied to the model that produced them, so "same provider" is not automatically "same continuation domain" — the domain is this model alone.`,
27213
27837
  confidence: "declared",
27214
27838
  observedAt: "2026-09-16T00:00:00Z"
27839
+ },
27840
+ effortRequest: {
27841
+ value: {
27842
+ field: "output_config.effort"
27843
+ },
27844
+ source: "official-doc",
27845
+ confidence: "declared",
27846
+ observedAt: "2026-09-25T12:30:00Z",
27847
+ sourceRef: "https://platform.claude.com/docs/en/build-with-claude/effort — the effort page's supportedModels list names claude-fable-5-1, claude-fable-5, claude-opus-5-5, claude-opus-5, claude-opus-4-8, claude-opus-4-7, claude-opus-4-6, claude-opus-4-5-20251101, claude-sonnet-5 and claude-sonnet-4-6: effort is requested through `output_config.effort` (Claude 4.7 and later reject a manual `thinking.budget_tokens`, https://platform.claude.com/docs/en/build-with-claude/thinking-troubleshooting#rejected-configurations)."
27848
+ },
27849
+ blockBinding: {
27850
+ value: {
27851
+ beta: "thinking-binding-controls-2026-08-01"
27852
+ },
27853
+ source: "official-doc",
27854
+ confidence: "declared",
27855
+ observedAt: "2026-09-25T13:00:00Z",
27856
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/thinking-troubleshooting — "A 400 error says a thinking block signature is invalid": on Claude Fable 5.1 and Opus 5.5 a replayed thinking block is bound to the conversation (system, tools and earlier messages) and is rejected once that prefix changes (enforced for accounts created on or after 2026-08-31); the documented escape is the `thinking-binding-controls-2026-08-01` beta with `thinking.block_binding.prefix_mismatch_behavior: "drop_block"`. See also https://platform.claude.com/docs/en/models/opus-5-5/whats-new-opus-5-5 ("Thinking blocks are tied to the model and the conversation").'
27857
+ },
27858
+ perMessageEffort: {
27859
+ value: {
27860
+ beta: "mid-conversation-output-config-2026-07-01"
27861
+ },
27862
+ source: "official-doc",
27863
+ confidence: "declared",
27864
+ observedAt: "2026-09-25T18:00:00Z",
27865
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/effort#change-effort-mid-conversation-beta — "On Claude Fable 5.1, Claude Mythos 5.1, Claude Opus 5.5, and Claude Opus 5, use a per-message effort change, which keeps the prompt cache": a role:"system" message with empty content and output_config.effort, beta header mid-conversation-output-config-2026-07-01; "Models without per-message effort, including Claude Fable 5, return a 400 error". claude 2.1.282 sends the older alias per-turn-control-2026-07-01, which the page does not document.'
27215
27866
  }
27216
27867
  },
27217
27868
  pricing: {
@@ -27226,8 +27877,52 @@ var catalog_default = {
27226
27877
  confidence: "declared",
27227
27878
  observedAt: "2026-09-16T00:00:00Z"
27228
27879
  },
27229
- unsupportedParameters: [],
27880
+ unsupportedParameters: [
27881
+ "thinking.type.enabled",
27882
+ "thinking.type.disabled",
27883
+ "tool_choice.any",
27884
+ "tool_choice.tool"
27885
+ ],
27230
27886
  status: "candidate",
27887
+ deferredToolLoading: {
27888
+ value: true,
27889
+ source: "official-doc",
27890
+ confidence: "declared",
27891
+ observedAt: "2026-09-25T18:30:00Z",
27892
+ sourceRef: 'https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool — the Model compatibility table lists Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 5, Opus 4.8, 4.7, 4.6, Sonnet 4.6, Opus 4.5, Sonnet 4.5 and Haiku 4.5 (not Sonnet 5); "Custom tool search implementation": a client tool returns a tool_result whose content carries {type:"tool_reference", tool_name} blocks, every referenced tool declared in tools with defer_loading: true, and the API expands them; "The prefix is untouched, so prompt caching is preserved" (https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-use-with-prompt-caching).'
27893
+ },
27894
+ midConversationSystem: {
27895
+ value: true,
27896
+ source: "official-doc",
27897
+ confidence: "declared",
27898
+ observedAt: "2026-09-25T19:00:00Z",
27899
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages — "This feature is available on Claude Fable 5.1, Claude Mythos 5.1, Claude Fable 5, Claude Mythos 5, Claude Opus 5.5, Claude Opus 4.8, and Claude Opus 5. No beta header is required for mid-conversation system messages. This feature is not available on Claude Sonnet 5."'
27900
+ },
27901
+ midConversationToolChanges: {
27902
+ value: {
27903
+ beta: "mid-conversation-tool-changes-2026-07-01"
27904
+ },
27905
+ source: "official-doc",
27906
+ confidence: "declared",
27907
+ observedAt: "2026-09-26T00:00:00Z",
27908
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages — tool_addition / tool_removal blocks in a role:"system" message, by reference ("Add/remove by reference: mid-conversation-tool-changes-2026-07-01 — Claude API, Amazon Bedrock, Google Cloud"); available on Claude Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 4.8 and Opus 5, "Not available on Claude Sonnet 5". Retrieved 2026-09-26; release note 2026-07-24 (https://platform.claude.com/docs/en/release-notes/overview).'
27909
+ },
27910
+ inlineToolDefinitions: {
27911
+ value: {
27912
+ beta: "inline-tools-2026-09-15"
27913
+ },
27914
+ source: "official-doc",
27915
+ confidence: "declared",
27916
+ observedAt: "2026-09-26T00:00:00Z",
27917
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages — tool_addition with a tool_definition ("Add/remove by reference + define by value: inline-tools-2026-09-15 — Claude API"); "The inline-tools-2026-09-15 header covers all reference-based changes"; redefinition: "send a different definition under the same name ... The new definition replaces the earlier one from that position onward" (no removal first, a tool declared in tools included); a definition reusing the name of a different type of tool is a 400 tool_name_conflict. Same model list as midConversationToolChanges. Claude API only, so set on the anthropic and console providers (both api.anthropic.com), never on a cloud reseller. Retrieved 2026-09-26; release note 2026-09-22.'
27918
+ },
27919
+ assistantPrefill: {
27920
+ value: false,
27921
+ source: "official-doc",
27922
+ confidence: "declared",
27923
+ observedAt: "2026-09-26T00:00:00Z",
27924
+ sourceRef: `https://platform.claude.com/docs/en/models/opus-5-5/migration-guide — "Don't end messages with a prefilled assistant turn: it is rejected"; "Prefilling assistant messages returns a 400 error on Claude Opus 4.6 and later Opus models, including Claude Opus 5.5"; Sonnet 5 and Opus 5: "Manual extended thinking, non-default sampling parameters, and assistant prefill return a 400 error on both models"; the Fable 5.1 guide: prefill "returns a 400 error, unchanged from Claude Fable 5". Live gate 2026-09-26 on claude-opus-5-5: "This model does not support assistant message prefill. The conversation must end with a user message."`
27925
+ },
27231
27926
  canonicalModelId: "claude-fable-5.1",
27232
27927
  modelFamily: "claude"
27233
27928
  },
@@ -27322,8 +28017,17 @@ var catalog_default = {
27322
28017
  confidence: "declared",
27323
28018
  observedAt: "2026-09-16T00:00:00Z"
27324
28019
  },
27325
- unsupportedParameters: [],
28020
+ unsupportedParameters: [
28021
+ "thinking.type.adaptive"
28022
+ ],
27326
28023
  status: "candidate",
28024
+ deferredToolLoading: {
28025
+ value: true,
28026
+ source: "official-doc",
28027
+ confidence: "declared",
28028
+ observedAt: "2026-09-25T18:30:00Z",
28029
+ sourceRef: 'https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool — the Model compatibility table lists Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 5, Opus 4.8, 4.7, 4.6, Sonnet 4.6, Opus 4.5, Sonnet 4.5 and Haiku 4.5 (not Sonnet 5); "Custom tool search implementation": a client tool returns a tool_result whose content carries {type:"tool_reference", tool_name} blocks, every referenced tool declared in tools with defer_loading: true, and the API expands them; "The prefix is untouched, so prompt caching is preserved" (https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-use-with-prompt-caching).'
28030
+ },
27327
28031
  canonicalModelId: "claude-haiku-4.5-20251001",
27328
28032
  modelFamily: "claude"
27329
28033
  },
@@ -27418,8 +28122,17 @@ var catalog_default = {
27418
28122
  confidence: "declared",
27419
28123
  observedAt: "2026-09-19T00:00:00Z"
27420
28124
  },
27421
- unsupportedParameters: [],
28125
+ unsupportedParameters: [
28126
+ "thinking.type.adaptive"
28127
+ ],
27422
28128
  status: "candidate",
28129
+ deferredToolLoading: {
28130
+ value: true,
28131
+ source: "official-doc",
28132
+ confidence: "declared",
28133
+ observedAt: "2026-09-25T18:30:00Z",
28134
+ sourceRef: 'https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool — the Model compatibility table lists Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 5, Opus 4.8, 4.7, 4.6, Sonnet 4.6, Opus 4.5, Sonnet 4.5 and Haiku 4.5 (not Sonnet 5); "Custom tool search implementation": a client tool returns a tool_result whose content carries {type:"tool_reference", tool_name} blocks, every referenced tool declared in tools with defer_loading: true, and the API expands them; "The prefix is untouched, so prompt caching is preserved" (https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-use-with-prompt-caching).'
28135
+ },
27423
28136
  canonicalModelId: "claude-haiku-4.5",
27424
28137
  modelFamily: "claude"
27425
28138
  },
@@ -27517,7 +28230,16 @@ var catalog_default = {
27517
28230
  "high"
27518
28231
  ],
27519
28232
  continuation: "opaque-provider-state",
27520
- defaultEffort: "high"
28233
+ defaultEffort: "high",
28234
+ effortRequest: {
28235
+ value: {
28236
+ field: "output_config.effort"
28237
+ },
28238
+ source: "official-doc",
28239
+ confidence: "declared",
28240
+ observedAt: "2026-09-25T12:30:00Z",
28241
+ sourceRef: "https://platform.claude.com/docs/en/build-with-claude/effort — the effort page's supportedModels list names claude-fable-5-1, claude-fable-5, claude-opus-5-5, claude-opus-5, claude-opus-4-8, claude-opus-4-7, claude-opus-4-6, claude-opus-4-5-20251101, claude-sonnet-5 and claude-sonnet-4-6: effort is requested through `output_config.effort` (Claude 4.7 and later reject a manual `thinking.budget_tokens`, https://platform.claude.com/docs/en/build-with-claude/thinking-troubleshooting#rejected-configurations)."
28242
+ }
27521
28243
  },
27522
28244
  pricing: {
27523
28245
  value: {
@@ -27531,8 +28253,17 @@ var catalog_default = {
27531
28253
  confidence: "declared",
27532
28254
  observedAt: "2026-09-19T00:00:00Z"
27533
28255
  },
27534
- unsupportedParameters: [],
28256
+ unsupportedParameters: [
28257
+ "thinking.type.adaptive"
28258
+ ],
27535
28259
  status: "candidate",
28260
+ deferredToolLoading: {
28261
+ value: true,
28262
+ source: "official-doc",
28263
+ confidence: "declared",
28264
+ observedAt: "2026-09-25T18:30:00Z",
28265
+ sourceRef: 'https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool — the Model compatibility table lists Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 5, Opus 4.8, 4.7, 4.6, Sonnet 4.6, Opus 4.5, Sonnet 4.5 and Haiku 4.5 (not Sonnet 5); "Custom tool search implementation": a client tool returns a tool_result whose content carries {type:"tool_reference", tool_name} blocks, every referenced tool declared in tools with defer_loading: true, and the API expands them; "The prefix is untouched, so prompt caching is preserved" (https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-use-with-prompt-caching).'
28266
+ },
27536
28267
  canonicalModelId: "claude-opus-4.5",
27537
28268
  modelFamily: "claude"
27538
28269
  },
@@ -27541,7 +28272,9 @@ var catalog_default = {
27541
28272
  providerId: "console",
27542
28273
  upstreamId: "claude-opus-4.6",
27543
28274
  displayName: "Claude Opus 4.6",
27544
- aliases: [],
28275
+ aliases: [
28276
+ "claude-opus-4-6"
28277
+ ],
27545
28278
  endpoints: [
27546
28279
  "chat"
27547
28280
  ],
@@ -27628,7 +28361,16 @@ var catalog_default = {
27628
28361
  "max"
27629
28362
  ],
27630
28363
  continuation: "opaque-provider-state",
27631
- defaultEffort: "high"
28364
+ defaultEffort: "high",
28365
+ effortRequest: {
28366
+ value: {
28367
+ field: "output_config.effort"
28368
+ },
28369
+ source: "official-doc",
28370
+ confidence: "declared",
28371
+ observedAt: "2026-09-25T12:30:00Z",
28372
+ sourceRef: "https://platform.claude.com/docs/en/build-with-claude/effort — the effort page's supportedModels list names claude-fable-5-1, claude-fable-5, claude-opus-5-5, claude-opus-5, claude-opus-4-8, claude-opus-4-7, claude-opus-4-6, claude-opus-4-5-20251101, claude-sonnet-5 and claude-sonnet-4-6: effort is requested through `output_config.effort` (Claude 4.7 and later reject a manual `thinking.budget_tokens`, https://platform.claude.com/docs/en/build-with-claude/thinking-troubleshooting#rejected-configurations)."
28373
+ }
27632
28374
  },
27633
28375
  pricing: {
27634
28376
  value: {
@@ -27644,6 +28386,20 @@ var catalog_default = {
27644
28386
  },
27645
28387
  unsupportedParameters: [],
27646
28388
  status: "candidate",
28389
+ deferredToolLoading: {
28390
+ value: true,
28391
+ source: "official-doc",
28392
+ confidence: "declared",
28393
+ observedAt: "2026-09-25T18:30:00Z",
28394
+ sourceRef: 'https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool — the Model compatibility table lists Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 5, Opus 4.8, 4.7, 4.6, Sonnet 4.6, Opus 4.5, Sonnet 4.5 and Haiku 4.5 (not Sonnet 5); "Custom tool search implementation": a client tool returns a tool_result whose content carries {type:"tool_reference", tool_name} blocks, every referenced tool declared in tools with defer_loading: true, and the API expands them; "The prefix is untouched, so prompt caching is preserved" (https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-use-with-prompt-caching).'
28395
+ },
28396
+ assistantPrefill: {
28397
+ value: false,
28398
+ source: "official-doc",
28399
+ confidence: "declared",
28400
+ observedAt: "2026-09-26T00:00:00Z",
28401
+ sourceRef: `https://platform.claude.com/docs/en/models/opus-5-5/migration-guide — "Don't end messages with a prefilled assistant turn: it is rejected"; "Prefilling assistant messages returns a 400 error on Claude Opus 4.6 and later Opus models, including Claude Opus 5.5"; Sonnet 5 and Opus 5: "Manual extended thinking, non-default sampling parameters, and assistant prefill return a 400 error on both models"; the Fable 5.1 guide: prefill "returns a 400 error, unchanged from Claude Fable 5". Live gate 2026-09-26 on claude-opus-5-5: "This model does not support assistant message prefill. The conversation must end with a user message."`
28402
+ },
27647
28403
  canonicalModelId: "claude-opus-4.6",
27648
28404
  modelFamily: "claude"
27649
28405
  },
@@ -27652,7 +28408,9 @@ var catalog_default = {
27652
28408
  providerId: "console",
27653
28409
  upstreamId: "claude-opus-4.7",
27654
28410
  displayName: "Claude Opus 4.7",
27655
- aliases: [],
28411
+ aliases: [
28412
+ "claude-opus-4-7"
28413
+ ],
27656
28414
  endpoints: [
27657
28415
  "chat"
27658
28416
  ],
@@ -27740,7 +28498,16 @@ var catalog_default = {
27740
28498
  "max"
27741
28499
  ],
27742
28500
  continuation: "opaque-provider-state",
27743
- defaultEffort: "high"
28501
+ defaultEffort: "high",
28502
+ effortRequest: {
28503
+ value: {
28504
+ field: "output_config.effort"
28505
+ },
28506
+ source: "official-doc",
28507
+ confidence: "declared",
28508
+ observedAt: "2026-09-25T12:30:00Z",
28509
+ sourceRef: "https://platform.claude.com/docs/en/build-with-claude/effort — the effort page's supportedModels list names claude-fable-5-1, claude-fable-5, claude-opus-5-5, claude-opus-5, claude-opus-4-8, claude-opus-4-7, claude-opus-4-6, claude-opus-4-5-20251101, claude-sonnet-5 and claude-sonnet-4-6: effort is requested through `output_config.effort` (Claude 4.7 and later reject a manual `thinking.budget_tokens`, https://platform.claude.com/docs/en/build-with-claude/thinking-troubleshooting#rejected-configurations)."
28510
+ }
27744
28511
  },
27745
28512
  pricing: {
27746
28513
  value: {
@@ -27757,9 +28524,24 @@ var catalog_default = {
27757
28524
  unsupportedParameters: [
27758
28525
  "temperature",
27759
28526
  "top_p",
27760
- "top_k"
28527
+ "top_k",
28528
+ "thinking.type.enabled"
27761
28529
  ],
27762
28530
  status: "candidate",
28531
+ deferredToolLoading: {
28532
+ value: true,
28533
+ source: "official-doc",
28534
+ confidence: "declared",
28535
+ observedAt: "2026-09-25T18:30:00Z",
28536
+ sourceRef: 'https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool — the Model compatibility table lists Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 5, Opus 4.8, 4.7, 4.6, Sonnet 4.6, Opus 4.5, Sonnet 4.5 and Haiku 4.5 (not Sonnet 5); "Custom tool search implementation": a client tool returns a tool_result whose content carries {type:"tool_reference", tool_name} blocks, every referenced tool declared in tools with defer_loading: true, and the API expands them; "The prefix is untouched, so prompt caching is preserved" (https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-use-with-prompt-caching).'
28537
+ },
28538
+ assistantPrefill: {
28539
+ value: false,
28540
+ source: "official-doc",
28541
+ confidence: "declared",
28542
+ observedAt: "2026-09-26T00:00:00Z",
28543
+ sourceRef: `https://platform.claude.com/docs/en/models/opus-5-5/migration-guide — "Don't end messages with a prefilled assistant turn: it is rejected"; "Prefilling assistant messages returns a 400 error on Claude Opus 4.6 and later Opus models, including Claude Opus 5.5"; Sonnet 5 and Opus 5: "Manual extended thinking, non-default sampling parameters, and assistant prefill return a 400 error on both models"; the Fable 5.1 guide: prefill "returns a 400 error, unchanged from Claude Fable 5". Live gate 2026-09-26 on claude-opus-5-5: "This model does not support assistant message prefill. The conversation must end with a user message."`
28544
+ },
27763
28545
  canonicalModelId: "claude-opus-4.7",
27764
28546
  modelFamily: "claude"
27765
28547
  },
@@ -27768,7 +28550,9 @@ var catalog_default = {
27768
28550
  providerId: "console",
27769
28551
  upstreamId: "claude-opus-4.8",
27770
28552
  displayName: "Claude Opus 4.8",
27771
- aliases: [],
28553
+ aliases: [
28554
+ "claude-opus-4-8"
28555
+ ],
27772
28556
  endpoints: [
27773
28557
  "chat"
27774
28558
  ],
@@ -27856,7 +28640,16 @@ var catalog_default = {
27856
28640
  "max"
27857
28641
  ],
27858
28642
  continuation: "opaque-provider-state",
27859
- defaultEffort: "high"
28643
+ defaultEffort: "high",
28644
+ effortRequest: {
28645
+ value: {
28646
+ field: "output_config.effort"
28647
+ },
28648
+ source: "official-doc",
28649
+ confidence: "declared",
28650
+ observedAt: "2026-09-25T12:30:00Z",
28651
+ sourceRef: "https://platform.claude.com/docs/en/build-with-claude/effort — the effort page's supportedModels list names claude-fable-5-1, claude-fable-5, claude-opus-5-5, claude-opus-5, claude-opus-4-8, claude-opus-4-7, claude-opus-4-6, claude-opus-4-5-20251101, claude-sonnet-5 and claude-sonnet-4-6: effort is requested through `output_config.effort` (Claude 4.7 and later reject a manual `thinking.budget_tokens`, https://platform.claude.com/docs/en/build-with-claude/thinking-troubleshooting#rejected-configurations)."
28652
+ }
27860
28653
  },
27861
28654
  pricing: {
27862
28655
  value: {
@@ -27873,9 +28666,49 @@ var catalog_default = {
27873
28666
  unsupportedParameters: [
27874
28667
  "temperature",
27875
28668
  "top_p",
27876
- "top_k"
28669
+ "top_k",
28670
+ "thinking.type.enabled"
27877
28671
  ],
27878
28672
  status: "candidate",
28673
+ deferredToolLoading: {
28674
+ value: true,
28675
+ source: "official-doc",
28676
+ confidence: "declared",
28677
+ observedAt: "2026-09-25T18:30:00Z",
28678
+ sourceRef: 'https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool — the Model compatibility table lists Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 5, Opus 4.8, 4.7, 4.6, Sonnet 4.6, Opus 4.5, Sonnet 4.5 and Haiku 4.5 (not Sonnet 5); "Custom tool search implementation": a client tool returns a tool_result whose content carries {type:"tool_reference", tool_name} blocks, every referenced tool declared in tools with defer_loading: true, and the API expands them; "The prefix is untouched, so prompt caching is preserved" (https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-use-with-prompt-caching).'
28679
+ },
28680
+ midConversationSystem: {
28681
+ value: true,
28682
+ source: "official-doc",
28683
+ confidence: "declared",
28684
+ observedAt: "2026-09-25T19:00:00Z",
28685
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages — "This feature is available on Claude Fable 5.1, Claude Mythos 5.1, Claude Fable 5, Claude Mythos 5, Claude Opus 5.5, Claude Opus 4.8, and Claude Opus 5. No beta header is required for mid-conversation system messages. This feature is not available on Claude Sonnet 5."'
28686
+ },
28687
+ midConversationToolChanges: {
28688
+ value: {
28689
+ beta: "mid-conversation-tool-changes-2026-07-01"
28690
+ },
28691
+ source: "official-doc",
28692
+ confidence: "declared",
28693
+ observedAt: "2026-09-26T00:00:00Z",
28694
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages — tool_addition / tool_removal blocks in a role:"system" message, by reference ("Add/remove by reference: mid-conversation-tool-changes-2026-07-01 — Claude API, Amazon Bedrock, Google Cloud"); available on Claude Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 4.8 and Opus 5, "Not available on Claude Sonnet 5". Retrieved 2026-09-26; release note 2026-07-24 (https://platform.claude.com/docs/en/release-notes/overview).'
28695
+ },
28696
+ inlineToolDefinitions: {
28697
+ value: {
28698
+ beta: "inline-tools-2026-09-15"
28699
+ },
28700
+ source: "official-doc",
28701
+ confidence: "declared",
28702
+ observedAt: "2026-09-26T00:00:00Z",
28703
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages — tool_addition with a tool_definition ("Add/remove by reference + define by value: inline-tools-2026-09-15 — Claude API"); "The inline-tools-2026-09-15 header covers all reference-based changes"; redefinition: "send a different definition under the same name ... The new definition replaces the earlier one from that position onward" (no removal first, a tool declared in tools included); a definition reusing the name of a different type of tool is a 400 tool_name_conflict. Same model list as midConversationToolChanges. Claude API only, so set on the anthropic and console providers (both api.anthropic.com), never on a cloud reseller. Retrieved 2026-09-26; release note 2026-09-22.'
28704
+ },
28705
+ assistantPrefill: {
28706
+ value: false,
28707
+ source: "official-doc",
28708
+ confidence: "declared",
28709
+ observedAt: "2026-09-26T00:00:00Z",
28710
+ sourceRef: `https://platform.claude.com/docs/en/models/opus-5-5/migration-guide — "Don't end messages with a prefilled assistant turn: it is rejected"; "Prefilling assistant messages returns a 400 error on Claude Opus 4.6 and later Opus models, including Claude Opus 5.5"; Sonnet 5 and Opus 5: "Manual extended thinking, non-default sampling parameters, and assistant prefill return a 400 error on both models"; the Fable 5.1 guide: prefill "returns a 400 error, unchanged from Claude Fable 5". Live gate 2026-09-26 on claude-opus-5-5: "This model does not support assistant message prefill. The conversation must end with a user message."`
28711
+ },
27879
28712
  canonicalModelId: "claude-opus-4.8",
27880
28713
  modelFamily: "claude"
27881
28714
  },
@@ -28015,6 +28848,24 @@ var catalog_default = {
28015
28848
  sourceRef: "continuity report §4.4, BOTH halves. Own-state acceptance: the model's own `thinking` blocks are replayed to it unchanged, in order, with their signatures intact (§4.4's replay rules and its worked request). Why the domain is NARROW: \"when changing Claude models, prior `thinking` and `redacted_thinking` blocks should be stripped because they are tied to the model that produced them. Therefore 'same provider' is not automatically 'same continuation domain.'\" The domain is this model alone, never the Anthropic provider.",
28016
28849
  confidence: "declared",
28017
28850
  observedAt: "2026-09-16T00:00:00Z"
28851
+ },
28852
+ effortRequest: {
28853
+ value: {
28854
+ field: "output_config.effort"
28855
+ },
28856
+ source: "official-doc",
28857
+ confidence: "declared",
28858
+ observedAt: "2026-09-25T12:30:00Z",
28859
+ sourceRef: "https://platform.claude.com/docs/en/build-with-claude/effort — the effort page's supportedModels list names claude-fable-5-1, claude-fable-5, claude-opus-5-5, claude-opus-5, claude-opus-4-8, claude-opus-4-7, claude-opus-4-6, claude-opus-4-5-20251101, claude-sonnet-5 and claude-sonnet-4-6: effort is requested through `output_config.effort` (Claude 4.7 and later reject a manual `thinking.budget_tokens`, https://platform.claude.com/docs/en/build-with-claude/thinking-troubleshooting#rejected-configurations)."
28860
+ },
28861
+ perMessageEffort: {
28862
+ value: {
28863
+ beta: "mid-conversation-output-config-2026-07-01"
28864
+ },
28865
+ source: "official-doc",
28866
+ confidence: "declared",
28867
+ observedAt: "2026-09-25T18:00:00Z",
28868
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/effort#change-effort-mid-conversation-beta — "On Claude Fable 5.1, Claude Mythos 5.1, Claude Opus 5.5, and Claude Opus 5, use a per-message effort change, which keeps the prompt cache": a role:"system" message with empty content and output_config.effort, beta header mid-conversation-output-config-2026-07-01; "Models without per-message effort, including Claude Fable 5, return a 400 error". claude 2.1.282 sends the older alias per-turn-control-2026-07-01, which the page does not document.'
28018
28869
  }
28019
28870
  },
28020
28871
  pricing: {
@@ -28032,9 +28883,51 @@ var catalog_default = {
28032
28883
  unsupportedParameters: [
28033
28884
  "temperature",
28034
28885
  "top_p",
28035
- "top_k"
28886
+ "top_k",
28887
+ "thinking.type.enabled",
28888
+ "thinking.type.disabled+output_config.effort.xhigh",
28889
+ "thinking.type.disabled+output_config.effort.max"
28036
28890
  ],
28037
28891
  status: "candidate",
28892
+ deferredToolLoading: {
28893
+ value: true,
28894
+ source: "official-doc",
28895
+ confidence: "declared",
28896
+ observedAt: "2026-09-25T18:30:00Z",
28897
+ sourceRef: 'https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool — the Model compatibility table lists Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 5, Opus 4.8, 4.7, 4.6, Sonnet 4.6, Opus 4.5, Sonnet 4.5 and Haiku 4.5 (not Sonnet 5); "Custom tool search implementation": a client tool returns a tool_result whose content carries {type:"tool_reference", tool_name} blocks, every referenced tool declared in tools with defer_loading: true, and the API expands them; "The prefix is untouched, so prompt caching is preserved" (https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-use-with-prompt-caching).'
28898
+ },
28899
+ midConversationSystem: {
28900
+ value: true,
28901
+ source: "official-doc",
28902
+ confidence: "declared",
28903
+ observedAt: "2026-09-25T19:00:00Z",
28904
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages — "This feature is available on Claude Fable 5.1, Claude Mythos 5.1, Claude Fable 5, Claude Mythos 5, Claude Opus 5.5, Claude Opus 4.8, and Claude Opus 5. No beta header is required for mid-conversation system messages. This feature is not available on Claude Sonnet 5."'
28905
+ },
28906
+ midConversationToolChanges: {
28907
+ value: {
28908
+ beta: "mid-conversation-tool-changes-2026-07-01"
28909
+ },
28910
+ source: "official-doc",
28911
+ confidence: "declared",
28912
+ observedAt: "2026-09-26T00:00:00Z",
28913
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages — tool_addition / tool_removal blocks in a role:"system" message, by reference ("Add/remove by reference: mid-conversation-tool-changes-2026-07-01 — Claude API, Amazon Bedrock, Google Cloud"); available on Claude Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 4.8 and Opus 5, "Not available on Claude Sonnet 5". Retrieved 2026-09-26; release note 2026-07-24 (https://platform.claude.com/docs/en/release-notes/overview).'
28914
+ },
28915
+ inlineToolDefinitions: {
28916
+ value: {
28917
+ beta: "inline-tools-2026-09-15"
28918
+ },
28919
+ source: "official-doc",
28920
+ confidence: "declared",
28921
+ observedAt: "2026-09-26T00:00:00Z",
28922
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages — tool_addition with a tool_definition ("Add/remove by reference + define by value: inline-tools-2026-09-15 — Claude API"); "The inline-tools-2026-09-15 header covers all reference-based changes"; redefinition: "send a different definition under the same name ... The new definition replaces the earlier one from that position onward" (no removal first, a tool declared in tools included); a definition reusing the name of a different type of tool is a 400 tool_name_conflict. Same model list as midConversationToolChanges. Claude API only, so set on the anthropic and console providers (both api.anthropic.com), never on a cloud reseller. Retrieved 2026-09-26; release note 2026-09-22.'
28923
+ },
28924
+ assistantPrefill: {
28925
+ value: false,
28926
+ source: "official-doc",
28927
+ confidence: "declared",
28928
+ observedAt: "2026-09-26T00:00:00Z",
28929
+ sourceRef: `https://platform.claude.com/docs/en/models/opus-5-5/migration-guide — "Don't end messages with a prefilled assistant turn: it is rejected"; "Prefilling assistant messages returns a 400 error on Claude Opus 4.6 and later Opus models, including Claude Opus 5.5"; Sonnet 5 and Opus 5: "Manual extended thinking, non-default sampling parameters, and assistant prefill return a 400 error on both models"; the Fable 5.1 guide: prefill "returns a 400 error, unchanged from Claude Fable 5". Live gate 2026-09-26 on claude-opus-5-5: "This model does not support assistant message prefill. The conversation must end with a user message."`
28930
+ },
28038
28931
  canonicalModelId: "claude-opus-5",
28039
28932
  modelFamily: "claude"
28040
28933
  },
@@ -28176,6 +29069,33 @@ var catalog_default = {
28176
29069
  sourceRef: "continuity report §3 (wire probe of the pinned Claude Agent SDK, 0.3.250→0.3.258) — every uncompacted historical thinking/redacted block is replayed on every later request",
28177
29070
  confidence: "declared",
28178
29071
  observedAt: "2026-09-05T00:00:00Z"
29072
+ },
29073
+ effortRequest: {
29074
+ value: {
29075
+ field: "output_config.effort"
29076
+ },
29077
+ source: "official-doc",
29078
+ confidence: "declared",
29079
+ observedAt: "2026-09-25T12:30:00Z",
29080
+ sourceRef: "https://platform.claude.com/docs/en/build-with-claude/effort — the effort page's supportedModels list names claude-fable-5-1, claude-fable-5, claude-opus-5-5, claude-opus-5, claude-opus-4-8, claude-opus-4-7, claude-opus-4-6, claude-opus-4-5-20251101, claude-sonnet-5 and claude-sonnet-4-6: effort is requested through `output_config.effort` (Claude 4.7 and later reject a manual `thinking.budget_tokens`, https://platform.claude.com/docs/en/build-with-claude/thinking-troubleshooting#rejected-configurations)."
29081
+ },
29082
+ blockBinding: {
29083
+ value: {
29084
+ beta: "thinking-binding-controls-2026-08-01"
29085
+ },
29086
+ source: "official-doc",
29087
+ confidence: "declared",
29088
+ observedAt: "2026-09-25T13:00:00Z",
29089
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/thinking-troubleshooting — "A 400 error says a thinking block signature is invalid": on Claude Fable 5.1 and Opus 5.5 a replayed thinking block is bound to the conversation (system, tools and earlier messages) and is rejected once that prefix changes (enforced for accounts created on or after 2026-08-31); the documented escape is the `thinking-binding-controls-2026-08-01` beta with `thinking.block_binding.prefix_mismatch_behavior: "drop_block"`. See also https://platform.claude.com/docs/en/models/opus-5-5/whats-new-opus-5-5 ("Thinking blocks are tied to the model and the conversation").'
29090
+ },
29091
+ perMessageEffort: {
29092
+ value: {
29093
+ beta: "mid-conversation-output-config-2026-07-01"
29094
+ },
29095
+ source: "official-doc",
29096
+ confidence: "declared",
29097
+ observedAt: "2026-09-25T18:00:00Z",
29098
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/effort#change-effort-mid-conversation-beta — "On Claude Fable 5.1, Claude Mythos 5.1, Claude Opus 5.5, and Claude Opus 5, use a per-message effort change, which keeps the prompt cache": a role:"system" message with empty content and output_config.effort, beta header mid-conversation-output-config-2026-07-01; "Models without per-message effort, including Claude Fable 5, return a 400 error". claude 2.1.282 sends the older alias per-turn-control-2026-07-01, which the page does not document.'
28179
29099
  }
28180
29100
  },
28181
29101
  pricing: {
@@ -28190,8 +29110,52 @@ var catalog_default = {
28190
29110
  confidence: "declared",
28191
29111
  observedAt: "2026-09-25T10:25:20Z"
28192
29112
  },
28193
- unsupportedParameters: [],
29113
+ unsupportedParameters: [
29114
+ "thinking.type.enabled",
29115
+ "thinking.type.disabled",
29116
+ "tool_choice.any",
29117
+ "tool_choice.tool"
29118
+ ],
28194
29119
  status: "candidate",
29120
+ deferredToolLoading: {
29121
+ value: true,
29122
+ source: "official-doc",
29123
+ confidence: "declared",
29124
+ observedAt: "2026-09-25T18:30:00Z",
29125
+ sourceRef: 'https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool — the Model compatibility table lists Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 5, Opus 4.8, 4.7, 4.6, Sonnet 4.6, Opus 4.5, Sonnet 4.5 and Haiku 4.5 (not Sonnet 5); "Custom tool search implementation": a client tool returns a tool_result whose content carries {type:"tool_reference", tool_name} blocks, every referenced tool declared in tools with defer_loading: true, and the API expands them; "The prefix is untouched, so prompt caching is preserved" (https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-use-with-prompt-caching).'
29126
+ },
29127
+ midConversationSystem: {
29128
+ value: true,
29129
+ source: "official-doc",
29130
+ confidence: "declared",
29131
+ observedAt: "2026-09-25T19:00:00Z",
29132
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages — "This feature is available on Claude Fable 5.1, Claude Mythos 5.1, Claude Fable 5, Claude Mythos 5, Claude Opus 5.5, Claude Opus 4.8, and Claude Opus 5. No beta header is required for mid-conversation system messages. This feature is not available on Claude Sonnet 5."'
29133
+ },
29134
+ midConversationToolChanges: {
29135
+ value: {
29136
+ beta: "mid-conversation-tool-changes-2026-07-01"
29137
+ },
29138
+ source: "official-doc",
29139
+ confidence: "declared",
29140
+ observedAt: "2026-09-26T00:00:00Z",
29141
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages — tool_addition / tool_removal blocks in a role:"system" message, by reference ("Add/remove by reference: mid-conversation-tool-changes-2026-07-01 — Claude API, Amazon Bedrock, Google Cloud"); available on Claude Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 4.8 and Opus 5, "Not available on Claude Sonnet 5". Retrieved 2026-09-26; release note 2026-07-24 (https://platform.claude.com/docs/en/release-notes/overview).'
29142
+ },
29143
+ inlineToolDefinitions: {
29144
+ value: {
29145
+ beta: "inline-tools-2026-09-15"
29146
+ },
29147
+ source: "official-doc",
29148
+ confidence: "declared",
29149
+ observedAt: "2026-09-26T00:00:00Z",
29150
+ sourceRef: 'https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages — tool_addition with a tool_definition ("Add/remove by reference + define by value: inline-tools-2026-09-15 — Claude API"); "The inline-tools-2026-09-15 header covers all reference-based changes"; redefinition: "send a different definition under the same name ... The new definition replaces the earlier one from that position onward" (no removal first, a tool declared in tools included); a definition reusing the name of a different type of tool is a 400 tool_name_conflict. Same model list as midConversationToolChanges. Claude API only, so set on the anthropic and console providers (both api.anthropic.com), never on a cloud reseller. Retrieved 2026-09-26; release note 2026-09-22.'
29151
+ },
29152
+ assistantPrefill: {
29153
+ value: false,
29154
+ source: "official-doc",
29155
+ confidence: "declared",
29156
+ observedAt: "2026-09-26T00:00:00Z",
29157
+ sourceRef: `https://platform.claude.com/docs/en/models/opus-5-5/migration-guide — "Don't end messages with a prefilled assistant turn: it is rejected"; "Prefilling assistant messages returns a 400 error on Claude Opus 4.6 and later Opus models, including Claude Opus 5.5"; Sonnet 5 and Opus 5: "Manual extended thinking, non-default sampling parameters, and assistant prefill return a 400 error on both models"; the Fable 5.1 guide: prefill "returns a 400 error, unchanged from Claude Fable 5". Live gate 2026-09-26 on claude-opus-5-5: "This model does not support assistant message prefill. The conversation must end with a user message."`
29158
+ },
28195
29159
  canonicalModelId: "claude-opus-5.5",
28196
29160
  modelFamily: "claude"
28197
29161
  },
@@ -28303,8 +29267,17 @@ var catalog_default = {
28303
29267
  confidence: "declared",
28304
29268
  observedAt: "2026-09-19T00:00:00Z"
28305
29269
  },
28306
- unsupportedParameters: [],
29270
+ unsupportedParameters: [
29271
+ "thinking.type.adaptive"
29272
+ ],
28307
29273
  status: "candidate",
29274
+ deferredToolLoading: {
29275
+ value: true,
29276
+ source: "official-doc",
29277
+ confidence: "declared",
29278
+ observedAt: "2026-09-25T18:30:00Z",
29279
+ sourceRef: 'https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool — the Model compatibility table lists Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 5, Opus 4.8, 4.7, 4.6, Sonnet 4.6, Opus 4.5, Sonnet 4.5 and Haiku 4.5 (not Sonnet 5); "Custom tool search implementation": a client tool returns a tool_result whose content carries {type:"tool_reference", tool_name} blocks, every referenced tool declared in tools with defer_loading: true, and the API expands them; "The prefix is untouched, so prompt caching is preserved" (https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-use-with-prompt-caching).'
29280
+ },
28308
29281
  canonicalModelId: "claude-sonnet-4.5",
28309
29282
  modelFamily: "claude"
28310
29283
  },
@@ -28313,7 +29286,9 @@ var catalog_default = {
28313
29286
  providerId: "console",
28314
29287
  upstreamId: "claude-sonnet-4.6",
28315
29288
  displayName: "Claude Sonnet 4.6",
28316
- aliases: [],
29289
+ aliases: [
29290
+ "claude-sonnet-4-6"
29291
+ ],
28317
29292
  endpoints: [
28318
29293
  "chat"
28319
29294
  ],
@@ -28400,7 +29375,16 @@ var catalog_default = {
28400
29375
  "max"
28401
29376
  ],
28402
29377
  continuation: "opaque-provider-state",
28403
- defaultEffort: "high"
29378
+ defaultEffort: "high",
29379
+ effortRequest: {
29380
+ value: {
29381
+ field: "output_config.effort"
29382
+ },
29383
+ source: "official-doc",
29384
+ confidence: "declared",
29385
+ observedAt: "2026-09-25T12:30:00Z",
29386
+ sourceRef: "https://platform.claude.com/docs/en/build-with-claude/effort — the effort page's supportedModels list names claude-fable-5-1, claude-fable-5, claude-opus-5-5, claude-opus-5, claude-opus-4-8, claude-opus-4-7, claude-opus-4-6, claude-opus-4-5-20251101, claude-sonnet-5 and claude-sonnet-4-6: effort is requested through `output_config.effort` (Claude 4.7 and later reject a manual `thinking.budget_tokens`, https://platform.claude.com/docs/en/build-with-claude/thinking-troubleshooting#rejected-configurations)."
29387
+ }
28404
29388
  },
28405
29389
  pricing: {
28406
29390
  value: {
@@ -28416,6 +29400,13 @@ var catalog_default = {
28416
29400
  },
28417
29401
  unsupportedParameters: [],
28418
29402
  status: "candidate",
29403
+ deferredToolLoading: {
29404
+ value: true,
29405
+ source: "official-doc",
29406
+ confidence: "declared",
29407
+ observedAt: "2026-09-25T18:30:00Z",
29408
+ sourceRef: 'https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool — the Model compatibility table lists Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 5, Opus 4.8, 4.7, 4.6, Sonnet 4.6, Opus 4.5, Sonnet 4.5 and Haiku 4.5 (not Sonnet 5); "Custom tool search implementation": a client tool returns a tool_result whose content carries {type:"tool_reference", tool_name} blocks, every referenced tool declared in tools with defer_loading: true, and the API expands them; "The prefix is untouched, so prompt caching is preserved" (https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-use-with-prompt-caching).'
29409
+ },
28419
29410
  canonicalModelId: "claude-sonnet-4.6",
28420
29411
  modelFamily: "claude"
28421
29412
  },
@@ -28557,6 +29548,15 @@ var catalog_default = {
28557
29548
  sourceRef: 'continuity report §4.4, BOTH halves. Own-state acceptance: §4.4 requires the model\'s own assistant blocks — `thinking` with its signature, `redacted_thinking` — replayed unchanged and in order across a tool loop. Why the domain is NARROW: Anthropic documents model switching as a boundary at which those blocks are STRIPPED, because they are tied to the producing model; "same provider" is therefore not "same continuation domain", and this domain is the model alone.',
28558
29549
  confidence: "declared",
28559
29550
  observedAt: "2026-09-16T00:00:00Z"
29551
+ },
29552
+ effortRequest: {
29553
+ value: {
29554
+ field: "output_config.effort"
29555
+ },
29556
+ source: "official-doc",
29557
+ confidence: "declared",
29558
+ observedAt: "2026-09-25T12:30:00Z",
29559
+ sourceRef: "https://platform.claude.com/docs/en/build-with-claude/effort — the effort page's supportedModels list names claude-fable-5-1, claude-fable-5, claude-opus-5-5, claude-opus-5, claude-opus-4-8, claude-opus-4-7, claude-opus-4-6, claude-opus-4-5-20251101, claude-sonnet-5 and claude-sonnet-4-6: effort is requested through `output_config.effort` (Claude 4.7 and later reject a manual `thinking.budget_tokens`, https://platform.claude.com/docs/en/build-with-claude/thinking-troubleshooting#rejected-configurations)."
28560
29560
  }
28561
29561
  },
28562
29562
  pricing: {
@@ -28574,9 +29574,17 @@ var catalog_default = {
28574
29574
  unsupportedParameters: [
28575
29575
  "temperature",
28576
29576
  "top_p",
28577
- "top_k"
29577
+ "top_k",
29578
+ "thinking.type.enabled"
28578
29579
  ],
28579
29580
  status: "candidate",
29581
+ assistantPrefill: {
29582
+ value: false,
29583
+ source: "official-doc",
29584
+ confidence: "declared",
29585
+ observedAt: "2026-09-26T00:00:00Z",
29586
+ sourceRef: `https://platform.claude.com/docs/en/models/opus-5-5/migration-guide — "Don't end messages with a prefilled assistant turn: it is rejected"; "Prefilling assistant messages returns a 400 error on Claude Opus 4.6 and later Opus models, including Claude Opus 5.5"; Sonnet 5 and Opus 5: "Manual extended thinking, non-default sampling parameters, and assistant prefill return a 400 error on both models"; the Fable 5.1 guide: prefill "returns a 400 error, unchanged from Claude Fable 5". Live gate 2026-09-26 on claude-opus-5-5: "This model does not support assistant message prefill. The conversation must end with a user message."`
29587
+ },
28580
29588
  canonicalModelId: "claude-sonnet-5",
28581
29589
  modelFamily: "claude"
28582
29590
  },
@@ -29850,12 +30858,11 @@ var catalog_default = {
29850
30858
  supported: {
29851
30859
  value: true,
29852
30860
  source: "official-doc",
29853
- sourceRef: "https://api-docs.deepseek.com/guides/thinking_mode/ — Chat reasoning_effort and Responses reasoning.effort allow none/low/high/max; default high; none disables",
30861
+ sourceRef: "https://api-docs.deepseek.com/guides/thinking_mode/ — Chat Completions thinking toggle uses thinking.type enabled/disabled; reasoning_effort low/high/max; default high. Responses reasoning.effort additionally accepts none",
29854
30862
  confidence: "declared",
29855
- observedAt: "2026-09-25T08:45:47Z"
30863
+ observedAt: "2026-09-25T12:31:56.381Z"
29856
30864
  },
29857
30865
  efforts: [
29858
- "none",
29859
30866
  "low",
29860
30867
  "high",
29861
30868
  "max"
@@ -29980,12 +30987,11 @@ var catalog_default = {
29980
30987
  supported: {
29981
30988
  value: true,
29982
30989
  source: "official-doc",
29983
- sourceRef: "https://api-docs.deepseek.com/guides/thinking_mode/ — Chat reasoning_effort and Responses reasoning.effort allow none/low/high/max; default high; none disables",
30990
+ sourceRef: "https://api-docs.deepseek.com/guides/thinking_mode/ — Chat Completions thinking toggle uses thinking.type enabled/disabled; reasoning_effort low/high/max; default high. Responses reasoning.effort additionally accepts none",
29984
30991
  confidence: "declared",
29985
- observedAt: "2026-09-25T08:45:47Z"
30992
+ observedAt: "2026-09-25T12:31:56.381Z"
29986
30993
  },
29987
30994
  efforts: [
29988
- "none",
29989
30995
  "low",
29990
30996
  "high",
29991
30997
  "max"
@@ -43177,9 +44183,9 @@ var catalog_default = {
43177
44183
  cacheWritePerMTokUsd: 0.375
43178
44184
  },
43179
44185
  source: "official-doc",
43180
- sourceRef: "https://platform.minimax.io/subscribe/token-plan?tab=api-enterprise — current MiniMax API pay-as-you-go Token Plan price table for this M2.7 model, per million tokens (retrieved 2026-09-19).",
44186
+ sourceRef: "https://platform.minimax.io/docs/guides/pricing-paygo — MiniMax-M2.7 Pay as You Go Standard table: $0.3 input/$1.2 output/$0.06 prompt-cache read/$0.375 prompt-cache write per million tokens",
43181
44187
  confidence: "declared",
43182
- observedAt: "2026-09-19T00:00:00Z"
44188
+ observedAt: "2026-09-25T12:31:56.381Z"
43183
44189
  },
43184
44190
  unsupportedParameters: [
43185
44191
  "function_call"
@@ -43269,9 +44275,9 @@ var catalog_default = {
43269
44275
  cacheWritePerMTokUsd: 0.375
43270
44276
  },
43271
44277
  source: "official-doc",
43272
- sourceRef: "https://platform.minimax.io/subscribe/token-plan?tab=api-enterprise — current MiniMax API pay-as-you-go Token Plan price table for this M2.7 model, per million tokens (retrieved 2026-09-19).",
44278
+ sourceRef: "https://platform.minimax.io/docs/guides/pricing-paygo — MiniMax-M2.7-highspeed Pay as You Go Standard table: $0.6 input/$2.4 output/$0.06 prompt-cache read/$0.375 prompt-cache write per million tokens",
43273
44279
  confidence: "declared",
43274
- observedAt: "2026-09-19T00:00:00Z"
44280
+ observedAt: "2026-09-25T12:31:56.381Z"
43275
44281
  },
43276
44282
  unsupportedParameters: [
43277
44283
  "function_call"
@@ -50879,6 +51885,13 @@ var catalog_default = {
50879
51885
  },
50880
51886
  unsupportedParameters: [],
50881
51887
  status: "candidate",
51888
+ promptCacheKey: {
51889
+ value: true,
51890
+ source: "official-doc",
51891
+ confidence: "declared",
51892
+ observedAt: "2026-09-25T19:30:00Z",
51893
+ sourceRef: 'https://developers.openai.com/api/docs/guides/prompt-caching — the Responses API takes prompt_cache_key: "Use a stable prompt_cache_key to optimize cache routing for requests that share a reusable prefix" (pre-GPT-5.6); on GPT-5.6+ routing is automatic and the key is "optional for separate cache accounting".'
51894
+ },
50882
51895
  canonicalModelId: "gpt-4.1",
50883
51896
  modelFamily: "gpt"
50884
51897
  },
@@ -50959,6 +51972,13 @@ var catalog_default = {
50959
51972
  },
50960
51973
  unsupportedParameters: [],
50961
51974
  status: "candidate",
51975
+ promptCacheKey: {
51976
+ value: true,
51977
+ source: "official-doc",
51978
+ confidence: "declared",
51979
+ observedAt: "2026-09-25T19:30:00Z",
51980
+ sourceRef: 'https://developers.openai.com/api/docs/guides/prompt-caching — the Responses API takes prompt_cache_key: "Use a stable prompt_cache_key to optimize cache routing for requests that share a reusable prefix" (pre-GPT-5.6); on GPT-5.6+ routing is automatic and the key is "optional for separate cache accounting".'
51981
+ },
50962
51982
  canonicalModelId: "gpt-4.1-mini",
50963
51983
  modelFamily: "gpt"
50964
51984
  },
@@ -51046,6 +52066,13 @@ var catalog_default = {
51046
52066
  },
51047
52067
  unsupportedParameters: [],
51048
52068
  status: "candidate",
52069
+ promptCacheKey: {
52070
+ value: true,
52071
+ source: "official-doc",
52072
+ confidence: "declared",
52073
+ observedAt: "2026-09-25T19:30:00Z",
52074
+ sourceRef: 'https://developers.openai.com/api/docs/guides/prompt-caching — the Responses API takes prompt_cache_key: "Use a stable prompt_cache_key to optimize cache routing for requests that share a reusable prefix" (pre-GPT-5.6); on GPT-5.6+ routing is automatic and the key is "optional for separate cache accounting".'
52075
+ },
51049
52076
  canonicalModelId: "gpt-4.1-nano",
51050
52077
  modelFamily: "gpt"
51051
52078
  },
@@ -51126,6 +52153,13 @@ var catalog_default = {
51126
52153
  },
51127
52154
  unsupportedParameters: [],
51128
52155
  status: "candidate",
52156
+ promptCacheKey: {
52157
+ value: true,
52158
+ source: "official-doc",
52159
+ confidence: "declared",
52160
+ observedAt: "2026-09-25T19:30:00Z",
52161
+ sourceRef: 'https://developers.openai.com/api/docs/guides/prompt-caching — the Responses API takes prompt_cache_key: "Use a stable prompt_cache_key to optimize cache routing for requests that share a reusable prefix" (pre-GPT-5.6); on GPT-5.6+ routing is automatic and the key is "optional for separate cache accounting".'
52162
+ },
51129
52163
  canonicalModelId: "gpt-4o",
51130
52164
  modelFamily: "gpt"
51131
52165
  },
@@ -51206,6 +52240,13 @@ var catalog_default = {
51206
52240
  },
51207
52241
  unsupportedParameters: [],
51208
52242
  status: "candidate",
52243
+ promptCacheKey: {
52244
+ value: true,
52245
+ source: "official-doc",
52246
+ confidence: "declared",
52247
+ observedAt: "2026-09-25T19:30:00Z",
52248
+ sourceRef: 'https://developers.openai.com/api/docs/guides/prompt-caching — the Responses API takes prompt_cache_key: "Use a stable prompt_cache_key to optimize cache routing for requests that share a reusable prefix" (pre-GPT-5.6); on GPT-5.6+ routing is automatic and the key is "optional for separate cache accounting".'
52249
+ },
51209
52250
  canonicalModelId: "gpt-4o-2024-11-20",
51210
52251
  modelFamily: "gpt"
51211
52252
  },
@@ -51286,6 +52327,13 @@ var catalog_default = {
51286
52327
  },
51287
52328
  unsupportedParameters: [],
51288
52329
  status: "candidate",
52330
+ promptCacheKey: {
52331
+ value: true,
52332
+ source: "official-doc",
52333
+ confidence: "declared",
52334
+ observedAt: "2026-09-25T19:30:00Z",
52335
+ sourceRef: 'https://developers.openai.com/api/docs/guides/prompt-caching — the Responses API takes prompt_cache_key: "Use a stable prompt_cache_key to optimize cache routing for requests that share a reusable prefix" (pre-GPT-5.6); on GPT-5.6+ routing is automatic and the key is "optional for separate cache accounting".'
52336
+ },
51289
52337
  canonicalModelId: "gpt-4o-mini",
51290
52338
  modelFamily: "gpt"
51291
52339
  },
@@ -51391,6 +52439,34 @@ var catalog_default = {
51391
52439
  },
51392
52440
  unsupportedParameters: [],
51393
52441
  status: "candidate",
52442
+ promptCacheKey: {
52443
+ value: true,
52444
+ source: "official-doc",
52445
+ confidence: "declared",
52446
+ observedAt: "2026-09-25T19:30:00Z",
52447
+ sourceRef: 'https://developers.openai.com/api/docs/guides/prompt-caching — the Responses API takes prompt_cache_key: "Use a stable prompt_cache_key to optimize cache routing for requests that share a reusable prefix" (pre-GPT-5.6); on GPT-5.6+ routing is automatic and the key is "optional for separate cache accounting".'
52448
+ },
52449
+ clientToolSearch: {
52450
+ value: true,
52451
+ source: "official-doc",
52452
+ confidence: "declared",
52453
+ observedAt: "2026-09-26T00:00:00Z",
52454
+ sourceRef: 'https://developers.openai.com/api/docs/guides/tools-tool-search — "Only gpt-5.4 and later models support tool_search" in the Responses API; client execution: {"type":"tool_search","execution":"client",description,parameters}, tool_search_call -> tool_search_output {call_id, execution:"client", status, tools}, deferred functions keep defer_loading:true, optionally inside {"type":"namespace",name,description,tools}. Retrieved 2026-09-26.'
52455
+ },
52456
+ additionalToolsItem: {
52457
+ value: true,
52458
+ source: "official-doc",
52459
+ confidence: "declared",
52460
+ observedAt: "2026-09-26T00:00:00Z",
52461
+ sourceRef: 'https://developers.openai.com/api/docs/guides/tools-tool-search — {"type":"additional_tools","role":"developer","tools":[...]}: "Tools in an additional_tools item become available only after that item appears in the input"; its position is kept on replay. The page names no model list, so it is set only on the rows the same page documents tool_search for (GPT-5.4 and later). NOT on codex-oauth: codex-rs sends one only at input[0] (core/src/client.rs:910-941), never mid-conversation -- the live probe decides. Retrieved 2026-09-26.'
52462
+ },
52463
+ allowedToolsChoice: {
52464
+ value: true,
52465
+ source: "official-doc",
52466
+ confidence: "declared",
52467
+ observedAt: "2026-09-26T00:00:00Z",
52468
+ sourceRef: 'https://developers.openai.com/api/docs/guides/function-calling — tool_choice {"type":"allowed_tools","mode":"auto"|"required","tools":[{"type":"function","name":…}]}: "make only a subset of tools available across model requests, but not modify the list of tools you pass in, so you can maximize savings from prompt caching"; "When you use tool search, tool_choice still applies to the tools that are currently callable in the turn." No model list on the page; set on the same GPT-5.4+ rows. NOT on codex-oauth: codex-rs always sends tool_choice "auto" (core/src/client.rs:1004) and its allowed_tools is a client-side filter (ext/extension-api/src/tool_policy.rs:14-36) -- the live probe decides. Retrieved 2026-09-26.'
52469
+ },
51394
52470
  canonicalModelId: "gpt-5.4",
51395
52471
  modelFamily: "gpt"
51396
52472
  },
@@ -51503,6 +52579,34 @@ var catalog_default = {
51503
52579
  },
51504
52580
  unsupportedParameters: [],
51505
52581
  status: "candidate",
52582
+ promptCacheKey: {
52583
+ value: true,
52584
+ source: "official-doc",
52585
+ confidence: "declared",
52586
+ observedAt: "2026-09-25T19:30:00Z",
52587
+ sourceRef: 'https://developers.openai.com/api/docs/guides/prompt-caching — the Responses API takes prompt_cache_key: "Use a stable prompt_cache_key to optimize cache routing for requests that share a reusable prefix" (pre-GPT-5.6); on GPT-5.6+ routing is automatic and the key is "optional for separate cache accounting".'
52588
+ },
52589
+ clientToolSearch: {
52590
+ value: true,
52591
+ source: "official-doc",
52592
+ confidence: "declared",
52593
+ observedAt: "2026-09-26T00:00:00Z",
52594
+ sourceRef: 'https://developers.openai.com/api/docs/guides/tools-tool-search — "Only gpt-5.4 and later models support tool_search" in the Responses API; client execution: {"type":"tool_search","execution":"client",description,parameters}, tool_search_call -> tool_search_output {call_id, execution:"client", status, tools}, deferred functions keep defer_loading:true, optionally inside {"type":"namespace",name,description,tools}. Retrieved 2026-09-26.'
52595
+ },
52596
+ additionalToolsItem: {
52597
+ value: true,
52598
+ source: "official-doc",
52599
+ confidence: "declared",
52600
+ observedAt: "2026-09-26T00:00:00Z",
52601
+ sourceRef: 'https://developers.openai.com/api/docs/guides/tools-tool-search — {"type":"additional_tools","role":"developer","tools":[...]}: "Tools in an additional_tools item become available only after that item appears in the input"; its position is kept on replay. The page names no model list, so it is set only on the rows the same page documents tool_search for (GPT-5.4 and later). NOT on codex-oauth: codex-rs sends one only at input[0] (core/src/client.rs:910-941), never mid-conversation -- the live probe decides. Retrieved 2026-09-26.'
52602
+ },
52603
+ allowedToolsChoice: {
52604
+ value: true,
52605
+ source: "official-doc",
52606
+ confidence: "declared",
52607
+ observedAt: "2026-09-26T00:00:00Z",
52608
+ sourceRef: 'https://developers.openai.com/api/docs/guides/function-calling — tool_choice {"type":"allowed_tools","mode":"auto"|"required","tools":[{"type":"function","name":…}]}: "make only a subset of tools available across model requests, but not modify the list of tools you pass in, so you can maximize savings from prompt caching"; "When you use tool search, tool_choice still applies to the tools that are currently callable in the turn." No model list on the page; set on the same GPT-5.4+ rows. NOT on codex-oauth: codex-rs always sends tool_choice "auto" (core/src/client.rs:1004) and its allowed_tools is a client-side filter (ext/extension-api/src/tool_policy.rs:14-36) -- the live probe decides. Retrieved 2026-09-26.'
52609
+ },
51506
52610
  canonicalModelId: "gpt-5.4-mini",
51507
52611
  modelFamily: "gpt"
51508
52612
  },
@@ -51615,6 +52719,34 @@ var catalog_default = {
51615
52719
  },
51616
52720
  unsupportedParameters: [],
51617
52721
  status: "candidate",
52722
+ promptCacheKey: {
52723
+ value: true,
52724
+ source: "official-doc",
52725
+ confidence: "declared",
52726
+ observedAt: "2026-09-25T19:30:00Z",
52727
+ sourceRef: 'https://developers.openai.com/api/docs/guides/prompt-caching — the Responses API takes prompt_cache_key: "Use a stable prompt_cache_key to optimize cache routing for requests that share a reusable prefix" (pre-GPT-5.6); on GPT-5.6+ routing is automatic and the key is "optional for separate cache accounting".'
52728
+ },
52729
+ clientToolSearch: {
52730
+ value: true,
52731
+ source: "official-doc",
52732
+ confidence: "declared",
52733
+ observedAt: "2026-09-26T00:00:00Z",
52734
+ sourceRef: 'https://developers.openai.com/api/docs/guides/tools-tool-search — "Only gpt-5.4 and later models support tool_search" in the Responses API; client execution: {"type":"tool_search","execution":"client",description,parameters}, tool_search_call -> tool_search_output {call_id, execution:"client", status, tools}, deferred functions keep defer_loading:true, optionally inside {"type":"namespace",name,description,tools}. Retrieved 2026-09-26.'
52735
+ },
52736
+ additionalToolsItem: {
52737
+ value: true,
52738
+ source: "official-doc",
52739
+ confidence: "declared",
52740
+ observedAt: "2026-09-26T00:00:00Z",
52741
+ sourceRef: 'https://developers.openai.com/api/docs/guides/tools-tool-search — {"type":"additional_tools","role":"developer","tools":[...]}: "Tools in an additional_tools item become available only after that item appears in the input"; its position is kept on replay. The page names no model list, so it is set only on the rows the same page documents tool_search for (GPT-5.4 and later). NOT on codex-oauth: codex-rs sends one only at input[0] (core/src/client.rs:910-941), never mid-conversation -- the live probe decides. Retrieved 2026-09-26.'
52742
+ },
52743
+ allowedToolsChoice: {
52744
+ value: true,
52745
+ source: "official-doc",
52746
+ confidence: "declared",
52747
+ observedAt: "2026-09-26T00:00:00Z",
52748
+ sourceRef: 'https://developers.openai.com/api/docs/guides/function-calling — tool_choice {"type":"allowed_tools","mode":"auto"|"required","tools":[{"type":"function","name":…}]}: "make only a subset of tools available across model requests, but not modify the list of tools you pass in, so you can maximize savings from prompt caching"; "When you use tool search, tool_choice still applies to the tools that are currently callable in the turn." No model list on the page; set on the same GPT-5.4+ rows. NOT on codex-oauth: codex-rs always sends tool_choice "auto" (core/src/client.rs:1004) and its allowed_tools is a client-side filter (ext/extension-api/src/tool_policy.rs:14-36) -- the live probe decides. Retrieved 2026-09-26.'
52749
+ },
51618
52750
  canonicalModelId: "gpt-5.4-nano",
51619
52751
  modelFamily: "gpt"
51620
52752
  },
@@ -51702,6 +52834,34 @@ var catalog_default = {
51702
52834
  },
51703
52835
  unsupportedParameters: [],
51704
52836
  status: "candidate",
52837
+ promptCacheKey: {
52838
+ value: true,
52839
+ source: "official-doc",
52840
+ confidence: "declared",
52841
+ observedAt: "2026-09-25T19:30:00Z",
52842
+ sourceRef: 'https://developers.openai.com/api/docs/guides/prompt-caching — the Responses API takes prompt_cache_key: "Use a stable prompt_cache_key to optimize cache routing for requests that share a reusable prefix" (pre-GPT-5.6); on GPT-5.6+ routing is automatic and the key is "optional for separate cache accounting".'
52843
+ },
52844
+ clientToolSearch: {
52845
+ value: true,
52846
+ source: "official-doc",
52847
+ confidence: "declared",
52848
+ observedAt: "2026-09-26T00:00:00Z",
52849
+ sourceRef: 'https://developers.openai.com/api/docs/guides/tools-tool-search — "Only gpt-5.4 and later models support tool_search" in the Responses API; client execution: {"type":"tool_search","execution":"client",description,parameters}, tool_search_call -> tool_search_output {call_id, execution:"client", status, tools}, deferred functions keep defer_loading:true, optionally inside {"type":"namespace",name,description,tools}. Retrieved 2026-09-26.'
52850
+ },
52851
+ additionalToolsItem: {
52852
+ value: true,
52853
+ source: "official-doc",
52854
+ confidence: "declared",
52855
+ observedAt: "2026-09-26T00:00:00Z",
52856
+ sourceRef: 'https://developers.openai.com/api/docs/guides/tools-tool-search — {"type":"additional_tools","role":"developer","tools":[...]}: "Tools in an additional_tools item become available only after that item appears in the input"; its position is kept on replay. The page names no model list, so it is set only on the rows the same page documents tool_search for (GPT-5.4 and later). NOT on codex-oauth: codex-rs sends one only at input[0] (core/src/client.rs:910-941), never mid-conversation -- the live probe decides. Retrieved 2026-09-26.'
52857
+ },
52858
+ allowedToolsChoice: {
52859
+ value: true,
52860
+ source: "official-doc",
52861
+ confidence: "declared",
52862
+ observedAt: "2026-09-26T00:00:00Z",
52863
+ sourceRef: 'https://developers.openai.com/api/docs/guides/function-calling — tool_choice {"type":"allowed_tools","mode":"auto"|"required","tools":[{"type":"function","name":…}]}: "make only a subset of tools available across model requests, but not modify the list of tools you pass in, so you can maximize savings from prompt caching"; "When you use tool search, tool_choice still applies to the tools that are currently callable in the turn." No model list on the page; set on the same GPT-5.4+ rows. NOT on codex-oauth: codex-rs always sends tool_choice "auto" (core/src/client.rs:1004) and its allowed_tools is a client-side filter (ext/extension-api/src/tool_policy.rs:14-36) -- the live probe decides. Retrieved 2026-09-26.'
52864
+ },
51705
52865
  canonicalModelId: "gpt-5.4-pro",
51706
52866
  modelFamily: "gpt"
51707
52867
  },
@@ -51807,6 +52967,34 @@ var catalog_default = {
51807
52967
  },
51808
52968
  unsupportedParameters: [],
51809
52969
  status: "candidate",
52970
+ promptCacheKey: {
52971
+ value: true,
52972
+ source: "official-doc",
52973
+ confidence: "declared",
52974
+ observedAt: "2026-09-25T19:30:00Z",
52975
+ sourceRef: 'https://developers.openai.com/api/docs/guides/prompt-caching — the Responses API takes prompt_cache_key: "Use a stable prompt_cache_key to optimize cache routing for requests that share a reusable prefix" (pre-GPT-5.6); on GPT-5.6+ routing is automatic and the key is "optional for separate cache accounting".'
52976
+ },
52977
+ clientToolSearch: {
52978
+ value: true,
52979
+ source: "official-doc",
52980
+ confidence: "declared",
52981
+ observedAt: "2026-09-26T00:00:00Z",
52982
+ sourceRef: 'https://developers.openai.com/api/docs/guides/tools-tool-search — "Only gpt-5.4 and later models support tool_search" in the Responses API; client execution: {"type":"tool_search","execution":"client",description,parameters}, tool_search_call -> tool_search_output {call_id, execution:"client", status, tools}, deferred functions keep defer_loading:true, optionally inside {"type":"namespace",name,description,tools}. Retrieved 2026-09-26.'
52983
+ },
52984
+ additionalToolsItem: {
52985
+ value: true,
52986
+ source: "official-doc",
52987
+ confidence: "declared",
52988
+ observedAt: "2026-09-26T00:00:00Z",
52989
+ sourceRef: 'https://developers.openai.com/api/docs/guides/tools-tool-search — {"type":"additional_tools","role":"developer","tools":[...]}: "Tools in an additional_tools item become available only after that item appears in the input"; its position is kept on replay. The page names no model list, so it is set only on the rows the same page documents tool_search for (GPT-5.4 and later). NOT on codex-oauth: codex-rs sends one only at input[0] (core/src/client.rs:910-941), never mid-conversation -- the live probe decides. Retrieved 2026-09-26.'
52990
+ },
52991
+ allowedToolsChoice: {
52992
+ value: true,
52993
+ source: "official-doc",
52994
+ confidence: "declared",
52995
+ observedAt: "2026-09-26T00:00:00Z",
52996
+ sourceRef: 'https://developers.openai.com/api/docs/guides/function-calling — tool_choice {"type":"allowed_tools","mode":"auto"|"required","tools":[{"type":"function","name":…}]}: "make only a subset of tools available across model requests, but not modify the list of tools you pass in, so you can maximize savings from prompt caching"; "When you use tool search, tool_choice still applies to the tools that are currently callable in the turn." No model list on the page; set on the same GPT-5.4+ rows. NOT on codex-oauth: codex-rs always sends tool_choice "auto" (core/src/client.rs:1004) and its allowed_tools is a client-side filter (ext/extension-api/src/tool_policy.rs:14-36) -- the live probe decides. Retrieved 2026-09-26.'
52997
+ },
51810
52998
  canonicalModelId: "gpt-5.5",
51811
52999
  modelFamily: "gpt"
51812
53000
  },
@@ -51901,6 +53089,34 @@ var catalog_default = {
51901
53089
  },
51902
53090
  unsupportedParameters: [],
51903
53091
  status: "candidate",
53092
+ promptCacheKey: {
53093
+ value: true,
53094
+ source: "official-doc",
53095
+ confidence: "declared",
53096
+ observedAt: "2026-09-25T19:30:00Z",
53097
+ sourceRef: 'https://developers.openai.com/api/docs/guides/prompt-caching — the Responses API takes prompt_cache_key: "Use a stable prompt_cache_key to optimize cache routing for requests that share a reusable prefix" (pre-GPT-5.6); on GPT-5.6+ routing is automatic and the key is "optional for separate cache accounting".'
53098
+ },
53099
+ clientToolSearch: {
53100
+ value: true,
53101
+ source: "official-doc",
53102
+ confidence: "declared",
53103
+ observedAt: "2026-09-26T00:00:00Z",
53104
+ sourceRef: 'https://developers.openai.com/api/docs/guides/tools-tool-search — "Only gpt-5.4 and later models support tool_search" in the Responses API; client execution: {"type":"tool_search","execution":"client",description,parameters}, tool_search_call -> tool_search_output {call_id, execution:"client", status, tools}, deferred functions keep defer_loading:true, optionally inside {"type":"namespace",name,description,tools}. Retrieved 2026-09-26.'
53105
+ },
53106
+ additionalToolsItem: {
53107
+ value: true,
53108
+ source: "official-doc",
53109
+ confidence: "declared",
53110
+ observedAt: "2026-09-26T00:00:00Z",
53111
+ sourceRef: 'https://developers.openai.com/api/docs/guides/tools-tool-search — {"type":"additional_tools","role":"developer","tools":[...]}: "Tools in an additional_tools item become available only after that item appears in the input"; its position is kept on replay. The page names no model list, so it is set only on the rows the same page documents tool_search for (GPT-5.4 and later). NOT on codex-oauth: codex-rs sends one only at input[0] (core/src/client.rs:910-941), never mid-conversation -- the live probe decides. Retrieved 2026-09-26.'
53112
+ },
53113
+ allowedToolsChoice: {
53114
+ value: true,
53115
+ source: "official-doc",
53116
+ confidence: "declared",
53117
+ observedAt: "2026-09-26T00:00:00Z",
53118
+ sourceRef: 'https://developers.openai.com/api/docs/guides/function-calling — tool_choice {"type":"allowed_tools","mode":"auto"|"required","tools":[{"type":"function","name":…}]}: "make only a subset of tools available across model requests, but not modify the list of tools you pass in, so you can maximize savings from prompt caching"; "When you use tool search, tool_choice still applies to the tools that are currently callable in the turn." No model list on the page; set on the same GPT-5.4+ rows. NOT on codex-oauth: codex-rs always sends tool_choice "auto" (core/src/client.rs:1004) and its allowed_tools is a client-side filter (ext/extension-api/src/tool_policy.rs:14-36) -- the live probe decides. Retrieved 2026-09-26.'
53119
+ },
51904
53120
  canonicalModelId: "gpt-5.5-pro",
51905
53121
  modelFamily: "gpt"
51906
53122
  },
@@ -52015,6 +53231,34 @@ var catalog_default = {
52015
53231
  },
52016
53232
  unsupportedParameters: [],
52017
53233
  status: "candidate",
53234
+ promptCacheKey: {
53235
+ value: true,
53236
+ source: "official-doc",
53237
+ confidence: "declared",
53238
+ observedAt: "2026-09-25T19:30:00Z",
53239
+ sourceRef: 'https://developers.openai.com/api/docs/guides/prompt-caching — the Responses API takes prompt_cache_key: "Use a stable prompt_cache_key to optimize cache routing for requests that share a reusable prefix" (pre-GPT-5.6); on GPT-5.6+ routing is automatic and the key is "optional for separate cache accounting".'
53240
+ },
53241
+ clientToolSearch: {
53242
+ value: true,
53243
+ source: "official-doc",
53244
+ confidence: "declared",
53245
+ observedAt: "2026-09-26T00:00:00Z",
53246
+ sourceRef: 'https://developers.openai.com/api/docs/guides/tools-tool-search — "Only gpt-5.4 and later models support tool_search" in the Responses API; client execution: {"type":"tool_search","execution":"client",description,parameters}, tool_search_call -> tool_search_output {call_id, execution:"client", status, tools}, deferred functions keep defer_loading:true, optionally inside {"type":"namespace",name,description,tools}. Retrieved 2026-09-26.'
53247
+ },
53248
+ additionalToolsItem: {
53249
+ value: true,
53250
+ source: "official-doc",
53251
+ confidence: "declared",
53252
+ observedAt: "2026-09-26T00:00:00Z",
53253
+ sourceRef: 'https://developers.openai.com/api/docs/guides/tools-tool-search — {"type":"additional_tools","role":"developer","tools":[...]}: "Tools in an additional_tools item become available only after that item appears in the input"; its position is kept on replay. The page names no model list, so it is set only on the rows the same page documents tool_search for (GPT-5.4 and later). NOT on codex-oauth: codex-rs sends one only at input[0] (core/src/client.rs:910-941), never mid-conversation -- the live probe decides. Retrieved 2026-09-26.'
53254
+ },
53255
+ allowedToolsChoice: {
53256
+ value: true,
53257
+ source: "official-doc",
53258
+ confidence: "declared",
53259
+ observedAt: "2026-09-26T00:00:00Z",
53260
+ sourceRef: 'https://developers.openai.com/api/docs/guides/function-calling — tool_choice {"type":"allowed_tools","mode":"auto"|"required","tools":[{"type":"function","name":…}]}: "make only a subset of tools available across model requests, but not modify the list of tools you pass in, so you can maximize savings from prompt caching"; "When you use tool search, tool_choice still applies to the tools that are currently callable in the turn." No model list on the page; set on the same GPT-5.4+ rows. NOT on codex-oauth: codex-rs always sends tool_choice "auto" (core/src/client.rs:1004) and its allowed_tools is a client-side filter (ext/extension-api/src/tool_policy.rs:14-36) -- the live probe decides. Retrieved 2026-09-26.'
53261
+ },
52018
53262
  canonicalModelId: "gpt-5.6",
52019
53263
  modelFamily: "gpt"
52020
53264
  },
@@ -52129,6 +53373,34 @@ var catalog_default = {
52129
53373
  },
52130
53374
  unsupportedParameters: [],
52131
53375
  status: "candidate",
53376
+ promptCacheKey: {
53377
+ value: true,
53378
+ source: "official-doc",
53379
+ confidence: "declared",
53380
+ observedAt: "2026-09-25T19:30:00Z",
53381
+ sourceRef: 'https://developers.openai.com/api/docs/guides/prompt-caching — the Responses API takes prompt_cache_key: "Use a stable prompt_cache_key to optimize cache routing for requests that share a reusable prefix" (pre-GPT-5.6); on GPT-5.6+ routing is automatic and the key is "optional for separate cache accounting".'
53382
+ },
53383
+ clientToolSearch: {
53384
+ value: true,
53385
+ source: "official-doc",
53386
+ confidence: "declared",
53387
+ observedAt: "2026-09-26T00:00:00Z",
53388
+ sourceRef: 'https://developers.openai.com/api/docs/guides/tools-tool-search — "Only gpt-5.4 and later models support tool_search" in the Responses API; client execution: {"type":"tool_search","execution":"client",description,parameters}, tool_search_call -> tool_search_output {call_id, execution:"client", status, tools}, deferred functions keep defer_loading:true, optionally inside {"type":"namespace",name,description,tools}. Retrieved 2026-09-26.'
53389
+ },
53390
+ additionalToolsItem: {
53391
+ value: true,
53392
+ source: "official-doc",
53393
+ confidence: "declared",
53394
+ observedAt: "2026-09-26T00:00:00Z",
53395
+ sourceRef: 'https://developers.openai.com/api/docs/guides/tools-tool-search — {"type":"additional_tools","role":"developer","tools":[...]}: "Tools in an additional_tools item become available only after that item appears in the input"; its position is kept on replay. The page names no model list, so it is set only on the rows the same page documents tool_search for (GPT-5.4 and later). NOT on codex-oauth: codex-rs sends one only at input[0] (core/src/client.rs:910-941), never mid-conversation -- the live probe decides. Retrieved 2026-09-26.'
53396
+ },
53397
+ allowedToolsChoice: {
53398
+ value: true,
53399
+ source: "official-doc",
53400
+ confidence: "declared",
53401
+ observedAt: "2026-09-26T00:00:00Z",
53402
+ sourceRef: 'https://developers.openai.com/api/docs/guides/function-calling — tool_choice {"type":"allowed_tools","mode":"auto"|"required","tools":[{"type":"function","name":…}]}: "make only a subset of tools available across model requests, but not modify the list of tools you pass in, so you can maximize savings from prompt caching"; "When you use tool search, tool_choice still applies to the tools that are currently callable in the turn." No model list on the page; set on the same GPT-5.4+ rows. NOT on codex-oauth: codex-rs always sends tool_choice "auto" (core/src/client.rs:1004) and its allowed_tools is a client-side filter (ext/extension-api/src/tool_policy.rs:14-36) -- the live probe decides. Retrieved 2026-09-26.'
53403
+ },
52132
53404
  canonicalModelId: "gpt-5.6-luna",
52133
53405
  modelFamily: "gpt"
52134
53406
  },
@@ -52243,6 +53515,34 @@ var catalog_default = {
52243
53515
  },
52244
53516
  unsupportedParameters: [],
52245
53517
  status: "candidate",
53518
+ promptCacheKey: {
53519
+ value: true,
53520
+ source: "official-doc",
53521
+ confidence: "declared",
53522
+ observedAt: "2026-09-25T19:30:00Z",
53523
+ sourceRef: 'https://developers.openai.com/api/docs/guides/prompt-caching — the Responses API takes prompt_cache_key: "Use a stable prompt_cache_key to optimize cache routing for requests that share a reusable prefix" (pre-GPT-5.6); on GPT-5.6+ routing is automatic and the key is "optional for separate cache accounting".'
53524
+ },
53525
+ clientToolSearch: {
53526
+ value: true,
53527
+ source: "official-doc",
53528
+ confidence: "declared",
53529
+ observedAt: "2026-09-26T00:00:00Z",
53530
+ sourceRef: 'https://developers.openai.com/api/docs/guides/tools-tool-search — "Only gpt-5.4 and later models support tool_search" in the Responses API; client execution: {"type":"tool_search","execution":"client",description,parameters}, tool_search_call -> tool_search_output {call_id, execution:"client", status, tools}, deferred functions keep defer_loading:true, optionally inside {"type":"namespace",name,description,tools}. Retrieved 2026-09-26.'
53531
+ },
53532
+ additionalToolsItem: {
53533
+ value: true,
53534
+ source: "official-doc",
53535
+ confidence: "declared",
53536
+ observedAt: "2026-09-26T00:00:00Z",
53537
+ sourceRef: 'https://developers.openai.com/api/docs/guides/tools-tool-search — {"type":"additional_tools","role":"developer","tools":[...]}: "Tools in an additional_tools item become available only after that item appears in the input"; its position is kept on replay. The page names no model list, so it is set only on the rows the same page documents tool_search for (GPT-5.4 and later). NOT on codex-oauth: codex-rs sends one only at input[0] (core/src/client.rs:910-941), never mid-conversation -- the live probe decides. Retrieved 2026-09-26.'
53538
+ },
53539
+ allowedToolsChoice: {
53540
+ value: true,
53541
+ source: "official-doc",
53542
+ confidence: "declared",
53543
+ observedAt: "2026-09-26T00:00:00Z",
53544
+ sourceRef: 'https://developers.openai.com/api/docs/guides/function-calling — tool_choice {"type":"allowed_tools","mode":"auto"|"required","tools":[{"type":"function","name":…}]}: "make only a subset of tools available across model requests, but not modify the list of tools you pass in, so you can maximize savings from prompt caching"; "When you use tool search, tool_choice still applies to the tools that are currently callable in the turn." No model list on the page; set on the same GPT-5.4+ rows. NOT on codex-oauth: codex-rs always sends tool_choice "auto" (core/src/client.rs:1004) and its allowed_tools is a client-side filter (ext/extension-api/src/tool_policy.rs:14-36) -- the live probe decides. Retrieved 2026-09-26.'
53545
+ },
52246
53546
  canonicalModelId: "gpt-5.6-sol",
52247
53547
  modelFamily: "gpt"
52248
53548
  },
@@ -52357,6 +53657,34 @@ var catalog_default = {
52357
53657
  },
52358
53658
  unsupportedParameters: [],
52359
53659
  status: "candidate",
53660
+ promptCacheKey: {
53661
+ value: true,
53662
+ source: "official-doc",
53663
+ confidence: "declared",
53664
+ observedAt: "2026-09-25T19:30:00Z",
53665
+ sourceRef: 'https://developers.openai.com/api/docs/guides/prompt-caching — the Responses API takes prompt_cache_key: "Use a stable prompt_cache_key to optimize cache routing for requests that share a reusable prefix" (pre-GPT-5.6); on GPT-5.6+ routing is automatic and the key is "optional for separate cache accounting".'
53666
+ },
53667
+ clientToolSearch: {
53668
+ value: true,
53669
+ source: "official-doc",
53670
+ confidence: "declared",
53671
+ observedAt: "2026-09-26T00:00:00Z",
53672
+ sourceRef: 'https://developers.openai.com/api/docs/guides/tools-tool-search — "Only gpt-5.4 and later models support tool_search" in the Responses API; client execution: {"type":"tool_search","execution":"client",description,parameters}, tool_search_call -> tool_search_output {call_id, execution:"client", status, tools}, deferred functions keep defer_loading:true, optionally inside {"type":"namespace",name,description,tools}. Retrieved 2026-09-26.'
53673
+ },
53674
+ additionalToolsItem: {
53675
+ value: true,
53676
+ source: "official-doc",
53677
+ confidence: "declared",
53678
+ observedAt: "2026-09-26T00:00:00Z",
53679
+ sourceRef: 'https://developers.openai.com/api/docs/guides/tools-tool-search — {"type":"additional_tools","role":"developer","tools":[...]}: "Tools in an additional_tools item become available only after that item appears in the input"; its position is kept on replay. The page names no model list, so it is set only on the rows the same page documents tool_search for (GPT-5.4 and later). NOT on codex-oauth: codex-rs sends one only at input[0] (core/src/client.rs:910-941), never mid-conversation -- the live probe decides. Retrieved 2026-09-26.'
53680
+ },
53681
+ allowedToolsChoice: {
53682
+ value: true,
53683
+ source: "official-doc",
53684
+ confidence: "declared",
53685
+ observedAt: "2026-09-26T00:00:00Z",
53686
+ sourceRef: 'https://developers.openai.com/api/docs/guides/function-calling — tool_choice {"type":"allowed_tools","mode":"auto"|"required","tools":[{"type":"function","name":…}]}: "make only a subset of tools available across model requests, but not modify the list of tools you pass in, so you can maximize savings from prompt caching"; "When you use tool search, tool_choice still applies to the tools that are currently callable in the turn." No model list on the page; set on the same GPT-5.4+ rows. NOT on codex-oauth: codex-rs always sends tool_choice "auto" (core/src/client.rs:1004) and its allowed_tools is a client-side filter (ext/extension-api/src/tool_policy.rs:14-36) -- the live probe decides. Retrieved 2026-09-26.'
53687
+ },
52360
53688
  canonicalModelId: "gpt-5.6-terra",
52361
53689
  modelFamily: "gpt"
52362
53690
  },
@@ -52454,7 +53782,7 @@ var catalog_default = {
52454
53782
  "max"
52455
53783
  ],
52456
53784
  continuation: "opaque-provider-state",
52457
- defaultEffort: "low",
53785
+ defaultEffort: "medium",
52458
53786
  readableState: {
52459
53787
  value: "summary",
52460
53788
  source: "official-doc",
@@ -52491,6 +53819,15 @@ var catalog_default = {
52491
53819
  sourceRef: 'continuity report §5.1/§5.3 for own-state acceptance — the Responses surface replays its own completed `reasoning.encrypted_content` items to the same model. WS-13 §8.2: "OpenAI-compatible" is never the capability test, so this key shares NO domain with any other row.',
52492
53820
  confidence: "declared",
52493
53821
  observedAt: "2026-09-06T00:00:00Z"
53822
+ },
53823
+ perMessageEffort: {
53824
+ value: {
53825
+ item: "configuration_update"
53826
+ },
53827
+ source: "official-doc",
53828
+ confidence: "declared",
53829
+ observedAt: "2026-09-26T00:00:00Z",
53830
+ sourceRef: `https://developers.openai.com/api/docs/guides/reasoning — "Configuration updates are supported by the GPT-6 model family in standard, single-agent mode. They change only reasoning effort." Shape {"type":"configuration_update","reasoning":{"effort":…}}, placed "before the next user message in the input array"; "the API rejects adjacent updates"; "The response's reasoning.effort continues to report the request-level setting"; with store:false, replay updates "in their original positions". Retrieved 2026-09-26. NOT set on codex-oauth/gpt-6-* (codex-rs enables it only behind an off-by-default feature, backend acceptance unprobed — scripts/probe-openai-midconv.ts decides) nor on azure-openai (undocumented there).`
52494
53831
  }
52495
53832
  },
52496
53833
  pricing: {
@@ -52507,6 +53844,34 @@ var catalog_default = {
52507
53844
  },
52508
53845
  unsupportedParameters: [],
52509
53846
  status: "candidate",
53847
+ promptCacheKey: {
53848
+ value: true,
53849
+ source: "official-doc",
53850
+ confidence: "declared",
53851
+ observedAt: "2026-09-25T19:30:00Z",
53852
+ sourceRef: 'https://developers.openai.com/api/docs/guides/prompt-caching — the Responses API takes prompt_cache_key: "Use a stable prompt_cache_key to optimize cache routing for requests that share a reusable prefix" (pre-GPT-5.6); on GPT-5.6+ routing is automatic and the key is "optional for separate cache accounting".'
53853
+ },
53854
+ clientToolSearch: {
53855
+ value: true,
53856
+ source: "official-doc",
53857
+ confidence: "declared",
53858
+ observedAt: "2026-09-26T00:00:00Z",
53859
+ sourceRef: 'https://developers.openai.com/api/docs/guides/tools-tool-search — "Only gpt-5.4 and later models support tool_search" in the Responses API; client execution: {"type":"tool_search","execution":"client",description,parameters}, tool_search_call -> tool_search_output {call_id, execution:"client", status, tools}, deferred functions keep defer_loading:true, optionally inside {"type":"namespace",name,description,tools}. Retrieved 2026-09-26.'
53860
+ },
53861
+ additionalToolsItem: {
53862
+ value: true,
53863
+ source: "official-doc",
53864
+ confidence: "declared",
53865
+ observedAt: "2026-09-26T00:00:00Z",
53866
+ sourceRef: 'https://developers.openai.com/api/docs/guides/tools-tool-search — {"type":"additional_tools","role":"developer","tools":[...]}: "Tools in an additional_tools item become available only after that item appears in the input"; its position is kept on replay. The page names no model list, so it is set only on the rows the same page documents tool_search for (GPT-5.4 and later). NOT on codex-oauth: codex-rs sends one only at input[0] (core/src/client.rs:910-941), never mid-conversation -- the live probe decides. Retrieved 2026-09-26.'
53867
+ },
53868
+ allowedToolsChoice: {
53869
+ value: true,
53870
+ source: "official-doc",
53871
+ confidence: "declared",
53872
+ observedAt: "2026-09-26T00:00:00Z",
53873
+ sourceRef: 'https://developers.openai.com/api/docs/guides/function-calling — tool_choice {"type":"allowed_tools","mode":"auto"|"required","tools":[{"type":"function","name":…}]}: "make only a subset of tools available across model requests, but not modify the list of tools you pass in, so you can maximize savings from prompt caching"; "When you use tool search, tool_choice still applies to the tools that are currently callable in the turn." No model list on the page; set on the same GPT-5.4+ rows. NOT on codex-oauth: codex-rs always sends tool_choice "auto" (core/src/client.rs:1004) and its allowed_tools is a client-side filter (ext/extension-api/src/tool_policy.rs:14-36) -- the live probe decides. Retrieved 2026-09-26.'
53874
+ },
52510
53875
  canonicalModelId: "gpt-6-astra",
52511
53876
  modelFamily: "gpt"
52512
53877
  },
@@ -52642,6 +54007,15 @@ var catalog_default = {
52642
54007
  sourceRef: 'continuity report §5.1/§5.3 for own-state acceptance — the Responses surface replays its own completed `reasoning.encrypted_content` items to the same model. WS-13 §8.2: "OpenAI-compatible" is never the capability test, so this key shares NO domain with any other row.',
52643
54008
  confidence: "declared",
52644
54009
  observedAt: "2026-09-06T00:00:00Z"
54010
+ },
54011
+ perMessageEffort: {
54012
+ value: {
54013
+ item: "configuration_update"
54014
+ },
54015
+ source: "official-doc",
54016
+ confidence: "declared",
54017
+ observedAt: "2026-09-26T00:00:00Z",
54018
+ sourceRef: `https://developers.openai.com/api/docs/guides/reasoning — "Configuration updates are supported by the GPT-6 model family in standard, single-agent mode. They change only reasoning effort." Shape {"type":"configuration_update","reasoning":{"effort":…}}, placed "before the next user message in the input array"; "the API rejects adjacent updates"; "The response's reasoning.effort continues to report the request-level setting"; with store:false, replay updates "in their original positions". Retrieved 2026-09-26. NOT set on codex-oauth/gpt-6-* (codex-rs enables it only behind an off-by-default feature, backend acceptance unprobed — scripts/probe-openai-midconv.ts decides) nor on azure-openai (undocumented there).`
52645
54019
  }
52646
54020
  },
52647
54021
  pricing: {
@@ -52658,6 +54032,34 @@ var catalog_default = {
52658
54032
  },
52659
54033
  unsupportedParameters: [],
52660
54034
  status: "candidate",
54035
+ promptCacheKey: {
54036
+ value: true,
54037
+ source: "official-doc",
54038
+ confidence: "declared",
54039
+ observedAt: "2026-09-25T19:30:00Z",
54040
+ sourceRef: 'https://developers.openai.com/api/docs/guides/prompt-caching — the Responses API takes prompt_cache_key: "Use a stable prompt_cache_key to optimize cache routing for requests that share a reusable prefix" (pre-GPT-5.6); on GPT-5.6+ routing is automatic and the key is "optional for separate cache accounting".'
54041
+ },
54042
+ clientToolSearch: {
54043
+ value: true,
54044
+ source: "official-doc",
54045
+ confidence: "declared",
54046
+ observedAt: "2026-09-26T00:00:00Z",
54047
+ sourceRef: 'https://developers.openai.com/api/docs/guides/tools-tool-search — "Only gpt-5.4 and later models support tool_search" in the Responses API; client execution: {"type":"tool_search","execution":"client",description,parameters}, tool_search_call -> tool_search_output {call_id, execution:"client", status, tools}, deferred functions keep defer_loading:true, optionally inside {"type":"namespace",name,description,tools}. Retrieved 2026-09-26.'
54048
+ },
54049
+ additionalToolsItem: {
54050
+ value: true,
54051
+ source: "official-doc",
54052
+ confidence: "declared",
54053
+ observedAt: "2026-09-26T00:00:00Z",
54054
+ sourceRef: 'https://developers.openai.com/api/docs/guides/tools-tool-search — {"type":"additional_tools","role":"developer","tools":[...]}: "Tools in an additional_tools item become available only after that item appears in the input"; its position is kept on replay. The page names no model list, so it is set only on the rows the same page documents tool_search for (GPT-5.4 and later). NOT on codex-oauth: codex-rs sends one only at input[0] (core/src/client.rs:910-941), never mid-conversation -- the live probe decides. Retrieved 2026-09-26.'
54055
+ },
54056
+ allowedToolsChoice: {
54057
+ value: true,
54058
+ source: "official-doc",
54059
+ confidence: "declared",
54060
+ observedAt: "2026-09-26T00:00:00Z",
54061
+ sourceRef: 'https://developers.openai.com/api/docs/guides/function-calling — tool_choice {"type":"allowed_tools","mode":"auto"|"required","tools":[{"type":"function","name":…}]}: "make only a subset of tools available across model requests, but not modify the list of tools you pass in, so you can maximize savings from prompt caching"; "When you use tool search, tool_choice still applies to the tools that are currently callable in the turn." No model list on the page; set on the same GPT-5.4+ rows. NOT on codex-oauth: codex-rs always sends tool_choice "auto" (core/src/client.rs:1004) and its allowed_tools is a client-side filter (ext/extension-api/src/tool_policy.rs:14-36) -- the live probe decides. Retrieved 2026-09-26.'
54062
+ },
52661
54063
  canonicalModelId: "gpt-6-luna",
52662
54064
  modelFamily: "gpt"
52663
54065
  },
@@ -52793,6 +54195,15 @@ var catalog_default = {
52793
54195
  sourceRef: 'continuity report §5.1/§5.3 for own-state acceptance — the Responses surface replays its own completed `reasoning.encrypted_content` items to the same model. WS-13 §8.2: "OpenAI-compatible" is never the capability test, so this key shares NO domain with any other row.',
52794
54196
  confidence: "declared",
52795
54197
  observedAt: "2026-09-06T00:00:00Z"
54198
+ },
54199
+ perMessageEffort: {
54200
+ value: {
54201
+ item: "configuration_update"
54202
+ },
54203
+ source: "official-doc",
54204
+ confidence: "declared",
54205
+ observedAt: "2026-09-26T00:00:00Z",
54206
+ sourceRef: `https://developers.openai.com/api/docs/guides/reasoning — "Configuration updates are supported by the GPT-6 model family in standard, single-agent mode. They change only reasoning effort." Shape {"type":"configuration_update","reasoning":{"effort":…}}, placed "before the next user message in the input array"; "the API rejects adjacent updates"; "The response's reasoning.effort continues to report the request-level setting"; with store:false, replay updates "in their original positions". Retrieved 2026-09-26. NOT set on codex-oauth/gpt-6-* (codex-rs enables it only behind an off-by-default feature, backend acceptance unprobed — scripts/probe-openai-midconv.ts decides) nor on azure-openai (undocumented there).`
52796
54207
  }
52797
54208
  },
52798
54209
  pricing: {
@@ -52809,6 +54220,34 @@ var catalog_default = {
52809
54220
  },
52810
54221
  unsupportedParameters: [],
52811
54222
  status: "candidate",
54223
+ promptCacheKey: {
54224
+ value: true,
54225
+ source: "official-doc",
54226
+ confidence: "declared",
54227
+ observedAt: "2026-09-25T19:30:00Z",
54228
+ sourceRef: 'https://developers.openai.com/api/docs/guides/prompt-caching — the Responses API takes prompt_cache_key: "Use a stable prompt_cache_key to optimize cache routing for requests that share a reusable prefix" (pre-GPT-5.6); on GPT-5.6+ routing is automatic and the key is "optional for separate cache accounting".'
54229
+ },
54230
+ clientToolSearch: {
54231
+ value: true,
54232
+ source: "official-doc",
54233
+ confidence: "declared",
54234
+ observedAt: "2026-09-26T00:00:00Z",
54235
+ sourceRef: 'https://developers.openai.com/api/docs/guides/tools-tool-search — "Only gpt-5.4 and later models support tool_search" in the Responses API; client execution: {"type":"tool_search","execution":"client",description,parameters}, tool_search_call -> tool_search_output {call_id, execution:"client", status, tools}, deferred functions keep defer_loading:true, optionally inside {"type":"namespace",name,description,tools}. Retrieved 2026-09-26.'
54236
+ },
54237
+ additionalToolsItem: {
54238
+ value: true,
54239
+ source: "official-doc",
54240
+ confidence: "declared",
54241
+ observedAt: "2026-09-26T00:00:00Z",
54242
+ sourceRef: 'https://developers.openai.com/api/docs/guides/tools-tool-search — {"type":"additional_tools","role":"developer","tools":[...]}: "Tools in an additional_tools item become available only after that item appears in the input"; its position is kept on replay. The page names no model list, so it is set only on the rows the same page documents tool_search for (GPT-5.4 and later). NOT on codex-oauth: codex-rs sends one only at input[0] (core/src/client.rs:910-941), never mid-conversation -- the live probe decides. Retrieved 2026-09-26.'
54243
+ },
54244
+ allowedToolsChoice: {
54245
+ value: true,
54246
+ source: "official-doc",
54247
+ confidence: "declared",
54248
+ observedAt: "2026-09-26T00:00:00Z",
54249
+ sourceRef: 'https://developers.openai.com/api/docs/guides/function-calling — tool_choice {"type":"allowed_tools","mode":"auto"|"required","tools":[{"type":"function","name":…}]}: "make only a subset of tools available across model requests, but not modify the list of tools you pass in, so you can maximize savings from prompt caching"; "When you use tool search, tool_choice still applies to the tools that are currently callable in the turn." No model list on the page; set on the same GPT-5.4+ rows. NOT on codex-oauth: codex-rs always sends tool_choice "auto" (core/src/client.rs:1004) and its allowed_tools is a client-side filter (ext/extension-api/src/tool_policy.rs:14-36) -- the live probe decides. Retrieved 2026-09-26.'
54250
+ },
52812
54251
  canonicalModelId: "gpt-6-sol",
52813
54252
  modelFamily: "gpt"
52814
54253
  },
@@ -52911,6 +54350,13 @@ var catalog_default = {
52911
54350
  },
52912
54351
  unsupportedParameters: [],
52913
54352
  status: "candidate",
54353
+ promptCacheKey: {
54354
+ value: true,
54355
+ source: "official-doc",
54356
+ confidence: "declared",
54357
+ observedAt: "2026-09-25T19:30:00Z",
54358
+ sourceRef: 'https://developers.openai.com/api/docs/guides/prompt-caching — the Responses API takes prompt_cache_key: "Use a stable prompt_cache_key to optimize cache routing for requests that share a reusable prefix" (pre-GPT-5.6); on GPT-5.6+ routing is automatic and the key is "optional for separate cache accounting".'
54359
+ },
52914
54360
  canonicalModelId: "o3",
52915
54361
  modelFamily: "o-series"
52916
54362
  },
@@ -53005,6 +54451,13 @@ var catalog_default = {
53005
54451
  },
53006
54452
  unsupportedParameters: [],
53007
54453
  status: "candidate",
54454
+ promptCacheKey: {
54455
+ value: true,
54456
+ source: "official-doc",
54457
+ confidence: "declared",
54458
+ observedAt: "2026-09-25T19:30:00Z",
54459
+ sourceRef: 'https://developers.openai.com/api/docs/guides/prompt-caching — the Responses API takes prompt_cache_key: "Use a stable prompt_cache_key to optimize cache routing for requests that share a reusable prefix" (pre-GPT-5.6); on GPT-5.6+ routing is automatic and the key is "optional for separate cache accounting".'
54460
+ },
53008
54461
  canonicalModelId: "o3-mini",
53009
54462
  modelFamily: "o-series"
53010
54463
  },
@@ -53093,6 +54546,7 @@ var catalog_default = {
53093
54546
  "high"
53094
54547
  ],
53095
54548
  continuation: "opaque-provider-state",
54549
+ defaultEffort: "medium",
53096
54550
  readableState: {
53097
54551
  value: "summary",
53098
54552
  source: "official-doc",
@@ -53151,6 +54605,13 @@ var catalog_default = {
53151
54605
  },
53152
54606
  unsupportedParameters: [],
53153
54607
  status: "candidate",
54608
+ promptCacheKey: {
54609
+ value: true,
54610
+ source: "official-doc",
54611
+ confidence: "declared",
54612
+ observedAt: "2026-09-25T19:30:00Z",
54613
+ sourceRef: 'https://developers.openai.com/api/docs/guides/prompt-caching — the Responses API takes prompt_cache_key: "Use a stable prompt_cache_key to optimize cache routing for requests that share a reusable prefix" (pre-GPT-5.6); on GPT-5.6+ routing is automatic and the key is "optional for separate cache accounting".'
54614
+ },
53154
54615
  canonicalModelId: "o4-mini",
53155
54616
  modelFamily: "o-series"
53156
54617
  },
@@ -66307,6 +67768,27 @@ var catalog_default = {
66307
67768
  endpoints: [
66308
67769
  "chat"
66309
67770
  ],
67771
+ contextWindow: {
67772
+ value: 1e6,
67773
+ source: "official-doc",
67774
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — deepseek-v4-flash-202605 row lists context window 1M tokens; k/M expanded as decimal",
67775
+ confidence: "inferred",
67776
+ observedAt: "2026-09-25T12:31:56.381Z"
67777
+ },
67778
+ maxInputTokens: {
67779
+ value: 1e6,
67780
+ source: "official-doc",
67781
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — deepseek-v4-flash-202605 row lists maximum input 1M tokens; k/M expanded as decimal",
67782
+ confidence: "inferred",
67783
+ observedAt: "2026-09-25T12:31:56.381Z"
67784
+ },
67785
+ maxOutputTokens: {
67786
+ value: 384000,
67787
+ source: "official-doc",
67788
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — deepseek-v4-flash-202605 row lists maximum output 384k tokens; k/M expanded as decimal",
67789
+ confidence: "inferred",
67790
+ observedAt: "2026-09-25T12:31:56.381Z"
67791
+ },
66310
67792
  inputModalities: {
66311
67793
  value: [
66312
67794
  "text"
@@ -66367,6 +67849,27 @@ var catalog_default = {
66367
67849
  endpoints: [
66368
67850
  "chat"
66369
67851
  ],
67852
+ contextWindow: {
67853
+ value: 1e6,
67854
+ source: "official-doc",
67855
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — deepseek-v4-pro-202606 row lists context window 1M tokens; k/M expanded as decimal",
67856
+ confidence: "inferred",
67857
+ observedAt: "2026-09-25T12:31:56.381Z"
67858
+ },
67859
+ maxInputTokens: {
67860
+ value: 1e6,
67861
+ source: "official-doc",
67862
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — deepseek-v4-pro-202606 row lists maximum input 1M tokens; k/M expanded as decimal",
67863
+ confidence: "inferred",
67864
+ observedAt: "2026-09-25T12:31:56.381Z"
67865
+ },
67866
+ maxOutputTokens: {
67867
+ value: 384000,
67868
+ source: "official-doc",
67869
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — deepseek-v4-pro-202606 row lists maximum output 384k tokens; k/M expanded as decimal",
67870
+ confidence: "inferred",
67871
+ observedAt: "2026-09-25T12:31:56.381Z"
67872
+ },
66370
67873
  inputModalities: {
66371
67874
  value: [
66372
67875
  "text"
@@ -66426,6 +67929,27 @@ var catalog_default = {
66426
67929
  endpoints: [
66427
67930
  "chat"
66428
67931
  ],
67932
+ contextWindow: {
67933
+ value: 200000,
67934
+ source: "official-doc",
67935
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — glm-5 row lists context window 200k tokens; k/M expanded as decimal",
67936
+ confidence: "inferred",
67937
+ observedAt: "2026-09-25T12:31:56.381Z"
67938
+ },
67939
+ maxInputTokens: {
67940
+ value: 200000,
67941
+ source: "official-doc",
67942
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — glm-5 row lists maximum input 200k tokens; k/M expanded as decimal",
67943
+ confidence: "inferred",
67944
+ observedAt: "2026-09-25T12:31:56.381Z"
67945
+ },
67946
+ maxOutputTokens: {
67947
+ value: 128000,
67948
+ source: "official-doc",
67949
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — glm-5 row lists maximum output 128k tokens; k/M expanded as decimal",
67950
+ confidence: "inferred",
67951
+ observedAt: "2026-09-25T12:31:56.381Z"
67952
+ },
66429
67953
  inputModalities: {
66430
67954
  value: [
66431
67955
  "text"
@@ -66485,6 +68009,27 @@ var catalog_default = {
66485
68009
  endpoints: [
66486
68010
  "chat"
66487
68011
  ],
68012
+ contextWindow: {
68013
+ value: 200000,
68014
+ source: "official-doc",
68015
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — glm-5.1 row lists context window 200k tokens; k/M expanded as decimal",
68016
+ confidence: "inferred",
68017
+ observedAt: "2026-09-25T12:31:56.381Z"
68018
+ },
68019
+ maxInputTokens: {
68020
+ value: 200000,
68021
+ source: "official-doc",
68022
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — glm-5.1 row lists maximum input 200k tokens; k/M expanded as decimal",
68023
+ confidence: "inferred",
68024
+ observedAt: "2026-09-25T12:31:56.381Z"
68025
+ },
68026
+ maxOutputTokens: {
68027
+ value: 128000,
68028
+ source: "official-doc",
68029
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — glm-5.1 row lists maximum output 128k tokens; k/M expanded as decimal",
68030
+ confidence: "inferred",
68031
+ observedAt: "2026-09-25T12:31:56.381Z"
68032
+ },
66488
68033
  inputModalities: {
66489
68034
  value: [
66490
68035
  "text"
@@ -66544,6 +68089,27 @@ var catalog_default = {
66544
68089
  endpoints: [
66545
68090
  "chat"
66546
68091
  ],
68092
+ contextWindow: {
68093
+ value: 1e6,
68094
+ source: "official-doc",
68095
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — glm-5.2 row lists context window 1M tokens; k/M expanded as decimal",
68096
+ confidence: "inferred",
68097
+ observedAt: "2026-09-25T12:31:56.381Z"
68098
+ },
68099
+ maxInputTokens: {
68100
+ value: 1e6,
68101
+ source: "official-doc",
68102
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — glm-5.2 row lists maximum input 1M tokens; k/M expanded as decimal",
68103
+ confidence: "inferred",
68104
+ observedAt: "2026-09-25T12:31:56.381Z"
68105
+ },
68106
+ maxOutputTokens: {
68107
+ value: 128000,
68108
+ source: "official-doc",
68109
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — glm-5.2 row lists maximum output 128k tokens; k/M expanded as decimal",
68110
+ confidence: "inferred",
68111
+ observedAt: "2026-09-25T12:31:56.381Z"
68112
+ },
66547
68113
  inputModalities: {
66548
68114
  value: [
66549
68115
  "text"
@@ -66603,6 +68169,27 @@ var catalog_default = {
66603
68169
  endpoints: [
66604
68170
  "chat"
66605
68171
  ],
68172
+ contextWindow: {
68173
+ value: 1e6,
68174
+ source: "official-doc",
68175
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — glm-5.3 row lists context window 1M tokens; k/M expanded as decimal",
68176
+ confidence: "inferred",
68177
+ observedAt: "2026-09-25T12:31:56.381Z"
68178
+ },
68179
+ maxInputTokens: {
68180
+ value: 1e6,
68181
+ source: "official-doc",
68182
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — glm-5.3 row lists maximum input 1M tokens; k/M expanded as decimal",
68183
+ confidence: "inferred",
68184
+ observedAt: "2026-09-25T12:31:56.381Z"
68185
+ },
68186
+ maxOutputTokens: {
68187
+ value: 128000,
68188
+ source: "official-doc",
68189
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — glm-5.3 row lists maximum output 128k tokens; k/M expanded as decimal",
68190
+ confidence: "inferred",
68191
+ observedAt: "2026-09-25T12:31:56.381Z"
68192
+ },
66606
68193
  inputModalities: {
66607
68194
  value: [
66608
68195
  "text"
@@ -66660,6 +68247,27 @@ var catalog_default = {
66660
68247
  endpoints: [
66661
68248
  "chat"
66662
68249
  ],
68250
+ contextWindow: {
68251
+ value: 1e6,
68252
+ source: "official-doc",
68253
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — glm-5.3-flash row lists context window 1M tokens; k/M expanded as decimal",
68254
+ confidence: "inferred",
68255
+ observedAt: "2026-09-25T12:31:56.381Z"
68256
+ },
68257
+ maxInputTokens: {
68258
+ value: 1e6,
68259
+ source: "official-doc",
68260
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — glm-5.3-flash row lists maximum input 1M tokens; k/M expanded as decimal",
68261
+ confidence: "inferred",
68262
+ observedAt: "2026-09-25T12:31:56.381Z"
68263
+ },
68264
+ maxOutputTokens: {
68265
+ value: 128000,
68266
+ source: "official-doc",
68267
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — glm-5.3-flash row lists maximum output 128k tokens; k/M expanded as decimal",
68268
+ confidence: "inferred",
68269
+ observedAt: "2026-09-25T12:31:56.381Z"
68270
+ },
66663
68271
  inputModalities: {
66664
68272
  value: [
66665
68273
  "text"
@@ -66904,6 +68512,27 @@ var catalog_default = {
66904
68512
  endpoints: [
66905
68513
  "chat"
66906
68514
  ],
68515
+ contextWindow: {
68516
+ value: 256000,
68517
+ source: "official-doc",
68518
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — kimi-k2.7-code row lists context window 256k tokens; k/M expanded as decimal",
68519
+ confidence: "inferred",
68520
+ observedAt: "2026-09-25T12:31:56.381Z"
68521
+ },
68522
+ maxInputTokens: {
68523
+ value: 256000,
68524
+ source: "official-doc",
68525
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — kimi-k2.7-code row lists maximum input 256k tokens; k/M expanded as decimal",
68526
+ confidence: "inferred",
68527
+ observedAt: "2026-09-25T12:31:56.381Z"
68528
+ },
68529
+ maxOutputTokens: {
68530
+ value: 256000,
68531
+ source: "official-doc",
68532
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — kimi-k2.7-code row lists maximum output 256k tokens; k/M expanded as decimal",
68533
+ confidence: "inferred",
68534
+ observedAt: "2026-09-25T12:31:56.381Z"
68535
+ },
66907
68536
  inputModalities: {
66908
68537
  value: [
66909
68538
  "text"
@@ -66961,6 +68590,27 @@ var catalog_default = {
66961
68590
  endpoints: [
66962
68591
  "chat"
66963
68592
  ],
68593
+ contextWindow: {
68594
+ value: 1e6,
68595
+ source: "official-doc",
68596
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — kimi-k3 row lists context window 1M tokens; k/M expanded as decimal",
68597
+ confidence: "inferred",
68598
+ observedAt: "2026-09-25T12:31:56.381Z"
68599
+ },
68600
+ maxInputTokens: {
68601
+ value: 1e6,
68602
+ source: "official-doc",
68603
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — kimi-k3 row lists maximum input 1M tokens; k/M expanded as decimal",
68604
+ confidence: "inferred",
68605
+ observedAt: "2026-09-25T12:31:56.381Z"
68606
+ },
68607
+ maxOutputTokens: {
68608
+ value: 1e6,
68609
+ source: "official-doc",
68610
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — kimi-k3 row lists maximum output 1M tokens; k/M expanded as decimal",
68611
+ confidence: "inferred",
68612
+ observedAt: "2026-09-25T12:31:56.381Z"
68613
+ },
66964
68614
  inputModalities: {
66965
68615
  value: [
66966
68616
  "text"
@@ -67020,6 +68670,27 @@ var catalog_default = {
67020
68670
  endpoints: [
67021
68671
  "chat"
67022
68672
  ],
68673
+ contextWindow: {
68674
+ value: 200000,
68675
+ source: "official-doc",
68676
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — minimax-m2.7 row lists context window 200k tokens; k/M expanded as decimal",
68677
+ confidence: "inferred",
68678
+ observedAt: "2026-09-25T12:31:56.381Z"
68679
+ },
68680
+ maxInputTokens: {
68681
+ value: 200000,
68682
+ source: "official-doc",
68683
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — minimax-m2.7 row lists maximum input 200k tokens; k/M expanded as decimal",
68684
+ confidence: "inferred",
68685
+ observedAt: "2026-09-25T12:31:56.381Z"
68686
+ },
68687
+ maxOutputTokens: {
68688
+ value: 128000,
68689
+ source: "official-doc",
68690
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — minimax-m2.7 row lists maximum output 128k tokens; k/M expanded as decimal",
68691
+ confidence: "inferred",
68692
+ observedAt: "2026-09-25T12:31:56.381Z"
68693
+ },
67023
68694
  inputModalities: {
67024
68695
  value: [
67025
68696
  "text"
@@ -67079,6 +68750,20 @@ var catalog_default = {
67079
68750
  endpoints: [
67080
68751
  "chat"
67081
68752
  ],
68753
+ contextWindow: {
68754
+ value: 1e6,
68755
+ source: "official-doc",
68756
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — minimax-m3 row lists context window 1M tokens; k/M expanded as decimal",
68757
+ confidence: "inferred",
68758
+ observedAt: "2026-09-25T12:31:56.381Z"
68759
+ },
68760
+ maxInputTokens: {
68761
+ value: 1e6,
68762
+ source: "official-doc",
68763
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — minimax-m3 row lists maximum input 1M tokens; k/M expanded as decimal",
68764
+ confidence: "inferred",
68765
+ observedAt: "2026-09-25T12:31:56.381Z"
68766
+ },
67082
68767
  inputModalities: {
67083
68768
  value: [
67084
68769
  "text"
@@ -67185,6 +68870,27 @@ var catalog_default = {
67185
68870
  endpoints: [
67186
68871
  "chat"
67187
68872
  ],
68873
+ contextWindow: {
68874
+ value: 1e6,
68875
+ source: "official-doc",
68876
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — deepseek-v4-flash-202605 row lists context window 1M tokens; k/M expanded as decimal",
68877
+ confidence: "inferred",
68878
+ observedAt: "2026-09-25T12:31:56.381Z"
68879
+ },
68880
+ maxInputTokens: {
68881
+ value: 1e6,
68882
+ source: "official-doc",
68883
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — deepseek-v4-flash-202605 row lists maximum input 1M tokens; k/M expanded as decimal",
68884
+ confidence: "inferred",
68885
+ observedAt: "2026-09-25T12:31:56.381Z"
68886
+ },
68887
+ maxOutputTokens: {
68888
+ value: 384000,
68889
+ source: "official-doc",
68890
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — deepseek-v4-flash-202605 row lists maximum output 384k tokens; k/M expanded as decimal",
68891
+ confidence: "inferred",
68892
+ observedAt: "2026-09-25T12:31:56.381Z"
68893
+ },
67188
68894
  inputModalities: {
67189
68895
  value: [
67190
68896
  "text"
@@ -67249,6 +68955,27 @@ var catalog_default = {
67249
68955
  endpoints: [
67250
68956
  "chat"
67251
68957
  ],
68958
+ contextWindow: {
68959
+ value: 1e6,
68960
+ source: "official-doc",
68961
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — deepseek-v4-pro-202606 row lists context window 1M tokens; k/M expanded as decimal",
68962
+ confidence: "inferred",
68963
+ observedAt: "2026-09-25T12:31:56.381Z"
68964
+ },
68965
+ maxInputTokens: {
68966
+ value: 1e6,
68967
+ source: "official-doc",
68968
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — deepseek-v4-pro-202606 row lists maximum input 1M tokens; k/M expanded as decimal",
68969
+ confidence: "inferred",
68970
+ observedAt: "2026-09-25T12:31:56.381Z"
68971
+ },
68972
+ maxOutputTokens: {
68973
+ value: 384000,
68974
+ source: "official-doc",
68975
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — deepseek-v4-pro-202606 row lists maximum output 384k tokens; k/M expanded as decimal",
68976
+ confidence: "inferred",
68977
+ observedAt: "2026-09-25T12:31:56.381Z"
68978
+ },
67252
68979
  inputModalities: {
67253
68980
  value: [
67254
68981
  "text"
@@ -67312,6 +69039,27 @@ var catalog_default = {
67312
69039
  endpoints: [
67313
69040
  "chat"
67314
69041
  ],
69042
+ contextWindow: {
69043
+ value: 200000,
69044
+ source: "official-doc",
69045
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — glm-5 row lists context window 200k tokens; k/M expanded as decimal",
69046
+ confidence: "inferred",
69047
+ observedAt: "2026-09-25T12:31:56.381Z"
69048
+ },
69049
+ maxInputTokens: {
69050
+ value: 200000,
69051
+ source: "official-doc",
69052
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — glm-5 row lists maximum input 200k tokens; k/M expanded as decimal",
69053
+ confidence: "inferred",
69054
+ observedAt: "2026-09-25T12:31:56.381Z"
69055
+ },
69056
+ maxOutputTokens: {
69057
+ value: 128000,
69058
+ source: "official-doc",
69059
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — glm-5 row lists maximum output 128k tokens; k/M expanded as decimal",
69060
+ confidence: "inferred",
69061
+ observedAt: "2026-09-25T12:31:56.381Z"
69062
+ },
67315
69063
  inputModalities: {
67316
69064
  value: [
67317
69065
  "text"
@@ -67375,6 +69123,27 @@ var catalog_default = {
67375
69123
  endpoints: [
67376
69124
  "chat"
67377
69125
  ],
69126
+ contextWindow: {
69127
+ value: 200000,
69128
+ source: "official-doc",
69129
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — glm-5.1 row lists context window 200k tokens; k/M expanded as decimal",
69130
+ confidence: "inferred",
69131
+ observedAt: "2026-09-25T12:31:56.381Z"
69132
+ },
69133
+ maxInputTokens: {
69134
+ value: 200000,
69135
+ source: "official-doc",
69136
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — glm-5.1 row lists maximum input 200k tokens; k/M expanded as decimal",
69137
+ confidence: "inferred",
69138
+ observedAt: "2026-09-25T12:31:56.381Z"
69139
+ },
69140
+ maxOutputTokens: {
69141
+ value: 128000,
69142
+ source: "official-doc",
69143
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — glm-5.1 row lists maximum output 128k tokens; k/M expanded as decimal",
69144
+ confidence: "inferred",
69145
+ observedAt: "2026-09-25T12:31:56.381Z"
69146
+ },
67378
69147
  inputModalities: {
67379
69148
  value: [
67380
69149
  "text"
@@ -67438,6 +69207,27 @@ var catalog_default = {
67438
69207
  endpoints: [
67439
69208
  "chat"
67440
69209
  ],
69210
+ contextWindow: {
69211
+ value: 1e6,
69212
+ source: "official-doc",
69213
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — glm-5.2 row lists context window 1M tokens; k/M expanded as decimal",
69214
+ confidence: "inferred",
69215
+ observedAt: "2026-09-25T12:31:56.381Z"
69216
+ },
69217
+ maxInputTokens: {
69218
+ value: 1e6,
69219
+ source: "official-doc",
69220
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — glm-5.2 row lists maximum input 1M tokens; k/M expanded as decimal",
69221
+ confidence: "inferred",
69222
+ observedAt: "2026-09-25T12:31:56.381Z"
69223
+ },
69224
+ maxOutputTokens: {
69225
+ value: 128000,
69226
+ source: "official-doc",
69227
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — glm-5.2 row lists maximum output 128k tokens; k/M expanded as decimal",
69228
+ confidence: "inferred",
69229
+ observedAt: "2026-09-25T12:31:56.381Z"
69230
+ },
67441
69231
  inputModalities: {
67442
69232
  value: [
67443
69233
  "text"
@@ -67501,6 +69291,27 @@ var catalog_default = {
67501
69291
  endpoints: [
67502
69292
  "chat"
67503
69293
  ],
69294
+ contextWindow: {
69295
+ value: 1e6,
69296
+ source: "official-doc",
69297
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — glm-5.3 row lists context window 1M tokens; k/M expanded as decimal",
69298
+ confidence: "inferred",
69299
+ observedAt: "2026-09-25T12:31:56.381Z"
69300
+ },
69301
+ maxInputTokens: {
69302
+ value: 1e6,
69303
+ source: "official-doc",
69304
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — glm-5.3 row lists maximum input 1M tokens; k/M expanded as decimal",
69305
+ confidence: "inferred",
69306
+ observedAt: "2026-09-25T12:31:56.381Z"
69307
+ },
69308
+ maxOutputTokens: {
69309
+ value: 128000,
69310
+ source: "official-doc",
69311
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — glm-5.3 row lists maximum output 128k tokens; k/M expanded as decimal",
69312
+ confidence: "inferred",
69313
+ observedAt: "2026-09-25T12:31:56.381Z"
69314
+ },
67504
69315
  inputModalities: {
67505
69316
  value: [
67506
69317
  "text"
@@ -67562,6 +69373,27 @@ var catalog_default = {
67562
69373
  endpoints: [
67563
69374
  "chat"
67564
69375
  ],
69376
+ contextWindow: {
69377
+ value: 1e6,
69378
+ source: "official-doc",
69379
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — glm-5.3-flash row lists context window 1M tokens; k/M expanded as decimal",
69380
+ confidence: "inferred",
69381
+ observedAt: "2026-09-25T12:31:56.381Z"
69382
+ },
69383
+ maxInputTokens: {
69384
+ value: 1e6,
69385
+ source: "official-doc",
69386
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — glm-5.3-flash row lists maximum input 1M tokens; k/M expanded as decimal",
69387
+ confidence: "inferred",
69388
+ observedAt: "2026-09-25T12:31:56.381Z"
69389
+ },
69390
+ maxOutputTokens: {
69391
+ value: 128000,
69392
+ source: "official-doc",
69393
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — glm-5.3-flash row lists maximum output 128k tokens; k/M expanded as decimal",
69394
+ confidence: "inferred",
69395
+ observedAt: "2026-09-25T12:31:56.381Z"
69396
+ },
67565
69397
  inputModalities: {
67566
69398
  value: [
67567
69399
  "text"
@@ -67818,6 +69650,27 @@ var catalog_default = {
67818
69650
  endpoints: [
67819
69651
  "chat"
67820
69652
  ],
69653
+ contextWindow: {
69654
+ value: 256000,
69655
+ source: "official-doc",
69656
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — kimi-k2.7-code row lists context window 256k tokens; k/M expanded as decimal",
69657
+ confidence: "inferred",
69658
+ observedAt: "2026-09-25T12:31:56.381Z"
69659
+ },
69660
+ maxInputTokens: {
69661
+ value: 256000,
69662
+ source: "official-doc",
69663
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — kimi-k2.7-code row lists maximum input 256k tokens; k/M expanded as decimal",
69664
+ confidence: "inferred",
69665
+ observedAt: "2026-09-25T12:31:56.381Z"
69666
+ },
69667
+ maxOutputTokens: {
69668
+ value: 256000,
69669
+ source: "official-doc",
69670
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — kimi-k2.7-code row lists maximum output 256k tokens; k/M expanded as decimal",
69671
+ confidence: "inferred",
69672
+ observedAt: "2026-09-25T12:31:56.381Z"
69673
+ },
67821
69674
  inputModalities: {
67822
69675
  value: [
67823
69676
  "text"
@@ -67879,6 +69732,27 @@ var catalog_default = {
67879
69732
  endpoints: [
67880
69733
  "chat"
67881
69734
  ],
69735
+ contextWindow: {
69736
+ value: 1e6,
69737
+ source: "official-doc",
69738
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — kimi-k3 row lists context window 1M tokens; k/M expanded as decimal",
69739
+ confidence: "inferred",
69740
+ observedAt: "2026-09-25T12:31:56.381Z"
69741
+ },
69742
+ maxInputTokens: {
69743
+ value: 1e6,
69744
+ source: "official-doc",
69745
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — kimi-k3 row lists maximum input 1M tokens; k/M expanded as decimal",
69746
+ confidence: "inferred",
69747
+ observedAt: "2026-09-25T12:31:56.381Z"
69748
+ },
69749
+ maxOutputTokens: {
69750
+ value: 1e6,
69751
+ source: "official-doc",
69752
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — kimi-k3 row lists maximum output 1M tokens; k/M expanded as decimal",
69753
+ confidence: "inferred",
69754
+ observedAt: "2026-09-25T12:31:56.381Z"
69755
+ },
67882
69756
  inputModalities: {
67883
69757
  value: [
67884
69758
  "text"
@@ -67942,6 +69816,27 @@ var catalog_default = {
67942
69816
  endpoints: [
67943
69817
  "chat"
67944
69818
  ],
69819
+ contextWindow: {
69820
+ value: 200000,
69821
+ source: "official-doc",
69822
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — minimax-m2.7 row lists context window 200k tokens; k/M expanded as decimal",
69823
+ confidence: "inferred",
69824
+ observedAt: "2026-09-25T12:31:56.381Z"
69825
+ },
69826
+ maxInputTokens: {
69827
+ value: 200000,
69828
+ source: "official-doc",
69829
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — minimax-m2.7 row lists maximum input 200k tokens; k/M expanded as decimal",
69830
+ confidence: "inferred",
69831
+ observedAt: "2026-09-25T12:31:56.381Z"
69832
+ },
69833
+ maxOutputTokens: {
69834
+ value: 128000,
69835
+ source: "official-doc",
69836
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — minimax-m2.7 row lists maximum output 128k tokens; k/M expanded as decimal",
69837
+ confidence: "inferred",
69838
+ observedAt: "2026-09-25T12:31:56.381Z"
69839
+ },
67945
69840
  inputModalities: {
67946
69841
  value: [
67947
69842
  "text"
@@ -68005,6 +69900,20 @@ var catalog_default = {
68005
69900
  endpoints: [
68006
69901
  "chat"
68007
69902
  ],
69903
+ contextWindow: {
69904
+ value: 1e6,
69905
+ source: "official-doc",
69906
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — minimax-m3 row lists context window 1M tokens; k/M expanded as decimal",
69907
+ confidence: "inferred",
69908
+ observedAt: "2026-09-25T12:31:56.381Z"
69909
+ },
69910
+ maxInputTokens: {
69911
+ value: 1e6,
69912
+ source: "official-doc",
69913
+ sourceRef: "https://cloud.tencent.com/document/product/1823/130051 — minimax-m3 row lists maximum input 1M tokens; k/M expanded as decimal",
69914
+ confidence: "inferred",
69915
+ observedAt: "2026-09-25T12:31:56.381Z"
69916
+ },
68008
69917
  inputModalities: {
68009
69918
  value: [
68010
69919
  "text"
@@ -68552,14 +70461,14 @@ var catalog_default = {
68552
70461
  },
68553
70462
  pricing: {
68554
70463
  value: {
68555
- inputPerMTokUsd: 0.149,
68556
- outputPerMTokUsd: 0.596,
68557
- cacheReadPerMTokUsd: 0.03725
70464
+ inputPerMTokUsd: 0.132,
70465
+ outputPerMTokUsd: 0.528,
70466
+ cacheReadPerMTokUsd: 0.033
68558
70467
  },
68559
70468
  source: "official-doc",
68560
- sourceRef: "https://cloud.tencent.com/document/product/1823/130055 — hy3: CNY 1 input, 4 output, 0.25 cache hit per million tokens. Converted at 2026-09-25 1 CNY = $0.1490 (https://www.investing.com/currencies/cny-usd-historical-data).",
68561
- confidence: "inferred",
68562
- observedAt: "2026-09-25T10:06:30Z"
70469
+ sourceRef: "https://proxy-hk.tencentcloud.com/pt/document/product/1300/78937 — Singapore international USD list, hy3: $0.132 input/$0.528 output/$0.033 cache-hit per million tokens",
70470
+ confidence: "declared",
70471
+ observedAt: "2026-09-25T12:31:56.381Z"
68563
70472
  },
68564
70473
  unsupportedParameters: [],
68565
70474
  status: "candidate",
@@ -68655,14 +70564,14 @@ var catalog_default = {
68655
70564
  },
68656
70565
  pricing: {
68657
70566
  value: {
68658
- inputPerMTokUsd: 0.894,
68659
- outputPerMTokUsd: 2.682,
68660
- cacheReadPerMTokUsd: 0.0447
70567
+ inputPerMTokUsd: 0.834,
70568
+ outputPerMTokUsd: 2.501,
70569
+ cacheReadPerMTokUsd: 0.042
68661
70570
  },
68662
70571
  source: "official-doc",
68663
- sourceRef: "https://cloud.tencent.com/document/product/1823/130055 — hy4-preview: CNY 6 input, 18 output, 0.3 cache hit per million tokens. Converted at 2026-09-25 1 CNY = $0.1490 (https://www.investing.com/currencies/cny-usd-historical-data).",
68664
- confidence: "inferred",
68665
- observedAt: "2026-09-25T10:06:30Z"
70572
+ sourceRef: "https://proxy-hk.tencentcloud.com/pt/document/product/1300/78937 — Singapore international USD list, hy4-preview: $0.834 input/$2.501 output/$0.042 cache-hit per million tokens",
70573
+ confidence: "declared",
70574
+ observedAt: "2026-09-25T12:31:56.381Z"
68666
70575
  },
68667
70576
  unsupportedParameters: [],
68668
70577
  status: "candidate",
@@ -68762,14 +70671,14 @@ var catalog_default = {
68762
70671
  },
68763
70672
  pricing: {
68764
70673
  value: {
68765
- inputPerMTokUsd: 0.149,
68766
- outputPerMTokUsd: 0.596,
68767
- cacheReadPerMTokUsd: 0.03725
70674
+ inputPerMTokUsd: 0.132,
70675
+ outputPerMTokUsd: 0.528,
70676
+ cacheReadPerMTokUsd: 0.033
68768
70677
  },
68769
70678
  source: "official-doc",
68770
- sourceRef: "https://cloud.tencent.com/document/product/1823/130055 — hy3: CNY 1 input, 4 output, 0.25 cache hit per million tokens. Converted at 2026-09-25 1 CNY = $0.1490 (https://www.investing.com/currencies/cny-usd-historical-data).",
68771
- confidence: "inferred",
68772
- observedAt: "2026-09-25T10:06:30Z"
70679
+ sourceRef: "https://proxy-hk.tencentcloud.com/pt/document/product/1300/78937 — Singapore international USD list, hy3: $0.132 input/$0.528 output/$0.033 cache-hit per million tokens",
70680
+ confidence: "declared",
70681
+ observedAt: "2026-09-25T12:31:56.381Z"
68773
70682
  },
68774
70683
  unsupportedParameters: [],
68775
70684
  status: "candidate",
@@ -68869,14 +70778,14 @@ var catalog_default = {
68869
70778
  },
68870
70779
  pricing: {
68871
70780
  value: {
68872
- inputPerMTokUsd: 0.894,
68873
- outputPerMTokUsd: 2.682,
68874
- cacheReadPerMTokUsd: 0.0447
70781
+ inputPerMTokUsd: 0.834,
70782
+ outputPerMTokUsd: 2.501,
70783
+ cacheReadPerMTokUsd: 0.042
68875
70784
  },
68876
70785
  source: "official-doc",
68877
- sourceRef: "https://cloud.tencent.com/document/product/1823/130055 — hy4-preview: CNY 6 input, 18 output, 0.3 cache hit per million tokens. Converted at 2026-09-25 1 CNY = $0.1490 (https://www.investing.com/currencies/cny-usd-historical-data).",
68878
- confidence: "inferred",
68879
- observedAt: "2026-09-25T10:06:30Z"
70786
+ sourceRef: "https://proxy-hk.tencentcloud.com/pt/document/product/1300/78937 — Singapore international USD list, hy4-preview: $0.834 input/$2.501 output/$0.042 cache-hit per million tokens",
70787
+ confidence: "declared",
70788
+ observedAt: "2026-09-25T12:31:56.381Z"
68880
70789
  },
68881
70790
  unsupportedParameters: [],
68882
70791
  status: "candidate",
@@ -72973,7 +74882,8 @@ var catalog_default = {
72973
74882
  "grok-4.20-non-reasoning-gv2"
72974
74883
  ],
72975
74884
  endpoints: [
72976
- "chat"
74885
+ "chat",
74886
+ "responses"
72977
74887
  ],
72978
74888
  contextWindow: {
72979
74889
  value: 1e6,
@@ -73068,7 +74978,8 @@ var catalog_default = {
73068
74978
  "grok-4.20-reasoning-gv2"
73069
74979
  ],
73070
74980
  endpoints: [
73071
- "chat"
74981
+ "chat",
74982
+ "responses"
73072
74983
  ],
73073
74984
  contextWindow: {
73074
74985
  value: 1e6,
@@ -73133,7 +75044,7 @@ var catalog_default = {
73133
75044
  observedAt: "2026-09-25T08:40:00Z"
73134
75045
  },
73135
75046
  efforts: [],
73136
- continuation: "none"
75047
+ continuation: "opaque-provider-state"
73137
75048
  },
73138
75049
  pricing: {
73139
75050
  value: {
@@ -73151,6 +75062,111 @@ var catalog_default = {
73151
75062
  canonicalModelId: "grok-4.20-0309-reasoning",
73152
75063
  modelFamily: "grok"
73153
75064
  },
75065
+ {
75066
+ key: "xai/grok-4.20-multi-agent-0309",
75067
+ providerId: "xai",
75068
+ upstreamId: "grok-4.20-multi-agent-0309",
75069
+ displayName: "Grok 4.20 Multi-Agent Beta",
75070
+ aliases: [
75071
+ "grok-4.20-multi-agent",
75072
+ "grok-4.20-multi-agent-latest",
75073
+ "grok-4.20-multi-agent-beta-latest",
75074
+ "grok-4.20-multi-agent-experimental-beta-0304",
75075
+ "grok-4.20-multi-agent-experimental-beta-latest",
75076
+ "grok-4.20-multi-agent-beta-0309"
75077
+ ],
75078
+ endpoints: [
75079
+ "responses"
75080
+ ],
75081
+ contextWindow: {
75082
+ value: 1e6,
75083
+ source: "official-doc",
75084
+ sourceRef: "https://docs.x.ai/developers/models/grok-4.20-multi-agent-0309 — model page context window 1,000,000 tokens",
75085
+ confidence: "declared",
75086
+ observedAt: "2026-09-25T08:40:00Z"
75087
+ },
75088
+ inputModalities: {
75089
+ value: [
75090
+ "text",
75091
+ "image"
75092
+ ],
75093
+ source: "official-doc",
75094
+ sourceRef: "https://docs.x.ai/developers/models/grok-4.20-multi-agent-0309 — model page Modalities: Text, Image input",
75095
+ confidence: "declared",
75096
+ observedAt: "2026-09-25T08:40:00Z"
75097
+ },
75098
+ outputModalities: {
75099
+ value: [
75100
+ "text"
75101
+ ],
75102
+ source: "official-doc",
75103
+ sourceRef: "https://docs.x.ai/developers/models/grok-4.20-multi-agent-0309 — model page Modalities: Text output",
75104
+ confidence: "declared",
75105
+ observedAt: "2026-09-25T08:40:00Z"
75106
+ },
75107
+ toolCalling: {
75108
+ value: "none",
75109
+ source: "official-doc",
75110
+ sourceRef: "https://docs.x.ai/developers/model-capabilities/text/multi-agent — multi-agent limitations: client-side/custom function calling unsupported; built-in server tools only",
75111
+ confidence: "declared",
75112
+ observedAt: "2026-09-25T08:40:00Z"
75113
+ },
75114
+ nativeTools: {
75115
+ value: false,
75116
+ source: "official-doc",
75117
+ sourceRef: "https://docs.x.ai/developers/model-capabilities/text/multi-agent — client-side/custom function tools unsupported",
75118
+ confidence: "declared",
75119
+ observedAt: "2026-09-25T08:40:00Z"
75120
+ },
75121
+ structuredOutput: {
75122
+ value: true,
75123
+ source: "official-doc",
75124
+ sourceRef: "https://docs.x.ai/developers/models/grok-4.20-multi-agent-0309 — model page Structured outputs capability",
75125
+ confidence: "declared",
75126
+ observedAt: "2026-09-25T08:40:00Z"
75127
+ },
75128
+ promptCaching: {
75129
+ value: true,
75130
+ source: "official-doc",
75131
+ sourceRef: "https://docs.x.ai/developers/models/grok-4.20-multi-agent-0309 — model page lists Cached tokens input rate; prompt caching available",
75132
+ confidence: "declared",
75133
+ observedAt: "2026-09-25T08:40:00Z"
75134
+ },
75135
+ reasoning: {
75136
+ supported: {
75137
+ value: true,
75138
+ source: "official-doc",
75139
+ sourceRef: "https://docs.x.ai/developers/model-capabilities/text/multi-agent — reasoning.effort low/medium selects 4 agents, high/xhigh selects 16; previous_response_id supports multi-turn",
75140
+ confidence: "declared",
75141
+ observedAt: "2026-09-25T08:40:00Z"
75142
+ },
75143
+ efforts: [
75144
+ "low",
75145
+ "medium",
75146
+ "high",
75147
+ "xhigh"
75148
+ ],
75149
+ continuation: "opaque-provider-state"
75150
+ },
75151
+ pricing: {
75152
+ value: {
75153
+ inputPerMTokUsd: 1.25,
75154
+ outputPerMTokUsd: 2.5,
75155
+ cacheReadPerMTokUsd: 0.2
75156
+ },
75157
+ source: "official-doc",
75158
+ sourceRef: "https://docs.x.ai/developers/pricing — grok-4.20-multi-agent-0309 Standard global short-context rate (<200k prompt tokens): $1.25 input, $0.20 cached input, $2.50 output per 1M; >=200k the entire request is charged $2.50/$0.40/$5.00. US-regional 1.1x applies only to models currently on that endpoint, listed as grok-4.7 and grok-4.6; not this model (re-read 2026-09-25, WS-23).",
75159
+ confidence: "declared",
75160
+ observedAt: "2026-09-25T17:09:48Z"
75161
+ },
75162
+ unsupportedParameters: [
75163
+ "max_output_tokens",
75164
+ "tools"
75165
+ ],
75166
+ status: "candidate",
75167
+ canonicalModelId: "grok-4.20-multi-agent-0309",
75168
+ modelFamily: "grok"
75169
+ },
73154
75170
  {
73155
75171
  key: "xai/grok-4.3",
73156
75172
  providerId: "xai",
@@ -73160,7 +75176,8 @@ var catalog_default = {
73160
75176
  "grok-4.3-latest"
73161
75177
  ],
73162
75178
  endpoints: [
73163
- "chat"
75179
+ "chat",
75180
+ "responses"
73164
75181
  ],
73165
75182
  contextWindow: {
73166
75183
  value: 1e6,
@@ -73231,7 +75248,7 @@ var catalog_default = {
73231
75248
  "high",
73232
75249
  "xhigh"
73233
75250
  ],
73234
- continuation: "plaintext",
75251
+ continuation: "opaque-provider-state",
73235
75252
  defaultEffort: "low"
73236
75253
  },
73237
75254
  pricing: {
@@ -73241,9 +75258,9 @@ var catalog_default = {
73241
75258
  cacheReadPerMTokUsd: 0.2
73242
75259
  },
73243
75260
  source: "official-doc",
73244
- sourceRef: "https://docs.x.ai/developers/pricing — current global Standard Text API price table for grok-4.3; it charges the listed long-context rate for every token after the prompt reaches 200K and applies a 10% US-regional premium. This catalog records the standard short-context rate (retrieved 2026-09-19).",
75261
+ sourceRef: "https://docs.x.ai/developers/pricing — grok-4.3 Standard global short-context rate: $1.25 input/$2.5 output/$0.2 cached per million; long-context threshold 200K. US-regional 1.1x applies only to models currently on that endpoint, listed as grok-4.7 and grok-4.6; not grok-4.3.",
73245
75262
  confidence: "declared",
73246
- observedAt: "2026-09-19T00:00:00Z"
75263
+ observedAt: "2026-09-25T12:31:56.381Z"
73247
75264
  },
73248
75265
  unsupportedParameters: [],
73249
75266
  status: "candidate",
@@ -73260,7 +75277,8 @@ var catalog_default = {
73260
75277
  "grok-build-latest"
73261
75278
  ],
73262
75279
  endpoints: [
73263
- "chat"
75280
+ "chat",
75281
+ "responses"
73264
75282
  ],
73265
75283
  contextWindow: {
73266
75284
  value: 500000,
@@ -73329,7 +75347,7 @@ var catalog_default = {
73329
75347
  "medium",
73330
75348
  "high"
73331
75349
  ],
73332
- continuation: "plaintext",
75350
+ continuation: "opaque-provider-state",
73333
75351
  defaultEffort: "high"
73334
75352
  },
73335
75353
  pricing: {
@@ -73359,7 +75377,8 @@ var catalog_default = {
73359
75377
  displayName: "Grok 4.6",
73360
75378
  aliases: [],
73361
75379
  endpoints: [
73362
- "chat"
75380
+ "chat",
75381
+ "responses"
73363
75382
  ],
73364
75383
  contextWindow: {
73365
75384
  value: 500000,
@@ -73429,7 +75448,7 @@ var catalog_default = {
73429
75448
  "high",
73430
75449
  "xhigh"
73431
75450
  ],
73432
- continuation: "plaintext",
75451
+ continuation: "opaque-provider-state",
73433
75452
  defaultEffort: "high"
73434
75453
  },
73435
75454
  pricing: {
@@ -73459,7 +75478,8 @@ var catalog_default = {
73459
75478
  displayName: "Grok 4.7",
73460
75479
  aliases: [],
73461
75480
  endpoints: [
73462
- "chat"
75481
+ "chat",
75482
+ "responses"
73463
75483
  ],
73464
75484
  contextWindow: {
73465
75485
  value: 500000,
@@ -73529,8 +75549,29 @@ var catalog_default = {
73529
75549
  "high",
73530
75550
  "xhigh"
73531
75551
  ],
73532
- continuation: "plaintext",
73533
- defaultEffort: "high"
75552
+ continuation: "opaque-provider-state",
75553
+ defaultEffort: "high",
75554
+ readableState: {
75555
+ value: "summary",
75556
+ source: "official-doc",
75557
+ sourceRef: 'https://docs.x.ai/developers/model-capabilities/text/reasoning — "For `grok-4.7`, we expose summarizations of the model\'s internal reasoning" (Summarized Reasoning Content); https://docs.x.ai/developers/rest-api-reference/inference/responses — the example reasoning output item carries `summary: [{ type: "summary_text", … }]`',
75558
+ confidence: "declared",
75559
+ observedAt: "2026-09-25T17:09:48Z"
75560
+ },
75561
+ summaryRequest: {
75562
+ value: {
75563
+ field: "reasoning.summary",
75564
+ values: [
75565
+ "detailed",
75566
+ "auto",
75567
+ "concise"
75568
+ ]
75569
+ },
75570
+ source: "official-doc",
75571
+ sourceRef: 'https://docs.x.ai/developers/rest-api-reference/inference/responses — `reasoning.summary`: "Possible values are `auto`, `concise` and `detailed`. Only included for compatibility. The model shall always return `detailed`." `detailed` is listed FIRST because the adapter sends the first value, and it is the one the model returns regardless',
75572
+ confidence: "declared",
75573
+ observedAt: "2026-09-25T17:09:48Z"
75574
+ }
73534
75575
  },
73535
75576
  pricing: {
73536
75577
  value: {
@@ -73563,7 +75604,8 @@ var catalog_default = {
73563
75604
  "grok-code-fast-1-0825"
73564
75605
  ],
73565
75606
  endpoints: [
73566
- "chat"
75607
+ "chat",
75608
+ "responses"
73567
75609
  ],
73568
75610
  contextWindow: {
73569
75611
  value: 256000,
@@ -73628,7 +75670,7 @@ var catalog_default = {
73628
75670
  observedAt: "2026-09-25T08:40:00Z"
73629
75671
  },
73630
75672
  efforts: [],
73631
- continuation: "none"
75673
+ continuation: "opaque-provider-state"
73632
75674
  },
73633
75675
  pricing: {
73634
75676
  value: {
@@ -73637,9 +75679,9 @@ var catalog_default = {
73637
75679
  cacheReadPerMTokUsd: 0.2
73638
75680
  },
73639
75681
  source: "official-doc",
73640
- sourceRef: "https://docs.x.ai/developers/pricing — current global Standard Text API price table for grok-build-0.1; it charges the listed long-context rate for every token after the prompt reaches 200K and applies a 10% US-regional premium. This catalog records the standard short-context rate (retrieved 2026-09-19).",
75682
+ sourceRef: "https://docs.x.ai/developers/pricing — grok-build-0.1 Standard global short-context rate: $1 input/$2 output/$0.2 cached per million; long-context threshold 200K. US-regional 1.1x applies only to models currently on that endpoint, listed as grok-4.7 and grok-4.6; not grok-build-0.1.",
73641
75683
  confidence: "declared",
73642
- observedAt: "2026-09-19T00:00:00Z"
75684
+ observedAt: "2026-09-25T12:31:56.381Z"
73643
75685
  },
73644
75686
  unsupportedParameters: [],
73645
75687
  status: "candidate",
@@ -73741,7 +75783,7 @@ var catalog_default = {
73741
75783
  observedAt: "2026-09-25T09:52:37Z"
73742
75784
  },
73743
75785
  unsupportedParameters: [],
73744
- status: "deprecated",
75786
+ status: "candidate",
73745
75787
  canonicalModelId: "mimo-v2.5",
73746
75788
  modelFamily: "mimo"
73747
75789
  },
@@ -73837,7 +75879,7 @@ var catalog_default = {
73837
75879
  observedAt: "2026-09-25T09:52:37Z"
73838
75880
  },
73839
75881
  unsupportedParameters: [],
73840
- status: "deprecated",
75882
+ status: "candidate",
73841
75883
  canonicalModelId: "mimo-v2.5-pro",
73842
75884
  modelFamily: "mimo"
73843
75885
  },
@@ -74222,7 +76264,7 @@ var catalog_default = {
74222
76264
  continuation: "none"
74223
76265
  },
74224
76266
  unsupportedParameters: [],
74225
- status: "deprecated",
76267
+ status: "candidate",
74226
76268
  canonicalModelId: "mimo-v2.5",
74227
76269
  modelFamily: "mimo"
74228
76270
  },
@@ -74307,7 +76349,7 @@ var catalog_default = {
74307
76349
  continuation: "none"
74308
76350
  },
74309
76351
  unsupportedParameters: [],
74310
- status: "deprecated",
76352
+ status: "candidate",
74311
76353
  canonicalModelId: "mimo-v2.5-pro",
74312
76354
  modelFamily: "mimo"
74313
76355
  },
@@ -74571,7 +76613,7 @@ var catalog_default = {
74571
76613
  continuation: "none"
74572
76614
  },
74573
76615
  unsupportedParameters: [],
74574
- status: "deprecated",
76616
+ status: "candidate",
74575
76617
  canonicalModelId: "mimo-v2.5",
74576
76618
  modelFamily: "mimo"
74577
76619
  },
@@ -74656,7 +76698,7 @@ var catalog_default = {
74656
76698
  continuation: "none"
74657
76699
  },
74658
76700
  unsupportedParameters: [],
74659
- status: "deprecated",
76701
+ status: "candidate",
74660
76702
  canonicalModelId: "mimo-v2.5-pro",
74661
76703
  modelFamily: "mimo"
74662
76704
  },
@@ -74920,7 +76962,7 @@ var catalog_default = {
74920
76962
  continuation: "plaintext"
74921
76963
  },
74922
76964
  unsupportedParameters: [],
74923
- status: "deprecated",
76965
+ status: "candidate",
74924
76966
  canonicalModelId: "mimo-v2.5",
74925
76967
  modelFamily: "mimo"
74926
76968
  },
@@ -75005,7 +77047,7 @@ var catalog_default = {
75005
77047
  continuation: "plaintext"
75006
77048
  },
75007
77049
  unsupportedParameters: [],
75008
- status: "deprecated",
77050
+ status: "candidate",
75009
77051
  canonicalModelId: "mimo-v2.5-pro",
75010
77052
  modelFamily: "mimo"
75011
77053
  },
@@ -75269,7 +77311,7 @@ var catalog_default = {
75269
77311
  continuation: "none"
75270
77312
  },
75271
77313
  unsupportedParameters: [],
75272
- status: "deprecated",
77314
+ status: "candidate",
75273
77315
  canonicalModelId: "mimo-v2.5",
75274
77316
  modelFamily: "mimo"
75275
77317
  },
@@ -75354,7 +77396,7 @@ var catalog_default = {
75354
77396
  continuation: "none"
75355
77397
  },
75356
77398
  unsupportedParameters: [],
75357
- status: "deprecated",
77399
+ status: "candidate",
75358
77400
  canonicalModelId: "mimo-v2.5-pro",
75359
77401
  modelFamily: "mimo"
75360
77402
  },
@@ -75618,7 +77660,7 @@ var catalog_default = {
75618
77660
  continuation: "plaintext"
75619
77661
  },
75620
77662
  unsupportedParameters: [],
75621
- status: "deprecated",
77663
+ status: "candidate",
75622
77664
  canonicalModelId: "mimo-v2.5",
75623
77665
  modelFamily: "mimo"
75624
77666
  },
@@ -75703,7 +77745,7 @@ var catalog_default = {
75703
77745
  continuation: "plaintext"
75704
77746
  },
75705
77747
  unsupportedParameters: [],
75706
- status: "deprecated",
77748
+ status: "candidate",
75707
77749
  canonicalModelId: "mimo-v2.5-pro",
75708
77750
  modelFamily: "mimo"
75709
77751
  },
@@ -75967,7 +78009,7 @@ var catalog_default = {
75967
78009
  continuation: "plaintext"
75968
78010
  },
75969
78011
  unsupportedParameters: [],
75970
- status: "deprecated",
78012
+ status: "candidate",
75971
78013
  canonicalModelId: "mimo-v2.5",
75972
78014
  modelFamily: "mimo"
75973
78015
  },
@@ -76052,7 +78094,7 @@ var catalog_default = {
76052
78094
  continuation: "plaintext"
76053
78095
  },
76054
78096
  unsupportedParameters: [],
76055
- status: "deprecated",
78097
+ status: "candidate",
76056
78098
  canonicalModelId: "mimo-v2.5-pro",
76057
78099
  modelFamily: "mimo"
76058
78100
  },
@@ -76327,7 +78369,7 @@ var catalog_default = {
76327
78369
  observedAt: "2026-09-25T09:52:37Z"
76328
78370
  },
76329
78371
  unsupportedParameters: [],
76330
- status: "deprecated",
78372
+ status: "candidate",
76331
78373
  canonicalModelId: "mimo-v2.5",
76332
78374
  modelFamily: "mimo"
76333
78375
  },
@@ -76423,7 +78465,7 @@ var catalog_default = {
76423
78465
  observedAt: "2026-09-25T09:52:37Z"
76424
78466
  },
76425
78467
  unsupportedParameters: [],
76426
- status: "deprecated",
78468
+ status: "candidate",
76427
78469
  canonicalModelId: "mimo-v2.5-pro",
76428
78470
  modelFamily: "mimo"
76429
78471
  },
@@ -77691,6 +79733,13 @@ var catalog_default = {
77691
79733
  endpoints: [
77692
79734
  "chat"
77693
79735
  ],
79736
+ contextWindow: {
79737
+ value: 128000,
79738
+ source: "official-doc",
79739
+ sourceRef: "https://docs.z.ai/guides/llm/glm-4.5 — glm-4.5 model guide/table gives 128K context length; K expanded as 1,000 tokens",
79740
+ confidence: "inferred",
79741
+ observedAt: "2026-09-25T12:31:56.381Z"
79742
+ },
77694
79743
  maxOutputTokens: {
77695
79744
  value: 98304,
77696
79745
  source: "official-doc",
@@ -77773,6 +79822,13 @@ var catalog_default = {
77773
79822
  endpoints: [
77774
79823
  "chat"
77775
79824
  ],
79825
+ contextWindow: {
79826
+ value: 128000,
79827
+ source: "official-doc",
79828
+ sourceRef: "https://docs.z.ai/llms-full.txt — glm-4.5-air model guide/table gives 128K context length; K expanded as 1,000 tokens",
79829
+ confidence: "inferred",
79830
+ observedAt: "2026-09-25T12:31:56.381Z"
79831
+ },
77776
79832
  maxOutputTokens: {
77777
79833
  value: 98304,
77778
79834
  source: "official-doc",
@@ -77855,6 +79911,13 @@ var catalog_default = {
77855
79911
  endpoints: [
77856
79912
  "chat"
77857
79913
  ],
79914
+ contextWindow: {
79915
+ value: 200000,
79916
+ source: "official-doc",
79917
+ sourceRef: "https://docs.z.ai/guides/llm/glm-4.6 — glm-4.6 model guide/table gives 200K context length; K expanded as 1,000 tokens",
79918
+ confidence: "inferred",
79919
+ observedAt: "2026-09-25T12:31:56.381Z"
79920
+ },
77858
79921
  maxOutputTokens: {
77859
79922
  value: 131072,
77860
79923
  source: "official-doc",
@@ -77937,6 +80000,13 @@ var catalog_default = {
77937
80000
  endpoints: [
77938
80001
  "chat"
77939
80002
  ],
80003
+ contextWindow: {
80004
+ value: 200000,
80005
+ source: "official-doc",
80006
+ sourceRef: "https://docs.z.ai/guides/llm/glm-4.7 — glm-4.7 model guide/table gives 200K context length; K expanded as 1,000 tokens",
80007
+ confidence: "inferred",
80008
+ observedAt: "2026-09-25T12:31:56.381Z"
80009
+ },
77940
80010
  maxOutputTokens: {
77941
80011
  value: 131072,
77942
80012
  source: "official-doc",
@@ -78040,6 +80110,13 @@ var catalog_default = {
78040
80110
  endpoints: [
78041
80111
  "chat"
78042
80112
  ],
80113
+ contextWindow: {
80114
+ value: 200000,
80115
+ source: "official-doc",
80116
+ sourceRef: "https://docs.z.ai/llms-full.txt — glm-4.7-flash model guide/table gives 200K context length; K expanded as 1,000 tokens",
80117
+ confidence: "inferred",
80118
+ observedAt: "2026-09-25T12:31:56.381Z"
80119
+ },
78043
80120
  inputModalities: {
78044
80121
  value: [
78045
80122
  "text"
@@ -78129,6 +80206,13 @@ var catalog_default = {
78129
80206
  endpoints: [
78130
80207
  "chat"
78131
80208
  ],
80209
+ contextWindow: {
80210
+ value: 200000,
80211
+ source: "official-doc",
80212
+ sourceRef: "https://docs.z.ai/llms-full.txt — glm-4.7-flashx model guide/table gives 200K context length; K expanded as 1,000 tokens",
80213
+ confidence: "inferred",
80214
+ observedAt: "2026-09-25T12:31:56.381Z"
80215
+ },
78132
80216
  inputModalities: {
78133
80217
  value: [
78134
80218
  "text"
@@ -78204,6 +80288,13 @@ var catalog_default = {
78204
80288
  endpoints: [
78205
80289
  "chat"
78206
80290
  ],
80291
+ contextWindow: {
80292
+ value: 200000,
80293
+ source: "official-doc",
80294
+ sourceRef: "https://docs.z.ai/guides/llm/glm-5 — glm-5 model guide/table gives 200K context length; K expanded as 1,000 tokens",
80295
+ confidence: "inferred",
80296
+ observedAt: "2026-09-25T12:31:56.381Z"
80297
+ },
78207
80298
  maxOutputTokens: {
78208
80299
  value: 131072,
78209
80300
  source: "official-doc",
@@ -78307,6 +80398,13 @@ var catalog_default = {
78307
80398
  endpoints: [
78308
80399
  "chat"
78309
80400
  ],
80401
+ contextWindow: {
80402
+ value: 200000,
80403
+ source: "official-doc",
80404
+ sourceRef: "https://docs.z.ai/guides/llm/glm-5-turbo — glm-5-turbo model guide/table gives 200K context length; K expanded as 1,000 tokens",
80405
+ confidence: "inferred",
80406
+ observedAt: "2026-09-25T12:31:56.381Z"
80407
+ },
78310
80408
  inputModalities: {
78311
80409
  value: [
78312
80410
  "text"
@@ -78385,6 +80483,13 @@ var catalog_default = {
78385
80483
  endpoints: [
78386
80484
  "chat"
78387
80485
  ],
80486
+ contextWindow: {
80487
+ value: 200000,
80488
+ source: "official-doc",
80489
+ sourceRef: "https://docs.z.ai/guides/llm/glm-5.1 — glm-5.1 model guide/table gives 200K context length; K expanded as 1,000 tokens",
80490
+ confidence: "inferred",
80491
+ observedAt: "2026-09-25T12:31:56.381Z"
80492
+ },
78388
80493
  maxOutputTokens: {
78389
80494
  value: 131072,
78390
80495
  source: "official-doc",