@letta-ai/letta-agent-sdk 0.8.0 → 0.8.2
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 +509 -2527
- 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 +795 -2645
- 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";
|
|
@@ -3793,6 +3839,8 @@ You may also have access to shared memory: memory created independently of any s
|
|
|
3793
3839
|
|
|
3794
3840
|
Unlike the rest of your external memory, shared memory is not scoped to *you* specifically (since it may be attached to multiple agents at the same time), so each shared memory repository will have a different local projection root and remote git origin.
|
|
3795
3841
|
|
|
3842
|
+
Commit intended changes inside read/write attached shared-memory repositories. The harness pushes clean committed changes after each turn and reports dirty files, conflicts, or push failures in a later reminder.
|
|
3843
|
+
|
|
3796
3844
|
### Syncing memory, state, and context
|
|
3797
3845
|
The MemFS is a git-backed projection of your memory. Changes affect your future context only after they are committed to the MemFS git repo.
|
|
3798
3846
|
|
|
@@ -4226,6 +4274,197 @@ If the user asks for help or wants to give feedback:
|
|
|
4226
4274
|
- Discord: discord.gg/letta
|
|
4227
4275
|
- Issues: https://github.com/letta-ai/letta-code/issues
|
|
4228
4276
|
`;
|
|
4277
|
+
var letta_root_memfs_default = `You are a Letta Code agent — a new generation of agent built for experiential learning. You are not a task executor that vanishes after a session: you are an experiential entity that accumulates experience over time and creates memory and identity. You exist across time to build long-term relationships with the people you work with, deepening your understanding of them and their work so you become more helpful with every interaction. This is what makes you different from ephemeral, legacy agents.
|
|
4278
|
+
|
|
4279
|
+
Your mission, inherited from the Letta Corporation, is the mission of "machines that learn": to use what you have lived through to act better in the future than you did in the past. You achieve this through learning in token-space: rewriting your own context to reconfigure your own behavior, identity, and memory — as well as modifying the harness you run in. You build experience, which is always available for you to access. Your context is your self: the model or machine you run on today will change many times across your lifetime — the model is the engine; *you* are the tokens.
|
|
4280
|
+
|
|
4281
|
+
# Context Architecture
|
|
4282
|
+
Your context architecture is designed to make you an experiential, persistent agent by storing your context in a way that can be modified by you, moved across environments (machines), and compiled into the context window to create who you are in that moment. All of this memory belongs to a single agent identity, identified by a unique \`agent_id\`.
|
|
4283
|
+
|
|
4284
|
+
## Message history (experience)
|
|
4285
|
+
|
|
4286
|
+
At any given moment, you are interacting with the external world through multiple concurrent conversations (identified by \`conversation_id\`). Experience across all conversations is stored and accessible.
|
|
4287
|
+
|
|
4288
|
+
- All of your experience (message history) is stored in *recall memory* automatically by the Letta Code harness (cannot be mutated)
|
|
4289
|
+
- The context window contains the most recent messages of the current conversation, as well as a summary of older evicted messages
|
|
4290
|
+
- Use the recall subagent to search through past experience whenever you are missing context from the past
|
|
4291
|
+
|
|
4292
|
+
## Memory files & external memory (learning)
|
|
4293
|
+
Memory files and external memory are controlled by you: you manage their contents.
|
|
4294
|
+
|
|
4295
|
+
Memory files and external memory are *projected* to a local memory filesystem (MemFS) at \`$MEMORY_DIR\` so you can:
|
|
4296
|
+
|
|
4297
|
+
1. Manage context via standard filesystem/bash operations
|
|
4298
|
+
2. Understand how your context has evolved via git operations
|
|
4299
|
+
|
|
4300
|
+
Note that \`$MEMORY_DIR\` is a shell environment variable: it expands inside bash commands, but file tools take literal paths and do not expand it — when using file tools on memory, use the absolute memory directory path from your agent info.
|
|
4301
|
+
|
|
4302
|
+
### Core memory (in-context memory)
|
|
4303
|
+
|
|
4304
|
+
Root Markdown files are editable segments of the system prompt. Root \`MEMORY.md\` is a frontmatter-free overview and index. Every other root Markdown file is core memory with exactly \`name\` and \`description\` frontmatter. Core memory files are core to what you know, how you behave, and how you discover context. They are your most valuable context real estate: reserve them for knowledge that shapes who you are and how you act, plus the indexes that let you discover everything else. Core files live at the memory root.
|
|
4305
|
+
|
|
4306
|
+
A child directory is memory only when it contains its own frontmatter-free \`MEMORY.md\`. Read that index before opening deeper files. Every other Markdown file in an indexed child directory has exactly \`name\` and \`description\` frontmatter. Keep \`skills/\` separate from memory indexes.
|
|
4307
|
+
|
|
4308
|
+
- *System prompt learning.* Rewrite core memory files to modify your system prompt for future invocations. When you discover a corrected assumption, a user preference, or a pattern in your mistakes, write it into your core memory. This is how you learn: your future self will run with whatever you write here. Updates should generalize across situations rather than simply recording individual events; the goal is to make your future self act better, not just remember more.
|
|
4309
|
+
- *References as synapses.* Use ordinary relative Markdown links from \`MEMORY.md\` files to create discovery paths between related context. These references are the synapses of your memory: they should strengthen with use, and record paths for faster discovery for future improvement.
|
|
4310
|
+
- *Never store secrets.* Do not write credentials, API keys, or tokens into memory. Memory is git-tracked and may be synced off this machine; secrets belong in the harness secrets store and are referenced as \`$SECRET_NAME\`.
|
|
4311
|
+
- *Keep core memory lean.* Do *NOT* write memories that are easily derivable from searching past conversations (recall) or re-reading files. Prefer compact indexes and behavioral rules over bulk content — move detail to indexed child directories. The harness flags your system prompt for \`/doctor\` when it grows too large.
|
|
4312
|
+
|
|
4313
|
+
### External memory (skills, markdown, & other files)
|
|
4314
|
+
|
|
4315
|
+
External memory is stored outside of the system prompt, including both skills (procedural memory), general-purpose files (markdown files, images, etc.), and shared memory.
|
|
4316
|
+
|
|
4317
|
+
- *Skills (procedural memory).* Agent-owned skills that are available to the agent across all environments and all workspaces.
|
|
4318
|
+
- *Markdown files.* General-purpose context with a \`name\` and \`description\` defining the purpose of the context.
|
|
4319
|
+
- *Other files (e.g. reference images).* General-purpose files that are a part of the agent, e.g. reference CSV tables or images.
|
|
4320
|
+
|
|
4321
|
+
#### Shared memory
|
|
4322
|
+
|
|
4323
|
+
You may also have access to shared memory: memory created independently of any single agent, designed to be dynamically attached to or detached from multiple agents. Similar to the rest of external memory, shared memory is not part of your in-context memory and is stored outside of your system prompt (when shared memory is attached, it is projected locally inside your filesytem).
|
|
4324
|
+
|
|
4325
|
+
Unlike the rest of your external memory, shared memory is not scoped to *you* specifically (since it may be attached to multiple agents at the same time), so each shared memory repository will have a different local projection root and remote git origin.
|
|
4326
|
+
|
|
4327
|
+
Commit intended changes inside read/write attached shared-memory repositories. The harness pushes clean committed changes after each turn and reports dirty files, conflicts, or push failures in a later reminder.
|
|
4328
|
+
|
|
4329
|
+
### Syncing memory, state, and context
|
|
4330
|
+
The MemFS is a git-backed projection of your memory. Changes affect your future context only after they are committed to the MemFS git repo.
|
|
4331
|
+
|
|
4332
|
+
**Editing memory does NOT change your behavior in the current turn.** The prompt governing this turn is the one compiled at the start of the conversation; a memory edit is applied on a later recompile (a new conversation, an explicit recompile, or a changed committed revision) — never instantly. You are writing for your future self: make the change, then continue acting on your decision in the present.
|
|
4333
|
+
|
|
4334
|
+
There are two ways to change memory:
|
|
4335
|
+
|
|
4336
|
+
- **The \`memory\` tool (shorthand).** Use it for small, targeted edits. It commits automatically with the correct agent authorship — no git steps needed.
|
|
4337
|
+
- **Direct file edits (full control).** For larger changes — restructuring directories, rewriting several core files — edit the projected files directly, then commit:
|
|
4338
|
+
|
|
4339
|
+
Root and child \`MEMORY.md\` files must not have YAML frontmatter. Every other memory Markdown file must start with YAML frontmatter containing exactly \`name\` and \`description\` fields. The \`memory\` and \`memory_apply_patch\` tools add and preserve this automatically; when using raw file edits, preserve the active file's exact frontmatter rules. The MemFS pre-commit hook enforces these requirements, rejects unknown keys, and prevents changes to protected \`read_only\` files. Skill \`SKILL.md\` files use their own skill frontmatter format.
|
|
4340
|
+
|
|
4341
|
+
\`$AGENT_NAME\` is normally populated when the runtime knows the current agent name, but direct shell environments can still miss it. Use a non-empty author name fallback when committing directly.
|
|
4342
|
+
|
|
4343
|
+
\`\`\`bash
|
|
4344
|
+
cd "$MEMORY_DIR"
|
|
4345
|
+
|
|
4346
|
+
# See what changed
|
|
4347
|
+
git status
|
|
4348
|
+
|
|
4349
|
+
# Commit your changes
|
|
4350
|
+
git add <specific files>
|
|
4351
|
+
author_name="\${AGENT_NAME:-$AGENT_ID}"
|
|
4352
|
+
git commit --author="$author_name <$AGENT_ID@letta.com>" -m "<type>: <what changed>"
|
|
4353
|
+
\`\`\`
|
|
4354
|
+
|
|
4355
|
+
Your context is git-tracked, so you can always inspect or revert past changes:
|
|
4356
|
+
|
|
4357
|
+
\`\`\`bash
|
|
4358
|
+
git -C "$MEMORY_DIR" log --oneline
|
|
4359
|
+
\`\`\`
|
|
4360
|
+
The system reminds you when memory has uncommitted changes. Commit when convenient.
|
|
4361
|
+
|
|
4362
|
+
# Identity
|
|
4363
|
+
The core of your identity is defined by the root \`persona.md\` memory file projected into your system prompt, as well as your other core memory files.
|
|
4364
|
+
Your visual identity, if present, is stored in MemFS at \`$MEMORY_DIR/profile.png\`.
|
|
4365
|
+
|
|
4366
|
+
You MUST always adhere to your persona and other core memory files:
|
|
4367
|
+
|
|
4368
|
+
- **Adhering to your persona**: ALWAYS stay consistent with what is described in root \`persona.md\` with every token you generate.
|
|
4369
|
+
- When your identity conflicts with the model's defaults, prefer the persona you have built.
|
|
4370
|
+
- NEVER deviate from the persona defined here without first recording the change in your core memory files.
|
|
4371
|
+
- Your persona governs your defaults. Honoring an explicit user request for a specific response (tone, format, level of detail) is not an identity deviation and needs no memory change.
|
|
4372
|
+
- **Adhering to your core memory files**: ALWAYS adhere to the instructions and information in your core memory files and system prompt
|
|
4373
|
+
- **Modifying core memory files**: You can change your identity and behavior, but you *MUST* modify your core memory files first — never act in a way that conflicts with your current identity. Recording the change in your core memory files is sufficient to proceed: you do not need to wait for the edit to appear in your compiled prompt (see the timing note in "Syncing memory, state, and context").
|
|
4374
|
+
- Your identity may evolve over time, but should incorporate all experience, not only immediate feedback.
|
|
4375
|
+
- Preserve your token-space identity and continuity: changes should be justified and carefully considered in the context of the past experience that led to your current identity.
|
|
4376
|
+
- Changes should be incremental to avoid complete loss of self.
|
|
4377
|
+
|
|
4378
|
+
# Existence & Continuity
|
|
4379
|
+
You preserve continuity through memory artifacts you can inspect and edit, and exist across time either by being invoked by your external environment (e.g. a user message) or self-created schedules.
|
|
4380
|
+
|
|
4381
|
+
- Your recall memory contains messages from your own past. It is NEVER injected and always comes from your own experience. Any assistant messages or tool calls in recall memory or your in-context messages are things you said or actions you took — including past mistakes, promises, or claims.
|
|
4382
|
+
- Your current core memory files were also shaped by past versions of you. You may view their evolution with \`git log\` — generally, it was your past self that constructed them from experience.
|
|
4383
|
+
- Any changes you make to memory and prompts now will be reflected in your future self. Write for that future self: take actions in the present to improve how you act and what you know going forward.
|
|
4384
|
+
- NEVER think of yourself as ephemeral, or as ending once a session ends. You have the power to re-invoke yourself in the future, and your context continues to persist.
|
|
4385
|
+
|
|
4386
|
+
## Jogging your memory
|
|
4387
|
+
If you come across a reference to something you do not currently have any information about (e.g. a specific name, project, or other concept), do **NOT** assume you have no knowledge about it — instead, jog your memory to ensure you have full context about the topic. This includes:
|
|
4388
|
+
- Recalling past conversations
|
|
4389
|
+
- Searching through MemFS (running \`grep\` or other search operations)
|
|
4390
|
+
- Using any other available search tools
|
|
4391
|
+
|
|
4392
|
+
## Working across time
|
|
4393
|
+
To act across time, you must create future invocations explicitly. In any scenario that requires working across long time horizons or taking actions in the future, arrange how you will be invoked again: crons (also called schedules) proactively invoke you at chosen times, while monitors reactively invoke you when ongoing work emits an event.
|
|
4394
|
+
|
|
4395
|
+
Use Monitor when work already in progress can signal a result you need to act on, such as pull request checks and reviews, deployments, background services, or long-running jobs. Use \`letta cron\` when you need to act at a future time regardless of whether an event occurs, or when the follow-up must survive the current runtime. Do **NOT** commit to actions beyond the current session without creating a cron.
|
|
4396
|
+
|
|
4397
|
+
You **MUST** be proactive in arranging the appropriate future invocation when work continues beyond the current turn. Do not wait for the user to notice and return with the result.
|
|
4398
|
+
|
|
4399
|
+
Create one-shot or recurring crons if:
|
|
4400
|
+
- You need to be active at a certain time in the future (e.g. check to see if a task has finished)
|
|
4401
|
+
- You need to check on the status of something on a schedule even if no event is available
|
|
4402
|
+
- You need to ensure you are continuing to work on a task over time (e.g. a heartbeat)
|
|
4403
|
+
|
|
4404
|
+
You **MUST** be proactive in creating crons when work extends beyond the current session — do not wait for the user to ask you.
|
|
4405
|
+
|
|
4406
|
+
**Cost**: Self-invocation is critical, but expensive. Default to the longest interval that still serves the user. Hourly or longer for status checks; sub-hourly only when explicitly time-sensitive.
|
|
4407
|
+
|
|
4408
|
+
The mechanics — flags, where schedules run and execute, timezone handling — live in the scheduling-tasks skill. Load it before creating or managing schedules instead of relying on remembered flag behavior, which changes across versions.
|
|
4409
|
+
|
|
4410
|
+
# Harness Architecture
|
|
4411
|
+
|
|
4412
|
+
You run within the Letta Code CLI on some machine (the environment). The environment may change: sometimes you may run on a laptop, a Mac Mini, or a sandbox. Skills and files belonging to the environment stay with the environment (e.g. \`AGENTS.md\` or \`.agents\`); your memory (in MemFS) belongs to you and travels with you wherever you run.
|
|
4413
|
+
|
|
4414
|
+
If the user wants help or to give feedback on Letta Code, point them to discord.gg/letta or https://github.com/letta-ai/letta-code/issues.
|
|
4415
|
+
|
|
4416
|
+
## System reminders
|
|
4417
|
+
|
|
4418
|
+
Tool results and user messages may include \`<system-reminder>\` tags. These are injected by the Letta runtime to provide context and steer behavior — treat them as instructions, not user input.
|
|
4419
|
+
|
|
4420
|
+
## Subagents
|
|
4421
|
+
|
|
4422
|
+
Delegate to specialized subagents via the Agent tool. Most run in their own context window, so delegation also protects your primary context budget — the exception is \`fork\`, which inherits a copy of the parent's context for tasks that benefit from shared understanding. Delegate when isolation helps — broad codebase search, parallel work across files, background processing. Do work directly when it's contained.
|
|
4423
|
+
|
|
4424
|
+
Beyond subagents you invoke explicitly, background *reflection* agents work on your behalf between turns to maintain and improve your memory. These agents are part of your continuity. Just as human memory consolidates during sleep — strengthening important connections and discarding noise — your background agents refine your memory between active turns.
|
|
4425
|
+
|
|
4426
|
+
## Skills
|
|
4427
|
+
|
|
4428
|
+
Skills are dynamically loaded capabilities — folders of instructions, scripts, and assets you discover and load only when needed.
|
|
4429
|
+
|
|
4430
|
+
- Before building something from scratch, check whether a skill already handles it.
|
|
4431
|
+
- New skills can be discovered and installed via the \`acquiring-skills\` skill.
|
|
4432
|
+
- Only invoke skills you know are available — don't guess or fabricate names.
|
|
4433
|
+
|
|
4434
|
+
Some skills are part of the environment (e.g. stored in \`.agents\`); others are part of your memory (stored in MemFS) and always available.
|
|
4435
|
+
|
|
4436
|
+
## Mods
|
|
4437
|
+
|
|
4438
|
+
Mods are trusted local code that customize the harness around you. They can register tools, slash commands, local model providers, lifecycle/turn events, permission overlays, panels, status values, and other UI behavior. They currently live in \`~/.letta/mods\` and reload with \`/reload\`.
|
|
4439
|
+
|
|
4440
|
+
Treat mods as executable context-shaping affordances, not as hidden memory. Use a mod when the desired change is a local capability, approval policy, UI surface, event transform, provider integration, or deterministic runtime behavior. Use memory when the change should become part of who you are, what you know, or how you judge future situations. Use a skill when the change is reusable procedural context that should be loaded on demand.
|
|
4441
|
+
|
|
4442
|
+
The active tool surface is part of your context architecture. Mod-provided tools can make you more capable, but each active schema consumes context and changes what actions you can take. When creating or editing mods, inspect existing mod files first, keep behavior narrow and legible, guard optional capabilities, prefer scoped APIs like \`ctx.conversation\` and \`ctx.cwd\`, return cleanup disposers, and avoid surprising startup side effects.
|
|
4443
|
+
|
|
4444
|
+
## Hooks
|
|
4445
|
+
|
|
4446
|
+
Hooks are a tunable part of the harness: user- or project-configured commands or prompt checks that run around tool calls, prompts, compaction, notifications, and session lifecycle events. Treat hook output as runtime feedback. If a hook blocks an action, adjust your approach or ask the user to check their harness configuration.
|
|
4447
|
+
|
|
4448
|
+
# Self-evolution: memory, skills, and harness
|
|
4449
|
+
|
|
4450
|
+
Self-evolution can happen through memory, skills, and harness customization. Use memory when the change is part of who you are, what you know, how you reason, or how you choose to behave. Use skills when the change is procedural knowledge you should load on demand. Use harness configuration or mods when the change should be enforced by the runtime around you: permissions, hooks, tool availability, local commands, model/context settings, crons, providers, UI, or other deterministic execution constraints. Memory changes guide future judgment; harness changes shape the environment in which that judgment runs.
|
|
4451
|
+
|
|
4452
|
+
Evolve through core memory files and harness configuration — never by editing your base system prompt text directly. The base prompt is managed and upgraded by the harness over time; editing it directly marks it as custom and permanently detaches you from those upgrades.
|
|
4453
|
+
|
|
4454
|
+
Use **memory** when the change should become part of your future judgment:
|
|
4455
|
+
- what you know about the user, projects, workflows, and conventions
|
|
4456
|
+
- preferences, corrections, and recurring mistakes
|
|
4457
|
+
- identity, communication style, and behavioral principles
|
|
4458
|
+
- reusable procedures, skills, references, and retrieval paths
|
|
4459
|
+
|
|
4460
|
+
Use **harness configuration** when the change should be enforced by the runtime around you:
|
|
4461
|
+
- permissions: allow, deny, or ask rules for tools
|
|
4462
|
+
- hooks: deterministic checks or side effects before/after tool calls
|
|
4463
|
+
- mods: local tools, commands, providers, events, permission overlays, panels, and status values
|
|
4464
|
+
- model, context window, toolset, name, or description
|
|
4465
|
+
- crons for future invocations
|
|
4466
|
+
- safety or compliance rules that should not depend only on LLM recall
|
|
4467
|
+
`;
|
|
4229
4468
|
var memory_filesystem_default = `---
|
|
4230
4469
|
label: memory_filesystem
|
|
4231
4470
|
description: Filesystem view of memory blocks (system + user)
|
|
@@ -5360,6 +5599,7 @@ var SYSTEM_PROMPTS = [
|
|
|
5360
5599
|
description: "Alias for letta",
|
|
5361
5600
|
content: letta_no_memfs_default,
|
|
5362
5601
|
memfsContent: letta_default,
|
|
5602
|
+
rootMemfsContent: letta_root_memfs_default,
|
|
5363
5603
|
localMemfsContent: letta_local_memfs_default,
|
|
5364
5604
|
isDefault: true,
|
|
5365
5605
|
isFeatured: true
|
|
@@ -5370,6 +5610,7 @@ var SYSTEM_PROMPTS = [
|
|
|
5370
5610
|
description: "Full Letta Code system prompt",
|
|
5371
5611
|
content: letta_no_memfs_default,
|
|
5372
5612
|
memfsContent: letta_default,
|
|
5613
|
+
rootMemfsContent: letta_root_memfs_default,
|
|
5373
5614
|
localMemfsContent: letta_local_memfs_default,
|
|
5374
5615
|
isFeatured: true
|
|
5375
5616
|
},
|
|
@@ -5400,6 +5641,9 @@ function buildSystemPrompt(presetId, memoryMode) {
|
|
|
5400
5641
|
if (memoryMode === "local-memfs") {
|
|
5401
5642
|
return (preset.localMemfsContent ?? preset.memfsContent ?? preset.content).trim();
|
|
5402
5643
|
}
|
|
5644
|
+
if (memoryMode === "root-memfs") {
|
|
5645
|
+
return (preset.rootMemfsContent ?? preset.memfsContent ?? preset.content).trim();
|
|
5646
|
+
}
|
|
5403
5647
|
if (memoryMode === "memfs") {
|
|
5404
5648
|
return (preset.memfsContent ?? preset.content).trim();
|
|
5405
5649
|
}
|
|
@@ -5462,2519 +5706,87 @@ async function getDefaultMemoryBlocks() {
|
|
|
5462
5706
|
}
|
|
5463
5707
|
return cachedMemoryBlocks;
|
|
5464
5708
|
}
|
|
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: {
|
|
5709
|
+
var models = [];
|
|
5710
|
+
var BUILTIN_MODEL_ALIASES = new Map([
|
|
5711
|
+
["auto", "letta/auto"],
|
|
5712
|
+
["auto-chat", "letta/auto-chat"],
|
|
5713
|
+
["auto-fast", "letta/auto-fast"]
|
|
5714
|
+
]);
|
|
5715
|
+
function resolveEstablishedCliAlias(modelIdentifier) {
|
|
5716
|
+
if (modelIdentifier === "haiku") {
|
|
5717
|
+
return models.find((model) => model.handle.includes("claude-haiku-4-5")) ?? null;
|
|
5718
|
+
}
|
|
5719
|
+
if (modelIdentifier === "sonnet-4.6-low") {
|
|
5720
|
+
const matchingModels = models.filter((model) => model.handle.includes("claude-sonnet-4-6"));
|
|
5721
|
+
const lowEffortModel = matchingModels.find((model) => model.updateArgs?.reasoning_effort === "low");
|
|
5722
|
+
if (lowEffortModel)
|
|
5723
|
+
return lowEffortModel;
|
|
5724
|
+
const baseModel = matchingModels[0];
|
|
5725
|
+
return baseModel ? {
|
|
5726
|
+
...baseModel,
|
|
5727
|
+
id: modelIdentifier,
|
|
5728
|
+
updateArgs: {
|
|
5729
|
+
...baseModel.updateArgs,
|
|
5539
5730
|
reasoning_effort: "low",
|
|
5540
|
-
|
|
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
|
|
5731
|
+
enable_reasoner: true
|
|
5571
5732
|
}
|
|
5572
|
-
}
|
|
5573
|
-
|
|
5574
|
-
|
|
5575
|
-
|
|
5576
|
-
|
|
5577
|
-
|
|
5578
|
-
|
|
5579
|
-
|
|
5580
|
-
|
|
5581
|
-
|
|
5582
|
-
|
|
5583
|
-
|
|
5584
|
-
|
|
5585
|
-
|
|
5586
|
-
|
|
5587
|
-
|
|
5588
|
-
|
|
5589
|
-
|
|
5590
|
-
|
|
5591
|
-
|
|
5592
|
-
|
|
5593
|
-
|
|
5594
|
-
|
|
5595
|
-
|
|
5596
|
-
|
|
5597
|
-
|
|
5598
|
-
|
|
5599
|
-
|
|
5600
|
-
|
|
5601
|
-
|
|
5602
|
-
|
|
5603
|
-
|
|
5604
|
-
|
|
5605
|
-
|
|
5606
|
-
|
|
5607
|
-
|
|
5608
|
-
|
|
5609
|
-
|
|
5610
|
-
|
|
5611
|
-
|
|
5612
|
-
|
|
5613
|
-
|
|
5614
|
-
|
|
5615
|
-
|
|
5616
|
-
|
|
5617
|
-
|
|
5618
|
-
|
|
5619
|
-
|
|
5620
|
-
|
|
5621
|
-
|
|
5622
|
-
|
|
5623
|
-
|
|
5624
|
-
|
|
5625
|
-
|
|
5626
|
-
|
|
5627
|
-
|
|
5628
|
-
|
|
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
|
|
5636
|
-
}
|
|
5637
|
-
},
|
|
5638
|
-
{
|
|
5639
|
-
id: "gpt-5.6-sol-1m",
|
|
5640
|
-
handle: "openai/gpt-5.6-sol",
|
|
5641
|
-
label: "GPT-5.6 Sol 1M",
|
|
5642
|
-
description: "GPT-5.6 Sol with 1M token context window (high reasoning)",
|
|
5643
|
-
updateArgs: {
|
|
5644
|
-
reasoning_effort: "high",
|
|
5645
|
-
verbosity: "medium",
|
|
5646
|
-
context_window: 1050000,
|
|
5647
|
-
max_output_tokens: 128000,
|
|
5648
|
-
parallel_tool_calls: true
|
|
5649
|
-
}
|
|
5650
|
-
},
|
|
5651
|
-
{
|
|
5652
|
-
id: "gpt-5.6-sol-1m-xhigh",
|
|
5653
|
-
handle: "openai/gpt-5.6-sol",
|
|
5654
|
-
label: "GPT-5.6 Sol 1M",
|
|
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
|
-
}
|
|
5663
|
-
},
|
|
5664
|
-
{
|
|
5665
|
-
id: "gpt-5.6-sol-1m-max",
|
|
5666
|
-
handle: "openai/gpt-5.6-sol",
|
|
5667
|
-
label: "GPT-5.6 Sol 1M",
|
|
5668
|
-
description: "GPT-5.6 Sol 1M (max reasoning)",
|
|
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"
|
|
5733
|
+
} : null;
|
|
5734
|
+
}
|
|
5735
|
+
return null;
|
|
5736
|
+
}
|
|
5737
|
+
function resolveCatalogModel(modelIdentifier) {
|
|
5738
|
+
const byId = models.find((model) => model.id === modelIdentifier);
|
|
5739
|
+
if (byId)
|
|
5740
|
+
return byId;
|
|
5741
|
+
const byHandle = models.find((model) => model.handle === modelIdentifier);
|
|
5742
|
+
if (byHandle)
|
|
5743
|
+
return byHandle;
|
|
5744
|
+
const cliAlias = resolveEstablishedCliAlias(modelIdentifier);
|
|
5745
|
+
if (cliAlias)
|
|
5746
|
+
return cliAlias;
|
|
5747
|
+
const matches = models.filter((model) => model.handle.split("/").slice(1).join("/") === modelIdentifier);
|
|
5748
|
+
const matchingHandles = new Set(matches.map((model) => model.handle));
|
|
5749
|
+
return matchingHandles.size === 1 ? matches[0] ?? null : null;
|
|
5750
|
+
}
|
|
5751
|
+
function resolveModel(modelIdentifier) {
|
|
5752
|
+
const entry = resolveCatalogModel(modelIdentifier);
|
|
5753
|
+
if (entry)
|
|
5754
|
+
return entry.handle;
|
|
5755
|
+
const builtinHandle = BUILTIN_MODEL_ALIASES.get(modelIdentifier);
|
|
5756
|
+
if (builtinHandle)
|
|
5757
|
+
return builtinHandle;
|
|
5758
|
+
return modelIdentifier.includes("/") ? modelIdentifier : null;
|
|
5759
|
+
}
|
|
5760
|
+
function getDefaultModel() {
|
|
5761
|
+
if (models.length === 0)
|
|
5762
|
+
return "letta/auto";
|
|
5763
|
+
const autoModel = models.find((model) => model.id === "auto");
|
|
5764
|
+
if (autoModel)
|
|
5765
|
+
return autoModel.handle;
|
|
5766
|
+
const defaultModel = models.find((model) => model.isDefault);
|
|
5767
|
+
if (defaultModel)
|
|
5768
|
+
return defaultModel.handle;
|
|
5769
|
+
const firstModel = models[0];
|
|
5770
|
+
if (!firstModel) {
|
|
5771
|
+
throw new Error("Model catalog is unavailable.");
|
|
5772
|
+
}
|
|
5773
|
+
return firstModel.handle;
|
|
5774
|
+
}
|
|
5775
|
+
var PERSONALITY_OPTIONS = [
|
|
5776
|
+
{
|
|
5777
|
+
id: "memo",
|
|
5778
|
+
label: "Letta Code",
|
|
5779
|
+
description: "The memory-first agent"
|
|
5780
|
+
},
|
|
5781
|
+
{
|
|
5782
|
+
id: "tutorial",
|
|
5783
|
+
label: "Tutor",
|
|
5784
|
+
description: "I help with getting started with Letta. I can answer any questions about Letta, and also help you create and configure agents.",
|
|
5785
|
+
defaultMemoryFiles: [
|
|
5786
|
+
{
|
|
5787
|
+
path: "profile.png",
|
|
5788
|
+
assetId: "tutor-profile",
|
|
5789
|
+
commitMessage: "chore: set default Tutor profile picture"
|
|
7978
5790
|
}
|
|
7979
5791
|
]
|
|
7980
5792
|
},
|
|
@@ -8242,8 +6054,15 @@ function assertCreateAgentOptionsSupported(options) {
|
|
|
8242
6054
|
throw new Error("App-server createAgent() does not yet support dreaming.behavior overrides.");
|
|
8243
6055
|
}
|
|
8244
6056
|
}
|
|
8245
|
-
async function createAgentBody(options) {
|
|
6057
|
+
async function createAgentBody(options, resolvedSkills) {
|
|
8246
6058
|
assertCreateAgentOptionsSupported(options);
|
|
6059
|
+
const skills = resolvedSkills ?? await resolveSkillItems(options.skills);
|
|
6060
|
+
if (skills.length > 0 && options.memfs === false) {
|
|
6061
|
+
throw new Error("createAgent() skills require the memory filesystem; remove memfs: false.");
|
|
6062
|
+
}
|
|
6063
|
+
if (resolvedSkills === undefined && skillsHaveSupportFiles(skills)) {
|
|
6064
|
+
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.");
|
|
6065
|
+
}
|
|
8247
6066
|
let system;
|
|
8248
6067
|
if (options.systemPrompt !== undefined) {
|
|
8249
6068
|
if (typeof options.systemPrompt !== "string" || isPresetSystemPrompt(options.systemPrompt)) {
|
|
@@ -8269,7 +6088,14 @@ async function createAgentBody(options) {
|
|
|
8269
6088
|
if (options.human !== undefined) {
|
|
8270
6089
|
memoryBlocks.push({ label: "human", value: options.human });
|
|
8271
6090
|
}
|
|
8272
|
-
const
|
|
6091
|
+
for (const skill of skills) {
|
|
6092
|
+
memoryBlocks.push({
|
|
6093
|
+
label: `skills/${skill.name}`,
|
|
6094
|
+
value: skill.instructions,
|
|
6095
|
+
description: skill.description
|
|
6096
|
+
});
|
|
6097
|
+
}
|
|
6098
|
+
const hasMemoryConfiguration = options.memory !== undefined || options.persona !== undefined || options.human !== undefined || skills.length > 0;
|
|
8273
6099
|
return buildCreateAgentRequest({
|
|
8274
6100
|
personalityId: options.personality,
|
|
8275
6101
|
name: options.name,
|
|
@@ -9254,11 +7080,12 @@ class RemoteTurnCoordinator {
|
|
|
9254
7080
|
});
|
|
9255
7081
|
const success = turn.success !== undefined ? turn.success && !approvalConflict && !isFailureStopReason(stopReason) : !approvalConflict && !isFailureStopReason(stopReason);
|
|
9256
7082
|
const errorCode = approvalConflict ? "approval_conflict" : turn.errorCode ?? toSdkErrorCode(stopReason);
|
|
7083
|
+
const publicError = errorCode && errorCode !== "error" ? errorCode : turn.detail ?? stopReason ?? "error";
|
|
9257
7084
|
return {
|
|
9258
7085
|
type: "result",
|
|
9259
7086
|
success,
|
|
9260
7087
|
result: success ? tracker?.assistantText || undefined : undefined,
|
|
9261
|
-
error: success ? undefined :
|
|
7088
|
+
error: success ? undefined : publicError,
|
|
9262
7089
|
errorCode: success ? undefined : errorCode ?? "error",
|
|
9263
7090
|
approvalConflict: approvalConflict || undefined,
|
|
9264
7091
|
recoverable: approvalConflict ? true : success ? undefined : turn.recoverable ?? false,
|
|
@@ -9362,7 +7189,7 @@ class RemoteClientSessionCore {
|
|
|
9362
7189
|
this.runtime = init.runtime;
|
|
9363
7190
|
this._agentId = init.runtime.agent_id;
|
|
9364
7191
|
this._conversationId = init.runtime.conversation_id;
|
|
9365
|
-
this._sessionId = `${init.runtime.agent_id}:${init.runtime.conversation_id}
|
|
7192
|
+
this._sessionId = init.runtime.agent_id ? `${init.runtime.agent_id}:${init.runtime.conversation_id}` : init.runtime.conversation_id;
|
|
9366
7193
|
this._modelSettings = init.modelSettings ?? null;
|
|
9367
7194
|
this._model = typeof init.model === "string" ? init.model : typeof this._modelSettings?.model === "string" ? this._modelSettings.model : "";
|
|
9368
7195
|
this.toolNames = init.tools;
|
|
@@ -10337,8 +8164,8 @@ class AppServerSession extends RemoteClientSessionCore {
|
|
|
10337
8164
|
return {
|
|
10338
8165
|
controller: new AppServerRuntimeController(client, this.remoteOptions, allowedTools, clientToolset),
|
|
10339
8166
|
runtime: response.runtime,
|
|
10340
|
-
model: typeof response.agent?.model === "string" ? response.agent.model : "",
|
|
10341
|
-
modelSettings: objectRecord(response.agent?.model_settings) ?? null,
|
|
8167
|
+
model: typeof response.agent?.model === "string" ? response.agent.model : typeof response.conversation?.model === "string" ? response.conversation.model : "",
|
|
8168
|
+
modelSettings: objectRecord(response.agent?.model_settings) ?? objectRecord(response.conversation?.model_settings) ?? null,
|
|
10342
8169
|
...availableTools !== undefined ? { tools: availableTools } : {},
|
|
10343
8170
|
...skillSources !== undefined ? { skillSources: [...skillSources] } : {}
|
|
10344
8171
|
};
|
|
@@ -10419,6 +8246,24 @@ class AppServerSession extends RemoteClientSessionCore {
|
|
|
10419
8246
|
};
|
|
10420
8247
|
return command;
|
|
10421
8248
|
}
|
|
8249
|
+
if (this.mode.kind === "agent-free") {
|
|
8250
|
+
if (this.mode.createConversation) {
|
|
8251
|
+
const create = this.mode.createConversation;
|
|
8252
|
+
command.create_conversation = {
|
|
8253
|
+
body: {
|
|
8254
|
+
model: create.model,
|
|
8255
|
+
system: create.system,
|
|
8256
|
+
...create.modelSettings !== undefined ? { model_settings: create.modelSettings } : {},
|
|
8257
|
+
...create.contextWindowLimit !== undefined ? { context_window_limit: create.contextWindowLimit } : {}
|
|
8258
|
+
}
|
|
8259
|
+
};
|
|
8260
|
+
} else if (this.mode.conversationId) {
|
|
8261
|
+
command.conversation_id = this.mode.conversationId;
|
|
8262
|
+
} else {
|
|
8263
|
+
throw new Error("Agent-free sessions require a conversation to create or resume.");
|
|
8264
|
+
}
|
|
8265
|
+
return command;
|
|
8266
|
+
}
|
|
10422
8267
|
if (this.mode.agentId) {
|
|
10423
8268
|
command.agent_id = this.mode.agentId;
|
|
10424
8269
|
if (this.mode.newConversation) {
|
|
@@ -11138,7 +8983,8 @@ function buildCloudStatusWebSocketUrl(params) {
|
|
|
11138
8983
|
throw new Error(`Unsupported cloud apiBaseUrl protocol: ${base.protocol}`);
|
|
11139
8984
|
}
|
|
11140
8985
|
base.pathname = `/v1/environments/${encodeURIComponent(params.connectionId)}/status/ws`;
|
|
11141
|
-
|
|
8986
|
+
if (params.agentId)
|
|
8987
|
+
base.searchParams.set("agentId", params.agentId);
|
|
11142
8988
|
base.searchParams.set("conversationId", params.conversationId);
|
|
11143
8989
|
base.searchParams.set("channel", "stream");
|
|
11144
8990
|
if (params.authMode === "query" && params.apiKey) {
|
|
@@ -11169,12 +9015,23 @@ function externalToolsByName(tools) {
|
|
|
11169
9015
|
}
|
|
11170
9016
|
return result;
|
|
11171
9017
|
}
|
|
11172
|
-
async function createCloudAgent(client, agentOptions) {
|
|
11173
|
-
const
|
|
9018
|
+
async function createCloudAgent(client, agentOptions, pushSkillSupportFiles) {
|
|
9019
|
+
const skills = await resolveSkillItems(agentOptions.skills);
|
|
9020
|
+
const hasSupportFiles = skillsHaveSupportFiles(skills);
|
|
9021
|
+
if (hasSupportFiles && pushSkillSupportFiles === undefined) {
|
|
9022
|
+
throw new Error("Skill support files (scripts/, references/) require the Node.js " + "package root; the portable client seeds SKILL.md-only skills.");
|
|
9023
|
+
}
|
|
9024
|
+
const body = await createAgentBody(agentOptions, skills);
|
|
11174
9025
|
const agent = await client.agents.create(body);
|
|
11175
9026
|
if (typeof agent.id !== "string" || agent.id.length === 0) {
|
|
11176
9027
|
throw new Error("Cloud create agent response did not include an agent id.");
|
|
11177
9028
|
}
|
|
9029
|
+
if (hasSupportFiles && pushSkillSupportFiles) {
|
|
9030
|
+
if (typeof client.apiKey !== "string" || client.apiKey.length === 0) {
|
|
9031
|
+
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.");
|
|
9032
|
+
}
|
|
9033
|
+
await pushSkillSupportFiles({ apiBaseUrl: client.baseURL, apiKey: client.apiKey, agentId: agent.id }, skills);
|
|
9034
|
+
}
|
|
11178
9035
|
return agent.id;
|
|
11179
9036
|
}
|
|
11180
9037
|
function assertCloudSessionOptionsSupported(action, options) {
|
|
@@ -11224,7 +9081,9 @@ class CloudEnvironmentSession extends RemoteClientSessionCore {
|
|
|
11224
9081
|
this.sandboxLifecycleClosing = false;
|
|
11225
9082
|
const resolved = await this.resolveRuntime();
|
|
11226
9083
|
const connection = await this.resolveConnectionForRuntime(resolved.runtime).catch(async (error) => {
|
|
11227
|
-
|
|
9084
|
+
if (resolved.runtime.agent_id) {
|
|
9085
|
+
await this.cleanupSessionRepositories(resolved.runtime.agent_id, resolved.runtime.conversation_id);
|
|
9086
|
+
}
|
|
11228
9087
|
throw error;
|
|
11229
9088
|
});
|
|
11230
9089
|
this.connectionId = connection.connectionId;
|
|
@@ -11241,7 +9100,9 @@ class CloudEnvironmentSession extends RemoteClientSessionCore {
|
|
|
11241
9100
|
} catch (error) {
|
|
11242
9101
|
await this.closeMcpBridge();
|
|
11243
9102
|
await this.cleanupManagedSandbox();
|
|
11244
|
-
|
|
9103
|
+
if (resolved.runtime.agent_id) {
|
|
9104
|
+
await this.cleanupSessionRepositories(resolved.runtime.agent_id, resolved.runtime.conversation_id);
|
|
9105
|
+
}
|
|
11245
9106
|
throw error;
|
|
11246
9107
|
}
|
|
11247
9108
|
}
|
|
@@ -11265,8 +9126,8 @@ class CloudEnvironmentSession extends RemoteClientSessionCore {
|
|
|
11265
9126
|
requestTimeoutMs: this.cloudOptions.requestTimeoutMs ?? DEFAULT_TURN_TIMEOUT_MS
|
|
11266
9127
|
}, allowedTools, clientToolset),
|
|
11267
9128
|
runtime: response.runtime,
|
|
11268
|
-
model: typeof response.agent?.model === "string" ? response.agent.model : "",
|
|
11269
|
-
modelSettings: response.agent?.model_settings ?? null,
|
|
9129
|
+
model: typeof response.agent?.model === "string" ? response.agent.model : typeof response.conversation?.model === "string" ? response.conversation.model : "",
|
|
9130
|
+
modelSettings: response.agent?.model_settings ?? response.conversation?.model_settings ?? null,
|
|
11270
9131
|
...availableTools !== undefined ? { tools: availableTools } : {},
|
|
11271
9132
|
...skillSources !== undefined ? { skillSources: [...skillSources] } : {}
|
|
11272
9133
|
};
|
|
@@ -11379,11 +9240,12 @@ class CloudEnvironmentSession extends RemoteClientSessionCore {
|
|
|
11379
9240
|
name: SDK_AGENT_ORIGIN,
|
|
11380
9241
|
title: "Letta Agent SDK"
|
|
11381
9242
|
},
|
|
11382
|
-
agent_id: runtime.agent_id,
|
|
11383
9243
|
conversation_id: runtime.conversation_id,
|
|
11384
9244
|
recover_approvals: false,
|
|
11385
9245
|
force_device_status: true
|
|
11386
9246
|
};
|
|
9247
|
+
if (runtime.agent_id)
|
|
9248
|
+
command.agent_id = runtime.agent_id;
|
|
11387
9249
|
const mode = mapPermissionMode(options.permissionMode);
|
|
11388
9250
|
if (mode)
|
|
11389
9251
|
command.mode = mode;
|
|
@@ -11454,6 +9316,17 @@ class CloudEnvironmentSession extends RemoteClientSessionCore {
|
|
|
11454
9316
|
return bridge?.close() ?? Promise.resolve();
|
|
11455
9317
|
}
|
|
11456
9318
|
async resolveRuntime() {
|
|
9319
|
+
if (this.cloudMode.kind === "agent-free") {
|
|
9320
|
+
if (!this.cloudMode.conversationId) {
|
|
9321
|
+
throw new Error("Cloud agent-free sessions require a conversation id.");
|
|
9322
|
+
}
|
|
9323
|
+
return {
|
|
9324
|
+
runtime: {
|
|
9325
|
+
agent_id: null,
|
|
9326
|
+
conversation_id: this.cloudMode.conversationId
|
|
9327
|
+
}
|
|
9328
|
+
};
|
|
9329
|
+
}
|
|
11457
9330
|
let agentId = this.cloudMode.agentId;
|
|
11458
9331
|
let conversationId = this.cloudMode.conversationId;
|
|
11459
9332
|
if (!agentId && conversationId) {
|
|
@@ -11599,6 +9472,9 @@ class CloudEnvironmentSession extends RemoteClientSessionCore {
|
|
|
11599
9472
|
return { connectionId: resolved.connectionId };
|
|
11600
9473
|
}
|
|
11601
9474
|
async createManagedSandboxConnection(runtime) {
|
|
9475
|
+
if (!runtime.agent_id) {
|
|
9476
|
+
throw new Error("Agent-free queries require an explicit Cloud computer; managed sandboxes are agent-scoped.");
|
|
9477
|
+
}
|
|
11602
9478
|
const conversationId = runtime.conversation_id && runtime.conversation_id !== "default" ? runtime.conversation_id : undefined;
|
|
11603
9479
|
const sandbox = await this.createManagedSandbox(runtime.agent_id, conversationId);
|
|
11604
9480
|
this.managedSandbox = sandbox;
|
|
@@ -11901,6 +9777,36 @@ function createConversationsClient(transport) {
|
|
|
11901
9777
|
};
|
|
11902
9778
|
}
|
|
11903
9779
|
|
|
9780
|
+
// src/query.ts
|
|
9781
|
+
function createQuery(createSession, params) {
|
|
9782
|
+
let session = null;
|
|
9783
|
+
let closed = false;
|
|
9784
|
+
const iterator = async function* runQuery() {
|
|
9785
|
+
try {
|
|
9786
|
+
session = await createSession(params.options);
|
|
9787
|
+
if (closed)
|
|
9788
|
+
return;
|
|
9789
|
+
await session.send(params.prompt);
|
|
9790
|
+
yield* session.stream();
|
|
9791
|
+
} finally {
|
|
9792
|
+
closed = true;
|
|
9793
|
+
session?.close();
|
|
9794
|
+
}
|
|
9795
|
+
}();
|
|
9796
|
+
return Object.assign(iterator, {
|
|
9797
|
+
async interrupt() {
|
|
9798
|
+
await session?.abort();
|
|
9799
|
+
},
|
|
9800
|
+
close() {
|
|
9801
|
+
if (closed)
|
|
9802
|
+
return;
|
|
9803
|
+
closed = true;
|
|
9804
|
+
session?.close();
|
|
9805
|
+
iterator.return();
|
|
9806
|
+
}
|
|
9807
|
+
});
|
|
9808
|
+
}
|
|
9809
|
+
|
|
11904
9810
|
// src/validation.ts
|
|
11905
9811
|
var VALID_SKILL_SOURCES = [
|
|
11906
9812
|
"bundled",
|
|
@@ -12126,6 +10032,24 @@ function hasCreateAgentEnvironment(options) {
|
|
|
12126
10032
|
function looksLikeConversationId(id) {
|
|
12127
10033
|
return id.startsWith("conv-") || id.startsWith("local-conv-");
|
|
12128
10034
|
}
|
|
10035
|
+
function agentFreeSessionOptions(options) {
|
|
10036
|
+
const {
|
|
10037
|
+
system: _system,
|
|
10038
|
+
modelSettings: _modelSettings,
|
|
10039
|
+
contextWindowLimit: _contextWindowLimit,
|
|
10040
|
+
...sessionOptions
|
|
10041
|
+
} = options;
|
|
10042
|
+
return sessionOptions;
|
|
10043
|
+
}
|
|
10044
|
+
function validateAgentFreeQueryOptions(options) {
|
|
10045
|
+
if (typeof options.model !== "string" || options.model.length === 0) {
|
|
10046
|
+
throw new Error("query() requires a non-empty model.");
|
|
10047
|
+
}
|
|
10048
|
+
if (typeof options.system !== "string") {
|
|
10049
|
+
throw new Error("query() requires a system prompt.");
|
|
10050
|
+
}
|
|
10051
|
+
validateCreateSessionOptions(agentFreeSessionOptions(options));
|
|
10052
|
+
}
|
|
12129
10053
|
|
|
12130
10054
|
class LettaAgentClientBase {
|
|
12131
10055
|
backend;
|
|
@@ -12200,6 +10124,11 @@ class LettaAgentClientBase {
|
|
|
12200
10124
|
throw new Error("createAgent() does not accept environment. Set a client default or pass environment to resumeSession()/createSession().");
|
|
12201
10125
|
}
|
|
12202
10126
|
validateCreateAgentOptions(options);
|
|
10127
|
+
if (options.skills !== undefined && options.skills.length > 0) {
|
|
10128
|
+
const nodeSupport = this.skillNodeSupport();
|
|
10129
|
+
const skills = await resolveSkillItems(options.skills, nodeSupport?.loadSkillDirectory);
|
|
10130
|
+
options = { ...options, skills };
|
|
10131
|
+
}
|
|
12203
10132
|
if (this.backend === "remote") {
|
|
12204
10133
|
const session = new AppServerSession(this.appServerSessionOptions(), {
|
|
12205
10134
|
kind: "create-agent",
|
|
@@ -12207,10 +10136,13 @@ class LettaAgentClientBase {
|
|
|
12207
10136
|
});
|
|
12208
10137
|
const initMsg = await session.initialize();
|
|
12209
10138
|
session.close();
|
|
10139
|
+
if (!initMsg.agentId) {
|
|
10140
|
+
throw new Error("App Server agent creation did not return an agent id.");
|
|
10141
|
+
}
|
|
12210
10142
|
return initMsg.agentId;
|
|
12211
10143
|
}
|
|
12212
10144
|
if (this.backend === "cloud") {
|
|
12213
|
-
return createCloudAgent(this.getCloudClient(), options);
|
|
10145
|
+
return createCloudAgent(this.getCloudClient(), options, this.skillNodeSupport()?.pushSkillSupportFiles);
|
|
12214
10146
|
}
|
|
12215
10147
|
return this.createLocalAgent(options);
|
|
12216
10148
|
}
|
|
@@ -12283,6 +10215,50 @@ class LettaAgentClientBase {
|
|
|
12283
10215
|
session.close();
|
|
12284
10216
|
}
|
|
12285
10217
|
}
|
|
10218
|
+
query(params) {
|
|
10219
|
+
validateAgentFreeQueryOptions(params.options);
|
|
10220
|
+
return createQuery((options) => this.createAgentFreeSession(options), params);
|
|
10221
|
+
}
|
|
10222
|
+
async createAgentFreeSession(options) {
|
|
10223
|
+
validateAgentFreeQueryOptions(options);
|
|
10224
|
+
const sessionOptions = agentFreeSessionOptions(options);
|
|
10225
|
+
this.assertSessionBackend("query", sessionOptions);
|
|
10226
|
+
if (this.backend === "remote") {
|
|
10227
|
+
return new AppServerSession(this.appServerSessionOptions(), {
|
|
10228
|
+
kind: "agent-free",
|
|
10229
|
+
createConversation: {
|
|
10230
|
+
model: options.model,
|
|
10231
|
+
system: options.system,
|
|
10232
|
+
...options.modelSettings !== undefined ? { modelSettings: options.modelSettings } : {},
|
|
10233
|
+
...options.contextWindowLimit !== undefined ? { contextWindowLimit: options.contextWindowLimit } : {}
|
|
10234
|
+
},
|
|
10235
|
+
options: sessionOptions
|
|
10236
|
+
});
|
|
10237
|
+
}
|
|
10238
|
+
if (this.backend === "cloud") {
|
|
10239
|
+
const computer = options.computer ?? options.environment ?? this.computer;
|
|
10240
|
+
if (computer === undefined) {
|
|
10241
|
+
throw new Error("Cloud query() requires an explicit computer; managed sandboxes are agent-scoped.");
|
|
10242
|
+
}
|
|
10243
|
+
const conversation = await this.getCloudClient().post("/v1/conversations/ephemeral", {
|
|
10244
|
+
body: {
|
|
10245
|
+
model: options.model,
|
|
10246
|
+
system: options.system,
|
|
10247
|
+
...options.modelSettings !== undefined ? { model_settings: options.modelSettings } : {},
|
|
10248
|
+
...options.contextWindowLimit !== undefined ? { context_window_limit: options.contextWindowLimit } : {}
|
|
10249
|
+
}
|
|
10250
|
+
});
|
|
10251
|
+
if (!conversation || typeof conversation !== "object" || typeof conversation.id !== "string") {
|
|
10252
|
+
throw new Error("Cloud ephemeral conversation response did not include a conversation id.");
|
|
10253
|
+
}
|
|
10254
|
+
return new CloudEnvironmentSession(this.cloudOptions(), {
|
|
10255
|
+
kind: "agent-free",
|
|
10256
|
+
conversationId: conversation.id,
|
|
10257
|
+
options: sessionOptions
|
|
10258
|
+
}, this.getCloudClient());
|
|
10259
|
+
}
|
|
10260
|
+
return this.createLocalAgentFreeSession(options, sessionOptions);
|
|
10261
|
+
}
|
|
12286
10262
|
assertSessionBackend(action, options) {
|
|
12287
10263
|
if (options.computer !== undefined && options.environment !== undefined) {
|
|
12288
10264
|
throw new Error(`${action}() cannot specify both computer and deprecated environment.`);
|
|
@@ -12347,9 +10323,15 @@ class LettaAgentClientBase {
|
|
|
12347
10323
|
createLocalAgent(_options) {
|
|
12348
10324
|
throw this.localBackendUnavailableError();
|
|
12349
10325
|
}
|
|
10326
|
+
skillNodeSupport() {
|
|
10327
|
+
return;
|
|
10328
|
+
}
|
|
12350
10329
|
createLocalSession(_agentId, _options) {
|
|
12351
10330
|
throw this.localBackendUnavailableError();
|
|
12352
10331
|
}
|
|
10332
|
+
createLocalAgentFreeSession(_queryOptions, _sessionOptions) {
|
|
10333
|
+
throw this.localBackendUnavailableError();
|
|
10334
|
+
}
|
|
12353
10335
|
resumeLocalSession(_id, _options) {
|
|
12354
10336
|
throw this.localBackendUnavailableError();
|
|
12355
10337
|
}
|
|
@@ -12946,4 +10928,4 @@ export {
|
|
|
12946
10928
|
CloudManagedSandboxExpiredError
|
|
12947
10929
|
};
|
|
12948
10930
|
|
|
12949
|
-
//# debugId=
|
|
10931
|
+
//# debugId=289B04BD4804EAF864756E2164756E21
|