opencode/packages/sdk/openapi.json
opencode-agent[bot] 9f708e748a
Some checks are pending
deploy / deploy (push) Waiting to run
generate / generate (push) Waiting to run
nix-eval / nix-eval (push) Waiting to run
publish / build-cli (push) Blocked by required conditions
publish / version (push) Waiting to run
publish / sign-cli-windows (push) Blocked by required conditions
publish / build-electron (map[bun_install_flags:--os=darwin --cpu=arm64 host:macos-26 platform_flag:--mac --arm64 target:aarch64-apple-darwin]) (push) Blocked by required conditions
publish / build-electron (map[bun_install_flags:--os=darwin --cpu=x64 host:macos-26-intel platform_flag:--mac --x64 target:x86_64-apple-darwin]) (push) Blocked by required conditions
publish / build-electron (map[host:blacksmith-4vcpu-ubuntu-2404 platform_flag:--linux target:aarch64-unknown-linux-gnu]) (push) Blocked by required conditions
publish / build-electron (map[host:blacksmith-4vcpu-ubuntu-2404 platform_flag:--linux target:x86_64-unknown-linux-gnu]) (push) Blocked by required conditions
publish / build-electron (map[host:blacksmith-4vcpu-windows-2025 platform_flag:--win target:x86_64-pc-windows-msvc]) (push) Blocked by required conditions
publish / build-electron (map[host:windows-2025 platform_flag:--win --arm64 target:aarch64-pc-windows-msvc]) (push) Blocked by required conditions
publish / publish (push) Blocked by required conditions
test / unit (linux) (push) Waiting to run
test / unit (windows) (push) Waiting to run
test / e2e (linux) (push) Waiting to run
test / e2e (windows) (push) Waiting to run
typecheck / typecheck (push) Waiting to run
chore: generate
2026-05-04 02:57:18 +00:00

18144 lines
492 KiB
JSON

{
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Active Console provider metadata",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConsoleState"
}
}
}
}
},
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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"
}
}
}
}
},
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "List of worktree directories",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of worktree directories"
}
}
}
}
},
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Worktree created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Worktree"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
},
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Worktree removed",
"content": {
"application/json": {
"schema": {
"type": "boolean",
"description": "Worktree removed"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
},
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Worktree reset",
"content": {
"application/json": {
"schema": {
"type": "boolean",
"description": "Worktree reset"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
},
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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/diff": {
"get": {
"tags": ["instance"],
"operationId": "vcs.diff",
"parameters": [
{
"name": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"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})"
}
]
}
},
"/command": {
"get": {
"tags": ["instance"],
"operationId": "command.list",
"parameters": [
{
"name": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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", "description", "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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "name",
"in": "path",
"schema": {
"type": "string"
},
"required": true
}
],
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "name",
"in": "path",
"schema": {
"type": "string"
},
"required": true
}
],
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "name",
"in": "path",
"schema": {
"type": "string"
},
"required": true
}
],
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "name",
"in": "path",
"schema": {
"type": "string"
},
"required": true
}
],
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "name",
"in": "path",
"schema": {
"type": "string"
},
"required": true
}
],
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "name",
"in": "path",
"schema": {
"type": "string"
},
"required": true
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "projectID",
"in": "path",
"schema": {
"type": "string"
},
"required": true
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "ptyID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^pty.*"
},
"required": true
}
],
"responses": {
"200": {
"description": "Session info",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Pty"
}
}
}
},
"404": {
"description": "Not found",
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "ptyID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^pty.*"
},
"required": true
}
],
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "ptyID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^pty.*"
},
"required": true
}
],
"responses": {
"200": {
"description": "Session removed",
"content": {
"application/json": {
"schema": {
"type": "boolean",
"description": "Session removed"
}
}
}
},
"404": {
"description": "Not found",
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "ptyID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^pty.*"
},
"required": true
}
],
"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": "Not found",
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "requestID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^que.*"
},
"required": true
}
],
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "requestID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^que.*"
},
"required": true
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "requestID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^per.*"
},
"required": true
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "providerID",
"in": "path",
"schema": {
"type": "string"
},
"required": true
}
],
"responses": {
"200": {
"description": "Authorization URL and method",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProviderAuthAuthorization"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
},
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "providerID",
"in": "path",
"schema": {
"type": "string"
},
"required": true
}
],
"responses": {
"200": {
"description": "OAuth callback processed successfully",
"content": {
"application/json": {
"schema": {
"type": "boolean",
"description": "OAuth callback processed successfully"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
},
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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"
},
"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"
}
},
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "sessionID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
}
],
"responses": {
"200": {
"description": "Get session",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Session"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "sessionID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
}
],
"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": "Not found",
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "sessionID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
}
],
"responses": {
"200": {
"description": "Successfully updated session",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Session"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "sessionID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
}
],
"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": "Not found",
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "sessionID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
}
],
"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": "Not found",
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "sessionID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
},
{
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "sessionID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
},
{
"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": "Not found",
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "sessionID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
}
],
"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": "Not found",
"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"
},
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "sessionID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
},
{
"name": "messageID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^msg.*"
},
"required": true
}
],
"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": "Not found",
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "sessionID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
},
{
"name": "messageID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^msg.*"
},
"required": true
}
],
"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": "Not found",
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "sessionID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
}
],
"responses": {
"200": {
"description": "200",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Session"
}
}
}
}
},
"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"
}
},
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "sessionID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
}
],
"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"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "sessionID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
}
],
"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": "Not found",
"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"
}
},
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "sessionID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
}
],
"responses": {
"200": {
"description": "Successfully shared session",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Session"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "sessionID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
}
],
"responses": {
"200": {
"description": "Successfully unshared session",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Session"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "sessionID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
}
],
"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": "Not found",
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "sessionID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
}
],
"responses": {
"204": {
"description": "Prompt accepted"
},
"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": "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"
},
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "sessionID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
}
],
"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": "Not found",
"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"
},
"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"
},
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "sessionID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
}
],
"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": "Not found",
"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"
},
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "sessionID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
}
],
"responses": {
"200": {
"description": "Updated session",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Session"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"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"
},
"partID": {
"type": "string"
}
},
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "sessionID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
}
],
"responses": {
"200": {
"description": "Updated session",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Session"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "sessionID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
},
{
"name": "permissionID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^per.*"
},
"required": true
}
],
"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",
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"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
}
],
"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": "Not found",
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"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
}
],
"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": "Not found",
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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/history": {
"post": {
"tags": ["sync"],
"operationId": "sync.history.list",
"parameters": [
{
"name": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "sessionID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
}
],
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "sessionID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
}
],
"responses": {
"204": {
"description": "<No Content>"
}
},
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "sessionID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
}
],
"responses": {
"204": {
"description": "<No Content>"
}
},
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "sessionID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
}
],
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "sessionID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
}
],
"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})"
}
]
}
},
"/tui/append-prompt": {
"post": {
"tags": ["tui"],
"operationId": "tui.appendPrompt",
"parameters": [
{
"name": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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": "Not found",
"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",
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"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"
},
"type": {
"type": "string"
},
"branch": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"extra": {
"anyOf": [
{},
{
"type": "null"
}
]
}
},
"required": ["type", "branch"],
"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/status": {
"get": {
"tags": ["workspace"],
"operationId": "experimental.workspace.status",
"parameters": [
{
"name": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Workspace status",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"workspaceID": {
"type": "string"
},
"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": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "path",
"schema": {
"type": "string",
"pattern": "^wrk.*"
},
"required": true
}
],
"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/{id}/session-restore": {
"post": {
"tags": ["workspace"],
"operationId": "experimental.workspace.sessionRestore",
"parameters": [
{
"name": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "path",
"schema": {
"type": "string",
"pattern": "^wrk.*"
},
"required": true
}
],
"responses": {
"200": {
"description": "Session replay started",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"minimum": 0
}
},
"required": ["total"],
"additionalProperties": false,
"description": "Session replay started"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
},
"description": "Replay a session's sync events into the target workspace in batches.",
"summary": "Restore session into workspace",
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"sessionID": {
"type": "string"
}
},
"required": ["sessionID"],
"additionalProperties": false
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.experimental.workspace.sessionRestore({\n ...\n})"
}
]
}
},
"/pty/{ptyID}/connect": {
"get": {
"tags": ["pty"],
"operationId": "pty.connect",
"parameters": [
{
"name": "directory",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "workspace",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "ptyID",
"in": "path",
"schema": {
"type": "string",
"pattern": "^pty.*"
},
"required": true
}
],
"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/EventInstallationUpdated"
},
{
"$ref": "#/components/schemas/EventInstallationUpdate-available"
},
{
"$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/EventWorkspaceRestore"
},
{
"$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/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"
},
"sessionID": {
"type": "string"
},
"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"
},
"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": "integer",
"minimum": 0
},
"deletions": {
"type": "integer",
"minimum": 0
},
"status": {
"type": "string",
"enum": ["added", "deleted", "modified"]
}
},
"required": ["file", "patch", "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"
},
"callID": {
"type": "string"
}
},
"required": ["messageID", "callID"],
"additionalProperties": false
},
"QuestionRequest": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"sessionID": {
"type": "string"
},
"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"
},
"requestID": {
"type": "string"
},
"answers": {
"type": "array",
"items": {
"$ref": "#/components/schemas/QuestionAnswer"
}
}
},
"required": ["sessionID", "requestID", "answers"],
"additionalProperties": false
},
"QuestionRejected": {
"type": "object",
"properties": {
"sessionID": {
"type": "string"
},
"requestID": {
"type": "string"
}
},
"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"
},
"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",
"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"
},
"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"
},
"sessionID": {
"type": "string"
},
"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"
},
"sessionID": {
"type": "string"
},
"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"
},
"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": "integer",
"minimum": 0
},
"input": {
"type": "integer",
"minimum": 0
},
"output": {
"type": "integer",
"minimum": 0
},
"reasoning": {
"type": "integer",
"minimum": 0
},
"cache": {
"type": "object",
"properties": {
"read": {
"type": "integer",
"minimum": 0
},
"write": {
"type": "integer",
"minimum": 0
}
},
"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"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"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"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"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"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"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": "integer",
"minimum": 0
},
"end": {
"type": "integer",
"minimum": 0
}
},
"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"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"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"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"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"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"type": {
"type": "string",
"enum": ["step-start"]
},
"snapshot": {
"type": "string"
}
},
"required": ["id", "sessionID", "messageID", "type"],
"additionalProperties": false
},
"StepFinishPart": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"type": {
"type": "string",
"enum": ["step-finish"]
},
"reason": {
"type": "string"
},
"snapshot": {
"type": "string"
},
"cost": {
"type": "number"
},
"tokens": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"minimum": 0
},
"input": {
"type": "integer",
"minimum": 0
},
"output": {
"type": "integer",
"minimum": 0
},
"reasoning": {
"type": "integer",
"minimum": 0
},
"cache": {
"type": "object",
"properties": {
"read": {
"type": "integer",
"minimum": 0
},
"write": {
"type": "integer",
"minimum": 0
}
},
"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"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"type": {
"type": "string",
"enum": ["snapshot"]
},
"snapshot": {
"type": "string"
}
},
"required": ["id", "sessionID", "messageID", "type", "snapshot"],
"additionalProperties": false
},
"PatchPart": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"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"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"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"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"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"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"type": {
"type": "string",
"enum": ["compaction"]
},
"auto": {
"type": "boolean"
},
"overflow": {
"type": "boolean"
},
"tail_start_id": {
"type": "string"
}
},
"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"
},
"slug": {
"type": "string"
},
"projectID": {
"type": "string"
},
"workspaceID": {
"type": "string"
},
"directory": {
"type": "string"
},
"path": {
"type": "string"
},
"parentID": {
"type": "string"
},
"summary": {
"type": "object",
"properties": {
"additions": {
"type": "integer",
"minimum": 0
},
"deletions": {
"type": "integer",
"minimum": 0
},
"files": {
"type": "integer",
"minimum": 0
},
"diffs": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SnapshotFileDiff"
}
}
},
"required": ["additions", "deletions", "files"],
"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"
},
"partID": {
"type": "string"
},
"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"
}
}
},
"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/EventInstallationUpdated"
},
{
"$ref": "#/components/schemas/EventInstallationUpdate-available"
},
{
"$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/EventWorkspaceRestore"
},
{
"$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/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"
},
"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"
},
"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"]
},
"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."
},
"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
},
"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"
},
"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"
}
},
"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
},
"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
},
"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"
}
},
"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", "branch", "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"
},
"slug": {
"type": "string"
},
"projectID": {
"type": "string"
},
"workspaceID": {
"type": "string"
},
"directory": {
"type": "string"
},
"path": {
"type": "string"
},
"parentID": {
"type": "string"
},
"summary": {
"type": "object",
"properties": {
"additions": {
"type": "integer",
"minimum": 0
},
"deletions": {
"type": "integer",
"minimum": 0
},
"files": {
"type": "integer",
"minimum": 0
},
"diffs": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SnapshotFileDiff"
}
}
},
"required": ["additions", "deletions", "files"],
"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"
},
"partID": {
"type": "string"
},
"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
},
"VcsFileDiff": {
"type": "object",
"properties": {
"file": {
"type": "string"
},
"patch": {
"type": "string"
},
"additions": {
"type": "integer",
"minimum": 0
},
"deletions": {
"type": "integer",
"minimum": 0
},
"status": {
"type": "string",
"enum": ["added", "deleted", "modified"]
}
},
"required": ["file", "patch", "additions", "deletions"],
"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
},
"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
},
"TextPartInput": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"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"
},
"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"
},
"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"
},
"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",
"description": "Session ID to navigate to"
}
},
"required": ["sessionID"],
"additionalProperties": false
}
},
"required": ["type", "properties"],
"additionalProperties": false
},
"Workspace": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"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"
}
},
"required": ["id", "type", "name", "branch", "directory", "extra", "projectID"],
"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"
},
"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"
},
"messageID": {
"type": "string"
}
},
"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"
},
"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"
},
"messageID": {
"type": "string"
},
"partID": {
"type": "string"
}
},
"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"
},
"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"
},
"info": {
"type": "object",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"slug": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"projectID": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"workspaceID": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"directory": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"path": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"parentID": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"summary": {
"anyOf": [
{
"type": "object",
"properties": {
"additions": {
"type": "integer",
"minimum": 0
},
"deletions": {
"type": "integer",
"minimum": 0
},
"files": {
"type": "integer",
"minimum": 0
},
"diffs": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SnapshotFileDiff"
}
}
},
"required": ["additions", "deletions", "files"],
"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"
},
"partID": {
"type": "string"
},
"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"
},
"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"
},
"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"
},
"id": {
"type": "string"
},
"providerID": {
"type": "string"
},
"variant": {
"type": "string"
}
},
"required": ["timestamp", "sessionID", "id", "providerID"],
"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"
},
"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"
},
"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"
},
"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"
},
"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"
},
"agent": {
"type": "string"
},
"model": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"providerID": {
"type": "string"
},
"variant": {
"type": "string"
}
},
"required": ["id", "providerID"],
"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"
},
"finish": {
"type": "string"
},
"cost": {
"type": "number"
},
"tokens": {
"type": "object",
"properties": {
"input": {
"type": "integer",
"minimum": 0
},
"output": {
"type": "integer",
"minimum": 0
},
"reasoning": {
"type": "integer",
"minimum": 0
},
"cache": {
"type": "object",
"properties": {
"read": {
"type": "integer",
"minimum": 0
},
"write": {
"type": "integer",
"minimum": 0
}
},
"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"
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": ["type", "message"],
"additionalProperties": false
}
},
"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"
}
},
"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"
},
"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"
},
"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"
},
"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"
},
"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"
},
"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"
},
"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"
},
"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"
},
"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"
},
"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"
},
"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"
},
"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"
},
"callID": {
"type": "string"
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": ["type", "message"],
"additionalProperties": false
},
"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"
},
"attempt": {
"type": "integer",
"minimum": 0
},
"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"
},
"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"
},
"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"
},
"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"
},
"messageID": {
"type": "string"
},
"partID": {
"type": "string"
},
"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"
},
"requestID": {
"type": "string"
},
"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"
},
"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"
},
"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
},
"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
},
"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"
},
"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"
},
"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"
}
},
"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"
}
},
"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"
},
"arguments": {
"type": "string"
},
"messageID": {
"type": "string"
}
},
"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
},
"EventWorkspaceRestore": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"enum": ["workspace.restore"]
},
"properties": {
"type": "object",
"properties": {
"workspaceID": {
"type": "string"
},
"sessionID": {
"type": "string"
},
"total": {
"type": "integer",
"minimum": 0
},
"step": {
"type": "integer",
"minimum": 0
}
},
"required": ["workspaceID", "sessionID", "total", "step"],
"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"
},
"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", "branch"],
"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"
},
"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"
}
},
"required": ["id"],
"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"
},
"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"
},
"messageID": {
"type": "string"
}
},
"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"
},
"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"
},
"messageID": {
"type": "string"
},
"partID": {
"type": "string"
}
},
"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"
},
"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"
},
"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"
},
"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"
},
"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"
},
"id": {
"type": "string"
},
"providerID": {
"type": "string"
},
"variant": {
"type": "string"
}
},
"required": ["timestamp", "sessionID", "id", "providerID"],
"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
},
"EventSessionNextPrompted": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"enum": ["session.next.prompted"]
},
"properties": {
"type": "object",
"properties": {
"timestamp": {
"type": "number"
},
"sessionID": {
"type": "string"
},
"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"
},
"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"
},
"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"
},
"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"
},
"agent": {
"type": "string"
},
"model": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"providerID": {
"type": "string"
},
"variant": {
"type": "string"
}
},
"required": ["id", "providerID"],
"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"
},
"finish": {
"type": "string"
},
"cost": {
"type": "number"
},
"tokens": {
"type": "object",
"properties": {
"input": {
"type": "integer",
"minimum": 0
},
"output": {
"type": "integer",
"minimum": 0
},
"reasoning": {
"type": "integer",
"minimum": 0
},
"cache": {
"type": "object",
"properties": {
"read": {
"type": "integer",
"minimum": 0
},
"write": {
"type": "integer",
"minimum": 0
}
},
"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
},
"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"
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": ["type", "message"],
"additionalProperties": false
}
},
"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"
}
},
"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"
},
"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"
},
"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"
},
"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"
},
"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"
},
"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"
},
"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"
},
"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"
},
"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"
},
"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"
},
"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"
},
"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"
},
"callID": {
"type": "string"
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": ["type", "message"],
"additionalProperties": false
},
"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": "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
},
"EventSessionNextRetried": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"enum": ["session.next.retried"]
},
"properties": {
"type": "object",
"properties": {
"timestamp": {
"type": "number"
},
"sessionID": {
"type": "string"
},
"attempt": {
"type": "integer",
"minimum": 0
},
"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"
},
"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"
},
"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"
},
"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"
},
"parentID": {
"type": "string"
},
"projectID": {
"type": "string"
},
"workspaceID": {
"type": "string"
},
"path": {
"type": "string"
},
"agent": {
"type": "string"
},
"model": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"providerID": {
"type": "string"
},
"variant": {
"type": "string"
}
},
"required": ["id", "providerID"],
"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", "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"],
"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"
}
},
"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"
},
"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": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": ["type", "message"],
"additionalProperties": false
}
},
"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"],
"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": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": ["type", "message"],
"additionalProperties": false
}
},
"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"
}
]
},
"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": ["data", "errors", "success"],
"properties": {
"data": {},
"errors": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": {}
}
},
"success": {
"type": "boolean",
"enum": [false]
}
}
},
"NotFoundError": {
"type": "object",
"required": ["name", "data"],
"properties": {
"name": {
"type": "string",
"enum": ["NotFoundError"]
},
"data": {
"type": "object",
"required": ["message"],
"properties": {
"message": {
"type": "string"
}
}
}
}
}
}
},
"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": "tui",
"description": "Experimental HttpApi TUI routes."
},
{
"name": "workspace",
"description": "Experimental HttpApi workspace routes."
},
{
"name": "pty",
"description": "PTY websocket route."
}
]
}