summaryrefslogtreecommitdiffhomepage
path: root/packages/sdk/openapi.json
diff options
context:
space:
mode:
authorJames Long <[email protected]>2026-03-25 10:47:40 -0400
committerGitHub <[email protected]>2026-03-25 10:47:40 -0400
commitb0017bf1b96ef14fc1ecf91c0b9c4b18e2dfea71 (patch)
tree9995f618fae9c35c7308934fe8e5260c6c8fe2aa /packages/sdk/openapi.json
parent0c0c6f3bdb75663837555b07110d7a1b313daeac (diff)
downloadopencode-b0017bf1b96ef14fc1ecf91c0b9c4b18e2dfea71.tar.gz
opencode-b0017bf1b96ef14fc1ecf91c0b9c4b18e2dfea71.zip
feat(core): initial implementation of syncing (#17814)
Diffstat (limited to 'packages/sdk/openapi.json')
-rw-r--r--packages/sdk/openapi.json2391
1 files changed, 1372 insertions, 1019 deletions
diff --git a/packages/sdk/openapi.json b/packages/sdk/openapi.json
index a66ef6364..053fc5b94 100644
--- a/packages/sdk/openapi.json
+++ b/packages/sdk/openapi.json
@@ -66,6 +66,31 @@
]
}
},
+ "/global/sync-event": {
+ "get": {
+ "operationId": "global.sync-event.subscribe",
+ "summary": "Subscribe to global sync events",
+ "description": "Get global sync events",
+ "responses": {
+ "200": {
+ "description": "Event stream",
+ "content": {
+ "text/event-stream": {
+ "schema": {
+ "$ref": "#/components/schemas/SyncEvent"
+ }
+ }
+ }
+ }
+ },
+ "x-codeSamples": [
+ {
+ "lang": "js",
+ "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.global.sync-event.subscribe({\n ...\n})"
+ }
+ ]
+ }
+ },
"/global/config": {
"get": {
"operationId": "global.config.get",
@@ -7212,173 +7237,720 @@
},
"required": ["type", "properties"]
},
- "Event.file.edited": {
+ "Event.message.part.delta": {
"type": "object",
"properties": {
"type": {
"type": "string",
- "const": "file.edited"
+ "const": "message.part.delta"
},
"properties": {
"type": "object",
"properties": {
- "file": {
+ "sessionID": {
+ "type": "string",
+ "pattern": "^ses.*"
+ },
+ "messageID": {
+ "type": "string",
+ "pattern": "^msg.*"
+ },
+ "partID": {
+ "type": "string",
+ "pattern": "^prt.*"
+ },
+ "field": {
+ "type": "string"
+ },
+ "delta": {
"type": "string"
}
},
- "required": ["file"]
+ "required": ["sessionID", "messageID", "partID", "field", "delta"]
}
},
"required": ["type", "properties"]
},
- "OutputFormatText": {
+ "PermissionRequest": {
"type": "object",
"properties": {
- "type": {
+ "id": {
"type": "string",
- "const": "text"
+ "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",
+ "pattern": "^msg.*"
+ },
+ "callID": {
+ "type": "string"
+ }
+ },
+ "required": ["messageID", "callID"]
}
},
- "required": ["type"]
+ "required": ["id", "sessionID", "permission", "patterns", "metadata", "always"]
},
- "JSONSchema": {
+ "Event.permission.asked": {
"type": "object",
- "propertyNames": {
- "type": "string"
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "permission.asked"
+ },
+ "properties": {
+ "$ref": "#/components/schemas/PermissionRequest"
+ }
},
- "additionalProperties": {}
+ "required": ["type", "properties"]
},
- "OutputFormatJsonSchema": {
+ "Event.permission.replied": {
"type": "object",
"properties": {
"type": {
"type": "string",
- "const": "json_schema"
- },
- "schema": {
- "$ref": "#/components/schemas/JSONSchema"
+ "const": "permission.replied"
},
- "retryCount": {
- "default": 2,
- "type": "integer",
- "minimum": 0,
- "maximum": 9007199254740991
+ "properties": {
+ "type": "object",
+ "properties": {
+ "sessionID": {
+ "type": "string",
+ "pattern": "^ses.*"
+ },
+ "requestID": {
+ "type": "string",
+ "pattern": "^per.*"
+ },
+ "reply": {
+ "type": "string",
+ "enum": ["once", "always", "reject"]
+ }
+ },
+ "required": ["sessionID", "requestID", "reply"]
}
},
- "required": ["type", "schema"]
+ "required": ["type", "properties"]
},
- "OutputFormat": {
+ "SessionStatus": {
"anyOf": [
{
- "$ref": "#/components/schemas/OutputFormatText"
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "idle"
+ }
+ },
+ "required": ["type"]
},
{
- "$ref": "#/components/schemas/OutputFormatJsonSchema"
+ "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"]
}
]
},
- "FileDiff": {
+ "Event.session.status": {
"type": "object",
"properties": {
- "file": {
+ "type": {
+ "type": "string",
+ "const": "session.status"
+ },
+ "properties": {
+ "type": "object",
+ "properties": {
+ "sessionID": {
+ "type": "string",
+ "pattern": "^ses.*"
+ },
+ "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",
+ "pattern": "^ses.*"
+ }
+ },
+ "required": ["sessionID"]
+ }
+ },
+ "required": ["type", "properties"]
+ },
+ "QuestionOption": {
+ "type": "object",
+ "properties": {
+ "label": {
+ "description": "Display text (1-5 words, concise)",
"type": "string"
},
- "before": {
+ "description": {
+ "description": "Explanation of choice",
+ "type": "string"
+ }
+ },
+ "required": ["label", "description"]
+ },
+ "QuestionInfo": {
+ "type": "object",
+ "properties": {
+ "question": {
+ "description": "Complete question",
"type": "string"
},
- "after": {
+ "header": {
+ "description": "Very short label (max 30 chars)",
"type": "string"
},
- "additions": {
- "type": "number"
+ "options": {
+ "description": "Available choices",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/QuestionOption"
+ }
},
- "deletions": {
- "type": "number"
+ "multiple": {
+ "description": "Allow selecting multiple choices",
+ "type": "boolean"
},
- "status": {
- "type": "string",
- "enum": ["added", "deleted", "modified"]
+ "custom": {
+ "description": "Allow typing a custom answer (default: true)",
+ "type": "boolean"
}
},
- "required": ["file", "before", "after", "additions", "deletions"]
+ "required": ["question", "header", "options"]
},
- "UserMessage": {
+ "QuestionRequest": {
"type": "object",
"properties": {
"id": {
"type": "string",
- "pattern": "^msg.*"
+ "pattern": "^que.*"
},
"sessionID": {
"type": "string",
"pattern": "^ses.*"
},
- "role": {
+ "questions": {
+ "description": "Questions to ask",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/QuestionInfo"
+ }
+ },
+ "tool": {
+ "type": "object",
+ "properties": {
+ "messageID": {
+ "type": "string",
+ "pattern": "^msg.*"
+ },
+ "callID": {
+ "type": "string"
+ }
+ },
+ "required": ["messageID", "callID"]
+ }
+ },
+ "required": ["id", "sessionID", "questions"]
+ },
+ "Event.question.asked": {
+ "type": "object",
+ "properties": {
+ "type": {
"type": "string",
- "const": "user"
+ "const": "question.asked"
},
- "time": {
+ "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": {
- "created": {
- "type": "number"
+ "sessionID": {
+ "type": "string",
+ "pattern": "^ses.*"
+ },
+ "requestID": {
+ "type": "string",
+ "pattern": "^que.*"
+ },
+ "answers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/QuestionAnswer"
+ }
}
},
- "required": ["created"]
+ "required": ["sessionID", "requestID", "answers"]
+ }
+ },
+ "required": ["type", "properties"]
+ },
+ "Event.question.rejected": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "question.rejected"
},
- "format": {
- "$ref": "#/components/schemas/OutputFormat"
+ "properties": {
+ "type": "object",
+ "properties": {
+ "sessionID": {
+ "type": "string",
+ "pattern": "^ses.*"
+ },
+ "requestID": {
+ "type": "string",
+ "pattern": "^que.*"
+ }
+ },
+ "required": ["sessionID", "requestID"]
+ }
+ },
+ "required": ["type", "properties"]
+ },
+ "Event.session.compacted": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "session.compacted"
},
- "summary": {
+ "properties": {
"type": "object",
"properties": {
- "title": {
+ "sessionID": {
+ "type": "string",
+ "pattern": "^ses.*"
+ }
+ },
+ "required": ["sessionID"]
+ }
+ },
+ "required": ["type", "properties"]
+ },
+ "Event.file.edited": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "file.edited"
+ },
+ "properties": {
+ "type": "object",
+ "properties": {
+ "file": {
"type": "string"
- },
- "body": {
+ }
+ },
+ "required": ["file"]
+ }
+ },
+ "required": ["type", "properties"]
+ },
+ "Event.file.watcher.updated": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "file.watcher.updated"
+ },
+ "properties": {
+ "type": "object",
+ "properties": {
+ "file": {
"type": "string"
},
- "diffs": {
+ "event": {
+ "anyOf": [
+ {
+ "type": "string",
+ "const": "add"
+ },
+ {
+ "type": "string",
+ "const": "change"
+ },
+ {
+ "type": "string",
+ "const": "unlink"
+ }
+ ]
+ }
+ },
+ "required": ["file", "event"]
+ }
+ },
+ "required": ["type", "properties"]
+ },
+ "Todo": {
+ "type": "object",
+ "properties": {
+ "content": {
+ "description": "Brief description of the task",
+ "type": "string"
+ },
+ "status": {
+ "description": "Current status of the task: pending, in_progress, completed, cancelled",
+ "type": "string"
+ },
+ "priority": {
+ "description": "Priority level of the task: high, medium, low",
+ "type": "string"
+ }
+ },
+ "required": ["content", "status", "priority"]
+ },
+ "Event.todo.updated": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "todo.updated"
+ },
+ "properties": {
+ "type": "object",
+ "properties": {
+ "sessionID": {
+ "type": "string",
+ "pattern": "^ses.*"
+ },
+ "todos": {
"type": "array",
"items": {
- "$ref": "#/components/schemas/FileDiff"
+ "$ref": "#/components/schemas/Todo"
}
}
},
- "required": ["diffs"]
+ "required": ["sessionID", "todos"]
+ }
+ },
+ "required": ["type", "properties"]
+ },
+ "Event.tui.prompt.append": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "tui.prompt.append"
},
- "agent": {
- "type": "string"
+ "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"
},
- "model": {
+ "properties": {
"type": "object",
"properties": {
- "providerID": {
+ "command": {
+ "anyOf": [
+ {
+ "type": "string",
+ "enum": [
+ "session.list",
+ "session.new",
+ "session.share",
+ "session.interrupt",
+ "session.compact",
+ "session.page.up",
+ "session.page.down",
+ "session.line.up",
+ "session.line.down",
+ "session.half.page.up",
+ "session.half.page.down",
+ "session.first",
+ "session.last",
+ "prompt.clear",
+ "prompt.submit",
+ "agent.cycle"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": ["command"]
+ }
+ },
+ "required": ["type", "properties"]
+ },
+ "Event.tui.toast.show": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "tui.toast.show"
+ },
+ "properties": {
+ "type": "object",
+ "properties": {
+ "title": {
"type": "string"
},
- "modelID": {
+ "message": {
"type": "string"
+ },
+ "variant": {
+ "type": "string",
+ "enum": ["info", "success", "warning", "error"]
+ },
+ "duration": {
+ "description": "Duration in milliseconds",
+ "default": 5000,
+ "type": "number"
}
},
- "required": ["providerID", "modelID"]
+ "required": ["message", "variant"]
+ }
+ },
+ "required": ["type", "properties"]
+ },
+ "Event.tui.session.select": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "tui.session.select"
},
- "system": {
- "type": "string"
+ "properties": {
+ "type": "object",
+ "properties": {
+ "sessionID": {
+ "description": "Session ID to navigate to",
+ "type": "string",
+ "pattern": "^ses.*"
+ }
+ },
+ "required": ["sessionID"]
+ }
+ },
+ "required": ["type", "properties"]
+ },
+ "Event.mcp.tools.changed": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "mcp.tools.changed"
},
- "tools": {
+ "properties": {
"type": "object",
- "propertyNames": {
- "type": "string"
+ "properties": {
+ "server": {
+ "type": "string"
+ }
},
- "additionalProperties": {
- "type": "boolean"
- }
+ "required": ["server"]
+ }
+ },
+ "required": ["type", "properties"]
+ },
+ "Event.mcp.browser.open.failed": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "mcp.browser.open.failed"
},
- "variant": {
+ "properties": {
+ "type": "object",
+ "properties": {
+ "mcpName": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "required": ["mcpName", "url"]
+ }
+ },
+ "required": ["type", "properties"]
+ },
+ "Event.command.executed": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "command.executed"
+ },
+ "properties": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "sessionID": {
+ "type": "string",
+ "pattern": "^ses.*"
+ },
+ "arguments": {
+ "type": "string"
+ },
+ "messageID": {
+ "type": "string",
+ "pattern": "^msg.*"
+ }
+ },
+ "required": ["name", "sessionID", "arguments", "messageID"]
+ }
+ },
+ "required": ["type", "properties"]
+ },
+ "FileDiff": {
+ "type": "object",
+ "properties": {
+ "file": {
+ "type": "string"
+ },
+ "before": {
+ "type": "string"
+ },
+ "after": {
"type": "string"
+ },
+ "additions": {
+ "type": "number"
+ },
+ "deletions": {
+ "type": "number"
+ },
+ "status": {
+ "type": "string",
+ "enum": ["added", "deleted", "modified"]
}
},
- "required": ["id", "sessionID", "role", "time", "agent", "model"]
+ "required": ["file", "before", "after", "additions", "deletions"]
+ },
+ "Event.session.diff": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "session.diff"
+ },
+ "properties": {
+ "type": "object",
+ "properties": {
+ "sessionID": {
+ "type": "string",
+ "pattern": "^ses.*"
+ },
+ "diff": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/FileDiff"
+ }
+ }
+ },
+ "required": ["sessionID", "diff"]
+ }
+ },
+ "required": ["type", "properties"]
},
"ProviderAuthError": {
"type": "object",
@@ -7544,6 +8116,384 @@
},
"required": ["name", "data"]
},
+ "Event.session.error": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "session.error"
+ },
+ "properties": {
+ "type": "object",
+ "properties": {
+ "sessionID": {
+ "type": "string",
+ "pattern": "^ses.*"
+ },
+ "error": {
+ "anyOf": [
+ {
+ "$ref": "#/components/schemas/ProviderAuthError"
+ },
+ {
+ "$ref": "#/components/schemas/UnknownError"
+ },
+ {
+ "$ref": "#/components/schemas/MessageOutputLengthError"
+ },
+ {
+ "$ref": "#/components/schemas/MessageAbortedError"
+ },
+ {
+ "$ref": "#/components/schemas/StructuredOutputError"
+ },
+ {
+ "$ref": "#/components/schemas/ContextOverflowError"
+ },
+ {
+ "$ref": "#/components/schemas/APIError"
+ }
+ ]
+ }
+ }
+ }
+ },
+ "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.workspace.ready": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "workspace.ready"
+ },
+ "properties": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ }
+ },
+ "required": ["name"]
+ }
+ },
+ "required": ["type", "properties"]
+ },
+ "Event.workspace.failed": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "workspace.failed"
+ },
+ "properties": {
+ "type": "object",
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "required": ["message"]
+ }
+ },
+ "required": ["type", "properties"]
+ },
+ "Pty": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "pattern": "^pty.*"
+ },
+ "title": {
+ "type": "string"
+ },
+ "command": {
+ "type": "string"
+ },
+ "args": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cwd": {
+ "type": "string"
+ },
+ "status": {
+ "type": "string",
+ "enum": ["running", "exited"]
+ },
+ "pid": {
+ "type": "number"
+ }
+ },
+ "required": ["id", "title", "command", "args", "cwd", "status", "pid"]
+ },
+ "Event.pty.created": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "pty.created"
+ },
+ "properties": {
+ "type": "object",
+ "properties": {
+ "info": {
+ "$ref": "#/components/schemas/Pty"
+ }
+ },
+ "required": ["info"]
+ }
+ },
+ "required": ["type", "properties"]
+ },
+ "Event.pty.updated": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "pty.updated"
+ },
+ "properties": {
+ "type": "object",
+ "properties": {
+ "info": {
+ "$ref": "#/components/schemas/Pty"
+ }
+ },
+ "required": ["info"]
+ }
+ },
+ "required": ["type", "properties"]
+ },
+ "Event.pty.exited": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "pty.exited"
+ },
+ "properties": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "pattern": "^pty.*"
+ },
+ "exitCode": {
+ "type": "number"
+ }
+ },
+ "required": ["id", "exitCode"]
+ }
+ },
+ "required": ["type", "properties"]
+ },
+ "Event.pty.deleted": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "pty.deleted"
+ },
+ "properties": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "pattern": "^pty.*"
+ }
+ },
+ "required": ["id"]
+ }
+ },
+ "required": ["type", "properties"]
+ },
+ "Event.worktree.ready": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "worktree.ready"
+ },
+ "properties": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "branch": {
+ "type": "string"
+ }
+ },
+ "required": ["name", "branch"]
+ }
+ },
+ "required": ["type", "properties"]
+ },
+ "Event.worktree.failed": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "worktree.failed"
+ },
+ "properties": {
+ "type": "object",
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "required": ["message"]
+ }
+ },
+ "required": ["type", "properties"]
+ },
+ "OutputFormatText": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "text"
+ }
+ },
+ "required": ["type"]
+ },
+ "JSONSchema": {
+ "type": "object",
+ "propertyNames": {
+ "type": "string"
+ },
+ "additionalProperties": {}
+ },
+ "OutputFormatJsonSchema": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "json_schema"
+ },
+ "schema": {
+ "$ref": "#/components/schemas/JSONSchema"
+ },
+ "retryCount": {
+ "default": 2,
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 9007199254740991
+ }
+ },
+ "required": ["type", "schema"]
+ },
+ "OutputFormat": {
+ "anyOf": [
+ {
+ "$ref": "#/components/schemas/OutputFormatText"
+ },
+ {
+ "$ref": "#/components/schemas/OutputFormatJsonSchema"
+ }
+ ]
+ },
+ "UserMessage": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "pattern": "^msg.*"
+ },
+ "sessionID": {
+ "type": "string",
+ "pattern": "^ses.*"
+ },
+ "role": {
+ "type": "string",
+ "const": "user"
+ },
+ "time": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "number"
+ }
+ },
+ "required": ["created"]
+ },
+ "format": {
+ "$ref": "#/components/schemas/OutputFormat"
+ },
+ "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"]
+ },
"AssistantMessage": {
"type": "object",
"properties": {
@@ -7703,11 +8653,15 @@
"properties": {
"type": "object",
"properties": {
+ "sessionID": {
+ "type": "string",
+ "pattern": "^ses.*"
+ },
"info": {
"$ref": "#/components/schemas/Message"
}
},
- "required": ["info"]
+ "required": ["sessionID", "info"]
}
},
"required": ["type", "properties"]
@@ -8535,45 +9489,18 @@
"properties": {
"type": "object",
"properties": {
- "part": {
- "$ref": "#/components/schemas/Part"
- }
- },
- "required": ["part"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.message.part.delta": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "message.part.delta"
- },
- "properties": {
- "type": "object",
- "properties": {
"sessionID": {
"type": "string",
"pattern": "^ses.*"
},
- "messageID": {
- "type": "string",
- "pattern": "^msg.*"
- },
- "partID": {
- "type": "string",
- "pattern": "^prt.*"
- },
- "field": {
- "type": "string"
+ "part": {
+ "$ref": "#/components/schemas/Part"
},
- "delta": {
- "type": "string"
+ "time": {
+ "type": "number"
}
},
- "required": ["sessionID", "messageID", "partID", "field", "delta"]
+ "required": ["sessionID", "part", "time"]
}
},
"required": ["type", "properties"]
@@ -8606,617 +9533,6 @@
},
"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",
- "pattern": "^msg.*"
- },
- "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",
- "pattern": "^ses.*"
- },
- "requestID": {
- "type": "string",
- "pattern": "^per.*"
- },
- "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",
- "pattern": "^ses.*"
- },
- "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",
- "pattern": "^ses.*"
- }
- },
- "required": ["sessionID"]
- }
- },
- "required": ["type", "properties"]
- },
- "QuestionOption": {
- "type": "object",
- "properties": {
- "label": {
- "description": "Display text (1-5 words, concise)",
- "type": "string"
- },
- "description": {
- "description": "Explanation of choice",
- "type": "string"
- }
- },
- "required": ["label", "description"]
- },
- "QuestionInfo": {
- "type": "object",
- "properties": {
- "question": {
- "description": "Complete question",
- "type": "string"
- },
- "header": {
- "description": "Very short label (max 30 chars)",
- "type": "string"
- },
- "options": {
- "description": "Available choices",
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/QuestionOption"
- }
- },
- "multiple": {
- "description": "Allow selecting multiple choices",
- "type": "boolean"
- },
- "custom": {
- "description": "Allow typing a custom answer (default: true)",
- "type": "boolean"
- }
- },
- "required": ["question", "header", "options"]
- },
- "QuestionRequest": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string",
- "pattern": "^que.*"
- },
- "sessionID": {
- "type": "string",
- "pattern": "^ses.*"
- },
- "questions": {
- "description": "Questions to ask",
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/QuestionInfo"
- }
- },
- "tool": {
- "type": "object",
- "properties": {
- "messageID": {
- "type": "string",
- "pattern": "^msg.*"
- },
- "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",
- "pattern": "^ses.*"
- },
- "requestID": {
- "type": "string",
- "pattern": "^que.*"
- },
- "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",
- "pattern": "^ses.*"
- },
- "requestID": {
- "type": "string",
- "pattern": "^que.*"
- }
- },
- "required": ["sessionID", "requestID"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.session.compacted": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "session.compacted"
- },
- "properties": {
- "type": "object",
- "properties": {
- "sessionID": {
- "type": "string",
- "pattern": "^ses.*"
- }
- },
- "required": ["sessionID"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.file.watcher.updated": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "file.watcher.updated"
- },
- "properties": {
- "type": "object",
- "properties": {
- "file": {
- "type": "string"
- },
- "event": {
- "anyOf": [
- {
- "type": "string",
- "const": "add"
- },
- {
- "type": "string",
- "const": "change"
- },
- {
- "type": "string",
- "const": "unlink"
- }
- ]
- }
- },
- "required": ["file", "event"]
- }
- },
- "required": ["type", "properties"]
- },
- "Todo": {
- "type": "object",
- "properties": {
- "content": {
- "description": "Brief description of the task",
- "type": "string"
- },
- "status": {
- "description": "Current status of the task: pending, in_progress, completed, cancelled",
- "type": "string"
- },
- "priority": {
- "description": "Priority level of the task: high, medium, low",
- "type": "string"
- }
- },
- "required": ["content", "status", "priority"]
- },
- "Event.todo.updated": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "todo.updated"
- },
- "properties": {
- "type": "object",
- "properties": {
- "sessionID": {
- "type": "string",
- "pattern": "^ses.*"
- },
- "todos": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/Todo"
- }
- }
- },
- "required": ["sessionID", "todos"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.tui.prompt.append": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "tui.prompt.append"
- },
- "properties": {
- "type": "object",
- "properties": {
- "text": {
- "type": "string"
- }
- },
- "required": ["text"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.tui.command.execute": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "tui.command.execute"
- },
- "properties": {
- "type": "object",
- "properties": {
- "command": {
- "anyOf": [
- {
- "type": "string",
- "enum": [
- "session.list",
- "session.new",
- "session.share",
- "session.interrupt",
- "session.compact",
- "session.page.up",
- "session.page.down",
- "session.line.up",
- "session.line.down",
- "session.half.page.up",
- "session.half.page.down",
- "session.first",
- "session.last",
- "prompt.clear",
- "prompt.submit",
- "agent.cycle"
- ]
- },
- {
- "type": "string"
- }
- ]
- }
- },
- "required": ["command"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.tui.toast.show": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "tui.toast.show"
- },
- "properties": {
- "type": "object",
- "properties": {
- "title": {
- "type": "string"
- },
- "message": {
- "type": "string"
- },
- "variant": {
- "type": "string",
- "enum": ["info", "success", "warning", "error"]
- },
- "duration": {
- "description": "Duration in milliseconds",
- "default": 5000,
- "type": "number"
- }
- },
- "required": ["message", "variant"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.tui.session.select": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "tui.session.select"
- },
- "properties": {
- "type": "object",
- "properties": {
- "sessionID": {
- "description": "Session ID to navigate to",
- "type": "string",
- "pattern": "^ses.*"
- }
- },
- "required": ["sessionID"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.mcp.tools.changed": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "mcp.tools.changed"
- },
- "properties": {
- "type": "object",
- "properties": {
- "server": {
- "type": "string"
- }
- },
- "required": ["server"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.mcp.browser.open.failed": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "mcp.browser.open.failed"
- },
- "properties": {
- "type": "object",
- "properties": {
- "mcpName": {
- "type": "string"
- },
- "url": {
- "type": "string"
- }
- },
- "required": ["mcpName", "url"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.command.executed": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "command.executed"
- },
- "properties": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string"
- },
- "sessionID": {
- "type": "string",
- "pattern": "^ses.*"
- },
- "arguments": {
- "type": "string"
- },
- "messageID": {
- "type": "string",
- "pattern": "^msg.*"
- }
- },
- "required": ["name", "sessionID", "arguments", "messageID"]
- }
- },
- "required": ["type", "properties"]
- },
"PermissionAction": {
"type": "string",
"enum": ["allow", "deny", "ask"]
@@ -9356,11 +9672,15 @@
"properties": {
"type": "object",
"properties": {
+ "sessionID": {
+ "type": "string",
+ "pattern": "^ses.*"
+ },
"info": {
"$ref": "#/components/schemas/Session"
}
},
- "required": ["info"]
+ "required": ["sessionID", "info"]
}
},
"required": ["type", "properties"]
@@ -9375,66 +9695,25 @@
"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",
"pattern": "^ses.*"
},
- "diff": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/FileDiff"
- }
+ "info": {
+ "$ref": "#/components/schemas/Session"
}
},
- "required": ["sessionID", "diff"]
+ "required": ["sessionID", "info"]
}
},
"required": ["type", "properties"]
},
- "Event.session.error": {
+ "Event.session.deleted": {
"type": "object",
"properties": {
"type": {
"type": "string",
- "const": "session.error"
+ "const": "session.deleted"
},
"properties": {
"type": "object",
@@ -9443,242 +9722,11 @@
"type": "string",
"pattern": "^ses.*"
},
- "error": {
- "anyOf": [
- {
- "$ref": "#/components/schemas/ProviderAuthError"
- },
- {
- "$ref": "#/components/schemas/UnknownError"
- },
- {
- "$ref": "#/components/schemas/MessageOutputLengthError"
- },
- {
- "$ref": "#/components/schemas/MessageAbortedError"
- },
- {
- "$ref": "#/components/schemas/StructuredOutputError"
- },
- {
- "$ref": "#/components/schemas/ContextOverflowError"
- },
- {
- "$ref": "#/components/schemas/APIError"
- }
- ]
- }
- }
- }
- },
- "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.workspace.ready": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "workspace.ready"
- },
- "properties": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string"
- }
- },
- "required": ["name"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.workspace.failed": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "workspace.failed"
- },
- "properties": {
- "type": "object",
- "properties": {
- "message": {
- "type": "string"
- }
- },
- "required": ["message"]
- }
- },
- "required": ["type", "properties"]
- },
- "Pty": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string",
- "pattern": "^pty.*"
- },
- "title": {
- "type": "string"
- },
- "command": {
- "type": "string"
- },
- "args": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "cwd": {
- "type": "string"
- },
- "status": {
- "type": "string",
- "enum": ["running", "exited"]
- },
- "pid": {
- "type": "number"
- }
- },
- "required": ["id", "title", "command", "args", "cwd", "status", "pid"]
- },
- "Event.pty.created": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "pty.created"
- },
- "properties": {
- "type": "object",
- "properties": {
- "info": {
- "$ref": "#/components/schemas/Pty"
- }
- },
- "required": ["info"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.pty.updated": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "pty.updated"
- },
- "properties": {
- "type": "object",
- "properties": {
"info": {
- "$ref": "#/components/schemas/Pty"
- }
- },
- "required": ["info"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.pty.exited": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "pty.exited"
- },
- "properties": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string",
- "pattern": "^pty.*"
- },
- "exitCode": {
- "type": "number"
- }
- },
- "required": ["id", "exitCode"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.pty.deleted": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "pty.deleted"
- },
- "properties": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string",
- "pattern": "^pty.*"
- }
- },
- "required": ["id"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.worktree.ready": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "worktree.ready"
- },
- "properties": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string"
- },
- "branch": {
- "type": "string"
- }
- },
- "required": ["name", "branch"]
- }
- },
- "required": ["type", "properties"]
- },
- "Event.worktree.failed": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "worktree.failed"
- },
- "properties": {
- "type": "object",
- "properties": {
- "message": {
- "type": "string"
+ "$ref": "#/components/schemas/Session"
}
},
- "required": ["message"]
+ "required": ["sessionID", "info"]
}
},
"required": ["type", "properties"]
@@ -9710,24 +9758,9 @@
"$ref": "#/components/schemas/Event.lsp.updated"
},
{
- "$ref": "#/components/schemas/Event.file.edited"
- },
- {
- "$ref": "#/components/schemas/Event.message.updated"
- },
- {
- "$ref": "#/components/schemas/Event.message.removed"
- },
- {
- "$ref": "#/components/schemas/Event.message.part.updated"
- },
- {
"$ref": "#/components/schemas/Event.message.part.delta"
},
{
- "$ref": "#/components/schemas/Event.message.part.removed"
- },
- {
"$ref": "#/components/schemas/Event.permission.asked"
},
{
@@ -9752,6 +9785,9 @@
"$ref": "#/components/schemas/Event.session.compacted"
},
{
+ "$ref": "#/components/schemas/Event.file.edited"
+ },
+ {
"$ref": "#/components/schemas/Event.file.watcher.updated"
},
{
@@ -9779,15 +9815,6 @@
"$ref": "#/components/schemas/Event.command.executed"
},
{
- "$ref": "#/components/schemas/Event.session.created"
- },
- {
- "$ref": "#/components/schemas/Event.session.updated"
- },
- {
- "$ref": "#/components/schemas/Event.session.deleted"
- },
- {
"$ref": "#/components/schemas/Event.session.diff"
},
{
@@ -9819,6 +9846,27 @@
},
{
"$ref": "#/components/schemas/Event.worktree.failed"
+ },
+ {
+ "$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.created"
+ },
+ {
+ "$ref": "#/components/schemas/Event.session.updated"
+ },
+ {
+ "$ref": "#/components/schemas/Event.session.deleted"
}
]
},
@@ -9834,6 +9882,311 @@
},
"required": ["directory", "payload"]
},
+ "SyncEvent.message.updated": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "message.updated.1"
+ },
+ "aggregate": {
+ "type": "string",
+ "const": "sessionID"
+ },
+ "data": {
+ "type": "object",
+ "properties": {
+ "sessionID": {
+ "type": "string",
+ "pattern": "^ses.*"
+ },
+ "info": {
+ "$ref": "#/components/schemas/Message"
+ }
+ },
+ "required": ["sessionID", "info"]
+ }
+ },
+ "required": ["type", "aggregate", "data"]
+ },
+ "SyncEvent.message.removed": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "message.removed.1"
+ },
+ "aggregate": {
+ "type": "string",
+ "const": "sessionID"
+ },
+ "data": {
+ "type": "object",
+ "properties": {
+ "sessionID": {
+ "type": "string",
+ "pattern": "^ses.*"
+ },
+ "messageID": {
+ "type": "string",
+ "pattern": "^msg.*"
+ }
+ },
+ "required": ["sessionID", "messageID"]
+ }
+ },
+ "required": ["type", "aggregate", "data"]
+ },
+ "SyncEvent.message.part.updated": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "message.part.updated.1"
+ },
+ "aggregate": {
+ "type": "string",
+ "const": "sessionID"
+ },
+ "data": {
+ "type": "object",
+ "properties": {
+ "sessionID": {
+ "type": "string",
+ "pattern": "^ses.*"
+ },
+ "part": {
+ "$ref": "#/components/schemas/Part"
+ },
+ "time": {
+ "type": "number"
+ }
+ },
+ "required": ["sessionID", "part", "time"]
+ }
+ },
+ "required": ["type", "aggregate", "data"]
+ },
+ "SyncEvent.message.part.removed": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "message.part.removed.1"
+ },
+ "aggregate": {
+ "type": "string",
+ "const": "sessionID"
+ },
+ "data": {
+ "type": "object",
+ "properties": {
+ "sessionID": {
+ "type": "string",
+ "pattern": "^ses.*"
+ },
+ "messageID": {
+ "type": "string",
+ "pattern": "^msg.*"
+ },
+ "partID": {
+ "type": "string",
+ "pattern": "^prt.*"
+ }
+ },
+ "required": ["sessionID", "messageID", "partID"]
+ }
+ },
+ "required": ["type", "aggregate", "data"]
+ },
+ "SyncEvent.session.created": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "session.created.1"
+ },
+ "aggregate": {
+ "type": "string",
+ "const": "sessionID"
+ },
+ "data": {
+ "type": "object",
+ "properties": {
+ "sessionID": {
+ "type": "string",
+ "pattern": "^ses.*"
+ },
+ "info": {
+ "$ref": "#/components/schemas/Session"
+ }
+ },
+ "required": ["sessionID", "info"]
+ }
+ },
+ "required": ["type", "aggregate", "data"]
+ },
+ "SyncEvent.session.updated": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "session.updated.1"
+ },
+ "aggregate": {
+ "type": "string",
+ "const": "sessionID"
+ },
+ "data": {
+ "type": "object",
+ "properties": {
+ "sessionID": {
+ "type": "string",
+ "pattern": "^ses.*"
+ },
+ "info": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "pattern": "^ses.*"
+ },
+ "slug": {
+ "type": "string"
+ },
+ "projectID": {
+ "type": "string"
+ },
+ "workspaceID": {
+ "type": "string",
+ "pattern": "^wrk.*"
+ },
+ "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"
+ }
+ }
+ },
+ "title": {
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ },
+ "time": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "number"
+ },
+ "updated": {
+ "type": "number"
+ },
+ "compacting": {
+ "type": "number"
+ },
+ "archived": {
+ "type": "number"
+ }
+ }
+ },
+ "permission": {
+ "$ref": "#/components/schemas/PermissionRuleset"
+ },
+ "revert": {
+ "type": "object",
+ "properties": {
+ "messageID": {
+ "type": "string",
+ "pattern": "^msg.*"
+ },
+ "partID": {
+ "type": "string",
+ "pattern": "^prt.*"
+ },
+ "snapshot": {
+ "type": "string"
+ },
+ "diff": {
+ "type": "string"
+ }
+ },
+ "required": ["messageID"]
+ }
+ }
+ }
+ },
+ "required": ["sessionID", "info"]
+ }
+ },
+ "required": ["type", "aggregate", "data"]
+ },
+ "SyncEvent.session.deleted": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "session.deleted.1"
+ },
+ "aggregate": {
+ "type": "string",
+ "const": "sessionID"
+ },
+ "data": {
+ "type": "object",
+ "properties": {
+ "sessionID": {
+ "type": "string",
+ "pattern": "^ses.*"
+ },
+ "info": {
+ "$ref": "#/components/schemas/Session"
+ }
+ },
+ "required": ["sessionID", "info"]
+ }
+ },
+ "required": ["type", "aggregate", "data"]
+ },
+ "SyncEvent": {
+ "type": "object",
+ "properties": {
+ "payload": {
+ "$ref": "#/components/schemas/SyncEvent"
+ }
+ },
+ "required": ["payload"]
+ },
"LogLevel": {
"description": "Log level",
"type": "string",