summaryrefslogtreecommitdiffhomepage
path: root/packages/sdk/js/src/v2
diff options
context:
space:
mode:
Diffstat (limited to 'packages/sdk/js/src/v2')
-rw-r--r--packages/sdk/js/src/v2/client.ts10
-rw-r--r--packages/sdk/js/src/v2/data.ts2
-rw-r--r--packages/sdk/js/src/v2/gen/sdk.gen.ts248
-rw-r--r--packages/sdk/js/src/v2/gen/types.gen.ts739
4 files changed, 730 insertions, 269 deletions
diff --git a/packages/sdk/js/src/v2/client.ts b/packages/sdk/js/src/v2/client.ts
index 67fe1de32..2d71d8446 100644
--- a/packages/sdk/js/src/v2/client.ts
+++ b/packages/sdk/js/src/v2/client.ts
@@ -77,6 +77,12 @@ export function createOpencodeClient(config?: Config & { directory?: string; exp
workspace: config?.experimental_workspaceID,
}),
)
- const result = new OpencodeClient({ client })
- return result
+ client.interceptors.response.use((response) => {
+ const contentType = response.headers.get("content-type")
+ if (contentType === "text/html")
+ throw new Error("Request is not supported by this version of OpenCode Server (Server responded with text/html)")
+
+ return response
+ })
+ return new OpencodeClient({ client })
}
diff --git a/packages/sdk/js/src/v2/data.ts b/packages/sdk/js/src/v2/data.ts
index baae6f278..776b168ad 100644
--- a/packages/sdk/js/src/v2/data.ts
+++ b/packages/sdk/js/src/v2/data.ts
@@ -5,7 +5,7 @@ export const message = {
info: UserMessage
parts: Part[]
} {
- const { parts, ...rest } = input
+ const { parts: _parts, ...rest } = input
const info: UserMessage = {
...rest,
diff --git a/packages/sdk/js/src/v2/gen/sdk.gen.ts b/packages/sdk/js/src/v2/gen/sdk.gen.ts
index b2e37db59..d7bf43f50 100644
--- a/packages/sdk/js/src/v2/gen/sdk.gen.ts
+++ b/packages/sdk/js/src/v2/gen/sdk.gen.ts
@@ -29,11 +29,15 @@ import type {
ExperimentalConsoleSwitchOrgResponses,
ExperimentalResourceListResponses,
ExperimentalSessionListResponses,
+ ExperimentalWorkspaceAdaptorListResponses,
ExperimentalWorkspaceCreateErrors,
ExperimentalWorkspaceCreateResponses,
ExperimentalWorkspaceListResponses,
ExperimentalWorkspaceRemoveErrors,
ExperimentalWorkspaceRemoveResponses,
+ ExperimentalWorkspaceSessionRestoreErrors,
+ ExperimentalWorkspaceSessionRestoreResponses,
+ ExperimentalWorkspaceStatusResponses,
FileListResponses,
FilePartInput,
FilePartSource,
@@ -49,7 +53,6 @@ import type {
GlobalDisposeResponses,
GlobalEventResponses,
GlobalHealthResponses,
- GlobalSyncEventSubscribeResponses,
GlobalUpgradeErrors,
GlobalUpgradeResponses,
InstanceDisposeResponses,
@@ -156,6 +159,10 @@ import type {
SessionUpdateErrors,
SessionUpdateResponses,
SubtaskPartInput,
+ SyncHistoryListErrors,
+ SyncHistoryListResponses,
+ SyncReplayErrors,
+ SyncReplayResponses,
TextPartInput,
ToolIdsErrors,
ToolIdsResponses,
@@ -235,20 +242,6 @@ class HeyApiRegistry<T> {
}
}
-export class SyncEvent extends HeyApiClient {
- /**
- * Subscribe to global sync events
- *
- * Get global sync events
- */
- public subscribe<ThrowOnError extends boolean = false>(options?: Options<never, ThrowOnError>) {
- return (options?.client ?? this.client).sse.get<GlobalSyncEventSubscribeResponses, unknown, ThrowOnError>({
- url: "/global/sync-event",
- ...options,
- })
- }
-}
-
export class Config extends HeyApiClient {
/**
* Get global configuration
@@ -348,11 +341,6 @@ export class Global extends HeyApiClient {
})
}
- private _syncEvent?: SyncEvent
- get syncEvent(): SyncEvent {
- return (this._syncEvent ??= new SyncEvent({ client: this.client }))
- }
-
private _config?: Config
get config(): Config {
return (this._config ??= new Config({ client: this.client }))
@@ -1085,6 +1073,38 @@ export class Console extends HeyApiClient {
}
}
+export class Adaptor extends HeyApiClient {
+ /**
+ * List workspace adaptors
+ *
+ * List all available workspace adaptors for the current project.
+ */
+ public list<ThrowOnError extends boolean = false>(
+ parameters?: {
+ directory?: string
+ workspace?: string
+ },
+ options?: Options<never, ThrowOnError>,
+ ) {
+ const params = buildClientParams(
+ [parameters],
+ [
+ {
+ args: [
+ { in: "query", key: "directory" },
+ { in: "query", key: "workspace" },
+ ],
+ },
+ ],
+ )
+ return (options?.client ?? this.client).get<ExperimentalWorkspaceAdaptorListResponses, unknown, ThrowOnError>({
+ url: "/experimental/workspace/adaptor",
+ ...options,
+ ...params,
+ })
+ }
+}
+
export class Workspace extends HeyApiClient {
/**
* List workspaces
@@ -1164,6 +1184,36 @@ export class Workspace extends HeyApiClient {
}
/**
+ * Workspace status
+ *
+ * Get connection status for workspaces in the current project.
+ */
+ public status<ThrowOnError extends boolean = false>(
+ parameters?: {
+ directory?: string
+ workspace?: string
+ },
+ options?: Options<never, ThrowOnError>,
+ ) {
+ const params = buildClientParams(
+ [parameters],
+ [
+ {
+ args: [
+ { in: "query", key: "directory" },
+ { in: "query", key: "workspace" },
+ ],
+ },
+ ],
+ )
+ return (options?.client ?? this.client).get<ExperimentalWorkspaceStatusResponses, unknown, ThrowOnError>({
+ url: "/experimental/workspace/status",
+ ...options,
+ ...params,
+ })
+ }
+
+ /**
* Remove workspace
*
* Remove an existing workspace.
@@ -1198,6 +1248,54 @@ export class Workspace extends HeyApiClient {
...params,
})
}
+
+ /**
+ * Restore session into workspace
+ *
+ * Replay a session's sync events into the target workspace in batches.
+ */
+ public sessionRestore<ThrowOnError extends boolean = false>(
+ parameters: {
+ id: string
+ directory?: string
+ workspace?: string
+ sessionID?: string
+ },
+ options?: Options<never, ThrowOnError>,
+ ) {
+ const params = buildClientParams(
+ [parameters],
+ [
+ {
+ args: [
+ { in: "path", key: "id" },
+ { in: "query", key: "directory" },
+ { in: "query", key: "workspace" },
+ { in: "body", key: "sessionID" },
+ ],
+ },
+ ],
+ )
+ return (options?.client ?? this.client).post<
+ ExperimentalWorkspaceSessionRestoreResponses,
+ ExperimentalWorkspaceSessionRestoreErrors,
+ ThrowOnError
+ >({
+ url: "/experimental/workspace/{id}/session-restore",
+ ...options,
+ ...params,
+ headers: {
+ "Content-Type": "application/json",
+ ...options?.headers,
+ ...params.headers,
+ },
+ })
+ }
+
+ private _adaptor?: Adaptor
+ get adaptor(): Adaptor {
+ return (this._adaptor ??= new Adaptor({ client: this.client }))
+ }
}
export class Session extends HeyApiClient {
@@ -1694,6 +1792,7 @@ export class Session2 extends HeyApiClient {
directory?: string
workspace?: string
title?: string
+ permission?: PermissionRuleset
time?: {
archived?: number
}
@@ -1709,6 +1808,7 @@ export class Session2 extends HeyApiClient {
{ in: "query", key: "directory" },
{ in: "query", key: "workspace" },
{ in: "body", key: "title" },
+ { in: "body", key: "permission" },
{ in: "body", key: "time" },
],
},
@@ -2910,6 +3010,109 @@ export class Provider extends HeyApiClient {
}
}
+export class History extends HeyApiClient {
+ /**
+ * List sync events
+ *
+ * List sync events for all aggregates. Keys are aggregate IDs the client already knows about, values are the last known sequence ID. Events with seq > value are returned for those aggregates. Aggregates not listed in the input get their full history.
+ */
+ public list<ThrowOnError extends boolean = false>(
+ parameters?: {
+ directory?: string
+ workspace?: string
+ body?: {
+ [key: string]: number
+ }
+ },
+ options?: Options<never, ThrowOnError>,
+ ) {
+ const params = buildClientParams(
+ [parameters],
+ [
+ {
+ args: [
+ { in: "query", key: "directory" },
+ { in: "query", key: "workspace" },
+ { key: "body", map: "body" },
+ ],
+ },
+ ],
+ )
+ return (options?.client ?? this.client).get<SyncHistoryListResponses, SyncHistoryListErrors, ThrowOnError>({
+ url: "/sync/history",
+ ...options,
+ ...params,
+ headers: {
+ "Content-Type": "application/json",
+ ...options?.headers,
+ ...params.headers,
+ },
+ })
+ }
+}
+
+export class Sync extends HeyApiClient {
+ /**
+ * Replay sync events
+ *
+ * Validate and replay a complete sync event history.
+ */
+ public replay<ThrowOnError extends boolean = false>(
+ parameters?: {
+ query_directory?: string
+ workspace?: string
+ body_directory?: string
+ events?: Array<{
+ id: string
+ aggregateID: string
+ seq: number
+ type: string
+ data: {
+ [key: string]: unknown
+ }
+ }>
+ },
+ options?: Options<never, ThrowOnError>,
+ ) {
+ const params = buildClientParams(
+ [parameters],
+ [
+ {
+ args: [
+ {
+ in: "query",
+ key: "query_directory",
+ map: "directory",
+ },
+ { in: "query", key: "workspace" },
+ {
+ in: "body",
+ key: "body_directory",
+ map: "directory",
+ },
+ { in: "body", key: "events" },
+ ],
+ },
+ ],
+ )
+ return (options?.client ?? this.client).post<SyncReplayResponses, SyncReplayErrors, ThrowOnError>({
+ url: "/sync/replay",
+ ...options,
+ ...params,
+ headers: {
+ "Content-Type": "application/json",
+ ...options?.headers,
+ ...params.headers,
+ },
+ })
+ }
+
+ private _history?: History
+ get history(): History {
+ return (this._history ??= new History({ client: this.client }))
+ }
+}
+
export class Find extends HeyApiClient {
/**
* Find text
@@ -4166,6 +4369,11 @@ export class OpencodeClient extends HeyApiClient {
return (this._provider ??= new Provider({ client: this.client }))
}
+ private _sync?: Sync
+ get sync(): Sync {
+ return (this._sync ??= new Sync({ client: this.client }))
+ }
+
private _find?: Find
get find(): Find {
return (this._find ??= new Find({ client: this.client }))
diff --git a/packages/sdk/js/src/v2/gen/types.gen.ts b/packages/sdk/js/src/v2/gen/types.gen.ts
index 62c62e138..795c2f264 100644
--- a/packages/sdk/js/src/v2/gen/types.gen.ts
+++ b/packages/sdk/js/src/v2/gen/types.gen.ts
@@ -33,20 +33,6 @@ export type EventProjectUpdated = {
properties: Project
}
-export type EventInstallationUpdated = {
- type: "installation.updated"
- properties: {
- version: string
- }
-}
-
-export type EventInstallationUpdateAvailable = {
- type: "installation.update-available"
- properties: {
- version: string
- }
-}
-
export type EventServerInstanceDisposed = {
type: "server.instance.disposed"
properties: {
@@ -68,6 +54,21 @@ export type EventGlobalDisposed = {
}
}
+export type EventFileEdited = {
+ type: "file.edited"
+ properties: {
+ file: string
+ }
+}
+
+export type EventFileWatcherUpdated = {
+ type: "file.watcher.updated"
+ properties: {
+ file: string
+ event: "add" | "change" | "unlink"
+ }
+}
+
export type EventLspClientDiagnostics = {
type: "lsp.client.diagnostics"
properties: {
@@ -83,6 +84,20 @@ export type EventLspUpdated = {
}
}
+export type EventInstallationUpdated = {
+ type: "installation.updated"
+ properties: {
+ version: string
+ }
+}
+
+export type EventInstallationUpdateAvailable = {
+ type: "installation.update-available"
+ properties: {
+ version: string
+ }
+}
+
export type EventMessagePartDelta = {
type: "message.part.delta"
properties: {
@@ -215,121 +230,6 @@ export type EventSessionError = {
}
}
-export type EventFileEdited = {
- type: "file.edited"
- properties: {
- file: string
- }
-}
-
-export type EventFileWatcherUpdated = {
- type: "file.watcher.updated"
- properties: {
- file: string
- event: "add" | "change" | "unlink"
- }
-}
-
-export type EventVcsBranchUpdated = {
- type: "vcs.branch.updated"
- properties: {
- branch?: string
- }
-}
-
-export type EventTuiPromptAppend = {
- type: "tui.prompt.append"
- properties: {
- text: string
- }
-}
-
-export type EventTuiCommandExecute = {
- type: "tui.command.execute"
- properties: {
- command:
- | "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"
- | string
- }
-}
-
-export type EventTuiToastShow = {
- type: "tui.toast.show"
- properties: {
- title?: string
- message: string
- variant: "info" | "success" | "warning" | "error"
- /**
- * Duration in milliseconds
- */
- duration?: number
- }
-}
-
-export type EventTuiSessionSelect = {
- type: "tui.session.select"
- properties: {
- /**
- * Session ID to navigate to
- */
- sessionID: string
- }
-}
-
-export type EventMcpToolsChanged = {
- type: "mcp.tools.changed"
- properties: {
- server: string
- }
-}
-
-export type EventMcpBrowserOpenFailed = {
- type: "mcp.browser.open.failed"
- properties: {
- mcpName: string
- url: string
- }
-}
-
-export type EventCommandExecuted = {
- type: "command.executed"
- properties: {
- name: string
- sessionID: string
- arguments: string
- messageID: string
- }
-}
-
-export type EventWorkspaceReady = {
- type: "workspace.ready"
- properties: {
- name: string
- }
-}
-
-export type EventWorkspaceFailed = {
- type: "workspace.failed"
- properties: {
- message: string
- }
-}
-
export type QuestionOption = {
/**
* Display text (1-5 words, concise)
@@ -364,6 +264,11 @@ export type QuestionInfo = {
custom?: boolean
}
+export type QuestionTool = {
+ messageID: string
+ callID: string
+}
+
export type QuestionRequest = {
id: string
sessionID: string
@@ -371,10 +276,7 @@ export type QuestionRequest = {
* Questions to ask
*/
questions: Array<QuestionInfo>
- tool?: {
- messageID: string
- callID: string
- }
+ tool?: QuestionTool
}
export type EventQuestionAsked = {
@@ -384,20 +286,47 @@ export type EventQuestionAsked = {
export type QuestionAnswer = Array<string>
+export type QuestionReplied = {
+ sessionID: string
+ requestID: string
+ answers: Array<QuestionAnswer>
+}
+
export type EventQuestionReplied = {
type: "question.replied"
- properties: {
- sessionID: string
- requestID: string
- answers: Array<QuestionAnswer>
- }
+ properties: QuestionReplied
+}
+
+export type QuestionRejected = {
+ sessionID: string
+ requestID: string
}
export type EventQuestionRejected = {
type: "question.rejected"
+ properties: QuestionRejected
+}
+
+export type Todo = {
+ /**
+ * Brief description of the task
+ */
+ content: string
+ /**
+ * Current status of the task: pending, in_progress, completed, cancelled
+ */
+ status: string
+ /**
+ * Priority level of the task: high, medium, low
+ */
+ priority: string
+}
+
+export type EventTodoUpdated = {
+ type: "todo.updated"
properties: {
sessionID: string
- requestID: string
+ todos: Array<Todo>
}
}
@@ -437,26 +366,104 @@ export type EventSessionCompacted = {
}
}
-export type Todo = {
- /**
- * Brief description of the task
- */
- content: string
- /**
- * Current status of the task: pending, in_progress, completed, cancelled
- */
- status: string
- /**
- * Priority level of the task: high, medium, low
- */
- priority: string
+export type EventTuiPromptAppend = {
+ type: "tui.prompt.append"
+ properties: {
+ text: string
+ }
}
-export type EventTodoUpdated = {
- type: "todo.updated"
+export type EventTuiCommandExecute = {
+ type: "tui.command.execute"
+ properties: {
+ command:
+ | "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"
+ | string
+ }
+}
+
+export type EventTuiToastShow = {
+ type: "tui.toast.show"
+ properties: {
+ title?: string
+ message: string
+ variant: "info" | "success" | "warning" | "error"
+ /**
+ * Duration in milliseconds
+ */
+ duration?: number
+ }
+}
+
+export type EventTuiSessionSelect = {
+ type: "tui.session.select"
properties: {
+ /**
+ * Session ID to navigate to
+ */
sessionID: string
- todos: Array<Todo>
+ }
+}
+
+export type EventMcpToolsChanged = {
+ type: "mcp.tools.changed"
+ properties: {
+ server: string
+ }
+}
+
+export type EventMcpBrowserOpenFailed = {
+ type: "mcp.browser.open.failed"
+ properties: {
+ mcpName: string
+ url: string
+ }
+}
+
+export type EventCommandExecuted = {
+ type: "command.executed"
+ properties: {
+ name: string
+ sessionID: string
+ arguments: string
+ messageID: string
+ }
+}
+
+export type EventVcsBranchUpdated = {
+ type: "vcs.branch.updated"
+ properties: {
+ branch?: string
+ }
+}
+
+export type EventWorktreeReady = {
+ type: "worktree.ready"
+ properties: {
+ name: string
+ branch: string
+ }
+}
+
+export type EventWorktreeFailed = {
+ type: "worktree.failed"
+ properties: {
+ message: string
}
}
@@ -499,21 +506,39 @@ export type EventPtyDeleted = {
}
}
-export type EventWorktreeReady = {
- type: "worktree.ready"
+export type EventWorkspaceReady = {
+ type: "workspace.ready"
properties: {
name: string
- branch: string
}
}
-export type EventWorktreeFailed = {
- type: "worktree.failed"
+export type EventWorkspaceFailed = {
+ type: "workspace.failed"
properties: {
message: string
}
}
+export type EventWorkspaceRestore = {
+ type: "workspace.restore"
+ properties: {
+ workspaceID: string
+ sessionID: string
+ total: number
+ step: number
+ }
+}
+
+export type EventWorkspaceStatus = {
+ type: "workspace.status"
+ properties: {
+ workspaceID: string
+ status: "connected" | "connecting" | "disconnected" | "error"
+ error?: string
+ }
+}
+
export type OutputFormatText = {
type: "text"
}
@@ -962,61 +987,12 @@ export type EventSessionDeleted = {
}
}
-export type Event =
- | EventProjectUpdated
- | EventInstallationUpdated
- | EventInstallationUpdateAvailable
- | EventServerInstanceDisposed
- | EventServerConnected
- | EventGlobalDisposed
- | EventLspClientDiagnostics
- | EventLspUpdated
- | EventMessagePartDelta
- | EventPermissionAsked
- | EventPermissionReplied
- | EventSessionDiff
- | EventSessionError
- | EventFileEdited
- | EventFileWatcherUpdated
- | EventVcsBranchUpdated
- | EventTuiPromptAppend
- | EventTuiCommandExecute
- | EventTuiToastShow
- | EventTuiSessionSelect
- | EventMcpToolsChanged
- | EventMcpBrowserOpenFailed
- | EventCommandExecuted
- | EventWorkspaceReady
- | EventWorkspaceFailed
- | EventQuestionAsked
- | EventQuestionReplied
- | EventQuestionRejected
- | EventSessionStatus
- | EventSessionIdle
- | EventSessionCompacted
- | EventTodoUpdated
- | EventPtyCreated
- | EventPtyUpdated
- | EventPtyExited
- | EventPtyDeleted
- | EventWorktreeReady
- | EventWorktreeFailed
- | EventMessageUpdated
- | EventMessageRemoved
- | EventMessagePartUpdated
- | EventMessagePartRemoved
- | EventSessionCreated
- | EventSessionUpdated
- | EventSessionDeleted
-
-export type GlobalEvent = {
- directory: string
- payload: Event
-}
-
export type SyncEventMessageUpdated = {
- type: "message.updated.1"
- aggregate: "sessionID"
+ type: "sync"
+ name: "message.updated.1"
+ id: string
+ seq: number
+ aggregateID: "sessionID"
data: {
sessionID: string
info: Message
@@ -1024,8 +1000,11 @@ export type SyncEventMessageUpdated = {
}
export type SyncEventMessageRemoved = {
- type: "message.removed.1"
- aggregate: "sessionID"
+ type: "sync"
+ name: "message.removed.1"
+ id: string
+ seq: number
+ aggregateID: "sessionID"
data: {
sessionID: string
messageID: string
@@ -1033,8 +1012,11 @@ export type SyncEventMessageRemoved = {
}
export type SyncEventMessagePartUpdated = {
- type: "message.part.updated.1"
- aggregate: "sessionID"
+ type: "sync"
+ name: "message.part.updated.1"
+ id: string
+ seq: number
+ aggregateID: "sessionID"
data: {
sessionID: string
part: Part
@@ -1043,8 +1025,11 @@ export type SyncEventMessagePartUpdated = {
}
export type SyncEventMessagePartRemoved = {
- type: "message.part.removed.1"
- aggregate: "sessionID"
+ type: "sync"
+ name: "message.part.removed.1"
+ id: string
+ seq: number
+ aggregateID: "sessionID"
data: {
sessionID: string
messageID: string
@@ -1053,8 +1038,11 @@ export type SyncEventMessagePartRemoved = {
}
export type SyncEventSessionCreated = {
- type: "session.created.1"
- aggregate: "sessionID"
+ type: "sync"
+ name: "session.created.1"
+ id: string
+ seq: number
+ aggregateID: "sessionID"
data: {
sessionID: string
info: Session
@@ -1062,8 +1050,11 @@ export type SyncEventSessionCreated = {
}
export type SyncEventSessionUpdated = {
- type: "session.updated.1"
- aggregate: "sessionID"
+ type: "sync"
+ name: "session.updated.1"
+ id: string
+ seq: number
+ aggregateID: "sessionID"
data: {
sessionID: string
info: {
@@ -1102,16 +1093,76 @@ export type SyncEventSessionUpdated = {
}
export type SyncEventSessionDeleted = {
- type: "session.deleted.1"
- aggregate: "sessionID"
+ type: "sync"
+ name: "session.deleted.1"
+ id: string
+ seq: number
+ aggregateID: "sessionID"
data: {
sessionID: string
info: Session
}
}
-export type SyncEvent = {
- payload: SyncEvent
+export type GlobalEvent = {
+ directory: string
+ project?: string
+ workspace?: string
+ payload:
+ | EventProjectUpdated
+ | EventServerInstanceDisposed
+ | EventServerConnected
+ | EventGlobalDisposed
+ | EventFileEdited
+ | EventFileWatcherUpdated
+ | EventLspClientDiagnostics
+ | EventLspUpdated
+ | EventInstallationUpdated
+ | EventInstallationUpdateAvailable
+ | EventMessagePartDelta
+ | EventPermissionAsked
+ | EventPermissionReplied
+ | EventSessionDiff
+ | EventSessionError
+ | EventQuestionAsked
+ | EventQuestionReplied
+ | EventQuestionRejected
+ | EventTodoUpdated
+ | EventSessionStatus
+ | EventSessionIdle
+ | EventSessionCompacted
+ | EventTuiPromptAppend
+ | EventTuiCommandExecute
+ | EventTuiToastShow
+ | EventTuiSessionSelect
+ | EventMcpToolsChanged
+ | EventMcpBrowserOpenFailed
+ | EventCommandExecuted
+ | EventVcsBranchUpdated
+ | EventWorktreeReady
+ | EventWorktreeFailed
+ | EventPtyCreated
+ | EventPtyUpdated
+ | EventPtyExited
+ | EventPtyDeleted
+ | EventWorkspaceReady
+ | EventWorkspaceFailed
+ | EventWorkspaceRestore
+ | EventWorkspaceStatus
+ | EventMessageUpdated
+ | EventMessageRemoved
+ | EventMessagePartUpdated
+ | EventMessagePartRemoved
+ | EventSessionCreated
+ | EventSessionUpdated
+ | EventSessionDeleted
+ | SyncEventMessageUpdated
+ | SyncEventMessageRemoved
+ | SyncEventMessagePartUpdated
+ | SyncEventMessagePartRemoved
+ | SyncEventSessionCreated
+ | SyncEventSessionUpdated
+ | SyncEventSessionDeleted
}
/**
@@ -1760,8 +1811,8 @@ export type ToolList = Array<ToolListItem>
export type Workspace = {
id: string
type: string
+ name: string
branch: string | null
- name: string | null
directory: string | null
extra: unknown | null
projectID: string
@@ -1970,6 +2021,55 @@ export type File = {
status: "added" | "deleted" | "modified"
}
+export type Event =
+ | EventProjectUpdated
+ | EventServerInstanceDisposed
+ | EventServerConnected
+ | EventGlobalDisposed
+ | EventFileEdited
+ | EventFileWatcherUpdated
+ | EventLspClientDiagnostics
+ | EventLspUpdated
+ | EventInstallationUpdated
+ | EventInstallationUpdateAvailable
+ | EventMessagePartDelta
+ | EventPermissionAsked
+ | EventPermissionReplied
+ | EventSessionDiff
+ | EventSessionError
+ | EventQuestionAsked
+ | EventQuestionReplied
+ | EventQuestionRejected
+ | EventTodoUpdated
+ | EventSessionStatus
+ | EventSessionIdle
+ | EventSessionCompacted
+ | EventTuiPromptAppend
+ | EventTuiCommandExecute
+ | EventTuiToastShow
+ | EventTuiSessionSelect
+ | EventMcpToolsChanged
+ | EventMcpBrowserOpenFailed
+ | EventCommandExecuted
+ | EventVcsBranchUpdated
+ | EventWorktreeReady
+ | EventWorktreeFailed
+ | EventPtyCreated
+ | EventPtyUpdated
+ | EventPtyExited
+ | EventPtyDeleted
+ | EventWorkspaceReady
+ | EventWorkspaceFailed
+ | EventWorkspaceRestore
+ | EventWorkspaceStatus
+ | EventMessageUpdated
+ | EventMessageRemoved
+ | EventMessagePartUpdated
+ | EventMessagePartRemoved
+ | EventSessionCreated
+ | EventSessionUpdated
+ | EventSessionDeleted
+
export type McpStatusConnected = {
status: "connected"
}
@@ -2101,23 +2201,6 @@ export type GlobalEventResponses = {
export type GlobalEventResponse = GlobalEventResponses[keyof GlobalEventResponses]
-export type GlobalSyncEventSubscribeData = {
- body?: never
- path?: never
- query?: never
- url: "/global/sync-event"
-}
-
-export type GlobalSyncEventSubscribeResponses = {
- /**
- * Event stream
- */
- 200: SyncEvent
-}
-
-export type GlobalSyncEventSubscribeResponse =
- GlobalSyncEventSubscribeResponses[keyof GlobalSyncEventSubscribeResponses]
-
export type GlobalConfigGetData = {
body?: never
path?: never
@@ -2800,6 +2883,30 @@ export type ToolListResponses = {
export type ToolListResponse = ToolListResponses[keyof ToolListResponses]
+export type ExperimentalWorkspaceAdaptorListData = {
+ body?: never
+ path?: never
+ query?: {
+ directory?: string
+ workspace?: string
+ }
+ url: "/experimental/workspace/adaptor"
+}
+
+export type ExperimentalWorkspaceAdaptorListResponses = {
+ /**
+ * Workspace adaptors
+ */
+ 200: Array<{
+ type: string
+ name: string
+ description: string
+ }>
+}
+
+export type ExperimentalWorkspaceAdaptorListResponse =
+ ExperimentalWorkspaceAdaptorListResponses[keyof ExperimentalWorkspaceAdaptorListResponses]
+
export type ExperimentalWorkspaceListData = {
body?: never
path?: never
@@ -2855,6 +2962,30 @@ export type ExperimentalWorkspaceCreateResponses = {
export type ExperimentalWorkspaceCreateResponse =
ExperimentalWorkspaceCreateResponses[keyof ExperimentalWorkspaceCreateResponses]
+export type ExperimentalWorkspaceStatusData = {
+ body?: never
+ path?: never
+ query?: {
+ directory?: string
+ workspace?: string
+ }
+ url: "/experimental/workspace/status"
+}
+
+export type ExperimentalWorkspaceStatusResponses = {
+ /**
+ * Workspace status
+ */
+ 200: Array<{
+ workspaceID: string
+ status: "connected" | "connecting" | "disconnected" | "error"
+ error?: string
+ }>
+}
+
+export type ExperimentalWorkspaceStatusResponse =
+ ExperimentalWorkspaceStatusResponses[keyof ExperimentalWorkspaceStatusResponses]
+
export type ExperimentalWorkspaceRemoveData = {
body?: never
path: {
@@ -2887,6 +3018,42 @@ export type ExperimentalWorkspaceRemoveResponses = {
export type ExperimentalWorkspaceRemoveResponse =
ExperimentalWorkspaceRemoveResponses[keyof ExperimentalWorkspaceRemoveResponses]
+export type ExperimentalWorkspaceSessionRestoreData = {
+ body?: {
+ sessionID: string
+ }
+ path: {
+ id: string
+ }
+ query?: {
+ directory?: string
+ workspace?: string
+ }
+ url: "/experimental/workspace/{id}/session-restore"
+}
+
+export type ExperimentalWorkspaceSessionRestoreErrors = {
+ /**
+ * Bad request
+ */
+ 400: BadRequestError
+}
+
+export type ExperimentalWorkspaceSessionRestoreError =
+ ExperimentalWorkspaceSessionRestoreErrors[keyof ExperimentalWorkspaceSessionRestoreErrors]
+
+export type ExperimentalWorkspaceSessionRestoreResponses = {
+ /**
+ * Session replay started
+ */
+ 200: {
+ total: number
+ }
+}
+
+export type ExperimentalWorkspaceSessionRestoreResponse =
+ ExperimentalWorkspaceSessionRestoreResponses[keyof ExperimentalWorkspaceSessionRestoreResponses]
+
export type WorktreeRemoveData = {
body?: WorktreeRemoveInput
path?: never
@@ -3230,6 +3397,7 @@ export type SessionGetResponse = SessionGetResponses[keyof SessionGetResponses]
export type SessionUpdateData = {
body?: {
title?: string
+ permission?: PermissionRuleset
time?: {
archived?: number
}
@@ -4336,6 +4504,85 @@ export type ProviderOauthCallbackResponses = {
export type ProviderOauthCallbackResponse = ProviderOauthCallbackResponses[keyof ProviderOauthCallbackResponses]
+export type SyncReplayData = {
+ body?: {
+ directory: string
+ events: Array<{
+ id: string
+ aggregateID: string
+ seq: number
+ type: string
+ data: {
+ [key: string]: unknown
+ }
+ }>
+ }
+ path?: never
+ query?: {
+ directory?: string
+ workspace?: string
+ }
+ url: "/sync/replay"
+}
+
+export type SyncReplayErrors = {
+ /**
+ * Bad request
+ */
+ 400: BadRequestError
+}
+
+export type SyncReplayError = SyncReplayErrors[keyof SyncReplayErrors]
+
+export type SyncReplayResponses = {
+ /**
+ * Replayed sync events
+ */
+ 200: {
+ sessionID: string
+ }
+}
+
+export type SyncReplayResponse = SyncReplayResponses[keyof SyncReplayResponses]
+
+export type SyncHistoryListData = {
+ body?: {
+ [key: string]: number
+ }
+ path?: never
+ query?: {
+ directory?: string
+ workspace?: string
+ }
+ url: "/sync/history"
+}
+
+export type SyncHistoryListErrors = {
+ /**
+ * Bad request
+ */
+ 400: BadRequestError
+}
+
+export type SyncHistoryListError = SyncHistoryListErrors[keyof SyncHistoryListErrors]
+
+export type SyncHistoryListResponses = {
+ /**
+ * Sync events
+ */
+ 200: Array<{
+ id: string
+ aggregate_id: string
+ seq: number
+ type: string
+ data: {
+ [key: string]: unknown
+ }
+ }>
+}
+
+export type SyncHistoryListResponse = SyncHistoryListResponses[keyof SyncHistoryListResponses]
+
export type FindTextData = {
body?: never
path?: never