diff --git a/packages/opencode/migration/20260427172553_slow_nightmare/snapshot.json b/packages/opencode/migration/20260427172553_slow_nightmare/snapshot.json index bb6d06237e..a237b4156e 100644 --- a/packages/opencode/migration/20260427172553_slow_nightmare/snapshot.json +++ b/packages/opencode/migration/20260427172553_slow_nightmare/snapshot.json @@ -2,9 +2,7 @@ "version": "7", "dialect": "sqlite", "id": "61f807f9-6398-4067-be05-804acc2561bc", - "prevIds": [ - "66cbe0d7-def0-451b-b88a-7608513a9b44" - ], + "prevIds": ["66cbe0d7-def0-451b-b88a-7608513a9b44"], "ddl": [ { "name": "account_state", @@ -1043,13 +1041,9 @@ "table": "event" }, { - "columns": [ - "active_account_id" - ], + "columns": ["active_account_id"], "tableTo": "account", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "NO ACTION", "onDelete": "SET NULL", "nameExplicit": false, @@ -1058,13 +1052,9 @@ "table": "account_state" }, { - "columns": [ - "project_id" - ], + "columns": ["project_id"], "tableTo": "project", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "NO ACTION", "onDelete": "CASCADE", "nameExplicit": false, @@ -1073,13 +1063,9 @@ "table": "workspace" }, { - "columns": [ - "session_id" - ], + "columns": ["session_id"], "tableTo": "session", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "NO ACTION", "onDelete": "CASCADE", "nameExplicit": false, @@ -1088,13 +1074,9 @@ "table": "message" }, { - "columns": [ - "message_id" - ], + "columns": ["message_id"], "tableTo": "message", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "NO ACTION", "onDelete": "CASCADE", "nameExplicit": false, @@ -1103,13 +1085,9 @@ "table": "part" }, { - "columns": [ - "project_id" - ], + "columns": ["project_id"], "tableTo": "project", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "NO ACTION", "onDelete": "CASCADE", "nameExplicit": false, @@ -1118,13 +1096,9 @@ "table": "permission" }, { - "columns": [ - "session_id" - ], + "columns": ["session_id"], "tableTo": "session", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "NO ACTION", "onDelete": "CASCADE", "nameExplicit": false, @@ -1133,13 +1107,9 @@ "table": "session_message" }, { - "columns": [ - "project_id" - ], + "columns": ["project_id"], "tableTo": "project", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "NO ACTION", "onDelete": "CASCADE", "nameExplicit": false, @@ -1148,13 +1118,9 @@ "table": "session" }, { - "columns": [ - "session_id" - ], + "columns": ["session_id"], "tableTo": "session", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "NO ACTION", "onDelete": "CASCADE", "nameExplicit": false, @@ -1163,13 +1129,9 @@ "table": "todo" }, { - "columns": [ - "session_id" - ], + "columns": ["session_id"], "tableTo": "session", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "NO ACTION", "onDelete": "CASCADE", "nameExplicit": false, @@ -1178,13 +1140,9 @@ "table": "session_share" }, { - "columns": [ - "aggregate_id" - ], + "columns": ["aggregate_id"], "tableTo": "event_sequence", - "columnsTo": [ - "aggregate_id" - ], + "columnsTo": ["aggregate_id"], "onUpdate": "NO ACTION", "onDelete": "CASCADE", "nameExplicit": false, @@ -1193,128 +1151,98 @@ "table": "event" }, { - "columns": [ - "email", - "url" - ], + "columns": ["email", "url"], "nameExplicit": false, "name": "control_account_pk", "entityType": "pks", "table": "control_account" }, { - "columns": [ - "session_id", - "position" - ], + "columns": ["session_id", "position"], "nameExplicit": false, "name": "todo_pk", "entityType": "pks", "table": "todo" }, { - "columns": [ - "id" - ], + "columns": ["id"], "nameExplicit": false, "name": "account_state_pk", "table": "account_state", "entityType": "pks" }, { - "columns": [ - "id" - ], + "columns": ["id"], "nameExplicit": false, "name": "account_pk", "table": "account", "entityType": "pks" }, { - "columns": [ - "id" - ], + "columns": ["id"], "nameExplicit": false, "name": "workspace_pk", "table": "workspace", "entityType": "pks" }, { - "columns": [ - "id" - ], + "columns": ["id"], "nameExplicit": false, "name": "project_pk", "table": "project", "entityType": "pks" }, { - "columns": [ - "id" - ], + "columns": ["id"], "nameExplicit": false, "name": "message_pk", "table": "message", "entityType": "pks" }, { - "columns": [ - "id" - ], + "columns": ["id"], "nameExplicit": false, "name": "part_pk", "table": "part", "entityType": "pks" }, { - "columns": [ - "project_id" - ], + "columns": ["project_id"], "nameExplicit": false, "name": "permission_pk", "table": "permission", "entityType": "pks" }, { - "columns": [ - "id" - ], + "columns": ["id"], "nameExplicit": false, "name": "session_message_pk", "table": "session_message", "entityType": "pks" }, { - "columns": [ - "id" - ], + "columns": ["id"], "nameExplicit": false, "name": "session_pk", "table": "session", "entityType": "pks" }, { - "columns": [ - "session_id" - ], + "columns": ["session_id"], "nameExplicit": false, "name": "session_share_pk", "table": "session_share", "entityType": "pks" }, { - "columns": [ - "aggregate_id" - ], + "columns": ["aggregate_id"], "nameExplicit": false, "name": "event_sequence_pk", "table": "event_sequence", "entityType": "pks" }, { - "columns": [ - "id" - ], + "columns": ["id"], "nameExplicit": false, "name": "event_pk", "table": "event", @@ -1478,4 +1406,4 @@ } ], "renames": [] -} \ No newline at end of file +} diff --git a/packages/opencode/migration/20260428004200_add_session_path/snapshot.json b/packages/opencode/migration/20260428004200_add_session_path/snapshot.json index 1f3bc493c1..740ba0e254 100644 --- a/packages/opencode/migration/20260428004200_add_session_path/snapshot.json +++ b/packages/opencode/migration/20260428004200_add_session_path/snapshot.json @@ -2,9 +2,7 @@ "version": "7", "dialect": "sqlite", "id": "aaa2ebeb-caa4-478d-8365-4fc595d16856", - "prevIds": [ - "61f807f9-6398-4067-be05-804acc2561bc" - ], + "prevIds": ["61f807f9-6398-4067-be05-804acc2561bc"], "ddl": [ { "name": "account_state", @@ -1053,13 +1051,9 @@ "table": "event" }, { - "columns": [ - "active_account_id" - ], + "columns": ["active_account_id"], "tableTo": "account", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "NO ACTION", "onDelete": "SET NULL", "nameExplicit": false, @@ -1068,13 +1062,9 @@ "table": "account_state" }, { - "columns": [ - "project_id" - ], + "columns": ["project_id"], "tableTo": "project", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "NO ACTION", "onDelete": "CASCADE", "nameExplicit": false, @@ -1083,13 +1073,9 @@ "table": "workspace" }, { - "columns": [ - "session_id" - ], + "columns": ["session_id"], "tableTo": "session", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "NO ACTION", "onDelete": "CASCADE", "nameExplicit": false, @@ -1098,13 +1084,9 @@ "table": "message" }, { - "columns": [ - "message_id" - ], + "columns": ["message_id"], "tableTo": "message", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "NO ACTION", "onDelete": "CASCADE", "nameExplicit": false, @@ -1113,13 +1095,9 @@ "table": "part" }, { - "columns": [ - "project_id" - ], + "columns": ["project_id"], "tableTo": "project", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "NO ACTION", "onDelete": "CASCADE", "nameExplicit": false, @@ -1128,13 +1106,9 @@ "table": "permission" }, { - "columns": [ - "session_id" - ], + "columns": ["session_id"], "tableTo": "session", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "NO ACTION", "onDelete": "CASCADE", "nameExplicit": false, @@ -1143,13 +1117,9 @@ "table": "session_message" }, { - "columns": [ - "project_id" - ], + "columns": ["project_id"], "tableTo": "project", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "NO ACTION", "onDelete": "CASCADE", "nameExplicit": false, @@ -1158,13 +1128,9 @@ "table": "session" }, { - "columns": [ - "session_id" - ], + "columns": ["session_id"], "tableTo": "session", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "NO ACTION", "onDelete": "CASCADE", "nameExplicit": false, @@ -1173,13 +1139,9 @@ "table": "todo" }, { - "columns": [ - "session_id" - ], + "columns": ["session_id"], "tableTo": "session", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "NO ACTION", "onDelete": "CASCADE", "nameExplicit": false, @@ -1188,13 +1150,9 @@ "table": "session_share" }, { - "columns": [ - "aggregate_id" - ], + "columns": ["aggregate_id"], "tableTo": "event_sequence", - "columnsTo": [ - "aggregate_id" - ], + "columnsTo": ["aggregate_id"], "onUpdate": "NO ACTION", "onDelete": "CASCADE", "nameExplicit": false, @@ -1203,128 +1161,98 @@ "table": "event" }, { - "columns": [ - "email", - "url" - ], + "columns": ["email", "url"], "nameExplicit": false, "name": "control_account_pk", "entityType": "pks", "table": "control_account" }, { - "columns": [ - "session_id", - "position" - ], + "columns": ["session_id", "position"], "nameExplicit": false, "name": "todo_pk", "entityType": "pks", "table": "todo" }, { - "columns": [ - "id" - ], + "columns": ["id"], "nameExplicit": false, "name": "account_state_pk", "table": "account_state", "entityType": "pks" }, { - "columns": [ - "id" - ], + "columns": ["id"], "nameExplicit": false, "name": "account_pk", "table": "account", "entityType": "pks" }, { - "columns": [ - "id" - ], + "columns": ["id"], "nameExplicit": false, "name": "workspace_pk", "table": "workspace", "entityType": "pks" }, { - "columns": [ - "id" - ], + "columns": ["id"], "nameExplicit": false, "name": "project_pk", "table": "project", "entityType": "pks" }, { - "columns": [ - "id" - ], + "columns": ["id"], "nameExplicit": false, "name": "message_pk", "table": "message", "entityType": "pks" }, { - "columns": [ - "id" - ], + "columns": ["id"], "nameExplicit": false, "name": "part_pk", "table": "part", "entityType": "pks" }, { - "columns": [ - "project_id" - ], + "columns": ["project_id"], "nameExplicit": false, "name": "permission_pk", "table": "permission", "entityType": "pks" }, { - "columns": [ - "id" - ], + "columns": ["id"], "nameExplicit": false, "name": "session_message_pk", "table": "session_message", "entityType": "pks" }, { - "columns": [ - "id" - ], + "columns": ["id"], "nameExplicit": false, "name": "session_pk", "table": "session", "entityType": "pks" }, { - "columns": [ - "session_id" - ], + "columns": ["session_id"], "nameExplicit": false, "name": "session_share_pk", "table": "session_share", "entityType": "pks" }, { - "columns": [ - "aggregate_id" - ], + "columns": ["aggregate_id"], "nameExplicit": false, "name": "event_sequence_pk", "table": "event_sequence", "entityType": "pks" }, { - "columns": [ - "id" - ], + "columns": ["id"], "nameExplicit": false, "name": "event_pk", "table": "event", diff --git a/packages/opencode/migration/20260501142318_next_venus/snapshot.json b/packages/opencode/migration/20260501142318_next_venus/snapshot.json index e594de2f04..1eb0cf0b07 100644 --- a/packages/opencode/migration/20260501142318_next_venus/snapshot.json +++ b/packages/opencode/migration/20260501142318_next_venus/snapshot.json @@ -2,9 +2,7 @@ "version": "7", "dialect": "sqlite", "id": "2ec89846-dcf1-4977-ab5e-244ddc9e3d67", - "prevIds": [ - "aaa2ebeb-caa4-478d-8365-4fc595d16856" - ], + "prevIds": ["aaa2ebeb-caa4-478d-8365-4fc595d16856"], "ddl": [ { "name": "account_state", @@ -1073,13 +1071,9 @@ "table": "event" }, { - "columns": [ - "active_account_id" - ], + "columns": ["active_account_id"], "tableTo": "account", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "NO ACTION", "onDelete": "SET NULL", "nameExplicit": false, @@ -1088,13 +1082,9 @@ "table": "account_state" }, { - "columns": [ - "project_id" - ], + "columns": ["project_id"], "tableTo": "project", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "NO ACTION", "onDelete": "CASCADE", "nameExplicit": false, @@ -1103,13 +1093,9 @@ "table": "workspace" }, { - "columns": [ - "session_id" - ], + "columns": ["session_id"], "tableTo": "session", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "NO ACTION", "onDelete": "CASCADE", "nameExplicit": false, @@ -1118,13 +1104,9 @@ "table": "message" }, { - "columns": [ - "message_id" - ], + "columns": ["message_id"], "tableTo": "message", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "NO ACTION", "onDelete": "CASCADE", "nameExplicit": false, @@ -1133,13 +1115,9 @@ "table": "part" }, { - "columns": [ - "project_id" - ], + "columns": ["project_id"], "tableTo": "project", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "NO ACTION", "onDelete": "CASCADE", "nameExplicit": false, @@ -1148,13 +1126,9 @@ "table": "permission" }, { - "columns": [ - "session_id" - ], + "columns": ["session_id"], "tableTo": "session", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "NO ACTION", "onDelete": "CASCADE", "nameExplicit": false, @@ -1163,13 +1137,9 @@ "table": "session_message" }, { - "columns": [ - "project_id" - ], + "columns": ["project_id"], "tableTo": "project", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "NO ACTION", "onDelete": "CASCADE", "nameExplicit": false, @@ -1178,13 +1148,9 @@ "table": "session" }, { - "columns": [ - "session_id" - ], + "columns": ["session_id"], "tableTo": "session", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "NO ACTION", "onDelete": "CASCADE", "nameExplicit": false, @@ -1193,13 +1159,9 @@ "table": "todo" }, { - "columns": [ - "session_id" - ], + "columns": ["session_id"], "tableTo": "session", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "NO ACTION", "onDelete": "CASCADE", "nameExplicit": false, @@ -1208,13 +1170,9 @@ "table": "session_share" }, { - "columns": [ - "aggregate_id" - ], + "columns": ["aggregate_id"], "tableTo": "event_sequence", - "columnsTo": [ - "aggregate_id" - ], + "columnsTo": ["aggregate_id"], "onUpdate": "NO ACTION", "onDelete": "CASCADE", "nameExplicit": false, @@ -1223,128 +1181,98 @@ "table": "event" }, { - "columns": [ - "email", - "url" - ], + "columns": ["email", "url"], "nameExplicit": false, "name": "control_account_pk", "entityType": "pks", "table": "control_account" }, { - "columns": [ - "session_id", - "position" - ], + "columns": ["session_id", "position"], "nameExplicit": false, "name": "todo_pk", "entityType": "pks", "table": "todo" }, { - "columns": [ - "id" - ], + "columns": ["id"], "nameExplicit": false, "name": "account_state_pk", "table": "account_state", "entityType": "pks" }, { - "columns": [ - "id" - ], + "columns": ["id"], "nameExplicit": false, "name": "account_pk", "table": "account", "entityType": "pks" }, { - "columns": [ - "id" - ], + "columns": ["id"], "nameExplicit": false, "name": "workspace_pk", "table": "workspace", "entityType": "pks" }, { - "columns": [ - "id" - ], + "columns": ["id"], "nameExplicit": false, "name": "project_pk", "table": "project", "entityType": "pks" }, { - "columns": [ - "id" - ], + "columns": ["id"], "nameExplicit": false, "name": "message_pk", "table": "message", "entityType": "pks" }, { - "columns": [ - "id" - ], + "columns": ["id"], "nameExplicit": false, "name": "part_pk", "table": "part", "entityType": "pks" }, { - "columns": [ - "project_id" - ], + "columns": ["project_id"], "nameExplicit": false, "name": "permission_pk", "table": "permission", "entityType": "pks" }, { - "columns": [ - "id" - ], + "columns": ["id"], "nameExplicit": false, "name": "session_message_pk", "table": "session_message", "entityType": "pks" }, { - "columns": [ - "id" - ], + "columns": ["id"], "nameExplicit": false, "name": "session_pk", "table": "session", "entityType": "pks" }, { - "columns": [ - "session_id" - ], + "columns": ["session_id"], "nameExplicit": false, "name": "session_share_pk", "table": "session_share", "entityType": "pks" }, { - "columns": [ - "aggregate_id" - ], + "columns": ["aggregate_id"], "nameExplicit": false, "name": "event_sequence_pk", "table": "event_sequence", "entityType": "pks" }, { - "columns": [ - "id" - ], + "columns": ["id"], "nameExplicit": false, "name": "event_pk", "table": "event", @@ -1508,4 +1436,4 @@ } ], "renames": [] -} \ No newline at end of file +} diff --git a/packages/opencode/src/server/routes/instance/event.ts b/packages/opencode/src/server/routes/instance/event.ts index 52e9bc1964..aeb1da5393 100644 --- a/packages/opencode/src/server/routes/instance/event.ts +++ b/packages/opencode/src/server/routes/instance/event.ts @@ -51,10 +51,10 @@ export const EventRoutes = () => // Send heartbeat every 10s to prevent stalled proxy streams. const heartbeat = setInterval(() => { q.push( - JSON.stringify({ - id: Bus.createID(), - type: "server.heartbeat", - properties: {}, + JSON.stringify({ + id: Bus.createID(), + type: "server.heartbeat", + properties: {}, }), ) }, 10_000) diff --git a/packages/opencode/src/session/processor.ts b/packages/opencode/src/session/processor.ts index 1a32a656d1..e2a47f1800 100644 --- a/packages/opencode/src/session/processor.ts +++ b/packages/opencode/src/session/processor.ts @@ -377,7 +377,7 @@ export const layer: Layer.Layer< case "tool-result": { const toolCall = yield* readToolCall(value.toolCallId) // TODO(v2): Temporary dual-write while migrating session messages to v2 events. - EventV2.run(SessionEvent.Tool.Success.Sync, { + EventV2.run(SessionEvent.Tool.Success.Sync, { sessionID: ctx.sessionID, callID: value.toolCallId, structured: value.output.metadata, diff --git a/packages/opencode/src/session/session.ts b/packages/opencode/src/session/session.ts index fedfa8996e..09d2c8c3c3 100644 --- a/packages/opencode/src/session/session.ts +++ b/packages/opencode/src/session/session.ts @@ -81,7 +81,11 @@ export function fromRow(row: SessionRow): Info { title: row.title, agent: row.agent ?? undefined, model: row.model - ? { id: ModelID.make(row.model.id), providerID: ProviderID.make(row.model.providerID), variant: row.model.variant } + ? { + id: ModelID.make(row.model.id), + providerID: ProviderID.make(row.model.providerID), + variant: row.model.variant, + } : undefined, version: row.version, summary, diff --git a/packages/opencode/src/v2/session-message-updater.ts b/packages/opencode/src/v2/session-message-updater.ts index 844f6fe2d1..ad1aa32e70 100644 --- a/packages/opencode/src/v2/session-message-updater.ts +++ b/packages/opencode/src/v2/session-message-updater.ts @@ -89,9 +89,7 @@ export function update(adapter: Adapter, event: SessionEvent.Eve assistant?.content.findLast((item): item is DraftText => item.type === "text") const latestReasoning = (assistant: DraftAssistant | undefined, reasoningID: string) => - assistant?.content.findLast( - (item): item is DraftReasoning => item.type === "reasoning" && item.id === reasoningID, - ) + assistant?.content.findLast((item): item is DraftReasoning => item.type === "reasoning" && item.id === reasoningID) SessionEvent.All.match(event, { "session.next.agent.switched": (event) => { diff --git a/packages/opencode/test/server/httpapi-session.test.ts b/packages/opencode/test/server/httpapi-session.test.ts index d96347bed8..c9a0b53bb4 100644 --- a/packages/opencode/test/server/httpapi-session.test.ts +++ b/packages/opencode/test/server/httpapi-session.test.ts @@ -242,7 +242,8 @@ describe("session HttpApi", () => { ) expect( - (yield* requestJson<{ items: SessionMessage.Message[] }>(`/api/session/${parent.id}/message`, { headers })).items, + (yield* requestJson<{ items: SessionMessage.Message[] }>(`/api/session/${parent.id}/message`, { headers })) + .items, ).toMatchObject([{ type: "assistant" }]) }), ), diff --git a/packages/sdk/openapi.json b/packages/sdk/openapi.json index 208346325b..b1c4ec1d76 100644 --- a/packages/sdk/openapi.json +++ b/packages/sdk/openapi.json @@ -2461,6 +2461,24 @@ "title": { "type": "string" }, + "agent": { + "type": "string" + }, + "model": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "providerID": { + "type": "string" + }, + "variant": { + "type": "string" + } + }, + "required": ["id", "providerID"] + }, "permission": { "$ref": "#/components/schemas/PermissionRuleset" }, @@ -7595,6 +7613,9 @@ "Event.server.instance.disposed": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "server.instance.disposed" @@ -7609,11 +7630,14 @@ "required": ["directory"] } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "Event.file.edited": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "file.edited" @@ -7628,11 +7652,14 @@ "required": ["file"] } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "Event.file.watcher.updated": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "file.watcher.updated" @@ -7651,11 +7678,14 @@ "required": ["file", "event"] } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "Event.lsp.client.diagnostics": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "lsp.client.diagnostics" @@ -7673,11 +7703,14 @@ "required": ["serverID", "path"] } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "Event.lsp.updated": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "lsp.updated" @@ -7687,11 +7720,14 @@ "properties": {} } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "Event.message.part.delta": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "message.part.delta" @@ -7721,7 +7757,7 @@ "required": ["sessionID", "messageID", "partID", "field", "delta"] } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "PermissionRequest": { "type": "object", @@ -7775,6 +7811,9 @@ "Event.permission.asked": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "permission.asked" @@ -7783,11 +7822,14 @@ "$ref": "#/components/schemas/PermissionRequest" } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "Event.permission.replied": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "permission.replied" @@ -7811,7 +7853,7 @@ "required": ["sessionID", "requestID", "reply"] } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "SnapshotFileDiff": { "type": "object", @@ -7842,6 +7884,9 @@ "Event.session.diff": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "session.diff" @@ -7863,7 +7908,7 @@ "required": ["sessionID", "diff"] } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "ProviderAuthError": { "type": "object", @@ -8036,6 +8081,9 @@ "Event.session.error": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "session.error" @@ -8075,11 +8123,14 @@ } } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "Event.installation.updated": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "installation.updated" @@ -8094,11 +8145,14 @@ "required": ["version"] } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "Event.installation.update-available": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "installation.update-available" @@ -8113,7 +8167,7 @@ "required": ["version"] } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "QuestionOption": { "type": "object", @@ -8198,6 +8252,9 @@ "Event.question.asked": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "question.asked" @@ -8206,7 +8263,7 @@ "$ref": "#/components/schemas/QuestionRequest" } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "QuestionAnswer": { "type": "array", @@ -8237,6 +8294,9 @@ "Event.question.replied": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "question.replied" @@ -8245,7 +8305,7 @@ "$ref": "#/components/schemas/QuestionReplied" } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "QuestionRejected": { "type": "object", @@ -8264,6 +8324,9 @@ "Event.question.rejected": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "question.rejected" @@ -8272,7 +8335,7 @@ "$ref": "#/components/schemas/QuestionRejected" } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "Todo": { "type": "object", @@ -8295,6 +8358,9 @@ "Event.todo.updated": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "todo.updated" @@ -8316,7 +8382,7 @@ "required": ["sessionID", "todos"] } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "SessionStatus": { "anyOf": [ @@ -8368,6 +8434,9 @@ "Event.session.status": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "session.status" @@ -8386,11 +8455,14 @@ "required": ["sessionID", "status"] } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "Event.session.idle": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "session.idle" @@ -8406,11 +8478,14 @@ "required": ["sessionID"] } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "Event.session.compacted": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "session.compacted" @@ -8426,7 +8501,7 @@ "required": ["sessionID"] } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "Event.tui.prompt.append": { "type": "object", @@ -8547,6 +8622,9 @@ "Event.mcp.tools.changed": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "mcp.tools.changed" @@ -8561,11 +8639,14 @@ "required": ["server"] } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "Event.mcp.browser.open.failed": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "mcp.browser.open.failed" @@ -8583,11 +8664,14 @@ "required": ["mcpName", "url"] } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "Event.command.executed": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "command.executed" @@ -8613,7 +8697,7 @@ "required": ["name", "sessionID", "arguments", "messageID"] } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "Project": { "type": "object", @@ -8687,6 +8771,9 @@ "Event.project.updated": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "project.updated" @@ -8695,11 +8782,14 @@ "$ref": "#/components/schemas/Project" } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "Event.vcs.branch.updated": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "vcs.branch.updated" @@ -8713,11 +8803,14 @@ } } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "Event.workspace.ready": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "workspace.ready" @@ -8732,11 +8825,14 @@ "required": ["name"] } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "Event.workspace.failed": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "workspace.failed" @@ -8751,11 +8847,14 @@ "required": ["message"] } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "Event.workspace.restore": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "workspace.restore" @@ -8785,11 +8884,14 @@ "required": ["workspaceID", "sessionID", "total", "step"] } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "Event.workspace.status": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "workspace.status" @@ -8809,11 +8911,14 @@ "required": ["workspaceID", "status"] } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "Event.worktree.ready": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "worktree.ready" @@ -8831,11 +8936,14 @@ "required": ["name", "branch"] } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "Event.worktree.failed": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "worktree.failed" @@ -8850,7 +8958,7 @@ "required": ["message"] } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "Pty": { "type": "object", @@ -8889,6 +8997,9 @@ "Event.pty.created": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "pty.created" @@ -8903,11 +9014,14 @@ "required": ["info"] } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "Event.pty.updated": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "pty.updated" @@ -8922,11 +9036,14 @@ "required": ["info"] } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "Event.pty.exited": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "pty.exited" @@ -8947,11 +9064,14 @@ "required": ["id", "exitCode"] } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "Event.pty.deleted": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "pty.deleted" @@ -8967,7 +9087,7 @@ "required": ["id"] } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "OutputFormatText": { "type": "object", @@ -9263,6 +9383,9 @@ "Event.message.updated": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "message.updated" @@ -9281,11 +9404,14 @@ "required": ["sessionID", "info"] } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "Event.message.removed": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "message.removed" @@ -9305,7 +9431,7 @@ "required": ["sessionID", "messageID"] } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "TextPart": { "type": "object", @@ -10147,6 +10273,9 @@ "Event.message.part.updated": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "message.part.updated" @@ -10170,11 +10299,14 @@ "required": ["sessionID", "part", "time"] } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "Event.message.part.removed": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "message.part.removed" @@ -10198,7 +10330,7 @@ "required": ["sessionID", "messageID", "partID"] } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "PermissionAction": { "type": "string", @@ -10291,6 +10423,24 @@ "title": { "type": "string" }, + "agent": { + "type": "string" + }, + "model": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "providerID": { + "type": "string" + }, + "variant": { + "type": "string" + } + }, + "required": ["id", "providerID"] + }, "version": { "type": "string" }, @@ -10347,6 +10497,9 @@ "Event.session.created": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "session.created" @@ -10365,11 +10518,14 @@ "required": ["sessionID", "info"] } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "Event.session.updated": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "session.updated" @@ -10388,11 +10544,14 @@ "required": ["sessionID", "info"] } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "Event.session.deleted": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "session.deleted" @@ -10411,11 +10570,1082 @@ "required": ["sessionID", "info"] } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] + }, + "Event.session.next.agent.switched": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "const": "session.next.agent.switched" + }, + "properties": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "agent": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "agent"] + } + }, + "required": ["id", "type", "properties"] + }, + "Event.session.next.model.switched": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "const": "session.next.model.switched" + }, + "properties": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "id": { + "type": "string" + }, + "providerID": { + "type": "string" + }, + "variant": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "id", "providerID"] + } + }, + "required": ["id", "type", "properties"] + }, + "Prompt.Source": { + "type": "object", + "properties": { + "start": { + "type": "number" + }, + "end": { + "type": "number" + }, + "text": { + "type": "string" + } + }, + "required": ["start", "end", "text"] + }, + "Prompt.FileAttachment": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "mime": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "source": { + "$ref": "#/components/schemas/Prompt.Source" + } + }, + "required": ["uri", "mime"] + }, + "Prompt.AgentAttachment": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "source": { + "$ref": "#/components/schemas/Prompt.Source" + } + }, + "required": ["name"] + }, + "Prompt": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Prompt.FileAttachment" + } + }, + "agents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Prompt.AgentAttachment" + } + } + }, + "required": ["text"] + }, + "Event.session.next.prompted": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "const": "session.next.prompted" + }, + "properties": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "prompt": { + "$ref": "#/components/schemas/Prompt" + } + }, + "required": ["timestamp", "sessionID", "prompt"] + } + }, + "required": ["id", "type", "properties"] + }, + "Event.session.next.synthetic": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "const": "session.next.synthetic" + }, + "properties": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "text": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "text"] + } + }, + "required": ["id", "type", "properties"] + }, + "Event.session.next.shell.started": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "const": "session.next.shell.started" + }, + "properties": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "callID": { + "type": "string" + }, + "command": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "callID", "command"] + } + }, + "required": ["id", "type", "properties"] + }, + "Event.session.next.shell.ended": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "const": "session.next.shell.ended" + }, + "properties": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "callID": { + "type": "string" + }, + "output": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "callID", "output"] + } + }, + "required": ["id", "type", "properties"] + }, + "Event.session.next.step.started": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "const": "session.next.step.started" + }, + "properties": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "agent": { + "type": "string" + }, + "model": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "providerID": { + "type": "string" + }, + "variant": { + "type": "string" + } + }, + "required": ["id", "providerID"] + }, + "snapshot": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "agent", "model"] + } + }, + "required": ["id", "type", "properties"] + }, + "Event.session.next.step.ended": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "const": "session.next.step.ended" + }, + "properties": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "finish": { + "type": "string" + }, + "cost": { + "type": "number" + }, + "tokens": { + "type": "object", + "properties": { + "input": { + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + }, + "output": { + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + }, + "reasoning": { + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + }, + "cache": { + "type": "object", + "properties": { + "read": { + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + }, + "write": { + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["read", "write"] + } + }, + "required": ["input", "output", "reasoning", "cache"] + }, + "snapshot": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "finish", "cost", "tokens"] + } + }, + "required": ["id", "type", "properties"] + }, + "Event.session.next.text.started": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "const": "session.next.text.started" + }, + "properties": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + } + }, + "required": ["timestamp", "sessionID"] + } + }, + "required": ["id", "type", "properties"] + }, + "Event.session.next.text.delta": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "const": "session.next.text.delta" + }, + "properties": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "delta": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "delta"] + } + }, + "required": ["id", "type", "properties"] + }, + "Event.session.next.text.ended": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "const": "session.next.text.ended" + }, + "properties": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "text": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "text"] + } + }, + "required": ["id", "type", "properties"] + }, + "Event.session.next.reasoning.started": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "const": "session.next.reasoning.started" + }, + "properties": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "reasoningID": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "reasoningID"] + } + }, + "required": ["id", "type", "properties"] + }, + "Event.session.next.reasoning.delta": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "const": "session.next.reasoning.delta" + }, + "properties": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "reasoningID": { + "type": "string" + }, + "delta": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "reasoningID", "delta"] + } + }, + "required": ["id", "type", "properties"] + }, + "Event.session.next.reasoning.ended": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "const": "session.next.reasoning.ended" + }, + "properties": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "reasoningID": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "reasoningID", "text"] + } + }, + "required": ["id", "type", "properties"] + }, + "Event.session.next.tool.input.started": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "const": "session.next.tool.input.started" + }, + "properties": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "callID": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "callID", "name"] + } + }, + "required": ["id", "type", "properties"] + }, + "Event.session.next.tool.input.delta": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "const": "session.next.tool.input.delta" + }, + "properties": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "callID": { + "type": "string" + }, + "delta": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "callID", "delta"] + } + }, + "required": ["id", "type", "properties"] + }, + "Event.session.next.tool.input.ended": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "const": "session.next.tool.input.ended" + }, + "properties": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "callID": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "callID", "text"] + } + }, + "required": ["id", "type", "properties"] + }, + "Event.session.next.tool.called": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "const": "session.next.tool.called" + }, + "properties": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "callID": { + "type": "string" + }, + "tool": { + "type": "string" + }, + "input": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "provider": { + "type": "object", + "properties": { + "executed": { + "type": "boolean" + }, + "metadata": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + } + }, + "required": ["executed"] + } + }, + "required": ["timestamp", "sessionID", "callID", "tool", "input", "provider"] + } + }, + "required": ["id", "type", "properties"] + }, + "Tool.TextContent": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "text" + }, + "text": { + "type": "string" + } + }, + "required": ["type", "text"] + }, + "Tool.FileContent": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "file" + }, + "uri": { + "type": "string" + }, + "mime": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": ["type", "uri", "mime"] + }, + "Event.session.next.tool.progress": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "const": "session.next.tool.progress" + }, + "properties": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "callID": { + "type": "string" + }, + "structured": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "content": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/Tool.TextContent" + }, + { + "$ref": "#/components/schemas/Tool.FileContent" + } + ] + } + } + }, + "required": ["timestamp", "sessionID", "callID", "structured", "content"] + } + }, + "required": ["id", "type", "properties"] + }, + "Event.session.next.tool.success": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "const": "session.next.tool.success" + }, + "properties": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "callID": { + "type": "string" + }, + "structured": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "content": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/Tool.TextContent" + }, + { + "$ref": "#/components/schemas/Tool.FileContent" + } + ] + } + }, + "provider": { + "type": "object", + "properties": { + "executed": { + "type": "boolean" + }, + "metadata": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + } + }, + "required": ["executed"] + } + }, + "required": ["timestamp", "sessionID", "callID", "structured", "content", "provider"] + } + }, + "required": ["id", "type", "properties"] + }, + "Event.session.next.tool.error": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "const": "session.next.tool.error" + }, + "properties": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "callID": { + "type": "string" + }, + "error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": ["type", "message"] + }, + "provider": { + "type": "object", + "properties": { + "executed": { + "type": "boolean" + }, + "metadata": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + } + }, + "required": ["executed"] + } + }, + "required": ["timestamp", "sessionID", "callID", "error", "provider"] + } + }, + "required": ["id", "type", "properties"] + }, + "session.next.retry_error": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + }, + "isRetryable": { + "type": "boolean" + }, + "responseHeaders": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "type": "string" + } + }, + "responseBody": { + "type": "string" + }, + "metadata": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "type": "string" + } + } + }, + "required": ["message", "isRetryable"] + }, + "Event.session.next.retried": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "const": "session.next.retried" + }, + "properties": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "attempt": { + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + }, + "error": { + "$ref": "#/components/schemas/session.next.retry_error" + } + }, + "required": ["timestamp", "sessionID", "attempt", "error"] + } + }, + "required": ["id", "type", "properties"] + }, + "Event.session.next.compaction.started": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "const": "session.next.compaction.started" + }, + "properties": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "reason": { + "type": "string", + "enum": ["auto", "manual"] + } + }, + "required": ["timestamp", "sessionID", "reason"] + } + }, + "required": ["id", "type", "properties"] + }, + "Event.session.next.compaction.delta": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "const": "session.next.compaction.delta" + }, + "properties": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "text": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "text"] + } + }, + "required": ["id", "type", "properties"] + }, + "Event.session.next.compaction.ended": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "const": "session.next.compaction.ended" + }, + "properties": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "text": { + "type": "string" + }, + "include": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "text"] + } + }, + "required": ["id", "type", "properties"] }, "Event.server.connected": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "server.connected" @@ -10425,11 +11655,14 @@ "properties": {} } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "Event.global.disposed": { "type": "object", "properties": { + "id": { + "type": "string" + }, "type": { "type": "string", "const": "global.disposed" @@ -10439,7 +11672,7 @@ "properties": {} } }, - "required": ["type", "properties"] + "required": ["id", "type", "properties"] }, "SyncEvent.message.updated": { "type": "object", @@ -10800,6 +12033,38 @@ } ] }, + "agent": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "model": { + "anyOf": [ + { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "providerID": { + "type": "string" + }, + "variant": { + "type": "string" + } + }, + "required": ["id", "providerID"] + }, + { + "type": "null" + } + ] + }, "version": { "anyOf": [ { @@ -10943,6 +12208,1210 @@ }, "required": ["type", "name", "id", "seq", "aggregateID", "data"] }, + "SyncEvent.session.next.agent.switched": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "sync" + }, + "name": { + "type": "string", + "const": "session.next.agent.switched.1" + }, + "id": { + "type": "string" + }, + "seq": { + "type": "number" + }, + "aggregateID": { + "type": "string", + "const": "sessionID" + }, + "data": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "agent": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "agent"] + } + }, + "required": ["type", "name", "id", "seq", "aggregateID", "data"] + }, + "SyncEvent.session.next.model.switched": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "sync" + }, + "name": { + "type": "string", + "const": "session.next.model.switched.1" + }, + "id": { + "type": "string" + }, + "seq": { + "type": "number" + }, + "aggregateID": { + "type": "string", + "const": "sessionID" + }, + "data": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "id": { + "type": "string" + }, + "providerID": { + "type": "string" + }, + "variant": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "id", "providerID"] + } + }, + "required": ["type", "name", "id", "seq", "aggregateID", "data"] + }, + "SyncEvent.session.next.prompted": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "sync" + }, + "name": { + "type": "string", + "const": "session.next.prompted.1" + }, + "id": { + "type": "string" + }, + "seq": { + "type": "number" + }, + "aggregateID": { + "type": "string", + "const": "sessionID" + }, + "data": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "prompt": { + "$ref": "#/components/schemas/Prompt" + } + }, + "required": ["timestamp", "sessionID", "prompt"] + } + }, + "required": ["type", "name", "id", "seq", "aggregateID", "data"] + }, + "SyncEvent.session.next.synthetic": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "sync" + }, + "name": { + "type": "string", + "const": "session.next.synthetic.1" + }, + "id": { + "type": "string" + }, + "seq": { + "type": "number" + }, + "aggregateID": { + "type": "string", + "const": "sessionID" + }, + "data": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "text": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "text"] + } + }, + "required": ["type", "name", "id", "seq", "aggregateID", "data"] + }, + "SyncEvent.session.next.shell.started": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "sync" + }, + "name": { + "type": "string", + "const": "session.next.shell.started.1" + }, + "id": { + "type": "string" + }, + "seq": { + "type": "number" + }, + "aggregateID": { + "type": "string", + "const": "sessionID" + }, + "data": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "callID": { + "type": "string" + }, + "command": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "callID", "command"] + } + }, + "required": ["type", "name", "id", "seq", "aggregateID", "data"] + }, + "SyncEvent.session.next.shell.ended": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "sync" + }, + "name": { + "type": "string", + "const": "session.next.shell.ended.1" + }, + "id": { + "type": "string" + }, + "seq": { + "type": "number" + }, + "aggregateID": { + "type": "string", + "const": "sessionID" + }, + "data": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "callID": { + "type": "string" + }, + "output": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "callID", "output"] + } + }, + "required": ["type", "name", "id", "seq", "aggregateID", "data"] + }, + "SyncEvent.session.next.step.started": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "sync" + }, + "name": { + "type": "string", + "const": "session.next.step.started.1" + }, + "id": { + "type": "string" + }, + "seq": { + "type": "number" + }, + "aggregateID": { + "type": "string", + "const": "sessionID" + }, + "data": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "agent": { + "type": "string" + }, + "model": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "providerID": { + "type": "string" + }, + "variant": { + "type": "string" + } + }, + "required": ["id", "providerID"] + }, + "snapshot": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "agent", "model"] + } + }, + "required": ["type", "name", "id", "seq", "aggregateID", "data"] + }, + "SyncEvent.session.next.step.ended": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "sync" + }, + "name": { + "type": "string", + "const": "session.next.step.ended.1" + }, + "id": { + "type": "string" + }, + "seq": { + "type": "number" + }, + "aggregateID": { + "type": "string", + "const": "sessionID" + }, + "data": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "finish": { + "type": "string" + }, + "cost": { + "type": "number" + }, + "tokens": { + "type": "object", + "properties": { + "input": { + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + }, + "output": { + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + }, + "reasoning": { + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + }, + "cache": { + "type": "object", + "properties": { + "read": { + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + }, + "write": { + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["read", "write"] + } + }, + "required": ["input", "output", "reasoning", "cache"] + }, + "snapshot": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "finish", "cost", "tokens"] + } + }, + "required": ["type", "name", "id", "seq", "aggregateID", "data"] + }, + "SyncEvent.session.next.text.started": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "sync" + }, + "name": { + "type": "string", + "const": "session.next.text.started.1" + }, + "id": { + "type": "string" + }, + "seq": { + "type": "number" + }, + "aggregateID": { + "type": "string", + "const": "sessionID" + }, + "data": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + } + }, + "required": ["timestamp", "sessionID"] + } + }, + "required": ["type", "name", "id", "seq", "aggregateID", "data"] + }, + "SyncEvent.session.next.text.delta": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "sync" + }, + "name": { + "type": "string", + "const": "session.next.text.delta.1" + }, + "id": { + "type": "string" + }, + "seq": { + "type": "number" + }, + "aggregateID": { + "type": "string", + "const": "sessionID" + }, + "data": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "delta": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "delta"] + } + }, + "required": ["type", "name", "id", "seq", "aggregateID", "data"] + }, + "SyncEvent.session.next.text.ended": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "sync" + }, + "name": { + "type": "string", + "const": "session.next.text.ended.1" + }, + "id": { + "type": "string" + }, + "seq": { + "type": "number" + }, + "aggregateID": { + "type": "string", + "const": "sessionID" + }, + "data": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "text": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "text"] + } + }, + "required": ["type", "name", "id", "seq", "aggregateID", "data"] + }, + "SyncEvent.session.next.reasoning.started": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "sync" + }, + "name": { + "type": "string", + "const": "session.next.reasoning.started.1" + }, + "id": { + "type": "string" + }, + "seq": { + "type": "number" + }, + "aggregateID": { + "type": "string", + "const": "sessionID" + }, + "data": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "reasoningID": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "reasoningID"] + } + }, + "required": ["type", "name", "id", "seq", "aggregateID", "data"] + }, + "SyncEvent.session.next.reasoning.delta": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "sync" + }, + "name": { + "type": "string", + "const": "session.next.reasoning.delta.1" + }, + "id": { + "type": "string" + }, + "seq": { + "type": "number" + }, + "aggregateID": { + "type": "string", + "const": "sessionID" + }, + "data": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "reasoningID": { + "type": "string" + }, + "delta": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "reasoningID", "delta"] + } + }, + "required": ["type", "name", "id", "seq", "aggregateID", "data"] + }, + "SyncEvent.session.next.reasoning.ended": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "sync" + }, + "name": { + "type": "string", + "const": "session.next.reasoning.ended.1" + }, + "id": { + "type": "string" + }, + "seq": { + "type": "number" + }, + "aggregateID": { + "type": "string", + "const": "sessionID" + }, + "data": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "reasoningID": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "reasoningID", "text"] + } + }, + "required": ["type", "name", "id", "seq", "aggregateID", "data"] + }, + "SyncEvent.session.next.tool.input.started": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "sync" + }, + "name": { + "type": "string", + "const": "session.next.tool.input.started.1" + }, + "id": { + "type": "string" + }, + "seq": { + "type": "number" + }, + "aggregateID": { + "type": "string", + "const": "sessionID" + }, + "data": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "callID": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "callID", "name"] + } + }, + "required": ["type", "name", "id", "seq", "aggregateID", "data"] + }, + "SyncEvent.session.next.tool.input.delta": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "sync" + }, + "name": { + "type": "string", + "const": "session.next.tool.input.delta.1" + }, + "id": { + "type": "string" + }, + "seq": { + "type": "number" + }, + "aggregateID": { + "type": "string", + "const": "sessionID" + }, + "data": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "callID": { + "type": "string" + }, + "delta": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "callID", "delta"] + } + }, + "required": ["type", "name", "id", "seq", "aggregateID", "data"] + }, + "SyncEvent.session.next.tool.input.ended": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "sync" + }, + "name": { + "type": "string", + "const": "session.next.tool.input.ended.1" + }, + "id": { + "type": "string" + }, + "seq": { + "type": "number" + }, + "aggregateID": { + "type": "string", + "const": "sessionID" + }, + "data": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "callID": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "callID", "text"] + } + }, + "required": ["type", "name", "id", "seq", "aggregateID", "data"] + }, + "SyncEvent.session.next.tool.called": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "sync" + }, + "name": { + "type": "string", + "const": "session.next.tool.called.1" + }, + "id": { + "type": "string" + }, + "seq": { + "type": "number" + }, + "aggregateID": { + "type": "string", + "const": "sessionID" + }, + "data": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "callID": { + "type": "string" + }, + "tool": { + "type": "string" + }, + "input": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "provider": { + "type": "object", + "properties": { + "executed": { + "type": "boolean" + }, + "metadata": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + } + }, + "required": ["executed"] + } + }, + "required": ["timestamp", "sessionID", "callID", "tool", "input", "provider"] + } + }, + "required": ["type", "name", "id", "seq", "aggregateID", "data"] + }, + "SyncEvent.session.next.tool.progress": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "sync" + }, + "name": { + "type": "string", + "const": "session.next.tool.progress.1" + }, + "id": { + "type": "string" + }, + "seq": { + "type": "number" + }, + "aggregateID": { + "type": "string", + "const": "sessionID" + }, + "data": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "callID": { + "type": "string" + }, + "structured": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "content": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/Tool.TextContent" + }, + { + "$ref": "#/components/schemas/Tool.FileContent" + } + ] + } + } + }, + "required": ["timestamp", "sessionID", "callID", "structured", "content"] + } + }, + "required": ["type", "name", "id", "seq", "aggregateID", "data"] + }, + "SyncEvent.session.next.tool.success": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "sync" + }, + "name": { + "type": "string", + "const": "session.next.tool.success.1" + }, + "id": { + "type": "string" + }, + "seq": { + "type": "number" + }, + "aggregateID": { + "type": "string", + "const": "sessionID" + }, + "data": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "callID": { + "type": "string" + }, + "structured": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "content": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/Tool.TextContent" + }, + { + "$ref": "#/components/schemas/Tool.FileContent" + } + ] + } + }, + "provider": { + "type": "object", + "properties": { + "executed": { + "type": "boolean" + }, + "metadata": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + } + }, + "required": ["executed"] + } + }, + "required": ["timestamp", "sessionID", "callID", "structured", "content", "provider"] + } + }, + "required": ["type", "name", "id", "seq", "aggregateID", "data"] + }, + "SyncEvent.session.next.tool.error": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "sync" + }, + "name": { + "type": "string", + "const": "session.next.tool.error.1" + }, + "id": { + "type": "string" + }, + "seq": { + "type": "number" + }, + "aggregateID": { + "type": "string", + "const": "sessionID" + }, + "data": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "callID": { + "type": "string" + }, + "error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": ["type", "message"] + }, + "provider": { + "type": "object", + "properties": { + "executed": { + "type": "boolean" + }, + "metadata": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + } + }, + "required": ["executed"] + } + }, + "required": ["timestamp", "sessionID", "callID", "error", "provider"] + } + }, + "required": ["type", "name", "id", "seq", "aggregateID", "data"] + }, + "SyncEvent.session.next.retried": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "sync" + }, + "name": { + "type": "string", + "const": "session.next.retried.1" + }, + "id": { + "type": "string" + }, + "seq": { + "type": "number" + }, + "aggregateID": { + "type": "string", + "const": "sessionID" + }, + "data": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "attempt": { + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + }, + "error": { + "$ref": "#/components/schemas/session.next.retry_error" + } + }, + "required": ["timestamp", "sessionID", "attempt", "error"] + } + }, + "required": ["type", "name", "id", "seq", "aggregateID", "data"] + }, + "SyncEvent.session.next.compaction.started": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "sync" + }, + "name": { + "type": "string", + "const": "session.next.compaction.started.1" + }, + "id": { + "type": "string" + }, + "seq": { + "type": "number" + }, + "aggregateID": { + "type": "string", + "const": "sessionID" + }, + "data": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "reason": { + "type": "string", + "enum": ["auto", "manual"] + } + }, + "required": ["timestamp", "sessionID", "reason"] + } + }, + "required": ["type", "name", "id", "seq", "aggregateID", "data"] + }, + "SyncEvent.session.next.compaction.delta": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "sync" + }, + "name": { + "type": "string", + "const": "session.next.compaction.delta.1" + }, + "id": { + "type": "string" + }, + "seq": { + "type": "number" + }, + "aggregateID": { + "type": "string", + "const": "sessionID" + }, + "data": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "text": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "text"] + } + }, + "required": ["type", "name", "id", "seq", "aggregateID", "data"] + }, + "SyncEvent.session.next.compaction.ended": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "sync" + }, + "name": { + "type": "string", + "const": "session.next.compaction.ended.1" + }, + "id": { + "type": "string" + }, + "seq": { + "type": "number" + }, + "aggregateID": { + "type": "string", + "const": "sessionID" + }, + "data": { + "type": "object", + "properties": { + "timestamp": { + "type": "number" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "text": { + "type": "string" + }, + "include": { + "type": "string" + } + }, + "required": ["timestamp", "sessionID", "text"] + } + }, + "required": ["type", "name", "id", "seq", "aggregateID", "data"] + }, "GlobalEvent": { "type": "object", "properties": { @@ -11092,6 +13561,81 @@ { "$ref": "#/components/schemas/Event.session.deleted" }, + { + "$ref": "#/components/schemas/Event.session.next.agent.switched" + }, + { + "$ref": "#/components/schemas/Event.session.next.model.switched" + }, + { + "$ref": "#/components/schemas/Event.session.next.prompted" + }, + { + "$ref": "#/components/schemas/Event.session.next.synthetic" + }, + { + "$ref": "#/components/schemas/Event.session.next.shell.started" + }, + { + "$ref": "#/components/schemas/Event.session.next.shell.ended" + }, + { + "$ref": "#/components/schemas/Event.session.next.step.started" + }, + { + "$ref": "#/components/schemas/Event.session.next.step.ended" + }, + { + "$ref": "#/components/schemas/Event.session.next.text.started" + }, + { + "$ref": "#/components/schemas/Event.session.next.text.delta" + }, + { + "$ref": "#/components/schemas/Event.session.next.text.ended" + }, + { + "$ref": "#/components/schemas/Event.session.next.reasoning.started" + }, + { + "$ref": "#/components/schemas/Event.session.next.reasoning.delta" + }, + { + "$ref": "#/components/schemas/Event.session.next.reasoning.ended" + }, + { + "$ref": "#/components/schemas/Event.session.next.tool.input.started" + }, + { + "$ref": "#/components/schemas/Event.session.next.tool.input.delta" + }, + { + "$ref": "#/components/schemas/Event.session.next.tool.input.ended" + }, + { + "$ref": "#/components/schemas/Event.session.next.tool.called" + }, + { + "$ref": "#/components/schemas/Event.session.next.tool.progress" + }, + { + "$ref": "#/components/schemas/Event.session.next.tool.success" + }, + { + "$ref": "#/components/schemas/Event.session.next.tool.error" + }, + { + "$ref": "#/components/schemas/Event.session.next.retried" + }, + { + "$ref": "#/components/schemas/Event.session.next.compaction.started" + }, + { + "$ref": "#/components/schemas/Event.session.next.compaction.delta" + }, + { + "$ref": "#/components/schemas/Event.session.next.compaction.ended" + }, { "$ref": "#/components/schemas/Event.server.connected" }, @@ -11118,6 +13662,81 @@ }, { "$ref": "#/components/schemas/SyncEvent.session.deleted" + }, + { + "$ref": "#/components/schemas/SyncEvent.session.next.agent.switched" + }, + { + "$ref": "#/components/schemas/SyncEvent.session.next.model.switched" + }, + { + "$ref": "#/components/schemas/SyncEvent.session.next.prompted" + }, + { + "$ref": "#/components/schemas/SyncEvent.session.next.synthetic" + }, + { + "$ref": "#/components/schemas/SyncEvent.session.next.shell.started" + }, + { + "$ref": "#/components/schemas/SyncEvent.session.next.shell.ended" + }, + { + "$ref": "#/components/schemas/SyncEvent.session.next.step.started" + }, + { + "$ref": "#/components/schemas/SyncEvent.session.next.step.ended" + }, + { + "$ref": "#/components/schemas/SyncEvent.session.next.text.started" + }, + { + "$ref": "#/components/schemas/SyncEvent.session.next.text.delta" + }, + { + "$ref": "#/components/schemas/SyncEvent.session.next.text.ended" + }, + { + "$ref": "#/components/schemas/SyncEvent.session.next.reasoning.started" + }, + { + "$ref": "#/components/schemas/SyncEvent.session.next.reasoning.delta" + }, + { + "$ref": "#/components/schemas/SyncEvent.session.next.reasoning.ended" + }, + { + "$ref": "#/components/schemas/SyncEvent.session.next.tool.input.started" + }, + { + "$ref": "#/components/schemas/SyncEvent.session.next.tool.input.delta" + }, + { + "$ref": "#/components/schemas/SyncEvent.session.next.tool.input.ended" + }, + { + "$ref": "#/components/schemas/SyncEvent.session.next.tool.called" + }, + { + "$ref": "#/components/schemas/SyncEvent.session.next.tool.progress" + }, + { + "$ref": "#/components/schemas/SyncEvent.session.next.tool.success" + }, + { + "$ref": "#/components/schemas/SyncEvent.session.next.tool.error" + }, + { + "$ref": "#/components/schemas/SyncEvent.session.next.retried" + }, + { + "$ref": "#/components/schemas/SyncEvent.session.next.compaction.started" + }, + { + "$ref": "#/components/schemas/SyncEvent.session.next.compaction.delta" + }, + { + "$ref": "#/components/schemas/SyncEvent.session.next.compaction.ended" } ] } @@ -12749,6 +15368,24 @@ "title": { "type": "string" }, + "agent": { + "type": "string" + }, + "model": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "providerID": { + "type": "string" + }, + "variant": { + "type": "string" + } + }, + "required": ["id", "providerID"] + }, "version": { "type": "string" }, @@ -13387,6 +16024,81 @@ { "$ref": "#/components/schemas/Event.session.deleted" }, + { + "$ref": "#/components/schemas/Event.session.next.agent.switched" + }, + { + "$ref": "#/components/schemas/Event.session.next.model.switched" + }, + { + "$ref": "#/components/schemas/Event.session.next.prompted" + }, + { + "$ref": "#/components/schemas/Event.session.next.synthetic" + }, + { + "$ref": "#/components/schemas/Event.session.next.shell.started" + }, + { + "$ref": "#/components/schemas/Event.session.next.shell.ended" + }, + { + "$ref": "#/components/schemas/Event.session.next.step.started" + }, + { + "$ref": "#/components/schemas/Event.session.next.step.ended" + }, + { + "$ref": "#/components/schemas/Event.session.next.text.started" + }, + { + "$ref": "#/components/schemas/Event.session.next.text.delta" + }, + { + "$ref": "#/components/schemas/Event.session.next.text.ended" + }, + { + "$ref": "#/components/schemas/Event.session.next.reasoning.started" + }, + { + "$ref": "#/components/schemas/Event.session.next.reasoning.delta" + }, + { + "$ref": "#/components/schemas/Event.session.next.reasoning.ended" + }, + { + "$ref": "#/components/schemas/Event.session.next.tool.input.started" + }, + { + "$ref": "#/components/schemas/Event.session.next.tool.input.delta" + }, + { + "$ref": "#/components/schemas/Event.session.next.tool.input.ended" + }, + { + "$ref": "#/components/schemas/Event.session.next.tool.called" + }, + { + "$ref": "#/components/schemas/Event.session.next.tool.progress" + }, + { + "$ref": "#/components/schemas/Event.session.next.tool.success" + }, + { + "$ref": "#/components/schemas/Event.session.next.tool.error" + }, + { + "$ref": "#/components/schemas/Event.session.next.retried" + }, + { + "$ref": "#/components/schemas/Event.session.next.compaction.started" + }, + { + "$ref": "#/components/schemas/Event.session.next.compaction.delta" + }, + { + "$ref": "#/components/schemas/Event.session.next.compaction.ended" + }, { "$ref": "#/components/schemas/Event.server.connected" },