Compare commits

...

19 Commits

Author SHA1 Message Date
GitHub Action 3a77f98ead chore: regen sdk
format / format (push) Has been cancelled
sdk / format (push) Has been cancelled
test / test (push) Has been cancelled
2025-12-07 05:55:22 +00:00
Aiden Cline c8c29faf4d fix: typo 2025-12-06 23:54:50 -06:00
GitHub Action e367c8439b chore: format code 2025-12-07 05:47:44 +00:00
Aiden Cline e52d22039e rebase 2025-12-06 23:47:08 -06:00
Aiden Cline 9425eee09f fix: external dir 2025-12-06 23:47:08 -06:00
GitHub Action 320ebb35b7 chore: regen sdk 2025-12-07 05:46:16 +00:00
Aiden Cline 775ddd8c46 Merge branch 'dev' into bash-tweaks 2025-12-06 21:45:50 -08:00
Aiden Cline 32566a16a5 Revise bash.txt for command usage guidelines
Updated examples to avoid using 'cd' and clarified command usage.
2025-12-06 17:30:10 -06:00
Aiden Cline 414bbd50ac fix example
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-12-06 17:28:53 -06:00
Aiden Cline b40bb950ae fix typo
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-12-06 17:28:43 -06:00
Aiden Cline fcc256c3c9 fix: test 2025-12-06 17:04:53 -06:00
Aiden Cline bfbcf978fa tweak: timeout defaults 2025-12-05 16:31:10 -06:00
Aiden Cline c75dae680a remove max timeout 2025-12-05 16:28:32 -06:00
Aiden Cline 639824b1ea tweak 2025-12-05 16:18:52 -06:00
Aiden Cline 8ede7c59d2 fix 2025-12-05 16:12:40 -06:00
Aiden Cline 61cf0aeee2 fix 2025-12-05 16:12:18 -06:00
Aiden Cline ae328d338e bash tweaks 2025-12-05 16:11:39 -06:00
Aiden Cline 2f5d6ba447 Merge branch 'dev' into bash-tweaks 2025-12-05 14:42:23 -06:00
Aiden Cline 6cf5fe481b wip 2025-12-05 14:42:10 -06:00
6 changed files with 8593 additions and 554 deletions
+42 -30
View File
@@ -21,8 +21,7 @@ const MAX_OUTPUT_LENGTH = (() => {
const parsed = Number(Flag.OPENCODE_EXPERIMENTAL_BASH_MAX_OUTPUT_LENGTH)
return Number.isInteger(parsed) && parsed > 0 ? parsed : DEFAULT_MAX_OUTPUT_LENGTH
})()
const DEFAULT_TIMEOUT = 1 * 60 * 1000
const MAX_TIMEOUT = 10 * 60 * 1000
const DEFAULT_TIMEOUT = 2 * 60 * 1000
const SIGKILL_TIMEOUT_MS = 200
export const log = Log.create({ service: "bash-tool" })
@@ -90,6 +89,12 @@ export const BashTool = Tool.define("bash", async () => {
parameters: z.object({
command: z.string().describe("The command to execute"),
timeout: z.number().describe("Optional timeout in milliseconds").optional(),
workdir: z
.string()
.describe(
`The working directory to run the command in. Defaults to ${Instance.directory}. Use this instead of 'cd' commands.`,
)
.optional(),
description: z
.string()
.describe(
@@ -97,15 +102,47 @@ export const BashTool = Tool.define("bash", async () => {
),
}),
async execute(params, ctx) {
const cwd = params.workdir || Instance.directory
if (params.timeout !== undefined && params.timeout < 0) {
throw new Error(`Invalid timeout value: ${params.timeout}. Timeout must be a positive number.`)
}
const timeout = Math.min(params.timeout ?? DEFAULT_TIMEOUT, MAX_TIMEOUT)
const timeout = params.timeout ?? DEFAULT_TIMEOUT
const tree = await parser().then((p) => p.parse(params.command))
if (!tree) {
throw new Error("Failed to parse command")
}
const agent = await Agent.get(ctx.agent)
const checkExternalDirectory = async (dir: string) => {
if (Filesystem.contains(Instance.directory, dir)) return
const title = `This command references paths outside of ${Instance.directory}`
if (agent.permission.external_directory === "ask") {
await Permission.ask({
type: "external_directory",
pattern: [dir, path.join(dir, "*")],
sessionID: ctx.sessionID,
messageID: ctx.messageID,
callID: ctx.callID,
title,
metadata: {
command: params.command,
},
})
} else if (agent.permission.external_directory === "deny") {
throw new Permission.RejectedError(
ctx.sessionID,
"external_directory",
ctx.callID,
{
command: params.command,
},
`${title} so this command is not allowed to be executed.`,
)
}
}
await checkExternalDirectory(cwd)
const permissions = agent.permission.bash
const askPatterns = new Set<string>()
@@ -144,32 +181,7 @@ export const BashTool = Tool.define("bash", async () => {
? resolved.replace(/^\/([a-z])\//, (_, drive) => `${drive.toUpperCase()}:\\`).replace(/\//g, "\\")
: resolved
if (!Filesystem.contains(Instance.directory, normalized)) {
const parentDir = path.dirname(normalized)
if (agent.permission.external_directory === "ask") {
await Permission.ask({
type: "external_directory",
pattern: [parentDir, path.join(parentDir, "*")],
sessionID: ctx.sessionID,
messageID: ctx.messageID,
callID: ctx.callID,
title: `This command references paths outside of ${Instance.directory}`,
metadata: {
command: params.command,
},
})
} else if (agent.permission.external_directory === "deny") {
throw new Permission.RejectedError(
ctx.sessionID,
"external_directory",
ctx.callID,
{
command: params.command,
},
`This command references paths outside of ${Instance.directory} so it is not allowed to be executed.`,
)
}
}
await checkExternalDirectory(normalized)
}
}
}
@@ -215,7 +227,7 @@ export const BashTool = Tool.define("bash", async () => {
const proc = spawn(params.command, {
shell,
cwd: Instance.directory,
cwd,
env: {
...process.env,
},
+18 -11
View File
@@ -7,10 +7,10 @@ Before executing the command, please follow these steps:
- For example, before running "mkdir foo/bar", first use List to check that "foo" exists and is the intended parent directory
2. Command Execution:
- Always quote file paths that contain spaces with double quotes (e.g., cd "path with spaces/file.txt")
- Always quote file paths that contain spaces with double quotes (e.g., rm "path with spaces/file.txt")
- Examples of proper quoting:
- cd "/Users/name/My Documents" (correct)
- cd /Users/name/My Documents (incorrect - will fail)
- mkdir "/Users/name/My Documents" (correct)
- mkdir /Users/name/My Documents (incorrect - will fail)
- python "/path/with spaces/script.py" (correct)
- python /path/with spaces/script.py (incorrect - will fail)
- After ensuring proper quoting, execute the command.
@@ -18,20 +18,27 @@ Before executing the command, please follow these steps:
Usage notes:
- The command argument is required.
- You can specify an optional timeout in milliseconds (up to 600000ms / 10 minutes). If not specified, commands will timeout after 120000ms (2 minutes).
- You can specify an optional timeout in milliseconds. If not specified, commands will timeout after 120000ms (2 minutes). Use the `timeout` parameter to control execution time.
- The `workdir` parameter specifies the working directory for the command. Defaults to the current working directory. Prefer setting `workdir` over using `cd` in your commands.
- It is very helpful if you write a clear, concise description of what this command does in 5-10 words.
- If the output exceeds 30000 characters, output will be truncated before being returned to you.
- VERY IMPORTANT: You MUST avoid using search commands like `find` and `grep`. Instead use Grep, Glob, or Task to search. You MUST avoid read tools like `cat`, `head`, `tail`, and `ls`, and use Read and List to read files.
- If you _still_ need to run `grep`, STOP. ALWAYS USE ripgrep at `rg` (or /usr/bin/rg) first, which all opencode users have pre-installed.
- When issuing multiple commands, use the ';' or '&&' operator to separate them. DO NOT use newlines (newlines are ok in quoted strings).
- Try to maintain your current working directory throughout the session by using absolute paths and avoiding usage of `cd`. You may use `cd` if the User explicitly requests it.
<good-example>
pytest /foo/bar/tests
</good-example>
<bad-example>
cd /foo/bar && pytest tests
</bad-example>
# Working Directory
The `workdir` parameter sets the working directory for command execution. Prefer using `workdir` over `cd <dir> &&` command chains when you simply need to run a command in a different directory.
<good-example>
workdir="/foo/bar", command="pytest tests"
</good-example>
<good-example>
command="pytest /foo/bar/tests"
</good-example>
<bad-example>
command="cd /foo/bar && pytest tests"
</bad-example>
# Committing changes with git
+1 -1
View File
@@ -13,7 +13,6 @@ const ctx = {
metadata: () => {},
}
const bash = await BashTool.init()
const projectRoot = path.join(__dirname, "../..")
describe("tool.bash", () => {
@@ -21,6 +20,7 @@ describe("tool.bash", () => {
await Instance.provide({
directory: projectRoot,
fn: async () => {
const bash = await BashTool.init()
const result = await bash.execute(
{
command: "echo 'test'",
+1171 -256
View File
@@ -286,7 +286,10 @@
"type": "number"
}
},
"required": ["rows", "cols"]
"required": [
"rows",
"cols"
]
}
}
}
@@ -1117,7 +1120,11 @@
"pattern": "^msg.*"
}
},
"required": ["modelID", "providerID", "messageID"]
"required": [
"modelID",
"providerID",
"messageID"
]
}
}
}
@@ -1473,7 +1480,10 @@
"type": "string"
}
},
"required": ["providerID", "modelID"]
"required": [
"providerID",
"modelID"
]
}
}
}
@@ -1529,7 +1539,10 @@
}
}
},
"required": ["info", "parts"]
"required": [
"info",
"parts"
]
}
}
}
@@ -1596,7 +1609,10 @@
}
}
},
"required": ["info", "parts"]
"required": [
"info",
"parts"
]
}
}
}
@@ -1642,7 +1658,10 @@
"type": "string"
}
},
"required": ["providerID", "modelID"]
"required": [
"providerID",
"modelID"
]
},
"agent": {
"type": "string"
@@ -1682,7 +1701,9 @@
}
}
},
"required": ["parts"]
"required": [
"parts"
]
}
}
}
@@ -1738,7 +1759,10 @@
}
}
},
"required": ["info", "parts"]
"required": [
"info",
"parts"
]
}
}
}
@@ -1833,7 +1857,10 @@
"type": "string"
}
},
"required": ["providerID", "modelID"]
"required": [
"providerID",
"modelID"
]
},
"agent": {
"type": "string"
@@ -1873,7 +1900,9 @@
}
}
},
"required": ["parts"]
"required": [
"parts"
]
}
}
}
@@ -1920,7 +1949,10 @@
}
}
},
"required": ["info", "parts"]
"required": [
"info",
"parts"
]
}
}
}
@@ -1969,7 +2001,10 @@
"type": "string"
}
},
"required": ["arguments", "command"]
"required": [
"arguments",
"command"
]
}
}
}
@@ -2049,13 +2084,19 @@
"type": "string"
}
},
"required": ["providerID", "modelID"]
"required": [
"providerID",
"modelID"
]
},
"command": {
"type": "string"
}
},
"required": ["agent", "command"]
"required": [
"agent",
"command"
]
}
}
}
@@ -2130,7 +2171,9 @@
"pattern": "^prt.*"
}
},
"required": ["messageID"]
"required": [
"messageID"
]
}
}
}
@@ -2261,10 +2304,16 @@
"properties": {
"response": {
"type": "string",
"enum": ["once", "always", "reject"]
"enum": [
"once",
"always",
"reject"
]
}
},
"required": ["response"]
"required": [
"response"
]
}
}
}
@@ -2338,7 +2387,10 @@
}
}
},
"required": ["providers", "default"]
"required": [
"providers",
"default"
]
}
}
}
@@ -2450,10 +2502,16 @@
"type": "number"
}
},
"required": ["input", "output"]
"required": [
"input",
"output"
]
}
},
"required": ["input", "output"]
"required": [
"input",
"output"
]
},
"limit": {
"type": "object",
@@ -2465,7 +2523,10 @@
"type": "number"
}
},
"required": ["context", "output"]
"required": [
"context",
"output"
]
},
"modalities": {
"type": "object",
@@ -2474,25 +2535,44 @@
"type": "array",
"items": {
"type": "string",
"enum": ["text", "audio", "image", "video", "pdf"]
"enum": [
"text",
"audio",
"image",
"video",
"pdf"
]
}
},
"output": {
"type": "array",
"items": {
"type": "string",
"enum": ["text", "audio", "image", "video", "pdf"]
"enum": [
"text",
"audio",
"image",
"video",
"pdf"
]
}
}
},
"required": ["input", "output"]
"required": [
"input",
"output"
]
},
"experimental": {
"type": "boolean"
},
"status": {
"type": "string",
"enum": ["alpha", "beta", "deprecated"]
"enum": [
"alpha",
"beta",
"deprecated"
]
},
"options": {
"type": "object",
@@ -2517,7 +2597,9 @@
"type": "string"
}
},
"required": ["npm"]
"required": [
"npm"
]
}
},
"required": [
@@ -2534,7 +2616,12 @@
}
}
},
"required": ["name", "env", "id", "models"]
"required": [
"name",
"env",
"id",
"models"
]
}
},
"default": {
@@ -2553,7 +2640,11 @@
}
}
},
"required": ["all", "default", "connected"]
"required": [
"all",
"default",
"connected"
]
}
}
}
@@ -2652,7 +2743,9 @@
"type": "number"
}
},
"required": ["method"]
"required": [
"method"
]
}
}
}
@@ -2718,7 +2811,9 @@
"type": "string"
}
},
"required": ["method"]
"required": [
"method"
]
}
}
}
@@ -2763,7 +2858,9 @@
"type": "string"
}
},
"required": ["text"]
"required": [
"text"
]
},
"lines": {
"type": "object",
@@ -2772,7 +2869,9 @@
"type": "string"
}
},
"required": ["text"]
"required": [
"text"
]
},
"line_number": {
"type": "number"
@@ -2792,7 +2891,9 @@
"type": "string"
}
},
"required": ["text"]
"required": [
"text"
]
},
"start": {
"type": "number"
@@ -2801,11 +2902,21 @@
"type": "number"
}
},
"required": ["match", "start", "end"]
"required": [
"match",
"start",
"end"
]
}
}
},
"required": ["path", "lines", "line_number", "absolute_offset", "submatches"]
"required": [
"path",
"lines",
"line_number",
"absolute_offset",
"submatches"
]
}
}
}
@@ -2838,7 +2949,10 @@
"name": "dirs",
"schema": {
"type": "string",
"enum": ["true", "false"]
"enum": [
"true",
"false"
]
}
}
],
@@ -3049,7 +3163,12 @@
"level": {
"description": "Log level",
"type": "string",
"enum": ["debug", "info", "error", "warn"]
"enum": [
"debug",
"info",
"error",
"warn"
]
},
"message": {
"description": "Log message",
@@ -3064,7 +3183,11 @@
"additionalProperties": {}
}
},
"required": ["service", "level", "message"]
"required": [
"service",
"level",
"message"
]
}
}
}
@@ -3193,7 +3316,10 @@
]
}
},
"required": ["name", "config"]
"required": [
"name",
"config"
]
}
}
}
@@ -3305,7 +3431,9 @@
"type": "string"
}
},
"required": ["text"]
"required": [
"text"
]
}
}
}
@@ -3519,7 +3647,9 @@
"type": "string"
}
},
"required": ["command"]
"required": [
"command"
]
}
}
}
@@ -3565,7 +3695,12 @@
},
"variant": {
"type": "string",
"enum": ["info", "success", "warning", "error"]
"enum": [
"info",
"success",
"warning",
"error"
]
},
"duration": {
"description": "Duration in milliseconds",
@@ -3573,7 +3708,10 @@
"type": "number"
}
},
"required": ["message", "variant"]
"required": [
"message",
"variant"
]
}
}
}
@@ -3662,7 +3800,10 @@
},
"body": {}
},
"required": ["path", "body"]
"required": [
"path",
"body"
]
}
}
}
@@ -3802,10 +3943,15 @@
"type": "string"
}
},
"required": ["directory"]
"required": [
"directory"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.installation.updated": {
"type": "object",
@@ -3821,10 +3967,15 @@
"type": "string"
}
},
"required": ["version"]
"required": [
"version"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.installation.update-available": {
"type": "object",
@@ -3840,10 +3991,15 @@
"type": "string"
}
},
"required": ["version"]
"required": [
"version"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.lsp.client.diagnostics": {
"type": "object",
@@ -3862,10 +4018,16 @@
"type": "string"
}
},
"required": ["serverID", "path"]
"required": [
"serverID",
"path"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.lsp.updated": {
"type": "object",
@@ -3879,7 +4041,10 @@
"properties": {}
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"FileDiff": {
"type": "object",
@@ -3900,7 +4065,13 @@
"type": "number"
}
},
"required": ["file", "before", "after", "additions", "deletions"]
"required": [
"file",
"before",
"after",
"additions",
"deletions"
]
},
"UserMessage": {
"type": "object",
@@ -3922,7 +4093,9 @@
"type": "number"
}
},
"required": ["created"]
"required": [
"created"
]
},
"summary": {
"type": "object",
@@ -3940,7 +4113,9 @@
}
}
},
"required": ["diffs"]
"required": [
"diffs"
]
},
"agent": {
"type": "string"
@@ -3955,7 +4130,10 @@
"type": "string"
}
},
"required": ["providerID", "modelID"]
"required": [
"providerID",
"modelID"
]
},
"system": {
"type": "string"
@@ -3970,7 +4148,14 @@
}
}
},
"required": ["id", "sessionID", "role", "time", "agent", "model"]
"required": [
"id",
"sessionID",
"role",
"time",
"agent",
"model"
]
},
"ProviderAuthError": {
"type": "object",
@@ -3989,10 +4174,16 @@
"type": "string"
}
},
"required": ["providerID", "message"]
"required": [
"providerID",
"message"
]
}
},
"required": ["name", "data"]
"required": [
"name",
"data"
]
},
"UnknownError": {
"type": "object",
@@ -4008,10 +4199,15 @@
"type": "string"
}
},
"required": ["message"]
"required": [
"message"
]
}
},
"required": ["name", "data"]
"required": [
"name",
"data"
]
},
"MessageOutputLengthError": {
"type": "object",
@@ -4025,7 +4221,10 @@
"properties": {}
}
},
"required": ["name", "data"]
"required": [
"name",
"data"
]
},
"MessageAbortedError": {
"type": "object",
@@ -4041,10 +4240,15 @@
"type": "string"
}
},
"required": ["message"]
"required": [
"message"
]
}
},
"required": ["name", "data"]
"required": [
"name",
"data"
]
},
"APIError": {
"type": "object",
@@ -4078,10 +4282,16 @@
"type": "string"
}
},
"required": ["message", "isRetryable"]
"required": [
"message",
"isRetryable"
]
}
},
"required": ["name", "data"]
"required": [
"name",
"data"
]
},
"AssistantMessage": {
"type": "object",
@@ -4106,7 +4316,9 @@
"type": "number"
}
},
"required": ["created"]
"required": [
"created"
]
},
"error": {
"anyOf": [
@@ -4149,7 +4361,10 @@
"type": "string"
}
},
"required": ["cwd", "root"]
"required": [
"cwd",
"root"
]
},
"summary": {
"type": "boolean"
@@ -4179,10 +4394,18 @@
"type": "number"
}
},
"required": ["read", "write"]
"required": [
"read",
"write"
]
}
},
"required": ["input", "output", "reasoning", "cache"]
"required": [
"input",
"output",
"reasoning",
"cache"
]
},
"finish": {
"type": "string"
@@ -4226,10 +4449,15 @@
"$ref": "#/components/schemas/Message"
}
},
"required": ["info"]
"required": [
"info"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.message.removed": {
"type": "object",
@@ -4248,10 +4476,16 @@
"type": "string"
}
},
"required": ["sessionID", "messageID"]
"required": [
"sessionID",
"messageID"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"TextPart": {
"type": "object",
@@ -4288,7 +4522,9 @@
"type": "number"
}
},
"required": ["start"]
"required": [
"start"
]
},
"metadata": {
"type": "object",
@@ -4298,7 +4534,13 @@
"additionalProperties": {}
}
},
"required": ["id", "sessionID", "messageID", "type", "text"]
"required": [
"id",
"sessionID",
"messageID",
"type",
"text"
]
},
"ReasoningPart": {
"type": "object",
@@ -4336,10 +4578,19 @@
"type": "number"
}
},
"required": ["start"]
"required": [
"start"
]
}
},
"required": ["id", "sessionID", "messageID", "type", "text", "time"]
"required": [
"id",
"sessionID",
"messageID",
"type",
"text",
"time"
]
},
"FilePartSourceText": {
"type": "object",
@@ -4358,7 +4609,11 @@
"maximum": 9007199254740991
}
},
"required": ["value", "start", "end"]
"required": [
"value",
"start",
"end"
]
},
"FileSource": {
"type": "object",
@@ -4374,7 +4629,11 @@
"type": "string"
}
},
"required": ["text", "type", "path"]
"required": [
"text",
"type",
"path"
]
},
"Range": {
"type": "object",
@@ -4389,7 +4648,10 @@
"type": "number"
}
},
"required": ["line", "character"]
"required": [
"line",
"character"
]
},
"end": {
"type": "object",
@@ -4401,10 +4663,16 @@
"type": "number"
}
},
"required": ["line", "character"]
"required": [
"line",
"character"
]
}
},
"required": ["start", "end"]
"required": [
"start",
"end"
]
},
"SymbolSource": {
"type": "object",
@@ -4431,7 +4699,14 @@
"maximum": 9007199254740991
}
},
"required": ["text", "type", "path", "range", "name", "kind"]
"required": [
"text",
"type",
"path",
"range",
"name",
"kind"
]
},
"FilePartSource": {
"anyOf": [
@@ -4472,7 +4747,14 @@
"$ref": "#/components/schemas/FilePartSource"
}
},
"required": ["id", "sessionID", "messageID", "type", "mime", "url"]
"required": [
"id",
"sessionID",
"messageID",
"type",
"mime",
"url"
]
},
"ToolStatePending": {
"type": "object",
@@ -4492,7 +4774,11 @@
"type": "string"
}
},
"required": ["status", "input", "raw"]
"required": [
"status",
"input",
"raw"
]
},
"ToolStateRunning": {
"type": "object",
@@ -4525,10 +4811,16 @@
"type": "number"
}
},
"required": ["start"]
"required": [
"start"
]
}
},
"required": ["status", "input", "time"]
"required": [
"status",
"input",
"time"
]
},
"ToolStateCompleted": {
"type": "object",
@@ -4570,7 +4862,10 @@
"type": "number"
}
},
"required": ["start", "end"]
"required": [
"start",
"end"
]
},
"attachments": {
"type": "array",
@@ -4579,7 +4874,14 @@
}
}
},
"required": ["status", "input", "output", "title", "metadata", "time"]
"required": [
"status",
"input",
"output",
"title",
"metadata",
"time"
]
},
"ToolStateError": {
"type": "object",
@@ -4615,10 +4917,18 @@
"type": "number"
}
},
"required": ["start", "end"]
"required": [
"start",
"end"
]
}
},
"required": ["status", "input", "error", "time"]
"required": [
"status",
"input",
"error",
"time"
]
},
"ToolState": {
"anyOf": [
@@ -4669,7 +4979,15 @@
"additionalProperties": {}
}
},
"required": ["id", "sessionID", "messageID", "type", "callID", "tool", "state"]
"required": [
"id",
"sessionID",
"messageID",
"type",
"callID",
"tool",
"state"
]
},
"StepStartPart": {
"type": "object",
@@ -4691,7 +5009,12 @@
"type": "string"
}
},
"required": ["id", "sessionID", "messageID", "type"]
"required": [
"id",
"sessionID",
"messageID",
"type"
]
},
"StepFinishPart": {
"type": "object",
@@ -4740,13 +5063,29 @@
"type": "number"
}
},
"required": ["read", "write"]
"required": [
"read",
"write"
]
}
},
"required": ["input", "output", "reasoning", "cache"]
"required": [
"input",
"output",
"reasoning",
"cache"
]
}
},
"required": ["id", "sessionID", "messageID", "type", "reason", "cost", "tokens"]
"required": [
"id",
"sessionID",
"messageID",
"type",
"reason",
"cost",
"tokens"
]
},
"SnapshotPart": {
"type": "object",
@@ -4768,7 +5107,13 @@
"type": "string"
}
},
"required": ["id", "sessionID", "messageID", "type", "snapshot"]
"required": [
"id",
"sessionID",
"messageID",
"type",
"snapshot"
]
},
"PatchPart": {
"type": "object",
@@ -4796,7 +5141,14 @@
}
}
},
"required": ["id", "sessionID", "messageID", "type", "hash", "files"]
"required": [
"id",
"sessionID",
"messageID",
"type",
"hash",
"files"
]
},
"AgentPart": {
"type": "object",
@@ -4834,10 +5186,20 @@
"maximum": 9007199254740991
}
},
"required": ["value", "start", "end"]
"required": [
"value",
"start",
"end"
]
}
},
"required": ["id", "sessionID", "messageID", "type", "name"]
"required": [
"id",
"sessionID",
"messageID",
"type",
"name"
]
},
"RetryPart": {
"type": "object",
@@ -4868,10 +5230,20 @@
"type": "number"
}
},
"required": ["created"]
"required": [
"created"
]
}
},
"required": ["id", "sessionID", "messageID", "type", "attempt", "error", "time"]
"required": [
"id",
"sessionID",
"messageID",
"type",
"attempt",
"error",
"time"
]
},
"CompactionPart": {
"type": "object",
@@ -4893,7 +5265,13 @@
"type": "boolean"
}
},
"required": ["id", "sessionID", "messageID", "type", "auto"]
"required": [
"id",
"sessionID",
"messageID",
"type",
"auto"
]
},
"Part": {
"anyOf": [
@@ -4926,7 +5304,15 @@
"type": "string"
}
},
"required": ["id", "sessionID", "messageID", "type", "prompt", "description", "agent"]
"required": [
"id",
"sessionID",
"messageID",
"type",
"prompt",
"description",
"agent"
]
},
{
"$ref": "#/components/schemas/ReasoningPart"
@@ -4977,10 +5363,15 @@
"type": "string"
}
},
"required": ["part"]
"required": [
"part"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.message.part.removed": {
"type": "object",
@@ -5002,10 +5393,17 @@
"type": "string"
}
},
"required": ["sessionID", "messageID", "partID"]
"required": [
"sessionID",
"messageID",
"partID"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Permission": {
"type": "object",
@@ -5055,10 +5453,20 @@
"type": "number"
}
},
"required": ["created"]
"required": [
"created"
]
}
},
"required": ["id", "type", "sessionID", "messageID", "title", "metadata", "time"]
"required": [
"id",
"type",
"sessionID",
"messageID",
"title",
"metadata",
"time"
]
},
"Event.permission.updated": {
"type": "object",
@@ -5071,7 +5479,10 @@
"$ref": "#/components/schemas/Permission"
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.permission.replied": {
"type": "object",
@@ -5093,10 +5504,17 @@
"type": "string"
}
},
"required": ["sessionID", "permissionID", "response"]
"required": [
"sessionID",
"permissionID",
"response"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"SessionStatus": {
"anyOf": [
@@ -5108,7 +5526,9 @@
"const": "idle"
}
},
"required": ["type"]
"required": [
"type"
]
},
{
"type": "object",
@@ -5127,7 +5547,12 @@
"type": "number"
}
},
"required": ["type", "attempt", "message", "next"]
"required": [
"type",
"attempt",
"message",
"next"
]
},
{
"type": "object",
@@ -5137,7 +5562,9 @@
"const": "busy"
}
},
"required": ["type"]
"required": [
"type"
]
}
]
},
@@ -5158,10 +5585,16 @@
"$ref": "#/components/schemas/SessionStatus"
}
},
"required": ["sessionID", "status"]
"required": [
"sessionID",
"status"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.session.idle": {
"type": "object",
@@ -5177,10 +5610,15 @@
"type": "string"
}
},
"required": ["sessionID"]
"required": [
"sessionID"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.session.compacted": {
"type": "object",
@@ -5196,10 +5634,15 @@
"type": "string"
}
},
"required": ["sessionID"]
"required": [
"sessionID"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.file.edited": {
"type": "object",
@@ -5215,10 +5658,15 @@
"type": "string"
}
},
"required": ["file"]
"required": [
"file"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Todo": {
"type": "object",
@@ -5240,7 +5688,12 @@
"type": "string"
}
},
"required": ["content", "status", "priority", "id"]
"required": [
"content",
"status",
"priority",
"id"
]
},
"Event.todo.updated": {
"type": "object",
@@ -5262,10 +5715,16 @@
}
}
},
"required": ["sessionID", "todos"]
"required": [
"sessionID",
"todos"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.command.executed": {
"type": "object",
@@ -5292,10 +5751,18 @@
"pattern": "^msg.*"
}
},
"required": ["name", "sessionID", "arguments", "messageID"]
"required": [
"name",
"sessionID",
"arguments",
"messageID"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Session": {
"type": "object",
@@ -5333,7 +5800,11 @@
}
}
},
"required": ["additions", "deletions", "files"]
"required": [
"additions",
"deletions",
"files"
]
},
"share": {
"type": "object",
@@ -5342,7 +5813,9 @@
"type": "string"
}
},
"required": ["url"]
"required": [
"url"
]
},
"title": {
"type": "string"
@@ -5363,7 +5836,10 @@
"type": "number"
}
},
"required": ["created", "updated"]
"required": [
"created",
"updated"
]
},
"revert": {
"type": "object",
@@ -5381,10 +5857,19 @@
"type": "string"
}
},
"required": ["messageID"]
"required": [
"messageID"
]
}
},
"required": ["id", "projectID", "directory", "title", "version", "time"]
"required": [
"id",
"projectID",
"directory",
"title",
"version",
"time"
]
},
"Event.session.created": {
"type": "object",
@@ -5400,10 +5885,15 @@
"$ref": "#/components/schemas/Session"
}
},
"required": ["info"]
"required": [
"info"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.session.updated": {
"type": "object",
@@ -5419,10 +5909,15 @@
"$ref": "#/components/schemas/Session"
}
},
"required": ["info"]
"required": [
"info"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.session.deleted": {
"type": "object",
@@ -5438,10 +5933,15 @@
"$ref": "#/components/schemas/Session"
}
},
"required": ["info"]
"required": [
"info"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.session.diff": {
"type": "object",
@@ -5463,10 +5963,16 @@
}
}
},
"required": ["sessionID", "diff"]
"required": [
"sessionID",
"diff"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.session.error": {
"type": "object",
@@ -5503,7 +6009,10 @@
}
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.file.watcher.updated": {
"type": "object",
@@ -5535,10 +6044,16 @@
]
}
},
"required": ["file", "event"]
"required": [
"file",
"event"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.vcs.branch.updated": {
"type": "object",
@@ -5556,7 +6071,10 @@
}
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.tui.prompt.append": {
"type": "object",
@@ -5572,10 +6090,15 @@
"type": "string"
}
},
"required": ["text"]
"required": [
"text"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.tui.command.execute": {
"type": "object",
@@ -5614,10 +6137,15 @@
]
}
},
"required": ["command"]
"required": [
"command"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.tui.toast.show": {
"type": "object",
@@ -5637,7 +6165,12 @@
},
"variant": {
"type": "string",
"enum": ["info", "success", "warning", "error"]
"enum": [
"info",
"success",
"warning",
"error"
]
},
"duration": {
"description": "Duration in milliseconds",
@@ -5645,10 +6178,16 @@
"type": "number"
}
},
"required": ["message", "variant"]
"required": [
"message",
"variant"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Pty": {
"type": "object",
@@ -5674,13 +6213,24 @@
},
"status": {
"type": "string",
"enum": ["running", "exited"]
"enum": [
"running",
"exited"
]
},
"pid": {
"type": "number"
}
},
"required": ["id", "title", "command", "args", "cwd", "status", "pid"]
"required": [
"id",
"title",
"command",
"args",
"cwd",
"status",
"pid"
]
},
"Event.pty.created": {
"type": "object",
@@ -5696,10 +6246,15 @@
"$ref": "#/components/schemas/Pty"
}
},
"required": ["info"]
"required": [
"info"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.pty.updated": {
"type": "object",
@@ -5715,10 +6270,15 @@
"$ref": "#/components/schemas/Pty"
}
},
"required": ["info"]
"required": [
"info"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.pty.exited": {
"type": "object",
@@ -5738,10 +6298,16 @@
"type": "number"
}
},
"required": ["id", "exitCode"]
"required": [
"id",
"exitCode"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.pty.deleted": {
"type": "object",
@@ -5758,10 +6324,15 @@
"pattern": "^pty.*"
}
},
"required": ["id"]
"required": [
"id"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.server.connected": {
"type": "object",
@@ -5775,7 +6346,10 @@
"properties": {}
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event": {
"anyOf": [
@@ -5887,7 +6461,10 @@
"$ref": "#/components/schemas/Event"
}
},
"required": ["directory", "payload"]
"required": [
"directory",
"payload"
]
},
"Project": {
"type": "object",
@@ -5915,10 +6492,16 @@
"type": "number"
}
},
"required": ["created"]
"required": [
"created"
]
}
},
"required": ["id", "worktree", "time"]
"required": [
"id",
"worktree",
"time"
]
},
"BadRequestError": {
"type": "object",
@@ -5939,7 +6522,11 @@
"const": false
}
},
"required": ["data", "errors", "success"]
"required": [
"data",
"errors",
"success"
]
},
"NotFoundError": {
"type": "object",
@@ -5955,10 +6542,15 @@
"type": "string"
}
},
"required": ["message"]
"required": [
"message"
]
}
},
"required": ["name", "data"]
"required": [
"name",
"data"
]
},
"KeybindsConfig": {
"description": "Custom keybind configurations",
@@ -6225,7 +6817,11 @@
},
"mode": {
"type": "string",
"enum": ["subagent", "primary", "all"]
"enum": [
"subagent",
"primary",
"all"
]
},
"color": {
"description": "Hex color code for the agent (e.g., #FF5733)",
@@ -6243,13 +6839,21 @@
"properties": {
"edit": {
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
},
"bash": {
"anyOf": [
{
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
},
{
"type": "object",
@@ -6258,22 +6862,38 @@
},
"additionalProperties": {
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
}
}
]
},
"webfetch": {
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
},
"doom_loop": {
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
},
"external_directory": {
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
}
}
}
@@ -6361,10 +6981,16 @@
"type": "number"
}
},
"required": ["input", "output"]
"required": [
"input",
"output"
]
}
},
"required": ["input", "output"]
"required": [
"input",
"output"
]
},
"limit": {
"type": "object",
@@ -6376,7 +7002,10 @@
"type": "number"
}
},
"required": ["context", "output"]
"required": [
"context",
"output"
]
},
"modalities": {
"type": "object",
@@ -6385,25 +7014,44 @@
"type": "array",
"items": {
"type": "string",
"enum": ["text", "audio", "image", "video", "pdf"]
"enum": [
"text",
"audio",
"image",
"video",
"pdf"
]
}
},
"output": {
"type": "array",
"items": {
"type": "string",
"enum": ["text", "audio", "image", "video", "pdf"]
"enum": [
"text",
"audio",
"image",
"video",
"pdf"
]
}
}
},
"required": ["input", "output"]
"required": [
"input",
"output"
]
},
"experimental": {
"type": "boolean"
},
"status": {
"type": "string",
"enum": ["alpha", "beta", "deprecated"]
"enum": [
"alpha",
"beta",
"deprecated"
]
},
"options": {
"type": "object",
@@ -6428,7 +7076,9 @@
"type": "string"
}
},
"required": ["npm"]
"required": [
"npm"
]
}
}
}
@@ -6520,7 +7170,10 @@
"maximum": 9007199254740991
}
},
"required": ["type", "command"],
"required": [
"type",
"command"
],
"additionalProperties": false
},
"McpRemoteConfig": {
@@ -6556,13 +7209,19 @@
"maximum": 9007199254740991
}
},
"required": ["type", "url"],
"required": [
"type",
"url"
],
"additionalProperties": false
},
"LayoutConfig": {
"description": "@deprecated Always uses stretch layout.",
"type": "string",
"enum": ["auto", "stretch"]
"enum": [
"auto",
"stretch"
]
},
"Config": {
"type": "object",
@@ -6596,12 +7255,17 @@
"type": "boolean"
}
},
"required": ["enabled"]
"required": [
"enabled"
]
},
"diff_style": {
"description": "Control diff rendering style: 'auto' adapts to terminal width, 'stacked' always shows single column",
"type": "string",
"enum": ["auto", "stacked"]
"enum": [
"auto",
"stacked"
]
}
}
},
@@ -6630,7 +7294,9 @@
"type": "boolean"
}
},
"required": ["template"]
"required": [
"template"
]
}
},
"watcher": {
@@ -6656,7 +7322,11 @@
"share": {
"description": "Control sharing behavior:'manual' allows manual sharing via commands, 'auto' enables automatic sharing, 'disabled' disables all sharing",
"type": "string",
"enum": ["manual", "auto", "disabled"]
"enum": [
"manual",
"auto",
"disabled"
]
},
"autoshare": {
"description": "@deprecated Use 'share' field instead. Share newly created sessions automatically",
@@ -6827,7 +7497,9 @@
"const": true
}
},
"required": ["disabled"]
"required": [
"disabled"
]
},
{
"type": "object",
@@ -6864,7 +7536,9 @@
"additionalProperties": {}
}
},
"required": ["command"]
"required": [
"command"
]
}
]
}
@@ -6886,13 +7560,21 @@
"properties": {
"edit": {
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
},
"bash": {
"anyOf": [
{
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
},
{
"type": "object",
@@ -6901,22 +7583,38 @@
},
"additionalProperties": {
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
}
}
]
},
"webfetch": {
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
},
"doom_loop": {
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
},
"external_directory": {
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
}
}
},
@@ -6970,7 +7668,9 @@
}
}
},
"required": ["command"]
"required": [
"command"
]
}
}
},
@@ -6995,7 +7695,9 @@
}
}
},
"required": ["command"]
"required": [
"command"
]
}
}
}
@@ -7044,7 +7746,11 @@
},
"parameters": {}
},
"required": ["id", "description", "parameters"]
"required": [
"id",
"description",
"parameters"
]
},
"ToolList": {
"type": "array",
@@ -7068,7 +7774,12 @@
"type": "string"
}
},
"required": ["state", "config", "worktree", "directory"]
"required": [
"state",
"config",
"worktree",
"directory"
]
},
"VcsInfo": {
"type": "object",
@@ -7077,7 +7788,9 @@
"type": "string"
}
},
"required": ["branch"]
"required": [
"branch"
]
},
"TextPartInput": {
"type": "object",
@@ -7108,7 +7821,9 @@
"type": "number"
}
},
"required": ["start"]
"required": [
"start"
]
},
"metadata": {
"type": "object",
@@ -7118,7 +7833,10 @@
"additionalProperties": {}
}
},
"required": ["type", "text"]
"required": [
"type",
"text"
]
},
"FilePartInput": {
"type": "object",
@@ -7143,7 +7861,11 @@
"$ref": "#/components/schemas/FilePartSource"
}
},
"required": ["type", "mime", "url"]
"required": [
"type",
"mime",
"url"
]
},
"AgentPartInput": {
"type": "object",
@@ -7175,10 +7897,17 @@
"maximum": 9007199254740991
}
},
"required": ["value", "start", "end"]
"required": [
"value",
"start",
"end"
]
}
},
"required": ["type", "name"]
"required": [
"type",
"name"
]
},
"SubtaskPartInput": {
"type": "object",
@@ -7200,7 +7929,12 @@
"type": "string"
}
},
"required": ["type", "prompt", "description", "agent"]
"required": [
"type",
"prompt",
"description",
"agent"
]
},
"Command": {
"type": "object",
@@ -7224,7 +7958,10 @@
"type": "boolean"
}
},
"required": ["name", "template"]
"required": [
"name",
"template"
]
},
"Model": {
"type": "object",
@@ -7248,7 +7985,11 @@
"type": "string"
}
},
"required": ["id", "url", "npm"]
"required": [
"id",
"url",
"npm"
]
},
"name": {
"type": "string"
@@ -7287,7 +8028,13 @@
"type": "boolean"
}
},
"required": ["text", "audio", "image", "video", "pdf"]
"required": [
"text",
"audio",
"image",
"video",
"pdf"
]
},
"output": {
"type": "object",
@@ -7308,10 +8055,23 @@
"type": "boolean"
}
},
"required": ["text", "audio", "image", "video", "pdf"]
"required": [
"text",
"audio",
"image",
"video",
"pdf"
]
}
},
"required": ["temperature", "reasoning", "attachment", "toolcall", "input", "output"]
"required": [
"temperature",
"reasoning",
"attachment",
"toolcall",
"input",
"output"
]
},
"cost": {
"type": "object",
@@ -7332,7 +8092,10 @@
"type": "number"
}
},
"required": ["read", "write"]
"required": [
"read",
"write"
]
},
"experimentalOver200K": {
"type": "object",
@@ -7353,13 +8116,24 @@
"type": "number"
}
},
"required": ["read", "write"]
"required": [
"read",
"write"
]
}
},
"required": ["input", "output", "cache"]
"required": [
"input",
"output",
"cache"
]
}
},
"required": ["input", "output", "cache"]
"required": [
"input",
"output",
"cache"
]
},
"limit": {
"type": "object",
@@ -7371,11 +8145,19 @@
"type": "number"
}
},
"required": ["context", "output"]
"required": [
"context",
"output"
]
},
"status": {
"type": "string",
"enum": ["alpha", "beta", "deprecated", "active"]
"enum": [
"alpha",
"beta",
"deprecated",
"active"
]
},
"options": {
"type": "object",
@@ -7394,7 +8176,18 @@
}
}
},
"required": ["id", "providerID", "api", "name", "capabilities", "cost", "limit", "status", "options", "headers"]
"required": [
"id",
"providerID",
"api",
"name",
"capabilities",
"cost",
"limit",
"status",
"options",
"headers"
]
},
"Provider": {
"type": "object",
@@ -7407,7 +8200,12 @@
},
"source": {
"type": "string",
"enum": ["env", "config", "custom", "api"]
"enum": [
"env",
"config",
"custom",
"api"
]
},
"env": {
"type": "array",
@@ -7435,7 +8233,14 @@
}
}
},
"required": ["id", "name", "source", "env", "options", "models"]
"required": [
"id",
"name",
"source",
"env",
"options",
"models"
]
},
"ProviderAuthMethod": {
"type": "object",
@@ -7456,7 +8261,10 @@
"type": "string"
}
},
"required": ["type", "label"]
"required": [
"type",
"label"
]
},
"ProviderAuthAuthorization": {
"type": "object",
@@ -7480,7 +8288,11 @@
"type": "string"
}
},
"required": ["url", "method", "instructions"]
"required": [
"url",
"method",
"instructions"
]
},
"Symbol": {
"type": "object",
@@ -7501,10 +8313,17 @@
"$ref": "#/components/schemas/Range"
}
},
"required": ["uri", "range"]
"required": [
"uri",
"range"
]
}
},
"required": ["name", "kind", "location"]
"required": [
"name",
"kind",
"location"
]
},
"FileNode": {
"type": "object",
@@ -7520,13 +8339,22 @@
},
"type": {
"type": "string",
"enum": ["file", "directory"]
"enum": [
"file",
"directory"
]
},
"ignored": {
"type": "boolean"
}
},
"required": ["name", "path", "absolute", "type", "ignored"]
"required": [
"name",
"path",
"absolute",
"type",
"ignored"
]
},
"FileContent": {
"type": "object",
@@ -7580,14 +8408,24 @@
}
}
},
"required": ["oldStart", "oldLines", "newStart", "newLines", "lines"]
"required": [
"oldStart",
"oldLines",
"newStart",
"newLines",
"lines"
]
}
},
"index": {
"type": "string"
}
},
"required": ["oldFileName", "newFileName", "hunks"]
"required": [
"oldFileName",
"newFileName",
"hunks"
]
},
"encoding": {
"type": "string",
@@ -7597,7 +8435,10 @@
"type": "string"
}
},
"required": ["type", "content"]
"required": [
"type",
"content"
]
},
"File": {
"type": "object",
@@ -7617,10 +8458,19 @@
},
"status": {
"type": "string",
"enum": ["added", "deleted", "modified"]
"enum": [
"added",
"deleted",
"modified"
]
}
},
"required": ["path", "added", "removed", "status"]
"required": [
"path",
"added",
"removed",
"status"
]
},
"Agent": {
"type": "object",
@@ -7633,7 +8483,11 @@
},
"mode": {
"type": "string",
"enum": ["subagent", "primary", "all"]
"enum": [
"subagent",
"primary",
"all"
]
},
"builtIn": {
"type": "boolean"
@@ -7652,7 +8506,11 @@
"properties": {
"edit": {
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
},
"bash": {
"type": "object",
@@ -7661,23 +8519,42 @@
},
"additionalProperties": {
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
}
},
"webfetch": {
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
},
"doom_loop": {
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
},
"external_directory": {
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
}
},
"required": ["edit", "bash"]
"required": [
"edit",
"bash"
]
},
"model": {
"type": "object",
@@ -7689,7 +8566,10 @@
"type": "string"
}
},
"required": ["modelID", "providerID"]
"required": [
"modelID",
"providerID"
]
},
"prompt": {
"type": "string"
@@ -7716,7 +8596,14 @@
"maximum": 9007199254740991
}
},
"required": ["name", "mode", "builtIn", "permission", "tools", "options"]
"required": [
"name",
"mode",
"builtIn",
"permission",
"tools",
"options"
]
},
"MCPStatusConnected": {
"type": "object",
@@ -7726,7 +8613,9 @@
"const": "connected"
}
},
"required": ["status"]
"required": [
"status"
]
},
"MCPStatusDisabled": {
"type": "object",
@@ -7736,7 +8625,9 @@
"const": "disabled"
}
},
"required": ["status"]
"required": [
"status"
]
},
"MCPStatusFailed": {
"type": "object",
@@ -7749,7 +8640,10 @@
"type": "string"
}
},
"required": ["status", "error"]
"required": [
"status",
"error"
]
},
"MCPStatus": {
"anyOf": [
@@ -7789,7 +8683,12 @@
]
}
},
"required": ["id", "name", "root", "status"]
"required": [
"id",
"name",
"root",
"status"
]
},
"FormatterStatus": {
"type": "object",
@@ -7807,7 +8706,11 @@
"type": "boolean"
}
},
"required": ["name", "extensions", "enabled"]
"required": [
"name",
"extensions",
"enabled"
]
},
"OAuth": {
"type": "object",
@@ -7829,7 +8732,12 @@
"type": "string"
}
},
"required": ["type", "refresh", "access", "expires"]
"required": [
"type",
"refresh",
"access",
"expires"
]
},
"ApiAuth": {
"type": "object",
@@ -7842,7 +8750,10 @@
"type": "string"
}
},
"required": ["type", "key"]
"required": [
"type",
"key"
]
},
"WellKnownAuth": {
"type": "object",
@@ -7858,7 +8769,11 @@
"type": "string"
}
},
"required": ["type", "key", "token"]
"required": [
"type",
"key",
"token"
]
},
"Auth": {
"anyOf": [
@@ -7875,4 +8790,4 @@
}
}
}
}
}
+1171 -256
View File
@@ -286,7 +286,10 @@
"type": "number"
}
},
"required": ["rows", "cols"]
"required": [
"rows",
"cols"
]
}
}
}
@@ -1117,7 +1120,11 @@
"pattern": "^msg.*"
}
},
"required": ["modelID", "providerID", "messageID"]
"required": [
"modelID",
"providerID",
"messageID"
]
}
}
}
@@ -1473,7 +1480,10 @@
"type": "string"
}
},
"required": ["providerID", "modelID"]
"required": [
"providerID",
"modelID"
]
}
}
}
@@ -1529,7 +1539,10 @@
}
}
},
"required": ["info", "parts"]
"required": [
"info",
"parts"
]
}
}
}
@@ -1596,7 +1609,10 @@
}
}
},
"required": ["info", "parts"]
"required": [
"info",
"parts"
]
}
}
}
@@ -1642,7 +1658,10 @@
"type": "string"
}
},
"required": ["providerID", "modelID"]
"required": [
"providerID",
"modelID"
]
},
"agent": {
"type": "string"
@@ -1682,7 +1701,9 @@
}
}
},
"required": ["parts"]
"required": [
"parts"
]
}
}
}
@@ -1738,7 +1759,10 @@
}
}
},
"required": ["info", "parts"]
"required": [
"info",
"parts"
]
}
}
}
@@ -1833,7 +1857,10 @@
"type": "string"
}
},
"required": ["providerID", "modelID"]
"required": [
"providerID",
"modelID"
]
},
"agent": {
"type": "string"
@@ -1873,7 +1900,9 @@
}
}
},
"required": ["parts"]
"required": [
"parts"
]
}
}
}
@@ -1920,7 +1949,10 @@
}
}
},
"required": ["info", "parts"]
"required": [
"info",
"parts"
]
}
}
}
@@ -1969,7 +2001,10 @@
"type": "string"
}
},
"required": ["arguments", "command"]
"required": [
"arguments",
"command"
]
}
}
}
@@ -2049,13 +2084,19 @@
"type": "string"
}
},
"required": ["providerID", "modelID"]
"required": [
"providerID",
"modelID"
]
},
"command": {
"type": "string"
}
},
"required": ["agent", "command"]
"required": [
"agent",
"command"
]
}
}
}
@@ -2130,7 +2171,9 @@
"pattern": "^prt.*"
}
},
"required": ["messageID"]
"required": [
"messageID"
]
}
}
}
@@ -2261,10 +2304,16 @@
"properties": {
"response": {
"type": "string",
"enum": ["once", "always", "reject"]
"enum": [
"once",
"always",
"reject"
]
}
},
"required": ["response"]
"required": [
"response"
]
}
}
}
@@ -2338,7 +2387,10 @@
}
}
},
"required": ["providers", "default"]
"required": [
"providers",
"default"
]
}
}
}
@@ -2450,10 +2502,16 @@
"type": "number"
}
},
"required": ["input", "output"]
"required": [
"input",
"output"
]
}
},
"required": ["input", "output"]
"required": [
"input",
"output"
]
},
"limit": {
"type": "object",
@@ -2465,7 +2523,10 @@
"type": "number"
}
},
"required": ["context", "output"]
"required": [
"context",
"output"
]
},
"modalities": {
"type": "object",
@@ -2474,25 +2535,44 @@
"type": "array",
"items": {
"type": "string",
"enum": ["text", "audio", "image", "video", "pdf"]
"enum": [
"text",
"audio",
"image",
"video",
"pdf"
]
}
},
"output": {
"type": "array",
"items": {
"type": "string",
"enum": ["text", "audio", "image", "video", "pdf"]
"enum": [
"text",
"audio",
"image",
"video",
"pdf"
]
}
}
},
"required": ["input", "output"]
"required": [
"input",
"output"
]
},
"experimental": {
"type": "boolean"
},
"status": {
"type": "string",
"enum": ["alpha", "beta", "deprecated"]
"enum": [
"alpha",
"beta",
"deprecated"
]
},
"options": {
"type": "object",
@@ -2517,7 +2597,9 @@
"type": "string"
}
},
"required": ["npm"]
"required": [
"npm"
]
}
},
"required": [
@@ -2534,7 +2616,12 @@
}
}
},
"required": ["name", "env", "id", "models"]
"required": [
"name",
"env",
"id",
"models"
]
}
},
"default": {
@@ -2553,7 +2640,11 @@
}
}
},
"required": ["all", "default", "connected"]
"required": [
"all",
"default",
"connected"
]
}
}
}
@@ -2652,7 +2743,9 @@
"type": "number"
}
},
"required": ["method"]
"required": [
"method"
]
}
}
}
@@ -2718,7 +2811,9 @@
"type": "string"
}
},
"required": ["method"]
"required": [
"method"
]
}
}
}
@@ -2763,7 +2858,9 @@
"type": "string"
}
},
"required": ["text"]
"required": [
"text"
]
},
"lines": {
"type": "object",
@@ -2772,7 +2869,9 @@
"type": "string"
}
},
"required": ["text"]
"required": [
"text"
]
},
"line_number": {
"type": "number"
@@ -2792,7 +2891,9 @@
"type": "string"
}
},
"required": ["text"]
"required": [
"text"
]
},
"start": {
"type": "number"
@@ -2801,11 +2902,21 @@
"type": "number"
}
},
"required": ["match", "start", "end"]
"required": [
"match",
"start",
"end"
]
}
}
},
"required": ["path", "lines", "line_number", "absolute_offset", "submatches"]
"required": [
"path",
"lines",
"line_number",
"absolute_offset",
"submatches"
]
}
}
}
@@ -2838,7 +2949,10 @@
"name": "dirs",
"schema": {
"type": "string",
"enum": ["true", "false"]
"enum": [
"true",
"false"
]
}
}
],
@@ -3049,7 +3163,12 @@
"level": {
"description": "Log level",
"type": "string",
"enum": ["debug", "info", "error", "warn"]
"enum": [
"debug",
"info",
"error",
"warn"
]
},
"message": {
"description": "Log message",
@@ -3064,7 +3183,11 @@
"additionalProperties": {}
}
},
"required": ["service", "level", "message"]
"required": [
"service",
"level",
"message"
]
}
}
}
@@ -3193,7 +3316,10 @@
]
}
},
"required": ["name", "config"]
"required": [
"name",
"config"
]
}
}
}
@@ -3305,7 +3431,9 @@
"type": "string"
}
},
"required": ["text"]
"required": [
"text"
]
}
}
}
@@ -3519,7 +3647,9 @@
"type": "string"
}
},
"required": ["command"]
"required": [
"command"
]
}
}
}
@@ -3565,7 +3695,12 @@
},
"variant": {
"type": "string",
"enum": ["info", "success", "warning", "error"]
"enum": [
"info",
"success",
"warning",
"error"
]
},
"duration": {
"description": "Duration in milliseconds",
@@ -3573,7 +3708,10 @@
"type": "number"
}
},
"required": ["message", "variant"]
"required": [
"message",
"variant"
]
}
}
}
@@ -3662,7 +3800,10 @@
},
"body": {}
},
"required": ["path", "body"]
"required": [
"path",
"body"
]
}
}
}
@@ -3802,10 +3943,15 @@
"type": "string"
}
},
"required": ["directory"]
"required": [
"directory"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.installation.updated": {
"type": "object",
@@ -3821,10 +3967,15 @@
"type": "string"
}
},
"required": ["version"]
"required": [
"version"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.installation.update-available": {
"type": "object",
@@ -3840,10 +3991,15 @@
"type": "string"
}
},
"required": ["version"]
"required": [
"version"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.lsp.client.diagnostics": {
"type": "object",
@@ -3862,10 +4018,16 @@
"type": "string"
}
},
"required": ["serverID", "path"]
"required": [
"serverID",
"path"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.lsp.updated": {
"type": "object",
@@ -3879,7 +4041,10 @@
"properties": {}
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"FileDiff": {
"type": "object",
@@ -3900,7 +4065,13 @@
"type": "number"
}
},
"required": ["file", "before", "after", "additions", "deletions"]
"required": [
"file",
"before",
"after",
"additions",
"deletions"
]
},
"UserMessage": {
"type": "object",
@@ -3922,7 +4093,9 @@
"type": "number"
}
},
"required": ["created"]
"required": [
"created"
]
},
"summary": {
"type": "object",
@@ -3940,7 +4113,9 @@
}
}
},
"required": ["diffs"]
"required": [
"diffs"
]
},
"agent": {
"type": "string"
@@ -3955,7 +4130,10 @@
"type": "string"
}
},
"required": ["providerID", "modelID"]
"required": [
"providerID",
"modelID"
]
},
"system": {
"type": "string"
@@ -3970,7 +4148,14 @@
}
}
},
"required": ["id", "sessionID", "role", "time", "agent", "model"]
"required": [
"id",
"sessionID",
"role",
"time",
"agent",
"model"
]
},
"ProviderAuthError": {
"type": "object",
@@ -3989,10 +4174,16 @@
"type": "string"
}
},
"required": ["providerID", "message"]
"required": [
"providerID",
"message"
]
}
},
"required": ["name", "data"]
"required": [
"name",
"data"
]
},
"UnknownError": {
"type": "object",
@@ -4008,10 +4199,15 @@
"type": "string"
}
},
"required": ["message"]
"required": [
"message"
]
}
},
"required": ["name", "data"]
"required": [
"name",
"data"
]
},
"MessageOutputLengthError": {
"type": "object",
@@ -4025,7 +4221,10 @@
"properties": {}
}
},
"required": ["name", "data"]
"required": [
"name",
"data"
]
},
"MessageAbortedError": {
"type": "object",
@@ -4041,10 +4240,15 @@
"type": "string"
}
},
"required": ["message"]
"required": [
"message"
]
}
},
"required": ["name", "data"]
"required": [
"name",
"data"
]
},
"APIError": {
"type": "object",
@@ -4078,10 +4282,16 @@
"type": "string"
}
},
"required": ["message", "isRetryable"]
"required": [
"message",
"isRetryable"
]
}
},
"required": ["name", "data"]
"required": [
"name",
"data"
]
},
"AssistantMessage": {
"type": "object",
@@ -4106,7 +4316,9 @@
"type": "number"
}
},
"required": ["created"]
"required": [
"created"
]
},
"error": {
"anyOf": [
@@ -4149,7 +4361,10 @@
"type": "string"
}
},
"required": ["cwd", "root"]
"required": [
"cwd",
"root"
]
},
"summary": {
"type": "boolean"
@@ -4179,10 +4394,18 @@
"type": "number"
}
},
"required": ["read", "write"]
"required": [
"read",
"write"
]
}
},
"required": ["input", "output", "reasoning", "cache"]
"required": [
"input",
"output",
"reasoning",
"cache"
]
},
"finish": {
"type": "string"
@@ -4226,10 +4449,15 @@
"$ref": "#/components/schemas/Message"
}
},
"required": ["info"]
"required": [
"info"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.message.removed": {
"type": "object",
@@ -4248,10 +4476,16 @@
"type": "string"
}
},
"required": ["sessionID", "messageID"]
"required": [
"sessionID",
"messageID"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"TextPart": {
"type": "object",
@@ -4288,7 +4522,9 @@
"type": "number"
}
},
"required": ["start"]
"required": [
"start"
]
},
"metadata": {
"type": "object",
@@ -4298,7 +4534,13 @@
"additionalProperties": {}
}
},
"required": ["id", "sessionID", "messageID", "type", "text"]
"required": [
"id",
"sessionID",
"messageID",
"type",
"text"
]
},
"ReasoningPart": {
"type": "object",
@@ -4336,10 +4578,19 @@
"type": "number"
}
},
"required": ["start"]
"required": [
"start"
]
}
},
"required": ["id", "sessionID", "messageID", "type", "text", "time"]
"required": [
"id",
"sessionID",
"messageID",
"type",
"text",
"time"
]
},
"FilePartSourceText": {
"type": "object",
@@ -4358,7 +4609,11 @@
"maximum": 9007199254740991
}
},
"required": ["value", "start", "end"]
"required": [
"value",
"start",
"end"
]
},
"FileSource": {
"type": "object",
@@ -4374,7 +4629,11 @@
"type": "string"
}
},
"required": ["text", "type", "path"]
"required": [
"text",
"type",
"path"
]
},
"Range": {
"type": "object",
@@ -4389,7 +4648,10 @@
"type": "number"
}
},
"required": ["line", "character"]
"required": [
"line",
"character"
]
},
"end": {
"type": "object",
@@ -4401,10 +4663,16 @@
"type": "number"
}
},
"required": ["line", "character"]
"required": [
"line",
"character"
]
}
},
"required": ["start", "end"]
"required": [
"start",
"end"
]
},
"SymbolSource": {
"type": "object",
@@ -4431,7 +4699,14 @@
"maximum": 9007199254740991
}
},
"required": ["text", "type", "path", "range", "name", "kind"]
"required": [
"text",
"type",
"path",
"range",
"name",
"kind"
]
},
"FilePartSource": {
"anyOf": [
@@ -4472,7 +4747,14 @@
"$ref": "#/components/schemas/FilePartSource"
}
},
"required": ["id", "sessionID", "messageID", "type", "mime", "url"]
"required": [
"id",
"sessionID",
"messageID",
"type",
"mime",
"url"
]
},
"ToolStatePending": {
"type": "object",
@@ -4492,7 +4774,11 @@
"type": "string"
}
},
"required": ["status", "input", "raw"]
"required": [
"status",
"input",
"raw"
]
},
"ToolStateRunning": {
"type": "object",
@@ -4525,10 +4811,16 @@
"type": "number"
}
},
"required": ["start"]
"required": [
"start"
]
}
},
"required": ["status", "input", "time"]
"required": [
"status",
"input",
"time"
]
},
"ToolStateCompleted": {
"type": "object",
@@ -4570,7 +4862,10 @@
"type": "number"
}
},
"required": ["start", "end"]
"required": [
"start",
"end"
]
},
"attachments": {
"type": "array",
@@ -4579,7 +4874,14 @@
}
}
},
"required": ["status", "input", "output", "title", "metadata", "time"]
"required": [
"status",
"input",
"output",
"title",
"metadata",
"time"
]
},
"ToolStateError": {
"type": "object",
@@ -4615,10 +4917,18 @@
"type": "number"
}
},
"required": ["start", "end"]
"required": [
"start",
"end"
]
}
},
"required": ["status", "input", "error", "time"]
"required": [
"status",
"input",
"error",
"time"
]
},
"ToolState": {
"anyOf": [
@@ -4669,7 +4979,15 @@
"additionalProperties": {}
}
},
"required": ["id", "sessionID", "messageID", "type", "callID", "tool", "state"]
"required": [
"id",
"sessionID",
"messageID",
"type",
"callID",
"tool",
"state"
]
},
"StepStartPart": {
"type": "object",
@@ -4691,7 +5009,12 @@
"type": "string"
}
},
"required": ["id", "sessionID", "messageID", "type"]
"required": [
"id",
"sessionID",
"messageID",
"type"
]
},
"StepFinishPart": {
"type": "object",
@@ -4740,13 +5063,29 @@
"type": "number"
}
},
"required": ["read", "write"]
"required": [
"read",
"write"
]
}
},
"required": ["input", "output", "reasoning", "cache"]
"required": [
"input",
"output",
"reasoning",
"cache"
]
}
},
"required": ["id", "sessionID", "messageID", "type", "reason", "cost", "tokens"]
"required": [
"id",
"sessionID",
"messageID",
"type",
"reason",
"cost",
"tokens"
]
},
"SnapshotPart": {
"type": "object",
@@ -4768,7 +5107,13 @@
"type": "string"
}
},
"required": ["id", "sessionID", "messageID", "type", "snapshot"]
"required": [
"id",
"sessionID",
"messageID",
"type",
"snapshot"
]
},
"PatchPart": {
"type": "object",
@@ -4796,7 +5141,14 @@
}
}
},
"required": ["id", "sessionID", "messageID", "type", "hash", "files"]
"required": [
"id",
"sessionID",
"messageID",
"type",
"hash",
"files"
]
},
"AgentPart": {
"type": "object",
@@ -4834,10 +5186,20 @@
"maximum": 9007199254740991
}
},
"required": ["value", "start", "end"]
"required": [
"value",
"start",
"end"
]
}
},
"required": ["id", "sessionID", "messageID", "type", "name"]
"required": [
"id",
"sessionID",
"messageID",
"type",
"name"
]
},
"RetryPart": {
"type": "object",
@@ -4868,10 +5230,20 @@
"type": "number"
}
},
"required": ["created"]
"required": [
"created"
]
}
},
"required": ["id", "sessionID", "messageID", "type", "attempt", "error", "time"]
"required": [
"id",
"sessionID",
"messageID",
"type",
"attempt",
"error",
"time"
]
},
"CompactionPart": {
"type": "object",
@@ -4893,7 +5265,13 @@
"type": "boolean"
}
},
"required": ["id", "sessionID", "messageID", "type", "auto"]
"required": [
"id",
"sessionID",
"messageID",
"type",
"auto"
]
},
"Part": {
"anyOf": [
@@ -4926,7 +5304,15 @@
"type": "string"
}
},
"required": ["id", "sessionID", "messageID", "type", "prompt", "description", "agent"]
"required": [
"id",
"sessionID",
"messageID",
"type",
"prompt",
"description",
"agent"
]
},
{
"$ref": "#/components/schemas/ReasoningPart"
@@ -4977,10 +5363,15 @@
"type": "string"
}
},
"required": ["part"]
"required": [
"part"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.message.part.removed": {
"type": "object",
@@ -5002,10 +5393,17 @@
"type": "string"
}
},
"required": ["sessionID", "messageID", "partID"]
"required": [
"sessionID",
"messageID",
"partID"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Permission": {
"type": "object",
@@ -5055,10 +5453,20 @@
"type": "number"
}
},
"required": ["created"]
"required": [
"created"
]
}
},
"required": ["id", "type", "sessionID", "messageID", "title", "metadata", "time"]
"required": [
"id",
"type",
"sessionID",
"messageID",
"title",
"metadata",
"time"
]
},
"Event.permission.updated": {
"type": "object",
@@ -5071,7 +5479,10 @@
"$ref": "#/components/schemas/Permission"
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.permission.replied": {
"type": "object",
@@ -5093,10 +5504,17 @@
"type": "string"
}
},
"required": ["sessionID", "permissionID", "response"]
"required": [
"sessionID",
"permissionID",
"response"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"SessionStatus": {
"anyOf": [
@@ -5108,7 +5526,9 @@
"const": "idle"
}
},
"required": ["type"]
"required": [
"type"
]
},
{
"type": "object",
@@ -5127,7 +5547,12 @@
"type": "number"
}
},
"required": ["type", "attempt", "message", "next"]
"required": [
"type",
"attempt",
"message",
"next"
]
},
{
"type": "object",
@@ -5137,7 +5562,9 @@
"const": "busy"
}
},
"required": ["type"]
"required": [
"type"
]
}
]
},
@@ -5158,10 +5585,16 @@
"$ref": "#/components/schemas/SessionStatus"
}
},
"required": ["sessionID", "status"]
"required": [
"sessionID",
"status"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.session.idle": {
"type": "object",
@@ -5177,10 +5610,15 @@
"type": "string"
}
},
"required": ["sessionID"]
"required": [
"sessionID"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.session.compacted": {
"type": "object",
@@ -5196,10 +5634,15 @@
"type": "string"
}
},
"required": ["sessionID"]
"required": [
"sessionID"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.file.edited": {
"type": "object",
@@ -5215,10 +5658,15 @@
"type": "string"
}
},
"required": ["file"]
"required": [
"file"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Todo": {
"type": "object",
@@ -5240,7 +5688,12 @@
"type": "string"
}
},
"required": ["content", "status", "priority", "id"]
"required": [
"content",
"status",
"priority",
"id"
]
},
"Event.todo.updated": {
"type": "object",
@@ -5262,10 +5715,16 @@
}
}
},
"required": ["sessionID", "todos"]
"required": [
"sessionID",
"todos"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.command.executed": {
"type": "object",
@@ -5292,10 +5751,18 @@
"pattern": "^msg.*"
}
},
"required": ["name", "sessionID", "arguments", "messageID"]
"required": [
"name",
"sessionID",
"arguments",
"messageID"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Session": {
"type": "object",
@@ -5333,7 +5800,11 @@
}
}
},
"required": ["additions", "deletions", "files"]
"required": [
"additions",
"deletions",
"files"
]
},
"share": {
"type": "object",
@@ -5342,7 +5813,9 @@
"type": "string"
}
},
"required": ["url"]
"required": [
"url"
]
},
"title": {
"type": "string"
@@ -5363,7 +5836,10 @@
"type": "number"
}
},
"required": ["created", "updated"]
"required": [
"created",
"updated"
]
},
"revert": {
"type": "object",
@@ -5381,10 +5857,19 @@
"type": "string"
}
},
"required": ["messageID"]
"required": [
"messageID"
]
}
},
"required": ["id", "projectID", "directory", "title", "version", "time"]
"required": [
"id",
"projectID",
"directory",
"title",
"version",
"time"
]
},
"Event.session.created": {
"type": "object",
@@ -5400,10 +5885,15 @@
"$ref": "#/components/schemas/Session"
}
},
"required": ["info"]
"required": [
"info"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.session.updated": {
"type": "object",
@@ -5419,10 +5909,15 @@
"$ref": "#/components/schemas/Session"
}
},
"required": ["info"]
"required": [
"info"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.session.deleted": {
"type": "object",
@@ -5438,10 +5933,15 @@
"$ref": "#/components/schemas/Session"
}
},
"required": ["info"]
"required": [
"info"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.session.diff": {
"type": "object",
@@ -5463,10 +5963,16 @@
}
}
},
"required": ["sessionID", "diff"]
"required": [
"sessionID",
"diff"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.session.error": {
"type": "object",
@@ -5503,7 +6009,10 @@
}
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.file.watcher.updated": {
"type": "object",
@@ -5535,10 +6044,16 @@
]
}
},
"required": ["file", "event"]
"required": [
"file",
"event"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.vcs.branch.updated": {
"type": "object",
@@ -5556,7 +6071,10 @@
}
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.tui.prompt.append": {
"type": "object",
@@ -5572,10 +6090,15 @@
"type": "string"
}
},
"required": ["text"]
"required": [
"text"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.tui.command.execute": {
"type": "object",
@@ -5614,10 +6137,15 @@
]
}
},
"required": ["command"]
"required": [
"command"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.tui.toast.show": {
"type": "object",
@@ -5637,7 +6165,12 @@
},
"variant": {
"type": "string",
"enum": ["info", "success", "warning", "error"]
"enum": [
"info",
"success",
"warning",
"error"
]
},
"duration": {
"description": "Duration in milliseconds",
@@ -5645,10 +6178,16 @@
"type": "number"
}
},
"required": ["message", "variant"]
"required": [
"message",
"variant"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Pty": {
"type": "object",
@@ -5674,13 +6213,24 @@
},
"status": {
"type": "string",
"enum": ["running", "exited"]
"enum": [
"running",
"exited"
]
},
"pid": {
"type": "number"
}
},
"required": ["id", "title", "command", "args", "cwd", "status", "pid"]
"required": [
"id",
"title",
"command",
"args",
"cwd",
"status",
"pid"
]
},
"Event.pty.created": {
"type": "object",
@@ -5696,10 +6246,15 @@
"$ref": "#/components/schemas/Pty"
}
},
"required": ["info"]
"required": [
"info"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.pty.updated": {
"type": "object",
@@ -5715,10 +6270,15 @@
"$ref": "#/components/schemas/Pty"
}
},
"required": ["info"]
"required": [
"info"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.pty.exited": {
"type": "object",
@@ -5738,10 +6298,16 @@
"type": "number"
}
},
"required": ["id", "exitCode"]
"required": [
"id",
"exitCode"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.pty.deleted": {
"type": "object",
@@ -5758,10 +6324,15 @@
"pattern": "^pty.*"
}
},
"required": ["id"]
"required": [
"id"
]
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event.server.connected": {
"type": "object",
@@ -5775,7 +6346,10 @@
"properties": {}
}
},
"required": ["type", "properties"]
"required": [
"type",
"properties"
]
},
"Event": {
"anyOf": [
@@ -5887,7 +6461,10 @@
"$ref": "#/components/schemas/Event"
}
},
"required": ["directory", "payload"]
"required": [
"directory",
"payload"
]
},
"Project": {
"type": "object",
@@ -5915,10 +6492,16 @@
"type": "number"
}
},
"required": ["created"]
"required": [
"created"
]
}
},
"required": ["id", "worktree", "time"]
"required": [
"id",
"worktree",
"time"
]
},
"BadRequestError": {
"type": "object",
@@ -5939,7 +6522,11 @@
"const": false
}
},
"required": ["data", "errors", "success"]
"required": [
"data",
"errors",
"success"
]
},
"NotFoundError": {
"type": "object",
@@ -5955,10 +6542,15 @@
"type": "string"
}
},
"required": ["message"]
"required": [
"message"
]
}
},
"required": ["name", "data"]
"required": [
"name",
"data"
]
},
"KeybindsConfig": {
"description": "Custom keybind configurations",
@@ -6225,7 +6817,11 @@
},
"mode": {
"type": "string",
"enum": ["subagent", "primary", "all"]
"enum": [
"subagent",
"primary",
"all"
]
},
"color": {
"description": "Hex color code for the agent (e.g., #FF5733)",
@@ -6243,13 +6839,21 @@
"properties": {
"edit": {
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
},
"bash": {
"anyOf": [
{
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
},
{
"type": "object",
@@ -6258,22 +6862,38 @@
},
"additionalProperties": {
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
}
}
]
},
"webfetch": {
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
},
"doom_loop": {
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
},
"external_directory": {
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
}
}
}
@@ -6361,10 +6981,16 @@
"type": "number"
}
},
"required": ["input", "output"]
"required": [
"input",
"output"
]
}
},
"required": ["input", "output"]
"required": [
"input",
"output"
]
},
"limit": {
"type": "object",
@@ -6376,7 +7002,10 @@
"type": "number"
}
},
"required": ["context", "output"]
"required": [
"context",
"output"
]
},
"modalities": {
"type": "object",
@@ -6385,25 +7014,44 @@
"type": "array",
"items": {
"type": "string",
"enum": ["text", "audio", "image", "video", "pdf"]
"enum": [
"text",
"audio",
"image",
"video",
"pdf"
]
}
},
"output": {
"type": "array",
"items": {
"type": "string",
"enum": ["text", "audio", "image", "video", "pdf"]
"enum": [
"text",
"audio",
"image",
"video",
"pdf"
]
}
}
},
"required": ["input", "output"]
"required": [
"input",
"output"
]
},
"experimental": {
"type": "boolean"
},
"status": {
"type": "string",
"enum": ["alpha", "beta", "deprecated"]
"enum": [
"alpha",
"beta",
"deprecated"
]
},
"options": {
"type": "object",
@@ -6428,7 +7076,9 @@
"type": "string"
}
},
"required": ["npm"]
"required": [
"npm"
]
}
}
}
@@ -6520,7 +7170,10 @@
"maximum": 9007199254740991
}
},
"required": ["type", "command"],
"required": [
"type",
"command"
],
"additionalProperties": false
},
"McpRemoteConfig": {
@@ -6556,13 +7209,19 @@
"maximum": 9007199254740991
}
},
"required": ["type", "url"],
"required": [
"type",
"url"
],
"additionalProperties": false
},
"LayoutConfig": {
"description": "@deprecated Always uses stretch layout.",
"type": "string",
"enum": ["auto", "stretch"]
"enum": [
"auto",
"stretch"
]
},
"Config": {
"type": "object",
@@ -6596,12 +7255,17 @@
"type": "boolean"
}
},
"required": ["enabled"]
"required": [
"enabled"
]
},
"diff_style": {
"description": "Control diff rendering style: 'auto' adapts to terminal width, 'stacked' always shows single column",
"type": "string",
"enum": ["auto", "stacked"]
"enum": [
"auto",
"stacked"
]
}
}
},
@@ -6630,7 +7294,9 @@
"type": "boolean"
}
},
"required": ["template"]
"required": [
"template"
]
}
},
"watcher": {
@@ -6656,7 +7322,11 @@
"share": {
"description": "Control sharing behavior:'manual' allows manual sharing via commands, 'auto' enables automatic sharing, 'disabled' disables all sharing",
"type": "string",
"enum": ["manual", "auto", "disabled"]
"enum": [
"manual",
"auto",
"disabled"
]
},
"autoshare": {
"description": "@deprecated Use 'share' field instead. Share newly created sessions automatically",
@@ -6827,7 +7497,9 @@
"const": true
}
},
"required": ["disabled"]
"required": [
"disabled"
]
},
{
"type": "object",
@@ -6864,7 +7536,9 @@
"additionalProperties": {}
}
},
"required": ["command"]
"required": [
"command"
]
}
]
}
@@ -6886,13 +7560,21 @@
"properties": {
"edit": {
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
},
"bash": {
"anyOf": [
{
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
},
{
"type": "object",
@@ -6901,22 +7583,38 @@
},
"additionalProperties": {
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
}
}
]
},
"webfetch": {
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
},
"doom_loop": {
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
},
"external_directory": {
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
}
}
},
@@ -6970,7 +7668,9 @@
}
}
},
"required": ["command"]
"required": [
"command"
]
}
}
},
@@ -6995,7 +7695,9 @@
}
}
},
"required": ["command"]
"required": [
"command"
]
}
}
}
@@ -7044,7 +7746,11 @@
},
"parameters": {}
},
"required": ["id", "description", "parameters"]
"required": [
"id",
"description",
"parameters"
]
},
"ToolList": {
"type": "array",
@@ -7068,7 +7774,12 @@
"type": "string"
}
},
"required": ["state", "config", "worktree", "directory"]
"required": [
"state",
"config",
"worktree",
"directory"
]
},
"VcsInfo": {
"type": "object",
@@ -7077,7 +7788,9 @@
"type": "string"
}
},
"required": ["branch"]
"required": [
"branch"
]
},
"TextPartInput": {
"type": "object",
@@ -7108,7 +7821,9 @@
"type": "number"
}
},
"required": ["start"]
"required": [
"start"
]
},
"metadata": {
"type": "object",
@@ -7118,7 +7833,10 @@
"additionalProperties": {}
}
},
"required": ["type", "text"]
"required": [
"type",
"text"
]
},
"FilePartInput": {
"type": "object",
@@ -7143,7 +7861,11 @@
"$ref": "#/components/schemas/FilePartSource"
}
},
"required": ["type", "mime", "url"]
"required": [
"type",
"mime",
"url"
]
},
"AgentPartInput": {
"type": "object",
@@ -7175,10 +7897,17 @@
"maximum": 9007199254740991
}
},
"required": ["value", "start", "end"]
"required": [
"value",
"start",
"end"
]
}
},
"required": ["type", "name"]
"required": [
"type",
"name"
]
},
"SubtaskPartInput": {
"type": "object",
@@ -7200,7 +7929,12 @@
"type": "string"
}
},
"required": ["type", "prompt", "description", "agent"]
"required": [
"type",
"prompt",
"description",
"agent"
]
},
"Command": {
"type": "object",
@@ -7224,7 +7958,10 @@
"type": "boolean"
}
},
"required": ["name", "template"]
"required": [
"name",
"template"
]
},
"Model": {
"type": "object",
@@ -7248,7 +7985,11 @@
"type": "string"
}
},
"required": ["id", "url", "npm"]
"required": [
"id",
"url",
"npm"
]
},
"name": {
"type": "string"
@@ -7287,7 +8028,13 @@
"type": "boolean"
}
},
"required": ["text", "audio", "image", "video", "pdf"]
"required": [
"text",
"audio",
"image",
"video",
"pdf"
]
},
"output": {
"type": "object",
@@ -7308,10 +8055,23 @@
"type": "boolean"
}
},
"required": ["text", "audio", "image", "video", "pdf"]
"required": [
"text",
"audio",
"image",
"video",
"pdf"
]
}
},
"required": ["temperature", "reasoning", "attachment", "toolcall", "input", "output"]
"required": [
"temperature",
"reasoning",
"attachment",
"toolcall",
"input",
"output"
]
},
"cost": {
"type": "object",
@@ -7332,7 +8092,10 @@
"type": "number"
}
},
"required": ["read", "write"]
"required": [
"read",
"write"
]
},
"experimentalOver200K": {
"type": "object",
@@ -7353,13 +8116,24 @@
"type": "number"
}
},
"required": ["read", "write"]
"required": [
"read",
"write"
]
}
},
"required": ["input", "output", "cache"]
"required": [
"input",
"output",
"cache"
]
}
},
"required": ["input", "output", "cache"]
"required": [
"input",
"output",
"cache"
]
},
"limit": {
"type": "object",
@@ -7371,11 +8145,19 @@
"type": "number"
}
},
"required": ["context", "output"]
"required": [
"context",
"output"
]
},
"status": {
"type": "string",
"enum": ["alpha", "beta", "deprecated", "active"]
"enum": [
"alpha",
"beta",
"deprecated",
"active"
]
},
"options": {
"type": "object",
@@ -7394,7 +8176,18 @@
}
}
},
"required": ["id", "providerID", "api", "name", "capabilities", "cost", "limit", "status", "options", "headers"]
"required": [
"id",
"providerID",
"api",
"name",
"capabilities",
"cost",
"limit",
"status",
"options",
"headers"
]
},
"Provider": {
"type": "object",
@@ -7407,7 +8200,12 @@
},
"source": {
"type": "string",
"enum": ["env", "config", "custom", "api"]
"enum": [
"env",
"config",
"custom",
"api"
]
},
"env": {
"type": "array",
@@ -7435,7 +8233,14 @@
}
}
},
"required": ["id", "name", "source", "env", "options", "models"]
"required": [
"id",
"name",
"source",
"env",
"options",
"models"
]
},
"ProviderAuthMethod": {
"type": "object",
@@ -7456,7 +8261,10 @@
"type": "string"
}
},
"required": ["type", "label"]
"required": [
"type",
"label"
]
},
"ProviderAuthAuthorization": {
"type": "object",
@@ -7480,7 +8288,11 @@
"type": "string"
}
},
"required": ["url", "method", "instructions"]
"required": [
"url",
"method",
"instructions"
]
},
"Symbol": {
"type": "object",
@@ -7501,10 +8313,17 @@
"$ref": "#/components/schemas/Range"
}
},
"required": ["uri", "range"]
"required": [
"uri",
"range"
]
}
},
"required": ["name", "kind", "location"]
"required": [
"name",
"kind",
"location"
]
},
"FileNode": {
"type": "object",
@@ -7520,13 +8339,22 @@
},
"type": {
"type": "string",
"enum": ["file", "directory"]
"enum": [
"file",
"directory"
]
},
"ignored": {
"type": "boolean"
}
},
"required": ["name", "path", "absolute", "type", "ignored"]
"required": [
"name",
"path",
"absolute",
"type",
"ignored"
]
},
"FileContent": {
"type": "object",
@@ -7580,14 +8408,24 @@
}
}
},
"required": ["oldStart", "oldLines", "newStart", "newLines", "lines"]
"required": [
"oldStart",
"oldLines",
"newStart",
"newLines",
"lines"
]
}
},
"index": {
"type": "string"
}
},
"required": ["oldFileName", "newFileName", "hunks"]
"required": [
"oldFileName",
"newFileName",
"hunks"
]
},
"encoding": {
"type": "string",
@@ -7597,7 +8435,10 @@
"type": "string"
}
},
"required": ["type", "content"]
"required": [
"type",
"content"
]
},
"File": {
"type": "object",
@@ -7617,10 +8458,19 @@
},
"status": {
"type": "string",
"enum": ["added", "deleted", "modified"]
"enum": [
"added",
"deleted",
"modified"
]
}
},
"required": ["path", "added", "removed", "status"]
"required": [
"path",
"added",
"removed",
"status"
]
},
"Agent": {
"type": "object",
@@ -7633,7 +8483,11 @@
},
"mode": {
"type": "string",
"enum": ["subagent", "primary", "all"]
"enum": [
"subagent",
"primary",
"all"
]
},
"builtIn": {
"type": "boolean"
@@ -7652,7 +8506,11 @@
"properties": {
"edit": {
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
},
"bash": {
"type": "object",
@@ -7661,23 +8519,42 @@
},
"additionalProperties": {
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
}
},
"webfetch": {
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
},
"doom_loop": {
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
},
"external_directory": {
"type": "string",
"enum": ["ask", "allow", "deny"]
"enum": [
"ask",
"allow",
"deny"
]
}
},
"required": ["edit", "bash"]
"required": [
"edit",
"bash"
]
},
"model": {
"type": "object",
@@ -7689,7 +8566,10 @@
"type": "string"
}
},
"required": ["modelID", "providerID"]
"required": [
"modelID",
"providerID"
]
},
"prompt": {
"type": "string"
@@ -7716,7 +8596,14 @@
"maximum": 9007199254740991
}
},
"required": ["name", "mode", "builtIn", "permission", "tools", "options"]
"required": [
"name",
"mode",
"builtIn",
"permission",
"tools",
"options"
]
},
"MCPStatusConnected": {
"type": "object",
@@ -7726,7 +8613,9 @@
"const": "connected"
}
},
"required": ["status"]
"required": [
"status"
]
},
"MCPStatusDisabled": {
"type": "object",
@@ -7736,7 +8625,9 @@
"const": "disabled"
}
},
"required": ["status"]
"required": [
"status"
]
},
"MCPStatusFailed": {
"type": "object",
@@ -7749,7 +8640,10 @@
"type": "string"
}
},
"required": ["status", "error"]
"required": [
"status",
"error"
]
},
"MCPStatus": {
"anyOf": [
@@ -7789,7 +8683,12 @@
]
}
},
"required": ["id", "name", "root", "status"]
"required": [
"id",
"name",
"root",
"status"
]
},
"FormatterStatus": {
"type": "object",
@@ -7807,7 +8706,11 @@
"type": "boolean"
}
},
"required": ["name", "extensions", "enabled"]
"required": [
"name",
"extensions",
"enabled"
]
},
"OAuth": {
"type": "object",
@@ -7829,7 +8732,12 @@
"type": "string"
}
},
"required": ["type", "refresh", "access", "expires"]
"required": [
"type",
"refresh",
"access",
"expires"
]
},
"ApiAuth": {
"type": "object",
@@ -7842,7 +8750,10 @@
"type": "string"
}
},
"required": ["type", "key"]
"required": [
"type",
"key"
]
},
"WellKnownAuth": {
"type": "object",
@@ -7858,7 +8769,11 @@
"type": "string"
}
},
"required": ["type", "key", "token"]
"required": [
"type",
"key",
"token"
]
},
"Auth": {
"anyOf": [
@@ -7875,4 +8790,4 @@
}
}
}
}
}
+6190
View File
@@ -0,0 +1,6190 @@
{
"openapi": "3.1.1",
"info": {
"title": "opencode",
"description": "opencode api",
"version": "1.0.0"
},
"paths": {
"/project": {
"get": {
"operationId": "project.list",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"description": "List all projects",
"responses": {
"200": {
"description": "List of projects",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Project"
}
}
}
}
}
}
}
},
"/project/current": {
"get": {
"operationId": "project.current",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"description": "Get the current project",
"responses": {
"200": {
"description": "Current project",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Project"
}
}
}
}
}
}
},
"/config": {
"get": {
"operationId": "config.get",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"description": "Get config info",
"responses": {
"200": {
"description": "Get config info",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Config"
}
}
}
}
}
},
"patch": {
"operationId": "config.update",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"description": "Update config",
"responses": {
"200": {
"description": "Successfully updated config",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Config"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Config"
}
}
}
}
}
},
"/experimental/tool/ids": {
"get": {
"operationId": "tool.ids",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"description": "List all tool IDs (including built-in and dynamically registered)",
"responses": {
"200": {
"description": "Tool IDs",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ToolIDs"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
}
}
},
"/experimental/tool": {
"get": {
"operationId": "tool.list",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "provider",
"schema": {
"type": "string"
},
"required": true
},
{
"in": "query",
"name": "model",
"schema": {
"type": "string"
},
"required": true
}
],
"description": "List tools with JSON schema parameters for a provider/model",
"responses": {
"200": {
"description": "Tools",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ToolList"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
}
}
},
"/path": {
"get": {
"operationId": "path.get",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"description": "Get the current path",
"responses": {
"200": {
"description": "Path",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Path"
}
}
}
}
}
}
},
"/session": {
"get": {
"operationId": "session.list",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"description": "List all sessions",
"responses": {
"200": {
"description": "List of sessions",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Session"
}
}
}
}
}
}
},
"post": {
"operationId": "session.create",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"description": "Create a new session",
"responses": {
"200": {
"description": "Successfully created session",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Session"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"parentID": {
"type": "string",
"pattern": "^ses.*"
},
"title": {
"type": "string"
}
}
}
}
}
}
}
},
"/session/{id}": {
"get": {
"operationId": "session.get",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
}
],
"description": "Get session",
"responses": {
"200": {
"description": "Get session",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Session"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
}
},
"delete": {
"operationId": "session.delete",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
}
],
"description": "Delete a session and all its data",
"responses": {
"200": {
"description": "Successfully deleted session",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
}
},
"patch": {
"operationId": "session.update",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string"
},
"required": true
}
],
"description": "Update session properties",
"responses": {
"200": {
"description": "Successfully updated session",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Session"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"title": {
"type": "string"
}
}
}
}
}
}
}
},
"/session/{id}/children": {
"get": {
"operationId": "session.children",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
}
],
"description": "Get a session's children",
"responses": {
"200": {
"description": "List of children",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Session"
}
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
}
}
},
"/session/{id}/todo": {
"get": {
"operationId": "session.todo",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string"
},
"required": true,
"description": "Session ID"
}
],
"description": "Get the todo list for a session",
"responses": {
"200": {
"description": "Todo list",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Todo"
}
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
}
}
},
"/session/{id}/init": {
"post": {
"operationId": "session.init",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string"
},
"required": true,
"description": "Session ID"
}
],
"description": "Analyze the app and create an AGENTS.md file",
"responses": {
"200": {
"description": "200",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"modelID": {
"type": "string"
},
"providerID": {
"type": "string"
},
"messageID": {
"type": "string",
"pattern": "^msg.*"
}
},
"required": ["modelID", "providerID", "messageID"]
}
}
}
}
}
},
"/session/{id}/fork": {
"post": {
"operationId": "session.fork",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
}
],
"description": "Fork an existing session at a specific message",
"responses": {
"200": {
"description": "200",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Session"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"messageID": {
"type": "string",
"pattern": "^msg.*"
}
}
}
}
}
}
}
},
"/session/{id}/abort": {
"post": {
"operationId": "session.abort",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string"
},
"required": true
}
],
"description": "Abort a session",
"responses": {
"200": {
"description": "Aborted session",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
}
}
},
"/session/{id}/share": {
"post": {
"operationId": "session.share",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string"
},
"required": true
}
],
"description": "Share a session",
"responses": {
"200": {
"description": "Successfully shared session",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Session"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
}
},
"delete": {
"operationId": "session.unshare",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
}
],
"description": "Unshare the session",
"responses": {
"200": {
"description": "Successfully unshared session",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Session"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
}
}
},
"/session/{id}/diff": {
"get": {
"operationId": "session.diff",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
},
{
"in": "query",
"name": "messageID",
"schema": {
"type": "string",
"pattern": "^msg.*"
}
}
],
"description": "Get the diff that resulted from this user message",
"responses": {
"200": {
"description": "Successfully retrieved diff",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FileDiff"
}
}
}
}
}
}
}
},
"/session/{id}/summarize": {
"post": {
"operationId": "session.summarize",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string"
},
"required": true,
"description": "Session ID"
}
],
"description": "Summarize the session",
"responses": {
"200": {
"description": "Summarized session",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"providerID": {
"type": "string"
},
"modelID": {
"type": "string"
}
},
"required": ["providerID", "modelID"]
}
}
}
}
}
},
"/session/{id}/message": {
"get": {
"operationId": "session.messages",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string"
},
"required": true,
"description": "Session ID"
}
],
"description": "List messages for a session",
"responses": {
"200": {
"description": "List of messages",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"info": {
"$ref": "#/components/schemas/Message"
},
"parts": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Part"
}
}
},
"required": ["info", "parts"]
}
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
}
},
"post": {
"operationId": "session.prompt",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string"
},
"required": true,
"description": "Session ID"
}
],
"description": "Create and send a new message to a session",
"responses": {
"200": {
"description": "Created message",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"info": {
"$ref": "#/components/schemas/AssistantMessage"
},
"parts": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Part"
}
}
},
"required": ["info", "parts"]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"messageID": {
"type": "string",
"pattern": "^msg.*"
},
"model": {
"type": "object",
"properties": {
"providerID": {
"type": "string"
},
"modelID": {
"type": "string"
}
},
"required": ["providerID", "modelID"]
},
"agent": {
"type": "string"
},
"noReply": {
"type": "boolean"
},
"system": {
"type": "string"
},
"tools": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "boolean"
}
},
"parts": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/components/schemas/TextPartInput"
},
{
"$ref": "#/components/schemas/FilePartInput"
},
{
"$ref": "#/components/schemas/AgentPartInput"
}
]
}
}
},
"required": ["parts"]
}
}
}
}
}
},
"/session/{id}/message/{messageID}": {
"get": {
"operationId": "session.message",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string"
},
"required": true,
"description": "Session ID"
},
{
"in": "path",
"name": "messageID",
"schema": {
"type": "string"
},
"required": true,
"description": "Message ID"
}
],
"description": "Get a message from a session",
"responses": {
"200": {
"description": "Message",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"info": {
"$ref": "#/components/schemas/Message"
},
"parts": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Part"
}
}
},
"required": ["info", "parts"]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
}
}
},
"/session/{id}/command": {
"post": {
"operationId": "session.command",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string"
},
"required": true,
"description": "Session ID"
}
],
"description": "Send a new command to a session",
"responses": {
"200": {
"description": "Created message",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"info": {
"$ref": "#/components/schemas/AssistantMessage"
},
"parts": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Part"
}
}
},
"required": ["info", "parts"]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"messageID": {
"type": "string",
"pattern": "^msg.*"
},
"agent": {
"type": "string"
},
"model": {
"type": "string"
},
"arguments": {
"type": "string"
},
"command": {
"type": "string"
}
},
"required": ["arguments", "command"]
}
}
}
}
}
},
"/session/{id}/shell": {
"post": {
"operationId": "session.shell",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string"
},
"required": true,
"description": "Session ID"
}
],
"description": "Run a shell command",
"responses": {
"200": {
"description": "Created message",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AssistantMessage"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"agent": {
"type": "string"
},
"command": {
"type": "string"
}
},
"required": ["agent", "command"]
}
}
}
}
}
},
"/session/{id}/revert": {
"post": {
"operationId": "session.revert",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string"
},
"required": true
}
],
"description": "Revert a message",
"responses": {
"200": {
"description": "Updated session",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Session"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"messageID": {
"type": "string",
"pattern": "^msg.*"
},
"partID": {
"type": "string",
"pattern": "^prt.*"
}
},
"required": ["messageID"]
}
}
}
}
}
},
"/session/{id}/unrevert": {
"post": {
"operationId": "session.unrevert",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string"
},
"required": true
}
],
"description": "Restore all reverted messages",
"responses": {
"200": {
"description": "Updated session",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Session"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
}
}
},
"/session/{id}/permissions/{permissionID}": {
"post": {
"operationId": "postSession:idPermissions:permissionID",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string"
},
"required": true
},
{
"in": "path",
"name": "permissionID",
"schema": {
"type": "string"
},
"required": true
}
],
"description": "Respond to a permission request",
"responses": {
"200": {
"description": "Permission processed successfully",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"response": {
"type": "string",
"enum": ["once", "always", "reject"]
}
},
"required": ["response"]
}
}
}
}
}
},
"/command": {
"get": {
"operationId": "command.list",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"description": "List all commands",
"responses": {
"200": {
"description": "List of commands",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Command"
}
}
}
}
}
}
}
},
"/config/providers": {
"get": {
"operationId": "config.providers",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"description": "List all providers",
"responses": {
"200": {
"description": "List of providers",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"providers": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Provider"
}
},
"default": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
}
},
"required": ["providers", "default"]
}
}
}
}
}
}
},
"/find": {
"get": {
"operationId": "find.text",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "pattern",
"schema": {
"type": "string"
},
"required": true
}
],
"description": "Find text in files",
"responses": {
"200": {
"description": "Matches",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "object",
"properties": {
"text": {
"type": "string"
}
},
"required": ["text"]
},
"lines": {
"type": "object",
"properties": {
"text": {
"type": "string"
}
},
"required": ["text"]
},
"line_number": {
"type": "number"
},
"absolute_offset": {
"type": "number"
},
"submatches": {
"type": "array",
"items": {
"type": "object",
"properties": {
"match": {
"type": "object",
"properties": {
"text": {
"type": "string"
}
},
"required": ["text"]
},
"start": {
"type": "number"
},
"end": {
"type": "number"
}
},
"required": ["match", "start", "end"]
}
}
},
"required": ["path", "lines", "line_number", "absolute_offset", "submatches"]
}
}
}
}
}
}
}
},
"/find/file": {
"get": {
"operationId": "find.files",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "query",
"schema": {
"type": "string"
},
"required": true
}
],
"description": "Find files",
"responses": {
"200": {
"description": "File paths",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
},
"/find/symbol": {
"get": {
"operationId": "find.symbols",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "query",
"schema": {
"type": "string"
},
"required": true
}
],
"description": "Find workspace symbols",
"responses": {
"200": {
"description": "Symbols",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Symbol"
}
}
}
}
}
}
}
},
"/file": {
"get": {
"operationId": "file.list",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "path",
"schema": {
"type": "string"
},
"required": true
}
],
"description": "List files and directories",
"responses": {
"200": {
"description": "Files and directories",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FileNode"
}
}
}
}
}
}
}
},
"/file/content": {
"get": {
"operationId": "file.read",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "path",
"schema": {
"type": "string"
},
"required": true
}
],
"description": "Read a file",
"responses": {
"200": {
"description": "File content",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FileContent"
}
}
}
}
}
}
},
"/file/status": {
"get": {
"operationId": "file.status",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"description": "Get file status",
"responses": {
"200": {
"description": "File status",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/File"
}
}
}
}
}
}
}
},
"/log": {
"post": {
"operationId": "app.log",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"description": "Write a log entry to the server logs",
"responses": {
"200": {
"description": "Log entry written successfully",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"service": {
"description": "Service name for the log entry",
"type": "string"
},
"level": {
"description": "Log level",
"type": "string",
"enum": ["debug", "info", "error", "warn"]
},
"message": {
"description": "Log message",
"type": "string"
},
"extra": {
"description": "Additional metadata for the log entry",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": ["service", "level", "message"]
}
}
}
}
}
},
"/agent": {
"get": {
"operationId": "app.agents",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"description": "List all agents",
"responses": {
"200": {
"description": "List of agents",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Agent"
}
}
}
}
}
}
}
},
"/mcp": {
"get": {
"operationId": "mcp.status",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"description": "Get MCP server status",
"responses": {
"200": {
"description": "MCP server status",
"content": {
"application/json": {
"schema": {}
}
}
}
}
}
},
"/tui/append-prompt": {
"post": {
"operationId": "tui.appendPrompt",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"description": "Append prompt to the TUI",
"responses": {
"200": {
"description": "Prompt processed successfully",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"text": {
"type": "string"
}
},
"required": ["text"]
}
}
}
}
}
},
"/tui/open-help": {
"post": {
"operationId": "tui.openHelp",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"description": "Open the help dialog",
"responses": {
"200": {
"description": "Help dialog opened successfully",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
}
}
}
},
"/tui/open-sessions": {
"post": {
"operationId": "tui.openSessions",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"description": "Open the session dialog",
"responses": {
"200": {
"description": "Session dialog opened successfully",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
}
}
}
},
"/tui/open-themes": {
"post": {
"operationId": "tui.openThemes",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"description": "Open the theme dialog",
"responses": {
"200": {
"description": "Theme dialog opened successfully",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
}
}
}
},
"/tui/open-models": {
"post": {
"operationId": "tui.openModels",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"description": "Open the model dialog",
"responses": {
"200": {
"description": "Model dialog opened successfully",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
}
}
}
},
"/tui/submit-prompt": {
"post": {
"operationId": "tui.submitPrompt",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"description": "Submit the prompt",
"responses": {
"200": {
"description": "Prompt submitted successfully",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
}
}
}
},
"/tui/clear-prompt": {
"post": {
"operationId": "tui.clearPrompt",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"description": "Clear the prompt",
"responses": {
"200": {
"description": "Prompt cleared successfully",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
}
}
}
},
"/tui/execute-command": {
"post": {
"operationId": "tui.executeCommand",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"description": "Execute a TUI command (e.g. agent_cycle)",
"responses": {
"200": {
"description": "Command executed successfully",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"command": {
"type": "string"
}
},
"required": ["command"]
}
}
}
}
}
},
"/tui/show-toast": {
"post": {
"operationId": "tui.showToast",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"description": "Show a toast notification in the TUI",
"responses": {
"200": {
"description": "Toast notification shown successfully",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"message": {
"type": "string"
},
"variant": {
"type": "string",
"enum": ["info", "success", "warning", "error"]
}
},
"required": ["message", "variant"]
}
}
}
}
}
},
"/auth/{id}": {
"put": {
"operationId": "auth.set",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string"
},
"required": true
}
],
"description": "Set authentication credentials",
"responses": {
"200": {
"description": "Successfully set authentication credentials",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Auth"
}
}
}
}
}
},
"/event": {
"get": {
"operationId": "event.subscribe",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"description": "Get events",
"responses": {
"200": {
"description": "Event stream",
"content": {
"text/event-stream": {
"schema": {
"$ref": "#/components/schemas/Event"
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"Project": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"worktree": {
"type": "string"
},
"vcs": {
"type": "string",
"const": "git"
},
"time": {
"type": "object",
"properties": {
"created": {
"type": "number"
},
"initialized": {
"type": "number"
}
},
"required": ["created"]
}
},
"required": ["id", "worktree", "time"]
},
"KeybindsConfig": {
"description": "Custom keybind configurations",
"type": "object",
"properties": {
"leader": {
"description": "Leader key for keybind combinations",
"default": "ctrl+x",
"type": "string"
},
"app_help": {
"description": "Show help dialog",
"default": "<leader>h",
"type": "string"
},
"app_exit": {
"description": "Exit the application",
"default": "ctrl+c,<leader>q",
"type": "string"
},
"editor_open": {
"description": "Open external editor",
"default": "<leader>e",
"type": "string"
},
"theme_list": {
"description": "List available themes",
"default": "<leader>t",
"type": "string"
},
"project_init": {
"description": "Create/update AGENTS.md",
"default": "<leader>i",
"type": "string"
},
"tool_details": {
"description": "Toggle tool details",
"default": "<leader>d",
"type": "string"
},
"thinking_blocks": {
"description": "Toggle thinking blocks",
"default": "<leader>b",
"type": "string"
},
"session_export": {
"description": "Export session to editor",
"default": "<leader>x",
"type": "string"
},
"session_new": {
"description": "Create a new session",
"default": "<leader>n",
"type": "string"
},
"session_list": {
"description": "List all sessions",
"default": "<leader>l",
"type": "string"
},
"session_timeline": {
"description": "Show session timeline",
"default": "<leader>g",
"type": "string"
},
"session_share": {
"description": "Share current session",
"default": "<leader>s",
"type": "string"
},
"session_unshare": {
"description": "Unshare current session",
"default": "none",
"type": "string"
},
"session_interrupt": {
"description": "Interrupt current session",
"default": "esc",
"type": "string"
},
"session_compact": {
"description": "Compact the session",
"default": "<leader>c",
"type": "string"
},
"session_child_cycle": {
"description": "Cycle to next child session",
"default": "ctrl+right",
"type": "string"
},
"session_child_cycle_reverse": {
"description": "Cycle to previous child session",
"default": "ctrl+left",
"type": "string"
},
"messages_page_up": {
"description": "Scroll messages up by one page",
"default": "pgup",
"type": "string"
},
"messages_page_down": {
"description": "Scroll messages down by one page",
"default": "pgdown",
"type": "string"
},
"messages_half_page_up": {
"description": "Scroll messages up by half page",
"default": "ctrl+alt+u",
"type": "string"
},
"messages_half_page_down": {
"description": "Scroll messages down by half page",
"default": "ctrl+alt+d",
"type": "string"
},
"messages_first": {
"description": "Navigate to first message",
"default": "ctrl+g",
"type": "string"
},
"messages_last": {
"description": "Navigate to last message",
"default": "ctrl+alt+g",
"type": "string"
},
"messages_copy": {
"description": "Copy message",
"default": "<leader>y",
"type": "string"
},
"messages_undo": {
"description": "Undo message",
"default": "<leader>u",
"type": "string"
},
"messages_redo": {
"description": "Redo message",
"default": "<leader>r",
"type": "string"
},
"model_list": {
"description": "List available models",
"default": "<leader>m",
"type": "string"
},
"model_cycle_recent": {
"description": "Next recent model",
"default": "f2",
"type": "string"
},
"model_cycle_recent_reverse": {
"description": "Previous recent model",
"default": "shift+f2",
"type": "string"
},
"agent_list": {
"description": "List agents",
"default": "<leader>a",
"type": "string"
},
"agent_cycle": {
"description": "Next agent",
"default": "tab",
"type": "string"
},
"agent_cycle_reverse": {
"description": "Previous agent",
"default": "shift+tab",
"type": "string"
},
"input_clear": {
"description": "Clear input field",
"default": "ctrl+c",
"type": "string"
},
"input_paste": {
"description": "Paste from clipboard",
"default": "ctrl+v",
"type": "string"
},
"input_submit": {
"description": "Submit input",
"default": "enter",
"type": "string"
},
"input_newline": {
"description": "Insert newline in input",
"default": "shift+enter,ctrl+j",
"type": "string"
},
"switch_mode": {
"description": "@deprecated use agent_cycle. Next mode",
"default": "none",
"type": "string"
},
"switch_mode_reverse": {
"description": "@deprecated use agent_cycle_reverse. Previous mode",
"default": "none",
"type": "string"
},
"switch_agent": {
"description": "@deprecated use agent_cycle. Next agent",
"default": "tab",
"type": "string"
},
"switch_agent_reverse": {
"description": "@deprecated use agent_cycle_reverse. Previous agent",
"default": "shift+tab",
"type": "string"
},
"file_list": {
"description": "@deprecated Currently not available. List files",
"default": "none",
"type": "string"
},
"file_close": {
"description": "@deprecated Close file",
"default": "none",
"type": "string"
},
"file_search": {
"description": "@deprecated Search file",
"default": "none",
"type": "string"
},
"file_diff_toggle": {
"description": "@deprecated Split/unified diff",
"default": "none",
"type": "string"
},
"messages_previous": {
"description": "@deprecated Navigate to previous message",
"default": "none",
"type": "string"
},
"messages_next": {
"description": "@deprecated Navigate to next message",
"default": "none",
"type": "string"
},
"messages_layout_toggle": {
"description": "@deprecated Toggle layout",
"default": "none",
"type": "string"
},
"messages_revert": {
"description": "@deprecated use messages_undo. Revert message",
"default": "none",
"type": "string"
}
},
"additionalProperties": false
},
"AgentConfig": {
"type": "object",
"properties": {
"model": {
"type": "string"
},
"temperature": {
"type": "number"
},
"top_p": {
"type": "number"
},
"prompt": {
"type": "string"
},
"tools": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "boolean"
}
},
"disable": {
"type": "boolean"
},
"description": {
"description": "Description of when to use the agent",
"type": "string"
},
"mode": {
"anyOf": [
{
"type": "string",
"const": "subagent"
},
{
"type": "string",
"const": "primary"
},
{
"type": "string",
"const": "all"
}
]
},
"permission": {
"type": "object",
"properties": {
"edit": {
"anyOf": [
{
"type": "string",
"const": "ask"
},
{
"type": "string",
"const": "allow"
},
{
"type": "string",
"const": "deny"
}
]
},
"bash": {
"anyOf": [
{
"anyOf": [
{
"type": "string",
"const": "ask"
},
{
"type": "string",
"const": "allow"
},
{
"type": "string",
"const": "deny"
}
]
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"const": "ask"
},
{
"type": "string",
"const": "allow"
},
{
"type": "string",
"const": "deny"
}
]
}
}
]
},
"webfetch": {
"anyOf": [
{
"type": "string",
"const": "ask"
},
{
"type": "string",
"const": "allow"
},
{
"type": "string",
"const": "deny"
}
]
}
}
}
},
"additionalProperties": {}
},
"McpLocalConfig": {
"type": "object",
"properties": {
"type": {
"description": "Type of MCP server connection",
"type": "string",
"const": "local"
},
"command": {
"description": "Command and arguments to run the MCP server",
"type": "array",
"items": {
"type": "string"
}
},
"environment": {
"description": "Environment variables to set when running the MCP server",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"enabled": {
"description": "Enable or disable the MCP server on startup",
"type": "boolean"
}
},
"required": ["type", "command"],
"additionalProperties": false
},
"McpRemoteConfig": {
"type": "object",
"properties": {
"type": {
"description": "Type of MCP server connection",
"type": "string",
"const": "remote"
},
"url": {
"description": "URL of the remote MCP server",
"type": "string"
},
"enabled": {
"description": "Enable or disable the MCP server on startup",
"type": "boolean"
},
"headers": {
"description": "Headers to send with the request",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
}
},
"required": ["type", "url"],
"additionalProperties": false
},
"LayoutConfig": {
"description": "@deprecated Always uses stretch layout.",
"type": "string",
"enum": ["auto", "stretch"]
},
"Config": {
"type": "object",
"properties": {
"$schema": {
"description": "JSON schema reference for configuration validation",
"type": "string"
},
"theme": {
"description": "Theme name to use for the interface",
"type": "string"
},
"keybinds": {
"$ref": "#/components/schemas/KeybindsConfig"
},
"tui": {
"description": "TUI specific settings",
"type": "object",
"properties": {
"scroll_speed": {
"description": "TUI scroll speed",
"default": 2,
"type": "number",
"minimum": 1
}
}
},
"command": {
"description": "Command configuration, see https://opencode.ai/docs/commands",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"properties": {
"template": {
"type": "string"
},
"description": {
"type": "string"
},
"agent": {
"type": "string"
},
"model": {
"type": "string"
},
"subtask": {
"type": "boolean"
}
},
"required": ["template"]
}
},
"watcher": {
"type": "object",
"properties": {
"ignore": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"plugin": {
"type": "array",
"items": {
"type": "string"
}
},
"snapshot": {
"type": "boolean"
},
"share": {
"description": "Control sharing behavior:'manual' allows manual sharing via commands, 'auto' enables automatic sharing, 'disabled' disables all sharing",
"type": "string",
"enum": ["manual", "auto", "disabled"]
},
"autoshare": {
"description": "@deprecated Use 'share' field instead. Share newly created sessions automatically",
"type": "boolean"
},
"autoupdate": {
"description": "Automatically update to the latest version",
"type": "boolean"
},
"disabled_providers": {
"description": "Disable providers that are loaded automatically",
"type": "array",
"items": {
"type": "string"
}
},
"model": {
"description": "Model to use in the format of provider/model, eg anthropic/claude-2",
"type": "string"
},
"small_model": {
"description": "Small model to use for tasks like title generation in the format of provider/model",
"type": "string"
},
"username": {
"description": "Custom username to display in conversations instead of system username",
"type": "string"
},
"mode": {
"description": "@deprecated Use `agent` field instead.",
"type": "object",
"properties": {
"build": {
"$ref": "#/components/schemas/AgentConfig"
},
"plan": {
"$ref": "#/components/schemas/AgentConfig"
}
},
"additionalProperties": {
"$ref": "#/components/schemas/AgentConfig"
}
},
"agent": {
"description": "Agent configuration, see https://opencode.ai/docs/agent",
"type": "object",
"properties": {
"plan": {
"$ref": "#/components/schemas/AgentConfig"
},
"build": {
"$ref": "#/components/schemas/AgentConfig"
},
"general": {
"$ref": "#/components/schemas/AgentConfig"
}
},
"additionalProperties": {
"$ref": "#/components/schemas/AgentConfig"
}
},
"provider": {
"description": "Custom provider configurations and model overrides",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"properties": {
"api": {
"type": "string"
},
"name": {
"type": "string"
},
"env": {
"type": "array",
"items": {
"type": "string"
}
},
"id": {
"type": "string"
},
"npm": {
"type": "string"
},
"models": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"release_date": {
"type": "string"
},
"attachment": {
"type": "boolean"
},
"reasoning": {
"type": "boolean"
},
"temperature": {
"type": "boolean"
},
"tool_call": {
"type": "boolean"
},
"cost": {
"type": "object",
"properties": {
"input": {
"type": "number"
},
"output": {
"type": "number"
},
"cache_read": {
"type": "number"
},
"cache_write": {
"type": "number"
}
},
"required": ["input", "output"]
},
"limit": {
"type": "object",
"properties": {
"context": {
"type": "number"
},
"output": {
"type": "number"
}
},
"required": ["context", "output"]
},
"modalities": {
"type": "object",
"properties": {
"input": {
"type": "array",
"items": {
"type": "string",
"enum": ["text", "audio", "image", "video", "pdf"]
}
},
"output": {
"type": "array",
"items": {
"type": "string",
"enum": ["text", "audio", "image", "video", "pdf"]
}
}
},
"required": ["input", "output"]
},
"experimental": {
"type": "boolean"
},
"status": {
"type": "string",
"enum": ["alpha", "beta"]
},
"options": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"provider": {
"type": "object",
"properties": {
"npm": {
"type": "string"
}
},
"required": ["npm"]
}
}
}
},
"options": {
"type": "object",
"properties": {
"apiKey": {
"type": "string"
},
"baseURL": {
"type": "string"
},
"timeout": {
"description": "Timeout in milliseconds for requests to this provider. Default is 300000 (5 minutes). Set to false to disable timeout.",
"anyOf": [
{
"description": "Timeout in milliseconds for requests to this provider. Default is 300000 (5 minutes). Set to false to disable timeout.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"description": "Disable timeout for this provider entirely.",
"type": "boolean",
"const": false
}
]
}
},
"additionalProperties": {}
}
},
"additionalProperties": false
}
},
"mcp": {
"description": "MCP (Model Context Protocol) server configurations",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"$ref": "#/components/schemas/McpLocalConfig"
},
{
"$ref": "#/components/schemas/McpRemoteConfig"
}
]
}
},
"formatter": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"properties": {
"disabled": {
"type": "boolean"
},
"command": {
"type": "array",
"items": {
"type": "string"
}
},
"environment": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"extensions": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"lsp": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": "object",
"properties": {
"disabled": {
"type": "boolean",
"const": true
}
},
"required": ["disabled"]
},
{
"type": "object",
"properties": {
"command": {
"type": "array",
"items": {
"type": "string"
}
},
"extensions": {
"type": "array",
"items": {
"type": "string"
}
},
"disabled": {
"type": "boolean"
},
"env": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"initialization": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": ["command"]
}
]
}
},
"instructions": {
"description": "Additional instruction files or patterns to include",
"type": "array",
"items": {
"type": "string"
}
},
"layout": {
"$ref": "#/components/schemas/LayoutConfig"
},
"permission": {
"type": "object",
"properties": {
"edit": {
"anyOf": [
{
"type": "string",
"const": "ask"
},
{
"type": "string",
"const": "allow"
},
{
"type": "string",
"const": "deny"
}
]
},
"bash": {
"anyOf": [
{
"anyOf": [
{
"type": "string",
"const": "ask"
},
{
"type": "string",
"const": "allow"
},
{
"type": "string",
"const": "deny"
}
]
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"const": "ask"
},
{
"type": "string",
"const": "allow"
},
{
"type": "string",
"const": "deny"
}
]
}
}
]
},
"webfetch": {
"anyOf": [
{
"type": "string",
"const": "ask"
},
{
"type": "string",
"const": "allow"
},
{
"type": "string",
"const": "deny"
}
]
}
}
},
"tools": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "boolean"
}
},
"experimental": {
"type": "object",
"properties": {
"hook": {
"type": "object",
"properties": {
"file_edited": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "array",
"items": {
"type": "object",
"properties": {
"command": {
"type": "array",
"items": {
"type": "string"
}
},
"environment": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
}
},
"required": ["command"]
}
}
},
"session_completed": {
"type": "array",
"items": {
"type": "object",
"properties": {
"command": {
"type": "array",
"items": {
"type": "string"
}
},
"environment": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
}
},
"required": ["command"]
}
}
}
},
"disable_paste_summary": {
"type": "boolean"
}
}
}
},
"additionalProperties": false
},
"BadRequestError": {
"type": "object",
"properties": {
"data": {
"anyOf": [
{},
{
"type": "null"
}
]
},
"errors": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"success": {
"type": "boolean",
"const": false
}
},
"required": ["data", "errors", "success"]
},
"ToolIDs": {
"type": "array",
"items": {
"type": "string"
}
},
"ToolListItem": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"description": {
"type": "string"
},
"parameters": {}
},
"required": ["id", "description", "parameters"]
},
"ToolList": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ToolListItem"
}
},
"Path": {
"type": "object",
"properties": {
"state": {
"type": "string"
},
"config": {
"type": "string"
},
"worktree": {
"type": "string"
},
"directory": {
"type": "string"
}
},
"required": ["state", "config", "worktree", "directory"]
},
"FileDiff": {
"type": "object",
"properties": {
"file": {
"type": "string"
},
"before": {
"type": "string"
},
"after": {
"type": "string"
},
"additions": {
"type": "number"
},
"deletions": {
"type": "number"
}
},
"required": ["file", "before", "after", "additions", "deletions"]
},
"Session": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^ses.*"
},
"projectID": {
"type": "string"
},
"directory": {
"type": "string"
},
"parentID": {
"type": "string",
"pattern": "^ses.*"
},
"summary": {
"type": "object",
"properties": {
"diffs": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FileDiff"
}
}
},
"required": ["diffs"]
},
"share": {
"type": "object",
"properties": {
"url": {
"type": "string"
}
},
"required": ["url"]
},
"title": {
"type": "string"
},
"version": {
"type": "string"
},
"time": {
"type": "object",
"properties": {
"created": {
"type": "number"
},
"updated": {
"type": "number"
},
"compacting": {
"type": "number"
}
},
"required": ["created", "updated"]
},
"revert": {
"type": "object",
"properties": {
"messageID": {
"type": "string"
},
"partID": {
"type": "string"
},
"snapshot": {
"type": "string"
},
"diff": {
"type": "string"
}
},
"required": ["messageID"]
}
},
"required": ["id", "projectID", "directory", "title", "version", "time"]
},
"NotFoundError": {
"type": "object",
"properties": {
"name": {
"type": "string",
"const": "NotFoundError"
},
"data": {
"type": "object",
"properties": {
"message": {
"type": "string"
}
},
"required": ["message"]
}
},
"required": ["name", "data"]
},
"Todo": {
"type": "object",
"properties": {
"content": {
"description": "Brief description of the task",
"type": "string"
},
"status": {
"description": "Current status of the task: pending, in_progress, completed, cancelled",
"type": "string"
},
"priority": {
"description": "Priority level of the task: high, medium, low",
"type": "string"
},
"id": {
"description": "Unique identifier for the todo item",
"type": "string"
}
},
"required": ["content", "status", "priority", "id"]
},
"UserMessage": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"sessionID": {
"type": "string"
},
"role": {
"type": "string",
"const": "user"
},
"time": {
"type": "object",
"properties": {
"created": {
"type": "number"
}
},
"required": ["created"]
},
"summary": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"body": {
"type": "string"
},
"diffs": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FileDiff"
}
}
},
"required": ["diffs"]
}
},
"required": ["id", "sessionID", "role", "time"]
},
"ProviderAuthError": {
"type": "object",
"properties": {
"name": {
"type": "string",
"const": "ProviderAuthError"
},
"data": {
"type": "object",
"properties": {
"providerID": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": ["providerID", "message"]
}
},
"required": ["name", "data"]
},
"UnknownError": {
"type": "object",
"properties": {
"name": {
"type": "string",
"const": "UnknownError"
},
"data": {
"type": "object",
"properties": {
"message": {
"type": "string"
}
},
"required": ["message"]
}
},
"required": ["name", "data"]
},
"MessageOutputLengthError": {
"type": "object",
"properties": {
"name": {
"type": "string",
"const": "MessageOutputLengthError"
},
"data": {
"type": "object",
"properties": {}
}
},
"required": ["name", "data"]
},
"MessageAbortedError": {
"type": "object",
"properties": {
"name": {
"type": "string",
"const": "MessageAbortedError"
},
"data": {
"type": "object",
"properties": {
"message": {
"type": "string"
}
},
"required": ["message"]
}
},
"required": ["name", "data"]
},
"APIError": {
"type": "object",
"properties": {
"name": {
"type": "string",
"const": "APIError"
},
"data": {
"type": "object",
"properties": {
"message": {
"type": "string"
},
"statusCode": {
"type": "number"
},
"isRetryable": {
"type": "boolean"
},
"responseHeaders": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"responseBody": {
"type": "string"
}
},
"required": ["message", "isRetryable"]
}
},
"required": ["name", "data"]
},
"AssistantMessage": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"sessionID": {
"type": "string"
},
"role": {
"type": "string",
"const": "assistant"
},
"time": {
"type": "object",
"properties": {
"created": {
"type": "number"
},
"completed": {
"type": "number"
}
},
"required": ["created"]
},
"error": {
"anyOf": [
{
"$ref": "#/components/schemas/ProviderAuthError"
},
{
"$ref": "#/components/schemas/UnknownError"
},
{
"$ref": "#/components/schemas/MessageOutputLengthError"
},
{
"$ref": "#/components/schemas/MessageAbortedError"
},
{
"$ref": "#/components/schemas/APIError"
}
]
},
"system": {
"type": "array",
"items": {
"type": "string"
}
},
"parentID": {
"type": "string"
},
"modelID": {
"type": "string"
},
"providerID": {
"type": "string"
},
"mode": {
"type": "string"
},
"path": {
"type": "object",
"properties": {
"cwd": {
"type": "string"
},
"root": {
"type": "string"
}
},
"required": ["cwd", "root"]
},
"summary": {
"type": "boolean"
},
"cost": {
"type": "number"
},
"tokens": {
"type": "object",
"properties": {
"input": {
"type": "number"
},
"output": {
"type": "number"
},
"reasoning": {
"type": "number"
},
"cache": {
"type": "object",
"properties": {
"read": {
"type": "number"
},
"write": {
"type": "number"
}
},
"required": ["read", "write"]
}
},
"required": ["input", "output", "reasoning", "cache"]
}
},
"required": [
"id",
"sessionID",
"role",
"time",
"system",
"parentID",
"modelID",
"providerID",
"mode",
"path",
"cost",
"tokens"
]
},
"Message": {
"anyOf": [
{
"$ref": "#/components/schemas/UserMessage"
},
{
"$ref": "#/components/schemas/AssistantMessage"
}
]
},
"TextPart": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"type": {
"type": "string",
"const": "text"
},
"text": {
"type": "string"
},
"synthetic": {
"type": "boolean"
},
"time": {
"type": "object",
"properties": {
"start": {
"type": "number"
},
"end": {
"type": "number"
}
},
"required": ["start"]
},
"metadata": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": ["id", "sessionID", "messageID", "type", "text"]
},
"ReasoningPart": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"type": {
"type": "string",
"const": "reasoning"
},
"text": {
"type": "string"
},
"metadata": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"time": {
"type": "object",
"properties": {
"start": {
"type": "number"
},
"end": {
"type": "number"
}
},
"required": ["start"]
}
},
"required": ["id", "sessionID", "messageID", "type", "text", "time"]
},
"FilePartSourceText": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"start": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"end": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": ["value", "start", "end"]
},
"FileSource": {
"type": "object",
"properties": {
"text": {
"$ref": "#/components/schemas/FilePartSourceText"
},
"type": {
"type": "string",
"const": "file"
},
"path": {
"type": "string"
}
},
"required": ["text", "type", "path"]
},
"Range": {
"type": "object",
"properties": {
"start": {
"type": "object",
"properties": {
"line": {
"type": "number"
},
"character": {
"type": "number"
}
},
"required": ["line", "character"]
},
"end": {
"type": "object",
"properties": {
"line": {
"type": "number"
},
"character": {
"type": "number"
}
},
"required": ["line", "character"]
}
},
"required": ["start", "end"]
},
"SymbolSource": {
"type": "object",
"properties": {
"text": {
"$ref": "#/components/schemas/FilePartSourceText"
},
"type": {
"type": "string",
"const": "symbol"
},
"path": {
"type": "string"
},
"range": {
"$ref": "#/components/schemas/Range"
},
"name": {
"type": "string"
},
"kind": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": ["text", "type", "path", "range", "name", "kind"]
},
"FilePartSource": {
"anyOf": [
{
"$ref": "#/components/schemas/FileSource"
},
{
"$ref": "#/components/schemas/SymbolSource"
}
]
},
"FilePart": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"type": {
"type": "string",
"const": "file"
},
"mime": {
"type": "string"
},
"filename": {
"type": "string"
},
"url": {
"type": "string"
},
"source": {
"$ref": "#/components/schemas/FilePartSource"
}
},
"required": ["id", "sessionID", "messageID", "type", "mime", "url"]
},
"ToolStatePending": {
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "pending"
}
},
"required": ["status"]
},
"ToolStateRunning": {
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "running"
},
"input": {},
"title": {
"type": "string"
},
"metadata": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"time": {
"type": "object",
"properties": {
"start": {
"type": "number"
}
},
"required": ["start"]
}
},
"required": ["status", "input", "time"]
},
"ToolStateCompleted": {
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "completed"
},
"input": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"output": {
"type": "string"
},
"title": {
"type": "string"
},
"metadata": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"time": {
"type": "object",
"properties": {
"start": {
"type": "number"
},
"end": {
"type": "number"
},
"compacted": {
"type": "number"
}
},
"required": ["start", "end"]
},
"attachments": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FilePart"
}
}
},
"required": ["status", "input", "output", "title", "metadata", "time"]
},
"ToolStateError": {
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "error"
},
"input": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"metadata": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"time": {
"type": "object",
"properties": {
"start": {
"type": "number"
},
"end": {
"type": "number"
}
},
"required": ["start", "end"]
}
},
"required": ["status", "input", "error", "time"]
},
"ToolState": {
"anyOf": [
{
"$ref": "#/components/schemas/ToolStatePending"
},
{
"$ref": "#/components/schemas/ToolStateRunning"
},
{
"$ref": "#/components/schemas/ToolStateCompleted"
},
{
"$ref": "#/components/schemas/ToolStateError"
}
]
},
"ToolPart": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"type": {
"type": "string",
"const": "tool"
},
"callID": {
"type": "string"
},
"tool": {
"type": "string"
},
"state": {
"$ref": "#/components/schemas/ToolState"
},
"metadata": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": ["id", "sessionID", "messageID", "type", "callID", "tool", "state"]
},
"StepStartPart": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"type": {
"type": "string",
"const": "step-start"
},
"snapshot": {
"type": "string"
}
},
"required": ["id", "sessionID", "messageID", "type"]
},
"StepFinishPart": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"type": {
"type": "string",
"const": "step-finish"
},
"reason": {
"type": "string"
},
"snapshot": {
"type": "string"
},
"cost": {
"type": "number"
},
"tokens": {
"type": "object",
"properties": {
"input": {
"type": "number"
},
"output": {
"type": "number"
},
"reasoning": {
"type": "number"
},
"cache": {
"type": "object",
"properties": {
"read": {
"type": "number"
},
"write": {
"type": "number"
}
},
"required": ["read", "write"]
}
},
"required": ["input", "output", "reasoning", "cache"]
}
},
"required": ["id", "sessionID", "messageID", "type", "reason", "cost", "tokens"]
},
"SnapshotPart": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"type": {
"type": "string",
"const": "snapshot"
},
"snapshot": {
"type": "string"
}
},
"required": ["id", "sessionID", "messageID", "type", "snapshot"]
},
"PatchPart": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"type": {
"type": "string",
"const": "patch"
},
"hash": {
"type": "string"
},
"files": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": ["id", "sessionID", "messageID", "type", "hash", "files"]
},
"AgentPart": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"type": {
"type": "string",
"const": "agent"
},
"name": {
"type": "string"
},
"source": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"start": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"end": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": ["value", "start", "end"]
}
},
"required": ["id", "sessionID", "messageID", "type", "name"]
},
"RetryPart": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"type": {
"type": "string",
"const": "retry"
},
"attempt": {
"type": "number"
},
"error": {
"$ref": "#/components/schemas/APIError"
},
"time": {
"type": "object",
"properties": {
"created": {
"type": "number"
}
},
"required": ["created"]
}
},
"required": ["id", "sessionID", "messageID", "type", "attempt", "error", "time"]
},
"Part": {
"anyOf": [
{
"$ref": "#/components/schemas/TextPart"
},
{
"$ref": "#/components/schemas/ReasoningPart"
},
{
"$ref": "#/components/schemas/FilePart"
},
{
"$ref": "#/components/schemas/ToolPart"
},
{
"$ref": "#/components/schemas/StepStartPart"
},
{
"$ref": "#/components/schemas/StepFinishPart"
},
{
"$ref": "#/components/schemas/SnapshotPart"
},
{
"$ref": "#/components/schemas/PatchPart"
},
{
"$ref": "#/components/schemas/AgentPart"
},
{
"$ref": "#/components/schemas/RetryPart"
}
]
},
"TextPartInput": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"const": "text"
},
"text": {
"type": "string"
},
"synthetic": {
"type": "boolean"
},
"time": {
"type": "object",
"properties": {
"start": {
"type": "number"
},
"end": {
"type": "number"
}
},
"required": ["start"]
},
"metadata": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": ["type", "text"]
},
"FilePartInput": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"const": "file"
},
"mime": {
"type": "string"
},
"filename": {
"type": "string"
},
"url": {
"type": "string"
},
"source": {
"$ref": "#/components/schemas/FilePartSource"
}
},
"required": ["type", "mime", "url"]
},
"AgentPartInput": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"const": "agent"
},
"name": {
"type": "string"
},
"source": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"start": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"end": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": ["value", "start", "end"]
}
},
"required": ["type", "name"]
},
"Command": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"agent": {
"type": "string"
},
"model": {
"type": "string"
},
"template": {
"type": "string"
},
"subtask": {
"type": "boolean"
}
},
"required": ["name", "template"]
},
"Model": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"release_date": {
"type": "string"
},
"attachment": {
"type": "boolean"
},
"reasoning": {
"type": "boolean"
},
"temperature": {
"type": "boolean"
},
"tool_call": {
"type": "boolean"
},
"cost": {
"type": "object",
"properties": {
"input": {
"type": "number"
},
"output": {
"type": "number"
},
"cache_read": {
"type": "number"
},
"cache_write": {
"type": "number"
}
},
"required": ["input", "output"]
},
"limit": {
"type": "object",
"properties": {
"context": {
"type": "number"
},
"output": {
"type": "number"
}
},
"required": ["context", "output"]
},
"modalities": {
"type": "object",
"properties": {
"input": {
"type": "array",
"items": {
"type": "string",
"enum": ["text", "audio", "image", "video", "pdf"]
}
},
"output": {
"type": "array",
"items": {
"type": "string",
"enum": ["text", "audio", "image", "video", "pdf"]
}
}
},
"required": ["input", "output"]
},
"experimental": {
"type": "boolean"
},
"status": {
"type": "string",
"enum": ["alpha", "beta"]
},
"options": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"provider": {
"type": "object",
"properties": {
"npm": {
"type": "string"
}
},
"required": ["npm"]
}
},
"required": [
"id",
"name",
"release_date",
"attachment",
"reasoning",
"temperature",
"tool_call",
"cost",
"limit",
"options"
]
},
"Provider": {
"type": "object",
"properties": {
"api": {
"type": "string"
},
"name": {
"type": "string"
},
"env": {
"type": "array",
"items": {
"type": "string"
}
},
"id": {
"type": "string"
},
"npm": {
"type": "string"
},
"models": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/components/schemas/Model"
}
}
},
"required": ["name", "env", "id", "models"]
},
"Symbol": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"kind": {
"type": "number"
},
"location": {
"type": "object",
"properties": {
"uri": {
"type": "string"
},
"range": {
"$ref": "#/components/schemas/Range"
}
},
"required": ["uri", "range"]
}
},
"required": ["name", "kind", "location"]
},
"FileNode": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"path": {
"type": "string"
},
"absolute": {
"type": "string"
},
"type": {
"type": "string",
"enum": ["file", "directory"]
},
"ignored": {
"type": "boolean"
}
},
"required": ["name", "path", "absolute", "type", "ignored"]
},
"FileContent": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "text"
},
"content": {
"type": "string"
},
"diff": {
"type": "string"
},
"patch": {
"type": "object",
"properties": {
"oldFileName": {
"type": "string"
},
"newFileName": {
"type": "string"
},
"oldHeader": {
"type": "string"
},
"newHeader": {
"type": "string"
},
"hunks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"oldStart": {
"type": "number"
},
"oldLines": {
"type": "number"
},
"newStart": {
"type": "number"
},
"newLines": {
"type": "number"
},
"lines": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": ["oldStart", "oldLines", "newStart", "newLines", "lines"]
}
},
"index": {
"type": "string"
}
},
"required": ["oldFileName", "newFileName", "hunks"]
},
"encoding": {
"type": "string",
"const": "base64"
},
"mimeType": {
"type": "string"
}
},
"required": ["type", "content"]
},
"File": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"added": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"removed": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"status": {
"type": "string",
"enum": ["added", "deleted", "modified"]
}
},
"required": ["path", "added", "removed", "status"]
},
"Agent": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"mode": {
"anyOf": [
{
"type": "string",
"const": "subagent"
},
{
"type": "string",
"const": "primary"
},
{
"type": "string",
"const": "all"
}
]
},
"builtIn": {
"type": "boolean"
},
"topP": {
"type": "number"
},
"temperature": {
"type": "number"
},
"permission": {
"type": "object",
"properties": {
"edit": {
"anyOf": [
{
"type": "string",
"const": "ask"
},
{
"type": "string",
"const": "allow"
},
{
"type": "string",
"const": "deny"
}
]
},
"bash": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"const": "ask"
},
{
"type": "string",
"const": "allow"
},
{
"type": "string",
"const": "deny"
}
]
}
},
"webfetch": {
"anyOf": [
{
"type": "string",
"const": "ask"
},
{
"type": "string",
"const": "allow"
},
{
"type": "string",
"const": "deny"
}
]
}
},
"required": ["edit", "bash"]
},
"model": {
"type": "object",
"properties": {
"modelID": {
"type": "string"
},
"providerID": {
"type": "string"
}
},
"required": ["modelID", "providerID"]
},
"prompt": {
"type": "string"
},
"tools": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "boolean"
}
},
"options": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": ["name", "mode", "builtIn", "permission", "tools", "options"]
},
"OAuth": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "oauth"
},
"refresh": {
"type": "string"
},
"access": {
"type": "string"
},
"expires": {
"type": "number"
}
},
"required": ["type", "refresh", "access", "expires"]
},
"ApiAuth": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "api"
},
"key": {
"type": "string"
}
},
"required": ["type", "key"]
},
"WellKnownAuth": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "wellknown"
},
"key": {
"type": "string"
},
"token": {
"type": "string"
}
},
"required": ["type", "key", "token"]
},
"Auth": {
"anyOf": [
{
"$ref": "#/components/schemas/OAuth"
},
{
"$ref": "#/components/schemas/ApiAuth"
},
{
"$ref": "#/components/schemas/WellKnownAuth"
}
]
},
"Event.installation.updated": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "installation.updated"
},
"properties": {
"type": "object",
"properties": {
"version": {
"type": "string"
}
},
"required": ["version"]
}
},
"required": ["type", "properties"]
},
"Event.lsp.client.diagnostics": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "lsp.client.diagnostics"
},
"properties": {
"type": "object",
"properties": {
"serverID": {
"type": "string"
},
"path": {
"type": "string"
}
},
"required": ["serverID", "path"]
}
},
"required": ["type", "properties"]
},
"Event.message.updated": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "message.updated"
},
"properties": {
"type": "object",
"properties": {
"info": {
"$ref": "#/components/schemas/Message"
}
},
"required": ["info"]
}
},
"required": ["type", "properties"]
},
"Event.message.removed": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "message.removed"
},
"properties": {
"type": "object",
"properties": {
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
}
},
"required": ["sessionID", "messageID"]
}
},
"required": ["type", "properties"]
},
"Event.message.part.updated": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "message.part.updated"
},
"properties": {
"type": "object",
"properties": {
"part": {
"$ref": "#/components/schemas/Part"
},
"delta": {
"type": "string"
}
},
"required": ["part"]
}
},
"required": ["type", "properties"]
},
"Event.message.part.removed": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "message.part.removed"
},
"properties": {
"type": "object",
"properties": {
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"partID": {
"type": "string"
}
},
"required": ["sessionID", "messageID", "partID"]
}
},
"required": ["type", "properties"]
},
"Event.session.compacted": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "session.compacted"
},
"properties": {
"type": "object",
"properties": {
"sessionID": {
"type": "string"
}
},
"required": ["sessionID"]
}
},
"required": ["type", "properties"]
},
"Permission": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string"
},
"pattern": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"callID": {
"type": "string"
},
"title": {
"type": "string"
},
"metadata": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"time": {
"type": "object",
"properties": {
"created": {
"type": "number"
}
},
"required": ["created"]
}
},
"required": ["id", "type", "sessionID", "messageID", "title", "metadata", "time"]
},
"Event.permission.updated": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "permission.updated"
},
"properties": {
"$ref": "#/components/schemas/Permission"
}
},
"required": ["type", "properties"]
},
"Event.permission.replied": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "permission.replied"
},
"properties": {
"type": "object",
"properties": {
"sessionID": {
"type": "string"
},
"permissionID": {
"type": "string"
},
"response": {
"type": "string"
}
},
"required": ["sessionID", "permissionID", "response"]
}
},
"required": ["type", "properties"]
},
"Event.file.edited": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "file.edited"
},
"properties": {
"type": "object",
"properties": {
"file": {
"type": "string"
}
},
"required": ["file"]
}
},
"required": ["type", "properties"]
},
"Event.file.watcher.updated": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "file.watcher.updated"
},
"properties": {
"type": "object",
"properties": {
"file": {
"type": "string"
},
"event": {
"anyOf": [
{
"type": "string",
"const": "add"
},
{
"type": "string",
"const": "change"
},
{
"type": "string",
"const": "unlink"
}
]
}
},
"required": ["file", "event"]
}
},
"required": ["type", "properties"]
},
"Event.todo.updated": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "todo.updated"
},
"properties": {
"type": "object",
"properties": {
"sessionID": {
"type": "string"
},
"todos": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Todo"
}
}
},
"required": ["sessionID", "todos"]
}
},
"required": ["type", "properties"]
},
"Event.session.idle": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "session.idle"
},
"properties": {
"type": "object",
"properties": {
"sessionID": {
"type": "string"
}
},
"required": ["sessionID"]
}
},
"required": ["type", "properties"]
},
"Event.session.created": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "session.created"
},
"properties": {
"type": "object",
"properties": {
"info": {
"$ref": "#/components/schemas/Session"
}
},
"required": ["info"]
}
},
"required": ["type", "properties"]
},
"Event.session.updated": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "session.updated"
},
"properties": {
"type": "object",
"properties": {
"info": {
"$ref": "#/components/schemas/Session"
}
},
"required": ["info"]
}
},
"required": ["type", "properties"]
},
"Event.session.deleted": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "session.deleted"
},
"properties": {
"type": "object",
"properties": {
"info": {
"$ref": "#/components/schemas/Session"
}
},
"required": ["info"]
}
},
"required": ["type", "properties"]
},
"Event.session.error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "session.error"
},
"properties": {
"type": "object",
"properties": {
"sessionID": {
"type": "string"
},
"error": {
"anyOf": [
{
"$ref": "#/components/schemas/ProviderAuthError"
},
{
"$ref": "#/components/schemas/UnknownError"
},
{
"$ref": "#/components/schemas/MessageOutputLengthError"
},
{
"$ref": "#/components/schemas/MessageAbortedError"
},
{
"$ref": "#/components/schemas/APIError"
}
]
}
}
}
},
"required": ["type", "properties"]
},
"Event.server.connected": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "server.connected"
},
"properties": {
"type": "object",
"properties": {}
}
},
"required": ["type", "properties"]
},
"Event.ide.installed": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "ide.installed"
},
"properties": {
"type": "object",
"properties": {
"ide": {
"type": "string"
}
},
"required": ["ide"]
}
},
"required": ["type", "properties"]
},
"Event": {
"anyOf": [
{
"$ref": "#/components/schemas/Event.installation.updated"
},
{
"$ref": "#/components/schemas/Event.lsp.client.diagnostics"
},
{
"$ref": "#/components/schemas/Event.message.updated"
},
{
"$ref": "#/components/schemas/Event.message.removed"
},
{
"$ref": "#/components/schemas/Event.message.part.updated"
},
{
"$ref": "#/components/schemas/Event.message.part.removed"
},
{
"$ref": "#/components/schemas/Event.session.compacted"
},
{
"$ref": "#/components/schemas/Event.permission.updated"
},
{
"$ref": "#/components/schemas/Event.permission.replied"
},
{
"$ref": "#/components/schemas/Event.file.edited"
},
{
"$ref": "#/components/schemas/Event.file.watcher.updated"
},
{
"$ref": "#/components/schemas/Event.todo.updated"
},
{
"$ref": "#/components/schemas/Event.session.idle"
},
{
"$ref": "#/components/schemas/Event.session.created"
},
{
"$ref": "#/components/schemas/Event.session.updated"
},
{
"$ref": "#/components/schemas/Event.session.deleted"
},
{
"$ref": "#/components/schemas/Event.session.error"
},
{
"$ref": "#/components/schemas/Event.server.connected"
},
{
"$ref": "#/components/schemas/Event.ide.installed"
}
]
}
}
}
}