{ "openapi": "3.1.0", "info": { "title": "opencode", "version": "1.0.0", "description": "opencode api" }, "paths": { "/auth/{providerID}": { "put": { "tags": ["control"], "operationId": "auth.set", "parameters": [ { "name": "providerID", "in": "path", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successfully set authentication credentials", "content": { "application/json": { "schema": { "type": "boolean", "description": "Successfully set authentication credentials" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } } }, "description": "Set authentication credentials", "summary": "Set auth credentials", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Auth" } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.auth.set({\n ...\n})" } ] }, "delete": { "tags": ["control"], "operationId": "auth.remove", "parameters": [ { "name": "providerID", "in": "path", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successfully removed authentication credentials", "content": { "application/json": { "schema": { "type": "boolean", "description": "Successfully removed authentication credentials" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } } }, "description": "Remove authentication credentials", "summary": "Remove auth credentials", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.auth.remove({\n ...\n})" } ] } }, "/log": { "post": { "tags": ["control"], "operationId": "app.log", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Log entry written successfully", "content": { "application/json": { "schema": { "type": "boolean", "description": "Log entry written successfully" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } } }, "description": "Write a log entry to the server logs with specified level and metadata.", "summary": "Write log", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "service": { "type": "string", "description": "Service name for the log entry" }, "level": { "type": "string", "enum": ["debug", "info", "error", "warn"], "description": "Log level" }, "message": { "type": "string", "description": "Log message" }, "extra": { "type": "object" } }, "required": ["service", "level", "message"], "additionalProperties": false } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.app.log({\n ...\n})" } ] } }, "/global/health": { "get": { "tags": ["global"], "operationId": "global.health", "parameters": [], "responses": { "200": { "description": "Health information", "content": { "application/json": { "schema": { "type": "object", "properties": { "healthy": { "type": "boolean", "enum": [true] }, "version": { "type": "string" } }, "required": ["healthy", "version"], "additionalProperties": false, "description": "Health information" } } } } }, "description": "Get health information about the OpenCode server.", "summary": "Get health", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.global.health({\n ...\n})" } ] } }, "/global/event": { "get": { "tags": ["global"], "operationId": "global.event", "parameters": [], "responses": { "200": { "description": "Event stream", "content": { "text/event-stream": { "schema": { "$ref": "#/components/schemas/GlobalEvent" } } } } }, "description": "Subscribe to global events from the OpenCode system using server-sent events.", "summary": "Get global events", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.global.event({\n ...\n})" } ] } }, "/global/config": { "get": { "tags": ["global"], "operationId": "global.config.get", "parameters": [], "responses": { "200": { "description": "Get global config info", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Config" } } } } }, "description": "Retrieve the current global OpenCode configuration settings and preferences.", "summary": "Get global configuration", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.global.config.get({\n ...\n})" } ] }, "patch": { "tags": ["global"], "operationId": "global.config.update", "parameters": [], "responses": { "200": { "description": "Successfully updated global config", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Config" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } } }, "description": "Update global OpenCode configuration settings and preferences.", "summary": "Update global configuration", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Config" } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.global.config.update({\n ...\n})" } ] } }, "/global/dispose": { "post": { "tags": ["global"], "operationId": "global.dispose", "parameters": [], "responses": { "200": { "description": "Global disposed", "content": { "application/json": { "schema": { "type": "boolean", "description": "Global disposed" } } } } }, "description": "Clean up and dispose all OpenCode instances, releasing all resources.", "summary": "Dispose instance", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.global.dispose({\n ...\n})" } ] } }, "/global/upgrade": { "post": { "tags": ["global"], "operationId": "global.upgrade", "parameters": [], "responses": { "200": { "description": "Upgrade result", "content": { "application/json": { "schema": { "anyOf": [ { "type": "object", "properties": { "success": { "type": "boolean", "enum": [true] }, "version": { "type": "string" } }, "required": ["success", "version"], "additionalProperties": false }, { "type": "object", "properties": { "success": { "type": "boolean", "enum": [false] }, "error": { "type": "string" } }, "required": ["success", "error"], "additionalProperties": false } ], "description": "Upgrade result" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } } }, "description": "Upgrade opencode to the specified version or latest if not specified.", "summary": "Upgrade opencode", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "target": { "type": "string" } }, "additionalProperties": false } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.global.upgrade({\n ...\n})" } ] } }, "/event": { "get": { "tags": ["event"], "operationId": "event.subscribe", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Event stream", "content": { "text/event-stream": { "schema": { "$ref": "#/components/schemas/Event" } } } } }, "description": "Get events", "summary": "Subscribe to events", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.event.subscribe({\n ...\n})" } ] } }, "/config": { "get": { "tags": ["config"], "operationId": "config.get", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Get config info", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Config" } } } } }, "description": "Retrieve the current OpenCode configuration settings and preferences.", "summary": "Get configuration", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.config.get({\n ...\n})" } ] }, "patch": { "tags": ["config"], "operationId": "config.update", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "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" } } } } }, "description": "Update OpenCode configuration settings and preferences.", "summary": "Update configuration", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Config" } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.config.update({\n ...\n})" } ] } }, "/config/providers": { "get": { "tags": ["config"], "operationId": "config.providers", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "List of providers", "content": { "application/json": { "schema": { "type": "object", "properties": { "providers": { "type": "array", "items": { "$ref": "#/components/schemas/Provider" } }, "default": { "type": "object", "additionalProperties": { "type": "string" } } }, "required": ["providers", "default"], "additionalProperties": false, "description": "List of providers" } } } } }, "description": "Get a list of all configured AI providers and their default models.", "summary": "List config providers", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.config.providers({\n ...\n})" } ] } }, "/experimental/console": { "get": { "tags": ["experimental"], "operationId": "experimental.console.get", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Active Console provider metadata", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConsoleState" } } } }, "500": { "description": "InternalServerError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/effect_HttpApiError_InternalServerError" } } } } }, "description": "Get the active Console org name and the set of provider IDs managed by that Console org.", "summary": "Get active Console provider metadata", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.experimental.console.get({\n ...\n})" } ] } }, "/experimental/console/orgs": { "get": { "tags": ["experimental"], "operationId": "experimental.console.listOrgs", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Switchable Console orgs", "content": { "application/json": { "schema": { "type": "object", "properties": { "orgs": { "type": "array", "items": { "type": "object", "properties": { "accountID": { "type": "string" }, "accountEmail": { "type": "string" }, "accountUrl": { "type": "string" }, "orgID": { "type": "string" }, "orgName": { "type": "string" }, "active": { "type": "boolean" } }, "required": ["accountID", "accountEmail", "accountUrl", "orgID", "orgName", "active"], "additionalProperties": false } } }, "required": ["orgs"], "additionalProperties": false, "description": "Switchable Console orgs" } } } }, "500": { "description": "InternalServerError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/effect_HttpApiError_InternalServerError" } } } } }, "description": "Get the available Console orgs across logged-in accounts, including the current active org.", "summary": "List switchable Console orgs", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.experimental.console.listOrgs({\n ...\n})" } ] } }, "/experimental/console/switch": { "post": { "tags": ["experimental"], "operationId": "experimental.console.switchOrg", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Switch success", "content": { "application/json": { "schema": { "type": "boolean", "description": "Switch success" } } } } }, "description": "Persist a new active Console account/org selection for the current local OpenCode state.", "summary": "Switch active Console org", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "accountID": { "type": "string" }, "orgID": { "type": "string" } }, "required": ["accountID", "orgID"], "additionalProperties": false } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.experimental.console.switchOrg({\n ...\n})" } ] } }, "/experimental/tool": { "get": { "tags": ["experimental"], "operationId": "tool.list", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "provider", "in": "query", "schema": { "type": "string" }, "required": true }, { "name": "model", "in": "query", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Tools", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ToolList" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } } }, "description": "Get a list of available tools with their JSON schema parameters for a specific provider and model combination.", "summary": "List tools", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tool.list({\n ...\n})" } ] } }, "/experimental/tool/ids": { "get": { "tags": ["experimental"], "operationId": "tool.ids", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "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" } } } } }, "description": "Get a list of all available tool IDs, including both built-in tools and dynamically registered tools.", "summary": "List tool IDs", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tool.ids({\n ...\n})" } ] } }, "/experimental/worktree": { "get": { "tags": ["experimental"], "operationId": "worktree.list", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "List of worktree directories", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "string" }, "description": "List of worktree directories" } } } }, "400": { "description": "WorktreeError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorktreeError" } } } } }, "description": "List all sandbox worktrees for the current project.", "summary": "List worktrees", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.worktree.list({\n ...\n})" } ] }, "post": { "tags": ["experimental"], "operationId": "worktree.create", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Worktree created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Worktree" } } } }, "400": { "description": "WorktreeError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorktreeError" } } } } }, "description": "Create a new git worktree for the current project and run any configured startup scripts.", "summary": "Create worktree", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorktreeCreateInput" } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.worktree.create({\n ...\n})" } ] }, "delete": { "tags": ["experimental"], "operationId": "worktree.remove", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Worktree removed", "content": { "application/json": { "schema": { "type": "boolean", "description": "Worktree removed" } } } }, "400": { "description": "WorktreeError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorktreeError" } } } } }, "description": "Remove a git worktree and delete its branch.", "summary": "Remove worktree", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorktreeRemoveInput" } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.worktree.remove({\n ...\n})" } ] } }, "/experimental/worktree/reset": { "post": { "tags": ["experimental"], "operationId": "worktree.reset", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Worktree reset", "content": { "application/json": { "schema": { "type": "boolean", "description": "Worktree reset" } } } }, "400": { "description": "WorktreeError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorktreeError" } } } } }, "description": "Reset a worktree branch to the primary default branch.", "summary": "Reset worktree", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorktreeResetInput" } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.worktree.reset({\n ...\n})" } ] } }, "/experimental/session": { "get": { "tags": ["experimental"], "operationId": "experimental.session.list", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "roots", "in": "query", "schema": { "anyOf": [ { "type": "boolean" }, { "type": "string", "enum": ["true", "false"] } ] }, "required": false }, { "name": "start", "in": "query", "schema": { "type": "number" }, "required": false }, { "name": "cursor", "in": "query", "schema": { "type": "number" }, "required": false }, { "name": "search", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "limit", "in": "query", "schema": { "type": "number" }, "required": false }, { "name": "archived", "in": "query", "schema": { "anyOf": [ { "type": "boolean" }, { "type": "string", "enum": ["true", "false"] } ] }, "required": false } ], "responses": { "200": { "description": "List of sessions", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/GlobalSession" }, "description": "List of sessions" } } } } }, "description": "Get a list of all OpenCode sessions across projects, sorted by most recently updated. Archived sessions are excluded by default.", "summary": "List sessions", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.experimental.session.list({\n ...\n})" } ] } }, "/experimental/resource": { "get": { "tags": ["experimental"], "operationId": "experimental.resource.list", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "MCP resources", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/McpResource" }, "description": "MCP resources" } } } } }, "description": "Get all available MCP resources from connected servers. Optionally filter by name.", "summary": "Get MCP resources", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.experimental.resource.list({\n ...\n})" } ] } }, "/find": { "get": { "tags": ["file"], "operationId": "find.text", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "pattern", "in": "query", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Matches", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "path": { "type": "object", "properties": { "text": { "type": "string" } }, "required": ["text"], "additionalProperties": false }, "lines": { "type": "object", "properties": { "text": { "type": "string" } }, "required": ["text"], "additionalProperties": false }, "line_number": { "type": "integer", "minimum": 0 }, "absolute_offset": { "type": "integer", "minimum": 0 }, "submatches": { "type": "array", "items": { "type": "object", "properties": { "match": { "type": "object", "properties": { "text": { "type": "string" } }, "required": ["text"], "additionalProperties": false }, "start": { "type": "integer", "minimum": 0 }, "end": { "type": "integer", "minimum": 0 } }, "required": ["match", "start", "end"], "additionalProperties": false } } }, "required": ["path", "lines", "line_number", "absolute_offset", "submatches"], "additionalProperties": false }, "description": "Matches" } } } } }, "description": "Search for text patterns across files in the project using ripgrep.", "summary": "Find text", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.find.text({\n ...\n})" } ] } }, "/find/file": { "get": { "tags": ["file"], "operationId": "find.files", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "query", "in": "query", "schema": { "type": "string" }, "required": true }, { "name": "dirs", "in": "query", "schema": { "type": "string", "enum": ["true", "false"] }, "required": false }, { "name": "type", "in": "query", "schema": { "type": "string", "enum": ["file", "directory"] }, "required": false }, { "name": "limit", "in": "query", "schema": { "type": "integer", "minimum": 1, "maximum": 200 }, "required": false } ], "responses": { "200": { "description": "File paths", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "string" }, "description": "File paths" } } } } }, "description": "Search for files or directories by name or pattern in the project directory.", "summary": "Find files", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.find.files({\n ...\n})" } ] } }, "/find/symbol": { "get": { "tags": ["file"], "operationId": "find.symbols", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "query", "in": "query", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Symbols", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Symbol" }, "description": "Symbols" } } } } }, "description": "Search for workspace symbols like functions, classes, and variables using LSP.", "summary": "Find symbols", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.find.symbols({\n ...\n})" } ] } }, "/file": { "get": { "tags": ["file"], "operationId": "file.list", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "path", "in": "query", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Files and directories", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/FileNode" }, "description": "Files and directories" } } } } }, "description": "List files and directories in a specified path.", "summary": "List files", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.file.list({\n ...\n})" } ] } }, "/file/content": { "get": { "tags": ["file"], "operationId": "file.read", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "path", "in": "query", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "File content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileContent" } } } } }, "description": "Read the content of a specified file.", "summary": "Read file", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.file.read({\n ...\n})" } ] } }, "/file/status": { "get": { "tags": ["file"], "operationId": "file.status", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "File status", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/File" }, "description": "File status" } } } } }, "description": "Get the git status of all files in the project.", "summary": "Get file status", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.file.status({\n ...\n})" } ] } }, "/instance/dispose": { "post": { "tags": ["instance"], "operationId": "instance.dispose", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Instance disposed", "content": { "application/json": { "schema": { "type": "boolean", "description": "Instance disposed" } } } } }, "description": "Clean up and dispose the current OpenCode instance, releasing all resources.", "summary": "Dispose instance", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.instance.dispose({\n ...\n})" } ] } }, "/path": { "get": { "tags": ["instance"], "operationId": "path.get", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Path", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Path" } } } } }, "description": "Retrieve the current working directory and related path information for the OpenCode instance.", "summary": "Get paths", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.path.get({\n ...\n})" } ] } }, "/vcs": { "get": { "tags": ["instance"], "operationId": "vcs.get", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "VCS info", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VcsInfo" } } } } }, "description": "Retrieve version control system (VCS) information for the current project, such as git branch.", "summary": "Get VCS info", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.vcs.get({\n ...\n})" } ] } }, "/vcs/status": { "get": { "tags": ["instance"], "operationId": "vcs.status", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "VCS status", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/VcsFileStatus" }, "description": "VCS status" } } } } }, "description": "Retrieve changed files in the current working tree without patches.", "summary": "Get VCS status", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.vcs.status({\n ...\n})" } ] } }, "/vcs/diff": { "get": { "tags": ["instance"], "operationId": "vcs.diff", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "mode", "in": "query", "schema": { "type": "string", "enum": ["git", "branch"] }, "required": true } ], "responses": { "200": { "description": "VCS diff", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/VcsFileDiff" }, "description": "VCS diff" } } } } }, "description": "Retrieve the current git diff for the working tree or against the default branch.", "summary": "Get VCS diff", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.vcs.diff({\n ...\n})" } ] } }, "/vcs/diff/raw": { "get": { "tags": ["instance"], "operationId": "vcs.diff.raw", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Raw VCS diff", "content": { "text/x-diff; charset=utf-8": { "schema": { "type": "string" } } } } }, "description": "Retrieve a raw patch for current uncommitted changes.", "summary": "Get raw VCS diff", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.vcs.diff.raw({\n ...\n})" } ] } }, "/vcs/apply": { "post": { "tags": ["instance"], "operationId": "vcs.apply", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "VCS patch applied", "content": { "application/json": { "schema": { "type": "object", "properties": { "applied": { "type": "boolean" } }, "required": ["applied"], "additionalProperties": false, "description": "VCS patch applied" } } } }, "400": { "description": "VcsApplyError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VcsApplyError" } } } } }, "description": "Apply a raw patch to the current working tree.", "summary": "Apply VCS patch", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "patch": { "type": "string" } }, "required": ["patch"], "additionalProperties": false } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.vcs.apply({\n ...\n})" } ] } }, "/command": { "get": { "tags": ["instance"], "operationId": "command.list", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "List of commands", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Command" }, "description": "List of commands" } } } } }, "description": "Get a list of all available commands in the OpenCode system.", "summary": "List commands", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.command.list({\n ...\n})" } ] } }, "/agent": { "get": { "tags": ["instance"], "operationId": "app.agents", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "List of agents", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Agent" }, "description": "List of agents" } } } } }, "description": "Get a list of all available AI agents in the OpenCode system.", "summary": "List agents", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.app.agents({\n ...\n})" } ] } }, "/skill": { "get": { "tags": ["instance"], "operationId": "app.skills", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "List of skills", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "location": { "type": "string" }, "content": { "type": "string" } }, "required": ["name", "location", "content"], "additionalProperties": false }, "description": "List of skills" } } } } }, "description": "Get a list of all available skills in the OpenCode system.", "summary": "List skills", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.app.skills({\n ...\n})" } ] } }, "/lsp": { "get": { "tags": ["instance"], "operationId": "lsp.status", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "LSP server status", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LSPStatus" }, "description": "LSP server status" } } } } }, "description": "Get LSP server status", "summary": "Get LSP status", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.lsp.status({\n ...\n})" } ] } }, "/formatter": { "get": { "tags": ["instance"], "operationId": "formatter.status", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Formatter status", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/FormatterStatus" }, "description": "Formatter status" } } } } }, "description": "Get formatter status", "summary": "Get formatter status", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.formatter.status({\n ...\n})" } ] } }, "/mcp": { "get": { "tags": ["mcp"], "operationId": "mcp.status", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "MCP server status", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/MCPStatus" }, "description": "MCP server status" } } } } }, "description": "Get the status of all Model Context Protocol (MCP) servers.", "summary": "Get MCP status", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.mcp.status({\n ...\n})" } ] }, "post": { "tags": ["mcp"], "operationId": "mcp.add", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "MCP server added successfully", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/MCPStatus" }, "description": "MCP server added successfully" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } } }, "description": "Dynamically add a new Model Context Protocol (MCP) server to the system.", "summary": "Add MCP server", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string" }, "config": { "anyOf": [ { "$ref": "#/components/schemas/McpLocalConfig" }, { "$ref": "#/components/schemas/McpRemoteConfig" } ] } }, "required": ["name", "config"], "additionalProperties": false } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.mcp.add({\n ...\n})" } ] } }, "/mcp/{name}/auth": { "post": { "tags": ["mcp"], "operationId": "mcp.auth.start", "parameters": [ { "name": "name", "in": "path", "schema": { "type": "string" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "OAuth flow started", "content": { "application/json": { "schema": { "type": "object", "properties": { "authorizationUrl": { "type": "string" }, "oauthState": { "type": "string" } }, "required": ["authorizationUrl", "oauthState"], "additionalProperties": false, "description": "OAuth flow started" } } } }, "400": { "description": "McpUnsupportedOAuthError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/McpUnsupportedOAuthError" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Start OAuth authentication flow for a Model Context Protocol (MCP) server.", "summary": "Start MCP OAuth", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.mcp.auth.start({\n ...\n})" } ] }, "delete": { "tags": ["mcp"], "operationId": "mcp.auth.remove", "parameters": [ { "name": "name", "in": "path", "schema": { "type": "string" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "OAuth credentials removed", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [true] } }, "required": ["success"], "additionalProperties": false, "description": "OAuth credentials removed" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Remove OAuth credentials for an MCP server.", "summary": "Remove MCP OAuth", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.mcp.auth.remove({\n ...\n})" } ] } }, "/mcp/{name}/auth/callback": { "post": { "tags": ["mcp"], "operationId": "mcp.auth.callback", "parameters": [ { "name": "name", "in": "path", "schema": { "type": "string" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "OAuth authentication completed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MCPStatus" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Complete OAuth authentication for a Model Context Protocol (MCP) server using the authorization code.", "summary": "Complete MCP OAuth", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "code": { "type": "string" } }, "required": ["code"], "additionalProperties": false } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.mcp.auth.callback({\n ...\n})" } ] } }, "/mcp/{name}/auth/authenticate": { "post": { "tags": ["mcp"], "operationId": "mcp.auth.authenticate", "parameters": [ { "name": "name", "in": "path", "schema": { "type": "string" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "OAuth authentication completed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MCPStatus" } } } }, "400": { "description": "McpUnsupportedOAuthError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/McpUnsupportedOAuthError" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Start OAuth flow and wait for callback (opens browser).", "summary": "Authenticate MCP OAuth", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.mcp.auth.authenticate({\n ...\n})" } ] } }, "/mcp/{name}/connect": { "post": { "tags": ["mcp"], "operationId": "mcp.connect", "parameters": [ { "name": "name", "in": "path", "schema": { "type": "string" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "MCP server connected successfully", "content": { "application/json": { "schema": { "type": "boolean", "description": "MCP server connected successfully" } } } } }, "description": "Connect an MCP server.", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.mcp.connect({\n ...\n})" } ] } }, "/mcp/{name}/disconnect": { "post": { "tags": ["mcp"], "operationId": "mcp.disconnect", "parameters": [ { "name": "name", "in": "path", "schema": { "type": "string" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "MCP server disconnected successfully", "content": { "application/json": { "schema": { "type": "boolean", "description": "MCP server disconnected successfully" } } } } }, "description": "Disconnect an MCP server.", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.mcp.disconnect({\n ...\n})" } ] } }, "/project": { "get": { "tags": ["project"], "operationId": "project.list", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "List of projects", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Project" }, "description": "List of projects" } } } } }, "description": "Get a list of projects that have been opened with OpenCode.", "summary": "List all projects", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.project.list({\n ...\n})" } ] } }, "/project/current": { "get": { "tags": ["project"], "operationId": "project.current", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Current project information", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Project" } } } } }, "description": "Retrieve the currently active project that OpenCode is working with.", "summary": "Get current project", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.project.current({\n ...\n})" } ] } }, "/project/git/init": { "post": { "tags": ["project"], "operationId": "project.initGit", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Project information after git initialization", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Project" } } } } }, "description": "Create a git repository for the current project and return the refreshed project info.", "summary": "Initialize git repository", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.project.initGit({\n ...\n})" } ] } }, "/project/{projectID}": { "patch": { "tags": ["project"], "operationId": "project.update", "parameters": [ { "name": "projectID", "in": "path", "schema": { "type": "string" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Updated project information", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Project" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Update project properties such as name, icon, and commands.", "summary": "Update project", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string" }, "icon": { "type": "object", "properties": { "url": { "type": "string" }, "override": { "type": "string" }, "color": { "type": "string" } }, "additionalProperties": false }, "commands": { "type": "object", "properties": { "start": { "type": "string", "description": "Startup script to run when creating a new workspace (worktree)" } }, "additionalProperties": false } }, "additionalProperties": false } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.project.update({\n ...\n})" } ] } }, "/pty/shells": { "get": { "tags": ["pty"], "operationId": "pty.shells", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "List of shells", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "path": { "type": "string" }, "name": { "type": "string" }, "acceptable": { "type": "boolean" } }, "required": ["path", "name", "acceptable"], "additionalProperties": false }, "description": "List of shells" } } } } }, "description": "Get a list of available shells on the system.", "summary": "List available shells", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.pty.shells({\n ...\n})" } ] } }, "/pty": { "get": { "tags": ["pty"], "operationId": "pty.list", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "List of sessions", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Pty" }, "description": "List of sessions" } } } } }, "description": "Get a list of all active pseudo-terminal (PTY) sessions managed by OpenCode.", "summary": "List PTY sessions", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.pty.list({\n ...\n})" } ] }, "post": { "tags": ["pty"], "operationId": "pty.create", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Created session", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Pty" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } } }, "description": "Create a new pseudo-terminal (PTY) session for running shell commands and processes.", "summary": "Create PTY session", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "command": { "type": "string" }, "args": { "type": "array", "items": { "type": "string" } }, "cwd": { "type": "string" }, "title": { "type": "string" }, "env": { "type": "object", "additionalProperties": { "type": "string" } } }, "additionalProperties": false } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.pty.create({\n ...\n})" } ] } }, "/pty/{ptyID}": { "get": { "tags": ["pty"], "operationId": "pty.get", "parameters": [ { "name": "ptyID", "in": "path", "schema": { "type": "string", "pattern": "^pty" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Session info", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Pty" } } } }, "404": { "description": "NotFoundError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Retrieve detailed information about a specific pseudo-terminal (PTY) session.", "summary": "Get PTY session", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.pty.get({\n ...\n})" } ] }, "put": { "tags": ["pty"], "operationId": "pty.update", "parameters": [ { "name": "ptyID", "in": "path", "schema": { "type": "string", "pattern": "^pty" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Updated session", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Pty" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } } }, "description": "Update properties of an existing pseudo-terminal (PTY) session.", "summary": "Update PTY session", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "title": { "type": "string" }, "size": { "type": "object", "properties": { "rows": { "type": "integer", "exclusiveMinimum": 0 }, "cols": { "type": "integer", "exclusiveMinimum": 0 } }, "required": ["rows", "cols"], "additionalProperties": false } }, "additionalProperties": false } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.pty.update({\n ...\n})" } ] }, "delete": { "tags": ["pty"], "operationId": "pty.remove", "parameters": [ { "name": "ptyID", "in": "path", "schema": { "type": "string", "pattern": "^pty" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Session removed", "content": { "application/json": { "schema": { "type": "boolean", "description": "Session removed" } } } }, "404": { "description": "NotFoundError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Remove and terminate a specific pseudo-terminal (PTY) session.", "summary": "Remove PTY session", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.pty.remove({\n ...\n})" } ] } }, "/pty/{ptyID}/connect-token": { "post": { "tags": ["pty"], "operationId": "pty.connectToken", "parameters": [ { "name": "ptyID", "in": "path", "schema": { "type": "string", "pattern": "^pty" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "WebSocket connect token", "content": { "application/json": { "schema": { "type": "object", "properties": { "ticket": { "type": "string" }, "expires_in": { "type": "integer", "exclusiveMinimum": 0 } }, "required": ["ticket", "expires_in"], "additionalProperties": false, "description": "WebSocket connect token" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/effect_HttpApiError_Forbidden" } } } }, "404": { "description": "NotFoundError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Create a short-lived ticket for opening a PTY WebSocket connection.", "summary": "Create PTY WebSocket token", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.pty.connectToken({\n ...\n})" } ] } }, "/question": { "get": { "tags": ["question"], "operationId": "question.list", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "List of pending questions", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/QuestionRequest" }, "description": "List of pending questions" } } } } }, "description": "Get all pending question requests across all sessions.", "summary": "List pending questions", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.question.list({\n ...\n})" } ] } }, "/question/{requestID}/reply": { "post": { "tags": ["question"], "operationId": "question.reply", "parameters": [ { "name": "requestID", "in": "path", "schema": { "type": "string", "pattern": "^que" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Question answered successfully", "content": { "application/json": { "schema": { "type": "boolean", "description": "Question answered successfully" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Provide answers to a question request from the AI assistant.", "summary": "Reply to question request", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "answers": { "type": "array", "items": { "$ref": "#/components/schemas/QuestionAnswer" }, "description": "User answers in order of questions (each answer is an array of selected labels)" } }, "required": ["answers"], "additionalProperties": false } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.question.reply({\n ...\n})" } ] } }, "/question/{requestID}/reject": { "post": { "tags": ["question"], "operationId": "question.reject", "parameters": [ { "name": "requestID", "in": "path", "schema": { "type": "string", "pattern": "^que" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Question rejected successfully", "content": { "application/json": { "schema": { "type": "boolean", "description": "Question rejected successfully" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Reject a question request from the AI assistant.", "summary": "Reject question request", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.question.reject({\n ...\n})" } ] } }, "/permission": { "get": { "tags": ["permission"], "operationId": "permission.list", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "List of pending permissions", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PermissionRequest" }, "description": "List of pending permissions" } } } } }, "description": "Get all pending permission requests across all sessions.", "summary": "List pending permissions", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.permission.list({\n ...\n})" } ] } }, "/permission/{requestID}/reply": { "post": { "tags": ["permission"], "operationId": "permission.reply", "parameters": [ { "name": "requestID", "in": "path", "schema": { "type": "string", "pattern": "^per" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Permission processed successfully", "content": { "application/json": { "schema": { "type": "boolean", "description": "Permission processed successfully" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Approve or deny a permission request from the AI assistant.", "summary": "Respond to permission request", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "reply": { "type": "string", "enum": ["once", "always", "reject"] }, "message": { "type": "string" } }, "required": ["reply"], "additionalProperties": false } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.permission.reply({\n ...\n})" } ] } }, "/provider": { "get": { "tags": ["provider"], "operationId": "provider.list", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "List of providers", "content": { "application/json": { "schema": { "type": "object", "properties": { "all": { "type": "array", "items": { "$ref": "#/components/schemas/Provider" } }, "default": { "type": "object", "additionalProperties": { "type": "string" } }, "connected": { "type": "array", "items": { "type": "string" } } }, "required": ["all", "default", "connected"], "additionalProperties": false, "description": "List of providers" } } } } }, "description": "Get a list of all available AI providers, including both available and connected ones.", "summary": "List providers", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.provider.list({\n ...\n})" } ] } }, "/provider/auth": { "get": { "tags": ["provider"], "operationId": "provider.auth", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Provider auth methods", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": { "type": "array", "items": { "$ref": "#/components/schemas/ProviderAuthMethod" } }, "description": "Provider auth methods" } } } } }, "description": "Retrieve available authentication methods for all AI providers.", "summary": "Get provider auth methods", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.provider.auth({\n ...\n})" } ] } }, "/provider/{providerID}/oauth/authorize": { "post": { "tags": ["provider"], "operationId": "provider.oauth.authorize", "parameters": [ { "name": "providerID", "in": "path", "schema": { "type": "string" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Authorization URL and method", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProviderAuthAuthorization" } } } }, "400": { "description": "ProviderAuthError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProviderAuthError1" } } } } }, "description": "Start the OAuth authorization flow for a provider.", "summary": "Start OAuth authorization", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "method": { "type": "number", "description": "Auth method index" }, "inputs": { "type": "object", "additionalProperties": { "type": "string" } } }, "required": ["method"], "additionalProperties": false } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.provider.oauth.authorize({\n ...\n})" } ] } }, "/provider/{providerID}/oauth/callback": { "post": { "tags": ["provider"], "operationId": "provider.oauth.callback", "parameters": [ { "name": "providerID", "in": "path", "schema": { "type": "string" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "OAuth callback processed successfully", "content": { "application/json": { "schema": { "type": "boolean", "description": "OAuth callback processed successfully" } } } }, "400": { "description": "ProviderAuthError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProviderAuthError1" } } } } }, "description": "Handle the OAuth callback from a provider after user authorization.", "summary": "Handle OAuth callback", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "method": { "type": "number", "description": "Auth method index" }, "code": { "type": "string" } }, "required": ["method"], "additionalProperties": false } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.provider.oauth.callback({\n ...\n})" } ] } }, "/session": { "get": { "tags": ["session"], "operationId": "session.list", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "scope", "in": "query", "schema": { "type": "string", "enum": ["project"] }, "required": false }, { "name": "path", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "roots", "in": "query", "schema": { "anyOf": [ { "type": "boolean" }, { "type": "string", "enum": ["true", "false"] } ] }, "required": false }, { "name": "start", "in": "query", "schema": { "type": "number" }, "required": false }, { "name": "search", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "limit", "in": "query", "schema": { "type": "number" }, "required": false } ], "responses": { "200": { "description": "List of sessions", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Session" }, "description": "List of sessions" } } } } }, "description": "Get a list of all OpenCode sessions, sorted by most recently updated.", "summary": "List sessions", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.list({\n ...\n})" } ] }, "post": { "tags": ["session"], "operationId": "session.create", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "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" } } } } }, "description": "Create a new OpenCode session for interacting with AI assistants and managing conversations.", "summary": "Create session", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "parentID": { "type": "string", "pattern": "^ses" }, "title": { "type": "string" }, "agent": { "type": "string" }, "model": { "type": "object", "properties": { "id": { "type": "string" }, "providerID": { "type": "string" }, "variant": { "type": "string" } }, "required": ["id", "providerID"], "additionalProperties": false }, "permission": { "$ref": "#/components/schemas/PermissionRuleset" }, "workspaceID": { "type": "string", "pattern": "^wrk" } }, "additionalProperties": false } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.create({\n ...\n})" } ] } }, "/session/status": { "get": { "tags": ["session"], "operationId": "session.status", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Get session status", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/SessionStatus" }, "description": "Get session status" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } } }, "description": "Retrieve the current status of all sessions, including active, idle, and completed states.", "summary": "Get session status", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.status({\n ...\n})" } ] } }, "/session/{sessionID}": { "get": { "tags": ["session"], "operationId": "session.get", "parameters": [ { "name": "sessionID", "in": "path", "schema": { "type": "string", "pattern": "^ses" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "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": "NotFoundError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Retrieve detailed information about a specific OpenCode session.", "summary": "Get session", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.get({\n ...\n})" } ] }, "delete": { "tags": ["session"], "operationId": "session.delete", "parameters": [ { "name": "sessionID", "in": "path", "schema": { "type": "string", "pattern": "^ses" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Successfully deleted session", "content": { "application/json": { "schema": { "type": "boolean", "description": "Successfully deleted session" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } }, "404": { "description": "NotFoundError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Delete a session and permanently remove all associated data, including messages and history.", "summary": "Delete session", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.delete({\n ...\n})" } ] }, "patch": { "tags": ["session"], "operationId": "session.update", "parameters": [ { "name": "sessionID", "in": "path", "schema": { "type": "string", "pattern": "^ses" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "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": "NotFoundError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Update properties of an existing session, such as title or other metadata.", "summary": "Update session", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "title": { "type": "string" }, "permission": { "$ref": "#/components/schemas/PermissionRuleset" }, "time": { "type": "object", "properties": { "archived": { "type": "number" } }, "additionalProperties": false } }, "additionalProperties": false } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.update({\n ...\n})" } ] } }, "/session/{sessionID}/children": { "get": { "tags": ["session"], "operationId": "session.children", "parameters": [ { "name": "sessionID", "in": "path", "schema": { "type": "string", "pattern": "^ses" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "List of children", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Session" }, "description": "List of children" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } }, "404": { "description": "NotFoundError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Retrieve all child sessions that were forked from the specified parent session.", "summary": "Get session children", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.children({\n ...\n})" } ] } }, "/session/{sessionID}/todo": { "get": { "tags": ["session"], "operationId": "session.todo", "parameters": [ { "name": "sessionID", "in": "path", "schema": { "type": "string", "pattern": "^ses" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Todo list", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Todo" }, "description": "Todo list" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } }, "404": { "description": "NotFoundError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Retrieve the todo list associated with a specific session, showing tasks and action items.", "summary": "Get session todos", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.todo({\n ...\n})" } ] } }, "/session/{sessionID}/diff": { "get": { "tags": ["session"], "operationId": "session.diff", "parameters": [ { "name": "sessionID", "in": "path", "schema": { "type": "string", "pattern": "^ses" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "messageID", "in": "query", "schema": { "type": "string", "pattern": "^msg" }, "required": false } ], "responses": { "200": { "description": "Successfully retrieved diff", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SnapshotFileDiff" }, "description": "Successfully retrieved diff" } } } } }, "description": "Get the file changes (diff) that resulted from a specific user message in the session.", "summary": "Get message diff", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.diff({\n ...\n})" } ] } }, "/session/{sessionID}/message": { "get": { "tags": ["session"], "operationId": "session.messages", "parameters": [ { "name": "sessionID", "in": "path", "schema": { "type": "string", "pattern": "^ses" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "limit", "in": "query", "schema": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "required": false }, { "name": "before", "in": "query", "schema": { "type": "string" }, "required": false } ], "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"], "additionalProperties": false }, "description": "List of messages" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } }, "404": { "description": "NotFoundError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Retrieve all messages in a session, including user prompts and AI responses.", "summary": "Get session messages", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.messages({\n ...\n})" } ] }, "post": { "tags": ["session"], "operationId": "session.prompt", "parameters": [ { "name": "sessionID", "in": "path", "schema": { "type": "string", "pattern": "^ses" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Created message", "content": { "application/json": { "schema": { "type": "object", "required": ["info", "parts"], "properties": { "info": { "$ref": "#/components/schemas/AssistantMessage" }, "parts": { "type": "array", "items": { "$ref": "#/components/schemas/Part" } } } } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } }, "404": { "description": "NotFoundError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Create and send a new message to a session, streaming the AI response.", "summary": "Send message", "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"], "additionalProperties": false }, "agent": { "type": "string" }, "noReply": { "type": "boolean" }, "tools": { "type": "object", "additionalProperties": { "type": "boolean" } }, "format": { "$ref": "#/components/schemas/OutputFormat" }, "system": { "type": "string" }, "variant": { "type": "string" }, "parts": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/TextPartInput" }, { "$ref": "#/components/schemas/FilePartInput" }, { "$ref": "#/components/schemas/AgentPartInput" }, { "$ref": "#/components/schemas/SubtaskPartInput" } ] } } }, "required": ["parts"], "additionalProperties": false } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.prompt({\n ...\n})" } ] } }, "/session/{sessionID}/message/{messageID}": { "get": { "tags": ["session"], "operationId": "session.message", "parameters": [ { "name": "sessionID", "in": "path", "schema": { "type": "string", "pattern": "^ses" }, "required": true }, { "name": "messageID", "in": "path", "schema": { "type": "string", "pattern": "^msg" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "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"], "additionalProperties": false, "description": "Message" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } }, "404": { "description": "NotFoundError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Retrieve a specific message from a session by its message ID.", "summary": "Get message", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.message({\n ...\n})" } ] }, "delete": { "tags": ["session"], "operationId": "session.deleteMessage", "parameters": [ { "name": "sessionID", "in": "path", "schema": { "type": "string", "pattern": "^ses" }, "required": true }, { "name": "messageID", "in": "path", "schema": { "type": "string", "pattern": "^msg" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Successfully deleted message", "content": { "application/json": { "schema": { "type": "boolean", "description": "Successfully deleted message" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } }, "404": { "description": "NotFoundError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Permanently delete a specific message and all of its parts from a session without reverting file changes.", "summary": "Delete message", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.deleteMessage({\n ...\n})" } ] } }, "/session/{sessionID}/fork": { "post": { "tags": ["session"], "operationId": "session.fork", "parameters": [ { "name": "sessionID", "in": "path", "schema": { "type": "string", "pattern": "^ses" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "200", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Session" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } }, "404": { "description": "NotFoundError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Create a new session by forking an existing session at a specific message point.", "summary": "Fork session", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "messageID": { "type": "string", "pattern": "^msg" } }, "additionalProperties": false } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.fork({\n ...\n})" } ] } }, "/session/{sessionID}/abort": { "post": { "tags": ["session"], "operationId": "session.abort", "parameters": [ { "name": "sessionID", "in": "path", "schema": { "type": "string", "pattern": "^ses" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Aborted session", "content": { "application/json": { "schema": { "type": "boolean", "description": "Aborted session" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } } }, "description": "Abort an active session and stop any ongoing AI processing or command execution.", "summary": "Abort session", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.abort({\n ...\n})" } ] } }, "/session/{sessionID}/init": { "post": { "tags": ["session"], "operationId": "session.init", "parameters": [ { "name": "sessionID", "in": "path", "schema": { "type": "string", "pattern": "^ses" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "200", "content": { "application/json": { "schema": { "type": "boolean", "description": "200" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } }, "404": { "description": "NotFoundError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Analyze the current application and create an AGENTS.md file with project-specific agent configurations.", "summary": "Initialize session", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "modelID": { "type": "string" }, "providerID": { "type": "string" }, "messageID": { "type": "string", "pattern": "^msg" } }, "required": ["modelID", "providerID", "messageID"], "additionalProperties": false } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.init({\n ...\n})" } ] } }, "/session/{sessionID}/share": { "post": { "tags": ["session"], "operationId": "session.share", "parameters": [ { "name": "sessionID", "in": "path", "schema": { "type": "string", "pattern": "^ses" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Successfully shared session", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Session" } } } }, "404": { "description": "NotFoundError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } }, "500": { "description": "InternalServerError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/effect_HttpApiError_InternalServerError" } } } } }, "description": "Create a shareable link for a session, allowing others to view the conversation.", "summary": "Share session", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.share({\n ...\n})" } ] }, "delete": { "tags": ["session"], "operationId": "session.unshare", "parameters": [ { "name": "sessionID", "in": "path", "schema": { "type": "string", "pattern": "^ses" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Successfully unshared session", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Session" } } } }, "404": { "description": "NotFoundError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } }, "500": { "description": "InternalServerError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/effect_HttpApiError_InternalServerError" } } } } }, "description": "Remove the shareable link for a session, making it private again.", "summary": "Unshare session", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.unshare({\n ...\n})" } ] } }, "/session/{sessionID}/summarize": { "post": { "tags": ["session"], "operationId": "session.summarize", "parameters": [ { "name": "sessionID", "in": "path", "schema": { "type": "string", "pattern": "^ses" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Summarized session", "content": { "application/json": { "schema": { "type": "boolean", "description": "Summarized session" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } }, "404": { "description": "NotFoundError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Generate a concise summary of the session using AI compaction to preserve key information.", "summary": "Summarize session", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "providerID": { "type": "string" }, "modelID": { "type": "string" }, "auto": { "type": "boolean" } }, "required": ["providerID", "modelID"], "additionalProperties": false } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.summarize({\n ...\n})" } ] } }, "/session/{sessionID}/prompt_async": { "post": { "tags": ["session"], "operationId": "session.prompt_async", "parameters": [ { "name": "sessionID", "in": "path", "schema": { "type": "string", "pattern": "^ses" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "204": { "description": "Prompt accepted" }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } }, "404": { "description": "NotFoundError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Create and send a new message to a session asynchronously, starting the session if needed and returning immediately.", "summary": "Send async message", "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"], "additionalProperties": false }, "agent": { "type": "string" }, "noReply": { "type": "boolean" }, "tools": { "type": "object", "additionalProperties": { "type": "boolean" } }, "format": { "$ref": "#/components/schemas/OutputFormat" }, "system": { "type": "string" }, "variant": { "type": "string" }, "parts": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/TextPartInput" }, { "$ref": "#/components/schemas/FilePartInput" }, { "$ref": "#/components/schemas/AgentPartInput" }, { "$ref": "#/components/schemas/SubtaskPartInput" } ] } } }, "required": ["parts"], "additionalProperties": false } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.prompt_async({\n ...\n})" } ] } }, "/session/{sessionID}/command": { "post": { "tags": ["session"], "operationId": "session.command", "parameters": [ { "name": "sessionID", "in": "path", "schema": { "type": "string", "pattern": "^ses" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Created message", "content": { "application/json": { "schema": { "type": "object", "required": ["info", "parts"], "properties": { "info": { "$ref": "#/components/schemas/AssistantMessage" }, "parts": { "type": "array", "items": { "$ref": "#/components/schemas/Part" } } } } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } }, "404": { "description": "NotFoundError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Send a new command to a session for execution by the AI assistant.", "summary": "Send command", "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" }, "variant": { "type": "string" }, "parts": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^prt" }, "type": { "type": "string", "enum": ["file"] }, "mime": { "type": "string" }, "filename": { "type": "string" }, "url": { "type": "string" }, "source": { "$ref": "#/components/schemas/FilePartSource" } }, "required": ["type", "mime", "url"], "additionalProperties": false } } }, "required": ["arguments", "command"], "additionalProperties": false } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.command({\n ...\n})" } ] } }, "/session/{sessionID}/shell": { "post": { "tags": ["session"], "operationId": "session.shell", "parameters": [ { "name": "sessionID", "in": "path", "schema": { "type": "string", "pattern": "^ses" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Created message", "content": { "application/json": { "schema": { "type": "object", "properties": { "info": { "$ref": "#/components/schemas/Message" }, "parts": { "type": "array", "items": { "$ref": "#/components/schemas/Part" } } }, "required": ["info", "parts"], "additionalProperties": false, "description": "Created message" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } }, "404": { "description": "NotFoundError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Execute a shell command within the session context and return the AI's response.", "summary": "Run shell command", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "messageID": { "type": "string", "pattern": "^msg" }, "agent": { "type": "string" }, "model": { "type": "object", "properties": { "providerID": { "type": "string" }, "modelID": { "type": "string" } }, "required": ["providerID", "modelID"], "additionalProperties": false }, "command": { "type": "string" } }, "required": ["agent", "command"], "additionalProperties": false } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.shell({\n ...\n})" } ] } }, "/session/{sessionID}/revert": { "post": { "tags": ["session"], "operationId": "session.revert", "parameters": [ { "name": "sessionID", "in": "path", "schema": { "type": "string", "pattern": "^ses" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "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": "NotFoundError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Revert a specific message in a session, undoing its effects and restoring the previous state.", "summary": "Revert message", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "messageID": { "type": "string", "pattern": "^msg" }, "partID": { "type": "string", "pattern": "^prt" } }, "required": ["messageID"], "additionalProperties": false } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.revert({\n ...\n})" } ] } }, "/session/{sessionID}/unrevert": { "post": { "tags": ["session"], "operationId": "session.unrevert", "parameters": [ { "name": "sessionID", "in": "path", "schema": { "type": "string", "pattern": "^ses" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "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": "NotFoundError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Restore all previously reverted messages in a session.", "summary": "Restore reverted messages", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.unrevert({\n ...\n})" } ] } }, "/session/{sessionID}/permissions/{permissionID}": { "post": { "tags": ["session"], "operationId": "permission.respond", "parameters": [ { "name": "sessionID", "in": "path", "schema": { "type": "string", "pattern": "^ses" }, "required": true }, { "name": "permissionID", "in": "path", "schema": { "type": "string", "pattern": "^per" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Permission processed successfully", "content": { "application/json": { "schema": { "type": "boolean", "description": "Permission processed successfully" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } }, "404": { "description": "NotFoundError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Approve or deny a permission request from the AI assistant.", "summary": "Respond to permission", "deprecated": true, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "response": { "type": "string", "enum": ["once", "always", "reject"] } }, "required": ["response"], "additionalProperties": false } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.permission.respond({\n ...\n})" } ] } }, "/session/{sessionID}/message/{messageID}/part/{partID}": { "delete": { "tags": ["session"], "operationId": "part.delete", "parameters": [ { "name": "sessionID", "in": "path", "schema": { "type": "string", "pattern": "^ses" }, "required": true }, { "name": "messageID", "in": "path", "schema": { "type": "string", "pattern": "^msg" }, "required": true }, { "name": "partID", "in": "path", "schema": { "type": "string", "pattern": "^prt" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Successfully deleted part", "content": { "application/json": { "schema": { "type": "boolean", "description": "Successfully deleted part" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } }, "404": { "description": "NotFoundError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Delete a part from a message.", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.part.delete({\n ...\n})" } ] }, "patch": { "tags": ["session"], "operationId": "part.update", "parameters": [ { "name": "sessionID", "in": "path", "schema": { "type": "string", "pattern": "^ses" }, "required": true }, { "name": "messageID", "in": "path", "schema": { "type": "string", "pattern": "^msg" }, "required": true }, { "name": "partID", "in": "path", "schema": { "type": "string", "pattern": "^prt" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Successfully updated part", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Part" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } }, "404": { "description": "NotFoundError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Update a part in a message.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Part" } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.part.update({\n ...\n})" } ] } }, "/sync/start": { "post": { "tags": ["sync"], "operationId": "sync.start", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Workspace sync started", "content": { "application/json": { "schema": { "type": "boolean", "description": "Workspace sync started" } } } } }, "description": "Start sync loops for workspaces in the current project that have active sessions.", "summary": "Start workspace sync", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.sync.start({\n ...\n})" } ] } }, "/sync/replay": { "post": { "tags": ["sync"], "operationId": "sync.replay", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Replayed sync events", "content": { "application/json": { "schema": { "type": "object", "properties": { "sessionID": { "type": "string" } }, "required": ["sessionID"], "additionalProperties": false, "description": "Replayed sync events" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } } }, "description": "Validate and replay a complete sync event history.", "summary": "Replay sync events", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "directory": { "type": "string" }, "events": { "type": "array", "minItems": 1, "items": { "type": "object", "properties": { "id": { "type": "string" }, "aggregateID": { "type": "string" }, "seq": { "type": "integer", "minimum": 0 }, "type": { "type": "string" }, "data": { "type": "object" } }, "required": ["id", "aggregateID", "seq", "type", "data"], "additionalProperties": false } } }, "required": ["directory", "events"], "additionalProperties": false } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.sync.replay({\n ...\n})" } ] } }, "/sync/steal": { "post": { "tags": ["sync"], "operationId": "sync.steal", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Session stolen into workspace", "content": { "application/json": { "schema": { "type": "object", "properties": { "sessionID": { "type": "string", "pattern": "^ses" } }, "required": ["sessionID"], "additionalProperties": false, "description": "Session stolen into workspace" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } } }, "description": "Update a session to belong to the current workspace through the sync event system.", "summary": "Steal session into workspace", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "sessionID": { "type": "string", "pattern": "^ses" } }, "required": ["sessionID"], "additionalProperties": false } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.sync.steal({\n ...\n})" } ] } }, "/sync/history": { "post": { "tags": ["sync"], "operationId": "sync.history.list", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Sync events", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "aggregate_id": { "type": "string" }, "seq": { "type": "integer", "minimum": 0 }, "type": { "type": "string" }, "data": { "type": "object" } }, "required": ["id", "aggregate_id", "seq", "type", "data"], "additionalProperties": false }, "description": "Sync events" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } } }, "description": "List sync events for all aggregates. Keys are aggregate IDs the client already knows about, values are the last known sequence ID. Events with seq > value are returned for those aggregates. Aggregates not listed in the input get their full history.", "summary": "List sync events", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "additionalProperties": { "type": "integer", "minimum": 0 } } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.sync.history.list({\n ...\n})" } ] } }, "/api/session": { "get": { "tags": ["v2"], "operationId": "v2.session.list", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "limit", "in": "query", "schema": { "type": "number" }, "required": false }, { "name": "order", "in": "query", "schema": { "type": "string", "enum": ["asc", "desc"] }, "required": false }, { "name": "path", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "roots", "in": "query", "schema": { "anyOf": [ { "type": "boolean" }, { "type": "string", "enum": ["true", "false"] } ] }, "required": false }, { "name": "start", "in": "query", "schema": { "type": "number" }, "required": false }, { "name": "search", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "cursor", "in": "query", "schema": { "type": "string", "description": "Opaque pagination cursor returned as cursor.previous or cursor.next in the previous response. Do not combine with order or filters." }, "required": false } ], "responses": { "200": { "description": "V2SessionsResponse", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/V2SessionsResponse" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } } }, "description": "Retrieve sessions in the requested order. Items keep that order across pages; use cursor.next or cursor.previous to move through the ordered list.", "summary": "List v2 sessions", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.v2.session.list({\n ...\n})" } ] } }, "/api/session/{sessionID}/prompt": { "post": { "tags": ["v2"], "operationId": "v2.session.prompt", "parameters": [ { "name": "sessionID", "in": "path", "schema": { "type": "string", "pattern": "^ses" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Session.Message", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SessionMessage" } } } } }, "description": "Create a v2 session message and queue it for the agent loop.", "summary": "Send v2 message", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "prompt": { "$ref": "#/components/schemas/Prompt" }, "delivery": { "$ref": "#/components/schemas/SessionDelivery" } }, "required": ["prompt"], "additionalProperties": false } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.v2.session.prompt({\n ...\n})" } ] } }, "/api/session/{sessionID}/compact": { "post": { "tags": ["v2"], "operationId": "v2.session.compact", "parameters": [ { "name": "sessionID", "in": "path", "schema": { "type": "string", "pattern": "^ses" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "204": { "description": "" } }, "description": "Compact a v2 session conversation.", "summary": "Compact v2 session", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.v2.session.compact({\n ...\n})" } ] } }, "/api/session/{sessionID}/wait": { "post": { "tags": ["v2"], "operationId": "v2.session.wait", "parameters": [ { "name": "sessionID", "in": "path", "schema": { "type": "string", "pattern": "^ses" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "204": { "description": "" } }, "description": "Wait for a v2 session agent loop to become idle.", "summary": "Wait for v2 session", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.v2.session.wait({\n ...\n})" } ] } }, "/api/session/{sessionID}/context": { "get": { "tags": ["v2"], "operationId": "v2.session.context", "parameters": [ { "name": "sessionID", "in": "path", "schema": { "type": "string", "pattern": "^ses" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SessionMessage" } } } } } }, "description": "Retrieve the active context messages for a v2 session (all messages after the last compaction).", "summary": "Get v2 session context", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.v2.session.context({\n ...\n})" } ] } }, "/api/session/{sessionID}/message": { "get": { "tags": ["v2 messages"], "operationId": "v2.session.messages", "parameters": [ { "name": "sessionID", "in": "path", "schema": { "type": "string", "pattern": "^ses" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "limit", "in": "query", "schema": { "type": "number" }, "required": false }, { "name": "order", "in": "query", "schema": { "type": "string", "enum": ["asc", "desc"] }, "required": false }, { "name": "cursor", "in": "query", "schema": { "type": "string", "description": "Opaque pagination cursor returned as cursor.previous or cursor.next in the previous response. Do not combine with order." }, "required": false } ], "responses": { "200": { "description": "V2SessionMessagesResponse", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/V2SessionMessagesResponse" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } } }, "description": "Retrieve projected v2 messages for a session. Items keep the requested order across pages; use cursor.next or cursor.previous to move through the ordered timeline.", "summary": "Get v2 session messages", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.v2.session.messages({\n ...\n})" } ] } }, "/api/model": { "get": { "tags": ["v2 models"], "operationId": "v2.model.list", "parameters": [ { "name": "instance", "in": "query", "schema": { "type": "object", "properties": { "directory": { "type": "string" }, "workspace": { "type": "string" } }, "additionalProperties": false }, "required": false, "style": "deepObject", "explode": true } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ModelV2Info" } } } } } }, "description": "Retrieve available v2 models ordered by release date.", "summary": "List v2 models", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.v2.model.list({\n ...\n})" } ] } }, "/api/provider": { "get": { "tags": ["v2 providers"], "operationId": "v2.provider.list", "parameters": [ { "name": "instance", "in": "query", "schema": { "type": "object", "properties": { "directory": { "type": "string" }, "workspace": { "type": "string" } }, "additionalProperties": false }, "required": false, "style": "deepObject", "explode": true } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ProviderV2Info" } } } } } }, "description": "Retrieve active v2 AI providers so clients can show provider availability and configuration.", "summary": "List v2 providers", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.v2.provider.list({\n ...\n})" } ] } }, "/api/provider/{providerID}": { "get": { "tags": ["v2 providers"], "operationId": "v2.provider.get", "parameters": [ { "name": "providerID", "in": "path", "schema": { "type": "string" }, "required": true }, { "name": "instance", "in": "query", "schema": { "type": "object", "properties": { "directory": { "type": "string" }, "workspace": { "type": "string" } }, "additionalProperties": false }, "required": false, "style": "deepObject", "explode": true } ], "responses": { "200": { "description": "ProviderV2.Info", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProviderV2Info" } } } }, "404": { "description": "NotFoundError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Retrieve a single v2 AI provider so clients can inspect its availability and endpoint settings.", "summary": "Get v2 provider", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.v2.provider.get({\n ...\n})" } ] } }, "/tui/append-prompt": { "post": { "tags": ["tui"], "operationId": "tui.appendPrompt", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Prompt processed successfully", "content": { "application/json": { "schema": { "type": "boolean", "description": "Prompt processed successfully" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } } }, "description": "Append prompt to the TUI.", "summary": "Append TUI prompt", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "text": { "type": "string" } }, "required": ["text"], "additionalProperties": false } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.appendPrompt({\n ...\n})" } ] } }, "/tui/open-help": { "post": { "tags": ["tui"], "operationId": "tui.openHelp", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Help dialog opened successfully", "content": { "application/json": { "schema": { "type": "boolean", "description": "Help dialog opened successfully" } } } } }, "description": "Open the help dialog in the TUI to display user assistance information.", "summary": "Open help dialog", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.openHelp({\n ...\n})" } ] } }, "/tui/open-sessions": { "post": { "tags": ["tui"], "operationId": "tui.openSessions", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Session dialog opened successfully", "content": { "application/json": { "schema": { "type": "boolean", "description": "Session dialog opened successfully" } } } } }, "description": "Open the session dialog.", "summary": "Open sessions dialog", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.openSessions({\n ...\n})" } ] } }, "/tui/open-themes": { "post": { "tags": ["tui"], "operationId": "tui.openThemes", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Theme dialog opened successfully", "content": { "application/json": { "schema": { "type": "boolean", "description": "Theme dialog opened successfully" } } } } }, "description": "Open the theme dialog.", "summary": "Open themes dialog", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.openThemes({\n ...\n})" } ] } }, "/tui/open-models": { "post": { "tags": ["tui"], "operationId": "tui.openModels", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Model dialog opened successfully", "content": { "application/json": { "schema": { "type": "boolean", "description": "Model dialog opened successfully" } } } } }, "description": "Open the model dialog.", "summary": "Open models dialog", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.openModels({\n ...\n})" } ] } }, "/tui/submit-prompt": { "post": { "tags": ["tui"], "operationId": "tui.submitPrompt", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Prompt submitted successfully", "content": { "application/json": { "schema": { "type": "boolean", "description": "Prompt submitted successfully" } } } } }, "description": "Submit the prompt.", "summary": "Submit TUI prompt", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.submitPrompt({\n ...\n})" } ] } }, "/tui/clear-prompt": { "post": { "tags": ["tui"], "operationId": "tui.clearPrompt", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Prompt cleared successfully", "content": { "application/json": { "schema": { "type": "boolean", "description": "Prompt cleared successfully" } } } } }, "description": "Clear the prompt.", "summary": "Clear TUI prompt", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.clearPrompt({\n ...\n})" } ] } }, "/tui/execute-command": { "post": { "tags": ["tui"], "operationId": "tui.executeCommand", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Command executed successfully", "content": { "application/json": { "schema": { "type": "boolean", "description": "Command executed successfully" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } } }, "description": "Execute a TUI command.", "summary": "Execute TUI command", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "command": { "type": "string" } }, "required": ["command"], "additionalProperties": false } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.executeCommand({\n ...\n})" } ] } }, "/tui/show-toast": { "post": { "tags": ["tui"], "operationId": "tui.showToast", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Toast notification shown successfully", "content": { "application/json": { "schema": { "type": "boolean", "description": "Toast notification shown successfully" } } } } }, "description": "Show a toast notification in the TUI.", "summary": "Show TUI toast", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "title": { "type": "string" }, "message": { "type": "string" }, "variant": { "type": "string", "enum": ["info", "success", "warning", "error"] }, "duration": { "type": "integer", "exclusiveMinimum": 0 } }, "required": ["message", "variant"], "additionalProperties": false } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.showToast({\n ...\n})" } ] } }, "/tui/publish": { "post": { "tags": ["tui"], "operationId": "tui.publish", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Event published successfully", "content": { "application/json": { "schema": { "type": "boolean", "description": "Event published successfully" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } } }, "description": "Publish a TUI event.", "summary": "Publish TUI event", "requestBody": { "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/EventTuiPromptAppend" }, { "$ref": "#/components/schemas/EventTuiCommandExecute" }, { "$ref": "#/components/schemas/EventTuiToastShow" }, { "$ref": "#/components/schemas/EventTuiSessionSelect" } ] } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.publish({\n ...\n})" } ] } }, "/tui/select-session": { "post": { "tags": ["tui"], "operationId": "tui.selectSession", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Session selected successfully", "content": { "application/json": { "schema": { "type": "boolean", "description": "Session selected successfully" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } }, "404": { "description": "NotFoundError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Navigate the TUI to display the specified session.", "summary": "Select session", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "sessionID": { "type": "string", "pattern": "^ses", "description": "Session ID to navigate to" } }, "required": ["sessionID"], "additionalProperties": false } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.selectSession({\n ...\n})" } ] } }, "/tui/control/next": { "get": { "tags": ["tui"], "operationId": "tui.control.next", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Next TUI request", "content": { "application/json": { "schema": { "type": "object", "properties": { "path": { "type": "string" }, "body": {} }, "required": ["path", "body"], "additionalProperties": false, "description": "Next TUI request" } } } } }, "description": "Retrieve the next TUI request from the queue for processing.", "summary": "Get next TUI request", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.control.next({\n ...\n})" } ] } }, "/tui/control/response": { "post": { "tags": ["tui"], "operationId": "tui.control.response", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Response submitted successfully", "content": { "application/json": { "schema": { "type": "boolean", "description": "Response submitted successfully" } } } } }, "description": "Submit a response to the TUI request queue to complete a pending request.", "summary": "Submit TUI response", "requestBody": { "content": { "application/json": { "schema": {} } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.control.response({\n ...\n})" } ] } }, "/experimental/workspace/adapter": { "get": { "tags": ["workspace"], "operationId": "experimental.workspace.adapter.list", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Workspace adapters", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" } }, "required": ["type", "name", "description"], "additionalProperties": false }, "description": "Workspace adapters" } } } } }, "description": "List all available workspace adapters for the current project.", "summary": "List workspace adapters", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.experimental.workspace.adapter.list({\n ...\n})" } ] } }, "/experimental/workspace": { "get": { "tags": ["workspace"], "operationId": "experimental.workspace.list", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Workspaces", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Workspace" }, "description": "Workspaces" } } } } }, "description": "List all workspaces.", "summary": "List workspaces", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.experimental.workspace.list({\n ...\n})" } ] }, "post": { "tags": ["workspace"], "operationId": "experimental.workspace.create", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Workspace created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Workspace" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } } }, "description": "Create a workspace for the current project.", "summary": "Create workspace", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^wrk" }, "type": { "type": "string" }, "branch": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "extra": { "anyOf": [ {}, { "type": "null" } ] } }, "required": ["type"], "additionalProperties": false } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.experimental.workspace.create({\n ...\n})" } ] } }, "/experimental/workspace/sync-list": { "post": { "tags": ["workspace"], "operationId": "experimental.workspace.syncList", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "204": { "description": "Workspace list synced" } }, "description": "Register missing workspaces returned by workspace adapters.", "summary": "Sync workspace list", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.experimental.workspace.syncList({\n ...\n})" } ] } }, "/experimental/workspace/status": { "get": { "tags": ["workspace"], "operationId": "experimental.workspace.status", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Workspace status", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "workspaceID": { "type": "string", "pattern": "^wrk" }, "status": { "type": "string", "enum": ["connected", "connecting", "disconnected", "error"] } }, "required": ["workspaceID", "status"], "additionalProperties": false }, "description": "Workspace status" } } } } }, "description": "Get connection status for workspaces in the current project.", "summary": "Workspace status", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.experimental.workspace.status({\n ...\n})" } ] } }, "/experimental/workspace/{id}": { "delete": { "tags": ["workspace"], "operationId": "experimental.workspace.remove", "parameters": [ { "name": "id", "in": "path", "schema": { "type": "string", "pattern": "^wrk" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Workspace removed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Workspace" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequestError" } } } } }, "description": "Remove an existing workspace.", "summary": "Remove workspace", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.experimental.workspace.remove({\n ...\n})" } ] } }, "/experimental/workspace/warp": { "post": { "tags": ["workspace"], "operationId": "experimental.workspace.warp", "parameters": [ { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "204": { "description": "Session warped" }, "400": { "description": "WorkspaceWarpError | VcsApplyError", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/WorkspaceWarpError" }, { "$ref": "#/components/schemas/VcsApplyError" } ] } } } } }, "description": "Move a session's sync history into the target workspace, or detach it to the local project.", "summary": "Warp session into workspace", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "anyOf": [ { "type": "string", "pattern": "^wrk" }, { "type": "null" } ] }, "sessionID": { "type": "string", "pattern": "^ses" }, "copyChanges": { "type": "boolean" } }, "required": ["id", "sessionID"], "additionalProperties": false } } } }, "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.experimental.workspace.warp({\n ...\n})" } ] } }, "/pty/{ptyID}/connect": { "get": { "tags": ["pty"], "operationId": "pty.connect", "parameters": [ { "name": "ptyID", "in": "path", "schema": { "type": "string", "pattern": "^pty" }, "required": true }, { "name": "directory", "in": "query", "schema": { "type": "string" }, "required": false }, { "name": "workspace", "in": "query", "schema": { "type": "string" }, "required": false } ], "responses": { "200": { "description": "Connected session", "content": { "application/json": { "schema": { "type": "boolean", "description": "Connected session" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/effect_HttpApiError_Forbidden" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundError" } } } } }, "description": "Establish a WebSocket connection to interact with a pseudo-terminal (PTY) session in real-time.", "summary": "Connect to PTY session", "x-codeSamples": [ { "lang": "js", "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.pty.connect({\n ...\n})" } ] } } }, "components": { "schemas": { "Event": { "anyOf": [ { "$ref": "#/components/schemas/EventServerInstanceDisposed" }, { "$ref": "#/components/schemas/EventFileEdited" }, { "$ref": "#/components/schemas/EventFileWatcherUpdated" }, { "$ref": "#/components/schemas/EventLspClientDiagnostics" }, { "$ref": "#/components/schemas/EventLspUpdated" }, { "$ref": "#/components/schemas/EventMessagePartDelta" }, { "$ref": "#/components/schemas/EventPermissionAsked" }, { "$ref": "#/components/schemas/EventPermissionReplied" }, { "$ref": "#/components/schemas/EventSessionDiff" }, { "$ref": "#/components/schemas/EventSessionError" }, { "$ref": "#/components/schemas/EventQuestionAsked" }, { "$ref": "#/components/schemas/EventQuestionReplied" }, { "$ref": "#/components/schemas/EventQuestionRejected" }, { "$ref": "#/components/schemas/EventTodoUpdated" }, { "$ref": "#/components/schemas/EventSessionStatus" }, { "$ref": "#/components/schemas/EventSessionIdle" }, { "$ref": "#/components/schemas/EventSessionCompacted" }, { "$ref": "#/components/schemas/Event.tui.prompt.append" }, { "$ref": "#/components/schemas/Event.tui.command.execute" }, { "$ref": "#/components/schemas/EventTuiToastShow1" }, { "$ref": "#/components/schemas/Event.tui.session.select" }, { "$ref": "#/components/schemas/EventMcpToolsChanged" }, { "$ref": "#/components/schemas/EventMcpBrowserOpenFailed" }, { "$ref": "#/components/schemas/EventCommandExecuted" }, { "$ref": "#/components/schemas/EventProjectUpdated" }, { "$ref": "#/components/schemas/EventVcsBranchUpdated" }, { "$ref": "#/components/schemas/EventWorkspaceReady" }, { "$ref": "#/components/schemas/EventWorkspaceFailed" }, { "$ref": "#/components/schemas/EventWorkspaceStatus" }, { "$ref": "#/components/schemas/EventWorktreeReady" }, { "$ref": "#/components/schemas/EventWorktreeFailed" }, { "$ref": "#/components/schemas/EventPtyCreated" }, { "$ref": "#/components/schemas/EventPtyUpdated" }, { "$ref": "#/components/schemas/EventPtyExited" }, { "$ref": "#/components/schemas/EventPtyDeleted" }, { "$ref": "#/components/schemas/EventInstallationUpdated" }, { "$ref": "#/components/schemas/EventInstallationUpdate-available" }, { "$ref": "#/components/schemas/EventMessageUpdated" }, { "$ref": "#/components/schemas/EventMessageRemoved" }, { "$ref": "#/components/schemas/EventMessagePartUpdated" }, { "$ref": "#/components/schemas/EventMessagePartRemoved" }, { "$ref": "#/components/schemas/EventSessionCreated" }, { "$ref": "#/components/schemas/EventSessionUpdated" }, { "$ref": "#/components/schemas/EventSessionDeleted" }, { "$ref": "#/components/schemas/EventSessionNextAgentSwitched" }, { "$ref": "#/components/schemas/EventSessionNextModelSwitched" }, { "$ref": "#/components/schemas/EventSessionNextPrompted" }, { "$ref": "#/components/schemas/EventSessionNextSynthetic" }, { "$ref": "#/components/schemas/EventSessionNextShellStarted" }, { "$ref": "#/components/schemas/EventSessionNextShellEnded" }, { "$ref": "#/components/schemas/EventSessionNextStepStarted" }, { "$ref": "#/components/schemas/EventSessionNextStepEnded" }, { "$ref": "#/components/schemas/EventSessionNextStepFailed" }, { "$ref": "#/components/schemas/EventSessionNextTextStarted" }, { "$ref": "#/components/schemas/EventSessionNextTextDelta" }, { "$ref": "#/components/schemas/EventSessionNextTextEnded" }, { "$ref": "#/components/schemas/EventSessionNextReasoningStarted" }, { "$ref": "#/components/schemas/EventSessionNextReasoningDelta" }, { "$ref": "#/components/schemas/EventSessionNextReasoningEnded" }, { "$ref": "#/components/schemas/EventSessionNextToolInputStarted" }, { "$ref": "#/components/schemas/EventSessionNextToolInputDelta" }, { "$ref": "#/components/schemas/EventSessionNextToolInputEnded" }, { "$ref": "#/components/schemas/EventSessionNextToolCalled" }, { "$ref": "#/components/schemas/EventSessionNextToolProgress" }, { "$ref": "#/components/schemas/EventSessionNextToolSuccess" }, { "$ref": "#/components/schemas/EventSessionNextToolFailed" }, { "$ref": "#/components/schemas/EventSessionNextRetried" }, { "$ref": "#/components/schemas/EventSessionNextCompactionStarted" }, { "$ref": "#/components/schemas/EventSessionNextCompactionDelta" }, { "$ref": "#/components/schemas/EventSessionNextCompactionEnded" }, { "$ref": "#/components/schemas/EventServerConnected" }, { "$ref": "#/components/schemas/EventGlobalDisposed" } ] }, "OAuth": { "type": "object", "properties": { "type": { "type": "string", "enum": ["oauth"] }, "refresh": { "type": "string" }, "access": { "type": "string" }, "expires": { "type": "integer", "minimum": 0 }, "accountId": { "type": "string" }, "enterpriseUrl": { "type": "string" } }, "required": ["type", "refresh", "access", "expires"], "additionalProperties": false }, "ApiAuth": { "type": "object", "properties": { "type": { "type": "string", "enum": ["api"] }, "key": { "type": "string" }, "metadata": { "type": "object", "additionalProperties": { "type": "string" } } }, "required": ["type", "key"], "additionalProperties": false }, "WellKnownAuth": { "type": "object", "properties": { "type": { "type": "string", "enum": ["wellknown"] }, "key": { "type": "string" }, "token": { "type": "string" } }, "required": ["type", "key", "token"], "additionalProperties": false }, "Auth": { "anyOf": [ { "$ref": "#/components/schemas/OAuth" }, { "$ref": "#/components/schemas/ApiAuth" }, { "$ref": "#/components/schemas/WellKnownAuth" } ] }, "PermissionRequest": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^per" }, "sessionID": { "type": "string", "pattern": "^ses" }, "permission": { "type": "string" }, "patterns": { "type": "array", "items": { "type": "string" } }, "metadata": { "type": "object" }, "always": { "type": "array", "items": { "type": "string" } }, "tool": { "type": "object", "properties": { "messageID": { "type": "string", "pattern": "^msg" }, "callID": { "type": "string" } }, "required": ["messageID", "callID"], "additionalProperties": false } }, "required": ["id", "sessionID", "permission", "patterns", "metadata", "always"], "additionalProperties": false }, "SnapshotFileDiff": { "type": "object", "properties": { "file": { "type": "string" }, "patch": { "type": "string" }, "additions": { "type": "number" }, "deletions": { "type": "number" }, "status": { "type": "string", "enum": ["added", "deleted", "modified"] } }, "required": ["additions", "deletions"], "additionalProperties": false }, "ProviderAuthError": { "type": "object", "properties": { "name": { "type": "string", "enum": ["ProviderAuthError"] }, "data": { "type": "object", "properties": { "providerID": { "type": "string" }, "message": { "type": "string" } }, "required": ["providerID", "message"], "additionalProperties": false } }, "required": ["name", "data"], "additionalProperties": false }, "UnknownError": { "type": "object", "properties": { "name": { "type": "string", "enum": ["UnknownError"] }, "data": { "type": "object", "properties": { "message": { "type": "string" } }, "required": ["message"], "additionalProperties": false } }, "required": ["name", "data"], "additionalProperties": false }, "MessageOutputLengthError": { "type": "object", "properties": { "name": { "type": "string", "enum": ["MessageOutputLengthError"] }, "data": { "type": "object", "properties": {} } }, "required": ["name", "data"], "additionalProperties": false }, "MessageAbortedError": { "type": "object", "properties": { "name": { "type": "string", "enum": ["MessageAbortedError"] }, "data": { "type": "object", "properties": { "message": { "type": "string" } }, "required": ["message"], "additionalProperties": false } }, "required": ["name", "data"], "additionalProperties": false }, "StructuredOutputError": { "type": "object", "properties": { "name": { "type": "string", "enum": ["StructuredOutputError"] }, "data": { "type": "object", "properties": { "message": { "type": "string" }, "retries": { "type": "integer", "minimum": 0 } }, "required": ["message", "retries"], "additionalProperties": false } }, "required": ["name", "data"], "additionalProperties": false }, "ContextOverflowError": { "type": "object", "properties": { "name": { "type": "string", "enum": ["ContextOverflowError"] }, "data": { "type": "object", "properties": { "message": { "type": "string" }, "responseBody": { "type": "string" } }, "required": ["message"], "additionalProperties": false } }, "required": ["name", "data"], "additionalProperties": false }, "APIError": { "type": "object", "properties": { "name": { "type": "string", "enum": ["APIError"] }, "data": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "integer", "minimum": 0 }, "isRetryable": { "type": "boolean" }, "responseHeaders": { "type": "object", "additionalProperties": { "type": "string" } }, "responseBody": { "type": "string" }, "metadata": { "type": "object", "additionalProperties": { "type": "string" } } }, "required": ["message", "isRetryable"], "additionalProperties": false } }, "required": ["name", "data"], "additionalProperties": false }, "QuestionOption": { "type": "object", "properties": { "label": { "type": "string", "description": "Display text (1-5 words, concise)" }, "description": { "type": "string", "description": "Explanation of choice" } }, "required": ["label", "description"], "additionalProperties": false }, "QuestionInfo": { "type": "object", "properties": { "question": { "type": "string", "description": "Complete question" }, "header": { "type": "string", "description": "Very short label (max 30 chars)" }, "options": { "type": "array", "items": { "$ref": "#/components/schemas/QuestionOption" }, "description": "Available choices" }, "multiple": { "type": "boolean" }, "custom": { "type": "boolean" } }, "required": ["question", "header", "options"], "additionalProperties": false }, "QuestionTool": { "type": "object", "properties": { "messageID": { "type": "string", "pattern": "^msg" }, "callID": { "type": "string" } }, "required": ["messageID", "callID"], "additionalProperties": false }, "QuestionRequest": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^que" }, "sessionID": { "type": "string", "pattern": "^ses" }, "questions": { "type": "array", "items": { "$ref": "#/components/schemas/QuestionInfo" }, "description": "Questions to ask" }, "tool": { "$ref": "#/components/schemas/QuestionTool" } }, "required": ["id", "sessionID", "questions"], "additionalProperties": false }, "QuestionAnswer": { "type": "array", "items": { "type": "string" } }, "QuestionReplied": { "type": "object", "properties": { "sessionID": { "type": "string", "pattern": "^ses" }, "requestID": { "type": "string", "pattern": "^que" }, "answers": { "type": "array", "items": { "$ref": "#/components/schemas/QuestionAnswer" } } }, "required": ["sessionID", "requestID", "answers"], "additionalProperties": false }, "QuestionRejected": { "type": "object", "properties": { "sessionID": { "type": "string", "pattern": "^ses" }, "requestID": { "type": "string", "pattern": "^que" } }, "required": ["sessionID", "requestID"], "additionalProperties": false }, "Todo": { "type": "object", "properties": { "content": { "type": "string", "description": "Brief description of the task" }, "status": { "type": "string", "description": "Current status of the task: pending, in_progress, completed, cancelled" }, "priority": { "type": "string", "description": "Priority level of the task: high, medium, low" } }, "required": ["content", "status", "priority"], "additionalProperties": false }, "SessionStatus": { "anyOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": ["idle"] } }, "required": ["type"], "additionalProperties": false }, { "type": "object", "properties": { "type": { "type": "string", "enum": ["retry"] }, "attempt": { "type": "integer", "minimum": 0 }, "message": { "type": "string" }, "action": { "type": "object", "properties": { "reason": { "type": "string" }, "provider": { "type": "string" }, "title": { "type": "string" }, "message": { "type": "string" }, "label": { "type": "string" }, "link": { "type": "string" } }, "required": ["reason", "provider", "title", "message", "label"], "additionalProperties": false }, "next": { "type": "integer", "minimum": 0 } }, "required": ["type", "attempt", "message", "next"], "additionalProperties": false }, { "type": "object", "properties": { "type": { "type": "string", "enum": ["busy"] } }, "required": ["type"], "additionalProperties": false } ] }, "Event.tui.prompt.append": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["tui.prompt.append"] }, "properties": { "type": "object", "properties": { "text": { "type": "string" } }, "required": ["text"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "Event.tui.command.execute": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["tui.command.execute"] }, "properties": { "type": "object", "properties": { "command": { "anyOf": [ { "type": "string", "enum": [ "session.list", "session.new", "session.share", "session.interrupt", "session.compact", "session.page.up", "session.page.down", "session.line.up", "session.line.down", "session.half.page.up", "session.half.page.down", "session.first", "session.last", "prompt.clear", "prompt.submit", "agent.cycle" ] }, { "type": "string" } ] } }, "required": ["command"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "Event.tui.toast.show": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["tui.toast.show"] }, "properties": { "type": "object", "properties": { "title": { "type": "string" }, "message": { "type": "string" }, "variant": { "type": "string", "enum": ["info", "success", "warning", "error"] }, "duration": { "type": "integer", "exclusiveMinimum": 0 } }, "required": ["message", "variant"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "Event.tui.session.select": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["tui.session.select"] }, "properties": { "type": "object", "properties": { "sessionID": { "type": "string", "pattern": "^ses", "description": "Session ID to navigate to" } }, "required": ["sessionID"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "Project": { "type": "object", "properties": { "id": { "type": "string" }, "worktree": { "type": "string" }, "vcs": { "type": "string", "enum": ["git"] }, "name": { "type": "string" }, "icon": { "type": "object", "properties": { "url": { "type": "string" }, "override": { "type": "string" }, "color": { "type": "string" } }, "additionalProperties": false }, "commands": { "type": "object", "properties": { "start": { "type": "string", "description": "Startup script to run when creating a new workspace (worktree)" } }, "additionalProperties": false }, "time": { "type": "object", "properties": { "created": { "type": "integer", "minimum": 0 }, "updated": { "type": "integer", "minimum": 0 }, "initialized": { "type": "integer", "minimum": 0 } }, "required": ["created", "updated"], "additionalProperties": false }, "sandboxes": { "type": "array", "items": { "type": "string" } } }, "required": ["id", "worktree", "time", "sandboxes"], "additionalProperties": false }, "Pty": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^pty" }, "title": { "type": "string" }, "command": { "type": "string" }, "args": { "type": "array", "items": { "type": "string" } }, "cwd": { "type": "string" }, "status": { "type": "string", "enum": ["running", "exited"] }, "pid": { "type": "integer", "exclusiveMinimum": 0 } }, "required": ["id", "title", "command", "args", "cwd", "status", "pid"], "additionalProperties": false }, "OutputFormatText": { "type": "object", "properties": { "type": { "type": "string", "enum": ["text"] } }, "required": ["type"], "additionalProperties": false }, "JSONSchema": { "type": "object" }, "OutputFormatJsonSchema": { "type": "object", "properties": { "type": { "type": "string", "enum": ["json_schema"] }, "schema": { "$ref": "#/components/schemas/JSONSchema" }, "retryCount": { "type": "integer", "minimum": 0 } }, "required": ["type", "schema"], "additionalProperties": false }, "OutputFormat": { "anyOf": [ { "$ref": "#/components/schemas/OutputFormatText" }, { "$ref": "#/components/schemas/OutputFormatJsonSchema" } ] }, "UserMessage": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^msg" }, "sessionID": { "type": "string", "pattern": "^ses" }, "role": { "type": "string", "enum": ["user"] }, "time": { "type": "object", "properties": { "created": { "type": "integer", "minimum": 0 } }, "required": ["created"], "additionalProperties": false }, "format": { "$ref": "#/components/schemas/OutputFormat" }, "summary": { "type": "object", "properties": { "title": { "type": "string" }, "body": { "type": "string" }, "diffs": { "type": "array", "items": { "$ref": "#/components/schemas/SnapshotFileDiff" } } }, "required": ["diffs"], "additionalProperties": false }, "agent": { "type": "string" }, "model": { "type": "object", "properties": { "providerID": { "type": "string" }, "modelID": { "type": "string" }, "variant": { "type": "string" } }, "required": ["providerID", "modelID"], "additionalProperties": false }, "system": { "type": "string" }, "tools": { "type": "object", "additionalProperties": { "type": "boolean" } } }, "required": ["id", "sessionID", "role", "time", "agent", "model"], "additionalProperties": false }, "AssistantMessage": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^msg" }, "sessionID": { "type": "string", "pattern": "^ses" }, "role": { "type": "string", "enum": ["assistant"] }, "time": { "type": "object", "properties": { "created": { "type": "integer", "minimum": 0 }, "completed": { "type": "integer", "minimum": 0 } }, "required": ["created"], "additionalProperties": false }, "error": { "anyOf": [ { "$ref": "#/components/schemas/ProviderAuthError" }, { "$ref": "#/components/schemas/UnknownError" }, { "$ref": "#/components/schemas/MessageOutputLengthError" }, { "$ref": "#/components/schemas/MessageAbortedError" }, { "$ref": "#/components/schemas/StructuredOutputError" }, { "$ref": "#/components/schemas/ContextOverflowError" }, { "$ref": "#/components/schemas/APIError" } ] }, "parentID": { "type": "string", "pattern": "^msg" }, "modelID": { "type": "string" }, "providerID": { "type": "string" }, "mode": { "type": "string" }, "agent": { "type": "string" }, "path": { "type": "object", "properties": { "cwd": { "type": "string" }, "root": { "type": "string" } }, "required": ["cwd", "root"], "additionalProperties": false }, "summary": { "type": "boolean" }, "cost": { "type": "number" }, "tokens": { "type": "object", "properties": { "total": { "type": "number" }, "input": { "type": "number" }, "output": { "type": "number" }, "reasoning": { "type": "number" }, "cache": { "type": "object", "properties": { "read": { "type": "number" }, "write": { "type": "number" } }, "required": ["read", "write"], "additionalProperties": false } }, "required": ["input", "output", "reasoning", "cache"], "additionalProperties": false }, "structured": {}, "variant": { "type": "string" }, "finish": { "type": "string" } }, "required": [ "id", "sessionID", "role", "time", "parentID", "modelID", "providerID", "mode", "agent", "path", "cost", "tokens" ], "additionalProperties": false }, "Message": { "anyOf": [ { "$ref": "#/components/schemas/UserMessage" }, { "$ref": "#/components/schemas/AssistantMessage" } ] }, "TextPart": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^prt" }, "sessionID": { "type": "string", "pattern": "^ses" }, "messageID": { "type": "string", "pattern": "^msg" }, "type": { "type": "string", "enum": ["text"] }, "text": { "type": "string" }, "synthetic": { "type": "boolean" }, "ignored": { "type": "boolean" }, "time": { "type": "object", "properties": { "start": { "type": "integer", "minimum": 0 }, "end": { "type": "integer", "minimum": 0 } }, "required": ["start"], "additionalProperties": false }, "metadata": { "type": "object" } }, "required": ["id", "sessionID", "messageID", "type", "text"], "additionalProperties": false }, "SubtaskPart": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^prt" }, "sessionID": { "type": "string", "pattern": "^ses" }, "messageID": { "type": "string", "pattern": "^msg" }, "type": { "type": "string", "enum": ["subtask"] }, "prompt": { "type": "string" }, "description": { "type": "string" }, "agent": { "type": "string" }, "model": { "type": "object", "properties": { "providerID": { "type": "string" }, "modelID": { "type": "string" } }, "required": ["providerID", "modelID"], "additionalProperties": false }, "command": { "type": "string" } }, "required": ["id", "sessionID", "messageID", "type", "prompt", "description", "agent"], "additionalProperties": false }, "ReasoningPart": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^prt" }, "sessionID": { "type": "string", "pattern": "^ses" }, "messageID": { "type": "string", "pattern": "^msg" }, "type": { "type": "string", "enum": ["reasoning"] }, "text": { "type": "string" }, "metadata": { "type": "object" }, "time": { "type": "object", "properties": { "start": { "type": "integer", "minimum": 0 }, "end": { "type": "integer", "minimum": 0 } }, "required": ["start"], "additionalProperties": false } }, "required": ["id", "sessionID", "messageID", "type", "text", "time"], "additionalProperties": false }, "FilePartSourceText": { "type": "object", "properties": { "value": { "type": "string" }, "start": { "type": "number" }, "end": { "type": "number" } }, "required": ["value", "start", "end"], "additionalProperties": false }, "FileSource": { "type": "object", "properties": { "text": { "$ref": "#/components/schemas/FilePartSourceText" }, "type": { "type": "string", "enum": ["file"] }, "path": { "type": "string" } }, "required": ["text", "type", "path"], "additionalProperties": false }, "Range": { "type": "object", "properties": { "start": { "type": "object", "properties": { "line": { "type": "integer", "minimum": 0 }, "character": { "type": "integer", "minimum": 0 } }, "required": ["line", "character"], "additionalProperties": false }, "end": { "type": "object", "properties": { "line": { "type": "integer", "minimum": 0 }, "character": { "type": "integer", "minimum": 0 } }, "required": ["line", "character"], "additionalProperties": false } }, "required": ["start", "end"], "additionalProperties": false }, "SymbolSource": { "type": "object", "properties": { "text": { "$ref": "#/components/schemas/FilePartSourceText" }, "type": { "type": "string", "enum": ["symbol"] }, "path": { "type": "string" }, "range": { "$ref": "#/components/schemas/Range" }, "name": { "type": "string" }, "kind": { "type": "integer", "minimum": 0 } }, "required": ["text", "type", "path", "range", "name", "kind"], "additionalProperties": false }, "ResourceSource": { "type": "object", "properties": { "text": { "$ref": "#/components/schemas/FilePartSourceText" }, "type": { "type": "string", "enum": ["resource"] }, "clientName": { "type": "string" }, "uri": { "type": "string" } }, "required": ["text", "type", "clientName", "uri"], "additionalProperties": false }, "FilePartSource": { "anyOf": [ { "$ref": "#/components/schemas/FileSource" }, { "$ref": "#/components/schemas/SymbolSource" }, { "$ref": "#/components/schemas/ResourceSource" } ] }, "FilePart": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^prt" }, "sessionID": { "type": "string", "pattern": "^ses" }, "messageID": { "type": "string", "pattern": "^msg" }, "type": { "type": "string", "enum": ["file"] }, "mime": { "type": "string" }, "filename": { "type": "string" }, "url": { "type": "string" }, "source": { "$ref": "#/components/schemas/FilePartSource" } }, "required": ["id", "sessionID", "messageID", "type", "mime", "url"], "additionalProperties": false }, "ToolStatePending": { "type": "object", "properties": { "status": { "type": "string", "enum": ["pending"] }, "input": { "type": "object" }, "raw": { "type": "string" } }, "required": ["status", "input", "raw"], "additionalProperties": false }, "ToolStateRunning": { "type": "object", "properties": { "status": { "type": "string", "enum": ["running"] }, "input": { "type": "object" }, "title": { "type": "string" }, "metadata": { "type": "object" }, "time": { "type": "object", "properties": { "start": { "type": "integer", "minimum": 0 } }, "required": ["start"], "additionalProperties": false } }, "required": ["status", "input", "time"], "additionalProperties": false }, "ToolStateCompleted": { "type": "object", "properties": { "status": { "type": "string", "enum": ["completed"] }, "input": { "type": "object" }, "output": { "type": "string" }, "title": { "type": "string" }, "metadata": { "type": "object" }, "time": { "type": "object", "properties": { "start": { "type": "integer", "minimum": 0 }, "end": { "type": "integer", "minimum": 0 }, "compacted": { "type": "integer", "minimum": 0 } }, "required": ["start", "end"], "additionalProperties": false }, "attachments": { "type": "array", "items": { "$ref": "#/components/schemas/FilePart" } } }, "required": ["status", "input", "output", "title", "metadata", "time"], "additionalProperties": false }, "ToolStateError": { "type": "object", "properties": { "status": { "type": "string", "enum": ["error"] }, "input": { "type": "object" }, "error": { "type": "string" }, "metadata": { "type": "object" }, "time": { "type": "object", "properties": { "start": { "type": "integer", "minimum": 0 }, "end": { "type": "integer", "minimum": 0 } }, "required": ["start", "end"], "additionalProperties": false } }, "required": ["status", "input", "error", "time"], "additionalProperties": false }, "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", "pattern": "^prt" }, "sessionID": { "type": "string", "pattern": "^ses" }, "messageID": { "type": "string", "pattern": "^msg" }, "type": { "type": "string", "enum": ["tool"] }, "callID": { "type": "string" }, "tool": { "type": "string" }, "state": { "$ref": "#/components/schemas/ToolState" }, "metadata": { "type": "object" } }, "required": ["id", "sessionID", "messageID", "type", "callID", "tool", "state"], "additionalProperties": false }, "StepStartPart": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^prt" }, "sessionID": { "type": "string", "pattern": "^ses" }, "messageID": { "type": "string", "pattern": "^msg" }, "type": { "type": "string", "enum": ["step-start"] }, "snapshot": { "type": "string" } }, "required": ["id", "sessionID", "messageID", "type"], "additionalProperties": false }, "StepFinishPart": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^prt" }, "sessionID": { "type": "string", "pattern": "^ses" }, "messageID": { "type": "string", "pattern": "^msg" }, "type": { "type": "string", "enum": ["step-finish"] }, "reason": { "type": "string" }, "snapshot": { "type": "string" }, "cost": { "type": "number" }, "tokens": { "type": "object", "properties": { "total": { "type": "number" }, "input": { "type": "number" }, "output": { "type": "number" }, "reasoning": { "type": "number" }, "cache": { "type": "object", "properties": { "read": { "type": "number" }, "write": { "type": "number" } }, "required": ["read", "write"], "additionalProperties": false } }, "required": ["input", "output", "reasoning", "cache"], "additionalProperties": false } }, "required": ["id", "sessionID", "messageID", "type", "reason", "cost", "tokens"], "additionalProperties": false }, "SnapshotPart": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^prt" }, "sessionID": { "type": "string", "pattern": "^ses" }, "messageID": { "type": "string", "pattern": "^msg" }, "type": { "type": "string", "enum": ["snapshot"] }, "snapshot": { "type": "string" } }, "required": ["id", "sessionID", "messageID", "type", "snapshot"], "additionalProperties": false }, "PatchPart": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^prt" }, "sessionID": { "type": "string", "pattern": "^ses" }, "messageID": { "type": "string", "pattern": "^msg" }, "type": { "type": "string", "enum": ["patch"] }, "hash": { "type": "string" }, "files": { "type": "array", "items": { "type": "string" } } }, "required": ["id", "sessionID", "messageID", "type", "hash", "files"], "additionalProperties": false }, "AgentPart": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^prt" }, "sessionID": { "type": "string", "pattern": "^ses" }, "messageID": { "type": "string", "pattern": "^msg" }, "type": { "type": "string", "enum": ["agent"] }, "name": { "type": "string" }, "source": { "type": "object", "properties": { "value": { "type": "string" }, "start": { "type": "integer", "minimum": 0 }, "end": { "type": "integer", "minimum": 0 } }, "required": ["value", "start", "end"], "additionalProperties": false } }, "required": ["id", "sessionID", "messageID", "type", "name"], "additionalProperties": false }, "RetryPart": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^prt" }, "sessionID": { "type": "string", "pattern": "^ses" }, "messageID": { "type": "string", "pattern": "^msg" }, "type": { "type": "string", "enum": ["retry"] }, "attempt": { "type": "integer", "minimum": 0 }, "error": { "$ref": "#/components/schemas/APIError" }, "time": { "type": "object", "properties": { "created": { "type": "integer", "minimum": 0 } }, "required": ["created"], "additionalProperties": false } }, "required": ["id", "sessionID", "messageID", "type", "attempt", "error", "time"], "additionalProperties": false }, "CompactionPart": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^prt" }, "sessionID": { "type": "string", "pattern": "^ses" }, "messageID": { "type": "string", "pattern": "^msg" }, "type": { "type": "string", "enum": ["compaction"] }, "auto": { "type": "boolean" }, "overflow": { "type": "boolean" }, "tail_start_id": { "type": "string", "pattern": "^msg" } }, "required": ["id", "sessionID", "messageID", "type", "auto"], "additionalProperties": false }, "Part": { "anyOf": [ { "$ref": "#/components/schemas/TextPart" }, { "$ref": "#/components/schemas/SubtaskPart" }, { "$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" }, { "$ref": "#/components/schemas/CompactionPart" } ] }, "PermissionAction": { "type": "string", "enum": ["allow", "deny", "ask"] }, "PermissionRule": { "type": "object", "properties": { "permission": { "type": "string" }, "pattern": { "type": "string" }, "action": { "$ref": "#/components/schemas/PermissionAction" } }, "required": ["permission", "pattern", "action"], "additionalProperties": false }, "PermissionRuleset": { "type": "array", "items": { "$ref": "#/components/schemas/PermissionRule" } }, "Session": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^ses" }, "slug": { "type": "string" }, "projectID": { "type": "string" }, "workspaceID": { "type": "string", "pattern": "^wrk" }, "directory": { "type": "string" }, "path": { "type": "string" }, "parentID": { "type": "string", "pattern": "^ses" }, "summary": { "type": "object", "properties": { "additions": { "type": "number" }, "deletions": { "type": "number" }, "files": { "type": "number" }, "diffs": { "type": "array", "items": { "$ref": "#/components/schemas/SnapshotFileDiff" } } }, "required": ["additions", "deletions", "files"], "additionalProperties": false }, "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"], "additionalProperties": false } }, "required": ["input", "output", "reasoning", "cache"], "additionalProperties": false }, "share": { "type": "object", "properties": { "url": { "type": "string" } }, "required": ["url"], "additionalProperties": false }, "title": { "type": "string" }, "agent": { "type": "string" }, "model": { "type": "object", "properties": { "id": { "type": "string" }, "providerID": { "type": "string" }, "variant": { "type": "string" } }, "required": ["id", "providerID"], "additionalProperties": false }, "version": { "type": "string" }, "time": { "type": "object", "properties": { "created": { "type": "integer", "minimum": 0 }, "updated": { "type": "integer", "minimum": 0 }, "compacting": { "type": "integer", "minimum": 0 }, "archived": { "type": "number" } }, "required": ["created", "updated"], "additionalProperties": false }, "permission": { "$ref": "#/components/schemas/PermissionRuleset" }, "revert": { "type": "object", "properties": { "messageID": { "type": "string", "pattern": "^msg" }, "partID": { "type": "string", "pattern": "^prt" }, "snapshot": { "type": "string" }, "diff": { "type": "string" } }, "required": ["messageID"], "additionalProperties": false } }, "required": ["id", "slug", "projectID", "directory", "title", "version", "time"], "additionalProperties": false }, "Prompt": { "type": "object", "properties": { "text": { "type": "string" }, "files": { "type": "array", "items": { "$ref": "#/components/schemas/PromptFileAttachment" } }, "agents": { "type": "array", "items": { "$ref": "#/components/schemas/PromptAgentAttachment" } }, "references": { "type": "array", "items": { "$ref": "#/components/schemas/PromptReferenceAttachment" } } }, "required": ["text"], "additionalProperties": false }, "GlobalEvent": { "type": "object", "properties": { "directory": { "type": "string" }, "project": { "type": "string" }, "workspace": { "type": "string" }, "payload": { "anyOf": [ { "$ref": "#/components/schemas/EventServerInstanceDisposed" }, { "$ref": "#/components/schemas/EventFileEdited" }, { "$ref": "#/components/schemas/EventFileWatcherUpdated" }, { "$ref": "#/components/schemas/EventLspClientDiagnostics" }, { "$ref": "#/components/schemas/EventLspUpdated" }, { "$ref": "#/components/schemas/EventMessagePartDelta" }, { "$ref": "#/components/schemas/EventPermissionAsked" }, { "$ref": "#/components/schemas/EventPermissionReplied" }, { "$ref": "#/components/schemas/EventSessionDiff" }, { "$ref": "#/components/schemas/EventSessionError" }, { "$ref": "#/components/schemas/EventQuestionAsked" }, { "$ref": "#/components/schemas/EventQuestionReplied" }, { "$ref": "#/components/schemas/EventQuestionRejected" }, { "$ref": "#/components/schemas/EventTodoUpdated" }, { "$ref": "#/components/schemas/EventSessionStatus" }, { "$ref": "#/components/schemas/EventSessionIdle" }, { "$ref": "#/components/schemas/EventSessionCompacted" }, { "$ref": "#/components/schemas/Event.tui.prompt.append" }, { "$ref": "#/components/schemas/Event.tui.command.execute" }, { "$ref": "#/components/schemas/Event.tui.toast.show" }, { "$ref": "#/components/schemas/Event.tui.session.select" }, { "$ref": "#/components/schemas/EventMcpToolsChanged" }, { "$ref": "#/components/schemas/EventMcpBrowserOpenFailed" }, { "$ref": "#/components/schemas/EventCommandExecuted" }, { "$ref": "#/components/schemas/EventProjectUpdated" }, { "$ref": "#/components/schemas/EventVcsBranchUpdated" }, { "$ref": "#/components/schemas/EventWorkspaceReady" }, { "$ref": "#/components/schemas/EventWorkspaceFailed" }, { "$ref": "#/components/schemas/EventWorkspaceStatus" }, { "$ref": "#/components/schemas/EventWorktreeReady" }, { "$ref": "#/components/schemas/EventWorktreeFailed" }, { "$ref": "#/components/schemas/EventPtyCreated" }, { "$ref": "#/components/schemas/EventPtyUpdated" }, { "$ref": "#/components/schemas/EventPtyExited" }, { "$ref": "#/components/schemas/EventPtyDeleted" }, { "$ref": "#/components/schemas/EventInstallationUpdated" }, { "$ref": "#/components/schemas/EventInstallationUpdate-available" }, { "$ref": "#/components/schemas/EventMessageUpdated" }, { "$ref": "#/components/schemas/EventMessageRemoved" }, { "$ref": "#/components/schemas/EventMessagePartUpdated" }, { "$ref": "#/components/schemas/EventMessagePartRemoved" }, { "$ref": "#/components/schemas/EventSessionCreated" }, { "$ref": "#/components/schemas/EventSessionUpdated" }, { "$ref": "#/components/schemas/EventSessionDeleted" }, { "$ref": "#/components/schemas/EventSessionNextAgentSwitched" }, { "$ref": "#/components/schemas/EventSessionNextModelSwitched" }, { "$ref": "#/components/schemas/EventSessionNextPrompted" }, { "$ref": "#/components/schemas/EventSessionNextSynthetic" }, { "$ref": "#/components/schemas/EventSessionNextShellStarted" }, { "$ref": "#/components/schemas/EventSessionNextShellEnded" }, { "$ref": "#/components/schemas/EventSessionNextStepStarted" }, { "$ref": "#/components/schemas/EventSessionNextStepEnded" }, { "$ref": "#/components/schemas/EventSessionNextStepFailed" }, { "$ref": "#/components/schemas/EventSessionNextTextStarted" }, { "$ref": "#/components/schemas/EventSessionNextTextDelta" }, { "$ref": "#/components/schemas/EventSessionNextTextEnded" }, { "$ref": "#/components/schemas/EventSessionNextReasoningStarted" }, { "$ref": "#/components/schemas/EventSessionNextReasoningDelta" }, { "$ref": "#/components/schemas/EventSessionNextReasoningEnded" }, { "$ref": "#/components/schemas/EventSessionNextToolInputStarted" }, { "$ref": "#/components/schemas/EventSessionNextToolInputDelta" }, { "$ref": "#/components/schemas/EventSessionNextToolInputEnded" }, { "$ref": "#/components/schemas/EventSessionNextToolCalled" }, { "$ref": "#/components/schemas/EventSessionNextToolProgress" }, { "$ref": "#/components/schemas/EventSessionNextToolSuccess" }, { "$ref": "#/components/schemas/EventSessionNextToolFailed" }, { "$ref": "#/components/schemas/EventSessionNextRetried" }, { "$ref": "#/components/schemas/EventSessionNextCompactionStarted" }, { "$ref": "#/components/schemas/EventSessionNextCompactionDelta" }, { "$ref": "#/components/schemas/EventSessionNextCompactionEnded" }, { "$ref": "#/components/schemas/EventServerConnected" }, { "$ref": "#/components/schemas/EventGlobalDisposed" }, { "$ref": "#/components/schemas/SyncEventMessageUpdated" }, { "$ref": "#/components/schemas/SyncEventMessageRemoved" }, { "$ref": "#/components/schemas/SyncEventMessagePartUpdated" }, { "$ref": "#/components/schemas/SyncEventMessagePartRemoved" }, { "$ref": "#/components/schemas/SyncEventSessionCreated" }, { "$ref": "#/components/schemas/SyncEventSessionUpdated" }, { "$ref": "#/components/schemas/SyncEventSessionDeleted" }, { "$ref": "#/components/schemas/SyncEventSessionNextAgentSwitched" }, { "$ref": "#/components/schemas/SyncEventSessionNextModelSwitched" }, { "$ref": "#/components/schemas/SyncEventSessionNextPrompted" }, { "$ref": "#/components/schemas/SyncEventSessionNextSynthetic" }, { "$ref": "#/components/schemas/SyncEventSessionNextShellStarted" }, { "$ref": "#/components/schemas/SyncEventSessionNextShellEnded" }, { "$ref": "#/components/schemas/SyncEventSessionNextStepStarted" }, { "$ref": "#/components/schemas/SyncEventSessionNextStepEnded" }, { "$ref": "#/components/schemas/SyncEventSessionNextStepFailed" }, { "$ref": "#/components/schemas/SyncEventSessionNextTextStarted" }, { "$ref": "#/components/schemas/SyncEventSessionNextTextDelta" }, { "$ref": "#/components/schemas/SyncEventSessionNextTextEnded" }, { "$ref": "#/components/schemas/SyncEventSessionNextReasoningStarted" }, { "$ref": "#/components/schemas/SyncEventSessionNextReasoningDelta" }, { "$ref": "#/components/schemas/SyncEventSessionNextReasoningEnded" }, { "$ref": "#/components/schemas/SyncEventSessionNextToolInputStarted" }, { "$ref": "#/components/schemas/SyncEventSessionNextToolInputDelta" }, { "$ref": "#/components/schemas/SyncEventSessionNextToolInputEnded" }, { "$ref": "#/components/schemas/SyncEventSessionNextToolCalled" }, { "$ref": "#/components/schemas/SyncEventSessionNextToolProgress" }, { "$ref": "#/components/schemas/SyncEventSessionNextToolSuccess" }, { "$ref": "#/components/schemas/SyncEventSessionNextToolFailed" }, { "$ref": "#/components/schemas/SyncEventSessionNextRetried" }, { "$ref": "#/components/schemas/SyncEventSessionNextCompactionStarted" }, { "$ref": "#/components/schemas/SyncEventSessionNextCompactionDelta" }, { "$ref": "#/components/schemas/SyncEventSessionNextCompactionEnded" } ] } }, "required": ["directory", "payload"], "additionalProperties": false }, "LogLevel": { "type": "string", "enum": ["DEBUG", "INFO", "WARN", "ERROR"], "description": "Log level" }, "ServerConfig": { "type": "object", "properties": { "port": { "type": "integer", "exclusiveMinimum": 0 }, "hostname": { "type": "string" }, "mdns": { "type": "boolean" }, "mdnsDomain": { "type": "string" }, "cors": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false, "description": "Server configuration for opencode serve and web commands" }, "ReferenceConfigEntry": { "anyOf": [ { "type": "string" }, { "type": "object", "properties": { "repository": { "type": "string", "description": "Git repository URL, host/path reference, or GitHub owner/repo shorthand" }, "branch": { "type": "string" } }, "required": ["repository"], "additionalProperties": false }, { "type": "object", "properties": { "path": { "type": "string", "description": "Absolute path, ~/ path, or workspace-relative path to a local reference directory" } }, "required": ["path"], "additionalProperties": false } ] }, "ReferenceConfig": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/ReferenceConfigEntry" } }, "PermissionActionConfig": { "type": "string", "enum": ["ask", "allow", "deny"] }, "PermissionObjectConfig": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/PermissionActionConfig" } }, "PermissionRuleConfig": { "anyOf": [ { "$ref": "#/components/schemas/PermissionActionConfig" }, { "$ref": "#/components/schemas/PermissionObjectConfig" } ] }, "PermissionConfig": { "anyOf": [ { "$ref": "#/components/schemas/PermissionActionConfig" }, { "type": "object", "properties": { "read": { "$ref": "#/components/schemas/PermissionRuleConfig" }, "edit": { "$ref": "#/components/schemas/PermissionRuleConfig" }, "glob": { "$ref": "#/components/schemas/PermissionRuleConfig" }, "grep": { "$ref": "#/components/schemas/PermissionRuleConfig" }, "list": { "$ref": "#/components/schemas/PermissionRuleConfig" }, "bash": { "$ref": "#/components/schemas/PermissionRuleConfig" }, "task": { "$ref": "#/components/schemas/PermissionRuleConfig" }, "external_directory": { "$ref": "#/components/schemas/PermissionRuleConfig" }, "todowrite": { "$ref": "#/components/schemas/PermissionActionConfig" }, "question": { "$ref": "#/components/schemas/PermissionActionConfig" }, "webfetch": { "$ref": "#/components/schemas/PermissionActionConfig" }, "websearch": { "$ref": "#/components/schemas/PermissionActionConfig" }, "repo_clone": { "$ref": "#/components/schemas/PermissionRuleConfig" }, "repo_overview": { "$ref": "#/components/schemas/PermissionRuleConfig" }, "lsp": { "$ref": "#/components/schemas/PermissionRuleConfig" }, "doom_loop": { "$ref": "#/components/schemas/PermissionActionConfig" }, "skill": { "$ref": "#/components/schemas/PermissionRuleConfig" } }, "additionalProperties": { "$ref": "#/components/schemas/PermissionRuleConfig" } } ] }, "AgentConfig": { "type": "object", "properties": { "model": { "type": "string" }, "variant": { "type": "string" }, "temperature": { "type": "number" }, "top_p": { "type": "number" }, "prompt": { "type": "string" }, "tools": { "type": "object", "additionalProperties": { "type": "boolean" } }, "disable": { "type": "boolean" }, "description": { "type": "string" }, "mode": { "type": "string", "enum": ["subagent", "primary", "all"] }, "hidden": { "type": "boolean" }, "options": { "type": "object" }, "color": { "anyOf": [ { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" }, { "type": "string", "enum": ["primary", "secondary", "accent", "success", "warning", "error", "info"] } ], "description": "Hex color code (e.g., #FF5733) or theme color (e.g., primary)" }, "steps": { "type": "integer", "exclusiveMinimum": 0 }, "maxSteps": { "type": "integer", "exclusiveMinimum": 0 }, "permission": { "$ref": "#/components/schemas/PermissionConfig" } }, "additionalProperties": {} }, "ProviderConfig": { "type": "object", "properties": { "api": { "type": "string" }, "name": { "type": "string" }, "env": { "type": "array", "items": { "type": "string" } }, "id": { "type": "string" }, "npm": { "type": "string" }, "whitelist": { "type": "array", "items": { "type": "string" } }, "blacklist": { "type": "array", "items": { "type": "string" } }, "options": { "type": "object", "properties": { "apiKey": { "type": "string" }, "baseURL": { "type": "string" }, "enterpriseUrl": { "type": "string" }, "setCacheKey": { "type": "boolean" }, "timeout": { "anyOf": [ { "type": "integer", "exclusiveMinimum": 0 }, { "type": "boolean", "enum": [false] } ], "description": "Timeout in milliseconds for requests to this provider. Default is 300000 (5 minutes). Set to false to disable timeout." }, "chunkTimeout": { "type": "integer", "exclusiveMinimum": 0 } }, "additionalProperties": {} }, "models": { "type": "object", "additionalProperties": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "family": { "type": "string" }, "release_date": { "type": "string" }, "attachment": { "type": "boolean" }, "reasoning": { "type": "boolean" }, "temperature": { "type": "boolean" }, "tool_call": { "type": "boolean" }, "interleaved": { "anyOf": [ { "type": "boolean", "enum": [true] }, { "type": "object", "properties": { "field": { "type": "string", "enum": ["reasoning_content", "reasoning_details"] } }, "required": ["field"], "additionalProperties": false } ] }, "cost": { "type": "object", "properties": { "input": { "type": "number" }, "output": { "type": "number" }, "cache_read": { "type": "number" }, "cache_write": { "type": "number" }, "context_over_200k": { "type": "object", "properties": { "input": { "type": "number" }, "output": { "type": "number" }, "cache_read": { "type": "number" }, "cache_write": { "type": "number" } }, "required": ["input", "output"], "additionalProperties": false } }, "required": ["input", "output"], "additionalProperties": false }, "limit": { "type": "object", "properties": { "context": { "type": "number" }, "input": { "type": "number" }, "output": { "type": "number" } }, "required": ["context", "output"], "additionalProperties": false }, "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"], "additionalProperties": false }, "experimental": { "type": "boolean" }, "status": { "type": "string", "enum": ["alpha", "beta", "deprecated", "active"] }, "provider": { "type": "object", "properties": { "npm": { "type": "string" }, "api": { "type": "string" } }, "additionalProperties": false }, "options": { "type": "object" }, "headers": { "type": "object", "additionalProperties": { "type": "string" } }, "variants": { "type": "object", "additionalProperties": { "type": "object", "properties": { "disabled": { "type": "boolean" } }, "additionalProperties": {} }, "description": "Variant-specific configuration" } }, "additionalProperties": false } } }, "additionalProperties": false }, "McpLocalConfig": { "type": "object", "properties": { "type": { "type": "string", "enum": ["local"], "description": "Type of MCP server connection" }, "command": { "type": "array", "items": { "type": "string" }, "description": "Command and arguments to run the MCP server" }, "environment": { "type": "object", "additionalProperties": { "type": "string" } }, "enabled": { "type": "boolean" }, "timeout": { "type": "integer", "exclusiveMinimum": 0 } }, "required": ["type", "command"], "additionalProperties": false }, "McpOAuthConfig": { "type": "object", "properties": { "clientId": { "type": "string" }, "clientSecret": { "type": "string" }, "scope": { "type": "string" }, "redirectUri": { "type": "string" } }, "additionalProperties": false }, "McpRemoteConfig": { "type": "object", "properties": { "type": { "type": "string", "enum": ["remote"], "description": "Type of MCP server connection" }, "url": { "type": "string", "description": "URL of the remote MCP server" }, "enabled": { "type": "boolean" }, "headers": { "type": "object", "additionalProperties": { "type": "string" } }, "oauth": { "anyOf": [ { "$ref": "#/components/schemas/McpOAuthConfig" }, { "type": "boolean", "enum": [false] } ], "description": "OAuth authentication configuration for the MCP server. Set to false to disable OAuth auto-detection." }, "timeout": { "type": "integer", "exclusiveMinimum": 0 } }, "required": ["type", "url"], "additionalProperties": false }, "LayoutConfig": { "type": "string", "enum": ["auto", "stretch"], "description": "@deprecated Always uses stretch layout." }, "ImageAttachmentConfig": { "type": "object", "properties": { "auto_resize": { "type": "boolean" }, "max_width": { "type": "integer", "exclusiveMinimum": 0 }, "max_height": { "type": "integer", "exclusiveMinimum": 0 }, "max_base64_bytes": { "type": "integer", "exclusiveMinimum": 0 } }, "additionalProperties": false }, "AttachmentConfig": { "type": "object", "properties": { "image": { "$ref": "#/components/schemas/ImageAttachmentConfig" } }, "additionalProperties": false }, "Config": { "type": "object", "properties": { "$schema": { "type": "string" }, "shell": { "type": "string" }, "logLevel": { "$ref": "#/components/schemas/LogLevel" }, "server": { "$ref": "#/components/schemas/ServerConfig" }, "command": { "type": "object", "additionalProperties": { "type": "object", "properties": { "template": { "type": "string" }, "description": { "type": "string" }, "agent": { "type": "string" }, "model": { "type": "string" }, "subtask": { "type": "boolean" } }, "required": ["template"], "additionalProperties": false } }, "skills": { "type": "object", "properties": { "paths": { "type": "array", "items": { "type": "string" } }, "urls": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false }, "reference": { "$ref": "#/components/schemas/ReferenceConfig" }, "watcher": { "type": "object", "properties": { "ignore": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false }, "snapshot": { "type": "boolean" }, "plugin": { "type": "array", "items": { "anyOf": [ { "type": "string" }, { "type": "array", "prefixItems": [ { "type": "string" }, { "type": "object" } ], "maxItems": 2, "minItems": 2 } ] } }, "share": { "type": "string", "enum": ["manual", "auto", "disabled"] }, "autoshare": { "type": "boolean" }, "autoupdate": { "anyOf": [ { "type": "boolean" }, { "type": "string", "enum": ["notify"] } ], "description": "Automatically update to the latest version. Set to true to auto-update, false to disable, or 'notify' to show update notifications" }, "disabled_providers": { "type": "array", "items": { "type": "string" } }, "enabled_providers": { "type": "array", "items": { "type": "string" } }, "model": { "type": "string" }, "small_model": { "type": "string" }, "default_agent": { "type": "string" }, "username": { "type": "string" }, "mode": { "type": "object", "properties": { "build": { "$ref": "#/components/schemas/AgentConfig" }, "plan": { "$ref": "#/components/schemas/AgentConfig" } }, "additionalProperties": { "$ref": "#/components/schemas/AgentConfig" } }, "agent": { "type": "object", "properties": { "plan": { "$ref": "#/components/schemas/AgentConfig" }, "build": { "$ref": "#/components/schemas/AgentConfig" }, "general": { "$ref": "#/components/schemas/AgentConfig" }, "explore": { "$ref": "#/components/schemas/AgentConfig" }, "scout": { "$ref": "#/components/schemas/AgentConfig" }, "title": { "$ref": "#/components/schemas/AgentConfig" }, "summary": { "$ref": "#/components/schemas/AgentConfig" }, "compaction": { "$ref": "#/components/schemas/AgentConfig" } }, "additionalProperties": { "$ref": "#/components/schemas/AgentConfig" } }, "provider": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/ProviderConfig" } }, "mcp": { "type": "object", "additionalProperties": { "anyOf": [ { "$ref": "#/components/schemas/McpLocalConfig" }, { "$ref": "#/components/schemas/McpRemoteConfig" }, { "type": "object", "properties": { "enabled": { "type": "boolean" } }, "required": ["enabled"], "additionalProperties": false } ] } }, "formatter": { "anyOf": [ { "type": "boolean" }, { "type": "object", "additionalProperties": { "type": "object", "properties": { "disabled": { "type": "boolean" }, "command": { "type": "array", "items": { "type": "string" } }, "environment": { "type": "object", "additionalProperties": { "type": "string" } }, "extensions": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false } } ], "description": "Enable or configure formatters. Omit or set to false to disable, true to enable built-ins, or an object to enable built-ins with overrides." }, "lsp": { "anyOf": [ { "type": "boolean" }, { "type": "object", "additionalProperties": { "anyOf": [ { "type": "object", "properties": { "disabled": { "type": "boolean", "enum": [true] } }, "required": ["disabled"], "additionalProperties": false }, { "type": "object", "properties": { "command": { "type": "array", "items": { "type": "string" } }, "extensions": { "type": "array", "items": { "type": "string" } }, "disabled": { "type": "boolean" }, "env": { "type": "object", "additionalProperties": { "type": "string" } }, "initialization": { "type": "object" } }, "required": ["command"], "additionalProperties": false } ] } } ], "description": "Enable or configure LSP servers. Omit or set to false to disable, true to enable built-ins, or an object to enable built-ins with overrides." }, "instructions": { "type": "array", "items": { "type": "string" } }, "layout": { "$ref": "#/components/schemas/LayoutConfig" }, "permission": { "$ref": "#/components/schemas/PermissionConfig" }, "tools": { "type": "object", "additionalProperties": { "type": "boolean" } }, "attachment": { "$ref": "#/components/schemas/AttachmentConfig" }, "enterprise": { "type": "object", "properties": { "url": { "type": "string" } }, "additionalProperties": false }, "tool_output": { "type": "object", "properties": { "max_lines": { "type": "integer", "exclusiveMinimum": 0 }, "max_bytes": { "type": "integer", "exclusiveMinimum": 0 } }, "additionalProperties": false }, "compaction": { "type": "object", "properties": { "auto": { "type": "boolean" }, "prune": { "type": "boolean" }, "tail_turns": { "type": "integer", "minimum": 0 }, "preserve_recent_tokens": { "type": "integer", "minimum": 0 }, "reserved": { "type": "integer", "minimum": 0 } }, "additionalProperties": false }, "experimental": { "type": "object", "properties": { "disable_paste_summary": { "type": "boolean" }, "batch_tool": { "type": "boolean" }, "openTelemetry": { "type": "boolean" }, "primary_tools": { "type": "array", "items": { "type": "string" } }, "continue_loop_on_deny": { "type": "boolean" }, "mcp_timeout": { "type": "integer", "exclusiveMinimum": 0 } }, "additionalProperties": false } }, "additionalProperties": false }, "Model": { "type": "object", "properties": { "id": { "type": "string" }, "providerID": { "type": "string" }, "api": { "type": "object", "properties": { "id": { "type": "string" }, "url": { "type": "string" }, "npm": { "type": "string" } }, "required": ["id", "url", "npm"], "additionalProperties": false }, "name": { "type": "string" }, "family": { "type": "string" }, "capabilities": { "type": "object", "properties": { "temperature": { "type": "boolean" }, "reasoning": { "type": "boolean" }, "attachment": { "type": "boolean" }, "toolcall": { "type": "boolean" }, "input": { "type": "object", "properties": { "text": { "type": "boolean" }, "audio": { "type": "boolean" }, "image": { "type": "boolean" }, "video": { "type": "boolean" }, "pdf": { "type": "boolean" } }, "required": ["text", "audio", "image", "video", "pdf"], "additionalProperties": false }, "output": { "type": "object", "properties": { "text": { "type": "boolean" }, "audio": { "type": "boolean" }, "image": { "type": "boolean" }, "video": { "type": "boolean" }, "pdf": { "type": "boolean" } }, "required": ["text", "audio", "image", "video", "pdf"], "additionalProperties": false }, "interleaved": { "anyOf": [ { "type": "boolean" }, { "type": "object", "properties": { "field": { "type": "string", "enum": ["reasoning_content", "reasoning_details"] } }, "required": ["field"], "additionalProperties": false } ] } }, "required": ["temperature", "reasoning", "attachment", "toolcall", "input", "output", "interleaved"], "additionalProperties": false }, "cost": { "type": "object", "properties": { "input": { "type": "number" }, "output": { "type": "number" }, "cache": { "type": "object", "properties": { "read": { "type": "number" }, "write": { "type": "number" } }, "required": ["read", "write"], "additionalProperties": false }, "tiers": { "type": "array", "items": { "type": "object", "properties": { "input": { "type": "number" }, "output": { "type": "number" }, "cache": { "type": "object", "properties": { "read": { "type": "number" }, "write": { "type": "number" } }, "required": ["read", "write"], "additionalProperties": false }, "tier": { "type": "object", "properties": { "type": { "type": "string", "enum": ["context"] }, "size": { "type": "number" } }, "required": ["type", "size"], "additionalProperties": false } }, "required": ["input", "output", "cache", "tier"], "additionalProperties": false } }, "experimentalOver200K": { "type": "object", "properties": { "input": { "type": "number" }, "output": { "type": "number" }, "cache": { "type": "object", "properties": { "read": { "type": "number" }, "write": { "type": "number" } }, "required": ["read", "write"], "additionalProperties": false } }, "required": ["input", "output", "cache"], "additionalProperties": false } }, "required": ["input", "output", "cache"], "additionalProperties": false }, "limit": { "type": "object", "properties": { "context": { "type": "number" }, "input": { "type": "number" }, "output": { "type": "number" } }, "required": ["context", "output"], "additionalProperties": false }, "status": { "type": "string", "enum": ["alpha", "beta", "deprecated", "active"] }, "options": { "type": "object" }, "headers": { "type": "object", "additionalProperties": { "type": "string" } }, "release_date": { "type": "string" }, "variants": { "type": "object", "additionalProperties": { "type": "object" } } }, "required": [ "id", "providerID", "api", "name", "capabilities", "cost", "limit", "status", "options", "headers", "release_date" ], "additionalProperties": false }, "Provider": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "source": { "type": "string", "enum": ["env", "config", "custom", "api"] }, "env": { "type": "array", "items": { "type": "string" } }, "key": { "type": "string" }, "options": { "type": "object" }, "models": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/Model" } } }, "required": ["id", "name", "source", "env", "options", "models"], "additionalProperties": false }, "ConsoleState": { "type": "object", "properties": { "consoleManagedProviders": { "type": "array", "items": { "type": "string" } }, "activeOrgName": { "type": "string" }, "switchableOrgCount": { "type": "integer", "minimum": 0 } }, "required": ["consoleManagedProviders", "switchableOrgCount"], "additionalProperties": false }, "effect_HttpApiError_InternalServerError": { "type": "object", "properties": { "_tag": { "type": "string", "enum": ["InternalServerError"] } }, "required": ["_tag"], "additionalProperties": false }, "ToolListItem": { "type": "object", "properties": { "id": { "type": "string" }, "description": { "type": "string" }, "parameters": {} }, "required": ["id", "description", "parameters"], "additionalProperties": false }, "ToolList": { "type": "array", "items": { "$ref": "#/components/schemas/ToolListItem" } }, "ToolIDs": { "type": "array", "items": { "type": "string" } }, "WorktreeError": { "type": "object", "properties": { "name": { "type": "string", "enum": [ "WorktreeNotGitError", "WorktreeNameGenerationFailedError", "WorktreeCreateFailedError", "WorktreeStartCommandFailedError", "WorktreeRemoveFailedError", "WorktreeResetFailedError", "WorktreeListFailedError" ] }, "data": { "type": "object", "properties": { "message": { "type": "string" } }, "required": ["message"], "additionalProperties": false } }, "required": ["name", "data"], "additionalProperties": false }, "WorktreeCreateInput": { "type": "object", "properties": { "name": { "type": "string" }, "startCommand": { "type": "string", "description": "Additional startup script to run after the project's start command" } }, "additionalProperties": false }, "Worktree": { "type": "object", "properties": { "name": { "type": "string" }, "branch": { "type": "string" }, "directory": { "type": "string" } }, "required": ["name", "directory"], "additionalProperties": false }, "WorktreeRemoveInput": { "type": "object", "properties": { "directory": { "type": "string" } }, "required": ["directory"], "additionalProperties": false }, "WorktreeResetInput": { "type": "object", "properties": { "directory": { "type": "string" } }, "required": ["directory"], "additionalProperties": false }, "ProjectSummary": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "worktree": { "type": "string" } }, "required": ["id", "worktree"], "additionalProperties": false }, "GlobalSession": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^ses" }, "slug": { "type": "string" }, "projectID": { "type": "string" }, "workspaceID": { "type": "string", "pattern": "^wrk" }, "directory": { "type": "string" }, "path": { "type": "string" }, "parentID": { "type": "string", "pattern": "^ses" }, "summary": { "type": "object", "properties": { "additions": { "type": "number" }, "deletions": { "type": "number" }, "files": { "type": "number" }, "diffs": { "type": "array", "items": { "$ref": "#/components/schemas/SnapshotFileDiff" } } }, "required": ["additions", "deletions", "files"], "additionalProperties": false }, "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"], "additionalProperties": false } }, "required": ["input", "output", "reasoning", "cache"], "additionalProperties": false }, "share": { "type": "object", "properties": { "url": { "type": "string" } }, "required": ["url"], "additionalProperties": false }, "title": { "type": "string" }, "agent": { "type": "string" }, "model": { "type": "object", "properties": { "id": { "type": "string" }, "providerID": { "type": "string" }, "variant": { "type": "string" } }, "required": ["id", "providerID"], "additionalProperties": false }, "version": { "type": "string" }, "time": { "type": "object", "properties": { "created": { "type": "integer", "minimum": 0 }, "updated": { "type": "integer", "minimum": 0 }, "compacting": { "type": "integer", "minimum": 0 }, "archived": { "type": "number" } }, "required": ["created", "updated"], "additionalProperties": false }, "permission": { "$ref": "#/components/schemas/PermissionRuleset" }, "revert": { "type": "object", "properties": { "messageID": { "type": "string", "pattern": "^msg" }, "partID": { "type": "string", "pattern": "^prt" }, "snapshot": { "type": "string" }, "diff": { "type": "string" } }, "required": ["messageID"], "additionalProperties": false }, "project": { "anyOf": [ { "$ref": "#/components/schemas/ProjectSummary" }, { "type": "null" } ] } }, "required": ["id", "slug", "projectID", "directory", "title", "version", "time", "project"], "additionalProperties": false }, "McpResource": { "type": "object", "properties": { "name": { "type": "string" }, "uri": { "type": "string" }, "description": { "type": "string" }, "mimeType": { "type": "string" }, "client": { "type": "string" } }, "required": ["name", "uri", "client"], "additionalProperties": false }, "Symbol": { "type": "object", "properties": { "name": { "type": "string" }, "kind": { "type": "integer", "minimum": 0 }, "location": { "type": "object", "properties": { "uri": { "type": "string" }, "range": { "$ref": "#/components/schemas/Range" } }, "required": ["uri", "range"], "additionalProperties": false } }, "required": ["name", "kind", "location"], "additionalProperties": false }, "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"], "additionalProperties": false }, "FileContent": { "type": "object", "properties": { "type": { "type": "string", "enum": ["text", "binary"] }, "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": "integer", "minimum": 0 }, "oldLines": { "type": "integer", "minimum": 0 }, "newStart": { "type": "integer", "minimum": 0 }, "newLines": { "type": "integer", "minimum": 0 }, "lines": { "type": "array", "items": { "type": "string" } } }, "required": ["oldStart", "oldLines", "newStart", "newLines", "lines"], "additionalProperties": false } }, "index": { "type": "string" } }, "required": ["oldFileName", "newFileName", "hunks"], "additionalProperties": false }, "encoding": { "type": "string", "enum": ["base64"] }, "mimeType": { "type": "string" } }, "required": ["type", "content"], "additionalProperties": false }, "File": { "type": "object", "properties": { "path": { "type": "string" }, "added": { "type": "integer", "minimum": 0 }, "removed": { "type": "integer", "minimum": 0 }, "status": { "type": "string", "enum": ["added", "deleted", "modified"] } }, "required": ["path", "added", "removed", "status"], "additionalProperties": false }, "Path": { "type": "object", "properties": { "home": { "type": "string" }, "state": { "type": "string" }, "config": { "type": "string" }, "worktree": { "type": "string" }, "directory": { "type": "string" } }, "required": ["home", "state", "config", "worktree", "directory"], "additionalProperties": false }, "VcsInfo": { "type": "object", "properties": { "branch": { "type": "string" }, "default_branch": { "type": "string" } }, "additionalProperties": false }, "VcsFileStatus": { "type": "object", "properties": { "file": { "type": "string" }, "additions": { "type": "number" }, "deletions": { "type": "number" }, "status": { "type": "string", "enum": ["added", "deleted", "modified"] } }, "required": ["file", "additions", "deletions", "status"], "additionalProperties": false }, "VcsFileDiff": { "type": "object", "properties": { "file": { "type": "string" }, "patch": { "type": "string" }, "additions": { "type": "number" }, "deletions": { "type": "number" }, "status": { "type": "string", "enum": ["added", "deleted", "modified"] } }, "required": ["file", "additions", "deletions"], "additionalProperties": false }, "VcsApplyError": { "type": "object", "properties": { "name": { "type": "string", "enum": ["VcsApplyError"] }, "data": { "type": "object", "properties": { "message": { "type": "string" }, "reason": { "type": "string", "enum": ["non-git", "not-clean"] } }, "required": ["message", "reason"], "additionalProperties": false } }, "required": ["name", "data"], "additionalProperties": false }, "Command": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "agent": { "type": "string" }, "model": { "type": "string" }, "source": { "type": "string", "enum": ["command", "mcp", "skill"] }, "template": { "type": "string" }, "subtask": { "type": "boolean" }, "hints": { "type": "array", "items": { "type": "string" } } }, "required": ["name", "template", "hints"], "additionalProperties": false }, "Agent": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "mode": { "type": "string", "enum": ["subagent", "primary", "all"] }, "native": { "type": "boolean" }, "hidden": { "type": "boolean" }, "topP": { "type": "number" }, "temperature": { "type": "number" }, "color": { "type": "string" }, "permission": { "$ref": "#/components/schemas/PermissionRuleset" }, "model": { "type": "object", "properties": { "modelID": { "type": "string" }, "providerID": { "type": "string" } }, "required": ["modelID", "providerID"], "additionalProperties": false }, "variant": { "type": "string" }, "prompt": { "type": "string" }, "options": { "type": "object" }, "steps": { "type": "number" } }, "required": ["name", "mode", "permission", "options"], "additionalProperties": false }, "LSPStatus": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "root": { "type": "string" }, "status": { "type": "string", "enum": ["connected", "error"] } }, "required": ["id", "name", "root", "status"], "additionalProperties": false }, "FormatterStatus": { "type": "object", "properties": { "name": { "type": "string" }, "extensions": { "type": "array", "items": { "type": "string" } }, "enabled": { "type": "boolean" } }, "required": ["name", "extensions", "enabled"], "additionalProperties": false }, "MCPStatusConnected": { "type": "object", "properties": { "status": { "type": "string", "enum": ["connected"] } }, "required": ["status"], "additionalProperties": false }, "MCPStatusDisabled": { "type": "object", "properties": { "status": { "type": "string", "enum": ["disabled"] } }, "required": ["status"], "additionalProperties": false }, "MCPStatusFailed": { "type": "object", "properties": { "status": { "type": "string", "enum": ["failed"] }, "error": { "type": "string" } }, "required": ["status", "error"], "additionalProperties": false }, "MCPStatusNeedsAuth": { "type": "object", "properties": { "status": { "type": "string", "enum": ["needs_auth"] } }, "required": ["status"], "additionalProperties": false }, "MCPStatusNeedsClientRegistration": { "type": "object", "properties": { "status": { "type": "string", "enum": ["needs_client_registration"] }, "error": { "type": "string" } }, "required": ["status", "error"], "additionalProperties": false }, "MCPStatus": { "anyOf": [ { "$ref": "#/components/schemas/MCPStatusConnected" }, { "$ref": "#/components/schemas/MCPStatusDisabled" }, { "$ref": "#/components/schemas/MCPStatusFailed" }, { "$ref": "#/components/schemas/MCPStatusNeedsAuth" }, { "$ref": "#/components/schemas/MCPStatusNeedsClientRegistration" } ] }, "McpUnsupportedOAuthError": { "type": "object", "properties": { "error": { "type": "string" } }, "required": ["error"], "additionalProperties": false }, "NotFoundError": { "type": "object", "required": ["name", "data"], "properties": { "name": { "type": "string", "enum": ["NotFoundError"] }, "data": { "type": "object", "required": ["message"], "properties": { "message": { "type": "string" } } } } }, "effect_HttpApiError_Forbidden": { "type": "object", "properties": { "_tag": { "type": "string", "enum": ["Forbidden"] } }, "required": ["_tag"], "additionalProperties": false }, "ProviderAuthMethod": { "type": "object", "properties": { "type": { "type": "string", "enum": ["oauth", "api"] }, "label": { "type": "string" }, "prompts": { "type": "array", "items": { "anyOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": ["text"] }, "key": { "type": "string" }, "message": { "type": "string" }, "placeholder": { "type": "string" }, "when": { "type": "object", "properties": { "key": { "type": "string" }, "op": { "type": "string", "enum": ["eq", "neq"] }, "value": { "type": "string" } }, "required": ["key", "op", "value"], "additionalProperties": false } }, "required": ["type", "key", "message"], "additionalProperties": false }, { "type": "object", "properties": { "type": { "type": "string", "enum": ["select"] }, "key": { "type": "string" }, "message": { "type": "string" }, "options": { "type": "array", "items": { "type": "object", "properties": { "label": { "type": "string" }, "value": { "type": "string" }, "hint": { "type": "string" } }, "required": ["label", "value"], "additionalProperties": false } }, "when": { "type": "object", "properties": { "key": { "type": "string" }, "op": { "type": "string", "enum": ["eq", "neq"] }, "value": { "type": "string" } }, "required": ["key", "op", "value"], "additionalProperties": false } }, "required": ["type", "key", "message", "options"], "additionalProperties": false } ] } } }, "required": ["type", "label"], "additionalProperties": false }, "ProviderAuthAuthorization": { "type": "object", "properties": { "url": { "type": "string" }, "method": { "type": "string", "enum": ["auto", "code"] }, "instructions": { "type": "string" } }, "required": ["url", "method", "instructions"], "additionalProperties": false }, "ProviderAuthError1": { "type": "object", "properties": { "name": { "type": "string", "enum": [ "BadRequest", "ProviderAuthOauthMissing", "ProviderAuthOauthCodeMissing", "ProviderAuthOauthCallbackFailed", "ProviderAuthValidationFailed" ] }, "data": { "type": "object", "properties": { "providerID": { "type": "string" }, "field": { "type": "string" }, "message": { "type": "string" }, "kind": { "type": "string" } }, "additionalProperties": false } }, "required": ["name", "data"], "additionalProperties": false }, "TextPartInput": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^prt" }, "type": { "type": "string", "enum": ["text"] }, "text": { "type": "string" }, "synthetic": { "type": "boolean" }, "ignored": { "type": "boolean" }, "time": { "type": "object", "properties": { "start": { "type": "integer", "minimum": 0 }, "end": { "type": "integer", "minimum": 0 } }, "required": ["start"], "additionalProperties": false }, "metadata": { "type": "object" } }, "required": ["type", "text"], "additionalProperties": false }, "FilePartInput": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^prt" }, "type": { "type": "string", "enum": ["file"] }, "mime": { "type": "string" }, "filename": { "type": "string" }, "url": { "type": "string" }, "source": { "$ref": "#/components/schemas/FilePartSource" } }, "required": ["type", "mime", "url"], "additionalProperties": false }, "AgentPartInput": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^prt" }, "type": { "type": "string", "enum": ["agent"] }, "name": { "type": "string" }, "source": { "type": "object", "properties": { "value": { "type": "string" }, "start": { "type": "integer", "minimum": 0 }, "end": { "type": "integer", "minimum": 0 } }, "required": ["value", "start", "end"], "additionalProperties": false } }, "required": ["type", "name"], "additionalProperties": false }, "SubtaskPartInput": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^prt" }, "type": { "type": "string", "enum": ["subtask"] }, "prompt": { "type": "string" }, "description": { "type": "string" }, "agent": { "type": "string" }, "model": { "type": "object", "properties": { "providerID": { "type": "string" }, "modelID": { "type": "string" } }, "required": ["providerID", "modelID"], "additionalProperties": false }, "command": { "type": "string" } }, "required": ["type", "prompt", "description", "agent"], "additionalProperties": false }, "V2SessionsResponse": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/SessionInfo" } }, "cursor": { "type": "object", "properties": { "previous": { "type": "string" }, "next": { "type": "string" } }, "additionalProperties": false } }, "required": ["items", "cursor"], "additionalProperties": false }, "V2SessionMessagesResponse": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/SessionMessage" } }, "cursor": { "type": "object", "properties": { "previous": { "type": "string" }, "next": { "type": "string" } }, "additionalProperties": false } }, "required": ["items", "cursor"], "additionalProperties": false }, "EventTuiPromptAppend": { "type": "object", "properties": { "type": { "type": "string", "enum": ["tui.prompt.append"] }, "properties": { "type": "object", "properties": { "text": { "type": "string" } }, "required": ["text"], "additionalProperties": false } }, "required": ["type", "properties"], "additionalProperties": false }, "EventTuiCommandExecute": { "type": "object", "properties": { "type": { "type": "string", "enum": ["tui.command.execute"] }, "properties": { "type": "object", "properties": { "command": { "anyOf": [ { "type": "string", "enum": [ "session.list", "session.new", "session.share", "session.interrupt", "session.compact", "session.page.up", "session.page.down", "session.line.up", "session.line.down", "session.half.page.up", "session.half.page.down", "session.first", "session.last", "prompt.clear", "prompt.submit", "agent.cycle" ] }, { "type": "string" } ] } }, "required": ["command"], "additionalProperties": false } }, "required": ["type", "properties"], "additionalProperties": false }, "EventTuiToastShow": { "type": "object", "properties": { "type": { "type": "string", "enum": ["tui.toast.show"] }, "properties": { "type": "object", "properties": { "title": { "type": "string" }, "message": { "type": "string" }, "variant": { "type": "string", "enum": ["info", "success", "warning", "error"] }, "duration": { "type": "integer", "exclusiveMinimum": 0 } }, "required": ["message", "variant"], "additionalProperties": false } }, "required": ["type", "properties"], "additionalProperties": false }, "EventTuiSessionSelect": { "type": "object", "properties": { "type": { "type": "string", "enum": ["tui.session.select"] }, "properties": { "type": "object", "properties": { "sessionID": { "type": "string", "pattern": "^ses", "description": "Session ID to navigate to" } }, "required": ["sessionID"], "additionalProperties": false } }, "required": ["type", "properties"], "additionalProperties": false }, "Workspace": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^wrk" }, "type": { "type": "string" }, "name": { "type": "string" }, "branch": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "directory": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "extra": { "anyOf": [ {}, { "type": "null" } ] }, "projectID": { "type": "string" }, "timeUsed": { "anyOf": [ { "type": "number" }, { "type": "string", "enum": ["NaN"] }, { "type": "string", "enum": ["Infinity"] }, { "type": "string", "enum": ["-Infinity"] }, { "type": "string", "enum": ["Infinity", "-Infinity", "NaN"] } ] } }, "required": ["id", "type", "name", "projectID", "timeUsed"], "additionalProperties": false }, "WorkspaceWarpError": { "type": "object", "properties": { "name": { "type": "string", "enum": ["WorkspaceWarpError"] }, "data": { "type": "object", "properties": { "message": { "type": "string" } }, "required": ["message"], "additionalProperties": false } }, "required": ["name", "data"], "additionalProperties": false }, "SyncEventMessageUpdated": { "type": "object", "properties": { "type": { "type": "string", "enum": ["sync"] }, "name": { "type": "string", "enum": ["message.updated.1"] }, "id": { "type": "string" }, "seq": { "type": "number" }, "aggregateID": { "type": "string", "enum": ["sessionID"] }, "data": { "type": "object", "properties": { "sessionID": { "type": "string", "pattern": "^ses" }, "info": { "$ref": "#/components/schemas/Message" } }, "required": ["sessionID", "info"], "additionalProperties": false } }, "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, "SyncEventMessageRemoved": { "type": "object", "properties": { "type": { "type": "string", "enum": ["sync"] }, "name": { "type": "string", "enum": ["message.removed.1"] }, "id": { "type": "string" }, "seq": { "type": "number" }, "aggregateID": { "type": "string", "enum": ["sessionID"] }, "data": { "type": "object", "properties": { "sessionID": { "type": "string", "pattern": "^ses" }, "messageID": { "type": "string", "pattern": "^msg" } }, "required": ["sessionID", "messageID"], "additionalProperties": false } }, "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, "SyncEventMessagePartUpdated": { "type": "object", "properties": { "type": { "type": "string", "enum": ["sync"] }, "name": { "type": "string", "enum": ["message.part.updated.1"] }, "id": { "type": "string" }, "seq": { "type": "number" }, "aggregateID": { "type": "string", "enum": ["sessionID"] }, "data": { "type": "object", "properties": { "sessionID": { "type": "string", "pattern": "^ses" }, "part": { "$ref": "#/components/schemas/Part" }, "time": { "type": "integer", "minimum": 0 } }, "required": ["sessionID", "part", "time"], "additionalProperties": false } }, "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, "SyncEventMessagePartRemoved": { "type": "object", "properties": { "type": { "type": "string", "enum": ["sync"] }, "name": { "type": "string", "enum": ["message.part.removed.1"] }, "id": { "type": "string" }, "seq": { "type": "number" }, "aggregateID": { "type": "string", "enum": ["sessionID"] }, "data": { "type": "object", "properties": { "sessionID": { "type": "string", "pattern": "^ses" }, "messageID": { "type": "string", "pattern": "^msg" }, "partID": { "type": "string", "pattern": "^prt" } }, "required": ["sessionID", "messageID", "partID"], "additionalProperties": false } }, "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, "SyncEventSessionCreated": { "type": "object", "properties": { "type": { "type": "string", "enum": ["sync"] }, "name": { "type": "string", "enum": ["session.created.1"] }, "id": { "type": "string" }, "seq": { "type": "number" }, "aggregateID": { "type": "string", "enum": ["sessionID"] }, "data": { "type": "object", "properties": { "sessionID": { "type": "string", "pattern": "^ses" }, "info": { "$ref": "#/components/schemas/Session" } }, "required": ["sessionID", "info"], "additionalProperties": false } }, "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, "SyncEventSessionUpdated": { "type": "object", "properties": { "type": { "type": "string", "enum": ["sync"] }, "name": { "type": "string", "enum": ["session.updated.1"] }, "id": { "type": "string" }, "seq": { "type": "number" }, "aggregateID": { "type": "string", "enum": ["sessionID"] }, "data": { "type": "object", "properties": { "sessionID": { "type": "string", "pattern": "^ses" }, "info": { "type": "object", "properties": { "id": { "anyOf": [ { "type": "string", "pattern": "^ses" }, { "type": "null" } ] }, "slug": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "projectID": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "workspaceID": { "anyOf": [ { "type": "string", "pattern": "^wrk" }, { "type": "null" } ] }, "directory": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "path": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "parentID": { "anyOf": [ { "type": "string", "pattern": "^ses" }, { "type": "null" } ] }, "summary": { "anyOf": [ { "type": "object", "properties": { "additions": { "type": "number" }, "deletions": { "type": "number" }, "files": { "type": "number" }, "diffs": { "type": "array", "items": { "$ref": "#/components/schemas/SnapshotFileDiff" } } }, "required": ["additions", "deletions", "files"], "additionalProperties": false }, { "type": "null" } ] }, "cost": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "tokens": { "anyOf": [ { "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"], "additionalProperties": false } }, "required": ["input", "output", "reasoning", "cache"], "additionalProperties": false }, { "type": "null" } ] }, "share": { "type": "object", "properties": { "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ] } }, "additionalProperties": false }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "agent": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "model": { "anyOf": [ { "type": "object", "properties": { "id": { "type": "string" }, "providerID": { "type": "string" }, "variant": { "type": "string" } }, "required": ["id", "providerID"], "additionalProperties": false }, { "type": "null" } ] }, "version": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "time": { "type": "object", "properties": { "created": { "anyOf": [ { "type": "integer", "minimum": 0 }, { "type": "null" } ] }, "updated": { "anyOf": [ { "type": "integer", "minimum": 0 }, { "type": "null" } ] }, "compacting": { "anyOf": [ { "type": "integer", "minimum": 0 }, { "type": "null" } ] }, "archived": { "anyOf": [ { "type": "number" }, { "type": "null" } ] } }, "additionalProperties": false }, "permission": { "anyOf": [ { "$ref": "#/components/schemas/PermissionRuleset" }, { "type": "null" } ] }, "revert": { "anyOf": [ { "type": "object", "properties": { "messageID": { "type": "string", "pattern": "^msg" }, "partID": { "type": "string", "pattern": "^prt" }, "snapshot": { "type": "string" }, "diff": { "type": "string" } }, "required": ["messageID"], "additionalProperties": false }, { "type": "null" } ] } }, "additionalProperties": false } }, "required": ["sessionID", "info"], "additionalProperties": false } }, "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, "SyncEventSessionDeleted": { "type": "object", "properties": { "type": { "type": "string", "enum": ["sync"] }, "name": { "type": "string", "enum": ["session.deleted.1"] }, "id": { "type": "string" }, "seq": { "type": "number" }, "aggregateID": { "type": "string", "enum": ["sessionID"] }, "data": { "type": "object", "properties": { "sessionID": { "type": "string", "pattern": "^ses" }, "info": { "$ref": "#/components/schemas/Session" } }, "required": ["sessionID", "info"], "additionalProperties": false } }, "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, "SyncEventSessionNextAgentSwitched": { "type": "object", "properties": { "type": { "type": "string", "enum": ["sync"] }, "name": { "type": "string", "enum": ["session.next.agent.switched.1"] }, "id": { "type": "string" }, "seq": { "type": "number" }, "aggregateID": { "type": "string", "enum": ["sessionID"] }, "data": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "agent": { "type": "string" } }, "required": ["timestamp", "sessionID", "agent"], "additionalProperties": false } }, "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, "SyncEventSessionNextModelSwitched": { "type": "object", "properties": { "type": { "type": "string", "enum": ["sync"] }, "name": { "type": "string", "enum": ["session.next.model.switched.1"] }, "id": { "type": "string" }, "seq": { "type": "number" }, "aggregateID": { "type": "string", "enum": ["sessionID"] }, "data": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "model": { "type": "object", "properties": { "id": { "type": "string" }, "providerID": { "type": "string" }, "variant": { "type": "string" } }, "required": ["id", "providerID", "variant"], "additionalProperties": false } }, "required": ["timestamp", "sessionID", "model"], "additionalProperties": false } }, "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, "SyncEventSessionNextPrompted": { "type": "object", "properties": { "type": { "type": "string", "enum": ["sync"] }, "name": { "type": "string", "enum": ["session.next.prompted.1"] }, "id": { "type": "string" }, "seq": { "type": "number" }, "aggregateID": { "type": "string", "enum": ["sessionID"] }, "data": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "prompt": { "$ref": "#/components/schemas/Prompt" } }, "required": ["timestamp", "sessionID", "prompt"], "additionalProperties": false } }, "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, "SyncEventSessionNextSynthetic": { "type": "object", "properties": { "type": { "type": "string", "enum": ["sync"] }, "name": { "type": "string", "enum": ["session.next.synthetic.1"] }, "id": { "type": "string" }, "seq": { "type": "number" }, "aggregateID": { "type": "string", "enum": ["sessionID"] }, "data": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "text": { "type": "string" } }, "required": ["timestamp", "sessionID", "text"], "additionalProperties": false } }, "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, "SyncEventSessionNextShellStarted": { "type": "object", "properties": { "type": { "type": "string", "enum": ["sync"] }, "name": { "type": "string", "enum": ["session.next.shell.started.1"] }, "id": { "type": "string" }, "seq": { "type": "number" }, "aggregateID": { "type": "string", "enum": ["sessionID"] }, "data": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "callID": { "type": "string" }, "command": { "type": "string" } }, "required": ["timestamp", "sessionID", "callID", "command"], "additionalProperties": false } }, "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, "SyncEventSessionNextShellEnded": { "type": "object", "properties": { "type": { "type": "string", "enum": ["sync"] }, "name": { "type": "string", "enum": ["session.next.shell.ended.1"] }, "id": { "type": "string" }, "seq": { "type": "number" }, "aggregateID": { "type": "string", "enum": ["sessionID"] }, "data": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "callID": { "type": "string" }, "output": { "type": "string" } }, "required": ["timestamp", "sessionID", "callID", "output"], "additionalProperties": false } }, "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, "SyncEventSessionNextStepStarted": { "type": "object", "properties": { "type": { "type": "string", "enum": ["sync"] }, "name": { "type": "string", "enum": ["session.next.step.started.1"] }, "id": { "type": "string" }, "seq": { "type": "number" }, "aggregateID": { "type": "string", "enum": ["sessionID"] }, "data": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "agent": { "type": "string" }, "model": { "type": "object", "properties": { "id": { "type": "string" }, "providerID": { "type": "string" }, "variant": { "type": "string" } }, "required": ["id", "providerID", "variant"], "additionalProperties": false }, "snapshot": { "type": "string" } }, "required": ["timestamp", "sessionID", "agent", "model"], "additionalProperties": false } }, "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, "SyncEventSessionNextStepEnded": { "type": "object", "properties": { "type": { "type": "string", "enum": ["sync"] }, "name": { "type": "string", "enum": ["session.next.step.ended.1"] }, "id": { "type": "string" }, "seq": { "type": "number" }, "aggregateID": { "type": "string", "enum": ["sessionID"] }, "data": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "finish": { "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"], "additionalProperties": false } }, "required": ["input", "output", "reasoning", "cache"], "additionalProperties": false }, "snapshot": { "type": "string" } }, "required": ["timestamp", "sessionID", "finish", "cost", "tokens"], "additionalProperties": false } }, "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, "SyncEventSessionNextStepFailed": { "type": "object", "properties": { "type": { "type": "string", "enum": ["sync"] }, "name": { "type": "string", "enum": ["session.next.step.failed.1"] }, "id": { "type": "string" }, "seq": { "type": "number" }, "aggregateID": { "type": "string", "enum": ["sessionID"] }, "data": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "error": { "$ref": "#/components/schemas/SessionErrorUnknown" } }, "required": ["timestamp", "sessionID", "error"], "additionalProperties": false } }, "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, "SyncEventSessionNextTextStarted": { "type": "object", "properties": { "type": { "type": "string", "enum": ["sync"] }, "name": { "type": "string", "enum": ["session.next.text.started.1"] }, "id": { "type": "string" }, "seq": { "type": "number" }, "aggregateID": { "type": "string", "enum": ["sessionID"] }, "data": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" } }, "required": ["timestamp", "sessionID"], "additionalProperties": false } }, "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, "SyncEventSessionNextTextDelta": { "type": "object", "properties": { "type": { "type": "string", "enum": ["sync"] }, "name": { "type": "string", "enum": ["session.next.text.delta.1"] }, "id": { "type": "string" }, "seq": { "type": "number" }, "aggregateID": { "type": "string", "enum": ["sessionID"] }, "data": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "delta": { "type": "string" } }, "required": ["timestamp", "sessionID", "delta"], "additionalProperties": false } }, "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, "SyncEventSessionNextTextEnded": { "type": "object", "properties": { "type": { "type": "string", "enum": ["sync"] }, "name": { "type": "string", "enum": ["session.next.text.ended.1"] }, "id": { "type": "string" }, "seq": { "type": "number" }, "aggregateID": { "type": "string", "enum": ["sessionID"] }, "data": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "text": { "type": "string" } }, "required": ["timestamp", "sessionID", "text"], "additionalProperties": false } }, "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, "SyncEventSessionNextReasoningStarted": { "type": "object", "properties": { "type": { "type": "string", "enum": ["sync"] }, "name": { "type": "string", "enum": ["session.next.reasoning.started.1"] }, "id": { "type": "string" }, "seq": { "type": "number" }, "aggregateID": { "type": "string", "enum": ["sessionID"] }, "data": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "reasoningID": { "type": "string" } }, "required": ["timestamp", "sessionID", "reasoningID"], "additionalProperties": false } }, "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, "SyncEventSessionNextReasoningDelta": { "type": "object", "properties": { "type": { "type": "string", "enum": ["sync"] }, "name": { "type": "string", "enum": ["session.next.reasoning.delta.1"] }, "id": { "type": "string" }, "seq": { "type": "number" }, "aggregateID": { "type": "string", "enum": ["sessionID"] }, "data": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "reasoningID": { "type": "string" }, "delta": { "type": "string" } }, "required": ["timestamp", "sessionID", "reasoningID", "delta"], "additionalProperties": false } }, "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, "SyncEventSessionNextReasoningEnded": { "type": "object", "properties": { "type": { "type": "string", "enum": ["sync"] }, "name": { "type": "string", "enum": ["session.next.reasoning.ended.1"] }, "id": { "type": "string" }, "seq": { "type": "number" }, "aggregateID": { "type": "string", "enum": ["sessionID"] }, "data": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "reasoningID": { "type": "string" }, "text": { "type": "string" } }, "required": ["timestamp", "sessionID", "reasoningID", "text"], "additionalProperties": false } }, "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, "SyncEventSessionNextToolInputStarted": { "type": "object", "properties": { "type": { "type": "string", "enum": ["sync"] }, "name": { "type": "string", "enum": ["session.next.tool.input.started.1"] }, "id": { "type": "string" }, "seq": { "type": "number" }, "aggregateID": { "type": "string", "enum": ["sessionID"] }, "data": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "callID": { "type": "string" }, "name": { "type": "string" } }, "required": ["timestamp", "sessionID", "callID", "name"], "additionalProperties": false } }, "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, "SyncEventSessionNextToolInputDelta": { "type": "object", "properties": { "type": { "type": "string", "enum": ["sync"] }, "name": { "type": "string", "enum": ["session.next.tool.input.delta.1"] }, "id": { "type": "string" }, "seq": { "type": "number" }, "aggregateID": { "type": "string", "enum": ["sessionID"] }, "data": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "callID": { "type": "string" }, "delta": { "type": "string" } }, "required": ["timestamp", "sessionID", "callID", "delta"], "additionalProperties": false } }, "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, "SyncEventSessionNextToolInputEnded": { "type": "object", "properties": { "type": { "type": "string", "enum": ["sync"] }, "name": { "type": "string", "enum": ["session.next.tool.input.ended.1"] }, "id": { "type": "string" }, "seq": { "type": "number" }, "aggregateID": { "type": "string", "enum": ["sessionID"] }, "data": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "callID": { "type": "string" }, "text": { "type": "string" } }, "required": ["timestamp", "sessionID", "callID", "text"], "additionalProperties": false } }, "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, "SyncEventSessionNextToolCalled": { "type": "object", "properties": { "type": { "type": "string", "enum": ["sync"] }, "name": { "type": "string", "enum": ["session.next.tool.called.1"] }, "id": { "type": "string" }, "seq": { "type": "number" }, "aggregateID": { "type": "string", "enum": ["sessionID"] }, "data": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "callID": { "type": "string" }, "tool": { "type": "string" }, "input": { "type": "object" }, "provider": { "type": "object", "properties": { "executed": { "type": "boolean" }, "metadata": { "type": "object" } }, "required": ["executed"], "additionalProperties": false } }, "required": ["timestamp", "sessionID", "callID", "tool", "input", "provider"], "additionalProperties": false } }, "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, "SyncEventSessionNextToolProgress": { "type": "object", "properties": { "type": { "type": "string", "enum": ["sync"] }, "name": { "type": "string", "enum": ["session.next.tool.progress.1"] }, "id": { "type": "string" }, "seq": { "type": "number" }, "aggregateID": { "type": "string", "enum": ["sessionID"] }, "data": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "callID": { "type": "string" }, "structured": { "type": "object" }, "content": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/ToolTextContent" }, { "$ref": "#/components/schemas/ToolFileContent" } ] } } }, "required": ["timestamp", "sessionID", "callID", "structured", "content"], "additionalProperties": false } }, "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, "SyncEventSessionNextToolSuccess": { "type": "object", "properties": { "type": { "type": "string", "enum": ["sync"] }, "name": { "type": "string", "enum": ["session.next.tool.success.1"] }, "id": { "type": "string" }, "seq": { "type": "number" }, "aggregateID": { "type": "string", "enum": ["sessionID"] }, "data": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "callID": { "type": "string" }, "structured": { "type": "object" }, "content": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/ToolTextContent" }, { "$ref": "#/components/schemas/ToolFileContent" } ] } }, "provider": { "type": "object", "properties": { "executed": { "type": "boolean" }, "metadata": { "type": "object" } }, "required": ["executed"], "additionalProperties": false } }, "required": ["timestamp", "sessionID", "callID", "structured", "content", "provider"], "additionalProperties": false } }, "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, "SyncEventSessionNextToolFailed": { "type": "object", "properties": { "type": { "type": "string", "enum": ["sync"] }, "name": { "type": "string", "enum": ["session.next.tool.failed.1"] }, "id": { "type": "string" }, "seq": { "type": "number" }, "aggregateID": { "type": "string", "enum": ["sessionID"] }, "data": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "callID": { "type": "string" }, "error": { "$ref": "#/components/schemas/SessionErrorUnknown" }, "provider": { "type": "object", "properties": { "executed": { "type": "boolean" }, "metadata": { "type": "object" } }, "required": ["executed"], "additionalProperties": false } }, "required": ["timestamp", "sessionID", "callID", "error", "provider"], "additionalProperties": false } }, "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, "SyncEventSessionNextRetried": { "type": "object", "properties": { "type": { "type": "string", "enum": ["sync"] }, "name": { "type": "string", "enum": ["session.next.retried.1"] }, "id": { "type": "string" }, "seq": { "type": "number" }, "aggregateID": { "type": "string", "enum": ["sessionID"] }, "data": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "attempt": { "type": "number" }, "error": { "$ref": "#/components/schemas/SessionNextRetry_error" } }, "required": ["timestamp", "sessionID", "attempt", "error"], "additionalProperties": false } }, "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, "SyncEventSessionNextCompactionStarted": { "type": "object", "properties": { "type": { "type": "string", "enum": ["sync"] }, "name": { "type": "string", "enum": ["session.next.compaction.started.1"] }, "id": { "type": "string" }, "seq": { "type": "number" }, "aggregateID": { "type": "string", "enum": ["sessionID"] }, "data": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "reason": { "type": "string", "enum": ["auto", "manual"] } }, "required": ["timestamp", "sessionID", "reason"], "additionalProperties": false } }, "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, "SyncEventSessionNextCompactionDelta": { "type": "object", "properties": { "type": { "type": "string", "enum": ["sync"] }, "name": { "type": "string", "enum": ["session.next.compaction.delta.1"] }, "id": { "type": "string" }, "seq": { "type": "number" }, "aggregateID": { "type": "string", "enum": ["sessionID"] }, "data": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "text": { "type": "string" } }, "required": ["timestamp", "sessionID", "text"], "additionalProperties": false } }, "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, "SyncEventSessionNextCompactionEnded": { "type": "object", "properties": { "type": { "type": "string", "enum": ["sync"] }, "name": { "type": "string", "enum": ["session.next.compaction.ended.1"] }, "id": { "type": "string" }, "seq": { "type": "number" }, "aggregateID": { "type": "string", "enum": ["sessionID"] }, "data": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "text": { "type": "string" }, "include": { "type": "string" } }, "required": ["timestamp", "sessionID", "text"], "additionalProperties": false } }, "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, "EventServerInstanceDisposed": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["server.instance.disposed"] }, "properties": { "type": "object", "properties": { "directory": { "type": "string" } }, "required": ["directory"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventFileEdited": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["file.edited"] }, "properties": { "type": "object", "properties": { "file": { "type": "string" } }, "required": ["file"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventFileWatcherUpdated": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["file.watcher.updated"] }, "properties": { "type": "object", "properties": { "file": { "type": "string" }, "event": { "type": "string", "enum": ["add", "change", "unlink"] } }, "required": ["file", "event"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventLspClientDiagnostics": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["lsp.client.diagnostics"] }, "properties": { "type": "object", "properties": { "serverID": { "type": "string" }, "path": { "type": "string" } }, "required": ["serverID", "path"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventLspUpdated": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["lsp.updated"] }, "properties": { "type": "object", "properties": {} } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventMessagePartDelta": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["message.part.delta"] }, "properties": { "type": "object", "properties": { "sessionID": { "type": "string", "pattern": "^ses" }, "messageID": { "type": "string", "pattern": "^msg" }, "partID": { "type": "string", "pattern": "^prt" }, "field": { "type": "string" }, "delta": { "type": "string" } }, "required": ["sessionID", "messageID", "partID", "field", "delta"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventPermissionAsked": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["permission.asked"] }, "properties": { "$ref": "#/components/schemas/PermissionRequest" } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventPermissionReplied": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["permission.replied"] }, "properties": { "type": "object", "properties": { "sessionID": { "type": "string", "pattern": "^ses" }, "requestID": { "type": "string", "pattern": "^per" }, "reply": { "type": "string", "enum": ["once", "always", "reject"] } }, "required": ["sessionID", "requestID", "reply"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventSessionDiff": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.diff"] }, "properties": { "type": "object", "properties": { "sessionID": { "type": "string", "pattern": "^ses" }, "diff": { "type": "array", "items": { "$ref": "#/components/schemas/SnapshotFileDiff" } } }, "required": ["sessionID", "diff"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventSessionError": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.error"] }, "properties": { "type": "object", "properties": { "sessionID": { "type": "string", "pattern": "^ses" }, "error": { "anyOf": [ { "$ref": "#/components/schemas/ProviderAuthError" }, { "$ref": "#/components/schemas/UnknownError" }, { "$ref": "#/components/schemas/MessageOutputLengthError" }, { "$ref": "#/components/schemas/MessageAbortedError" }, { "$ref": "#/components/schemas/StructuredOutputError" }, { "$ref": "#/components/schemas/ContextOverflowError" }, { "$ref": "#/components/schemas/APIError" } ] } }, "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventQuestionAsked": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["question.asked"] }, "properties": { "$ref": "#/components/schemas/QuestionRequest" } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventQuestionReplied": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["question.replied"] }, "properties": { "$ref": "#/components/schemas/QuestionReplied" } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventQuestionRejected": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["question.rejected"] }, "properties": { "$ref": "#/components/schemas/QuestionRejected" } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventTodoUpdated": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["todo.updated"] }, "properties": { "type": "object", "properties": { "sessionID": { "type": "string", "pattern": "^ses" }, "todos": { "type": "array", "items": { "$ref": "#/components/schemas/Todo" } } }, "required": ["sessionID", "todos"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventSessionStatus": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.status"] }, "properties": { "type": "object", "properties": { "sessionID": { "type": "string", "pattern": "^ses" }, "status": { "$ref": "#/components/schemas/SessionStatus" } }, "required": ["sessionID", "status"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventSessionIdle": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.idle"] }, "properties": { "type": "object", "properties": { "sessionID": { "type": "string", "pattern": "^ses" } }, "required": ["sessionID"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventSessionCompacted": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.compacted"] }, "properties": { "type": "object", "properties": { "sessionID": { "type": "string", "pattern": "^ses" } }, "required": ["sessionID"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventMcpToolsChanged": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["mcp.tools.changed"] }, "properties": { "type": "object", "properties": { "server": { "type": "string" } }, "required": ["server"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventMcpBrowserOpenFailed": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["mcp.browser.open.failed"] }, "properties": { "type": "object", "properties": { "mcpName": { "type": "string" }, "url": { "type": "string" } }, "required": ["mcpName", "url"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventCommandExecuted": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["command.executed"] }, "properties": { "type": "object", "properties": { "name": { "type": "string" }, "sessionID": { "type": "string", "pattern": "^ses" }, "arguments": { "type": "string" }, "messageID": { "type": "string", "pattern": "^msg" } }, "required": ["name", "sessionID", "arguments", "messageID"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventProjectUpdated": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["project.updated"] }, "properties": { "$ref": "#/components/schemas/Project" } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventVcsBranchUpdated": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["vcs.branch.updated"] }, "properties": { "type": "object", "properties": { "branch": { "type": "string" } }, "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventWorkspaceReady": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["workspace.ready"] }, "properties": { "type": "object", "properties": { "name": { "type": "string" } }, "required": ["name"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventWorkspaceFailed": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["workspace.failed"] }, "properties": { "type": "object", "properties": { "message": { "type": "string" } }, "required": ["message"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventWorkspaceStatus": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["workspace.status"] }, "properties": { "type": "object", "properties": { "workspaceID": { "type": "string", "pattern": "^wrk" }, "status": { "type": "string", "enum": ["connected", "connecting", "disconnected", "error"] } }, "required": ["workspaceID", "status"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventWorktreeReady": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["worktree.ready"] }, "properties": { "type": "object", "properties": { "name": { "type": "string" }, "branch": { "type": "string" } }, "required": ["name"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventWorktreeFailed": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["worktree.failed"] }, "properties": { "type": "object", "properties": { "message": { "type": "string" } }, "required": ["message"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventPtyCreated": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["pty.created"] }, "properties": { "type": "object", "properties": { "info": { "$ref": "#/components/schemas/Pty" } }, "required": ["info"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventPtyUpdated": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["pty.updated"] }, "properties": { "type": "object", "properties": { "info": { "$ref": "#/components/schemas/Pty" } }, "required": ["info"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventPtyExited": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["pty.exited"] }, "properties": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^pty" }, "exitCode": { "type": "integer", "minimum": 0 } }, "required": ["id", "exitCode"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventPtyDeleted": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["pty.deleted"] }, "properties": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^pty" } }, "required": ["id"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventInstallationUpdated": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["installation.updated"] }, "properties": { "type": "object", "properties": { "version": { "type": "string" } }, "required": ["version"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventInstallationUpdate-available": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["installation.update-available"] }, "properties": { "type": "object", "properties": { "version": { "type": "string" } }, "required": ["version"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventMessageUpdated": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["message.updated"] }, "properties": { "type": "object", "properties": { "sessionID": { "type": "string", "pattern": "^ses" }, "info": { "$ref": "#/components/schemas/Message" } }, "required": ["sessionID", "info"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventMessageRemoved": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["message.removed"] }, "properties": { "type": "object", "properties": { "sessionID": { "type": "string", "pattern": "^ses" }, "messageID": { "type": "string", "pattern": "^msg" } }, "required": ["sessionID", "messageID"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventMessagePartUpdated": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["message.part.updated"] }, "properties": { "type": "object", "properties": { "sessionID": { "type": "string", "pattern": "^ses" }, "part": { "$ref": "#/components/schemas/Part" }, "time": { "type": "integer", "minimum": 0 } }, "required": ["sessionID", "part", "time"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventMessagePartRemoved": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["message.part.removed"] }, "properties": { "type": "object", "properties": { "sessionID": { "type": "string", "pattern": "^ses" }, "messageID": { "type": "string", "pattern": "^msg" }, "partID": { "type": "string", "pattern": "^prt" } }, "required": ["sessionID", "messageID", "partID"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventSessionCreated": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.created"] }, "properties": { "type": "object", "properties": { "sessionID": { "type": "string", "pattern": "^ses" }, "info": { "$ref": "#/components/schemas/Session" } }, "required": ["sessionID", "info"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventSessionUpdated": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.updated"] }, "properties": { "type": "object", "properties": { "sessionID": { "type": "string", "pattern": "^ses" }, "info": { "$ref": "#/components/schemas/Session" } }, "required": ["sessionID", "info"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventSessionDeleted": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.deleted"] }, "properties": { "type": "object", "properties": { "sessionID": { "type": "string", "pattern": "^ses" }, "info": { "$ref": "#/components/schemas/Session" } }, "required": ["sessionID", "info"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventSessionNextAgentSwitched": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.next.agent.switched"] }, "properties": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "agent": { "type": "string" } }, "required": ["timestamp", "sessionID", "agent"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventSessionNextModelSwitched": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.next.model.switched"] }, "properties": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "model": { "type": "object", "properties": { "id": { "type": "string" }, "providerID": { "type": "string" }, "variant": { "type": "string" } }, "required": ["id", "providerID", "variant"], "additionalProperties": false } }, "required": ["timestamp", "sessionID", "model"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "PromptSource": { "type": "object", "properties": { "start": { "type": "number" }, "end": { "type": "number" }, "text": { "type": "string" } }, "required": ["start", "end", "text"], "additionalProperties": false }, "PromptFileAttachment": { "type": "object", "properties": { "uri": { "type": "string" }, "mime": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "source": { "$ref": "#/components/schemas/PromptSource" } }, "required": ["uri", "mime"], "additionalProperties": false }, "PromptAgentAttachment": { "type": "object", "properties": { "name": { "type": "string" }, "source": { "$ref": "#/components/schemas/PromptSource" } }, "required": ["name"], "additionalProperties": false }, "PromptReferenceAttachment": { "type": "object", "properties": { "name": { "type": "string" }, "kind": { "type": "string", "enum": ["local", "git", "invalid"] }, "uri": { "type": "string" }, "repository": { "type": "string" }, "branch": { "type": "string" }, "target": { "type": "string" }, "targetUri": { "type": "string" }, "problem": { "type": "string" }, "source": { "$ref": "#/components/schemas/PromptSource" } }, "required": ["name", "kind"], "additionalProperties": false }, "EventSessionNextPrompted": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.next.prompted"] }, "properties": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "prompt": { "$ref": "#/components/schemas/Prompt" } }, "required": ["timestamp", "sessionID", "prompt"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventSessionNextSynthetic": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.next.synthetic"] }, "properties": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "text": { "type": "string" } }, "required": ["timestamp", "sessionID", "text"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventSessionNextShellStarted": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.next.shell.started"] }, "properties": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "callID": { "type": "string" }, "command": { "type": "string" } }, "required": ["timestamp", "sessionID", "callID", "command"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventSessionNextShellEnded": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.next.shell.ended"] }, "properties": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "callID": { "type": "string" }, "output": { "type": "string" } }, "required": ["timestamp", "sessionID", "callID", "output"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventSessionNextStepStarted": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.next.step.started"] }, "properties": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "agent": { "type": "string" }, "model": { "type": "object", "properties": { "id": { "type": "string" }, "providerID": { "type": "string" }, "variant": { "type": "string" } }, "required": ["id", "providerID", "variant"], "additionalProperties": false }, "snapshot": { "type": "string" } }, "required": ["timestamp", "sessionID", "agent", "model"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventSessionNextStepEnded": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.next.step.ended"] }, "properties": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "finish": { "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"], "additionalProperties": false } }, "required": ["input", "output", "reasoning", "cache"], "additionalProperties": false }, "snapshot": { "type": "string" } }, "required": ["timestamp", "sessionID", "finish", "cost", "tokens"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "SessionErrorUnknown": { "type": "object", "properties": { "type": { "type": "string", "enum": ["unknown"] }, "message": { "type": "string" } }, "required": ["type", "message"], "additionalProperties": false }, "EventSessionNextStepFailed": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.next.step.failed"] }, "properties": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "error": { "$ref": "#/components/schemas/SessionErrorUnknown" } }, "required": ["timestamp", "sessionID", "error"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventSessionNextTextStarted": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.next.text.started"] }, "properties": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" } }, "required": ["timestamp", "sessionID"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventSessionNextTextDelta": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.next.text.delta"] }, "properties": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "delta": { "type": "string" } }, "required": ["timestamp", "sessionID", "delta"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventSessionNextTextEnded": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.next.text.ended"] }, "properties": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "text": { "type": "string" } }, "required": ["timestamp", "sessionID", "text"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventSessionNextReasoningStarted": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.next.reasoning.started"] }, "properties": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "reasoningID": { "type": "string" } }, "required": ["timestamp", "sessionID", "reasoningID"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventSessionNextReasoningDelta": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.next.reasoning.delta"] }, "properties": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "reasoningID": { "type": "string" }, "delta": { "type": "string" } }, "required": ["timestamp", "sessionID", "reasoningID", "delta"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventSessionNextReasoningEnded": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.next.reasoning.ended"] }, "properties": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "reasoningID": { "type": "string" }, "text": { "type": "string" } }, "required": ["timestamp", "sessionID", "reasoningID", "text"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventSessionNextToolInputStarted": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.next.tool.input.started"] }, "properties": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "callID": { "type": "string" }, "name": { "type": "string" } }, "required": ["timestamp", "sessionID", "callID", "name"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventSessionNextToolInputDelta": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.next.tool.input.delta"] }, "properties": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "callID": { "type": "string" }, "delta": { "type": "string" } }, "required": ["timestamp", "sessionID", "callID", "delta"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventSessionNextToolInputEnded": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.next.tool.input.ended"] }, "properties": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "callID": { "type": "string" }, "text": { "type": "string" } }, "required": ["timestamp", "sessionID", "callID", "text"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventSessionNextToolCalled": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.next.tool.called"] }, "properties": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "callID": { "type": "string" }, "tool": { "type": "string" }, "input": { "type": "object" }, "provider": { "type": "object", "properties": { "executed": { "type": "boolean" }, "metadata": { "type": "object" } }, "required": ["executed"], "additionalProperties": false } }, "required": ["timestamp", "sessionID", "callID", "tool", "input", "provider"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "ToolTextContent": { "type": "object", "properties": { "type": { "type": "string", "enum": ["text"] }, "text": { "type": "string" } }, "required": ["type", "text"], "additionalProperties": false }, "ToolFileContent": { "type": "object", "properties": { "type": { "type": "string", "enum": ["file"] }, "uri": { "type": "string" }, "mime": { "type": "string" }, "name": { "type": "string" } }, "required": ["type", "uri", "mime"], "additionalProperties": false }, "EventSessionNextToolProgress": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.next.tool.progress"] }, "properties": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "callID": { "type": "string" }, "structured": { "type": "object" }, "content": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/ToolTextContent" }, { "$ref": "#/components/schemas/ToolFileContent" } ] } } }, "required": ["timestamp", "sessionID", "callID", "structured", "content"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventSessionNextToolSuccess": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.next.tool.success"] }, "properties": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "callID": { "type": "string" }, "structured": { "type": "object" }, "content": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/ToolTextContent" }, { "$ref": "#/components/schemas/ToolFileContent" } ] } }, "provider": { "type": "object", "properties": { "executed": { "type": "boolean" }, "metadata": { "type": "object" } }, "required": ["executed"], "additionalProperties": false } }, "required": ["timestamp", "sessionID", "callID", "structured", "content", "provider"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventSessionNextToolFailed": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.next.tool.failed"] }, "properties": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "callID": { "type": "string" }, "error": { "$ref": "#/components/schemas/SessionErrorUnknown" }, "provider": { "type": "object", "properties": { "executed": { "type": "boolean" }, "metadata": { "type": "object" } }, "required": ["executed"], "additionalProperties": false } }, "required": ["timestamp", "sessionID", "callID", "error", "provider"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "SessionNextRetry_error": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number" }, "isRetryable": { "type": "boolean" }, "responseHeaders": { "type": "object", "additionalProperties": { "type": "string" } }, "responseBody": { "type": "string" }, "metadata": { "type": "object", "additionalProperties": { "type": "string" } } }, "required": ["message", "isRetryable"], "additionalProperties": false }, "EventSessionNextRetried": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.next.retried"] }, "properties": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "attempt": { "type": "number" }, "error": { "$ref": "#/components/schemas/SessionNextRetry_error" } }, "required": ["timestamp", "sessionID", "attempt", "error"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventSessionNextCompactionStarted": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.next.compaction.started"] }, "properties": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "reason": { "type": "string", "enum": ["auto", "manual"] } }, "required": ["timestamp", "sessionID", "reason"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventSessionNextCompactionDelta": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.next.compaction.delta"] }, "properties": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "text": { "type": "string" } }, "required": ["timestamp", "sessionID", "text"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventSessionNextCompactionEnded": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["session.next.compaction.ended"] }, "properties": { "type": "object", "properties": { "timestamp": { "type": "number" }, "sessionID": { "type": "string", "pattern": "^ses" }, "text": { "type": "string" }, "include": { "type": "string" } }, "required": ["timestamp", "sessionID", "text"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventServerConnected": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["server.connected"] }, "properties": { "type": "object", "properties": {} } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "EventGlobalDisposed": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["global.disposed"] }, "properties": { "type": "object", "properties": {} } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "SessionInfo": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^ses" }, "parentID": { "type": "string", "pattern": "^ses" }, "projectID": { "type": "string" }, "workspaceID": { "type": "string", "pattern": "^wrk" }, "path": { "type": "string" }, "agent": { "type": "string" }, "model": { "type": "object", "properties": { "id": { "type": "string" }, "providerID": { "type": "string" }, "variant": { "type": "string" } }, "required": ["id", "providerID", "variant"], "additionalProperties": false }, "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"], "additionalProperties": false } }, "required": ["input", "output", "reasoning", "cache"], "additionalProperties": false }, "time": { "type": "object", "properties": { "created": { "type": "number" }, "updated": { "type": "number" }, "archived": { "type": "number" } }, "required": ["created", "updated"], "additionalProperties": false }, "title": { "type": "string" } }, "required": ["id", "projectID", "cost", "tokens", "time", "title"], "additionalProperties": false }, "SessionDelivery": { "type": "string", "enum": ["immediate", "deferred"] }, "SessionMessageAgentSwitched": { "type": "object", "properties": { "id": { "type": "string" }, "metadata": { "type": "object" }, "time": { "type": "object", "properties": { "created": { "type": "number" } }, "required": ["created"], "additionalProperties": false }, "type": { "type": "string", "enum": ["agent-switched"] }, "agent": { "type": "string" } }, "required": ["id", "time", "type", "agent"], "additionalProperties": false }, "SessionMessageModelSwitched": { "type": "object", "properties": { "id": { "type": "string" }, "metadata": { "type": "object" }, "time": { "type": "object", "properties": { "created": { "type": "number" } }, "required": ["created"], "additionalProperties": false }, "type": { "type": "string", "enum": ["model-switched"] }, "model": { "type": "object", "properties": { "id": { "type": "string" }, "providerID": { "type": "string" }, "variant": { "type": "string" } }, "required": ["id", "providerID", "variant"], "additionalProperties": false } }, "required": ["id", "time", "type", "model"], "additionalProperties": false }, "SessionMessageUser": { "type": "object", "properties": { "id": { "type": "string" }, "metadata": { "type": "object" }, "time": { "type": "object", "properties": { "created": { "type": "number" } }, "required": ["created"], "additionalProperties": false }, "text": { "type": "string" }, "files": { "type": "array", "items": { "$ref": "#/components/schemas/PromptFileAttachment" } }, "agents": { "type": "array", "items": { "$ref": "#/components/schemas/PromptAgentAttachment" } }, "references": { "type": "array", "items": { "$ref": "#/components/schemas/PromptReferenceAttachment" } }, "type": { "type": "string", "enum": ["user"] } }, "required": ["id", "time", "text", "type"], "additionalProperties": false }, "SessionMessageSynthetic": { "type": "object", "properties": { "id": { "type": "string" }, "metadata": { "type": "object" }, "time": { "type": "object", "properties": { "created": { "type": "number" } }, "required": ["created"], "additionalProperties": false }, "sessionID": { "type": "string", "pattern": "^ses" }, "text": { "type": "string" }, "type": { "type": "string", "enum": ["synthetic"] } }, "required": ["id", "time", "sessionID", "text", "type"], "additionalProperties": false }, "SessionMessageShell": { "type": "object", "properties": { "id": { "type": "string" }, "metadata": { "type": "object" }, "time": { "type": "object", "properties": { "created": { "type": "number" }, "completed": { "type": "number" } }, "required": ["created"], "additionalProperties": false }, "type": { "type": "string", "enum": ["shell"] }, "callID": { "type": "string" }, "command": { "type": "string" }, "output": { "type": "string" } }, "required": ["id", "time", "type", "callID", "command", "output"], "additionalProperties": false }, "SessionMessageAssistantText": { "type": "object", "properties": { "type": { "type": "string", "enum": ["text"] }, "text": { "type": "string" } }, "required": ["type", "text"], "additionalProperties": false }, "SessionMessageAssistantReasoning": { "type": "object", "properties": { "type": { "type": "string", "enum": ["reasoning"] }, "id": { "type": "string" }, "text": { "type": "string" } }, "required": ["type", "id", "text"], "additionalProperties": false }, "SessionMessageToolStatePending": { "type": "object", "properties": { "status": { "type": "string", "enum": ["pending"] }, "input": { "type": "string" } }, "required": ["status", "input"], "additionalProperties": false }, "SessionMessageToolStateRunning": { "type": "object", "properties": { "status": { "type": "string", "enum": ["running"] }, "input": { "type": "object" }, "structured": { "type": "object" }, "content": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/ToolTextContent" }, { "$ref": "#/components/schemas/ToolFileContent" } ] } } }, "required": ["status", "input", "structured", "content"], "additionalProperties": false }, "SessionMessageToolStateCompleted": { "type": "object", "properties": { "status": { "type": "string", "enum": ["completed"] }, "input": { "type": "object" }, "attachments": { "type": "array", "items": { "$ref": "#/components/schemas/PromptFileAttachment" } }, "content": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/ToolTextContent" }, { "$ref": "#/components/schemas/ToolFileContent" } ] } }, "structured": { "type": "object" } }, "required": ["status", "input", "content", "structured"], "additionalProperties": false }, "SessionMessageToolStateError": { "type": "object", "properties": { "status": { "type": "string", "enum": ["error"] }, "input": { "type": "object" }, "content": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/ToolTextContent" }, { "$ref": "#/components/schemas/ToolFileContent" } ] } }, "structured": { "type": "object" }, "error": { "$ref": "#/components/schemas/SessionErrorUnknown" } }, "required": ["status", "input", "content", "structured", "error"], "additionalProperties": false }, "SessionMessageAssistantTool": { "type": "object", "properties": { "type": { "type": "string", "enum": ["tool"] }, "id": { "type": "string" }, "name": { "type": "string" }, "provider": { "type": "object", "properties": { "executed": { "type": "boolean" }, "metadata": { "type": "object" } }, "required": ["executed"], "additionalProperties": false }, "state": { "anyOf": [ { "$ref": "#/components/schemas/SessionMessageToolStatePending" }, { "$ref": "#/components/schemas/SessionMessageToolStateRunning" }, { "$ref": "#/components/schemas/SessionMessageToolStateCompleted" }, { "$ref": "#/components/schemas/SessionMessageToolStateError" } ] }, "time": { "type": "object", "properties": { "created": { "type": "number" }, "ran": { "type": "number" }, "completed": { "type": "number" }, "pruned": { "type": "number" } }, "required": ["created"], "additionalProperties": false } }, "required": ["type", "id", "name", "state", "time"], "additionalProperties": false }, "SessionMessageAssistant": { "type": "object", "properties": { "id": { "type": "string" }, "metadata": { "type": "object" }, "time": { "type": "object", "properties": { "created": { "type": "number" }, "completed": { "type": "number" } }, "required": ["created"], "additionalProperties": false }, "type": { "type": "string", "enum": ["assistant"] }, "agent": { "type": "string" }, "model": { "type": "object", "properties": { "id": { "type": "string" }, "providerID": { "type": "string" }, "variant": { "type": "string" } }, "required": ["id", "providerID", "variant"], "additionalProperties": false }, "content": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/SessionMessageAssistantText" }, { "$ref": "#/components/schemas/SessionMessageAssistantReasoning" }, { "$ref": "#/components/schemas/SessionMessageAssistantTool" } ] } }, "snapshot": { "type": "object", "properties": { "start": { "type": "string" }, "end": { "type": "string" } }, "additionalProperties": false }, "finish": { "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"], "additionalProperties": false } }, "required": ["input", "output", "reasoning", "cache"], "additionalProperties": false }, "error": { "$ref": "#/components/schemas/SessionErrorUnknown" } }, "required": ["id", "time", "type", "agent", "model", "content"], "additionalProperties": false }, "SessionMessageCompaction": { "type": "object", "properties": { "type": { "type": "string", "enum": ["compaction"] }, "reason": { "type": "string", "enum": ["auto", "manual"] }, "summary": { "type": "string" }, "include": { "type": "string" }, "id": { "type": "string" }, "metadata": { "type": "object" }, "time": { "type": "object", "properties": { "created": { "type": "number" } }, "required": ["created"], "additionalProperties": false } }, "required": ["type", "reason", "summary", "id", "time"], "additionalProperties": false }, "SessionMessage": { "anyOf": [ { "$ref": "#/components/schemas/SessionMessageAgentSwitched" }, { "$ref": "#/components/schemas/SessionMessageModelSwitched" }, { "$ref": "#/components/schemas/SessionMessageUser" }, { "$ref": "#/components/schemas/SessionMessageSynthetic" }, { "$ref": "#/components/schemas/SessionMessageShell" }, { "$ref": "#/components/schemas/SessionMessageAssistant" }, { "$ref": "#/components/schemas/SessionMessageCompaction" } ] }, "ModelV2Info": { "type": "object", "properties": { "id": { "type": "string" }, "apiID": { "type": "string" }, "providerID": { "type": "string" }, "family": { "type": "string" }, "name": { "type": "string" }, "endpoint": { "anyOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": ["unknown"] } }, "required": ["type"], "additionalProperties": false }, { "type": "object", "properties": { "type": { "type": "string", "enum": ["openai/responses"] }, "url": { "type": "string" }, "websocket": { "type": "boolean" } }, "required": ["type", "url"], "additionalProperties": false }, { "type": "object", "properties": { "type": { "type": "string", "enum": ["openai/completions"] }, "url": { "type": "string" }, "reasoning": { "anyOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": ["reasoning_content"] } }, "required": ["type"], "additionalProperties": false }, { "type": "object", "properties": { "type": { "type": "string", "enum": ["reasoning_details"] } }, "required": ["type"], "additionalProperties": false } ] } }, "required": ["type", "url"], "additionalProperties": false }, { "type": "object", "properties": { "type": { "type": "string", "enum": ["anthropic/messages"] }, "url": { "type": "string" } }, "required": ["type", "url"], "additionalProperties": false }, { "type": "object", "properties": { "type": { "type": "string", "enum": ["aisdk"] }, "package": { "type": "string" }, "url": { "type": "string" } }, "required": ["type", "package"], "additionalProperties": false } ] }, "capabilities": { "type": "object", "properties": { "tools": { "type": "boolean" }, "input": { "type": "array", "items": { "type": "string" } }, "output": { "type": "array", "items": { "type": "string" } } }, "required": ["tools", "input", "output"], "additionalProperties": false }, "options": { "type": "object", "properties": { "headers": { "type": "object", "additionalProperties": { "type": "string" } }, "body": { "type": "object" }, "aisdk": { "type": "object", "properties": { "provider": { "type": "object" }, "request": { "type": "object" } }, "required": ["provider", "request"], "additionalProperties": false }, "variant": { "type": "string" } }, "required": ["headers", "body", "aisdk"], "additionalProperties": false }, "variants": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "headers": { "type": "object", "additionalProperties": { "type": "string" } }, "body": { "type": "object" }, "aisdk": { "type": "object", "properties": { "provider": { "type": "object" }, "request": { "type": "object" } }, "required": ["provider", "request"], "additionalProperties": false } }, "required": ["id", "headers", "body", "aisdk"], "additionalProperties": false } }, "time": { "type": "object", "properties": { "released": { "anyOf": [ { "type": "number" }, { "type": "string", "enum": ["NaN"] }, { "type": "string", "enum": ["Infinity"] }, { "type": "string", "enum": ["-Infinity"] }, { "type": "string", "enum": ["Infinity", "-Infinity", "NaN"] } ] } }, "required": ["released"], "additionalProperties": false }, "cost": { "type": "array", "items": { "type": "object", "properties": { "tier": { "type": "object", "properties": { "type": { "type": "string", "enum": ["context"] }, "size": { "type": "integer" } }, "required": ["type", "size"], "additionalProperties": false }, "input": { "type": "number" }, "output": { "type": "number" }, "cache": { "type": "object", "properties": { "read": { "type": "number" }, "write": { "type": "number" } }, "required": ["read", "write"], "additionalProperties": false } }, "required": ["input", "output", "cache"], "additionalProperties": false } }, "status": { "type": "string", "enum": ["alpha", "beta", "deprecated", "active"] }, "enabled": { "type": "boolean" }, "limit": { "type": "object", "properties": { "context": { "type": "integer" }, "input": { "type": "integer" }, "output": { "type": "integer" } }, "required": ["context", "output"], "additionalProperties": false } }, "required": [ "id", "apiID", "providerID", "name", "endpoint", "capabilities", "options", "variants", "time", "cost", "status", "enabled", "limit" ], "additionalProperties": false }, "ProviderV2Info": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "enabled": { "anyOf": [ { "type": "boolean", "enum": [false] }, { "type": "object", "properties": { "via": { "type": "string", "enum": ["env"] }, "name": { "type": "string" } }, "required": ["via", "name"], "additionalProperties": false }, { "type": "object", "properties": { "via": { "type": "string", "enum": ["auth"] }, "service": { "type": "string" } }, "required": ["via", "service"], "additionalProperties": false }, { "type": "object", "properties": { "via": { "type": "string", "enum": ["custom"] }, "data": { "type": "object" } }, "required": ["via", "data"], "additionalProperties": false } ] }, "env": { "type": "array", "items": { "type": "string" } }, "endpoint": { "anyOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": ["unknown"] } }, "required": ["type"], "additionalProperties": false }, { "type": "object", "properties": { "type": { "type": "string", "enum": ["openai/responses"] }, "url": { "type": "string" }, "websocket": { "type": "boolean" } }, "required": ["type", "url"], "additionalProperties": false }, { "type": "object", "properties": { "type": { "type": "string", "enum": ["openai/completions"] }, "url": { "type": "string" }, "reasoning": { "anyOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": ["reasoning_content"] } }, "required": ["type"], "additionalProperties": false }, { "type": "object", "properties": { "type": { "type": "string", "enum": ["reasoning_details"] } }, "required": ["type"], "additionalProperties": false } ] } }, "required": ["type", "url"], "additionalProperties": false }, { "type": "object", "properties": { "type": { "type": "string", "enum": ["anthropic/messages"] }, "url": { "type": "string" } }, "required": ["type", "url"], "additionalProperties": false }, { "type": "object", "properties": { "type": { "type": "string", "enum": ["aisdk"] }, "package": { "type": "string" }, "url": { "type": "string" } }, "required": ["type", "package"], "additionalProperties": false } ] }, "options": { "type": "object", "properties": { "headers": { "type": "object", "additionalProperties": { "type": "string" } }, "body": { "type": "object" }, "aisdk": { "type": "object", "properties": { "provider": { "type": "object" }, "request": { "type": "object" } }, "required": ["provider", "request"], "additionalProperties": false } }, "required": ["headers", "body", "aisdk"], "additionalProperties": false } }, "required": ["id", "name", "enabled", "env", "endpoint", "options"], "additionalProperties": false }, "EventTuiToastShow1": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["tui.toast.show"] }, "properties": { "type": "object", "properties": { "title": { "type": "string" }, "message": { "type": "string" }, "variant": { "type": "string", "enum": ["info", "success", "warning", "error"] }, "duration": { "type": "integer", "exclusiveMinimum": 0 } }, "required": ["message", "variant"], "additionalProperties": false } }, "required": ["id", "type", "properties"], "additionalProperties": false }, "BadRequestError": { "type": "object", "required": ["name", "data"], "properties": { "name": { "type": "string", "enum": ["BadRequest"] }, "data": { "type": "object", "required": ["message"], "properties": { "message": { "type": "string" }, "kind": { "type": "string", "enum": ["Params", "Headers", "Query", "Body", "Payload"] } } } } } } }, "security": [], "tags": [ { "name": "control", "description": "Control plane routes." }, { "name": "global", "description": "Global server routes." }, { "name": "event", "description": "Instance event stream route." }, { "name": "config", "description": "Experimental HttpApi config routes." }, { "name": "experimental", "description": "Experimental HttpApi read-only routes." }, { "name": "file", "description": "Experimental HttpApi file routes." }, { "name": "instance", "description": "Experimental HttpApi instance read routes." }, { "name": "mcp", "description": "Experimental HttpApi MCP routes." }, { "name": "project", "description": "Experimental HttpApi project routes." }, { "name": "pty", "description": "Experimental HttpApi PTY routes." }, { "name": "question", "description": "Question routes." }, { "name": "permission", "description": "Experimental HttpApi permission routes." }, { "name": "provider", "description": "Experimental HttpApi provider routes." }, { "name": "session", "description": "Experimental HttpApi session routes." }, { "name": "sync", "description": "Experimental HttpApi sync routes." }, { "name": "v2", "description": "Experimental v2 routes." }, { "name": "v2 messages", "description": "Experimental v2 message routes." }, { "name": "v2 models", "description": "Experimental v2 model routes." }, { "name": "v2 providers", "description": "Experimental v2 provider routes." }, { "name": "tui", "description": "Experimental HttpApi TUI routes." }, { "name": "workspace", "description": "Experimental HttpApi workspace routes." }, { "name": "pty", "description": "PTY websocket route." } ] }