@yanlinglabs/winter-provider-catalog 0.0.24 → 0.0.28
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/PROVENANCE.md +11 -1
- package/README.md +1 -1
- package/dist/index.js +1361 -26
- package/dist/types.d.ts +113 -0
- package/dist/validate.d.ts +4 -0
- package/generated/catalog.json +1322 -25
- package/overlay/models.json +1391 -96
- package/overlay/providers.json +4 -3
- package/package.json +1 -1
- package/schema/catalog.schema.json +55 -1
package/dist/index.js
CHANGED
|
@@ -50,6 +50,10 @@ var REPLAY_SCOPES = ["current-tool-loop", "current-turn", "selected-turns", "all
|
|
|
50
50
|
var TOOL_LOOP_REQUIREMENTS = ["hard-error", "silent-degradation", "not-required"];
|
|
51
51
|
var EFFORT_REQUEST_FIELDS = ["output_config.effort"];
|
|
52
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"];
|
|
53
57
|
var CATALOG_VOCABULARIES = {
|
|
54
58
|
protocols: PROTOCOLS,
|
|
55
59
|
authKinds: AUTH_KINDS,
|
|
@@ -75,7 +79,11 @@ var CATALOG_VOCABULARIES = {
|
|
|
75
79
|
replayScopes: REPLAY_SCOPES,
|
|
76
80
|
toolLoopRequirements: TOOL_LOOP_REQUIREMENTS,
|
|
77
81
|
effortRequestFields: EFFORT_REQUEST_FIELDS,
|
|
78
|
-
blockBindingBetas: BLOCK_BINDING_BETAS
|
|
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
|
|
79
87
|
};
|
|
80
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;
|
|
81
89
|
var SECRET_VALUE_PATTERNS = [
|
|
@@ -308,6 +316,17 @@ function checkReasoning(errs, v, path) {
|
|
|
308
316
|
if (typeof val["beta"] !== "string" || !BLOCK_BINDING_BETAS.includes(val["beta"]))
|
|
309
317
|
errs.add(`${p}.beta`, `unknown block-binding beta ${describe(val["beta"])}`);
|
|
310
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);
|
|
311
330
|
}
|
|
312
331
|
function checkProvider(errs, v, path) {
|
|
313
332
|
if (!isRecord(v)) {
|
|
@@ -548,6 +567,25 @@ function checkModel(errs, v, path) {
|
|
|
548
567
|
checkEvidence(errs, v["parallelTools"], `${path}.parallelTools`, evidenceBoolean, false);
|
|
549
568
|
checkEvidence(errs, v["structuredOutput"], `${path}.structuredOutput`, evidenceBoolean, false);
|
|
550
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["undeclaredToolCalls"], `${path}.undeclaredToolCalls`, evidenceBoolean, false);
|
|
588
|
+
checkEvidence(errs, v["assistantPrefill"], `${path}.assistantPrefill`, evidenceBoolean, false);
|
|
551
589
|
checkEvidence(errs, v["classifierEligible"], `${path}.classifierEligible`, evidenceBoolean, false);
|
|
552
590
|
checkEvidence(errs, v["pricing"], `${path}.pricing`, (val, p) => checkPricing(errs, val, p), false);
|
|
553
591
|
if (v["reasoning"] !== undefined)
|
|
@@ -7776,6 +7814,7 @@ var catalog_default = {
|
|
|
7776
7814
|
id: "xai",
|
|
7777
7815
|
displayName: "xAI (Grok)",
|
|
7778
7816
|
protocols: [
|
|
7817
|
+
"openai-responses",
|
|
7779
7818
|
"openai-chat-completions"
|
|
7780
7819
|
],
|
|
7781
7820
|
authKinds: [
|
|
@@ -7786,7 +7825,7 @@ var catalog_default = {
|
|
|
7786
7825
|
},
|
|
7787
7826
|
modelDiscovery: "openai-models",
|
|
7788
7827
|
liveCatalogAuthority: "unknown",
|
|
7789
|
-
adapterId: "winter.openai-
|
|
7828
|
+
adapterId: "winter.openai-responses",
|
|
7790
7829
|
family: "openai",
|
|
7791
7830
|
upstream: {
|
|
7792
7831
|
project: "winter",
|
|
@@ -15136,6 +15175,45 @@ var catalog_default = {
|
|
|
15136
15175
|
"thinking.type.disabled"
|
|
15137
15176
|
],
|
|
15138
15177
|
status: "candidate",
|
|
15178
|
+
deferredToolLoading: {
|
|
15179
|
+
value: true,
|
|
15180
|
+
source: "official-doc",
|
|
15181
|
+
confidence: "declared",
|
|
15182
|
+
observedAt: "2026-09-25T18:30:00Z",
|
|
15183
|
+
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).'
|
|
15184
|
+
},
|
|
15185
|
+
midConversationSystem: {
|
|
15186
|
+
value: true,
|
|
15187
|
+
source: "official-doc",
|
|
15188
|
+
confidence: "declared",
|
|
15189
|
+
observedAt: "2026-09-25T19:00:00Z",
|
|
15190
|
+
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."'
|
|
15191
|
+
},
|
|
15192
|
+
midConversationToolChanges: {
|
|
15193
|
+
value: {
|
|
15194
|
+
beta: "mid-conversation-tool-changes-2026-07-01"
|
|
15195
|
+
},
|
|
15196
|
+
source: "official-doc",
|
|
15197
|
+
confidence: "declared",
|
|
15198
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
15199
|
+
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).'
|
|
15200
|
+
},
|
|
15201
|
+
inlineToolDefinitions: {
|
|
15202
|
+
value: {
|
|
15203
|
+
beta: "inline-tools-2026-09-15"
|
|
15204
|
+
},
|
|
15205
|
+
source: "official-doc",
|
|
15206
|
+
confidence: "declared",
|
|
15207
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
15208
|
+
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.'
|
|
15209
|
+
},
|
|
15210
|
+
assistantPrefill: {
|
|
15211
|
+
value: false,
|
|
15212
|
+
source: "official-doc",
|
|
15213
|
+
confidence: "declared",
|
|
15214
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
15215
|
+
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."`
|
|
15216
|
+
},
|
|
15139
15217
|
canonicalModelId: "claude-fable-5",
|
|
15140
15218
|
modelFamily: "claude"
|
|
15141
15219
|
},
|
|
@@ -15286,6 +15364,15 @@ var catalog_default = {
|
|
|
15286
15364
|
confidence: "declared",
|
|
15287
15365
|
observedAt: "2026-09-25T13:00:00Z",
|
|
15288
15366
|
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").'
|
|
15367
|
+
},
|
|
15368
|
+
perMessageEffort: {
|
|
15369
|
+
value: {
|
|
15370
|
+
beta: "mid-conversation-output-config-2026-07-01"
|
|
15371
|
+
},
|
|
15372
|
+
source: "official-doc",
|
|
15373
|
+
confidence: "declared",
|
|
15374
|
+
observedAt: "2026-09-25T18:00:00Z",
|
|
15375
|
+
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.'
|
|
15289
15376
|
}
|
|
15290
15377
|
},
|
|
15291
15378
|
pricing: {
|
|
@@ -15307,6 +15394,45 @@ var catalog_default = {
|
|
|
15307
15394
|
"tool_choice.tool"
|
|
15308
15395
|
],
|
|
15309
15396
|
status: "candidate",
|
|
15397
|
+
deferredToolLoading: {
|
|
15398
|
+
value: true,
|
|
15399
|
+
source: "official-doc",
|
|
15400
|
+
confidence: "declared",
|
|
15401
|
+
observedAt: "2026-09-25T18:30:00Z",
|
|
15402
|
+
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).'
|
|
15403
|
+
},
|
|
15404
|
+
midConversationSystem: {
|
|
15405
|
+
value: true,
|
|
15406
|
+
source: "official-doc",
|
|
15407
|
+
confidence: "declared",
|
|
15408
|
+
observedAt: "2026-09-25T19:00:00Z",
|
|
15409
|
+
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."'
|
|
15410
|
+
},
|
|
15411
|
+
midConversationToolChanges: {
|
|
15412
|
+
value: {
|
|
15413
|
+
beta: "mid-conversation-tool-changes-2026-07-01"
|
|
15414
|
+
},
|
|
15415
|
+
source: "official-doc",
|
|
15416
|
+
confidence: "declared",
|
|
15417
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
15418
|
+
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).'
|
|
15419
|
+
},
|
|
15420
|
+
inlineToolDefinitions: {
|
|
15421
|
+
value: {
|
|
15422
|
+
beta: "inline-tools-2026-09-15"
|
|
15423
|
+
},
|
|
15424
|
+
source: "official-doc",
|
|
15425
|
+
confidence: "declared",
|
|
15426
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
15427
|
+
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.'
|
|
15428
|
+
},
|
|
15429
|
+
assistantPrefill: {
|
|
15430
|
+
value: false,
|
|
15431
|
+
source: "official-doc",
|
|
15432
|
+
confidence: "declared",
|
|
15433
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
15434
|
+
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."`
|
|
15435
|
+
},
|
|
15310
15436
|
canonicalModelId: "claude-fable-5.1",
|
|
15311
15437
|
modelFamily: "claude"
|
|
15312
15438
|
},
|
|
@@ -15405,6 +15531,13 @@ var catalog_default = {
|
|
|
15405
15531
|
"thinking.type.adaptive"
|
|
15406
15532
|
],
|
|
15407
15533
|
status: "candidate",
|
|
15534
|
+
deferredToolLoading: {
|
|
15535
|
+
value: true,
|
|
15536
|
+
source: "official-doc",
|
|
15537
|
+
confidence: "declared",
|
|
15538
|
+
observedAt: "2026-09-25T18:30:00Z",
|
|
15539
|
+
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).'
|
|
15540
|
+
},
|
|
15408
15541
|
canonicalModelId: "claude-haiku-4.5-20251001",
|
|
15409
15542
|
modelFamily: "claude"
|
|
15410
15543
|
},
|
|
@@ -15503,6 +15636,13 @@ var catalog_default = {
|
|
|
15503
15636
|
"thinking.type.adaptive"
|
|
15504
15637
|
],
|
|
15505
15638
|
status: "candidate",
|
|
15639
|
+
deferredToolLoading: {
|
|
15640
|
+
value: true,
|
|
15641
|
+
source: "official-doc",
|
|
15642
|
+
confidence: "declared",
|
|
15643
|
+
observedAt: "2026-09-25T18:30:00Z",
|
|
15644
|
+
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).'
|
|
15645
|
+
},
|
|
15506
15646
|
canonicalModelId: "claude-haiku-4.5",
|
|
15507
15647
|
modelFamily: "claude"
|
|
15508
15648
|
},
|
|
@@ -15627,6 +15767,13 @@ var catalog_default = {
|
|
|
15627
15767
|
"thinking.type.adaptive"
|
|
15628
15768
|
],
|
|
15629
15769
|
status: "candidate",
|
|
15770
|
+
deferredToolLoading: {
|
|
15771
|
+
value: true,
|
|
15772
|
+
source: "official-doc",
|
|
15773
|
+
confidence: "declared",
|
|
15774
|
+
observedAt: "2026-09-25T18:30:00Z",
|
|
15775
|
+
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).'
|
|
15776
|
+
},
|
|
15630
15777
|
canonicalModelId: "claude-opus-4.5",
|
|
15631
15778
|
modelFamily: "claude"
|
|
15632
15779
|
},
|
|
@@ -15635,7 +15782,9 @@ var catalog_default = {
|
|
|
15635
15782
|
providerId: "anthropic",
|
|
15636
15783
|
upstreamId: "claude-opus-4.6",
|
|
15637
15784
|
displayName: "Claude Opus 4.6",
|
|
15638
|
-
aliases: [
|
|
15785
|
+
aliases: [
|
|
15786
|
+
"claude-opus-4-6"
|
|
15787
|
+
],
|
|
15639
15788
|
endpoints: [
|
|
15640
15789
|
"chat"
|
|
15641
15790
|
],
|
|
@@ -15747,6 +15896,20 @@ var catalog_default = {
|
|
|
15747
15896
|
},
|
|
15748
15897
|
unsupportedParameters: [],
|
|
15749
15898
|
status: "candidate",
|
|
15899
|
+
deferredToolLoading: {
|
|
15900
|
+
value: true,
|
|
15901
|
+
source: "official-doc",
|
|
15902
|
+
confidence: "declared",
|
|
15903
|
+
observedAt: "2026-09-25T18:30:00Z",
|
|
15904
|
+
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).'
|
|
15905
|
+
},
|
|
15906
|
+
assistantPrefill: {
|
|
15907
|
+
value: false,
|
|
15908
|
+
source: "official-doc",
|
|
15909
|
+
confidence: "declared",
|
|
15910
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
15911
|
+
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."`
|
|
15912
|
+
},
|
|
15750
15913
|
canonicalModelId: "claude-opus-4.6",
|
|
15751
15914
|
modelFamily: "claude"
|
|
15752
15915
|
},
|
|
@@ -15755,7 +15918,9 @@ var catalog_default = {
|
|
|
15755
15918
|
providerId: "anthropic",
|
|
15756
15919
|
upstreamId: "claude-opus-4.7",
|
|
15757
15920
|
displayName: "Claude Opus 4.7",
|
|
15758
|
-
aliases: [
|
|
15921
|
+
aliases: [
|
|
15922
|
+
"claude-opus-4-7"
|
|
15923
|
+
],
|
|
15759
15924
|
endpoints: [
|
|
15760
15925
|
"chat"
|
|
15761
15926
|
],
|
|
@@ -15873,6 +16038,20 @@ var catalog_default = {
|
|
|
15873
16038
|
"thinking.type.enabled"
|
|
15874
16039
|
],
|
|
15875
16040
|
status: "candidate",
|
|
16041
|
+
deferredToolLoading: {
|
|
16042
|
+
value: true,
|
|
16043
|
+
source: "official-doc",
|
|
16044
|
+
confidence: "declared",
|
|
16045
|
+
observedAt: "2026-09-25T18:30:00Z",
|
|
16046
|
+
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).'
|
|
16047
|
+
},
|
|
16048
|
+
assistantPrefill: {
|
|
16049
|
+
value: false,
|
|
16050
|
+
source: "official-doc",
|
|
16051
|
+
confidence: "declared",
|
|
16052
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
16053
|
+
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."`
|
|
16054
|
+
},
|
|
15876
16055
|
canonicalModelId: "claude-opus-4.7",
|
|
15877
16056
|
modelFamily: "claude"
|
|
15878
16057
|
},
|
|
@@ -15881,7 +16060,9 @@ var catalog_default = {
|
|
|
15881
16060
|
providerId: "anthropic",
|
|
15882
16061
|
upstreamId: "claude-opus-4.8",
|
|
15883
16062
|
displayName: "Claude Opus 4.8",
|
|
15884
|
-
aliases: [
|
|
16063
|
+
aliases: [
|
|
16064
|
+
"claude-opus-4-8"
|
|
16065
|
+
],
|
|
15885
16066
|
endpoints: [
|
|
15886
16067
|
"chat"
|
|
15887
16068
|
],
|
|
@@ -15999,6 +16180,45 @@ var catalog_default = {
|
|
|
15999
16180
|
"thinking.type.enabled"
|
|
16000
16181
|
],
|
|
16001
16182
|
status: "candidate",
|
|
16183
|
+
deferredToolLoading: {
|
|
16184
|
+
value: true,
|
|
16185
|
+
source: "official-doc",
|
|
16186
|
+
confidence: "declared",
|
|
16187
|
+
observedAt: "2026-09-25T18:30:00Z",
|
|
16188
|
+
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).'
|
|
16189
|
+
},
|
|
16190
|
+
midConversationSystem: {
|
|
16191
|
+
value: true,
|
|
16192
|
+
source: "official-doc",
|
|
16193
|
+
confidence: "declared",
|
|
16194
|
+
observedAt: "2026-09-25T19:00:00Z",
|
|
16195
|
+
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."'
|
|
16196
|
+
},
|
|
16197
|
+
midConversationToolChanges: {
|
|
16198
|
+
value: {
|
|
16199
|
+
beta: "mid-conversation-tool-changes-2026-07-01"
|
|
16200
|
+
},
|
|
16201
|
+
source: "official-doc",
|
|
16202
|
+
confidence: "declared",
|
|
16203
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
16204
|
+
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).'
|
|
16205
|
+
},
|
|
16206
|
+
inlineToolDefinitions: {
|
|
16207
|
+
value: {
|
|
16208
|
+
beta: "inline-tools-2026-09-15"
|
|
16209
|
+
},
|
|
16210
|
+
source: "official-doc",
|
|
16211
|
+
confidence: "declared",
|
|
16212
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
16213
|
+
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.'
|
|
16214
|
+
},
|
|
16215
|
+
assistantPrefill: {
|
|
16216
|
+
value: false,
|
|
16217
|
+
source: "official-doc",
|
|
16218
|
+
confidence: "declared",
|
|
16219
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
16220
|
+
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."`
|
|
16221
|
+
},
|
|
16002
16222
|
canonicalModelId: "claude-opus-4.8",
|
|
16003
16223
|
modelFamily: "claude"
|
|
16004
16224
|
},
|
|
@@ -16147,6 +16367,15 @@ var catalog_default = {
|
|
|
16147
16367
|
confidence: "declared",
|
|
16148
16368
|
observedAt: "2026-09-25T12:30:00Z",
|
|
16149
16369
|
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)."
|
|
16370
|
+
},
|
|
16371
|
+
perMessageEffort: {
|
|
16372
|
+
value: {
|
|
16373
|
+
beta: "mid-conversation-output-config-2026-07-01"
|
|
16374
|
+
},
|
|
16375
|
+
source: "official-doc",
|
|
16376
|
+
confidence: "declared",
|
|
16377
|
+
observedAt: "2026-09-25T18:00:00Z",
|
|
16378
|
+
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.'
|
|
16150
16379
|
}
|
|
16151
16380
|
},
|
|
16152
16381
|
pricing: {
|
|
@@ -16165,9 +16394,50 @@ var catalog_default = {
|
|
|
16165
16394
|
"temperature",
|
|
16166
16395
|
"top_p",
|
|
16167
16396
|
"top_k",
|
|
16168
|
-
"thinking.type.enabled"
|
|
16397
|
+
"thinking.type.enabled",
|
|
16398
|
+
"thinking.type.disabled+output_config.effort.xhigh",
|
|
16399
|
+
"thinking.type.disabled+output_config.effort.max"
|
|
16169
16400
|
],
|
|
16170
16401
|
status: "candidate",
|
|
16402
|
+
deferredToolLoading: {
|
|
16403
|
+
value: true,
|
|
16404
|
+
source: "official-doc",
|
|
16405
|
+
confidence: "declared",
|
|
16406
|
+
observedAt: "2026-09-25T18:30:00Z",
|
|
16407
|
+
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).'
|
|
16408
|
+
},
|
|
16409
|
+
midConversationSystem: {
|
|
16410
|
+
value: true,
|
|
16411
|
+
source: "official-doc",
|
|
16412
|
+
confidence: "declared",
|
|
16413
|
+
observedAt: "2026-09-25T19:00:00Z",
|
|
16414
|
+
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."'
|
|
16415
|
+
},
|
|
16416
|
+
midConversationToolChanges: {
|
|
16417
|
+
value: {
|
|
16418
|
+
beta: "mid-conversation-tool-changes-2026-07-01"
|
|
16419
|
+
},
|
|
16420
|
+
source: "official-doc",
|
|
16421
|
+
confidence: "declared",
|
|
16422
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
16423
|
+
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).'
|
|
16424
|
+
},
|
|
16425
|
+
inlineToolDefinitions: {
|
|
16426
|
+
value: {
|
|
16427
|
+
beta: "inline-tools-2026-09-15"
|
|
16428
|
+
},
|
|
16429
|
+
source: "official-doc",
|
|
16430
|
+
confidence: "declared",
|
|
16431
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
16432
|
+
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.'
|
|
16433
|
+
},
|
|
16434
|
+
assistantPrefill: {
|
|
16435
|
+
value: false,
|
|
16436
|
+
source: "official-doc",
|
|
16437
|
+
confidence: "declared",
|
|
16438
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
16439
|
+
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."`
|
|
16440
|
+
},
|
|
16171
16441
|
canonicalModelId: "claude-opus-5",
|
|
16172
16442
|
modelFamily: "claude"
|
|
16173
16443
|
},
|
|
@@ -16327,6 +16597,15 @@ var catalog_default = {
|
|
|
16327
16597
|
confidence: "declared",
|
|
16328
16598
|
observedAt: "2026-09-25T13:00:00Z",
|
|
16329
16599
|
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").'
|
|
16600
|
+
},
|
|
16601
|
+
perMessageEffort: {
|
|
16602
|
+
value: {
|
|
16603
|
+
beta: "mid-conversation-output-config-2026-07-01"
|
|
16604
|
+
},
|
|
16605
|
+
source: "official-doc",
|
|
16606
|
+
confidence: "declared",
|
|
16607
|
+
observedAt: "2026-09-25T18:00:00Z",
|
|
16608
|
+
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.'
|
|
16330
16609
|
}
|
|
16331
16610
|
},
|
|
16332
16611
|
pricing: {
|
|
@@ -16348,6 +16627,52 @@ var catalog_default = {
|
|
|
16348
16627
|
"tool_choice.tool"
|
|
16349
16628
|
],
|
|
16350
16629
|
status: "candidate",
|
|
16630
|
+
deferredToolLoading: {
|
|
16631
|
+
value: true,
|
|
16632
|
+
source: "official-doc",
|
|
16633
|
+
confidence: "declared",
|
|
16634
|
+
observedAt: "2026-09-25T18:30:00Z",
|
|
16635
|
+
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).'
|
|
16636
|
+
},
|
|
16637
|
+
midConversationSystem: {
|
|
16638
|
+
value: true,
|
|
16639
|
+
source: "official-doc",
|
|
16640
|
+
confidence: "declared",
|
|
16641
|
+
observedAt: "2026-09-25T19:00:00Z",
|
|
16642
|
+
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."'
|
|
16643
|
+
},
|
|
16644
|
+
midConversationToolChanges: {
|
|
16645
|
+
value: {
|
|
16646
|
+
beta: "mid-conversation-tool-changes-2026-07-01"
|
|
16647
|
+
},
|
|
16648
|
+
source: "official-doc",
|
|
16649
|
+
confidence: "declared",
|
|
16650
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
16651
|
+
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).'
|
|
16652
|
+
},
|
|
16653
|
+
inlineToolDefinitions: {
|
|
16654
|
+
value: {
|
|
16655
|
+
beta: "inline-tools-2026-09-15"
|
|
16656
|
+
},
|
|
16657
|
+
source: "official-doc",
|
|
16658
|
+
confidence: "declared",
|
|
16659
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
16660
|
+
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.'
|
|
16661
|
+
},
|
|
16662
|
+
assistantPrefill: {
|
|
16663
|
+
value: false,
|
|
16664
|
+
source: "official-doc",
|
|
16665
|
+
confidence: "declared",
|
|
16666
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
16667
|
+
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."`
|
|
16668
|
+
},
|
|
16669
|
+
undeclaredToolCalls: {
|
|
16670
|
+
value: true,
|
|
16671
|
+
source: "live-probe",
|
|
16672
|
+
sourceRef: "scripts/probe-fork-undeclared-tool.ts (WS-24), run live 2026-09-26: A -- a call to a tool absent from `tools` and its result in the history -> 200; B -- a ToolSearch result carrying the definition as text -> the model called the undeclared tool; C -- that call and its result fed back -> 200",
|
|
16673
|
+
confidence: "verified",
|
|
16674
|
+
observedAt: "2026-09-26T00:00:00Z"
|
|
16675
|
+
},
|
|
16351
16676
|
canonicalModelId: "claude-opus-5.5",
|
|
16352
16677
|
modelFamily: "claude"
|
|
16353
16678
|
},
|
|
@@ -16463,6 +16788,13 @@ var catalog_default = {
|
|
|
16463
16788
|
"thinking.type.adaptive"
|
|
16464
16789
|
],
|
|
16465
16790
|
status: "candidate",
|
|
16791
|
+
deferredToolLoading: {
|
|
16792
|
+
value: true,
|
|
16793
|
+
source: "official-doc",
|
|
16794
|
+
confidence: "declared",
|
|
16795
|
+
observedAt: "2026-09-25T18:30:00Z",
|
|
16796
|
+
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).'
|
|
16797
|
+
},
|
|
16466
16798
|
canonicalModelId: "claude-sonnet-4.5",
|
|
16467
16799
|
modelFamily: "claude"
|
|
16468
16800
|
},
|
|
@@ -16471,7 +16803,9 @@ var catalog_default = {
|
|
|
16471
16803
|
providerId: "anthropic",
|
|
16472
16804
|
upstreamId: "claude-sonnet-4.6",
|
|
16473
16805
|
displayName: "Claude Sonnet 4.6",
|
|
16474
|
-
aliases: [
|
|
16806
|
+
aliases: [
|
|
16807
|
+
"claude-sonnet-4-6"
|
|
16808
|
+
],
|
|
16475
16809
|
endpoints: [
|
|
16476
16810
|
"chat"
|
|
16477
16811
|
],
|
|
@@ -16583,6 +16917,13 @@ var catalog_default = {
|
|
|
16583
16917
|
},
|
|
16584
16918
|
unsupportedParameters: [],
|
|
16585
16919
|
status: "candidate",
|
|
16920
|
+
deferredToolLoading: {
|
|
16921
|
+
value: true,
|
|
16922
|
+
source: "official-doc",
|
|
16923
|
+
confidence: "declared",
|
|
16924
|
+
observedAt: "2026-09-25T18:30:00Z",
|
|
16925
|
+
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).'
|
|
16926
|
+
},
|
|
16586
16927
|
canonicalModelId: "claude-sonnet-4.6",
|
|
16587
16928
|
modelFamily: "claude"
|
|
16588
16929
|
},
|
|
@@ -16754,6 +17095,20 @@ var catalog_default = {
|
|
|
16754
17095
|
"thinking.type.enabled"
|
|
16755
17096
|
],
|
|
16756
17097
|
status: "candidate",
|
|
17098
|
+
assistantPrefill: {
|
|
17099
|
+
value: false,
|
|
17100
|
+
source: "official-doc",
|
|
17101
|
+
confidence: "declared",
|
|
17102
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
17103
|
+
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."`
|
|
17104
|
+
},
|
|
17105
|
+
undeclaredToolCalls: {
|
|
17106
|
+
value: true,
|
|
17107
|
+
source: "live-probe",
|
|
17108
|
+
sourceRef: "scripts/probe-fork-undeclared-tool.ts (WS-24), run live 2026-09-26: A -- a call to a tool absent from `tools` and its result in the history -> 200; B -- a ToolSearch result carrying the definition as text -> the model called the undeclared tool; C -- that call and its result fed back -> 200",
|
|
17109
|
+
confidence: "verified",
|
|
17110
|
+
observedAt: "2026-09-26T00:00:00Z"
|
|
17111
|
+
},
|
|
16757
17112
|
canonicalModelId: "claude-sonnet-5",
|
|
16758
17113
|
modelFamily: "claude"
|
|
16759
17114
|
},
|
|
@@ -25957,6 +26312,20 @@ var catalog_default = {
|
|
|
25957
26312
|
},
|
|
25958
26313
|
unsupportedParameters: [],
|
|
25959
26314
|
status: "candidate",
|
|
26315
|
+
promptCacheKey: {
|
|
26316
|
+
value: true,
|
|
26317
|
+
source: "official-doc",
|
|
26318
|
+
confidence: "declared",
|
|
26319
|
+
observedAt: "2026-09-25T19:30:00Z",
|
|
26320
|
+
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."
|
|
26321
|
+
},
|
|
26322
|
+
clientToolSearch: {
|
|
26323
|
+
value: true,
|
|
26324
|
+
source: "upstream-static",
|
|
26325
|
+
confidence: "declared",
|
|
26326
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
26327
|
+
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."
|
|
26328
|
+
},
|
|
25960
26329
|
canonicalModelId: "gpt-5.6-luna",
|
|
25961
26330
|
modelFamily: "gpt"
|
|
25962
26331
|
},
|
|
@@ -26064,6 +26433,20 @@ var catalog_default = {
|
|
|
26064
26433
|
},
|
|
26065
26434
|
unsupportedParameters: [],
|
|
26066
26435
|
status: "candidate",
|
|
26436
|
+
promptCacheKey: {
|
|
26437
|
+
value: true,
|
|
26438
|
+
source: "official-doc",
|
|
26439
|
+
confidence: "declared",
|
|
26440
|
+
observedAt: "2026-09-25T19:30:00Z",
|
|
26441
|
+
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."
|
|
26442
|
+
},
|
|
26443
|
+
clientToolSearch: {
|
|
26444
|
+
value: true,
|
|
26445
|
+
source: "upstream-static",
|
|
26446
|
+
confidence: "declared",
|
|
26447
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
26448
|
+
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."
|
|
26449
|
+
},
|
|
26067
26450
|
canonicalModelId: "gpt-5.6-sol",
|
|
26068
26451
|
modelFamily: "gpt"
|
|
26069
26452
|
},
|
|
@@ -26171,6 +26554,20 @@ var catalog_default = {
|
|
|
26171
26554
|
},
|
|
26172
26555
|
unsupportedParameters: [],
|
|
26173
26556
|
status: "candidate",
|
|
26557
|
+
promptCacheKey: {
|
|
26558
|
+
value: true,
|
|
26559
|
+
source: "official-doc",
|
|
26560
|
+
confidence: "declared",
|
|
26561
|
+
observedAt: "2026-09-25T19:30:00Z",
|
|
26562
|
+
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."
|
|
26563
|
+
},
|
|
26564
|
+
clientToolSearch: {
|
|
26565
|
+
value: true,
|
|
26566
|
+
source: "upstream-static",
|
|
26567
|
+
confidence: "declared",
|
|
26568
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
26569
|
+
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."
|
|
26570
|
+
},
|
|
26174
26571
|
canonicalModelId: "gpt-5.6-terra",
|
|
26175
26572
|
modelFamily: "gpt"
|
|
26176
26573
|
},
|
|
@@ -26280,6 +26677,20 @@ var catalog_default = {
|
|
|
26280
26677
|
},
|
|
26281
26678
|
unsupportedParameters: [],
|
|
26282
26679
|
status: "candidate",
|
|
26680
|
+
promptCacheKey: {
|
|
26681
|
+
value: true,
|
|
26682
|
+
source: "official-doc",
|
|
26683
|
+
confidence: "declared",
|
|
26684
|
+
observedAt: "2026-09-25T19:30:00Z",
|
|
26685
|
+
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."
|
|
26686
|
+
},
|
|
26687
|
+
clientToolSearch: {
|
|
26688
|
+
value: true,
|
|
26689
|
+
source: "upstream-static",
|
|
26690
|
+
confidence: "declared",
|
|
26691
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
26692
|
+
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."
|
|
26693
|
+
},
|
|
26283
26694
|
canonicalModelId: "gpt-6-astra",
|
|
26284
26695
|
modelFamily: "gpt"
|
|
26285
26696
|
},
|
|
@@ -26389,6 +26800,20 @@ var catalog_default = {
|
|
|
26389
26800
|
},
|
|
26390
26801
|
unsupportedParameters: [],
|
|
26391
26802
|
status: "candidate",
|
|
26803
|
+
promptCacheKey: {
|
|
26804
|
+
value: true,
|
|
26805
|
+
source: "official-doc",
|
|
26806
|
+
confidence: "declared",
|
|
26807
|
+
observedAt: "2026-09-25T19:30:00Z",
|
|
26808
|
+
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."
|
|
26809
|
+
},
|
|
26810
|
+
clientToolSearch: {
|
|
26811
|
+
value: true,
|
|
26812
|
+
source: "upstream-static",
|
|
26813
|
+
confidence: "declared",
|
|
26814
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
26815
|
+
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."
|
|
26816
|
+
},
|
|
26392
26817
|
canonicalModelId: "gpt-6-luna",
|
|
26393
26818
|
modelFamily: "gpt"
|
|
26394
26819
|
},
|
|
@@ -26498,6 +26923,20 @@ var catalog_default = {
|
|
|
26498
26923
|
},
|
|
26499
26924
|
unsupportedParameters: [],
|
|
26500
26925
|
status: "candidate",
|
|
26926
|
+
promptCacheKey: {
|
|
26927
|
+
value: true,
|
|
26928
|
+
source: "official-doc",
|
|
26929
|
+
confidence: "declared",
|
|
26930
|
+
observedAt: "2026-09-25T19:30:00Z",
|
|
26931
|
+
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."
|
|
26932
|
+
},
|
|
26933
|
+
clientToolSearch: {
|
|
26934
|
+
value: true,
|
|
26935
|
+
source: "upstream-static",
|
|
26936
|
+
confidence: "declared",
|
|
26937
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
26938
|
+
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."
|
|
26939
|
+
},
|
|
26501
26940
|
canonicalModelId: "gpt-6-sol",
|
|
26502
26941
|
modelFamily: "gpt"
|
|
26503
26942
|
},
|
|
@@ -27241,6 +27680,45 @@ var catalog_default = {
|
|
|
27241
27680
|
"thinking.type.disabled"
|
|
27242
27681
|
],
|
|
27243
27682
|
status: "candidate",
|
|
27683
|
+
deferredToolLoading: {
|
|
27684
|
+
value: true,
|
|
27685
|
+
source: "official-doc",
|
|
27686
|
+
confidence: "declared",
|
|
27687
|
+
observedAt: "2026-09-25T18:30:00Z",
|
|
27688
|
+
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).'
|
|
27689
|
+
},
|
|
27690
|
+
midConversationSystem: {
|
|
27691
|
+
value: true,
|
|
27692
|
+
source: "official-doc",
|
|
27693
|
+
confidence: "declared",
|
|
27694
|
+
observedAt: "2026-09-25T19:00:00Z",
|
|
27695
|
+
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."'
|
|
27696
|
+
},
|
|
27697
|
+
midConversationToolChanges: {
|
|
27698
|
+
value: {
|
|
27699
|
+
beta: "mid-conversation-tool-changes-2026-07-01"
|
|
27700
|
+
},
|
|
27701
|
+
source: "official-doc",
|
|
27702
|
+
confidence: "declared",
|
|
27703
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
27704
|
+
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).'
|
|
27705
|
+
},
|
|
27706
|
+
inlineToolDefinitions: {
|
|
27707
|
+
value: {
|
|
27708
|
+
beta: "inline-tools-2026-09-15"
|
|
27709
|
+
},
|
|
27710
|
+
source: "official-doc",
|
|
27711
|
+
confidence: "declared",
|
|
27712
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
27713
|
+
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.'
|
|
27714
|
+
},
|
|
27715
|
+
assistantPrefill: {
|
|
27716
|
+
value: false,
|
|
27717
|
+
source: "official-doc",
|
|
27718
|
+
confidence: "declared",
|
|
27719
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
27720
|
+
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."`
|
|
27721
|
+
},
|
|
27244
27722
|
canonicalModelId: "claude-fable-5",
|
|
27245
27723
|
modelFamily: "claude"
|
|
27246
27724
|
},
|
|
@@ -27391,6 +27869,15 @@ var catalog_default = {
|
|
|
27391
27869
|
confidence: "declared",
|
|
27392
27870
|
observedAt: "2026-09-25T13:00:00Z",
|
|
27393
27871
|
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").'
|
|
27872
|
+
},
|
|
27873
|
+
perMessageEffort: {
|
|
27874
|
+
value: {
|
|
27875
|
+
beta: "mid-conversation-output-config-2026-07-01"
|
|
27876
|
+
},
|
|
27877
|
+
source: "official-doc",
|
|
27878
|
+
confidence: "declared",
|
|
27879
|
+
observedAt: "2026-09-25T18:00:00Z",
|
|
27880
|
+
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.'
|
|
27394
27881
|
}
|
|
27395
27882
|
},
|
|
27396
27883
|
pricing: {
|
|
@@ -27412,6 +27899,45 @@ var catalog_default = {
|
|
|
27412
27899
|
"tool_choice.tool"
|
|
27413
27900
|
],
|
|
27414
27901
|
status: "candidate",
|
|
27902
|
+
deferredToolLoading: {
|
|
27903
|
+
value: true,
|
|
27904
|
+
source: "official-doc",
|
|
27905
|
+
confidence: "declared",
|
|
27906
|
+
observedAt: "2026-09-25T18:30:00Z",
|
|
27907
|
+
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).'
|
|
27908
|
+
},
|
|
27909
|
+
midConversationSystem: {
|
|
27910
|
+
value: true,
|
|
27911
|
+
source: "official-doc",
|
|
27912
|
+
confidence: "declared",
|
|
27913
|
+
observedAt: "2026-09-25T19:00:00Z",
|
|
27914
|
+
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."'
|
|
27915
|
+
},
|
|
27916
|
+
midConversationToolChanges: {
|
|
27917
|
+
value: {
|
|
27918
|
+
beta: "mid-conversation-tool-changes-2026-07-01"
|
|
27919
|
+
},
|
|
27920
|
+
source: "official-doc",
|
|
27921
|
+
confidence: "declared",
|
|
27922
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
27923
|
+
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).'
|
|
27924
|
+
},
|
|
27925
|
+
inlineToolDefinitions: {
|
|
27926
|
+
value: {
|
|
27927
|
+
beta: "inline-tools-2026-09-15"
|
|
27928
|
+
},
|
|
27929
|
+
source: "official-doc",
|
|
27930
|
+
confidence: "declared",
|
|
27931
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
27932
|
+
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.'
|
|
27933
|
+
},
|
|
27934
|
+
assistantPrefill: {
|
|
27935
|
+
value: false,
|
|
27936
|
+
source: "official-doc",
|
|
27937
|
+
confidence: "declared",
|
|
27938
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
27939
|
+
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."`
|
|
27940
|
+
},
|
|
27415
27941
|
canonicalModelId: "claude-fable-5.1",
|
|
27416
27942
|
modelFamily: "claude"
|
|
27417
27943
|
},
|
|
@@ -27510,6 +28036,13 @@ var catalog_default = {
|
|
|
27510
28036
|
"thinking.type.adaptive"
|
|
27511
28037
|
],
|
|
27512
28038
|
status: "candidate",
|
|
28039
|
+
deferredToolLoading: {
|
|
28040
|
+
value: true,
|
|
28041
|
+
source: "official-doc",
|
|
28042
|
+
confidence: "declared",
|
|
28043
|
+
observedAt: "2026-09-25T18:30:00Z",
|
|
28044
|
+
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).'
|
|
28045
|
+
},
|
|
27513
28046
|
canonicalModelId: "claude-haiku-4.5-20251001",
|
|
27514
28047
|
modelFamily: "claude"
|
|
27515
28048
|
},
|
|
@@ -27608,6 +28141,13 @@ var catalog_default = {
|
|
|
27608
28141
|
"thinking.type.adaptive"
|
|
27609
28142
|
],
|
|
27610
28143
|
status: "candidate",
|
|
28144
|
+
deferredToolLoading: {
|
|
28145
|
+
value: true,
|
|
28146
|
+
source: "official-doc",
|
|
28147
|
+
confidence: "declared",
|
|
28148
|
+
observedAt: "2026-09-25T18:30:00Z",
|
|
28149
|
+
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).'
|
|
28150
|
+
},
|
|
27611
28151
|
canonicalModelId: "claude-haiku-4.5",
|
|
27612
28152
|
modelFamily: "claude"
|
|
27613
28153
|
},
|
|
@@ -27732,6 +28272,13 @@ var catalog_default = {
|
|
|
27732
28272
|
"thinking.type.adaptive"
|
|
27733
28273
|
],
|
|
27734
28274
|
status: "candidate",
|
|
28275
|
+
deferredToolLoading: {
|
|
28276
|
+
value: true,
|
|
28277
|
+
source: "official-doc",
|
|
28278
|
+
confidence: "declared",
|
|
28279
|
+
observedAt: "2026-09-25T18:30:00Z",
|
|
28280
|
+
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).'
|
|
28281
|
+
},
|
|
27735
28282
|
canonicalModelId: "claude-opus-4.5",
|
|
27736
28283
|
modelFamily: "claude"
|
|
27737
28284
|
},
|
|
@@ -27740,7 +28287,9 @@ var catalog_default = {
|
|
|
27740
28287
|
providerId: "console",
|
|
27741
28288
|
upstreamId: "claude-opus-4.6",
|
|
27742
28289
|
displayName: "Claude Opus 4.6",
|
|
27743
|
-
aliases: [
|
|
28290
|
+
aliases: [
|
|
28291
|
+
"claude-opus-4-6"
|
|
28292
|
+
],
|
|
27744
28293
|
endpoints: [
|
|
27745
28294
|
"chat"
|
|
27746
28295
|
],
|
|
@@ -27852,6 +28401,20 @@ var catalog_default = {
|
|
|
27852
28401
|
},
|
|
27853
28402
|
unsupportedParameters: [],
|
|
27854
28403
|
status: "candidate",
|
|
28404
|
+
deferredToolLoading: {
|
|
28405
|
+
value: true,
|
|
28406
|
+
source: "official-doc",
|
|
28407
|
+
confidence: "declared",
|
|
28408
|
+
observedAt: "2026-09-25T18:30:00Z",
|
|
28409
|
+
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).'
|
|
28410
|
+
},
|
|
28411
|
+
assistantPrefill: {
|
|
28412
|
+
value: false,
|
|
28413
|
+
source: "official-doc",
|
|
28414
|
+
confidence: "declared",
|
|
28415
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
28416
|
+
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."`
|
|
28417
|
+
},
|
|
27855
28418
|
canonicalModelId: "claude-opus-4.6",
|
|
27856
28419
|
modelFamily: "claude"
|
|
27857
28420
|
},
|
|
@@ -27860,7 +28423,9 @@ var catalog_default = {
|
|
|
27860
28423
|
providerId: "console",
|
|
27861
28424
|
upstreamId: "claude-opus-4.7",
|
|
27862
28425
|
displayName: "Claude Opus 4.7",
|
|
27863
|
-
aliases: [
|
|
28426
|
+
aliases: [
|
|
28427
|
+
"claude-opus-4-7"
|
|
28428
|
+
],
|
|
27864
28429
|
endpoints: [
|
|
27865
28430
|
"chat"
|
|
27866
28431
|
],
|
|
@@ -27978,6 +28543,20 @@ var catalog_default = {
|
|
|
27978
28543
|
"thinking.type.enabled"
|
|
27979
28544
|
],
|
|
27980
28545
|
status: "candidate",
|
|
28546
|
+
deferredToolLoading: {
|
|
28547
|
+
value: true,
|
|
28548
|
+
source: "official-doc",
|
|
28549
|
+
confidence: "declared",
|
|
28550
|
+
observedAt: "2026-09-25T18:30:00Z",
|
|
28551
|
+
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).'
|
|
28552
|
+
},
|
|
28553
|
+
assistantPrefill: {
|
|
28554
|
+
value: false,
|
|
28555
|
+
source: "official-doc",
|
|
28556
|
+
confidence: "declared",
|
|
28557
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
28558
|
+
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."`
|
|
28559
|
+
},
|
|
27981
28560
|
canonicalModelId: "claude-opus-4.7",
|
|
27982
28561
|
modelFamily: "claude"
|
|
27983
28562
|
},
|
|
@@ -27986,7 +28565,9 @@ var catalog_default = {
|
|
|
27986
28565
|
providerId: "console",
|
|
27987
28566
|
upstreamId: "claude-opus-4.8",
|
|
27988
28567
|
displayName: "Claude Opus 4.8",
|
|
27989
|
-
aliases: [
|
|
28568
|
+
aliases: [
|
|
28569
|
+
"claude-opus-4-8"
|
|
28570
|
+
],
|
|
27990
28571
|
endpoints: [
|
|
27991
28572
|
"chat"
|
|
27992
28573
|
],
|
|
@@ -28104,6 +28685,45 @@ var catalog_default = {
|
|
|
28104
28685
|
"thinking.type.enabled"
|
|
28105
28686
|
],
|
|
28106
28687
|
status: "candidate",
|
|
28688
|
+
deferredToolLoading: {
|
|
28689
|
+
value: true,
|
|
28690
|
+
source: "official-doc",
|
|
28691
|
+
confidence: "declared",
|
|
28692
|
+
observedAt: "2026-09-25T18:30:00Z",
|
|
28693
|
+
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).'
|
|
28694
|
+
},
|
|
28695
|
+
midConversationSystem: {
|
|
28696
|
+
value: true,
|
|
28697
|
+
source: "official-doc",
|
|
28698
|
+
confidence: "declared",
|
|
28699
|
+
observedAt: "2026-09-25T19:00:00Z",
|
|
28700
|
+
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."'
|
|
28701
|
+
},
|
|
28702
|
+
midConversationToolChanges: {
|
|
28703
|
+
value: {
|
|
28704
|
+
beta: "mid-conversation-tool-changes-2026-07-01"
|
|
28705
|
+
},
|
|
28706
|
+
source: "official-doc",
|
|
28707
|
+
confidence: "declared",
|
|
28708
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
28709
|
+
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).'
|
|
28710
|
+
},
|
|
28711
|
+
inlineToolDefinitions: {
|
|
28712
|
+
value: {
|
|
28713
|
+
beta: "inline-tools-2026-09-15"
|
|
28714
|
+
},
|
|
28715
|
+
source: "official-doc",
|
|
28716
|
+
confidence: "declared",
|
|
28717
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
28718
|
+
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.'
|
|
28719
|
+
},
|
|
28720
|
+
assistantPrefill: {
|
|
28721
|
+
value: false,
|
|
28722
|
+
source: "official-doc",
|
|
28723
|
+
confidence: "declared",
|
|
28724
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
28725
|
+
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."`
|
|
28726
|
+
},
|
|
28107
28727
|
canonicalModelId: "claude-opus-4.8",
|
|
28108
28728
|
modelFamily: "claude"
|
|
28109
28729
|
},
|
|
@@ -28252,6 +28872,15 @@ var catalog_default = {
|
|
|
28252
28872
|
confidence: "declared",
|
|
28253
28873
|
observedAt: "2026-09-25T12:30:00Z",
|
|
28254
28874
|
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)."
|
|
28875
|
+
},
|
|
28876
|
+
perMessageEffort: {
|
|
28877
|
+
value: {
|
|
28878
|
+
beta: "mid-conversation-output-config-2026-07-01"
|
|
28879
|
+
},
|
|
28880
|
+
source: "official-doc",
|
|
28881
|
+
confidence: "declared",
|
|
28882
|
+
observedAt: "2026-09-25T18:00:00Z",
|
|
28883
|
+
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.'
|
|
28255
28884
|
}
|
|
28256
28885
|
},
|
|
28257
28886
|
pricing: {
|
|
@@ -28270,9 +28899,50 @@ var catalog_default = {
|
|
|
28270
28899
|
"temperature",
|
|
28271
28900
|
"top_p",
|
|
28272
28901
|
"top_k",
|
|
28273
|
-
"thinking.type.enabled"
|
|
28902
|
+
"thinking.type.enabled",
|
|
28903
|
+
"thinking.type.disabled+output_config.effort.xhigh",
|
|
28904
|
+
"thinking.type.disabled+output_config.effort.max"
|
|
28274
28905
|
],
|
|
28275
28906
|
status: "candidate",
|
|
28907
|
+
deferredToolLoading: {
|
|
28908
|
+
value: true,
|
|
28909
|
+
source: "official-doc",
|
|
28910
|
+
confidence: "declared",
|
|
28911
|
+
observedAt: "2026-09-25T18:30:00Z",
|
|
28912
|
+
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).'
|
|
28913
|
+
},
|
|
28914
|
+
midConversationSystem: {
|
|
28915
|
+
value: true,
|
|
28916
|
+
source: "official-doc",
|
|
28917
|
+
confidence: "declared",
|
|
28918
|
+
observedAt: "2026-09-25T19:00:00Z",
|
|
28919
|
+
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."'
|
|
28920
|
+
},
|
|
28921
|
+
midConversationToolChanges: {
|
|
28922
|
+
value: {
|
|
28923
|
+
beta: "mid-conversation-tool-changes-2026-07-01"
|
|
28924
|
+
},
|
|
28925
|
+
source: "official-doc",
|
|
28926
|
+
confidence: "declared",
|
|
28927
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
28928
|
+
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).'
|
|
28929
|
+
},
|
|
28930
|
+
inlineToolDefinitions: {
|
|
28931
|
+
value: {
|
|
28932
|
+
beta: "inline-tools-2026-09-15"
|
|
28933
|
+
},
|
|
28934
|
+
source: "official-doc",
|
|
28935
|
+
confidence: "declared",
|
|
28936
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
28937
|
+
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.'
|
|
28938
|
+
},
|
|
28939
|
+
assistantPrefill: {
|
|
28940
|
+
value: false,
|
|
28941
|
+
source: "official-doc",
|
|
28942
|
+
confidence: "declared",
|
|
28943
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
28944
|
+
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."`
|
|
28945
|
+
},
|
|
28276
28946
|
canonicalModelId: "claude-opus-5",
|
|
28277
28947
|
modelFamily: "claude"
|
|
28278
28948
|
},
|
|
@@ -28432,6 +29102,15 @@ var catalog_default = {
|
|
|
28432
29102
|
confidence: "declared",
|
|
28433
29103
|
observedAt: "2026-09-25T13:00:00Z",
|
|
28434
29104
|
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").'
|
|
29105
|
+
},
|
|
29106
|
+
perMessageEffort: {
|
|
29107
|
+
value: {
|
|
29108
|
+
beta: "mid-conversation-output-config-2026-07-01"
|
|
29109
|
+
},
|
|
29110
|
+
source: "official-doc",
|
|
29111
|
+
confidence: "declared",
|
|
29112
|
+
observedAt: "2026-09-25T18:00:00Z",
|
|
29113
|
+
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.'
|
|
28435
29114
|
}
|
|
28436
29115
|
},
|
|
28437
29116
|
pricing: {
|
|
@@ -28453,6 +29132,45 @@ var catalog_default = {
|
|
|
28453
29132
|
"tool_choice.tool"
|
|
28454
29133
|
],
|
|
28455
29134
|
status: "candidate",
|
|
29135
|
+
deferredToolLoading: {
|
|
29136
|
+
value: true,
|
|
29137
|
+
source: "official-doc",
|
|
29138
|
+
confidence: "declared",
|
|
29139
|
+
observedAt: "2026-09-25T18:30:00Z",
|
|
29140
|
+
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).'
|
|
29141
|
+
},
|
|
29142
|
+
midConversationSystem: {
|
|
29143
|
+
value: true,
|
|
29144
|
+
source: "official-doc",
|
|
29145
|
+
confidence: "declared",
|
|
29146
|
+
observedAt: "2026-09-25T19:00:00Z",
|
|
29147
|
+
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."'
|
|
29148
|
+
},
|
|
29149
|
+
midConversationToolChanges: {
|
|
29150
|
+
value: {
|
|
29151
|
+
beta: "mid-conversation-tool-changes-2026-07-01"
|
|
29152
|
+
},
|
|
29153
|
+
source: "official-doc",
|
|
29154
|
+
confidence: "declared",
|
|
29155
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
29156
|
+
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).'
|
|
29157
|
+
},
|
|
29158
|
+
inlineToolDefinitions: {
|
|
29159
|
+
value: {
|
|
29160
|
+
beta: "inline-tools-2026-09-15"
|
|
29161
|
+
},
|
|
29162
|
+
source: "official-doc",
|
|
29163
|
+
confidence: "declared",
|
|
29164
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
29165
|
+
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.'
|
|
29166
|
+
},
|
|
29167
|
+
assistantPrefill: {
|
|
29168
|
+
value: false,
|
|
29169
|
+
source: "official-doc",
|
|
29170
|
+
confidence: "declared",
|
|
29171
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
29172
|
+
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."`
|
|
29173
|
+
},
|
|
28456
29174
|
canonicalModelId: "claude-opus-5.5",
|
|
28457
29175
|
modelFamily: "claude"
|
|
28458
29176
|
},
|
|
@@ -28568,6 +29286,13 @@ var catalog_default = {
|
|
|
28568
29286
|
"thinking.type.adaptive"
|
|
28569
29287
|
],
|
|
28570
29288
|
status: "candidate",
|
|
29289
|
+
deferredToolLoading: {
|
|
29290
|
+
value: true,
|
|
29291
|
+
source: "official-doc",
|
|
29292
|
+
confidence: "declared",
|
|
29293
|
+
observedAt: "2026-09-25T18:30:00Z",
|
|
29294
|
+
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).'
|
|
29295
|
+
},
|
|
28571
29296
|
canonicalModelId: "claude-sonnet-4.5",
|
|
28572
29297
|
modelFamily: "claude"
|
|
28573
29298
|
},
|
|
@@ -28576,7 +29301,9 @@ var catalog_default = {
|
|
|
28576
29301
|
providerId: "console",
|
|
28577
29302
|
upstreamId: "claude-sonnet-4.6",
|
|
28578
29303
|
displayName: "Claude Sonnet 4.6",
|
|
28579
|
-
aliases: [
|
|
29304
|
+
aliases: [
|
|
29305
|
+
"claude-sonnet-4-6"
|
|
29306
|
+
],
|
|
28580
29307
|
endpoints: [
|
|
28581
29308
|
"chat"
|
|
28582
29309
|
],
|
|
@@ -28688,6 +29415,13 @@ var catalog_default = {
|
|
|
28688
29415
|
},
|
|
28689
29416
|
unsupportedParameters: [],
|
|
28690
29417
|
status: "candidate",
|
|
29418
|
+
deferredToolLoading: {
|
|
29419
|
+
value: true,
|
|
29420
|
+
source: "official-doc",
|
|
29421
|
+
confidence: "declared",
|
|
29422
|
+
observedAt: "2026-09-25T18:30:00Z",
|
|
29423
|
+
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).'
|
|
29424
|
+
},
|
|
28691
29425
|
canonicalModelId: "claude-sonnet-4.6",
|
|
28692
29426
|
modelFamily: "claude"
|
|
28693
29427
|
},
|
|
@@ -28859,6 +29593,13 @@ var catalog_default = {
|
|
|
28859
29593
|
"thinking.type.enabled"
|
|
28860
29594
|
],
|
|
28861
29595
|
status: "candidate",
|
|
29596
|
+
assistantPrefill: {
|
|
29597
|
+
value: false,
|
|
29598
|
+
source: "official-doc",
|
|
29599
|
+
confidence: "declared",
|
|
29600
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
29601
|
+
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."`
|
|
29602
|
+
},
|
|
28862
29603
|
canonicalModelId: "claude-sonnet-5",
|
|
28863
29604
|
modelFamily: "claude"
|
|
28864
29605
|
},
|
|
@@ -30178,6 +30919,13 @@ var catalog_default = {
|
|
|
30178
30919
|
},
|
|
30179
30920
|
unsupportedParameters: [],
|
|
30180
30921
|
status: "candidate",
|
|
30922
|
+
undeclaredToolCalls: {
|
|
30923
|
+
value: true,
|
|
30924
|
+
source: "live-probe",
|
|
30925
|
+
sourceRef: "scripts/probe-fork-undeclared-tool.ts (WS-24), run live 2026-09-26: A -- a call to a tool absent from `tools` and its result in the history -> 200; B -- a ToolSearch result carrying the definition as text -> the model called the undeclared tool; C -- that call and its result fed back -> 200",
|
|
30926
|
+
confidence: "verified",
|
|
30927
|
+
observedAt: "2026-09-26T00:00:00Z"
|
|
30928
|
+
},
|
|
30181
30929
|
canonicalModelId: "deepseek-flash",
|
|
30182
30930
|
modelFamily: "deepseek"
|
|
30183
30931
|
},
|
|
@@ -51159,6 +51907,13 @@ var catalog_default = {
|
|
|
51159
51907
|
},
|
|
51160
51908
|
unsupportedParameters: [],
|
|
51161
51909
|
status: "candidate",
|
|
51910
|
+
promptCacheKey: {
|
|
51911
|
+
value: true,
|
|
51912
|
+
source: "official-doc",
|
|
51913
|
+
confidence: "declared",
|
|
51914
|
+
observedAt: "2026-09-25T19:30:00Z",
|
|
51915
|
+
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".'
|
|
51916
|
+
},
|
|
51162
51917
|
canonicalModelId: "gpt-4.1",
|
|
51163
51918
|
modelFamily: "gpt"
|
|
51164
51919
|
},
|
|
@@ -51239,6 +51994,13 @@ var catalog_default = {
|
|
|
51239
51994
|
},
|
|
51240
51995
|
unsupportedParameters: [],
|
|
51241
51996
|
status: "candidate",
|
|
51997
|
+
promptCacheKey: {
|
|
51998
|
+
value: true,
|
|
51999
|
+
source: "official-doc",
|
|
52000
|
+
confidence: "declared",
|
|
52001
|
+
observedAt: "2026-09-25T19:30:00Z",
|
|
52002
|
+
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".'
|
|
52003
|
+
},
|
|
51242
52004
|
canonicalModelId: "gpt-4.1-mini",
|
|
51243
52005
|
modelFamily: "gpt"
|
|
51244
52006
|
},
|
|
@@ -51326,6 +52088,13 @@ var catalog_default = {
|
|
|
51326
52088
|
},
|
|
51327
52089
|
unsupportedParameters: [],
|
|
51328
52090
|
status: "candidate",
|
|
52091
|
+
promptCacheKey: {
|
|
52092
|
+
value: true,
|
|
52093
|
+
source: "official-doc",
|
|
52094
|
+
confidence: "declared",
|
|
52095
|
+
observedAt: "2026-09-25T19:30:00Z",
|
|
52096
|
+
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".'
|
|
52097
|
+
},
|
|
51329
52098
|
canonicalModelId: "gpt-4.1-nano",
|
|
51330
52099
|
modelFamily: "gpt"
|
|
51331
52100
|
},
|
|
@@ -51406,6 +52175,13 @@ var catalog_default = {
|
|
|
51406
52175
|
},
|
|
51407
52176
|
unsupportedParameters: [],
|
|
51408
52177
|
status: "candidate",
|
|
52178
|
+
promptCacheKey: {
|
|
52179
|
+
value: true,
|
|
52180
|
+
source: "official-doc",
|
|
52181
|
+
confidence: "declared",
|
|
52182
|
+
observedAt: "2026-09-25T19:30:00Z",
|
|
52183
|
+
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".'
|
|
52184
|
+
},
|
|
51409
52185
|
canonicalModelId: "gpt-4o",
|
|
51410
52186
|
modelFamily: "gpt"
|
|
51411
52187
|
},
|
|
@@ -51486,6 +52262,13 @@ var catalog_default = {
|
|
|
51486
52262
|
},
|
|
51487
52263
|
unsupportedParameters: [],
|
|
51488
52264
|
status: "candidate",
|
|
52265
|
+
promptCacheKey: {
|
|
52266
|
+
value: true,
|
|
52267
|
+
source: "official-doc",
|
|
52268
|
+
confidence: "declared",
|
|
52269
|
+
observedAt: "2026-09-25T19:30:00Z",
|
|
52270
|
+
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".'
|
|
52271
|
+
},
|
|
51489
52272
|
canonicalModelId: "gpt-4o-2024-11-20",
|
|
51490
52273
|
modelFamily: "gpt"
|
|
51491
52274
|
},
|
|
@@ -51566,6 +52349,13 @@ var catalog_default = {
|
|
|
51566
52349
|
},
|
|
51567
52350
|
unsupportedParameters: [],
|
|
51568
52351
|
status: "candidate",
|
|
52352
|
+
promptCacheKey: {
|
|
52353
|
+
value: true,
|
|
52354
|
+
source: "official-doc",
|
|
52355
|
+
confidence: "declared",
|
|
52356
|
+
observedAt: "2026-09-25T19:30:00Z",
|
|
52357
|
+
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".'
|
|
52358
|
+
},
|
|
51569
52359
|
canonicalModelId: "gpt-4o-mini",
|
|
51570
52360
|
modelFamily: "gpt"
|
|
51571
52361
|
},
|
|
@@ -51671,6 +52461,34 @@ var catalog_default = {
|
|
|
51671
52461
|
},
|
|
51672
52462
|
unsupportedParameters: [],
|
|
51673
52463
|
status: "candidate",
|
|
52464
|
+
promptCacheKey: {
|
|
52465
|
+
value: true,
|
|
52466
|
+
source: "official-doc",
|
|
52467
|
+
confidence: "declared",
|
|
52468
|
+
observedAt: "2026-09-25T19:30:00Z",
|
|
52469
|
+
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".'
|
|
52470
|
+
},
|
|
52471
|
+
clientToolSearch: {
|
|
52472
|
+
value: true,
|
|
52473
|
+
source: "official-doc",
|
|
52474
|
+
confidence: "declared",
|
|
52475
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
52476
|
+
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.'
|
|
52477
|
+
},
|
|
52478
|
+
additionalToolsItem: {
|
|
52479
|
+
value: true,
|
|
52480
|
+
source: "official-doc",
|
|
52481
|
+
confidence: "declared",
|
|
52482
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
52483
|
+
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.'
|
|
52484
|
+
},
|
|
52485
|
+
allowedToolsChoice: {
|
|
52486
|
+
value: true,
|
|
52487
|
+
source: "official-doc",
|
|
52488
|
+
confidence: "declared",
|
|
52489
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
52490
|
+
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.'
|
|
52491
|
+
},
|
|
51674
52492
|
canonicalModelId: "gpt-5.4",
|
|
51675
52493
|
modelFamily: "gpt"
|
|
51676
52494
|
},
|
|
@@ -51783,6 +52601,34 @@ var catalog_default = {
|
|
|
51783
52601
|
},
|
|
51784
52602
|
unsupportedParameters: [],
|
|
51785
52603
|
status: "candidate",
|
|
52604
|
+
promptCacheKey: {
|
|
52605
|
+
value: true,
|
|
52606
|
+
source: "official-doc",
|
|
52607
|
+
confidence: "declared",
|
|
52608
|
+
observedAt: "2026-09-25T19:30:00Z",
|
|
52609
|
+
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".'
|
|
52610
|
+
},
|
|
52611
|
+
clientToolSearch: {
|
|
52612
|
+
value: true,
|
|
52613
|
+
source: "official-doc",
|
|
52614
|
+
confidence: "declared",
|
|
52615
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
52616
|
+
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.'
|
|
52617
|
+
},
|
|
52618
|
+
additionalToolsItem: {
|
|
52619
|
+
value: true,
|
|
52620
|
+
source: "official-doc",
|
|
52621
|
+
confidence: "declared",
|
|
52622
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
52623
|
+
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.'
|
|
52624
|
+
},
|
|
52625
|
+
allowedToolsChoice: {
|
|
52626
|
+
value: true,
|
|
52627
|
+
source: "official-doc",
|
|
52628
|
+
confidence: "declared",
|
|
52629
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
52630
|
+
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.'
|
|
52631
|
+
},
|
|
51786
52632
|
canonicalModelId: "gpt-5.4-mini",
|
|
51787
52633
|
modelFamily: "gpt"
|
|
51788
52634
|
},
|
|
@@ -51895,6 +52741,34 @@ var catalog_default = {
|
|
|
51895
52741
|
},
|
|
51896
52742
|
unsupportedParameters: [],
|
|
51897
52743
|
status: "candidate",
|
|
52744
|
+
promptCacheKey: {
|
|
52745
|
+
value: true,
|
|
52746
|
+
source: "official-doc",
|
|
52747
|
+
confidence: "declared",
|
|
52748
|
+
observedAt: "2026-09-25T19:30:00Z",
|
|
52749
|
+
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".'
|
|
52750
|
+
},
|
|
52751
|
+
clientToolSearch: {
|
|
52752
|
+
value: true,
|
|
52753
|
+
source: "official-doc",
|
|
52754
|
+
confidence: "declared",
|
|
52755
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
52756
|
+
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.'
|
|
52757
|
+
},
|
|
52758
|
+
additionalToolsItem: {
|
|
52759
|
+
value: true,
|
|
52760
|
+
source: "official-doc",
|
|
52761
|
+
confidence: "declared",
|
|
52762
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
52763
|
+
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.'
|
|
52764
|
+
},
|
|
52765
|
+
allowedToolsChoice: {
|
|
52766
|
+
value: true,
|
|
52767
|
+
source: "official-doc",
|
|
52768
|
+
confidence: "declared",
|
|
52769
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
52770
|
+
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.'
|
|
52771
|
+
},
|
|
51898
52772
|
canonicalModelId: "gpt-5.4-nano",
|
|
51899
52773
|
modelFamily: "gpt"
|
|
51900
52774
|
},
|
|
@@ -51982,6 +52856,34 @@ var catalog_default = {
|
|
|
51982
52856
|
},
|
|
51983
52857
|
unsupportedParameters: [],
|
|
51984
52858
|
status: "candidate",
|
|
52859
|
+
promptCacheKey: {
|
|
52860
|
+
value: true,
|
|
52861
|
+
source: "official-doc",
|
|
52862
|
+
confidence: "declared",
|
|
52863
|
+
observedAt: "2026-09-25T19:30:00Z",
|
|
52864
|
+
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".'
|
|
52865
|
+
},
|
|
52866
|
+
clientToolSearch: {
|
|
52867
|
+
value: true,
|
|
52868
|
+
source: "official-doc",
|
|
52869
|
+
confidence: "declared",
|
|
52870
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
52871
|
+
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.'
|
|
52872
|
+
},
|
|
52873
|
+
additionalToolsItem: {
|
|
52874
|
+
value: true,
|
|
52875
|
+
source: "official-doc",
|
|
52876
|
+
confidence: "declared",
|
|
52877
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
52878
|
+
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.'
|
|
52879
|
+
},
|
|
52880
|
+
allowedToolsChoice: {
|
|
52881
|
+
value: true,
|
|
52882
|
+
source: "official-doc",
|
|
52883
|
+
confidence: "declared",
|
|
52884
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
52885
|
+
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.'
|
|
52886
|
+
},
|
|
51985
52887
|
canonicalModelId: "gpt-5.4-pro",
|
|
51986
52888
|
modelFamily: "gpt"
|
|
51987
52889
|
},
|
|
@@ -52087,6 +52989,34 @@ var catalog_default = {
|
|
|
52087
52989
|
},
|
|
52088
52990
|
unsupportedParameters: [],
|
|
52089
52991
|
status: "candidate",
|
|
52992
|
+
promptCacheKey: {
|
|
52993
|
+
value: true,
|
|
52994
|
+
source: "official-doc",
|
|
52995
|
+
confidence: "declared",
|
|
52996
|
+
observedAt: "2026-09-25T19:30:00Z",
|
|
52997
|
+
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".'
|
|
52998
|
+
},
|
|
52999
|
+
clientToolSearch: {
|
|
53000
|
+
value: true,
|
|
53001
|
+
source: "official-doc",
|
|
53002
|
+
confidence: "declared",
|
|
53003
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
53004
|
+
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.'
|
|
53005
|
+
},
|
|
53006
|
+
additionalToolsItem: {
|
|
53007
|
+
value: true,
|
|
53008
|
+
source: "official-doc",
|
|
53009
|
+
confidence: "declared",
|
|
53010
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
53011
|
+
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.'
|
|
53012
|
+
},
|
|
53013
|
+
allowedToolsChoice: {
|
|
53014
|
+
value: true,
|
|
53015
|
+
source: "official-doc",
|
|
53016
|
+
confidence: "declared",
|
|
53017
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
53018
|
+
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.'
|
|
53019
|
+
},
|
|
52090
53020
|
canonicalModelId: "gpt-5.5",
|
|
52091
53021
|
modelFamily: "gpt"
|
|
52092
53022
|
},
|
|
@@ -52181,6 +53111,34 @@ var catalog_default = {
|
|
|
52181
53111
|
},
|
|
52182
53112
|
unsupportedParameters: [],
|
|
52183
53113
|
status: "candidate",
|
|
53114
|
+
promptCacheKey: {
|
|
53115
|
+
value: true,
|
|
53116
|
+
source: "official-doc",
|
|
53117
|
+
confidence: "declared",
|
|
53118
|
+
observedAt: "2026-09-25T19:30:00Z",
|
|
53119
|
+
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".'
|
|
53120
|
+
},
|
|
53121
|
+
clientToolSearch: {
|
|
53122
|
+
value: true,
|
|
53123
|
+
source: "official-doc",
|
|
53124
|
+
confidence: "declared",
|
|
53125
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
53126
|
+
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.'
|
|
53127
|
+
},
|
|
53128
|
+
additionalToolsItem: {
|
|
53129
|
+
value: true,
|
|
53130
|
+
source: "official-doc",
|
|
53131
|
+
confidence: "declared",
|
|
53132
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
53133
|
+
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.'
|
|
53134
|
+
},
|
|
53135
|
+
allowedToolsChoice: {
|
|
53136
|
+
value: true,
|
|
53137
|
+
source: "official-doc",
|
|
53138
|
+
confidence: "declared",
|
|
53139
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
53140
|
+
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.'
|
|
53141
|
+
},
|
|
52184
53142
|
canonicalModelId: "gpt-5.5-pro",
|
|
52185
53143
|
modelFamily: "gpt"
|
|
52186
53144
|
},
|
|
@@ -52295,6 +53253,34 @@ var catalog_default = {
|
|
|
52295
53253
|
},
|
|
52296
53254
|
unsupportedParameters: [],
|
|
52297
53255
|
status: "candidate",
|
|
53256
|
+
promptCacheKey: {
|
|
53257
|
+
value: true,
|
|
53258
|
+
source: "official-doc",
|
|
53259
|
+
confidence: "declared",
|
|
53260
|
+
observedAt: "2026-09-25T19:30:00Z",
|
|
53261
|
+
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".'
|
|
53262
|
+
},
|
|
53263
|
+
clientToolSearch: {
|
|
53264
|
+
value: true,
|
|
53265
|
+
source: "official-doc",
|
|
53266
|
+
confidence: "declared",
|
|
53267
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
53268
|
+
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.'
|
|
53269
|
+
},
|
|
53270
|
+
additionalToolsItem: {
|
|
53271
|
+
value: true,
|
|
53272
|
+
source: "official-doc",
|
|
53273
|
+
confidence: "declared",
|
|
53274
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
53275
|
+
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.'
|
|
53276
|
+
},
|
|
53277
|
+
allowedToolsChoice: {
|
|
53278
|
+
value: true,
|
|
53279
|
+
source: "official-doc",
|
|
53280
|
+
confidence: "declared",
|
|
53281
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
53282
|
+
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.'
|
|
53283
|
+
},
|
|
52298
53284
|
canonicalModelId: "gpt-5.6",
|
|
52299
53285
|
modelFamily: "gpt"
|
|
52300
53286
|
},
|
|
@@ -52409,6 +53395,34 @@ var catalog_default = {
|
|
|
52409
53395
|
},
|
|
52410
53396
|
unsupportedParameters: [],
|
|
52411
53397
|
status: "candidate",
|
|
53398
|
+
promptCacheKey: {
|
|
53399
|
+
value: true,
|
|
53400
|
+
source: "official-doc",
|
|
53401
|
+
confidence: "declared",
|
|
53402
|
+
observedAt: "2026-09-25T19:30:00Z",
|
|
53403
|
+
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".'
|
|
53404
|
+
},
|
|
53405
|
+
clientToolSearch: {
|
|
53406
|
+
value: true,
|
|
53407
|
+
source: "official-doc",
|
|
53408
|
+
confidence: "declared",
|
|
53409
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
53410
|
+
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.'
|
|
53411
|
+
},
|
|
53412
|
+
additionalToolsItem: {
|
|
53413
|
+
value: true,
|
|
53414
|
+
source: "official-doc",
|
|
53415
|
+
confidence: "declared",
|
|
53416
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
53417
|
+
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.'
|
|
53418
|
+
},
|
|
53419
|
+
allowedToolsChoice: {
|
|
53420
|
+
value: true,
|
|
53421
|
+
source: "official-doc",
|
|
53422
|
+
confidence: "declared",
|
|
53423
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
53424
|
+
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.'
|
|
53425
|
+
},
|
|
52412
53426
|
canonicalModelId: "gpt-5.6-luna",
|
|
52413
53427
|
modelFamily: "gpt"
|
|
52414
53428
|
},
|
|
@@ -52523,6 +53537,34 @@ var catalog_default = {
|
|
|
52523
53537
|
},
|
|
52524
53538
|
unsupportedParameters: [],
|
|
52525
53539
|
status: "candidate",
|
|
53540
|
+
promptCacheKey: {
|
|
53541
|
+
value: true,
|
|
53542
|
+
source: "official-doc",
|
|
53543
|
+
confidence: "declared",
|
|
53544
|
+
observedAt: "2026-09-25T19:30:00Z",
|
|
53545
|
+
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".'
|
|
53546
|
+
},
|
|
53547
|
+
clientToolSearch: {
|
|
53548
|
+
value: true,
|
|
53549
|
+
source: "official-doc",
|
|
53550
|
+
confidence: "declared",
|
|
53551
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
53552
|
+
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.'
|
|
53553
|
+
},
|
|
53554
|
+
additionalToolsItem: {
|
|
53555
|
+
value: true,
|
|
53556
|
+
source: "official-doc",
|
|
53557
|
+
confidence: "declared",
|
|
53558
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
53559
|
+
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.'
|
|
53560
|
+
},
|
|
53561
|
+
allowedToolsChoice: {
|
|
53562
|
+
value: true,
|
|
53563
|
+
source: "official-doc",
|
|
53564
|
+
confidence: "declared",
|
|
53565
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
53566
|
+
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.'
|
|
53567
|
+
},
|
|
52526
53568
|
canonicalModelId: "gpt-5.6-sol",
|
|
52527
53569
|
modelFamily: "gpt"
|
|
52528
53570
|
},
|
|
@@ -52637,6 +53679,34 @@ var catalog_default = {
|
|
|
52637
53679
|
},
|
|
52638
53680
|
unsupportedParameters: [],
|
|
52639
53681
|
status: "candidate",
|
|
53682
|
+
promptCacheKey: {
|
|
53683
|
+
value: true,
|
|
53684
|
+
source: "official-doc",
|
|
53685
|
+
confidence: "declared",
|
|
53686
|
+
observedAt: "2026-09-25T19:30:00Z",
|
|
53687
|
+
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".'
|
|
53688
|
+
},
|
|
53689
|
+
clientToolSearch: {
|
|
53690
|
+
value: true,
|
|
53691
|
+
source: "official-doc",
|
|
53692
|
+
confidence: "declared",
|
|
53693
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
53694
|
+
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.'
|
|
53695
|
+
},
|
|
53696
|
+
additionalToolsItem: {
|
|
53697
|
+
value: true,
|
|
53698
|
+
source: "official-doc",
|
|
53699
|
+
confidence: "declared",
|
|
53700
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
53701
|
+
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.'
|
|
53702
|
+
},
|
|
53703
|
+
allowedToolsChoice: {
|
|
53704
|
+
value: true,
|
|
53705
|
+
source: "official-doc",
|
|
53706
|
+
confidence: "declared",
|
|
53707
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
53708
|
+
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.'
|
|
53709
|
+
},
|
|
52640
53710
|
canonicalModelId: "gpt-5.6-terra",
|
|
52641
53711
|
modelFamily: "gpt"
|
|
52642
53712
|
},
|
|
@@ -52771,6 +53841,15 @@ var catalog_default = {
|
|
|
52771
53841
|
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.',
|
|
52772
53842
|
confidence: "declared",
|
|
52773
53843
|
observedAt: "2026-09-06T00:00:00Z"
|
|
53844
|
+
},
|
|
53845
|
+
perMessageEffort: {
|
|
53846
|
+
value: {
|
|
53847
|
+
item: "configuration_update"
|
|
53848
|
+
},
|
|
53849
|
+
source: "official-doc",
|
|
53850
|
+
confidence: "declared",
|
|
53851
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
53852
|
+
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).`
|
|
52774
53853
|
}
|
|
52775
53854
|
},
|
|
52776
53855
|
pricing: {
|
|
@@ -52787,6 +53866,34 @@ var catalog_default = {
|
|
|
52787
53866
|
},
|
|
52788
53867
|
unsupportedParameters: [],
|
|
52789
53868
|
status: "candidate",
|
|
53869
|
+
promptCacheKey: {
|
|
53870
|
+
value: true,
|
|
53871
|
+
source: "official-doc",
|
|
53872
|
+
confidence: "declared",
|
|
53873
|
+
observedAt: "2026-09-25T19:30:00Z",
|
|
53874
|
+
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".'
|
|
53875
|
+
},
|
|
53876
|
+
clientToolSearch: {
|
|
53877
|
+
value: true,
|
|
53878
|
+
source: "official-doc",
|
|
53879
|
+
confidence: "declared",
|
|
53880
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
53881
|
+
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.'
|
|
53882
|
+
},
|
|
53883
|
+
additionalToolsItem: {
|
|
53884
|
+
value: true,
|
|
53885
|
+
source: "official-doc",
|
|
53886
|
+
confidence: "declared",
|
|
53887
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
53888
|
+
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.'
|
|
53889
|
+
},
|
|
53890
|
+
allowedToolsChoice: {
|
|
53891
|
+
value: true,
|
|
53892
|
+
source: "official-doc",
|
|
53893
|
+
confidence: "declared",
|
|
53894
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
53895
|
+
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.'
|
|
53896
|
+
},
|
|
52790
53897
|
canonicalModelId: "gpt-6-astra",
|
|
52791
53898
|
modelFamily: "gpt"
|
|
52792
53899
|
},
|
|
@@ -52922,6 +54029,15 @@ var catalog_default = {
|
|
|
52922
54029
|
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.',
|
|
52923
54030
|
confidence: "declared",
|
|
52924
54031
|
observedAt: "2026-09-06T00:00:00Z"
|
|
54032
|
+
},
|
|
54033
|
+
perMessageEffort: {
|
|
54034
|
+
value: {
|
|
54035
|
+
item: "configuration_update"
|
|
54036
|
+
},
|
|
54037
|
+
source: "official-doc",
|
|
54038
|
+
confidence: "declared",
|
|
54039
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
54040
|
+
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).`
|
|
52925
54041
|
}
|
|
52926
54042
|
},
|
|
52927
54043
|
pricing: {
|
|
@@ -52938,6 +54054,34 @@ var catalog_default = {
|
|
|
52938
54054
|
},
|
|
52939
54055
|
unsupportedParameters: [],
|
|
52940
54056
|
status: "candidate",
|
|
54057
|
+
promptCacheKey: {
|
|
54058
|
+
value: true,
|
|
54059
|
+
source: "official-doc",
|
|
54060
|
+
confidence: "declared",
|
|
54061
|
+
observedAt: "2026-09-25T19:30:00Z",
|
|
54062
|
+
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".'
|
|
54063
|
+
},
|
|
54064
|
+
clientToolSearch: {
|
|
54065
|
+
value: true,
|
|
54066
|
+
source: "official-doc",
|
|
54067
|
+
confidence: "declared",
|
|
54068
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
54069
|
+
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.'
|
|
54070
|
+
},
|
|
54071
|
+
additionalToolsItem: {
|
|
54072
|
+
value: true,
|
|
54073
|
+
source: "official-doc",
|
|
54074
|
+
confidence: "declared",
|
|
54075
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
54076
|
+
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.'
|
|
54077
|
+
},
|
|
54078
|
+
allowedToolsChoice: {
|
|
54079
|
+
value: true,
|
|
54080
|
+
source: "official-doc",
|
|
54081
|
+
confidence: "declared",
|
|
54082
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
54083
|
+
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.'
|
|
54084
|
+
},
|
|
52941
54085
|
canonicalModelId: "gpt-6-luna",
|
|
52942
54086
|
modelFamily: "gpt"
|
|
52943
54087
|
},
|
|
@@ -53073,6 +54217,15 @@ var catalog_default = {
|
|
|
53073
54217
|
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.',
|
|
53074
54218
|
confidence: "declared",
|
|
53075
54219
|
observedAt: "2026-09-06T00:00:00Z"
|
|
54220
|
+
},
|
|
54221
|
+
perMessageEffort: {
|
|
54222
|
+
value: {
|
|
54223
|
+
item: "configuration_update"
|
|
54224
|
+
},
|
|
54225
|
+
source: "official-doc",
|
|
54226
|
+
confidence: "declared",
|
|
54227
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
54228
|
+
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).`
|
|
53076
54229
|
}
|
|
53077
54230
|
},
|
|
53078
54231
|
pricing: {
|
|
@@ -53089,6 +54242,34 @@ var catalog_default = {
|
|
|
53089
54242
|
},
|
|
53090
54243
|
unsupportedParameters: [],
|
|
53091
54244
|
status: "candidate",
|
|
54245
|
+
promptCacheKey: {
|
|
54246
|
+
value: true,
|
|
54247
|
+
source: "official-doc",
|
|
54248
|
+
confidence: "declared",
|
|
54249
|
+
observedAt: "2026-09-25T19:30:00Z",
|
|
54250
|
+
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".'
|
|
54251
|
+
},
|
|
54252
|
+
clientToolSearch: {
|
|
54253
|
+
value: true,
|
|
54254
|
+
source: "official-doc",
|
|
54255
|
+
confidence: "declared",
|
|
54256
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
54257
|
+
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.'
|
|
54258
|
+
},
|
|
54259
|
+
additionalToolsItem: {
|
|
54260
|
+
value: true,
|
|
54261
|
+
source: "official-doc",
|
|
54262
|
+
confidence: "declared",
|
|
54263
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
54264
|
+
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.'
|
|
54265
|
+
},
|
|
54266
|
+
allowedToolsChoice: {
|
|
54267
|
+
value: true,
|
|
54268
|
+
source: "official-doc",
|
|
54269
|
+
confidence: "declared",
|
|
54270
|
+
observedAt: "2026-09-26T00:00:00Z",
|
|
54271
|
+
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.'
|
|
54272
|
+
},
|
|
53092
54273
|
canonicalModelId: "gpt-6-sol",
|
|
53093
54274
|
modelFamily: "gpt"
|
|
53094
54275
|
},
|
|
@@ -53191,6 +54372,13 @@ var catalog_default = {
|
|
|
53191
54372
|
},
|
|
53192
54373
|
unsupportedParameters: [],
|
|
53193
54374
|
status: "candidate",
|
|
54375
|
+
promptCacheKey: {
|
|
54376
|
+
value: true,
|
|
54377
|
+
source: "official-doc",
|
|
54378
|
+
confidence: "declared",
|
|
54379
|
+
observedAt: "2026-09-25T19:30:00Z",
|
|
54380
|
+
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".'
|
|
54381
|
+
},
|
|
53194
54382
|
canonicalModelId: "o3",
|
|
53195
54383
|
modelFamily: "o-series"
|
|
53196
54384
|
},
|
|
@@ -53285,6 +54473,13 @@ var catalog_default = {
|
|
|
53285
54473
|
},
|
|
53286
54474
|
unsupportedParameters: [],
|
|
53287
54475
|
status: "candidate",
|
|
54476
|
+
promptCacheKey: {
|
|
54477
|
+
value: true,
|
|
54478
|
+
source: "official-doc",
|
|
54479
|
+
confidence: "declared",
|
|
54480
|
+
observedAt: "2026-09-25T19:30:00Z",
|
|
54481
|
+
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".'
|
|
54482
|
+
},
|
|
53288
54483
|
canonicalModelId: "o3-mini",
|
|
53289
54484
|
modelFamily: "o-series"
|
|
53290
54485
|
},
|
|
@@ -53432,6 +54627,13 @@ var catalog_default = {
|
|
|
53432
54627
|
},
|
|
53433
54628
|
unsupportedParameters: [],
|
|
53434
54629
|
status: "candidate",
|
|
54630
|
+
promptCacheKey: {
|
|
54631
|
+
value: true,
|
|
54632
|
+
source: "official-doc",
|
|
54633
|
+
confidence: "declared",
|
|
54634
|
+
observedAt: "2026-09-25T19:30:00Z",
|
|
54635
|
+
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".'
|
|
54636
|
+
},
|
|
53435
54637
|
canonicalModelId: "o4-mini",
|
|
53436
54638
|
modelFamily: "o-series"
|
|
53437
54639
|
},
|
|
@@ -73702,7 +74904,8 @@ var catalog_default = {
|
|
|
73702
74904
|
"grok-4.20-non-reasoning-gv2"
|
|
73703
74905
|
],
|
|
73704
74906
|
endpoints: [
|
|
73705
|
-
"chat"
|
|
74907
|
+
"chat",
|
|
74908
|
+
"responses"
|
|
73706
74909
|
],
|
|
73707
74910
|
contextWindow: {
|
|
73708
74911
|
value: 1e6,
|
|
@@ -73797,7 +75000,8 @@ var catalog_default = {
|
|
|
73797
75000
|
"grok-4.20-reasoning-gv2"
|
|
73798
75001
|
],
|
|
73799
75002
|
endpoints: [
|
|
73800
|
-
"chat"
|
|
75003
|
+
"chat",
|
|
75004
|
+
"responses"
|
|
73801
75005
|
],
|
|
73802
75006
|
contextWindow: {
|
|
73803
75007
|
value: 1e6,
|
|
@@ -73862,7 +75066,7 @@ var catalog_default = {
|
|
|
73862
75066
|
observedAt: "2026-09-25T08:40:00Z"
|
|
73863
75067
|
},
|
|
73864
75068
|
efforts: [],
|
|
73865
|
-
continuation: "
|
|
75069
|
+
continuation: "opaque-provider-state"
|
|
73866
75070
|
},
|
|
73867
75071
|
pricing: {
|
|
73868
75072
|
value: {
|
|
@@ -73880,6 +75084,111 @@ var catalog_default = {
|
|
|
73880
75084
|
canonicalModelId: "grok-4.20-0309-reasoning",
|
|
73881
75085
|
modelFamily: "grok"
|
|
73882
75086
|
},
|
|
75087
|
+
{
|
|
75088
|
+
key: "xai/grok-4.20-multi-agent-0309",
|
|
75089
|
+
providerId: "xai",
|
|
75090
|
+
upstreamId: "grok-4.20-multi-agent-0309",
|
|
75091
|
+
displayName: "Grok 4.20 Multi-Agent Beta",
|
|
75092
|
+
aliases: [
|
|
75093
|
+
"grok-4.20-multi-agent",
|
|
75094
|
+
"grok-4.20-multi-agent-latest",
|
|
75095
|
+
"grok-4.20-multi-agent-beta-latest",
|
|
75096
|
+
"grok-4.20-multi-agent-experimental-beta-0304",
|
|
75097
|
+
"grok-4.20-multi-agent-experimental-beta-latest",
|
|
75098
|
+
"grok-4.20-multi-agent-beta-0309"
|
|
75099
|
+
],
|
|
75100
|
+
endpoints: [
|
|
75101
|
+
"responses"
|
|
75102
|
+
],
|
|
75103
|
+
contextWindow: {
|
|
75104
|
+
value: 1e6,
|
|
75105
|
+
source: "official-doc",
|
|
75106
|
+
sourceRef: "https://docs.x.ai/developers/models/grok-4.20-multi-agent-0309 — model page context window 1,000,000 tokens",
|
|
75107
|
+
confidence: "declared",
|
|
75108
|
+
observedAt: "2026-09-25T08:40:00Z"
|
|
75109
|
+
},
|
|
75110
|
+
inputModalities: {
|
|
75111
|
+
value: [
|
|
75112
|
+
"text",
|
|
75113
|
+
"image"
|
|
75114
|
+
],
|
|
75115
|
+
source: "official-doc",
|
|
75116
|
+
sourceRef: "https://docs.x.ai/developers/models/grok-4.20-multi-agent-0309 — model page Modalities: Text, Image input",
|
|
75117
|
+
confidence: "declared",
|
|
75118
|
+
observedAt: "2026-09-25T08:40:00Z"
|
|
75119
|
+
},
|
|
75120
|
+
outputModalities: {
|
|
75121
|
+
value: [
|
|
75122
|
+
"text"
|
|
75123
|
+
],
|
|
75124
|
+
source: "official-doc",
|
|
75125
|
+
sourceRef: "https://docs.x.ai/developers/models/grok-4.20-multi-agent-0309 — model page Modalities: Text output",
|
|
75126
|
+
confidence: "declared",
|
|
75127
|
+
observedAt: "2026-09-25T08:40:00Z"
|
|
75128
|
+
},
|
|
75129
|
+
toolCalling: {
|
|
75130
|
+
value: "none",
|
|
75131
|
+
source: "official-doc",
|
|
75132
|
+
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",
|
|
75133
|
+
confidence: "declared",
|
|
75134
|
+
observedAt: "2026-09-25T08:40:00Z"
|
|
75135
|
+
},
|
|
75136
|
+
nativeTools: {
|
|
75137
|
+
value: false,
|
|
75138
|
+
source: "official-doc",
|
|
75139
|
+
sourceRef: "https://docs.x.ai/developers/model-capabilities/text/multi-agent — client-side/custom function tools unsupported",
|
|
75140
|
+
confidence: "declared",
|
|
75141
|
+
observedAt: "2026-09-25T08:40:00Z"
|
|
75142
|
+
},
|
|
75143
|
+
structuredOutput: {
|
|
75144
|
+
value: true,
|
|
75145
|
+
source: "official-doc",
|
|
75146
|
+
sourceRef: "https://docs.x.ai/developers/models/grok-4.20-multi-agent-0309 — model page Structured outputs capability",
|
|
75147
|
+
confidence: "declared",
|
|
75148
|
+
observedAt: "2026-09-25T08:40:00Z"
|
|
75149
|
+
},
|
|
75150
|
+
promptCaching: {
|
|
75151
|
+
value: true,
|
|
75152
|
+
source: "official-doc",
|
|
75153
|
+
sourceRef: "https://docs.x.ai/developers/models/grok-4.20-multi-agent-0309 — model page lists Cached tokens input rate; prompt caching available",
|
|
75154
|
+
confidence: "declared",
|
|
75155
|
+
observedAt: "2026-09-25T08:40:00Z"
|
|
75156
|
+
},
|
|
75157
|
+
reasoning: {
|
|
75158
|
+
supported: {
|
|
75159
|
+
value: true,
|
|
75160
|
+
source: "official-doc",
|
|
75161
|
+
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",
|
|
75162
|
+
confidence: "declared",
|
|
75163
|
+
observedAt: "2026-09-25T08:40:00Z"
|
|
75164
|
+
},
|
|
75165
|
+
efforts: [
|
|
75166
|
+
"low",
|
|
75167
|
+
"medium",
|
|
75168
|
+
"high",
|
|
75169
|
+
"xhigh"
|
|
75170
|
+
],
|
|
75171
|
+
continuation: "opaque-provider-state"
|
|
75172
|
+
},
|
|
75173
|
+
pricing: {
|
|
75174
|
+
value: {
|
|
75175
|
+
inputPerMTokUsd: 1.25,
|
|
75176
|
+
outputPerMTokUsd: 2.5,
|
|
75177
|
+
cacheReadPerMTokUsd: 0.2
|
|
75178
|
+
},
|
|
75179
|
+
source: "official-doc",
|
|
75180
|
+
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).",
|
|
75181
|
+
confidence: "declared",
|
|
75182
|
+
observedAt: "2026-09-25T17:09:48Z"
|
|
75183
|
+
},
|
|
75184
|
+
unsupportedParameters: [
|
|
75185
|
+
"max_output_tokens",
|
|
75186
|
+
"tools"
|
|
75187
|
+
],
|
|
75188
|
+
status: "candidate",
|
|
75189
|
+
canonicalModelId: "grok-4.20-multi-agent-0309",
|
|
75190
|
+
modelFamily: "grok"
|
|
75191
|
+
},
|
|
73883
75192
|
{
|
|
73884
75193
|
key: "xai/grok-4.3",
|
|
73885
75194
|
providerId: "xai",
|
|
@@ -73889,7 +75198,8 @@ var catalog_default = {
|
|
|
73889
75198
|
"grok-4.3-latest"
|
|
73890
75199
|
],
|
|
73891
75200
|
endpoints: [
|
|
73892
|
-
"chat"
|
|
75201
|
+
"chat",
|
|
75202
|
+
"responses"
|
|
73893
75203
|
],
|
|
73894
75204
|
contextWindow: {
|
|
73895
75205
|
value: 1e6,
|
|
@@ -73960,7 +75270,7 @@ var catalog_default = {
|
|
|
73960
75270
|
"high",
|
|
73961
75271
|
"xhigh"
|
|
73962
75272
|
],
|
|
73963
|
-
continuation: "
|
|
75273
|
+
continuation: "opaque-provider-state",
|
|
73964
75274
|
defaultEffort: "low"
|
|
73965
75275
|
},
|
|
73966
75276
|
pricing: {
|
|
@@ -73989,7 +75299,8 @@ var catalog_default = {
|
|
|
73989
75299
|
"grok-build-latest"
|
|
73990
75300
|
],
|
|
73991
75301
|
endpoints: [
|
|
73992
|
-
"chat"
|
|
75302
|
+
"chat",
|
|
75303
|
+
"responses"
|
|
73993
75304
|
],
|
|
73994
75305
|
contextWindow: {
|
|
73995
75306
|
value: 500000,
|
|
@@ -74058,7 +75369,7 @@ var catalog_default = {
|
|
|
74058
75369
|
"medium",
|
|
74059
75370
|
"high"
|
|
74060
75371
|
],
|
|
74061
|
-
continuation: "
|
|
75372
|
+
continuation: "opaque-provider-state",
|
|
74062
75373
|
defaultEffort: "high"
|
|
74063
75374
|
},
|
|
74064
75375
|
pricing: {
|
|
@@ -74088,7 +75399,8 @@ var catalog_default = {
|
|
|
74088
75399
|
displayName: "Grok 4.6",
|
|
74089
75400
|
aliases: [],
|
|
74090
75401
|
endpoints: [
|
|
74091
|
-
"chat"
|
|
75402
|
+
"chat",
|
|
75403
|
+
"responses"
|
|
74092
75404
|
],
|
|
74093
75405
|
contextWindow: {
|
|
74094
75406
|
value: 500000,
|
|
@@ -74158,7 +75470,7 @@ var catalog_default = {
|
|
|
74158
75470
|
"high",
|
|
74159
75471
|
"xhigh"
|
|
74160
75472
|
],
|
|
74161
|
-
continuation: "
|
|
75473
|
+
continuation: "opaque-provider-state",
|
|
74162
75474
|
defaultEffort: "high"
|
|
74163
75475
|
},
|
|
74164
75476
|
pricing: {
|
|
@@ -74188,7 +75500,8 @@ var catalog_default = {
|
|
|
74188
75500
|
displayName: "Grok 4.7",
|
|
74189
75501
|
aliases: [],
|
|
74190
75502
|
endpoints: [
|
|
74191
|
-
"chat"
|
|
75503
|
+
"chat",
|
|
75504
|
+
"responses"
|
|
74192
75505
|
],
|
|
74193
75506
|
contextWindow: {
|
|
74194
75507
|
value: 500000,
|
|
@@ -74258,8 +75571,29 @@ var catalog_default = {
|
|
|
74258
75571
|
"high",
|
|
74259
75572
|
"xhigh"
|
|
74260
75573
|
],
|
|
74261
|
-
continuation: "
|
|
74262
|
-
defaultEffort: "high"
|
|
75574
|
+
continuation: "opaque-provider-state",
|
|
75575
|
+
defaultEffort: "high",
|
|
75576
|
+
readableState: {
|
|
75577
|
+
value: "summary",
|
|
75578
|
+
source: "official-doc",
|
|
75579
|
+
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", … }]`',
|
|
75580
|
+
confidence: "declared",
|
|
75581
|
+
observedAt: "2026-09-25T17:09:48Z"
|
|
75582
|
+
},
|
|
75583
|
+
summaryRequest: {
|
|
75584
|
+
value: {
|
|
75585
|
+
field: "reasoning.summary",
|
|
75586
|
+
values: [
|
|
75587
|
+
"detailed",
|
|
75588
|
+
"auto",
|
|
75589
|
+
"concise"
|
|
75590
|
+
]
|
|
75591
|
+
},
|
|
75592
|
+
source: "official-doc",
|
|
75593
|
+
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',
|
|
75594
|
+
confidence: "declared",
|
|
75595
|
+
observedAt: "2026-09-25T17:09:48Z"
|
|
75596
|
+
}
|
|
74263
75597
|
},
|
|
74264
75598
|
pricing: {
|
|
74265
75599
|
value: {
|
|
@@ -74292,7 +75626,8 @@ var catalog_default = {
|
|
|
74292
75626
|
"grok-code-fast-1-0825"
|
|
74293
75627
|
],
|
|
74294
75628
|
endpoints: [
|
|
74295
|
-
"chat"
|
|
75629
|
+
"chat",
|
|
75630
|
+
"responses"
|
|
74296
75631
|
],
|
|
74297
75632
|
contextWindow: {
|
|
74298
75633
|
value: 256000,
|
|
@@ -74357,7 +75692,7 @@ var catalog_default = {
|
|
|
74357
75692
|
observedAt: "2026-09-25T08:40:00Z"
|
|
74358
75693
|
},
|
|
74359
75694
|
efforts: [],
|
|
74360
|
-
continuation: "
|
|
75695
|
+
continuation: "opaque-provider-state"
|
|
74361
75696
|
},
|
|
74362
75697
|
pricing: {
|
|
74363
75698
|
value: {
|