forked from frumu-ai/tandem
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathopenapi_temp.json
More file actions
1 lines (1 loc) · 258 KB
/
openapi_temp.json
File metadata and controls
1 lines (1 loc) · 258 KB
1
{"openapi":"3.1.1","info":{"title":"opencode","description":"opencode api","version":"0.0.3"},"paths":{"/global/health":{"get":{"operationId":"global.health","summary":"Get health","description":"Get health information about the OpenCode server.","responses":{"200":{"description":"Health information","content":{"application/json":{"schema":{"type":"object","properties":{"healthy":{"type":"boolean","const":true},"version":{"type":"string"}},"required":["healthy","version"]}}}}}}},"/global/event":{"get":{"operationId":"global.event","summary":"Get global events","description":"Subscribe to global events from the OpenCode system using server-sent events.","responses":{"200":{"description":"Event stream","content":{"text/event-stream":{"schema":{"$ref":"#/components/schemas/GlobalEvent"}}}}}}},"/global/dispose":{"post":{"operationId":"global.dispose","summary":"Dispose instance","description":"Clean up and dispose all OpenCode instances, releasing all resources.","responses":{"200":{"description":"Global disposed","content":{"application/json":{"schema":{"type":"boolean"}}}}}}},"/project":{"get":{"operationId":"project.list","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"List all projects","description":"Get a list of projects that have been opened with OpenCode.","responses":{"200":{"description":"List of projects","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Project"}}}}}}}},"/project/current":{"get":{"operationId":"project.current","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"Get current project","description":"Retrieve the currently active project that OpenCode is working with.","responses":{"200":{"description":"Current project information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}}}}},"/project/{projectID}":{"patch":{"operationId":"project.update","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"projectID","schema":{"type":"string"},"required":true}],"summary":"Update project","description":"Update project properties such as name, icon and color.","responses":{"200":{"description":"Updated project information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"icon":{"type":"object","properties":{"url":{"type":"string"},"color":{"type":"string"}}}}}}}}}},"/pty":{"get":{"operationId":"pty.list","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"List PTY sessions","description":"Get a list of all active pseudo-terminal (PTY) sessions managed by OpenCode.","responses":{"200":{"description":"List of sessions","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Pty"}}}}}}},"post":{"operationId":"pty.create","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"Create PTY session","description":"Create a new pseudo-terminal (PTY) session for running shell commands and processes.","responses":{"200":{"description":"Created session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pty"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"command":{"type":"string"},"args":{"type":"array","items":{"type":"string"}},"cwd":{"type":"string"},"title":{"type":"string"},"env":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}}}}}}}},"/pty/{ptyID}":{"get":{"operationId":"pty.get","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"ptyID","schema":{"type":"string"},"required":true}],"summary":"Get PTY session","description":"Retrieve detailed information about a specific pseudo-terminal (PTY) session.","responses":{"200":{"description":"Session info","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pty"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}}},"put":{"operationId":"pty.update","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"ptyID","schema":{"type":"string"},"required":true}],"summary":"Update PTY session","description":"Update properties of an existing pseudo-terminal (PTY) session.","responses":{"200":{"description":"Updated session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pty"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string"},"size":{"type":"object","properties":{"rows":{"type":"number"},"cols":{"type":"number"}},"required":["rows","cols"]}}}}}}},"delete":{"operationId":"pty.remove","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"ptyID","schema":{"type":"string"},"required":true}],"summary":"Remove PTY session","description":"Remove and terminate a specific pseudo-terminal (PTY) session.","responses":{"200":{"description":"Session removed","content":{"application/json":{"schema":{"type":"boolean"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}}}},"/pty/{ptyID}/connect":{"get":{"operationId":"pty.connect","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"ptyID","schema":{"type":"string"},"required":true}],"summary":"Connect to PTY session","description":"Establish a WebSocket connection to interact with a pseudo-terminal (PTY) session in real-time.","responses":{"200":{"description":"Connected session","content":{"application/json":{"schema":{"type":"boolean"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}}}},"/config":{"get":{"operationId":"config.get","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"Get configuration","description":"Retrieve the current OpenCode configuration settings and preferences.","responses":{"200":{"description":"Get config info","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Config"}}}}}},"patch":{"operationId":"config.update","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"Update configuration","description":"Update OpenCode configuration settings and preferences.","responses":{"200":{"description":"Successfully updated config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Config"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Config"}}}}}},"/config/providers":{"get":{"operationId":"config.providers","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"List config providers","description":"Get a list of all configured AI providers and their default models.","responses":{"200":{"description":"List of providers","content":{"application/json":{"schema":{"type":"object","properties":{"providers":{"type":"array","items":{"$ref":"#/components/schemas/Provider"}},"default":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}},"required":["providers","default"]}}}}}}},"/experimental/tool/ids":{"get":{"operationId":"tool.ids","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"List tool IDs","description":"Get a list of all available tool IDs, including both built-in tools and dynamically registered tools.","responses":{"200":{"description":"Tool IDs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolIDs"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}}}},"/experimental/tool":{"get":{"operationId":"tool.list","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"query","name":"provider","schema":{"type":"string"},"required":true},{"in":"query","name":"model","schema":{"type":"string"},"required":true}],"summary":"List tools","description":"Get a list of available tools with their JSON schema parameters for a specific provider and model combination.","responses":{"200":{"description":"Tools","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolList"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}}}},"/experimental/worktree":{"post":{"operationId":"worktree.create","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"Create worktree","description":"Create a new git worktree for the current project.","responses":{"200":{"description":"Worktree created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Worktree"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorktreeCreateInput"}}}}},"get":{"operationId":"worktree.list","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"List worktrees","description":"List all sandbox worktrees for the current project.","responses":{"200":{"description":"List of worktree directories","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}}}}}},"/experimental/resource":{"get":{"operationId":"experimental.resource.list","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"Get MCP resources","description":"Get all available MCP resources from connected servers. Optionally filter by name.","responses":{"200":{"description":"MCP resources","content":{"application/json":{"schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/McpResource"}}}}}}}},"/session":{"get":{"operationId":"session.list","parameters":[{"in":"query","name":"directory","schema":{"type":"string"},"description":"Filter sessions by project directory"},{"in":"query","name":"roots","schema":{"type":"boolean"},"description":"Only return root sessions (no parentID)"},{"in":"query","name":"start","schema":{"type":"number"},"description":"Filter sessions updated on or after this timestamp (milliseconds since epoch)"},{"in":"query","name":"search","schema":{"type":"string"},"description":"Filter sessions by title (case-insensitive)"},{"in":"query","name":"limit","schema":{"type":"number"},"description":"Maximum number of sessions to return"}],"summary":"List sessions","description":"Get a list of all OpenCode sessions, sorted by most recently updated.","responses":{"200":{"description":"List of sessions","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Session"}}}}}}},"post":{"operationId":"session.create","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"Create session","description":"Create a new OpenCode session for interacting with AI assistants and managing conversations.","responses":{"200":{"description":"Successfully created session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Session"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"parentID":{"type":"string","pattern":"^ses.*"},"title":{"type":"string"},"permission":{"$ref":"#/components/schemas/PermissionRuleset"}}}}}}}},"/session/status":{"get":{"operationId":"session.status","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"Get session status","description":"Retrieve the current status of all sessions, including active, idle, and completed states.","responses":{"200":{"description":"Get session status","content":{"application/json":{"schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/SessionStatus"}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}}}},"/session/{sessionID}":{"get":{"operationId":"session.get","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"sessionID","schema":{"type":"string","pattern":"^ses.*"},"required":true}],"summary":"Get session","description":"Retrieve detailed information about a specific OpenCode session.","tags":["Session"],"responses":{"200":{"description":"Get session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Session"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}}},"delete":{"operationId":"session.delete","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"sessionID","schema":{"type":"string","pattern":"^ses.*"},"required":true}],"summary":"Delete session","description":"Delete a session and permanently remove all associated data, including messages and history.","responses":{"200":{"description":"Successfully deleted session","content":{"application/json":{"schema":{"type":"boolean"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}}},"patch":{"operationId":"session.update","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"sessionID","schema":{"type":"string"},"required":true}],"summary":"Update session","description":"Update properties of an existing session, such as title or other metadata.","responses":{"200":{"description":"Successfully updated session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Session"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string"},"time":{"type":"object","properties":{"archived":{"type":"number"}}}}}}}}}},"/session/{sessionID}/children":{"get":{"operationId":"session.children","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"sessionID","schema":{"type":"string","pattern":"^ses.*"},"required":true}],"summary":"Get session children","tags":["Session"],"description":"Retrieve all child sessions that were forked from the specified parent session.","responses":{"200":{"description":"List of children","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Session"}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}}}},"/session/{sessionID}/todo":{"get":{"operationId":"session.todo","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"sessionID","schema":{"type":"string"},"required":true,"description":"Session ID"}],"summary":"Get session todos","description":"Retrieve the todo list associated with a specific session, showing tasks and action items.","responses":{"200":{"description":"Todo list","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Todo"}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}}}},"/session/{sessionID}/init":{"post":{"operationId":"session.init","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"sessionID","schema":{"type":"string"},"required":true,"description":"Session ID"}],"summary":"Initialize session","description":"Analyze the current application and create an AGENTS.md file with project-specific agent configurations.","responses":{"200":{"description":"200","content":{"application/json":{"schema":{"type":"boolean"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"modelID":{"type":"string"},"providerID":{"type":"string"},"messageID":{"type":"string","pattern":"^msg.*"}},"required":["modelID","providerID","messageID"]}}}}}},"/session/{sessionID}/fork":{"post":{"operationId":"session.fork","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"sessionID","schema":{"type":"string","pattern":"^ses.*"},"required":true}],"summary":"Fork session","description":"Create a new session by forking an existing session at a specific message point.","responses":{"200":{"description":"200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Session"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"messageID":{"type":"string","pattern":"^msg.*"}}}}}}}},"/session/{sessionID}/abort":{"post":{"operationId":"session.abort","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"sessionID","schema":{"type":"string"},"required":true}],"summary":"Abort session","description":"Abort an active session and stop any ongoing AI processing or command execution.","responses":{"200":{"description":"Aborted session","content":{"application/json":{"schema":{"type":"boolean"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}}}},"/session/{sessionID}/share":{"post":{"operationId":"session.share","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"sessionID","schema":{"type":"string"},"required":true}],"summary":"Share session","description":"Create a shareable link for a session, allowing others to view the conversation.","responses":{"200":{"description":"Successfully shared session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Session"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}}},"delete":{"operationId":"session.unshare","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"sessionID","schema":{"type":"string","pattern":"^ses.*"},"required":true}],"summary":"Unshare session","description":"Remove the shareable link for a session, making it private again.","responses":{"200":{"description":"Successfully unshared session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Session"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}}}},"/session/{sessionID}/diff":{"get":{"operationId":"session.diff","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"sessionID","schema":{"type":"string","pattern":"^ses.*"},"required":true},{"in":"query","name":"messageID","schema":{"type":"string","pattern":"^msg.*"}}],"summary":"Get message diff","description":"Get the file changes (diff) that resulted from a specific user message in the session.","responses":{"200":{"description":"Successfully retrieved diff","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FileDiff"}}}}}}}},"/session/{sessionID}/summarize":{"post":{"operationId":"session.summarize","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"sessionID","schema":{"type":"string"},"required":true,"description":"Session ID"}],"summary":"Summarize session","description":"Generate a concise summary of the session using AI compaction to preserve key information.","responses":{"200":{"description":"Summarized session","content":{"application/json":{"schema":{"type":"boolean"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"providerID":{"type":"string"},"modelID":{"type":"string"},"auto":{"default":false,"type":"boolean"}},"required":["providerID","modelID"]}}}}}},"/session/{sessionID}/message":{"get":{"operationId":"session.messages","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"sessionID","schema":{"type":"string"},"required":true,"description":"Session ID"},{"in":"query","name":"limit","schema":{"type":"number"}}],"summary":"Get session messages","description":"Retrieve all messages in a session, including user prompts and AI responses.","responses":{"200":{"description":"List of messages","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"info":{"$ref":"#/components/schemas/Message"},"parts":{"type":"array","items":{"$ref":"#/components/schemas/Part"}}},"required":["info","parts"]}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}}},"post":{"operationId":"session.prompt","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"sessionID","schema":{"type":"string"},"required":true,"description":"Session ID"}],"summary":"Send message","description":"Create and send a new message to a session, streaming the AI response.","responses":{"200":{"description":"Created message","content":{"application/json":{"schema":{"type":"object","properties":{"info":{"$ref":"#/components/schemas/AssistantMessage"},"parts":{"type":"array","items":{"$ref":"#/components/schemas/Part"}}},"required":["info","parts"]}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"messageID":{"type":"string","pattern":"^msg.*"},"model":{"type":"object","properties":{"providerID":{"type":"string"},"modelID":{"type":"string"}},"required":["providerID","modelID"]},"agent":{"type":"string"},"noReply":{"type":"boolean"},"tools":{"description":"@deprecated tools and permissions have been merged, you can set permissions on the session itself now","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"boolean"}},"system":{"type":"string"},"variant":{"type":"string"},"parts":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/TextPartInput"},{"$ref":"#/components/schemas/FilePartInput"},{"$ref":"#/components/schemas/AgentPartInput"},{"$ref":"#/components/schemas/SubtaskPartInput"}]}}},"required":["parts"]}}}}}},"/session/{sessionID}/message/{messageID}":{"get":{"operationId":"session.message","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"sessionID","schema":{"type":"string"},"required":true,"description":"Session ID"},{"in":"path","name":"messageID","schema":{"type":"string"},"required":true,"description":"Message ID"}],"summary":"Get message","description":"Retrieve a specific message from a session by its message ID.","responses":{"200":{"description":"Message","content":{"application/json":{"schema":{"type":"object","properties":{"info":{"$ref":"#/components/schemas/Message"},"parts":{"type":"array","items":{"$ref":"#/components/schemas/Part"}}},"required":["info","parts"]}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}}}},"/session/{sessionID}/message/{messageID}/part/{partID}":{"delete":{"operationId":"part.delete","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"sessionID","schema":{"type":"string"},"required":true,"description":"Session ID"},{"in":"path","name":"messageID","schema":{"type":"string"},"required":true,"description":"Message ID"},{"in":"path","name":"partID","schema":{"type":"string"},"required":true,"description":"Part ID"}],"description":"Delete a part from a message","responses":{"200":{"description":"Successfully deleted part","content":{"application/json":{"schema":{"type":"boolean"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}}},"patch":{"operationId":"part.update","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"sessionID","schema":{"type":"string"},"required":true,"description":"Session ID"},{"in":"path","name":"messageID","schema":{"type":"string"},"required":true,"description":"Message ID"},{"in":"path","name":"partID","schema":{"type":"string"},"required":true,"description":"Part ID"}],"description":"Update a part in a message","responses":{"200":{"description":"Successfully updated part","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Part"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Part"}}}}}},"/session/{sessionID}/prompt_async":{"post":{"operationId":"session.prompt_async","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"sessionID","schema":{"type":"string"},"required":true,"description":"Session ID"}],"summary":"Send async message","description":"Create and send a new message to a session asynchronously, starting the session if needed and returning immediately.","responses":{"204":{"description":"Prompt accepted"},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"messageID":{"type":"string","pattern":"^msg.*"},"model":{"type":"object","properties":{"providerID":{"type":"string"},"modelID":{"type":"string"}},"required":["providerID","modelID"]},"agent":{"type":"string"},"noReply":{"type":"boolean"},"tools":{"description":"@deprecated tools and permissions have been merged, you can set permissions on the session itself now","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"boolean"}},"system":{"type":"string"},"variant":{"type":"string"},"parts":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/TextPartInput"},{"$ref":"#/components/schemas/FilePartInput"},{"$ref":"#/components/schemas/AgentPartInput"},{"$ref":"#/components/schemas/SubtaskPartInput"}]}}},"required":["parts"]}}}}}},"/session/{sessionID}/command":{"post":{"operationId":"session.command","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"sessionID","schema":{"type":"string"},"required":true,"description":"Session ID"}],"summary":"Send command","description":"Send a new command to a session for execution by the AI assistant.","responses":{"200":{"description":"Created message","content":{"application/json":{"schema":{"type":"object","properties":{"info":{"$ref":"#/components/schemas/AssistantMessage"},"parts":{"type":"array","items":{"$ref":"#/components/schemas/Part"}}},"required":["info","parts"]}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"messageID":{"type":"string","pattern":"^msg.*"},"agent":{"type":"string"},"model":{"type":"string"},"arguments":{"type":"string"},"command":{"type":"string"},"variant":{"type":"string"},"parts":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"file"},"mime":{"type":"string"},"filename":{"type":"string"},"url":{"type":"string"},"source":{"$ref":"#/components/schemas/FilePartSource"}},"required":["type","mime","url"]}]}}},"required":["arguments","command"]}}}}}},"/session/{sessionID}/shell":{"post":{"operationId":"session.shell","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"sessionID","schema":{"type":"string"},"required":true,"description":"Session ID"}],"summary":"Run shell command","description":"Execute a shell command within the session context and return the AI's response.","responses":{"200":{"description":"Created message","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssistantMessage"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"agent":{"type":"string"},"model":{"type":"object","properties":{"providerID":{"type":"string"},"modelID":{"type":"string"}},"required":["providerID","modelID"]},"command":{"type":"string"}},"required":["agent","command"]}}}}}},"/session/{sessionID}/revert":{"post":{"operationId":"session.revert","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"sessionID","schema":{"type":"string"},"required":true}],"summary":"Revert message","description":"Revert a specific message in a session, undoing its effects and restoring the previous state.","responses":{"200":{"description":"Updated session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Session"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"messageID":{"type":"string","pattern":"^msg.*"},"partID":{"type":"string","pattern":"^prt.*"}},"required":["messageID"]}}}}}},"/session/{sessionID}/unrevert":{"post":{"operationId":"session.unrevert","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"sessionID","schema":{"type":"string"},"required":true}],"summary":"Restore reverted messages","description":"Restore all previously reverted messages in a session.","responses":{"200":{"description":"Updated session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Session"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}}}},"/session/{sessionID}/permissions/{permissionID}":{"post":{"operationId":"permission.respond","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"sessionID","schema":{"type":"string"},"required":true},{"in":"path","name":"permissionID","schema":{"type":"string"},"required":true}],"summary":"Respond to permission","deprecated":true,"description":"Approve or deny a permission request from the AI assistant.","responses":{"200":{"description":"Permission processed successfully","content":{"application/json":{"schema":{"type":"boolean"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"string","enum":["once","always","reject"]}},"required":["response"]}}}}}},"/permission/{requestID}/reply":{"post":{"operationId":"permission.reply","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"requestID","schema":{"type":"string"},"required":true}],"summary":"Respond to permission request","description":"Approve or deny a permission request from the AI assistant.","responses":{"200":{"description":"Permission processed successfully","content":{"application/json":{"schema":{"type":"boolean"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"reply":{"type":"string","enum":["once","always","reject"]},"message":{"type":"string"}},"required":["reply"]}}}}}},"/permission":{"get":{"operationId":"permission.list","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"List pending permissions","description":"Get all pending permission requests across all sessions.","responses":{"200":{"description":"List of pending permissions","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PermissionRequest"}}}}}}}},"/question":{"get":{"operationId":"question.list","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"List pending questions","description":"Get all pending question requests across all sessions.","responses":{"200":{"description":"List of pending questions","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/QuestionRequest"}}}}}}}},"/question/{requestID}/reply":{"post":{"operationId":"question.reply","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"requestID","schema":{"type":"string"},"required":true}],"summary":"Reply to question request","description":"Provide answers to a question request from the AI assistant.","responses":{"200":{"description":"Question answered successfully","content":{"application/json":{"schema":{"type":"boolean"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"answers":{"description":"User answers in order of questions (each answer is an array of selected labels)","type":"array","items":{"$ref":"#/components/schemas/QuestionAnswer"}}},"required":["answers"]}}}}}},"/question/{requestID}/reject":{"post":{"operationId":"question.reject","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"requestID","schema":{"type":"string"},"required":true}],"summary":"Reject question request","description":"Reject a question request from the AI assistant.","responses":{"200":{"description":"Question rejected successfully","content":{"application/json":{"schema":{"type":"boolean"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}}}},"/provider":{"get":{"operationId":"provider.list","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"List providers","description":"Get a list of all available AI providers, including both available and connected ones.","responses":{"200":{"description":"List of providers","content":{"application/json":{"schema":{"type":"object","properties":{"all":{"type":"array","items":{"type":"object","properties":{"api":{"type":"string"},"name":{"type":"string"},"env":{"type":"array","items":{"type":"string"}},"id":{"type":"string"},"npm":{"type":"string"},"models":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"family":{"type":"string"},"release_date":{"type":"string"},"attachment":{"type":"boolean"},"reasoning":{"type":"boolean"},"temperature":{"type":"boolean"},"tool_call":{"type":"boolean"},"interleaved":{"anyOf":[{"type":"boolean","const":true},{"type":"object","properties":{"field":{"type":"string","enum":["reasoning_content","reasoning_details"]}},"required":["field"],"additionalProperties":false}]},"cost":{"type":"object","properties":{"input":{"type":"number"},"output":{"type":"number"},"cache_read":{"type":"number"},"cache_write":{"type":"number"},"context_over_200k":{"type":"object","properties":{"input":{"type":"number"},"output":{"type":"number"},"cache_read":{"type":"number"},"cache_write":{"type":"number"}},"required":["input","output"]}},"required":["input","output"]},"limit":{"type":"object","properties":{"context":{"type":"number"},"input":{"type":"number"},"output":{"type":"number"}},"required":["context","output"]},"modalities":{"type":"object","properties":{"input":{"type":"array","items":{"type":"string","enum":["text","audio","image","video","pdf"]}},"output":{"type":"array","items":{"type":"string","enum":["text","audio","image","video","pdf"]}}},"required":["input","output"]},"experimental":{"type":"boolean"},"status":{"type":"string","enum":["alpha","beta","deprecated"]},"options":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"provider":{"type":"object","properties":{"npm":{"type":"string"}},"required":["npm"]},"variants":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}}},"required":["id","name","release_date","attachment","reasoning","temperature","tool_call","limit","options"]}}},"required":["name","env","id","models"]}},"default":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"connected":{"type":"array","items":{"type":"string"}}},"required":["all","default","connected"]}}}}}}},"/provider/auth":{"get":{"operationId":"provider.auth","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"Get provider auth methods","description":"Retrieve available authentication methods for all AI providers.","responses":{"200":{"description":"Provider auth methods","content":{"application/json":{"schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/ProviderAuthMethod"}}}}}}}}},"/provider/{providerID}/oauth/authorize":{"post":{"operationId":"provider.oauth.authorize","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"providerID","schema":{"type":"string"},"required":true,"description":"Provider ID"}],"summary":"OAuth authorize","description":"Initiate OAuth authorization for a specific AI provider to get an authorization URL.","responses":{"200":{"description":"Authorization URL and method","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderAuthAuthorization"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"method":{"description":"Auth method index","type":"number"}},"required":["method"]}}}}}},"/provider/{providerID}/oauth/callback":{"post":{"operationId":"provider.oauth.callback","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"providerID","schema":{"type":"string"},"required":true,"description":"Provider ID"}],"summary":"OAuth callback","description":"Handle the OAuth callback from a provider after user authorization.","responses":{"200":{"description":"OAuth callback processed successfully","content":{"application/json":{"schema":{"type":"boolean"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"method":{"description":"Auth method index","type":"number"},"code":{"description":"OAuth authorization code","type":"string"}},"required":["method"]}}}}}},"/find":{"get":{"operationId":"find.text","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"query","name":"pattern","schema":{"type":"string"},"required":true}],"summary":"Find text","description":"Search for text patterns across files in the project using ripgrep.","responses":{"200":{"description":"Matches","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"path":{"type":"object","properties":{"text":{"type":"string"}},"required":["text"]},"lines":{"type":"object","properties":{"text":{"type":"string"}},"required":["text"]},"line_number":{"type":"number"},"absolute_offset":{"type":"number"},"submatches":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"text":{"type":"string"}},"required":["text"]},"start":{"type":"number"},"end":{"type":"number"}},"required":["match","start","end"]}}},"required":["path","lines","line_number","absolute_offset","submatches"]}}}}}}}},"/find/file":{"get":{"operationId":"find.files","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"query","name":"query","schema":{"type":"string"},"required":true},{"in":"query","name":"dirs","schema":{"type":"string","enum":["true","false"]}},{"in":"query","name":"type","schema":{"type":"string","enum":["file","directory"]}},{"in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":200}}],"summary":"Find files","description":"Search for files or directories by name or pattern in the project directory.","responses":{"200":{"description":"File paths","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}}}}}},"/find/symbol":{"get":{"operationId":"find.symbols","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"query","name":"query","schema":{"type":"string"},"required":true}],"summary":"Find symbols","description":"Search for workspace symbols like functions, classes, and variables using LSP.","responses":{"200":{"description":"Symbols","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Symbol"}}}}}}}},"/file":{"get":{"operationId":"file.list","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"query","name":"path","schema":{"type":"string"},"required":true}],"summary":"List files","description":"List files and directories in a specified path.","responses":{"200":{"description":"Files and directories","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FileNode"}}}}}}}},"/file/content":{"get":{"operationId":"file.read","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"query","name":"path","schema":{"type":"string"},"required":true}],"summary":"Read file","description":"Read the content of a specified file.","responses":{"200":{"description":"File content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileContent"}}}}}}},"/file/status":{"get":{"operationId":"file.status","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"Get file status","description":"Get the git status of all files in the project.","responses":{"200":{"description":"File status","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/File"}}}}}}}},"/mcp":{"get":{"operationId":"mcp.status","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"Get MCP status","description":"Get the status of all Model Context Protocol (MCP) servers.","responses":{"200":{"description":"MCP server status","content":{"application/json":{"schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/MCPStatus"}}}}}}},"post":{"operationId":"mcp.add","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"Add MCP server","description":"Dynamically add a new Model Context Protocol (MCP) server to the system.","responses":{"200":{"description":"MCP server added successfully","content":{"application/json":{"schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/MCPStatus"}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"config":{"anyOf":[{"$ref":"#/components/schemas/McpLocalConfig"},{"$ref":"#/components/schemas/McpRemoteConfig"}]}},"required":["name","config"]}}}}}},"/mcp/{name}/auth":{"post":{"operationId":"mcp.auth.start","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"schema":{"type":"string"},"in":"path","name":"name","required":true}],"summary":"Start MCP OAuth","description":"Start OAuth authentication flow for a Model Context Protocol (MCP) server.","responses":{"200":{"description":"OAuth flow started","content":{"application/json":{"schema":{"type":"object","properties":{"authorizationUrl":{"description":"URL to open in browser for authorization","type":"string"}},"required":["authorizationUrl"]}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}}},"delete":{"operationId":"mcp.auth.remove","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"schema":{"type":"string"},"in":"path","name":"name","required":true}],"summary":"Remove MCP OAuth","description":"Remove OAuth credentials for an MCP server","responses":{"200":{"description":"OAuth credentials removed","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","const":true}},"required":["success"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}}}},"/mcp/{name}/auth/callback":{"post":{"operationId":"mcp.auth.callback","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"schema":{"type":"string"},"in":"path","name":"name","required":true}],"summary":"Complete MCP OAuth","description":"Complete OAuth authentication for a Model Context Protocol (MCP) server using the authorization code.","responses":{"200":{"description":"OAuth authentication completed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPStatus"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"description":"Authorization code from OAuth callback","type":"string"}},"required":["code"]}}}}}},"/mcp/{name}/auth/authenticate":{"post":{"operationId":"mcp.auth.authenticate","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"schema":{"type":"string"},"in":"path","name":"name","required":true}],"summary":"Authenticate MCP OAuth","description":"Start OAuth flow and wait for callback (opens browser)","responses":{"200":{"description":"OAuth authentication completed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPStatus"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}}}},"/mcp/{name}/connect":{"post":{"operationId":"mcp.connect","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"name","schema":{"type":"string"},"required":true}],"description":"Connect an MCP server","responses":{"200":{"description":"MCP server connected successfully","content":{"application/json":{"schema":{"type":"boolean"}}}}}}},"/mcp/{name}/disconnect":{"post":{"operationId":"mcp.disconnect","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"name","schema":{"type":"string"},"required":true}],"description":"Disconnect an MCP server","responses":{"200":{"description":"MCP server disconnected successfully","content":{"application/json":{"schema":{"type":"boolean"}}}}}}},"/tui/append-prompt":{"post":{"operationId":"tui.appendPrompt","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"Append TUI prompt","description":"Append prompt to the TUI","responses":{"200":{"description":"Prompt processed successfully","content":{"application/json":{"schema":{"type":"boolean"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"}},"required":["text"]}}}}}},"/tui/open-help":{"post":{"operationId":"tui.openHelp","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"Open help dialog","description":"Open the help dialog in the TUI to display user assistance information.","responses":{"200":{"description":"Help dialog opened successfully","content":{"application/json":{"schema":{"type":"boolean"}}}}}}},"/tui/open-sessions":{"post":{"operationId":"tui.openSessions","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"Open sessions dialog","description":"Open the session dialog","responses":{"200":{"description":"Session dialog opened successfully","content":{"application/json":{"schema":{"type":"boolean"}}}}}}},"/tui/open-themes":{"post":{"operationId":"tui.openThemes","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"Open themes dialog","description":"Open the theme dialog","responses":{"200":{"description":"Theme dialog opened successfully","content":{"application/json":{"schema":{"type":"boolean"}}}}}}},"/tui/open-models":{"post":{"operationId":"tui.openModels","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"Open models dialog","description":"Open the model dialog","responses":{"200":{"description":"Model dialog opened successfully","content":{"application/json":{"schema":{"type":"boolean"}}}}}}},"/tui/submit-prompt":{"post":{"operationId":"tui.submitPrompt","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"Submit TUI prompt","description":"Submit the prompt","responses":{"200":{"description":"Prompt submitted successfully","content":{"application/json":{"schema":{"type":"boolean"}}}}}}},"/tui/clear-prompt":{"post":{"operationId":"tui.clearPrompt","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"Clear TUI prompt","description":"Clear the prompt","responses":{"200":{"description":"Prompt cleared successfully","content":{"application/json":{"schema":{"type":"boolean"}}}}}}},"/tui/execute-command":{"post":{"operationId":"tui.executeCommand","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"Execute TUI command","description":"Execute a TUI command (e.g. agent_cycle)","responses":{"200":{"description":"Command executed successfully","content":{"application/json":{"schema":{"type":"boolean"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"command":{"type":"string"}},"required":["command"]}}}}}},"/tui/show-toast":{"post":{"operationId":"tui.showToast","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"Show TUI toast","description":"Show a toast notification in the TUI","responses":{"200":{"description":"Toast notification shown successfully","content":{"application/json":{"schema":{"type":"boolean"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string"},"message":{"type":"string"},"variant":{"type":"string","enum":["info","success","warning","error"]},"duration":{"description":"Duration in milliseconds","default":5000,"type":"number"}},"required":["message","variant"]}}}}}},"/tui/publish":{"post":{"operationId":"tui.publish","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"Publish TUI event","description":"Publish a TUI event","responses":{"200":{"description":"Event published successfully","content":{"application/json":{"schema":{"type":"boolean"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Event.tui.prompt.append"},{"$ref":"#/components/schemas/Event.tui.command.execute"},{"$ref":"#/components/schemas/Event.tui.toast.show"},{"$ref":"#/components/schemas/Event.tui.session.select"}]}}}}}},"/tui/select-session":{"post":{"operationId":"tui.selectSession","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"Select session","description":"Navigate the TUI to display the specified session.","responses":{"200":{"description":"Session selected successfully","content":{"application/json":{"schema":{"type":"boolean"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"sessionID":{"description":"Session ID to navigate to","type":"string","pattern":"^ses"}},"required":["sessionID"]}}}}}},"/tui/control/next":{"get":{"operationId":"tui.control.next","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"Get next TUI request","description":"Retrieve the next TUI (Terminal User Interface) request from the queue for processing.","responses":{"200":{"description":"Next TUI request","content":{"application/json":{"schema":{"type":"object","properties":{"path":{"type":"string"},"body":{}},"required":["path","body"]}}}}}}},"/tui/control/response":{"post":{"operationId":"tui.control.response","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"Submit TUI response","description":"Submit a response to the TUI request queue to complete a pending request.","responses":{"200":{"description":"Response submitted successfully","content":{"application/json":{"schema":{"type":"boolean"}}}}},"requestBody":{"content":{"application/json":{"schema":{}}}}}},"/instance/dispose":{"post":{"operationId":"instance.dispose","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"Dispose instance","description":"Clean up and dispose the current OpenCode instance, releasing all resources.","responses":{"200":{"description":"Instance disposed","content":{"application/json":{"schema":{"type":"boolean"}}}}}}},"/path":{"get":{"operationId":"path.get","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"Get paths","description":"Retrieve the current working directory and related path information for the OpenCode instance.","responses":{"200":{"description":"Path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Path"}}}}}}},"/vcs":{"get":{"operationId":"vcs.get","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"Get VCS info","description":"Retrieve version control system (VCS) information for the current project, such as git branch.","responses":{"200":{"description":"VCS info","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsInfo"}}}}}}},"/command":{"get":{"operationId":"command.list","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"List commands","description":"Get a list of all available commands in the OpenCode system.","responses":{"200":{"description":"List of commands","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Command"}}}}}}}},"/log":{"post":{"operationId":"app.log","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"Write log","description":"Write a log entry to the server logs with specified level and metadata.","responses":{"200":{"description":"Log entry written successfully","content":{"application/json":{"schema":{"type":"boolean"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"service":{"description":"Service name for the log entry","type":"string"},"level":{"description":"Log level","type":"string","enum":["debug","info","error","warn"]},"message":{"description":"Log message","type":"string"},"extra":{"description":"Additional metadata for the log entry","type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["service","level","message"]}}}}}},"/agent":{"get":{"operationId":"app.agents","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"List agents","description":"Get a list of all available AI agents in the OpenCode system.","responses":{"200":{"description":"List of agents","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Agent"}}}}}}}},"/skill":{"get":{"operationId":"app.skills","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"List skills","description":"Get a list of all available skills in the OpenCode system.","responses":{"200":{"description":"List of skills","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"location":{"type":"string"}},"required":["name","description","location"]}}}}}}}},"/lsp":{"get":{"operationId":"lsp.status","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"Get LSP status","description":"Get LSP server status","responses":{"200":{"description":"LSP server status","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LSPStatus"}}}}}}}},"/formatter":{"get":{"operationId":"formatter.status","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"Get formatter status","description":"Get formatter status","responses":{"200":{"description":"Formatter status","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FormatterStatus"}}}}}}}},"/auth/{providerID}":{"put":{"operationId":"auth.set","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"providerID","schema":{"type":"string"},"required":true}],"summary":"Set auth credentials","description":"Set authentication credentials","responses":{"200":{"description":"Successfully set authentication credentials","content":{"application/json":{"schema":{"type":"boolean"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Auth"}}}}}},"/event":{"get":{"operationId":"event.subscribe","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"summary":"Subscribe to events","description":"Get events","responses":{"200":{"description":"Event stream","content":{"text/event-stream":{"schema":{"$ref":"#/components/schemas/Event"}}}}}}}},"components":{"schemas":{"Event.tui.prompt.append":{"type":"object","properties":{"type":{"type":"string","const":"tui.prompt.append"},"properties":{"type":"object","properties":{"text":{"type":"string"}},"required":["text"]}},"required":["type","properties"]},"Event.tui.command.execute":{"type":"object","properties":{"type":{"type":"string","const":"tui.command.execute"},"properties":{"type":"object","properties":{"command":{"anyOf":[{"type":"string","enum":["session.list","session.new","session.share","session.interrupt","session.compact","session.page.up","session.page.down","session.half.page.up","session.half.page.down","session.first","session.last","prompt.clear","prompt.submit","agent.cycle"]},{"type":"string"}]}},"required":["command"]}},"required":["type","properties"]},"Event.tui.toast.show":{"type":"object","properties":{"type":{"type":"string","const":"tui.toast.show"},"properties":{"type":"object","properties":{"title":{"type":"string"},"message":{"type":"string"},"variant":{"type":"string","enum":["info","success","warning","error"]},"duration":{"description":"Duration in milliseconds","default":5000,"type":"number"}},"required":["message","variant"]}},"required":["type","properties"]},"Event.tui.session.select":{"type":"object","properties":{"type":{"type":"string","const":"tui.session.select"},"properties":{"type":"object","properties":{"sessionID":{"description":"Session ID to navigate to","type":"string","pattern":"^ses"}},"required":["sessionID"]}},"required":["type","properties"]},"Event.installation.updated":{"type":"object","properties":{"type":{"type":"string","const":"installation.updated"},"properties":{"type":"object","properties":{"version":{"type":"string"}},"required":["version"]}},"required":["type","properties"]},"Event.installation.update-available":{"type":"object","properties":{"type":{"type":"string","const":"installation.update-available"},"properties":{"type":"object","properties":{"version":{"type":"string"}},"required":["version"]}},"required":["type","properties"]},"Project":{"type":"object","properties":{"id":{"type":"string"},"worktree":{"type":"string"},"vcs":{"type":"string","const":"git"},"name":{"type":"string"},"icon":{"type":"object","properties":{"url":{"type":"string"},"color":{"type":"string"}}},"time":{"type":"object","properties":{"created":{"type":"number"},"updated":{"type":"number"},"initialized":{"type":"number"}},"required":["created","updated"]},"sandboxes":{"type":"array","items":{"type":"string"}}},"required":["id","worktree","time","sandboxes"]},"Event.project.updated":{"type":"object","properties":{"type":{"type":"string","const":"project.updated"},"properties":{"$ref":"#/components/schemas/Project"}},"required":["type","properties"]},"Event.server.instance.disposed":{"type":"object","properties":{"type":{"type":"string","const":"server.instance.disposed"},"properties":{"type":"object","properties":{"directory":{"type":"string"}},"required":["directory"]}},"required":["type","properties"]},"Event.file.edited":{"type":"object","properties":{"type":{"type":"string","const":"file.edited"},"properties":{"type":"object","properties":{"file":{"type":"string"}},"required":["file"]}},"required":["type","properties"]},"Event.global.disposed":{"type":"object","properties":{"type":{"type":"string","const":"global.disposed"},"properties":{"type":"object","properties":{}}},"required":["type","properties"]},"Event.lsp.client.diagnostics":{"type":"object","properties":{"type":{"type":"string","const":"lsp.client.diagnostics"},"properties":{"type":"object","properties":{"serverID":{"type":"string"},"path":{"type":"string"}},"required":["serverID","path"]}},"required":["type","properties"]},"PermissionRequest":{"type":"object","properties":{"id":{"type":"string","pattern":"^per.*"},"sessionID":{"type":"string","pattern":"^ses.*"},"permission":{"type":"string"},"patterns":{"type":"array","items":{"type":"string"}},"metadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"always":{"type":"array","items":{"type":"string"}},"tool":{"type":"object","properties":{"messageID":{"type":"string"},"callID":{"type":"string"}},"required":["messageID","callID"]}},"required":["id","sessionID","permission","patterns","metadata","always"]},"Event.permission.asked":{"type":"object","properties":{"type":{"type":"string","const":"permission.asked"},"properties":{"$ref":"#/components/schemas/PermissionRequest"}},"required":["type","properties"]},"Event.permission.replied":{"type":"object","properties":{"type":{"type":"string","const":"permission.replied"},"properties":{"type":"object","properties":{"sessionID":{"type":"string"},"requestID":{"type":"string"},"reply":{"type":"string","enum":["once","always","reject"]}},"required":["sessionID","requestID","reply"]}},"required":["type","properties"]},"SessionStatus":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"idle"}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","const":"retry"},"attempt":{"type":"number"},"message":{"type":"string"},"next":{"type":"number"}},"required":["type","attempt","message","next"]},{"type":"object","properties":{"type":{"type":"string","const":"busy"}},"required":["type"]}]},"Event.session.status":{"type":"object","properties":{"type":{"type":"string","const":"session.status"},"properties":{"type":"object","properties":{"sessionID":{"type":"string"},"status":{"$ref":"#/components/schemas/SessionStatus"}},"required":["sessionID","status"]}},"required":["type","properties"]},"Event.session.idle":{"type":"object","properties":{"type":{"type":"string","const":"session.idle"},"properties":{"type":"object","properties":{"sessionID":{"type":"string"}},"required":["sessionID"]}},"required":["type","properties"]},"QuestionOption":{"type":"object","properties":{"label":{"description":"Display text (1-5 words, concise)","type":"string"},"description":{"description":"Explanation of choice","type":"string"}},"required":["label","description"]},"QuestionInfo":{"type":"object","properties":{"question":{"description":"Complete question","type":"string"},"header":{"description":"Very short label (max 12 chars)","type":"string","maxLength":12},"options":{"description":"Available choices","type":"array","items":{"$ref":"#/components/schemas/QuestionOption"}},"multiple":{"description":"Allow selecting multiple choices","type":"boolean"},"custom":{"description":"Allow typing a custom answer (default: true)","type":"boolean"}},"required":["question","header","options"]},"QuestionRequest":{"type":"object","properties":{"id":{"type":"string","pattern":"^que.*"},"sessionID":{"type":"string","pattern":"^ses.*"},"questions":{"description":"Questions to ask","type":"array","items":{"$ref":"#/components/schemas/QuestionInfo"}},"tool":{"type":"object","properties":{"messageID":{"type":"string"},"callID":{"type":"string"}},"required":["messageID","callID"]}},"required":["id","sessionID","questions"]},"Event.question.asked":{"type":"object","properties":{"type":{"type":"string","const":"question.asked"},"properties":{"$ref":"#/components/schemas/QuestionRequest"}},"required":["type","properties"]},"QuestionAnswer":{"type":"array","items":{"type":"string"}},"Event.question.replied":{"type":"object","properties":{"type":{"type":"string","const":"question.replied"},"properties":{"type":"object","properties":{"sessionID":{"type":"string"},"requestID":{"type":"string"},"answers":{"type":"array","items":{"$ref":"#/components/schemas/QuestionAnswer"}}},"required":["sessionID","requestID","answers"]}},"required":["type","properties"]},"Event.question.rejected":{"type":"object","properties":{"type":{"type":"string","const":"question.rejected"},"properties":{"type":"object","properties":{"sessionID":{"type":"string"},"requestID":{"type":"string"}},"required":["sessionID","requestID"]}},"required":["type","properties"]},"Todo":{"type":"object","properties":{"content":{"description":"Brief description of the task","type":"string"},"status":{"description":"Current status of the task: pending, in_progress, completed, cancelled","type":"string"},"priority":{"description":"Priority level of the task: high, medium, low","type":"string"},"id":{"description":"Unique identifier for the todo item","type":"string"}},"required":["content","status","priority","id"]},"Event.todo.updated":{"type":"object","properties":{"type":{"type":"string","const":"todo.updated"},"properties":{"type":"object","properties":{"sessionID":{"type":"string"},"todos":{"type":"array","items":{"$ref":"#/components/schemas/Todo"}}},"required":["sessionID","todos"]}},"required":["type","properties"]},"Pty":{"type":"object","properties":{"id":{"type":"string","pattern":"^pty.*"},"title":{"type":"string"},"command":{"type":"string"},"args":{"type":"array","items":{"type":"string"}},"cwd":{"type":"string"},"status":{"type":"string","enum":["running","exited"]},"pid":{"type":"number"}},"required":["id","title","command","args","cwd","status","pid"]},"Event.pty.created":{"type":"object","properties":{"type":{"type":"string","const":"pty.created"},"properties":{"type":"object","properties":{"info":{"$ref":"#/components/schemas/Pty"}},"required":["info"]}},"required":["type","properties"]},"Event.pty.updated":{"type":"object","properties":{"type":{"type":"string","const":"pty.updated"},"properties":{"type":"object","properties":{"info":{"$ref":"#/components/schemas/Pty"}},"required":["info"]}},"required":["type","properties"]},"Event.pty.exited":{"type":"object","properties":{"type":{"type":"string","const":"pty.exited"},"properties":{"type":"object","properties":{"id":{"type":"string","pattern":"^pty.*"},"exitCode":{"type":"number"}},"required":["id","exitCode"]}},"required":["type","properties"]},"Event.pty.deleted":{"type":"object","properties":{"type":{"type":"string","const":"pty.deleted"},"properties":{"type":"object","properties":{"id":{"type":"string","pattern":"^pty.*"}},"required":["id"]}},"required":["type","properties"]},"Event.mcp.tools.changed":{"type":"object","properties":{"type":{"type":"string","const":"mcp.tools.changed"},"properties":{"type":"object","properties":{"server":{"type":"string"}},"required":["server"]}},"required":["type","properties"]},"Event.mcp.browser.open.failed":{"type":"object","properties":{"type":{"type":"string","const":"mcp.browser.open.failed"},"properties":{"type":"object","properties":{"mcpName":{"type":"string"},"url":{"type":"string"}},"required":["mcpName","url"]}},"required":["type","properties"]},"Event.file.watcher.updated":{"type":"object","properties":{"type":{"type":"string","const":"file.watcher.updated"},"properties":{"type":"object","properties":{"file":{"type":"string"},"event":{"anyOf":[{"type":"string","const":"add"},{"type":"string","const":"change"},{"type":"string","const":"unlink"}]}},"required":["file","event"]}},"required":["type","properties"]},"Event.lsp.updated":{"type":"object","properties":{"type":{"type":"string","const":"lsp.updated"},"properties":{"type":"object","properties":{}}},"required":["type","properties"]},"Event.command.executed":{"type":"object","properties":{"type":{"type":"string","const":"command.executed"},"properties":{"type":"object","properties":{"name":{"type":"string"},"sessionID":{"type":"string","pattern":"^ses.*"},"arguments":{"type":"string"},"messageID":{"type":"string","pattern":"^msg.*"}},"required":["name","sessionID","arguments","messageID"]}},"required":["type","properties"]},"Event.vcs.branch.updated":{"type":"object","properties":{"type":{"type":"string","const":"vcs.branch.updated"},"properties":{"type":"object","properties":{"branch":{"type":"string"}}}},"required":["type","properties"]},"FileDiff":{"type":"object","properties":{"file":{"type":"string"},"before":{"type":"string"},"after":{"type":"string"},"additions":{"type":"number"},"deletions":{"type":"number"}},"required":["file","before","after","additions","deletions"]},"UserMessage":{"type":"object","properties":{"id":{"type":"string"},"sessionID":{"type":"string"},"role":{"type":"string","const":"user"},"time":{"type":"object","properties":{"created":{"type":"number"}},"required":["created"]},"summary":{"type":"object","properties":{"title":{"type":"string"},"body":{"type":"string"},"diffs":{"type":"array","items":{"$ref":"#/components/schemas/FileDiff"}}},"required":["diffs"]},"agent":{"type":"string"},"model":{"type":"object","properties":{"providerID":{"type":"string"},"modelID":{"type":"string"}},"required":["providerID","modelID"]},"system":{"type":"string"},"tools":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"boolean"}},"variant":{"type":"string"}},"required":["id","sessionID","role","time","agent","model"]},"ProviderAuthError":{"type":"object","properties":{"name":{"type":"string","const":"ProviderAuthError"},"data":{"type":"object","properties":{"providerID":{"type":"string"},"message":{"type":"string"}},"required":["providerID","message"]}},"required":["name","data"]},"UnknownError":{"type":"object","properties":{"name":{"type":"string","const":"UnknownError"},"data":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}},"required":["name","data"]},"MessageOutputLengthError":{"type":"object","properties":{"name":{"type":"string","const":"MessageOutputLengthError"},"data":{"type":"object","properties":{}}},"required":["name","data"]},"MessageAbortedError":{"type":"object","properties":{"name":{"type":"string","const":"MessageAbortedError"},"data":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}},"required":["name","data"]},"APIError":{"type":"object","properties":{"name":{"type":"string","const":"APIError"},"data":{"type":"object","properties":{"message":{"type":"string"},"statusCode":{"type":"number"},"isRetryable":{"type":"boolean"},"responseHeaders":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"responseBody":{"type":"string"},"metadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}},"required":["message","isRetryable"]}},"required":["name","data"]},"AssistantMessage":{"type":"object","properties":{"id":{"type":"string"},"sessionID":{"type":"string"},"role":{"type":"string","const":"assistant"},"time":{"type":"object","properties":{"created":{"type":"number"},"completed":{"type":"number"}},"required":["created"]},"error":{"anyOf":[{"$ref":"#/components/schemas/ProviderAuthError"},{"$ref":"#/components/schemas/UnknownError"},{"$ref":"#/components/schemas/MessageOutputLengthError"},{"$ref":"#/components/schemas/MessageAbortedError"},{"$ref":"#/components/schemas/APIError"}]},"parentID":{"type":"string"},"modelID":{"type":"string"},"providerID":{"type":"string"},"mode":{"type":"string"},"agent":{"type":"string"},"path":{"type":"object","properties":{"cwd":{"type":"string"},"root":{"type":"string"}},"required":["cwd","root"]},"summary":{"type":"boolean"},"cost":{"type":"number"},"tokens":{"type":"object","properties":{"input":{"type":"number"},"output":{"type":"number"},"reasoning":{"type":"number"},"cache":{"type":"object","properties":{"read":{"type":"number"},"write":{"type":"number"}},"required":["read","write"]}},"required":["input","output","reasoning","cache"]},"finish":{"type":"string"}},"required":["id","sessionID","role","time","parentID","modelID","providerID","mode","agent","path","cost","tokens"]},"Message":{"anyOf":[{"$ref":"#/components/schemas/UserMessage"},{"$ref":"#/components/schemas/AssistantMessage"}]},"Event.message.updated":{"type":"object","properties":{"type":{"type":"string","const":"message.updated"},"properties":{"type":"object","properties":{"info":{"$ref":"#/components/schemas/Message"}},"required":["info"]}},"required":["type","properties"]},"Event.message.removed":{"type":"object","properties":{"type":{"type":"string","const":"message.removed"},"properties":{"type":"object","properties":{"sessionID":{"type":"string"},"messageID":{"type":"string"}},"required":["sessionID","messageID"]}},"required":["type","properties"]},"TextPart":{"type":"object","properties":{"id":{"type":"string"},"sessionID":{"type":"string"},"messageID":{"type":"string"},"type":{"type":"string","const":"text"},"text":{"type":"string"},"synthetic":{"type":"boolean"},"ignored":{"type":"boolean"},"time":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"required":["start"]},"metadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["id","sessionID","messageID","type","text"]},"ReasoningPart":{"type":"object","properties":{"id":{"type":"string"},"sessionID":{"type":"string"},"messageID":{"type":"string"},"type":{"type":"string","const":"reasoning"},"text":{"type":"string"},"metadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"time":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"required":["start"]}},"required":["id","sessionID","messageID","type","text","time"]},"FilePartSourceText":{"type":"object","properties":{"value":{"type":"string"},"start":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"end":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["value","start","end"]},"FileSource":{"type":"object","properties":{"text":{"$ref":"#/components/schemas/FilePartSourceText"},"type":{"type":"string","const":"file"},"path":{"type":"string"}},"required":["text","type","path"]},"Range":{"type":"object","properties":{"start":{"type":"object","properties":{"line":{"type":"number"},"character":{"type":"number"}},"required":["line","character"]},"end":{"type":"object","properties":{"line":{"type":"number"},"character":{"type":"number"}},"required":["line","character"]}},"required":["start","end"]},"SymbolSource":{"type":"object","properties":{"text":{"$ref":"#/components/schemas/FilePartSourceText"},"type":{"type":"string","const":"symbol"},"path":{"type":"string"},"range":{"$ref":"#/components/schemas/Range"},"name":{"type":"string"},"kind":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["text","type","path","range","name","kind"]},"ResourceSource":{"type":"object","properties":{"text":{"$ref":"#/components/schemas/FilePartSourceText"},"type":{"type":"string","const":"resource"},"clientName":{"type":"string"},"uri":{"type":"string"}},"required":["text","type","clientName","uri"]},"FilePartSource":{"anyOf":[{"$ref":"#/components/schemas/FileSource"},{"$ref":"#/components/schemas/SymbolSource"},{"$ref":"#/components/schemas/ResourceSource"}]},"FilePart":{"type":"object","properties":{"id":{"type":"string"},"sessionID":{"type":"string"},"messageID":{"type":"string"},"type":{"type":"string","const":"file"},"mime":{"type":"string"},"filename":{"type":"string"},"url":{"type":"string"},"source":{"$ref":"#/components/schemas/FilePartSource"}},"required":["id","sessionID","messageID","type","mime","url"]},"ToolStatePending":{"type":"object","properties":{"status":{"type":"string","const":"pending"},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"raw":{"type":"string"}},"required":["status","input","raw"]},"ToolStateRunning":{"type":"object","properties":{"status":{"type":"string","const":"running"},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"title":{"type":"string"},"metadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"time":{"type":"object","properties":{"start":{"type":"number"}},"required":["start"]}},"required":["status","input","time"]},"ToolStateCompleted":{"type":"object","properties":{"status":{"type":"string","const":"completed"},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"output":{"type":"string"},"title":{"type":"string"},"metadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"time":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"},"compacted":{"type":"number"}},"required":["start","end"]},"attachments":{"type":"array","items":{"$ref":"#/components/schemas/FilePart"}}},"required":["status","input","output","title","metadata","time"]},"ToolStateError":{"type":"object","properties":{"status":{"type":"string","const":"error"},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"error":{"type":"string"},"metadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"time":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"required":["start","end"]}},"required":["status","input","error","time"]},"ToolState":{"anyOf":[{"$ref":"#/components/schemas/ToolStatePending"},{"$ref":"#/components/schemas/ToolStateRunning"},{"$ref":"#/components/schemas/ToolStateCompleted"},{"$ref":"#/components/schemas/ToolStateError"}]},"ToolPart":{"type":"object","properties":{"id":{"type":"string"},"sessionID":{"type":"string"},"messageID":{"type":"string"},"type":{"type":"string","const":"tool"},"callID":{"type":"string"},"tool":{"type":"string"},"state":{"$ref":"#/components/schemas/ToolState"},"metadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["id","sessionID","messageID","type","callID","tool","state"]},"StepStartPart":{"type":"object","properties":{"id":{"type":"string"},"sessionID":{"type":"string"},"messageID":{"type":"string"},"type":{"type":"string","const":"step-start"},"snapshot":{"type":"string"}},"required":["id","sessionID","messageID","type"]},"StepFinishPart":{"type":"object","properties":{"id":{"type":"string"},"sessionID":{"type":"string"},"messageID":{"type":"string"},"type":{"type":"string","const":"step-finish"},"reason":{"type":"string"},"snapshot":{"type":"string"},"cost":{"type":"number"},"tokens":{"type":"object","properties":{"input":{"type":"number"},"output":{"type":"number"},"reasoning":{"type":"number"},"cache":{"type":"object","properties":{"read":{"type":"number"},"write":{"type":"number"}},"required":["read","write"]}},"required":["input","output","reasoning","cache"]}},"required":["id","sessionID","messageID","type","reason","cost","tokens"]},"SnapshotPart":{"type":"object","properties":{"id":{"type":"string"},"sessionID":{"type":"string"},"messageID":{"type":"string"},"type":{"type":"string","const":"snapshot"},"snapshot":{"type":"string"}},"required":["id","sessionID","messageID","type","snapshot"]},"PatchPart":{"type":"object","properties":{"id":{"type":"string"},"sessionID":{"type":"string"},"messageID":{"type":"string"},"type":{"type":"string","const":"patch"},"hash":{"type":"string"},"files":{"type":"array","items":{"type":"string"}}},"required":["id","sessionID","messageID","type","hash","files"]},"AgentPart":{"type":"object","properties":{"id":{"type":"string"},"sessionID":{"type":"string"},"messageID":{"type":"string"},"type":{"type":"string","const":"agent"},"name":{"type":"string"},"source":{"type":"object","properties":{"value":{"type":"string"},"start":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"end":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["value","start","end"]}},"required":["id","sessionID","messageID","type","name"]},"RetryPart":{"type":"object","properties":{"id":{"type":"string"},"sessionID":{"type":"string"},"messageID":{"type":"string"},"type":{"type":"string","const":"retry"},"attempt":{"type":"number"},"error":{"$ref":"#/components/schemas/APIError"},"time":{"type":"object","properties":{"created":{"type":"number"}},"required":["created"]}},"required":["id","sessionID","messageID","type","attempt","error","time"]},"CompactionPart":{"type":"object","properties":{"id":{"type":"string"},"sessionID":{"type":"string"},"messageID":{"type":"string"},"type":{"type":"string","const":"compaction"},"auto":{"type":"boolean"}},"required":["id","sessionID","messageID","type","auto"]},"Part":{"anyOf":[{"$ref":"#/components/schemas/TextPart"},{"type":"object","properties":{"id":{"type":"string"},"sessionID":{"type":"string"},"messageID":{"type":"string"},"type":{"type":"string","const":"subtask"},"prompt":{"type":"string"},"description":{"type":"string"},"agent":{"type":"string"},"model":{"type":"object","properties":{"providerID":{"type":"string"},"modelID":{"type":"string"}},"required":["providerID","modelID"]},"command":{"type":"string"}},"required":["id","sessionID","messageID","type","prompt","description","agent"]},{"$ref":"#/components/schemas/ReasoningPart"},{"$ref":"#/components/schemas/FilePart"},{"$ref":"#/components/schemas/ToolPart"},{"$ref":"#/components/schemas/StepStartPart"},{"$ref":"#/components/schemas/StepFinishPart"},{"$ref":"#/components/schemas/SnapshotPart"},{"$ref":"#/components/schemas/PatchPart"},{"$ref":"#/components/schemas/AgentPart"},{"$ref":"#/components/schemas/RetryPart"},{"$ref":"#/components/schemas/CompactionPart"}]},"Event.message.part.updated":{"type":"object","properties":{"type":{"type":"string","const":"message.part.updated"},"properties":{"type":"object","properties":{"part":{"$ref":"#/components/schemas/Part"},"delta":{"type":"string"}},"required":["part"]}},"required":["type","properties"]},"Event.message.part.removed":{"type":"object","properties":{"type":{"type":"string","const":"message.part.removed"},"properties":{"type":"object","properties":{"sessionID":{"type":"string"},"messageID":{"type":"string"},"partID":{"type":"string"}},"required":["sessionID","messageID","partID"]}},"required":["type","properties"]},"Event.session.compacted":{"type":"object","properties":{"type":{"type":"string","const":"session.compacted"},"properties":{"type":"object","properties":{"sessionID":{"type":"string"}},"required":["sessionID"]}},"required":["type","properties"]},"PermissionAction":{"type":"string","enum":["allow","deny","ask"]},"PermissionRule":{"type":"object","properties":{"permission":{"type":"string"},"pattern":{"type":"string"},"action":{"$ref":"#/components/schemas/PermissionAction"}},"required":["permission","pattern","action"]},"PermissionRuleset":{"type":"array","items":{"$ref":"#/components/schemas/PermissionRule"}},"Session":{"type":"object","properties":{"id":{"type":"string","pattern":"^ses.*"},"slug":{"type":"string"},"projectID":{"type":"string"},"directory":{"type":"string"},"parentID":{"type":"string","pattern":"^ses.*"},"summary":{"type":"object","properties":{"additions":{"type":"number"},"deletions":{"type":"number"},"files":{"type":"number"},"diffs":{"type":"array","items":{"$ref":"#/components/schemas/FileDiff"}}},"required":["additions","deletions","files"]},"share":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"]},"title":{"type":"string"},"version":{"type":"string"},"time":{"type":"object","properties":{"created":{"type":"number"},"updated":{"type":"number"},"compacting":{"type":"number"},"archived":{"type":"number"}},"required":["created","updated"]},"permission":{"$ref":"#/components/schemas/PermissionRuleset"},"revert":{"type":"object","properties":{"messageID":{"type":"string"},"partID":{"type":"string"},"snapshot":{"type":"string"},"diff":{"type":"string"}},"required":["messageID"]}},"required":["id","slug","projectID","directory","title","version","time"]},"Event.session.created":{"type":"object","properties":{"type":{"type":"string","const":"session.created"},"properties":{"type":"object","properties":{"info":{"$ref":"#/components/schemas/Session"}},"required":["info"]}},"required":["type","properties"]},"Event.session.updated":{"type":"object","properties":{"type":{"type":"string","const":"session.updated"},"properties":{"type":"object","properties":{"info":{"$ref":"#/components/schemas/Session"}},"required":["info"]}},"required":["type","properties"]},"Event.session.deleted":{"type":"object","properties":{"type":{"type":"string","const":"session.deleted"},"properties":{"type":"object","properties":{"info":{"$ref":"#/components/schemas/Session"}},"required":["info"]}},"required":["type","properties"]},"Event.session.diff":{"type":"object","properties":{"type":{"type":"string","const":"session.diff"},"properties":{"type":"object","properties":{"sessionID":{"type":"string"},"diff":{"type":"array","items":{"$ref":"#/components/schemas/FileDiff"}}},"required":["sessionID","diff"]}},"required":["type","properties"]},"Event.session.error":{"type":"object","properties":{"type":{"type":"string","const":"session.error"},"properties":{"type":"object","properties":{"sessionID":{"type":"string"},"error":{"anyOf":[{"$ref":"#/components/schemas/ProviderAuthError"},{"$ref":"#/components/schemas/UnknownError"},{"$ref":"#/components/schemas/MessageOutputLengthError"},{"$ref":"#/components/schemas/MessageAbortedError"},{"$ref":"#/components/schemas/APIError"}]}}}},"required":["type","properties"]},"Event.server.connected":{"type":"object","properties":{"type":{"type":"string","const":"server.connected"},"properties":{"type":"object","properties":{}}},"required":["type","properties"]},"Event":{"anyOf":[{"$ref":"#/components/schemas/Event.tui.prompt.append"},{"$ref":"#/components/schemas/Event.tui.command.execute"},{"$ref":"#/components/schemas/Event.tui.toast.show"},{"$ref":"#/components/schemas/Event.tui.session.select"},{"$ref":"#/components/schemas/Event.installation.updated"},{"$ref":"#/components/schemas/Event.installation.update-available"},{"$ref":"#/components/schemas/Event.project.updated"},{"$ref":"#/components/schemas/Event.server.instance.disposed"},{"$ref":"#/components/schemas/Event.file.edited"},{"$ref":"#/components/schemas/Event.global.disposed"},{"$ref":"#/components/schemas/Event.lsp.client.diagnostics"},{"$ref":"#/components/schemas/Event.permission.asked"},{"$ref":"#/components/schemas/Event.permission.replied"},{"$ref":"#/components/schemas/Event.session.status"},{"$ref":"#/components/schemas/Event.session.idle"},{"$ref":"#/components/schemas/Event.question.asked"},{"$ref":"#/components/schemas/Event.question.replied"},{"$ref":"#/components/schemas/Event.question.rejected"},{"$ref":"#/components/schemas/Event.todo.updated"},{"$ref":"#/components/schemas/Event.pty.created"},{"$ref":"#/components/schemas/Event.pty.updated"},{"$ref":"#/components/schemas/Event.pty.exited"},{"$ref":"#/components/schemas/Event.pty.deleted"},{"$ref":"#/components/schemas/Event.mcp.tools.changed"},{"$ref":"#/components/schemas/Event.mcp.browser.open.failed"},{"$ref":"#/components/schemas/Event.file.watcher.updated"},{"$ref":"#/components/schemas/Event.lsp.updated"},{"$ref":"#/components/schemas/Event.command.executed"},{"$ref":"#/components/schemas/Event.vcs.branch.updated"},{"$ref":"#/components/schemas/Event.message.updated"},{"$ref":"#/components/schemas/Event.message.removed"},{"$ref":"#/components/schemas/Event.message.part.updated"},{"$ref":"#/components/schemas/Event.message.part.removed"},{"$ref":"#/components/schemas/Event.session.compacted"},{"$ref":"#/components/schemas/Event.session.created"},{"$ref":"#/components/schemas/Event.session.updated"},{"$ref":"#/components/schemas/Event.session.deleted"},{"$ref":"#/components/schemas/Event.session.diff"},{"$ref":"#/components/schemas/Event.session.error"},{"$ref":"#/components/schemas/Event.server.connected"}]},"GlobalEvent":{"type":"object","properties":{"directory":{"type":"string"},"payload":{"$ref":"#/components/schemas/Event"}},"required":["directory","payload"]},"BadRequestError":{"type":"object","properties":{"data":{},"errors":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"success":{"type":"boolean","const":false}},"required":["data","errors","success"]},"NotFoundError":{"type":"object","properties":{"name":{"type":"string","const":"NotFoundError"},"data":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}},"required":["name","data"]},"KeybindsConfig":{"description":"Custom keybind configurations","type":"object","properties":{"leader":{"description":"Leader key for keybind combinations","default":"ctrl+x","type":"string"},"app_exit":{"description":"Exit the application","default":"ctrl+c,ctrl+d,<leader>q","type":"string"},"editor_open":{"description":"Open external editor","default":"<leader>e","type":"string"},"theme_list":{"description":"List available themes","default":"<leader>t","type":"string"},"sidebar_toggle":{"description":"Toggle sidebar","default":"<leader>b","type":"string"},"scrollbar_toggle":{"description":"Toggle session scrollbar","default":"none","type":"string"},"username_toggle":{"description":"Toggle username visibility","default":"none","type":"string"},"status_view":{"description":"View status","default":"<leader>s","type":"string"},"session_export":{"description":"Export session to editor","default":"<leader>x","type":"string"},"session_new":{"description":"Create a new session","default":"<leader>n","type":"string"},"session_list":{"description":"List all sessions","default":"<leader>l","type":"string"},"session_timeline":{"description":"Show session timeline","default":"<leader>g","type":"string"},"session_fork":{"description":"Fork session from message","default":"none","type":"string"},"session_rename":{"description":"Rename session","default":"ctrl+r","type":"string"},"session_delete":{"description":"Delete session","default":"ctrl+d","type":"string"},"stash_delete":{"description":"Delete stash entry","default":"ctrl+d","type":"string"},"model_provider_list":{"description":"Open provider list from model dialog","default":"ctrl+a","type":"string"},"model_favorite_toggle":{"description":"Toggle model favorite status","default":"ctrl+f","type":"string"},"session_share":{"description":"Share current session","default":"none","type":"string"},"session_unshare":{"description":"Unshare current session","default":"none","type":"string"},"session_interrupt":{"description":"Interrupt current session","default":"escape","type":"string"},"session_compact":{"description":"Compact the session","default":"<leader>c","type":"string"},"messages_page_up":{"description":"Scroll messages up by one page","default":"pageup","type":"string"},"messages_page_down":{"description":"Scroll messages down by one page","default":"pagedown","type":"string"},"messages_half_page_up":{"description":"Scroll messages up by half page","default":"ctrl+alt+u","type":"string"},"messages_half_page_down":{"description":"Scroll messages down by half page","default":"ctrl+alt+d","type":"string"},"messages_first":{"description":"Navigate to first message","default":"ctrl+g,home","type":"string"},"messages_last":{"description":"Navigate to last message","default":"ctrl+alt+g,end","type":"string"},"messages_next":{"description":"Navigate to next message","default":"none","type":"string"},"messages_previous":{"description":"Navigate to previous message","default":"none","type":"string"},"messages_last_user":{"description":"Navigate to last user message","default":"none","type":"string"},"messages_copy":{"description":"Copy message","default":"<leader>y","type":"string"},"messages_undo":{"description":"Undo message","default":"<leader>u","type":"string"},"messages_redo":{"description":"Redo message","default":"<leader>r","type":"string"},"messages_toggle_conceal":{"description":"Toggle code block concealment in messages","default":"<leader>h","type":"string"},"tool_details":{"description":"Toggle tool details visibility","default":"none","type":"string"},"model_list":{"description":"List available models","default":"<leader>m","type":"string"},"model_cycle_recent":{"description":"Next recently used model","default":"f2","type":"string"},"model_cycle_recent_reverse":{"description":"Previous recently used model","default":"shift+f2","type":"string"},"model_cycle_favorite":{"description":"Next favorite model","default":"none","type":"string"},"model_cycle_favorite_reverse":{"description":"Previous favorite model","default":"none","type":"string"},"command_list":{"description":"List available commands","default":"ctrl+p","type":"string"},"agent_list":{"description":"List agents","default":"<leader>a","type":"string"},"agent_cycle":{"description":"Next agent","default":"tab","type":"string"},"agent_cycle_reverse":{"description":"Previous agent","default":"shift+tab","type":"string"},"variant_cycle":{"description":"Cycle model variants","default":"ctrl+t","type":"string"},"input_clear":{"description":"Clear input field","default":"ctrl+c","type":"string"},"input_paste":{"description":"Paste from clipboard","default":"ctrl+v","type":"string"},"input_submit":{"description":"Submit input","default":"return","type":"string"},"input_newline":{"description":"Insert newline in input","default":"shift+return,ctrl+return,alt+return,ctrl+j","type":"string"},"input_move_left":{"description":"Move cursor left in input","default":"left,ctrl+b","type":"string"},"input_move_right":{"description":"Move cursor right in input","default":"right,ctrl+f","type":"string"},"input_move_up":{"description":"Move cursor up in input","default":"up","type":"string"},"input_move_down":{"description":"Move cursor down in input","default":"down","type":"string"},"input_select_left":{"description":"Select left in input","default":"shift+left","type":"string"},"input_select_right":{"description":"Select right in input","default":"shift+right","type":"string"},"input_select_up":{"description":"Select up in input","default":"shift+up","type":"string"},"input_select_down":{"description":"Select down in input","default":"shift+down","type":"string"},"input_line_home":{"description":"Move to start of line in input","default":"ctrl+a","type":"string"},"input_line_end":{"description":"Move to end of line in input","default":"ctrl+e","type":"string"},"input_select_line_home":{"description":"Select to start of line in input","default":"ctrl+shift+a","type":"string"},"input_select_line_end":{"description":"Select to end of line in input","default":"ctrl+shift+e","type":"string"},"input_visual_line_home":{"description":"Move to start of visual line in input","default":"alt+a","type":"string"},"input_visual_line_end":{"description":"Move to end of visual line in input","default":"alt+e","type":"string"},"input_select_visual_line_home":{"description":"Select to start of visual line in input","default":"alt+shift+a","type":"string"},"input_select_visual_line_end":{"description":"Select to end of visual line in input","default":"alt+shift+e","type":"string"},"input_buffer_home":{"description":"Move to start of buffer in input","default":"home","type":"string"},"input_buffer_end":{"description":"Move to end of buffer in input","default":"end","type":"string"},"input_select_buffer_home":{"description":"Select to start of buffer in input","default":"shift+home","type":"string"},"input_select_buffer_end":{"description":"Select to end of buffer in input","default":"shift+end","type":"string"},"input_delete_line":{"description":"Delete line in input","default":"ctrl+shift+d","type":"string"},"input_delete_to_line_end":{"description":"Delete to end of line in input","default":"ctrl+k","type":"string"},"input_delete_to_line_start":{"description":"Delete to start of line in input","default":"ctrl+u","type":"string"},"input_backspace":{"description":"Backspace in input","default":"backspace,shift+backspace","type":"string"},"input_delete":{"description":"Delete character in input","default":"ctrl+d,delete,shift+delete","type":"string"},"input_undo":{"description":"Undo in input","default":"ctrl+-,super+z","type":"string"},"input_redo":{"description":"Redo in input","default":"ctrl+.,super+shift+z","type":"string"},"input_word_forward":{"description":"Move word forward in input","default":"alt+f,alt+right,ctrl+right","type":"string"},"input_word_backward":{"description":"Move word backward in input","default":"alt+b,alt+left,ctrl+left","type":"string"},"input_select_word_forward":{"description":"Select word forward in input","default":"alt+shift+f,alt+shift+right","type":"string"},"input_select_word_backward":{"description":"Select word backward in input","default":"alt+shift+b,alt+shift+left","type":"string"},"input_delete_word_forward":{"description":"Delete word forward in input","default":"alt+d,alt+delete,ctrl+delete","type":"string"},"input_delete_word_backward":{"description":"Delete word backward in input","default":"ctrl+w,ctrl+backspace,alt+backspace","type":"string"},"history_previous":{"description":"Previous history item","default":"up","type":"string"},"history_next":{"description":"Next history item","default":"down","type":"string"},"session_child_cycle":{"description":"Next child session","default":"<leader>right","type":"string"},"session_child_cycle_reverse":{"description":"Previous child session","default":"<leader>left","type":"string"},"session_parent":{"description":"Go to parent session","default":"<leader>up","type":"string"},"terminal_suspend":{"description":"Suspend terminal","default":"ctrl+z","type":"string"},"terminal_title_toggle":{"description":"Toggle terminal title","default":"none","type":"string"},"tips_toggle":{"description":"Toggle tips on home screen","default":"<leader>h","type":"string"}},"additionalProperties":false},"LogLevel":{"description":"Log level","type":"string","enum":["DEBUG","INFO","WARN","ERROR"]},"ServerConfig":{"description":"Server configuration for opencode serve and web commands","type":"object","properties":{"port":{"description":"Port to listen on","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"hostname":{"description":"Hostname to listen on","type":"string"},"mdns":{"description":"Enable mDNS service discovery","type":"boolean"},"cors":{"description":"Additional domains to allow for CORS","type":"array","items":{"type":"string"}}},"additionalProperties":false},"PermissionActionConfig":{"type":"string","enum":["ask","allow","deny"]},"PermissionObjectConfig":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/PermissionActionConfig"}},"PermissionRuleConfig":{"anyOf":[{"$ref":"#/components/schemas/PermissionActionConfig"},{"$ref":"#/components/schemas/PermissionObjectConfig"}]},"PermissionConfig":{"anyOf":[{"type":"object","properties":{"__originalKeys":{"type":"array","items":{"type":"string"}},"read":{"$ref":"#/components/schemas/PermissionRuleConfig"},"edit":{"$ref":"#/components/schemas/PermissionRuleConfig"},"glob":{"$ref":"#/components/schemas/PermissionRuleConfig"},"grep":{"$ref":"#/components/schemas/PermissionRuleConfig"},"list":{"$ref":"#/components/schemas/PermissionRuleConfig"},"bash":{"$ref":"#/components/schemas/PermissionRuleConfig"},"task":{"$ref":"#/components/schemas/PermissionRuleConfig"},"external_directory":{"$ref":"#/components/schemas/PermissionRuleConfig"},"todowrite":{"$ref":"#/components/schemas/PermissionActionConfig"},"todoread":{"$ref":"#/components/schemas/PermissionActionConfig"},"question":{"$ref":"#/components/schemas/PermissionActionConfig"},"webfetch":{"$ref":"#/components/schemas/PermissionActionConfig"},"websearch":{"$ref":"#/components/schemas/PermissionActionConfig"},"codesearch":{"$ref":"#/components/schemas/PermissionActionConfig"},"lsp":{"$ref":"#/components/schemas/PermissionRuleConfig"},"doom_loop":{"$ref":"#/components/schemas/PermissionActionConfig"}},"additionalProperties":{"$ref":"#/components/schemas/PermissionRuleConfig"}},{"$ref":"#/components/schemas/PermissionActionConfig"}]},"AgentConfig":{"type":"object","properties":{"model":{"type":"string"},"temperature":{"type":"number"},"top_p":{"type":"number"},"prompt":{"type":"string"},"tools":{"description":"@deprecated Use 'permission' field instead","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"boolean"}},"disable":{"type":"boolean"},"description":{"description":"Description of when to use the agent","type":"string"},"mode":{"type":"string","enum":["subagent","primary","all"]},"hidden":{"description":"Hide this subagent from the @ autocomplete menu (default: false, only applies to mode: subagent)","type":"boolean"},"options":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"color":{"description":"Hex color code for the agent (e.g., #FF5733)","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"steps":{"description":"Maximum number of agentic iterations before forcing text-only response","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxSteps":{"description":"@deprecated Use 'steps' field instead.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"permission":{"$ref":"#/components/schemas/PermissionConfig"}},"additionalProperties":{}},"ProviderConfig":{"type":"object","properties":{"api":{"type":"string"},"name":{"type":"string"},"env":{"type":"array","items":{"type":"string"}},"id":{"type":"string"},"npm":{"type":"string"},"models":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"family":{"type":"string"},"release_date":{"type":"string"},"attachment":{"type":"boolean"},"reasoning":{"type":"boolean"},"temperature":{"type":"boolean"},"tool_call":{"type":"boolean"},"interleaved":{"anyOf":[{"type":"boolean","const":true},{"type":"object","properties":{"field":{"type":"string","enum":["reasoning_content","reasoning_details"]}},"required":["field"],"additionalProperties":false}]},"cost":{"type":"object","properties":{"input":{"type":"number"},"output":{"type":"number"},"cache_read":{"type":"number"},"cache_write":{"type":"number"},"context_over_200k":{"type":"object","properties":{"input":{"type":"number"},"output":{"type":"number"},"cache_read":{"type":"number"},"cache_write":{"type":"number"}},"required":["input","output"]}},"required":["input","output"]},"limit":{"type":"object","properties":{"context":{"type":"number"},"input":{"type":"number"},"output":{"type":"number"}},"required":["context","output"]},"modalities":{"type":"object","properties":{"input":{"type":"array","items":{"type":"string","enum":["text","audio","image","video","pdf"]}},"output":{"type":"array","items":{"type":"string","enum":["text","audio","image","video","pdf"]}}},"required":["input","output"]},"experimental":{"type":"boolean"},"status":{"type":"string","enum":["alpha","beta","deprecated"]},"options":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"provider":{"type":"object","properties":{"npm":{"type":"string"}},"required":["npm"]},"variants":{"description":"Variant-specific configuration","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"disabled":{"description":"Disable this variant for the model","type":"boolean"}},"additionalProperties":{}}}}}},"whitelist":{"type":"array","items":{"type":"string"}},"blacklist":{"type":"array","items":{"type":"string"}},"options":{"type":"object","properties":{"apiKey":{"type":"string"},"baseURL":{"type":"string"},"enterpriseUrl":{"description":"GitHub Enterprise URL for copilot authentication","type":"string"},"setCacheKey":{"description":"Enable promptCacheKey for this provider (default false)","type":"boolean"},"timeout":{"description":"Timeout in milliseconds for requests to this provider. Default is 300000 (5 minutes). Set to false to disable timeout.","anyOf":[{"description":"Timeout in milliseconds for requests to this provider. Default is 300000 (5 minutes). Set to false to disable timeout.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"description":"Disable timeout for this provider entirely.","type":"boolean","const":false}]}},"additionalProperties":{}}},"additionalProperties":false},"McpLocalConfig":{"type":"object","properties":{"type":{"description":"Type of MCP server connection","type":"string","const":"local"},"command":{"description":"Command and arguments to run the MCP server","type":"array","items":{"type":"string"}},"environment":{"description":"Environment variables to set when running the MCP server","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"enabled":{"description":"Enable or disable the MCP server on startup","type":"boolean"},"timeout":{"description":"Timeout in ms for MCP server requests. Defaults to 5000 (5 seconds) if not specified.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["type","command"],"additionalProperties":false},"McpOAuthConfig":{"type":"object","properties":{"clientId":{"description":"OAuth client ID. If not provided, dynamic client registration (RFC 7591) will be attempted.","type":"string"},"clientSecret":{"description":"OAuth client secret (if required by the authorization server)","type":"string"},"scope":{"description":"OAuth scopes to request during authorization","type":"string"},"redirectUri":{"description":"OAuth redirect URI (default: http://127.0.0.1:19876/mcp/oauth/callback).","type":"string"}},"additionalProperties":false},"McpRemoteConfig":{"type":"object","properties":{"type":{"description":"Type of MCP server connection","type":"string","const":"remote"},"url":{"description":"URL of the remote MCP server","type":"string"},"enabled":{"description":"Enable or disable the MCP server on startup","type":"boolean"},"headers":{"description":"Headers to send with the request","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"oauth":{"description":"OAuth authentication configuration for the MCP server. Set to false to disable OAuth auto-detection.","anyOf":[{"$ref":"#/components/schemas/McpOAuthConfig"},{"type":"boolean","const":false}]},"timeout":{"description":"Timeout in ms for MCP server requests. Defaults to 5000 (5 seconds) if not specified.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["type","url"],"additionalProperties":false},"LayoutConfig":{"description":"@deprecated Always uses stretch layout.","type":"string","enum":["auto","stretch"]},"Config":{"type":"object","properties":{"$schema":{"description":"JSON schema reference for configuration validation","type":"string"},"theme":{"description":"Theme name to use for the interface","type":"string"},"keybinds":{"$ref":"#/components/schemas/KeybindsConfig"},"logLevel":{"$ref":"#/components/schemas/LogLevel"},"tui":{"description":"TUI specific settings","type":"object","properties":{"scroll_speed":{"description":"TUI scroll speed","type":"number","minimum":0.001},"scroll_acceleration":{"description":"Scroll acceleration settings","type":"object","properties":{"enabled":{"description":"Enable scroll acceleration","type":"boolean"}},"required":["enabled"]},"diff_style":{"description":"Control diff rendering style: 'auto' adapts to terminal width, 'stacked' always shows single column","type":"string","enum":["auto","stacked"]}}},"server":{"$ref":"#/components/schemas/ServerConfig"},"command":{"description":"Command configuration, see https://opencode.ai/docs/commands","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"template":{"type":"string"},"description":{"type":"string"},"agent":{"type":"string"},"model":{"type":"string"},"subtask":{"type":"boolean"}},"required":["template"]}},"watcher":{"type":"object","properties":{"ignore":{"type":"array","items":{"type":"string"}}}},"plugin":{"type":"array","items":{"type":"string"}},"snapshot":{"type":"boolean"},"share":{"description":"Control sharing behavior:'manual' allows manual sharing via commands, 'auto' enables automatic sharing, 'disabled' disables all sharing","type":"string","enum":["manual","auto","disabled"]},"autoshare":{"description":"@deprecated Use 'share' field instead. Share newly created sessions automatically","type":"boolean"},"autoupdate":{"description":"Automatically update to the latest version. Set to true to auto-update, false to disable, or 'notify' to show update notifications","anyOf":[{"type":"boolean"},{"type":"string","const":"notify"}]},"disabled_providers":{"description":"Disable providers that are loaded automatically","type":"array","items":{"type":"string"}},"enabled_providers":{"description":"When set, ONLY these providers will be enabled. All other providers will be ignored","type":"array","items":{"type":"string"}},"model":{"description":"Model to use in the format of provider/model, eg anthropic/claude-2","type":"string"},"small_model":{"description":"Small model to use for tasks like title generation in the format of provider/model","type":"string"},"default_agent":{"description":"Default agent to use when none is specified. Must be a primary agent. Falls back to 'build' if not set or if the specified agent is invalid.","type":"string"},"username":{"description":"Custom username to display in conversations instead of system username","type":"string"},"mode":{"description":"@deprecated Use `agent` field instead.","type":"object","properties":{"build":{"$ref":"#/components/schemas/AgentConfig"},"plan":{"$ref":"#/components/schemas/AgentConfig"}},"additionalProperties":{"$ref":"#/components/schemas/AgentConfig"}},"agent":{"description":"Agent configuration, see https://opencode.ai/docs/agents","type":"object","properties":{"plan":{"$ref":"#/components/schemas/AgentConfig"},"build":{"$ref":"#/components/schemas/AgentConfig"},"general":{"$ref":"#/components/schemas/AgentConfig"},"explore":{"$ref":"#/components/schemas/AgentConfig"},"title":{"$ref":"#/components/schemas/AgentConfig"},"summary":{"$ref":"#/components/schemas/AgentConfig"},"compaction":{"$ref":"#/components/schemas/AgentConfig"}},"additionalProperties":{"$ref":"#/components/schemas/AgentConfig"}},"provider":{"description":"Custom provider configurations and model overrides","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/ProviderConfig"}},"mcp":{"description":"MCP (Model Context Protocol) server configurations","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"anyOf":[{"$ref":"#/components/schemas/McpLocalConfig"},{"$ref":"#/components/schemas/McpRemoteConfig"}]},{"type":"object","properties":{"enabled":{"type":"boolean"}},"required":["enabled"],"additionalProperties":false}]}},"formatter":{"anyOf":[{"type":"boolean","const":false},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"disabled":{"type":"boolean"},"command":{"type":"array","items":{"type":"string"}},"environment":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"extensions":{"type":"array","items":{"type":"string"}}}}}]},"lsp":{"anyOf":[{"type":"boolean","const":false},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"disabled":{"type":"boolean","const":true}},"required":["disabled"]},{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"}},"extensions":{"type":"array","items":{"type":"string"}},"disabled":{"type":"boolean"},"env":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"initialization":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["command"]}]}}]},"instructions":{"description":"Additional instruction files or patterns to include","type":"array","items":{"type":"string"}},"layout":{"$ref":"#/components/schemas/LayoutConfig"},"permission":{"$ref":"#/components/schemas/PermissionConfig"},"tools":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"boolean"}},"enterprise":{"type":"object","properties":{"url":{"description":"Enterprise URL","type":"string"}}},"compaction":{"type":"object","properties":{"auto":{"description":"Enable automatic compaction when context is full (default: true)","type":"boolean"},"prune":{"description":"Enable pruning of old tool outputs (default: true)","type":"boolean"}}},"experimental":{"type":"object","properties":{"hook":{"type":"object","properties":{"file_edited":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"}},"environment":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}},"required":["command"]}}},"session_completed":{"type":"array","items":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"}},"environment":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}},"required":["command"]}}}},"chatMaxRetries":{"description":"Number of retries for chat completions on failure","type":"number"},"disable_paste_summary":{"type":"boolean"},"batch_tool":{"description":"Enable the batch tool","type":"boolean"},"openTelemetry":{"description":"Enable OpenTelemetry spans for AI SDK calls (using the 'experimental_telemetry' flag)","type":"boolean"},"primary_tools":{"description":"Tools that should only be available to primary agents.","type":"array","items":{"type":"string"}},"continue_loop_on_deny":{"description":"Continue the agent loop when a tool call is denied","type":"boolean"},"mcp_timeout":{"description":"Timeout in milliseconds for model context protocol (MCP) requests","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}}}},"additionalProperties":false},"Model":{"type":"object","properties":{"id":{"type":"string"},"providerID":{"type":"string"},"api":{"type":"object","properties":{"id":{"type":"string"},"url":{"type":"string"},"npm":{"type":"string"}},"required":["id","url","npm"]},"name":{"type":"string"},"family":{"type":"string"},"capabilities":{"type":"object","properties":{"temperature":{"type":"boolean"},"reasoning":{"type":"boolean"},"attachment":{"type":"boolean"},"toolcall":{"type":"boolean"},"input":{"type":"object","properties":{"text":{"type":"boolean"},"audio":{"type":"boolean"},"image":{"type":"boolean"},"video":{"type":"boolean"},"pdf":{"type":"boolean"}},"required":["text","audio","image","video","pdf"]},"output":{"type":"object","properties":{"text":{"type":"boolean"},"audio":{"type":"boolean"},"image":{"type":"boolean"},"video":{"type":"boolean"},"pdf":{"type":"boolean"}},"required":["text","audio","image","video","pdf"]},"interleaved":{"anyOf":[{"type":"boolean"},{"type":"object","properties":{"field":{"type":"string","enum":["reasoning_content","reasoning_details"]}},"required":["field"]}]}},"required":["temperature","reasoning","attachment","toolcall","input","output","interleaved"]},"cost":{"type":"object","properties":{"input":{"type":"number"},"output":{"type":"number"},"cache":{"type":"object","properties":{"read":{"type":"number"},"write":{"type":"number"}},"required":["read","write"]},"experimentalOver200K":{"type":"object","properties":{"input":{"type":"number"},"output":{"type":"number"},"cache":{"type":"object","properties":{"read":{"type":"number"},"write":{"type":"number"}},"required":["read","write"]}},"required":["input","output","cache"]}},"required":["input","output","cache"]},"limit":{"type":"object","properties":{"context":{"type":"number"},"input":{"type":"number"},"output":{"type":"number"}},"required":["context","output"]},"status":{"type":"string","enum":["alpha","beta","deprecated","active"]},"options":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"release_date":{"type":"string"},"variants":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}}},"required":["id","providerID","api","name","capabilities","cost","limit","status","options","headers","release_date"]},"Provider":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"source":{"type":"string","enum":["env","config","custom","api"]},"env":{"type":"array","items":{"type":"string"}},"key":{"type":"string"},"options":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"models":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/Model"}}},"required":["id","name","source","env","options","models"]},"ToolIDs":{"type":"array","items":{"type":"string"}},"ToolListItem":{"type":"object","properties":{"id":{"type":"string"},"description":{"type":"string"},"parameters":{}},"required":["id","description","parameters"]},"ToolList":{"type":"array","items":{"$ref":"#/components/schemas/ToolListItem"}},"Worktree":{"type":"object","properties":{"name":{"type":"string"},"branch":{"type":"string"},"directory":{"type":"string"}},"required":["name","branch","directory"]},"WorktreeCreateInput":{"type":"object","properties":{"name":{"type":"string"},"startCommand":{"type":"string"}}},"McpResource":{"type":"object","properties":{"name":{"type":"string"},"uri":{"type":"string"},"description":{"type":"string"},"mimeType":{"type":"string"},"client":{"type":"string"}},"required":["name","uri","client"]},"TextPartInput":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"text"},"text":{"type":"string"},"synthetic":{"type":"boolean"},"ignored":{"type":"boolean"},"time":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"required":["start"]},"metadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","text"]},"FilePartInput":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"file"},"mime":{"type":"string"},"filename":{"type":"string"},"url":{"type":"string"},"source":{"$ref":"#/components/schemas/FilePartSource"}},"required":["type","mime","url"]},"AgentPartInput":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"agent"},"name":{"type":"string"},"source":{"type":"object","properties":{"value":{"type":"string"},"start":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"end":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["value","start","end"]}},"required":["type","name"]},"SubtaskPartInput":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"subtask"},"prompt":{"type":"string"},"description":{"type":"string"},"agent":{"type":"string"},"model":{"type":"object","properties":{"providerID":{"type":"string"},"modelID":{"type":"string"}},"required":["providerID","modelID"]},"command":{"type":"string"}},"required":["type","prompt","description","agent"]},"ProviderAuthMethod":{"type":"object","properties":{"type":{"anyOf":[{"type":"string","const":"oauth"},{"type":"string","const":"api"}]},"label":{"type":"string"}},"required":["type","label"]},"ProviderAuthAuthorization":{"type":"object","properties":{"url":{"type":"string"},"method":{"anyOf":[{"type":"string","const":"auto"},{"type":"string","const":"code"}]},"instructions":{"type":"string"}},"required":["url","method","instructions"]},"Symbol":{"type":"object","properties":{"name":{"type":"string"},"kind":{"type":"number"},"location":{"type":"object","properties":{"uri":{"type":"string"},"range":{"$ref":"#/components/schemas/Range"}},"required":["uri","range"]}},"required":["name","kind","location"]},"FileNode":{"type":"object","properties":{"name":{"type":"string"},"path":{"type":"string"},"absolute":{"type":"string"},"type":{"type":"string","enum":["file","directory"]},"ignored":{"type":"boolean"}},"required":["name","path","absolute","type","ignored"]},"FileContent":{"type":"object","properties":{"type":{"type":"string","const":"text"},"content":{"type":"string"},"diff":{"type":"string"},"patch":{"type":"object","properties":{"oldFileName":{"type":"string"},"newFileName":{"type":"string"},"oldHeader":{"type":"string"},"newHeader":{"type":"string"},"hunks":{"type":"array","items":{"type":"object","properties":{"oldStart":{"type":"number"},"oldLines":{"type":"number"},"newStart":{"type":"number"},"newLines":{"type":"number"},"lines":{"type":"array","items":{"type":"string"}}},"required":["oldStart","oldLines","newStart","newLines","lines"]}},"index":{"type":"string"}},"required":["oldFileName","newFileName","hunks"]},"encoding":{"type":"string","const":"base64"},"mimeType":{"type":"string"}},"required":["type","content"]},"File":{"type":"object","properties":{"path":{"type":"string"},"added":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"removed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"status":{"type":"string","enum":["added","deleted","modified"]}},"required":["path","added","removed","status"]},"MCPStatusConnected":{"type":"object","properties":{"status":{"type":"string","const":"connected"}},"required":["status"]},"MCPStatusDisabled":{"type":"object","properties":{"status":{"type":"string","const":"disabled"}},"required":["status"]},"MCPStatusFailed":{"type":"object","properties":{"status":{"type":"string","const":"failed"},"error":{"type":"string"}},"required":["status","error"]},"MCPStatusNeedsAuth":{"type":"object","properties":{"status":{"type":"string","const":"needs_auth"}},"required":["status"]},"MCPStatusNeedsClientRegistration":{"type":"object","properties":{"status":{"type":"string","const":"needs_client_registration"},"error":{"type":"string"}},"required":["status","error"]},"MCPStatus":{"anyOf":[{"$ref":"#/components/schemas/MCPStatusConnected"},{"$ref":"#/components/schemas/MCPStatusDisabled"},{"$ref":"#/components/schemas/MCPStatusFailed"},{"$ref":"#/components/schemas/MCPStatusNeedsAuth"},{"$ref":"#/components/schemas/MCPStatusNeedsClientRegistration"}]},"Path":{"type":"object","properties":{"home":{"type":"string"},"state":{"type":"string"},"config":{"type":"string"},"worktree":{"type":"string"},"directory":{"type":"string"}},"required":["home","state","config","worktree","directory"]},"VcsInfo":{"type":"object","properties":{"branch":{"type":"string"}},"required":["branch"]},"Command":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"agent":{"type":"string"},"model":{"type":"string"},"mcp":{"type":"boolean"},"template":{"anyOf":[{"type":"string"},{"type":"string"}]},"subtask":{"type":"boolean"},"hints":{"type":"array","items":{"type":"string"}}},"required":["name","template","hints"]},"Agent":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"mode":{"type":"string","enum":["subagent","primary","all"]},"native":{"type":"boolean"},"hidden":{"type":"boolean"},"topP":{"type":"number"},"temperature":{"type":"number"},"color":{"type":"string"},"permission":{"$ref":"#/components/schemas/PermissionRuleset"},"model":{"type":"object","properties":{"modelID":{"type":"string"},"providerID":{"type":"string"}},"required":["modelID","providerID"]},"prompt":{"type":"string"},"options":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"steps":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["name","mode","permission","options"]},"LSPStatus":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"root":{"type":"string"},"status":{"anyOf":[{"type":"string","const":"connected"},{"type":"string","const":"error"}]}},"required":["id","name","root","status"]},"FormatterStatus":{"type":"object","properties":{"name":{"type":"string"},"extensions":{"type":"array","items":{"type":"string"}},"enabled":{"type":"boolean"}},"required":["name","extensions","enabled"]},"OAuth":{"type":"object","properties":{"type":{"type":"string","const":"oauth"},"refresh":{"type":"string"},"access":{"type":"string"},"expires":{"type":"number"},"accountId":{"type":"string"},"enterpriseUrl":{"type":"string"}},"required":["type","refresh","access","expires"]},"ApiAuth":{"type":"object","properties":{"type":{"type":"string","const":"api"},"key":{"type":"string"}},"required":["type","key"]},"WellKnownAuth":{"type":"object","properties":{"type":{"type":"string","const":"wellknown"},"key":{"type":"string"},"token":{"type":"string"}},"required":["type","key","token"]},"Auth":{"anyOf":[{"$ref":"#/components/schemas/OAuth"},{"$ref":"#/components/schemas/ApiAuth"},{"$ref":"#/components/schemas/WellKnownAuth"}]}}}}