-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathopenapi.json
More file actions
1 lines (1 loc) · 88.7 KB
/
openapi.json
File metadata and controls
1 lines (1 loc) · 88.7 KB
1
{"openapi":"3.1.1","info":{"title":"opencode","description":"opencode api","version":"0.0.3"},"paths":{"/global/event":{"get":{"operationId":"global.event","description":"Get events","responses":{"200":{"description":"Event stream","content":{"text/event-stream":{"schema":{"$ref":"#/components/schemas/GlobalEvent"}}}}}}},"/project":{"get":{"operationId":"project.list","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"description":"List all projects","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"}}],"description":"Get the current project","responses":{"200":{"description":"Current project","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}}}}},"/config":{"get":{"operationId":"config.get","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"description":"Get config info","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"}}],"description":"Update config","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"}}}}}},"/experimental/tool/ids":{"get":{"operationId":"tool.ids","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"description":"List all tool IDs (including built-in and dynamically registered)","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}],"description":"List tools with JSON schema parameters for a provider/model","responses":{"200":{"description":"Tools","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolList"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}}}},"/instance/dispose":{"post":{"operationId":"instance.dispose","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"description":"Dispose the current instance","responses":{"200":{"description":"Instance disposed","content":{"application/json":{"schema":{"type":"boolean"}}}}}}},"/path":{"get":{"operationId":"path.get","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"description":"Get the current path","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"}}],"description":"Get VCS info for the current instance","responses":{"200":{"description":"VCS info","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsInfo"}}}}}}},"/session":{"get":{"operationId":"session.list","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"description":"List all sessions","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"}}],"description":"Create a new session","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"}}}}}}}},"/session/status":{"get":{"operationId":"session.status","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"description":"Get session status","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/{id}":{"get":{"operationId":"session.get","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"id","schema":{"type":"string","pattern":"^ses.*"},"required":true}],"description":"Get 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":"id","schema":{"type":"string","pattern":"^ses.*"},"required":true}],"description":"Delete a session and all its data","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":"id","schema":{"type":"string"},"required":true}],"description":"Update session properties","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"}}}}}}}},"/session/{id}/children":{"get":{"operationId":"session.children","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"id","schema":{"type":"string","pattern":"^ses.*"},"required":true}],"description":"Get a session's children","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/{id}/todo":{"get":{"operationId":"session.todo","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"id","schema":{"type":"string"},"required":true,"description":"Session ID"}],"description":"Get the todo list for a session","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/{id}/init":{"post":{"operationId":"session.init","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"id","schema":{"type":"string"},"required":true,"description":"Session ID"}],"description":"Analyze the app and create an AGENTS.md file","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/{id}/fork":{"post":{"operationId":"session.fork","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"id","schema":{"type":"string","pattern":"^ses.*"},"required":true}],"description":"Fork an existing session at a specific message","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/{id}/abort":{"post":{"operationId":"session.abort","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"id","schema":{"type":"string"},"required":true}],"description":"Abort a session","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/{id}/share":{"post":{"operationId":"session.share","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"id","schema":{"type":"string"},"required":true}],"description":"Share a session","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":"id","schema":{"type":"string","pattern":"^ses.*"},"required":true}],"description":"Unshare the session","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/{id}/diff":{"get":{"operationId":"session.diff","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"id","schema":{"type":"string"},"required":true,"description":"Session ID"},{"in":"query","name":"messageID","schema":{"type":"string","pattern":"^msg.*"}}],"description":"Get the diff for this session","responses":{"200":{"description":"List of diffs","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FileDiff"}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}}}},"/session/{id}/summarize":{"post":{"operationId":"session.summarize","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"id","schema":{"type":"string"},"required":true,"description":"Session ID"}],"description":"Summarize the session","responses":{"200":{"description":"Summarized session","content":{"application/json":{"schema":{"type":"boolean"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"providerID":{"type":"string"},"modelID":{"type":"string"}},"required":["providerID","modelID"]}}}}}},"/session/{id}/message":{"get":{"operationId":"session.messages","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"id","schema":{"type":"string"},"required":true,"description":"Session ID"},{"in":"query","name":"limit","schema":{"type":"number"}}],"description":"List messages for a session","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":"id","schema":{"type":"string"},"required":true,"description":"Session ID"}],"description":"Create and send a new message to a session","responses":{"200":{"description":"Created message","content":{"application/json":{"schema":{"type":"object","properties":{"info":{"$ref":"#/components/schemas/AssistantMessage"},"parts":{"type":"array","items":{"$ref":"#/components/schemas/Part"}}},"required":["info","parts"]}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"messageID":{"type":"string","pattern":"^msg.*"},"model":{"type":"object","properties":{"providerID":{"type":"string"},"modelID":{"type":"string"}},"required":["providerID","modelID"]},"agent":{"type":"string"},"noReply":{"type":"boolean"},"system":{"type":"string"},"tools":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"boolean"}},"parts":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/TextPartInput"},{"$ref":"#/components/schemas/FilePartInput"},{"$ref":"#/components/schemas/AgentPartInput"},{"$ref":"#/components/schemas/SubtaskPartInput"}]}}},"required":["parts"]}}}}}},"/session/{id}/message/{messageID}":{"get":{"operationId":"session.message","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"id","schema":{"type":"string"},"required":true,"description":"Session ID"},{"in":"path","name":"messageID","schema":{"type":"string"},"required":true,"description":"Message ID"}],"description":"Get a message from a session","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/{id}/prompt_async":{"post":{"operationId":"session.prompt_async","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"id","schema":{"type":"string"},"required":true,"description":"Session ID"}],"description":"Create and send a new message to a session, start if needed and return immediately","responses":{"204":{"description":"Prompt accepted"},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"messageID":{"type":"string","pattern":"^msg.*"},"model":{"type":"object","properties":{"providerID":{"type":"string"},"modelID":{"type":"string"}},"required":["providerID","modelID"]},"agent":{"type":"string"},"noReply":{"type":"boolean"},"system":{"type":"string"},"tools":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"boolean"}},"parts":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/TextPartInput"},{"$ref":"#/components/schemas/FilePartInput"},{"$ref":"#/components/schemas/AgentPartInput"},{"$ref":"#/components/schemas/SubtaskPartInput"}]}}},"required":["parts"]}}}}}},"/session/{id}/command":{"post":{"operationId":"session.command","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"id","schema":{"type":"string"},"required":true,"description":"Session ID"}],"description":"Send a new command to a session","responses":{"200":{"description":"Created message","content":{"application/json":{"schema":{"type":"object","properties":{"info":{"$ref":"#/components/schemas/AssistantMessage"},"parts":{"type":"array","items":{"$ref":"#/components/schemas/Part"}}},"required":["info","parts"]}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"messageID":{"type":"string","pattern":"^msg.*"},"agent":{"type":"string"},"model":{"type":"string"},"arguments":{"type":"string"},"command":{"type":"string"}},"required":["arguments","command"]}}}}}},"/session/{id}/shell":{"post":{"operationId":"session.shell","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"id","schema":{"type":"string"},"required":true,"description":"Session ID"}],"description":"Run a shell command","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/{id}/revert":{"post":{"operationId":"session.revert","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"id","schema":{"type":"string"},"required":true}],"description":"Revert a message","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/{id}/unrevert":{"post":{"operationId":"session.unrevert","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"id","schema":{"type":"string"},"required":true}],"description":"Restore all reverted messages","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/{id}/permissions/{permissionID}":{"post":{"operationId":"postSession:idPermissions:permissionID","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"id","schema":{"type":"string"},"required":true},{"in":"path","name":"permissionID","schema":{"type":"string"},"required":true}],"description":"Respond to a permission request","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"]}}}}}},"/command":{"get":{"operationId":"command.list","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"description":"List all commands","responses":{"200":{"description":"List of commands","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Command"}}}}}}}},"/config/providers":{"get":{"operationId":"config.providers","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"description":"List all providers","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"]}}}}}}},"/provider":{"get":{"operationId":"provider.list","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"description":"List all providers","responses":{"200":{"description":"List of providers","content":{"application/json":{"schema":{"type":"object","properties":{"all":{"type":"array","items":{"type":"object","properties":{"api":{"type":"string"},"name":{"type":"string"},"env":{"type":"array","items":{"type":"string"}},"id":{"type":"string"},"npm":{"type":"string"},"models":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"release_date":{"type":"string"},"attachment":{"type":"boolean"},"reasoning":{"type":"boolean"},"temperature":{"type":"boolean"},"tool_call":{"type":"boolean"},"cost":{"type":"object","properties":{"input":{"type":"number"},"output":{"type":"number"},"cache_read":{"type":"number"},"cache_write":{"type":"number"},"context_over_200k":{"type":"object","properties":{"input":{"type":"number"},"output":{"type":"number"},"cache_read":{"type":"number"},"cache_write":{"type":"number"}},"required":["input","output"]}},"required":["input","output"]},"limit":{"type":"object","properties":{"context":{"type":"number"},"output":{"type":"number"}},"required":["context","output"]},"modalities":{"type":"object","properties":{"input":{"type":"array","items":{"type":"string","enum":["text","audio","image","video","pdf"]}},"output":{"type":"array","items":{"type":"string","enum":["text","audio","image","video","pdf"]}}},"required":["input","output"]},"experimental":{"type":"boolean"},"status":{"type":"string","enum":["alpha","beta","deprecated"]},"options":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"provider":{"type":"object","properties":{"npm":{"type":"string"}},"required":["npm"]}},"required":["id","name","release_date","attachment","reasoning","temperature","tool_call","limit","options"]}}},"required":["name","env","id","models"]}},"default":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"connected":{"type":"array","items":{"type":"string"}}},"required":["all","default","connected"]}}}}}}},"/provider/auth":{"get":{"operationId":"provider.auth","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"description":"Get provider authentication methods","responses":{"200":{"description":"Provider auth methods","content":{"application/json":{"schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/ProviderAuthMethod"}}}}}}}}},"/provider/{id}/oauth/authorize":{"post":{"operationId":"provider.oauth.authorize","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"id","schema":{"type":"string"},"required":true,"description":"Provider ID"}],"description":"Authorize a provider using OAuth","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/{id}/oauth/callback":{"post":{"operationId":"provider.oauth.callback","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"id","schema":{"type":"string"},"required":true,"description":"Provider ID"}],"description":"Handle OAuth callback for a provider","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}],"description":"Find text in files","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"]}}],"description":"Find files","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}],"description":"Find workspace symbols","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}],"description":"List files and directories","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}],"description":"Read a 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"}}],"description":"Get file status","responses":{"200":{"description":"File status","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/File"}}}}}}}},"/log":{"post":{"operationId":"app.log","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"description":"Write a log entry to the server logs","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"}}],"description":"List all agents","responses":{"200":{"description":"List of agents","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Agent"}}}}}}}},"/mcp":{"get":{"operationId":"mcp.status","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"description":"Get MCP server status","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"}}],"description":"Add MCP server dynamically","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"]}}}}}},"/lsp":{"get":{"operationId":"lsp.status","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"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"}}],"description":"Get formatter status","responses":{"200":{"description":"Formatter status","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FormatterStatus"}}}}}}}},"/tui/append-prompt":{"post":{"operationId":"tui.appendPrompt","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"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"}}],"description":"Open the help dialog","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"}}],"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"}}],"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"}}],"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"}}],"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"}}],"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"}}],"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"}}],"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"}}],"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"}]}}}}}},"/tui/control/next":{"get":{"operationId":"tui.control.next","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}}],"description":"Get the next TUI request from the queue","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"}}],"description":"Submit a response to the TUI request queue","responses":{"200":{"description":"Response submitted successfully","content":{"application/json":{"schema":{"type":"boolean"}}}}},"requestBody":{"content":{"application/json":{"schema":{}}}}}},"/auth/{id}":{"put":{"operationId":"auth.set","parameters":[{"in":"query","name":"directory","schema":{"type":"string"}},{"in":"path","name":"id","schema":{"type":"string"},"required":true}],"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"}}],"description":"Get events","responses":{"200":{"description":"Event stream","content":{"text/event-stream":{"schema":{"$ref":"#/components/schemas/Event"}}}}}}}},"components":{"schemas":{"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.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.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"]},"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"]},"SessionStatus":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"idle"}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","const":"retry"},"attempt":{"type":"number"},"message":{"type":"string"},"next":{"type":"number"}},"required":["type","attempt","message","next"]},{"type":"object","properties":{"type":{"type":"string","const":"busy"}},"required":["type"]}]},"Event.session.status":{"type":"object","properties":{"type":{"type":"string","const":"session.status"},"properties":{"type":"object","properties":{"sessionID":{"type":"string"},"status":{"$ref":"#/components/schemas/SessionStatus"}},"required":["sessionID","status"]}},"required":["type","properties"]},"Event.session.idle":{"type":"object","properties":{"type":{"type":"string","const":"session.idle"},"properties":{"type":"object","properties":{"sessionID":{"type":"string"}},"required":["sessionID"]}},"required":["type","properties"]},"Event.file.edited":{"type":"object","properties":{"type":{"type":"string","const":"file.edited"},"properties":{"type":"object","properties":{"file":{"type":"string"}},"required":["file"]}},"required":["type","properties"]},"Todo":{"type":"object","properties":{"content":{"description":"Brief description of the task","type":"string"},"status":{"description":"Current status of the task: pending, in_progress, completed, cancelled","type":"string"},"priority":{"description":"Priority level of the task: high, medium, low","type":"string"},"id":{"description":"Unique identifier for the todo item","type":"string"}},"required":["content","status","priority","id"]},"Event.todo.updated":{"type":"object","properties":{"type":{"type":"string","const":"todo.updated"},"properties":{"type":"object","properties":{"sessionID":{"type":"string"},"todos":{"type":"array","items":{"$ref":"#/components/schemas/Todo"}}},"required":["sessionID","todos"]}},"required":["type","properties"]},"Event.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.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"]},"FileDiff":{"type":"object","properties":{"file":{"type":"string"},"before":{"type":"string"},"after":{"type":"string"},"additions":{"type":"number"},"deletions":{"type":"number"}},"required":["file","before","after","additions","deletions"]},"UserMessage":{"type":"object","properties":{"id":{"type":"string"},"sessionID":{"type":"string"},"role":{"type":"string","const":"user"},"time":{"type":"object","properties":{"created":{"type":"number"}},"required":["created"]},"summary":{"type":"object","properties":{"title":{"type":"string"},"body":{"type":"string"},"diffs":{"type":"array","items":{"$ref":"#/components/schemas/FileDiff"}}},"required":["diffs"]},"agent":{"type":"string"},"model":{"type":"object","properties":{"providerID":{"type":"string"},"modelID":{"type":"string"}},"required":["providerID","modelID"]},"system":{"type":"string"},"tools":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"boolean"}}},"required":["id","sessionID","role","time","agent","model"]},"ProviderAuthError":{"type":"object","properties":{"name":{"type":"string","const":"ProviderAuthError"},"data":{"type":"object","properties":{"providerID":{"type":"string"},"message":{"type":"string"}},"required":["providerID","message"]}},"required":["name","data"]},"UnknownError":{"type":"object","properties":{"name":{"type":"string","const":"UnknownError"},"data":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}},"required":["name","data"]},"MessageOutputLengthError":{"type":"object","properties":{"name":{"type":"string","const":"MessageOutputLengthError"},"data":{"type":"object","properties":{}}},"required":["name","data"]},"MessageAbortedError":{"type":"object","properties":{"name":{"type":"string","const":"MessageAbortedError"},"data":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}},"required":["name","data"]},"APIError":{"type":"object","properties":{"name":{"type":"string","const":"APIError"},"data":{"type":"object","properties":{"message":{"type":"string"},"statusCode":{"type":"number"},"isRetryable":{"type":"boolean"},"responseHeaders":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"responseBody":{"type":"string"}},"required":["message","isRetryable"]}},"required":["name","data"]},"AssistantMessage":{"type":"object","properties":{"id":{"type":"string"},"sessionID":{"type":"string"},"role":{"type":"string","const":"assistant"},"time":{"type":"object","properties":{"created":{"type":"number"},"completed":{"type":"number"}},"required":["created"]},"error":{"anyOf":[{"$ref":"#/components/schemas/ProviderAuthError"},{"$ref":"#/components/schemas/UnknownError"},{"$ref":"#/components/schemas/MessageOutputLengthError"},{"$ref":"#/components/schemas/MessageAbortedError"},{"$ref":"#/components/schemas/APIError"}]},"parentID":{"type":"string"},"modelID":{"type":"string"},"providerID":{"type":"string"},"mode":{"type":"string"},"path":{"type":"object","properties":{"cwd":{"type":"string"},"root":{"type":"string"}},"required":["cwd","root"]},"summary":{"type":"boolean"},"cost":{"type":"number"},"tokens":{"type":"object","properties":{"input":{"type":"number"},"output":{"type":"number"},"reasoning":{"type":"number"},"cache":{"type":"object","properties":{"read":{"type":"number"},"write":{"type":"number"}},"required":["read","write"]}},"required":["input","output","reasoning","cache"]},"finish":{"type":"string"}},"required":["id","sessionID","role","time","parentID","modelID","providerID","mode","path","cost","tokens"]},"Message":{"anyOf":[{"$ref":"#/components/schemas/UserMessage"},{"$ref":"#/components/schemas/AssistantMessage"}]},"Event.message.updated":{"type":"object","properties":{"type":{"type":"string","const":"message.updated"},"properties":{"type":"object","properties":{"info":{"$ref":"#/components/schemas/Message"}},"required":["info"]}},"required":["type","properties"]},"Event.message.removed":{"type":"object","properties":{"type":{"type":"string","const":"message.removed"},"properties":{"type":"object","properties":{"sessionID":{"type":"string"},"messageID":{"type":"string"}},"required":["sessionID","messageID"]}},"required":["type","properties"]},"TextPart":{"type":"object","properties":{"id":{"type":"string"},"sessionID":{"type":"string"},"messageID":{"type":"string"},"type":{"type":"string","const":"text"},"text":{"type":"string"},"synthetic":{"type":"boolean"},"ignored":{"type":"boolean"},"time":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"required":["start"]},"metadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["id","sessionID","messageID","type","text"]},"ReasoningPart":{"type":"object","properties":{"id":{"type":"string"},"sessionID":{"type":"string"},"messageID":{"type":"string"},"type":{"type":"string","const":"reasoning"},"text":{"type":"string"},"metadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"time":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"required":["start"]}},"required":["id","sessionID","messageID","type","text","time"]},"FilePartSourceText":{"type":"object","properties":{"value":{"type":"string"},"start":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"end":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["value","start","end"]},"FileSource":{"type":"object","properties":{"text":{"$ref":"#/components/schemas/FilePartSourceText"},"type":{"type":"string","const":"file"},"path":{"type":"string"}},"required":["text","type","path"]},"Range":{"type":"object","properties":{"start":{"type":"object","properties":{"line":{"type":"number"},"character":{"type":"number"}},"required":["line","character"]},"end":{"type":"object","properties":{"line":{"type":"number"},"character":{"type":"number"}},"required":["line","character"]}},"required":["start","end"]},"SymbolSource":{"type":"object","properties":{"text":{"$ref":"#/components/schemas/FilePartSourceText"},"type":{"type":"string","const":"symbol"},"path":{"type":"string"},"range":{"$ref":"#/components/schemas/Range"},"name":{"type":"string"},"kind":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["text","type","path","range","name","kind"]},"FilePartSource":{"anyOf":[{"$ref":"#/components/schemas/FileSource"},{"$ref":"#/components/schemas/SymbolSource"}]},"FilePart":{"type":"object","properties":{"id":{"type":"string"},"sessionID":{"type":"string"},"messageID":{"type":"string"},"type":{"type":"string","const":"file"},"mime":{"type":"string"},"filename":{"type":"string"},"url":{"type":"string"},"source":{"$ref":"#/components/schemas/FilePartSource"}},"required":["id","sessionID","messageID","type","mime","url"]},"ToolStatePending":{"type":"object","properties":{"status":{"type":"string","const":"pending"},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"raw":{"type":"string"}},"required":["status","input","raw"]},"ToolStateRunning":{"type":"object","properties":{"status":{"type":"string","const":"running"},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"title":{"type":"string"},"metadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"time":{"type":"object","properties":{"start":{"type":"number"}},"required":["start"]}},"required":["status","input","time"]},"ToolStateCompleted":{"type":"object","properties":{"status":{"type":"string","const":"completed"},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"output":{"type":"string"},"title":{"type":"string"},"metadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"time":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"},"compacted":{"type":"number"}},"required":["start","end"]},"attachments":{"type":"array","items":{"$ref":"#/components/schemas/FilePart"}}},"required":["status","input","output","title","metadata","time"]},"ToolStateError":{"type":"object","properties":{"status":{"type":"string","const":"error"},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"error":{"type":"string"},"metadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"time":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"required":["start","end"]}},"required":["status","input","error","time"]},"ToolState":{"anyOf":[{"$ref":"#/components/schemas/ToolStatePending"},{"$ref":"#/components/schemas/ToolStateRunning"},{"$ref":"#/components/schemas/ToolStateCompleted"},{"$ref":"#/components/schemas/ToolStateError"}]},"ToolPart":{"type":"object","properties":{"id":{"type":"string"},"sessionID":{"type":"string"},"messageID":{"type":"string"},"type":{"type":"string","const":"tool"},"callID":{"type":"string"},"tool":{"type":"string"},"state":{"$ref":"#/components/schemas/ToolState"},"metadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["id","sessionID","messageID","type","callID","tool","state"]},"StepStartPart":{"type":"object","properties":{"id":{"type":"string"},"sessionID":{"type":"string"},"messageID":{"type":"string"},"type":{"type":"string","const":"step-start"},"snapshot":{"type":"string"}},"required":["id","sessionID","messageID","type"]},"StepFinishPart":{"type":"object","properties":{"id":{"type":"string"},"sessionID":{"type":"string"},"messageID":{"type":"string"},"type":{"type":"string","const":"step-finish"},"reason":{"type":"string"},"snapshot":{"type":"string"},"cost":{"type":"number"},"tokens":{"type":"object","properties":{"input":{"type":"number"},"output":{"type":"number"},"reasoning":{"type":"number"},"cache":{"type":"object","properties":{"read":{"type":"number"},"write":{"type":"number"}},"required":["read","write"]}},"required":["input","output","reasoning","cache"]}},"required":["id","sessionID","messageID","type","reason","cost","tokens"]},"SnapshotPart":{"type":"object","properties":{"id":{"type":"string"},"sessionID":{"type":"string"},"messageID":{"type":"string"},"type":{"type":"string","const":"snapshot"},"snapshot":{"type":"string"}},"required":["id","sessionID","messageID","type","snapshot"]},"PatchPart":{"type":"object","properties":{"id":{"type":"string"},"sessionID":{"type":"string"},"messageID":{"type":"string"},"type":{"type":"string","const":"patch"},"hash":{"type":"string"},"files":{"type":"array","items":{"type":"string"}}},"required":["id","sessionID","messageID","type","hash","files"]},"AgentPart":{"type":"object","properties":{"id":{"type":"string"},"sessionID":{"type":"string"},"messageID":{"type":"string"},"type":{"type":"string","const":"agent"},"name":{"type":"string"},"source":{"type":"object","properties":{"value":{"type":"string"},"start":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"end":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["value","start","end"]}},"required":["id","sessionID","messageID","type","name"]},"RetryPart":{"type":"object","properties":{"id":{"type":"string"},"sessionID":{"type":"string"},"messageID":{"type":"string"},"type":{"type":"string","const":"retry"},"attempt":{"type":"number"},"error":{"$ref":"#/components/schemas/APIError"},"time":{"type":"object","properties":{"created":{"type":"number"}},"required":["created"]}},"required":["id","sessionID","messageID","type","attempt","error","time"]},"CompactionPart":{"type":"object","properties":{"id":{"type":"string"},"sessionID":{"type":"string"},"messageID":{"type":"string"},"type":{"type":"string","const":"compaction"},"auto":{"type":"boolean"}},"required":["id","sessionID","messageID","type","auto"]},"Part":{"anyOf":[{"$ref":"#/components/schemas/TextPart"},{"type":"object","properties":{"id":{"type":"string"},"sessionID":{"type":"string"},"messageID":{"type":"string"},"type":{"type":"string","const":"subtask"},"prompt":{"type":"string"},"description":{"type":"string"},"agent":{"type":"string"}},"required":["id","sessionID","messageID","type","prompt","description","agent"]},{"$ref":"#/components/schemas/ReasoningPart"},{"$ref":"#/components/schemas/FilePart"},{"$ref":"#/components/schemas/ToolPart"},{"$ref":"#/components/schemas/StepStartPart"},{"$ref":"#/components/schemas/StepFinishPart"},{"$ref":"#/components/schemas/SnapshotPart"},{"$ref":"#/components/schemas/PatchPart"},{"$ref":"#/components/schemas/AgentPart"},{"$ref":"#/components/schemas/RetryPart"},{"$ref":"#/components/schemas/CompactionPart"}]},"Event.message.part.updated":{"type":"object","properties":{"type":{"type":"string","const":"message.part.updated"},"properties":{"type":"object","properties":{"part":{"$ref":"#/components/schemas/Part"},"delta":{"type":"string"}},"required":["part"]}},"required":["type","properties"]},"Event.message.part.removed":{"type":"object","properties":{"type":{"type":"string","const":"message.part.removed"},"properties":{"type":"object","properties":{"sessionID":{"type":"string"},"messageID":{"type":"string"},"partID":{"type":"string"}},"required":["sessionID","messageID","partID"]}},"required":["type","properties"]},"Permission":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"pattern":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"sessionID":{"type":"string"},"messageID":{"type":"string"},"callID":{"type":"string"},"title":{"type":"string"},"metadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"time":{"type":"object","properties":{"created":{"type":"number"}},"required":["created"]}},"required":["id","type","sessionID","messageID","title","metadata","time"]},"Event.permission.updated":{"type":"object","properties":{"type":{"type":"string","const":"permission.updated"},"properties":{"$ref":"#/components/schemas/Permission"}},"required":["type","properties"]},"Event.permission.replied":{"type":"object","properties":{"type":{"type":"string","const":"permission.replied"},"properties":{"type":"object","properties":{"sessionID":{"type":"string"},"permissionID":{"type":"string"},"response":{"type":"string"}},"required":["sessionID","permissionID","response"]}},"required":["type","properties"]},"Event.vcs.branch.updated":{"type":"object","properties":{"type":{"type":"string","const":"vcs.branch.updated"},"properties":{"type":"object","properties":{"branch":{"type":"string"}}}},"required":["type","properties"]},"Event.session.compacted":{"type":"object","properties":{"type":{"type":"string","const":"session.compacted"},"properties":{"type":"object","properties":{"sessionID":{"type":"string"}},"required":["sessionID"]}},"required":["type","properties"]},"Session":{"type":"object","properties":{"id":{"type":"string","pattern":"^ses.*"},"projectID":{"type":"string"},"directory":{"type":"string"},"parentID":{"type":"string","pattern":"^ses.*"},"summary":{"type":"object","properties":{"additions":{"type":"number"},"deletions":{"type":"number"},"files":{"type":"number"},"diffs":{"type":"array","items":{"$ref":"#/components/schemas/FileDiff"}}},"required":["additions","deletions","files"]},"share":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"]},"title":{"type":"string"},"version":{"type":"string"},"time":{"type":"object","properties":{"created":{"type":"number"},"updated":{"type":"number"},"compacting":{"type":"number"}},"required":["created","updated"]},"revert":{"type":"object","properties":{"messageID":{"type":"string"},"partID":{"type":"string"},"snapshot":{"type":"string"},"diff":{"type":"string"}},"required":["messageID"]}},"required":["id","projectID","directory","title","version","time"]},"Event.session.created":{"type":"object","properties":{"type":{"type":"string","const":"session.created"},"properties":{"type":"object","properties":{"info":{"$ref":"#/components/schemas/Session"}},"required":["info"]}},"required":["type","properties"]},"Event.session.updated":{"type":"object","properties":{"type":{"type":"string","const":"session.updated"},"properties":{"type":"object","properties":{"info":{"$ref":"#/components/schemas/Session"}},"required":["info"]}},"required":["type","properties"]},"Event.session.deleted":{"type":"object","properties":{"type":{"type":"string","const":"session.deleted"},"properties":{"type":"object","properties":{"info":{"$ref":"#/components/schemas/Session"}},"required":["info"]}},"required":["type","properties"]},"Event.session.diff":{"type":"object","properties":{"type":{"type":"string","const":"session.diff"},"properties":{"type":"object","properties":{"sessionID":{"type":"string"},"diff":{"type":"array","items":{"$ref":"#/components/schemas/FileDiff"}}},"required":["sessionID","diff"]}},"required":["type","properties"]},"Event.session.error":{"type":"object","properties":{"type":{"type":"string","const":"session.error"},"properties":{"type":"object","properties":{"sessionID":{"type":"string"},"error":{"anyOf":[{"$ref":"#/components/schemas/ProviderAuthError"},{"$ref":"#/components/schemas/UnknownError"},{"$ref":"#/components/schemas/MessageOutputLengthError"},{"$ref":"#/components/schemas/MessageAbortedError"},{"$ref":"#/components/schemas/APIError"}]}}}},"required":["type","properties"]},"Event.server.connected":{"type":"object","properties":{"type":{"type":"string","const":"server.connected"},"properties":{"type":"object","properties":{}}},"required":["type","properties"]},"Event":{"anyOf":[{"$ref":"#/components/schemas/Event.server.instance.disposed"},{"$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.installation.updated"},{"$ref":"#/components/schemas/Event.installation.update-available"},{"$ref":"#/components/schemas/Event.lsp.client.diagnostics"},{"$ref":"#/components/schemas/Event.session.status"},{"$ref":"#/components/schemas/Event.session.idle"},{"$ref":"#/components/schemas/Event.file.edited"},{"$ref":"#/components/schemas/Event.todo.updated"},{"$ref":"#/components/schemas/Event.lsp.updated"},{"$ref":"#/components/schemas/Event.command.executed"},{"$ref":"#/components/schemas/Event.file.watcher.updated"},{"$ref":"#/components/schemas/Event.message.updated"},{"$ref":"#/components/schemas/Event.message.removed"},{"$ref":"#/components/schemas/Event.message.part.updated"},{"$ref":"#/components/schemas/Event.message.part.removed"},{"$ref":"#/components/schemas/Event.permission.updated"},{"$ref":"#/components/schemas/Event.permission.replied"},{"$ref":"#/components/schemas/Event.vcs.branch.updated"},{"$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"]},"Project":{"type":"object","properties":{"id":{"type":"string"},"worktree":{"type":"string"},"vcsDir":{"type":"string"},"vcs":{"type":"string","const":"git"},"time":{"type":"object","properties":{"created":{"type":"number"},"initialized":{"type":"number"}},"required":["created"]}},"required":["id","worktree","time"]},"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"},"username_toggle":{"description":"Toggle username visibility","default":"none","type":"string"},"status_view":{"description":"View status","default":"<leader>s","type":"string"},"session_export":{"description":"Export session to editor","default":"<leader>x","type":"string"},"session_new":{"description":"Create a new session","default":"<leader>n","type":"string"},"session_list":{"description":"List all sessions","default":"<leader>l","type":"string"},"session_timeline":{"description":"Show session timeline","default":"<leader>g","type":"string"},"session_share":{"description":"Share current session","default":"none","type":"string"},"session_unshare":{"description":"Unshare current session","default":"none","type":"string"},"session_interrupt":{"description":"Interrupt current session","default":"escape","type":"string"},"session_compact":{"description":"Compact the session","default":"<leader>c","type":"string"},"messages_page_up":{"description":"Scroll messages up by one page","default":"pageup","type":"string"},"messages_page_down":{"description":"Scroll messages down by one page","default":"pagedown","type":"string"},"messages_half_page_up":{"description":"Scroll messages up by half page","default":"ctrl+alt+u","type":"string"},"messages_half_page_down":{"description":"Scroll messages down by half page","default":"ctrl+alt+d","type":"string"},"messages_first":{"description":"Navigate to first message","default":"ctrl+g,home","type":"string"},"messages_last":{"description":"Navigate to last message","default":"ctrl+alt+g,end","type":"string"},"messages_last_user":{"description":"Navigate to last user message","default":"none","type":"string"},"messages_copy":{"description":"Copy message","default":"<leader>y","type":"string"},"messages_undo":{"description":"Undo message","default":"<leader>u","type":"string"},"messages_redo":{"description":"Redo message","default":"<leader>r","type":"string"},"messages_toggle_conceal":{"description":"Toggle code block concealment in messages","default":"<leader>h","type":"string"},"tool_details":{"description":"Toggle tool details visibility","default":"none","type":"string"},"model_list":{"description":"List available models","default":"<leader>m","type":"string"},"model_cycle_recent":{"description":"Next recently used model","default":"f2","type":"string"},"model_cycle_recent_reverse":{"description":"Previous recently used model","default":"shift+f2","type":"string"},"command_list":{"description":"List available commands","default":"ctrl+p","type":"string"},"agent_list":{"description":"List agents","default":"<leader>a","type":"string"},"agent_cycle":{"description":"Next agent","default":"tab","type":"string"},"agent_cycle_reverse":{"description":"Previous agent","default":"shift+tab","type":"string"},"input_clear":{"description":"Clear input field","default":"ctrl+c","type":"string"},"input_forward_delete":{"description":"Forward delete","default":"ctrl+d","type":"string"},"input_paste":{"description":"Paste from clipboard","default":"ctrl+v","type":"string"},"input_submit":{"description":"Submit input","default":"return","type":"string"},"input_newline":{"description":"Insert newline in input","default":"shift+return,ctrl+j","type":"string"},"history_previous":{"description":"Previous history item","default":"up","type":"string"},"history_next":{"description":"Next history item","default":"down","type":"string"},"session_child_cycle":{"description":"Next child session","default":"<leader>right","type":"string"},"session_child_cycle_reverse":{"description":"Previous child session","default":"<leader>left","type":"string"},"terminal_suspend":{"description":"Suspend terminal","default":"ctrl+z","type":"string"}},"additionalProperties":false},"AgentConfig":{"type":"object","properties":{"model":{"type":"string"},"temperature":{"type":"number"},"top_p":{"type":"number"},"prompt":{"type":"string"},"tools":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"boolean"}},"disable":{"type":"boolean"},"description":{"description":"Description of when to use the agent","type":"string"},"mode":{"type":"string","enum":["subagent","primary","all"]},"color":{"description":"Hex color code for the agent (e.g., #FF5733)","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"permission":{"type":"object","properties":{"edit":{"type":"string","enum":["ask","allow","deny"]},"bash":{"anyOf":[{"type":"string","enum":["ask","allow","deny"]},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string","enum":["ask","allow","deny"]}}]},"webfetch":{"type":"string","enum":["ask","allow","deny"]},"doom_loop":{"type":"string","enum":["ask","allow","deny"]},"external_directory":{"type":"string","enum":["ask","allow","deny"]}}}},"additionalProperties":{}},"ProviderConfig":{"type":"object","properties":{"api":{"type":"string"},"name":{"type":"string"},"env":{"type":"array","items":{"type":"string"}},"id":{"type":"string"},"npm":{"type":"string"},"models":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"release_date":{"type":"string"},"attachment":{"type":"boolean"},"reasoning":{"type":"boolean"},"temperature":{"type":"boolean"},"tool_call":{"type":"boolean"},"cost":{"type":"object","properties":{"input":{"type":"number"},"output":{"type":"number"},"cache_read":{"type":"number"},"cache_write":{"type":"number"},"context_over_200k":{"type":"object","properties":{"input":{"type":"number"},"output":{"type":"number"},"cache_read":{"type":"number"},"cache_write":{"type":"number"}},"required":["input","output"]}},"required":["input","output"]},"limit":{"type":"object","properties":{"context":{"type":"number"},"output":{"type":"number"}},"required":["context","output"]},"modalities":{"type":"object","properties":{"input":{"type":"array","items":{"type":"string","enum":["text","audio","image","video","pdf"]}},"output":{"type":"array","items":{"type":"string","enum":["text","audio","image","video","pdf"]}}},"required":["input","output"]},"experimental":{"type":"boolean"},"status":{"type":"string","enum":["alpha","beta","deprecated"]},"options":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"provider":{"type":"object","properties":{"npm":{"type":"string"}},"required":["npm"]}}}},"whitelist":{"type":"array","items":{"type":"string"}},"blacklist":{"type":"array","items":{"type":"string"}},"options":{"type":"object","properties":{"apiKey":{"type":"string"},"baseURL":{"type":"string"},"enterpriseUrl":{"description":"GitHub Enterprise URL for copilot authentication","type":"string"},"setCacheKey":{"description":"Enable promptCacheKey for this provider (default false)","type":"boolean"},"timeout":{"description":"Timeout in milliseconds for requests to this provider. Default is 300000 (5 minutes). Set to false to disable timeout.","anyOf":[{"description":"Timeout in milliseconds for requests to this provider. Default is 300000 (5 minutes). Set to false to disable timeout.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"description":"Disable timeout for this provider entirely.","type":"boolean","const":false}]}},"additionalProperties":{}}},"additionalProperties":false},"McpLocalConfig":{"type":"object","properties":{"type":{"description":"Type of MCP server connection","type":"string","const":"local"},"command":{"description":"Command and arguments to run the MCP server","type":"array","items":{"type":"string"}},"environment":{"description":"Environment variables to set when running the MCP server","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"enabled":{"description":"Enable or disable the MCP server on startup","type":"boolean"},"timeout":{"description":"Timeout in ms for fetching tools from the MCP server. Defaults to 5000 (5 seconds) if not specified.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["type","command"],"additionalProperties":false},"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"}},"timeout":{"description":"Timeout in ms for fetching tools from the MCP server. Defaults to 5000 (5 seconds) if not specified.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["type","url"],"additionalProperties":false},"LayoutConfig":{"description":"@deprecated Always uses stretch layout.","type":"string","enum":["auto","stretch"]},"Config":{"type":"object","properties":{"$schema":{"description":"JSON schema reference for configuration validation","type":"string"},"theme":{"description":"Theme name to use for the interface","type":"string"},"keybinds":{"$ref":"#/components/schemas/KeybindsConfig"},"tui":{"description":"TUI specific settings","type":"object","properties":{"scroll_speed":{"description":"TUI scroll speed","type":"number","minimum":0.001},"scroll_acceleration":{"description":"Scroll acceleration settings","type":"object","properties":{"enabled":{"description":"Enable scroll acceleration","type":"boolean"}},"required":["enabled"]},"diff_style":{"description":"Control diff rendering style: 'auto' adapts to terminal width, 'stacked' always shows single column","type":"string","enum":["auto","stacked"]}}},"command":{"description":"Command configuration, see https://opencode.ai/docs/commands","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"template":{"type":"string"},"description":{"type":"string"},"agent":{"type":"string"},"model":{"type":"string"},"subtask":{"type":"boolean"}},"required":["template"]}},"watcher":{"type":"object","properties":{"ignore":{"type":"array","items":{"type":"string"}}}},"plugin":{"type":"array","items":{"type":"string"}},"snapshot":{"type":"boolean"},"share":{"description":"Control sharing behavior:'manual' allows manual sharing via commands, 'auto' enables automatic sharing, 'disabled' disables all sharing","type":"string","enum":["manual","auto","disabled"]},"autoshare":{"description":"@deprecated Use 'share' field instead. Share newly created sessions automatically","type":"boolean"},"autoupdate":{"description":"Automatically update to the latest version. Set to true to auto-update, false to disable, or 'notify' to show update notifications","anyOf":[{"type":"boolean"},{"type":"string","const":"notify"}]},"disabled_providers":{"description":"Disable providers that are loaded automatically","type":"array","items":{"type":"string"}},"enabled_providers":{"description":"When set, ONLY these providers will be enabled. All other providers will be ignored","type":"array","items":{"type":"string"}},"model":{"description":"Model to use in the format of provider/model, eg anthropic/claude-2","type":"string"},"small_model":{"description":"Small model to use for tasks like title generation in the format of provider/model","type":"string"},"username":{"description":"Custom username to display in conversations instead of system username","type":"string"},"mode":{"description":"@deprecated Use `agent` field instead.","type":"object","properties":{"build":{"$ref":"#/components/schemas/AgentConfig"},"plan":{"$ref":"#/components/schemas/AgentConfig"}},"additionalProperties":{"$ref":"#/components/schemas/AgentConfig"}},"agent":{"description":"Agent configuration, see https://opencode.ai/docs/agent","type":"object","properties":{"plan":{"$ref":"#/components/schemas/AgentConfig"},"build":{"$ref":"#/components/schemas/AgentConfig"},"general":{"$ref":"#/components/schemas/AgentConfig"},"explore":{"$ref":"#/components/schemas/AgentConfig"}},"additionalProperties":{"$ref":"#/components/schemas/AgentConfig"}},"provider":{"description":"Custom provider configurations and model overrides","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/ProviderConfig"}},"mcp":{"description":"MCP (Model Context Protocol) server configurations","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"$ref":"#/components/schemas/McpLocalConfig"},{"$ref":"#/components/schemas/McpRemoteConfig"}]}},"formatter":{"anyOf":[{"type":"boolean","const":false},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"disabled":{"type":"boolean"},"command":{"type":"array","items":{"type":"string"}},"environment":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"extensions":{"type":"array","items":{"type":"string"}}}}}]},"lsp":{"anyOf":[{"type":"boolean","const":false},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"object","properties":{"disabled":{"type":"boolean","const":true}},"required":["disabled"]},{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"}},"extensions":{"type":"array","items":{"type":"string"}},"disabled":{"type":"boolean"},"env":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"initialization":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["command"]}]}}]},"instructions":{"description":"Additional instruction files or patterns to include","type":"array","items":{"type":"string"}},"layout":{"$ref":"#/components/schemas/LayoutConfig"},"permission":{"type":"object","properties":{"edit":{"type":"string","enum":["ask","allow","deny"]},"bash":{"anyOf":[{"type":"string","enum":["ask","allow","deny"]},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string","enum":["ask","allow","deny"]}}]},"webfetch":{"type":"string","enum":["ask","allow","deny"]},"doom_loop":{"type":"string","enum":["ask","allow","deny"]},"external_directory":{"type":"string","enum":["ask","allow","deny"]}}},"tools":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"boolean"}},"enterprise":{"type":"object","properties":{"url":{"description":"Enterprise URL","type":"string"}}},"experimental":{"type":"object","properties":{"hook":{"type":"object","properties":{"file_edited":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"}},"environment":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}},"required":["command"]}}},"session_completed":{"type":"array","items":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"}},"environment":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}},"required":["command"]}}}},"chatMaxRetries":{"description":"Number of retries for chat completions on failure","type":"number"},"disable_paste_summary":{"type":"boolean"},"batch_tool":{"description":"Enable the batch tool","type":"boolean"},"primary_tools":{"description":"Tools that should only be available to primary agents.","type":"array","items":{"type":"string"}}}}},"additionalProperties":false},"BadRequestError":{"type":"object","properties":{"data":{},"errors":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"success":{"type":"boolean","const":false}},"required":["data","errors","success"]},"ToolIDs":{"type":"array","items":{"type":"string"}},"ToolListItem":{"type":"object","properties":{"id":{"type":"string"},"description":{"type":"string"},"parameters":{}},"required":["id","description","parameters"]},"ToolList":{"type":"array","items":{"$ref":"#/components/schemas/ToolListItem"}},"Path":{"type":"object","properties":{"state":{"type":"string"},"config":{"type":"string"},"worktree":{"type":"string"},"directory":{"type":"string"}},"required":["state","config","worktree","directory"]},"VcsInfo":{"type":"object","properties":{"branch":{"type":"string"}},"required":["branch"]},"NotFoundError":{"type":"object","properties":{"name":{"type":"string","const":"NotFoundError"},"data":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}},"required":["name","data"]},"TextPartInput":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"text"},"text":{"type":"string"},"synthetic":{"type":"boolean"},"ignored":{"type":"boolean"},"time":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"required":["start"]},"metadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","text"]},"FilePartInput":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"file"},"mime":{"type":"string"},"filename":{"type":"string"},"url":{"type":"string"},"source":{"$ref":"#/components/schemas/FilePartSource"}},"required":["type","mime","url"]},"AgentPartInput":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"agent"},"name":{"type":"string"},"source":{"type":"object","properties":{"value":{"type":"string"},"start":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"end":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["value","start","end"]}},"required":["type","name"]},"SubtaskPartInput":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"subtask"},"prompt":{"type":"string"},"description":{"type":"string"},"agent":{"type":"string"}},"required":["type","prompt","description","agent"]},"Command":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"agent":{"type":"string"},"model":{"type":"string"},"template":{"type":"string"},"subtask":{"type":"boolean"}},"required":["name","template"]},"Model":{"type":"object","properties":{"id":{"type":"string"},"providerID":{"type":"string"},"api":{"type":"object","properties":{"id":{"type":"string"},"url":{"type":"string"},"npm":{"type":"string"}},"required":["id","url","npm"]},"name":{"type":"string"},"capabilities":{"type":"object","properties":{"temperature":{"type":"boolean"},"reasoning":{"type":"boolean"},"attachment":{"type":"boolean"},"toolcall":{"type":"boolean"},"input":{"type":"object","properties":{"text":{"type":"boolean"},"audio":{"type":"boolean"},"image":{"type":"boolean"},"video":{"type":"boolean"},"pdf":{"type":"boolean"}},"required":["text","audio","image","video","pdf"]},"output":{"type":"object","properties":{"text":{"type":"boolean"},"audio":{"type":"boolean"},"image":{"type":"boolean"},"video":{"type":"boolean"},"pdf":{"type":"boolean"}},"required":["text","audio","image","video","pdf"]}},"required":["temperature","reasoning","attachment","toolcall","input","output"]},"cost":{"type":"object","properties":{"input":{"type":"number"},"output":{"type":"number"},"cache":{"type":"object","properties":{"read":{"type":"number"},"write":{"type":"number"}},"required":["read","write"]},"experimentalOver200K":{"type":"object","properties":{"input":{"type":"number"},"output":{"type":"number"},"cache":{"type":"object","properties":{"read":{"type":"number"},"write":{"type":"number"}},"required":["read","write"]}},"required":["input","output","cache"]}},"required":["input","output","cache"]},"limit":{"type":"object","properties":{"context":{"type":"number"},"output":{"type":"number"}},"required":["context","output"]},"status":{"type":"string","enum":["alpha","beta","deprecated","active"]},"options":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}},"required":["id","providerID","api","name","capabilities","cost","limit","status","options","headers"]},"Provider":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"source":{"type":"string","enum":["env","config","custom","api"]},"env":{"type":"array","items":{"type":"string"}},"key":{"type":"string"},"options":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"models":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/Model"}}},"required":["id","name","source","env","options","models"]},"ProviderAuthMethod":{"type":"object","properties":{"type":{"anyOf":[{"type":"string","const":"oauth"},{"type":"string","const":"api"}]},"label":{"type":"string"}},"required":["type","label"]},"ProviderAuthAuthorization":{"type":"object","properties":{"url":{"type":"string"},"method":{"anyOf":[{"type":"string","const":"auto"},{"type":"string","const":"code"}]},"instructions":{"type":"string"}},"required":["url","method","instructions"]},"Symbol":{"type":"object","properties":{"name":{"type":"string"},"kind":{"type":"number"},"location":{"type":"object","properties":{"uri":{"type":"string"},"range":{"$ref":"#/components/schemas/Range"}},"required":["uri","range"]}},"required":["name","kind","location"]},"FileNode":{"type":"object","properties":{"name":{"type":"string"},"path":{"type":"string"},"absolute":{"type":"string"},"type":{"type":"string","enum":["file","directory"]},"ignored":{"type":"boolean"}},"required":["name","path","absolute","type","ignored"]},"FileContent":{"type":"object","properties":{"type":{"type":"string","const":"text"},"content":{"type":"string"},"diff":{"type":"string"},"patch":{"type":"object","properties":{"oldFileName":{"type":"string"},"newFileName":{"type":"string"},"oldHeader":{"type":"string"},"newHeader":{"type":"string"},"hunks":{"type":"array","items":{"type":"object","properties":{"oldStart":{"type":"number"},"oldLines":{"type":"number"},"newStart":{"type":"number"},"newLines":{"type":"number"},"lines":{"type":"array","items":{"type":"string"}}},"required":["oldStart","oldLines","newStart","newLines","lines"]}},"index":{"type":"string"}},"required":["oldFileName","newFileName","hunks"]},"encoding":{"type":"string","const":"base64"},"mimeType":{"type":"string"}},"required":["type","content"]},"File":{"type":"object","properties":{"path":{"type":"string"},"added":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"removed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"status":{"type":"string","enum":["added","deleted","modified"]}},"required":["path","added","removed","status"]},"Agent":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"mode":{"type":"string","enum":["subagent","primary","all"]},"builtIn":{"type":"boolean"},"topP":{"type":"number"},"temperature":{"type":"number"},"color":{"type":"string"},"permission":{"type":"object","properties":{"edit":{"type":"string","enum":["ask","allow","deny"]},"bash":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string","enum":["ask","allow","deny"]}},"webfetch":{"type":"string","enum":["ask","allow","deny"]},"doom_loop":{"type":"string","enum":["ask","allow","deny"]},"external_directory":{"type":"string","enum":["ask","allow","deny"]}},"required":["edit","bash"]},"model":{"type":"object","properties":{"modelID":{"type":"string"},"providerID":{"type":"string"}},"required":["modelID","providerID"]},"prompt":{"type":"string"},"tools":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"boolean"}},"options":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["name","mode","builtIn","permission","tools","options"]},"MCPStatusConnected":{"type":"object","properties":{"status":{"type":"string","const":"connected"}},"required":["status"]},"MCPStatusDisabled":{"type":"object","properties":{"status":{"type":"string","const":"disabled"}},"required":["status"]},"MCPStatusFailed":{"type":"object","properties":{"status":{"type":"string","const":"failed"},"error":{"type":"string"}},"required":["status","error"]},"MCPStatus":{"anyOf":[{"$ref":"#/components/schemas/MCPStatusConnected"},{"$ref":"#/components/schemas/MCPStatusDisabled"},{"$ref":"#/components/schemas/MCPStatusFailed"}]},"LSPStatus":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"root":{"type":"string"},"status":{"anyOf":[{"type":"string","const":"connected"},{"type":"string","const":"error"}]}},"required":["id","name","root","status"]},"FormatterStatus":{"type":"object","properties":{"name":{"type":"string"},"extensions":{"type":"array","items":{"type":"string"}},"enabled":{"type":"boolean"}},"required":["name","extensions","enabled"]},"OAuth":{"type":"object","properties":{"type":{"type":"string","const":"oauth"},"refresh":{"type":"string"},"access":{"type":"string"},"expires":{"type":"number"},"enterpriseUrl":{"type":"string"}},"required":["type","refresh","access","expires"]},"ApiAuth":{"type":"object","properties":{"type":{"type":"string","const":"api"},"key":{"type":"string"}},"required":["type","key"]},"WellKnownAuth":{"type":"object","properties":{"type":{"type":"string","const":"wellknown"},"key":{"type":"string"},"token":{"type":"string"}},"required":["type","key","token"]},"Auth":{"anyOf":[{"$ref":"#/components/schemas/OAuth"},{"$ref":"#/components/schemas/ApiAuth"},{"$ref":"#/components/schemas/WellKnownAuth"}]}}}}