summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGitHub Action <[email protected]>2025-12-10 00:33:05 +0000
committerGitHub Action <[email protected]>2025-12-10 00:33:05 +0000
commit632a0fe00990d22ea30ebdcf1321524027bd0d70 (patch)
treefb46de24aea4a2ce4729eb8353a9f4cf372fb4a2
parent6fb32cebec691d614ba6d00c366f326ba4f66d00 (diff)
downloadopencode-632a0fe00990d22ea30ebdcf1321524027bd0d70.tar.gz
opencode-632a0fe00990d22ea30ebdcf1321524027bd0d70.zip
chore: regen sdk
-rw-r--r--packages/sdk/js/openapi.json8963
1 files changed, 0 insertions, 8963 deletions
diff --git a/packages/sdk/js/openapi.json b/packages/sdk/js/openapi.json
deleted file mode 100644
index 55c9af732..000000000
--- a/packages/sdk/js/openapi.json
+++ /dev/null
@@ -1,8963 +0,0 @@
-{
- "openapi": "3.1.1",
- "info": {
- "title": "opencode",
- "description": "opencode api",
- "version": "1.0.0"
- },
- "paths": {
- "/global/event": {
- "get": {
- "operationId": "global.event",
- "summary": "Get global events",
- "description": "Subscribe to global events from the OpenCode system using server-sent events.",
- "responses": {
- "200": {
- "description": "Event stream",
- "content": {
- "text/event-stream": {
- "schema": {
- "$ref": "#/components/schemas/GlobalEvent"
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.global.event({\n ...\n})"
- }
- ]
- }
- },
- "/project": {
- "get": {
- "operationId": "project.list",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "List all projects",
- "description": "Get a list of projects that have been opened with OpenCode.",
- "responses": {
- "200": {
- "description": "List of projects",
- "content": {
- "application/json": {
- "schema": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/Project"
- }
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.project.list({\n ...\n})"
- }
- ]
- }
- },
- "/project/current": {
- "get": {
- "operationId": "project.current",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Get current project",
- "description": "Retrieve the currently active project that OpenCode is working with.",
- "responses": {
- "200": {
- "description": "Current project information",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Project"
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.project.current({\n ...\n})"
- }
- ]
- }
- },
- "/project/{projectID}": {
- "patch": {
- "operationId": "project.update",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "projectID",
- "schema": {
- "type": "string"
- },
- "required": true
- }
- ],
- "summary": "Update project",
- "description": "Update project properties such as name, icon and color.",
- "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"
- }
- }
- }
- }
- },
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string"
- },
- "icon": {
- "type": "object",
- "properties": {
- "url": {
- "type": "string"
- },
- "color": {
- "type": "string"
- }
- }
- }
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.project.update({\n ...\n})"
- }
- ]
- }
- },
- "/pty": {
- "get": {
- "operationId": "pty.list",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "List PTY sessions",
- "description": "Get a list of all active pseudo-terminal (PTY) sessions managed by OpenCode.",
- "responses": {
- "200": {
- "description": "List of sessions",
- "content": {
- "application/json": {
- "schema": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/Pty"
- }
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.pty.list({\n ...\n})"
- }
- ]
- },
- "post": {
- "operationId": "pty.create",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Create PTY session",
- "description": "Create a new pseudo-terminal (PTY) session for running shell commands and processes.",
- "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"
- }
- }
- }
- }
- },
- "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",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string"
- }
- }
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.pty.create({\n ...\n})"
- }
- ]
- }
- },
- "/pty/{ptyID}": {
- "get": {
- "operationId": "pty.get",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "ptyID",
- "schema": {
- "type": "string"
- },
- "required": true
- }
- ],
- "summary": "Get PTY session",
- "description": "Retrieve detailed information about a specific pseudo-terminal (PTY) session.",
- "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"
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.pty.get({\n ...\n})"
- }
- ]
- },
- "put": {
- "operationId": "pty.update",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "ptyID",
- "schema": {
- "type": "string"
- },
- "required": true
- }
- ],
- "summary": "Update PTY session",
- "description": "Update properties of an existing pseudo-terminal (PTY) session.",
- "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"
- }
- }
- }
- }
- },
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "title": {
- "type": "string"
- },
- "size": {
- "type": "object",
- "properties": {
- "rows": {
- "type": "number"
- },
- "cols": {
- "type": "number"
- }
- },
- "required": ["rows", "cols"]
- }
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.pty.update({\n ...\n})"
- }
- ]
- },
- "delete": {
- "operationId": "pty.remove",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "ptyID",
- "schema": {
- "type": "string"
- },
- "required": true
- }
- ],
- "summary": "Remove PTY session",
- "description": "Remove and terminate a specific pseudo-terminal (PTY) session.",
- "responses": {
- "200": {
- "description": "Session removed",
- "content": {
- "application/json": {
- "schema": {
- "type": "boolean"
- }
- }
- }
- },
- "404": {
- "description": "Not found",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/NotFoundError"
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.pty.remove({\n ...\n})"
- }
- ]
- }
- },
- "/pty/{ptyID}/connect": {
- "get": {
- "operationId": "pty.connect",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "ptyID",
- "schema": {
- "type": "string"
- },
- "required": true
- }
- ],
- "summary": "Connect to PTY session",
- "description": "Establish a WebSocket connection to interact with a pseudo-terminal (PTY) session in real-time.",
- "responses": {
- "200": {
- "description": "Connected session",
- "content": {
- "application/json": {
- "schema": {
- "type": "boolean"
- }
- }
- }
- },
- "404": {
- "description": "Not found",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/NotFoundError"
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.pty.connect({\n ...\n})"
- }
- ]
- }
- },
- "/config": {
- "get": {
- "operationId": "config.get",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Get configuration",
- "description": "Retrieve the current OpenCode configuration settings and preferences.",
- "responses": {
- "200": {
- "description": "Get config info",
- "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.get({\n ...\n})"
- }
- ]
- },
- "patch": {
- "operationId": "config.update",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Update configuration",
- "description": "Update OpenCode configuration settings and preferences.",
- "responses": {
- "200": {
- "description": "Successfully updated config",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Config"
- }
- }
- }
- },
- "400": {
- "description": "Bad request",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/BadRequestError"
- }
- }
- }
- }
- },
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Config"
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.config.update({\n ...\n})"
- }
- ]
- }
- },
- "/experimental/tool/ids": {
- "get": {
- "operationId": "tool.ids",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "List tool IDs",
- "description": "Get a list of all available tool IDs, including both built-in tools and dynamically registered tools.",
- "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"
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tool.ids({\n ...\n})"
- }
- ]
- }
- },
- "/experimental/tool": {
- "get": {
- "operationId": "tool.list",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "query",
- "name": "provider",
- "schema": {
- "type": "string"
- },
- "required": true
- },
- {
- "in": "query",
- "name": "model",
- "schema": {
- "type": "string"
- },
- "required": true
- }
- ],
- "summary": "List tools",
- "description": "Get a list of available tools with their JSON schema parameters for a specific provider and model combination.",
- "responses": {
- "200": {
- "description": "Tools",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ToolList"
- }
- }
- }
- },
- "400": {
- "description": "Bad request",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/BadRequestError"
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tool.list({\n ...\n})"
- }
- ]
- }
- },
- "/instance/dispose": {
- "post": {
- "operationId": "instance.dispose",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Dispose instance",
- "description": "Clean up and dispose the current OpenCode instance, releasing all resources.",
- "responses": {
- "200": {
- "description": "Instance disposed",
- "content": {
- "application/json": {
- "schema": {
- "type": "boolean"
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.instance.dispose({\n ...\n})"
- }
- ]
- }
- },
- "/path": {
- "get": {
- "operationId": "path.get",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Get paths",
- "description": "Retrieve the current working directory and related path information for the OpenCode instance.",
- "responses": {
- "200": {
- "description": "Path",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Path"
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.path.get({\n ...\n})"
- }
- ]
- }
- },
- "/vcs": {
- "get": {
- "operationId": "vcs.get",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Get VCS info",
- "description": "Retrieve version control system (VCS) information for the current project, such as git branch.",
- "responses": {
- "200": {
- "description": "VCS info",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/VcsInfo"
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.vcs.get({\n ...\n})"
- }
- ]
- }
- },
- "/session": {
- "get": {
- "operationId": "session.list",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "List sessions",
- "description": "Get a list of all OpenCode sessions, sorted by most recently updated.",
- "responses": {
- "200": {
- "description": "List of sessions",
- "content": {
- "application/json": {
- "schema": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/Session"
- }
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.list({\n ...\n})"
- }
- ]
- },
- "post": {
- "operationId": "session.create",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Create session",
- "description": "Create a new OpenCode session for interacting with AI assistants and managing conversations.",
- "responses": {
- "200": {
- "description": "Successfully created session",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Session"
- }
- }
- }
- },
- "400": {
- "description": "Bad request",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/BadRequestError"
- }
- }
- }
- }
- },
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "parentID": {
- "type": "string",
- "pattern": "^ses.*"
- },
- "title": {
- "type": "string"
- }
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.create({\n ...\n})"
- }
- ]
- }
- },
- "/session/status": {
- "get": {
- "operationId": "session.status",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Get session status",
- "description": "Retrieve the current status of all sessions, including active, idle, and completed states.",
- "responses": {
- "200": {
- "description": "Get session status",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "$ref": "#/components/schemas/SessionStatus"
- }
- }
- }
- }
- },
- "400": {
- "description": "Bad request",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/BadRequestError"
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.status({\n ...\n})"
- }
- ]
- }
- },
- "/session/{sessionID}": {
- "get": {
- "operationId": "session.get",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "sessionID",
- "schema": {
- "type": "string",
- "pattern": "^ses.*"
- },
- "required": true
- }
- ],
- "summary": "Get session",
- "description": "Retrieve detailed information about a specific OpenCode session.",
- "tags": ["Session"],
- "responses": {
- "200": {
- "description": "Get session",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Session"
- }
- }
- }
- },
- "400": {
- "description": "Bad request",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/BadRequestError"
- }
- }
- }
- },
- "404": {
- "description": "Not found",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/NotFoundError"
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.get({\n ...\n})"
- }
- ]
- },
- "delete": {
- "operationId": "session.delete",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "sessionID",
- "schema": {
- "type": "string",
- "pattern": "^ses.*"
- },
- "required": true
- }
- ],
- "summary": "Delete session",
- "description": "Delete a session and permanently remove all associated data, including messages and history.",
- "responses": {
- "200": {
- "description": "Successfully deleted session",
- "content": {
- "application/json": {
- "schema": {
- "type": "boolean"
- }
- }
- }
- },
- "400": {
- "description": "Bad request",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/BadRequestError"
- }
- }
- }
- },
- "404": {
- "description": "Not found",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/NotFoundError"
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.delete({\n ...\n})"
- }
- ]
- },
- "patch": {
- "operationId": "session.update",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "sessionID",
- "schema": {
- "type": "string"
- },
- "required": true
- }
- ],
- "summary": "Update session",
- "description": "Update properties of an existing session, such as title or other metadata.",
- "responses": {
- "200": {
- "description": "Successfully updated session",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Session"
- }
- }
- }
- },
- "400": {
- "description": "Bad request",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/BadRequestError"
- }
- }
- }
- },
- "404": {
- "description": "Not found",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/NotFoundError"
- }
- }
- }
- }
- },
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "title": {
- "type": "string"
- }
- }
- }
- }
- }
- },
- "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": {
- "operationId": "session.children",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "sessionID",
- "schema": {
- "type": "string",
- "pattern": "^ses.*"
- },
- "required": true
- }
- ],
- "summary": "Get session children",
- "tags": ["Session"],
- "description": "Retrieve all child sessions that were forked from the specified parent session.",
- "responses": {
- "200": {
- "description": "List of children",
- "content": {
- "application/json": {
- "schema": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/Session"
- }
- }
- }
- }
- },
- "400": {
- "description": "Bad request",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/BadRequestError"
- }
- }
- }
- },
- "404": {
- "description": "Not found",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/NotFoundError"
- }
- }
- }
- }
- },
- "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": {
- "operationId": "session.todo",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "sessionID",
- "schema": {
- "type": "string"
- },
- "required": true,
- "description": "Session ID"
- }
- ],
- "summary": "Get session todos",
- "description": "Retrieve the todo list associated with a specific session, showing tasks and action items.",
- "responses": {
- "200": {
- "description": "Todo list",
- "content": {
- "application/json": {
- "schema": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/Todo"
- }
- }
- }
- }
- },
- "400": {
- "description": "Bad request",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/BadRequestError"
- }
- }
- }
- },
- "404": {
- "description": "Not found",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/NotFoundError"
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.todo({\n ...\n})"
- }
- ]
- }
- },
- "/session/{sessionID}/init": {
- "post": {
- "operationId": "session.init",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "sessionID",
- "schema": {
- "type": "string"
- },
- "required": true,
- "description": "Session ID"
- }
- ],
- "summary": "Initialize session",
- "description": "Analyze the current application and create an AGENTS.md file with project-specific agent configurations.",
- "responses": {
- "200": {
- "description": "200",
- "content": {
- "application/json": {
- "schema": {
- "type": "boolean"
- }
- }
- }
- },
- "400": {
- "description": "Bad request",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/BadRequestError"
- }
- }
- }
- },
- "404": {
- "description": "Not found",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/NotFoundError"
- }
- }
- }
- }
- },
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "modelID": {
- "type": "string"
- },
- "providerID": {
- "type": "string"
- },
- "messageID": {
- "type": "string",
- "pattern": "^msg.*"
- }
- },
- "required": ["modelID", "providerID", "messageID"]
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.init({\n ...\n})"
- }
- ]
- }
- },
- "/session/{sessionID}/fork": {
- "post": {
- "operationId": "session.fork",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "sessionID",
- "schema": {
- "type": "string",
- "pattern": "^ses.*"
- },
- "required": true
- }
- ],
- "summary": "Fork session",
- "description": "Create a new session by forking an existing session at a specific message point.",
- "responses": {
- "200": {
- "description": "200",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Session"
- }
- }
- }
- }
- },
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "messageID": {
- "type": "string",
- "pattern": "^msg.*"
- }
- }
- }
- }
- }
- },
- "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": {
- "operationId": "session.abort",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "sessionID",
- "schema": {
- "type": "string"
- },
- "required": true
- }
- ],
- "summary": "Abort session",
- "description": "Abort an active session and stop any ongoing AI processing or command execution.",
- "responses": {
- "200": {
- "description": "Aborted session",
- "content": {
- "application/json": {
- "schema": {
- "type": "boolean"
- }
- }
- }
- },
- "400": {
- "description": "Bad request",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/BadRequestError"
- }
- }
- }
- },
- "404": {
- "description": "Not found",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/NotFoundError"
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.abort({\n ...\n})"
- }
- ]
- }
- },
- "/session/{sessionID}/share": {
- "post": {
- "operationId": "session.share",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "sessionID",
- "schema": {
- "type": "string"
- },
- "required": true
- }
- ],
- "summary": "Share session",
- "description": "Create a shareable link for a session, allowing others to view the conversation.",
- "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"
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.share({\n ...\n})"
- }
- ]
- },
- "delete": {
- "operationId": "session.unshare",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "sessionID",
- "schema": {
- "type": "string",
- "pattern": "^ses.*"
- },
- "required": true
- }
- ],
- "summary": "Unshare session",
- "description": "Remove the shareable link for a session, making it private again.",
- "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"
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.unshare({\n ...\n})"
- }
- ]
- }
- },
- "/session/{sessionID}/diff": {
- "get": {
- "operationId": "session.diff",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "sessionID",
- "schema": {
- "type": "string"
- },
- "required": true,
- "description": "Session ID"
- },
- {
- "in": "query",
- "name": "messageID",
- "schema": {
- "type": "string",
- "pattern": "^msg.*"
- }
- }
- ],
- "summary": "Get session diff",
- "description": "Get all file changes (diffs) made during this session.",
- "responses": {
- "200": {
- "description": "List of diffs",
- "content": {
- "application/json": {
- "schema": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/FileDiff"
- }
- }
- }
- }
- },
- "400": {
- "description": "Bad request",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/BadRequestError"
- }
- }
- }
- },
- "404": {
- "description": "Not found",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/NotFoundError"
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.diff({\n ...\n})"
- }
- ]
- }
- },
- "/session/{sessionID}/summarize": {
- "post": {
- "operationId": "session.summarize",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "sessionID",
- "schema": {
- "type": "string"
- },
- "required": true,
- "description": "Session ID"
- }
- ],
- "summary": "Summarize session",
- "description": "Generate a concise summary of the session using AI compaction to preserve key information.",
- "responses": {
- "200": {
- "description": "Summarized session",
- "content": {
- "application/json": {
- "schema": {
- "type": "boolean"
- }
- }
- }
- },
- "400": {
- "description": "Bad request",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/BadRequestError"
- }
- }
- }
- },
- "404": {
- "description": "Not found",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/NotFoundError"
- }
- }
- }
- }
- },
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "providerID": {
- "type": "string"
- },
- "modelID": {
- "type": "string"
- }
- },
- "required": ["providerID", "modelID"]
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.summarize({\n ...\n})"
- }
- ]
- }
- },
- "/session/{sessionID}/message": {
- "get": {
- "operationId": "session.messages",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "sessionID",
- "schema": {
- "type": "string"
- },
- "required": true,
- "description": "Session ID"
- },
- {
- "in": "query",
- "name": "limit",
- "schema": {
- "type": "number"
- }
- }
- ],
- "summary": "Get session messages",
- "description": "Retrieve all messages in a session, including user prompts and AI responses.",
- "responses": {
- "200": {
- "description": "List of messages",
- "content": {
- "application/json": {
- "schema": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "info": {
- "$ref": "#/components/schemas/Message"
- },
- "parts": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/Part"
- }
- }
- },
- "required": ["info", "parts"]
- }
- }
- }
- }
- },
- "400": {
- "description": "Bad request",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/BadRequestError"
- }
- }
- }
- },
- "404": {
- "description": "Not found",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/NotFoundError"
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.messages({\n ...\n})"
- }
- ]
- },
- "post": {
- "operationId": "session.prompt",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "sessionID",
- "schema": {
- "type": "string"
- },
- "required": true,
- "description": "Session ID"
- }
- ],
- "summary": "Send message",
- "description": "Create and send a new message to a session, streaming the AI response.",
- "responses": {
- "200": {
- "description": "Created message",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "info": {
- "$ref": "#/components/schemas/AssistantMessage"
- },
- "parts": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/Part"
- }
- }
- },
- "required": ["info", "parts"]
- }
- }
- }
- },
- "400": {
- "description": "Bad request",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/BadRequestError"
- }
- }
- }
- },
- "404": {
- "description": "Not found",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/NotFoundError"
- }
- }
- }
- }
- },
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "messageID": {
- "type": "string",
- "pattern": "^msg.*"
- },
- "model": {
- "type": "object",
- "properties": {
- "providerID": {
- "type": "string"
- },
- "modelID": {
- "type": "string"
- }
- },
- "required": ["providerID", "modelID"]
- },
- "agent": {
- "type": "string"
- },
- "noReply": {
- "type": "boolean"
- },
- "system": {
- "type": "string"
- },
- "tools": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "boolean"
- }
- },
- "parts": {
- "type": "array",
- "items": {
- "anyOf": [
- {
- "$ref": "#/components/schemas/TextPartInput"
- },
- {
- "$ref": "#/components/schemas/FilePartInput"
- },
- {
- "$ref": "#/components/schemas/AgentPartInput"
- },
- {
- "$ref": "#/components/schemas/SubtaskPartInput"
- }
- ]
- }
- }
- },
- "required": ["parts"]
- }
- }
- }
- },
- "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": {
- "operationId": "session.message",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "sessionID",
- "schema": {
- "type": "string"
- },
- "required": true,
- "description": "Session ID"
- },
- {
- "in": "path",
- "name": "messageID",
- "schema": {
- "type": "string"
- },
- "required": true,
- "description": "Message ID"
- }
- ],
- "summary": "Get message",
- "description": "Retrieve a specific message from a session by its message ID.",
- "responses": {
- "200": {
- "description": "Message",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "info": {
- "$ref": "#/components/schemas/Message"
- },
- "parts": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/Part"
- }
- }
- },
- "required": ["info", "parts"]
- }
- }
- }
- },
- "400": {
- "description": "Bad request",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/BadRequestError"
- }
- }
- }
- },
- "404": {
- "description": "Not found",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/NotFoundError"
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.message({\n ...\n})"
- }
- ]
- }
- },
- "/session/{sessionID}/prompt_async": {
- "post": {
- "operationId": "session.prompt_async",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "sessionID",
- "schema": {
- "type": "string"
- },
- "required": true,
- "description": "Session ID"
- }
- ],
- "summary": "Send async message",
- "description": "Create and send a new message to a session asynchronously, starting the session if needed and returning immediately.",
- "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"
- }
- }
- }
- }
- },
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "messageID": {
- "type": "string",
- "pattern": "^msg.*"
- },
- "model": {
- "type": "object",
- "properties": {
- "providerID": {
- "type": "string"
- },
- "modelID": {
- "type": "string"
- }
- },
- "required": ["providerID", "modelID"]
- },
- "agent": {
- "type": "string"
- },
- "noReply": {
- "type": "boolean"
- },
- "system": {
- "type": "string"
- },
- "tools": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "boolean"
- }
- },
- "parts": {
- "type": "array",
- "items": {
- "anyOf": [
- {
- "$ref": "#/components/schemas/TextPartInput"
- },
- {
- "$ref": "#/components/schemas/FilePartInput"
- },
- {
- "$ref": "#/components/schemas/AgentPartInput"
- },
- {
- "$ref": "#/components/schemas/SubtaskPartInput"
- }
- ]
- }
- }
- },
- "required": ["parts"]
- }
- }
- }
- },
- "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": {
- "operationId": "session.command",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "sessionID",
- "schema": {
- "type": "string"
- },
- "required": true,
- "description": "Session ID"
- }
- ],
- "summary": "Send command",
- "description": "Send a new command to a session for execution by the AI assistant.",
- "responses": {
- "200": {
- "description": "Created message",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "info": {
- "$ref": "#/components/schemas/AssistantMessage"
- },
- "parts": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/Part"
- }
- }
- },
- "required": ["info", "parts"]
- }
- }
- }
- },
- "400": {
- "description": "Bad request",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/BadRequestError"
- }
- }
- }
- },
- "404": {
- "description": "Not found",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/NotFoundError"
- }
- }
- }
- }
- },
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "messageID": {
- "type": "string",
- "pattern": "^msg.*"
- },
- "agent": {
- "type": "string"
- },
- "model": {
- "type": "string"
- },
- "arguments": {
- "type": "string"
- },
- "command": {
- "type": "string"
- }
- },
- "required": ["arguments", "command"]
- }
- }
- }
- },
- "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": {
- "operationId": "session.shell",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "sessionID",
- "schema": {
- "type": "string"
- },
- "required": true,
- "description": "Session ID"
- }
- ],
- "summary": "Run shell command",
- "description": "Execute a shell command within the session context and return the AI's response.",
- "responses": {
- "200": {
- "description": "Created message",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/AssistantMessage"
- }
- }
- }
- },
- "400": {
- "description": "Bad request",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/BadRequestError"
- }
- }
- }
- },
- "404": {
- "description": "Not found",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/NotFoundError"
- }
- }
- }
- }
- },
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "agent": {
- "type": "string"
- },
- "model": {
- "type": "object",
- "properties": {
- "providerID": {
- "type": "string"
- },
- "modelID": {
- "type": "string"
- }
- },
- "required": ["providerID", "modelID"]
- },
- "command": {
- "type": "string"
- }
- },
- "required": ["agent", "command"]
- }
- }
- }
- },
- "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": {
- "operationId": "session.revert",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "sessionID",
- "schema": {
- "type": "string"
- },
- "required": true
- }
- ],
- "summary": "Revert message",
- "description": "Revert a specific message in a session, undoing its effects and restoring the previous state.",
- "responses": {
- "200": {
- "description": "Updated session",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Session"
- }
- }
- }
- },
- "400": {
- "description": "Bad request",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/BadRequestError"
- }
- }
- }
- },
- "404": {
- "description": "Not found",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/NotFoundError"
- }
- }
- }
- }
- },
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "messageID": {
- "type": "string",
- "pattern": "^msg.*"
- },
- "partID": {
- "type": "string",
- "pattern": "^prt.*"
- }
- },
- "required": ["messageID"]
- }
- }
- }
- },
- "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": {
- "operationId": "session.unrevert",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "sessionID",
- "schema": {
- "type": "string"
- },
- "required": true
- }
- ],
- "summary": "Restore reverted messages",
- "description": "Restore all previously reverted messages in a session.",
- "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"
- }
- }
- }
- }
- },
- "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": {
- "operationId": "permission.respond",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "sessionID",
- "schema": {
- "type": "string"
- },
- "required": true
- },
- {
- "in": "path",
- "name": "permissionID",
- "schema": {
- "type": "string"
- },
- "required": true
- }
- ],
- "summary": "Respond to permission",
- "description": "Approve or deny a permission request from the AI assistant.",
- "responses": {
- "200": {
- "description": "Permission processed successfully",
- "content": {
- "application/json": {
- "schema": {
- "type": "boolean"
- }
- }
- }
- },
- "400": {
- "description": "Bad request",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/BadRequestError"
- }
- }
- }
- },
- "404": {
- "description": "Not found",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/NotFoundError"
- }
- }
- }
- }
- },
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "response": {
- "type": "string",
- "enum": ["once", "always", "reject"]
- }
- },
- "required": ["response"]
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.permission.respond({\n ...\n})"
- }
- ]
- }
- },
- "/command": {
- "get": {
- "operationId": "command.list",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "List commands",
- "description": "Get a list of all available commands in the OpenCode system.",
- "responses": {
- "200": {
- "description": "List of commands",
- "content": {
- "application/json": {
- "schema": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/Command"
- }
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.command.list({\n ...\n})"
- }
- ]
- }
- },
- "/config/providers": {
- "get": {
- "operationId": "config.providers",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "List config providers",
- "description": "Get a list of all configured AI providers and their default models.",
- "responses": {
- "200": {
- "description": "List of providers",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "providers": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/Provider"
- }
- },
- "default": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string"
- }
- }
- },
- "required": ["providers", "default"]
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.config.providers({\n ...\n})"
- }
- ]
- }
- },
- "/provider": {
- "get": {
- "operationId": "provider.list",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "List providers",
- "description": "Get a list of all available AI providers, including both available and connected ones.",
- "responses": {
- "200": {
- "description": "List of providers",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "all": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "api": {
- "type": "string"
- },
- "name": {
- "type": "string"
- },
- "env": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "id": {
- "type": "string"
- },
- "npm": {
- "type": "string"
- },
- "models": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "name": {
- "type": "string"
- },
- "release_date": {
- "type": "string"
- },
- "attachment": {
- "type": "boolean"
- },
- "reasoning": {
- "type": "boolean"
- },
- "temperature": {
- "type": "boolean"
- },
- "tool_call": {
- "type": "boolean"
- },
- "interleaved": {
- "anyOf": [
- {
- "type": "boolean",
- "const": 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"]
- }
- },
- "required": ["input", "output"]
- },
- "limit": {
- "type": "object",
- "properties": {
- "context": {
- "type": "number"
- },
- "output": {
- "type": "number"
- }
- },
- "required": ["context", "output"]
- },
- "modalities": {
- "type": "object",
- "properties": {
- "input": {
- "type": "array",
- "items": {
- "type": "string",
- "enum": ["text", "audio", "image", "video", "pdf"]
- }
- },
- "output": {
- "type": "array",
- "items": {
- "type": "string",
- "enum": ["text", "audio", "image", "video", "pdf"]
- }
- }
- },
- "required": ["input", "output"]
- },
- "experimental": {
- "type": "boolean"
- },
- "status": {
- "type": "string",
- "enum": ["alpha", "beta", "deprecated"]
- },
- "options": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {}
- },
- "headers": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string"
- }
- },
- "provider": {
- "type": "object",
- "properties": {
- "npm": {
- "type": "string"
- }
- },
- "required": ["npm"]
- }
- },
- "required": [
- "id",
- "name",
- "release_date",
- "attachment",
- "reasoning",
- "temperature",
- "tool_call",
- "limit",
- "options"
- ]
- }
- }
- },
- "required": ["name", "env", "id", "models"]
- }
- },
- "default": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string"
- }
- },
- "connected": {
- "type": "array",
- "items": {
- "type": "string"
- }
- }
- },
- "required": ["all", "default", "connected"]
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.provider.list({\n ...\n})"
- }
- ]
- }
- },
- "/provider/auth": {
- "get": {
- "operationId": "provider.auth",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Get provider auth methods",
- "description": "Retrieve available authentication methods for all AI providers.",
- "responses": {
- "200": {
- "description": "Provider auth methods",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/ProviderAuthMethod"
- }
- }
- }
- }
- }
- }
- },
- "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": {
- "operationId": "provider.oauth.authorize",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "providerID",
- "schema": {
- "type": "string"
- },
- "required": true,
- "description": "Provider ID"
- }
- ],
- "summary": "OAuth authorize",
- "description": "Initiate OAuth authorization for a specific AI provider to get an authorization URL.",
- "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"
- }
- }
- }
- }
- },
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "method": {
- "description": "Auth method index",
- "type": "number"
- }
- },
- "required": ["method"]
- }
- }
- }
- },
- "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": {
- "operationId": "provider.oauth.callback",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "providerID",
- "schema": {
- "type": "string"
- },
- "required": true,
- "description": "Provider ID"
- }
- ],
- "summary": "OAuth callback",
- "description": "Handle the OAuth callback from a provider after user authorization.",
- "responses": {
- "200": {
- "description": "OAuth callback processed successfully",
- "content": {
- "application/json": {
- "schema": {
- "type": "boolean"
- }
- }
- }
- },
- "400": {
- "description": "Bad request",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/BadRequestError"
- }
- }
- }
- }
- },
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "method": {
- "description": "Auth method index",
- "type": "number"
- },
- "code": {
- "description": "OAuth authorization code",
- "type": "string"
- }
- },
- "required": ["method"]
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.provider.oauth.callback({\n ...\n})"
- }
- ]
- }
- },
- "/find": {
- "get": {
- "operationId": "find.text",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "query",
- "name": "pattern",
- "schema": {
- "type": "string"
- },
- "required": true
- }
- ],
- "summary": "Find text",
- "description": "Search for text patterns across files in the project using ripgrep.",
- "responses": {
- "200": {
- "description": "Matches",
- "content": {
- "application/json": {
- "schema": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "path": {
- "type": "object",
- "properties": {
- "text": {
- "type": "string"
- }
- },
- "required": ["text"]
- },
- "lines": {
- "type": "object",
- "properties": {
- "text": {
- "type": "string"
- }
- },
- "required": ["text"]
- },
- "line_number": {
- "type": "number"
- },
- "absolute_offset": {
- "type": "number"
- },
- "submatches": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "match": {
- "type": "object",
- "properties": {
- "text": {
- "type": "string"
- }
- },
- "required": ["text"]
- },
- "start": {
- "type": "number"
- },
- "end": {
- "type": "number"
- }
- },
- "required": ["match", "start", "end"]
- }
- }
- },
- "required": ["path", "lines", "line_number", "absolute_offset", "submatches"]
- }
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.find.text({\n ...\n})"
- }
- ]
- }
- },
- "/find/file": {
- "get": {
- "operationId": "find.files",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "query",
- "name": "query",
- "schema": {
- "type": "string"
- },
- "required": true
- },
- {
- "in": "query",
- "name": "dirs",
- "schema": {
- "type": "string",
- "enum": ["true", "false"]
- }
- }
- ],
- "summary": "Find files",
- "description": "Search for files by name or pattern in the project directory.",
- "responses": {
- "200": {
- "description": "File paths",
- "content": {
- "application/json": {
- "schema": {
- "type": "array",
- "items": {
- "type": "string"
- }
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.find.files({\n ...\n})"
- }
- ]
- }
- },
- "/find/symbol": {
- "get": {
- "operationId": "find.symbols",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "query",
- "name": "query",
- "schema": {
- "type": "string"
- },
- "required": true
- }
- ],
- "summary": "Find symbols",
- "description": "Search for workspace symbols like functions, classes, and variables using LSP.",
- "responses": {
- "200": {
- "description": "Symbols",
- "content": {
- "application/json": {
- "schema": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/Symbol"
- }
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.find.symbols({\n ...\n})"
- }
- ]
- }
- },
- "/file": {
- "get": {
- "operationId": "file.list",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "query",
- "name": "path",
- "schema": {
- "type": "string"
- },
- "required": true
- }
- ],
- "summary": "List files",
- "description": "List files and directories in a specified path.",
- "responses": {
- "200": {
- "description": "Files and directories",
- "content": {
- "application/json": {
- "schema": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/FileNode"
- }
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.file.list({\n ...\n})"
- }
- ]
- }
- },
- "/file/content": {
- "get": {
- "operationId": "file.read",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "query",
- "name": "path",
- "schema": {
- "type": "string"
- },
- "required": true
- }
- ],
- "summary": "Read file",
- "description": "Read the content of a specified file.",
- "responses": {
- "200": {
- "description": "File content",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/FileContent"
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.file.read({\n ...\n})"
- }
- ]
- }
- },
- "/file/status": {
- "get": {
- "operationId": "file.status",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Get file status",
- "description": "Get the git status of all files in the project.",
- "responses": {
- "200": {
- "description": "File status",
- "content": {
- "application/json": {
- "schema": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/File"
- }
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.file.status({\n ...\n})"
- }
- ]
- }
- },
- "/log": {
- "post": {
- "operationId": "app.log",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Write log",
- "description": "Write a log entry to the server logs with specified level and metadata.",
- "responses": {
- "200": {
- "description": "Log entry written successfully",
- "content": {
- "application/json": {
- "schema": {
- "type": "boolean"
- }
- }
- }
- },
- "400": {
- "description": "Bad request",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/BadRequestError"
- }
- }
- }
- }
- },
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "service": {
- "description": "Service name for the log entry",
- "type": "string"
- },
- "level": {
- "description": "Log level",
- "type": "string",
- "enum": ["debug", "info", "error", "warn"]
- },
- "message": {
- "description": "Log message",
- "type": "string"
- },
- "extra": {
- "description": "Additional metadata for the log entry",
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {}
- }
- },
- "required": ["service", "level", "message"]
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.app.log({\n ...\n})"
- }
- ]
- }
- },
- "/agent": {
- "get": {
- "operationId": "app.agents",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "List agents",
- "description": "Get a list of all available AI agents in the OpenCode system.",
- "responses": {
- "200": {
- "description": "List of agents",
- "content": {
- "application/json": {
- "schema": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/Agent"
- }
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.app.agents({\n ...\n})"
- }
- ]
- }
- },
- "/mcp": {
- "get": {
- "operationId": "mcp.status",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Get MCP status",
- "description": "Get the status of all Model Context Protocol (MCP) servers.",
- "responses": {
- "200": {
- "description": "MCP server status",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "$ref": "#/components/schemas/MCPStatus"
- }
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.mcp.status({\n ...\n})"
- }
- ]
- },
- "post": {
- "operationId": "mcp.add",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Add MCP server",
- "description": "Dynamically add a new Model Context Protocol (MCP) server to the system.",
- "responses": {
- "200": {
- "description": "MCP server added successfully",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "$ref": "#/components/schemas/MCPStatus"
- }
- }
- }
- }
- },
- "400": {
- "description": "Bad request",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/BadRequestError"
- }
- }
- }
- }
- },
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string"
- },
- "config": {
- "anyOf": [
- {
- "$ref": "#/components/schemas/McpLocalConfig"
- },
- {
- "$ref": "#/components/schemas/McpRemoteConfig"
- }
- ]
- }
- },
- "required": ["name", "config"]
- }
- }
- }
- },
- "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": {
- "operationId": "mcp.auth.start",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "schema": {
- "type": "string"
- },
- "in": "path",
- "name": "name",
- "required": true
- }
- ],
- "summary": "Start MCP OAuth",
- "description": "Start OAuth authentication flow for a Model Context Protocol (MCP) server.",
- "responses": {
- "200": {
- "description": "OAuth flow started",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "authorizationUrl": {
- "description": "URL to open in browser for authorization",
- "type": "string"
- }
- },
- "required": ["authorizationUrl"]
- }
- }
- }
- },
- "400": {
- "description": "Bad request",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/BadRequestError"
- }
- }
- }
- },
- "404": {
- "description": "Not found",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/NotFoundError"
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.mcp.auth.start({\n ...\n})"
- }
- ]
- },
- "delete": {
- "operationId": "mcp.auth.remove",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "schema": {
- "type": "string"
- },
- "in": "path",
- "name": "name",
- "required": true
- }
- ],
- "summary": "Remove MCP OAuth",
- "description": "Remove OAuth credentials for an MCP server",
- "responses": {
- "200": {
- "description": "OAuth credentials removed",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "success": {
- "type": "boolean",
- "const": true
- }
- },
- "required": ["success"]
- }
- }
- }
- },
- "404": {
- "description": "Not found",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/NotFoundError"
- }
- }
- }
- }
- },
- "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": {
- "operationId": "mcp.auth.callback",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "schema": {
- "type": "string"
- },
- "in": "path",
- "name": "name",
- "required": true
- }
- ],
- "summary": "Complete MCP OAuth",
- "description": "Complete OAuth authentication for a Model Context Protocol (MCP) server using the authorization code.",
- "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"
- }
- }
- }
- }
- },
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "code": {
- "description": "Authorization code from OAuth callback",
- "type": "string"
- }
- },
- "required": ["code"]
- }
- }
- }
- },
- "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": {
- "operationId": "mcp.auth.authenticate",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "schema": {
- "type": "string"
- },
- "in": "path",
- "name": "name",
- "required": true
- }
- ],
- "summary": "Authenticate MCP OAuth",
- "description": "Start OAuth flow and wait for callback (opens browser)",
- "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"
- }
- }
- }
- }
- },
- "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": {
- "operationId": "mcp.connect",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "name",
- "schema": {
- "type": "string"
- },
- "required": true
- }
- ],
- "description": "Connect an MCP server",
- "responses": {
- "200": {
- "description": "MCP server connected successfully",
- "content": {
- "application/json": {
- "schema": {
- "type": "boolean"
- }
- }
- }
- }
- },
- "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": {
- "operationId": "mcp.disconnect",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "name",
- "schema": {
- "type": "string"
- },
- "required": true
- }
- ],
- "description": "Disconnect an MCP server",
- "responses": {
- "200": {
- "description": "MCP server disconnected successfully",
- "content": {
- "application/json": {
- "schema": {
- "type": "boolean"
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.mcp.disconnect({\n ...\n})"
- }
- ]
- }
- },
- "/lsp": {
- "get": {
- "operationId": "lsp.status",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Get LSP status",
- "description": "Get LSP server status",
- "responses": {
- "200": {
- "description": "LSP server status",
- "content": {
- "application/json": {
- "schema": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/LSPStatus"
- }
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.lsp.status({\n ...\n})"
- }
- ]
- }
- },
- "/formatter": {
- "get": {
- "operationId": "formatter.status",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Get formatter status",
- "description": "Get formatter status",
- "responses": {
- "200": {
- "description": "Formatter status",
- "content": {
- "application/json": {
- "schema": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/FormatterStatus"
- }
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.formatter.status({\n ...\n})"
- }
- ]
- }
- },
- "/tui/append-prompt": {
- "post": {
- "operationId": "tui.appendPrompt",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Append TUI prompt",
- "description": "Append prompt to the TUI",
- "responses": {
- "200": {
- "description": "Prompt processed successfully",
- "content": {
- "application/json": {
- "schema": {
- "type": "boolean"
- }
- }
- }
- },
- "400": {
- "description": "Bad request",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/BadRequestError"
- }
- }
- }
- }
- },
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "text": {
- "type": "string"
- }
- },
- "required": ["text"]
- }
- }
- }
- },
- "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": {
- "operationId": "tui.openHelp",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Open help dialog",
- "description": "Open the help dialog in the TUI to display user assistance information.",
- "responses": {
- "200": {
- "description": "Help dialog opened successfully",
- "content": {
- "application/json": {
- "schema": {
- "type": "boolean"
- }
- }
- }
- }
- },
- "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": {
- "operationId": "tui.openSessions",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Open sessions dialog",
- "description": "Open the session dialog",
- "responses": {
- "200": {
- "description": "Session dialog opened successfully",
- "content": {
- "application/json": {
- "schema": {
- "type": "boolean"
- }
- }
- }
- }
- },
- "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": {
- "operationId": "tui.openThemes",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Open themes dialog",
- "description": "Open the theme dialog",
- "responses": {
- "200": {
- "description": "Theme dialog opened successfully",
- "content": {
- "application/json": {
- "schema": {
- "type": "boolean"
- }
- }
- }
- }
- },
- "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": {
- "operationId": "tui.openModels",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Open models dialog",
- "description": "Open the model dialog",
- "responses": {
- "200": {
- "description": "Model dialog opened successfully",
- "content": {
- "application/json": {
- "schema": {
- "type": "boolean"
- }
- }
- }
- }
- },
- "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": {
- "operationId": "tui.submitPrompt",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Submit TUI prompt",
- "description": "Submit the prompt",
- "responses": {
- "200": {
- "description": "Prompt submitted successfully",
- "content": {
- "application/json": {
- "schema": {
- "type": "boolean"
- }
- }
- }
- }
- },
- "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": {
- "operationId": "tui.clearPrompt",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Clear TUI prompt",
- "description": "Clear the prompt",
- "responses": {
- "200": {
- "description": "Prompt cleared successfully",
- "content": {
- "application/json": {
- "schema": {
- "type": "boolean"
- }
- }
- }
- }
- },
- "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": {
- "operationId": "tui.executeCommand",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Execute TUI command",
- "description": "Execute a TUI command (e.g. agent_cycle)",
- "responses": {
- "200": {
- "description": "Command executed successfully",
- "content": {
- "application/json": {
- "schema": {
- "type": "boolean"
- }
- }
- }
- },
- "400": {
- "description": "Bad request",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/BadRequestError"
- }
- }
- }
- }
- },
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "command": {
- "type": "string"
- }
- },
- "required": ["command"]
- }
- }
- }
- },
- "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": {
- "operationId": "tui.showToast",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Show TUI toast",
- "description": "Show a toast notification in the TUI",
- "responses": {
- "200": {
- "description": "Toast notification shown successfully",
- "content": {
- "application/json": {
- "schema": {
- "type": "boolean"
- }
- }
- }
- }
- },
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "title": {
- "type": "string"
- },
- "message": {
- "type": "string"
- },
- "variant": {
- "type": "string",
- "enum": ["info", "success", "warning", "error"]
- },
- "duration": {
- "description": "Duration in milliseconds",
- "default": 5000,
- "type": "number"
- }
- },
- "required": ["message", "variant"]
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.showToast({\n ...\n})"
- }
- ]
- }
- },
- "/tui/publish": {
- "post": {
- "operationId": "tui.publish",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Publish TUI event",
- "description": "Publish a TUI event",
- "responses": {
- "200": {
- "description": "Event published successfully",
- "content": {
- "application/json": {
- "schema": {
- "type": "boolean"
- }
- }
- }
- },
- "400": {
- "description": "Bad request",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/BadRequestError"
- }
- }
- }
- }
- },
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "anyOf": [
- {
- "$ref": "#/components/schemas/Event.tui.prompt.append"
- },
- {
- "$ref": "#/components/schemas/Event.tui.command.execute"
- },
- {
- "$ref": "#/components/schemas/Event.tui.toast.show"
- }
- ]
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.publish({\n ...\n})"
- }
- ]
- }
- },
- "/tui/control/next": {
- "get": {
- "operationId": "tui.control.next",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Get next TUI request",
- "description": "Retrieve the next TUI (Terminal User Interface) request from the queue for processing.",
- "responses": {
- "200": {
- "description": "Next TUI request",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "path": {
- "type": "string"
- },
- "body": {}
- },
- "required": ["path", "body"]
- }
- }
- }
- }
- },
- "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": {
- "operationId": "tui.control.response",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Submit TUI response",
- "description": "Submit a response to the TUI request queue to complete a pending request.",
- "responses": {
- "200": {
- "description": "Response submitted successfully",
- "content": {
- "application/json": {
- "schema": {
- "type": "boolean"
- }
- }
- }
- }
- },
- "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})"
- }
- ]
- }
- },
- "/auth/{providerID}": {
- "put": {
- "operationId": "auth.set",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "providerID",
- "schema": {
- "type": "string"
- },
- "required": true
- }
- ],
- "summary": "Set auth credentials",
- "description": "Set authentication credentials",
- "responses": {
- "200": {
- "description": "Successfully set authentication credentials",
- "content": {
- "application/json": {
- "schema": {
- "type": "boolean"
- }
- }
- }
- },
- "400": {
- "description": "Bad request",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/BadRequestError"
- }
- }
- }
- }
- },
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Auth"
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.auth.set({\n ...\n})"
- }
- ]
- }
- },
- "/event": {
- "get": {
- "operationId": "event.subscribe",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Subscribe to events",
- "description": "Get events",
- "responses": {
- "200": {
- "description": "Event stream",
- "content": {
- "text/event-stream": {
- "schema": {
- "$ref": "#/components/schemas/Event"
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.event.subscribe({\n ...\n})"
- }
- ]
- }
- }
- },
- "components": {
- "schemas": {
- "Event.installation.updated": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "installation.updated"
- },
- "properties": {
- "type": "object",
- "properties": {
- "version": {
- "type": "string"
- }
- },
- "required": ["version"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.installation.update-available": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "installation.update-available"
- },
- "properties": {
- "type": "object",
- "properties": {
- "version": {
- "type": "string"
- }
- },
- "required": ["version"]
- }
- },
- "required": ["type", "properties"]
- },
- "Project": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "worktree": {
- "type": "string"
- },
- "vcs": {
- "type": "string",
- "const": "git"
- },
- "name": {
- "type": "string"
- },
- "icon": {
- "type": "object",
- "properties": {
- "url": {
- "type": "string"
- },
- "color": {
- "type": "string"
- }
- }
- },
- "time": {
- "type": "object",
- "properties": {
- "created": {
- "type": "number"
- },
- "updated": {
- "type": "number"
- },
- "initialized": {
- "type": "number"
- }
- },
- "required": ["created", "updated"]
- }
- },
- "required": ["id", "worktree", "time"]
- },
- "Event.project.updated": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "project.updated"
- },
- "properties": {
- "$ref": "#/components/schemas/Project"
- }
- },
- "required": ["type", "properties"]
- },
- "Event.server.instance.disposed": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "server.instance.disposed"
- },
- "properties": {
- "type": "object",
- "properties": {
- "directory": {
- "type": "string"
- }
- },
- "required": ["directory"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.lsp.client.diagnostics": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "lsp.client.diagnostics"
- },
- "properties": {
- "type": "object",
- "properties": {
- "serverID": {
- "type": "string"
- },
- "path": {
- "type": "string"
- }
- },
- "required": ["serverID", "path"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.lsp.updated": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "lsp.updated"
- },
- "properties": {
- "type": "object",
- "properties": {}
- }
- },
- "required": ["type", "properties"]
- },
- "FileDiff": {
- "type": "object",
- "properties": {
- "file": {
- "type": "string"
- },
- "before": {
- "type": "string"
- },
- "after": {
- "type": "string"
- },
- "additions": {
- "type": "number"
- },
- "deletions": {
- "type": "number"
- }
- },
- "required": ["file", "before", "after", "additions", "deletions"]
- },
- "UserMessage": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "sessionID": {
- "type": "string"
- },
- "role": {
- "type": "string",
- "const": "user"
- },
- "time": {
- "type": "object",
- "properties": {
- "created": {
- "type": "number"
- }
- },
- "required": ["created"]
- },
- "summary": {
- "type": "object",
- "properties": {
- "title": {
- "type": "string"
- },
- "body": {
- "type": "string"
- },
- "diffs": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/FileDiff"
- }
- }
- },
- "required": ["diffs"]
- },
- "agent": {
- "type": "string"
- },
- "model": {
- "type": "object",
- "properties": {
- "providerID": {
- "type": "string"
- },
- "modelID": {
- "type": "string"
- }
- },
- "required": ["providerID", "modelID"]
- },
- "system": {
- "type": "string"
- },
- "tools": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "boolean"
- }
- }
- },
- "required": ["id", "sessionID", "role", "time", "agent", "model"]
- },
- "ProviderAuthError": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "const": "ProviderAuthError"
- },
- "data": {
- "type": "object",
- "properties": {
- "providerID": {
- "type": "string"
- },
- "message": {
- "type": "string"
- }
- },
- "required": ["providerID", "message"]
- }
- },
- "required": ["name", "data"]
- },
- "UnknownError": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "const": "UnknownError"
- },
- "data": {
- "type": "object",
- "properties": {
- "message": {
- "type": "string"
- }
- },
- "required": ["message"]
- }
- },
- "required": ["name", "data"]
- },
- "MessageOutputLengthError": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "const": "MessageOutputLengthError"
- },
- "data": {
- "type": "object",
- "properties": {}
- }
- },
- "required": ["name", "data"]
- },
- "MessageAbortedError": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "const": "MessageAbortedError"
- },
- "data": {
- "type": "object",
- "properties": {
- "message": {
- "type": "string"
- }
- },
- "required": ["message"]
- }
- },
- "required": ["name", "data"]
- },
- "APIError": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "const": "APIError"
- },
- "data": {
- "type": "object",
- "properties": {
- "message": {
- "type": "string"
- },
- "statusCode": {
- "type": "number"
- },
- "isRetryable": {
- "type": "boolean"
- },
- "responseHeaders": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string"
- }
- },
- "responseBody": {
- "type": "string"
- }
- },
- "required": ["message", "isRetryable"]
- }
- },
- "required": ["name", "data"]
- },
- "AssistantMessage": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "sessionID": {
- "type": "string"
- },
- "role": {
- "type": "string",
- "const": "assistant"
- },
- "time": {
- "type": "object",
- "properties": {
- "created": {
- "type": "number"
- },
- "completed": {
- "type": "number"
- }
- },
- "required": ["created"]
- },
- "error": {
- "anyOf": [
- {
- "$ref": "#/components/schemas/ProviderAuthError"
- },
- {
- "$ref": "#/components/schemas/UnknownError"
- },
- {
- "$ref": "#/components/schemas/MessageOutputLengthError"
- },
- {
- "$ref": "#/components/schemas/MessageAbortedError"
- },
- {
- "$ref": "#/components/schemas/APIError"
- }
- ]
- },
- "parentID": {
- "type": "string"
- },
- "modelID": {
- "type": "string"
- },
- "providerID": {
- "type": "string"
- },
- "mode": {
- "type": "string"
- },
- "path": {
- "type": "object",
- "properties": {
- "cwd": {
- "type": "string"
- },
- "root": {
- "type": "string"
- }
- },
- "required": ["cwd", "root"]
- },
- "summary": {
- "type": "boolean"
- },
- "cost": {
- "type": "number"
- },
- "tokens": {
- "type": "object",
- "properties": {
- "input": {
- "type": "number"
- },
- "output": {
- "type": "number"
- },
- "reasoning": {
- "type": "number"
- },
- "cache": {
- "type": "object",
- "properties": {
- "read": {
- "type": "number"
- },
- "write": {
- "type": "number"
- }
- },
- "required": ["read", "write"]
- }
- },
- "required": ["input", "output", "reasoning", "cache"]
- },
- "finish": {
- "type": "string"
- }
- },
- "required": [
- "id",
- "sessionID",
- "role",
- "time",
- "parentID",
- "modelID",
- "providerID",
- "mode",
- "path",
- "cost",
- "tokens"
- ]
- },
- "Message": {
- "anyOf": [
- {
- "$ref": "#/components/schemas/UserMessage"
- },
- {
- "$ref": "#/components/schemas/AssistantMessage"
- }
- ]
- },
- "Event.message.updated": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "message.updated"
- },
- "properties": {
- "type": "object",
- "properties": {
- "info": {
- "$ref": "#/components/schemas/Message"
- }
- },
- "required": ["info"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.message.removed": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "message.removed"
- },
- "properties": {
- "type": "object",
- "properties": {
- "sessionID": {
- "type": "string"
- },
- "messageID": {
- "type": "string"
- }
- },
- "required": ["sessionID", "messageID"]
- }
- },
- "required": ["type", "properties"]
- },
- "TextPart": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "sessionID": {
- "type": "string"
- },
- "messageID": {
- "type": "string"
- },
- "type": {
- "type": "string",
- "const": "text"
- },
- "text": {
- "type": "string"
- },
- "synthetic": {
- "type": "boolean"
- },
- "ignored": {
- "type": "boolean"
- },
- "time": {
- "type": "object",
- "properties": {
- "start": {
- "type": "number"
- },
- "end": {
- "type": "number"
- }
- },
- "required": ["start"]
- },
- "metadata": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {}
- }
- },
- "required": ["id", "sessionID", "messageID", "type", "text"]
- },
- "ReasoningPart": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "sessionID": {
- "type": "string"
- },
- "messageID": {
- "type": "string"
- },
- "type": {
- "type": "string",
- "const": "reasoning"
- },
- "text": {
- "type": "string"
- },
- "metadata": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {}
- },
- "time": {
- "type": "object",
- "properties": {
- "start": {
- "type": "number"
- },
- "end": {
- "type": "number"
- }
- },
- "required": ["start"]
- }
- },
- "required": ["id", "sessionID", "messageID", "type", "text", "time"]
- },
- "FilePartSourceText": {
- "type": "object",
- "properties": {
- "value": {
- "type": "string"
- },
- "start": {
- "type": "integer",
- "minimum": -9007199254740991,
- "maximum": 9007199254740991
- },
- "end": {
- "type": "integer",
- "minimum": -9007199254740991,
- "maximum": 9007199254740991
- }
- },
- "required": ["value", "start", "end"]
- },
- "FileSource": {
- "type": "object",
- "properties": {
- "text": {
- "$ref": "#/components/schemas/FilePartSourceText"
- },
- "type": {
- "type": "string",
- "const": "file"
- },
- "path": {
- "type": "string"
- }
- },
- "required": ["text", "type", "path"]
- },
- "Range": {
- "type": "object",
- "properties": {
- "start": {
- "type": "object",
- "properties": {
- "line": {
- "type": "number"
- },
- "character": {
- "type": "number"
- }
- },
- "required": ["line", "character"]
- },
- "end": {
- "type": "object",
- "properties": {
- "line": {
- "type": "number"
- },
- "character": {
- "type": "number"
- }
- },
- "required": ["line", "character"]
- }
- },
- "required": ["start", "end"]
- },
- "SymbolSource": {
- "type": "object",
- "properties": {
- "text": {
- "$ref": "#/components/schemas/FilePartSourceText"
- },
- "type": {
- "type": "string",
- "const": "symbol"
- },
- "path": {
- "type": "string"
- },
- "range": {
- "$ref": "#/components/schemas/Range"
- },
- "name": {
- "type": "string"
- },
- "kind": {
- "type": "integer",
- "minimum": -9007199254740991,
- "maximum": 9007199254740991
- }
- },
- "required": ["text", "type", "path", "range", "name", "kind"]
- },
- "FilePartSource": {
- "anyOf": [
- {
- "$ref": "#/components/schemas/FileSource"
- },
- {
- "$ref": "#/components/schemas/SymbolSource"
- }
- ]
- },
- "FilePart": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "sessionID": {
- "type": "string"
- },
- "messageID": {
- "type": "string"
- },
- "type": {
- "type": "string",
- "const": "file"
- },
- "mime": {
- "type": "string"
- },
- "filename": {
- "type": "string"
- },
- "url": {
- "type": "string"
- },
- "source": {
- "$ref": "#/components/schemas/FilePartSource"
- }
- },
- "required": ["id", "sessionID", "messageID", "type", "mime", "url"]
- },
- "ToolStatePending": {
- "type": "object",
- "properties": {
- "status": {
- "type": "string",
- "const": "pending"
- },
- "input": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {}
- },
- "raw": {
- "type": "string"
- }
- },
- "required": ["status", "input", "raw"]
- },
- "ToolStateRunning": {
- "type": "object",
- "properties": {
- "status": {
- "type": "string",
- "const": "running"
- },
- "input": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {}
- },
- "title": {
- "type": "string"
- },
- "metadata": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {}
- },
- "time": {
- "type": "object",
- "properties": {
- "start": {
- "type": "number"
- }
- },
- "required": ["start"]
- }
- },
- "required": ["status", "input", "time"]
- },
- "ToolStateCompleted": {
- "type": "object",
- "properties": {
- "status": {
- "type": "string",
- "const": "completed"
- },
- "input": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {}
- },
- "output": {
- "type": "string"
- },
- "title": {
- "type": "string"
- },
- "metadata": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {}
- },
- "time": {
- "type": "object",
- "properties": {
- "start": {
- "type": "number"
- },
- "end": {
- "type": "number"
- },
- "compacted": {
- "type": "number"
- }
- },
- "required": ["start", "end"]
- },
- "attachments": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/FilePart"
- }
- }
- },
- "required": ["status", "input", "output", "title", "metadata", "time"]
- },
- "ToolStateError": {
- "type": "object",
- "properties": {
- "status": {
- "type": "string",
- "const": "error"
- },
- "input": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {}
- },
- "error": {
- "type": "string"
- },
- "metadata": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {}
- },
- "time": {
- "type": "object",
- "properties": {
- "start": {
- "type": "number"
- },
- "end": {
- "type": "number"
- }
- },
- "required": ["start", "end"]
- }
- },
- "required": ["status", "input", "error", "time"]
- },
- "ToolState": {
- "anyOf": [
- {
- "$ref": "#/components/schemas/ToolStatePending"
- },
- {
- "$ref": "#/components/schemas/ToolStateRunning"
- },
- {
- "$ref": "#/components/schemas/ToolStateCompleted"
- },
- {
- "$ref": "#/components/schemas/ToolStateError"
- }
- ]
- },
- "ToolPart": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "sessionID": {
- "type": "string"
- },
- "messageID": {
- "type": "string"
- },
- "type": {
- "type": "string",
- "const": "tool"
- },
- "callID": {
- "type": "string"
- },
- "tool": {
- "type": "string"
- },
- "state": {
- "$ref": "#/components/schemas/ToolState"
- },
- "metadata": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {}
- }
- },
- "required": ["id", "sessionID", "messageID", "type", "callID", "tool", "state"]
- },
- "StepStartPart": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "sessionID": {
- "type": "string"
- },
- "messageID": {
- "type": "string"
- },
- "type": {
- "type": "string",
- "const": "step-start"
- },
- "snapshot": {
- "type": "string"
- }
- },
- "required": ["id", "sessionID", "messageID", "type"]
- },
- "StepFinishPart": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "sessionID": {
- "type": "string"
- },
- "messageID": {
- "type": "string"
- },
- "type": {
- "type": "string",
- "const": "step-finish"
- },
- "reason": {
- "type": "string"
- },
- "snapshot": {
- "type": "string"
- },
- "cost": {
- "type": "number"
- },
- "tokens": {
- "type": "object",
- "properties": {
- "input": {
- "type": "number"
- },
- "output": {
- "type": "number"
- },
- "reasoning": {
- "type": "number"
- },
- "cache": {
- "type": "object",
- "properties": {
- "read": {
- "type": "number"
- },
- "write": {
- "type": "number"
- }
- },
- "required": ["read", "write"]
- }
- },
- "required": ["input", "output", "reasoning", "cache"]
- }
- },
- "required": ["id", "sessionID", "messageID", "type", "reason", "cost", "tokens"]
- },
- "SnapshotPart": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "sessionID": {
- "type": "string"
- },
- "messageID": {
- "type": "string"
- },
- "type": {
- "type": "string",
- "const": "snapshot"
- },
- "snapshot": {
- "type": "string"
- }
- },
- "required": ["id", "sessionID", "messageID", "type", "snapshot"]
- },
- "PatchPart": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "sessionID": {
- "type": "string"
- },
- "messageID": {
- "type": "string"
- },
- "type": {
- "type": "string",
- "const": "patch"
- },
- "hash": {
- "type": "string"
- },
- "files": {
- "type": "array",
- "items": {
- "type": "string"
- }
- }
- },
- "required": ["id", "sessionID", "messageID", "type", "hash", "files"]
- },
- "AgentPart": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "sessionID": {
- "type": "string"
- },
- "messageID": {
- "type": "string"
- },
- "type": {
- "type": "string",
- "const": "agent"
- },
- "name": {
- "type": "string"
- },
- "source": {
- "type": "object",
- "properties": {
- "value": {
- "type": "string"
- },
- "start": {
- "type": "integer",
- "minimum": -9007199254740991,
- "maximum": 9007199254740991
- },
- "end": {
- "type": "integer",
- "minimum": -9007199254740991,
- "maximum": 9007199254740991
- }
- },
- "required": ["value", "start", "end"]
- }
- },
- "required": ["id", "sessionID", "messageID", "type", "name"]
- },
- "RetryPart": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "sessionID": {
- "type": "string"
- },
- "messageID": {
- "type": "string"
- },
- "type": {
- "type": "string",
- "const": "retry"
- },
- "attempt": {
- "type": "number"
- },
- "error": {
- "$ref": "#/components/schemas/APIError"
- },
- "time": {
- "type": "object",
- "properties": {
- "created": {
- "type": "number"
- }
- },
- "required": ["created"]
- }
- },
- "required": ["id", "sessionID", "messageID", "type", "attempt", "error", "time"]
- },
- "CompactionPart": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "sessionID": {
- "type": "string"
- },
- "messageID": {
- "type": "string"
- },
- "type": {
- "type": "string",
- "const": "compaction"
- },
- "auto": {
- "type": "boolean"
- }
- },
- "required": ["id", "sessionID", "messageID", "type", "auto"]
- },
- "Part": {
- "anyOf": [
- {
- "$ref": "#/components/schemas/TextPart"
- },
- {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "sessionID": {
- "type": "string"
- },
- "messageID": {
- "type": "string"
- },
- "type": {
- "type": "string",
- "const": "subtask"
- },
- "prompt": {
- "type": "string"
- },
- "description": {
- "type": "string"
- },
- "agent": {
- "type": "string"
- }
- },
- "required": ["id", "sessionID", "messageID", "type", "prompt", "description", "agent"]
- },
- {
- "$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"
- }
- ]
- },
- "Event.message.part.updated": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "message.part.updated"
- },
- "properties": {
- "type": "object",
- "properties": {
- "part": {
- "$ref": "#/components/schemas/Part"
- },
- "delta": {
- "type": "string"
- }
- },
- "required": ["part"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.message.part.removed": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "message.part.removed"
- },
- "properties": {
- "type": "object",
- "properties": {
- "sessionID": {
- "type": "string"
- },
- "messageID": {
- "type": "string"
- },
- "partID": {
- "type": "string"
- }
- },
- "required": ["sessionID", "messageID", "partID"]
- }
- },
- "required": ["type", "properties"]
- },
- "Permission": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "type": {
- "type": "string"
- },
- "pattern": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "array",
- "items": {
- "type": "string"
- }
- }
- ]
- },
- "sessionID": {
- "type": "string"
- },
- "messageID": {
- "type": "string"
- },
- "callID": {
- "type": "string"
- },
- "title": {
- "type": "string"
- },
- "metadata": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {}
- },
- "time": {
- "type": "object",
- "properties": {
- "created": {
- "type": "number"
- }
- },
- "required": ["created"]
- }
- },
- "required": ["id", "type", "sessionID", "messageID", "title", "metadata", "time"]
- },
- "Event.permission.updated": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "permission.updated"
- },
- "properties": {
- "$ref": "#/components/schemas/Permission"
- }
- },
- "required": ["type", "properties"]
- },
- "Event.permission.replied": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "permission.replied"
- },
- "properties": {
- "type": "object",
- "properties": {
- "sessionID": {
- "type": "string"
- },
- "permissionID": {
- "type": "string"
- },
- "response": {
- "type": "string"
- }
- },
- "required": ["sessionID", "permissionID", "response"]
- }
- },
- "required": ["type", "properties"]
- },
- "SessionStatus": {
- "anyOf": [
- {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "idle"
- }
- },
- "required": ["type"]
- },
- {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "retry"
- },
- "attempt": {
- "type": "number"
- },
- "message": {
- "type": "string"
- },
- "next": {
- "type": "number"
- }
- },
- "required": ["type", "attempt", "message", "next"]
- },
- {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "busy"
- }
- },
- "required": ["type"]
- }
- ]
- },
- "Event.session.status": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "session.status"
- },
- "properties": {
- "type": "object",
- "properties": {
- "sessionID": {
- "type": "string"
- },
- "status": {
- "$ref": "#/components/schemas/SessionStatus"
- }
- },
- "required": ["sessionID", "status"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.session.idle": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "session.idle"
- },
- "properties": {
- "type": "object",
- "properties": {
- "sessionID": {
- "type": "string"
- }
- },
- "required": ["sessionID"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.session.compacted": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "session.compacted"
- },
- "properties": {
- "type": "object",
- "properties": {
- "sessionID": {
- "type": "string"
- }
- },
- "required": ["sessionID"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.file.edited": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "file.edited"
- },
- "properties": {
- "type": "object",
- "properties": {
- "file": {
- "type": "string"
- }
- },
- "required": ["file"]
- }
- },
- "required": ["type", "properties"]
- },
- "Todo": {
- "type": "object",
- "properties": {
- "content": {
- "description": "Brief description of the task",
- "type": "string"
- },
- "status": {
- "description": "Current status of the task: pending, in_progress, completed, cancelled",
- "type": "string"
- },
- "priority": {
- "description": "Priority level of the task: high, medium, low",
- "type": "string"
- },
- "id": {
- "description": "Unique identifier for the todo item",
- "type": "string"
- }
- },
- "required": ["content", "status", "priority", "id"]
- },
- "Event.todo.updated": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "todo.updated"
- },
- "properties": {
- "type": "object",
- "properties": {
- "sessionID": {
- "type": "string"
- },
- "todos": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/Todo"
- }
- }
- },
- "required": ["sessionID", "todos"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.command.executed": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "command.executed"
- },
- "properties": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string"
- },
- "sessionID": {
- "type": "string",
- "pattern": "^ses.*"
- },
- "arguments": {
- "type": "string"
- },
- "messageID": {
- "type": "string",
- "pattern": "^msg.*"
- }
- },
- "required": ["name", "sessionID", "arguments", "messageID"]
- }
- },
- "required": ["type", "properties"]
- },
- "Session": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string",
- "pattern": "^ses.*"
- },
- "projectID": {
- "type": "string"
- },
- "directory": {
- "type": "string"
- },
- "parentID": {
- "type": "string",
- "pattern": "^ses.*"
- },
- "summary": {
- "type": "object",
- "properties": {
- "additions": {
- "type": "number"
- },
- "deletions": {
- "type": "number"
- },
- "files": {
- "type": "number"
- },
- "diffs": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/FileDiff"
- }
- }
- },
- "required": ["additions", "deletions", "files"]
- },
- "share": {
- "type": "object",
- "properties": {
- "url": {
- "type": "string"
- }
- },
- "required": ["url"]
- },
- "title": {
- "type": "string"
- },
- "version": {
- "type": "string"
- },
- "time": {
- "type": "object",
- "properties": {
- "created": {
- "type": "number"
- },
- "updated": {
- "type": "number"
- },
- "compacting": {
- "type": "number"
- }
- },
- "required": ["created", "updated"]
- },
- "revert": {
- "type": "object",
- "properties": {
- "messageID": {
- "type": "string"
- },
- "partID": {
- "type": "string"
- },
- "snapshot": {
- "type": "string"
- },
- "diff": {
- "type": "string"
- }
- },
- "required": ["messageID"]
- }
- },
- "required": ["id", "projectID", "directory", "title", "version", "time"]
- },
- "Event.session.created": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "session.created"
- },
- "properties": {
- "type": "object",
- "properties": {
- "info": {
- "$ref": "#/components/schemas/Session"
- }
- },
- "required": ["info"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.session.updated": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "session.updated"
- },
- "properties": {
- "type": "object",
- "properties": {
- "info": {
- "$ref": "#/components/schemas/Session"
- }
- },
- "required": ["info"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.session.deleted": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "session.deleted"
- },
- "properties": {
- "type": "object",
- "properties": {
- "info": {
- "$ref": "#/components/schemas/Session"
- }
- },
- "required": ["info"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.session.diff": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "session.diff"
- },
- "properties": {
- "type": "object",
- "properties": {
- "sessionID": {
- "type": "string"
- },
- "diff": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/FileDiff"
- }
- }
- },
- "required": ["sessionID", "diff"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.session.error": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "session.error"
- },
- "properties": {
- "type": "object",
- "properties": {
- "sessionID": {
- "type": "string"
- },
- "error": {
- "anyOf": [
- {
- "$ref": "#/components/schemas/ProviderAuthError"
- },
- {
- "$ref": "#/components/schemas/UnknownError"
- },
- {
- "$ref": "#/components/schemas/MessageOutputLengthError"
- },
- {
- "$ref": "#/components/schemas/MessageAbortedError"
- },
- {
- "$ref": "#/components/schemas/APIError"
- }
- ]
- }
- }
- }
- },
- "required": ["type", "properties"]
- },
- "Event.file.watcher.updated": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "file.watcher.updated"
- },
- "properties": {
- "type": "object",
- "properties": {
- "file": {
- "type": "string"
- },
- "event": {
- "anyOf": [
- {
- "type": "string",
- "const": "add"
- },
- {
- "type": "string",
- "const": "change"
- },
- {
- "type": "string",
- "const": "unlink"
- }
- ]
- }
- },
- "required": ["file", "event"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.vcs.branch.updated": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "vcs.branch.updated"
- },
- "properties": {
- "type": "object",
- "properties": {
- "branch": {
- "type": "string"
- }
- }
- }
- },
- "required": ["type", "properties"]
- },
- "Event.tui.prompt.append": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "tui.prompt.append"
- },
- "properties": {
- "type": "object",
- "properties": {
- "text": {
- "type": "string"
- }
- },
- "required": ["text"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.tui.command.execute": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "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.half.page.up",
- "session.half.page.down",
- "session.first",
- "session.last",
- "prompt.clear",
- "prompt.submit",
- "agent.cycle"
- ]
- },
- {
- "type": "string"
- }
- ]
- }
- },
- "required": ["command"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.tui.toast.show": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "tui.toast.show"
- },
- "properties": {
- "type": "object",
- "properties": {
- "title": {
- "type": "string"
- },
- "message": {
- "type": "string"
- },
- "variant": {
- "type": "string",
- "enum": ["info", "success", "warning", "error"]
- },
- "duration": {
- "description": "Duration in milliseconds",
- "default": 5000,
- "type": "number"
- }
- },
- "required": ["message", "variant"]
- }
- },
- "required": ["type", "properties"]
- },
- "Pty": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string",
- "pattern": "^pty.*"
- },
- "title": {
- "type": "string"
- },
- "command": {
- "type": "string"
- },
- "args": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "cwd": {
- "type": "string"
- },
- "status": {
- "type": "string",
- "enum": ["running", "exited"]
- },
- "pid": {
- "type": "number"
- }
- },
- "required": ["id", "title", "command", "args", "cwd", "status", "pid"]
- },
- "Event.pty.created": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "pty.created"
- },
- "properties": {
- "type": "object",
- "properties": {
- "info": {
- "$ref": "#/components/schemas/Pty"
- }
- },
- "required": ["info"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.pty.updated": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "pty.updated"
- },
- "properties": {
- "type": "object",
- "properties": {
- "info": {
- "$ref": "#/components/schemas/Pty"
- }
- },
- "required": ["info"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.pty.exited": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "pty.exited"
- },
- "properties": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string",
- "pattern": "^pty.*"
- },
- "exitCode": {
- "type": "number"
- }
- },
- "required": ["id", "exitCode"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.pty.deleted": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "pty.deleted"
- },
- "properties": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string",
- "pattern": "^pty.*"
- }
- },
- "required": ["id"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.server.connected": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "server.connected"
- },
- "properties": {
- "type": "object",
- "properties": {}
- }
- },
- "required": ["type", "properties"]
- },
- "Event": {
- "anyOf": [
- {
- "$ref": "#/components/schemas/Event.installation.updated"
- },
- {
- "$ref": "#/components/schemas/Event.installation.update-available"
- },
- {
- "$ref": "#/components/schemas/Event.project.updated"
- },
- {
- "$ref": "#/components/schemas/Event.server.instance.disposed"
- },
- {
- "$ref": "#/components/schemas/Event.lsp.client.diagnostics"
- },
- {
- "$ref": "#/components/schemas/Event.lsp.updated"
- },
- {
- "$ref": "#/components/schemas/Event.message.updated"
- },
- {
- "$ref": "#/components/schemas/Event.message.removed"
- },
- {
- "$ref": "#/components/schemas/Event.message.part.updated"
- },
- {
- "$ref": "#/components/schemas/Event.message.part.removed"
- },
- {
- "$ref": "#/components/schemas/Event.permission.updated"
- },
- {
- "$ref": "#/components/schemas/Event.permission.replied"
- },
- {
- "$ref": "#/components/schemas/Event.session.status"
- },
- {
- "$ref": "#/components/schemas/Event.session.idle"
- },
- {
- "$ref": "#/components/schemas/Event.session.compacted"
- },
- {
- "$ref": "#/components/schemas/Event.file.edited"
- },
- {
- "$ref": "#/components/schemas/Event.todo.updated"
- },
- {
- "$ref": "#/components/schemas/Event.command.executed"
- },
- {
- "$ref": "#/components/schemas/Event.session.created"
- },
- {
- "$ref": "#/components/schemas/Event.session.updated"
- },
- {
- "$ref": "#/components/schemas/Event.session.deleted"
- },
- {
- "$ref": "#/components/schemas/Event.session.diff"
- },
- {
- "$ref": "#/components/schemas/Event.session.error"
- },
- {
- "$ref": "#/components/schemas/Event.file.watcher.updated"
- },
- {
- "$ref": "#/components/schemas/Event.vcs.branch.updated"
- },
- {
- "$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.pty.created"
- },
- {
- "$ref": "#/components/schemas/Event.pty.updated"
- },
- {
- "$ref": "#/components/schemas/Event.pty.exited"
- },
- {
- "$ref": "#/components/schemas/Event.pty.deleted"
- },
- {
- "$ref": "#/components/schemas/Event.server.connected"
- }
- ]
- },
- "GlobalEvent": {
- "type": "object",
- "properties": {
- "directory": {
- "type": "string"
- },
- "payload": {
- "$ref": "#/components/schemas/Event"
- }
- },
- "required": ["directory", "payload"]
- },
- "BadRequestError": {
- "type": "object",
- "properties": {
- "data": {},
- "errors": {
- "type": "array",
- "items": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {}
- }
- },
- "success": {
- "type": "boolean",
- "const": false
- }
- },
- "required": ["data", "errors", "success"]
- },
- "NotFoundError": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "const": "NotFoundError"
- },
- "data": {
- "type": "object",
- "properties": {
- "message": {
- "type": "string"
- }
- },
- "required": ["message"]
- }
- },
- "required": ["name", "data"]
- },
- "KeybindsConfig": {
- "description": "Custom keybind configurations",
- "type": "object",
- "properties": {
- "leader": {
- "description": "Leader key for keybind combinations",
- "default": "ctrl+x",
- "type": "string"
- },
- "app_exit": {
- "description": "Exit the application",
- "default": "ctrl+c,ctrl+d,<leader>q",
- "type": "string"
- },
- "editor_open": {
- "description": "Open external editor",
- "default": "<leader>e",
- "type": "string"
- },
- "theme_list": {
- "description": "List available themes",
- "default": "<leader>t",
- "type": "string"
- },
- "sidebar_toggle": {
- "description": "Toggle sidebar",
- "default": "<leader>b",
- "type": "string"
- },
- "scrollbar_toggle": {
- "description": "Toggle session scrollbar",
- "default": "none",
- "type": "string"
- },
- "username_toggle": {
- "description": "Toggle username visibility",
- "default": "none",
- "type": "string"
- },
- "status_view": {
- "description": "View status",
- "default": "<leader>s",
- "type": "string"
- },
- "session_export": {
- "description": "Export session to editor",
- "default": "<leader>x",
- "type": "string"
- },
- "session_new": {
- "description": "Create a new session",
- "default": "<leader>n",
- "type": "string"
- },
- "session_list": {
- "description": "List all sessions",
- "default": "<leader>l",
- "type": "string"
- },
- "session_timeline": {
- "description": "Show session timeline",
- "default": "<leader>g",
- "type": "string"
- },
- "session_share": {
- "description": "Share current session",
- "default": "none",
- "type": "string"
- },
- "session_unshare": {
- "description": "Unshare current session",
- "default": "none",
- "type": "string"
- },
- "session_interrupt": {
- "description": "Interrupt current session",
- "default": "escape",
- "type": "string"
- },
- "session_compact": {
- "description": "Compact the session",
- "default": "<leader>c",
- "type": "string"
- },
- "messages_page_up": {
- "description": "Scroll messages up by one page",
- "default": "pageup",
- "type": "string"
- },
- "messages_page_down": {
- "description": "Scroll messages down by one page",
- "default": "pagedown",
- "type": "string"
- },
- "messages_half_page_up": {
- "description": "Scroll messages up by half page",
- "default": "ctrl+alt+u",
- "type": "string"
- },
- "messages_half_page_down": {
- "description": "Scroll messages down by half page",
- "default": "ctrl+alt+d",
- "type": "string"
- },
- "messages_first": {
- "description": "Navigate to first message",
- "default": "ctrl+g,home",
- "type": "string"
- },
- "messages_last": {
- "description": "Navigate to last message",
- "default": "ctrl+alt+g,end",
- "type": "string"
- },
- "messages_last_user": {
- "description": "Navigate to last user message",
- "default": "none",
- "type": "string"
- },
- "messages_copy": {
- "description": "Copy message",
- "default": "<leader>y",
- "type": "string"
- },
- "messages_undo": {
- "description": "Undo message",
- "default": "<leader>u",
- "type": "string"
- },
- "messages_redo": {
- "description": "Redo message",
- "default": "<leader>r",
- "type": "string"
- },
- "messages_toggle_conceal": {
- "description": "Toggle code block concealment in messages",
- "default": "<leader>h",
- "type": "string"
- },
- "tool_details": {
- "description": "Toggle tool details visibility",
- "default": "none",
- "type": "string"
- },
- "model_list": {
- "description": "List available models",
- "default": "<leader>m",
- "type": "string"
- },
- "model_cycle_recent": {
- "description": "Next recently used model",
- "default": "f2",
- "type": "string"
- },
- "model_cycle_recent_reverse": {
- "description": "Previous recently used model",
- "default": "shift+f2",
- "type": "string"
- },
- "command_list": {
- "description": "List available commands",
- "default": "ctrl+p",
- "type": "string"
- },
- "agent_list": {
- "description": "List agents",
- "default": "<leader>a",
- "type": "string"
- },
- "agent_cycle": {
- "description": "Next agent",
- "default": "tab",
- "type": "string"
- },
- "agent_cycle_reverse": {
- "description": "Previous agent",
- "default": "shift+tab",
- "type": "string"
- },
- "input_clear": {
- "description": "Clear input field",
- "default": "ctrl+c",
- "type": "string"
- },
- "input_forward_delete": {
- "description": "Forward delete",
- "default": "ctrl+d",
- "type": "string"
- },
- "input_paste": {
- "description": "Paste from clipboard",
- "default": "ctrl+v",
- "type": "string"
- },
- "input_submit": {
- "description": "Submit input",
- "default": "return",
- "type": "string"
- },
- "input_newline": {
- "description": "Insert newline in input",
- "default": "shift+return,ctrl+j",
- "type": "string"
- },
- "history_previous": {
- "description": "Previous history item",
- "default": "up",
- "type": "string"
- },
- "history_next": {
- "description": "Next history item",
- "default": "down",
- "type": "string"
- },
- "session_child_cycle": {
- "description": "Next child session",
- "default": "<leader>right",
- "type": "string"
- },
- "session_child_cycle_reverse": {
- "description": "Previous child session",
- "default": "<leader>left",
- "type": "string"
- },
- "terminal_suspend": {
- "description": "Suspend terminal",
- "default": "ctrl+z",
- "type": "string"
- }
- },
- "additionalProperties": false
- },
- "AgentConfig": {
- "type": "object",
- "properties": {
- "model": {
- "type": "string"
- },
- "temperature": {
- "type": "number"
- },
- "top_p": {
- "type": "number"
- },
- "prompt": {
- "type": "string"
- },
- "tools": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "boolean"
- }
- },
- "disable": {
- "type": "boolean"
- },
- "description": {
- "description": "Description of when to use the agent",
- "type": "string"
- },
- "mode": {
- "type": "string",
- "enum": ["subagent", "primary", "all"]
- },
- "color": {
- "description": "Hex color code for the agent (e.g., #FF5733)",
- "type": "string",
- "pattern": "^#[0-9a-fA-F]{6}$"
- },
- "maxSteps": {
- "description": "Maximum number of agentic iterations before forcing text-only response",
- "type": "integer",
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991
- },
- "permission": {
- "type": "object",
- "properties": {
- "edit": {
- "type": "string",
- "enum": ["ask", "allow", "deny"]
- },
- "bash": {
- "anyOf": [
- {
- "type": "string",
- "enum": ["ask", "allow", "deny"]
- },
- {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string",
- "enum": ["ask", "allow", "deny"]
- }
- }
- ]
- },
- "webfetch": {
- "type": "string",
- "enum": ["ask", "allow", "deny"]
- },
- "doom_loop": {
- "type": "string",
- "enum": ["ask", "allow", "deny"]
- },
- "external_directory": {
- "type": "string",
- "enum": ["ask", "allow", "deny"]
- }
- }
- }
- },
- "additionalProperties": {}
- },
- "ProviderConfig": {
- "type": "object",
- "properties": {
- "api": {
- "type": "string"
- },
- "name": {
- "type": "string"
- },
- "env": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "id": {
- "type": "string"
- },
- "npm": {
- "type": "string"
- },
- "models": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "name": {
- "type": "string"
- },
- "release_date": {
- "type": "string"
- },
- "attachment": {
- "type": "boolean"
- },
- "reasoning": {
- "type": "boolean"
- },
- "temperature": {
- "type": "boolean"
- },
- "tool_call": {
- "type": "boolean"
- },
- "interleaved": {
- "anyOf": [
- {
- "type": "boolean",
- "const": 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"]
- }
- },
- "required": ["input", "output"]
- },
- "limit": {
- "type": "object",
- "properties": {
- "context": {
- "type": "number"
- },
- "output": {
- "type": "number"
- }
- },
- "required": ["context", "output"]
- },
- "modalities": {
- "type": "object",
- "properties": {
- "input": {
- "type": "array",
- "items": {
- "type": "string",
- "enum": ["text", "audio", "image", "video", "pdf"]
- }
- },
- "output": {
- "type": "array",
- "items": {
- "type": "string",
- "enum": ["text", "audio", "image", "video", "pdf"]
- }
- }
- },
- "required": ["input", "output"]
- },
- "experimental": {
- "type": "boolean"
- },
- "status": {
- "type": "string",
- "enum": ["alpha", "beta", "deprecated"]
- },
- "options": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {}
- },
- "headers": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string"
- }
- },
- "provider": {
- "type": "object",
- "properties": {
- "npm": {
- "type": "string"
- }
- },
- "required": ["npm"]
- }
- }
- }
- },
- "whitelist": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "blacklist": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "options": {
- "type": "object",
- "properties": {
- "apiKey": {
- "type": "string"
- },
- "baseURL": {
- "type": "string"
- },
- "enterpriseUrl": {
- "description": "GitHub Enterprise URL for copilot authentication",
- "type": "string"
- },
- "setCacheKey": {
- "description": "Enable promptCacheKey for this provider (default false)",
- "type": "boolean"
- },
- "timeout": {
- "description": "Timeout in milliseconds for requests to this provider. Default is 300000 (5 minutes). Set to false to disable timeout.",
- "anyOf": [
- {
- "description": "Timeout in milliseconds for requests to this provider. Default is 300000 (5 minutes). Set to false to disable timeout.",
- "type": "integer",
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991
- },
- {
- "description": "Disable timeout for this provider entirely.",
- "type": "boolean",
- "const": false
- }
- ]
- }
- },
- "additionalProperties": {}
- }
- },
- "additionalProperties": false
- },
- "McpLocalConfig": {
- "type": "object",
- "properties": {
- "type": {
- "description": "Type of MCP server connection",
- "type": "string",
- "const": "local"
- },
- "command": {
- "description": "Command and arguments to run the MCP server",
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "environment": {
- "description": "Environment variables to set when running the MCP server",
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string"
- }
- },
- "enabled": {
- "description": "Enable or disable the MCP server on startup",
- "type": "boolean"
- },
- "timeout": {
- "description": "Timeout in ms for fetching tools from the MCP server. Defaults to 5000 (5 seconds) if not specified.",
- "type": "integer",
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991
- }
- },
- "required": ["type", "command"],
- "additionalProperties": false
- },
- "McpOAuthConfig": {
- "type": "object",
- "properties": {
- "clientId": {
- "description": "OAuth client ID. If not provided, dynamic client registration (RFC 7591) will be attempted.",
- "type": "string"
- },
- "clientSecret": {
- "description": "OAuth client secret (if required by the authorization server)",
- "type": "string"
- },
- "scope": {
- "description": "OAuth scopes to request during authorization",
- "type": "string"
- }
- },
- "additionalProperties": false
- },
- "McpRemoteConfig": {
- "type": "object",
- "properties": {
- "type": {
- "description": "Type of MCP server connection",
- "type": "string",
- "const": "remote"
- },
- "url": {
- "description": "URL of the remote MCP server",
- "type": "string"
- },
- "enabled": {
- "description": "Enable or disable the MCP server on startup",
- "type": "boolean"
- },
- "headers": {
- "description": "Headers to send with the request",
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string"
- }
- },
- "oauth": {
- "description": "OAuth authentication configuration for the MCP server. Set to false to disable OAuth auto-detection.",
- "anyOf": [
- {
- "$ref": "#/components/schemas/McpOAuthConfig"
- },
- {
- "type": "boolean",
- "const": false
- }
- ]
- },
- "timeout": {
- "description": "Timeout in ms for fetching tools from the MCP server. Defaults to 5000 (5 seconds) if not specified.",
- "type": "integer",
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991
- }
- },
- "required": ["type", "url"],
- "additionalProperties": false
- },
- "LayoutConfig": {
- "description": "@deprecated Always uses stretch layout.",
- "type": "string",
- "enum": ["auto", "stretch"]
- },
- "Config": {
- "type": "object",
- "properties": {
- "$schema": {
- "description": "JSON schema reference for configuration validation",
- "type": "string"
- },
- "theme": {
- "description": "Theme name to use for the interface",
- "type": "string"
- },
- "keybinds": {
- "$ref": "#/components/schemas/KeybindsConfig"
- },
- "tui": {
- "description": "TUI specific settings",
- "type": "object",
- "properties": {
- "scroll_speed": {
- "description": "TUI scroll speed",
- "type": "number",
- "minimum": 0.001
- },
- "scroll_acceleration": {
- "description": "Scroll acceleration settings",
- "type": "object",
- "properties": {
- "enabled": {
- "description": "Enable scroll acceleration",
- "type": "boolean"
- }
- },
- "required": ["enabled"]
- },
- "diff_style": {
- "description": "Control diff rendering style: 'auto' adapts to terminal width, 'stacked' always shows single column",
- "type": "string",
- "enum": ["auto", "stacked"]
- }
- }
- },
- "command": {
- "description": "Command configuration, see https://opencode.ai/docs/commands",
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "object",
- "properties": {
- "template": {
- "type": "string"
- },
- "description": {
- "type": "string"
- },
- "agent": {
- "type": "string"
- },
- "model": {
- "type": "string"
- },
- "subtask": {
- "type": "boolean"
- }
- },
- "required": ["template"]
- }
- },
- "watcher": {
- "type": "object",
- "properties": {
- "ignore": {
- "type": "array",
- "items": {
- "type": "string"
- }
- }
- }
- },
- "plugin": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "snapshot": {
- "type": "boolean"
- },
- "share": {
- "description": "Control sharing behavior:'manual' allows manual sharing via commands, 'auto' enables automatic sharing, 'disabled' disables all sharing",
- "type": "string",
- "enum": ["manual", "auto", "disabled"]
- },
- "autoshare": {
- "description": "@deprecated Use 'share' field instead. Share newly created sessions automatically",
- "type": "boolean"
- },
- "autoupdate": {
- "description": "Automatically update to the latest version. Set to true to auto-update, false to disable, or 'notify' to show update notifications",
- "anyOf": [
- {
- "type": "boolean"
- },
- {
- "type": "string",
- "const": "notify"
- }
- ]
- },
- "disabled_providers": {
- "description": "Disable providers that are loaded automatically",
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "enabled_providers": {
- "description": "When set, ONLY these providers will be enabled. All other providers will be ignored",
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "model": {
- "description": "Model to use in the format of provider/model, eg anthropic/claude-2",
- "type": "string"
- },
- "small_model": {
- "description": "Small model to use for tasks like title generation in the format of provider/model",
- "type": "string"
- },
- "username": {
- "description": "Custom username to display in conversations instead of system username",
- "type": "string"
- },
- "mode": {
- "description": "@deprecated Use `agent` field instead.",
- "type": "object",
- "properties": {
- "build": {
- "$ref": "#/components/schemas/AgentConfig"
- },
- "plan": {
- "$ref": "#/components/schemas/AgentConfig"
- }
- },
- "additionalProperties": {
- "$ref": "#/components/schemas/AgentConfig"
- }
- },
- "agent": {
- "description": "Agent configuration, see https://opencode.ai/docs/agent",
- "type": "object",
- "properties": {
- "plan": {
- "$ref": "#/components/schemas/AgentConfig"
- },
- "build": {
- "$ref": "#/components/schemas/AgentConfig"
- },
- "general": {
- "$ref": "#/components/schemas/AgentConfig"
- },
- "explore": {
- "$ref": "#/components/schemas/AgentConfig"
- }
- },
- "additionalProperties": {
- "$ref": "#/components/schemas/AgentConfig"
- }
- },
- "provider": {
- "description": "Custom provider configurations and model overrides",
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "$ref": "#/components/schemas/ProviderConfig"
- }
- },
- "mcp": {
- "description": "MCP (Model Context Protocol) server configurations",
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "anyOf": [
- {
- "$ref": "#/components/schemas/McpLocalConfig"
- },
- {
- "$ref": "#/components/schemas/McpRemoteConfig"
- }
- ]
- }
- },
- "formatter": {
- "anyOf": [
- {
- "type": "boolean",
- "const": false
- },
- {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "object",
- "properties": {
- "disabled": {
- "type": "boolean"
- },
- "command": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "environment": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string"
- }
- },
- "extensions": {
- "type": "array",
- "items": {
- "type": "string"
- }
- }
- }
- }
- }
- ]
- },
- "lsp": {
- "anyOf": [
- {
- "type": "boolean",
- "const": false
- },
- {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "anyOf": [
- {
- "type": "object",
- "properties": {
- "disabled": {
- "type": "boolean",
- "const": true
- }
- },
- "required": ["disabled"]
- },
- {
- "type": "object",
- "properties": {
- "command": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "extensions": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "disabled": {
- "type": "boolean"
- },
- "env": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string"
- }
- },
- "initialization": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {}
- }
- },
- "required": ["command"]
- }
- ]
- }
- }
- ]
- },
- "instructions": {
- "description": "Additional instruction files or patterns to include",
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "layout": {
- "$ref": "#/components/schemas/LayoutConfig"
- },
- "permission": {
- "type": "object",
- "properties": {
- "edit": {
- "type": "string",
- "enum": ["ask", "allow", "deny"]
- },
- "bash": {
- "anyOf": [
- {
- "type": "string",
- "enum": ["ask", "allow", "deny"]
- },
- {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string",
- "enum": ["ask", "allow", "deny"]
- }
- }
- ]
- },
- "webfetch": {
- "type": "string",
- "enum": ["ask", "allow", "deny"]
- },
- "doom_loop": {
- "type": "string",
- "enum": ["ask", "allow", "deny"]
- },
- "external_directory": {
- "type": "string",
- "enum": ["ask", "allow", "deny"]
- }
- }
- },
- "tools": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "boolean"
- }
- },
- "enterprise": {
- "type": "object",
- "properties": {
- "url": {
- "description": "Enterprise URL",
- "type": "string"
- }
- }
- },
- "experimental": {
- "type": "object",
- "properties": {
- "hook": {
- "type": "object",
- "properties": {
- "file_edited": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "command": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "environment": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string"
- }
- }
- },
- "required": ["command"]
- }
- }
- },
- "session_completed": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "command": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "environment": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string"
- }
- }
- },
- "required": ["command"]
- }
- }
- }
- },
- "chatMaxRetries": {
- "description": "Number of retries for chat completions on failure",
- "type": "number"
- },
- "disable_paste_summary": {
- "type": "boolean"
- },
- "batch_tool": {
- "description": "Enable the batch tool",
- "type": "boolean"
- },
- "openTelemetry": {
- "description": "Enable OpenTelemetry spans for AI SDK calls (using the 'experimental_telemetry' flag)",
- "type": "boolean"
- },
- "primary_tools": {
- "description": "Tools that should only be available to primary agents.",
- "type": "array",
- "items": {
- "type": "string"
- }
- }
- }
- }
- },
- "additionalProperties": false
- },
- "ToolIDs": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "ToolListItem": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "description": {
- "type": "string"
- },
- "parameters": {}
- },
- "required": ["id", "description", "parameters"]
- },
- "ToolList": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/ToolListItem"
- }
- },
- "Path": {
- "type": "object",
- "properties": {
- "state": {
- "type": "string"
- },
- "config": {
- "type": "string"
- },
- "worktree": {
- "type": "string"
- },
- "directory": {
- "type": "string"
- }
- },
- "required": ["state", "config", "worktree", "directory"]
- },
- "VcsInfo": {
- "type": "object",
- "properties": {
- "branch": {
- "type": "string"
- }
- },
- "required": ["branch"]
- },
- "TextPartInput": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "type": {
- "type": "string",
- "const": "text"
- },
- "text": {
- "type": "string"
- },
- "synthetic": {
- "type": "boolean"
- },
- "ignored": {
- "type": "boolean"
- },
- "time": {
- "type": "object",
- "properties": {
- "start": {
- "type": "number"
- },
- "end": {
- "type": "number"
- }
- },
- "required": ["start"]
- },
- "metadata": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {}
- }
- },
- "required": ["type", "text"]
- },
- "FilePartInput": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "type": {
- "type": "string",
- "const": "file"
- },
- "mime": {
- "type": "string"
- },
- "filename": {
- "type": "string"
- },
- "url": {
- "type": "string"
- },
- "source": {
- "$ref": "#/components/schemas/FilePartSource"
- }
- },
- "required": ["type", "mime", "url"]
- },
- "AgentPartInput": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "type": {
- "type": "string",
- "const": "agent"
- },
- "name": {
- "type": "string"
- },
- "source": {
- "type": "object",
- "properties": {
- "value": {
- "type": "string"
- },
- "start": {
- "type": "integer",
- "minimum": -9007199254740991,
- "maximum": 9007199254740991
- },
- "end": {
- "type": "integer",
- "minimum": -9007199254740991,
- "maximum": 9007199254740991
- }
- },
- "required": ["value", "start", "end"]
- }
- },
- "required": ["type", "name"]
- },
- "SubtaskPartInput": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "type": {
- "type": "string",
- "const": "subtask"
- },
- "prompt": {
- "type": "string"
- },
- "description": {
- "type": "string"
- },
- "agent": {
- "type": "string"
- }
- },
- "required": ["type", "prompt", "description", "agent"]
- },
- "Command": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string"
- },
- "description": {
- "type": "string"
- },
- "agent": {
- "type": "string"
- },
- "model": {
- "type": "string"
- },
- "template": {
- "type": "string"
- },
- "subtask": {
- "type": "boolean"
- }
- },
- "required": ["name", "template"]
- },
- "Model": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "providerID": {
- "type": "string"
- },
- "api": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "url": {
- "type": "string"
- },
- "npm": {
- "type": "string"
- }
- },
- "required": ["id", "url", "npm"]
- },
- "name": {
- "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"]
- },
- "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"]
- },
- "interleaved": {
- "anyOf": [
- {
- "type": "boolean"
- },
- {
- "type": "object",
- "properties": {
- "field": {
- "type": "string",
- "enum": ["reasoning_content", "reasoning_details"]
- }
- },
- "required": ["field"]
- }
- ]
- }
- },
- "required": ["temperature", "reasoning", "attachment", "toolcall", "input", "output", "interleaved"]
- },
- "cost": {
- "type": "object",
- "properties": {
- "input": {
- "type": "number"
- },
- "output": {
- "type": "number"
- },
- "cache": {
- "type": "object",
- "properties": {
- "read": {
- "type": "number"
- },
- "write": {
- "type": "number"
- }
- },
- "required": ["read", "write"]
- },
- "experimentalOver200K": {
- "type": "object",
- "properties": {
- "input": {
- "type": "number"
- },
- "output": {
- "type": "number"
- },
- "cache": {
- "type": "object",
- "properties": {
- "read": {
- "type": "number"
- },
- "write": {
- "type": "number"
- }
- },
- "required": ["read", "write"]
- }
- },
- "required": ["input", "output", "cache"]
- }
- },
- "required": ["input", "output", "cache"]
- },
- "limit": {
- "type": "object",
- "properties": {
- "context": {
- "type": "number"
- },
- "output": {
- "type": "number"
- }
- },
- "required": ["context", "output"]
- },
- "status": {
- "type": "string",
- "enum": ["alpha", "beta", "deprecated", "active"]
- },
- "options": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {}
- },
- "headers": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string"
- }
- }
- },
- "required": ["id", "providerID", "api", "name", "capabilities", "cost", "limit", "status", "options", "headers"]
- },
- "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",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {}
- },
- "models": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "$ref": "#/components/schemas/Model"
- }
- }
- },
- "required": ["id", "name", "source", "env", "options", "models"]
- },
- "ProviderAuthMethod": {
- "type": "object",
- "properties": {
- "type": {
- "anyOf": [
- {
- "type": "string",
- "const": "oauth"
- },
- {
- "type": "string",
- "const": "api"
- }
- ]
- },
- "label": {
- "type": "string"
- }
- },
- "required": ["type", "label"]
- },
- "ProviderAuthAuthorization": {
- "type": "object",
- "properties": {
- "url": {
- "type": "string"
- },
- "method": {
- "anyOf": [
- {
- "type": "string",
- "const": "auto"
- },
- {
- "type": "string",
- "const": "code"
- }
- ]
- },
- "instructions": {
- "type": "string"
- }
- },
- "required": ["url", "method", "instructions"]
- },
- "Symbol": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string"
- },
- "kind": {
- "type": "number"
- },
- "location": {
- "type": "object",
- "properties": {
- "uri": {
- "type": "string"
- },
- "range": {
- "$ref": "#/components/schemas/Range"
- }
- },
- "required": ["uri", "range"]
- }
- },
- "required": ["name", "kind", "location"]
- },
- "FileNode": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string"
- },
- "path": {
- "type": "string"
- },
- "absolute": {
- "type": "string"
- },
- "type": {
- "type": "string",
- "enum": ["file", "directory"]
- },
- "ignored": {
- "type": "boolean"
- }
- },
- "required": ["name", "path", "absolute", "type", "ignored"]
- },
- "FileContent": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "text"
- },
- "content": {
- "type": "string"
- },
- "diff": {
- "type": "string"
- },
- "patch": {
- "type": "object",
- "properties": {
- "oldFileName": {
- "type": "string"
- },
- "newFileName": {
- "type": "string"
- },
- "oldHeader": {
- "type": "string"
- },
- "newHeader": {
- "type": "string"
- },
- "hunks": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oldStart": {
- "type": "number"
- },
- "oldLines": {
- "type": "number"
- },
- "newStart": {
- "type": "number"
- },
- "newLines": {
- "type": "number"
- },
- "lines": {
- "type": "array",
- "items": {
- "type": "string"
- }
- }
- },
- "required": ["oldStart", "oldLines", "newStart", "newLines", "lines"]
- }
- },
- "index": {
- "type": "string"
- }
- },
- "required": ["oldFileName", "newFileName", "hunks"]
- },
- "encoding": {
- "type": "string",
- "const": "base64"
- },
- "mimeType": {
- "type": "string"
- }
- },
- "required": ["type", "content"]
- },
- "File": {
- "type": "object",
- "properties": {
- "path": {
- "type": "string"
- },
- "added": {
- "type": "integer",
- "minimum": -9007199254740991,
- "maximum": 9007199254740991
- },
- "removed": {
- "type": "integer",
- "minimum": -9007199254740991,
- "maximum": 9007199254740991
- },
- "status": {
- "type": "string",
- "enum": ["added", "deleted", "modified"]
- }
- },
- "required": ["path", "added", "removed", "status"]
- },
- "Agent": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string"
- },
- "description": {
- "type": "string"
- },
- "mode": {
- "type": "string",
- "enum": ["subagent", "primary", "all"]
- },
- "builtIn": {
- "type": "boolean"
- },
- "topP": {
- "type": "number"
- },
- "temperature": {
- "type": "number"
- },
- "color": {
- "type": "string"
- },
- "permission": {
- "type": "object",
- "properties": {
- "edit": {
- "type": "string",
- "enum": ["ask", "allow", "deny"]
- },
- "bash": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string",
- "enum": ["ask", "allow", "deny"]
- }
- },
- "webfetch": {
- "type": "string",
- "enum": ["ask", "allow", "deny"]
- },
- "doom_loop": {
- "type": "string",
- "enum": ["ask", "allow", "deny"]
- },
- "external_directory": {
- "type": "string",
- "enum": ["ask", "allow", "deny"]
- }
- },
- "required": ["edit", "bash"]
- },
- "model": {
- "type": "object",
- "properties": {
- "modelID": {
- "type": "string"
- },
- "providerID": {
- "type": "string"
- }
- },
- "required": ["modelID", "providerID"]
- },
- "prompt": {
- "type": "string"
- },
- "tools": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "boolean"
- }
- },
- "options": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {}
- },
- "maxSteps": {
- "type": "integer",
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991
- }
- },
- "required": ["name", "mode", "builtIn", "permission", "tools", "options"]
- },
- "MCPStatusConnected": {
- "type": "object",
- "properties": {
- "status": {
- "type": "string",
- "const": "connected"
- }
- },
- "required": ["status"]
- },
- "MCPStatusDisabled": {
- "type": "object",
- "properties": {
- "status": {
- "type": "string",
- "const": "disabled"
- }
- },
- "required": ["status"]
- },
- "MCPStatusFailed": {
- "type": "object",
- "properties": {
- "status": {
- "type": "string",
- "const": "failed"
- },
- "error": {
- "type": "string"
- }
- },
- "required": ["status", "error"]
- },
- "MCPStatusNeedsAuth": {
- "type": "object",
- "properties": {
- "status": {
- "type": "string",
- "const": "needs_auth"
- }
- },
- "required": ["status"]
- },
- "MCPStatusNeedsClientRegistration": {
- "type": "object",
- "properties": {
- "status": {
- "type": "string",
- "const": "needs_client_registration"
- },
- "error": {
- "type": "string"
- }
- },
- "required": ["status", "error"]
- },
- "MCPStatus": {
- "anyOf": [
- {
- "$ref": "#/components/schemas/MCPStatusConnected"
- },
- {
- "$ref": "#/components/schemas/MCPStatusDisabled"
- },
- {
- "$ref": "#/components/schemas/MCPStatusFailed"
- },
- {
- "$ref": "#/components/schemas/MCPStatusNeedsAuth"
- },
- {
- "$ref": "#/components/schemas/MCPStatusNeedsClientRegistration"
- }
- ]
- },
- "LSPStatus": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "name": {
- "type": "string"
- },
- "root": {
- "type": "string"
- },
- "status": {
- "anyOf": [
- {
- "type": "string",
- "const": "connected"
- },
- {
- "type": "string",
- "const": "error"
- }
- ]
- }
- },
- "required": ["id", "name", "root", "status"]
- },
- "FormatterStatus": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string"
- },
- "extensions": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "enabled": {
- "type": "boolean"
- }
- },
- "required": ["name", "extensions", "enabled"]
- },
- "OAuth": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "oauth"
- },
- "refresh": {
- "type": "string"
- },
- "access": {
- "type": "string"
- },
- "expires": {
- "type": "number"
- },
- "enterpriseUrl": {
- "type": "string"
- }
- },
- "required": ["type", "refresh", "access", "expires"]
- },
- "ApiAuth": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "api"
- },
- "key": {
- "type": "string"
- }
- },
- "required": ["type", "key"]
- },
- "WellKnownAuth": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "wellknown"
- },
- "key": {
- "type": "string"
- },
- "token": {
- "type": "string"
- }
- },
- "required": ["type", "key", "token"]
- },
- "Auth": {
- "anyOf": [
- {
- "$ref": "#/components/schemas/OAuth"
- },
- {
- "$ref": "#/components/schemas/ApiAuth"
- },
- {
- "$ref": "#/components/schemas/WellKnownAuth"
- }
- ]
- }
- }
- }
-}