|
|
@@ -1,11911 +0,0 @@
|
|
|
-{
|
|
|
- "openapi": "3.1.1",
|
|
|
- "info": {
|
|
|
- "title": "opencode",
|
|
|
- "description": "opencode api",
|
|
|
- "version": "1.0.0"
|
|
|
- },
|
|
|
- "paths": {
|
|
|
- "/global/health": {
|
|
|
- "get": {
|
|
|
- "operationId": "global.health",
|
|
|
- "summary": "Get health",
|
|
|
- "description": "Get health information about the OpenCode server.",
|
|
|
- "responses": {
|
|
|
- "200": {
|
|
|
- "description": "Health information",
|
|
|
- "content": {
|
|
|
- "application/json": {
|
|
|
- "schema": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "healthy": {
|
|
|
- "type": "boolean",
|
|
|
- "const": true
|
|
|
- },
|
|
|
- "version": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "healthy",
|
|
|
- "version"
|
|
|
- ]
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "x-codeSamples": [
|
|
|
- {
|
|
|
- "lang": "js",
|
|
|
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.global.health({\n ...\n})"
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "/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})"
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "/global/config": {
|
|
|
- "get": {
|
|
|
- "operationId": "global.config.get",
|
|
|
- "summary": "Get global configuration",
|
|
|
- "description": "Retrieve the current global OpenCode configuration settings and preferences.",
|
|
|
- "responses": {
|
|
|
- "200": {
|
|
|
- "description": "Get global 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.global.config.get({\n ...\n})"
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- "patch": {
|
|
|
- "operationId": "global.config.update",
|
|
|
- "summary": "Update global configuration",
|
|
|
- "description": "Update global OpenCode configuration settings and preferences.",
|
|
|
- "responses": {
|
|
|
- "200": {
|
|
|
- "description": "Successfully updated global config",
|
|
|
- "content": {
|
|
|
- "application/json": {
|
|
|
- "schema": {
|
|
|
- "$ref": "#/components/schemas/Config"
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "400": {
|
|
|
- "description": "Bad request",
|
|
|
- "content": {
|
|
|
- "application/json": {
|
|
|
- "schema": {
|
|
|
- "$ref": "#/components/schemas/BadRequestError"
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "requestBody": {
|
|
|
- "content": {
|
|
|
- "application/json": {
|
|
|
- "schema": {
|
|
|
- "$ref": "#/components/schemas/Config"
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "x-codeSamples": [
|
|
|
- {
|
|
|
- "lang": "js",
|
|
|
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.global.config.update({\n ...\n})"
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "/global/dispose": {
|
|
|
- "post": {
|
|
|
- "operationId": "global.dispose",
|
|
|
- "summary": "Dispose instance",
|
|
|
- "description": "Clean up and dispose all OpenCode instances, releasing all resources.",
|
|
|
- "responses": {
|
|
|
- "200": {
|
|
|
- "description": "Global disposed",
|
|
|
- "content": {
|
|
|
- "application/json": {
|
|
|
- "schema": {
|
|
|
- "type": "boolean"
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "x-codeSamples": [
|
|
|
- {
|
|
|
- "lang": "js",
|
|
|
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.global.dispose({\n ...\n})"
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "/auth/{providerID}": {
|
|
|
- "put": {
|
|
|
- "operationId": "auth.set",
|
|
|
- "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"
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "parameters": [
|
|
|
- {
|
|
|
- "in": "path",
|
|
|
- "name": "providerID",
|
|
|
- "schema": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "required": true
|
|
|
- }
|
|
|
- ],
|
|
|
- "requestBody": {
|
|
|
- "content": {
|
|
|
- "application/json": {
|
|
|
- "schema": {
|
|
|
- "$ref": "#/components/schemas/Auth"
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "x-codeSamples": [
|
|
|
- {
|
|
|
- "lang": "js",
|
|
|
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.auth.set({\n ...\n})"
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- "delete": {
|
|
|
- "operationId": "auth.remove",
|
|
|
- "summary": "Remove auth credentials",
|
|
|
- "description": "Remove authentication credentials",
|
|
|
- "responses": {
|
|
|
- "200": {
|
|
|
- "description": "Successfully removed authentication credentials",
|
|
|
- "content": {
|
|
|
- "application/json": {
|
|
|
- "schema": {
|
|
|
- "type": "boolean"
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "400": {
|
|
|
- "description": "Bad request",
|
|
|
- "content": {
|
|
|
- "application/json": {
|
|
|
- "schema": {
|
|
|
- "$ref": "#/components/schemas/BadRequestError"
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "parameters": [
|
|
|
- {
|
|
|
- "in": "path",
|
|
|
- "name": "providerID",
|
|
|
- "schema": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "required": true
|
|
|
- }
|
|
|
- ],
|
|
|
- "x-codeSamples": [
|
|
|
- {
|
|
|
- "lang": "js",
|
|
|
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.auth.remove({\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 commands.",
|
|
|
- "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"
|
|
|
- },
|
|
|
- "override": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "color": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "commands": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "start": {
|
|
|
- "description": "Startup script to run when creating a new workspace (worktree)",
|
|
|
- "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})"
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "/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})"
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "/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})"
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "/experimental/worktree": {
|
|
|
- "post": {
|
|
|
- "operationId": "worktree.create",
|
|
|
- "parameters": [
|
|
|
- {
|
|
|
- "in": "query",
|
|
|
- "name": "directory",
|
|
|
- "schema": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- }
|
|
|
- ],
|
|
|
- "summary": "Create worktree",
|
|
|
- "description": "Create a new git worktree for the current project and run any configured startup scripts.",
|
|
|
- "responses": {
|
|
|
- "200": {
|
|
|
- "description": "Worktree created",
|
|
|
- "content": {
|
|
|
- "application/json": {
|
|
|
- "schema": {
|
|
|
- "$ref": "#/components/schemas/Worktree"
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "400": {
|
|
|
- "description": "Bad request",
|
|
|
- "content": {
|
|
|
- "application/json": {
|
|
|
- "schema": {
|
|
|
- "$ref": "#/components/schemas/BadRequestError"
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "requestBody": {
|
|
|
- "content": {
|
|
|
- "application/json": {
|
|
|
- "schema": {
|
|
|
- "$ref": "#/components/schemas/WorktreeCreateInput"
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "x-codeSamples": [
|
|
|
- {
|
|
|
- "lang": "js",
|
|
|
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.worktree.create({\n ...\n})"
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- "get": {
|
|
|
- "operationId": "worktree.list",
|
|
|
- "parameters": [
|
|
|
- {
|
|
|
- "in": "query",
|
|
|
- "name": "directory",
|
|
|
- "schema": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- }
|
|
|
- ],
|
|
|
- "summary": "List worktrees",
|
|
|
- "description": "List all sandbox worktrees for the current project.",
|
|
|
- "responses": {
|
|
|
- "200": {
|
|
|
- "description": "List of worktree directories",
|
|
|
- "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.worktree.list({\n ...\n})"
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- "delete": {
|
|
|
- "operationId": "worktree.remove",
|
|
|
- "parameters": [
|
|
|
- {
|
|
|
- "in": "query",
|
|
|
- "name": "directory",
|
|
|
- "schema": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- }
|
|
|
- ],
|
|
|
- "summary": "Remove worktree",
|
|
|
- "description": "Remove a git worktree and delete its branch.",
|
|
|
- "responses": {
|
|
|
- "200": {
|
|
|
- "description": "Worktree removed",
|
|
|
- "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/WorktreeRemoveInput"
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "x-codeSamples": [
|
|
|
- {
|
|
|
- "lang": "js",
|
|
|
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.worktree.remove({\n ...\n})"
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "/experimental/worktree/reset": {
|
|
|
- "post": {
|
|
|
- "operationId": "worktree.reset",
|
|
|
- "parameters": [
|
|
|
- {
|
|
|
- "in": "query",
|
|
|
- "name": "directory",
|
|
|
- "schema": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- }
|
|
|
- ],
|
|
|
- "summary": "Reset worktree",
|
|
|
- "description": "Reset a worktree branch to the primary default branch.",
|
|
|
- "responses": {
|
|
|
- "200": {
|
|
|
- "description": "Worktree reset",
|
|
|
- "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/WorktreeResetInput"
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "x-codeSamples": [
|
|
|
- {
|
|
|
- "lang": "js",
|
|
|
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.worktree.reset({\n ...\n})"
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "/experimental/resource": {
|
|
|
- "get": {
|
|
|
- "operationId": "experimental.resource.list",
|
|
|
- "parameters": [
|
|
|
- {
|
|
|
- "in": "query",
|
|
|
- "name": "directory",
|
|
|
- "schema": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- }
|
|
|
- ],
|
|
|
- "summary": "Get MCP resources",
|
|
|
- "description": "Get all available MCP resources from connected servers. Optionally filter by name.",
|
|
|
- "responses": {
|
|
|
- "200": {
|
|
|
- "description": "MCP resources",
|
|
|
- "content": {
|
|
|
- "application/json": {
|
|
|
- "schema": {
|
|
|
- "type": "object",
|
|
|
- "propertyNames": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "additionalProperties": {
|
|
|
- "$ref": "#/components/schemas/McpResource"
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "x-codeSamples": [
|
|
|
- {
|
|
|
- "lang": "js",
|
|
|
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.experimental.resource.list({\n ...\n})"
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "/session": {
|
|
|
- "get": {
|
|
|
- "operationId": "session.list",
|
|
|
- "parameters": [
|
|
|
- {
|
|
|
- "in": "query",
|
|
|
- "name": "directory",
|
|
|
- "schema": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "description": "Filter sessions by project directory"
|
|
|
- },
|
|
|
- {
|
|
|
- "in": "query",
|
|
|
- "name": "roots",
|
|
|
- "schema": {
|
|
|
- "type": "boolean"
|
|
|
- },
|
|
|
- "description": "Only return root sessions (no parentID)"
|
|
|
- },
|
|
|
- {
|
|
|
- "in": "query",
|
|
|
- "name": "start",
|
|
|
- "schema": {
|
|
|
- "type": "number"
|
|
|
- },
|
|
|
- "description": "Filter sessions updated on or after this timestamp (milliseconds since epoch)"
|
|
|
- },
|
|
|
- {
|
|
|
- "in": "query",
|
|
|
- "name": "search",
|
|
|
- "schema": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "description": "Filter sessions by title (case-insensitive)"
|
|
|
- },
|
|
|
- {
|
|
|
- "in": "query",
|
|
|
- "name": "limit",
|
|
|
- "schema": {
|
|
|
- "type": "number"
|
|
|
- },
|
|
|
- "description": "Maximum number of sessions to return"
|
|
|
- }
|
|
|
- ],
|
|
|
- "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"
|
|
|
- },
|
|
|
- "permission": {
|
|
|
- "$ref": "#/components/schemas/PermissionRuleset"
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "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"
|
|
|
- },
|
|
|
- "time": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "archived": {
|
|
|
- "type": "number"
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "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",
|
|
|
- "pattern": "^ses.*"
|
|
|
- },
|
|
|
- "required": true
|
|
|
- },
|
|
|
- {
|
|
|
- "in": "query",
|
|
|
- "name": "messageID",
|
|
|
- "schema": {
|
|
|
- "type": "string",
|
|
|
- "pattern": "^msg.*"
|
|
|
- }
|
|
|
- }
|
|
|
- ],
|
|
|
- "summary": "Get message diff",
|
|
|
- "description": "Get the file changes (diff) that resulted from a specific user message in the session.",
|
|
|
- "responses": {
|
|
|
- "200": {
|
|
|
- "description": "Successfully retrieved diff",
|
|
|
- "content": {
|
|
|
- "application/json": {
|
|
|
- "schema": {
|
|
|
- "type": "array",
|
|
|
- "items": {
|
|
|
- "$ref": "#/components/schemas/FileDiff"
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "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"
|
|
|
- },
|
|
|
- "auto": {
|
|
|
- "default": false,
|
|
|
- "type": "boolean"
|
|
|
- }
|
|
|
- },
|
|
|
- "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"
|
|
|
- },
|
|
|
- "tools": {
|
|
|
- "description": "@deprecated tools and permissions have been merged, you can set permissions on the session itself now",
|
|
|
- "type": "object",
|
|
|
- "propertyNames": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "additionalProperties": {
|
|
|
- "type": "boolean"
|
|
|
- }
|
|
|
- },
|
|
|
- "system": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "variant": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "parts": {
|
|
|
- "type": "array",
|
|
|
- "items": {
|
|
|
- "anyOf": [
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/TextPartInput"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/FilePartInput"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/AgentPartInput"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/SubtaskPartInput"
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "parts"
|
|
|
- ]
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "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}/message/{messageID}/part/{partID}": {
|
|
|
- "delete": {
|
|
|
- "operationId": "part.delete",
|
|
|
- "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"
|
|
|
- },
|
|
|
- {
|
|
|
- "in": "path",
|
|
|
- "name": "partID",
|
|
|
- "schema": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "Part ID"
|
|
|
- }
|
|
|
- ],
|
|
|
- "description": "Delete a part from a message",
|
|
|
- "responses": {
|
|
|
- "200": {
|
|
|
- "description": "Successfully deleted part",
|
|
|
- "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.part.delete({\n ...\n})"
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- "patch": {
|
|
|
- "operationId": "part.update",
|
|
|
- "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"
|
|
|
- },
|
|
|
- {
|
|
|
- "in": "path",
|
|
|
- "name": "partID",
|
|
|
- "schema": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "Part ID"
|
|
|
- }
|
|
|
- ],
|
|
|
- "description": "Update a part in a message",
|
|
|
- "responses": {
|
|
|
- "200": {
|
|
|
- "description": "Successfully updated part",
|
|
|
- "content": {
|
|
|
- "application/json": {
|
|
|
- "schema": {
|
|
|
- "$ref": "#/components/schemas/Part"
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "400": {
|
|
|
- "description": "Bad request",
|
|
|
- "content": {
|
|
|
- "application/json": {
|
|
|
- "schema": {
|
|
|
- "$ref": "#/components/schemas/BadRequestError"
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "404": {
|
|
|
- "description": "Not found",
|
|
|
- "content": {
|
|
|
- "application/json": {
|
|
|
- "schema": {
|
|
|
- "$ref": "#/components/schemas/NotFoundError"
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "requestBody": {
|
|
|
- "content": {
|
|
|
- "application/json": {
|
|
|
- "schema": {
|
|
|
- "$ref": "#/components/schemas/Part"
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "x-codeSamples": [
|
|
|
- {
|
|
|
- "lang": "js",
|
|
|
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.part.update({\n ...\n})"
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "/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"
|
|
|
- },
|
|
|
- "tools": {
|
|
|
- "description": "@deprecated tools and permissions have been merged, you can set permissions on the session itself now",
|
|
|
- "type": "object",
|
|
|
- "propertyNames": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "additionalProperties": {
|
|
|
- "type": "boolean"
|
|
|
- }
|
|
|
- },
|
|
|
- "system": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "variant": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "parts": {
|
|
|
- "type": "array",
|
|
|
- "items": {
|
|
|
- "anyOf": [
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/TextPartInput"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/FilePartInput"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/AgentPartInput"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/SubtaskPartInput"
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "parts"
|
|
|
- ]
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "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"
|
|
|
- },
|
|
|
- "variant": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "parts": {
|
|
|
- "type": "array",
|
|
|
- "items": {
|
|
|
- "anyOf": [
|
|
|
- {
|
|
|
- "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"
|
|
|
- ]
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "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",
|
|
|
- "deprecated": true,
|
|
|
- "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})"
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "/permission/{requestID}/reply": {
|
|
|
- "post": {
|
|
|
- "operationId": "permission.reply",
|
|
|
- "parameters": [
|
|
|
- {
|
|
|
- "in": "query",
|
|
|
- "name": "directory",
|
|
|
- "schema": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- {
|
|
|
- "in": "path",
|
|
|
- "name": "requestID",
|
|
|
- "schema": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "required": true
|
|
|
- }
|
|
|
- ],
|
|
|
- "summary": "Respond to permission request",
|
|
|
- "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": {
|
|
|
- "reply": {
|
|
|
- "type": "string",
|
|
|
- "enum": [
|
|
|
- "once",
|
|
|
- "always",
|
|
|
- "reject"
|
|
|
- ]
|
|
|
- },
|
|
|
- "message": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "reply"
|
|
|
- ]
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "x-codeSamples": [
|
|
|
- {
|
|
|
- "lang": "js",
|
|
|
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.permission.reply({\n ...\n})"
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "/permission": {
|
|
|
- "get": {
|
|
|
- "operationId": "permission.list",
|
|
|
- "parameters": [
|
|
|
- {
|
|
|
- "in": "query",
|
|
|
- "name": "directory",
|
|
|
- "schema": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- }
|
|
|
- ],
|
|
|
- "summary": "List pending permissions",
|
|
|
- "description": "Get all pending permission requests across all sessions.",
|
|
|
- "responses": {
|
|
|
- "200": {
|
|
|
- "description": "List of pending permissions",
|
|
|
- "content": {
|
|
|
- "application/json": {
|
|
|
- "schema": {
|
|
|
- "type": "array",
|
|
|
- "items": {
|
|
|
- "$ref": "#/components/schemas/PermissionRequest"
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "x-codeSamples": [
|
|
|
- {
|
|
|
- "lang": "js",
|
|
|
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.permission.list({\n ...\n})"
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "/question": {
|
|
|
- "get": {
|
|
|
- "operationId": "question.list",
|
|
|
- "parameters": [
|
|
|
- {
|
|
|
- "in": "query",
|
|
|
- "name": "directory",
|
|
|
- "schema": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- }
|
|
|
- ],
|
|
|
- "summary": "List pending questions",
|
|
|
- "description": "Get all pending question requests across all sessions.",
|
|
|
- "responses": {
|
|
|
- "200": {
|
|
|
- "description": "List of pending questions",
|
|
|
- "content": {
|
|
|
- "application/json": {
|
|
|
- "schema": {
|
|
|
- "type": "array",
|
|
|
- "items": {
|
|
|
- "$ref": "#/components/schemas/QuestionRequest"
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "x-codeSamples": [
|
|
|
- {
|
|
|
- "lang": "js",
|
|
|
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.question.list({\n ...\n})"
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "/question/{requestID}/reply": {
|
|
|
- "post": {
|
|
|
- "operationId": "question.reply",
|
|
|
- "parameters": [
|
|
|
- {
|
|
|
- "in": "query",
|
|
|
- "name": "directory",
|
|
|
- "schema": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- {
|
|
|
- "in": "path",
|
|
|
- "name": "requestID",
|
|
|
- "schema": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "required": true
|
|
|
- }
|
|
|
- ],
|
|
|
- "summary": "Reply to question request",
|
|
|
- "description": "Provide answers to a question request from the AI assistant.",
|
|
|
- "responses": {
|
|
|
- "200": {
|
|
|
- "description": "Question answered 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": {
|
|
|
- "answers": {
|
|
|
- "description": "User answers in order of questions (each answer is an array of selected labels)",
|
|
|
- "type": "array",
|
|
|
- "items": {
|
|
|
- "$ref": "#/components/schemas/QuestionAnswer"
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "answers"
|
|
|
- ]
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "x-codeSamples": [
|
|
|
- {
|
|
|
- "lang": "js",
|
|
|
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.question.reply({\n ...\n})"
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "/question/{requestID}/reject": {
|
|
|
- "post": {
|
|
|
- "operationId": "question.reject",
|
|
|
- "parameters": [
|
|
|
- {
|
|
|
- "in": "query",
|
|
|
- "name": "directory",
|
|
|
- "schema": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- {
|
|
|
- "in": "path",
|
|
|
- "name": "requestID",
|
|
|
- "schema": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "required": true
|
|
|
- }
|
|
|
- ],
|
|
|
- "summary": "Reject question request",
|
|
|
- "description": "Reject a question request from the AI assistant.",
|
|
|
- "responses": {
|
|
|
- "200": {
|
|
|
- "description": "Question rejected 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"
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "x-codeSamples": [
|
|
|
- {
|
|
|
- "lang": "js",
|
|
|
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.question.reject({\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"
|
|
|
- },
|
|
|
- "family": {
|
|
|
- "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"
|
|
|
- },
|
|
|
- "input": {
|
|
|
- "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"
|
|
|
- ]
|
|
|
- },
|
|
|
- "variants": {
|
|
|
- "type": "object",
|
|
|
- "propertyNames": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "additionalProperties": {
|
|
|
- "type": "object",
|
|
|
- "propertyNames": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "additionalProperties": {}
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "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"
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- {
|
|
|
- "in": "query",
|
|
|
- "name": "type",
|
|
|
- "schema": {
|
|
|
- "type": "string",
|
|
|
- "enum": [
|
|
|
- "file",
|
|
|
- "directory"
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- {
|
|
|
- "in": "query",
|
|
|
- "name": "limit",
|
|
|
- "schema": {
|
|
|
- "type": "integer",
|
|
|
- "minimum": 1,
|
|
|
- "maximum": 200
|
|
|
- }
|
|
|
- }
|
|
|
- ],
|
|
|
- "summary": "Find files",
|
|
|
- "description": "Search for files or directories 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})"
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "/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})"
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "/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"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/Event.tui.session.select"
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "x-codeSamples": [
|
|
|
- {
|
|
|
- "lang": "js",
|
|
|
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.publish({\n ...\n})"
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "/tui/select-session": {
|
|
|
- "post": {
|
|
|
- "operationId": "tui.selectSession",
|
|
|
- "parameters": [
|
|
|
- {
|
|
|
- "in": "query",
|
|
|
- "name": "directory",
|
|
|
- "schema": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- }
|
|
|
- ],
|
|
|
- "summary": "Select session",
|
|
|
- "description": "Navigate the TUI to display the specified session.",
|
|
|
- "responses": {
|
|
|
- "200": {
|
|
|
- "description": "Session selected 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": {
|
|
|
- "sessionID": {
|
|
|
- "description": "Session ID to navigate to",
|
|
|
- "type": "string",
|
|
|
- "pattern": "^ses"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "sessionID"
|
|
|
- ]
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "x-codeSamples": [
|
|
|
- {
|
|
|
- "lang": "js",
|
|
|
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.selectSession({\n ...\n})"
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "/tui/control/next": {
|
|
|
- "get": {
|
|
|
- "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})"
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "/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})"
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "/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})"
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "/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})"
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "/skill": {
|
|
|
- "get": {
|
|
|
- "operationId": "app.skills",
|
|
|
- "parameters": [
|
|
|
- {
|
|
|
- "in": "query",
|
|
|
- "name": "directory",
|
|
|
- "schema": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- }
|
|
|
- ],
|
|
|
- "summary": "List skills",
|
|
|
- "description": "Get a list of all available skills in the OpenCode system.",
|
|
|
- "responses": {
|
|
|
- "200": {
|
|
|
- "description": "List of skills",
|
|
|
- "content": {
|
|
|
- "application/json": {
|
|
|
- "schema": {
|
|
|
- "type": "array",
|
|
|
- "items": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "name": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "description": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "location": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "content": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "name",
|
|
|
- "description",
|
|
|
- "location",
|
|
|
- "content"
|
|
|
- ]
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "x-codeSamples": [
|
|
|
- {
|
|
|
- "lang": "js",
|
|
|
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.app.skills({\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})"
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "/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"
|
|
|
- },
|
|
|
- "override": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "color": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "commands": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "start": {
|
|
|
- "description": "Startup script to run when creating a new workspace (worktree)",
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "time": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "created": {
|
|
|
- "type": "number"
|
|
|
- },
|
|
|
- "updated": {
|
|
|
- "type": "number"
|
|
|
- },
|
|
|
- "initialized": {
|
|
|
- "type": "number"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "created",
|
|
|
- "updated"
|
|
|
- ]
|
|
|
- },
|
|
|
- "sandboxes": {
|
|
|
- "type": "array",
|
|
|
- "items": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "id",
|
|
|
- "worktree",
|
|
|
- "time",
|
|
|
- "sandboxes"
|
|
|
- ]
|
|
|
- },
|
|
|
- "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.server.connected": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "type": {
|
|
|
- "type": "string",
|
|
|
- "const": "server.connected"
|
|
|
- },
|
|
|
- "properties": {
|
|
|
- "type": "object",
|
|
|
- "properties": {}
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "type",
|
|
|
- "properties"
|
|
|
- ]
|
|
|
- },
|
|
|
- "Event.global.disposed": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "type": {
|
|
|
- "type": "string",
|
|
|
- "const": "global.disposed"
|
|
|
- },
|
|
|
- "properties": {
|
|
|
- "type": "object",
|
|
|
- "properties": {}
|
|
|
- }
|
|
|
- },
|
|
|
- "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"
|
|
|
- ]
|
|
|
- },
|
|
|
- "Event.file.edited": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "type": {
|
|
|
- "type": "string",
|
|
|
- "const": "file.edited"
|
|
|
- },
|
|
|
- "properties": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "file": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "file"
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "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"
|
|
|
- }
|
|
|
- },
|
|
|
- "variant": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- "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"
|
|
|
- },
|
|
|
- "metadata": {
|
|
|
- "type": "object",
|
|
|
- "propertyNames": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "additionalProperties": {
|
|
|
- "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"
|
|
|
- },
|
|
|
- "agent": {
|
|
|
- "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",
|
|
|
- "agent",
|
|
|
- "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"
|
|
|
- ]
|
|
|
- },
|
|
|
- "SubtaskPart": {
|
|
|
- "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"
|
|
|
- },
|
|
|
- "model": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "providerID": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "modelID": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "providerID",
|
|
|
- "modelID"
|
|
|
- ]
|
|
|
- },
|
|
|
- "command": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "id",
|
|
|
- "sessionID",
|
|
|
- "messageID",
|
|
|
- "type",
|
|
|
- "prompt",
|
|
|
- "description",
|
|
|
- "agent"
|
|
|
- ]
|
|
|
- },
|
|
|
- "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"
|
|
|
- ]
|
|
|
- },
|
|
|
- "ResourceSource": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "text": {
|
|
|
- "$ref": "#/components/schemas/FilePartSourceText"
|
|
|
- },
|
|
|
- "type": {
|
|
|
- "type": "string",
|
|
|
- "const": "resource"
|
|
|
- },
|
|
|
- "clientName": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "uri": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "text",
|
|
|
- "type",
|
|
|
- "clientName",
|
|
|
- "uri"
|
|
|
- ]
|
|
|
- },
|
|
|
- "FilePartSource": {
|
|
|
- "anyOf": [
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/FileSource"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/SymbolSource"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/ResourceSource"
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- "FilePart": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "id": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "sessionID": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "messageID": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "type": {
|
|
|
- "type": "string",
|
|
|
- "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"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/SubtaskPart"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/ReasoningPart"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/FilePart"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/ToolPart"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/StepStartPart"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/StepFinishPart"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/SnapshotPart"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/PatchPart"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/AgentPart"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/RetryPart"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/CompactionPart"
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- "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"
|
|
|
- ]
|
|
|
- },
|
|
|
- "PermissionRequest": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "id": {
|
|
|
- "type": "string",
|
|
|
- "pattern": "^per.*"
|
|
|
- },
|
|
|
- "sessionID": {
|
|
|
- "type": "string",
|
|
|
- "pattern": "^ses.*"
|
|
|
- },
|
|
|
- "permission": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "patterns": {
|
|
|
- "type": "array",
|
|
|
- "items": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- "metadata": {
|
|
|
- "type": "object",
|
|
|
- "propertyNames": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "additionalProperties": {}
|
|
|
- },
|
|
|
- "always": {
|
|
|
- "type": "array",
|
|
|
- "items": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- "tool": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "messageID": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "callID": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "messageID",
|
|
|
- "callID"
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "id",
|
|
|
- "sessionID",
|
|
|
- "permission",
|
|
|
- "patterns",
|
|
|
- "metadata",
|
|
|
- "always"
|
|
|
- ]
|
|
|
- },
|
|
|
- "Event.permission.asked": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "type": {
|
|
|
- "type": "string",
|
|
|
- "const": "permission.asked"
|
|
|
- },
|
|
|
- "properties": {
|
|
|
- "$ref": "#/components/schemas/PermissionRequest"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "type",
|
|
|
- "properties"
|
|
|
- ]
|
|
|
- },
|
|
|
- "Event.permission.replied": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "type": {
|
|
|
- "type": "string",
|
|
|
- "const": "permission.replied"
|
|
|
- },
|
|
|
- "properties": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "sessionID": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "requestID": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "reply": {
|
|
|
- "type": "string",
|
|
|
- "enum": [
|
|
|
- "once",
|
|
|
- "always",
|
|
|
- "reject"
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "sessionID",
|
|
|
- "requestID",
|
|
|
- "reply"
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "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"
|
|
|
- ]
|
|
|
- },
|
|
|
- "QuestionOption": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "label": {
|
|
|
- "description": "Display text (1-5 words, concise)",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "description": {
|
|
|
- "description": "Explanation of choice",
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "label",
|
|
|
- "description"
|
|
|
- ]
|
|
|
- },
|
|
|
- "QuestionInfo": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "question": {
|
|
|
- "description": "Complete question",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "header": {
|
|
|
- "description": "Very short label (max 30 chars)",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "options": {
|
|
|
- "description": "Available choices",
|
|
|
- "type": "array",
|
|
|
- "items": {
|
|
|
- "$ref": "#/components/schemas/QuestionOption"
|
|
|
- }
|
|
|
- },
|
|
|
- "multiple": {
|
|
|
- "description": "Allow selecting multiple choices",
|
|
|
- "type": "boolean"
|
|
|
- },
|
|
|
- "custom": {
|
|
|
- "description": "Allow typing a custom answer (default: true)",
|
|
|
- "type": "boolean"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "question",
|
|
|
- "header",
|
|
|
- "options"
|
|
|
- ]
|
|
|
- },
|
|
|
- "QuestionRequest": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "id": {
|
|
|
- "type": "string",
|
|
|
- "pattern": "^que.*"
|
|
|
- },
|
|
|
- "sessionID": {
|
|
|
- "type": "string",
|
|
|
- "pattern": "^ses.*"
|
|
|
- },
|
|
|
- "questions": {
|
|
|
- "description": "Questions to ask",
|
|
|
- "type": "array",
|
|
|
- "items": {
|
|
|
- "$ref": "#/components/schemas/QuestionInfo"
|
|
|
- }
|
|
|
- },
|
|
|
- "tool": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "messageID": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "callID": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "messageID",
|
|
|
- "callID"
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "id",
|
|
|
- "sessionID",
|
|
|
- "questions"
|
|
|
- ]
|
|
|
- },
|
|
|
- "Event.question.asked": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "type": {
|
|
|
- "type": "string",
|
|
|
- "const": "question.asked"
|
|
|
- },
|
|
|
- "properties": {
|
|
|
- "$ref": "#/components/schemas/QuestionRequest"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "type",
|
|
|
- "properties"
|
|
|
- ]
|
|
|
- },
|
|
|
- "QuestionAnswer": {
|
|
|
- "type": "array",
|
|
|
- "items": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- "Event.question.replied": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "type": {
|
|
|
- "type": "string",
|
|
|
- "const": "question.replied"
|
|
|
- },
|
|
|
- "properties": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "sessionID": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "requestID": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "answers": {
|
|
|
- "type": "array",
|
|
|
- "items": {
|
|
|
- "$ref": "#/components/schemas/QuestionAnswer"
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "sessionID",
|
|
|
- "requestID",
|
|
|
- "answers"
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "type",
|
|
|
- "properties"
|
|
|
- ]
|
|
|
- },
|
|
|
- "Event.question.rejected": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "type": {
|
|
|
- "type": "string",
|
|
|
- "const": "question.rejected"
|
|
|
- },
|
|
|
- "properties": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "sessionID": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "requestID": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "sessionID",
|
|
|
- "requestID"
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "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.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"
|
|
|
- ]
|
|
|
- },
|
|
|
- "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.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.line.up",
|
|
|
- "session.line.down",
|
|
|
- "session.half.page.up",
|
|
|
- "session.half.page.down",
|
|
|
- "session.first",
|
|
|
- "session.last",
|
|
|
- "prompt.clear",
|
|
|
- "prompt.submit",
|
|
|
- "agent.cycle"
|
|
|
- ]
|
|
|
- },
|
|
|
- {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "command"
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "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"
|
|
|
- ]
|
|
|
- },
|
|
|
- "Event.tui.session.select": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "type": {
|
|
|
- "type": "string",
|
|
|
- "const": "tui.session.select"
|
|
|
- },
|
|
|
- "properties": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "sessionID": {
|
|
|
- "description": "Session ID to navigate to",
|
|
|
- "type": "string",
|
|
|
- "pattern": "^ses"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "sessionID"
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "type",
|
|
|
- "properties"
|
|
|
- ]
|
|
|
- },
|
|
|
- "Event.mcp.tools.changed": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "type": {
|
|
|
- "type": "string",
|
|
|
- "const": "mcp.tools.changed"
|
|
|
- },
|
|
|
- "properties": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "server": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "server"
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "type",
|
|
|
- "properties"
|
|
|
- ]
|
|
|
- },
|
|
|
- "Event.mcp.browser.open.failed": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "type": {
|
|
|
- "type": "string",
|
|
|
- "const": "mcp.browser.open.failed"
|
|
|
- },
|
|
|
- "properties": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "mcpName": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "url": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "mcpName",
|
|
|
- "url"
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "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"
|
|
|
- ]
|
|
|
- },
|
|
|
- "PermissionAction": {
|
|
|
- "type": "string",
|
|
|
- "enum": [
|
|
|
- "allow",
|
|
|
- "deny",
|
|
|
- "ask"
|
|
|
- ]
|
|
|
- },
|
|
|
- "PermissionRule": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "permission": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "pattern": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "action": {
|
|
|
- "$ref": "#/components/schemas/PermissionAction"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "permission",
|
|
|
- "pattern",
|
|
|
- "action"
|
|
|
- ]
|
|
|
- },
|
|
|
- "PermissionRuleset": {
|
|
|
- "type": "array",
|
|
|
- "items": {
|
|
|
- "$ref": "#/components/schemas/PermissionRule"
|
|
|
- }
|
|
|
- },
|
|
|
- "Session": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "id": {
|
|
|
- "type": "string",
|
|
|
- "pattern": "^ses.*"
|
|
|
- },
|
|
|
- "slug": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "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"
|
|
|
- },
|
|
|
- "archived": {
|
|
|
- "type": "number"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "created",
|
|
|
- "updated"
|
|
|
- ]
|
|
|
- },
|
|
|
- "permission": {
|
|
|
- "$ref": "#/components/schemas/PermissionRuleset"
|
|
|
- },
|
|
|
- "revert": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "messageID": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "partID": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "snapshot": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "diff": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "messageID"
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "id",
|
|
|
- "slug",
|
|
|
- "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.vcs.branch.updated": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "type": {
|
|
|
- "type": "string",
|
|
|
- "const": "vcs.branch.updated"
|
|
|
- },
|
|
|
- "properties": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "branch": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "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.worktree.ready": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "type": {
|
|
|
- "type": "string",
|
|
|
- "const": "worktree.ready"
|
|
|
- },
|
|
|
- "properties": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "name": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "branch": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "name",
|
|
|
- "branch"
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "type",
|
|
|
- "properties"
|
|
|
- ]
|
|
|
- },
|
|
|
- "Event.worktree.failed": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "type": {
|
|
|
- "type": "string",
|
|
|
- "const": "worktree.failed"
|
|
|
- },
|
|
|
- "properties": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "message": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "message"
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "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.server.connected"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/Event.global.disposed"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/Event.lsp.client.diagnostics"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/Event.lsp.updated"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/Event.file.edited"
|
|
|
- },
|
|
|
- {
|
|
|
- "$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.asked"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/Event.permission.replied"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/Event.session.status"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/Event.session.idle"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/Event.question.asked"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/Event.question.replied"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/Event.question.rejected"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/Event.session.compacted"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/Event.file.watcher.updated"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/Event.todo.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.tui.session.select"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/Event.mcp.tools.changed"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/Event.mcp.browser.open.failed"
|
|
|
- },
|
|
|
- {
|
|
|
- "$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.vcs.branch.updated"
|
|
|
- },
|
|
|
- {
|
|
|
- "$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.worktree.ready"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/Event.worktree.failed"
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- "GlobalEvent": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "directory": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "payload": {
|
|
|
- "$ref": "#/components/schemas/Event"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "directory",
|
|
|
- "payload"
|
|
|
- ]
|
|
|
- },
|
|
|
- "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_fork": {
|
|
|
- "description": "Fork session from message",
|
|
|
- "default": "none",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "session_rename": {
|
|
|
- "description": "Rename session",
|
|
|
- "default": "ctrl+r",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "session_delete": {
|
|
|
- "description": "Delete session",
|
|
|
- "default": "ctrl+d",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "stash_delete": {
|
|
|
- "description": "Delete stash entry",
|
|
|
- "default": "ctrl+d",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "model_provider_list": {
|
|
|
- "description": "Open provider list from model dialog",
|
|
|
- "default": "ctrl+a",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "model_favorite_toggle": {
|
|
|
- "description": "Toggle model favorite status",
|
|
|
- "default": "ctrl+f",
|
|
|
- "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,ctrl+alt+b",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "messages_page_down": {
|
|
|
- "description": "Scroll messages down by one page",
|
|
|
- "default": "pagedown,ctrl+alt+f",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "messages_line_up": {
|
|
|
- "description": "Scroll messages up by one line",
|
|
|
- "default": "ctrl+alt+y",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "messages_line_down": {
|
|
|
- "description": "Scroll messages down by one line",
|
|
|
- "default": "ctrl+alt+e",
|
|
|
- "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_next": {
|
|
|
- "description": "Navigate to next message",
|
|
|
- "default": "none",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "messages_previous": {
|
|
|
- "description": "Navigate to previous message",
|
|
|
- "default": "none",
|
|
|
- "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"
|
|
|
- },
|
|
|
- "model_cycle_favorite": {
|
|
|
- "description": "Next favorite model",
|
|
|
- "default": "none",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "model_cycle_favorite_reverse": {
|
|
|
- "description": "Previous favorite model",
|
|
|
- "default": "none",
|
|
|
- "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"
|
|
|
- },
|
|
|
- "variant_cycle": {
|
|
|
- "description": "Cycle model variants",
|
|
|
- "default": "ctrl+t",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_clear": {
|
|
|
- "description": "Clear input field",
|
|
|
- "default": "ctrl+c",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_paste": {
|
|
|
- "description": "Paste from clipboard",
|
|
|
- "default": "ctrl+v",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_submit": {
|
|
|
- "description": "Submit input",
|
|
|
- "default": "return",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_newline": {
|
|
|
- "description": "Insert newline in input",
|
|
|
- "default": "shift+return,ctrl+return,alt+return,ctrl+j",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_move_left": {
|
|
|
- "description": "Move cursor left in input",
|
|
|
- "default": "left,ctrl+b",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_move_right": {
|
|
|
- "description": "Move cursor right in input",
|
|
|
- "default": "right,ctrl+f",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_move_up": {
|
|
|
- "description": "Move cursor up in input",
|
|
|
- "default": "up",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_move_down": {
|
|
|
- "description": "Move cursor down in input",
|
|
|
- "default": "down",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_select_left": {
|
|
|
- "description": "Select left in input",
|
|
|
- "default": "shift+left",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_select_right": {
|
|
|
- "description": "Select right in input",
|
|
|
- "default": "shift+right",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_select_up": {
|
|
|
- "description": "Select up in input",
|
|
|
- "default": "shift+up",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_select_down": {
|
|
|
- "description": "Select down in input",
|
|
|
- "default": "shift+down",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_line_home": {
|
|
|
- "description": "Move to start of line in input",
|
|
|
- "default": "ctrl+a",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_line_end": {
|
|
|
- "description": "Move to end of line in input",
|
|
|
- "default": "ctrl+e",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_select_line_home": {
|
|
|
- "description": "Select to start of line in input",
|
|
|
- "default": "ctrl+shift+a",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_select_line_end": {
|
|
|
- "description": "Select to end of line in input",
|
|
|
- "default": "ctrl+shift+e",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_visual_line_home": {
|
|
|
- "description": "Move to start of visual line in input",
|
|
|
- "default": "alt+a",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_visual_line_end": {
|
|
|
- "description": "Move to end of visual line in input",
|
|
|
- "default": "alt+e",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_select_visual_line_home": {
|
|
|
- "description": "Select to start of visual line in input",
|
|
|
- "default": "alt+shift+a",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_select_visual_line_end": {
|
|
|
- "description": "Select to end of visual line in input",
|
|
|
- "default": "alt+shift+e",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_buffer_home": {
|
|
|
- "description": "Move to start of buffer in input",
|
|
|
- "default": "home",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_buffer_end": {
|
|
|
- "description": "Move to end of buffer in input",
|
|
|
- "default": "end",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_select_buffer_home": {
|
|
|
- "description": "Select to start of buffer in input",
|
|
|
- "default": "shift+home",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_select_buffer_end": {
|
|
|
- "description": "Select to end of buffer in input",
|
|
|
- "default": "shift+end",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_delete_line": {
|
|
|
- "description": "Delete line in input",
|
|
|
- "default": "ctrl+shift+d",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_delete_to_line_end": {
|
|
|
- "description": "Delete to end of line in input",
|
|
|
- "default": "ctrl+k",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_delete_to_line_start": {
|
|
|
- "description": "Delete to start of line in input",
|
|
|
- "default": "ctrl+u",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_backspace": {
|
|
|
- "description": "Backspace in input",
|
|
|
- "default": "backspace,shift+backspace",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_delete": {
|
|
|
- "description": "Delete character in input",
|
|
|
- "default": "ctrl+d,delete,shift+delete",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_undo": {
|
|
|
- "description": "Undo in input",
|
|
|
- "default": "ctrl+-,super+z",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_redo": {
|
|
|
- "description": "Redo in input",
|
|
|
- "default": "ctrl+.,super+shift+z",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_word_forward": {
|
|
|
- "description": "Move word forward in input",
|
|
|
- "default": "alt+f,alt+right,ctrl+right",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_word_backward": {
|
|
|
- "description": "Move word backward in input",
|
|
|
- "default": "alt+b,alt+left,ctrl+left",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_select_word_forward": {
|
|
|
- "description": "Select word forward in input",
|
|
|
- "default": "alt+shift+f,alt+shift+right",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_select_word_backward": {
|
|
|
- "description": "Select word backward in input",
|
|
|
- "default": "alt+shift+b,alt+shift+left",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_delete_word_forward": {
|
|
|
- "description": "Delete word forward in input",
|
|
|
- "default": "alt+d,alt+delete,ctrl+delete",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "input_delete_word_backward": {
|
|
|
- "description": "Delete word backward in input",
|
|
|
- "default": "ctrl+w,ctrl+backspace,alt+backspace",
|
|
|
- "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"
|
|
|
- },
|
|
|
- "session_parent": {
|
|
|
- "description": "Go to parent session",
|
|
|
- "default": "<leader>up",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "terminal_suspend": {
|
|
|
- "description": "Suspend terminal",
|
|
|
- "default": "ctrl+z",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "terminal_title_toggle": {
|
|
|
- "description": "Toggle terminal title",
|
|
|
- "default": "none",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "tips_toggle": {
|
|
|
- "description": "Toggle tips on home screen",
|
|
|
- "default": "<leader>h",
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- "additionalProperties": false
|
|
|
- },
|
|
|
- "LogLevel": {
|
|
|
- "description": "Log level",
|
|
|
- "type": "string",
|
|
|
- "enum": [
|
|
|
- "DEBUG",
|
|
|
- "INFO",
|
|
|
- "WARN",
|
|
|
- "ERROR"
|
|
|
- ]
|
|
|
- },
|
|
|
- "ServerConfig": {
|
|
|
- "description": "Server configuration for opencode serve and web commands",
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "port": {
|
|
|
- "description": "Port to listen on",
|
|
|
- "type": "integer",
|
|
|
- "exclusiveMinimum": 0,
|
|
|
- "maximum": 9007199254740991
|
|
|
- },
|
|
|
- "hostname": {
|
|
|
- "description": "Hostname to listen on",
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "mdns": {
|
|
|
- "description": "Enable mDNS service discovery",
|
|
|
- "type": "boolean"
|
|
|
- },
|
|
|
- "cors": {
|
|
|
- "description": "Additional domains to allow for CORS",
|
|
|
- "type": "array",
|
|
|
- "items": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "additionalProperties": false
|
|
|
- },
|
|
|
- "PermissionActionConfig": {
|
|
|
- "type": "string",
|
|
|
- "enum": [
|
|
|
- "ask",
|
|
|
- "allow",
|
|
|
- "deny"
|
|
|
- ]
|
|
|
- },
|
|
|
- "PermissionObjectConfig": {
|
|
|
- "type": "object",
|
|
|
- "propertyNames": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "additionalProperties": {
|
|
|
- "$ref": "#/components/schemas/PermissionActionConfig"
|
|
|
- }
|
|
|
- },
|
|
|
- "PermissionRuleConfig": {
|
|
|
- "anyOf": [
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/PermissionActionConfig"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/PermissionObjectConfig"
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- "PermissionConfig": {
|
|
|
- "anyOf": [
|
|
|
- {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "__originalKeys": {
|
|
|
- "type": "array",
|
|
|
- "items": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- "read": {
|
|
|
- "$ref": "#/components/schemas/PermissionRuleConfig"
|
|
|
- },
|
|
|
- "edit": {
|
|
|
- "$ref": "#/components/schemas/PermissionRuleConfig"
|
|
|
- },
|
|
|
- "glob": {
|
|
|
- "$ref": "#/components/schemas/PermissionRuleConfig"
|
|
|
- },
|
|
|
- "grep": {
|
|
|
- "$ref": "#/components/schemas/PermissionRuleConfig"
|
|
|
- },
|
|
|
- "list": {
|
|
|
- "$ref": "#/components/schemas/PermissionRuleConfig"
|
|
|
- },
|
|
|
- "bash": {
|
|
|
- "$ref": "#/components/schemas/PermissionRuleConfig"
|
|
|
- },
|
|
|
- "task": {
|
|
|
- "$ref": "#/components/schemas/PermissionRuleConfig"
|
|
|
- },
|
|
|
- "external_directory": {
|
|
|
- "$ref": "#/components/schemas/PermissionRuleConfig"
|
|
|
- },
|
|
|
- "todowrite": {
|
|
|
- "$ref": "#/components/schemas/PermissionActionConfig"
|
|
|
- },
|
|
|
- "todoread": {
|
|
|
- "$ref": "#/components/schemas/PermissionActionConfig"
|
|
|
- },
|
|
|
- "question": {
|
|
|
- "$ref": "#/components/schemas/PermissionActionConfig"
|
|
|
- },
|
|
|
- "webfetch": {
|
|
|
- "$ref": "#/components/schemas/PermissionActionConfig"
|
|
|
- },
|
|
|
- "websearch": {
|
|
|
- "$ref": "#/components/schemas/PermissionActionConfig"
|
|
|
- },
|
|
|
- "codesearch": {
|
|
|
- "$ref": "#/components/schemas/PermissionActionConfig"
|
|
|
- },
|
|
|
- "lsp": {
|
|
|
- "$ref": "#/components/schemas/PermissionRuleConfig"
|
|
|
- },
|
|
|
- "doom_loop": {
|
|
|
- "$ref": "#/components/schemas/PermissionActionConfig"
|
|
|
- },
|
|
|
- "skill": {
|
|
|
- "$ref": "#/components/schemas/PermissionRuleConfig"
|
|
|
- }
|
|
|
- },
|
|
|
- "additionalProperties": {
|
|
|
- "$ref": "#/components/schemas/PermissionRuleConfig"
|
|
|
- }
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/PermissionActionConfig"
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- "AgentConfig": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "model": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "temperature": {
|
|
|
- "type": "number"
|
|
|
- },
|
|
|
- "top_p": {
|
|
|
- "type": "number"
|
|
|
- },
|
|
|
- "prompt": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "tools": {
|
|
|
- "description": "@deprecated Use 'permission' field instead",
|
|
|
- "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"
|
|
|
- ]
|
|
|
- },
|
|
|
- "hidden": {
|
|
|
- "description": "Hide this subagent from the @ autocomplete menu (default: false, only applies to mode: subagent)",
|
|
|
- "type": "boolean"
|
|
|
- },
|
|
|
- "options": {
|
|
|
- "type": "object",
|
|
|
- "propertyNames": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "additionalProperties": {}
|
|
|
- },
|
|
|
- "color": {
|
|
|
- "description": "Hex color code for the agent (e.g., #FF5733)",
|
|
|
- "type": "string",
|
|
|
- "pattern": "^#[0-9a-fA-F]{6}$"
|
|
|
- },
|
|
|
- "steps": {
|
|
|
- "description": "Maximum number of agentic iterations before forcing text-only response",
|
|
|
- "type": "integer",
|
|
|
- "exclusiveMinimum": 0,
|
|
|
- "maximum": 9007199254740991
|
|
|
- },
|
|
|
- "maxSteps": {
|
|
|
- "description": "@deprecated Use 'steps' field instead.",
|
|
|
- "type": "integer",
|
|
|
- "exclusiveMinimum": 0,
|
|
|
- "maximum": 9007199254740991
|
|
|
- },
|
|
|
- "permission": {
|
|
|
- "$ref": "#/components/schemas/PermissionConfig"
|
|
|
- }
|
|
|
- },
|
|
|
- "additionalProperties": {}
|
|
|
- },
|
|
|
- "ProviderConfig": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "api": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "name": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "env": {
|
|
|
- "type": "array",
|
|
|
- "items": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- "id": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "npm": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "models": {
|
|
|
- "type": "object",
|
|
|
- "propertyNames": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "additionalProperties": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "id": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "name": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "family": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "release_date": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "attachment": {
|
|
|
- "type": "boolean"
|
|
|
- },
|
|
|
- "reasoning": {
|
|
|
- "type": "boolean"
|
|
|
- },
|
|
|
- "temperature": {
|
|
|
- "type": "boolean"
|
|
|
- },
|
|
|
- "tool_call": {
|
|
|
- "type": "boolean"
|
|
|
- },
|
|
|
- "interleaved": {
|
|
|
- "anyOf": [
|
|
|
- {
|
|
|
- "type": "boolean",
|
|
|
- "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"
|
|
|
- },
|
|
|
- "input": {
|
|
|
- "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"
|
|
|
- ]
|
|
|
- },
|
|
|
- "variants": {
|
|
|
- "description": "Variant-specific configuration",
|
|
|
- "type": "object",
|
|
|
- "propertyNames": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "additionalProperties": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "disabled": {
|
|
|
- "description": "Disable this variant for the model",
|
|
|
- "type": "boolean"
|
|
|
- }
|
|
|
- },
|
|
|
- "additionalProperties": {}
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "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 MCP server requests. 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 MCP server requests. 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"
|
|
|
- },
|
|
|
- "logLevel": {
|
|
|
- "$ref": "#/components/schemas/LogLevel"
|
|
|
- },
|
|
|
- "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"
|
|
|
- ]
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "server": {
|
|
|
- "$ref": "#/components/schemas/ServerConfig"
|
|
|
- },
|
|
|
- "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"
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "skills": {
|
|
|
- "description": "Additional skill folder paths",
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "paths": {
|
|
|
- "description": "Additional paths to skill folders",
|
|
|
- "type": "array",
|
|
|
- "items": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "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"
|
|
|
- },
|
|
|
- "default_agent": {
|
|
|
- "description": "Default agent to use when none is specified. Must be a primary agent. Falls back to 'build' if not set or if the specified agent is invalid.",
|
|
|
- "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/agents",
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "plan": {
|
|
|
- "$ref": "#/components/schemas/AgentConfig"
|
|
|
- },
|
|
|
- "build": {
|
|
|
- "$ref": "#/components/schemas/AgentConfig"
|
|
|
- },
|
|
|
- "general": {
|
|
|
- "$ref": "#/components/schemas/AgentConfig"
|
|
|
- },
|
|
|
- "explore": {
|
|
|
- "$ref": "#/components/schemas/AgentConfig"
|
|
|
- },
|
|
|
- "title": {
|
|
|
- "$ref": "#/components/schemas/AgentConfig"
|
|
|
- },
|
|
|
- "summary": {
|
|
|
- "$ref": "#/components/schemas/AgentConfig"
|
|
|
- },
|
|
|
- "compaction": {
|
|
|
- "$ref": "#/components/schemas/AgentConfig"
|
|
|
- }
|
|
|
- },
|
|
|
- "additionalProperties": {
|
|
|
- "$ref": "#/components/schemas/AgentConfig"
|
|
|
- }
|
|
|
- },
|
|
|
- "provider": {
|
|
|
- "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": [
|
|
|
- {
|
|
|
- "anyOf": [
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/McpLocalConfig"
|
|
|
- },
|
|
|
- {
|
|
|
- "$ref": "#/components/schemas/McpRemoteConfig"
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "enabled": {
|
|
|
- "type": "boolean"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "enabled"
|
|
|
- ],
|
|
|
- "additionalProperties": false
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "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": {
|
|
|
- "$ref": "#/components/schemas/PermissionConfig"
|
|
|
- },
|
|
|
- "tools": {
|
|
|
- "type": "object",
|
|
|
- "propertyNames": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "additionalProperties": {
|
|
|
- "type": "boolean"
|
|
|
- }
|
|
|
- },
|
|
|
- "enterprise": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "url": {
|
|
|
- "description": "Enterprise URL",
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "compaction": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "auto": {
|
|
|
- "description": "Enable automatic compaction when context is full (default: true)",
|
|
|
- "type": "boolean"
|
|
|
- },
|
|
|
- "prune": {
|
|
|
- "description": "Enable pruning of old tool outputs (default: true)",
|
|
|
- "type": "boolean"
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "experimental": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "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"
|
|
|
- }
|
|
|
- },
|
|
|
- "continue_loop_on_deny": {
|
|
|
- "description": "Continue the agent loop when a tool call is denied",
|
|
|
- "type": "boolean"
|
|
|
- },
|
|
|
- "mcp_timeout": {
|
|
|
- "description": "Timeout in milliseconds for model context protocol (MCP) requests",
|
|
|
- "type": "integer",
|
|
|
- "exclusiveMinimum": 0,
|
|
|
- "maximum": 9007199254740991
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "additionalProperties": false
|
|
|
- },
|
|
|
- "BadRequestError": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "data": {},
|
|
|
- "errors": {
|
|
|
- "type": "array",
|
|
|
- "items": {
|
|
|
- "type": "object",
|
|
|
- "propertyNames": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "additionalProperties": {}
|
|
|
- }
|
|
|
- },
|
|
|
- "success": {
|
|
|
- "type": "boolean",
|
|
|
- "const": false
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "data",
|
|
|
- "errors",
|
|
|
- "success"
|
|
|
- ]
|
|
|
- },
|
|
|
- "OAuth": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "type": {
|
|
|
- "type": "string",
|
|
|
- "const": "oauth"
|
|
|
- },
|
|
|
- "refresh": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "access": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "expires": {
|
|
|
- "type": "number"
|
|
|
- },
|
|
|
- "accountId": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "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"
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- "NotFoundError": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "name": {
|
|
|
- "type": "string",
|
|
|
- "const": "NotFoundError"
|
|
|
- },
|
|
|
- "data": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "message": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "message"
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "name",
|
|
|
- "data"
|
|
|
- ]
|
|
|
- },
|
|
|
- "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"
|
|
|
- },
|
|
|
- "family": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "capabilities": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "temperature": {
|
|
|
- "type": "boolean"
|
|
|
- },
|
|
|
- "reasoning": {
|
|
|
- "type": "boolean"
|
|
|
- },
|
|
|
- "attachment": {
|
|
|
- "type": "boolean"
|
|
|
- },
|
|
|
- "toolcall": {
|
|
|
- "type": "boolean"
|
|
|
- },
|
|
|
- "input": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "text": {
|
|
|
- "type": "boolean"
|
|
|
- },
|
|
|
- "audio": {
|
|
|
- "type": "boolean"
|
|
|
- },
|
|
|
- "image": {
|
|
|
- "type": "boolean"
|
|
|
- },
|
|
|
- "video": {
|
|
|
- "type": "boolean"
|
|
|
- },
|
|
|
- "pdf": {
|
|
|
- "type": "boolean"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "text",
|
|
|
- "audio",
|
|
|
- "image",
|
|
|
- "video",
|
|
|
- "pdf"
|
|
|
- ]
|
|
|
- },
|
|
|
- "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"
|
|
|
- },
|
|
|
- "input": {
|
|
|
- "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"
|
|
|
- }
|
|
|
- },
|
|
|
- "release_date": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "variants": {
|
|
|
- "type": "object",
|
|
|
- "propertyNames": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "additionalProperties": {
|
|
|
- "type": "object",
|
|
|
- "propertyNames": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "additionalProperties": {}
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "id",
|
|
|
- "providerID",
|
|
|
- "api",
|
|
|
- "name",
|
|
|
- "capabilities",
|
|
|
- "cost",
|
|
|
- "limit",
|
|
|
- "status",
|
|
|
- "options",
|
|
|
- "headers",
|
|
|
- "release_date"
|
|
|
- ]
|
|
|
- },
|
|
|
- "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"
|
|
|
- ]
|
|
|
- },
|
|
|
- "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"
|
|
|
- }
|
|
|
- },
|
|
|
- "Worktree": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "name": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "branch": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "directory": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "name",
|
|
|
- "branch",
|
|
|
- "directory"
|
|
|
- ]
|
|
|
- },
|
|
|
- "WorktreeCreateInput": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "name": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "startCommand": {
|
|
|
- "description": "Additional startup script to run after the project's start command",
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "WorktreeRemoveInput": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "directory": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "directory"
|
|
|
- ]
|
|
|
- },
|
|
|
- "WorktreeResetInput": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "directory": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "directory"
|
|
|
- ]
|
|
|
- },
|
|
|
- "McpResource": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "name": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "uri": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "description": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "mimeType": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "client": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "name",
|
|
|
- "uri",
|
|
|
- "client"
|
|
|
- ]
|
|
|
- },
|
|
|
- "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"
|
|
|
- },
|
|
|
- "model": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "providerID": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "modelID": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "providerID",
|
|
|
- "modelID"
|
|
|
- ]
|
|
|
- },
|
|
|
- "command": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "type",
|
|
|
- "prompt",
|
|
|
- "description",
|
|
|
- "agent"
|
|
|
- ]
|
|
|
- },
|
|
|
- "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"
|
|
|
- ]
|
|
|
- },
|
|
|
- "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"
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- "Path": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "home": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "state": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "config": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "worktree": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "directory": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "home",
|
|
|
- "state",
|
|
|
- "config",
|
|
|
- "worktree",
|
|
|
- "directory"
|
|
|
- ]
|
|
|
- },
|
|
|
- "VcsInfo": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "branch": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "branch"
|
|
|
- ]
|
|
|
- },
|
|
|
- "Command": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "name": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "description": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "agent": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "model": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "source": {
|
|
|
- "type": "string",
|
|
|
- "enum": [
|
|
|
- "command",
|
|
|
- "mcp",
|
|
|
- "skill"
|
|
|
- ]
|
|
|
- },
|
|
|
- "template": {
|
|
|
- "anyOf": [
|
|
|
- {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- "subtask": {
|
|
|
- "type": "boolean"
|
|
|
- },
|
|
|
- "hints": {
|
|
|
- "type": "array",
|
|
|
- "items": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "name",
|
|
|
- "template",
|
|
|
- "hints"
|
|
|
- ]
|
|
|
- },
|
|
|
- "Agent": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "name": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "description": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "mode": {
|
|
|
- "type": "string",
|
|
|
- "enum": [
|
|
|
- "subagent",
|
|
|
- "primary",
|
|
|
- "all"
|
|
|
- ]
|
|
|
- },
|
|
|
- "native": {
|
|
|
- "type": "boolean"
|
|
|
- },
|
|
|
- "hidden": {
|
|
|
- "type": "boolean"
|
|
|
- },
|
|
|
- "topP": {
|
|
|
- "type": "number"
|
|
|
- },
|
|
|
- "temperature": {
|
|
|
- "type": "number"
|
|
|
- },
|
|
|
- "color": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "permission": {
|
|
|
- "$ref": "#/components/schemas/PermissionRuleset"
|
|
|
- },
|
|
|
- "model": {
|
|
|
- "type": "object",
|
|
|
- "properties": {
|
|
|
- "modelID": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "providerID": {
|
|
|
- "type": "string"
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "modelID",
|
|
|
- "providerID"
|
|
|
- ]
|
|
|
- },
|
|
|
- "prompt": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "options": {
|
|
|
- "type": "object",
|
|
|
- "propertyNames": {
|
|
|
- "type": "string"
|
|
|
- },
|
|
|
- "additionalProperties": {}
|
|
|
- },
|
|
|
- "steps": {
|
|
|
- "type": "integer",
|
|
|
- "exclusiveMinimum": 0,
|
|
|
- "maximum": 9007199254740991
|
|
|
- }
|
|
|
- },
|
|
|
- "required": [
|
|
|
- "name",
|
|
|
- "mode",
|
|
|
- "permission",
|
|
|
- "options"
|
|
|
- ]
|
|
|
- },
|
|
|
- "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"
|
|
|
- ]
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-}
|