{"openapi":"3.1.0","info":{"title":"opencode","version":"1.0.0","description":"opencode api"},"paths":{"/auth/{providerID}":{"put":{"tags":["control"],"operationId":"auth.set","parameters":[{"name":"providerID","in":"path","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Successfully set authentication credentials","content":{"application/json":{"schema":{"type":"boolean","description":"Successfully set authentication credentials"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"description":"Set authentication credentials","summary":"Set auth credentials","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Auth"}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.auth.set({\n  ...\n})"}]},"delete":{"tags":["control"],"operationId":"auth.remove","parameters":[{"name":"providerID","in":"path","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Successfully removed authentication credentials","content":{"application/json":{"schema":{"type":"boolean","description":"Successfully removed authentication credentials"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"description":"Remove authentication credentials","summary":"Remove auth credentials","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.auth.remove({\n  ...\n})"}]}},"/log":{"post":{"tags":["control"],"operationId":"app.log","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Log entry written successfully","content":{"application/json":{"schema":{"type":"boolean","description":"Log entry written successfully"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"description":"Write a log entry to the server logs with specified level and metadata.","summary":"Write log","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"service":{"type":"string","description":"Service name for the log entry"},"level":{"type":"string","enum":["debug","info","error","warn"],"description":"Log level"},"message":{"type":"string","description":"Log message"},"extra":{"type":"object"}},"required":["service","level","message"],"additionalProperties":false}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.app.log({\n  ...\n})"}]}},"/global/health":{"get":{"tags":["global"],"operationId":"global.health","parameters":[],"responses":{"200":{"description":"Health information","content":{"application/json":{"schema":{"type":"object","properties":{"healthy":{"type":"boolean","enum":[true]},"version":{"type":"string"}},"required":["healthy","version"],"additionalProperties":false,"description":"Health information"}}}}},"description":"Get health information about the OpenCode server.","summary":"Get health","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.global.health({\n  ...\n})"}]}},"/global/event":{"get":{"tags":["global"],"operationId":"global.event","parameters":[],"responses":{"200":{"description":"Event stream","content":{"text/event-stream":{"schema":{"$ref":"#/components/schemas/GlobalEvent"}}}}},"description":"Subscribe to global events from the OpenCode system using server-sent events.","summary":"Get global events","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.global.event({\n  ...\n})"}]}},"/global/config":{"get":{"tags":["global"],"operationId":"global.config.get","parameters":[],"responses":{"200":{"description":"Get global config info","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Config"}}}}},"description":"Retrieve the current global OpenCode configuration settings and preferences.","summary":"Get global configuration","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.global.config.get({\n  ...\n})"}]},"patch":{"tags":["global"],"operationId":"global.config.update","parameters":[],"responses":{"200":{"description":"Successfully updated global config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Config"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"description":"Update global OpenCode configuration settings and preferences.","summary":"Update global configuration","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Config"}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.global.config.update({\n  ...\n})"}]}},"/global/dispose":{"post":{"tags":["global"],"operationId":"global.dispose","parameters":[],"responses":{"200":{"description":"Global disposed","content":{"application/json":{"schema":{"type":"boolean","description":"Global disposed"}}}}},"description":"Clean up and dispose all OpenCode instances, releasing all resources.","summary":"Dispose instance","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.global.dispose({\n  ...\n})"}]}},"/global/upgrade":{"post":{"tags":["global"],"operationId":"global.upgrade","parameters":[],"responses":{"200":{"description":"Upgrade result","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"version":{"type":"string"}},"required":["success","version"],"additionalProperties":false},{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"}},"required":["success","error"],"additionalProperties":false}],"description":"Upgrade result"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"description":"Upgrade opencode to the specified version or latest if not specified.","summary":"Upgrade opencode","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"target":{"type":"string"}},"additionalProperties":false}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.global.upgrade({\n  ...\n})"}]}},"/event":{"get":{"tags":["event"],"operationId":"event.subscribe","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Event stream","content":{"text/event-stream":{"schema":{"$ref":"#/components/schemas/Event"}}}}},"description":"Get events","summary":"Subscribe to events","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.event.subscribe({\n  ...\n})"}]}},"/config":{"get":{"tags":["config"],"operationId":"config.get","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Get config info","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Config"}}}}},"description":"Retrieve the current OpenCode configuration settings and preferences.","summary":"Get configuration","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.config.get({\n  ...\n})"}]},"patch":{"tags":["config"],"operationId":"config.update","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Successfully updated config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Config"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"description":"Update OpenCode configuration settings and preferences.","summary":"Update configuration","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Config"}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.config.update({\n  ...\n})"}]}},"/config/providers":{"get":{"tags":["config"],"operationId":"config.providers","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"List of providers","content":{"application/json":{"schema":{"type":"object","properties":{"providers":{"type":"array","items":{"$ref":"#/components/schemas/Provider"}},"default":{"type":"object","additionalProperties":{"type":"string"}}},"required":["providers","default"],"additionalProperties":false,"description":"List of providers"}}}}},"description":"Get a list of all configured AI providers and their default models.","summary":"List config providers","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.config.providers({\n  ...\n})"}]}},"/experimental/console":{"get":{"tags":["experimental"],"operationId":"experimental.console.get","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Active Console provider metadata","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsoleState"}}}},"500":{"description":"InternalServerError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/effect_HttpApiError_InternalServerError"}}}}},"description":"Get the active Console org name and the set of provider IDs managed by that Console org.","summary":"Get active Console provider metadata","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.experimental.console.get({\n  ...\n})"}]}},"/experimental/console/orgs":{"get":{"tags":["experimental"],"operationId":"experimental.console.listOrgs","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Switchable Console orgs","content":{"application/json":{"schema":{"type":"object","properties":{"orgs":{"type":"array","items":{"type":"object","properties":{"accountID":{"type":"string"},"accountEmail":{"type":"string"},"accountUrl":{"type":"string"},"orgID":{"type":"string"},"orgName":{"type":"string"},"active":{"type":"boolean"}},"required":["accountID","accountEmail","accountUrl","orgID","orgName","active"],"additionalProperties":false}}},"required":["orgs"],"additionalProperties":false,"description":"Switchable Console orgs"}}}},"500":{"description":"InternalServerError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/effect_HttpApiError_InternalServerError"}}}}},"description":"Get the available Console orgs across logged-in accounts, including the current active org.","summary":"List switchable Console orgs","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.experimental.console.listOrgs({\n  ...\n})"}]}},"/experimental/console/switch":{"post":{"tags":["experimental"],"operationId":"experimental.console.switchOrg","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Switch success","content":{"application/json":{"schema":{"type":"boolean","description":"Switch success"}}}}},"description":"Persist a new active Console account/org selection for the current local OpenCode state.","summary":"Switch active Console org","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"accountID":{"type":"string"},"orgID":{"type":"string"}},"required":["accountID","orgID"],"additionalProperties":false}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.experimental.console.switchOrg({\n  ...\n})"}]}},"/experimental/tool":{"get":{"tags":["experimental"],"operationId":"tool.list","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false},{"name":"provider","in":"query","schema":{"type":"string"},"required":true},{"name":"model","in":"query","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Tools","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolList"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"description":"Get a list of available tools with their JSON schema parameters for a specific provider and model combination.","summary":"List tools","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tool.list({\n  ...\n})"}]}},"/experimental/tool/ids":{"get":{"tags":["experimental"],"operationId":"tool.ids","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Tool IDs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolIDs"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"description":"Get a list of all available tool IDs, including both built-in tools and dynamically registered tools.","summary":"List tool IDs","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tool.ids({\n  ...\n})"}]}},"/experimental/worktree":{"get":{"tags":["experimental"],"operationId":"worktree.list","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"List of worktree directories","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"description":"List of worktree directories"}}}},"400":{"description":"WorktreeError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorktreeError"}}}}},"description":"List all sandbox worktrees for the current project.","summary":"List worktrees","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.worktree.list({\n  ...\n})"}]},"post":{"tags":["experimental"],"operationId":"worktree.create","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Worktree created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Worktree"}}}},"400":{"description":"WorktreeError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorktreeError"}}}}},"description":"Create a new git worktree for the current project and run any configured startup scripts.","summary":"Create worktree","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorktreeCreateInput"}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.worktree.create({\n  ...\n})"}]},"delete":{"tags":["experimental"],"operationId":"worktree.remove","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Worktree removed","content":{"application/json":{"schema":{"type":"boolean","description":"Worktree removed"}}}},"400":{"description":"WorktreeError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorktreeError"}}}}},"description":"Remove a git worktree and delete its branch.","summary":"Remove worktree","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorktreeRemoveInput"}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.worktree.remove({\n  ...\n})"}]}},"/experimental/worktree/reset":{"post":{"tags":["experimental"],"operationId":"worktree.reset","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Worktree reset","content":{"application/json":{"schema":{"type":"boolean","description":"Worktree reset"}}}},"400":{"description":"WorktreeError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorktreeError"}}}}},"description":"Reset a worktree branch to the primary default branch.","summary":"Reset worktree","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorktreeResetInput"}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.worktree.reset({\n  ...\n})"}]}},"/experimental/session":{"get":{"tags":["experimental"],"operationId":"experimental.session.list","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false},{"name":"roots","in":"query","schema":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}]},"required":false},{"name":"start","in":"query","schema":{"type":"number"},"required":false},{"name":"cursor","in":"query","schema":{"type":"number"},"required":false},{"name":"search","in":"query","schema":{"type":"string"},"required":false},{"name":"limit","in":"query","schema":{"type":"number"},"required":false},{"name":"archived","in":"query","schema":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}]},"required":false}],"responses":{"200":{"description":"List of sessions","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GlobalSession"},"description":"List of sessions"}}}}},"description":"Get a list of all OpenCode sessions across projects, sorted by most recently updated. Archived sessions are excluded by default.","summary":"List sessions","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.experimental.session.list({\n  ...\n})"}]}},"/experimental/resource":{"get":{"tags":["experimental"],"operationId":"experimental.resource.list","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"MCP resources","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/McpResource"},"description":"MCP resources"}}}}},"description":"Get all available MCP resources from connected servers. Optionally filter by name.","summary":"Get MCP resources","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.experimental.resource.list({\n  ...\n})"}]}},"/find":{"get":{"tags":["file"],"operationId":"find.text","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false},{"name":"pattern","in":"query","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Matches","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"path":{"type":"object","properties":{"text":{"type":"string"}},"required":["text"],"additionalProperties":false},"lines":{"type":"object","properties":{"text":{"type":"string"}},"required":["text"],"additionalProperties":false},"line_number":{"type":"integer","minimum":0},"absolute_offset":{"type":"integer","minimum":0},"submatches":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"text":{"type":"string"}},"required":["text"],"additionalProperties":false},"start":{"type":"integer","minimum":0},"end":{"type":"integer","minimum":0}},"required":["match","start","end"],"additionalProperties":false}}},"required":["path","lines","line_number","absolute_offset","submatches"],"additionalProperties":false},"description":"Matches"}}}}},"description":"Search for text patterns across files in the project using ripgrep.","summary":"Find text","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.find.text({\n  ...\n})"}]}},"/find/file":{"get":{"tags":["file"],"operationId":"find.files","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false},{"name":"query","in":"query","schema":{"type":"string"},"required":true},{"name":"dirs","in":"query","schema":{"type":"string","enum":["true","false"]},"required":false},{"name":"type","in":"query","schema":{"type":"string","enum":["file","directory"]},"required":false},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200},"required":false}],"responses":{"200":{"description":"File paths","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"description":"File paths"}}}}},"description":"Search for files or directories by name or pattern in the project directory.","summary":"Find files","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.find.files({\n  ...\n})"}]}},"/find/symbol":{"get":{"tags":["file"],"operationId":"find.symbols","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false},{"name":"query","in":"query","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Symbols","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Symbol"},"description":"Symbols"}}}}},"description":"Search for workspace symbols like functions, classes, and variables using LSP.","summary":"Find symbols","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.find.symbols({\n  ...\n})"}]}},"/file":{"get":{"tags":["file"],"operationId":"file.list","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false},{"name":"path","in":"query","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Files and directories","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FileNode"},"description":"Files and directories"}}}}},"description":"List files and directories in a specified path.","summary":"List files","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.file.list({\n  ...\n})"}]}},"/file/content":{"get":{"tags":["file"],"operationId":"file.read","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false},{"name":"path","in":"query","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"File content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileContent"}}}}},"description":"Read the content of a specified file.","summary":"Read file","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.file.read({\n  ...\n})"}]}},"/file/status":{"get":{"tags":["file"],"operationId":"file.status","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"File status","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/File"},"description":"File status"}}}}},"description":"Get the git status of all files in the project.","summary":"Get file status","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.file.status({\n  ...\n})"}]}},"/instance/dispose":{"post":{"tags":["instance"],"operationId":"instance.dispose","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Instance disposed","content":{"application/json":{"schema":{"type":"boolean","description":"Instance disposed"}}}}},"description":"Clean up and dispose the current OpenCode instance, releasing all resources.","summary":"Dispose instance","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.instance.dispose({\n  ...\n})"}]}},"/path":{"get":{"tags":["instance"],"operationId":"path.get","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Path"}}}}},"description":"Retrieve the current working directory and related path information for the OpenCode instance.","summary":"Get paths","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.path.get({\n  ...\n})"}]}},"/vcs":{"get":{"tags":["instance"],"operationId":"vcs.get","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"VCS info","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsInfo"}}}}},"description":"Retrieve version control system (VCS) information for the current project, such as git branch.","summary":"Get VCS info","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.vcs.get({\n  ...\n})"}]}},"/vcs/status":{"get":{"tags":["instance"],"operationId":"vcs.status","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"VCS status","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/VcsFileStatus"},"description":"VCS status"}}}}},"description":"Retrieve changed files in the current working tree without patches.","summary":"Get VCS status","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.vcs.status({\n  ...\n})"}]}},"/vcs/diff":{"get":{"tags":["instance"],"operationId":"vcs.diff","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false},{"name":"mode","in":"query","schema":{"type":"string","enum":["git","branch"]},"required":true}],"responses":{"200":{"description":"VCS diff","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/VcsFileDiff"},"description":"VCS diff"}}}}},"description":"Retrieve the current git diff for the working tree or against the default branch.","summary":"Get VCS diff","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.vcs.diff({\n  ...\n})"}]}},"/vcs/diff/raw":{"get":{"tags":["instance"],"operationId":"vcs.diff.raw","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Raw VCS diff","content":{"text/x-diff; charset=utf-8":{"schema":{"type":"string"}}}}},"description":"Retrieve a raw patch for current uncommitted changes.","summary":"Get raw VCS diff","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.vcs.diff.raw({\n  ...\n})"}]}},"/vcs/apply":{"post":{"tags":["instance"],"operationId":"vcs.apply","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"VCS patch applied","content":{"application/json":{"schema":{"type":"object","properties":{"applied":{"type":"boolean"}},"required":["applied"],"additionalProperties":false,"description":"VCS patch applied"}}}},"400":{"description":"VcsApplyError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsApplyError"}}}}},"description":"Apply a raw patch to the current working tree.","summary":"Apply VCS patch","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"patch":{"type":"string"}},"required":["patch"],"additionalProperties":false}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.vcs.apply({\n  ...\n})"}]}},"/command":{"get":{"tags":["instance"],"operationId":"command.list","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"List of commands","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Command"},"description":"List of commands"}}}}},"description":"Get a list of all available commands in the OpenCode system.","summary":"List commands","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.command.list({\n  ...\n})"}]}},"/agent":{"get":{"tags":["instance"],"operationId":"app.agents","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"List of agents","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Agent"},"description":"List of agents"}}}}},"description":"Get a list of all available AI agents in the OpenCode system.","summary":"List agents","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.app.agents({\n  ...\n})"}]}},"/skill":{"get":{"tags":["instance"],"operationId":"app.skills","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"List of skills","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"location":{"type":"string"},"content":{"type":"string"}},"required":["name","location","content"],"additionalProperties":false},"description":"List of skills"}}}}},"description":"Get a list of all available skills in the OpenCode system.","summary":"List skills","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.app.skills({\n  ...\n})"}]}},"/lsp":{"get":{"tags":["instance"],"operationId":"lsp.status","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"LSP server status","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LSPStatus"},"description":"LSP server status"}}}}},"description":"Get LSP server status","summary":"Get LSP status","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.lsp.status({\n  ...\n})"}]}},"/formatter":{"get":{"tags":["instance"],"operationId":"formatter.status","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Formatter status","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FormatterStatus"},"description":"Formatter status"}}}}},"description":"Get formatter status","summary":"Get formatter status","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.formatter.status({\n  ...\n})"}]}},"/mcp":{"get":{"tags":["mcp"],"operationId":"mcp.status","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"MCP server status","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/MCPStatus"},"description":"MCP server status"}}}}},"description":"Get the status of all Model Context Protocol (MCP) servers.","summary":"Get MCP status","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.mcp.status({\n  ...\n})"}]},"post":{"tags":["mcp"],"operationId":"mcp.add","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"MCP server added successfully","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/MCPStatus"},"description":"MCP server added successfully"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"description":"Dynamically add a new Model Context Protocol (MCP) server to the system.","summary":"Add MCP server","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"config":{"anyOf":[{"$ref":"#/components/schemas/McpLocalConfig"},{"$ref":"#/components/schemas/McpRemoteConfig"}]}},"required":["name","config"],"additionalProperties":false}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.mcp.add({\n  ...\n})"}]}},"/mcp/{name}/auth":{"post":{"tags":["mcp"],"operationId":"mcp.auth.start","parameters":[{"name":"name","in":"path","schema":{"type":"string"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"OAuth flow started","content":{"application/json":{"schema":{"type":"object","properties":{"authorizationUrl":{"type":"string"},"oauthState":{"type":"string"}},"required":["authorizationUrl","oauthState"],"additionalProperties":false,"description":"OAuth flow started"}}}},"400":{"description":"McpUnsupportedOAuthError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpUnsupportedOAuthError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Start OAuth authentication flow for a Model Context Protocol (MCP) server.","summary":"Start MCP OAuth","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.mcp.auth.start({\n  ...\n})"}]},"delete":{"tags":["mcp"],"operationId":"mcp.auth.remove","parameters":[{"name":"name","in":"path","schema":{"type":"string"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"OAuth credentials removed","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]}},"required":["success"],"additionalProperties":false,"description":"OAuth credentials removed"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Remove OAuth credentials for an MCP server.","summary":"Remove MCP OAuth","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.mcp.auth.remove({\n  ...\n})"}]}},"/mcp/{name}/auth/callback":{"post":{"tags":["mcp"],"operationId":"mcp.auth.callback","parameters":[{"name":"name","in":"path","schema":{"type":"string"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"OAuth authentication completed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPStatus"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Complete OAuth authentication for a Model Context Protocol (MCP) server using the authorization code.","summary":"Complete MCP OAuth","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"}},"required":["code"],"additionalProperties":false}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.mcp.auth.callback({\n  ...\n})"}]}},"/mcp/{name}/auth/authenticate":{"post":{"tags":["mcp"],"operationId":"mcp.auth.authenticate","parameters":[{"name":"name","in":"path","schema":{"type":"string"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"OAuth authentication completed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPStatus"}}}},"400":{"description":"McpUnsupportedOAuthError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpUnsupportedOAuthError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Start OAuth flow and wait for callback (opens browser).","summary":"Authenticate MCP OAuth","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.mcp.auth.authenticate({\n  ...\n})"}]}},"/mcp/{name}/connect":{"post":{"tags":["mcp"],"operationId":"mcp.connect","parameters":[{"name":"name","in":"path","schema":{"type":"string"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"MCP server connected successfully","content":{"application/json":{"schema":{"type":"boolean","description":"MCP server connected successfully"}}}}},"description":"Connect an MCP server.","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.mcp.connect({\n  ...\n})"}]}},"/mcp/{name}/disconnect":{"post":{"tags":["mcp"],"operationId":"mcp.disconnect","parameters":[{"name":"name","in":"path","schema":{"type":"string"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"MCP server disconnected successfully","content":{"application/json":{"schema":{"type":"boolean","description":"MCP server disconnected successfully"}}}}},"description":"Disconnect an MCP server.","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.mcp.disconnect({\n  ...\n})"}]}},"/project":{"get":{"tags":["project"],"operationId":"project.list","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"List of projects","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Project"},"description":"List of projects"}}}}},"description":"Get a list of projects that have been opened with OpenCode.","summary":"List all projects","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.project.list({\n  ...\n})"}]}},"/project/current":{"get":{"tags":["project"],"operationId":"project.current","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Current project information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}}},"description":"Retrieve the currently active project that OpenCode is working with.","summary":"Get current project","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.project.current({\n  ...\n})"}]}},"/project/git/init":{"post":{"tags":["project"],"operationId":"project.initGit","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Project information after git initialization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}}},"description":"Create a git repository for the current project and return the refreshed project info.","summary":"Initialize git repository","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.project.initGit({\n  ...\n})"}]}},"/project/{projectID}":{"patch":{"tags":["project"],"operationId":"project.update","parameters":[{"name":"projectID","in":"path","schema":{"type":"string"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Updated project information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Update project properties such as name, icon, and commands.","summary":"Update project","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"icon":{"type":"object","properties":{"url":{"type":"string"},"override":{"type":"string"},"color":{"type":"string"}},"additionalProperties":false},"commands":{"type":"object","properties":{"start":{"type":"string","description":"Startup script to run when creating a new workspace (worktree)"}},"additionalProperties":false}},"additionalProperties":false}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.project.update({\n  ...\n})"}]}},"/pty/shells":{"get":{"tags":["pty"],"operationId":"pty.shells","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"List of shells","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"name":{"type":"string"},"acceptable":{"type":"boolean"}},"required":["path","name","acceptable"],"additionalProperties":false},"description":"List of shells"}}}}},"description":"Get a list of available shells on the system.","summary":"List available shells","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.pty.shells({\n  ...\n})"}]}},"/pty":{"get":{"tags":["pty"],"operationId":"pty.list","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"List of sessions","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Pty"},"description":"List of sessions"}}}}},"description":"Get a list of all active pseudo-terminal (PTY) sessions managed by OpenCode.","summary":"List PTY sessions","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.pty.list({\n  ...\n})"}]},"post":{"tags":["pty"],"operationId":"pty.create","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Created session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pty"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"description":"Create a new pseudo-terminal (PTY) session for running shell commands and processes.","summary":"Create PTY session","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"command":{"type":"string"},"args":{"type":"array","items":{"type":"string"}},"cwd":{"type":"string"},"title":{"type":"string"},"env":{"type":"object","additionalProperties":{"type":"string"}}},"additionalProperties":false}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.pty.create({\n  ...\n})"}]}},"/pty/{ptyID}":{"get":{"tags":["pty"],"operationId":"pty.get","parameters":[{"name":"ptyID","in":"path","schema":{"type":"string","pattern":"^pty"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Session info","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pty"}}}},"404":{"description":"NotFoundError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Retrieve detailed information about a specific pseudo-terminal (PTY) session.","summary":"Get PTY session","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.pty.get({\n  ...\n})"}]},"put":{"tags":["pty"],"operationId":"pty.update","parameters":[{"name":"ptyID","in":"path","schema":{"type":"string","pattern":"^pty"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Updated session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pty"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"description":"Update properties of an existing pseudo-terminal (PTY) session.","summary":"Update PTY session","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string"},"size":{"type":"object","properties":{"rows":{"type":"integer","exclusiveMinimum":0},"cols":{"type":"integer","exclusiveMinimum":0}},"required":["rows","cols"],"additionalProperties":false}},"additionalProperties":false}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.pty.update({\n  ...\n})"}]},"delete":{"tags":["pty"],"operationId":"pty.remove","parameters":[{"name":"ptyID","in":"path","schema":{"type":"string","pattern":"^pty"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Session removed","content":{"application/json":{"schema":{"type":"boolean","description":"Session removed"}}}},"404":{"description":"NotFoundError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Remove and terminate a specific pseudo-terminal (PTY) session.","summary":"Remove PTY session","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.pty.remove({\n  ...\n})"}]}},"/pty/{ptyID}/connect-token":{"post":{"tags":["pty"],"operationId":"pty.connectToken","parameters":[{"name":"ptyID","in":"path","schema":{"type":"string","pattern":"^pty"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"WebSocket connect token","content":{"application/json":{"schema":{"type":"object","properties":{"ticket":{"type":"string"},"expires_in":{"type":"integer","exclusiveMinimum":0}},"required":["ticket","expires_in"],"additionalProperties":false,"description":"WebSocket connect token"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/effect_HttpApiError_Forbidden"}}}},"404":{"description":"NotFoundError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Create a short-lived ticket for opening a PTY WebSocket connection.","summary":"Create PTY WebSocket token","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.pty.connectToken({\n  ...\n})"}]}},"/question":{"get":{"tags":["question"],"operationId":"question.list","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"List of pending questions","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/QuestionRequest"},"description":"List of pending questions"}}}}},"description":"Get all pending question requests across all sessions.","summary":"List pending questions","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.question.list({\n  ...\n})"}]}},"/question/{requestID}/reply":{"post":{"tags":["question"],"operationId":"question.reply","parameters":[{"name":"requestID","in":"path","schema":{"type":"string","pattern":"^que"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Question answered successfully","content":{"application/json":{"schema":{"type":"boolean","description":"Question answered successfully"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Provide answers to a question request from the AI assistant.","summary":"Reply to question request","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"answers":{"type":"array","items":{"$ref":"#/components/schemas/QuestionAnswer"},"description":"User answers in order of questions (each answer is an array of selected labels)"}},"required":["answers"],"additionalProperties":false}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.question.reply({\n  ...\n})"}]}},"/question/{requestID}/reject":{"post":{"tags":["question"],"operationId":"question.reject","parameters":[{"name":"requestID","in":"path","schema":{"type":"string","pattern":"^que"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Question rejected successfully","content":{"application/json":{"schema":{"type":"boolean","description":"Question rejected successfully"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Reject a question request from the AI assistant.","summary":"Reject question request","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.question.reject({\n  ...\n})"}]}},"/permission":{"get":{"tags":["permission"],"operationId":"permission.list","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"List of pending permissions","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PermissionRequest"},"description":"List of pending permissions"}}}}},"description":"Get all pending permission requests across all sessions.","summary":"List pending permissions","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.permission.list({\n  ...\n})"}]}},"/permission/{requestID}/reply":{"post":{"tags":["permission"],"operationId":"permission.reply","parameters":[{"name":"requestID","in":"path","schema":{"type":"string","pattern":"^per"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Permission processed successfully","content":{"application/json":{"schema":{"type":"boolean","description":"Permission processed successfully"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Approve or deny a permission request from the AI assistant.","summary":"Respond to permission request","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"reply":{"type":"string","enum":["once","always","reject"]},"message":{"type":"string"}},"required":["reply"],"additionalProperties":false}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.permission.reply({\n  ...\n})"}]}},"/provider":{"get":{"tags":["provider"],"operationId":"provider.list","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"List of providers","content":{"application/json":{"schema":{"type":"object","properties":{"all":{"type":"array","items":{"$ref":"#/components/schemas/Provider"}},"default":{"type":"object","additionalProperties":{"type":"string"}},"connected":{"type":"array","items":{"type":"string"}}},"required":["all","default","connected"],"additionalProperties":false,"description":"List of providers"}}}}},"description":"Get a list of all available AI providers, including both available and connected ones.","summary":"List providers","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.provider.list({\n  ...\n})"}]}},"/provider/auth":{"get":{"tags":["provider"],"operationId":"provider.auth","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Provider auth methods","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/ProviderAuthMethod"}},"description":"Provider auth methods"}}}}},"description":"Retrieve available authentication methods for all AI providers.","summary":"Get provider auth methods","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.provider.auth({\n  ...\n})"}]}},"/provider/{providerID}/oauth/authorize":{"post":{"tags":["provider"],"operationId":"provider.oauth.authorize","parameters":[{"name":"providerID","in":"path","schema":{"type":"string"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Authorization URL and method","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderAuthAuthorization"}}}},"400":{"description":"ProviderAuthError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderAuthError1"}}}}},"description":"Start the OAuth authorization flow for a provider.","summary":"Start OAuth authorization","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"method":{"type":"number","description":"Auth method index"},"inputs":{"type":"object","additionalProperties":{"type":"string"}}},"required":["method"],"additionalProperties":false}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.provider.oauth.authorize({\n  ...\n})"}]}},"/provider/{providerID}/oauth/callback":{"post":{"tags":["provider"],"operationId":"provider.oauth.callback","parameters":[{"name":"providerID","in":"path","schema":{"type":"string"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"OAuth callback processed successfully","content":{"application/json":{"schema":{"type":"boolean","description":"OAuth callback processed successfully"}}}},"400":{"description":"ProviderAuthError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderAuthError1"}}}}},"description":"Handle the OAuth callback from a provider after user authorization.","summary":"Handle OAuth callback","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"method":{"type":"number","description":"Auth method index"},"code":{"type":"string"}},"required":["method"],"additionalProperties":false}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.provider.oauth.callback({\n  ...\n})"}]}},"/session":{"get":{"tags":["session"],"operationId":"session.list","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false},{"name":"scope","in":"query","schema":{"type":"string","enum":["project"]},"required":false},{"name":"path","in":"query","schema":{"type":"string"},"required":false},{"name":"roots","in":"query","schema":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}]},"required":false},{"name":"start","in":"query","schema":{"type":"number"},"required":false},{"name":"search","in":"query","schema":{"type":"string"},"required":false},{"name":"limit","in":"query","schema":{"type":"number"},"required":false}],"responses":{"200":{"description":"List of sessions","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Session"},"description":"List of sessions"}}}}},"description":"Get a list of all OpenCode sessions, sorted by most recently updated.","summary":"List sessions","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.list({\n  ...\n})"}]},"post":{"tags":["session"],"operationId":"session.create","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Successfully created session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Session"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"description":"Create a new OpenCode session for interacting with AI assistants and managing conversations.","summary":"Create session","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"parentID":{"type":"string","pattern":"^ses"},"title":{"type":"string"},"agent":{"type":"string"},"model":{"type":"object","properties":{"id":{"type":"string"},"providerID":{"type":"string"},"variant":{"type":"string"}},"required":["id","providerID"],"additionalProperties":false},"permission":{"$ref":"#/components/schemas/PermissionRuleset"},"workspaceID":{"type":"string","pattern":"^wrk"}},"additionalProperties":false}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.create({\n  ...\n})"}]}},"/session/status":{"get":{"tags":["session"],"operationId":"session.status","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Get session status","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/SessionStatus"},"description":"Get session status"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"description":"Retrieve the current status of all sessions, including active, idle, and completed states.","summary":"Get session status","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.status({\n  ...\n})"}]}},"/session/{sessionID}":{"get":{"tags":["session"],"operationId":"session.get","parameters":[{"name":"sessionID","in":"path","schema":{"type":"string","pattern":"^ses"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Get session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Session"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"NotFoundError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Retrieve detailed information about a specific OpenCode session.","summary":"Get session","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.get({\n  ...\n})"}]},"delete":{"tags":["session"],"operationId":"session.delete","parameters":[{"name":"sessionID","in":"path","schema":{"type":"string","pattern":"^ses"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Successfully deleted session","content":{"application/json":{"schema":{"type":"boolean","description":"Successfully deleted session"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"NotFoundError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Delete a session and permanently remove all associated data, including messages and history.","summary":"Delete session","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.delete({\n  ...\n})"}]},"patch":{"tags":["session"],"operationId":"session.update","parameters":[{"name":"sessionID","in":"path","schema":{"type":"string","pattern":"^ses"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Successfully updated session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Session"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"NotFoundError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Update properties of an existing session, such as title or other metadata.","summary":"Update session","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string"},"permission":{"$ref":"#/components/schemas/PermissionRuleset"},"time":{"type":"object","properties":{"archived":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.update({\n  ...\n})"}]}},"/session/{sessionID}/children":{"get":{"tags":["session"],"operationId":"session.children","parameters":[{"name":"sessionID","in":"path","schema":{"type":"string","pattern":"^ses"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"List of children","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Session"},"description":"List of children"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"NotFoundError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Retrieve all child sessions that were forked from the specified parent session.","summary":"Get session children","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.children({\n  ...\n})"}]}},"/session/{sessionID}/todo":{"get":{"tags":["session"],"operationId":"session.todo","parameters":[{"name":"sessionID","in":"path","schema":{"type":"string","pattern":"^ses"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Todo list","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Todo"},"description":"Todo list"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"NotFoundError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Retrieve the todo list associated with a specific session, showing tasks and action items.","summary":"Get session todos","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.todo({\n  ...\n})"}]}},"/session/{sessionID}/diff":{"get":{"tags":["session"],"operationId":"session.diff","parameters":[{"name":"sessionID","in":"path","schema":{"type":"string","pattern":"^ses"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false},{"name":"messageID","in":"query","schema":{"type":"string","pattern":"^msg"},"required":false}],"responses":{"200":{"description":"Successfully retrieved diff","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SnapshotFileDiff"},"description":"Successfully retrieved diff"}}}}},"description":"Get the file changes (diff) that resulted from a specific user message in the session.","summary":"Get message diff","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.diff({\n  ...\n})"}]}},"/session/{sessionID}/message":{"get":{"tags":["session"],"operationId":"session.messages","parameters":[{"name":"sessionID","in":"path","schema":{"type":"string","pattern":"^ses"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false},{"name":"limit","in":"query","schema":{"type":"integer","minimum":0,"maximum":9007199254740991},"required":false},{"name":"before","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"List of messages","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"info":{"$ref":"#/components/schemas/Message"},"parts":{"type":"array","items":{"$ref":"#/components/schemas/Part"}}},"required":["info","parts"],"additionalProperties":false},"description":"List of messages"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"NotFoundError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Retrieve all messages in a session, including user prompts and AI responses.","summary":"Get session messages","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.messages({\n  ...\n})"}]},"post":{"tags":["session"],"operationId":"session.prompt","parameters":[{"name":"sessionID","in":"path","schema":{"type":"string","pattern":"^ses"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Created message","content":{"application/json":{"schema":{"type":"object","required":["info","parts"],"properties":{"info":{"$ref":"#/components/schemas/AssistantMessage"},"parts":{"type":"array","items":{"$ref":"#/components/schemas/Part"}}}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"NotFoundError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Create and send a new message to a session, streaming the AI response.","summary":"Send message","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"messageID":{"type":"string","pattern":"^msg"},"model":{"type":"object","properties":{"providerID":{"type":"string"},"modelID":{"type":"string"}},"required":["providerID","modelID"],"additionalProperties":false},"agent":{"type":"string"},"noReply":{"type":"boolean"},"tools":{"type":"object","additionalProperties":{"type":"boolean"}},"format":{"$ref":"#/components/schemas/OutputFormat"},"system":{"type":"string"},"variant":{"type":"string"},"parts":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/TextPartInput"},{"$ref":"#/components/schemas/FilePartInput"},{"$ref":"#/components/schemas/AgentPartInput"},{"$ref":"#/components/schemas/SubtaskPartInput"}]}}},"required":["parts"],"additionalProperties":false}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.prompt({\n  ...\n})"}]}},"/session/{sessionID}/message/{messageID}":{"get":{"tags":["session"],"operationId":"session.message","parameters":[{"name":"sessionID","in":"path","schema":{"type":"string","pattern":"^ses"},"required":true},{"name":"messageID","in":"path","schema":{"type":"string","pattern":"^msg"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Message","content":{"application/json":{"schema":{"type":"object","properties":{"info":{"$ref":"#/components/schemas/Message"},"parts":{"type":"array","items":{"$ref":"#/components/schemas/Part"}}},"required":["info","parts"],"additionalProperties":false,"description":"Message"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"NotFoundError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Retrieve a specific message from a session by its message ID.","summary":"Get message","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.message({\n  ...\n})"}]},"delete":{"tags":["session"],"operationId":"session.deleteMessage","parameters":[{"name":"sessionID","in":"path","schema":{"type":"string","pattern":"^ses"},"required":true},{"name":"messageID","in":"path","schema":{"type":"string","pattern":"^msg"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Successfully deleted message","content":{"application/json":{"schema":{"type":"boolean","description":"Successfully deleted message"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"NotFoundError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Permanently delete a specific message and all of its parts from a session without reverting file changes.","summary":"Delete message","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.deleteMessage({\n  ...\n})"}]}},"/session/{sessionID}/fork":{"post":{"tags":["session"],"operationId":"session.fork","parameters":[{"name":"sessionID","in":"path","schema":{"type":"string","pattern":"^ses"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Session"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"NotFoundError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Create a new session by forking an existing session at a specific message point.","summary":"Fork session","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"messageID":{"type":"string","pattern":"^msg"}},"additionalProperties":false}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.fork({\n  ...\n})"}]}},"/session/{sessionID}/abort":{"post":{"tags":["session"],"operationId":"session.abort","parameters":[{"name":"sessionID","in":"path","schema":{"type":"string","pattern":"^ses"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Aborted session","content":{"application/json":{"schema":{"type":"boolean","description":"Aborted session"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"description":"Abort an active session and stop any ongoing AI processing or command execution.","summary":"Abort session","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.abort({\n  ...\n})"}]}},"/session/{sessionID}/init":{"post":{"tags":["session"],"operationId":"session.init","parameters":[{"name":"sessionID","in":"path","schema":{"type":"string","pattern":"^ses"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"200","content":{"application/json":{"schema":{"type":"boolean","description":"200"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"NotFoundError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Analyze the current application and create an AGENTS.md file with project-specific agent configurations.","summary":"Initialize session","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"modelID":{"type":"string"},"providerID":{"type":"string"},"messageID":{"type":"string","pattern":"^msg"}},"required":["modelID","providerID","messageID"],"additionalProperties":false}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.init({\n  ...\n})"}]}},"/session/{sessionID}/share":{"post":{"tags":["session"],"operationId":"session.share","parameters":[{"name":"sessionID","in":"path","schema":{"type":"string","pattern":"^ses"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Successfully shared session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Session"}}}},"404":{"description":"NotFoundError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}},"500":{"description":"InternalServerError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/effect_HttpApiError_InternalServerError"}}}}},"description":"Create a shareable link for a session, allowing others to view the conversation.","summary":"Share session","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.share({\n  ...\n})"}]},"delete":{"tags":["session"],"operationId":"session.unshare","parameters":[{"name":"sessionID","in":"path","schema":{"type":"string","pattern":"^ses"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Successfully unshared session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Session"}}}},"404":{"description":"NotFoundError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}},"500":{"description":"InternalServerError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/effect_HttpApiError_InternalServerError"}}}}},"description":"Remove the shareable link for a session, making it private again.","summary":"Unshare session","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.unshare({\n  ...\n})"}]}},"/session/{sessionID}/summarize":{"post":{"tags":["session"],"operationId":"session.summarize","parameters":[{"name":"sessionID","in":"path","schema":{"type":"string","pattern":"^ses"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Summarized session","content":{"application/json":{"schema":{"type":"boolean","description":"Summarized session"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"NotFoundError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Generate a concise summary of the session using AI compaction to preserve key information.","summary":"Summarize session","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"providerID":{"type":"string"},"modelID":{"type":"string"},"auto":{"type":"boolean"}},"required":["providerID","modelID"],"additionalProperties":false}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.summarize({\n  ...\n})"}]}},"/session/{sessionID}/prompt_async":{"post":{"tags":["session"],"operationId":"session.prompt_async","parameters":[{"name":"sessionID","in":"path","schema":{"type":"string","pattern":"^ses"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"204":{"description":"Prompt accepted"},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"NotFoundError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Create and send a new message to a session asynchronously, starting the session if needed and returning immediately.","summary":"Send async message","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"messageID":{"type":"string","pattern":"^msg"},"model":{"type":"object","properties":{"providerID":{"type":"string"},"modelID":{"type":"string"}},"required":["providerID","modelID"],"additionalProperties":false},"agent":{"type":"string"},"noReply":{"type":"boolean"},"tools":{"type":"object","additionalProperties":{"type":"boolean"}},"format":{"$ref":"#/components/schemas/OutputFormat"},"system":{"type":"string"},"variant":{"type":"string"},"parts":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/TextPartInput"},{"$ref":"#/components/schemas/FilePartInput"},{"$ref":"#/components/schemas/AgentPartInput"},{"$ref":"#/components/schemas/SubtaskPartInput"}]}}},"required":["parts"],"additionalProperties":false}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.prompt_async({\n  ...\n})"}]}},"/session/{sessionID}/command":{"post":{"tags":["session"],"operationId":"session.command","parameters":[{"name":"sessionID","in":"path","schema":{"type":"string","pattern":"^ses"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Created message","content":{"application/json":{"schema":{"type":"object","required":["info","parts"],"properties":{"info":{"$ref":"#/components/schemas/AssistantMessage"},"parts":{"type":"array","items":{"$ref":"#/components/schemas/Part"}}}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"NotFoundError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Send a new command to a session for execution by the AI assistant.","summary":"Send command","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"messageID":{"type":"string","pattern":"^msg"},"agent":{"type":"string"},"model":{"type":"string"},"arguments":{"type":"string"},"command":{"type":"string"},"variant":{"type":"string"},"parts":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^prt"},"type":{"type":"string","enum":["file"]},"mime":{"type":"string"},"filename":{"type":"string"},"url":{"type":"string"},"source":{"$ref":"#/components/schemas/FilePartSource"}},"required":["type","mime","url"],"additionalProperties":false}}},"required":["arguments","command"],"additionalProperties":false}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.command({\n  ...\n})"}]}},"/session/{sessionID}/shell":{"post":{"tags":["session"],"operationId":"session.shell","parameters":[{"name":"sessionID","in":"path","schema":{"type":"string","pattern":"^ses"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Created message","content":{"application/json":{"schema":{"type":"object","properties":{"info":{"$ref":"#/components/schemas/Message"},"parts":{"type":"array","items":{"$ref":"#/components/schemas/Part"}}},"required":["info","parts"],"additionalProperties":false,"description":"Created message"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"NotFoundError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Execute a shell command within the session context and return the AI's response.","summary":"Run shell command","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"messageID":{"type":"string","pattern":"^msg"},"agent":{"type":"string"},"model":{"type":"object","properties":{"providerID":{"type":"string"},"modelID":{"type":"string"}},"required":["providerID","modelID"],"additionalProperties":false},"command":{"type":"string"}},"required":["agent","command"],"additionalProperties":false}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.shell({\n  ...\n})"}]}},"/session/{sessionID}/revert":{"post":{"tags":["session"],"operationId":"session.revert","parameters":[{"name":"sessionID","in":"path","schema":{"type":"string","pattern":"^ses"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Updated session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Session"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"NotFoundError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Revert a specific message in a session, undoing its effects and restoring the previous state.","summary":"Revert message","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"messageID":{"type":"string","pattern":"^msg"},"partID":{"type":"string","pattern":"^prt"}},"required":["messageID"],"additionalProperties":false}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.revert({\n  ...\n})"}]}},"/session/{sessionID}/unrevert":{"post":{"tags":["session"],"operationId":"session.unrevert","parameters":[{"name":"sessionID","in":"path","schema":{"type":"string","pattern":"^ses"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Updated session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Session"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"NotFoundError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Restore all previously reverted messages in a session.","summary":"Restore reverted messages","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.unrevert({\n  ...\n})"}]}},"/session/{sessionID}/permissions/{permissionID}":{"post":{"tags":["session"],"operationId":"permission.respond","parameters":[{"name":"sessionID","in":"path","schema":{"type":"string","pattern":"^ses"},"required":true},{"name":"permissionID","in":"path","schema":{"type":"string","pattern":"^per"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Permission processed successfully","content":{"application/json":{"schema":{"type":"boolean","description":"Permission processed successfully"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"NotFoundError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Approve or deny a permission request from the AI assistant.","summary":"Respond to permission","deprecated":true,"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"string","enum":["once","always","reject"]}},"required":["response"],"additionalProperties":false}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.permission.respond({\n  ...\n})"}]}},"/session/{sessionID}/message/{messageID}/part/{partID}":{"delete":{"tags":["session"],"operationId":"part.delete","parameters":[{"name":"sessionID","in":"path","schema":{"type":"string","pattern":"^ses"},"required":true},{"name":"messageID","in":"path","schema":{"type":"string","pattern":"^msg"},"required":true},{"name":"partID","in":"path","schema":{"type":"string","pattern":"^prt"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Successfully deleted part","content":{"application/json":{"schema":{"type":"boolean","description":"Successfully deleted part"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"NotFoundError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Delete a part from a message.","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.part.delete({\n  ...\n})"}]},"patch":{"tags":["session"],"operationId":"part.update","parameters":[{"name":"sessionID","in":"path","schema":{"type":"string","pattern":"^ses"},"required":true},{"name":"messageID","in":"path","schema":{"type":"string","pattern":"^msg"},"required":true},{"name":"partID","in":"path","schema":{"type":"string","pattern":"^prt"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Successfully updated part","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Part"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"NotFoundError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Update a part in a message.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Part"}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.part.update({\n  ...\n})"}]}},"/sync/start":{"post":{"tags":["sync"],"operationId":"sync.start","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Workspace sync started","content":{"application/json":{"schema":{"type":"boolean","description":"Workspace sync started"}}}}},"description":"Start sync loops for workspaces in the current project that have active sessions.","summary":"Start workspace sync","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.sync.start({\n  ...\n})"}]}},"/sync/replay":{"post":{"tags":["sync"],"operationId":"sync.replay","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Replayed sync events","content":{"application/json":{"schema":{"type":"object","properties":{"sessionID":{"type":"string"}},"required":["sessionID"],"additionalProperties":false,"description":"Replayed sync events"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"description":"Validate and replay a complete sync event history.","summary":"Replay sync events","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"directory":{"type":"string"},"events":{"type":"array","minItems":1,"items":{"type":"object","properties":{"id":{"type":"string"},"aggregateID":{"type":"string"},"seq":{"type":"integer","minimum":0},"type":{"type":"string"},"data":{"type":"object"}},"required":["id","aggregateID","seq","type","data"],"additionalProperties":false}}},"required":["directory","events"],"additionalProperties":false}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.sync.replay({\n  ...\n})"}]}},"/sync/steal":{"post":{"tags":["sync"],"operationId":"sync.steal","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Session stolen into workspace","content":{"application/json":{"schema":{"type":"object","properties":{"sessionID":{"type":"string","pattern":"^ses"}},"required":["sessionID"],"additionalProperties":false,"description":"Session stolen into workspace"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"description":"Update a session to belong to the current workspace through the sync event system.","summary":"Steal session into workspace","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"sessionID":{"type":"string","pattern":"^ses"}},"required":["sessionID"],"additionalProperties":false}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.sync.steal({\n  ...\n})"}]}},"/sync/history":{"post":{"tags":["sync"],"operationId":"sync.history.list","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Sync events","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"aggregate_id":{"type":"string"},"seq":{"type":"integer","minimum":0},"type":{"type":"string"},"data":{"type":"object"}},"required":["id","aggregate_id","seq","type","data"],"additionalProperties":false},"description":"Sync events"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"description":"List sync events for all aggregates. Keys are aggregate IDs the client already knows about, values are the last known sequence ID. Events with seq > value are returned for those aggregates. Aggregates not listed in the input get their full history.","summary":"List sync events","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"integer","minimum":0}}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.sync.history.list({\n  ...\n})"}]}},"/api/session":{"get":{"tags":["v2"],"operationId":"v2.session.list","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false},{"name":"limit","in":"query","schema":{"type":"number"},"required":false},{"name":"order","in":"query","schema":{"type":"string","enum":["asc","desc"]},"required":false},{"name":"path","in":"query","schema":{"type":"string"},"required":false},{"name":"roots","in":"query","schema":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}]},"required":false},{"name":"start","in":"query","schema":{"type":"number"},"required":false},{"name":"search","in":"query","schema":{"type":"string"},"required":false},{"name":"cursor","in":"query","schema":{"type":"string","description":"Opaque pagination cursor returned as cursor.previous or cursor.next in the previous response. Do not combine with order or filters."},"required":false}],"responses":{"200":{"description":"V2SessionsResponse","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V2SessionsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"description":"Retrieve sessions in the requested order. Items keep that order across pages; use cursor.next or cursor.previous to move through the ordered list.","summary":"List v2 sessions","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.v2.session.list({\n  ...\n})"}]}},"/api/session/{sessionID}/prompt":{"post":{"tags":["v2"],"operationId":"v2.session.prompt","parameters":[{"name":"sessionID","in":"path","schema":{"type":"string","pattern":"^ses"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Session.Message","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionMessage"}}}}},"description":"Create a v2 session message and queue it for the agent loop.","summary":"Send v2 message","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"$ref":"#/components/schemas/Prompt"},"delivery":{"$ref":"#/components/schemas/SessionDelivery"}},"required":["prompt"],"additionalProperties":false}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.v2.session.prompt({\n  ...\n})"}]}},"/api/session/{sessionID}/compact":{"post":{"tags":["v2"],"operationId":"v2.session.compact","parameters":[{"name":"sessionID","in":"path","schema":{"type":"string","pattern":"^ses"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"204":{"description":"<No Content>"}},"description":"Compact a v2 session conversation.","summary":"Compact v2 session","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.v2.session.compact({\n  ...\n})"}]}},"/api/session/{sessionID}/wait":{"post":{"tags":["v2"],"operationId":"v2.session.wait","parameters":[{"name":"sessionID","in":"path","schema":{"type":"string","pattern":"^ses"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"204":{"description":"<No Content>"}},"description":"Wait for a v2 session agent loop to become idle.","summary":"Wait for v2 session","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.v2.session.wait({\n  ...\n})"}]}},"/api/session/{sessionID}/context":{"get":{"tags":["v2"],"operationId":"v2.session.context","parameters":[{"name":"sessionID","in":"path","schema":{"type":"string","pattern":"^ses"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SessionMessage"}}}}}},"description":"Retrieve the active context messages for a v2 session (all messages after the last compaction).","summary":"Get v2 session context","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.v2.session.context({\n  ...\n})"}]}},"/api/session/{sessionID}/message":{"get":{"tags":["v2 messages"],"operationId":"v2.session.messages","parameters":[{"name":"sessionID","in":"path","schema":{"type":"string","pattern":"^ses"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false},{"name":"limit","in":"query","schema":{"type":"number"},"required":false},{"name":"order","in":"query","schema":{"type":"string","enum":["asc","desc"]},"required":false},{"name":"cursor","in":"query","schema":{"type":"string","description":"Opaque pagination cursor returned as cursor.previous or cursor.next in the previous response. Do not combine with order."},"required":false}],"responses":{"200":{"description":"V2SessionMessagesResponse","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V2SessionMessagesResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"description":"Retrieve projected v2 messages for a session. Items keep the requested order across pages; use cursor.next or cursor.previous to move through the ordered timeline.","summary":"Get v2 session messages","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.v2.session.messages({\n  ...\n})"}]}},"/api/model":{"get":{"tags":["v2 models"],"operationId":"v2.model.list","parameters":[{"name":"location","in":"query","schema":{"type":"object","properties":{"directory":{"type":"string"},"workspace":{"type":"string"}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ModelV2Info"}}}}}},"description":"Retrieve available v2 models ordered by release date.","summary":"List v2 models","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.v2.model.list({\n  ...\n})"}]}},"/api/provider":{"get":{"tags":["v2 providers"],"operationId":"v2.provider.list","parameters":[{"name":"location","in":"query","schema":{"type":"object","properties":{"directory":{"type":"string"},"workspace":{"type":"string"}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ProviderV2Info"}}}}}},"description":"Retrieve active v2 AI providers so clients can show provider availability and configuration.","summary":"List v2 providers","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.v2.provider.list({\n  ...\n})"}]}},"/api/provider/{providerID}":{"get":{"tags":["v2 providers"],"operationId":"v2.provider.get","parameters":[{"name":"providerID","in":"path","schema":{"type":"string"},"required":true},{"name":"location","in":"query","schema":{"type":"object","properties":{"directory":{"type":"string"},"workspace":{"type":"string"}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"ProviderV2.Info","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderV2Info"}}}},"404":{"description":"NotFoundError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Retrieve a single v2 AI provider so clients can inspect its availability and endpoint settings.","summary":"Get v2 provider","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.v2.provider.get({\n  ...\n})"}]}},"/tui/append-prompt":{"post":{"tags":["tui"],"operationId":"tui.appendPrompt","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Prompt processed successfully","content":{"application/json":{"schema":{"type":"boolean","description":"Prompt processed successfully"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"description":"Append prompt to the TUI.","summary":"Append TUI prompt","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"}},"required":["text"],"additionalProperties":false}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.appendPrompt({\n  ...\n})"}]}},"/tui/open-help":{"post":{"tags":["tui"],"operationId":"tui.openHelp","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Help dialog opened successfully","content":{"application/json":{"schema":{"type":"boolean","description":"Help dialog opened successfully"}}}}},"description":"Open the help dialog in the TUI to display user assistance information.","summary":"Open help dialog","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.openHelp({\n  ...\n})"}]}},"/tui/open-sessions":{"post":{"tags":["tui"],"operationId":"tui.openSessions","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Session dialog opened successfully","content":{"application/json":{"schema":{"type":"boolean","description":"Session dialog opened successfully"}}}}},"description":"Open the session dialog.","summary":"Open sessions dialog","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.openSessions({\n  ...\n})"}]}},"/tui/open-themes":{"post":{"tags":["tui"],"operationId":"tui.openThemes","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Theme dialog opened successfully","content":{"application/json":{"schema":{"type":"boolean","description":"Theme dialog opened successfully"}}}}},"description":"Open the theme dialog.","summary":"Open themes dialog","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.openThemes({\n  ...\n})"}]}},"/tui/open-models":{"post":{"tags":["tui"],"operationId":"tui.openModels","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Model dialog opened successfully","content":{"application/json":{"schema":{"type":"boolean","description":"Model dialog opened successfully"}}}}},"description":"Open the model dialog.","summary":"Open models dialog","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.openModels({\n  ...\n})"}]}},"/tui/submit-prompt":{"post":{"tags":["tui"],"operationId":"tui.submitPrompt","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Prompt submitted successfully","content":{"application/json":{"schema":{"type":"boolean","description":"Prompt submitted successfully"}}}}},"description":"Submit the prompt.","summary":"Submit TUI prompt","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.submitPrompt({\n  ...\n})"}]}},"/tui/clear-prompt":{"post":{"tags":["tui"],"operationId":"tui.clearPrompt","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Prompt cleared successfully","content":{"application/json":{"schema":{"type":"boolean","description":"Prompt cleared successfully"}}}}},"description":"Clear the prompt.","summary":"Clear TUI prompt","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.clearPrompt({\n  ...\n})"}]}},"/tui/execute-command":{"post":{"tags":["tui"],"operationId":"tui.executeCommand","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Command executed successfully","content":{"application/json":{"schema":{"type":"boolean","description":"Command executed successfully"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"description":"Execute a TUI command.","summary":"Execute TUI command","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"command":{"type":"string"}},"required":["command"],"additionalProperties":false}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.executeCommand({\n  ...\n})"}]}},"/tui/show-toast":{"post":{"tags":["tui"],"operationId":"tui.showToast","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Toast notification shown successfully","content":{"application/json":{"schema":{"type":"boolean","description":"Toast notification shown successfully"}}}}},"description":"Show a toast notification in the TUI.","summary":"Show TUI toast","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string"},"message":{"type":"string"},"variant":{"type":"string","enum":["info","success","warning","error"]},"duration":{"type":"integer","exclusiveMinimum":0}},"required":["message","variant"],"additionalProperties":false}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.showToast({\n  ...\n})"}]}},"/tui/publish":{"post":{"tags":["tui"],"operationId":"tui.publish","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Event published successfully","content":{"application/json":{"schema":{"type":"boolean","description":"Event published successfully"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"description":"Publish a TUI event.","summary":"Publish TUI event","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/EventTuiPromptAppend"},{"$ref":"#/components/schemas/EventTuiCommandExecute"},{"$ref":"#/components/schemas/EventTuiToastShow"},{"$ref":"#/components/schemas/EventTuiSessionSelect"}]}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.publish({\n  ...\n})"}]}},"/tui/select-session":{"post":{"tags":["tui"],"operationId":"tui.selectSession","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Session selected successfully","content":{"application/json":{"schema":{"type":"boolean","description":"Session selected successfully"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"NotFoundError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Navigate the TUI to display the specified session.","summary":"Select session","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"sessionID":{"type":"string","pattern":"^ses","description":"Session ID to navigate to"}},"required":["sessionID"],"additionalProperties":false}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.selectSession({\n  ...\n})"}]}},"/tui/control/next":{"get":{"tags":["tui"],"operationId":"tui.control.next","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Next TUI request","content":{"application/json":{"schema":{"type":"object","properties":{"path":{"type":"string"},"body":{}},"required":["path","body"],"additionalProperties":false,"description":"Next TUI request"}}}}},"description":"Retrieve the next TUI request from the queue for processing.","summary":"Get next TUI request","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.control.next({\n  ...\n})"}]}},"/tui/control/response":{"post":{"tags":["tui"],"operationId":"tui.control.response","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Response submitted successfully","content":{"application/json":{"schema":{"type":"boolean","description":"Response submitted successfully"}}}}},"description":"Submit a response to the TUI request queue to complete a pending request.","summary":"Submit TUI response","requestBody":{"content":{"application/json":{"schema":{}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.control.response({\n  ...\n})"}]}},"/experimental/workspace/adapter":{"get":{"tags":["workspace"],"operationId":"experimental.workspace.adapter.list","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Workspace adapters","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"}},"required":["type","name","description"],"additionalProperties":false},"description":"Workspace adapters"}}}}},"description":"List all available workspace adapters for the current project.","summary":"List workspace adapters","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.experimental.workspace.adapter.list({\n  ...\n})"}]}},"/experimental/workspace":{"get":{"tags":["workspace"],"operationId":"experimental.workspace.list","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Workspaces","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Workspace"},"description":"Workspaces"}}}}},"description":"List all workspaces.","summary":"List workspaces","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.experimental.workspace.list({\n  ...\n})"}]},"post":{"tags":["workspace"],"operationId":"experimental.workspace.create","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Workspace created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workspace"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"description":"Create a workspace for the current project.","summary":"Create workspace","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^wrk"},"type":{"type":"string"},"branch":{"anyOf":[{"type":"string"},{"type":"null"}]},"extra":{"anyOf":[{},{"type":"null"}]}},"required":["type"],"additionalProperties":false}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.experimental.workspace.create({\n  ...\n})"}]}},"/experimental/workspace/sync-list":{"post":{"tags":["workspace"],"operationId":"experimental.workspace.syncList","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"204":{"description":"Workspace list synced"}},"description":"Register missing workspaces returned by workspace adapters.","summary":"Sync workspace list","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.experimental.workspace.syncList({\n  ...\n})"}]}},"/experimental/workspace/status":{"get":{"tags":["workspace"],"operationId":"experimental.workspace.status","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Workspace status","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"workspaceID":{"type":"string","pattern":"^wrk"},"status":{"type":"string","enum":["connected","connecting","disconnected","error"]}},"required":["workspaceID","status"],"additionalProperties":false},"description":"Workspace status"}}}}},"description":"Get connection status for workspaces in the current project.","summary":"Workspace status","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.experimental.workspace.status({\n  ...\n})"}]}},"/experimental/workspace/{id}":{"delete":{"tags":["workspace"],"operationId":"experimental.workspace.remove","parameters":[{"name":"id","in":"path","schema":{"type":"string","pattern":"^wrk"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Workspace removed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workspace"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"description":"Remove an existing workspace.","summary":"Remove workspace","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.experimental.workspace.remove({\n  ...\n})"}]}},"/experimental/workspace/warp":{"post":{"tags":["workspace"],"operationId":"experimental.workspace.warp","parameters":[{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"204":{"description":"Session warped"},"400":{"description":"WorkspaceWarpError | VcsApplyError","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/WorkspaceWarpError"},{"$ref":"#/components/schemas/VcsApplyError"}]}}}}},"description":"Move a session's sync history into the target workspace, or detach it to the local project.","summary":"Warp session into workspace","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"anyOf":[{"type":"string","pattern":"^wrk"},{"type":"null"}]},"sessionID":{"type":"string","pattern":"^ses"},"copyChanges":{"type":"boolean"}},"required":["id","sessionID"],"additionalProperties":false}}}},"x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.experimental.workspace.warp({\n  ...\n})"}]}},"/pty/{ptyID}/connect":{"get":{"tags":["pty"],"operationId":"pty.connect","parameters":[{"name":"ptyID","in":"path","schema":{"type":"string","pattern":"^pty"},"required":true},{"name":"directory","in":"query","schema":{"type":"string"},"required":false},{"name":"workspace","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Connected session","content":{"application/json":{"schema":{"type":"boolean","description":"Connected session"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/effect_HttpApiError_Forbidden"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"description":"Establish a WebSocket connection to interact with a pseudo-terminal (PTY) session in real-time.","summary":"Connect to PTY session","x-codeSamples":[{"lang":"js","source":"import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.pty.connect({\n  ...\n})"}]}}},"components":{"schemas":{"Event":{"anyOf":[{"$ref":"#/components/schemas/EventServerInstanceDisposed"},{"$ref":"#/components/schemas/EventFileEdited"},{"$ref":"#/components/schemas/EventFileWatcherUpdated"},{"$ref":"#/components/schemas/EventLspClientDiagnostics"},{"$ref":"#/components/schemas/EventLspUpdated"},{"$ref":"#/components/schemas/EventMessagePartDelta"},{"$ref":"#/components/schemas/EventPermissionAsked"},{"$ref":"#/components/schemas/EventPermissionReplied"},{"$ref":"#/components/schemas/EventSessionDiff"},{"$ref":"#/components/schemas/EventSessionError"},{"$ref":"#/components/schemas/EventQuestionAsked"},{"$ref":"#/components/schemas/EventQuestionReplied"},{"$ref":"#/components/schemas/EventQuestionRejected"},{"$ref":"#/components/schemas/EventTodoUpdated"},{"$ref":"#/components/schemas/EventSessionStatus"},{"$ref":"#/components/schemas/EventSessionIdle"},{"$ref":"#/components/schemas/Event.tui.prompt.append"},{"$ref":"#/components/schemas/Event.tui.command.execute"},{"$ref":"#/components/schemas/EventTuiToastShow1"},{"$ref":"#/components/schemas/Event.tui.session.select"},{"$ref":"#/components/schemas/EventMcpToolsChanged"},{"$ref":"#/components/schemas/EventMcpBrowserOpenFailed"},{"$ref":"#/components/schemas/EventCommandExecuted"},{"$ref":"#/components/schemas/EventProjectUpdated"},{"$ref":"#/components/schemas/EventSessionCompacted"},{"$ref":"#/components/schemas/EventVcsBranchUpdated"},{"$ref":"#/components/schemas/EventWorkspaceReady"},{"$ref":"#/components/schemas/EventWorkspaceFailed"},{"$ref":"#/components/schemas/EventWorkspaceStatus"},{"$ref":"#/components/schemas/EventWorktreeReady"},{"$ref":"#/components/schemas/EventWorktreeFailed"},{"$ref":"#/components/schemas/EventPtyCreated"},{"$ref":"#/components/schemas/EventPtyUpdated"},{"$ref":"#/components/schemas/EventPtyExited"},{"$ref":"#/components/schemas/EventPtyDeleted"},{"$ref":"#/components/schemas/EventInstallationUpdated"},{"$ref":"#/components/schemas/EventInstallationUpdate-available"},{"$ref":"#/components/schemas/EventMessageUpdated"},{"$ref":"#/components/schemas/EventMessageRemoved"},{"$ref":"#/components/schemas/EventMessagePartUpdated"},{"$ref":"#/components/schemas/EventMessagePartRemoved"},{"$ref":"#/components/schemas/EventSessionCreated"},{"$ref":"#/components/schemas/EventSessionUpdated"},{"$ref":"#/components/schemas/EventSessionDeleted"},{"$ref":"#/components/schemas/EventSessionNextAgentSwitched"},{"$ref":"#/components/schemas/EventSessionNextModelSwitched"},{"$ref":"#/components/schemas/EventSessionNextPrompted"},{"$ref":"#/components/schemas/EventSessionNextSynthetic"},{"$ref":"#/components/schemas/EventSessionNextShellStarted"},{"$ref":"#/components/schemas/EventSessionNextShellEnded"},{"$ref":"#/components/schemas/EventSessionNextStepStarted"},{"$ref":"#/components/schemas/EventSessionNextStepEnded"},{"$ref":"#/components/schemas/EventSessionNextStepFailed"},{"$ref":"#/components/schemas/EventSessionNextTextStarted"},{"$ref":"#/components/schemas/EventSessionNextTextDelta"},{"$ref":"#/components/schemas/EventSessionNextTextEnded"},{"$ref":"#/components/schemas/EventSessionNextReasoningStarted"},{"$ref":"#/components/schemas/EventSessionNextReasoningDelta"},{"$ref":"#/components/schemas/EventSessionNextReasoningEnded"},{"$ref":"#/components/schemas/EventSessionNextToolInputStarted"},{"$ref":"#/components/schemas/EventSessionNextToolInputDelta"},{"$ref":"#/components/schemas/EventSessionNextToolInputEnded"},{"$ref":"#/components/schemas/EventSessionNextToolCalled"},{"$ref":"#/components/schemas/EventSessionNextToolProgress"},{"$ref":"#/components/schemas/EventSessionNextToolSuccess"},{"$ref":"#/components/schemas/EventSessionNextToolFailed"},{"$ref":"#/components/schemas/EventSessionNextRetried"},{"$ref":"#/components/schemas/EventSessionNextCompactionStarted"},{"$ref":"#/components/schemas/EventSessionNextCompactionDelta"},{"$ref":"#/components/schemas/EventSessionNextCompactionEnded"},{"$ref":"#/components/schemas/EventServerConnected"},{"$ref":"#/components/schemas/EventGlobalDisposed"},{"$ref":"#/components/schemas/EventCatalogModelUpdated"},{"$ref":"#/components/schemas/EventSessionNextAgentSwitched"},{"$ref":"#/components/schemas/EventSessionNextModelSwitched"},{"$ref":"#/components/schemas/EventSessionNextPrompted"},{"$ref":"#/components/schemas/EventSessionNextSynthetic"},{"$ref":"#/components/schemas/EventSessionNextShellStarted"},{"$ref":"#/components/schemas/EventSessionNextShellEnded"},{"$ref":"#/components/schemas/EventSessionNextStepStarted"},{"$ref":"#/components/schemas/EventSessionNextStepEnded"},{"$ref":"#/components/schemas/EventSessionNextStepFailed"},{"$ref":"#/components/schemas/EventSessionNextTextStarted"},{"$ref":"#/components/schemas/EventSessionNextTextDelta"},{"$ref":"#/components/schemas/EventSessionNextTextEnded"},{"$ref":"#/components/schemas/EventSessionNextReasoningStarted"},{"$ref":"#/components/schemas/EventSessionNextReasoningDelta"},{"$ref":"#/components/schemas/EventSessionNextReasoningEnded"},{"$ref":"#/components/schemas/EventSessionNextToolInputStarted"},{"$ref":"#/components/schemas/EventSessionNextToolInputDelta"},{"$ref":"#/components/schemas/EventSessionNextToolInputEnded"},{"$ref":"#/components/schemas/EventSessionNextToolCalled"},{"$ref":"#/components/schemas/EventSessionNextToolProgress"},{"$ref":"#/components/schemas/EventSessionNextToolSuccess"},{"$ref":"#/components/schemas/EventSessionNextToolFailed"},{"$ref":"#/components/schemas/EventSessionNextRetried"},{"$ref":"#/components/schemas/EventSessionNextCompactionStarted"},{"$ref":"#/components/schemas/EventSessionNextCompactionDelta"},{"$ref":"#/components/schemas/EventSessionNextCompactionEnded"}]},"OAuth":{"type":"object","properties":{"type":{"type":"string","enum":["oauth"]},"refresh":{"type":"string"},"access":{"type":"string"},"expires":{"type":"integer","minimum":0},"accountId":{"type":"string"},"enterpriseUrl":{"type":"string"}},"required":["type","refresh","access","expires"],"additionalProperties":false},"ApiAuth":{"type":"object","properties":{"type":{"type":"string","enum":["api"]},"key":{"type":"string"},"metadata":{"type":"object","additionalProperties":{"type":"string"}}},"required":["type","key"],"additionalProperties":false},"WellKnownAuth":{"type":"object","properties":{"type":{"type":"string","enum":["wellknown"]},"key":{"type":"string"},"token":{"type":"string"}},"required":["type","key","token"],"additionalProperties":false},"Auth":{"anyOf":[{"$ref":"#/components/schemas/OAuth"},{"$ref":"#/components/schemas/ApiAuth"},{"$ref":"#/components/schemas/WellKnownAuth"}]},"PermissionRequest":{"type":"object","properties":{"id":{"type":"string","pattern":"^per"},"sessionID":{"type":"string","pattern":"^ses"},"permission":{"type":"string"},"patterns":{"type":"array","items":{"type":"string"}},"metadata":{"type":"object"},"always":{"type":"array","items":{"type":"string"}},"tool":{"type":"object","properties":{"messageID":{"type":"string","pattern":"^msg"},"callID":{"type":"string"}},"required":["messageID","callID"],"additionalProperties":false}},"required":["id","sessionID","permission","patterns","metadata","always"],"additionalProperties":false},"SnapshotFileDiff":{"type":"object","properties":{"file":{"type":"string"},"patch":{"type":"string"},"additions":{"type":"number"},"deletions":{"type":"number"},"status":{"type":"string","enum":["added","deleted","modified"]}},"required":["additions","deletions"],"additionalProperties":false},"ProviderAuthError":{"type":"object","properties":{"name":{"type":"string","enum":["ProviderAuthError"]},"data":{"type":"object","properties":{"providerID":{"type":"string"},"message":{"type":"string"}},"required":["providerID","message"],"additionalProperties":false}},"required":["name","data"],"additionalProperties":false},"UnknownError":{"type":"object","properties":{"name":{"type":"string","enum":["UnknownError"]},"data":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}},"required":["name","data"],"additionalProperties":false},"MessageOutputLengthError":{"type":"object","properties":{"name":{"type":"string","enum":["MessageOutputLengthError"]},"data":{"type":"object","properties":{}}},"required":["name","data"],"additionalProperties":false},"MessageAbortedError":{"type":"object","properties":{"name":{"type":"string","enum":["MessageAbortedError"]},"data":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}},"required":["name","data"],"additionalProperties":false},"StructuredOutputError":{"type":"object","properties":{"name":{"type":"string","enum":["StructuredOutputError"]},"data":{"type":"object","properties":{"message":{"type":"string"},"retries":{"type":"integer","minimum":0}},"required":["message","retries"],"additionalProperties":false}},"required":["name","data"],"additionalProperties":false},"ContextOverflowError":{"type":"object","properties":{"name":{"type":"string","enum":["ContextOverflowError"]},"data":{"type":"object","properties":{"message":{"type":"string"},"responseBody":{"type":"string"}},"required":["message"],"additionalProperties":false}},"required":["name","data"],"additionalProperties":false},"APIError":{"type":"object","properties":{"name":{"type":"string","enum":["APIError"]},"data":{"type":"object","properties":{"message":{"type":"string"},"statusCode":{"type":"integer","minimum":0},"isRetryable":{"type":"boolean"},"responseHeaders":{"type":"object","additionalProperties":{"type":"string"}},"responseBody":{"type":"string"},"metadata":{"type":"object","additionalProperties":{"type":"string"}}},"required":["message","isRetryable"],"additionalProperties":false}},"required":["name","data"],"additionalProperties":false},"QuestionOption":{"type":"object","properties":{"label":{"type":"string","description":"Display text (1-5 words, concise)"},"description":{"type":"string","description":"Explanation of choice"}},"required":["label","description"],"additionalProperties":false},"QuestionInfo":{"type":"object","properties":{"question":{"type":"string","description":"Complete question"},"header":{"type":"string","description":"Very short label (max 30 chars)"},"options":{"type":"array","items":{"$ref":"#/components/schemas/QuestionOption"},"description":"Available choices"},"multiple":{"type":"boolean"},"custom":{"type":"boolean"}},"required":["question","header","options"],"additionalProperties":false},"QuestionTool":{"type":"object","properties":{"messageID":{"type":"string","pattern":"^msg"},"callID":{"type":"string"}},"required":["messageID","callID"],"additionalProperties":false},"QuestionRequest":{"type":"object","properties":{"id":{"type":"string","pattern":"^que"},"sessionID":{"type":"string","pattern":"^ses"},"questions":{"type":"array","items":{"$ref":"#/components/schemas/QuestionInfo"},"description":"Questions to ask"},"tool":{"$ref":"#/components/schemas/QuestionTool"}},"required":["id","sessionID","questions"],"additionalProperties":false},"QuestionAnswer":{"type":"array","items":{"type":"string"}},"QuestionReplied":{"type":"object","properties":{"sessionID":{"type":"string","pattern":"^ses"},"requestID":{"type":"string","pattern":"^que"},"answers":{"type":"array","items":{"$ref":"#/components/schemas/QuestionAnswer"}}},"required":["sessionID","requestID","answers"],"additionalProperties":false},"QuestionRejected":{"type":"object","properties":{"sessionID":{"type":"string","pattern":"^ses"},"requestID":{"type":"string","pattern":"^que"}},"required":["sessionID","requestID"],"additionalProperties":false},"Todo":{"type":"object","properties":{"content":{"type":"string","description":"Brief description of the task"},"status":{"type":"string","description":"Current status of the task: pending, in_progress, completed, cancelled"},"priority":{"type":"string","description":"Priority level of the task: high, medium, low"}},"required":["content","status","priority"],"additionalProperties":false},"SessionStatus":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["idle"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["retry"]},"attempt":{"type":"integer","minimum":0},"message":{"type":"string"},"action":{"type":"object","properties":{"reason":{"type":"string"},"provider":{"type":"string"},"title":{"type":"string"},"message":{"type":"string"},"label":{"type":"string"},"link":{"type":"string"}},"required":["reason","provider","title","message","label"],"additionalProperties":false},"next":{"type":"integer","minimum":0}},"required":["type","attempt","message","next"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["busy"]}},"required":["type"],"additionalProperties":false}]},"Event.tui.prompt.append":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tui.prompt.append"]},"properties":{"type":"object","properties":{"text":{"type":"string"}},"required":["text"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"Event.tui.command.execute":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tui.command.execute"]},"properties":{"type":"object","properties":{"command":{"anyOf":[{"type":"string","enum":["session.list","session.new","session.share","session.interrupt","session.compact","session.page.up","session.page.down","session.line.up","session.line.down","session.half.page.up","session.half.page.down","session.first","session.last","prompt.clear","prompt.submit","agent.cycle"]},{"type":"string"}]}},"required":["command"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"Event.tui.toast.show":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tui.toast.show"]},"properties":{"type":"object","properties":{"title":{"type":"string"},"message":{"type":"string"},"variant":{"type":"string","enum":["info","success","warning","error"]},"duration":{"type":"integer","exclusiveMinimum":0}},"required":["message","variant"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"Event.tui.session.select":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tui.session.select"]},"properties":{"type":"object","properties":{"sessionID":{"type":"string","pattern":"^ses","description":"Session ID to navigate to"}},"required":["sessionID"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"Project":{"type":"object","properties":{"id":{"type":"string"},"worktree":{"type":"string"},"vcs":{"type":"string","enum":["git"]},"name":{"type":"string"},"icon":{"type":"object","properties":{"url":{"type":"string"},"override":{"type":"string"},"color":{"type":"string"}},"additionalProperties":false},"commands":{"type":"object","properties":{"start":{"type":"string","description":"Startup script to run when creating a new workspace (worktree)"}},"additionalProperties":false},"time":{"type":"object","properties":{"created":{"type":"integer","minimum":0},"updated":{"type":"integer","minimum":0},"initialized":{"type":"integer","minimum":0}},"required":["created","updated"],"additionalProperties":false},"sandboxes":{"type":"array","items":{"type":"string"}}},"required":["id","worktree","time","sandboxes"],"additionalProperties":false},"Pty":{"type":"object","properties":{"id":{"type":"string","pattern":"^pty"},"title":{"type":"string"},"command":{"type":"string"},"args":{"type":"array","items":{"type":"string"}},"cwd":{"type":"string"},"status":{"type":"string","enum":["running","exited"]},"pid":{"type":"integer","exclusiveMinimum":0}},"required":["id","title","command","args","cwd","status","pid"],"additionalProperties":false},"OutputFormatText":{"type":"object","properties":{"type":{"type":"string","enum":["text"]}},"required":["type"],"additionalProperties":false},"JSONSchema":{"type":"object"},"OutputFormatJsonSchema":{"type":"object","properties":{"type":{"type":"string","enum":["json_schema"]},"schema":{"$ref":"#/components/schemas/JSONSchema"},"retryCount":{"type":"integer","minimum":0}},"required":["type","schema"],"additionalProperties":false},"OutputFormat":{"anyOf":[{"$ref":"#/components/schemas/OutputFormatText"},{"$ref":"#/components/schemas/OutputFormatJsonSchema"}]},"UserMessage":{"type":"object","properties":{"id":{"type":"string","pattern":"^msg"},"sessionID":{"type":"string","pattern":"^ses"},"role":{"type":"string","enum":["user"]},"time":{"type":"object","properties":{"created":{"type":"integer","minimum":0}},"required":["created"],"additionalProperties":false},"format":{"$ref":"#/components/schemas/OutputFormat"},"summary":{"type":"object","properties":{"title":{"type":"string"},"body":{"type":"string"},"diffs":{"type":"array","items":{"$ref":"#/components/schemas/SnapshotFileDiff"}}},"required":["diffs"],"additionalProperties":false},"agent":{"type":"string"},"model":{"type":"object","properties":{"providerID":{"type":"string"},"modelID":{"type":"string"},"variant":{"type":"string"}},"required":["providerID","modelID"],"additionalProperties":false},"system":{"type":"string"},"tools":{"type":"object","additionalProperties":{"type":"boolean"}}},"required":["id","sessionID","role","time","agent","model"],"additionalProperties":false},"AssistantMessage":{"type":"object","properties":{"id":{"type":"string","pattern":"^msg"},"sessionID":{"type":"string","pattern":"^ses"},"role":{"type":"string","enum":["assistant"]},"time":{"type":"object","properties":{"created":{"type":"integer","minimum":0},"completed":{"type":"integer","minimum":0}},"required":["created"],"additionalProperties":false},"error":{"anyOf":[{"$ref":"#/components/schemas/ProviderAuthError"},{"$ref":"#/components/schemas/UnknownError"},{"$ref":"#/components/schemas/MessageOutputLengthError"},{"$ref":"#/components/schemas/MessageAbortedError"},{"$ref":"#/components/schemas/StructuredOutputError"},{"$ref":"#/components/schemas/ContextOverflowError"},{"$ref":"#/components/schemas/APIError"}]},"parentID":{"type":"string","pattern":"^msg"},"modelID":{"type":"string"},"providerID":{"type":"string"},"mode":{"type":"string"},"agent":{"type":"string"},"path":{"type":"object","properties":{"cwd":{"type":"string"},"root":{"type":"string"}},"required":["cwd","root"],"additionalProperties":false},"summary":{"type":"boolean"},"cost":{"type":"number"},"tokens":{"type":"object","properties":{"total":{"type":"number"},"input":{"type":"number"},"output":{"type":"number"},"reasoning":{"type":"number"},"cache":{"type":"object","properties":{"read":{"type":"number"},"write":{"type":"number"}},"required":["read","write"],"additionalProperties":false}},"required":["input","output","reasoning","cache"],"additionalProperties":false},"structured":{},"variant":{"type":"string"},"finish":{"type":"string"}},"required":["id","sessionID","role","time","parentID","modelID","providerID","mode","agent","path","cost","tokens"],"additionalProperties":false},"Message":{"anyOf":[{"$ref":"#/components/schemas/UserMessage"},{"$ref":"#/components/schemas/AssistantMessage"}]},"TextPart":{"type":"object","properties":{"id":{"type":"string","pattern":"^prt"},"sessionID":{"type":"string","pattern":"^ses"},"messageID":{"type":"string","pattern":"^msg"},"type":{"type":"string","enum":["text"]},"text":{"type":"string"},"synthetic":{"type":"boolean"},"ignored":{"type":"boolean"},"time":{"type":"object","properties":{"start":{"type":"integer","minimum":0},"end":{"type":"integer","minimum":0}},"required":["start"],"additionalProperties":false},"metadata":{"type":"object"}},"required":["id","sessionID","messageID","type","text"],"additionalProperties":false},"SubtaskPart":{"type":"object","properties":{"id":{"type":"string","pattern":"^prt"},"sessionID":{"type":"string","pattern":"^ses"},"messageID":{"type":"string","pattern":"^msg"},"type":{"type":"string","enum":["subtask"]},"prompt":{"type":"string"},"description":{"type":"string"},"agent":{"type":"string"},"model":{"type":"object","properties":{"providerID":{"type":"string"},"modelID":{"type":"string"}},"required":["providerID","modelID"],"additionalProperties":false},"command":{"type":"string"}},"required":["id","sessionID","messageID","type","prompt","description","agent"],"additionalProperties":false},"ReasoningPart":{"type":"object","properties":{"id":{"type":"string","pattern":"^prt"},"sessionID":{"type":"string","pattern":"^ses"},"messageID":{"type":"string","pattern":"^msg"},"type":{"type":"string","enum":["reasoning"]},"text":{"type":"string"},"metadata":{"type":"object"},"time":{"type":"object","properties":{"start":{"type":"integer","minimum":0},"end":{"type":"integer","minimum":0}},"required":["start"],"additionalProperties":false}},"required":["id","sessionID","messageID","type","text","time"],"additionalProperties":false},"FilePartSourceText":{"type":"object","properties":{"value":{"type":"string"},"start":{"type":"number"},"end":{"type":"number"}},"required":["value","start","end"],"additionalProperties":false},"FileSource":{"type":"object","properties":{"text":{"$ref":"#/components/schemas/FilePartSourceText"},"type":{"type":"string","enum":["file"]},"path":{"type":"string"}},"required":["text","type","path"],"additionalProperties":false},"Range":{"type":"object","properties":{"start":{"type":"object","properties":{"line":{"type":"integer","minimum":0},"character":{"type":"integer","minimum":0}},"required":["line","character"],"additionalProperties":false},"end":{"type":"object","properties":{"line":{"type":"integer","minimum":0},"character":{"type":"integer","minimum":0}},"required":["line","character"],"additionalProperties":false}},"required":["start","end"],"additionalProperties":false},"SymbolSource":{"type":"object","properties":{"text":{"$ref":"#/components/schemas/FilePartSourceText"},"type":{"type":"string","enum":["symbol"]},"path":{"type":"string"},"range":{"$ref":"#/components/schemas/Range"},"name":{"type":"string"},"kind":{"type":"integer","minimum":0}},"required":["text","type","path","range","name","kind"],"additionalProperties":false},"ResourceSource":{"type":"object","properties":{"text":{"$ref":"#/components/schemas/FilePartSourceText"},"type":{"type":"string","enum":["resource"]},"clientName":{"type":"string"},"uri":{"type":"string"}},"required":["text","type","clientName","uri"],"additionalProperties":false},"FilePartSource":{"anyOf":[{"$ref":"#/components/schemas/FileSource"},{"$ref":"#/components/schemas/SymbolSource"},{"$ref":"#/components/schemas/ResourceSource"}]},"FilePart":{"type":"object","properties":{"id":{"type":"string","pattern":"^prt"},"sessionID":{"type":"string","pattern":"^ses"},"messageID":{"type":"string","pattern":"^msg"},"type":{"type":"string","enum":["file"]},"mime":{"type":"string"},"filename":{"type":"string"},"url":{"type":"string"},"source":{"$ref":"#/components/schemas/FilePartSource"}},"required":["id","sessionID","messageID","type","mime","url"],"additionalProperties":false},"ToolStatePending":{"type":"object","properties":{"status":{"type":"string","enum":["pending"]},"input":{"type":"object"},"raw":{"type":"string"}},"required":["status","input","raw"],"additionalProperties":false},"ToolStateRunning":{"type":"object","properties":{"status":{"type":"string","enum":["running"]},"input":{"type":"object"},"title":{"type":"string"},"metadata":{"type":"object"},"time":{"type":"object","properties":{"start":{"type":"integer","minimum":0}},"required":["start"],"additionalProperties":false}},"required":["status","input","time"],"additionalProperties":false},"ToolStateCompleted":{"type":"object","properties":{"status":{"type":"string","enum":["completed"]},"input":{"type":"object"},"output":{"type":"string"},"title":{"type":"string"},"metadata":{"type":"object"},"time":{"type":"object","properties":{"start":{"type":"integer","minimum":0},"end":{"type":"integer","minimum":0},"compacted":{"type":"integer","minimum":0}},"required":["start","end"],"additionalProperties":false},"attachments":{"type":"array","items":{"$ref":"#/components/schemas/FilePart"}}},"required":["status","input","output","title","metadata","time"],"additionalProperties":false},"ToolStateError":{"type":"object","properties":{"status":{"type":"string","enum":["error"]},"input":{"type":"object"},"error":{"type":"string"},"metadata":{"type":"object"},"time":{"type":"object","properties":{"start":{"type":"integer","minimum":0},"end":{"type":"integer","minimum":0}},"required":["start","end"],"additionalProperties":false}},"required":["status","input","error","time"],"additionalProperties":false},"ToolState":{"anyOf":[{"$ref":"#/components/schemas/ToolStatePending"},{"$ref":"#/components/schemas/ToolStateRunning"},{"$ref":"#/components/schemas/ToolStateCompleted"},{"$ref":"#/components/schemas/ToolStateError"}]},"ToolPart":{"type":"object","properties":{"id":{"type":"string","pattern":"^prt"},"sessionID":{"type":"string","pattern":"^ses"},"messageID":{"type":"string","pattern":"^msg"},"type":{"type":"string","enum":["tool"]},"callID":{"type":"string"},"tool":{"type":"string"},"state":{"$ref":"#/components/schemas/ToolState"},"metadata":{"type":"object"}},"required":["id","sessionID","messageID","type","callID","tool","state"],"additionalProperties":false},"StepStartPart":{"type":"object","properties":{"id":{"type":"string","pattern":"^prt"},"sessionID":{"type":"string","pattern":"^ses"},"messageID":{"type":"string","pattern":"^msg"},"type":{"type":"string","enum":["step-start"]},"snapshot":{"type":"string"}},"required":["id","sessionID","messageID","type"],"additionalProperties":false},"StepFinishPart":{"type":"object","properties":{"id":{"type":"string","pattern":"^prt"},"sessionID":{"type":"string","pattern":"^ses"},"messageID":{"type":"string","pattern":"^msg"},"type":{"type":"string","enum":["step-finish"]},"reason":{"type":"string"},"snapshot":{"type":"string"},"cost":{"type":"number"},"tokens":{"type":"object","properties":{"total":{"type":"number"},"input":{"type":"number"},"output":{"type":"number"},"reasoning":{"type":"number"},"cache":{"type":"object","properties":{"read":{"type":"number"},"write":{"type":"number"}},"required":["read","write"],"additionalProperties":false}},"required":["input","output","reasoning","cache"],"additionalProperties":false}},"required":["id","sessionID","messageID","type","reason","cost","tokens"],"additionalProperties":false},"SnapshotPart":{"type":"object","properties":{"id":{"type":"string","pattern":"^prt"},"sessionID":{"type":"string","pattern":"^ses"},"messageID":{"type":"string","pattern":"^msg"},"type":{"type":"string","enum":["snapshot"]},"snapshot":{"type":"string"}},"required":["id","sessionID","messageID","type","snapshot"],"additionalProperties":false},"PatchPart":{"type":"object","properties":{"id":{"type":"string","pattern":"^prt"},"sessionID":{"type":"string","pattern":"^ses"},"messageID":{"type":"string","pattern":"^msg"},"type":{"type":"string","enum":["patch"]},"hash":{"type":"string"},"files":{"type":"array","items":{"type":"string"}}},"required":["id","sessionID","messageID","type","hash","files"],"additionalProperties":false},"AgentPart":{"type":"object","properties":{"id":{"type":"string","pattern":"^prt"},"sessionID":{"type":"string","pattern":"^ses"},"messageID":{"type":"string","pattern":"^msg"},"type":{"type":"string","enum":["agent"]},"name":{"type":"string"},"source":{"type":"object","properties":{"value":{"type":"string"},"start":{"type":"integer","minimum":0},"end":{"type":"integer","minimum":0}},"required":["value","start","end"],"additionalProperties":false}},"required":["id","sessionID","messageID","type","name"],"additionalProperties":false},"RetryPart":{"type":"object","properties":{"id":{"type":"string","pattern":"^prt"},"sessionID":{"type":"string","pattern":"^ses"},"messageID":{"type":"string","pattern":"^msg"},"type":{"type":"string","enum":["retry"]},"attempt":{"type":"integer","minimum":0},"error":{"$ref":"#/components/schemas/APIError"},"time":{"type":"object","properties":{"created":{"type":"integer","minimum":0}},"required":["created"],"additionalProperties":false}},"required":["id","sessionID","messageID","type","attempt","error","time"],"additionalProperties":false},"CompactionPart":{"type":"object","properties":{"id":{"type":"string","pattern":"^prt"},"sessionID":{"type":"string","pattern":"^ses"},"messageID":{"type":"string","pattern":"^msg"},"type":{"type":"string","enum":["compaction"]},"auto":{"type":"boolean"},"overflow":{"type":"boolean"},"tail_start_id":{"type":"string","pattern":"^msg"}},"required":["id","sessionID","messageID","type","auto"],"additionalProperties":false},"Part":{"anyOf":[{"$ref":"#/components/schemas/TextPart"},{"$ref":"#/components/schemas/SubtaskPart"},{"$ref":"#/components/schemas/ReasoningPart"},{"$ref":"#/components/schemas/FilePart"},{"$ref":"#/components/schemas/ToolPart"},{"$ref":"#/components/schemas/StepStartPart"},{"$ref":"#/components/schemas/StepFinishPart"},{"$ref":"#/components/schemas/SnapshotPart"},{"$ref":"#/components/schemas/PatchPart"},{"$ref":"#/components/schemas/AgentPart"},{"$ref":"#/components/schemas/RetryPart"},{"$ref":"#/components/schemas/CompactionPart"}]},"PermissionAction":{"type":"string","enum":["allow","deny","ask"]},"PermissionRule":{"type":"object","properties":{"permission":{"type":"string"},"pattern":{"type":"string"},"action":{"$ref":"#/components/schemas/PermissionAction"}},"required":["permission","pattern","action"],"additionalProperties":false},"PermissionRuleset":{"type":"array","items":{"$ref":"#/components/schemas/PermissionRule"}},"Session":{"type":"object","properties":{"id":{"type":"string","pattern":"^ses"},"slug":{"type":"string"},"projectID":{"type":"string"},"workspaceID":{"type":"string","pattern":"^wrk"},"directory":{"type":"string"},"path":{"type":"string"},"parentID":{"type":"string","pattern":"^ses"},"summary":{"type":"object","properties":{"additions":{"type":"number"},"deletions":{"type":"number"},"files":{"type":"number"},"diffs":{"type":"array","items":{"$ref":"#/components/schemas/SnapshotFileDiff"}}},"required":["additions","deletions","files"],"additionalProperties":false},"cost":{"type":"number"},"tokens":{"type":"object","properties":{"input":{"type":"number"},"output":{"type":"number"},"reasoning":{"type":"number"},"cache":{"type":"object","properties":{"read":{"type":"number"},"write":{"type":"number"}},"required":["read","write"],"additionalProperties":false}},"required":["input","output","reasoning","cache"],"additionalProperties":false},"share":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"],"additionalProperties":false},"title":{"type":"string"},"agent":{"type":"string"},"model":{"type":"object","properties":{"id":{"type":"string"},"providerID":{"type":"string"},"variant":{"type":"string"}},"required":["id","providerID"],"additionalProperties":false},"version":{"type":"string"},"time":{"type":"object","properties":{"created":{"type":"integer","minimum":0},"updated":{"type":"integer","minimum":0},"compacting":{"type":"integer","minimum":0},"archived":{"type":"number"}},"required":["created","updated"],"additionalProperties":false},"permission":{"$ref":"#/components/schemas/PermissionRuleset"},"revert":{"type":"object","properties":{"messageID":{"type":"string","pattern":"^msg"},"partID":{"type":"string","pattern":"^prt"},"snapshot":{"type":"string"},"diff":{"type":"string"}},"required":["messageID"],"additionalProperties":false}},"required":["id","slug","projectID","directory","title","version","time"],"additionalProperties":false},"Prompt":{"type":"object","properties":{"text":{"type":"string"},"files":{"type":"array","items":{"$ref":"#/components/schemas/PromptFileAttachment"}},"agents":{"type":"array","items":{"$ref":"#/components/schemas/PromptAgentAttachment"}},"references":{"type":"array","items":{"$ref":"#/components/schemas/PromptReferenceAttachment"}}},"required":["text"],"additionalProperties":false},"GlobalEvent":{"type":"object","properties":{"directory":{"type":"string"},"project":{"type":"string"},"workspace":{"type":"string"},"payload":{"anyOf":[{"$ref":"#/components/schemas/EventServerInstanceDisposed"},{"$ref":"#/components/schemas/EventFileEdited"},{"$ref":"#/components/schemas/EventFileWatcherUpdated"},{"$ref":"#/components/schemas/EventLspClientDiagnostics"},{"$ref":"#/components/schemas/EventLspUpdated"},{"$ref":"#/components/schemas/EventMessagePartDelta"},{"$ref":"#/components/schemas/EventPermissionAsked"},{"$ref":"#/components/schemas/EventPermissionReplied"},{"$ref":"#/components/schemas/EventSessionDiff"},{"$ref":"#/components/schemas/EventSessionError"},{"$ref":"#/components/schemas/EventQuestionAsked"},{"$ref":"#/components/schemas/EventQuestionReplied"},{"$ref":"#/components/schemas/EventQuestionRejected"},{"$ref":"#/components/schemas/EventTodoUpdated"},{"$ref":"#/components/schemas/EventSessionStatus"},{"$ref":"#/components/schemas/EventSessionIdle"},{"$ref":"#/components/schemas/Event.tui.prompt.append"},{"$ref":"#/components/schemas/Event.tui.command.execute"},{"$ref":"#/components/schemas/Event.tui.toast.show"},{"$ref":"#/components/schemas/Event.tui.session.select"},{"$ref":"#/components/schemas/EventMcpToolsChanged"},{"$ref":"#/components/schemas/EventMcpBrowserOpenFailed"},{"$ref":"#/components/schemas/EventCommandExecuted"},{"$ref":"#/components/schemas/EventProjectUpdated"},{"$ref":"#/components/schemas/EventSessionCompacted"},{"$ref":"#/components/schemas/EventVcsBranchUpdated"},{"$ref":"#/components/schemas/EventWorkspaceReady"},{"$ref":"#/components/schemas/EventWorkspaceFailed"},{"$ref":"#/components/schemas/EventWorkspaceStatus"},{"$ref":"#/components/schemas/EventWorktreeReady"},{"$ref":"#/components/schemas/EventWorktreeFailed"},{"$ref":"#/components/schemas/EventPtyCreated"},{"$ref":"#/components/schemas/EventPtyUpdated"},{"$ref":"#/components/schemas/EventPtyExited"},{"$ref":"#/components/schemas/EventPtyDeleted"},{"$ref":"#/components/schemas/EventInstallationUpdated"},{"$ref":"#/components/schemas/EventInstallationUpdate-available"},{"$ref":"#/components/schemas/EventMessageUpdated"},{"$ref":"#/components/schemas/EventMessageRemoved"},{"$ref":"#/components/schemas/EventMessagePartUpdated"},{"$ref":"#/components/schemas/EventMessagePartRemoved"},{"$ref":"#/components/schemas/EventSessionCreated"},{"$ref":"#/components/schemas/EventSessionUpdated"},{"$ref":"#/components/schemas/EventSessionDeleted"},{"$ref":"#/components/schemas/EventSessionNextAgentSwitched"},{"$ref":"#/components/schemas/EventSessionNextModelSwitched"},{"$ref":"#/components/schemas/EventSessionNextPrompted"},{"$ref":"#/components/schemas/EventSessionNextSynthetic"},{"$ref":"#/components/schemas/EventSessionNextShellStarted"},{"$ref":"#/components/schemas/EventSessionNextShellEnded"},{"$ref":"#/components/schemas/EventSessionNextStepStarted"},{"$ref":"#/components/schemas/EventSessionNextStepEnded"},{"$ref":"#/components/schemas/EventSessionNextStepFailed"},{"$ref":"#/components/schemas/EventSessionNextTextStarted"},{"$ref":"#/components/schemas/EventSessionNextTextDelta"},{"$ref":"#/components/schemas/EventSessionNextTextEnded"},{"$ref":"#/components/schemas/EventSessionNextReasoningStarted"},{"$ref":"#/components/schemas/EventSessionNextReasoningDelta"},{"$ref":"#/components/schemas/EventSessionNextReasoningEnded"},{"$ref":"#/components/schemas/EventSessionNextToolInputStarted"},{"$ref":"#/components/schemas/EventSessionNextToolInputDelta"},{"$ref":"#/components/schemas/EventSessionNextToolInputEnded"},{"$ref":"#/components/schemas/EventSessionNextToolCalled"},{"$ref":"#/components/schemas/EventSessionNextToolProgress"},{"$ref":"#/components/schemas/EventSessionNextToolSuccess"},{"$ref":"#/components/schemas/EventSessionNextToolFailed"},{"$ref":"#/components/schemas/EventSessionNextRetried"},{"$ref":"#/components/schemas/EventSessionNextCompactionStarted"},{"$ref":"#/components/schemas/EventSessionNextCompactionDelta"},{"$ref":"#/components/schemas/EventSessionNextCompactionEnded"},{"$ref":"#/components/schemas/EventServerConnected"},{"$ref":"#/components/schemas/EventGlobalDisposed"},{"$ref":"#/components/schemas/EventCatalogModelUpdated"},{"$ref":"#/components/schemas/EventSessionNextAgentSwitched"},{"$ref":"#/components/schemas/EventSessionNextModelSwitched"},{"$ref":"#/components/schemas/EventSessionNextPrompted"},{"$ref":"#/components/schemas/EventSessionNextSynthetic"},{"$ref":"#/components/schemas/EventSessionNextShellStarted"},{"$ref":"#/components/schemas/EventSessionNextShellEnded"},{"$ref":"#/components/schemas/EventSessionNextStepStarted"},{"$ref":"#/components/schemas/EventSessionNextStepEnded"},{"$ref":"#/components/schemas/EventSessionNextStepFailed"},{"$ref":"#/components/schemas/EventSessionNextTextStarted"},{"$ref":"#/components/schemas/EventSessionNextTextDelta"},{"$ref":"#/components/schemas/EventSessionNextTextEnded"},{"$ref":"#/components/schemas/EventSessionNextReasoningStarted"},{"$ref":"#/components/schemas/EventSessionNextReasoningDelta"},{"$ref":"#/components/schemas/EventSessionNextReasoningEnded"},{"$ref":"#/components/schemas/EventSessionNextToolInputStarted"},{"$ref":"#/components/schemas/EventSessionNextToolInputDelta"},{"$ref":"#/components/schemas/EventSessionNextToolInputEnded"},{"$ref":"#/components/schemas/EventSessionNextToolCalled"},{"$ref":"#/components/schemas/EventSessionNextToolProgress"},{"$ref":"#/components/schemas/EventSessionNextToolSuccess"},{"$ref":"#/components/schemas/EventSessionNextToolFailed"},{"$ref":"#/components/schemas/EventSessionNextRetried"},{"$ref":"#/components/schemas/EventSessionNextCompactionStarted"},{"$ref":"#/components/schemas/EventSessionNextCompactionDelta"},{"$ref":"#/components/schemas/EventSessionNextCompactionEnded"},{"$ref":"#/components/schemas/SyncEventMessageUpdated"},{"$ref":"#/components/schemas/SyncEventMessageRemoved"},{"$ref":"#/components/schemas/SyncEventMessagePartUpdated"},{"$ref":"#/components/schemas/SyncEventMessagePartRemoved"},{"$ref":"#/components/schemas/SyncEventSessionCreated"},{"$ref":"#/components/schemas/SyncEventSessionUpdated"},{"$ref":"#/components/schemas/SyncEventSessionDeleted"},{"$ref":"#/components/schemas/SyncEventSessionNextAgentSwitched"},{"$ref":"#/components/schemas/SyncEventSessionNextModelSwitched"},{"$ref":"#/components/schemas/SyncEventSessionNextPrompted"},{"$ref":"#/components/schemas/SyncEventSessionNextSynthetic"},{"$ref":"#/components/schemas/SyncEventSessionNextShellStarted"},{"$ref":"#/components/schemas/SyncEventSessionNextShellEnded"},{"$ref":"#/components/schemas/SyncEventSessionNextStepStarted"},{"$ref":"#/components/schemas/SyncEventSessionNextStepEnded"},{"$ref":"#/components/schemas/SyncEventSessionNextStepFailed"},{"$ref":"#/components/schemas/SyncEventSessionNextTextStarted"},{"$ref":"#/components/schemas/SyncEventSessionNextTextDelta"},{"$ref":"#/components/schemas/SyncEventSessionNextTextEnded"},{"$ref":"#/components/schemas/SyncEventSessionNextReasoningStarted"},{"$ref":"#/components/schemas/SyncEventSessionNextReasoningDelta"},{"$ref":"#/components/schemas/SyncEventSessionNextReasoningEnded"},{"$ref":"#/components/schemas/SyncEventSessionNextToolInputStarted"},{"$ref":"#/components/schemas/SyncEventSessionNextToolInputDelta"},{"$ref":"#/components/schemas/SyncEventSessionNextToolInputEnded"},{"$ref":"#/components/schemas/SyncEventSessionNextToolCalled"},{"$ref":"#/components/schemas/SyncEventSessionNextToolProgress"},{"$ref":"#/components/schemas/SyncEventSessionNextToolSuccess"},{"$ref":"#/components/schemas/SyncEventSessionNextToolFailed"},{"$ref":"#/components/schemas/SyncEventSessionNextRetried"},{"$ref":"#/components/schemas/SyncEventSessionNextCompactionStarted"},{"$ref":"#/components/schemas/SyncEventSessionNextCompactionDelta"},{"$ref":"#/components/schemas/SyncEventSessionNextCompactionEnded"}]}},"required":["directory","payload"],"additionalProperties":false},"LogLevel":{"type":"string","enum":["DEBUG","INFO","WARN","ERROR"],"description":"Log level"},"ServerConfig":{"type":"object","properties":{"port":{"type":"integer","exclusiveMinimum":0},"hostname":{"type":"string"},"mdns":{"type":"boolean"},"mdnsDomain":{"type":"string"},"cors":{"type":"array","items":{"type":"string"}}},"additionalProperties":false,"description":"Server configuration for opencode serve and web commands"},"ReferenceConfigEntry":{"anyOf":[{"type":"string"},{"type":"object","properties":{"repository":{"type":"string","description":"Git repository URL, host/path reference, or GitHub owner/repo shorthand"},"branch":{"type":"string"}},"required":["repository"],"additionalProperties":false},{"type":"object","properties":{"path":{"type":"string","description":"Absolute path, ~/ path, or workspace-relative path to a local reference directory"}},"required":["path"],"additionalProperties":false}]},"ReferenceConfig":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ReferenceConfigEntry"}},"PermissionActionConfig":{"type":"string","enum":["ask","allow","deny"]},"PermissionObjectConfig":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/PermissionActionConfig"}},"PermissionRuleConfig":{"anyOf":[{"$ref":"#/components/schemas/PermissionActionConfig"},{"$ref":"#/components/schemas/PermissionObjectConfig"}]},"PermissionConfig":{"anyOf":[{"$ref":"#/components/schemas/PermissionActionConfig"},{"type":"object","properties":{"read":{"$ref":"#/components/schemas/PermissionRuleConfig"},"edit":{"$ref":"#/components/schemas/PermissionRuleConfig"},"glob":{"$ref":"#/components/schemas/PermissionRuleConfig"},"grep":{"$ref":"#/components/schemas/PermissionRuleConfig"},"list":{"$ref":"#/components/schemas/PermissionRuleConfig"},"bash":{"$ref":"#/components/schemas/PermissionRuleConfig"},"task":{"$ref":"#/components/schemas/PermissionRuleConfig"},"external_directory":{"$ref":"#/components/schemas/PermissionRuleConfig"},"todowrite":{"$ref":"#/components/schemas/PermissionActionConfig"},"question":{"$ref":"#/components/schemas/PermissionActionConfig"},"webfetch":{"$ref":"#/components/schemas/PermissionActionConfig"},"websearch":{"$ref":"#/components/schemas/PermissionActionConfig"},"repo_clone":{"$ref":"#/components/schemas/PermissionRuleConfig"},"repo_overview":{"$ref":"#/components/schemas/PermissionRuleConfig"},"lsp":{"$ref":"#/components/schemas/PermissionRuleConfig"},"doom_loop":{"$ref":"#/components/schemas/PermissionActionConfig"},"skill":{"$ref":"#/components/schemas/PermissionRuleConfig"}},"additionalProperties":{"$ref":"#/components/schemas/PermissionRuleConfig"}}]},"AgentConfig":{"type":"object","properties":{"model":{"type":"string"},"variant":{"type":"string"},"temperature":{"type":"number"},"top_p":{"type":"number"},"prompt":{"type":"string"},"tools":{"type":"object","additionalProperties":{"type":"boolean"}},"disable":{"type":"boolean"},"description":{"type":"string"},"mode":{"type":"string","enum":["subagent","primary","all"]},"hidden":{"type":"boolean"},"options":{"type":"object"},"color":{"anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"string","enum":["primary","secondary","accent","success","warning","error","info"]}],"description":"Hex color code (e.g., #FF5733) or theme color (e.g., primary)"},"steps":{"type":"integer","exclusiveMinimum":0},"maxSteps":{"type":"integer","exclusiveMinimum":0},"permission":{"$ref":"#/components/schemas/PermissionConfig"}},"additionalProperties":{}},"ProviderConfig":{"type":"object","properties":{"api":{"type":"string"},"name":{"type":"string"},"env":{"type":"array","items":{"type":"string"}},"id":{"type":"string"},"npm":{"type":"string"},"whitelist":{"type":"array","items":{"type":"string"}},"blacklist":{"type":"array","items":{"type":"string"}},"options":{"type":"object","properties":{"apiKey":{"type":"string"},"baseURL":{"type":"string"},"enterpriseUrl":{"type":"string"},"setCacheKey":{"type":"boolean"},"timeout":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"boolean","enum":[false]}],"description":"Timeout in milliseconds for requests to this provider. Default is 300000 (5 minutes). Set to false to disable timeout."},"chunkTimeout":{"type":"integer","exclusiveMinimum":0}},"additionalProperties":{}},"models":{"type":"object","additionalProperties":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"family":{"type":"string"},"release_date":{"type":"string"},"attachment":{"type":"boolean"},"reasoning":{"type":"boolean"},"temperature":{"type":"boolean"},"tool_call":{"type":"boolean"},"interleaved":{"anyOf":[{"type":"boolean","enum":[true]},{"type":"object","properties":{"field":{"type":"string","enum":["reasoning_content","reasoning_details"]}},"required":["field"],"additionalProperties":false}]},"cost":{"type":"object","properties":{"input":{"type":"number"},"output":{"type":"number"},"cache_read":{"type":"number"},"cache_write":{"type":"number"},"context_over_200k":{"type":"object","properties":{"input":{"type":"number"},"output":{"type":"number"},"cache_read":{"type":"number"},"cache_write":{"type":"number"}},"required":["input","output"],"additionalProperties":false}},"required":["input","output"],"additionalProperties":false},"limit":{"type":"object","properties":{"context":{"type":"number"},"input":{"type":"number"},"output":{"type":"number"}},"required":["context","output"],"additionalProperties":false},"modalities":{"type":"object","properties":{"input":{"type":"array","items":{"type":"string","enum":["text","audio","image","video","pdf"]}},"output":{"type":"array","items":{"type":"string","enum":["text","audio","image","video","pdf"]}}},"required":["input","output"],"additionalProperties":false},"experimental":{"type":"boolean"},"status":{"type":"string","enum":["alpha","beta","deprecated","active"]},"provider":{"type":"object","properties":{"npm":{"type":"string"},"api":{"type":"string"}},"additionalProperties":false},"options":{"type":"object"},"headers":{"type":"object","additionalProperties":{"type":"string"}},"variants":{"type":"object","additionalProperties":{"type":"object","properties":{"disabled":{"type":"boolean"}},"additionalProperties":{}},"description":"Variant-specific configuration"}},"additionalProperties":false}}},"additionalProperties":false},"McpLocalConfig":{"type":"object","properties":{"type":{"type":"string","enum":["local"],"description":"Type of MCP server connection"},"command":{"type":"array","items":{"type":"string"},"description":"Command and arguments to run the MCP server"},"environment":{"type":"object","additionalProperties":{"type":"string"}},"enabled":{"type":"boolean"},"timeout":{"type":"integer","exclusiveMinimum":0}},"required":["type","command"],"additionalProperties":false},"McpOAuthConfig":{"type":"object","properties":{"clientId":{"type":"string"},"clientSecret":{"type":"string"},"scope":{"type":"string"},"redirectUri":{"type":"string"}},"additionalProperties":false},"McpRemoteConfig":{"type":"object","properties":{"type":{"type":"string","enum":["remote"],"description":"Type of MCP server connection"},"url":{"type":"string","description":"URL of the remote MCP server"},"enabled":{"type":"boolean"},"headers":{"type":"object","additionalProperties":{"type":"string"}},"oauth":{"anyOf":[{"$ref":"#/components/schemas/McpOAuthConfig"},{"type":"boolean","enum":[false]}],"description":"OAuth authentication configuration for the MCP server. Set to false to disable OAuth auto-detection."},"timeout":{"type":"integer","exclusiveMinimum":0}},"required":["type","url"],"additionalProperties":false},"LayoutConfig":{"type":"string","enum":["auto","stretch"],"description":"@deprecated Always uses stretch layout."},"ImageAttachmentConfig":{"type":"object","properties":{"auto_resize":{"type":"boolean"},"max_width":{"type":"integer","exclusiveMinimum":0},"max_height":{"type":"integer","exclusiveMinimum":0},"max_base64_bytes":{"type":"integer","exclusiveMinimum":0}},"additionalProperties":false},"AttachmentConfig":{"type":"object","properties":{"image":{"$ref":"#/components/schemas/ImageAttachmentConfig"}},"additionalProperties":false},"Config":{"type":"object","properties":{"$schema":{"type":"string"},"shell":{"type":"string"},"logLevel":{"$ref":"#/components/schemas/LogLevel"},"server":{"$ref":"#/components/schemas/ServerConfig"},"command":{"type":"object","additionalProperties":{"type":"object","properties":{"template":{"type":"string"},"description":{"type":"string"},"agent":{"type":"string"},"model":{"type":"string"},"subtask":{"type":"boolean"}},"required":["template"],"additionalProperties":false}},"skills":{"type":"object","properties":{"paths":{"type":"array","items":{"type":"string"}},"urls":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"reference":{"$ref":"#/components/schemas/ReferenceConfig"},"watcher":{"type":"object","properties":{"ignore":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"snapshot":{"type":"boolean"},"plugin":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"array","prefixItems":[{"type":"string"},{"type":"object"}],"maxItems":2,"minItems":2}]}},"share":{"type":"string","enum":["manual","auto","disabled"]},"autoshare":{"type":"boolean"},"autoupdate":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["notify"]}],"description":"Automatically update to the latest version. Set to true to auto-update, false to disable, or 'notify' to show update notifications"},"disabled_providers":{"type":"array","items":{"type":"string"}},"enabled_providers":{"type":"array","items":{"type":"string"}},"model":{"type":"string"},"small_model":{"type":"string"},"default_agent":{"type":"string"},"username":{"type":"string"},"mode":{"type":"object","properties":{"build":{"$ref":"#/components/schemas/AgentConfig"},"plan":{"$ref":"#/components/schemas/AgentConfig"}},"additionalProperties":{"$ref":"#/components/schemas/AgentConfig"}},"agent":{"type":"object","properties":{"plan":{"$ref":"#/components/schemas/AgentConfig"},"build":{"$ref":"#/components/schemas/AgentConfig"},"general":{"$ref":"#/components/schemas/AgentConfig"},"explore":{"$ref":"#/components/schemas/AgentConfig"},"scout":{"$ref":"#/components/schemas/AgentConfig"},"title":{"$ref":"#/components/schemas/AgentConfig"},"summary":{"$ref":"#/components/schemas/AgentConfig"},"compaction":{"$ref":"#/components/schemas/AgentConfig"}},"additionalProperties":{"$ref":"#/components/schemas/AgentConfig"}},"provider":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ProviderConfig"}},"mcp":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#/components/schemas/McpLocalConfig"},{"$ref":"#/components/schemas/McpRemoteConfig"},{"type":"object","properties":{"enabled":{"type":"boolean"}},"required":["enabled"],"additionalProperties":false}]}},"formatter":{"anyOf":[{"type":"boolean"},{"type":"object","additionalProperties":{"type":"object","properties":{"disabled":{"type":"boolean"},"command":{"type":"array","items":{"type":"string"}},"environment":{"type":"object","additionalProperties":{"type":"string"}},"extensions":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}}],"description":"Enable or configure formatters. Omit or set to false to disable, true to enable built-ins, or an object to enable built-ins with overrides."},"lsp":{"anyOf":[{"type":"boolean"},{"type":"object","additionalProperties":{"anyOf":[{"type":"object","properties":{"disabled":{"type":"boolean","enum":[true]}},"required":["disabled"],"additionalProperties":false},{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"}},"extensions":{"type":"array","items":{"type":"string"}},"disabled":{"type":"boolean"},"env":{"type":"object","additionalProperties":{"type":"string"}},"initialization":{"type":"object"}},"required":["command"],"additionalProperties":false}]}}],"description":"Enable or configure LSP servers. Omit or set to false to disable, true to enable built-ins, or an object to enable built-ins with overrides."},"instructions":{"type":"array","items":{"type":"string"}},"layout":{"$ref":"#/components/schemas/LayoutConfig"},"permission":{"$ref":"#/components/schemas/PermissionConfig"},"tools":{"type":"object","additionalProperties":{"type":"boolean"}},"attachment":{"$ref":"#/components/schemas/AttachmentConfig"},"enterprise":{"type":"object","properties":{"url":{"type":"string"}},"additionalProperties":false},"tool_output":{"type":"object","properties":{"max_lines":{"type":"integer","exclusiveMinimum":0},"max_bytes":{"type":"integer","exclusiveMinimum":0}},"additionalProperties":false},"compaction":{"type":"object","properties":{"auto":{"type":"boolean"},"prune":{"type":"boolean"},"tail_turns":{"type":"integer","minimum":0},"preserve_recent_tokens":{"type":"integer","minimum":0},"reserved":{"type":"integer","minimum":0}},"additionalProperties":false},"experimental":{"type":"object","properties":{"disable_paste_summary":{"type":"boolean"},"batch_tool":{"type":"boolean"},"openTelemetry":{"type":"boolean"},"primary_tools":{"type":"array","items":{"type":"string"}},"continue_loop_on_deny":{"type":"boolean"},"mcp_timeout":{"type":"integer","exclusiveMinimum":0}},"additionalProperties":false}},"additionalProperties":false},"Model":{"type":"object","properties":{"id":{"type":"string"},"providerID":{"type":"string"},"api":{"type":"object","properties":{"id":{"type":"string"},"url":{"type":"string"},"npm":{"type":"string"}},"required":["id","url","npm"],"additionalProperties":false},"name":{"type":"string"},"family":{"type":"string"},"capabilities":{"type":"object","properties":{"temperature":{"type":"boolean"},"reasoning":{"type":"boolean"},"attachment":{"type":"boolean"},"toolcall":{"type":"boolean"},"input":{"type":"object","properties":{"text":{"type":"boolean"},"audio":{"type":"boolean"},"image":{"type":"boolean"},"video":{"type":"boolean"},"pdf":{"type":"boolean"}},"required":["text","audio","image","video","pdf"],"additionalProperties":false},"output":{"type":"object","properties":{"text":{"type":"boolean"},"audio":{"type":"boolean"},"image":{"type":"boolean"},"video":{"type":"boolean"},"pdf":{"type":"boolean"}},"required":["text","audio","image","video","pdf"],"additionalProperties":false},"interleaved":{"anyOf":[{"type":"boolean"},{"type":"object","properties":{"field":{"type":"string","enum":["reasoning_content","reasoning_details"]}},"required":["field"],"additionalProperties":false}]}},"required":["temperature","reasoning","attachment","toolcall","input","output","interleaved"],"additionalProperties":false},"cost":{"type":"object","properties":{"input":{"type":"number"},"output":{"type":"number"},"cache":{"type":"object","properties":{"read":{"type":"number"},"write":{"type":"number"}},"required":["read","write"],"additionalProperties":false},"tiers":{"type":"array","items":{"type":"object","properties":{"input":{"type":"number"},"output":{"type":"number"},"cache":{"type":"object","properties":{"read":{"type":"number"},"write":{"type":"number"}},"required":["read","write"],"additionalProperties":false},"tier":{"type":"object","properties":{"type":{"type":"string","enum":["context"]},"size":{"type":"number"}},"required":["type","size"],"additionalProperties":false}},"required":["input","output","cache","tier"],"additionalProperties":false}},"experimentalOver200K":{"type":"object","properties":{"input":{"type":"number"},"output":{"type":"number"},"cache":{"type":"object","properties":{"read":{"type":"number"},"write":{"type":"number"}},"required":["read","write"],"additionalProperties":false}},"required":["input","output","cache"],"additionalProperties":false}},"required":["input","output","cache"],"additionalProperties":false},"limit":{"type":"object","properties":{"context":{"type":"number"},"input":{"type":"number"},"output":{"type":"number"}},"required":["context","output"],"additionalProperties":false},"status":{"type":"string","enum":["alpha","beta","deprecated","active"]},"options":{"type":"object"},"headers":{"type":"object","additionalProperties":{"type":"string"}},"release_date":{"type":"string"},"variants":{"type":"object","additionalProperties":{"type":"object"}}},"required":["id","providerID","api","name","capabilities","cost","limit","status","options","headers","release_date"],"additionalProperties":false},"Provider":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"source":{"type":"string","enum":["env","config","custom","api"]},"env":{"type":"array","items":{"type":"string"}},"key":{"type":"string"},"options":{"type":"object"},"models":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/Model"}}},"required":["id","name","source","env","options","models"],"additionalProperties":false},"ConsoleState":{"type":"object","properties":{"consoleManagedProviders":{"type":"array","items":{"type":"string"}},"activeOrgName":{"type":"string"},"switchableOrgCount":{"type":"integer","minimum":0}},"required":["consoleManagedProviders","switchableOrgCount"],"additionalProperties":false},"effect_HttpApiError_InternalServerError":{"type":"object","properties":{"_tag":{"type":"string","enum":["InternalServerError"]}},"required":["_tag"],"additionalProperties":false},"ToolListItem":{"type":"object","properties":{"id":{"type":"string"},"description":{"type":"string"},"parameters":{}},"required":["id","description","parameters"],"additionalProperties":false},"ToolList":{"type":"array","items":{"$ref":"#/components/schemas/ToolListItem"}},"ToolIDs":{"type":"array","items":{"type":"string"}},"WorktreeError":{"type":"object","properties":{"name":{"type":"string","enum":["WorktreeNotGitError","WorktreeNameGenerationFailedError","WorktreeCreateFailedError","WorktreeStartCommandFailedError","WorktreeRemoveFailedError","WorktreeResetFailedError","WorktreeListFailedError"]},"data":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}},"required":["name","data"],"additionalProperties":false},"WorktreeCreateInput":{"type":"object","properties":{"name":{"type":"string"},"startCommand":{"type":"string","description":"Additional startup script to run after the project's start command"}},"additionalProperties":false},"Worktree":{"type":"object","properties":{"name":{"type":"string"},"branch":{"type":"string"},"directory":{"type":"string"}},"required":["name","directory"],"additionalProperties":false},"WorktreeRemoveInput":{"type":"object","properties":{"directory":{"type":"string"}},"required":["directory"],"additionalProperties":false},"WorktreeResetInput":{"type":"object","properties":{"directory":{"type":"string"}},"required":["directory"],"additionalProperties":false},"ProjectSummary":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"worktree":{"type":"string"}},"required":["id","worktree"],"additionalProperties":false},"GlobalSession":{"type":"object","properties":{"id":{"type":"string","pattern":"^ses"},"slug":{"type":"string"},"projectID":{"type":"string"},"workspaceID":{"type":"string","pattern":"^wrk"},"directory":{"type":"string"},"path":{"type":"string"},"parentID":{"type":"string","pattern":"^ses"},"summary":{"type":"object","properties":{"additions":{"type":"number"},"deletions":{"type":"number"},"files":{"type":"number"},"diffs":{"type":"array","items":{"$ref":"#/components/schemas/SnapshotFileDiff"}}},"required":["additions","deletions","files"],"additionalProperties":false},"cost":{"type":"number"},"tokens":{"type":"object","properties":{"input":{"type":"number"},"output":{"type":"number"},"reasoning":{"type":"number"},"cache":{"type":"object","properties":{"read":{"type":"number"},"write":{"type":"number"}},"required":["read","write"],"additionalProperties":false}},"required":["input","output","reasoning","cache"],"additionalProperties":false},"share":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"],"additionalProperties":false},"title":{"type":"string"},"agent":{"type":"string"},"model":{"type":"object","properties":{"id":{"type":"string"},"providerID":{"type":"string"},"variant":{"type":"string"}},"required":["id","providerID"],"additionalProperties":false},"version":{"type":"string"},"time":{"type":"object","properties":{"created":{"type":"integer","minimum":0},"updated":{"type":"integer","minimum":0},"compacting":{"type":"integer","minimum":0},"archived":{"type":"number"}},"required":["created","updated"],"additionalProperties":false},"permission":{"$ref":"#/components/schemas/PermissionRuleset"},"revert":{"type":"object","properties":{"messageID":{"type":"string","pattern":"^msg"},"partID":{"type":"string","pattern":"^prt"},"snapshot":{"type":"string"},"diff":{"type":"string"}},"required":["messageID"],"additionalProperties":false},"project":{"anyOf":[{"$ref":"#/components/schemas/ProjectSummary"},{"type":"null"}]}},"required":["id","slug","projectID","directory","title","version","time","project"],"additionalProperties":false},"McpResource":{"type":"object","properties":{"name":{"type":"string"},"uri":{"type":"string"},"description":{"type":"string"},"mimeType":{"type":"string"},"client":{"type":"string"}},"required":["name","uri","client"],"additionalProperties":false},"Symbol":{"type":"object","properties":{"name":{"type":"string"},"kind":{"type":"integer","minimum":0},"location":{"type":"object","properties":{"uri":{"type":"string"},"range":{"$ref":"#/components/schemas/Range"}},"required":["uri","range"],"additionalProperties":false}},"required":["name","kind","location"],"additionalProperties":false},"FileNode":{"type":"object","properties":{"name":{"type":"string"},"path":{"type":"string"},"absolute":{"type":"string"},"type":{"type":"string","enum":["file","directory"]},"ignored":{"type":"boolean"}},"required":["name","path","absolute","type","ignored"],"additionalProperties":false},"FileContent":{"type":"object","properties":{"type":{"type":"string","enum":["text","binary"]},"content":{"type":"string"},"diff":{"type":"string"},"patch":{"type":"object","properties":{"oldFileName":{"type":"string"},"newFileName":{"type":"string"},"oldHeader":{"type":"string"},"newHeader":{"type":"string"},"hunks":{"type":"array","items":{"type":"object","properties":{"oldStart":{"type":"integer","minimum":0},"oldLines":{"type":"integer","minimum":0},"newStart":{"type":"integer","minimum":0},"newLines":{"type":"integer","minimum":0},"lines":{"type":"array","items":{"type":"string"}}},"required":["oldStart","oldLines","newStart","newLines","lines"],"additionalProperties":false}},"index":{"type":"string"}},"required":["oldFileName","newFileName","hunks"],"additionalProperties":false},"encoding":{"type":"string","enum":["base64"]},"mimeType":{"type":"string"}},"required":["type","content"],"additionalProperties":false},"File":{"type":"object","properties":{"path":{"type":"string"},"added":{"type":"integer","minimum":0},"removed":{"type":"integer","minimum":0},"status":{"type":"string","enum":["added","deleted","modified"]}},"required":["path","added","removed","status"],"additionalProperties":false},"Path":{"type":"object","properties":{"home":{"type":"string"},"state":{"type":"string"},"config":{"type":"string"},"worktree":{"type":"string"},"directory":{"type":"string"}},"required":["home","state","config","worktree","directory"],"additionalProperties":false},"VcsInfo":{"type":"object","properties":{"branch":{"type":"string"},"default_branch":{"type":"string"}},"additionalProperties":false},"VcsFileStatus":{"type":"object","properties":{"file":{"type":"string"},"additions":{"type":"number"},"deletions":{"type":"number"},"status":{"type":"string","enum":["added","deleted","modified"]}},"required":["file","additions","deletions","status"],"additionalProperties":false},"VcsFileDiff":{"type":"object","properties":{"file":{"type":"string"},"patch":{"type":"string"},"additions":{"type":"number"},"deletions":{"type":"number"},"status":{"type":"string","enum":["added","deleted","modified"]}},"required":["file","additions","deletions"],"additionalProperties":false},"VcsApplyError":{"type":"object","properties":{"name":{"type":"string","enum":["VcsApplyError"]},"data":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["non-git","not-clean"]}},"required":["message","reason"],"additionalProperties":false}},"required":["name","data"],"additionalProperties":false},"Command":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"agent":{"type":"string"},"model":{"type":"string"},"source":{"type":"string","enum":["command","mcp","skill"]},"template":{"type":"string"},"subtask":{"type":"boolean"},"hints":{"type":"array","items":{"type":"string"}}},"required":["name","template","hints"],"additionalProperties":false},"Agent":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"mode":{"type":"string","enum":["subagent","primary","all"]},"native":{"type":"boolean"},"hidden":{"type":"boolean"},"topP":{"type":"number"},"temperature":{"type":"number"},"color":{"type":"string"},"permission":{"$ref":"#/components/schemas/PermissionRuleset"},"model":{"type":"object","properties":{"modelID":{"type":"string"},"providerID":{"type":"string"}},"required":["modelID","providerID"],"additionalProperties":false},"variant":{"type":"string"},"prompt":{"type":"string"},"options":{"type":"object"},"steps":{"type":"number"}},"required":["name","mode","permission","options"],"additionalProperties":false},"LSPStatus":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"root":{"type":"string"},"status":{"type":"string","enum":["connected","error"]}},"required":["id","name","root","status"],"additionalProperties":false},"FormatterStatus":{"type":"object","properties":{"name":{"type":"string"},"extensions":{"type":"array","items":{"type":"string"}},"enabled":{"type":"boolean"}},"required":["name","extensions","enabled"],"additionalProperties":false},"MCPStatusConnected":{"type":"object","properties":{"status":{"type":"string","enum":["connected"]}},"required":["status"],"additionalProperties":false},"MCPStatusDisabled":{"type":"object","properties":{"status":{"type":"string","enum":["disabled"]}},"required":["status"],"additionalProperties":false},"MCPStatusFailed":{"type":"object","properties":{"status":{"type":"string","enum":["failed"]},"error":{"type":"string"}},"required":["status","error"],"additionalProperties":false},"MCPStatusNeedsAuth":{"type":"object","properties":{"status":{"type":"string","enum":["needs_auth"]}},"required":["status"],"additionalProperties":false},"MCPStatusNeedsClientRegistration":{"type":"object","properties":{"status":{"type":"string","enum":["needs_client_registration"]},"error":{"type":"string"}},"required":["status","error"],"additionalProperties":false},"MCPStatus":{"anyOf":[{"$ref":"#/components/schemas/MCPStatusConnected"},{"$ref":"#/components/schemas/MCPStatusDisabled"},{"$ref":"#/components/schemas/MCPStatusFailed"},{"$ref":"#/components/schemas/MCPStatusNeedsAuth"},{"$ref":"#/components/schemas/MCPStatusNeedsClientRegistration"}]},"McpUnsupportedOAuthError":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"additionalProperties":false},"NotFoundError":{"type":"object","required":["name","data"],"properties":{"name":{"type":"string","enum":["NotFoundError"]},"data":{"type":"object","required":["message"],"properties":{"message":{"type":"string"}}}}},"effect_HttpApiError_Forbidden":{"type":"object","properties":{"_tag":{"type":"string","enum":["Forbidden"]}},"required":["_tag"],"additionalProperties":false},"ProviderAuthMethod":{"type":"object","properties":{"type":{"type":"string","enum":["oauth","api"]},"label":{"type":"string"},"prompts":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["text"]},"key":{"type":"string"},"message":{"type":"string"},"placeholder":{"type":"string"},"when":{"type":"object","properties":{"key":{"type":"string"},"op":{"type":"string","enum":["eq","neq"]},"value":{"type":"string"}},"required":["key","op","value"],"additionalProperties":false}},"required":["type","key","message"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["select"]},"key":{"type":"string"},"message":{"type":"string"},"options":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"value":{"type":"string"},"hint":{"type":"string"}},"required":["label","value"],"additionalProperties":false}},"when":{"type":"object","properties":{"key":{"type":"string"},"op":{"type":"string","enum":["eq","neq"]},"value":{"type":"string"}},"required":["key","op","value"],"additionalProperties":false}},"required":["type","key","message","options"],"additionalProperties":false}]}}},"required":["type","label"],"additionalProperties":false},"ProviderAuthAuthorization":{"type":"object","properties":{"url":{"type":"string"},"method":{"type":"string","enum":["auto","code"]},"instructions":{"type":"string"}},"required":["url","method","instructions"],"additionalProperties":false},"ProviderAuthError1":{"type":"object","properties":{"name":{"type":"string","enum":["BadRequest","ProviderAuthOauthMissing","ProviderAuthOauthCodeMissing","ProviderAuthOauthCallbackFailed","ProviderAuthValidationFailed"]},"data":{"type":"object","properties":{"providerID":{"type":"string"},"field":{"type":"string"},"message":{"type":"string"},"kind":{"type":"string"}},"additionalProperties":false}},"required":["name","data"],"additionalProperties":false},"TextPartInput":{"type":"object","properties":{"id":{"type":"string","pattern":"^prt"},"type":{"type":"string","enum":["text"]},"text":{"type":"string"},"synthetic":{"type":"boolean"},"ignored":{"type":"boolean"},"time":{"type":"object","properties":{"start":{"type":"integer","minimum":0},"end":{"type":"integer","minimum":0}},"required":["start"],"additionalProperties":false},"metadata":{"type":"object"}},"required":["type","text"],"additionalProperties":false},"FilePartInput":{"type":"object","properties":{"id":{"type":"string","pattern":"^prt"},"type":{"type":"string","enum":["file"]},"mime":{"type":"string"},"filename":{"type":"string"},"url":{"type":"string"},"source":{"$ref":"#/components/schemas/FilePartSource"}},"required":["type","mime","url"],"additionalProperties":false},"AgentPartInput":{"type":"object","properties":{"id":{"type":"string","pattern":"^prt"},"type":{"type":"string","enum":["agent"]},"name":{"type":"string"},"source":{"type":"object","properties":{"value":{"type":"string"},"start":{"type":"integer","minimum":0},"end":{"type":"integer","minimum":0}},"required":["value","start","end"],"additionalProperties":false}},"required":["type","name"],"additionalProperties":false},"SubtaskPartInput":{"type":"object","properties":{"id":{"type":"string","pattern":"^prt"},"type":{"type":"string","enum":["subtask"]},"prompt":{"type":"string"},"description":{"type":"string"},"agent":{"type":"string"},"model":{"type":"object","properties":{"providerID":{"type":"string"},"modelID":{"type":"string"}},"required":["providerID","modelID"],"additionalProperties":false},"command":{"type":"string"}},"required":["type","prompt","description","agent"],"additionalProperties":false},"V2SessionsResponse":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SessionInfo"}},"cursor":{"type":"object","properties":{"previous":{"type":"string"},"next":{"type":"string"}},"additionalProperties":false}},"required":["items","cursor"],"additionalProperties":false},"V2SessionMessagesResponse":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SessionMessage"}},"cursor":{"type":"object","properties":{"previous":{"type":"string"},"next":{"type":"string"}},"additionalProperties":false}},"required":["items","cursor"],"additionalProperties":false},"EventTuiPromptAppend":{"type":"object","properties":{"type":{"type":"string","enum":["tui.prompt.append"]},"properties":{"type":"object","properties":{"text":{"type":"string"}},"required":["text"],"additionalProperties":false}},"required":["type","properties"],"additionalProperties":false},"EventTuiCommandExecute":{"type":"object","properties":{"type":{"type":"string","enum":["tui.command.execute"]},"properties":{"type":"object","properties":{"command":{"anyOf":[{"type":"string","enum":["session.list","session.new","session.share","session.interrupt","session.compact","session.page.up","session.page.down","session.line.up","session.line.down","session.half.page.up","session.half.page.down","session.first","session.last","prompt.clear","prompt.submit","agent.cycle"]},{"type":"string"}]}},"required":["command"],"additionalProperties":false}},"required":["type","properties"],"additionalProperties":false},"EventTuiToastShow":{"type":"object","properties":{"type":{"type":"string","enum":["tui.toast.show"]},"properties":{"type":"object","properties":{"title":{"type":"string"},"message":{"type":"string"},"variant":{"type":"string","enum":["info","success","warning","error"]},"duration":{"type":"integer","exclusiveMinimum":0}},"required":["message","variant"],"additionalProperties":false}},"required":["type","properties"],"additionalProperties":false},"EventTuiSessionSelect":{"type":"object","properties":{"type":{"type":"string","enum":["tui.session.select"]},"properties":{"type":"object","properties":{"sessionID":{"type":"string","pattern":"^ses","description":"Session ID to navigate to"}},"required":["sessionID"],"additionalProperties":false}},"required":["type","properties"],"additionalProperties":false},"Workspace":{"type":"object","properties":{"id":{"type":"string","pattern":"^wrk"},"type":{"type":"string"},"name":{"type":"string"},"branch":{"anyOf":[{"type":"string"},{"type":"null"}]},"directory":{"anyOf":[{"type":"string"},{"type":"null"}]},"extra":{"anyOf":[{},{"type":"null"}]},"projectID":{"type":"string"},"timeUsed":{"anyOf":[{"type":"number"},{"type":"string","enum":["NaN"]},{"type":"string","enum":["Infinity"]},{"type":"string","enum":["-Infinity"]},{"type":"string","enum":["Infinity","-Infinity","NaN"]}]}},"required":["id","type","name","projectID","timeUsed"],"additionalProperties":false},"WorkspaceWarpError":{"type":"object","properties":{"name":{"type":"string","enum":["WorkspaceWarpError"]},"data":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}},"required":["name","data"],"additionalProperties":false},"SyncEventMessageUpdated":{"type":"object","properties":{"type":{"type":"string","enum":["sync"]},"name":{"type":"string","enum":["message.updated.1"]},"id":{"type":"string"},"seq":{"type":"number"},"aggregateID":{"type":"string","enum":["sessionID"]},"data":{"type":"object","properties":{"sessionID":{"type":"string","pattern":"^ses"},"info":{"$ref":"#/components/schemas/Message"}},"required":["sessionID","info"],"additionalProperties":false}},"required":["type","name","id","seq","aggregateID","data"],"additionalProperties":false},"SyncEventMessageRemoved":{"type":"object","properties":{"type":{"type":"string","enum":["sync"]},"name":{"type":"string","enum":["message.removed.1"]},"id":{"type":"string"},"seq":{"type":"number"},"aggregateID":{"type":"string","enum":["sessionID"]},"data":{"type":"object","properties":{"sessionID":{"type":"string","pattern":"^ses"},"messageID":{"type":"string","pattern":"^msg"}},"required":["sessionID","messageID"],"additionalProperties":false}},"required":["type","name","id","seq","aggregateID","data"],"additionalProperties":false},"SyncEventMessagePartUpdated":{"type":"object","properties":{"type":{"type":"string","enum":["sync"]},"name":{"type":"string","enum":["message.part.updated.1"]},"id":{"type":"string"},"seq":{"type":"number"},"aggregateID":{"type":"string","enum":["sessionID"]},"data":{"type":"object","properties":{"sessionID":{"type":"string","pattern":"^ses"},"part":{"$ref":"#/components/schemas/Part"},"time":{"type":"integer","minimum":0}},"required":["sessionID","part","time"],"additionalProperties":false}},"required":["type","name","id","seq","aggregateID","data"],"additionalProperties":false},"SyncEventMessagePartRemoved":{"type":"object","properties":{"type":{"type":"string","enum":["sync"]},"name":{"type":"string","enum":["message.part.removed.1"]},"id":{"type":"string"},"seq":{"type":"number"},"aggregateID":{"type":"string","enum":["sessionID"]},"data":{"type":"object","properties":{"sessionID":{"type":"string","pattern":"^ses"},"messageID":{"type":"string","pattern":"^msg"},"partID":{"type":"string","pattern":"^prt"}},"required":["sessionID","messageID","partID"],"additionalProperties":false}},"required":["type","name","id","seq","aggregateID","data"],"additionalProperties":false},"SyncEventSessionCreated":{"type":"object","properties":{"type":{"type":"string","enum":["sync"]},"name":{"type":"string","enum":["session.created.1"]},"id":{"type":"string"},"seq":{"type":"number"},"aggregateID":{"type":"string","enum":["sessionID"]},"data":{"type":"object","properties":{"sessionID":{"type":"string","pattern":"^ses"},"info":{"$ref":"#/components/schemas/Session"}},"required":["sessionID","info"],"additionalProperties":false}},"required":["type","name","id","seq","aggregateID","data"],"additionalProperties":false},"SyncEventSessionUpdated":{"type":"object","properties":{"type":{"type":"string","enum":["sync"]},"name":{"type":"string","enum":["session.updated.1"]},"id":{"type":"string"},"seq":{"type":"number"},"aggregateID":{"type":"string","enum":["sessionID"]},"data":{"type":"object","properties":{"sessionID":{"type":"string","pattern":"^ses"},"info":{"type":"object","properties":{"id":{"anyOf":[{"type":"string","pattern":"^ses"},{"type":"null"}]},"slug":{"anyOf":[{"type":"string"},{"type":"null"}]},"projectID":{"anyOf":[{"type":"string"},{"type":"null"}]},"workspaceID":{"anyOf":[{"type":"string","pattern":"^wrk"},{"type":"null"}]},"directory":{"anyOf":[{"type":"string"},{"type":"null"}]},"path":{"anyOf":[{"type":"string"},{"type":"null"}]},"parentID":{"anyOf":[{"type":"string","pattern":"^ses"},{"type":"null"}]},"summary":{"anyOf":[{"type":"object","properties":{"additions":{"type":"number"},"deletions":{"type":"number"},"files":{"type":"number"},"diffs":{"type":"array","items":{"$ref":"#/components/schemas/SnapshotFileDiff"}}},"required":["additions","deletions","files"],"additionalProperties":false},{"type":"null"}]},"cost":{"anyOf":[{"type":"number"},{"type":"null"}]},"tokens":{"anyOf":[{"type":"object","properties":{"input":{"type":"number"},"output":{"type":"number"},"reasoning":{"type":"number"},"cache":{"type":"object","properties":{"read":{"type":"number"},"write":{"type":"number"}},"required":["read","write"],"additionalProperties":false}},"required":["input","output","reasoning","cache"],"additionalProperties":false},{"type":"null"}]},"share":{"type":"object","properties":{"url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},"title":{"anyOf":[{"type":"string"},{"type":"null"}]},"agent":{"anyOf":[{"type":"string"},{"type":"null"}]},"model":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"providerID":{"type":"string"},"variant":{"type":"string"}},"required":["id","providerID"],"additionalProperties":false},{"type":"null"}]},"version":{"anyOf":[{"type":"string"},{"type":"null"}]},"time":{"type":"object","properties":{"created":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"updated":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"compacting":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"archived":{"anyOf":[{"type":"number"},{"type":"null"}]}},"additionalProperties":false},"permission":{"anyOf":[{"$ref":"#/components/schemas/PermissionRuleset"},{"type":"null"}]},"revert":{"anyOf":[{"type":"object","properties":{"messageID":{"type":"string","pattern":"^msg"},"partID":{"type":"string","pattern":"^prt"},"snapshot":{"type":"string"},"diff":{"type":"string"}},"required":["messageID"],"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false}},"required":["sessionID","info"],"additionalProperties":false}},"required":["type","name","id","seq","aggregateID","data"],"additionalProperties":false},"SyncEventSessionDeleted":{"type":"object","properties":{"type":{"type":"string","enum":["sync"]},"name":{"type":"string","enum":["session.deleted.1"]},"id":{"type":"string"},"seq":{"type":"number"},"aggregateID":{"type":"string","enum":["sessionID"]},"data":{"type":"object","properties":{"sessionID":{"type":"string","pattern":"^ses"},"info":{"$ref":"#/components/schemas/Session"}},"required":["sessionID","info"],"additionalProperties":false}},"required":["type","name","id","seq","aggregateID","data"],"additionalProperties":false},"SyncEventSessionNextAgentSwitched":{"type":"object","properties":{"type":{"type":"string","enum":["sync"]},"name":{"type":"string","enum":["session.next.agent.switched.1"]},"id":{"type":"string"},"seq":{"type":"number"},"aggregateID":{"type":"string","enum":["sessionID"]},"data":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"agent":{"type":"string"}},"required":["timestamp","sessionID","agent"],"additionalProperties":false}},"required":["type","name","id","seq","aggregateID","data"],"additionalProperties":false},"SyncEventSessionNextModelSwitched":{"type":"object","properties":{"type":{"type":"string","enum":["sync"]},"name":{"type":"string","enum":["session.next.model.switched.1"]},"id":{"type":"string"},"seq":{"type":"number"},"aggregateID":{"type":"string","enum":["sessionID"]},"data":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"model":{"type":"object","properties":{"id":{"type":"string"},"providerID":{"type":"string"},"variant":{"type":"string"}},"required":["id","providerID","variant"],"additionalProperties":false}},"required":["timestamp","sessionID","model"],"additionalProperties":false}},"required":["type","name","id","seq","aggregateID","data"],"additionalProperties":false},"SyncEventSessionNextPrompted":{"type":"object","properties":{"type":{"type":"string","enum":["sync"]},"name":{"type":"string","enum":["session.next.prompted.1"]},"id":{"type":"string"},"seq":{"type":"number"},"aggregateID":{"type":"string","enum":["sessionID"]},"data":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"prompt":{"$ref":"#/components/schemas/Prompt"}},"required":["timestamp","sessionID","prompt"],"additionalProperties":false}},"required":["type","name","id","seq","aggregateID","data"],"additionalProperties":false},"SyncEventSessionNextSynthetic":{"type":"object","properties":{"type":{"type":"string","enum":["sync"]},"name":{"type":"string","enum":["session.next.synthetic.1"]},"id":{"type":"string"},"seq":{"type":"number"},"aggregateID":{"type":"string","enum":["sessionID"]},"data":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"text":{"type":"string"}},"required":["timestamp","sessionID","text"],"additionalProperties":false}},"required":["type","name","id","seq","aggregateID","data"],"additionalProperties":false},"SyncEventSessionNextShellStarted":{"type":"object","properties":{"type":{"type":"string","enum":["sync"]},"name":{"type":"string","enum":["session.next.shell.started.1"]},"id":{"type":"string"},"seq":{"type":"number"},"aggregateID":{"type":"string","enum":["sessionID"]},"data":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"callID":{"type":"string"},"command":{"type":"string"}},"required":["timestamp","sessionID","callID","command"],"additionalProperties":false}},"required":["type","name","id","seq","aggregateID","data"],"additionalProperties":false},"SyncEventSessionNextShellEnded":{"type":"object","properties":{"type":{"type":"string","enum":["sync"]},"name":{"type":"string","enum":["session.next.shell.ended.1"]},"id":{"type":"string"},"seq":{"type":"number"},"aggregateID":{"type":"string","enum":["sessionID"]},"data":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"callID":{"type":"string"},"output":{"type":"string"}},"required":["timestamp","sessionID","callID","output"],"additionalProperties":false}},"required":["type","name","id","seq","aggregateID","data"],"additionalProperties":false},"SyncEventSessionNextStepStarted":{"type":"object","properties":{"type":{"type":"string","enum":["sync"]},"name":{"type":"string","enum":["session.next.step.started.1"]},"id":{"type":"string"},"seq":{"type":"number"},"aggregateID":{"type":"string","enum":["sessionID"]},"data":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"agent":{"type":"string"},"model":{"type":"object","properties":{"id":{"type":"string"},"providerID":{"type":"string"},"variant":{"type":"string"}},"required":["id","providerID","variant"],"additionalProperties":false},"snapshot":{"type":"string"}},"required":["timestamp","sessionID","agent","model"],"additionalProperties":false}},"required":["type","name","id","seq","aggregateID","data"],"additionalProperties":false},"SyncEventSessionNextStepEnded":{"type":"object","properties":{"type":{"type":"string","enum":["sync"]},"name":{"type":"string","enum":["session.next.step.ended.1"]},"id":{"type":"string"},"seq":{"type":"number"},"aggregateID":{"type":"string","enum":["sessionID"]},"data":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"finish":{"type":"string"},"cost":{"type":"number"},"tokens":{"type":"object","properties":{"input":{"type":"number"},"output":{"type":"number"},"reasoning":{"type":"number"},"cache":{"type":"object","properties":{"read":{"type":"number"},"write":{"type":"number"}},"required":["read","write"],"additionalProperties":false}},"required":["input","output","reasoning","cache"],"additionalProperties":false},"snapshot":{"type":"string"}},"required":["timestamp","sessionID","finish","cost","tokens"],"additionalProperties":false}},"required":["type","name","id","seq","aggregateID","data"],"additionalProperties":false},"SyncEventSessionNextStepFailed":{"type":"object","properties":{"type":{"type":"string","enum":["sync"]},"name":{"type":"string","enum":["session.next.step.failed.1"]},"id":{"type":"string"},"seq":{"type":"number"},"aggregateID":{"type":"string","enum":["sessionID"]},"data":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"error":{"$ref":"#/components/schemas/SessionErrorUnknown"}},"required":["timestamp","sessionID","error"],"additionalProperties":false}},"required":["type","name","id","seq","aggregateID","data"],"additionalProperties":false},"SyncEventSessionNextTextStarted":{"type":"object","properties":{"type":{"type":"string","enum":["sync"]},"name":{"type":"string","enum":["session.next.text.started.1"]},"id":{"type":"string"},"seq":{"type":"number"},"aggregateID":{"type":"string","enum":["sessionID"]},"data":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"}},"required":["timestamp","sessionID"],"additionalProperties":false}},"required":["type","name","id","seq","aggregateID","data"],"additionalProperties":false},"SyncEventSessionNextTextDelta":{"type":"object","properties":{"type":{"type":"string","enum":["sync"]},"name":{"type":"string","enum":["session.next.text.delta.1"]},"id":{"type":"string"},"seq":{"type":"number"},"aggregateID":{"type":"string","enum":["sessionID"]},"data":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"delta":{"type":"string"}},"required":["timestamp","sessionID","delta"],"additionalProperties":false}},"required":["type","name","id","seq","aggregateID","data"],"additionalProperties":false},"SyncEventSessionNextTextEnded":{"type":"object","properties":{"type":{"type":"string","enum":["sync"]},"name":{"type":"string","enum":["session.next.text.ended.1"]},"id":{"type":"string"},"seq":{"type":"number"},"aggregateID":{"type":"string","enum":["sessionID"]},"data":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"text":{"type":"string"}},"required":["timestamp","sessionID","text"],"additionalProperties":false}},"required":["type","name","id","seq","aggregateID","data"],"additionalProperties":false},"SyncEventSessionNextReasoningStarted":{"type":"object","properties":{"type":{"type":"string","enum":["sync"]},"name":{"type":"string","enum":["session.next.reasoning.started.1"]},"id":{"type":"string"},"seq":{"type":"number"},"aggregateID":{"type":"string","enum":["sessionID"]},"data":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"reasoningID":{"type":"string"}},"required":["timestamp","sessionID","reasoningID"],"additionalProperties":false}},"required":["type","name","id","seq","aggregateID","data"],"additionalProperties":false},"SyncEventSessionNextReasoningDelta":{"type":"object","properties":{"type":{"type":"string","enum":["sync"]},"name":{"type":"string","enum":["session.next.reasoning.delta.1"]},"id":{"type":"string"},"seq":{"type":"number"},"aggregateID":{"type":"string","enum":["sessionID"]},"data":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"reasoningID":{"type":"string"},"delta":{"type":"string"}},"required":["timestamp","sessionID","reasoningID","delta"],"additionalProperties":false}},"required":["type","name","id","seq","aggregateID","data"],"additionalProperties":false},"SyncEventSessionNextReasoningEnded":{"type":"object","properties":{"type":{"type":"string","enum":["sync"]},"name":{"type":"string","enum":["session.next.reasoning.ended.1"]},"id":{"type":"string"},"seq":{"type":"number"},"aggregateID":{"type":"string","enum":["sessionID"]},"data":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"reasoningID":{"type":"string"},"text":{"type":"string"}},"required":["timestamp","sessionID","reasoningID","text"],"additionalProperties":false}},"required":["type","name","id","seq","aggregateID","data"],"additionalProperties":false},"SyncEventSessionNextToolInputStarted":{"type":"object","properties":{"type":{"type":"string","enum":["sync"]},"name":{"type":"string","enum":["session.next.tool.input.started.1"]},"id":{"type":"string"},"seq":{"type":"number"},"aggregateID":{"type":"string","enum":["sessionID"]},"data":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"callID":{"type":"string"},"name":{"type":"string"}},"required":["timestamp","sessionID","callID","name"],"additionalProperties":false}},"required":["type","name","id","seq","aggregateID","data"],"additionalProperties":false},"SyncEventSessionNextToolInputDelta":{"type":"object","properties":{"type":{"type":"string","enum":["sync"]},"name":{"type":"string","enum":["session.next.tool.input.delta.1"]},"id":{"type":"string"},"seq":{"type":"number"},"aggregateID":{"type":"string","enum":["sessionID"]},"data":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"callID":{"type":"string"},"delta":{"type":"string"}},"required":["timestamp","sessionID","callID","delta"],"additionalProperties":false}},"required":["type","name","id","seq","aggregateID","data"],"additionalProperties":false},"SyncEventSessionNextToolInputEnded":{"type":"object","properties":{"type":{"type":"string","enum":["sync"]},"name":{"type":"string","enum":["session.next.tool.input.ended.1"]},"id":{"type":"string"},"seq":{"type":"number"},"aggregateID":{"type":"string","enum":["sessionID"]},"data":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"callID":{"type":"string"},"text":{"type":"string"}},"required":["timestamp","sessionID","callID","text"],"additionalProperties":false}},"required":["type","name","id","seq","aggregateID","data"],"additionalProperties":false},"SyncEventSessionNextToolCalled":{"type":"object","properties":{"type":{"type":"string","enum":["sync"]},"name":{"type":"string","enum":["session.next.tool.called.1"]},"id":{"type":"string"},"seq":{"type":"number"},"aggregateID":{"type":"string","enum":["sessionID"]},"data":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"callID":{"type":"string"},"tool":{"type":"string"},"input":{"type":"object"},"provider":{"type":"object","properties":{"executed":{"type":"boolean"},"metadata":{"type":"object"}},"required":["executed"],"additionalProperties":false}},"required":["timestamp","sessionID","callID","tool","input","provider"],"additionalProperties":false}},"required":["type","name","id","seq","aggregateID","data"],"additionalProperties":false},"SyncEventSessionNextToolProgress":{"type":"object","properties":{"type":{"type":"string","enum":["sync"]},"name":{"type":"string","enum":["session.next.tool.progress.1"]},"id":{"type":"string"},"seq":{"type":"number"},"aggregateID":{"type":"string","enum":["sessionID"]},"data":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"callID":{"type":"string"},"structured":{"type":"object"},"content":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/ToolTextContent"},{"$ref":"#/components/schemas/ToolFileContent"}]}}},"required":["timestamp","sessionID","callID","structured","content"],"additionalProperties":false}},"required":["type","name","id","seq","aggregateID","data"],"additionalProperties":false},"SyncEventSessionNextToolSuccess":{"type":"object","properties":{"type":{"type":"string","enum":["sync"]},"name":{"type":"string","enum":["session.next.tool.success.1"]},"id":{"type":"string"},"seq":{"type":"number"},"aggregateID":{"type":"string","enum":["sessionID"]},"data":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"callID":{"type":"string"},"structured":{"type":"object"},"content":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/ToolTextContent"},{"$ref":"#/components/schemas/ToolFileContent"}]}},"provider":{"type":"object","properties":{"executed":{"type":"boolean"},"metadata":{"type":"object"}},"required":["executed"],"additionalProperties":false}},"required":["timestamp","sessionID","callID","structured","content","provider"],"additionalProperties":false}},"required":["type","name","id","seq","aggregateID","data"],"additionalProperties":false},"SyncEventSessionNextToolFailed":{"type":"object","properties":{"type":{"type":"string","enum":["sync"]},"name":{"type":"string","enum":["session.next.tool.failed.1"]},"id":{"type":"string"},"seq":{"type":"number"},"aggregateID":{"type":"string","enum":["sessionID"]},"data":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"callID":{"type":"string"},"error":{"$ref":"#/components/schemas/SessionErrorUnknown"},"provider":{"type":"object","properties":{"executed":{"type":"boolean"},"metadata":{"type":"object"}},"required":["executed"],"additionalProperties":false}},"required":["timestamp","sessionID","callID","error","provider"],"additionalProperties":false}},"required":["type","name","id","seq","aggregateID","data"],"additionalProperties":false},"SyncEventSessionNextRetried":{"type":"object","properties":{"type":{"type":"string","enum":["sync"]},"name":{"type":"string","enum":["session.next.retried.1"]},"id":{"type":"string"},"seq":{"type":"number"},"aggregateID":{"type":"string","enum":["sessionID"]},"data":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"attempt":{"type":"number"},"error":{"$ref":"#/components/schemas/SessionNextRetry_error"}},"required":["timestamp","sessionID","attempt","error"],"additionalProperties":false}},"required":["type","name","id","seq","aggregateID","data"],"additionalProperties":false},"SyncEventSessionNextCompactionStarted":{"type":"object","properties":{"type":{"type":"string","enum":["sync"]},"name":{"type":"string","enum":["session.next.compaction.started.1"]},"id":{"type":"string"},"seq":{"type":"number"},"aggregateID":{"type":"string","enum":["sessionID"]},"data":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"reason":{"type":"string","enum":["auto","manual"]}},"required":["timestamp","sessionID","reason"],"additionalProperties":false}},"required":["type","name","id","seq","aggregateID","data"],"additionalProperties":false},"SyncEventSessionNextCompactionDelta":{"type":"object","properties":{"type":{"type":"string","enum":["sync"]},"name":{"type":"string","enum":["session.next.compaction.delta.1"]},"id":{"type":"string"},"seq":{"type":"number"},"aggregateID":{"type":"string","enum":["sessionID"]},"data":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"text":{"type":"string"}},"required":["timestamp","sessionID","text"],"additionalProperties":false}},"required":["type","name","id","seq","aggregateID","data"],"additionalProperties":false},"SyncEventSessionNextCompactionEnded":{"type":"object","properties":{"type":{"type":"string","enum":["sync"]},"name":{"type":"string","enum":["session.next.compaction.ended.1"]},"id":{"type":"string"},"seq":{"type":"number"},"aggregateID":{"type":"string","enum":["sessionID"]},"data":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"text":{"type":"string"},"include":{"type":"string"}},"required":["timestamp","sessionID","text"],"additionalProperties":false}},"required":["type","name","id","seq","aggregateID","data"],"additionalProperties":false},"EventServerInstanceDisposed":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["server.instance.disposed"]},"properties":{"type":"object","properties":{"directory":{"type":"string"}},"required":["directory"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventFileEdited":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["file.edited"]},"properties":{"type":"object","properties":{"file":{"type":"string"}},"required":["file"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventFileWatcherUpdated":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["file.watcher.updated"]},"properties":{"type":"object","properties":{"file":{"type":"string"},"event":{"type":"string","enum":["add","change","unlink"]}},"required":["file","event"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventLspClientDiagnostics":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["lsp.client.diagnostics"]},"properties":{"type":"object","properties":{"serverID":{"type":"string"},"path":{"type":"string"}},"required":["serverID","path"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventLspUpdated":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["lsp.updated"]},"properties":{"type":"object","properties":{}}},"required":["id","type","properties"],"additionalProperties":false},"EventMessagePartDelta":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["message.part.delta"]},"properties":{"type":"object","properties":{"sessionID":{"type":"string","pattern":"^ses"},"messageID":{"type":"string","pattern":"^msg"},"partID":{"type":"string","pattern":"^prt"},"field":{"type":"string"},"delta":{"type":"string"}},"required":["sessionID","messageID","partID","field","delta"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventPermissionAsked":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["permission.asked"]},"properties":{"$ref":"#/components/schemas/PermissionRequest"}},"required":["id","type","properties"],"additionalProperties":false},"EventPermissionReplied":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["permission.replied"]},"properties":{"type":"object","properties":{"sessionID":{"type":"string","pattern":"^ses"},"requestID":{"type":"string","pattern":"^per"},"reply":{"type":"string","enum":["once","always","reject"]}},"required":["sessionID","requestID","reply"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventSessionDiff":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.diff"]},"properties":{"type":"object","properties":{"sessionID":{"type":"string","pattern":"^ses"},"diff":{"type":"array","items":{"$ref":"#/components/schemas/SnapshotFileDiff"}}},"required":["sessionID","diff"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventSessionError":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.error"]},"properties":{"type":"object","properties":{"sessionID":{"type":"string","pattern":"^ses"},"error":{"anyOf":[{"$ref":"#/components/schemas/ProviderAuthError"},{"$ref":"#/components/schemas/UnknownError"},{"$ref":"#/components/schemas/MessageOutputLengthError"},{"$ref":"#/components/schemas/MessageAbortedError"},{"$ref":"#/components/schemas/StructuredOutputError"},{"$ref":"#/components/schemas/ContextOverflowError"},{"$ref":"#/components/schemas/APIError"}]}},"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventQuestionAsked":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["question.asked"]},"properties":{"$ref":"#/components/schemas/QuestionRequest"}},"required":["id","type","properties"],"additionalProperties":false},"EventQuestionReplied":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["question.replied"]},"properties":{"$ref":"#/components/schemas/QuestionReplied"}},"required":["id","type","properties"],"additionalProperties":false},"EventQuestionRejected":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["question.rejected"]},"properties":{"$ref":"#/components/schemas/QuestionRejected"}},"required":["id","type","properties"],"additionalProperties":false},"EventTodoUpdated":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["todo.updated"]},"properties":{"type":"object","properties":{"sessionID":{"type":"string","pattern":"^ses"},"todos":{"type":"array","items":{"$ref":"#/components/schemas/Todo"}}},"required":["sessionID","todos"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventSessionStatus":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.status"]},"properties":{"type":"object","properties":{"sessionID":{"type":"string","pattern":"^ses"},"status":{"$ref":"#/components/schemas/SessionStatus"}},"required":["sessionID","status"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventSessionIdle":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.idle"]},"properties":{"type":"object","properties":{"sessionID":{"type":"string","pattern":"^ses"}},"required":["sessionID"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventMcpToolsChanged":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["mcp.tools.changed"]},"properties":{"type":"object","properties":{"server":{"type":"string"}},"required":["server"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventMcpBrowserOpenFailed":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["mcp.browser.open.failed"]},"properties":{"type":"object","properties":{"mcpName":{"type":"string"},"url":{"type":"string"}},"required":["mcpName","url"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventCommandExecuted":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["command.executed"]},"properties":{"type":"object","properties":{"name":{"type":"string"},"sessionID":{"type":"string","pattern":"^ses"},"arguments":{"type":"string"},"messageID":{"type":"string","pattern":"^msg"}},"required":["name","sessionID","arguments","messageID"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventProjectUpdated":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["project.updated"]},"properties":{"$ref":"#/components/schemas/Project"}},"required":["id","type","properties"],"additionalProperties":false},"EventSessionCompacted":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.compacted"]},"properties":{"type":"object","properties":{"sessionID":{"type":"string","pattern":"^ses"}},"required":["sessionID"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventVcsBranchUpdated":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["vcs.branch.updated"]},"properties":{"type":"object","properties":{"branch":{"type":"string"}},"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventWorkspaceReady":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["workspace.ready"]},"properties":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventWorkspaceFailed":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["workspace.failed"]},"properties":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventWorkspaceStatus":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["workspace.status"]},"properties":{"type":"object","properties":{"workspaceID":{"type":"string","pattern":"^wrk"},"status":{"type":"string","enum":["connected","connecting","disconnected","error"]}},"required":["workspaceID","status"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventWorktreeReady":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["worktree.ready"]},"properties":{"type":"object","properties":{"name":{"type":"string"},"branch":{"type":"string"}},"required":["name"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventWorktreeFailed":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["worktree.failed"]},"properties":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventPtyCreated":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["pty.created"]},"properties":{"type":"object","properties":{"info":{"$ref":"#/components/schemas/Pty"}},"required":["info"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventPtyUpdated":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["pty.updated"]},"properties":{"type":"object","properties":{"info":{"$ref":"#/components/schemas/Pty"}},"required":["info"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventPtyExited":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["pty.exited"]},"properties":{"type":"object","properties":{"id":{"type":"string","pattern":"^pty"},"exitCode":{"type":"integer","minimum":0}},"required":["id","exitCode"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventPtyDeleted":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["pty.deleted"]},"properties":{"type":"object","properties":{"id":{"type":"string","pattern":"^pty"}},"required":["id"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventInstallationUpdated":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["installation.updated"]},"properties":{"type":"object","properties":{"version":{"type":"string"}},"required":["version"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventInstallationUpdate-available":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["installation.update-available"]},"properties":{"type":"object","properties":{"version":{"type":"string"}},"required":["version"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventMessageUpdated":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["message.updated"]},"properties":{"type":"object","properties":{"sessionID":{"type":"string","pattern":"^ses"},"info":{"$ref":"#/components/schemas/Message"}},"required":["sessionID","info"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventMessageRemoved":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["message.removed"]},"properties":{"type":"object","properties":{"sessionID":{"type":"string","pattern":"^ses"},"messageID":{"type":"string","pattern":"^msg"}},"required":["sessionID","messageID"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventMessagePartUpdated":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["message.part.updated"]},"properties":{"type":"object","properties":{"sessionID":{"type":"string","pattern":"^ses"},"part":{"$ref":"#/components/schemas/Part"},"time":{"type":"integer","minimum":0}},"required":["sessionID","part","time"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventMessagePartRemoved":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["message.part.removed"]},"properties":{"type":"object","properties":{"sessionID":{"type":"string","pattern":"^ses"},"messageID":{"type":"string","pattern":"^msg"},"partID":{"type":"string","pattern":"^prt"}},"required":["sessionID","messageID","partID"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventSessionCreated":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.created"]},"properties":{"type":"object","properties":{"sessionID":{"type":"string","pattern":"^ses"},"info":{"$ref":"#/components/schemas/Session"}},"required":["sessionID","info"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventSessionUpdated":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.updated"]},"properties":{"type":"object","properties":{"sessionID":{"type":"string","pattern":"^ses"},"info":{"$ref":"#/components/schemas/Session"}},"required":["sessionID","info"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventSessionDeleted":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.deleted"]},"properties":{"type":"object","properties":{"sessionID":{"type":"string","pattern":"^ses"},"info":{"$ref":"#/components/schemas/Session"}},"required":["sessionID","info"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventSessionNextAgentSwitched":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.next.agent.switched"]},"properties":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"agent":{"type":"string"}},"required":["timestamp","sessionID","agent"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventSessionNextModelSwitched":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.next.model.switched"]},"properties":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"model":{"type":"object","properties":{"id":{"type":"string"},"providerID":{"type":"string"},"variant":{"type":"string"}},"required":["id","providerID","variant"],"additionalProperties":false}},"required":["timestamp","sessionID","model"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"PromptSource":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"},"text":{"type":"string"}},"required":["start","end","text"],"additionalProperties":false},"PromptFileAttachment":{"type":"object","properties":{"uri":{"type":"string"},"mime":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"source":{"$ref":"#/components/schemas/PromptSource"}},"required":["uri","mime"],"additionalProperties":false},"PromptAgentAttachment":{"type":"object","properties":{"name":{"type":"string"},"source":{"$ref":"#/components/schemas/PromptSource"}},"required":["name"],"additionalProperties":false},"PromptReferenceAttachment":{"type":"object","properties":{"name":{"type":"string"},"kind":{"type":"string","enum":["local","git","invalid"]},"uri":{"type":"string"},"repository":{"type":"string"},"branch":{"type":"string"},"target":{"type":"string"},"targetUri":{"type":"string"},"problem":{"type":"string"},"source":{"$ref":"#/components/schemas/PromptSource"}},"required":["name","kind"],"additionalProperties":false},"EventSessionNextPrompted":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.next.prompted"]},"properties":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"prompt":{"$ref":"#/components/schemas/Prompt"}},"required":["timestamp","sessionID","prompt"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventSessionNextSynthetic":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.next.synthetic"]},"properties":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"text":{"type":"string"}},"required":["timestamp","sessionID","text"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventSessionNextShellStarted":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.next.shell.started"]},"properties":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"callID":{"type":"string"},"command":{"type":"string"}},"required":["timestamp","sessionID","callID","command"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventSessionNextShellEnded":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.next.shell.ended"]},"properties":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"callID":{"type":"string"},"output":{"type":"string"}},"required":["timestamp","sessionID","callID","output"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventSessionNextStepStarted":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.next.step.started"]},"properties":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"agent":{"type":"string"},"model":{"type":"object","properties":{"id":{"type":"string"},"providerID":{"type":"string"},"variant":{"type":"string"}},"required":["id","providerID","variant"],"additionalProperties":false},"snapshot":{"type":"string"}},"required":["timestamp","sessionID","agent","model"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventSessionNextStepEnded":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.next.step.ended"]},"properties":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"finish":{"type":"string"},"cost":{"type":"number"},"tokens":{"type":"object","properties":{"input":{"type":"number"},"output":{"type":"number"},"reasoning":{"type":"number"},"cache":{"type":"object","properties":{"read":{"type":"number"},"write":{"type":"number"}},"required":["read","write"],"additionalProperties":false}},"required":["input","output","reasoning","cache"],"additionalProperties":false},"snapshot":{"type":"string"}},"required":["timestamp","sessionID","finish","cost","tokens"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"SessionErrorUnknown":{"type":"object","properties":{"type":{"type":"string","enum":["unknown"]},"message":{"type":"string"}},"required":["type","message"],"additionalProperties":false},"EventSessionNextStepFailed":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.next.step.failed"]},"properties":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"error":{"$ref":"#/components/schemas/SessionErrorUnknown"}},"required":["timestamp","sessionID","error"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventSessionNextTextStarted":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.next.text.started"]},"properties":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"}},"required":["timestamp","sessionID"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventSessionNextTextDelta":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.next.text.delta"]},"properties":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"delta":{"type":"string"}},"required":["timestamp","sessionID","delta"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventSessionNextTextEnded":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.next.text.ended"]},"properties":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"text":{"type":"string"}},"required":["timestamp","sessionID","text"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventSessionNextReasoningStarted":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.next.reasoning.started"]},"properties":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"reasoningID":{"type":"string"}},"required":["timestamp","sessionID","reasoningID"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventSessionNextReasoningDelta":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.next.reasoning.delta"]},"properties":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"reasoningID":{"type":"string"},"delta":{"type":"string"}},"required":["timestamp","sessionID","reasoningID","delta"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventSessionNextReasoningEnded":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.next.reasoning.ended"]},"properties":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"reasoningID":{"type":"string"},"text":{"type":"string"}},"required":["timestamp","sessionID","reasoningID","text"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventSessionNextToolInputStarted":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.next.tool.input.started"]},"properties":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"callID":{"type":"string"},"name":{"type":"string"}},"required":["timestamp","sessionID","callID","name"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventSessionNextToolInputDelta":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.next.tool.input.delta"]},"properties":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"callID":{"type":"string"},"delta":{"type":"string"}},"required":["timestamp","sessionID","callID","delta"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventSessionNextToolInputEnded":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.next.tool.input.ended"]},"properties":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"callID":{"type":"string"},"text":{"type":"string"}},"required":["timestamp","sessionID","callID","text"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventSessionNextToolCalled":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.next.tool.called"]},"properties":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"callID":{"type":"string"},"tool":{"type":"string"},"input":{"type":"object"},"provider":{"type":"object","properties":{"executed":{"type":"boolean"},"metadata":{"type":"object"}},"required":["executed"],"additionalProperties":false}},"required":["timestamp","sessionID","callID","tool","input","provider"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"ToolTextContent":{"type":"object","properties":{"type":{"type":"string","enum":["text"]},"text":{"type":"string"}},"required":["type","text"],"additionalProperties":false},"ToolFileContent":{"type":"object","properties":{"type":{"type":"string","enum":["file"]},"uri":{"type":"string"},"mime":{"type":"string"},"name":{"type":"string"}},"required":["type","uri","mime"],"additionalProperties":false},"EventSessionNextToolProgress":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.next.tool.progress"]},"properties":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"callID":{"type":"string"},"structured":{"type":"object"},"content":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/ToolTextContent"},{"$ref":"#/components/schemas/ToolFileContent"}]}}},"required":["timestamp","sessionID","callID","structured","content"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventSessionNextToolSuccess":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.next.tool.success"]},"properties":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"callID":{"type":"string"},"structured":{"type":"object"},"content":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/ToolTextContent"},{"$ref":"#/components/schemas/ToolFileContent"}]}},"provider":{"type":"object","properties":{"executed":{"type":"boolean"},"metadata":{"type":"object"}},"required":["executed"],"additionalProperties":false}},"required":["timestamp","sessionID","callID","structured","content","provider"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventSessionNextToolFailed":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.next.tool.failed"]},"properties":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"callID":{"type":"string"},"error":{"$ref":"#/components/schemas/SessionErrorUnknown"},"provider":{"type":"object","properties":{"executed":{"type":"boolean"},"metadata":{"type":"object"}},"required":["executed"],"additionalProperties":false}},"required":["timestamp","sessionID","callID","error","provider"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"SessionNextRetry_error":{"type":"object","properties":{"message":{"type":"string"},"statusCode":{"type":"number"},"isRetryable":{"type":"boolean"},"responseHeaders":{"type":"object","additionalProperties":{"type":"string"}},"responseBody":{"type":"string"},"metadata":{"type":"object","additionalProperties":{"type":"string"}}},"required":["message","isRetryable"],"additionalProperties":false},"EventSessionNextRetried":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.next.retried"]},"properties":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"attempt":{"type":"number"},"error":{"$ref":"#/components/schemas/SessionNextRetry_error"}},"required":["timestamp","sessionID","attempt","error"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventSessionNextCompactionStarted":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.next.compaction.started"]},"properties":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"reason":{"type":"string","enum":["auto","manual"]}},"required":["timestamp","sessionID","reason"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventSessionNextCompactionDelta":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.next.compaction.delta"]},"properties":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"text":{"type":"string"}},"required":["timestamp","sessionID","text"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventSessionNextCompactionEnded":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["session.next.compaction.ended"]},"properties":{"type":"object","properties":{"timestamp":{"type":"number"},"sessionID":{"type":"string","pattern":"^ses"},"text":{"type":"string"},"include":{"type":"string"}},"required":["timestamp","sessionID","text"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"EventServerConnected":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["server.connected"]},"properties":{"type":"object","properties":{}}},"required":["id","type","properties"],"additionalProperties":false},"EventGlobalDisposed":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["global.disposed"]},"properties":{"type":"object","properties":{}}},"required":["id","type","properties"],"additionalProperties":false},"ModelV2Info":{"type":"object","properties":{"id":{"type":"string"},"apiID":{"type":"string"},"providerID":{"type":"string"},"family":{"type":"string"},"name":{"type":"string"},"endpoint":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["unknown"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["openai/responses"]},"url":{"type":"string"},"websocket":{"type":"boolean"}},"required":["type","url"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["openai/completions"]},"url":{"type":"string"},"reasoning":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["reasoning_content"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["reasoning_details"]}},"required":["type"],"additionalProperties":false}]}},"required":["type","url"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["anthropic/messages"]},"url":{"type":"string"}},"required":["type","url"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["aisdk"]},"package":{"type":"string"},"url":{"type":"string"}},"required":["type","package"],"additionalProperties":false}]},"capabilities":{"type":"object","properties":{"tools":{"type":"boolean"},"input":{"type":"array","items":{"type":"string"}},"output":{"type":"array","items":{"type":"string"}}},"required":["tools","input","output"],"additionalProperties":false},"options":{"type":"object","properties":{"headers":{"type":"object","additionalProperties":{"type":"string"}},"body":{"type":"object"},"aisdk":{"type":"object","properties":{"provider":{"type":"object"},"request":{"type":"object"}},"required":["provider","request"],"additionalProperties":false},"variant":{"type":"string"}},"required":["headers","body","aisdk"],"additionalProperties":false},"variants":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"headers":{"type":"object","additionalProperties":{"type":"string"}},"body":{"type":"object"},"aisdk":{"type":"object","properties":{"provider":{"type":"object"},"request":{"type":"object"}},"required":["provider","request"],"additionalProperties":false}},"required":["id","headers","body","aisdk"],"additionalProperties":false}},"time":{"type":"object","properties":{"released":{"anyOf":[{"type":"number"},{"type":"string","enum":["NaN"]},{"type":"string","enum":["Infinity"]},{"type":"string","enum":["-Infinity"]},{"type":"string","enum":["Infinity","-Infinity","NaN"]}]}},"required":["released"],"additionalProperties":false},"cost":{"type":"array","items":{"type":"object","properties":{"tier":{"type":"object","properties":{"type":{"type":"string","enum":["context"]},"size":{"type":"integer"}},"required":["type","size"],"additionalProperties":false},"input":{"type":"number"},"output":{"type":"number"},"cache":{"type":"object","properties":{"read":{"type":"number"},"write":{"type":"number"}},"required":["read","write"],"additionalProperties":false}},"required":["input","output","cache"],"additionalProperties":false}},"status":{"type":"string","enum":["alpha","beta","deprecated","active"]},"enabled":{"type":"boolean"},"limit":{"type":"object","properties":{"context":{"type":"integer"},"input":{"type":"integer"},"output":{"type":"integer"}},"required":["context","output"],"additionalProperties":false}},"required":["id","apiID","providerID","name","endpoint","capabilities","options","variants","time","cost","status","enabled","limit"],"additionalProperties":false},"EventCatalogModelUpdated":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["catalog.model.updated"]},"properties":{"type":"object","properties":{"model":{"$ref":"#/components/schemas/ModelV2Info"}},"required":["model"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"SessionInfo":{"type":"object","properties":{"id":{"type":"string","pattern":"^ses"},"parentID":{"type":"string","pattern":"^ses"},"projectID":{"type":"string"},"workspaceID":{"type":"string","pattern":"^wrk"},"path":{"type":"string"},"agent":{"type":"string"},"model":{"type":"object","properties":{"id":{"type":"string"},"providerID":{"type":"string"},"variant":{"type":"string"}},"required":["id","providerID","variant"],"additionalProperties":false},"cost":{"type":"number"},"tokens":{"type":"object","properties":{"input":{"type":"number"},"output":{"type":"number"},"reasoning":{"type":"number"},"cache":{"type":"object","properties":{"read":{"type":"number"},"write":{"type":"number"}},"required":["read","write"],"additionalProperties":false}},"required":["input","output","reasoning","cache"],"additionalProperties":false},"time":{"type":"object","properties":{"created":{"type":"number"},"updated":{"type":"number"},"archived":{"type":"number"}},"required":["created","updated"],"additionalProperties":false},"title":{"type":"string"}},"required":["id","projectID","cost","tokens","time","title"],"additionalProperties":false},"SessionDelivery":{"type":"string","enum":["immediate","deferred"]},"SessionMessageAgentSwitched":{"type":"object","properties":{"id":{"type":"string"},"metadata":{"type":"object"},"time":{"type":"object","properties":{"created":{"type":"number"}},"required":["created"],"additionalProperties":false},"type":{"type":"string","enum":["agent-switched"]},"agent":{"type":"string"}},"required":["id","time","type","agent"],"additionalProperties":false},"SessionMessageModelSwitched":{"type":"object","properties":{"id":{"type":"string"},"metadata":{"type":"object"},"time":{"type":"object","properties":{"created":{"type":"number"}},"required":["created"],"additionalProperties":false},"type":{"type":"string","enum":["model-switched"]},"model":{"type":"object","properties":{"id":{"type":"string"},"providerID":{"type":"string"},"variant":{"type":"string"}},"required":["id","providerID","variant"],"additionalProperties":false}},"required":["id","time","type","model"],"additionalProperties":false},"SessionMessageUser":{"type":"object","properties":{"id":{"type":"string"},"metadata":{"type":"object"},"time":{"type":"object","properties":{"created":{"type":"number"}},"required":["created"],"additionalProperties":false},"text":{"type":"string"},"files":{"type":"array","items":{"$ref":"#/components/schemas/PromptFileAttachment"}},"agents":{"type":"array","items":{"$ref":"#/components/schemas/PromptAgentAttachment"}},"references":{"type":"array","items":{"$ref":"#/components/schemas/PromptReferenceAttachment"}},"type":{"type":"string","enum":["user"]}},"required":["id","time","text","type"],"additionalProperties":false},"SessionMessageSynthetic":{"type":"object","properties":{"id":{"type":"string"},"metadata":{"type":"object"},"time":{"type":"object","properties":{"created":{"type":"number"}},"required":["created"],"additionalProperties":false},"sessionID":{"type":"string","pattern":"^ses"},"text":{"type":"string"},"type":{"type":"string","enum":["synthetic"]}},"required":["id","time","sessionID","text","type"],"additionalProperties":false},"SessionMessageShell":{"type":"object","properties":{"id":{"type":"string"},"metadata":{"type":"object"},"time":{"type":"object","properties":{"created":{"type":"number"},"completed":{"type":"number"}},"required":["created"],"additionalProperties":false},"type":{"type":"string","enum":["shell"]},"callID":{"type":"string"},"command":{"type":"string"},"output":{"type":"string"}},"required":["id","time","type","callID","command","output"],"additionalProperties":false},"SessionMessageAssistantText":{"type":"object","properties":{"type":{"type":"string","enum":["text"]},"text":{"type":"string"}},"required":["type","text"],"additionalProperties":false},"SessionMessageAssistantReasoning":{"type":"object","properties":{"type":{"type":"string","enum":["reasoning"]},"id":{"type":"string"},"text":{"type":"string"}},"required":["type","id","text"],"additionalProperties":false},"SessionMessageToolStatePending":{"type":"object","properties":{"status":{"type":"string","enum":["pending"]},"input":{"type":"string"}},"required":["status","input"],"additionalProperties":false},"SessionMessageToolStateRunning":{"type":"object","properties":{"status":{"type":"string","enum":["running"]},"input":{"type":"object"},"structured":{"type":"object"},"content":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/ToolTextContent"},{"$ref":"#/components/schemas/ToolFileContent"}]}}},"required":["status","input","structured","content"],"additionalProperties":false},"SessionMessageToolStateCompleted":{"type":"object","properties":{"status":{"type":"string","enum":["completed"]},"input":{"type":"object"},"attachments":{"type":"array","items":{"$ref":"#/components/schemas/PromptFileAttachment"}},"content":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/ToolTextContent"},{"$ref":"#/components/schemas/ToolFileContent"}]}},"structured":{"type":"object"}},"required":["status","input","content","structured"],"additionalProperties":false},"SessionMessageToolStateError":{"type":"object","properties":{"status":{"type":"string","enum":["error"]},"input":{"type":"object"},"content":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/ToolTextContent"},{"$ref":"#/components/schemas/ToolFileContent"}]}},"structured":{"type":"object"},"error":{"$ref":"#/components/schemas/SessionErrorUnknown"}},"required":["status","input","content","structured","error"],"additionalProperties":false},"SessionMessageAssistantTool":{"type":"object","properties":{"type":{"type":"string","enum":["tool"]},"id":{"type":"string"},"name":{"type":"string"},"provider":{"type":"object","properties":{"executed":{"type":"boolean"},"metadata":{"type":"object"}},"required":["executed"],"additionalProperties":false},"state":{"anyOf":[{"$ref":"#/components/schemas/SessionMessageToolStatePending"},{"$ref":"#/components/schemas/SessionMessageToolStateRunning"},{"$ref":"#/components/schemas/SessionMessageToolStateCompleted"},{"$ref":"#/components/schemas/SessionMessageToolStateError"}]},"time":{"type":"object","properties":{"created":{"type":"number"},"ran":{"type":"number"},"completed":{"type":"number"},"pruned":{"type":"number"}},"required":["created"],"additionalProperties":false}},"required":["type","id","name","state","time"],"additionalProperties":false},"SessionMessageAssistant":{"type":"object","properties":{"id":{"type":"string"},"metadata":{"type":"object"},"time":{"type":"object","properties":{"created":{"type":"number"},"completed":{"type":"number"}},"required":["created"],"additionalProperties":false},"type":{"type":"string","enum":["assistant"]},"agent":{"type":"string"},"model":{"type":"object","properties":{"id":{"type":"string"},"providerID":{"type":"string"},"variant":{"type":"string"}},"required":["id","providerID","variant"],"additionalProperties":false},"content":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/SessionMessageAssistantText"},{"$ref":"#/components/schemas/SessionMessageAssistantReasoning"},{"$ref":"#/components/schemas/SessionMessageAssistantTool"}]}},"snapshot":{"type":"object","properties":{"start":{"type":"string"},"end":{"type":"string"}},"additionalProperties":false},"finish":{"type":"string"},"cost":{"type":"number"},"tokens":{"type":"object","properties":{"input":{"type":"number"},"output":{"type":"number"},"reasoning":{"type":"number"},"cache":{"type":"object","properties":{"read":{"type":"number"},"write":{"type":"number"}},"required":["read","write"],"additionalProperties":false}},"required":["input","output","reasoning","cache"],"additionalProperties":false},"error":{"$ref":"#/components/schemas/SessionErrorUnknown"}},"required":["id","time","type","agent","model","content"],"additionalProperties":false},"SessionMessageCompaction":{"type":"object","properties":{"type":{"type":"string","enum":["compaction"]},"reason":{"type":"string","enum":["auto","manual"]},"summary":{"type":"string"},"include":{"type":"string"},"id":{"type":"string"},"metadata":{"type":"object"},"time":{"type":"object","properties":{"created":{"type":"number"}},"required":["created"],"additionalProperties":false}},"required":["type","reason","summary","id","time"],"additionalProperties":false},"SessionMessage":{"anyOf":[{"$ref":"#/components/schemas/SessionMessageAgentSwitched"},{"$ref":"#/components/schemas/SessionMessageModelSwitched"},{"$ref":"#/components/schemas/SessionMessageUser"},{"$ref":"#/components/schemas/SessionMessageSynthetic"},{"$ref":"#/components/schemas/SessionMessageShell"},{"$ref":"#/components/schemas/SessionMessageAssistant"},{"$ref":"#/components/schemas/SessionMessageCompaction"}]},"ProviderV2Info":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"enabled":{"anyOf":[{"type":"boolean","enum":[false]},{"type":"object","properties":{"via":{"type":"string","enum":["env"]},"name":{"type":"string"}},"required":["via","name"],"additionalProperties":false},{"type":"object","properties":{"via":{"type":"string","enum":["auth"]},"service":{"type":"string"}},"required":["via","service"],"additionalProperties":false},{"type":"object","properties":{"via":{"type":"string","enum":["custom"]},"data":{"type":"object"}},"required":["via","data"],"additionalProperties":false}]},"env":{"type":"array","items":{"type":"string"}},"endpoint":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["unknown"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["openai/responses"]},"url":{"type":"string"},"websocket":{"type":"boolean"}},"required":["type","url"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["openai/completions"]},"url":{"type":"string"},"reasoning":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["reasoning_content"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["reasoning_details"]}},"required":["type"],"additionalProperties":false}]}},"required":["type","url"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["anthropic/messages"]},"url":{"type":"string"}},"required":["type","url"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["aisdk"]},"package":{"type":"string"},"url":{"type":"string"}},"required":["type","package"],"additionalProperties":false}]},"options":{"type":"object","properties":{"headers":{"type":"object","additionalProperties":{"type":"string"}},"body":{"type":"object"},"aisdk":{"type":"object","properties":{"provider":{"type":"object"},"request":{"type":"object"}},"required":["provider","request"],"additionalProperties":false}},"required":["headers","body","aisdk"],"additionalProperties":false}},"required":["id","name","enabled","env","endpoint","options"],"additionalProperties":false},"EventTuiToastShow1":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tui.toast.show"]},"properties":{"type":"object","properties":{"title":{"type":"string"},"message":{"type":"string"},"variant":{"type":"string","enum":["info","success","warning","error"]},"duration":{"type":"integer","exclusiveMinimum":0}},"required":["message","variant"],"additionalProperties":false}},"required":["id","type","properties"],"additionalProperties":false},"ModelV2Info1":{"type":"object","properties":{"id":{"type":"string"},"apiID":{"type":"string"},"providerID":{"type":"string"},"family":{"type":"string"},"name":{"type":"string"},"endpoint":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["unknown"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["openai/responses"]},"url":{"type":"string"},"websocket":{"type":"boolean"}},"required":["type","url"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["openai/completions"]},"url":{"type":"string"},"reasoning":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["reasoning_content"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["reasoning_details"]}},"required":["type"],"additionalProperties":false}]}},"required":["type","url"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["anthropic/messages"]},"url":{"type":"string"}},"required":["type","url"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["aisdk"]},"package":{"type":"string"},"url":{"type":"string"}},"required":["type","package"],"additionalProperties":false}]},"capabilities":{"type":"object","properties":{"tools":{"type":"boolean"},"input":{"type":"array","items":{"type":"string"}},"output":{"type":"array","items":{"type":"string"}}},"required":["tools","input","output"],"additionalProperties":false},"options":{"type":"object","properties":{"headers":{"type":"object","additionalProperties":{"type":"string"}},"body":{"type":"object"},"aisdk":{"type":"object","properties":{"provider":{"type":"object"},"request":{"type":"object"}},"required":["provider","request"],"additionalProperties":false},"variant":{"type":"string"}},"required":["headers","body","aisdk"],"additionalProperties":false},"variants":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"headers":{"type":"object","additionalProperties":{"type":"string"}},"body":{"type":"object"},"aisdk":{"type":"object","properties":{"provider":{"type":"object"},"request":{"type":"object"}},"required":["provider","request"],"additionalProperties":false}},"required":["id","headers","body","aisdk"],"additionalProperties":false}},"time":{"type":"object","properties":{"released":{"anyOf":[{"type":"number"},{"type":"string","enum":["NaN"]},{"type":"string","enum":["Infinity"]},{"type":"string","enum":["-Infinity"]}]}},"required":["released"],"additionalProperties":false},"cost":{"type":"array","items":{"type":"object","properties":{"tier":{"type":"object","properties":{"type":{"type":"string","enum":["context"]},"size":{"type":"integer"}},"required":["type","size"],"additionalProperties":false},"input":{"type":"number"},"output":{"type":"number"},"cache":{"type":"object","properties":{"read":{"type":"number"},"write":{"type":"number"}},"required":["read","write"],"additionalProperties":false}},"required":["input","output","cache"],"additionalProperties":false}},"status":{"type":"string","enum":["alpha","beta","deprecated","active"]},"enabled":{"type":"boolean"},"limit":{"type":"object","properties":{"context":{"type":"integer"},"input":{"type":"integer"},"output":{"type":"integer"}},"required":["context","output"],"additionalProperties":false}},"required":["id","apiID","providerID","name","endpoint","capabilities","options","variants","time","cost","status","enabled","limit"],"additionalProperties":false},"BadRequestError":{"type":"object","required":["name","data"],"properties":{"name":{"type":"string","enum":["BadRequest"]},"data":{"type":"object","required":["message"],"properties":{"message":{"type":"string"},"kind":{"type":"string","enum":["Params","Headers","Query","Body","Payload"]}}}}}}},"security":[],"tags":[{"name":"control","description":"Control plane routes."},{"name":"global","description":"Global server routes."},{"name":"event","description":"Instance event stream route."},{"name":"config","description":"Experimental HttpApi config routes."},{"name":"experimental","description":"Experimental HttpApi read-only routes."},{"name":"file","description":"Experimental HttpApi file routes."},{"name":"instance","description":"Experimental HttpApi instance read routes."},{"name":"mcp","description":"Experimental HttpApi MCP routes."},{"name":"project","description":"Experimental HttpApi project routes."},{"name":"pty","description":"Experimental HttpApi PTY routes."},{"name":"question","description":"Question routes."},{"name":"permission","description":"Experimental HttpApi permission routes."},{"name":"provider","description":"Experimental HttpApi provider routes."},{"name":"session","description":"Experimental HttpApi session routes."},{"name":"sync","description":"Experimental HttpApi sync routes."},{"name":"v2","description":"Experimental v2 routes."},{"name":"v2 messages","description":"Experimental v2 message routes."},{"name":"v2 models","description":"Experimental v2 model routes."},{"name":"v2 providers","description":"Experimental v2 provider routes."},{"name":"tui","description":"Experimental HttpApi TUI routes."},{"name":"workspace","description":"Experimental HttpApi workspace routes."},{"name":"pty","description":"PTY websocket route."}]}