@letta-ai/letta-agent-sdk 0.8.0 → 0.8.1
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/README.md +23 -0
- package/dist/agent-creation.d.ts +2 -1
- package/dist/agent-creation.d.ts.map +1 -1
- package/dist/app-server-session.d.ts.map +1 -1
- package/dist/client-base.d.ts +12 -0
- package/dist/client-base.d.ts.map +1 -1
- package/dist/client-entry.d.ts +1 -0
- package/dist/client-entry.d.ts.map +1 -1
- package/dist/client-entry.js +457 -2673
- package/dist/client-entry.js.map +14 -12
- package/dist/client.d.ts +4 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/cloud-session.d.ts +4 -1
- package/dist/cloud-session.d.ts.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +598 -2646
- package/dist/index.js.map +18 -15
- package/dist/query-types.d.ts +25 -0
- package/dist/query-types.d.ts.map +1 -0
- package/dist/query.d.ts +7 -0
- package/dist/query.d.ts.map +1 -0
- package/dist/remote-session-protocol.d.ts +11 -1
- package/dist/remote-session-protocol.d.ts.map +1 -1
- package/dist/remote-turn-coordinator.d.ts.map +1 -1
- package/dist/repository-types.d.ts +89 -0
- package/dist/repository-types.d.ts.map +1 -0
- package/dist/skill-loading.d.ts +84 -0
- package/dist/skill-loading.d.ts.map +1 -0
- package/dist/skill-node.d.ts +28 -0
- package/dist/skill-node.d.ts.map +1 -0
- package/dist/types.d.ts +17 -84
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/agent-creation.ts +37 -1
- package/src/app-server-session.ts +35 -2
- package/src/client-base.ts +138 -1
- package/src/client-entry.ts +1 -0
- package/src/client.ts +39 -0
- package/src/cloud-session.ts +84 -16
- package/src/index.ts +16 -0
- package/src/local-app-server.ts +1 -1
- package/src/query-types.ts +40 -0
- package/src/query.ts +43 -0
- package/src/remote-client-session-core.ts +1 -1
- package/src/remote-session-protocol.ts +12 -1
- package/src/remote-turn-coordinator.ts +5 -1
- package/src/repository-types.ts +105 -0
- package/src/skill-loading.ts +194 -0
- package/src/skill-node.ts +139 -0
- package/src/types.ts +42 -100
package/dist/client-entry.js
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
// Generated bundle. Canonical modules are published under src/ and maintained in the letta-agent-sdk repository.
|
|
2
|
+
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
3
|
+
|
|
4
|
+
// node_modules/@letta-ai/letta-code/dist/agent-presets-agent-presets.js
|
|
5
|
+
var init_agent_presets_agent_presets = () => {};
|
|
2
6
|
|
|
3
7
|
// node_modules/@letta-ai/letta-client/internal/tslib.mjs
|
|
4
8
|
function __classPrivateFieldSet(receiver, state, value, kind, f) {
|
|
@@ -2993,6 +2997,47 @@ class RepositoriesClient {
|
|
|
2993
2997
|
}
|
|
2994
2998
|
}
|
|
2995
2999
|
|
|
3000
|
+
// src/skill-loading.ts
|
|
3001
|
+
var SKILL_NAME_RE = /^[a-z0-9][a-z0-9._-]*$/;
|
|
3002
|
+
function assertValidSkillName(name) {
|
|
3003
|
+
if (!SKILL_NAME_RE.test(name)) {
|
|
3004
|
+
throw new Error(`Invalid skill name "${name}". Skill names are directory names: ` + `lowercase letters, digits, ".", "_", "-" (e.g. "generating-voice-memos").`);
|
|
3005
|
+
}
|
|
3006
|
+
}
|
|
3007
|
+
async function resolveSkillItems(items, loadDirectory) {
|
|
3008
|
+
if (!items || items.length === 0)
|
|
3009
|
+
return [];
|
|
3010
|
+
const resolved = [];
|
|
3011
|
+
for (const item of items) {
|
|
3012
|
+
if (typeof item === "string") {
|
|
3013
|
+
if (!loadDirectory) {
|
|
3014
|
+
throw new Error(`Skill directory paths ("${item}") require a Node.js runtime. ` + "Pass an inline skill ({ name, description, instructions }) instead.");
|
|
3015
|
+
}
|
|
3016
|
+
resolved.push(await loadDirectory(item));
|
|
3017
|
+
} else {
|
|
3018
|
+
assertValidSkillName(item.name);
|
|
3019
|
+
if (!item.instructions || item.instructions.trim().length === 0) {
|
|
3020
|
+
throw new Error(`Skill "${item.name}" has empty instructions.`);
|
|
3021
|
+
}
|
|
3022
|
+
if (!item.description || item.description.trim().length === 0) {
|
|
3023
|
+
throw new Error(`Skill "${item.name}" has no description. ` + `The description is the skill's trigger text; it is required.`);
|
|
3024
|
+
}
|
|
3025
|
+
resolved.push(item);
|
|
3026
|
+
}
|
|
3027
|
+
}
|
|
3028
|
+
const seen = new Set;
|
|
3029
|
+
for (const skill of resolved) {
|
|
3030
|
+
if (seen.has(skill.name)) {
|
|
3031
|
+
throw new Error(`Duplicate skill name: "${skill.name}".`);
|
|
3032
|
+
}
|
|
3033
|
+
seen.add(skill.name);
|
|
3034
|
+
}
|
|
3035
|
+
return resolved;
|
|
3036
|
+
}
|
|
3037
|
+
function skillsHaveSupportFiles(skills) {
|
|
3038
|
+
return skills.some((skill) => skill.files && Object.keys(skill.files).length > 0);
|
|
3039
|
+
}
|
|
3040
|
+
|
|
2996
3041
|
// src/agent-repositories.ts
|
|
2997
3042
|
var DEFAULT_VISIBILITY_TIMEOUT_MS = 1e4;
|
|
2998
3043
|
var DEFAULT_VISIBILITY_POLL_INTERVAL_MS = 100;
|
|
@@ -3622,6 +3667,7 @@ async function closeConnection(connection) {
|
|
|
3622
3667
|
}
|
|
3623
3668
|
|
|
3624
3669
|
// node_modules/@letta-ai/letta-code/dist/agent-presets.js
|
|
3670
|
+
init_agent_presets_agent_presets();
|
|
3625
3671
|
var LETTA_CODE_ORIGIN_TAG = "origin:letta-code";
|
|
3626
3672
|
var LETTA_CODE_SUBAGENT_TAG = "role:subagent";
|
|
3627
3673
|
var GIT_MEMORY_ENABLED_TAG = "git-memory-enabled";
|
|
@@ -5462,2668 +5508,236 @@ async function getDefaultMemoryBlocks() {
|
|
|
5462
5508
|
}
|
|
5463
5509
|
return cachedMemoryBlocks;
|
|
5464
5510
|
}
|
|
5465
|
-
var
|
|
5466
|
-
|
|
5467
|
-
|
|
5468
|
-
|
|
5469
|
-
|
|
5470
|
-
|
|
5471
|
-
|
|
5472
|
-
|
|
5473
|
-
|
|
5474
|
-
|
|
5475
|
-
|
|
5476
|
-
|
|
5477
|
-
|
|
5478
|
-
|
|
5479
|
-
|
|
5480
|
-
|
|
5481
|
-
{
|
|
5482
|
-
|
|
5483
|
-
|
|
5484
|
-
|
|
5485
|
-
|
|
5486
|
-
free: true,
|
|
5487
|
-
updateArgs: {
|
|
5488
|
-
context_window: 140000,
|
|
5489
|
-
max_output_tokens: 28000,
|
|
5490
|
-
parallel_tool_calls: true
|
|
5491
|
-
},
|
|
5492
|
-
isFeatured: true
|
|
5493
|
-
},
|
|
5494
|
-
{
|
|
5495
|
-
id: "auto-chat",
|
|
5496
|
-
handle: "letta/auto-chat",
|
|
5497
|
-
label: "Auto Chat",
|
|
5498
|
-
description: "Automatically select the best model for chat",
|
|
5499
|
-
free: true,
|
|
5500
|
-
updateArgs: {
|
|
5501
|
-
context_window: 140000,
|
|
5502
|
-
max_output_tokens: 28000,
|
|
5503
|
-
parallel_tool_calls: true
|
|
5504
|
-
},
|
|
5505
|
-
isFeatured: true
|
|
5506
|
-
},
|
|
5507
|
-
{
|
|
5508
|
-
id: "glm",
|
|
5509
|
-
handle: "letta/glm",
|
|
5510
|
-
label: "Letta GLM",
|
|
5511
|
-
description: "Route directly to Letta-hosted GLM 5.2",
|
|
5512
|
-
free: true,
|
|
5513
|
-
updateArgs: {
|
|
5514
|
-
context_window: 200000,
|
|
5515
|
-
max_output_tokens: 28000,
|
|
5516
|
-
parallel_tool_calls: true
|
|
5517
|
-
},
|
|
5518
|
-
isFeatured: true
|
|
5519
|
-
},
|
|
5520
|
-
{
|
|
5521
|
-
id: "gpt-5.6-sol-none",
|
|
5522
|
-
handle: "openai/gpt-5.6-sol",
|
|
5523
|
-
label: "GPT-5.6 Sol",
|
|
5524
|
-
description: "OpenAI's most capable GPT-5.6 model (no reasoning)",
|
|
5525
|
-
updateArgs: {
|
|
5526
|
-
reasoning_effort: "none",
|
|
5527
|
-
verbosity: "medium",
|
|
5528
|
-
context_window: 350000,
|
|
5529
|
-
max_output_tokens: 128000,
|
|
5530
|
-
parallel_tool_calls: true
|
|
5531
|
-
}
|
|
5532
|
-
},
|
|
5533
|
-
{
|
|
5534
|
-
id: "gpt-5.6-sol-low",
|
|
5535
|
-
handle: "openai/gpt-5.6-sol",
|
|
5536
|
-
label: "GPT-5.6 Sol",
|
|
5537
|
-
description: "OpenAI's most capable GPT-5.6 model (low reasoning)",
|
|
5538
|
-
updateArgs: {
|
|
5539
|
-
reasoning_effort: "low",
|
|
5540
|
-
verbosity: "medium",
|
|
5541
|
-
context_window: 350000,
|
|
5542
|
-
max_output_tokens: 128000,
|
|
5543
|
-
parallel_tool_calls: true
|
|
5544
|
-
}
|
|
5545
|
-
},
|
|
5546
|
-
{
|
|
5547
|
-
id: "gpt-5.6-sol-medium",
|
|
5548
|
-
handle: "openai/gpt-5.6-sol",
|
|
5549
|
-
label: "GPT-5.6 Sol",
|
|
5550
|
-
description: "OpenAI's most capable GPT-5.6 model (med reasoning)",
|
|
5551
|
-
updateArgs: {
|
|
5552
|
-
reasoning_effort: "medium",
|
|
5553
|
-
verbosity: "medium",
|
|
5554
|
-
context_window: 350000,
|
|
5555
|
-
max_output_tokens: 128000,
|
|
5556
|
-
parallel_tool_calls: true
|
|
5557
|
-
}
|
|
5558
|
-
},
|
|
5559
|
-
{
|
|
5560
|
-
id: "gpt-5.6-sol",
|
|
5561
|
-
handle: "openai/gpt-5.6-sol",
|
|
5562
|
-
label: "GPT-5.6 Sol",
|
|
5563
|
-
description: "OpenAI's most capable GPT-5.6 model (high reasoning)",
|
|
5564
|
-
isFeatured: true,
|
|
5565
|
-
updateArgs: {
|
|
5566
|
-
reasoning_effort: "high",
|
|
5567
|
-
verbosity: "medium",
|
|
5568
|
-
context_window: 350000,
|
|
5569
|
-
max_output_tokens: 128000,
|
|
5570
|
-
parallel_tool_calls: true
|
|
5571
|
-
}
|
|
5572
|
-
},
|
|
5573
|
-
{
|
|
5574
|
-
id: "gpt-5.6-sol-xhigh",
|
|
5575
|
-
handle: "openai/gpt-5.6-sol",
|
|
5576
|
-
label: "GPT-5.6 Sol",
|
|
5577
|
-
description: "OpenAI's most capable GPT-5.6 model (extra-high reasoning)",
|
|
5578
|
-
updateArgs: {
|
|
5579
|
-
reasoning_effort: "xhigh",
|
|
5580
|
-
verbosity: "medium",
|
|
5581
|
-
context_window: 350000,
|
|
5582
|
-
max_output_tokens: 128000,
|
|
5583
|
-
parallel_tool_calls: true
|
|
5584
|
-
}
|
|
5585
|
-
},
|
|
5586
|
-
{
|
|
5587
|
-
id: "gpt-5.6-sol-max",
|
|
5588
|
-
handle: "openai/gpt-5.6-sol",
|
|
5589
|
-
label: "GPT-5.6 Sol",
|
|
5590
|
-
description: "OpenAI's most capable GPT-5.6 model (max reasoning)",
|
|
5591
|
-
updateArgs: {
|
|
5592
|
-
reasoning_effort: "max",
|
|
5593
|
-
verbosity: "medium",
|
|
5594
|
-
context_window: 350000,
|
|
5595
|
-
max_output_tokens: 128000,
|
|
5596
|
-
parallel_tool_calls: true
|
|
5597
|
-
}
|
|
5598
|
-
},
|
|
5599
|
-
{
|
|
5600
|
-
id: "gpt-5.6-sol-1m-none",
|
|
5601
|
-
handle: "openai/gpt-5.6-sol",
|
|
5602
|
-
label: "GPT-5.6 Sol 1M",
|
|
5603
|
-
description: "GPT-5.6 Sol 1M (no reasoning)",
|
|
5604
|
-
updateArgs: {
|
|
5605
|
-
reasoning_effort: "none",
|
|
5606
|
-
verbosity: "medium",
|
|
5607
|
-
context_window: 1050000,
|
|
5608
|
-
max_output_tokens: 128000,
|
|
5609
|
-
parallel_tool_calls: true
|
|
5610
|
-
}
|
|
5611
|
-
},
|
|
5612
|
-
{
|
|
5613
|
-
id: "gpt-5.6-sol-1m-low",
|
|
5614
|
-
handle: "openai/gpt-5.6-sol",
|
|
5615
|
-
label: "GPT-5.6 Sol 1M",
|
|
5616
|
-
description: "GPT-5.6 Sol 1M (low reasoning)",
|
|
5617
|
-
updateArgs: {
|
|
5511
|
+
var models = [];
|
|
5512
|
+
var BUILTIN_MODEL_ALIASES = new Map([
|
|
5513
|
+
["auto", "letta/auto"],
|
|
5514
|
+
["auto-chat", "letta/auto-chat"],
|
|
5515
|
+
["auto-fast", "letta/auto-fast"]
|
|
5516
|
+
]);
|
|
5517
|
+
function resolveEstablishedCliAlias(modelIdentifier) {
|
|
5518
|
+
if (modelIdentifier === "haiku") {
|
|
5519
|
+
return models.find((model) => model.handle.includes("claude-haiku-4-5")) ?? null;
|
|
5520
|
+
}
|
|
5521
|
+
if (modelIdentifier === "sonnet-4.6-low") {
|
|
5522
|
+
const matchingModels = models.filter((model) => model.handle.includes("claude-sonnet-4-6"));
|
|
5523
|
+
const lowEffortModel = matchingModels.find((model) => model.updateArgs?.reasoning_effort === "low");
|
|
5524
|
+
if (lowEffortModel)
|
|
5525
|
+
return lowEffortModel;
|
|
5526
|
+
const baseModel = matchingModels[0];
|
|
5527
|
+
return baseModel ? {
|
|
5528
|
+
...baseModel,
|
|
5529
|
+
id: modelIdentifier,
|
|
5530
|
+
updateArgs: {
|
|
5531
|
+
...baseModel.updateArgs,
|
|
5618
5532
|
reasoning_effort: "low",
|
|
5619
|
-
|
|
5620
|
-
context_window: 1050000,
|
|
5621
|
-
max_output_tokens: 128000,
|
|
5622
|
-
parallel_tool_calls: true
|
|
5623
|
-
}
|
|
5624
|
-
},
|
|
5625
|
-
{
|
|
5626
|
-
id: "gpt-5.6-sol-1m-medium",
|
|
5627
|
-
handle: "openai/gpt-5.6-sol",
|
|
5628
|
-
label: "GPT-5.6 Sol 1M",
|
|
5629
|
-
description: "GPT-5.6 Sol 1M (med reasoning)",
|
|
5630
|
-
updateArgs: {
|
|
5631
|
-
reasoning_effort: "medium",
|
|
5632
|
-
verbosity: "medium",
|
|
5633
|
-
context_window: 1050000,
|
|
5634
|
-
max_output_tokens: 128000,
|
|
5635
|
-
parallel_tool_calls: true
|
|
5533
|
+
enable_reasoner: true
|
|
5636
5534
|
}
|
|
5637
|
-
}
|
|
5638
|
-
|
|
5639
|
-
|
|
5640
|
-
|
|
5641
|
-
|
|
5642
|
-
|
|
5643
|
-
|
|
5644
|
-
|
|
5645
|
-
|
|
5646
|
-
|
|
5647
|
-
|
|
5648
|
-
|
|
5535
|
+
} : null;
|
|
5536
|
+
}
|
|
5537
|
+
return null;
|
|
5538
|
+
}
|
|
5539
|
+
function resolveCatalogModel(modelIdentifier) {
|
|
5540
|
+
const byId = models.find((model) => model.id === modelIdentifier);
|
|
5541
|
+
if (byId)
|
|
5542
|
+
return byId;
|
|
5543
|
+
const byHandle = models.find((model) => model.handle === modelIdentifier);
|
|
5544
|
+
if (byHandle)
|
|
5545
|
+
return byHandle;
|
|
5546
|
+
const cliAlias = resolveEstablishedCliAlias(modelIdentifier);
|
|
5547
|
+
if (cliAlias)
|
|
5548
|
+
return cliAlias;
|
|
5549
|
+
const matches = models.filter((model) => model.handle.split("/").slice(1).join("/") === modelIdentifier);
|
|
5550
|
+
const matchingHandles = new Set(matches.map((model) => model.handle));
|
|
5551
|
+
return matchingHandles.size === 1 ? matches[0] ?? null : null;
|
|
5552
|
+
}
|
|
5553
|
+
function resolveModel(modelIdentifier) {
|
|
5554
|
+
const entry = resolveCatalogModel(modelIdentifier);
|
|
5555
|
+
if (entry)
|
|
5556
|
+
return entry.handle;
|
|
5557
|
+
const builtinHandle = BUILTIN_MODEL_ALIASES.get(modelIdentifier);
|
|
5558
|
+
if (builtinHandle)
|
|
5559
|
+
return builtinHandle;
|
|
5560
|
+
return modelIdentifier.includes("/") ? modelIdentifier : null;
|
|
5561
|
+
}
|
|
5562
|
+
function getDefaultModel() {
|
|
5563
|
+
if (models.length === 0)
|
|
5564
|
+
return "letta/auto";
|
|
5565
|
+
const autoModel = models.find((model) => model.id === "auto");
|
|
5566
|
+
if (autoModel)
|
|
5567
|
+
return autoModel.handle;
|
|
5568
|
+
const defaultModel = models.find((model) => model.isDefault);
|
|
5569
|
+
if (defaultModel)
|
|
5570
|
+
return defaultModel.handle;
|
|
5571
|
+
const firstModel = models[0];
|
|
5572
|
+
if (!firstModel) {
|
|
5573
|
+
throw new Error("Model catalog is unavailable.");
|
|
5574
|
+
}
|
|
5575
|
+
return firstModel.handle;
|
|
5576
|
+
}
|
|
5577
|
+
var PERSONALITY_OPTIONS = [
|
|
5578
|
+
{
|
|
5579
|
+
id: "memo",
|
|
5580
|
+
label: "Letta Code",
|
|
5581
|
+
description: "The memory-first agent"
|
|
5582
|
+
},
|
|
5583
|
+
{
|
|
5584
|
+
id: "tutorial",
|
|
5585
|
+
label: "Tutor",
|
|
5586
|
+
description: "I help with getting started with Letta. I can answer any questions about Letta, and also help you create and configure agents.",
|
|
5587
|
+
defaultMemoryFiles: [
|
|
5588
|
+
{
|
|
5589
|
+
path: "profile.png",
|
|
5590
|
+
assetId: "tutor-profile",
|
|
5591
|
+
commitMessage: "chore: set default Tutor profile picture"
|
|
5649
5592
|
}
|
|
5593
|
+
]
|
|
5594
|
+
},
|
|
5595
|
+
{
|
|
5596
|
+
id: "blank",
|
|
5597
|
+
label: "Blank",
|
|
5598
|
+
description: "Blank starter — you provide the personality"
|
|
5599
|
+
},
|
|
5600
|
+
{
|
|
5601
|
+
id: "linus",
|
|
5602
|
+
label: "Linus",
|
|
5603
|
+
description: "Code with a stern hand"
|
|
5604
|
+
},
|
|
5605
|
+
{
|
|
5606
|
+
id: "kawaii",
|
|
5607
|
+
label: "Letta-Chan",
|
|
5608
|
+
description: "sugoi~ (◕‿◕)✨",
|
|
5609
|
+
defaultModel: "auto-chat"
|
|
5610
|
+
},
|
|
5611
|
+
{
|
|
5612
|
+
id: "claude",
|
|
5613
|
+
label: "Letta Code",
|
|
5614
|
+
description: "Vanilla Claude flavors"
|
|
5615
|
+
},
|
|
5616
|
+
{
|
|
5617
|
+
id: "codex",
|
|
5618
|
+
label: "Letta Code",
|
|
5619
|
+
description: "Vanilla Codex flavors"
|
|
5620
|
+
}
|
|
5621
|
+
];
|
|
5622
|
+
var PERSONALITY_TAG_PREFIX = "personality:";
|
|
5623
|
+
function buildPersonalityTag(personalityId) {
|
|
5624
|
+
return `${PERSONALITY_TAG_PREFIX}${personalityId}`;
|
|
5625
|
+
}
|
|
5626
|
+
function getPersonalityCreationTags(personalityId) {
|
|
5627
|
+
return getPersonalityDefaultMemoryFiles(personalityId).length > 0 ? [buildPersonalityTag(personalityId)] : [];
|
|
5628
|
+
}
|
|
5629
|
+
var ONBOARDING_PERSONALITIES = [
|
|
5630
|
+
"tutorial"
|
|
5631
|
+
];
|
|
5632
|
+
function supportsOnboardingBlock(personalityId) {
|
|
5633
|
+
return ONBOARDING_PERSONALITIES.includes(personalityId);
|
|
5634
|
+
}
|
|
5635
|
+
var EDITABLE_FRONTMATTER_KEYS = [
|
|
5636
|
+
"description",
|
|
5637
|
+
"limit",
|
|
5638
|
+
"read_only"
|
|
5639
|
+
];
|
|
5640
|
+
function ensureTrailingNewline(content) {
|
|
5641
|
+
return `${content.trimEnd()}
|
|
5642
|
+
`;
|
|
5643
|
+
}
|
|
5644
|
+
function getPromptTemplate(promptAssetName) {
|
|
5645
|
+
const rawPrompt = MEMORY_PROMPTS[promptAssetName];
|
|
5646
|
+
if (!rawPrompt) {
|
|
5647
|
+
throw new Error(`Missing built-in prompt content for ${promptAssetName}`);
|
|
5648
|
+
}
|
|
5649
|
+
return parseMdxFrontmatter(rawPrompt);
|
|
5650
|
+
}
|
|
5651
|
+
function getPromptBody(promptAssetName) {
|
|
5652
|
+
const { body } = getPromptTemplate(promptAssetName);
|
|
5653
|
+
if (!body.trim()) {
|
|
5654
|
+
throw new Error(`${promptAssetName} has empty body content`);
|
|
5655
|
+
}
|
|
5656
|
+
return ensureTrailingNewline(body);
|
|
5657
|
+
}
|
|
5658
|
+
function getEditablePromptFrontmatter(promptAssetName) {
|
|
5659
|
+
const { frontmatter } = getPromptTemplate(promptAssetName);
|
|
5660
|
+
return Object.fromEntries(Object.entries(frontmatter).filter(([key]) => EDITABLE_FRONTMATTER_KEYS.includes(key)));
|
|
5661
|
+
}
|
|
5662
|
+
function getSystemPromptById(systemPromptId) {
|
|
5663
|
+
const prompt = SYSTEM_PROMPTS.find((candidate) => candidate.id === systemPromptId);
|
|
5664
|
+
if (!prompt || !prompt.content.trim()) {
|
|
5665
|
+
throw new Error(`Missing built-in prompt content for ${systemPromptId}`);
|
|
5666
|
+
}
|
|
5667
|
+
return prompt.content;
|
|
5668
|
+
}
|
|
5669
|
+
function getPersonalityOption(personalityId) {
|
|
5670
|
+
const option = PERSONALITY_OPTIONS.find((candidate) => candidate.id === personalityId);
|
|
5671
|
+
if (!option) {
|
|
5672
|
+
throw new Error(`Unknown personality: ${personalityId}`);
|
|
5673
|
+
}
|
|
5674
|
+
return option;
|
|
5675
|
+
}
|
|
5676
|
+
function getPersonalityDefaultMemoryFiles(personalityId) {
|
|
5677
|
+
return getPersonalityOption(personalityId).defaultMemoryFiles ?? [];
|
|
5678
|
+
}
|
|
5679
|
+
function getPersonalityContent(personalityId) {
|
|
5680
|
+
if (personalityId === "memo") {
|
|
5681
|
+
return getPromptBody("persona_memo.mdx");
|
|
5682
|
+
}
|
|
5683
|
+
if (personalityId === "tutorial") {
|
|
5684
|
+
return getPromptBody("persona_tutorial.mdx");
|
|
5685
|
+
}
|
|
5686
|
+
if (personalityId === "blank") {
|
|
5687
|
+
return getPromptBody("persona_blank.mdx");
|
|
5688
|
+
}
|
|
5689
|
+
if (personalityId === "kawaii") {
|
|
5690
|
+
return getPromptBody("persona_kawaii.mdx");
|
|
5691
|
+
}
|
|
5692
|
+
if (personalityId === "codex") {
|
|
5693
|
+
return ensureTrailingNewline(getSystemPromptById("source-codex"));
|
|
5694
|
+
}
|
|
5695
|
+
if (personalityId === "linus") {
|
|
5696
|
+
return getPromptBody("persona_linus.mdx");
|
|
5697
|
+
}
|
|
5698
|
+
return ensureTrailingNewline(getSystemPromptById("source-claude"));
|
|
5699
|
+
}
|
|
5700
|
+
function getDefaultHumanContent() {
|
|
5701
|
+
return getPromptBody("human.mdx");
|
|
5702
|
+
}
|
|
5703
|
+
function getPersonalityHumanContent(personalityId) {
|
|
5704
|
+
if (personalityId === "memo") {
|
|
5705
|
+
return getPromptBody("human_memo.mdx");
|
|
5706
|
+
}
|
|
5707
|
+
if (personalityId === "tutorial") {
|
|
5708
|
+
return getPromptBody("human_tutorial.mdx");
|
|
5709
|
+
}
|
|
5710
|
+
if (personalityId === "linus") {
|
|
5711
|
+
return getPromptBody("human_linus.mdx");
|
|
5712
|
+
}
|
|
5713
|
+
if (personalityId === "kawaii") {
|
|
5714
|
+
return getPromptBody("human_kawaii.mdx");
|
|
5715
|
+
}
|
|
5716
|
+
if (personalityId === "blank") {
|
|
5717
|
+
return getDefaultHumanContent();
|
|
5718
|
+
}
|
|
5719
|
+
return getDefaultHumanContent();
|
|
5720
|
+
}
|
|
5721
|
+
function getPersonalityBlockDefinitions(personalityId, environment = "cloud") {
|
|
5722
|
+
const personaTemplatePromptAssetName = personalityId === "memo" ? "persona_memo.mdx" : personalityId === "tutorial" ? "persona_tutorial.mdx" : personalityId === "blank" ? "persona_blank.mdx" : personalityId === "kawaii" ? "persona_kawaii.mdx" : personalityId === "linus" ? "persona_linus.mdx" : "persona.mdx";
|
|
5723
|
+
const humanTemplatePromptAssetName = personalityId === "memo" ? "human_memo.mdx" : personalityId === "tutorial" ? "human_tutorial.mdx" : personalityId === "kawaii" ? "human_kawaii.mdx" : personalityId === "linus" ? "human_linus.mdx" : "human.mdx";
|
|
5724
|
+
const onboardingTemplatePromptAssetName = environment === "local" ? "onboarding_local.mdx" : "onboarding.mdx";
|
|
5725
|
+
return {
|
|
5726
|
+
persona: {
|
|
5727
|
+
value: getPersonalityContent(personalityId),
|
|
5728
|
+
description: getEditablePromptFrontmatter(personaTemplatePromptAssetName).description,
|
|
5729
|
+
templatePromptAssetName: personaTemplatePromptAssetName
|
|
5650
5730
|
},
|
|
5651
|
-
{
|
|
5652
|
-
|
|
5653
|
-
|
|
5654
|
-
|
|
5655
|
-
description: "GPT-5.6 Sol 1M (extra-high reasoning)",
|
|
5656
|
-
updateArgs: {
|
|
5657
|
-
reasoning_effort: "xhigh",
|
|
5658
|
-
verbosity: "medium",
|
|
5659
|
-
context_window: 1050000,
|
|
5660
|
-
max_output_tokens: 128000,
|
|
5661
|
-
parallel_tool_calls: true
|
|
5662
|
-
}
|
|
5731
|
+
human: {
|
|
5732
|
+
value: getPersonalityHumanContent(personalityId),
|
|
5733
|
+
description: getEditablePromptFrontmatter(humanTemplatePromptAssetName).description,
|
|
5734
|
+
templatePromptAssetName: humanTemplatePromptAssetName
|
|
5663
5735
|
},
|
|
5664
|
-
{
|
|
5665
|
-
|
|
5666
|
-
|
|
5667
|
-
|
|
5668
|
-
|
|
5669
|
-
updateArgs: {
|
|
5670
|
-
reasoning_effort: "max",
|
|
5671
|
-
verbosity: "medium",
|
|
5672
|
-
context_window: 1050000,
|
|
5673
|
-
max_output_tokens: 128000,
|
|
5674
|
-
parallel_tool_calls: true
|
|
5675
|
-
}
|
|
5676
|
-
},
|
|
5677
|
-
{
|
|
5678
|
-
id: "gpt-5.6-terra-none",
|
|
5679
|
-
handle: "openai/gpt-5.6-terra",
|
|
5680
|
-
label: "GPT-5.6 Terra",
|
|
5681
|
-
description: "GPT-5.6 Terra (no reasoning)",
|
|
5682
|
-
updateArgs: {
|
|
5683
|
-
reasoning_effort: "none",
|
|
5684
|
-
verbosity: "medium",
|
|
5685
|
-
context_window: 350000,
|
|
5686
|
-
max_output_tokens: 128000,
|
|
5687
|
-
parallel_tool_calls: true
|
|
5688
|
-
}
|
|
5689
|
-
},
|
|
5690
|
-
{
|
|
5691
|
-
id: "gpt-5.6-terra-low",
|
|
5692
|
-
handle: "openai/gpt-5.6-terra",
|
|
5693
|
-
label: "GPT-5.6 Terra",
|
|
5694
|
-
description: "GPT-5.6 Terra (low reasoning)",
|
|
5695
|
-
updateArgs: {
|
|
5696
|
-
reasoning_effort: "low",
|
|
5697
|
-
verbosity: "medium",
|
|
5698
|
-
context_window: 350000,
|
|
5699
|
-
max_output_tokens: 128000,
|
|
5700
|
-
parallel_tool_calls: true
|
|
5701
|
-
}
|
|
5702
|
-
},
|
|
5703
|
-
{
|
|
5704
|
-
id: "gpt-5.6-terra-medium",
|
|
5705
|
-
handle: "openai/gpt-5.6-terra",
|
|
5706
|
-
label: "GPT-5.6 Terra",
|
|
5707
|
-
description: "GPT-5.6 Terra (med reasoning)",
|
|
5708
|
-
updateArgs: {
|
|
5709
|
-
reasoning_effort: "medium",
|
|
5710
|
-
verbosity: "medium",
|
|
5711
|
-
context_window: 350000,
|
|
5712
|
-
max_output_tokens: 128000,
|
|
5713
|
-
parallel_tool_calls: true
|
|
5714
|
-
}
|
|
5715
|
-
},
|
|
5716
|
-
{
|
|
5717
|
-
id: "gpt-5.6-terra",
|
|
5718
|
-
handle: "openai/gpt-5.6-terra",
|
|
5719
|
-
label: "GPT-5.6 Terra",
|
|
5720
|
-
description: "GPT-5.6 Terra (high reasoning)",
|
|
5721
|
-
isFeatured: true,
|
|
5722
|
-
updateArgs: {
|
|
5723
|
-
reasoning_effort: "high",
|
|
5724
|
-
verbosity: "medium",
|
|
5725
|
-
context_window: 350000,
|
|
5726
|
-
max_output_tokens: 128000,
|
|
5727
|
-
parallel_tool_calls: true
|
|
5728
|
-
}
|
|
5729
|
-
},
|
|
5730
|
-
{
|
|
5731
|
-
id: "gpt-5.6-terra-xhigh",
|
|
5732
|
-
handle: "openai/gpt-5.6-terra",
|
|
5733
|
-
label: "GPT-5.6 Terra",
|
|
5734
|
-
description: "GPT-5.6 Terra (extra-high reasoning)",
|
|
5735
|
-
updateArgs: {
|
|
5736
|
-
reasoning_effort: "xhigh",
|
|
5737
|
-
verbosity: "medium",
|
|
5738
|
-
context_window: 350000,
|
|
5739
|
-
max_output_tokens: 128000,
|
|
5740
|
-
parallel_tool_calls: true
|
|
5741
|
-
}
|
|
5742
|
-
},
|
|
5743
|
-
{
|
|
5744
|
-
id: "gpt-5.6-terra-max",
|
|
5745
|
-
handle: "openai/gpt-5.6-terra",
|
|
5746
|
-
label: "GPT-5.6 Terra",
|
|
5747
|
-
description: "GPT-5.6 Terra (max reasoning)",
|
|
5748
|
-
updateArgs: {
|
|
5749
|
-
reasoning_effort: "max",
|
|
5750
|
-
verbosity: "medium",
|
|
5751
|
-
context_window: 350000,
|
|
5752
|
-
max_output_tokens: 128000,
|
|
5753
|
-
parallel_tool_calls: true
|
|
5754
|
-
}
|
|
5755
|
-
},
|
|
5756
|
-
{
|
|
5757
|
-
id: "gpt-5.6-terra-1m-none",
|
|
5758
|
-
handle: "openai/gpt-5.6-terra",
|
|
5759
|
-
label: "GPT-5.6 Terra 1M",
|
|
5760
|
-
description: "GPT-5.6 Terra 1M (no reasoning)",
|
|
5761
|
-
updateArgs: {
|
|
5762
|
-
reasoning_effort: "none",
|
|
5763
|
-
verbosity: "medium",
|
|
5764
|
-
context_window: 1050000,
|
|
5765
|
-
max_output_tokens: 128000,
|
|
5766
|
-
parallel_tool_calls: true
|
|
5767
|
-
}
|
|
5768
|
-
},
|
|
5769
|
-
{
|
|
5770
|
-
id: "gpt-5.6-terra-1m-low",
|
|
5771
|
-
handle: "openai/gpt-5.6-terra",
|
|
5772
|
-
label: "GPT-5.6 Terra 1M",
|
|
5773
|
-
description: "GPT-5.6 Terra 1M (low reasoning)",
|
|
5774
|
-
updateArgs: {
|
|
5775
|
-
reasoning_effort: "low",
|
|
5776
|
-
verbosity: "medium",
|
|
5777
|
-
context_window: 1050000,
|
|
5778
|
-
max_output_tokens: 128000,
|
|
5779
|
-
parallel_tool_calls: true
|
|
5780
|
-
}
|
|
5781
|
-
},
|
|
5782
|
-
{
|
|
5783
|
-
id: "gpt-5.6-terra-1m-medium",
|
|
5784
|
-
handle: "openai/gpt-5.6-terra",
|
|
5785
|
-
label: "GPT-5.6 Terra 1M",
|
|
5786
|
-
description: "GPT-5.6 Terra 1M (med reasoning)",
|
|
5787
|
-
updateArgs: {
|
|
5788
|
-
reasoning_effort: "medium",
|
|
5789
|
-
verbosity: "medium",
|
|
5790
|
-
context_window: 1050000,
|
|
5791
|
-
max_output_tokens: 128000,
|
|
5792
|
-
parallel_tool_calls: true
|
|
5793
|
-
}
|
|
5794
|
-
},
|
|
5795
|
-
{
|
|
5796
|
-
id: "gpt-5.6-terra-1m",
|
|
5797
|
-
handle: "openai/gpt-5.6-terra",
|
|
5798
|
-
label: "GPT-5.6 Terra 1M",
|
|
5799
|
-
description: "GPT-5.6 Terra with 1M token context window (high reasoning)",
|
|
5800
|
-
updateArgs: {
|
|
5801
|
-
reasoning_effort: "high",
|
|
5802
|
-
verbosity: "medium",
|
|
5803
|
-
context_window: 1050000,
|
|
5804
|
-
max_output_tokens: 128000,
|
|
5805
|
-
parallel_tool_calls: true
|
|
5806
|
-
}
|
|
5807
|
-
},
|
|
5808
|
-
{
|
|
5809
|
-
id: "gpt-5.6-terra-1m-xhigh",
|
|
5810
|
-
handle: "openai/gpt-5.6-terra",
|
|
5811
|
-
label: "GPT-5.6 Terra 1M",
|
|
5812
|
-
description: "GPT-5.6 Terra 1M (extra-high reasoning)",
|
|
5813
|
-
updateArgs: {
|
|
5814
|
-
reasoning_effort: "xhigh",
|
|
5815
|
-
verbosity: "medium",
|
|
5816
|
-
context_window: 1050000,
|
|
5817
|
-
max_output_tokens: 128000,
|
|
5818
|
-
parallel_tool_calls: true
|
|
5819
|
-
}
|
|
5820
|
-
},
|
|
5821
|
-
{
|
|
5822
|
-
id: "gpt-5.6-terra-1m-max",
|
|
5823
|
-
handle: "openai/gpt-5.6-terra",
|
|
5824
|
-
label: "GPT-5.6 Terra 1M",
|
|
5825
|
-
description: "GPT-5.6 Terra 1M (max reasoning)",
|
|
5826
|
-
updateArgs: {
|
|
5827
|
-
reasoning_effort: "max",
|
|
5828
|
-
verbosity: "medium",
|
|
5829
|
-
context_window: 1050000,
|
|
5830
|
-
max_output_tokens: 128000,
|
|
5831
|
-
parallel_tool_calls: true
|
|
5832
|
-
}
|
|
5833
|
-
},
|
|
5834
|
-
{
|
|
5835
|
-
id: "gpt-5.6-luna-none",
|
|
5836
|
-
handle: "openai/gpt-5.6-luna",
|
|
5837
|
-
label: "GPT-5.6 Luna",
|
|
5838
|
-
description: "GPT-5.6 Luna (no reasoning)",
|
|
5839
|
-
updateArgs: {
|
|
5840
|
-
reasoning_effort: "none",
|
|
5841
|
-
verbosity: "medium",
|
|
5842
|
-
context_window: 350000,
|
|
5843
|
-
max_output_tokens: 128000,
|
|
5844
|
-
parallel_tool_calls: true
|
|
5845
|
-
}
|
|
5846
|
-
},
|
|
5847
|
-
{
|
|
5848
|
-
id: "gpt-5.6-luna-low",
|
|
5849
|
-
handle: "openai/gpt-5.6-luna",
|
|
5850
|
-
label: "GPT-5.6 Luna",
|
|
5851
|
-
description: "GPT-5.6 Luna (low reasoning)",
|
|
5852
|
-
updateArgs: {
|
|
5853
|
-
reasoning_effort: "low",
|
|
5854
|
-
verbosity: "medium",
|
|
5855
|
-
context_window: 350000,
|
|
5856
|
-
max_output_tokens: 128000,
|
|
5857
|
-
parallel_tool_calls: true
|
|
5858
|
-
}
|
|
5859
|
-
},
|
|
5860
|
-
{
|
|
5861
|
-
id: "gpt-5.6-luna-medium",
|
|
5862
|
-
handle: "openai/gpt-5.6-luna",
|
|
5863
|
-
label: "GPT-5.6 Luna",
|
|
5864
|
-
description: "GPT-5.6 Luna (med reasoning)",
|
|
5865
|
-
updateArgs: {
|
|
5866
|
-
reasoning_effort: "medium",
|
|
5867
|
-
verbosity: "medium",
|
|
5868
|
-
context_window: 350000,
|
|
5869
|
-
max_output_tokens: 128000,
|
|
5870
|
-
parallel_tool_calls: true
|
|
5871
|
-
}
|
|
5872
|
-
},
|
|
5873
|
-
{
|
|
5874
|
-
id: "gpt-5.6-luna",
|
|
5875
|
-
handle: "openai/gpt-5.6-luna",
|
|
5876
|
-
label: "GPT-5.6 Luna",
|
|
5877
|
-
description: "GPT-5.6 Luna (high reasoning)",
|
|
5878
|
-
isFeatured: true,
|
|
5879
|
-
updateArgs: {
|
|
5880
|
-
reasoning_effort: "high",
|
|
5881
|
-
verbosity: "medium",
|
|
5882
|
-
context_window: 350000,
|
|
5883
|
-
max_output_tokens: 128000,
|
|
5884
|
-
parallel_tool_calls: true
|
|
5885
|
-
}
|
|
5886
|
-
},
|
|
5887
|
-
{
|
|
5888
|
-
id: "gpt-5.6-luna-xhigh",
|
|
5889
|
-
handle: "openai/gpt-5.6-luna",
|
|
5890
|
-
label: "GPT-5.6 Luna",
|
|
5891
|
-
description: "GPT-5.6 Luna (extra-high reasoning)",
|
|
5892
|
-
updateArgs: {
|
|
5893
|
-
reasoning_effort: "xhigh",
|
|
5894
|
-
verbosity: "medium",
|
|
5895
|
-
context_window: 350000,
|
|
5896
|
-
max_output_tokens: 128000,
|
|
5897
|
-
parallel_tool_calls: true
|
|
5898
|
-
}
|
|
5899
|
-
},
|
|
5900
|
-
{
|
|
5901
|
-
id: "gpt-5.6-luna-max",
|
|
5902
|
-
handle: "openai/gpt-5.6-luna",
|
|
5903
|
-
label: "GPT-5.6 Luna",
|
|
5904
|
-
description: "GPT-5.6 Luna (max reasoning)",
|
|
5905
|
-
updateArgs: {
|
|
5906
|
-
reasoning_effort: "max",
|
|
5907
|
-
verbosity: "medium",
|
|
5908
|
-
context_window: 350000,
|
|
5909
|
-
max_output_tokens: 128000,
|
|
5910
|
-
parallel_tool_calls: true
|
|
5911
|
-
}
|
|
5912
|
-
},
|
|
5913
|
-
{
|
|
5914
|
-
id: "gpt-5.6-luna-1m-none",
|
|
5915
|
-
handle: "openai/gpt-5.6-luna",
|
|
5916
|
-
label: "GPT-5.6 Luna 1M",
|
|
5917
|
-
description: "GPT-5.6 Luna 1M (no reasoning)",
|
|
5918
|
-
updateArgs: {
|
|
5919
|
-
reasoning_effort: "none",
|
|
5920
|
-
verbosity: "medium",
|
|
5921
|
-
context_window: 1050000,
|
|
5922
|
-
max_output_tokens: 128000,
|
|
5923
|
-
parallel_tool_calls: true
|
|
5924
|
-
}
|
|
5925
|
-
},
|
|
5926
|
-
{
|
|
5927
|
-
id: "gpt-5.6-luna-1m-low",
|
|
5928
|
-
handle: "openai/gpt-5.6-luna",
|
|
5929
|
-
label: "GPT-5.6 Luna 1M",
|
|
5930
|
-
description: "GPT-5.6 Luna 1M (low reasoning)",
|
|
5931
|
-
updateArgs: {
|
|
5932
|
-
reasoning_effort: "low",
|
|
5933
|
-
verbosity: "medium",
|
|
5934
|
-
context_window: 1050000,
|
|
5935
|
-
max_output_tokens: 128000,
|
|
5936
|
-
parallel_tool_calls: true
|
|
5937
|
-
}
|
|
5938
|
-
},
|
|
5939
|
-
{
|
|
5940
|
-
id: "gpt-5.6-luna-1m-medium",
|
|
5941
|
-
handle: "openai/gpt-5.6-luna",
|
|
5942
|
-
label: "GPT-5.6 Luna 1M",
|
|
5943
|
-
description: "GPT-5.6 Luna 1M (med reasoning)",
|
|
5944
|
-
updateArgs: {
|
|
5945
|
-
reasoning_effort: "medium",
|
|
5946
|
-
verbosity: "medium",
|
|
5947
|
-
context_window: 1050000,
|
|
5948
|
-
max_output_tokens: 128000,
|
|
5949
|
-
parallel_tool_calls: true
|
|
5950
|
-
}
|
|
5951
|
-
},
|
|
5952
|
-
{
|
|
5953
|
-
id: "gpt-5.6-luna-1m",
|
|
5954
|
-
handle: "openai/gpt-5.6-luna",
|
|
5955
|
-
label: "GPT-5.6 Luna 1M",
|
|
5956
|
-
description: "GPT-5.6 Luna with 1M token context window (high reasoning)",
|
|
5957
|
-
updateArgs: {
|
|
5958
|
-
reasoning_effort: "high",
|
|
5959
|
-
verbosity: "medium",
|
|
5960
|
-
context_window: 1050000,
|
|
5961
|
-
max_output_tokens: 128000,
|
|
5962
|
-
parallel_tool_calls: true
|
|
5963
|
-
}
|
|
5964
|
-
},
|
|
5965
|
-
{
|
|
5966
|
-
id: "gpt-5.6-luna-1m-xhigh",
|
|
5967
|
-
handle: "openai/gpt-5.6-luna",
|
|
5968
|
-
label: "GPT-5.6 Luna 1M",
|
|
5969
|
-
description: "GPT-5.6 Luna 1M (extra-high reasoning)",
|
|
5970
|
-
updateArgs: {
|
|
5971
|
-
reasoning_effort: "xhigh",
|
|
5972
|
-
verbosity: "medium",
|
|
5973
|
-
context_window: 1050000,
|
|
5974
|
-
max_output_tokens: 128000,
|
|
5975
|
-
parallel_tool_calls: true
|
|
5976
|
-
}
|
|
5977
|
-
},
|
|
5978
|
-
{
|
|
5979
|
-
id: "gpt-5.6-luna-1m-max",
|
|
5980
|
-
handle: "openai/gpt-5.6-luna",
|
|
5981
|
-
label: "GPT-5.6 Luna 1M",
|
|
5982
|
-
description: "GPT-5.6 Luna 1M (max reasoning)",
|
|
5983
|
-
updateArgs: {
|
|
5984
|
-
reasoning_effort: "max",
|
|
5985
|
-
verbosity: "medium",
|
|
5986
|
-
context_window: 1050000,
|
|
5987
|
-
max_output_tokens: 128000,
|
|
5988
|
-
parallel_tool_calls: true
|
|
5989
|
-
}
|
|
5990
|
-
},
|
|
5991
|
-
{
|
|
5992
|
-
id: "gpt-5.6-sol-plus-pro-none",
|
|
5993
|
-
handle: "chatgpt-plus-pro/gpt-5.6-sol",
|
|
5994
|
-
label: "GPT-5.6 Sol (ChatGPT)",
|
|
5995
|
-
description: "GPT-5.6 Sol (no reasoning) via ChatGPT Plus/Pro",
|
|
5996
|
-
updateArgs: {
|
|
5997
|
-
reasoning_effort: "none",
|
|
5998
|
-
verbosity: "low",
|
|
5999
|
-
context_window: 350000,
|
|
6000
|
-
max_output_tokens: 128000,
|
|
6001
|
-
parallel_tool_calls: true
|
|
6002
|
-
}
|
|
6003
|
-
},
|
|
6004
|
-
{
|
|
6005
|
-
id: "gpt-5.6-sol-plus-pro-low",
|
|
6006
|
-
handle: "chatgpt-plus-pro/gpt-5.6-sol",
|
|
6007
|
-
label: "GPT-5.6 Sol (ChatGPT)",
|
|
6008
|
-
description: "GPT-5.6 Sol (low reasoning) via ChatGPT Plus/Pro",
|
|
6009
|
-
updateArgs: {
|
|
6010
|
-
reasoning_effort: "low",
|
|
6011
|
-
verbosity: "low",
|
|
6012
|
-
context_window: 350000,
|
|
6013
|
-
max_output_tokens: 128000,
|
|
6014
|
-
parallel_tool_calls: true
|
|
6015
|
-
}
|
|
6016
|
-
},
|
|
6017
|
-
{
|
|
6018
|
-
id: "gpt-5.6-sol-plus-pro-medium",
|
|
6019
|
-
handle: "chatgpt-plus-pro/gpt-5.6-sol",
|
|
6020
|
-
label: "GPT-5.6 Sol (ChatGPT)",
|
|
6021
|
-
description: "GPT-5.6 Sol (med reasoning) via ChatGPT Plus/Pro",
|
|
6022
|
-
updateArgs: {
|
|
6023
|
-
reasoning_effort: "medium",
|
|
6024
|
-
verbosity: "low",
|
|
6025
|
-
context_window: 350000,
|
|
6026
|
-
max_output_tokens: 128000,
|
|
6027
|
-
parallel_tool_calls: true
|
|
6028
|
-
}
|
|
6029
|
-
},
|
|
6030
|
-
{
|
|
6031
|
-
id: "gpt-5.6-sol-plus-pro-high",
|
|
6032
|
-
handle: "chatgpt-plus-pro/gpt-5.6-sol",
|
|
6033
|
-
label: "GPT-5.6 Sol (ChatGPT)",
|
|
6034
|
-
description: "GPT-5.6 Sol (high reasoning) via ChatGPT Plus/Pro",
|
|
6035
|
-
updateArgs: {
|
|
6036
|
-
reasoning_effort: "high",
|
|
6037
|
-
verbosity: "low",
|
|
6038
|
-
context_window: 350000,
|
|
6039
|
-
max_output_tokens: 128000,
|
|
6040
|
-
parallel_tool_calls: true
|
|
6041
|
-
},
|
|
6042
|
-
isFeatured: true
|
|
6043
|
-
},
|
|
6044
|
-
{
|
|
6045
|
-
id: "gpt-5.6-sol-plus-pro-xhigh",
|
|
6046
|
-
handle: "chatgpt-plus-pro/gpt-5.6-sol",
|
|
6047
|
-
label: "GPT-5.6 Sol (ChatGPT)",
|
|
6048
|
-
description: "GPT-5.6 Sol (extra-high reasoning) via ChatGPT Plus/Pro",
|
|
6049
|
-
updateArgs: {
|
|
6050
|
-
reasoning_effort: "xhigh",
|
|
6051
|
-
verbosity: "low",
|
|
6052
|
-
context_window: 350000,
|
|
6053
|
-
max_output_tokens: 128000,
|
|
6054
|
-
parallel_tool_calls: true
|
|
6055
|
-
}
|
|
6056
|
-
},
|
|
6057
|
-
{
|
|
6058
|
-
id: "gpt-5.6-sol-plus-pro-max",
|
|
6059
|
-
handle: "chatgpt-plus-pro/gpt-5.6-sol",
|
|
6060
|
-
label: "GPT-5.6 Sol (ChatGPT)",
|
|
6061
|
-
description: "GPT-5.6 Sol (max reasoning) via ChatGPT Plus/Pro",
|
|
6062
|
-
updateArgs: {
|
|
6063
|
-
reasoning_effort: "max",
|
|
6064
|
-
verbosity: "low",
|
|
6065
|
-
context_window: 350000,
|
|
6066
|
-
max_output_tokens: 128000,
|
|
6067
|
-
parallel_tool_calls: true
|
|
6068
|
-
}
|
|
6069
|
-
},
|
|
6070
|
-
{
|
|
6071
|
-
id: "gpt-5.6-terra-plus-pro-none",
|
|
6072
|
-
handle: "chatgpt-plus-pro/gpt-5.6-terra",
|
|
6073
|
-
label: "GPT-5.6 Terra (ChatGPT)",
|
|
6074
|
-
description: "GPT-5.6 Terra (no reasoning) via ChatGPT Plus/Pro",
|
|
6075
|
-
updateArgs: {
|
|
6076
|
-
reasoning_effort: "none",
|
|
6077
|
-
verbosity: "low",
|
|
6078
|
-
context_window: 350000,
|
|
6079
|
-
max_output_tokens: 128000,
|
|
6080
|
-
parallel_tool_calls: true
|
|
6081
|
-
}
|
|
6082
|
-
},
|
|
6083
|
-
{
|
|
6084
|
-
id: "gpt-5.6-terra-plus-pro-low",
|
|
6085
|
-
handle: "chatgpt-plus-pro/gpt-5.6-terra",
|
|
6086
|
-
label: "GPT-5.6 Terra (ChatGPT)",
|
|
6087
|
-
description: "GPT-5.6 Terra (low reasoning) via ChatGPT Plus/Pro",
|
|
6088
|
-
updateArgs: {
|
|
6089
|
-
reasoning_effort: "low",
|
|
6090
|
-
verbosity: "low",
|
|
6091
|
-
context_window: 350000,
|
|
6092
|
-
max_output_tokens: 128000,
|
|
6093
|
-
parallel_tool_calls: true
|
|
6094
|
-
}
|
|
6095
|
-
},
|
|
6096
|
-
{
|
|
6097
|
-
id: "gpt-5.6-terra-plus-pro-medium",
|
|
6098
|
-
handle: "chatgpt-plus-pro/gpt-5.6-terra",
|
|
6099
|
-
label: "GPT-5.6 Terra (ChatGPT)",
|
|
6100
|
-
description: "GPT-5.6 Terra (med reasoning) via ChatGPT Plus/Pro",
|
|
6101
|
-
updateArgs: {
|
|
6102
|
-
reasoning_effort: "medium",
|
|
6103
|
-
verbosity: "low",
|
|
6104
|
-
context_window: 350000,
|
|
6105
|
-
max_output_tokens: 128000,
|
|
6106
|
-
parallel_tool_calls: true
|
|
6107
|
-
}
|
|
6108
|
-
},
|
|
6109
|
-
{
|
|
6110
|
-
id: "gpt-5.6-terra-plus-pro-high",
|
|
6111
|
-
handle: "chatgpt-plus-pro/gpt-5.6-terra",
|
|
6112
|
-
label: "GPT-5.6 Terra (ChatGPT)",
|
|
6113
|
-
description: "GPT-5.6 Terra (high reasoning) via ChatGPT Plus/Pro",
|
|
6114
|
-
updateArgs: {
|
|
6115
|
-
reasoning_effort: "high",
|
|
6116
|
-
verbosity: "low",
|
|
6117
|
-
context_window: 350000,
|
|
6118
|
-
max_output_tokens: 128000,
|
|
6119
|
-
parallel_tool_calls: true
|
|
6120
|
-
},
|
|
6121
|
-
isFeatured: true
|
|
6122
|
-
},
|
|
6123
|
-
{
|
|
6124
|
-
id: "gpt-5.6-terra-plus-pro-xhigh",
|
|
6125
|
-
handle: "chatgpt-plus-pro/gpt-5.6-terra",
|
|
6126
|
-
label: "GPT-5.6 Terra (ChatGPT)",
|
|
6127
|
-
description: "GPT-5.6 Terra (extra-high reasoning) via ChatGPT Plus/Pro",
|
|
6128
|
-
updateArgs: {
|
|
6129
|
-
reasoning_effort: "xhigh",
|
|
6130
|
-
verbosity: "low",
|
|
6131
|
-
context_window: 350000,
|
|
6132
|
-
max_output_tokens: 128000,
|
|
6133
|
-
parallel_tool_calls: true
|
|
6134
|
-
}
|
|
6135
|
-
},
|
|
6136
|
-
{
|
|
6137
|
-
id: "gpt-5.6-terra-plus-pro-max",
|
|
6138
|
-
handle: "chatgpt-plus-pro/gpt-5.6-terra",
|
|
6139
|
-
label: "GPT-5.6 Terra (ChatGPT)",
|
|
6140
|
-
description: "GPT-5.6 Terra (max reasoning) via ChatGPT Plus/Pro",
|
|
6141
|
-
updateArgs: {
|
|
6142
|
-
reasoning_effort: "max",
|
|
6143
|
-
verbosity: "low",
|
|
6144
|
-
context_window: 350000,
|
|
6145
|
-
max_output_tokens: 128000,
|
|
6146
|
-
parallel_tool_calls: true
|
|
6147
|
-
}
|
|
6148
|
-
},
|
|
6149
|
-
{
|
|
6150
|
-
id: "gpt-5.6-luna-plus-pro-none",
|
|
6151
|
-
handle: "chatgpt-plus-pro/gpt-5.6-luna",
|
|
6152
|
-
label: "GPT-5.6 Luna (ChatGPT)",
|
|
6153
|
-
description: "GPT-5.6 Luna (no reasoning) via ChatGPT Plus/Pro",
|
|
6154
|
-
updateArgs: {
|
|
6155
|
-
reasoning_effort: "none",
|
|
6156
|
-
verbosity: "low",
|
|
6157
|
-
context_window: 350000,
|
|
6158
|
-
max_output_tokens: 128000,
|
|
6159
|
-
parallel_tool_calls: true
|
|
6160
|
-
}
|
|
6161
|
-
},
|
|
6162
|
-
{
|
|
6163
|
-
id: "gpt-5.6-luna-plus-pro-low",
|
|
6164
|
-
handle: "chatgpt-plus-pro/gpt-5.6-luna",
|
|
6165
|
-
label: "GPT-5.6 Luna (ChatGPT)",
|
|
6166
|
-
description: "GPT-5.6 Luna (low reasoning) via ChatGPT Plus/Pro",
|
|
6167
|
-
updateArgs: {
|
|
6168
|
-
reasoning_effort: "low",
|
|
6169
|
-
verbosity: "low",
|
|
6170
|
-
context_window: 350000,
|
|
6171
|
-
max_output_tokens: 128000,
|
|
6172
|
-
parallel_tool_calls: true
|
|
6173
|
-
}
|
|
6174
|
-
},
|
|
6175
|
-
{
|
|
6176
|
-
id: "gpt-5.6-luna-plus-pro-medium",
|
|
6177
|
-
handle: "chatgpt-plus-pro/gpt-5.6-luna",
|
|
6178
|
-
label: "GPT-5.6 Luna (ChatGPT)",
|
|
6179
|
-
description: "GPT-5.6 Luna (med reasoning) via ChatGPT Plus/Pro",
|
|
6180
|
-
updateArgs: {
|
|
6181
|
-
reasoning_effort: "medium",
|
|
6182
|
-
verbosity: "low",
|
|
6183
|
-
context_window: 350000,
|
|
6184
|
-
max_output_tokens: 128000,
|
|
6185
|
-
parallel_tool_calls: true
|
|
6186
|
-
}
|
|
6187
|
-
},
|
|
6188
|
-
{
|
|
6189
|
-
id: "gpt-5.6-luna-plus-pro-high",
|
|
6190
|
-
handle: "chatgpt-plus-pro/gpt-5.6-luna",
|
|
6191
|
-
label: "GPT-5.6 Luna (ChatGPT)",
|
|
6192
|
-
description: "GPT-5.6 Luna (high reasoning) via ChatGPT Plus/Pro",
|
|
6193
|
-
updateArgs: {
|
|
6194
|
-
reasoning_effort: "high",
|
|
6195
|
-
verbosity: "low",
|
|
6196
|
-
context_window: 350000,
|
|
6197
|
-
max_output_tokens: 128000,
|
|
6198
|
-
parallel_tool_calls: true
|
|
6199
|
-
},
|
|
6200
|
-
isFeatured: true
|
|
6201
|
-
},
|
|
6202
|
-
{
|
|
6203
|
-
id: "gpt-5.6-luna-plus-pro-xhigh",
|
|
6204
|
-
handle: "chatgpt-plus-pro/gpt-5.6-luna",
|
|
6205
|
-
label: "GPT-5.6 Luna (ChatGPT)",
|
|
6206
|
-
description: "GPT-5.6 Luna (extra-high reasoning) via ChatGPT Plus/Pro",
|
|
6207
|
-
updateArgs: {
|
|
6208
|
-
reasoning_effort: "xhigh",
|
|
6209
|
-
verbosity: "low",
|
|
6210
|
-
context_window: 350000,
|
|
6211
|
-
max_output_tokens: 128000,
|
|
6212
|
-
parallel_tool_calls: true
|
|
6213
|
-
}
|
|
6214
|
-
},
|
|
6215
|
-
{
|
|
6216
|
-
id: "gpt-5.6-luna-plus-pro-max",
|
|
6217
|
-
handle: "chatgpt-plus-pro/gpt-5.6-luna",
|
|
6218
|
-
label: "GPT-5.6 Luna (ChatGPT)",
|
|
6219
|
-
description: "GPT-5.6 Luna (max reasoning) via ChatGPT Plus/Pro",
|
|
6220
|
-
updateArgs: {
|
|
6221
|
-
reasoning_effort: "max",
|
|
6222
|
-
verbosity: "low",
|
|
6223
|
-
context_window: 350000,
|
|
6224
|
-
max_output_tokens: 128000,
|
|
6225
|
-
parallel_tool_calls: true
|
|
6226
|
-
}
|
|
6227
|
-
},
|
|
6228
|
-
{
|
|
6229
|
-
id: "fable",
|
|
6230
|
-
handle: "anthropic/claude-fable-5",
|
|
6231
|
-
label: "Fable 5",
|
|
6232
|
-
description: "Fable 5 (high reasoning)",
|
|
6233
|
-
isFeatured: true,
|
|
6234
|
-
updateArgs: {
|
|
6235
|
-
context_window: 200000,
|
|
6236
|
-
max_output_tokens: 128000,
|
|
6237
|
-
enable_reasoner: true,
|
|
6238
|
-
reasoning_effort: "high",
|
|
6239
|
-
parallel_tool_calls: true
|
|
6240
|
-
}
|
|
6241
|
-
},
|
|
6242
|
-
{
|
|
6243
|
-
id: "fable-low",
|
|
6244
|
-
handle: "anthropic/claude-fable-5",
|
|
6245
|
-
label: "Fable 5",
|
|
6246
|
-
description: "Fable 5 (low reasoning)",
|
|
6247
|
-
updateArgs: {
|
|
6248
|
-
context_window: 200000,
|
|
6249
|
-
max_output_tokens: 128000,
|
|
6250
|
-
enable_reasoner: true,
|
|
6251
|
-
reasoning_effort: "low",
|
|
6252
|
-
max_reasoning_tokens: 4000,
|
|
6253
|
-
parallel_tool_calls: true
|
|
6254
|
-
}
|
|
6255
|
-
},
|
|
6256
|
-
{
|
|
6257
|
-
id: "fable-medium",
|
|
6258
|
-
handle: "anthropic/claude-fable-5",
|
|
6259
|
-
label: "Fable 5",
|
|
6260
|
-
description: "Fable 5 (med reasoning)",
|
|
6261
|
-
updateArgs: {
|
|
6262
|
-
context_window: 200000,
|
|
6263
|
-
max_output_tokens: 128000,
|
|
6264
|
-
enable_reasoner: true,
|
|
6265
|
-
reasoning_effort: "medium",
|
|
6266
|
-
max_reasoning_tokens: 12000,
|
|
6267
|
-
parallel_tool_calls: true
|
|
6268
|
-
}
|
|
6269
|
-
},
|
|
6270
|
-
{
|
|
6271
|
-
id: "fable-xhigh",
|
|
6272
|
-
handle: "anthropic/claude-fable-5",
|
|
6273
|
-
label: "Fable 5",
|
|
6274
|
-
description: "Fable 5 (extra-high reasoning)",
|
|
6275
|
-
updateArgs: {
|
|
6276
|
-
context_window: 200000,
|
|
6277
|
-
max_output_tokens: 128000,
|
|
6278
|
-
enable_reasoner: true,
|
|
6279
|
-
reasoning_effort: "xhigh",
|
|
6280
|
-
parallel_tool_calls: true
|
|
6281
|
-
}
|
|
6282
|
-
},
|
|
6283
|
-
{
|
|
6284
|
-
id: "fable-max",
|
|
6285
|
-
handle: "anthropic/claude-fable-5",
|
|
6286
|
-
label: "Fable 5",
|
|
6287
|
-
description: "Fable 5 (max reasoning)",
|
|
6288
|
-
updateArgs: {
|
|
6289
|
-
context_window: 200000,
|
|
6290
|
-
max_output_tokens: 128000,
|
|
6291
|
-
enable_reasoner: true,
|
|
6292
|
-
reasoning_effort: "max",
|
|
6293
|
-
parallel_tool_calls: true
|
|
6294
|
-
}
|
|
6295
|
-
},
|
|
6296
|
-
{
|
|
6297
|
-
id: "fable-1m",
|
|
6298
|
-
handle: "anthropic/claude-fable-5",
|
|
6299
|
-
label: "Fable 5 1M",
|
|
6300
|
-
description: "Claude Fable 5 with 1M token context window (high reasoning)",
|
|
6301
|
-
updateArgs: {
|
|
6302
|
-
context_window: 950000,
|
|
6303
|
-
max_output_tokens: 128000,
|
|
6304
|
-
enable_reasoner: true,
|
|
6305
|
-
reasoning_effort: "high",
|
|
6306
|
-
parallel_tool_calls: true
|
|
6307
|
-
}
|
|
6308
|
-
},
|
|
6309
|
-
{
|
|
6310
|
-
id: "fable-1m-low",
|
|
6311
|
-
handle: "anthropic/claude-fable-5",
|
|
6312
|
-
label: "Fable 5 1M",
|
|
6313
|
-
description: "Fable 5 1M (low reasoning)",
|
|
6314
|
-
updateArgs: {
|
|
6315
|
-
context_window: 950000,
|
|
6316
|
-
max_output_tokens: 128000,
|
|
6317
|
-
enable_reasoner: true,
|
|
6318
|
-
reasoning_effort: "low",
|
|
6319
|
-
max_reasoning_tokens: 4000,
|
|
6320
|
-
parallel_tool_calls: true
|
|
6321
|
-
}
|
|
6322
|
-
},
|
|
6323
|
-
{
|
|
6324
|
-
id: "fable-1m-medium",
|
|
6325
|
-
handle: "anthropic/claude-fable-5",
|
|
6326
|
-
label: "Fable 5 1M",
|
|
6327
|
-
description: "Fable 5 1M (med reasoning)",
|
|
6328
|
-
updateArgs: {
|
|
6329
|
-
context_window: 950000,
|
|
6330
|
-
max_output_tokens: 128000,
|
|
6331
|
-
enable_reasoner: true,
|
|
6332
|
-
reasoning_effort: "medium",
|
|
6333
|
-
max_reasoning_tokens: 12000,
|
|
6334
|
-
parallel_tool_calls: true
|
|
6335
|
-
}
|
|
6336
|
-
},
|
|
6337
|
-
{
|
|
6338
|
-
id: "fable-1m-xhigh",
|
|
6339
|
-
handle: "anthropic/claude-fable-5",
|
|
6340
|
-
label: "Fable 5 1M",
|
|
6341
|
-
description: "Fable 5 1M (extra-high reasoning)",
|
|
6342
|
-
updateArgs: {
|
|
6343
|
-
context_window: 950000,
|
|
6344
|
-
max_output_tokens: 128000,
|
|
6345
|
-
enable_reasoner: true,
|
|
6346
|
-
reasoning_effort: "xhigh",
|
|
6347
|
-
parallel_tool_calls: true
|
|
6348
|
-
}
|
|
6349
|
-
},
|
|
6350
|
-
{
|
|
6351
|
-
id: "fable-1m-max",
|
|
6352
|
-
handle: "anthropic/claude-fable-5",
|
|
6353
|
-
label: "Fable 5 1M",
|
|
6354
|
-
description: "Fable 5 1M (max reasoning)",
|
|
6355
|
-
updateArgs: {
|
|
6356
|
-
context_window: 950000,
|
|
6357
|
-
max_output_tokens: 128000,
|
|
6358
|
-
enable_reasoner: true,
|
|
6359
|
-
reasoning_effort: "max",
|
|
6360
|
-
parallel_tool_calls: true
|
|
6361
|
-
}
|
|
6362
|
-
},
|
|
6363
|
-
{
|
|
6364
|
-
id: "opus-5",
|
|
6365
|
-
handle: "anthropic/claude-opus-5",
|
|
6366
|
-
label: "Opus 5",
|
|
6367
|
-
description: "Opus 5 (high reasoning)",
|
|
6368
|
-
updateArgs: {
|
|
6369
|
-
context_window: 200000,
|
|
6370
|
-
max_output_tokens: 128000,
|
|
6371
|
-
enable_reasoner: true,
|
|
6372
|
-
reasoning_effort: "high",
|
|
6373
|
-
parallel_tool_calls: true
|
|
6374
|
-
}
|
|
6375
|
-
},
|
|
6376
|
-
{
|
|
6377
|
-
id: "opus-5-low",
|
|
6378
|
-
handle: "anthropic/claude-opus-5",
|
|
6379
|
-
label: "Opus 5",
|
|
6380
|
-
description: "Opus 5 (low reasoning)",
|
|
6381
|
-
updateArgs: {
|
|
6382
|
-
context_window: 200000,
|
|
6383
|
-
max_output_tokens: 128000,
|
|
6384
|
-
enable_reasoner: true,
|
|
6385
|
-
reasoning_effort: "low",
|
|
6386
|
-
max_reasoning_tokens: 4000,
|
|
6387
|
-
parallel_tool_calls: true
|
|
6388
|
-
}
|
|
6389
|
-
},
|
|
6390
|
-
{
|
|
6391
|
-
id: "opus-5-medium",
|
|
6392
|
-
handle: "anthropic/claude-opus-5",
|
|
6393
|
-
label: "Opus 5",
|
|
6394
|
-
description: "Opus 5 (med reasoning)",
|
|
6395
|
-
updateArgs: {
|
|
6396
|
-
context_window: 200000,
|
|
6397
|
-
max_output_tokens: 128000,
|
|
6398
|
-
enable_reasoner: true,
|
|
6399
|
-
reasoning_effort: "medium",
|
|
6400
|
-
max_reasoning_tokens: 12000,
|
|
6401
|
-
parallel_tool_calls: true
|
|
6402
|
-
}
|
|
6403
|
-
},
|
|
6404
|
-
{
|
|
6405
|
-
id: "opus-5-xhigh",
|
|
6406
|
-
handle: "anthropic/claude-opus-5",
|
|
6407
|
-
label: "Opus 5",
|
|
6408
|
-
description: "Opus 5 (extra-high reasoning)",
|
|
6409
|
-
updateArgs: {
|
|
6410
|
-
context_window: 200000,
|
|
6411
|
-
max_output_tokens: 128000,
|
|
6412
|
-
enable_reasoner: true,
|
|
6413
|
-
reasoning_effort: "xhigh",
|
|
6414
|
-
parallel_tool_calls: true
|
|
6415
|
-
}
|
|
6416
|
-
},
|
|
6417
|
-
{
|
|
6418
|
-
id: "opus-5-max",
|
|
6419
|
-
handle: "anthropic/claude-opus-5",
|
|
6420
|
-
label: "Opus 5",
|
|
6421
|
-
description: "Opus 5 (max reasoning)",
|
|
6422
|
-
updateArgs: {
|
|
6423
|
-
context_window: 200000,
|
|
6424
|
-
max_output_tokens: 128000,
|
|
6425
|
-
enable_reasoner: true,
|
|
6426
|
-
reasoning_effort: "max",
|
|
6427
|
-
parallel_tool_calls: true
|
|
6428
|
-
}
|
|
6429
|
-
},
|
|
6430
|
-
{
|
|
6431
|
-
id: "opus",
|
|
6432
|
-
handle: "anthropic/claude-opus-4-8",
|
|
6433
|
-
label: "Opus 4.8",
|
|
6434
|
-
description: "Opus 4.8 (high reasoning)",
|
|
6435
|
-
isFeatured: true,
|
|
6436
|
-
updateArgs: {
|
|
6437
|
-
context_window: 200000,
|
|
6438
|
-
max_output_tokens: 128000,
|
|
6439
|
-
reasoning_effort: "high",
|
|
6440
|
-
enable_reasoner: true,
|
|
6441
|
-
parallel_tool_calls: true
|
|
6442
|
-
}
|
|
6443
|
-
},
|
|
6444
|
-
{
|
|
6445
|
-
id: "opus-4.8-low",
|
|
6446
|
-
handle: "anthropic/claude-opus-4-8",
|
|
6447
|
-
label: "Opus 4.8",
|
|
6448
|
-
description: "Opus 4.8 (low reasoning)",
|
|
6449
|
-
updateArgs: {
|
|
6450
|
-
context_window: 200000,
|
|
6451
|
-
max_output_tokens: 128000,
|
|
6452
|
-
reasoning_effort: "low",
|
|
6453
|
-
enable_reasoner: true,
|
|
6454
|
-
max_reasoning_tokens: 4000,
|
|
6455
|
-
parallel_tool_calls: true
|
|
6456
|
-
}
|
|
6457
|
-
},
|
|
6458
|
-
{
|
|
6459
|
-
id: "opus-4.8-medium",
|
|
6460
|
-
handle: "anthropic/claude-opus-4-8",
|
|
6461
|
-
label: "Opus 4.8",
|
|
6462
|
-
description: "Opus 4.8 (med reasoning)",
|
|
6463
|
-
updateArgs: {
|
|
6464
|
-
context_window: 200000,
|
|
6465
|
-
max_output_tokens: 128000,
|
|
6466
|
-
reasoning_effort: "medium",
|
|
6467
|
-
enable_reasoner: true,
|
|
6468
|
-
max_reasoning_tokens: 12000,
|
|
6469
|
-
parallel_tool_calls: true
|
|
6470
|
-
}
|
|
6471
|
-
},
|
|
6472
|
-
{
|
|
6473
|
-
id: "opus-4.8-high",
|
|
6474
|
-
handle: "anthropic/claude-opus-4-8",
|
|
6475
|
-
label: "Opus 4.8",
|
|
6476
|
-
description: "Opus 4.8 (high reasoning)",
|
|
6477
|
-
updateArgs: {
|
|
6478
|
-
context_window: 200000,
|
|
6479
|
-
max_output_tokens: 128000,
|
|
6480
|
-
reasoning_effort: "high",
|
|
6481
|
-
enable_reasoner: true,
|
|
6482
|
-
parallel_tool_calls: true
|
|
6483
|
-
}
|
|
6484
|
-
},
|
|
6485
|
-
{
|
|
6486
|
-
id: "opus-4.8-xhigh",
|
|
6487
|
-
handle: "anthropic/claude-opus-4-8",
|
|
6488
|
-
label: "Opus 4.8",
|
|
6489
|
-
description: "Opus 4.8 (extra-high reasoning)",
|
|
6490
|
-
updateArgs: {
|
|
6491
|
-
context_window: 200000,
|
|
6492
|
-
max_output_tokens: 128000,
|
|
6493
|
-
reasoning_effort: "xhigh",
|
|
6494
|
-
enable_reasoner: true,
|
|
6495
|
-
parallel_tool_calls: true
|
|
6496
|
-
}
|
|
6497
|
-
},
|
|
6498
|
-
{
|
|
6499
|
-
id: "opus-4.8-max",
|
|
6500
|
-
handle: "anthropic/claude-opus-4-8",
|
|
6501
|
-
label: "Opus 4.8",
|
|
6502
|
-
description: "Opus 4.8 (max reasoning)",
|
|
6503
|
-
updateArgs: {
|
|
6504
|
-
context_window: 200000,
|
|
6505
|
-
max_output_tokens: 128000,
|
|
6506
|
-
reasoning_effort: "max",
|
|
6507
|
-
enable_reasoner: true,
|
|
6508
|
-
parallel_tool_calls: true
|
|
6509
|
-
}
|
|
6510
|
-
},
|
|
6511
|
-
{
|
|
6512
|
-
id: "opus-4.8-1m",
|
|
6513
|
-
handle: "anthropic/claude-opus-4-8",
|
|
6514
|
-
label: "Opus 4.8 1M",
|
|
6515
|
-
description: "Claude Opus 4.8 with 1M token context window (high reasoning)",
|
|
6516
|
-
updateArgs: {
|
|
6517
|
-
context_window: 950000,
|
|
6518
|
-
max_output_tokens: 128000,
|
|
6519
|
-
reasoning_effort: "high",
|
|
6520
|
-
enable_reasoner: true,
|
|
6521
|
-
parallel_tool_calls: true
|
|
6522
|
-
}
|
|
6523
|
-
},
|
|
6524
|
-
{
|
|
6525
|
-
id: "opus-4.8-1m-no-reasoning",
|
|
6526
|
-
handle: "anthropic/claude-opus-4-8",
|
|
6527
|
-
label: "Opus 4.8 1M",
|
|
6528
|
-
description: "Opus 4.8 1M with no reasoning (faster)",
|
|
6529
|
-
updateArgs: {
|
|
6530
|
-
context_window: 950000,
|
|
6531
|
-
max_output_tokens: 128000,
|
|
6532
|
-
reasoning_effort: "none",
|
|
6533
|
-
enable_reasoner: false,
|
|
6534
|
-
parallel_tool_calls: true
|
|
6535
|
-
}
|
|
6536
|
-
},
|
|
6537
|
-
{
|
|
6538
|
-
id: "opus-4.8-1m-low",
|
|
6539
|
-
handle: "anthropic/claude-opus-4-8",
|
|
6540
|
-
label: "Opus 4.8 1M",
|
|
6541
|
-
description: "Opus 4.8 1M (low reasoning)",
|
|
6542
|
-
updateArgs: {
|
|
6543
|
-
context_window: 950000,
|
|
6544
|
-
max_output_tokens: 128000,
|
|
6545
|
-
reasoning_effort: "low",
|
|
6546
|
-
enable_reasoner: true,
|
|
6547
|
-
parallel_tool_calls: true,
|
|
6548
|
-
max_reasoning_tokens: 4000
|
|
6549
|
-
}
|
|
6550
|
-
},
|
|
6551
|
-
{
|
|
6552
|
-
id: "opus-4.8-1m-medium",
|
|
6553
|
-
handle: "anthropic/claude-opus-4-8",
|
|
6554
|
-
label: "Opus 4.8 1M",
|
|
6555
|
-
description: "Opus 4.8 1M (med reasoning)",
|
|
6556
|
-
updateArgs: {
|
|
6557
|
-
context_window: 950000,
|
|
6558
|
-
max_output_tokens: 128000,
|
|
6559
|
-
reasoning_effort: "medium",
|
|
6560
|
-
enable_reasoner: true,
|
|
6561
|
-
parallel_tool_calls: true,
|
|
6562
|
-
max_reasoning_tokens: 12000
|
|
6563
|
-
}
|
|
6564
|
-
},
|
|
6565
|
-
{
|
|
6566
|
-
id: "opus-4.8-1m-xhigh",
|
|
6567
|
-
handle: "anthropic/claude-opus-4-8",
|
|
6568
|
-
label: "Opus 4.8 1M",
|
|
6569
|
-
description: "Opus 4.8 1M (max reasoning)",
|
|
6570
|
-
updateArgs: {
|
|
6571
|
-
context_window: 950000,
|
|
6572
|
-
max_output_tokens: 128000,
|
|
6573
|
-
reasoning_effort: "xhigh",
|
|
6574
|
-
enable_reasoner: true,
|
|
6575
|
-
parallel_tool_calls: true
|
|
6576
|
-
}
|
|
6577
|
-
},
|
|
6578
|
-
{
|
|
6579
|
-
id: "opus-1m",
|
|
6580
|
-
handle: "anthropic/claude-opus-4-6",
|
|
6581
|
-
label: "Opus 4.6 1M",
|
|
6582
|
-
description: "Claude Opus 4.6 with 1M token context window (high reasoning)",
|
|
6583
|
-
updateArgs: {
|
|
6584
|
-
context_window: 950000,
|
|
6585
|
-
max_output_tokens: 128000,
|
|
6586
|
-
reasoning_effort: "high",
|
|
6587
|
-
enable_reasoner: true,
|
|
6588
|
-
parallel_tool_calls: true
|
|
6589
|
-
}
|
|
6590
|
-
},
|
|
6591
|
-
{
|
|
6592
|
-
id: "opus-1m-no-reasoning",
|
|
6593
|
-
handle: "anthropic/claude-opus-4-6",
|
|
6594
|
-
label: "Opus 4.6 1M",
|
|
6595
|
-
description: "Opus 4.6 1M with no reasoning (faster)",
|
|
6596
|
-
updateArgs: {
|
|
6597
|
-
context_window: 950000,
|
|
6598
|
-
max_output_tokens: 128000,
|
|
6599
|
-
reasoning_effort: "none",
|
|
6600
|
-
enable_reasoner: false,
|
|
6601
|
-
parallel_tool_calls: true
|
|
6602
|
-
}
|
|
6603
|
-
},
|
|
6604
|
-
{
|
|
6605
|
-
id: "opus-1m-low",
|
|
6606
|
-
handle: "anthropic/claude-opus-4-6",
|
|
6607
|
-
label: "Opus 4.6 1M",
|
|
6608
|
-
description: "Opus 4.6 1M (low reasoning)",
|
|
6609
|
-
updateArgs: {
|
|
6610
|
-
context_window: 950000,
|
|
6611
|
-
max_output_tokens: 128000,
|
|
6612
|
-
reasoning_effort: "low",
|
|
6613
|
-
enable_reasoner: true,
|
|
6614
|
-
max_reasoning_tokens: 4000,
|
|
6615
|
-
parallel_tool_calls: true
|
|
6616
|
-
}
|
|
6617
|
-
},
|
|
6618
|
-
{
|
|
6619
|
-
id: "opus-1m-medium",
|
|
6620
|
-
handle: "anthropic/claude-opus-4-6",
|
|
6621
|
-
label: "Opus 4.6 1M",
|
|
6622
|
-
description: "Opus 4.6 1M (med reasoning)",
|
|
6623
|
-
updateArgs: {
|
|
6624
|
-
context_window: 950000,
|
|
6625
|
-
max_output_tokens: 128000,
|
|
6626
|
-
reasoning_effort: "medium",
|
|
6627
|
-
enable_reasoner: true,
|
|
6628
|
-
max_reasoning_tokens: 12000,
|
|
6629
|
-
parallel_tool_calls: true
|
|
6630
|
-
}
|
|
6631
|
-
},
|
|
6632
|
-
{
|
|
6633
|
-
id: "opus-1m-xhigh",
|
|
6634
|
-
handle: "anthropic/claude-opus-4-6",
|
|
6635
|
-
label: "Opus 4.6 1M",
|
|
6636
|
-
description: "Opus 4.6 1M (max reasoning)",
|
|
6637
|
-
updateArgs: {
|
|
6638
|
-
context_window: 950000,
|
|
6639
|
-
max_output_tokens: 128000,
|
|
6640
|
-
reasoning_effort: "xhigh",
|
|
6641
|
-
enable_reasoner: true,
|
|
6642
|
-
parallel_tool_calls: true
|
|
6643
|
-
}
|
|
6644
|
-
},
|
|
6645
|
-
{
|
|
6646
|
-
id: "sonnet",
|
|
6647
|
-
handle: "anthropic/claude-sonnet-5",
|
|
6648
|
-
label: "Sonnet 5",
|
|
6649
|
-
description: "Sonnet 5 (high reasoning)",
|
|
6650
|
-
isFeatured: true,
|
|
6651
|
-
updateArgs: {
|
|
6652
|
-
context_window: 1e6,
|
|
6653
|
-
max_output_tokens: 128000,
|
|
6654
|
-
reasoning_effort: "high",
|
|
6655
|
-
enable_reasoner: true,
|
|
6656
|
-
parallel_tool_calls: true
|
|
6657
|
-
}
|
|
6658
|
-
},
|
|
6659
|
-
{
|
|
6660
|
-
id: "sonnet-5-no-reasoning",
|
|
6661
|
-
handle: "anthropic/claude-sonnet-5",
|
|
6662
|
-
label: "Sonnet 5",
|
|
6663
|
-
description: "Sonnet 5 with no reasoning (faster)",
|
|
6664
|
-
updateArgs: {
|
|
6665
|
-
context_window: 1e6,
|
|
6666
|
-
max_output_tokens: 128000,
|
|
6667
|
-
reasoning_effort: "none",
|
|
6668
|
-
enable_reasoner: false,
|
|
6669
|
-
parallel_tool_calls: true
|
|
6670
|
-
}
|
|
6671
|
-
},
|
|
6672
|
-
{
|
|
6673
|
-
id: "sonnet-5-low",
|
|
6674
|
-
handle: "anthropic/claude-sonnet-5",
|
|
6675
|
-
label: "Sonnet 5",
|
|
6676
|
-
description: "Sonnet 5 (low reasoning)",
|
|
6677
|
-
updateArgs: {
|
|
6678
|
-
context_window: 1e6,
|
|
6679
|
-
max_output_tokens: 128000,
|
|
6680
|
-
reasoning_effort: "low",
|
|
6681
|
-
enable_reasoner: true,
|
|
6682
|
-
max_reasoning_tokens: 4000,
|
|
6683
|
-
parallel_tool_calls: true
|
|
6684
|
-
}
|
|
6685
|
-
},
|
|
6686
|
-
{
|
|
6687
|
-
id: "sonnet-5-medium",
|
|
6688
|
-
handle: "anthropic/claude-sonnet-5",
|
|
6689
|
-
label: "Sonnet 5",
|
|
6690
|
-
description: "Sonnet 5 (med reasoning)",
|
|
6691
|
-
updateArgs: {
|
|
6692
|
-
context_window: 1e6,
|
|
6693
|
-
max_output_tokens: 128000,
|
|
6694
|
-
reasoning_effort: "medium",
|
|
6695
|
-
enable_reasoner: true,
|
|
6696
|
-
max_reasoning_tokens: 12000,
|
|
6697
|
-
parallel_tool_calls: true
|
|
6698
|
-
}
|
|
6699
|
-
},
|
|
6700
|
-
{
|
|
6701
|
-
id: "sonnet-5-xhigh",
|
|
6702
|
-
handle: "anthropic/claude-sonnet-5",
|
|
6703
|
-
label: "Sonnet 5",
|
|
6704
|
-
description: "Sonnet 5 (extra-high reasoning)",
|
|
6705
|
-
updateArgs: {
|
|
6706
|
-
context_window: 1e6,
|
|
6707
|
-
max_output_tokens: 128000,
|
|
6708
|
-
reasoning_effort: "xhigh",
|
|
6709
|
-
enable_reasoner: true,
|
|
6710
|
-
parallel_tool_calls: true
|
|
6711
|
-
}
|
|
6712
|
-
},
|
|
6713
|
-
{
|
|
6714
|
-
id: "sonnet-5-max",
|
|
6715
|
-
handle: "anthropic/claude-sonnet-5",
|
|
6716
|
-
label: "Sonnet 5",
|
|
6717
|
-
description: "Sonnet 5 (max reasoning)",
|
|
6718
|
-
updateArgs: {
|
|
6719
|
-
context_window: 1e6,
|
|
6720
|
-
max_output_tokens: 128000,
|
|
6721
|
-
reasoning_effort: "max",
|
|
6722
|
-
enable_reasoner: true,
|
|
6723
|
-
parallel_tool_calls: true
|
|
6724
|
-
}
|
|
6725
|
-
},
|
|
6726
|
-
{
|
|
6727
|
-
id: "sonnet-4.6",
|
|
6728
|
-
handle: "anthropic/claude-sonnet-4-6",
|
|
6729
|
-
label: "Sonnet 4.6",
|
|
6730
|
-
description: "Sonnet 4.6 (high reasoning)",
|
|
6731
|
-
updateArgs: {
|
|
6732
|
-
context_window: 200000,
|
|
6733
|
-
max_output_tokens: 128000,
|
|
6734
|
-
reasoning_effort: "high",
|
|
6735
|
-
enable_reasoner: true,
|
|
6736
|
-
parallel_tool_calls: true
|
|
6737
|
-
}
|
|
6738
|
-
},
|
|
6739
|
-
{
|
|
6740
|
-
id: "sonnet-4.6-no-reasoning",
|
|
6741
|
-
handle: "anthropic/claude-sonnet-4-6",
|
|
6742
|
-
label: "Sonnet 4.6",
|
|
6743
|
-
description: "Sonnet 4.6 with no reasoning (faster)",
|
|
6744
|
-
updateArgs: {
|
|
6745
|
-
context_window: 200000,
|
|
6746
|
-
max_output_tokens: 128000,
|
|
6747
|
-
reasoning_effort: "none",
|
|
6748
|
-
enable_reasoner: false,
|
|
6749
|
-
parallel_tool_calls: true
|
|
6750
|
-
}
|
|
6751
|
-
},
|
|
6752
|
-
{
|
|
6753
|
-
id: "sonnet-4.6-low",
|
|
6754
|
-
handle: "anthropic/claude-sonnet-4-6",
|
|
6755
|
-
label: "Sonnet 4.6",
|
|
6756
|
-
description: "Sonnet 4.6 (low reasoning)",
|
|
6757
|
-
updateArgs: {
|
|
6758
|
-
context_window: 200000,
|
|
6759
|
-
max_output_tokens: 128000,
|
|
6760
|
-
reasoning_effort: "low",
|
|
6761
|
-
enable_reasoner: true,
|
|
6762
|
-
max_reasoning_tokens: 4000,
|
|
6763
|
-
parallel_tool_calls: true
|
|
6764
|
-
}
|
|
6765
|
-
},
|
|
6766
|
-
{
|
|
6767
|
-
id: "sonnet-4.6-medium",
|
|
6768
|
-
handle: "anthropic/claude-sonnet-4-6",
|
|
6769
|
-
label: "Sonnet 4.6",
|
|
6770
|
-
description: "Sonnet 4.6 (med reasoning)",
|
|
6771
|
-
updateArgs: {
|
|
6772
|
-
context_window: 200000,
|
|
6773
|
-
max_output_tokens: 128000,
|
|
6774
|
-
reasoning_effort: "medium",
|
|
6775
|
-
enable_reasoner: true,
|
|
6776
|
-
max_reasoning_tokens: 12000,
|
|
6777
|
-
parallel_tool_calls: true
|
|
6778
|
-
}
|
|
6779
|
-
},
|
|
6780
|
-
{
|
|
6781
|
-
id: "sonnet-4.6-xhigh",
|
|
6782
|
-
handle: "anthropic/claude-sonnet-4-6",
|
|
6783
|
-
label: "Sonnet 4.6",
|
|
6784
|
-
description: "Sonnet 4.6 (max reasoning)",
|
|
6785
|
-
updateArgs: {
|
|
6786
|
-
context_window: 200000,
|
|
6787
|
-
max_output_tokens: 128000,
|
|
6788
|
-
reasoning_effort: "xhigh",
|
|
6789
|
-
enable_reasoner: true,
|
|
6790
|
-
parallel_tool_calls: true
|
|
6791
|
-
}
|
|
6792
|
-
},
|
|
6793
|
-
{
|
|
6794
|
-
id: "sonnet-1m",
|
|
6795
|
-
handle: "anthropic/claude-sonnet-4-6",
|
|
6796
|
-
label: "Sonnet 4.6 1M",
|
|
6797
|
-
description: "Claude Sonnet 4.6 with 1M token context window (high reasoning)",
|
|
6798
|
-
updateArgs: {
|
|
6799
|
-
context_window: 9500000,
|
|
6800
|
-
max_output_tokens: 128000,
|
|
6801
|
-
reasoning_effort: "high",
|
|
6802
|
-
enable_reasoner: true,
|
|
6803
|
-
parallel_tool_calls: true
|
|
6804
|
-
}
|
|
6805
|
-
},
|
|
6806
|
-
{
|
|
6807
|
-
id: "sonnet-1m-no-reasoning",
|
|
6808
|
-
handle: "anthropic/claude-sonnet-4-6",
|
|
6809
|
-
label: "Sonnet 4.6 1M",
|
|
6810
|
-
description: "Sonnet 4.6 1M with no reasoning (faster)",
|
|
6811
|
-
updateArgs: {
|
|
6812
|
-
context_window: 9500000,
|
|
6813
|
-
max_output_tokens: 128000,
|
|
6814
|
-
reasoning_effort: "none",
|
|
6815
|
-
enable_reasoner: false,
|
|
6816
|
-
parallel_tool_calls: true
|
|
6817
|
-
}
|
|
6818
|
-
},
|
|
6819
|
-
{
|
|
6820
|
-
id: "sonnet-1m-low",
|
|
6821
|
-
handle: "anthropic/claude-sonnet-4-6",
|
|
6822
|
-
label: "Sonnet 4.6 1M",
|
|
6823
|
-
description: "Sonnet 4.6 1M (low reasoning)",
|
|
6824
|
-
updateArgs: {
|
|
6825
|
-
context_window: 9500000,
|
|
6826
|
-
max_output_tokens: 128000,
|
|
6827
|
-
reasoning_effort: "low",
|
|
6828
|
-
enable_reasoner: true,
|
|
6829
|
-
max_reasoning_tokens: 4000,
|
|
6830
|
-
parallel_tool_calls: true
|
|
6831
|
-
}
|
|
6832
|
-
},
|
|
6833
|
-
{
|
|
6834
|
-
id: "sonnet-1m-medium",
|
|
6835
|
-
handle: "anthropic/claude-sonnet-4-6",
|
|
6836
|
-
label: "Sonnet 4.6 1M",
|
|
6837
|
-
description: "Sonnet 4.6 1M (med reasoning)",
|
|
6838
|
-
updateArgs: {
|
|
6839
|
-
context_window: 9500000,
|
|
6840
|
-
max_output_tokens: 128000,
|
|
6841
|
-
reasoning_effort: "medium",
|
|
6842
|
-
enable_reasoner: true,
|
|
6843
|
-
max_reasoning_tokens: 12000,
|
|
6844
|
-
parallel_tool_calls: true
|
|
6845
|
-
}
|
|
6846
|
-
},
|
|
6847
|
-
{
|
|
6848
|
-
id: "sonnet-1m-xhigh",
|
|
6849
|
-
handle: "anthropic/claude-sonnet-4-6",
|
|
6850
|
-
label: "Sonnet 4.6 1M",
|
|
6851
|
-
description: "Sonnet 4.6 1M (max reasoning)",
|
|
6852
|
-
updateArgs: {
|
|
6853
|
-
context_window: 9500000,
|
|
6854
|
-
max_output_tokens: 128000,
|
|
6855
|
-
reasoning_effort: "xhigh",
|
|
6856
|
-
enable_reasoner: true,
|
|
6857
|
-
parallel_tool_calls: true
|
|
6858
|
-
}
|
|
6859
|
-
},
|
|
6860
|
-
{
|
|
6861
|
-
id: "opus-4.6-high",
|
|
6862
|
-
handle: "anthropic/claude-opus-4-6",
|
|
6863
|
-
label: "Opus 4.6",
|
|
6864
|
-
description: "Opus 4.6 (high reasoning)",
|
|
6865
|
-
updateArgs: {
|
|
6866
|
-
context_window: 200000,
|
|
6867
|
-
max_output_tokens: 128000,
|
|
6868
|
-
reasoning_effort: "high",
|
|
6869
|
-
enable_reasoner: true,
|
|
6870
|
-
parallel_tool_calls: true
|
|
6871
|
-
}
|
|
6872
|
-
},
|
|
6873
|
-
{
|
|
6874
|
-
id: "opus-4.6-no-reasoning",
|
|
6875
|
-
handle: "anthropic/claude-opus-4-6",
|
|
6876
|
-
label: "Opus 4.6",
|
|
6877
|
-
description: "Opus 4.6 with no reasoning (faster)",
|
|
6878
|
-
updateArgs: {
|
|
6879
|
-
context_window: 200000,
|
|
6880
|
-
max_output_tokens: 128000,
|
|
6881
|
-
reasoning_effort: "none",
|
|
6882
|
-
enable_reasoner: false,
|
|
6883
|
-
parallel_tool_calls: true
|
|
6884
|
-
}
|
|
6885
|
-
},
|
|
6886
|
-
{
|
|
6887
|
-
id: "opus-4.6-low",
|
|
6888
|
-
handle: "anthropic/claude-opus-4-6",
|
|
6889
|
-
label: "Opus 4.6",
|
|
6890
|
-
description: "Opus 4.6 (low reasoning)",
|
|
6891
|
-
updateArgs: {
|
|
6892
|
-
context_window: 200000,
|
|
6893
|
-
max_output_tokens: 128000,
|
|
6894
|
-
reasoning_effort: "low",
|
|
6895
|
-
enable_reasoner: true,
|
|
6896
|
-
max_reasoning_tokens: 4000,
|
|
6897
|
-
parallel_tool_calls: true
|
|
6898
|
-
}
|
|
6899
|
-
},
|
|
6900
|
-
{
|
|
6901
|
-
id: "opus-4.6-medium",
|
|
6902
|
-
handle: "anthropic/claude-opus-4-6",
|
|
6903
|
-
label: "Opus 4.6",
|
|
6904
|
-
description: "Opus 4.6 (med reasoning)",
|
|
6905
|
-
updateArgs: {
|
|
6906
|
-
context_window: 200000,
|
|
6907
|
-
max_output_tokens: 128000,
|
|
6908
|
-
reasoning_effort: "medium",
|
|
6909
|
-
enable_reasoner: true,
|
|
6910
|
-
max_reasoning_tokens: 12000,
|
|
6911
|
-
parallel_tool_calls: true
|
|
6912
|
-
}
|
|
6913
|
-
},
|
|
6914
|
-
{
|
|
6915
|
-
id: "opus-4.6-xhigh",
|
|
6916
|
-
handle: "anthropic/claude-opus-4-6",
|
|
6917
|
-
label: "Opus 4.6",
|
|
6918
|
-
description: "Opus 4.6 (max reasoning)",
|
|
6919
|
-
updateArgs: {
|
|
6920
|
-
context_window: 200000,
|
|
6921
|
-
max_output_tokens: 128000,
|
|
6922
|
-
reasoning_effort: "xhigh",
|
|
6923
|
-
enable_reasoner: true,
|
|
6924
|
-
parallel_tool_calls: true
|
|
6925
|
-
}
|
|
6926
|
-
},
|
|
6927
|
-
{
|
|
6928
|
-
id: "opus-4.7-medium",
|
|
6929
|
-
handle: "anthropic/claude-opus-4-7",
|
|
6930
|
-
label: "Opus 4.7",
|
|
6931
|
-
description: "Opus 4.7 (med reasoning)",
|
|
6932
|
-
updateArgs: {
|
|
6933
|
-
context_window: 200000,
|
|
6934
|
-
max_output_tokens: 128000,
|
|
6935
|
-
reasoning_effort: "medium",
|
|
6936
|
-
enable_reasoner: true,
|
|
6937
|
-
max_reasoning_tokens: 12000,
|
|
6938
|
-
parallel_tool_calls: true
|
|
6939
|
-
}
|
|
6940
|
-
},
|
|
6941
|
-
{
|
|
6942
|
-
id: "opus-4.7-low",
|
|
6943
|
-
handle: "anthropic/claude-opus-4-7",
|
|
6944
|
-
label: "Opus 4.7",
|
|
6945
|
-
description: "Opus 4.7 (low reasoning)",
|
|
6946
|
-
updateArgs: {
|
|
6947
|
-
context_window: 200000,
|
|
6948
|
-
max_output_tokens: 128000,
|
|
6949
|
-
reasoning_effort: "low",
|
|
6950
|
-
enable_reasoner: true,
|
|
6951
|
-
max_reasoning_tokens: 4000,
|
|
6952
|
-
parallel_tool_calls: true
|
|
6953
|
-
}
|
|
6954
|
-
},
|
|
6955
|
-
{
|
|
6956
|
-
id: "opus-4.7-high",
|
|
6957
|
-
handle: "anthropic/claude-opus-4-7",
|
|
6958
|
-
label: "Opus 4.7",
|
|
6959
|
-
description: "Opus 4.7 (high reasoning)",
|
|
6960
|
-
updateArgs: {
|
|
6961
|
-
context_window: 200000,
|
|
6962
|
-
max_output_tokens: 128000,
|
|
6963
|
-
reasoning_effort: "high",
|
|
6964
|
-
enable_reasoner: true,
|
|
6965
|
-
parallel_tool_calls: true
|
|
6966
|
-
}
|
|
6967
|
-
},
|
|
6968
|
-
{
|
|
6969
|
-
id: "opus-4.7-xhigh",
|
|
6970
|
-
handle: "anthropic/claude-opus-4-7",
|
|
6971
|
-
label: "Opus 4.7",
|
|
6972
|
-
description: "Opus 4.7 (extra-high reasoning)",
|
|
6973
|
-
updateArgs: {
|
|
6974
|
-
context_window: 200000,
|
|
6975
|
-
max_output_tokens: 128000,
|
|
6976
|
-
reasoning_effort: "xhigh",
|
|
6977
|
-
enable_reasoner: true,
|
|
6978
|
-
parallel_tool_calls: true
|
|
6979
|
-
}
|
|
6980
|
-
},
|
|
6981
|
-
{
|
|
6982
|
-
id: "opus-4.7-max",
|
|
6983
|
-
handle: "anthropic/claude-opus-4-7",
|
|
6984
|
-
label: "Opus 4.7",
|
|
6985
|
-
description: "Opus 4.7 (max reasoning)",
|
|
6986
|
-
updateArgs: {
|
|
6987
|
-
context_window: 200000,
|
|
6988
|
-
max_output_tokens: 128000,
|
|
6989
|
-
reasoning_effort: "max",
|
|
6990
|
-
enable_reasoner: true,
|
|
6991
|
-
parallel_tool_calls: true
|
|
6992
|
-
}
|
|
6993
|
-
},
|
|
6994
|
-
{
|
|
6995
|
-
id: "opus-4.5",
|
|
6996
|
-
handle: "anthropic/claude-opus-4-5-20251101",
|
|
6997
|
-
label: "Opus 4.5",
|
|
6998
|
-
description: "Opus 4.5 (high reasoning)",
|
|
6999
|
-
updateArgs: {
|
|
7000
|
-
context_window: 180000,
|
|
7001
|
-
max_output_tokens: 64000,
|
|
7002
|
-
reasoning_effort: "high",
|
|
7003
|
-
enable_reasoner: true,
|
|
7004
|
-
max_reasoning_tokens: 31999,
|
|
7005
|
-
parallel_tool_calls: true
|
|
7006
|
-
}
|
|
7007
|
-
},
|
|
7008
|
-
{
|
|
7009
|
-
id: "opus-4.5-no-reasoning",
|
|
7010
|
-
handle: "anthropic/claude-opus-4-5-20251101",
|
|
7011
|
-
label: "Opus 4.5",
|
|
7012
|
-
description: "Opus 4.5 with no reasoning (faster)",
|
|
7013
|
-
updateArgs: {
|
|
7014
|
-
context_window: 180000,
|
|
7015
|
-
max_output_tokens: 64000,
|
|
7016
|
-
reasoning_effort: "none",
|
|
7017
|
-
enable_reasoner: false,
|
|
7018
|
-
parallel_tool_calls: true
|
|
7019
|
-
}
|
|
7020
|
-
},
|
|
7021
|
-
{
|
|
7022
|
-
id: "opus-4.5-low",
|
|
7023
|
-
handle: "anthropic/claude-opus-4-5-20251101",
|
|
7024
|
-
label: "Opus 4.5",
|
|
7025
|
-
description: "Opus 4.5 (low reasoning)",
|
|
7026
|
-
updateArgs: {
|
|
7027
|
-
context_window: 180000,
|
|
7028
|
-
max_output_tokens: 64000,
|
|
7029
|
-
reasoning_effort: "low",
|
|
7030
|
-
enable_reasoner: true,
|
|
7031
|
-
max_reasoning_tokens: 4000,
|
|
7032
|
-
parallel_tool_calls: true
|
|
7033
|
-
}
|
|
7034
|
-
},
|
|
7035
|
-
{
|
|
7036
|
-
id: "opus-4.5-medium",
|
|
7037
|
-
handle: "anthropic/claude-opus-4-5-20251101",
|
|
7038
|
-
label: "Opus 4.5",
|
|
7039
|
-
description: "Opus 4.5 (med reasoning)",
|
|
7040
|
-
updateArgs: {
|
|
7041
|
-
context_window: 180000,
|
|
7042
|
-
max_output_tokens: 64000,
|
|
7043
|
-
reasoning_effort: "medium",
|
|
7044
|
-
enable_reasoner: true,
|
|
7045
|
-
max_reasoning_tokens: 12000,
|
|
7046
|
-
parallel_tool_calls: true
|
|
7047
|
-
}
|
|
7048
|
-
},
|
|
7049
|
-
{
|
|
7050
|
-
id: "bedrock-opus-4.5",
|
|
7051
|
-
handle: "bedrock/us.anthropic.claude-opus-4-5-20251101-v1:0",
|
|
7052
|
-
label: "Bedrock Opus 4.5",
|
|
7053
|
-
shortLabel: "Opus 4.5 BR",
|
|
7054
|
-
description: "Opus 4.5 via AWS Bedrock",
|
|
7055
|
-
updateArgs: {
|
|
7056
|
-
context_window: 180000,
|
|
7057
|
-
max_output_tokens: 64000,
|
|
7058
|
-
max_reasoning_tokens: 31999,
|
|
7059
|
-
parallel_tool_calls: true
|
|
7060
|
-
}
|
|
7061
|
-
},
|
|
7062
|
-
{
|
|
7063
|
-
id: "haiku",
|
|
7064
|
-
handle: "anthropic/claude-haiku-4-5",
|
|
7065
|
-
label: "Haiku 4.5",
|
|
7066
|
-
description: "Haiku 4.5",
|
|
7067
|
-
updateArgs: {
|
|
7068
|
-
context_window: 180000,
|
|
7069
|
-
max_output_tokens: 64000,
|
|
7070
|
-
parallel_tool_calls: true
|
|
7071
|
-
}
|
|
7072
|
-
},
|
|
7073
|
-
{
|
|
7074
|
-
id: "gpt-5.5-plus-pro-none",
|
|
7075
|
-
handle: "chatgpt-plus-pro/gpt-5.5",
|
|
7076
|
-
label: "GPT-5.5 (ChatGPT)",
|
|
7077
|
-
description: "GPT-5.5 (no reasoning) via ChatGPT Plus/Pro",
|
|
7078
|
-
updateArgs: {
|
|
7079
|
-
reasoning_effort: "none",
|
|
7080
|
-
verbosity: "low",
|
|
7081
|
-
context_window: 272000,
|
|
7082
|
-
max_output_tokens: 128000,
|
|
7083
|
-
parallel_tool_calls: true
|
|
7084
|
-
}
|
|
7085
|
-
},
|
|
7086
|
-
{
|
|
7087
|
-
id: "gpt-5.5-plus-pro-low",
|
|
7088
|
-
handle: "chatgpt-plus-pro/gpt-5.5",
|
|
7089
|
-
label: "GPT-5.5 (ChatGPT)",
|
|
7090
|
-
description: "GPT-5.5 (low reasoning) via ChatGPT Plus/Pro",
|
|
7091
|
-
updateArgs: {
|
|
7092
|
-
reasoning_effort: "low",
|
|
7093
|
-
verbosity: "low",
|
|
7094
|
-
context_window: 272000,
|
|
7095
|
-
max_output_tokens: 128000,
|
|
7096
|
-
parallel_tool_calls: true
|
|
7097
|
-
}
|
|
7098
|
-
},
|
|
7099
|
-
{
|
|
7100
|
-
id: "gpt-5.5-plus-pro-medium",
|
|
7101
|
-
handle: "chatgpt-plus-pro/gpt-5.5",
|
|
7102
|
-
label: "GPT-5.5 (ChatGPT)",
|
|
7103
|
-
description: "GPT-5.5 (med reasoning) via ChatGPT Plus/Pro",
|
|
7104
|
-
updateArgs: {
|
|
7105
|
-
reasoning_effort: "medium",
|
|
7106
|
-
verbosity: "low",
|
|
7107
|
-
context_window: 272000,
|
|
7108
|
-
max_output_tokens: 128000,
|
|
7109
|
-
parallel_tool_calls: true
|
|
7110
|
-
}
|
|
7111
|
-
},
|
|
7112
|
-
{
|
|
7113
|
-
id: "gpt-5.5-plus-pro-high",
|
|
7114
|
-
handle: "chatgpt-plus-pro/gpt-5.5",
|
|
7115
|
-
label: "GPT-5.5 (ChatGPT)",
|
|
7116
|
-
description: "OpenAI's most capable model (high reasoning) via ChatGPT Plus/Pro",
|
|
7117
|
-
updateArgs: {
|
|
7118
|
-
reasoning_effort: "high",
|
|
7119
|
-
verbosity: "low",
|
|
7120
|
-
context_window: 272000,
|
|
7121
|
-
max_output_tokens: 128000,
|
|
7122
|
-
parallel_tool_calls: true
|
|
7123
|
-
}
|
|
7124
|
-
},
|
|
7125
|
-
{
|
|
7126
|
-
id: "gpt-5.5-plus-pro-xhigh",
|
|
7127
|
-
handle: "chatgpt-plus-pro/gpt-5.5",
|
|
7128
|
-
label: "GPT-5.5 (ChatGPT)",
|
|
7129
|
-
description: "GPT-5.5 (max reasoning) via ChatGPT Plus/Pro",
|
|
7130
|
-
updateArgs: {
|
|
7131
|
-
reasoning_effort: "xhigh",
|
|
7132
|
-
verbosity: "low",
|
|
7133
|
-
context_window: 272000,
|
|
7134
|
-
max_output_tokens: 128000,
|
|
7135
|
-
parallel_tool_calls: true
|
|
7136
|
-
}
|
|
7137
|
-
},
|
|
7138
|
-
{
|
|
7139
|
-
id: "gpt-5.5-fast-plus-pro-none",
|
|
7140
|
-
handle: "chatgpt-plus-pro/gpt-5.5-fast",
|
|
7141
|
-
label: "GPT-5.5 Fast (ChatGPT)",
|
|
7142
|
-
description: "GPT-5.5 Fast (no reasoning) via ChatGPT Plus/Pro",
|
|
7143
|
-
updateArgs: {
|
|
7144
|
-
reasoning_effort: "none",
|
|
7145
|
-
verbosity: "low",
|
|
7146
|
-
context_window: 272000,
|
|
7147
|
-
max_output_tokens: 128000,
|
|
7148
|
-
parallel_tool_calls: true
|
|
7149
|
-
}
|
|
7150
|
-
},
|
|
7151
|
-
{
|
|
7152
|
-
id: "gpt-5.5-fast-plus-pro-low",
|
|
7153
|
-
handle: "chatgpt-plus-pro/gpt-5.5-fast",
|
|
7154
|
-
label: "GPT-5.5 Fast (ChatGPT)",
|
|
7155
|
-
description: "GPT-5.5 Fast (low reasoning) via ChatGPT Plus/Pro",
|
|
7156
|
-
updateArgs: {
|
|
7157
|
-
reasoning_effort: "low",
|
|
7158
|
-
verbosity: "low",
|
|
7159
|
-
context_window: 272000,
|
|
7160
|
-
max_output_tokens: 128000,
|
|
7161
|
-
parallel_tool_calls: true
|
|
7162
|
-
}
|
|
7163
|
-
},
|
|
7164
|
-
{
|
|
7165
|
-
id: "gpt-5.5-fast-plus-pro-medium",
|
|
7166
|
-
handle: "chatgpt-plus-pro/gpt-5.5-fast",
|
|
7167
|
-
label: "GPT-5.5 Fast (ChatGPT)",
|
|
7168
|
-
description: "GPT-5.5 Fast (med reasoning) via ChatGPT Plus/Pro",
|
|
7169
|
-
updateArgs: {
|
|
7170
|
-
reasoning_effort: "medium",
|
|
7171
|
-
verbosity: "low",
|
|
7172
|
-
context_window: 272000,
|
|
7173
|
-
max_output_tokens: 128000,
|
|
7174
|
-
parallel_tool_calls: true
|
|
7175
|
-
}
|
|
7176
|
-
},
|
|
7177
|
-
{
|
|
7178
|
-
id: "gpt-5.5-fast-plus-pro-high",
|
|
7179
|
-
handle: "chatgpt-plus-pro/gpt-5.5-fast",
|
|
7180
|
-
label: "GPT-5.5 Fast (ChatGPT)",
|
|
7181
|
-
description: "GPT-5.5 Fast (high reasoning) via ChatGPT Plus/Pro",
|
|
7182
|
-
updateArgs: {
|
|
7183
|
-
reasoning_effort: "high",
|
|
7184
|
-
verbosity: "low",
|
|
7185
|
-
context_window: 272000,
|
|
7186
|
-
max_output_tokens: 128000,
|
|
7187
|
-
parallel_tool_calls: true
|
|
7188
|
-
}
|
|
7189
|
-
},
|
|
7190
|
-
{
|
|
7191
|
-
id: "gpt-5.5-fast-plus-pro-xhigh",
|
|
7192
|
-
handle: "chatgpt-plus-pro/gpt-5.5-fast",
|
|
7193
|
-
label: "GPT-5.5 Fast (ChatGPT)",
|
|
7194
|
-
description: "GPT-5.5 Fast (max reasoning) via ChatGPT Plus/Pro",
|
|
7195
|
-
updateArgs: {
|
|
7196
|
-
reasoning_effort: "xhigh",
|
|
7197
|
-
verbosity: "low",
|
|
7198
|
-
context_window: 272000,
|
|
7199
|
-
max_output_tokens: 128000,
|
|
7200
|
-
parallel_tool_calls: true
|
|
7201
|
-
}
|
|
7202
|
-
},
|
|
7203
|
-
{
|
|
7204
|
-
id: "gpt-5.4-plus-pro-none",
|
|
7205
|
-
handle: "chatgpt-plus-pro/gpt-5.4",
|
|
7206
|
-
label: "GPT-5.4 (ChatGPT)",
|
|
7207
|
-
description: "GPT-5.4 (no reasoning) via ChatGPT Plus/Pro",
|
|
7208
|
-
updateArgs: {
|
|
7209
|
-
reasoning_effort: "none",
|
|
7210
|
-
verbosity: "low",
|
|
7211
|
-
context_window: 272000,
|
|
7212
|
-
max_output_tokens: 128000,
|
|
7213
|
-
parallel_tool_calls: true
|
|
7214
|
-
}
|
|
7215
|
-
},
|
|
7216
|
-
{
|
|
7217
|
-
id: "gpt-5.4-plus-pro-low",
|
|
7218
|
-
handle: "chatgpt-plus-pro/gpt-5.4",
|
|
7219
|
-
label: "GPT-5.4 (ChatGPT)",
|
|
7220
|
-
description: "GPT-5.4 (low reasoning) via ChatGPT Plus/Pro",
|
|
7221
|
-
updateArgs: {
|
|
7222
|
-
reasoning_effort: "low",
|
|
7223
|
-
verbosity: "low",
|
|
7224
|
-
context_window: 272000,
|
|
7225
|
-
max_output_tokens: 128000,
|
|
7226
|
-
parallel_tool_calls: true
|
|
7227
|
-
}
|
|
7228
|
-
},
|
|
7229
|
-
{
|
|
7230
|
-
id: "gpt-5.4-plus-pro-medium",
|
|
7231
|
-
handle: "chatgpt-plus-pro/gpt-5.4",
|
|
7232
|
-
label: "GPT-5.4 (ChatGPT)",
|
|
7233
|
-
description: "GPT-5.4 (med reasoning) via ChatGPT Plus/Pro",
|
|
7234
|
-
updateArgs: {
|
|
7235
|
-
reasoning_effort: "medium",
|
|
7236
|
-
verbosity: "low",
|
|
7237
|
-
context_window: 272000,
|
|
7238
|
-
max_output_tokens: 128000,
|
|
7239
|
-
parallel_tool_calls: true
|
|
7240
|
-
}
|
|
7241
|
-
},
|
|
7242
|
-
{
|
|
7243
|
-
id: "gpt-5.4-plus-pro-high",
|
|
7244
|
-
handle: "chatgpt-plus-pro/gpt-5.4",
|
|
7245
|
-
label: "GPT-5.4 (ChatGPT)",
|
|
7246
|
-
description: "OpenAI's most capable model (high reasoning) via ChatGPT Plus/Pro",
|
|
7247
|
-
updateArgs: {
|
|
7248
|
-
reasoning_effort: "high",
|
|
7249
|
-
verbosity: "low",
|
|
7250
|
-
context_window: 272000,
|
|
7251
|
-
max_output_tokens: 128000,
|
|
7252
|
-
parallel_tool_calls: true
|
|
7253
|
-
}
|
|
7254
|
-
},
|
|
7255
|
-
{
|
|
7256
|
-
id: "gpt-5.4-plus-pro-xhigh",
|
|
7257
|
-
handle: "chatgpt-plus-pro/gpt-5.4",
|
|
7258
|
-
label: "GPT-5.4 (ChatGPT)",
|
|
7259
|
-
description: "GPT-5.4 (max reasoning) via ChatGPT Plus/Pro",
|
|
7260
|
-
updateArgs: {
|
|
7261
|
-
reasoning_effort: "xhigh",
|
|
7262
|
-
verbosity: "low",
|
|
7263
|
-
context_window: 272000,
|
|
7264
|
-
max_output_tokens: 128000,
|
|
7265
|
-
parallel_tool_calls: true
|
|
7266
|
-
}
|
|
7267
|
-
},
|
|
7268
|
-
{
|
|
7269
|
-
id: "gpt-5.4-pro-plus-pro-medium",
|
|
7270
|
-
handle: "chatgpt-plus-pro/gpt-5.4-pro",
|
|
7271
|
-
label: "GPT-5.4 Pro (ChatGPT)",
|
|
7272
|
-
description: "GPT-5.4 Pro (med reasoning) via ChatGPT Plus/Pro",
|
|
7273
|
-
updateArgs: {
|
|
7274
|
-
reasoning_effort: "medium",
|
|
7275
|
-
verbosity: "low",
|
|
7276
|
-
context_window: 272000,
|
|
7277
|
-
max_output_tokens: 128000,
|
|
7278
|
-
parallel_tool_calls: true
|
|
7279
|
-
}
|
|
7280
|
-
},
|
|
7281
|
-
{
|
|
7282
|
-
id: "gpt-5.4-pro-plus-pro-high",
|
|
7283
|
-
handle: "chatgpt-plus-pro/gpt-5.4-pro",
|
|
7284
|
-
label: "GPT-5.4 Pro (ChatGPT)",
|
|
7285
|
-
description: "GPT-5.4 Pro (high reasoning) via ChatGPT Plus/Pro",
|
|
7286
|
-
updateArgs: {
|
|
7287
|
-
reasoning_effort: "high",
|
|
7288
|
-
verbosity: "low",
|
|
7289
|
-
context_window: 272000,
|
|
7290
|
-
max_output_tokens: 128000,
|
|
7291
|
-
parallel_tool_calls: true
|
|
7292
|
-
}
|
|
7293
|
-
},
|
|
7294
|
-
{
|
|
7295
|
-
id: "gpt-5.4-pro-plus-pro-xhigh",
|
|
7296
|
-
handle: "chatgpt-plus-pro/gpt-5.4-pro",
|
|
7297
|
-
label: "GPT-5.4 Pro (ChatGPT)",
|
|
7298
|
-
description: "GPT-5.4 Pro (max reasoning) via ChatGPT Plus/Pro",
|
|
7299
|
-
updateArgs: {
|
|
7300
|
-
reasoning_effort: "xhigh",
|
|
7301
|
-
verbosity: "low",
|
|
7302
|
-
context_window: 272000,
|
|
7303
|
-
max_output_tokens: 128000,
|
|
7304
|
-
parallel_tool_calls: true
|
|
7305
|
-
}
|
|
7306
|
-
},
|
|
7307
|
-
{
|
|
7308
|
-
id: "gpt-5.4-fast-plus-pro-none",
|
|
7309
|
-
handle: "chatgpt-plus-pro/gpt-5.4-fast",
|
|
7310
|
-
label: "GPT-5.4 Fast (ChatGPT)",
|
|
7311
|
-
description: "GPT-5.4 Fast (no reasoning) via ChatGPT Plus/Pro",
|
|
7312
|
-
updateArgs: {
|
|
7313
|
-
reasoning_effort: "none",
|
|
7314
|
-
verbosity: "low",
|
|
7315
|
-
context_window: 272000,
|
|
7316
|
-
max_output_tokens: 128000,
|
|
7317
|
-
parallel_tool_calls: true
|
|
7318
|
-
}
|
|
7319
|
-
},
|
|
7320
|
-
{
|
|
7321
|
-
id: "gpt-5.4-fast-plus-pro-low",
|
|
7322
|
-
handle: "chatgpt-plus-pro/gpt-5.4-fast",
|
|
7323
|
-
label: "GPT-5.4 Fast (ChatGPT)",
|
|
7324
|
-
description: "GPT-5.4 Fast (low reasoning) via ChatGPT Plus/Pro",
|
|
7325
|
-
updateArgs: {
|
|
7326
|
-
reasoning_effort: "low",
|
|
7327
|
-
verbosity: "low",
|
|
7328
|
-
context_window: 272000,
|
|
7329
|
-
max_output_tokens: 128000,
|
|
7330
|
-
parallel_tool_calls: true
|
|
7331
|
-
}
|
|
7332
|
-
},
|
|
7333
|
-
{
|
|
7334
|
-
id: "gpt-5.4-fast-plus-pro-medium",
|
|
7335
|
-
handle: "chatgpt-plus-pro/gpt-5.4-fast",
|
|
7336
|
-
label: "GPT-5.4 Fast (ChatGPT)",
|
|
7337
|
-
description: "GPT-5.4 Fast (med reasoning) via ChatGPT Plus/Pro",
|
|
7338
|
-
updateArgs: {
|
|
7339
|
-
reasoning_effort: "medium",
|
|
7340
|
-
verbosity: "low",
|
|
7341
|
-
context_window: 272000,
|
|
7342
|
-
max_output_tokens: 128000,
|
|
7343
|
-
parallel_tool_calls: true
|
|
7344
|
-
}
|
|
7345
|
-
},
|
|
7346
|
-
{
|
|
7347
|
-
id: "gpt-5.4-fast-plus-pro-high",
|
|
7348
|
-
handle: "chatgpt-plus-pro/gpt-5.4-fast",
|
|
7349
|
-
label: "GPT-5.4 Fast (ChatGPT)",
|
|
7350
|
-
description: "GPT-5.4 Fast (high reasoning) via ChatGPT Plus/Pro",
|
|
7351
|
-
updateArgs: {
|
|
7352
|
-
reasoning_effort: "high",
|
|
7353
|
-
verbosity: "low",
|
|
7354
|
-
context_window: 272000,
|
|
7355
|
-
max_output_tokens: 128000,
|
|
7356
|
-
parallel_tool_calls: true
|
|
7357
|
-
}
|
|
7358
|
-
},
|
|
7359
|
-
{
|
|
7360
|
-
id: "gpt-5.4-fast-plus-pro-xhigh",
|
|
7361
|
-
handle: "chatgpt-plus-pro/gpt-5.4-fast",
|
|
7362
|
-
label: "GPT-5.4 Fast (ChatGPT)",
|
|
7363
|
-
description: "GPT-5.4 Fast (max reasoning) via ChatGPT Plus/Pro",
|
|
7364
|
-
updateArgs: {
|
|
7365
|
-
reasoning_effort: "xhigh",
|
|
7366
|
-
verbosity: "low",
|
|
7367
|
-
context_window: 272000,
|
|
7368
|
-
max_output_tokens: 128000,
|
|
7369
|
-
parallel_tool_calls: true
|
|
7370
|
-
}
|
|
7371
|
-
},
|
|
7372
|
-
{
|
|
7373
|
-
id: "gpt-5.4-mini-plus-pro-none",
|
|
7374
|
-
handle: "chatgpt-plus-pro/gpt-5.4-mini",
|
|
7375
|
-
label: "GPT-5.4 Mini (ChatGPT)",
|
|
7376
|
-
description: "GPT-5.4 Mini (no reasoning) via ChatGPT Plus/Pro",
|
|
7377
|
-
updateArgs: {
|
|
7378
|
-
reasoning_effort: "none",
|
|
7379
|
-
verbosity: "low",
|
|
7380
|
-
context_window: 272000,
|
|
7381
|
-
max_output_tokens: 128000,
|
|
7382
|
-
parallel_tool_calls: true
|
|
7383
|
-
}
|
|
7384
|
-
},
|
|
7385
|
-
{
|
|
7386
|
-
id: "gpt-5.4-mini-plus-pro-low",
|
|
7387
|
-
handle: "chatgpt-plus-pro/gpt-5.4-mini",
|
|
7388
|
-
label: "GPT-5.4 Mini (ChatGPT)",
|
|
7389
|
-
description: "GPT-5.4 Mini (low reasoning) via ChatGPT Plus/Pro",
|
|
7390
|
-
updateArgs: {
|
|
7391
|
-
reasoning_effort: "low",
|
|
7392
|
-
verbosity: "low",
|
|
7393
|
-
context_window: 272000,
|
|
7394
|
-
max_output_tokens: 128000,
|
|
7395
|
-
parallel_tool_calls: true
|
|
7396
|
-
}
|
|
7397
|
-
},
|
|
7398
|
-
{
|
|
7399
|
-
id: "gpt-5.4-mini-plus-pro-medium",
|
|
7400
|
-
handle: "chatgpt-plus-pro/gpt-5.4-mini",
|
|
7401
|
-
label: "GPT-5.4 Mini (ChatGPT)",
|
|
7402
|
-
description: "GPT-5.4 Mini (med reasoning) via ChatGPT Plus/Pro",
|
|
7403
|
-
updateArgs: {
|
|
7404
|
-
reasoning_effort: "medium",
|
|
7405
|
-
verbosity: "low",
|
|
7406
|
-
context_window: 272000,
|
|
7407
|
-
max_output_tokens: 128000,
|
|
7408
|
-
parallel_tool_calls: true
|
|
7409
|
-
}
|
|
7410
|
-
},
|
|
7411
|
-
{
|
|
7412
|
-
id: "gpt-5.4-mini-plus-pro-high",
|
|
7413
|
-
handle: "chatgpt-plus-pro/gpt-5.4-mini",
|
|
7414
|
-
label: "GPT-5.4 Mini (ChatGPT)",
|
|
7415
|
-
description: "GPT-5.4 Mini (high reasoning) via ChatGPT Plus/Pro",
|
|
7416
|
-
updateArgs: {
|
|
7417
|
-
reasoning_effort: "high",
|
|
7418
|
-
verbosity: "low",
|
|
7419
|
-
context_window: 272000,
|
|
7420
|
-
max_output_tokens: 128000,
|
|
7421
|
-
parallel_tool_calls: true
|
|
7422
|
-
}
|
|
7423
|
-
},
|
|
7424
|
-
{
|
|
7425
|
-
id: "gpt-5.4-mini-plus-pro-xhigh",
|
|
7426
|
-
handle: "chatgpt-plus-pro/gpt-5.4-mini",
|
|
7427
|
-
label: "GPT-5.4 Mini (ChatGPT)",
|
|
7428
|
-
description: "GPT-5.4 Mini (max reasoning) via ChatGPT Plus/Pro",
|
|
7429
|
-
updateArgs: {
|
|
7430
|
-
reasoning_effort: "xhigh",
|
|
7431
|
-
verbosity: "low",
|
|
7432
|
-
context_window: 272000,
|
|
7433
|
-
max_output_tokens: 128000,
|
|
7434
|
-
parallel_tool_calls: true
|
|
7435
|
-
}
|
|
7436
|
-
},
|
|
7437
|
-
{
|
|
7438
|
-
id: "gpt-5.3-codex-spark-plus-pro-none",
|
|
7439
|
-
handle: "chatgpt-plus-pro/gpt-5.3-codex-spark",
|
|
7440
|
-
label: "GPT-5.3 Codex Spark (ChatGPT)",
|
|
7441
|
-
description: "GPT-5.3 Codex Spark (no reasoning) via ChatGPT Plus/Pro",
|
|
7442
|
-
updateArgs: {
|
|
7443
|
-
reasoning_effort: "none",
|
|
7444
|
-
verbosity: "low",
|
|
7445
|
-
context_window: 128000,
|
|
7446
|
-
max_output_tokens: 128000,
|
|
7447
|
-
parallel_tool_calls: true
|
|
7448
|
-
}
|
|
7449
|
-
},
|
|
7450
|
-
{
|
|
7451
|
-
id: "gpt-5.3-codex-spark-plus-pro-low",
|
|
7452
|
-
handle: "chatgpt-plus-pro/gpt-5.3-codex-spark",
|
|
7453
|
-
label: "GPT-5.3 Codex Spark (ChatGPT)",
|
|
7454
|
-
description: "GPT-5.3 Codex Spark (low reasoning) via ChatGPT Plus/Pro",
|
|
7455
|
-
updateArgs: {
|
|
7456
|
-
reasoning_effort: "low",
|
|
7457
|
-
verbosity: "low",
|
|
7458
|
-
context_window: 128000,
|
|
7459
|
-
max_output_tokens: 128000,
|
|
7460
|
-
parallel_tool_calls: true
|
|
7461
|
-
}
|
|
7462
|
-
},
|
|
7463
|
-
{
|
|
7464
|
-
id: "gpt-5.3-codex-spark-plus-pro-medium",
|
|
7465
|
-
handle: "chatgpt-plus-pro/gpt-5.3-codex-spark",
|
|
7466
|
-
label: "GPT-5.3 Codex Spark (ChatGPT)",
|
|
7467
|
-
description: "GPT-5.3 Codex Spark (med reasoning) via ChatGPT Plus/Pro",
|
|
7468
|
-
updateArgs: {
|
|
7469
|
-
reasoning_effort: "medium",
|
|
7470
|
-
verbosity: "low",
|
|
7471
|
-
context_window: 128000,
|
|
7472
|
-
max_output_tokens: 128000,
|
|
7473
|
-
parallel_tool_calls: true
|
|
7474
|
-
}
|
|
7475
|
-
},
|
|
7476
|
-
{
|
|
7477
|
-
id: "gpt-5.3-codex-spark-plus-pro-high",
|
|
7478
|
-
handle: "chatgpt-plus-pro/gpt-5.3-codex-spark",
|
|
7479
|
-
label: "GPT-5.3 Codex Spark (ChatGPT)",
|
|
7480
|
-
description: "GPT-5.3 Codex Spark (high reasoning) via ChatGPT Plus/Pro",
|
|
7481
|
-
updateArgs: {
|
|
7482
|
-
reasoning_effort: "high",
|
|
7483
|
-
verbosity: "low",
|
|
7484
|
-
context_window: 128000,
|
|
7485
|
-
max_output_tokens: 128000,
|
|
7486
|
-
parallel_tool_calls: true
|
|
7487
|
-
}
|
|
7488
|
-
},
|
|
7489
|
-
{
|
|
7490
|
-
id: "gpt-5.3-codex-spark-plus-pro-xhigh",
|
|
7491
|
-
handle: "chatgpt-plus-pro/gpt-5.3-codex-spark",
|
|
7492
|
-
label: "GPT-5.3 Codex Spark (ChatGPT)",
|
|
7493
|
-
description: "GPT-5.3 Codex Spark (max reasoning) via ChatGPT Plus/Pro",
|
|
7494
|
-
updateArgs: {
|
|
7495
|
-
reasoning_effort: "xhigh",
|
|
7496
|
-
verbosity: "low",
|
|
7497
|
-
context_window: 128000,
|
|
7498
|
-
max_output_tokens: 128000,
|
|
7499
|
-
parallel_tool_calls: true
|
|
7500
|
-
}
|
|
7501
|
-
},
|
|
7502
|
-
{
|
|
7503
|
-
id: "gpt-5.5-none",
|
|
7504
|
-
handle: "openai/gpt-5.5",
|
|
7505
|
-
label: "GPT-5.5",
|
|
7506
|
-
description: "OpenAI's most capable model (no reasoning)",
|
|
7507
|
-
updateArgs: {
|
|
7508
|
-
reasoning_effort: "none",
|
|
7509
|
-
verbosity: "medium",
|
|
7510
|
-
context_window: 272000,
|
|
7511
|
-
max_output_tokens: 128000,
|
|
7512
|
-
parallel_tool_calls: true
|
|
7513
|
-
}
|
|
7514
|
-
},
|
|
7515
|
-
{
|
|
7516
|
-
id: "gpt-5.5-low",
|
|
7517
|
-
handle: "openai/gpt-5.5",
|
|
7518
|
-
label: "GPT-5.5",
|
|
7519
|
-
description: "OpenAI's most capable model (low reasoning)",
|
|
7520
|
-
updateArgs: {
|
|
7521
|
-
reasoning_effort: "low",
|
|
7522
|
-
verbosity: "medium",
|
|
7523
|
-
context_window: 272000,
|
|
7524
|
-
max_output_tokens: 128000,
|
|
7525
|
-
parallel_tool_calls: true
|
|
7526
|
-
}
|
|
7527
|
-
},
|
|
7528
|
-
{
|
|
7529
|
-
id: "gpt-5.5-medium",
|
|
7530
|
-
handle: "openai/gpt-5.5",
|
|
7531
|
-
label: "GPT-5.5",
|
|
7532
|
-
description: "OpenAI's most capable model (med reasoning)",
|
|
7533
|
-
updateArgs: {
|
|
7534
|
-
reasoning_effort: "medium",
|
|
7535
|
-
verbosity: "medium",
|
|
7536
|
-
context_window: 272000,
|
|
7537
|
-
max_output_tokens: 128000,
|
|
7538
|
-
parallel_tool_calls: true
|
|
7539
|
-
}
|
|
7540
|
-
},
|
|
7541
|
-
{
|
|
7542
|
-
id: "gpt-5.5-high",
|
|
7543
|
-
handle: "openai/gpt-5.5",
|
|
7544
|
-
label: "GPT-5.5",
|
|
7545
|
-
description: "OpenAI's most capable model (high reasoning)",
|
|
7546
|
-
updateArgs: {
|
|
7547
|
-
reasoning_effort: "high",
|
|
7548
|
-
verbosity: "medium",
|
|
7549
|
-
context_window: 272000,
|
|
7550
|
-
max_output_tokens: 128000,
|
|
7551
|
-
parallel_tool_calls: true
|
|
7552
|
-
}
|
|
7553
|
-
},
|
|
7554
|
-
{
|
|
7555
|
-
id: "gpt-5.5-xhigh",
|
|
7556
|
-
handle: "openai/gpt-5.5",
|
|
7557
|
-
label: "GPT-5.5",
|
|
7558
|
-
description: "OpenAI's most capable model (max reasoning)",
|
|
7559
|
-
updateArgs: {
|
|
7560
|
-
reasoning_effort: "xhigh",
|
|
7561
|
-
verbosity: "medium",
|
|
7562
|
-
context_window: 272000,
|
|
7563
|
-
max_output_tokens: 128000,
|
|
7564
|
-
parallel_tool_calls: true
|
|
7565
|
-
}
|
|
7566
|
-
},
|
|
7567
|
-
{
|
|
7568
|
-
id: "gpt-5.4-none",
|
|
7569
|
-
handle: "openai/gpt-5.4",
|
|
7570
|
-
label: "GPT-5.4",
|
|
7571
|
-
description: "OpenAI's most capable model (no reasoning)",
|
|
7572
|
-
updateArgs: {
|
|
7573
|
-
reasoning_effort: "none",
|
|
7574
|
-
verbosity: "medium",
|
|
7575
|
-
context_window: 272000,
|
|
7576
|
-
max_output_tokens: 128000,
|
|
7577
|
-
parallel_tool_calls: true
|
|
7578
|
-
}
|
|
7579
|
-
},
|
|
7580
|
-
{
|
|
7581
|
-
id: "gpt-5.4-low",
|
|
7582
|
-
handle: "openai/gpt-5.4",
|
|
7583
|
-
label: "GPT-5.4",
|
|
7584
|
-
description: "OpenAI's most capable model (low reasoning)",
|
|
7585
|
-
updateArgs: {
|
|
7586
|
-
reasoning_effort: "low",
|
|
7587
|
-
verbosity: "medium",
|
|
7588
|
-
context_window: 272000,
|
|
7589
|
-
max_output_tokens: 128000,
|
|
7590
|
-
parallel_tool_calls: true
|
|
7591
|
-
}
|
|
7592
|
-
},
|
|
7593
|
-
{
|
|
7594
|
-
id: "gpt-5.4-medium",
|
|
7595
|
-
handle: "openai/gpt-5.4",
|
|
7596
|
-
label: "GPT-5.4",
|
|
7597
|
-
description: "OpenAI's most capable model (med reasoning)",
|
|
7598
|
-
updateArgs: {
|
|
7599
|
-
reasoning_effort: "medium",
|
|
7600
|
-
verbosity: "medium",
|
|
7601
|
-
context_window: 272000,
|
|
7602
|
-
max_output_tokens: 128000,
|
|
7603
|
-
parallel_tool_calls: true
|
|
7604
|
-
}
|
|
7605
|
-
},
|
|
7606
|
-
{
|
|
7607
|
-
id: "gpt-5.4-high",
|
|
7608
|
-
handle: "openai/gpt-5.4",
|
|
7609
|
-
label: "GPT-5.4",
|
|
7610
|
-
description: "OpenAI's most capable model (high reasoning)",
|
|
7611
|
-
updateArgs: {
|
|
7612
|
-
reasoning_effort: "high",
|
|
7613
|
-
verbosity: "medium",
|
|
7614
|
-
context_window: 272000,
|
|
7615
|
-
max_output_tokens: 128000,
|
|
7616
|
-
parallel_tool_calls: true
|
|
7617
|
-
}
|
|
7618
|
-
},
|
|
7619
|
-
{
|
|
7620
|
-
id: "gpt-5.4-xhigh",
|
|
7621
|
-
handle: "openai/gpt-5.4",
|
|
7622
|
-
label: "GPT-5.4",
|
|
7623
|
-
description: "OpenAI's most capable model (max reasoning)",
|
|
7624
|
-
updateArgs: {
|
|
7625
|
-
reasoning_effort: "xhigh",
|
|
7626
|
-
verbosity: "medium",
|
|
7627
|
-
context_window: 272000,
|
|
7628
|
-
max_output_tokens: 128000,
|
|
7629
|
-
parallel_tool_calls: true
|
|
7630
|
-
}
|
|
7631
|
-
},
|
|
7632
|
-
{
|
|
7633
|
-
id: "gpt-5.4-fast-none",
|
|
7634
|
-
handle: "openai/gpt-5.4-fast",
|
|
7635
|
-
label: "GPT-5.4 Fast",
|
|
7636
|
-
description: "GPT-5.4 with priority service tier (no reasoning)",
|
|
7637
|
-
updateArgs: {
|
|
7638
|
-
reasoning_effort: "none",
|
|
7639
|
-
verbosity: "medium",
|
|
7640
|
-
context_window: 272000,
|
|
7641
|
-
max_output_tokens: 128000,
|
|
7642
|
-
parallel_tool_calls: true
|
|
7643
|
-
}
|
|
7644
|
-
},
|
|
7645
|
-
{
|
|
7646
|
-
id: "gpt-5.4-fast-low",
|
|
7647
|
-
handle: "openai/gpt-5.4-fast",
|
|
7648
|
-
label: "GPT-5.4 Fast",
|
|
7649
|
-
description: "GPT-5.4 with priority service tier (low reasoning)",
|
|
7650
|
-
updateArgs: {
|
|
7651
|
-
reasoning_effort: "low",
|
|
7652
|
-
verbosity: "medium",
|
|
7653
|
-
context_window: 272000,
|
|
7654
|
-
max_output_tokens: 128000,
|
|
7655
|
-
parallel_tool_calls: true
|
|
7656
|
-
}
|
|
7657
|
-
},
|
|
7658
|
-
{
|
|
7659
|
-
id: "gpt-5.4-fast-medium",
|
|
7660
|
-
handle: "openai/gpt-5.4-fast",
|
|
7661
|
-
label: "GPT-5.4 Fast",
|
|
7662
|
-
description: "GPT-5.4 with priority service tier (med reasoning)",
|
|
7663
|
-
updateArgs: {
|
|
7664
|
-
reasoning_effort: "medium",
|
|
7665
|
-
verbosity: "medium",
|
|
7666
|
-
context_window: 272000,
|
|
7667
|
-
max_output_tokens: 128000,
|
|
7668
|
-
parallel_tool_calls: true
|
|
7669
|
-
}
|
|
7670
|
-
},
|
|
7671
|
-
{
|
|
7672
|
-
id: "gpt-5.4-fast-high",
|
|
7673
|
-
handle: "openai/gpt-5.4-fast",
|
|
7674
|
-
label: "GPT-5.4 Fast",
|
|
7675
|
-
description: "GPT-5.4 with priority service tier (high reasoning)",
|
|
7676
|
-
updateArgs: {
|
|
7677
|
-
reasoning_effort: "high",
|
|
7678
|
-
verbosity: "medium",
|
|
7679
|
-
context_window: 272000,
|
|
7680
|
-
max_output_tokens: 128000,
|
|
7681
|
-
parallel_tool_calls: true
|
|
7682
|
-
}
|
|
7683
|
-
},
|
|
7684
|
-
{
|
|
7685
|
-
id: "gpt-5.4-fast-xhigh",
|
|
7686
|
-
handle: "openai/gpt-5.4-fast",
|
|
7687
|
-
label: "GPT-5.4 Fast",
|
|
7688
|
-
description: "GPT-5.4 with priority service tier (max reasoning)",
|
|
7689
|
-
updateArgs: {
|
|
7690
|
-
reasoning_effort: "xhigh",
|
|
7691
|
-
verbosity: "medium",
|
|
7692
|
-
context_window: 272000,
|
|
7693
|
-
max_output_tokens: 128000,
|
|
7694
|
-
parallel_tool_calls: true
|
|
7695
|
-
}
|
|
7696
|
-
},
|
|
7697
|
-
{
|
|
7698
|
-
id: "gpt-5.4-mini-none",
|
|
7699
|
-
handle: "openai/gpt-5.4-mini",
|
|
7700
|
-
label: "GPT-5.4 Mini",
|
|
7701
|
-
description: "Fast, efficient GPT-5.4 variant (no reasoning)",
|
|
7702
|
-
updateArgs: {
|
|
7703
|
-
reasoning_effort: "none",
|
|
7704
|
-
verbosity: "low",
|
|
7705
|
-
context_window: 272000,
|
|
7706
|
-
max_output_tokens: 128000,
|
|
7707
|
-
parallel_tool_calls: true
|
|
7708
|
-
}
|
|
7709
|
-
},
|
|
7710
|
-
{
|
|
7711
|
-
id: "gpt-5.4-mini-low",
|
|
7712
|
-
handle: "openai/gpt-5.4-mini",
|
|
7713
|
-
label: "GPT-5.4 Mini",
|
|
7714
|
-
description: "Fast, efficient GPT-5.4 variant (low reasoning)",
|
|
7715
|
-
updateArgs: {
|
|
7716
|
-
reasoning_effort: "low",
|
|
7717
|
-
verbosity: "low",
|
|
7718
|
-
context_window: 272000,
|
|
7719
|
-
max_output_tokens: 128000,
|
|
7720
|
-
parallel_tool_calls: true
|
|
7721
|
-
}
|
|
7722
|
-
},
|
|
7723
|
-
{
|
|
7724
|
-
id: "gpt-5.4-mini-medium",
|
|
7725
|
-
handle: "openai/gpt-5.4-mini",
|
|
7726
|
-
label: "GPT-5.4 Mini",
|
|
7727
|
-
description: "Fast, efficient GPT-5.4 variant (med reasoning)",
|
|
7728
|
-
updateArgs: {
|
|
7729
|
-
reasoning_effort: "medium",
|
|
7730
|
-
verbosity: "low",
|
|
7731
|
-
context_window: 272000,
|
|
7732
|
-
max_output_tokens: 128000,
|
|
7733
|
-
parallel_tool_calls: true
|
|
7734
|
-
}
|
|
7735
|
-
},
|
|
7736
|
-
{
|
|
7737
|
-
id: "gpt-5.4-mini-high",
|
|
7738
|
-
handle: "openai/gpt-5.4-mini",
|
|
7739
|
-
label: "GPT-5.4 Mini",
|
|
7740
|
-
description: "Fast, efficient GPT-5.4 variant (high reasoning)",
|
|
7741
|
-
updateArgs: {
|
|
7742
|
-
reasoning_effort: "high",
|
|
7743
|
-
verbosity: "low",
|
|
7744
|
-
context_window: 272000,
|
|
7745
|
-
max_output_tokens: 128000,
|
|
7746
|
-
parallel_tool_calls: true
|
|
7747
|
-
}
|
|
7748
|
-
},
|
|
7749
|
-
{
|
|
7750
|
-
id: "gpt-5.4-mini-xhigh",
|
|
7751
|
-
handle: "openai/gpt-5.4-mini",
|
|
7752
|
-
label: "GPT-5.4 Mini",
|
|
7753
|
-
description: "Fast, efficient GPT-5.4 variant (max reasoning)",
|
|
7754
|
-
updateArgs: {
|
|
7755
|
-
reasoning_effort: "xhigh",
|
|
7756
|
-
verbosity: "low",
|
|
7757
|
-
context_window: 272000,
|
|
7758
|
-
max_output_tokens: 128000,
|
|
7759
|
-
parallel_tool_calls: true
|
|
7760
|
-
}
|
|
7761
|
-
},
|
|
7762
|
-
{
|
|
7763
|
-
id: "gpt-5.3-codex-none",
|
|
7764
|
-
handle: "openai/gpt-5.3-codex",
|
|
7765
|
-
label: "GPT-5.3-Codex",
|
|
7766
|
-
description: "GPT-5.3 variant (no reasoning) optimized for coding",
|
|
7767
|
-
updateArgs: {
|
|
7768
|
-
reasoning_effort: "none",
|
|
7769
|
-
verbosity: "medium",
|
|
7770
|
-
context_window: 272000,
|
|
7771
|
-
max_output_tokens: 128000,
|
|
7772
|
-
parallel_tool_calls: true
|
|
7773
|
-
}
|
|
7774
|
-
},
|
|
7775
|
-
{
|
|
7776
|
-
id: "gpt-5.3-codex-low",
|
|
7777
|
-
handle: "openai/gpt-5.3-codex",
|
|
7778
|
-
label: "GPT-5.3-Codex",
|
|
7779
|
-
description: "GPT-5.3 variant (low reasoning) optimized for coding",
|
|
7780
|
-
updateArgs: {
|
|
7781
|
-
reasoning_effort: "low",
|
|
7782
|
-
verbosity: "medium",
|
|
7783
|
-
context_window: 272000,
|
|
7784
|
-
max_output_tokens: 128000,
|
|
7785
|
-
parallel_tool_calls: true
|
|
7786
|
-
}
|
|
7787
|
-
},
|
|
7788
|
-
{
|
|
7789
|
-
id: "gpt-5.3-codex-medium",
|
|
7790
|
-
handle: "openai/gpt-5.3-codex",
|
|
7791
|
-
label: "GPT-5.3-Codex",
|
|
7792
|
-
description: "GPT-5.3 variant (med reasoning) optimized for coding",
|
|
7793
|
-
updateArgs: {
|
|
7794
|
-
reasoning_effort: "medium",
|
|
7795
|
-
verbosity: "medium",
|
|
7796
|
-
context_window: 272000,
|
|
7797
|
-
max_output_tokens: 128000,
|
|
7798
|
-
parallel_tool_calls: true
|
|
7799
|
-
}
|
|
7800
|
-
},
|
|
7801
|
-
{
|
|
7802
|
-
id: "gpt-5.3-codex-high",
|
|
7803
|
-
handle: "openai/gpt-5.3-codex",
|
|
7804
|
-
label: "GPT-5.3-Codex",
|
|
7805
|
-
description: "OpenAI's best coding model (high reasoning)",
|
|
7806
|
-
updateArgs: {
|
|
7807
|
-
reasoning_effort: "high",
|
|
7808
|
-
verbosity: "medium",
|
|
7809
|
-
context_window: 272000,
|
|
7810
|
-
max_output_tokens: 128000,
|
|
7811
|
-
parallel_tool_calls: true
|
|
7812
|
-
}
|
|
7813
|
-
},
|
|
7814
|
-
{
|
|
7815
|
-
id: "gpt-5.3-codex-xhigh",
|
|
7816
|
-
handle: "openai/gpt-5.3-codex",
|
|
7817
|
-
label: "GPT-5.3-Codex",
|
|
7818
|
-
description: "GPT-5.3 variant (max reasoning) optimized for coding",
|
|
7819
|
-
updateArgs: {
|
|
7820
|
-
reasoning_effort: "xhigh",
|
|
7821
|
-
verbosity: "medium",
|
|
7822
|
-
context_window: 272000,
|
|
7823
|
-
max_output_tokens: 128000,
|
|
7824
|
-
parallel_tool_calls: true
|
|
7825
|
-
}
|
|
7826
|
-
},
|
|
7827
|
-
{
|
|
7828
|
-
id: "grok-4.5",
|
|
7829
|
-
handle: "xai/grok-4.5",
|
|
7830
|
-
label: "Grok 4.5",
|
|
7831
|
-
description: "xAI's Grok 4.5 model via the direct xAI API",
|
|
7832
|
-
isFeatured: true,
|
|
7833
|
-
updateArgs: {
|
|
7834
|
-
context_window: 500000,
|
|
7835
|
-
max_output_tokens: 16384,
|
|
7836
|
-
parallel_tool_calls: true
|
|
7837
|
-
}
|
|
7838
|
-
},
|
|
7839
|
-
{
|
|
7840
|
-
id: "glm-5.2",
|
|
7841
|
-
handle: "zai/glm-5.2",
|
|
7842
|
-
label: "GLM-5.2",
|
|
7843
|
-
description: "zAI's latest reasoning and coding model with 1M context",
|
|
7844
|
-
isFeatured: true,
|
|
7845
|
-
free: true,
|
|
7846
|
-
updateArgs: {
|
|
7847
|
-
context_window: 1e6,
|
|
7848
|
-
max_output_tokens: 131072,
|
|
7849
|
-
parallel_tool_calls: true
|
|
7850
|
-
}
|
|
7851
|
-
},
|
|
7852
|
-
{
|
|
7853
|
-
id: "glm-5.1",
|
|
7854
|
-
handle: "zai/glm-5.1",
|
|
7855
|
-
label: "GLM-5.1",
|
|
7856
|
-
description: "zAI's coding model",
|
|
7857
|
-
isFeatured: false,
|
|
7858
|
-
free: true,
|
|
7859
|
-
updateArgs: {
|
|
7860
|
-
context_window: 180000,
|
|
7861
|
-
max_output_tokens: 16000,
|
|
7862
|
-
parallel_tool_calls: true
|
|
7863
|
-
}
|
|
7864
|
-
},
|
|
7865
|
-
{
|
|
7866
|
-
id: "minimax-m3",
|
|
7867
|
-
handle: "minimax/MiniMax-M3",
|
|
7868
|
-
label: "MiniMax M3",
|
|
7869
|
-
description: "MiniMax's frontier M-series model for agentic reasoning, tool use, coding, multimodal chat input, and long-context tasks",
|
|
7870
|
-
isFeatured: true,
|
|
7871
|
-
updateArgs: {
|
|
7872
|
-
context_window: 500000,
|
|
7873
|
-
parallel_tool_calls: true
|
|
7874
|
-
}
|
|
7875
|
-
},
|
|
7876
|
-
{
|
|
7877
|
-
id: "minimax-m2.7",
|
|
7878
|
-
handle: "minimax/MiniMax-M2.7",
|
|
7879
|
-
label: "MiniMax 2.7",
|
|
7880
|
-
description: "MiniMax's M2.7 coding model",
|
|
7881
|
-
free: true,
|
|
7882
|
-
updateArgs: {
|
|
7883
|
-
context_window: 160000,
|
|
7884
|
-
max_output_tokens: 64000,
|
|
7885
|
-
parallel_tool_calls: true
|
|
7886
|
-
}
|
|
7887
|
-
},
|
|
7888
|
-
{
|
|
7889
|
-
id: "kimi-k3",
|
|
7890
|
-
handle: "moonshot/kimi-k3",
|
|
7891
|
-
label: "Kimi K3",
|
|
7892
|
-
description: "Moonshot AI's Kimi K3 model for long-context agentic coding and reasoning tasks",
|
|
7893
|
-
isFeatured: true,
|
|
7894
|
-
updateArgs: {
|
|
7895
|
-
context_window: 1048576,
|
|
7896
|
-
max_output_tokens: 131072,
|
|
7897
|
-
parallel_tool_calls: true
|
|
7898
|
-
}
|
|
7899
|
-
},
|
|
7900
|
-
{
|
|
7901
|
-
id: "gemini-3.1",
|
|
7902
|
-
handle: "google_ai/gemini-3.1-pro-preview",
|
|
7903
|
-
label: "Gemini 3.1 Pro",
|
|
7904
|
-
description: "Google's latest and smartest model",
|
|
7905
|
-
isFeatured: true,
|
|
7906
|
-
updateArgs: {
|
|
7907
|
-
context_window: 180000,
|
|
7908
|
-
temperature: 1,
|
|
7909
|
-
parallel_tool_calls: true
|
|
7910
|
-
}
|
|
7911
|
-
},
|
|
7912
|
-
{
|
|
7913
|
-
id: "gemini-3.5-flash",
|
|
7914
|
-
handle: "google_ai/gemini-3.5-flash",
|
|
7915
|
-
label: "Gemini 3.5 Flash",
|
|
7916
|
-
description: "Google's Gemini 3.5 Flash model",
|
|
7917
|
-
updateArgs: {
|
|
7918
|
-
context_window: 1048576,
|
|
7919
|
-
temperature: 1,
|
|
7920
|
-
parallel_tool_calls: true
|
|
7921
|
-
}
|
|
7922
|
-
},
|
|
7923
|
-
{
|
|
7924
|
-
id: "gemini-3.6-flash",
|
|
7925
|
-
handle: "google_ai/gemini-3.6-flash",
|
|
7926
|
-
label: "Gemini 3.6 Flash",
|
|
7927
|
-
description: "Google's Gemini 3.6 Flash model",
|
|
7928
|
-
isFeatured: true,
|
|
7929
|
-
updateArgs: {
|
|
7930
|
-
context_window: 1048576,
|
|
7931
|
-
temperature: 1,
|
|
7932
|
-
parallel_tool_calls: true
|
|
7933
|
-
}
|
|
7934
|
-
}
|
|
7935
|
-
]
|
|
7936
|
-
};
|
|
7937
|
-
var models = models_default.models;
|
|
7938
|
-
function resolveModel(modelIdentifier) {
|
|
7939
|
-
const byId = models.find((m) => m.id === modelIdentifier);
|
|
7940
|
-
if (byId)
|
|
7941
|
-
return byId.handle;
|
|
7942
|
-
const byHandle = models.find((m) => m.handle === modelIdentifier);
|
|
7943
|
-
if (byHandle)
|
|
7944
|
-
return byHandle.handle;
|
|
7945
|
-
if (modelIdentifier.includes("/")) {
|
|
7946
|
-
return modelIdentifier;
|
|
7947
|
-
}
|
|
7948
|
-
return null;
|
|
7949
|
-
}
|
|
7950
|
-
function getDefaultModel() {
|
|
7951
|
-
const autoModel = resolveModel("auto");
|
|
7952
|
-
if (autoModel)
|
|
7953
|
-
return autoModel;
|
|
7954
|
-
const defaultModel = models.find((m) => m.isDefault);
|
|
7955
|
-
if (defaultModel)
|
|
7956
|
-
return defaultModel.handle;
|
|
7957
|
-
const firstModel = models[0];
|
|
7958
|
-
if (!firstModel) {
|
|
7959
|
-
throw new Error("No models available in models.json");
|
|
7960
|
-
}
|
|
7961
|
-
return firstModel.handle;
|
|
7962
|
-
}
|
|
7963
|
-
var PERSONALITY_OPTIONS = [
|
|
7964
|
-
{
|
|
7965
|
-
id: "memo",
|
|
7966
|
-
label: "Letta Code",
|
|
7967
|
-
description: "The memory-first agent"
|
|
7968
|
-
},
|
|
7969
|
-
{
|
|
7970
|
-
id: "tutorial",
|
|
7971
|
-
label: "Tutor",
|
|
7972
|
-
description: "I help with getting started with Letta. I can answer any questions about Letta, and also help you create and configure agents.",
|
|
7973
|
-
defaultMemoryFiles: [
|
|
7974
|
-
{
|
|
7975
|
-
path: "profile.png",
|
|
7976
|
-
assetId: "tutor-profile",
|
|
7977
|
-
commitMessage: "chore: set default Tutor profile picture"
|
|
7978
|
-
}
|
|
7979
|
-
]
|
|
7980
|
-
},
|
|
7981
|
-
{
|
|
7982
|
-
id: "blank",
|
|
7983
|
-
label: "Blank",
|
|
7984
|
-
description: "Blank starter — you provide the personality"
|
|
7985
|
-
},
|
|
7986
|
-
{
|
|
7987
|
-
id: "linus",
|
|
7988
|
-
label: "Linus",
|
|
7989
|
-
description: "Code with a stern hand"
|
|
7990
|
-
},
|
|
7991
|
-
{
|
|
7992
|
-
id: "kawaii",
|
|
7993
|
-
label: "Letta-Chan",
|
|
7994
|
-
description: "sugoi~ (◕‿◕)✨",
|
|
7995
|
-
defaultModel: "auto-chat"
|
|
7996
|
-
},
|
|
7997
|
-
{
|
|
7998
|
-
id: "claude",
|
|
7999
|
-
label: "Letta Code",
|
|
8000
|
-
description: "Vanilla Claude flavors"
|
|
8001
|
-
},
|
|
8002
|
-
{
|
|
8003
|
-
id: "codex",
|
|
8004
|
-
label: "Letta Code",
|
|
8005
|
-
description: "Vanilla Codex flavors"
|
|
8006
|
-
}
|
|
8007
|
-
];
|
|
8008
|
-
var PERSONALITY_TAG_PREFIX = "personality:";
|
|
8009
|
-
function buildPersonalityTag(personalityId) {
|
|
8010
|
-
return `${PERSONALITY_TAG_PREFIX}${personalityId}`;
|
|
8011
|
-
}
|
|
8012
|
-
function getPersonalityCreationTags(personalityId) {
|
|
8013
|
-
return getPersonalityDefaultMemoryFiles(personalityId).length > 0 ? [buildPersonalityTag(personalityId)] : [];
|
|
8014
|
-
}
|
|
8015
|
-
var ONBOARDING_PERSONALITIES = [
|
|
8016
|
-
"tutorial"
|
|
8017
|
-
];
|
|
8018
|
-
function supportsOnboardingBlock(personalityId) {
|
|
8019
|
-
return ONBOARDING_PERSONALITIES.includes(personalityId);
|
|
8020
|
-
}
|
|
8021
|
-
var EDITABLE_FRONTMATTER_KEYS = [
|
|
8022
|
-
"description",
|
|
8023
|
-
"limit",
|
|
8024
|
-
"read_only"
|
|
8025
|
-
];
|
|
8026
|
-
function ensureTrailingNewline(content) {
|
|
8027
|
-
return `${content.trimEnd()}
|
|
8028
|
-
`;
|
|
8029
|
-
}
|
|
8030
|
-
function getPromptTemplate(promptAssetName) {
|
|
8031
|
-
const rawPrompt = MEMORY_PROMPTS[promptAssetName];
|
|
8032
|
-
if (!rawPrompt) {
|
|
8033
|
-
throw new Error(`Missing built-in prompt content for ${promptAssetName}`);
|
|
8034
|
-
}
|
|
8035
|
-
return parseMdxFrontmatter(rawPrompt);
|
|
8036
|
-
}
|
|
8037
|
-
function getPromptBody(promptAssetName) {
|
|
8038
|
-
const { body } = getPromptTemplate(promptAssetName);
|
|
8039
|
-
if (!body.trim()) {
|
|
8040
|
-
throw new Error(`${promptAssetName} has empty body content`);
|
|
8041
|
-
}
|
|
8042
|
-
return ensureTrailingNewline(body);
|
|
8043
|
-
}
|
|
8044
|
-
function getEditablePromptFrontmatter(promptAssetName) {
|
|
8045
|
-
const { frontmatter } = getPromptTemplate(promptAssetName);
|
|
8046
|
-
return Object.fromEntries(Object.entries(frontmatter).filter(([key]) => EDITABLE_FRONTMATTER_KEYS.includes(key)));
|
|
8047
|
-
}
|
|
8048
|
-
function getSystemPromptById(systemPromptId) {
|
|
8049
|
-
const prompt = SYSTEM_PROMPTS.find((candidate) => candidate.id === systemPromptId);
|
|
8050
|
-
if (!prompt || !prompt.content.trim()) {
|
|
8051
|
-
throw new Error(`Missing built-in prompt content for ${systemPromptId}`);
|
|
8052
|
-
}
|
|
8053
|
-
return prompt.content;
|
|
8054
|
-
}
|
|
8055
|
-
function getPersonalityOption(personalityId) {
|
|
8056
|
-
const option = PERSONALITY_OPTIONS.find((candidate) => candidate.id === personalityId);
|
|
8057
|
-
if (!option) {
|
|
8058
|
-
throw new Error(`Unknown personality: ${personalityId}`);
|
|
8059
|
-
}
|
|
8060
|
-
return option;
|
|
8061
|
-
}
|
|
8062
|
-
function getPersonalityDefaultMemoryFiles(personalityId) {
|
|
8063
|
-
return getPersonalityOption(personalityId).defaultMemoryFiles ?? [];
|
|
8064
|
-
}
|
|
8065
|
-
function getPersonalityContent(personalityId) {
|
|
8066
|
-
if (personalityId === "memo") {
|
|
8067
|
-
return getPromptBody("persona_memo.mdx");
|
|
8068
|
-
}
|
|
8069
|
-
if (personalityId === "tutorial") {
|
|
8070
|
-
return getPromptBody("persona_tutorial.mdx");
|
|
8071
|
-
}
|
|
8072
|
-
if (personalityId === "blank") {
|
|
8073
|
-
return getPromptBody("persona_blank.mdx");
|
|
8074
|
-
}
|
|
8075
|
-
if (personalityId === "kawaii") {
|
|
8076
|
-
return getPromptBody("persona_kawaii.mdx");
|
|
8077
|
-
}
|
|
8078
|
-
if (personalityId === "codex") {
|
|
8079
|
-
return ensureTrailingNewline(getSystemPromptById("source-codex"));
|
|
8080
|
-
}
|
|
8081
|
-
if (personalityId === "linus") {
|
|
8082
|
-
return getPromptBody("persona_linus.mdx");
|
|
8083
|
-
}
|
|
8084
|
-
return ensureTrailingNewline(getSystemPromptById("source-claude"));
|
|
8085
|
-
}
|
|
8086
|
-
function getDefaultHumanContent() {
|
|
8087
|
-
return getPromptBody("human.mdx");
|
|
8088
|
-
}
|
|
8089
|
-
function getPersonalityHumanContent(personalityId) {
|
|
8090
|
-
if (personalityId === "memo") {
|
|
8091
|
-
return getPromptBody("human_memo.mdx");
|
|
8092
|
-
}
|
|
8093
|
-
if (personalityId === "tutorial") {
|
|
8094
|
-
return getPromptBody("human_tutorial.mdx");
|
|
8095
|
-
}
|
|
8096
|
-
if (personalityId === "linus") {
|
|
8097
|
-
return getPromptBody("human_linus.mdx");
|
|
8098
|
-
}
|
|
8099
|
-
if (personalityId === "kawaii") {
|
|
8100
|
-
return getPromptBody("human_kawaii.mdx");
|
|
8101
|
-
}
|
|
8102
|
-
if (personalityId === "blank") {
|
|
8103
|
-
return getDefaultHumanContent();
|
|
8104
|
-
}
|
|
8105
|
-
return getDefaultHumanContent();
|
|
8106
|
-
}
|
|
8107
|
-
function getPersonalityBlockDefinitions(personalityId, environment = "cloud") {
|
|
8108
|
-
const personaTemplatePromptAssetName = personalityId === "memo" ? "persona_memo.mdx" : personalityId === "tutorial" ? "persona_tutorial.mdx" : personalityId === "blank" ? "persona_blank.mdx" : personalityId === "kawaii" ? "persona_kawaii.mdx" : personalityId === "linus" ? "persona_linus.mdx" : "persona.mdx";
|
|
8109
|
-
const humanTemplatePromptAssetName = personalityId === "memo" ? "human_memo.mdx" : personalityId === "tutorial" ? "human_tutorial.mdx" : personalityId === "kawaii" ? "human_kawaii.mdx" : personalityId === "linus" ? "human_linus.mdx" : "human.mdx";
|
|
8110
|
-
const onboardingTemplatePromptAssetName = environment === "local" ? "onboarding_local.mdx" : "onboarding.mdx";
|
|
8111
|
-
return {
|
|
8112
|
-
persona: {
|
|
8113
|
-
value: getPersonalityContent(personalityId),
|
|
8114
|
-
description: getEditablePromptFrontmatter(personaTemplatePromptAssetName).description,
|
|
8115
|
-
templatePromptAssetName: personaTemplatePromptAssetName
|
|
8116
|
-
},
|
|
8117
|
-
human: {
|
|
8118
|
-
value: getPersonalityHumanContent(personalityId),
|
|
8119
|
-
description: getEditablePromptFrontmatter(humanTemplatePromptAssetName).description,
|
|
8120
|
-
templatePromptAssetName: humanTemplatePromptAssetName
|
|
8121
|
-
},
|
|
8122
|
-
...supportsOnboardingBlock(personalityId) ? {
|
|
8123
|
-
onboarding: {
|
|
8124
|
-
value: getPromptBody(onboardingTemplatePromptAssetName),
|
|
8125
|
-
description: getEditablePromptFrontmatter(onboardingTemplatePromptAssetName).description,
|
|
8126
|
-
templatePromptAssetName: onboardingTemplatePromptAssetName
|
|
5736
|
+
...supportsOnboardingBlock(personalityId) ? {
|
|
5737
|
+
onboarding: {
|
|
5738
|
+
value: getPromptBody(onboardingTemplatePromptAssetName),
|
|
5739
|
+
description: getEditablePromptFrontmatter(onboardingTemplatePromptAssetName).description,
|
|
5740
|
+
templatePromptAssetName: onboardingTemplatePromptAssetName
|
|
8127
5741
|
}
|
|
8128
5742
|
} : {}
|
|
8129
5743
|
};
|
|
@@ -8242,8 +5856,15 @@ function assertCreateAgentOptionsSupported(options) {
|
|
|
8242
5856
|
throw new Error("App-server createAgent() does not yet support dreaming.behavior overrides.");
|
|
8243
5857
|
}
|
|
8244
5858
|
}
|
|
8245
|
-
async function createAgentBody(options) {
|
|
5859
|
+
async function createAgentBody(options, resolvedSkills) {
|
|
8246
5860
|
assertCreateAgentOptionsSupported(options);
|
|
5861
|
+
const skills = resolvedSkills ?? await resolveSkillItems(options.skills);
|
|
5862
|
+
if (skills.length > 0 && options.memfs === false) {
|
|
5863
|
+
throw new Error("createAgent() skills require the memory filesystem; remove memfs: false.");
|
|
5864
|
+
}
|
|
5865
|
+
if (resolvedSkills === undefined && skillsHaveSupportFiles(skills)) {
|
|
5866
|
+
throw new Error("This backend does not yet support skill support files (scripts/, " + "references/). Use the Cloud backend, or pass a skill with only SKILL.md.");
|
|
5867
|
+
}
|
|
8247
5868
|
let system;
|
|
8248
5869
|
if (options.systemPrompt !== undefined) {
|
|
8249
5870
|
if (typeof options.systemPrompt !== "string" || isPresetSystemPrompt(options.systemPrompt)) {
|
|
@@ -8269,7 +5890,14 @@ async function createAgentBody(options) {
|
|
|
8269
5890
|
if (options.human !== undefined) {
|
|
8270
5891
|
memoryBlocks.push({ label: "human", value: options.human });
|
|
8271
5892
|
}
|
|
8272
|
-
const
|
|
5893
|
+
for (const skill of skills) {
|
|
5894
|
+
memoryBlocks.push({
|
|
5895
|
+
label: `skills/${skill.name}`,
|
|
5896
|
+
value: skill.instructions,
|
|
5897
|
+
description: skill.description
|
|
5898
|
+
});
|
|
5899
|
+
}
|
|
5900
|
+
const hasMemoryConfiguration = options.memory !== undefined || options.persona !== undefined || options.human !== undefined || skills.length > 0;
|
|
8273
5901
|
return buildCreateAgentRequest({
|
|
8274
5902
|
personalityId: options.personality,
|
|
8275
5903
|
name: options.name,
|
|
@@ -9254,11 +6882,12 @@ class RemoteTurnCoordinator {
|
|
|
9254
6882
|
});
|
|
9255
6883
|
const success = turn.success !== undefined ? turn.success && !approvalConflict && !isFailureStopReason(stopReason) : !approvalConflict && !isFailureStopReason(stopReason);
|
|
9256
6884
|
const errorCode = approvalConflict ? "approval_conflict" : turn.errorCode ?? toSdkErrorCode(stopReason);
|
|
6885
|
+
const publicError = errorCode && errorCode !== "error" ? errorCode : turn.detail ?? stopReason ?? "error";
|
|
9257
6886
|
return {
|
|
9258
6887
|
type: "result",
|
|
9259
6888
|
success,
|
|
9260
6889
|
result: success ? tracker?.assistantText || undefined : undefined,
|
|
9261
|
-
error: success ? undefined :
|
|
6890
|
+
error: success ? undefined : publicError,
|
|
9262
6891
|
errorCode: success ? undefined : errorCode ?? "error",
|
|
9263
6892
|
approvalConflict: approvalConflict || undefined,
|
|
9264
6893
|
recoverable: approvalConflict ? true : success ? undefined : turn.recoverable ?? false,
|
|
@@ -9362,7 +6991,7 @@ class RemoteClientSessionCore {
|
|
|
9362
6991
|
this.runtime = init.runtime;
|
|
9363
6992
|
this._agentId = init.runtime.agent_id;
|
|
9364
6993
|
this._conversationId = init.runtime.conversation_id;
|
|
9365
|
-
this._sessionId = `${init.runtime.agent_id}:${init.runtime.conversation_id}
|
|
6994
|
+
this._sessionId = init.runtime.agent_id ? `${init.runtime.agent_id}:${init.runtime.conversation_id}` : init.runtime.conversation_id;
|
|
9366
6995
|
this._modelSettings = init.modelSettings ?? null;
|
|
9367
6996
|
this._model = typeof init.model === "string" ? init.model : typeof this._modelSettings?.model === "string" ? this._modelSettings.model : "";
|
|
9368
6997
|
this.toolNames = init.tools;
|
|
@@ -10337,8 +7966,8 @@ class AppServerSession extends RemoteClientSessionCore {
|
|
|
10337
7966
|
return {
|
|
10338
7967
|
controller: new AppServerRuntimeController(client, this.remoteOptions, allowedTools, clientToolset),
|
|
10339
7968
|
runtime: response.runtime,
|
|
10340
|
-
model: typeof response.agent?.model === "string" ? response.agent.model : "",
|
|
10341
|
-
modelSettings: objectRecord(response.agent?.model_settings) ?? null,
|
|
7969
|
+
model: typeof response.agent?.model === "string" ? response.agent.model : typeof response.conversation?.model === "string" ? response.conversation.model : "",
|
|
7970
|
+
modelSettings: objectRecord(response.agent?.model_settings) ?? objectRecord(response.conversation?.model_settings) ?? null,
|
|
10342
7971
|
...availableTools !== undefined ? { tools: availableTools } : {},
|
|
10343
7972
|
...skillSources !== undefined ? { skillSources: [...skillSources] } : {}
|
|
10344
7973
|
};
|
|
@@ -10419,6 +8048,24 @@ class AppServerSession extends RemoteClientSessionCore {
|
|
|
10419
8048
|
};
|
|
10420
8049
|
return command;
|
|
10421
8050
|
}
|
|
8051
|
+
if (this.mode.kind === "agent-free") {
|
|
8052
|
+
if (this.mode.createConversation) {
|
|
8053
|
+
const create = this.mode.createConversation;
|
|
8054
|
+
command.create_conversation = {
|
|
8055
|
+
body: {
|
|
8056
|
+
model: create.model,
|
|
8057
|
+
system: create.system,
|
|
8058
|
+
...create.modelSettings !== undefined ? { model_settings: create.modelSettings } : {},
|
|
8059
|
+
...create.contextWindowLimit !== undefined ? { context_window_limit: create.contextWindowLimit } : {}
|
|
8060
|
+
}
|
|
8061
|
+
};
|
|
8062
|
+
} else if (this.mode.conversationId) {
|
|
8063
|
+
command.conversation_id = this.mode.conversationId;
|
|
8064
|
+
} else {
|
|
8065
|
+
throw new Error("Agent-free sessions require a conversation to create or resume.");
|
|
8066
|
+
}
|
|
8067
|
+
return command;
|
|
8068
|
+
}
|
|
10422
8069
|
if (this.mode.agentId) {
|
|
10423
8070
|
command.agent_id = this.mode.agentId;
|
|
10424
8071
|
if (this.mode.newConversation) {
|
|
@@ -11138,7 +8785,8 @@ function buildCloudStatusWebSocketUrl(params) {
|
|
|
11138
8785
|
throw new Error(`Unsupported cloud apiBaseUrl protocol: ${base.protocol}`);
|
|
11139
8786
|
}
|
|
11140
8787
|
base.pathname = `/v1/environments/${encodeURIComponent(params.connectionId)}/status/ws`;
|
|
11141
|
-
|
|
8788
|
+
if (params.agentId)
|
|
8789
|
+
base.searchParams.set("agentId", params.agentId);
|
|
11142
8790
|
base.searchParams.set("conversationId", params.conversationId);
|
|
11143
8791
|
base.searchParams.set("channel", "stream");
|
|
11144
8792
|
if (params.authMode === "query" && params.apiKey) {
|
|
@@ -11169,12 +8817,23 @@ function externalToolsByName(tools) {
|
|
|
11169
8817
|
}
|
|
11170
8818
|
return result;
|
|
11171
8819
|
}
|
|
11172
|
-
async function createCloudAgent(client, agentOptions) {
|
|
11173
|
-
const
|
|
8820
|
+
async function createCloudAgent(client, agentOptions, pushSkillSupportFiles) {
|
|
8821
|
+
const skills = await resolveSkillItems(agentOptions.skills);
|
|
8822
|
+
const hasSupportFiles = skillsHaveSupportFiles(skills);
|
|
8823
|
+
if (hasSupportFiles && pushSkillSupportFiles === undefined) {
|
|
8824
|
+
throw new Error("Skill support files (scripts/, references/) require the Node.js " + "package root; the portable client seeds SKILL.md-only skills.");
|
|
8825
|
+
}
|
|
8826
|
+
const body = await createAgentBody(agentOptions, skills);
|
|
11174
8827
|
const agent = await client.agents.create(body);
|
|
11175
8828
|
if (typeof agent.id !== "string" || agent.id.length === 0) {
|
|
11176
8829
|
throw new Error("Cloud create agent response did not include an agent id.");
|
|
11177
8830
|
}
|
|
8831
|
+
if (hasSupportFiles && pushSkillSupportFiles) {
|
|
8832
|
+
if (typeof client.apiKey !== "string" || client.apiKey.length === 0) {
|
|
8833
|
+
throw new Error(`Agent ${agent.id} was created, but skill support files need an API ` + "key to push to the agent's memory repo and none is configured.");
|
|
8834
|
+
}
|
|
8835
|
+
await pushSkillSupportFiles({ apiBaseUrl: client.baseURL, apiKey: client.apiKey, agentId: agent.id }, skills);
|
|
8836
|
+
}
|
|
11178
8837
|
return agent.id;
|
|
11179
8838
|
}
|
|
11180
8839
|
function assertCloudSessionOptionsSupported(action, options) {
|
|
@@ -11224,7 +8883,9 @@ class CloudEnvironmentSession extends RemoteClientSessionCore {
|
|
|
11224
8883
|
this.sandboxLifecycleClosing = false;
|
|
11225
8884
|
const resolved = await this.resolveRuntime();
|
|
11226
8885
|
const connection = await this.resolveConnectionForRuntime(resolved.runtime).catch(async (error) => {
|
|
11227
|
-
|
|
8886
|
+
if (resolved.runtime.agent_id) {
|
|
8887
|
+
await this.cleanupSessionRepositories(resolved.runtime.agent_id, resolved.runtime.conversation_id);
|
|
8888
|
+
}
|
|
11228
8889
|
throw error;
|
|
11229
8890
|
});
|
|
11230
8891
|
this.connectionId = connection.connectionId;
|
|
@@ -11241,7 +8902,9 @@ class CloudEnvironmentSession extends RemoteClientSessionCore {
|
|
|
11241
8902
|
} catch (error) {
|
|
11242
8903
|
await this.closeMcpBridge();
|
|
11243
8904
|
await this.cleanupManagedSandbox();
|
|
11244
|
-
|
|
8905
|
+
if (resolved.runtime.agent_id) {
|
|
8906
|
+
await this.cleanupSessionRepositories(resolved.runtime.agent_id, resolved.runtime.conversation_id);
|
|
8907
|
+
}
|
|
11245
8908
|
throw error;
|
|
11246
8909
|
}
|
|
11247
8910
|
}
|
|
@@ -11265,8 +8928,8 @@ class CloudEnvironmentSession extends RemoteClientSessionCore {
|
|
|
11265
8928
|
requestTimeoutMs: this.cloudOptions.requestTimeoutMs ?? DEFAULT_TURN_TIMEOUT_MS
|
|
11266
8929
|
}, allowedTools, clientToolset),
|
|
11267
8930
|
runtime: response.runtime,
|
|
11268
|
-
model: typeof response.agent?.model === "string" ? response.agent.model : "",
|
|
11269
|
-
modelSettings: response.agent?.model_settings ?? null,
|
|
8931
|
+
model: typeof response.agent?.model === "string" ? response.agent.model : typeof response.conversation?.model === "string" ? response.conversation.model : "",
|
|
8932
|
+
modelSettings: response.agent?.model_settings ?? response.conversation?.model_settings ?? null,
|
|
11270
8933
|
...availableTools !== undefined ? { tools: availableTools } : {},
|
|
11271
8934
|
...skillSources !== undefined ? { skillSources: [...skillSources] } : {}
|
|
11272
8935
|
};
|
|
@@ -11379,11 +9042,12 @@ class CloudEnvironmentSession extends RemoteClientSessionCore {
|
|
|
11379
9042
|
name: SDK_AGENT_ORIGIN,
|
|
11380
9043
|
title: "Letta Agent SDK"
|
|
11381
9044
|
},
|
|
11382
|
-
agent_id: runtime.agent_id,
|
|
11383
9045
|
conversation_id: runtime.conversation_id,
|
|
11384
9046
|
recover_approvals: false,
|
|
11385
9047
|
force_device_status: true
|
|
11386
9048
|
};
|
|
9049
|
+
if (runtime.agent_id)
|
|
9050
|
+
command.agent_id = runtime.agent_id;
|
|
11387
9051
|
const mode = mapPermissionMode(options.permissionMode);
|
|
11388
9052
|
if (mode)
|
|
11389
9053
|
command.mode = mode;
|
|
@@ -11454,6 +9118,17 @@ class CloudEnvironmentSession extends RemoteClientSessionCore {
|
|
|
11454
9118
|
return bridge?.close() ?? Promise.resolve();
|
|
11455
9119
|
}
|
|
11456
9120
|
async resolveRuntime() {
|
|
9121
|
+
if (this.cloudMode.kind === "agent-free") {
|
|
9122
|
+
if (!this.cloudMode.conversationId) {
|
|
9123
|
+
throw new Error("Cloud agent-free sessions require a conversation id.");
|
|
9124
|
+
}
|
|
9125
|
+
return {
|
|
9126
|
+
runtime: {
|
|
9127
|
+
agent_id: null,
|
|
9128
|
+
conversation_id: this.cloudMode.conversationId
|
|
9129
|
+
}
|
|
9130
|
+
};
|
|
9131
|
+
}
|
|
11457
9132
|
let agentId = this.cloudMode.agentId;
|
|
11458
9133
|
let conversationId = this.cloudMode.conversationId;
|
|
11459
9134
|
if (!agentId && conversationId) {
|
|
@@ -11599,6 +9274,9 @@ class CloudEnvironmentSession extends RemoteClientSessionCore {
|
|
|
11599
9274
|
return { connectionId: resolved.connectionId };
|
|
11600
9275
|
}
|
|
11601
9276
|
async createManagedSandboxConnection(runtime) {
|
|
9277
|
+
if (!runtime.agent_id) {
|
|
9278
|
+
throw new Error("Agent-free queries require an explicit Cloud computer; managed sandboxes are agent-scoped.");
|
|
9279
|
+
}
|
|
11602
9280
|
const conversationId = runtime.conversation_id && runtime.conversation_id !== "default" ? runtime.conversation_id : undefined;
|
|
11603
9281
|
const sandbox = await this.createManagedSandbox(runtime.agent_id, conversationId);
|
|
11604
9282
|
this.managedSandbox = sandbox;
|
|
@@ -11901,6 +9579,36 @@ function createConversationsClient(transport) {
|
|
|
11901
9579
|
};
|
|
11902
9580
|
}
|
|
11903
9581
|
|
|
9582
|
+
// src/query.ts
|
|
9583
|
+
function createQuery(createSession, params) {
|
|
9584
|
+
let session = null;
|
|
9585
|
+
let closed = false;
|
|
9586
|
+
const iterator = async function* runQuery() {
|
|
9587
|
+
try {
|
|
9588
|
+
session = await createSession(params.options);
|
|
9589
|
+
if (closed)
|
|
9590
|
+
return;
|
|
9591
|
+
await session.send(params.prompt);
|
|
9592
|
+
yield* session.stream();
|
|
9593
|
+
} finally {
|
|
9594
|
+
closed = true;
|
|
9595
|
+
session?.close();
|
|
9596
|
+
}
|
|
9597
|
+
}();
|
|
9598
|
+
return Object.assign(iterator, {
|
|
9599
|
+
async interrupt() {
|
|
9600
|
+
await session?.abort();
|
|
9601
|
+
},
|
|
9602
|
+
close() {
|
|
9603
|
+
if (closed)
|
|
9604
|
+
return;
|
|
9605
|
+
closed = true;
|
|
9606
|
+
session?.close();
|
|
9607
|
+
iterator.return();
|
|
9608
|
+
}
|
|
9609
|
+
});
|
|
9610
|
+
}
|
|
9611
|
+
|
|
11904
9612
|
// src/validation.ts
|
|
11905
9613
|
var VALID_SKILL_SOURCES = [
|
|
11906
9614
|
"bundled",
|
|
@@ -12126,6 +9834,24 @@ function hasCreateAgentEnvironment(options) {
|
|
|
12126
9834
|
function looksLikeConversationId(id) {
|
|
12127
9835
|
return id.startsWith("conv-") || id.startsWith("local-conv-");
|
|
12128
9836
|
}
|
|
9837
|
+
function agentFreeSessionOptions(options) {
|
|
9838
|
+
const {
|
|
9839
|
+
system: _system,
|
|
9840
|
+
modelSettings: _modelSettings,
|
|
9841
|
+
contextWindowLimit: _contextWindowLimit,
|
|
9842
|
+
...sessionOptions
|
|
9843
|
+
} = options;
|
|
9844
|
+
return sessionOptions;
|
|
9845
|
+
}
|
|
9846
|
+
function validateAgentFreeQueryOptions(options) {
|
|
9847
|
+
if (typeof options.model !== "string" || options.model.length === 0) {
|
|
9848
|
+
throw new Error("query() requires a non-empty model.");
|
|
9849
|
+
}
|
|
9850
|
+
if (typeof options.system !== "string") {
|
|
9851
|
+
throw new Error("query() requires a system prompt.");
|
|
9852
|
+
}
|
|
9853
|
+
validateCreateSessionOptions(agentFreeSessionOptions(options));
|
|
9854
|
+
}
|
|
12129
9855
|
|
|
12130
9856
|
class LettaAgentClientBase {
|
|
12131
9857
|
backend;
|
|
@@ -12200,6 +9926,11 @@ class LettaAgentClientBase {
|
|
|
12200
9926
|
throw new Error("createAgent() does not accept environment. Set a client default or pass environment to resumeSession()/createSession().");
|
|
12201
9927
|
}
|
|
12202
9928
|
validateCreateAgentOptions(options);
|
|
9929
|
+
if (options.skills !== undefined && options.skills.length > 0) {
|
|
9930
|
+
const nodeSupport = this.skillNodeSupport();
|
|
9931
|
+
const skills = await resolveSkillItems(options.skills, nodeSupport?.loadSkillDirectory);
|
|
9932
|
+
options = { ...options, skills };
|
|
9933
|
+
}
|
|
12203
9934
|
if (this.backend === "remote") {
|
|
12204
9935
|
const session = new AppServerSession(this.appServerSessionOptions(), {
|
|
12205
9936
|
kind: "create-agent",
|
|
@@ -12207,10 +9938,13 @@ class LettaAgentClientBase {
|
|
|
12207
9938
|
});
|
|
12208
9939
|
const initMsg = await session.initialize();
|
|
12209
9940
|
session.close();
|
|
9941
|
+
if (!initMsg.agentId) {
|
|
9942
|
+
throw new Error("App Server agent creation did not return an agent id.");
|
|
9943
|
+
}
|
|
12210
9944
|
return initMsg.agentId;
|
|
12211
9945
|
}
|
|
12212
9946
|
if (this.backend === "cloud") {
|
|
12213
|
-
return createCloudAgent(this.getCloudClient(), options);
|
|
9947
|
+
return createCloudAgent(this.getCloudClient(), options, this.skillNodeSupport()?.pushSkillSupportFiles);
|
|
12214
9948
|
}
|
|
12215
9949
|
return this.createLocalAgent(options);
|
|
12216
9950
|
}
|
|
@@ -12283,6 +10017,50 @@ class LettaAgentClientBase {
|
|
|
12283
10017
|
session.close();
|
|
12284
10018
|
}
|
|
12285
10019
|
}
|
|
10020
|
+
query(params) {
|
|
10021
|
+
validateAgentFreeQueryOptions(params.options);
|
|
10022
|
+
return createQuery((options) => this.createAgentFreeSession(options), params);
|
|
10023
|
+
}
|
|
10024
|
+
async createAgentFreeSession(options) {
|
|
10025
|
+
validateAgentFreeQueryOptions(options);
|
|
10026
|
+
const sessionOptions = agentFreeSessionOptions(options);
|
|
10027
|
+
this.assertSessionBackend("query", sessionOptions);
|
|
10028
|
+
if (this.backend === "remote") {
|
|
10029
|
+
return new AppServerSession(this.appServerSessionOptions(), {
|
|
10030
|
+
kind: "agent-free",
|
|
10031
|
+
createConversation: {
|
|
10032
|
+
model: options.model,
|
|
10033
|
+
system: options.system,
|
|
10034
|
+
...options.modelSettings !== undefined ? { modelSettings: options.modelSettings } : {},
|
|
10035
|
+
...options.contextWindowLimit !== undefined ? { contextWindowLimit: options.contextWindowLimit } : {}
|
|
10036
|
+
},
|
|
10037
|
+
options: sessionOptions
|
|
10038
|
+
});
|
|
10039
|
+
}
|
|
10040
|
+
if (this.backend === "cloud") {
|
|
10041
|
+
const computer = options.computer ?? options.environment ?? this.computer;
|
|
10042
|
+
if (computer === undefined) {
|
|
10043
|
+
throw new Error("Cloud query() requires an explicit computer; managed sandboxes are agent-scoped.");
|
|
10044
|
+
}
|
|
10045
|
+
const conversation = await this.getCloudClient().post("/v1/conversations/ephemeral", {
|
|
10046
|
+
body: {
|
|
10047
|
+
model: options.model,
|
|
10048
|
+
system: options.system,
|
|
10049
|
+
...options.modelSettings !== undefined ? { model_settings: options.modelSettings } : {},
|
|
10050
|
+
...options.contextWindowLimit !== undefined ? { context_window_limit: options.contextWindowLimit } : {}
|
|
10051
|
+
}
|
|
10052
|
+
});
|
|
10053
|
+
if (!conversation || typeof conversation !== "object" || typeof conversation.id !== "string") {
|
|
10054
|
+
throw new Error("Cloud ephemeral conversation response did not include a conversation id.");
|
|
10055
|
+
}
|
|
10056
|
+
return new CloudEnvironmentSession(this.cloudOptions(), {
|
|
10057
|
+
kind: "agent-free",
|
|
10058
|
+
conversationId: conversation.id,
|
|
10059
|
+
options: sessionOptions
|
|
10060
|
+
}, this.getCloudClient());
|
|
10061
|
+
}
|
|
10062
|
+
return this.createLocalAgentFreeSession(options, sessionOptions);
|
|
10063
|
+
}
|
|
12286
10064
|
assertSessionBackend(action, options) {
|
|
12287
10065
|
if (options.computer !== undefined && options.environment !== undefined) {
|
|
12288
10066
|
throw new Error(`${action}() cannot specify both computer and deprecated environment.`);
|
|
@@ -12347,9 +10125,15 @@ class LettaAgentClientBase {
|
|
|
12347
10125
|
createLocalAgent(_options) {
|
|
12348
10126
|
throw this.localBackendUnavailableError();
|
|
12349
10127
|
}
|
|
10128
|
+
skillNodeSupport() {
|
|
10129
|
+
return;
|
|
10130
|
+
}
|
|
12350
10131
|
createLocalSession(_agentId, _options) {
|
|
12351
10132
|
throw this.localBackendUnavailableError();
|
|
12352
10133
|
}
|
|
10134
|
+
createLocalAgentFreeSession(_queryOptions, _sessionOptions) {
|
|
10135
|
+
throw this.localBackendUnavailableError();
|
|
10136
|
+
}
|
|
12353
10137
|
resumeLocalSession(_id, _options) {
|
|
12354
10138
|
throw this.localBackendUnavailableError();
|
|
12355
10139
|
}
|
|
@@ -12946,4 +10730,4 @@ export {
|
|
|
12946
10730
|
CloudManagedSandboxExpiredError
|
|
12947
10731
|
};
|
|
12948
10732
|
|
|
12949
|
-
//# debugId=
|
|
10733
|
+
//# debugId=1BC83E9AF5BBAD2864756E2164756E21
|