diff --git a/packages/client/src/service/index.ts b/packages/client/src/service/index.ts deleted file mode 100644 index 2222dd3905..0000000000 --- a/packages/client/src/service/index.ts +++ /dev/null @@ -1,172 +0,0 @@ -import { spawn } from "node:child_process" -import { readFile, rm } from "node:fs/promises" -import { homedir } from "node:os" -import { join } from "node:path" - -// Everything a client needs to connect to an opencode server and to find or -// start the local background service. -// -// The service daemon advertises itself through a registration file in the -// user's state directory: url, pid, version, and the private password, with -// 0600 permissions. That file is the complete discovery contract — reading it -// is all a client needs to connect. The daemon's own configuration (port, -// persisted password) is CLI-owned and never read here. - -export type Transport = { - readonly url: string - readonly headers?: RequestInit["headers"] -} - -export type Discover = () => Promise - -export function basicAuth(password: string): RequestInit["headers"] { - return { authorization: "Basic " + btoa("opencode:" + password) } -} - -export type Registration = { - readonly id?: string - readonly version?: string - readonly url: string - readonly pid: number - readonly password?: string -} - -export type LocalService = { - readonly registration: Registration - readonly transport: Transport -} - -export type ServiceOptions = { - // Absolute path to the service registration file. Defaults to - // opencode/service.json in the XDG state directory. - readonly file?: string - // When set, discovery only returns a server reporting this exact version, - // and start() replaces a healthy server whose version differs. - readonly version?: string - // Argv used to spawn the service. Defaults to ["opencode", "serve", - // "--service"] resolved from PATH. - readonly command?: ReadonlyArray - readonly timeout?: number -} - -export function defaultRegistrationFile(): string { - const state = process.env["XDG_STATE_HOME"] ?? join(homedir(), ".local", "state") - return join(state, "opencode", "service.json") -} - -export async function readRegistration(file?: string): Promise { - const text = await readFile(file ?? defaultRegistrationFile(), "utf8").catch(() => undefined) - if (text === undefined) return undefined - const value: unknown = JSON.parse(text) - if (typeof value !== "object" || value === null) return undefined - const record = value as Record - if (typeof record.url !== "string") return undefined - if (typeof record.pid !== "number" || !Number.isInteger(record.pid) || record.pid <= 0) return undefined - return { - id: typeof record.id === "string" ? record.id : undefined, - version: typeof record.version === "string" ? record.version : undefined, - url: record.url, - pid: record.pid, - password: typeof record.password === "string" ? record.password : undefined, - } -} - -// Read-only lookup: registration file plus health check and version gate. -// Never spawns; escalation to start() is the caller's policy. -export async function discover(options: ServiceOptions = {}): Promise { - const registration = await readRegistration(options.file).catch(() => undefined) - if (registration === undefined) return undefined - if (options.version !== undefined && registration.version !== options.version) return undefined - return await probe(registration, options) -} - -async function probe(registration: Registration, options: ServiceOptions): Promise { - const headers = registration.password === undefined ? undefined : basicAuth(registration.password) - const healthy = await fetch(new URL("/api/health", registration.url), { - headers, - signal: AbortSignal.timeout(options.timeout ?? 2_000), - }) - .then((response) => response.ok) - .catch(() => false) - if (!healthy) return undefined - return { registration, transport: { url: registration.url, headers } } -} - -// Health-checked lookup without the version gate: lifecycle operations must be -// able to see (and replace or stop) a server from a different version. -async function anyService(options: ServiceOptions): Promise { - const registration = await readRegistration(options.file).catch(() => undefined) - if (registration === undefined) return undefined - return await probe(registration, options) -} - -function signal(pid: number, name: "SIGTERM" | "SIGKILL" | 0): boolean { - try { - process.kill(pid, name) - return true - } catch { - return false - } -} - -async function awaitStopped(pid: number, timeout: number): Promise { - const deadline = Date.now() + timeout - while (Date.now() < deadline) { - if (!signal(pid, 0)) return true - await new Promise((resolve) => setTimeout(resolve, 50)) - } - return !signal(pid, 0) -} - -function sameRegistration(left: Registration, right: Registration) { - return left.id === right.id && left.version === right.version && left.url === right.url && left.pid === right.pid -} - -async function stopProcess(info: Registration, options: ServiceOptions): Promise { - // A stale registration may point at a PID that has since been reused by - // another process. Only signal the PID after authenticating the server. - const current = await anyService(options) - if (current === undefined || !sameRegistration(current.registration, info)) return - - signal(info.pid, "SIGTERM") - if (await awaitStopped(info.pid, 5_000)) return - - const latest = await anyService(options) - if (latest === undefined || !sameRegistration(latest.registration, info)) return - signal(info.pid, "SIGKILL") - await awaitStopped(info.pid, 5_000) -} - -export async function stop(options: ServiceOptions = {}): Promise { - const existing = await anyService(options) - if (existing !== undefined) await stopProcess(existing.registration, options) - await rm(options.file ?? defaultRegistrationFile(), { force: true }).catch(() => undefined) -} - -// Idempotent ensure-running: reuses a healthy compatible server, replaces a -// version-mismatched one, and otherwise spawns the service command detached. -export async function start(options: ServiceOptions = {}): Promise { - const compatible = await discover(options) - if (compatible !== undefined) return compatible.transport - const mismatched = await anyService(options) - if (mismatched !== undefined) await stopProcess(mismatched.registration, options).catch(() => undefined) - - const [command, ...args] = options.command ?? ["opencode", "serve", "--service"] - if (command === undefined) throw new Error("Missing service command") - spawn(command, args, { detached: true, stdio: "ignore" }).unref() - - const deadline = Date.now() + 5_000 - while (Date.now() < deadline) { - const found = await discover(options) - if (found !== undefined) return found.transport - await new Promise((resolve) => setTimeout(resolve, 50)) - } - throw new Error("Failed to start server") -} - -// Default connection policy for the local service: discover, else start. -export async function connect(options: ServiceOptions = {}): Promise { - const found = await discover(options) - if (found !== undefined) return found.transport - return await start(options) -} diff --git a/packages/schema/src/event-manifest.ts b/packages/schema/src/event-manifest.ts index 0179547ca0..182cda47ba 100644 --- a/packages/schema/src/event-manifest.ts +++ b/packages/schema/src/event-manifest.ts @@ -66,6 +66,18 @@ export const ServerDefinitions = Event.inventory( ...foundationDefinitions, ...featureDefinitions, ...SessionTodo.Event.Definitions, + // Current events the TUI consumes from the public stream. + ...SessionStatusEvent.Definitions, + ...TuiEvent.Definitions, + ...InstallationEvent.Definitions, + ...VcsEvent.Definitions, + McpEvent.StatusChanged, + // Shared transitional: V1 contracts the current TUI still consumes during + // the migration (permission.asked/replied, question.asked, session.error). + // Remove when the TUI moves to the current permission/question surfaces. + ...PermissionV1.Event.Definitions, + ...QuestionV1.Event.Definitions, + SessionV1.Error, ) export const Definitions = Event.inventory( diff --git a/packages/sdk/js/src/v2/gen/types.gen.ts b/packages/sdk/js/src/v2/gen/types.gen.ts index c185cbf6df..021733d529 100644 --- a/packages/sdk/js/src/v2/gen/types.gen.ts +++ b/packages/sdk/js/src/v2/gen/types.gen.ts @@ -74,9 +74,9 @@ export type Event = | EventShellCreated | EventShellExited | EventShellDeleted - | EventQuestionV2Asked - | EventQuestionV2Replied - | EventQuestionV2Rejected + | EventFormCreated + | EventFormReplied + | EventFormCancelled | EventTodoUpdated | EventLspUpdated | EventPermissionAsked @@ -1447,32 +1447,26 @@ export type GlobalEvent = { } | { id: string - type: "question.v2.asked" + type: "form.created" + properties: { + form: FormFormInfo | FormUrlInfo + } + } + | { + id: string + type: "form.replied" properties: { id: string sessionID: string - /** - * Questions to ask - */ - questions: Array - tool?: QuestionV2Tool + answer: FormAnswer } } | { id: string - type: "question.v2.replied" + type: "form.cancelled" properties: { + id: string sessionID: string - requestID: string - answers: Array - } - } - | { - id: string - type: "question.v2.rejected" - properties: { - sessionID: string - requestID: string } } | { @@ -2801,356 +2795,11 @@ export type WorkspaceWarpError = { } } -export type UnauthorizedError = { - _tag: "UnauthorizedError" - message: string -} - -export type SessionWatermarks = { - [key: string]: unknown | number -} - -export type SessionsResponse = { - data: Array - watermarks: SessionWatermarks - cursor: { - previous?: string - next?: string - } -} - -export type InvalidCursorError = { - _tag: "InvalidCursorError" - message: string -} - -export type SessionActive = { - type: "running" -} - -export type SessionNotFoundError = { - _tag: "SessionNotFoundError" - sessionID: string - message: string -} - -export type MessageNotFoundError = { - _tag: "MessageNotFoundError" - sessionID: string - messageID: string - message: string -} - -export type PromptInput = { - text: string - files?: Array - agents?: Array -} - -export type ConflictError = { - _tag: "ConflictError" - message: string - resource?: string -} - -export type CommandNotFoundError = { - _tag: "CommandNotFoundError" - command: string - message: string -} - -export type CommandEvaluationError = { - _tag: "CommandEvaluationError" - command: string - message: string -} - -export type SkillNotFoundError = { - _tag: "SkillNotFoundError" - skill: string - message: string -} - -export type ServiceUnavailableError = { - _tag: "ServiceUnavailableError" - message: string - service?: string -} - -export type UnknownError1 = { - _tag: "UnknownError" - message: string - ref?: string -} - -export type SessionDurableEvent = - | SessionNextAgentSwitched - | SessionNextModelSwitched - | SessionNextMoved - | SessionNextRenamed - | SessionNextForked - | SessionNextPrompted - | SessionNextPromptAdmitted - | SessionNextContextUpdated - | SessionNextSynthetic - | SessionNextSkillActivated - | SessionNextShellStarted - | SessionNextShellEnded - | SessionNextStepStarted - | SessionNextStepEnded - | SessionNextStepFailed - | SessionNextTextStarted - | SessionNextTextEnded - | SessionNextToolInputStarted - | SessionNextToolInputEnded - | SessionNextToolCalled - | SessionNextToolProgress - | SessionNextToolSuccess - | SessionNextToolFailed - | SessionNextReasoningStarted - | SessionNextReasoningEnded - | SessionNextRetried - | SessionNextCompactionStarted - | SessionNextCompactionEnded - | SessionNextRevertStaged - | SessionNextRevertCleared - | SessionNextRevertCommitted - -export type SessionLogItem = SessionDurableEvent | EventLogSynced - -export type SessionLogItemStream = string - -export type SessionMessagesResponse = { - data: Array - watermark?: number - cursor: { - previous?: string - next?: string - } -} - -export type GenerateTextResponse = { - data: { - text: string - } -} - -export type ProviderNotFoundError = { - _tag: "ProviderNotFoundError" - providerID: string - message: string -} - -export type OutputFormat1 = - | { - type: "text" - } - | { - type: "json_schema" - schema: JsonSchema - retryCount?: number - } - -export type Shell1 = { - id: string - status: "running" | "exited" | "timeout" | "killed" - command: string - cwd: string - shell: string - file: string - pid?: number - exit?: number | "NaN" | "Infinity" | "-Infinity" - metadata: { - [key: string]: unknown - } - time: { - started: number | "NaN" | "Infinity" | "-Infinity" - completed?: number | "NaN" | "Infinity" | "-Infinity" - } -} - -export type SessionStatus2 = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.status" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - sessionID: string - status: SessionStatus - } -} - -export type QuestionReplied2 = { - id: string - metadata?: { - [key: string]: unknown - } - type: "question.replied" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - sessionID: string - requestID: string - answers: Array - } -} - -export type QuestionRejected2 = { - id: string - metadata?: { - [key: string]: unknown - } - type: "question.rejected" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - sessionID: string - requestID: string - } -} - -export type V2Event = - | ModelsDevRefreshed - | IntegrationUpdated - | IntegrationConnectionUpdated - | CatalogUpdated - | AgentUpdated - | SessionCreated - | SessionUpdated - | SessionDeleted - | MessageUpdated - | MessageRemoved - | MessagePartUpdated - | MessagePartRemoved - | SessionNextAgentSwitched - | SessionNextModelSwitched - | SessionNextMoved - | SessionNextRenamed - | SessionNextForked - | SessionNextPrompted - | SessionNextPromptAdmitted - | SessionNextExecutionSettled - | SessionNextContextUpdated - | SessionNextSynthetic - | SessionNextSkillActivated - | SessionNextShellStarted - | SessionNextShellEnded - | SessionNextStepStarted - | SessionNextStepEnded - | SessionNextStepFailed - | SessionNextTextStarted - | SessionNextTextDelta - | SessionNextTextEnded - | SessionNextReasoningStarted - | SessionNextReasoningDelta - | SessionNextReasoningEnded - | SessionNextToolInputStarted - | SessionNextToolInputDelta - | SessionNextToolInputEnded - | SessionNextToolCalled - | SessionNextToolProgress - | SessionNextToolSuccess - | SessionNextToolFailed - | SessionNextRetried - | SessionNextCompactionStarted - | SessionNextCompactionDelta - | SessionNextCompactionEnded - | SessionNextRevertStaged - | SessionNextRevertCleared - | SessionNextRevertCommitted - | MessagePartDelta - | SessionDiff - | SessionError - | InstallationUpdated - | InstallationUpdateAvailable - | FileEdited - | ReferenceUpdated - | PermissionV2Asked - | PermissionV2Replied - | PluginAdded - | ProjectDirectoriesUpdated - | CommandUpdated - | SkillUpdated - | FileWatcherUpdated - | PtyCreated - | PtyUpdated - | PtyExited - | PtyDeleted - | ShellCreated - | ShellExited - | ShellDeleted - | QuestionV2Asked - | QuestionV2Replied - | QuestionV2Rejected - | TodoUpdated - | LspUpdated - | PermissionAsked - | PermissionReplied - | TuiPromptAppend - | TuiCommandExecute - | TuiToastShow - | TuiSessionSelect - | McpToolsChanged - | McpBrowserOpenFailed - | McpStatusChanged - | CommandExecuted - | ProjectUpdated - | SessionStatus2 - | SessionIdle - | QuestionAsked - | QuestionReplied2 - | QuestionRejected2 - | SessionCompacted - | VcsBranchUpdated - | WorkspaceReady - | WorkspaceFailed - | WorkspaceStatus - | WorktreeReady - | WorktreeFailed - | ServerConnected - | GlobalDisposed - -export type V2EventStream = string - -export type ForbiddenError = { - _tag: "ForbiddenError" - message: string -} - -export type ShellNotFoundError = { - _tag: "ShellNotFoundError" - id: string - message: string -} - -export type ProjectCopyError = { - name: "ProjectCopyError" - data: { - message: string - forceRequired?: boolean - } -} - export type EffectHttpApiErrorForbidden = { _tag: "Forbidden" } -export type Shell2 = { +export type Shell1 = { id: string status: "running" | "exited" | "timeout" | "killed" command: string @@ -3335,40 +2984,120 @@ export type PermissionV2Source = { export type PermissionV2Reply = "once" | "always" | "reject" -export type QuestionV2Option = { - /** - * Display text (1-5 words, concise) - */ - label: string - /** - * Explanation of choice - */ - description: string +export type FormMetadata = { + [key: string]: unknown } -export type QuestionV2Info = { - /** - * Complete question - */ - question: string - /** - * Very short label (max 30 chars) - */ - header: string - /** - * Available choices - */ - options: Array - multiple?: boolean +export type FormWhen = { + key: string + op: "eq" | "neq" + value: string +} + +export type FormOption = { + value: string + label: string + description?: string +} + +export type FormStringField = { + key: string + title?: string + description?: string + required?: boolean + when?: FormWhen + type: "string" + format?: "email" | "uri" | "date" | "date-time" + minLength?: number + maxLength?: number + pattern?: string + placeholder?: string + default?: string + options?: Array custom?: boolean } -export type QuestionV2Tool = { - messageID: string - callID: string +export type FormNumberField = { + key: string + title?: string + description?: string + required?: boolean + when?: FormWhen + type: "number" + minimum?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN" + maximum?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN" + default?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN" } -export type QuestionV2Answer = Array +export type FormIntegerField = { + key: string + title?: string + description?: string + required?: boolean + when?: FormWhen + type: "integer" + minimum?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN" + maximum?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN" + default?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN" +} + +export type FormBooleanField = { + key: string + title?: string + description?: string + required?: boolean + when?: FormWhen + type: "boolean" + default?: boolean +} + +export type FormMultiselectField = { + key: string + title?: string + description?: string + required?: boolean + when?: FormWhen + type: "multiselect" + options: Array + minItems?: number + maxItems?: number + custom?: boolean + default?: Array +} + +export type FormFormInfo = { + id: string + sessionID: string + title?: string + metadata?: FormMetadata + mode: "form" + fields: Array +} + +export type FormUrlInfo = { + id: string + sessionID: string + title?: string + metadata?: FormMetadata + mode: "url" + url: string +} + +export type FormValue = + | string + | number + | "NaN" + | "Infinity" + | "-Infinity" + | "Infinity" + | "-Infinity" + | "NaN" + | boolean + | Array + +export type FormAnswer = { + [key: string]: FormValue +} export type ProjectVcs = "git" @@ -4124,2601 +3853,6 @@ export type WorkspaceEventConnectionStatus = { status: "connected" | "connecting" | "disconnected" | "error" } -export type LocationInfo = { - directory: string - workspaceID?: string - project: { - id: string - directory: string - } -} - -export type ProviderSettings = { - [key: string]: unknown -} - -export type ProviderRequest = { - settings: ProviderSettings - headers: { - [key: string]: string - } - body: { - [key: string]: unknown - } -} - -export type AgentColor = string | "primary" | "secondary" | "accent" | "success" | "warning" | "error" | "info" - -export type PermissionV2Effect = "allow" | "deny" | "ask" - -export type PermissionV2Rule = { - action: string - resource: string - effect: PermissionV2Effect -} - -export type PermissionV2Ruleset = Array - -export type AgentV2Info = { - id: string - model?: ModelRef - request: ProviderRequest - system?: string - description?: string - mode: "subagent" | "primary" | "all" - hidden: boolean - color?: AgentColor - steps?: number - permissions: PermissionV2Ruleset -} - -export type PluginInfo = { - id: string -} - -export type SessionV2Info = { - id: string - parentID?: string - projectID: string - agent?: string - model?: ModelRef - cost: number - tokens: { - input: number - output: number - reasoning: number - cache: { - read: number - write: number - } - } - time: { - created: number - updated: number - archived?: number - } - title: string - location: LocationRef - subpath?: string - revert?: RevertState -} - -export type PromptInputFileAttachment = { - uri: string - name?: string - description?: string - source?: PromptSource -} - -export type SessionInputAdmitted = { - admittedSeq: number - id: string - sessionID: string - prompt: Prompt - delivery: "steer" | "queue" - timeCreated: number - promotedSeq?: number -} - -export type SessionMessageAgentSwitched = { - id: string - metadata?: { - [key: string]: unknown - } - time: { - created: number - } - type: "agent-switched" - agent: string -} - -export type SessionMessageModelSwitched = { - id: string - metadata?: { - [key: string]: unknown - } - time: { - created: number - } - type: "model-switched" - model: ModelRef -} - -export type SessionMessageUser = { - id: string - metadata?: { - [key: string]: unknown - } - time: { - created: number - } - text: string - files?: Array - agents?: Array - type: "user" -} - -export type SessionMessageSynthetic = { - id: string - metadata?: { - [key: string]: unknown - } - time: { - created: number - } - sessionID: string - text: string - description?: string - type: "synthetic" -} - -export type SessionMessageSystem = { - id: string - metadata?: { - [key: string]: unknown - } - time: { - created: number - } - type: "system" - text: string -} - -export type SessionMessageSkill = { - id: string - metadata?: { - [key: string]: unknown - } - time: { - created: number - } - type: "skill" - name: string - text: string -} - -export type SessionMessageShell = { - id: string - metadata?: { - [key: string]: unknown - } - time: { - created: number - completed?: number - } - type: "shell" - callID: string - command: string - output: string -} - -export type SessionMessageAssistantText = { - type: "text" - id: string - text: string -} - -export type SessionMessageAssistantReasoning = { - type: "reasoning" - id: string - text: string - providerMetadata?: LlmProviderMetadata - time?: { - created: number - completed?: number - } -} - -export type SessionMessageToolStatePending = { - status: "pending" - input: string -} - -export type SessionMessageToolStateRunning = { - status: "running" - input: { - [key: string]: unknown - } - structured: { - [key: string]: unknown - } - content: Array -} - -export type SessionMessageToolStateCompleted = { - status: "completed" - input: { - [key: string]: unknown - } - attachments?: Array - content: Array - outputPaths?: Array - structured: { - [key: string]: unknown - } - result?: unknown -} - -export type SessionMessageToolStateError = { - status: "error" - input: { - [key: string]: unknown - } - content: Array - structured: { - [key: string]: unknown - } - error: SessionErrorUnknown - result?: unknown -} - -export type SessionMessageAssistantTool = { - type: "tool" - id: string - name: string - provider?: { - executed: boolean - metadata?: LlmProviderMetadata - resultMetadata?: LlmProviderMetadata - } - state: - | SessionMessageToolStatePending - | SessionMessageToolStateRunning - | SessionMessageToolStateCompleted - | SessionMessageToolStateError - time: { - created: number - ran?: number - completed?: number - pruned?: number - } -} - -export type SessionMessageAssistant = { - id: string - metadata?: { - [key: string]: unknown - } - time: { - created: number - completed?: number - } - type: "assistant" - agent: string - model: ModelRef - content: Array - snapshot?: { - start?: string - end?: string - files?: Array - } - finish?: string - cost?: number - tokens?: { - input: number - output: number - reasoning: number - cache: { - read: number - write: number - } - } - error?: SessionErrorUnknown -} - -export type SessionMessageCompaction = { - type: "compaction" - reason: "auto" | "manual" - summary: string - recent: string - id: string - metadata?: { - [key: string]: unknown - } - time: { - created: number - } -} - -export type SessionMessage = - | SessionMessageAgentSwitched - | SessionMessageModelSwitched - | SessionMessageUser - | SessionMessageSynthetic - | SessionMessageSystem - | SessionMessageSkill - | SessionMessageShell - | SessionMessageAssistant - | SessionMessageCompaction - -export type SessionContextEntryKey = string - -export type SessionContextEntryInfo = { - key: SessionContextEntryKey - value: unknown -} - -export type SessionNextAgentSwitched = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.agent.switched" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - messageID: string - agent: string - } -} - -export type SessionNextModelSwitched = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.model.switched" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - messageID: string - model: ModelRef - } -} - -export type SessionNextMoved = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.moved" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - location: LocationRef - subdirectory?: string - } -} - -export type SessionNextRenamed = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.renamed" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - title: string - } -} - -export type SessionNextForked = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.forked" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - parentID: string - messageID?: string - } -} - -export type SessionNextPrompted = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.prompted" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - messageID: string - prompt: Prompt - delivery: "steer" | "queue" - } -} - -export type SessionNextPromptAdmitted = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.prompt.admitted" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - messageID: string - prompt: Prompt - delivery: "steer" | "queue" - } -} - -export type SessionNextContextUpdated = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.context.updated" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - messageID: string - text: string - } -} - -export type SessionNextSynthetic = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.synthetic" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - messageID: string - text: string - description?: string - metadata?: { - [key: string]: unknown - } - } -} - -export type SessionNextSkillActivated = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.skill.activated" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - messageID: string - name: string - text: string - } -} - -export type SessionNextShellStarted = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.shell.started" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - messageID: string - callID: string - command: string - } -} - -export type SessionNextShellEnded = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.shell.ended" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - callID: string - output: string - } -} - -export type SessionNextStepStarted = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.step.started" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - assistantMessageID: string - agent: string - model: ModelRef - snapshot?: string - } -} - -export type SessionNextStepEnded = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.step.ended" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - assistantMessageID: string - finish: string - cost: number - tokens: { - input: number - output: number - reasoning: number - cache: { - read: number - write: number - } - } - snapshot?: string - files?: Array - } -} - -export type SessionNextStepFailed = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.step.failed" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - assistantMessageID: string - error: SessionErrorUnknown - } -} - -export type SessionNextTextStarted = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.text.started" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - assistantMessageID: string - textID: string - } -} - -export type SessionNextTextEnded = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.text.ended" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - assistantMessageID: string - textID: string - text: string - } -} - -export type SessionNextToolInputStarted = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.tool.input.started" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - assistantMessageID: string - callID: string - name: string - } -} - -export type SessionNextToolInputEnded = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.tool.input.ended" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - assistantMessageID: string - callID: string - text: string - } -} - -export type SessionNextToolCalled = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.tool.called" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - assistantMessageID: string - callID: string - tool: string - input: { - [key: string]: unknown - } - provider: { - executed: boolean - metadata?: LlmProviderMetadata - } - } -} - -export type SessionNextToolProgress = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.tool.progress" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - assistantMessageID: string - callID: string - structured: { - [key: string]: unknown - } - content: Array - } -} - -export type SessionNextToolSuccess = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.tool.success" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - assistantMessageID: string - callID: string - structured: { - [key: string]: unknown - } - content: Array - outputPaths?: Array - result?: unknown - provider: { - executed: boolean - metadata?: LlmProviderMetadata - } - } -} - -export type SessionNextToolFailed = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.tool.failed" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - assistantMessageID: string - callID: string - error: SessionErrorUnknown - result?: unknown - provider: { - executed: boolean - metadata?: LlmProviderMetadata - } - } -} - -export type SessionNextReasoningStarted = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.reasoning.started" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - assistantMessageID: string - reasoningID: string - providerMetadata?: LlmProviderMetadata - } -} - -export type SessionNextReasoningEnded = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.reasoning.ended" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - assistantMessageID: string - reasoningID: string - text: string - providerMetadata?: LlmProviderMetadata - } -} - -export type SessionNextRetried = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.retried" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - attempt: number - error: SessionNextRetryError - } -} - -export type SessionNextCompactionStarted = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.compaction.started" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - messageID: string - reason: "auto" | "manual" - } -} - -export type SessionNextCompactionEnded = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.compaction.ended" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - messageID: string - reason: "auto" | "manual" - text: string - recent: string - } -} - -export type SessionNextRevertStaged = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.revert.staged" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - revert: RevertState - } -} - -export type SessionNextRevertCleared = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.revert.cleared" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - } -} - -export type SessionNextRevertCommitted = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.revert.committed" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - messageID: string - } -} - -export type EventLogSynced = { - type: "log.synced" - aggregateID: string - seq?: number -} - -export type ModelApi = - | { - id: string - type: "aisdk" - package: string - url?: string - settings?: { - [key: string]: unknown - } - } - | { - id: string - type: "native" - url?: string - settings: { - [key: string]: unknown - } - } - -export type ModelCapabilities = { - tools: boolean - input: Array - output: Array -} - -export type ModelCost = { - tier?: { - type: "context" - size: number - } - input: number - output: number - cache: { - read: number - write: number - } -} - -export type ModelV2Info = { - id: string - providerID: string - family?: string - name: string - api: ModelApi - capabilities: ModelCapabilities - request: { - settings: ProviderSettings - headers: { - [key: string]: string - } - body: { - [key: string]: unknown - } - variant?: string - } - variants: Array<{ - id: string - settings: ProviderSettings - headers: { - [key: string]: string - } - body: { - [key: string]: unknown - } - }> - time: { - released: number - } - cost: Array - status: "alpha" | "beta" | "deprecated" | "active" - enabled: boolean - limit: { - context: number - input?: number - output: number - } -} - -export type ProviderAisdk = { - type: "aisdk" - package: string - url?: string - settings?: { - [key: string]: unknown - } -} - -export type ProviderNative = { - type: "native" - url?: string - settings: { - [key: string]: unknown - } -} - -export type ProviderApi = ProviderAisdk | ProviderNative - -export type ProviderV2Info = { - id: string - integrationID?: string - name: string - disabled?: boolean - api: ProviderApi - request: ProviderRequest -} - -export type IntegrationWhen = { - key: string - op: "eq" | "neq" - value: string -} - -export type IntegrationTextPrompt = { - type: "text" - key: string - message: string - placeholder?: string - when?: IntegrationWhen -} - -export type IntegrationSelectPrompt = { - type: "select" - key: string - message: string - options: Array<{ - label: string - value: string - hint?: string - }> - when?: IntegrationWhen -} - -export type IntegrationOAuthMethod = { - id: string - type: "oauth" - label: string - prompts?: Array -} - -export type IntegrationKeyMethod = { - type: "key" - label?: string -} - -export type IntegrationEnvMethod = { - type: "env" - names: Array -} - -export type ConnectionCredentialInfo = { - type: "credential" - id: string - label: string -} - -export type ConnectionEnvInfo = { - type: "env" - name: string -} - -export type ConnectionInfo = ConnectionCredentialInfo | ConnectionEnvInfo - -export type IntegrationInfo = { - id: string - name: string - methods: Array - connections: Array -} - -export type IntegrationAttempt = { - attemptID: string - url: string - instructions: string - mode: "auto" | "code" - time: { - created: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN" - expires: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN" - } -} - -export type IntegrationAttemptStatus = - | { - status: "pending" - time: { - created: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN" - expires: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN" - } - } - | { - status: "complete" - time: { - created: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN" - expires: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN" - } - } - | { - status: "failed" - message: string - time: { - created: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN" - expires: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN" - } - } - | { - status: "expired" - time: { - created: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN" - expires: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN" - } - } - -export type McpStatusConnected2 = { - status: "connected" -} - -export type McpStatusDisconnected = { - status: "disconnected" -} - -export type McpStatusDisabled2 = { - status: "disabled" -} - -export type McpStatusFailed2 = { - status: "failed" - error: string -} - -export type McpStatusNeedsAuth2 = { - status: "needs_auth" -} - -export type McpStatusNeedsClientRegistration2 = { - status: "needs_client_registration" - error: string -} - -export type McpServer = { - name: string - status: - | McpStatusConnected2 - | McpStatusDisconnected - | McpStatusDisabled2 - | McpStatusFailed2 - | McpStatusNeedsAuth2 - | McpStatusNeedsClientRegistration2 - integrationID?: string -} - -export type ProjectCurrent = { - id: string - directory: string -} - -export type PermissionV2Request = { - id: string - sessionID: string - action: string - resources: Array - save?: Array - metadata?: { - [key: string]: unknown - } - source?: PermissionV2Source -} - -export type PermissionSavedInfo = { - id: string - projectID: string - action: string - resource: string -} - -export type FileSystemEntry = { - path: string - type: "file" | "directory" -} - -export type CommandV2Info = { - name: string - template: string - description?: string - agent?: string - model?: ModelRef - subtask?: boolean -} - -export type SkillV2Info = { - name: string - description?: string - slash?: boolean - autoinvoke?: boolean - location: string - content: string -} - -export type ModelsDevRefreshed = { - id: string - metadata?: { - [key: string]: unknown - } - type: "models-dev.refreshed" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - [key: string]: unknown - } -} - -export type IntegrationUpdated = { - id: string - metadata?: { - [key: string]: unknown - } - type: "integration.updated" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - [key: string]: unknown - } -} - -export type IntegrationConnectionUpdated = { - id: string - metadata?: { - [key: string]: unknown - } - type: "integration.connection.updated" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - integrationID: string - } -} - -export type CatalogUpdated = { - id: string - metadata?: { - [key: string]: unknown - } - type: "catalog.updated" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - [key: string]: unknown - } -} - -export type AgentUpdated = { - id: string - metadata?: { - [key: string]: unknown - } - type: "agent.updated" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - [key: string]: unknown - } -} - -export type SessionCreated = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.created" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - sessionID: string - info: Session - } -} - -export type SessionUpdated = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.updated" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - sessionID: string - info: Session - } -} - -export type SessionDeleted = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.deleted" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - sessionID: string - info: Session - } -} - -export type MessageUpdated = { - id: string - metadata?: { - [key: string]: unknown - } - type: "message.updated" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - sessionID: string - info: Message - } -} - -export type MessageRemoved = { - id: string - metadata?: { - [key: string]: unknown - } - type: "message.removed" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - sessionID: string - messageID: string - } -} - -export type MessagePartUpdated = { - id: string - metadata?: { - [key: string]: unknown - } - type: "message.part.updated" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - sessionID: string - part: Part - time: number - } -} - -export type MessagePartRemoved = { - id: string - metadata?: { - [key: string]: unknown - } - type: "message.part.removed" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - sessionID: string - messageID: string - partID: string - } -} - -export type SessionNextExecutionSettled = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.execution.settled" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - outcome: "success" | "failure" | "interrupted" - error?: SessionErrorUnknown - } -} - -export type SessionNextTextDelta = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.text.delta" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - assistantMessageID: string - textID: string - delta: string - } -} - -export type SessionNextReasoningDelta = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.reasoning.delta" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - assistantMessageID: string - reasoningID: string - delta: string - } -} - -export type SessionNextToolInputDelta = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.tool.input.delta" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - assistantMessageID: string - callID: string - delta: string - } -} - -export type SessionNextCompactionDelta = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.next.compaction.delta" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - timestamp: number - sessionID: string - messageID: string - text: string - } -} - -export type MessagePartDelta = { - id: string - metadata?: { - [key: string]: unknown - } - type: "message.part.delta" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - sessionID: string - messageID: string - partID: string - field: string - delta: string - } -} - -export type SessionDiff = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.diff" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - sessionID: string - diff: Array - } -} - -export type SessionError = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.error" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - sessionID?: string - error?: - | ProviderAuthError - | UnknownError - | MessageOutputLengthError - | MessageAbortedError - | StructuredOutputError - | ContextOverflowError - | ContentFilterError - | ApiError - } -} - -export type InstallationUpdated = { - id: string - metadata?: { - [key: string]: unknown - } - type: "installation.updated" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - version: string - } -} - -export type InstallationUpdateAvailable = { - id: string - metadata?: { - [key: string]: unknown - } - type: "installation.update-available" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - version: string - } -} - -export type FileEdited = { - id: string - metadata?: { - [key: string]: unknown - } - type: "file.edited" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - file: string - } -} - -export type ReferenceUpdated = { - id: string - metadata?: { - [key: string]: unknown - } - type: "reference.updated" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - [key: string]: unknown - } -} - -export type PermissionV2Asked = { - id: string - metadata?: { - [key: string]: unknown - } - type: "permission.v2.asked" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - id: string - sessionID: string - action: string - resources: Array - save?: Array - metadata?: { - [key: string]: unknown - } - source?: PermissionV2Source - } -} - -export type PermissionV2Replied = { - id: string - metadata?: { - [key: string]: unknown - } - type: "permission.v2.replied" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - sessionID: string - requestID: string - reply: PermissionV2Reply - } -} - -export type PluginAdded = { - id: string - metadata?: { - [key: string]: unknown - } - type: "plugin.added" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - id: string - } -} - -export type ProjectDirectoriesUpdated = { - id: string - metadata?: { - [key: string]: unknown - } - type: "project.directories.updated" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - projectID: string - } -} - -export type CommandUpdated = { - id: string - metadata?: { - [key: string]: unknown - } - type: "command.updated" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - [key: string]: unknown - } -} - -export type SkillUpdated = { - id: string - metadata?: { - [key: string]: unknown - } - type: "skill.updated" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - [key: string]: unknown - } -} - -export type FileWatcherUpdated = { - id: string - metadata?: { - [key: string]: unknown - } - type: "file.watcher.updated" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - file: string - event: "add" | "change" | "unlink" - } -} - -export type PtyCreated = { - id: string - metadata?: { - [key: string]: unknown - } - type: "pty.created" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - info: Pty - } -} - -export type PtyUpdated = { - id: string - metadata?: { - [key: string]: unknown - } - type: "pty.updated" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - info: Pty - } -} - -export type PtyExited = { - id: string - metadata?: { - [key: string]: unknown - } - type: "pty.exited" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - id: string - exitCode: number - } -} - -export type PtyDeleted = { - id: string - metadata?: { - [key: string]: unknown - } - type: "pty.deleted" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - id: string - } -} - -export type ShellCreated = { - id: string - metadata?: { - [key: string]: unknown - } - type: "shell.created" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - info: Shell1 - } -} - -export type ShellExited = { - id: string - metadata?: { - [key: string]: unknown - } - type: "shell.exited" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - id: string - exit?: number | "NaN" | "Infinity" | "-Infinity" - status: "running" | "exited" | "timeout" | "killed" - } -} - -export type ShellDeleted = { - id: string - metadata?: { - [key: string]: unknown - } - type: "shell.deleted" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - id: string - } -} - -export type QuestionV2Asked = { - id: string - metadata?: { - [key: string]: unknown - } - type: "question.v2.asked" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - id: string - sessionID: string - /** - * Questions to ask - */ - questions: Array - tool?: QuestionV2Tool - } -} - -export type QuestionV2Replied = { - id: string - metadata?: { - [key: string]: unknown - } - type: "question.v2.replied" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - sessionID: string - requestID: string - answers: Array - } -} - -export type QuestionV2Rejected = { - id: string - metadata?: { - [key: string]: unknown - } - type: "question.v2.rejected" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - sessionID: string - requestID: string - } -} - -export type TodoUpdated = { - id: string - metadata?: { - [key: string]: unknown - } - type: "todo.updated" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - sessionID: string - todos: Array - } -} - -export type LspUpdated = { - id: string - metadata?: { - [key: string]: unknown - } - type: "lsp.updated" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - [key: string]: unknown - } -} - -export type PermissionAsked = { - id: string - metadata?: { - [key: string]: unknown - } - type: "permission.asked" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - id: string - sessionID: string - permission: string - patterns: Array - metadata: { - [key: string]: unknown - } - always: Array - tool?: { - messageID: string - callID: string - } - } -} - -export type PermissionReplied = { - id: string - metadata?: { - [key: string]: unknown - } - type: "permission.replied" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - sessionID: string - requestID: string - reply: "once" | "always" | "reject" - } -} - -export type TuiPromptAppend = { - id: string - metadata?: { - [key: string]: unknown - } - type: "tui.prompt.append" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - text: string - } -} - -export type TuiCommandExecute = { - id: string - metadata?: { - [key: string]: unknown - } - type: "tui.command.execute" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - command: - | "session.list" - | "session.new" - | "session.share" - | "session.interrupt" - | "session.background" - | "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 TuiToastShow = { - id: string - metadata?: { - [key: string]: unknown - } - type: "tui.toast.show" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - title?: string - message: string - variant: "info" | "success" | "warning" | "error" - duration?: number - } -} - -export type TuiSessionSelect = { - id: string - metadata?: { - [key: string]: unknown - } - type: "tui.session.select" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - /** - * Session ID to navigate to - */ - sessionID: string - } -} - -export type McpToolsChanged = { - id: string - metadata?: { - [key: string]: unknown - } - type: "mcp.tools.changed" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - server: string - } -} - -export type McpBrowserOpenFailed = { - id: string - metadata?: { - [key: string]: unknown - } - type: "mcp.browser.open.failed" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - mcpName: string - url: string - } -} - -export type McpStatusChanged = { - id: string - metadata?: { - [key: string]: unknown - } - type: "mcp.status.changed" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - server: string - } -} - -export type CommandExecuted = { - id: string - metadata?: { - [key: string]: unknown - } - type: "command.executed" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - name: string - sessionID: string - arguments: string - messageID: string - } -} - -export type ProjectUpdated = { - id: string - metadata?: { - [key: string]: unknown - } - type: "project.updated" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - id: string - worktree: string - vcs?: ProjectVcs - name?: string - icon?: ProjectIcon - commands?: ProjectCommands - time: ProjectTime - sandboxes: Array - } -} - -export type SessionIdle = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.idle" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - sessionID: string - } -} - -export type QuestionAsked = { - id: string - metadata?: { - [key: string]: unknown - } - type: "question.asked" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - id: string - sessionID: string - /** - * Questions to ask - */ - questions: Array - tool?: QuestionTool - } -} - -export type SessionCompacted = { - id: string - metadata?: { - [key: string]: unknown - } - type: "session.compacted" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - sessionID: string - } -} - -export type VcsBranchUpdated = { - id: string - metadata?: { - [key: string]: unknown - } - type: "vcs.branch.updated" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - branch?: string - } -} - -export type WorkspaceReady = { - id: string - metadata?: { - [key: string]: unknown - } - type: "workspace.ready" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - name: string - } -} - -export type WorkspaceFailed = { - id: string - metadata?: { - [key: string]: unknown - } - type: "workspace.failed" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - message: string - } -} - -export type WorkspaceStatus = { - id: string - metadata?: { - [key: string]: unknown - } - type: "workspace.status" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - workspaceID: string - status: "connected" | "connecting" | "disconnected" | "error" - } -} - -export type WorktreeReady = { - id: string - metadata?: { - [key: string]: unknown - } - type: "worktree.ready" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - name: string - branch?: string - } -} - -export type WorktreeFailed = { - id: string - metadata?: { - [key: string]: unknown - } - type: "worktree.failed" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - message: string - } -} - -export type ServerConnected = { - id: string - metadata?: { - [key: string]: unknown - } - type: "server.connected" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - [key: string]: unknown - } -} - -export type GlobalDisposed = { - id: string - metadata?: { - [key: string]: unknown - } - type: "global.disposed" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef - data: { - [key: string]: unknown - } -} - -export type EventLogHint = { - type: "log.hint" - aggregateID: string - seq: number -} - -export type EventLogSweepRequired = { - type: "log.sweep_required" -} - -export type EventLogChange = EventLogHint | EventLogSweepRequired - -export type EventLogChangeStream = string - -export type QuestionV2Request = { - id: string - sessionID: string - /** - * Questions to ask - */ - questions: Array - tool?: QuestionV2Tool -} - -export type QuestionV2Reply = { - /** - * User answers in order of questions (each answer is an array of selected labels) - */ - answers: Array -} - -export type ReferenceLocalSource = { - type: "local" - path: string - description?: string - hidden?: boolean -} - -export type ReferenceGitSource = { - type: "git" - repository: string - branch?: string - description?: string - hidden?: boolean -} - -export type ReferenceSource = ReferenceLocalSource | ReferenceGitSource - -export type ReferenceInfo = { - name: string - path: string - description?: string - hidden?: boolean - source: ReferenceSource -} - -export type ProjectCopyCopy = { - directory: string -} - export type EventModelsDevRefreshed = { id: string type: "models-dev.refreshed" @@ -7450,7 +4584,7 @@ export type EventShellCreated = { id: string type: "shell.created" properties: { - info: Shell2 + info: Shell1 } } @@ -7472,36 +4606,56 @@ export type EventShellDeleted = { } } -export type EventQuestionV2Asked = { +export type FormNumberField1 = { + key: string + title?: string + description?: string + required?: boolean + when?: FormWhen + type: "number" + minimum?: number | "NaN" | "Infinity" | "-Infinity" + maximum?: number | "NaN" | "Infinity" | "-Infinity" + default?: number | "NaN" | "Infinity" | "-Infinity" +} + +export type FormIntegerField1 = { + key: string + title?: string + description?: string + required?: boolean + when?: FormWhen + type: "integer" + minimum?: number | "NaN" | "Infinity" | "-Infinity" + maximum?: number | "NaN" | "Infinity" | "-Infinity" + default?: number | "NaN" | "Infinity" | "-Infinity" +} + +export type EventFormCreated = { id: string - type: "question.v2.asked" + type: "form.created" + properties: { + form: FormFormInfo | FormUrlInfo + } +} + +export type FormValue1 = string | number | "NaN" | "Infinity" | "-Infinity" | boolean | Array + +export type EventFormReplied = { + id: string + type: "form.replied" properties: { id: string sessionID: string - /** - * Questions to ask - */ - questions: Array - tool?: QuestionV2Tool + answer: FormAnswer } } -export type EventQuestionV2Replied = { +export type EventFormCancelled = { id: string - type: "question.v2.replied" + type: "form.cancelled" properties: { + id: string sessionID: string - requestID: string - answers: Array - } -} - -export type EventQuestionV2Rejected = { - id: string - type: "question.v2.rejected" - properties: { - sessionID: string - requestID: string } } @@ -7745,6 +4899,49 @@ export type CredentialKey = { } } +export type IntegrationWhen = { + key: string + op: "eq" | "neq" + value: string +} + +export type IntegrationTextPrompt = { + type: "text" + key: string + message: string + placeholder?: string + when?: IntegrationWhen +} + +export type IntegrationSelectPrompt = { + type: "select" + key: string + message: string + options: Array<{ + label: string + value: string + hint?: string + }> + when?: IntegrationWhen +} + +export type IntegrationOAuthMethod = { + id: string + type: "oauth" + label: string + prompts?: Array +} + +export type IntegrationKeyMethod = { + type: "key" + label?: string +} + +export type IntegrationEnvMethod = { + type: "env" + names: Array +} + export type SkillV2DirectorySource = { type: "directory" path: string @@ -7755,6 +4952,15 @@ export type SkillV2UrlSource = { url: string } +export type SkillV2Info = { + name: string + description?: string + slash?: boolean + autoinvoke?: boolean + location: string + content: string +} + export type SkillV2EmbeddedSource = { type: "embedded" skill: SkillV2Info @@ -7768,7 +4974,7 @@ export type BadRequestError = { } } -export type UnauthorizedErrorV2 = { +export type UnauthorizedError = { _tag: "UnauthorizedError" message: string } @@ -7780,7 +4986,7 @@ export type InvalidRequestErrorV2 = { field?: string | null } -export type LocationInfo2 = { +export type LocationInfo = { directory: string workspaceID?: string project: { @@ -7795,12 +5001,12 @@ export type ModelRef2 = { variant?: string } -export type ProviderSettings2 = { +export type ProviderSettings = { [key: string]: unknown } -export type ProviderRequest2 = { - settings: ProviderSettings2 +export type ProviderRequest = { + settings: ProviderSettings headers: { [key: string]: string } @@ -7809,32 +5015,32 @@ export type ProviderRequest2 = { } } -export type AgentColor2 = string | "primary" | "secondary" | "accent" | "success" | "warning" | "error" | "info" +export type AgentColor = string | "primary" | "secondary" | "accent" | "success" | "warning" | "error" | "info" -export type PermissionV2Effect2 = "allow" | "deny" | "ask" +export type PermissionV2Effect = "allow" | "deny" | "ask" -export type PermissionV2Rule2 = { +export type PermissionV2Rule = { action: string resource: string - effect: PermissionV2Effect2 + effect: PermissionV2Effect } -export type PermissionV2Ruleset2 = Array +export type PermissionV2Ruleset = Array -export type AgentV2Info2 = { +export type AgentV2Info = { id: string model?: ModelRef2 - request: ProviderRequest2 + request: ProviderRequest system?: string description?: string mode: "subagent" | "primary" | "all" hidden: boolean - color?: AgentColor2 + color?: AgentColor steps?: number - permissions: PermissionV2Ruleset2 + permissions: PermissionV2Ruleset } -export type PluginInfo2 = { +export type PluginInfo = { id: string } @@ -7859,7 +5065,7 @@ export type RevertState2 = { files?: Array } -export type SessionV2Info2 = { +export type SessionV2Info = { id: string parentID?: string projectID: string @@ -7889,20 +5095,20 @@ export type SessionV2Info2 = { /** * Durable log seq each session's snapshot was computed at. Attach a live log read after the watermark to compose fetch and stream gap-free; apply a snapshot only where its watermark is at or beyond already-applied events. Sessions without durable events are absent. */ -export type SessionWatermarksV2 = { +export type SessionWatermarks = { [key: string]: unknown | number } -export type SessionsResponseV2 = { - data: Array - watermarks: SessionWatermarksV2 +export type SessionsResponse = { + data: Array + watermarks: SessionWatermarks cursor: { previous?: string | null next?: string | null } } -export type InvalidCursorErrorV2 = { +export type InvalidCursorError = { _tag: "InvalidCursorError" message: string } @@ -7914,17 +5120,17 @@ export type InvalidRequestError1 = { field?: string | null } -export type SessionActiveV2 = { +export type SessionActive = { type: "running" } -export type SessionNotFoundErrorV2 = { +export type SessionNotFoundError = { _tag: "SessionNotFoundError" sessionID: string message: string } -export type MessageNotFoundErrorV2 = { +export type MessageNotFoundError = { _tag: "MessageNotFoundError" sessionID: string messageID: string @@ -7937,7 +5143,7 @@ export type PromptSource2 = { text: string } -export type PromptInputFileAttachment2 = { +export type PromptInputFileAttachment = { uri: string name?: string description?: string @@ -7949,9 +5155,9 @@ export type PromptAgentAttachment2 = { source?: PromptSource2 } -export type PromptInputV2 = { +export type PromptInput = { text: string - files?: Array + files?: Array agents?: Array } @@ -7969,7 +5175,7 @@ export type PromptV2 = { agents?: Array } -export type SessionInputAdmitted2 = { +export type SessionInputAdmitted = { admittedSeq: number id: string sessionID: string @@ -7979,25 +5185,25 @@ export type SessionInputAdmitted2 = { promotedSeq?: number } -export type ConflictErrorV2 = { +export type ConflictError = { _tag: "ConflictError" message: string resource?: string | null } -export type CommandNotFoundErrorV2 = { +export type CommandNotFoundError = { _tag: "CommandNotFoundError" command: string message: string } -export type CommandEvaluationErrorV2 = { +export type CommandEvaluationError = { _tag: "CommandEvaluationError" command: string message: string } -export type SkillNotFoundErrorV2 = { +export type SkillNotFoundError = { _tag: "SkillNotFoundError" skill: string message: string @@ -8009,7 +5215,7 @@ export type SessionBusyErrorV2 = { message: string } -export type ServiceUnavailableErrorV2 = { +export type ServiceUnavailableError = { _tag: "ServiceUnavailableError" message: string service?: string | null @@ -8021,7 +5227,7 @@ export type UnknownErrorV2 = { ref?: string | null } -export type SessionMessageAgentSwitched2 = { +export type SessionMessageAgentSwitched = { id: string metadata?: { [key: string]: unknown @@ -8033,7 +5239,7 @@ export type SessionMessageAgentSwitched2 = { agent: string } -export type SessionMessageModelSwitched2 = { +export type SessionMessageModelSwitched = { id: string metadata?: { [key: string]: unknown @@ -8045,7 +5251,7 @@ export type SessionMessageModelSwitched2 = { model: ModelRef2 } -export type SessionMessageUser2 = { +export type SessionMessageUser = { id: string metadata?: { [key: string]: unknown @@ -8059,7 +5265,7 @@ export type SessionMessageUser2 = { type: "user" } -export type SessionMessageSynthetic2 = { +export type SessionMessageSynthetic = { id: string metadata?: { [key: string]: unknown @@ -8073,7 +5279,7 @@ export type SessionMessageSynthetic2 = { type: "synthetic" } -export type SessionMessageSystem2 = { +export type SessionMessageSystem = { id: string metadata?: { [key: string]: unknown @@ -8085,7 +5291,7 @@ export type SessionMessageSystem2 = { text: string } -export type SessionMessageSkill2 = { +export type SessionMessageSkill = { id: string metadata?: { [key: string]: unknown @@ -8098,7 +5304,7 @@ export type SessionMessageSkill2 = { text: string } -export type SessionMessageShell2 = { +export type SessionMessageShell = { id: string metadata?: { [key: string]: unknown @@ -8113,7 +5319,7 @@ export type SessionMessageShell2 = { output: string } -export type SessionMessageAssistantText2 = { +export type SessionMessageAssistantText = { type: "text" id: string text: string @@ -8125,7 +5331,7 @@ export type LlmProviderMetadata2 = { } } -export type SessionMessageAssistantReasoning2 = { +export type SessionMessageAssistantReasoning = { type: "reasoning" id: string text: string @@ -8136,7 +5342,7 @@ export type SessionMessageAssistantReasoning2 = { } } -export type SessionMessageToolStatePending2 = { +export type SessionMessageToolStatePending = { status: "pending" input: string } @@ -8155,7 +5361,7 @@ export type ToolFileContent2 = { export type LlmToolContent2 = ToolTextContent2 | ToolFileContent2 -export type SessionMessageToolStateRunning2 = { +export type SessionMessageToolStateRunning = { status: "running" input: { [key: string]: unknown @@ -8166,7 +5372,7 @@ export type SessionMessageToolStateRunning2 = { content: Array } -export type SessionMessageToolStateCompleted2 = { +export type SessionMessageToolStateCompleted = { status: "completed" input: { [key: string]: unknown @@ -8185,7 +5391,7 @@ export type SessionErrorUnknown2 = { message: string } -export type SessionMessageToolStateError2 = { +export type SessionMessageToolStateError = { status: "error" input: { [key: string]: unknown @@ -8198,7 +5404,7 @@ export type SessionMessageToolStateError2 = { result?: unknown } -export type SessionMessageAssistantTool2 = { +export type SessionMessageAssistantTool = { type: "tool" id: string name: string @@ -8208,10 +5414,10 @@ export type SessionMessageAssistantTool2 = { resultMetadata?: LlmProviderMetadata2 } state: - | SessionMessageToolStatePending2 - | SessionMessageToolStateRunning2 - | SessionMessageToolStateCompleted2 - | SessionMessageToolStateError2 + | SessionMessageToolStatePending + | SessionMessageToolStateRunning + | SessionMessageToolStateCompleted + | SessionMessageToolStateError time: { created: number ran?: number @@ -8220,7 +5426,7 @@ export type SessionMessageAssistantTool2 = { } } -export type SessionMessageAssistant2 = { +export type SessionMessageAssistant = { id: string metadata?: { [key: string]: unknown @@ -8232,7 +5438,7 @@ export type SessionMessageAssistant2 = { type: "assistant" agent: string model: ModelRef2 - content: Array + content: Array snapshot?: { start?: string end?: string @@ -8252,7 +5458,7 @@ export type SessionMessageAssistant2 = { error?: SessionErrorUnknown2 } -export type SessionMessageCompaction2 = { +export type SessionMessageCompaction = { type: "compaction" reason: "auto" | "manual" summary: string @@ -8266,28 +5472,28 @@ export type SessionMessageCompaction2 = { } } -export type SessionMessage2 = - | SessionMessageAgentSwitched2 - | SessionMessageModelSwitched2 - | SessionMessageUser2 - | SessionMessageSynthetic2 - | SessionMessageSystem2 - | SessionMessageSkill2 - | SessionMessageShell2 - | SessionMessageAssistant2 - | SessionMessageCompaction2 +export type SessionMessage = + | SessionMessageAgentSwitched + | SessionMessageModelSwitched + | SessionMessageUser + | SessionMessageSynthetic + | SessionMessageSystem + | SessionMessageSkill + | SessionMessageShell + | SessionMessageAssistant + | SessionMessageCompaction /** * Context entry key (lowercase alphanumerics plus . _ -) */ -export type SessionContextEntryKey2 = string +export type SessionContextEntryKey = string -export type SessionContextEntryInfo2 = { - key: SessionContextEntryKey2 +export type SessionContextEntryInfo = { + key: SessionContextEntryKey value: unknown } -export type SessionNextAgentSwitched2 = { +export type SessionNextAgentSwitched = { id: string metadata?: { [key: string]: unknown @@ -8307,7 +5513,7 @@ export type SessionNextAgentSwitched2 = { } } -export type SessionNextModelSwitched2 = { +export type SessionNextModelSwitched = { id: string metadata?: { [key: string]: unknown @@ -8327,7 +5533,7 @@ export type SessionNextModelSwitched2 = { } } -export type SessionNextMoved2 = { +export type SessionNextMoved = { id: string metadata?: { [key: string]: unknown @@ -8347,7 +5553,7 @@ export type SessionNextMoved2 = { } } -export type SessionNextRenamed2 = { +export type SessionNextRenamed = { id: string metadata?: { [key: string]: unknown @@ -8366,7 +5572,7 @@ export type SessionNextRenamed2 = { } } -export type SessionNextForked2 = { +export type SessionNextForked = { id: string metadata?: { [key: string]: unknown @@ -8386,7 +5592,7 @@ export type SessionNextForked2 = { } } -export type SessionNextPrompted2 = { +export type SessionNextPrompted = { id: string metadata?: { [key: string]: unknown @@ -8407,7 +5613,7 @@ export type SessionNextPrompted2 = { } } -export type SessionNextPromptAdmitted2 = { +export type SessionNextPromptAdmitted = { id: string metadata?: { [key: string]: unknown @@ -8428,7 +5634,7 @@ export type SessionNextPromptAdmitted2 = { } } -export type SessionNextContextUpdated2 = { +export type SessionNextContextUpdated = { id: string metadata?: { [key: string]: unknown @@ -8448,7 +5654,7 @@ export type SessionNextContextUpdated2 = { } } -export type SessionNextSynthetic2 = { +export type SessionNextSynthetic = { id: string metadata?: { [key: string]: unknown @@ -8472,7 +5678,7 @@ export type SessionNextSynthetic2 = { } } -export type SessionNextSkillActivated2 = { +export type SessionNextSkillActivated = { id: string metadata?: { [key: string]: unknown @@ -8493,7 +5699,7 @@ export type SessionNextSkillActivated2 = { } } -export type SessionNextShellStarted2 = { +export type SessionNextShellStarted = { id: string metadata?: { [key: string]: unknown @@ -8514,7 +5720,7 @@ export type SessionNextShellStarted2 = { } } -export type SessionNextShellEnded2 = { +export type SessionNextShellEnded = { id: string metadata?: { [key: string]: unknown @@ -8534,7 +5740,7 @@ export type SessionNextShellEnded2 = { } } -export type SessionNextStepStarted2 = { +export type SessionNextStepStarted = { id: string metadata?: { [key: string]: unknown @@ -8556,7 +5762,7 @@ export type SessionNextStepStarted2 = { } } -export type SessionNextStepEnded2 = { +export type SessionNextStepEnded = { id: string metadata?: { [key: string]: unknown @@ -8588,7 +5794,7 @@ export type SessionNextStepEnded2 = { } } -export type SessionNextStepFailed2 = { +export type SessionNextStepFailed = { id: string metadata?: { [key: string]: unknown @@ -8608,7 +5814,7 @@ export type SessionNextStepFailed2 = { } } -export type SessionNextTextStarted2 = { +export type SessionNextTextStarted = { id: string metadata?: { [key: string]: unknown @@ -8628,7 +5834,7 @@ export type SessionNextTextStarted2 = { } } -export type SessionNextTextEnded2 = { +export type SessionNextTextEnded = { id: string metadata?: { [key: string]: unknown @@ -8649,7 +5855,7 @@ export type SessionNextTextEnded2 = { } } -export type SessionNextToolInputStarted2 = { +export type SessionNextToolInputStarted = { id: string metadata?: { [key: string]: unknown @@ -8670,7 +5876,7 @@ export type SessionNextToolInputStarted2 = { } } -export type SessionNextToolInputEnded2 = { +export type SessionNextToolInputEnded = { id: string metadata?: { [key: string]: unknown @@ -8697,7 +5903,7 @@ export type LlmProviderMetadata3 = { } } -export type SessionNextToolCalled2 = { +export type SessionNextToolCalled = { id: string metadata?: { [key: string]: unknown @@ -8725,7 +5931,7 @@ export type SessionNextToolCalled2 = { } } -export type SessionNextToolProgress2 = { +export type SessionNextToolProgress = { id: string metadata?: { [key: string]: unknown @@ -8755,7 +5961,7 @@ export type LlmProviderMetadata4 = { } } -export type SessionNextToolSuccess2 = { +export type SessionNextToolSuccess = { id: string metadata?: { [key: string]: unknown @@ -8791,7 +5997,7 @@ export type LlmProviderMetadata5 = { } } -export type SessionNextToolFailed2 = { +export type SessionNextToolFailed = { id: string metadata?: { [key: string]: unknown @@ -8823,7 +6029,7 @@ export type LlmProviderMetadata6 = { } } -export type SessionNextReasoningStarted2 = { +export type SessionNextReasoningStarted = { id: string metadata?: { [key: string]: unknown @@ -8850,7 +6056,7 @@ export type LlmProviderMetadata7 = { } } -export type SessionNextReasoningEnded2 = { +export type SessionNextReasoningEnded = { id: string metadata?: { [key: string]: unknown @@ -8885,7 +6091,7 @@ export type SessionNextRetryError2 = { } } -export type SessionNextRetried2 = { +export type SessionNextRetried = { id: string metadata?: { [key: string]: unknown @@ -8905,7 +6111,7 @@ export type SessionNextRetried2 = { } } -export type SessionNextCompactionStarted2 = { +export type SessionNextCompactionStarted = { id: string metadata?: { [key: string]: unknown @@ -8925,7 +6131,7 @@ export type SessionNextCompactionStarted2 = { } } -export type SessionNextCompactionEnded2 = { +export type SessionNextCompactionEnded = { id: string metadata?: { [key: string]: unknown @@ -8947,7 +6153,7 @@ export type SessionNextCompactionEnded2 = { } } -export type SessionNextRevertStaged2 = { +export type SessionNextRevertStaged = { id: string metadata?: { [key: string]: unknown @@ -8966,7 +6172,7 @@ export type SessionNextRevertStaged2 = { } } -export type SessionNextRevertCleared2 = { +export type SessionNextRevertCleared = { id: string metadata?: { [key: string]: unknown @@ -8984,7 +6190,7 @@ export type SessionNextRevertCleared2 = { } } -export type SessionNextRevertCommitted2 = { +export type SessionNextRevertCommitted = { id: string metadata?: { [key: string]: unknown @@ -9003,54 +6209,54 @@ export type SessionNextRevertCommitted2 = { } } -export type SessionDurableEventV2 = - | SessionNextAgentSwitched2 - | SessionNextModelSwitched2 - | SessionNextMoved2 - | SessionNextRenamed2 - | SessionNextForked2 - | SessionNextPrompted2 - | SessionNextPromptAdmitted2 - | SessionNextContextUpdated2 - | SessionNextSynthetic2 - | SessionNextSkillActivated2 - | SessionNextShellStarted2 - | SessionNextShellEnded2 - | SessionNextStepStarted2 - | SessionNextStepEnded2 - | SessionNextStepFailed2 - | SessionNextTextStarted2 - | SessionNextTextEnded2 - | SessionNextToolInputStarted2 - | SessionNextToolInputEnded2 - | SessionNextToolCalled2 - | SessionNextToolProgress2 - | SessionNextToolSuccess2 - | SessionNextToolFailed2 - | SessionNextReasoningStarted2 - | SessionNextReasoningEnded2 - | SessionNextRetried2 - | SessionNextCompactionStarted2 - | SessionNextCompactionEnded2 - | SessionNextRevertStaged2 - | SessionNextRevertCleared2 - | SessionNextRevertCommitted2 +export type SessionDurableEvent = + | SessionNextAgentSwitched + | SessionNextModelSwitched + | SessionNextMoved + | SessionNextRenamed + | SessionNextForked + | SessionNextPrompted + | SessionNextPromptAdmitted + | SessionNextContextUpdated + | SessionNextSynthetic + | SessionNextSkillActivated + | SessionNextShellStarted + | SessionNextShellEnded + | SessionNextStepStarted + | SessionNextStepEnded + | SessionNextStepFailed + | SessionNextTextStarted + | SessionNextTextEnded + | SessionNextToolInputStarted + | SessionNextToolInputEnded + | SessionNextToolCalled + | SessionNextToolProgress + | SessionNextToolSuccess + | SessionNextToolFailed + | SessionNextReasoningStarted + | SessionNextReasoningEnded + | SessionNextRetried + | SessionNextCompactionStarted + | SessionNextCompactionEnded + | SessionNextRevertStaged + | SessionNextRevertCleared + | SessionNextRevertCommitted /** * Marker emitted once when a log read reaches its captured watermark. The reader holds every event committed at or below seq. */ -export type EventLogSynced2 = { +export type EventLogSynced = { type: "log.synced" aggregateID: string seq?: number } -export type SessionLogItemV2 = SessionDurableEventV2 | EventLogSynced2 +export type SessionLogItem = SessionDurableEvent | EventLogSynced -export type SessionLogItemStreamV2 = string +export type SessionLogItemStream = string -export type SessionMessagesResponseV2 = { - data: Array +export type SessionMessagesResponse = { + data: Array watermark?: number cursor: { previous?: string | null @@ -9058,7 +6264,7 @@ export type SessionMessagesResponseV2 = { } } -export type ModelApi2 = +export type ModelApi = | { id: string type: "aisdk" @@ -9077,13 +6283,13 @@ export type ModelApi2 = } } -export type ModelCapabilities2 = { +export type ModelCapabilities = { tools: boolean input: Array output: Array } -export type ModelCost2 = { +export type ModelCost = { tier?: { type: "context" size: number @@ -9096,15 +6302,15 @@ export type ModelCost2 = { } } -export type ModelV2Info2 = { +export type ModelV2Info = { id: string providerID: string family?: string name: string - api: ModelApi2 - capabilities: ModelCapabilities2 + api: ModelApi + capabilities: ModelCapabilities request: { - settings: ProviderSettings2 + settings: ProviderSettings headers: { [key: string]: string } @@ -9115,7 +6321,7 @@ export type ModelV2Info2 = { } variants: Array<{ id: string - settings: ProviderSettings2 + settings: ProviderSettings headers: { [key: string]: string } @@ -9126,7 +6332,7 @@ export type ModelV2Info2 = { time: { released: number } - cost: Array + cost: Array status: "alpha" | "beta" | "deprecated" | "active" enabled: boolean limit: { @@ -9136,13 +6342,13 @@ export type ModelV2Info2 = { } } -export type GenerateTextResponseV2 = { +export type GenerateTextResponse = { data: { text: string } } -export type ProviderAisdk2 = { +export type ProviderAisdk = { type: "aisdk" package: string url?: string @@ -9151,7 +6357,7 @@ export type ProviderAisdk2 = { } } -export type ProviderNative2 = { +export type ProviderNative = { type: "native" url?: string settings: { @@ -9159,18 +6365,18 @@ export type ProviderNative2 = { } } -export type ProviderApi2 = ProviderAisdk2 | ProviderNative2 +export type ProviderApi = ProviderAisdk | ProviderNative -export type ProviderV2Info2 = { +export type ProviderV2Info = { id: string integrationID?: string name: string disabled?: boolean - api: ProviderApi2 - request: ProviderRequest2 + api: ProviderApi + request: ProviderRequest } -export type ProviderNotFoundErrorV2 = { +export type ProviderNotFoundError = { _tag: "ProviderNotFoundError" providerID: string message: string @@ -9221,27 +6427,27 @@ export type IntegrationEnvMethod2 = { export type IntegrationMethod2 = IntegrationOAuthMethod2 | IntegrationKeyMethod2 | IntegrationEnvMethod2 -export type ConnectionCredentialInfo2 = { +export type ConnectionCredentialInfo = { type: "credential" id: string label: string } -export type ConnectionEnvInfo2 = { +export type ConnectionEnvInfo = { type: "env" name: string } -export type ConnectionInfo2 = ConnectionCredentialInfo2 | ConnectionEnvInfo2 +export type ConnectionInfo = ConnectionCredentialInfo | ConnectionEnvInfo -export type IntegrationInfo2 = { +export type IntegrationInfo = { id: string name: string methods: Array - connections: Array + connections: Array } -export type IntegrationAttempt2 = { +export type IntegrationAttempt = { attemptID: string url: string instructions: string @@ -9252,7 +6458,7 @@ export type IntegrationAttempt2 = { } } -export type IntegrationAttemptStatus2 = +export type IntegrationAttemptStatus = | { status: "pending" time: { @@ -9283,45 +6489,45 @@ export type IntegrationAttemptStatus2 = } } -export type McpStatusConnected3 = { +export type McpStatusConnected2 = { status: "connected" } -export type McpStatusDisconnected2 = { +export type McpStatusDisconnected = { status: "disconnected" } -export type McpStatusDisabled3 = { +export type McpStatusDisabled2 = { status: "disabled" } -export type McpStatusFailed3 = { +export type McpStatusFailed2 = { status: "failed" error: string } -export type McpStatusNeedsAuth3 = { +export type McpStatusNeedsAuth2 = { status: "needs_auth" } -export type McpStatusNeedsClientRegistration3 = { +export type McpStatusNeedsClientRegistration2 = { status: "needs_client_registration" error: string } -export type McpServer2 = { +export type McpServer = { name: string status: - | McpStatusConnected3 - | McpStatusDisconnected2 - | McpStatusDisabled3 - | McpStatusFailed3 - | McpStatusNeedsAuth3 - | McpStatusNeedsClientRegistration3 + | McpStatusConnected2 + | McpStatusDisconnected + | McpStatusDisabled2 + | McpStatusFailed2 + | McpStatusNeedsAuth2 + | McpStatusNeedsClientRegistration2 integrationID?: string } -export type ProjectCurrent2 = { +export type ProjectCurrent = { id: string directory: string } @@ -9333,13 +6539,173 @@ export type ProjectDirectory2 = { export type ProjectDirectories2 = Array +export type FormMetadata2 = { + [key: string]: unknown +} + +export type FormWhen2 = { + key: string + op: "eq" | "neq" + value: string +} + +export type FormOption2 = { + value: string + label: string + description?: string +} + +export type FormStringField2 = { + key: string + title?: string + description?: string + required?: boolean + when?: FormWhen2 + type: "string" + format?: "email" | "uri" | "date" | "date-time" + minLength?: number + maxLength?: number + pattern?: string + placeholder?: string + default?: string + options?: Array + custom?: boolean +} + +export type FormNumberField2 = { + key: string + title?: string + description?: string + required?: boolean + when?: FormWhen2 + type: "number" + minimum?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN" + maximum?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN" + default?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN" +} + +export type FormIntegerField2 = { + key: string + title?: string + description?: string + required?: boolean + when?: FormWhen2 + type: "integer" + minimum?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN" + maximum?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN" + default?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN" +} + +export type FormBooleanField2 = { + key: string + title?: string + description?: string + required?: boolean + when?: FormWhen2 + type: "boolean" + default?: boolean +} + +export type FormMultiselectField2 = { + key: string + title?: string + description?: string + required?: boolean + when?: FormWhen2 + type: "multiselect" + options: Array + minItems?: number + maxItems?: number + custom?: boolean + default?: Array +} + +export type FormFormInfo2 = { + id: string + sessionID: string + title?: string + metadata?: FormMetadata2 + mode: "form" + fields: Array +} + +export type FormUrlInfo2 = { + id: string + sessionID: string + title?: string + metadata?: FormMetadata2 + mode: "url" + url: string +} + +export type FormCreatePayload = { + id?: string | null + title?: string + metadata?: FormMetadata2 + mode: "form" | "url" + fields?: Array< + FormStringField2 | FormNumberField2 | FormIntegerField2 | FormBooleanField2 | FormMultiselectField2 + > | null + url?: string | null +} + +export type FormNotFoundError = { + _tag: "FormNotFoundError" + id: string + message: string +} + +export type FormValue2 = + | string + | number + | "NaN" + | "Infinity" + | "-Infinity" + | "Infinity" + | "-Infinity" + | "NaN" + | boolean + | Array + +export type FormAnswer2 = { + [key: string]: FormValue2 +} + +export type FormState = + | { + status: "pending" + } + | { + status: "answered" + answer: FormAnswer2 + } + | { + status: "cancelled" + } + +export type FormReply = { + answer: FormAnswer2 +} + +export type FormAlreadySettledError = { + _tag: "FormAlreadySettledError" + id: string + message: string +} + +export type FormInvalidAnswerError = { + _tag: "FormInvalidAnswerError" + id: string + message: string +} + export type PermissionV2Source2 = { type: "tool" messageID: string callID: string } -export type PermissionV2Request2 = { +export type PermissionV2Request = { id: string sessionID: string action: string @@ -9351,7 +6717,7 @@ export type PermissionV2Request2 = { source?: PermissionV2Source2 } -export type PermissionSavedInfo2 = { +export type PermissionSavedInfo = { id: string projectID: string action: string @@ -9366,12 +6732,12 @@ export type PermissionNotFoundErrorV2 = { export type PermissionV2Reply2 = "once" | "always" | "reject" -export type FileSystemEntry2 = { +export type FileSystemEntry = { path: string type: "file" | "directory" } -export type CommandV2Info2 = { +export type CommandV2Info = { name: string template: string description?: string @@ -9389,7 +6755,7 @@ export type SkillV2Info2 = { content: string } -export type ModelsDevRefreshed2 = { +export type ModelsDevRefreshed = { id: string metadata?: { [key: string]: unknown @@ -9408,7 +6774,7 @@ export type ModelsDevRefreshed2 = { | Array } -export type IntegrationUpdated2 = { +export type IntegrationUpdated = { id: string metadata?: { [key: string]: unknown @@ -9427,7 +6793,7 @@ export type IntegrationUpdated2 = { | Array } -export type IntegrationConnectionUpdated2 = { +export type IntegrationConnectionUpdated = { id: string metadata?: { [key: string]: unknown @@ -9444,7 +6810,7 @@ export type IntegrationConnectionUpdated2 = { } } -export type CatalogUpdated2 = { +export type CatalogUpdated = { id: string metadata?: { [key: string]: unknown @@ -9463,7 +6829,7 @@ export type CatalogUpdated2 = { | Array } -export type AgentUpdated2 = { +export type AgentUpdated = { id: string metadata?: { [key: string]: unknown @@ -9553,7 +6919,7 @@ export type SessionV2 = { } } -export type SessionCreated2 = { +export type SessionCreated = { id: string metadata?: { [key: string]: unknown @@ -9571,7 +6937,7 @@ export type SessionCreated2 = { } } -export type SessionUpdated2 = { +export type SessionUpdated = { id: string metadata?: { [key: string]: unknown @@ -9589,7 +6955,7 @@ export type SessionUpdated2 = { } } -export type SessionDeleted2 = { +export type SessionDeleted = { id: string metadata?: { [key: string]: unknown @@ -9654,7 +7020,7 @@ export type ProviderAuthErrorV2 = { } } -export type UnknownError1V2 = { +export type UnknownError1 = { name: "UnknownError" data: { message: string @@ -9727,7 +7093,7 @@ export type AssistantMessageV2 = { } error?: | ProviderAuthErrorV2 - | UnknownError1V2 + | UnknownError1 | MessageOutputLengthErrorV2 | MessageAbortedErrorV2 | StructuredOutputErrorV2 @@ -9763,7 +7129,7 @@ export type AssistantMessageV2 = { export type MessageV2 = UserMessageV2 | AssistantMessageV2 -export type MessageUpdated2 = { +export type MessageUpdated = { id: string metadata?: { [key: string]: unknown @@ -9781,7 +7147,7 @@ export type MessageUpdated2 = { } } -export type MessageRemoved2 = { +export type MessageRemoved = { id: string metadata?: { [key: string]: unknown @@ -10062,7 +7428,7 @@ export type PartV2 = | RetryPartV2 | CompactionPartV2 -export type MessagePartUpdated2 = { +export type MessagePartUpdated = { id: string metadata?: { [key: string]: unknown @@ -10081,7 +7447,7 @@ export type MessagePartUpdated2 = { } } -export type MessagePartRemoved2 = { +export type MessagePartRemoved = { id: string metadata?: { [key: string]: unknown @@ -10100,7 +7466,7 @@ export type MessagePartRemoved2 = { } } -export type SessionNextExecutionSettled2 = { +export type SessionNextExecutionSettled = { id: string metadata?: { [key: string]: unknown @@ -10120,7 +7486,7 @@ export type SessionNextExecutionSettled2 = { } } -export type SessionNextTextDelta2 = { +export type SessionNextTextDelta = { id: string metadata?: { [key: string]: unknown @@ -10141,7 +7507,7 @@ export type SessionNextTextDelta2 = { } } -export type SessionNextReasoningDelta2 = { +export type SessionNextReasoningDelta = { id: string metadata?: { [key: string]: unknown @@ -10162,7 +7528,7 @@ export type SessionNextReasoningDelta2 = { } } -export type SessionNextToolInputDelta2 = { +export type SessionNextToolInputDelta = { id: string metadata?: { [key: string]: unknown @@ -10183,7 +7549,7 @@ export type SessionNextToolInputDelta2 = { } } -export type SessionNextCompactionDelta2 = { +export type SessionNextCompactionDelta = { id: string metadata?: { [key: string]: unknown @@ -10203,7 +7569,7 @@ export type SessionNextCompactionDelta2 = { } } -export type FileEdited2 = { +export type FileEdited = { id: string metadata?: { [key: string]: unknown @@ -10220,7 +7586,7 @@ export type FileEdited2 = { } } -export type ReferenceUpdated2 = { +export type ReferenceUpdated = { id: string metadata?: { [key: string]: unknown @@ -10239,7 +7605,7 @@ export type ReferenceUpdated2 = { | Array } -export type PermissionV2Asked2 = { +export type PermissionV2Asked = { id: string metadata?: { [key: string]: unknown @@ -10264,7 +7630,7 @@ export type PermissionV2Asked2 = { } } -export type PermissionV2Replied2 = { +export type PermissionV2Replied = { id: string metadata?: { [key: string]: unknown @@ -10283,7 +7649,7 @@ export type PermissionV2Replied2 = { } } -export type PluginAdded2 = { +export type PluginAdded = { id: string metadata?: { [key: string]: unknown @@ -10300,7 +7666,7 @@ export type PluginAdded2 = { } } -export type ProjectDirectoriesUpdated2 = { +export type ProjectDirectoriesUpdated = { id: string metadata?: { [key: string]: unknown @@ -10317,7 +7683,7 @@ export type ProjectDirectoriesUpdated2 = { } } -export type CommandUpdated2 = { +export type CommandUpdated = { id: string metadata?: { [key: string]: unknown @@ -10336,7 +7702,7 @@ export type CommandUpdated2 = { | Array } -export type SkillUpdated2 = { +export type SkillUpdated = { id: string metadata?: { [key: string]: unknown @@ -10355,7 +7721,7 @@ export type SkillUpdated2 = { | Array } -export type FileWatcherUpdated2 = { +export type FileWatcherUpdated = { id: string metadata?: { [key: string]: unknown @@ -10384,7 +7750,7 @@ export type PtyV2 = { exitCode?: number } -export type PtyCreated2 = { +export type PtyCreated = { id: string metadata?: { [key: string]: unknown @@ -10401,7 +7767,7 @@ export type PtyCreated2 = { } } -export type PtyUpdated2 = { +export type PtyUpdated = { id: string metadata?: { [key: string]: unknown @@ -10418,7 +7784,7 @@ export type PtyUpdated2 = { } } -export type PtyExited2 = { +export type PtyExited = { id: string metadata?: { [key: string]: unknown @@ -10436,7 +7802,7 @@ export type PtyExited2 = { } } -export type PtyDeleted2 = { +export type PtyDeleted = { id: string metadata?: { [key: string]: unknown @@ -10471,7 +7837,7 @@ export type ShellV2 = { } } -export type ShellCreated2 = { +export type ShellCreated = { id: string metadata?: { [key: string]: unknown @@ -10488,7 +7854,7 @@ export type ShellCreated2 = { } } -export type ShellExited2 = { +export type ShellExited = { id: string metadata?: { [key: string]: unknown @@ -10507,7 +7873,7 @@ export type ShellExited2 = { } } -export type ShellDeleted2 = { +export type ShellDeleted = { id: string metadata?: { [key: string]: unknown @@ -10524,45 +7890,81 @@ export type ShellDeleted2 = { } } -export type QuestionV2Option2 = { - /** - * Display text (1-5 words, concise) - */ - label: string - /** - * Explanation of choice - */ - description: string +export type FormMetadata1 = { + [key: string]: unknown } -export type QuestionV2Info2 = { - /** - * Complete question - */ - question: string - /** - * Very short label (max 30 chars) - */ - header: string - /** - * Available choices - */ - options: Array - multiple?: boolean - custom?: boolean +export type FormNumberField12 = { + key: string + title?: string + description?: string + required?: boolean + when?: FormWhen2 + type: "number" + minimum?: number | "NaN" | "Infinity" | "-Infinity" + maximum?: number | "NaN" | "Infinity" | "-Infinity" + default?: number | "NaN" | "Infinity" | "-Infinity" } -export type QuestionV2Tool2 = { - messageID: string - callID: string +export type FormIntegerField12 = { + key: string + title?: string + description?: string + required?: boolean + when?: FormWhen2 + type: "integer" + minimum?: number | "NaN" | "Infinity" | "-Infinity" + maximum?: number | "NaN" | "Infinity" | "-Infinity" + default?: number | "NaN" | "Infinity" | "-Infinity" } -export type QuestionV2Asked2 = { +export type FormFormInfo1 = { + id: string + sessionID: string + title?: string + metadata?: FormMetadata1 + mode: "form" + fields: Array +} + +export type FormUrlInfo1 = { + id: string + sessionID: string + title?: string + metadata?: FormMetadata1 + mode: "url" + url: string +} + +export type FormCreated = { id: string metadata?: { [key: string]: unknown } - type: "question.v2.asked" + type: "form.created" + durable?: { + aggregateID: string + seq: number + version: number + } + location?: LocationRef2 + data: { + form: FormFormInfo1 | FormUrlInfo1 + } +} + +export type FormValue12 = string | number | "NaN" | "Infinity" | "-Infinity" | boolean | Array + +export type FormAnswer1 = { + [key: string]: FormValue12 +} + +export type FormReplied = { + id: string + metadata?: { + [key: string]: unknown + } + type: "form.replied" durable?: { aggregateID: string seq: number @@ -10572,22 +7974,16 @@ export type QuestionV2Asked2 = { data: { id: string sessionID: string - /** - * Questions to ask - */ - questions: Array - tool?: QuestionV2Tool2 + answer: FormAnswer1 } } -export type QuestionV2Answer2 = Array - -export type QuestionV2Replied2 = { +export type FormCancelled = { id: string metadata?: { [key: string]: unknown } - type: "question.v2.replied" + type: "form.cancelled" durable?: { aggregateID: string seq: number @@ -10595,27 +7991,8 @@ export type QuestionV2Replied2 = { } location?: LocationRef2 data: { + id: string sessionID: string - requestID: string - answers: Array - } -} - -export type QuestionV2Rejected2 = { - id: string - metadata?: { - [key: string]: unknown - } - type: "question.v2.rejected" - durable?: { - aggregateID: string - seq: number - version: number - } - location?: LocationRef2 - data: { - sessionID: string - requestID: string } } @@ -10634,7 +8011,7 @@ export type TodoV2 = { priority: string } -export type TodoUpdated2 = { +export type TodoUpdated = { id: string metadata?: { [key: string]: unknown @@ -10652,6 +8029,398 @@ export type TodoUpdated2 = { } } +export type SessionStatusV2 = + | { + type: "idle" + } + | { + type: "retry" + attempt: number + message: string + action?: { + reason: string + provider: string + title: string + message: string + label: string + link?: string + } + next: number + } + | { + type: "busy" + } + +export type SessionStatus2 = { + id: string + metadata?: { + [key: string]: unknown + } + type: "session.status" + durable?: { + aggregateID: string + seq: number + version: number + } + location?: LocationRef2 + data: { + sessionID: string + status: SessionStatusV2 + } +} + +export type SessionIdle = { + id: string + metadata?: { + [key: string]: unknown + } + type: "session.idle" + durable?: { + aggregateID: string + seq: number + version: number + } + location?: LocationRef2 + data: { + sessionID: string + } +} + +export type TuiPromptAppend = { + id: string + metadata?: { + [key: string]: unknown + } + type: "tui.prompt.append" + durable?: { + aggregateID: string + seq: number + version: number + } + location?: LocationRef2 + data: { + text: string + } +} + +export type TuiCommandExecute = { + id: string + metadata?: { + [key: string]: unknown + } + type: "tui.command.execute" + durable?: { + aggregateID: string + seq: number + version: number + } + location?: LocationRef2 + data: { + command: + | "session.list" + | "session.new" + | "session.share" + | "session.interrupt" + | "session.background" + | "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 TuiToastShow = { + id: string + metadata?: { + [key: string]: unknown + } + type: "tui.toast.show" + durable?: { + aggregateID: string + seq: number + version: number + } + location?: LocationRef2 + data: { + title?: string + message: string + variant: "info" | "success" | "warning" | "error" + duration?: number | null + } +} + +export type TuiSessionSelect = { + id: string + metadata?: { + [key: string]: unknown + } + type: "tui.session.select" + durable?: { + aggregateID: string + seq: number + version: number + } + location?: LocationRef2 + data: { + /** + * Session ID to navigate to + */ + sessionID: string + } +} + +export type InstallationUpdated = { + id: string + metadata?: { + [key: string]: unknown + } + type: "installation.updated" + durable?: { + aggregateID: string + seq: number + version: number + } + location?: LocationRef2 + data: { + version: string + } +} + +export type InstallationUpdateAvailable = { + id: string + metadata?: { + [key: string]: unknown + } + type: "installation.update-available" + durable?: { + aggregateID: string + seq: number + version: number + } + location?: LocationRef2 + data: { + version: string + } +} + +export type VcsBranchUpdated = { + id: string + metadata?: { + [key: string]: unknown + } + type: "vcs.branch.updated" + durable?: { + aggregateID: string + seq: number + version: number + } + location?: LocationRef2 + data: { + branch?: string + } +} + +export type McpStatusChanged = { + id: string + metadata?: { + [key: string]: unknown + } + type: "mcp.status.changed" + durable?: { + aggregateID: string + seq: number + version: number + } + location?: LocationRef2 + data: { + server: string + } +} + +export type PermissionAsked = { + id: string + metadata?: { + [key: string]: unknown + } + type: "permission.asked" + durable?: { + aggregateID: string + seq: number + version: number + } + location?: LocationRef2 + data: { + id: string + sessionID: string + permission: string + patterns: Array + metadata: { + [key: string]: unknown + } + always: Array + tool?: { + messageID: string + callID: string + } | null + } +} + +export type PermissionReplied = { + id: string + metadata?: { + [key: string]: unknown + } + type: "permission.replied" + durable?: { + aggregateID: string + seq: number + version: number + } + location?: LocationRef2 + data: { + sessionID: string + requestID: string + reply: "once" | "always" | "reject" + } +} + +export type QuestionOptionV2 = { + /** + * Display text (1-5 words, concise) + */ + label: string + /** + * Explanation of choice + */ + description: string +} + +export type QuestionInfoV2 = { + /** + * Complete question + */ + question: string + /** + * Very short label (max 30 chars) + */ + header: string + /** + * Available choices + */ + options: Array + /** + * Allow selecting multiple choices + */ + multiple?: boolean | null + /** + * Allow typing a custom answer (default: true) + */ + custom?: boolean | null +} + +export type QuestionToolV2 = { + messageID: string + callID: string +} + +export type QuestionAsked = { + id: string + metadata?: { + [key: string]: unknown + } + type: "question.asked" + durable?: { + aggregateID: string + seq: number + version: number + } + location?: LocationRef2 + data: { + id: string + sessionID: string + /** + * Questions to ask + */ + questions: Array + tool?: QuestionToolV2 | null + } +} + +export type QuestionAnswerV2 = Array + +export type QuestionReplied2 = { + id: string + metadata?: { + [key: string]: unknown + } + type: "question.replied" + durable?: { + aggregateID: string + seq: number + version: number + } + location?: LocationRef2 + data: { + sessionID: string + requestID: string + answers: Array + } +} + +export type QuestionRejected2 = { + id: string + metadata?: { + [key: string]: unknown + } + type: "question.rejected" + durable?: { + aggregateID: string + seq: number + version: number + } + location?: LocationRef2 + data: { + sessionID: string + requestID: string + } +} + +export type SessionError = { + id: string + metadata?: { + [key: string]: unknown + } + type: "session.error" + durable?: { + aggregateID: string + seq: number + version: number + } + location?: LocationRef2 + data: { + sessionID?: string | null + error?: + | ProviderAuthErrorV2 + | UnknownError1 + | MessageOutputLengthErrorV2 + | MessageAbortedErrorV2 + | StructuredOutputErrorV2 + | ContextOverflowErrorV2 + | ContentFilterErrorV2 + | ApiErrorV2 + | null + } +} + export type V2EventServerConnected = { id: string metadata?: { @@ -10671,83 +8440,99 @@ export type V2EventServerConnected = { | Array } -export type V2EventV2 = - | ModelsDevRefreshed2 - | IntegrationUpdated2 - | IntegrationConnectionUpdated2 - | CatalogUpdated2 - | AgentUpdated2 - | SessionCreated2 - | SessionUpdated2 - | SessionDeleted2 - | MessageUpdated2 - | MessageRemoved2 - | MessagePartUpdated2 - | MessagePartRemoved2 - | SessionNextAgentSwitched2 - | SessionNextModelSwitched2 - | SessionNextMoved2 - | SessionNextRenamed2 - | SessionNextForked2 - | SessionNextPrompted2 - | SessionNextPromptAdmitted2 - | SessionNextExecutionSettled2 - | SessionNextContextUpdated2 - | SessionNextSynthetic2 - | SessionNextSkillActivated2 - | SessionNextShellStarted2 - | SessionNextShellEnded2 - | SessionNextStepStarted2 - | SessionNextStepEnded2 - | SessionNextStepFailed2 - | SessionNextTextStarted2 - | SessionNextTextDelta2 - | SessionNextTextEnded2 - | SessionNextReasoningStarted2 - | SessionNextReasoningDelta2 - | SessionNextReasoningEnded2 - | SessionNextToolInputStarted2 - | SessionNextToolInputDelta2 - | SessionNextToolInputEnded2 - | SessionNextToolCalled2 - | SessionNextToolProgress2 - | SessionNextToolSuccess2 - | SessionNextToolFailed2 - | SessionNextRetried2 - | SessionNextCompactionStarted2 - | SessionNextCompactionDelta2 - | SessionNextCompactionEnded2 - | SessionNextRevertStaged2 - | SessionNextRevertCleared2 - | SessionNextRevertCommitted2 - | FileEdited2 - | ReferenceUpdated2 - | PermissionV2Asked2 - | PermissionV2Replied2 - | PluginAdded2 - | ProjectDirectoriesUpdated2 - | CommandUpdated2 - | SkillUpdated2 - | FileWatcherUpdated2 - | PtyCreated2 - | PtyUpdated2 - | PtyExited2 - | PtyDeleted2 - | ShellCreated2 - | ShellExited2 - | ShellDeleted2 - | QuestionV2Asked2 - | QuestionV2Replied2 - | QuestionV2Rejected2 - | TodoUpdated2 +export type V2Event = + | ModelsDevRefreshed + | IntegrationUpdated + | IntegrationConnectionUpdated + | CatalogUpdated + | AgentUpdated + | SessionCreated + | SessionUpdated + | SessionDeleted + | MessageUpdated + | MessageRemoved + | MessagePartUpdated + | MessagePartRemoved + | SessionNextAgentSwitched + | SessionNextModelSwitched + | SessionNextMoved + | SessionNextRenamed + | SessionNextForked + | SessionNextPrompted + | SessionNextPromptAdmitted + | SessionNextExecutionSettled + | SessionNextContextUpdated + | SessionNextSynthetic + | SessionNextSkillActivated + | SessionNextShellStarted + | SessionNextShellEnded + | SessionNextStepStarted + | SessionNextStepEnded + | SessionNextStepFailed + | SessionNextTextStarted + | SessionNextTextDelta + | SessionNextTextEnded + | SessionNextReasoningStarted + | SessionNextReasoningDelta + | SessionNextReasoningEnded + | SessionNextToolInputStarted + | SessionNextToolInputDelta + | SessionNextToolInputEnded + | SessionNextToolCalled + | SessionNextToolProgress + | SessionNextToolSuccess + | SessionNextToolFailed + | SessionNextRetried + | SessionNextCompactionStarted + | SessionNextCompactionDelta + | SessionNextCompactionEnded + | SessionNextRevertStaged + | SessionNextRevertCleared + | SessionNextRevertCommitted + | FileEdited + | ReferenceUpdated + | PermissionV2Asked + | PermissionV2Replied + | PluginAdded + | ProjectDirectoriesUpdated + | CommandUpdated + | SkillUpdated + | FileWatcherUpdated + | PtyCreated + | PtyUpdated + | PtyExited + | PtyDeleted + | ShellCreated + | ShellExited + | ShellDeleted + | FormCreated + | FormReplied + | FormCancelled + | TodoUpdated + | SessionStatus2 + | SessionIdle + | TuiPromptAppend + | TuiCommandExecute + | TuiToastShow + | TuiSessionSelect + | InstallationUpdated + | InstallationUpdateAvailable + | VcsBranchUpdated + | McpStatusChanged + | PermissionAsked + | PermissionReplied + | QuestionAsked + | QuestionReplied2 + | QuestionRejected2 + | SessionError | V2EventServerConnected -export type V2EventStreamV2 = string +export type V2EventStream = string /** * Payload-free change hint: the aggregate's durable log advanced to at least seq. Hints coalesce under backpressure (latest per aggregate) and are never a delivery guarantee. */ -export type EventLogHint2 = { +export type EventLogHint = { type: "log.hint" aggregateID: string seq: number @@ -10756,13 +8541,13 @@ export type EventLogHint2 = { /** * Hints may have been lost; treat every aggregate as potentially dirty and recover via bounded sweep plus durable log reads. Emitted first on every (re)subscribe. */ -export type EventLogSweepRequired2 = { +export type EventLogSweepRequired = { type: "log.sweep_required" } -export type EventLogChange2 = EventLogHint2 | EventLogSweepRequired2 +export type EventLogChange = EventLogHint | EventLogSweepRequired -export type EventLogChangeStream2 = string +export type EventLogChangeStream = string export type PtyNotFoundErrorV2 = { _tag: "PtyNotFoundError" @@ -10775,7 +8560,7 @@ export type PtyTicketConnectToken2 = { expires_in: number } -export type ForbiddenErrorV2 = { +export type ForbiddenError = { _tag: "ForbiddenError" message: string } @@ -10798,43 +8583,20 @@ export type Shell1V2 = { } } -export type ShellNotFoundErrorV2 = { +export type ShellNotFoundError = { _tag: "ShellNotFoundError" id: string message: string } -export type QuestionV2Request2 = { - id: string - sessionID: string - /** - * Questions to ask - */ - questions: Array - tool?: QuestionV2Tool2 -} - -export type QuestionV2Reply2 = { - /** - * User answers in order of questions (each answer is an array of selected labels) - */ - answers: Array -} - -export type QuestionNotFoundErrorV2 = { - _tag: "QuestionNotFoundError" - requestID: string - message: string -} - -export type ReferenceLocalSource2 = { +export type ReferenceLocalSource = { type: "local" path: string description?: string hidden?: boolean } -export type ReferenceGitSource2 = { +export type ReferenceGitSource = { type: "git" repository: string branch?: string @@ -10842,21 +8604,21 @@ export type ReferenceGitSource2 = { hidden?: boolean } -export type ReferenceSource2 = ReferenceLocalSource2 | ReferenceGitSource2 +export type ReferenceSource = ReferenceLocalSource | ReferenceGitSource -export type ReferenceInfo2 = { +export type ReferenceInfo = { name: string path: string description?: string hidden?: boolean - source: ReferenceSource2 + source: ReferenceSource } -export type ProjectCopyCopy2 = { +export type ProjectCopyCopy = { directory: string } -export type ProjectCopyErrorV2 = { +export type ProjectCopyError = { name: "ProjectCopyError" data: { message: string @@ -14997,6 +12759,42 @@ export type ExperimentalWorkspaceWarpResponses = { export type ExperimentalWorkspaceWarpResponse = ExperimentalWorkspaceWarpResponses[keyof ExperimentalWorkspaceWarpResponses] +export type PtyConnectData = { + body?: never + path: { + ptyID: string + } + query?: { + directory?: string + workspace?: string + cursor?: string + ticket?: string + } + url: "/pty/{ptyID}/connect" +} + +export type PtyConnectErrors = { + /** + * Forbidden + */ + 403: EffectHttpApiErrorForbidden + /** + * Not found + */ + 404: NotFoundError +} + +export type PtyConnectError = PtyConnectErrors[keyof PtyConnectErrors] + +export type PtyConnectResponses = { + /** + * Connected session + */ + 200: boolean +} + +export type PtyConnectResponse = PtyConnectResponses[keyof PtyConnectResponses] + export type V2HealthGetData = { body?: never path?: never @@ -15012,7 +12810,7 @@ export type V2HealthGetErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2HealthGetError = V2HealthGetErrors[keyof V2HealthGetErrors] @@ -15048,7 +12846,7 @@ export type V2LocationGetErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2LocationGetError = V2LocationGetErrors[keyof V2LocationGetErrors] @@ -15057,7 +12855,7 @@ export type V2LocationGetResponses = { /** * Location.Info */ - 200: LocationInfo2 + 200: LocationInfo } export type V2LocationGetResponse = V2LocationGetResponses[keyof V2LocationGetResponses] @@ -15082,7 +12880,7 @@ export type V2AgentListErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2AgentListError = V2AgentListErrors[keyof V2AgentListErrors] @@ -15092,8 +12890,8 @@ export type V2AgentListResponses = { * Success */ 200: { - location: LocationInfo2 - data: Array + location: LocationInfo + data: Array } } @@ -15119,7 +12917,7 @@ export type V2PluginListErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2PluginListError = V2PluginListErrors[keyof V2PluginListErrors] @@ -15129,8 +12927,8 @@ export type V2PluginListResponses = { * Success */ 200: { - location: LocationInfo2 - data: Array + location: LocationInfo + data: Array } } @@ -15144,7 +12942,7 @@ export type V2SessionListData = { /** * Maximum number of sessions to return. Defaults to the newest 50 sessions. */ - limit?: number | null + limit?: string | null /** * Session order for the first page. Use desc for newest first or asc for oldest first. */ @@ -15163,11 +12961,11 @@ export type V2SessionListErrors = { /** * InvalidCursorError | InvalidRequestError */ - 400: InvalidCursorErrorV2 | InvalidRequestError1 | InvalidRequestErrorV2 + 400: InvalidCursorError | InvalidRequestError1 | InvalidRequestErrorV2 /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2SessionListError = V2SessionListErrors[keyof V2SessionListErrors] @@ -15176,7 +12974,7 @@ export type V2SessionListResponses = { /** * SessionsResponse */ - 200: SessionsResponseV2 + 200: SessionsResponse } export type V2SessionListResponse = V2SessionListResponses[keyof V2SessionListResponses] @@ -15201,7 +12999,7 @@ export type V2SessionCreateErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2SessionCreateError = V2SessionCreateErrors[keyof V2SessionCreateErrors] @@ -15211,7 +13009,7 @@ export type V2SessionCreateResponses = { * Success */ 200: { - data: SessionV2Info2 + data: SessionV2Info } } @@ -15232,7 +13030,7 @@ export type V2SessionActiveErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2SessionActiveError = V2SessionActiveErrors[keyof V2SessionActiveErrors] @@ -15243,9 +13041,9 @@ export type V2SessionActiveResponses = { */ 200: { data: { - [key: string]: unknown | SessionActiveV2 + [key: string]: unknown | SessionActive } - watermarks: SessionWatermarksV2 + watermarks: SessionWatermarks } } @@ -15268,11 +13066,11 @@ export type V2SessionGetErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * SessionNotFoundError */ - 404: SessionNotFoundErrorV2 + 404: SessionNotFoundError } export type V2SessionGetError = V2SessionGetErrors[keyof V2SessionGetErrors] @@ -15282,7 +13080,7 @@ export type V2SessionGetResponses = { * Success */ 200: { - data: SessionV2Info2 + data: SessionV2Info } } @@ -15307,11 +13105,11 @@ export type V2SessionForkErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * SessionNotFoundError | MessageNotFoundError */ - 404: MessageNotFoundErrorV2 | SessionNotFoundErrorV2 + 404: MessageNotFoundError | SessionNotFoundError } export type V2SessionForkError = V2SessionForkErrors[keyof V2SessionForkErrors] @@ -15321,7 +13119,7 @@ export type V2SessionForkResponses = { * Success */ 200: { - data: SessionV2Info2 + data: SessionV2Info } } @@ -15346,11 +13144,11 @@ export type V2SessionSwitchAgentErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * SessionNotFoundError */ - 404: SessionNotFoundErrorV2 + 404: SessionNotFoundError } export type V2SessionSwitchAgentError = V2SessionSwitchAgentErrors[keyof V2SessionSwitchAgentErrors] @@ -15383,11 +13181,11 @@ export type V2SessionSwitchModelErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * SessionNotFoundError */ - 404: SessionNotFoundErrorV2 + 404: SessionNotFoundError } export type V2SessionSwitchModelError = V2SessionSwitchModelErrors[keyof V2SessionSwitchModelErrors] @@ -15420,11 +13218,11 @@ export type V2SessionRenameErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * SessionNotFoundError */ - 404: SessionNotFoundErrorV2 + 404: SessionNotFoundError } export type V2SessionRenameError = V2SessionRenameErrors[keyof V2SessionRenameErrors] @@ -15441,7 +13239,7 @@ export type V2SessionRenameResponse = V2SessionRenameResponses[keyof V2SessionRe export type V2SessionPromptData = { body: { id?: string | null - prompt: PromptInputV2 + prompt: PromptInput delivery?: "steer" | "queue" | null resume?: boolean | null } @@ -15460,15 +13258,15 @@ export type V2SessionPromptErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * SessionNotFoundError */ - 404: SessionNotFoundErrorV2 + 404: SessionNotFoundError /** * ConflictError */ - 409: ConflictErrorV2 + 409: ConflictError } export type V2SessionPromptError = V2SessionPromptErrors[keyof V2SessionPromptErrors] @@ -15478,7 +13276,7 @@ export type V2SessionPromptResponses = { * Success */ 200: { - data: SessionInputAdmitted2 + data: SessionInputAdmitted } } @@ -15491,7 +13289,7 @@ export type V2SessionCommandData = { arguments?: string | null agent?: string | null model?: ModelRef2 | null - files?: Array + files?: Array agents?: Array delivery?: "steer" | "queue" | null resume?: boolean | null @@ -15511,19 +13309,19 @@ export type V2SessionCommandErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * SessionNotFoundError | CommandNotFoundError */ - 404: CommandNotFoundErrorV2 | SessionNotFoundErrorV2 + 404: CommandNotFoundError | SessionNotFoundError /** * ConflictError */ - 409: ConflictErrorV2 + 409: ConflictError /** * CommandEvaluationError */ - 500: CommandEvaluationErrorV2 + 500: CommandEvaluationError } export type V2SessionCommandError = V2SessionCommandErrors[keyof V2SessionCommandErrors] @@ -15533,7 +13331,7 @@ export type V2SessionCommandResponses = { * Success */ 200: { - data: SessionInputAdmitted2 + data: SessionInputAdmitted } } @@ -15560,11 +13358,11 @@ export type V2SessionSkillErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * SessionNotFoundError | SkillNotFoundError */ - 404: SkillNotFoundErrorV2 | SessionNotFoundErrorV2 + 404: SkillNotFoundError | SessionNotFoundError } export type V2SessionSkillError = V2SessionSkillErrors[keyof V2SessionSkillErrors] @@ -15601,11 +13399,11 @@ export type V2SessionSyntheticErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * SessionNotFoundError */ - 404: SessionNotFoundErrorV2 + 404: SessionNotFoundError } export type V2SessionSyntheticError = V2SessionSyntheticErrors[keyof V2SessionSyntheticErrors] @@ -15636,11 +13434,11 @@ export type V2SessionCompactErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * SessionNotFoundError */ - 404: SessionNotFoundErrorV2 + 404: SessionNotFoundError /** * SessionBusyError */ @@ -15652,7 +13450,7 @@ export type V2SessionCompactErrors = { /** * ServiceUnavailableError */ - 503: ServiceUnavailableErrorV2 + 503: ServiceUnavailableError } export type V2SessionCompactError = V2SessionCompactErrors[keyof V2SessionCompactErrors] @@ -15683,15 +13481,15 @@ export type V2SessionWaitErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * SessionNotFoundError */ - 404: SessionNotFoundErrorV2 + 404: SessionNotFoundError /** * ServiceUnavailableError */ - 503: ServiceUnavailableErrorV2 + 503: ServiceUnavailableError } export type V2SessionWaitError = V2SessionWaitErrors[keyof V2SessionWaitErrors] @@ -15725,11 +13523,11 @@ export type V2SessionRevertStageErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * MessageNotFoundError | SessionNotFoundError */ - 404: MessageNotFoundErrorV2 | SessionNotFoundErrorV2 + 404: MessageNotFoundError | SessionNotFoundError /** * SessionBusyError */ @@ -15770,11 +13568,11 @@ export type V2SessionRevertClearErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * SessionNotFoundError */ - 404: SessionNotFoundErrorV2 + 404: SessionNotFoundError /** * SessionBusyError */ @@ -15813,11 +13611,11 @@ export type V2SessionRevertCommitErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * SessionNotFoundError */ - 404: SessionNotFoundErrorV2 + 404: SessionNotFoundError /** * SessionBusyError */ @@ -15852,11 +13650,11 @@ export type V2SessionContextErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * SessionNotFoundError */ - 404: SessionNotFoundErrorV2 + 404: SessionNotFoundError /** * UnknownError */ @@ -15870,7 +13668,7 @@ export type V2SessionContextResponses = { * Success */ 200: { - data: Array + data: Array } } @@ -15893,11 +13691,11 @@ export type V2SessionContextEntryListErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * SessionNotFoundError */ - 404: SessionNotFoundErrorV2 + 404: SessionNotFoundError } export type V2SessionContextEntryListError = V2SessionContextEntryListErrors[keyof V2SessionContextEntryListErrors] @@ -15907,7 +13705,7 @@ export type V2SessionContextEntryListResponses = { * Success */ 200: { - data: Array + data: Array } } @@ -15918,7 +13716,7 @@ export type V2SessionContextEntryRemoveData = { body?: never path: { sessionID: string - key: SessionContextEntryKey2 + key: SessionContextEntryKey } query?: never url: "/api/session/{sessionID}/context-entry/{key}" @@ -15932,11 +13730,11 @@ export type V2SessionContextEntryRemoveErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * SessionNotFoundError */ - 404: SessionNotFoundErrorV2 + 404: SessionNotFoundError } export type V2SessionContextEntryRemoveError = @@ -15958,7 +13756,7 @@ export type V2SessionContextEntryPutData = { } path: { sessionID: string - key: SessionContextEntryKey2 + key: SessionContextEntryKey } query?: never url: "/api/session/{sessionID}/context-entry/{key}" @@ -15972,11 +13770,11 @@ export type V2SessionContextEntryPutErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * SessionNotFoundError */ - 404: SessionNotFoundErrorV2 + 404: SessionNotFoundError } export type V2SessionContextEntryPutError = V2SessionContextEntryPutErrors[keyof V2SessionContextEntryPutErrors] @@ -16011,11 +13809,11 @@ export type V2SessionLogErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * SessionNotFoundError */ - 404: SessionNotFoundErrorV2 + 404: SessionNotFoundError } export type V2SessionLogError = V2SessionLogErrors[keyof V2SessionLogErrors] @@ -16027,7 +13825,7 @@ export type V2SessionLogResponses = { 200: { id: string | null event: string - data: SessionLogItemStreamV2 + data: SessionLogItemStream } } @@ -16050,11 +13848,11 @@ export type V2SessionInterruptErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * SessionNotFoundError */ - 404: SessionNotFoundErrorV2 + 404: SessionNotFoundError } export type V2SessionInterruptError = V2SessionInterruptErrors[keyof V2SessionInterruptErrors] @@ -16085,11 +13883,11 @@ export type V2SessionBackgroundErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * SessionNotFoundError */ - 404: SessionNotFoundErrorV2 + 404: SessionNotFoundError } export type V2SessionBackgroundError = V2SessionBackgroundErrors[keyof V2SessionBackgroundErrors] @@ -16121,11 +13919,11 @@ export type V2SessionMessageErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * SessionNotFoundError | MessageNotFoundError */ - 404: MessageNotFoundErrorV2 | SessionNotFoundErrorV2 + 404: MessageNotFoundError | SessionNotFoundError } export type V2SessionMessageError = V2SessionMessageErrors[keyof V2SessionMessageErrors] @@ -16135,7 +13933,7 @@ export type V2SessionMessageResponses = { * Success */ 200: { - data: SessionMessage2 + data: SessionMessage } } @@ -16150,7 +13948,7 @@ export type V2SessionMessagesData = { /** * Maximum number of messages to return. When omitted, the endpoint returns its default page size. */ - limit?: number | null + limit?: string | null /** * Message order for the first page. Use desc for newest first or asc for oldest first. */ @@ -16164,15 +13962,15 @@ export type V2SessionMessagesErrors = { /** * InvalidCursorError | InvalidRequestError */ - 400: InvalidCursorErrorV2 | InvalidRequestErrorV2 + 400: InvalidCursorError | InvalidRequestErrorV2 /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * SessionNotFoundError */ - 404: SessionNotFoundErrorV2 + 404: SessionNotFoundError /** * UnknownError */ @@ -16185,7 +13983,7 @@ export type V2SessionMessagesResponses = { /** * SessionMessagesResponse */ - 200: SessionMessagesResponseV2 + 200: SessionMessagesResponse } export type V2SessionMessagesResponse = V2SessionMessagesResponses[keyof V2SessionMessagesResponses] @@ -16210,11 +14008,11 @@ export type V2ModelListErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * ServiceUnavailableError */ - 503: ServiceUnavailableErrorV2 + 503: ServiceUnavailableError } export type V2ModelListError = V2ModelListErrors[keyof V2ModelListErrors] @@ -16224,8 +14022,8 @@ export type V2ModelListResponses = { * Success */ 200: { - location: LocationInfo2 - data: Array + location: LocationInfo + data: Array } } @@ -16251,11 +14049,11 @@ export type V2ModelDefaultErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * ServiceUnavailableError */ - 503: ServiceUnavailableErrorV2 + 503: ServiceUnavailableError } export type V2ModelDefaultError = V2ModelDefaultErrors[keyof V2ModelDefaultErrors] @@ -16265,8 +14063,8 @@ export type V2ModelDefaultResponses = { * Success */ 200: { - location: LocationInfo2 - data: ModelV2Info2 | null + location: LocationInfo + data: ModelV2Info | null } } @@ -16295,11 +14093,11 @@ export type V2GenerateTextErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * ServiceUnavailableError */ - 503: ServiceUnavailableErrorV2 + 503: ServiceUnavailableError } export type V2GenerateTextError = V2GenerateTextErrors[keyof V2GenerateTextErrors] @@ -16308,7 +14106,7 @@ export type V2GenerateTextResponses = { /** * GenerateTextResponse */ - 200: GenerateTextResponseV2 + 200: GenerateTextResponse } export type V2GenerateTextResponse = V2GenerateTextResponses[keyof V2GenerateTextResponses] @@ -16333,11 +14131,11 @@ export type V2ProviderListErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * ServiceUnavailableError */ - 503: ServiceUnavailableErrorV2 + 503: ServiceUnavailableError } export type V2ProviderListError = V2ProviderListErrors[keyof V2ProviderListErrors] @@ -16347,8 +14145,8 @@ export type V2ProviderListResponses = { * Success */ 200: { - location: LocationInfo2 - data: Array + location: LocationInfo + data: Array } } @@ -16376,15 +14174,15 @@ export type V2ProviderGetErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * ProviderNotFoundError */ - 404: ProviderNotFoundErrorV2 + 404: ProviderNotFoundError /** * ServiceUnavailableError */ - 503: ServiceUnavailableErrorV2 + 503: ServiceUnavailableError } export type V2ProviderGetError = V2ProviderGetErrors[keyof V2ProviderGetErrors] @@ -16394,8 +14192,8 @@ export type V2ProviderGetResponses = { * Success */ 200: { - location: LocationInfo2 - data: ProviderV2Info2 + location: LocationInfo + data: ProviderV2Info } } @@ -16421,7 +14219,7 @@ export type V2IntegrationListErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2IntegrationListError = V2IntegrationListErrors[keyof V2IntegrationListErrors] @@ -16431,8 +14229,8 @@ export type V2IntegrationListResponses = { * Success */ 200: { - location: LocationInfo2 - data: Array + location: LocationInfo + data: Array } } @@ -16460,7 +14258,7 @@ export type V2IntegrationGetErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2IntegrationGetError = V2IntegrationGetErrors[keyof V2IntegrationGetErrors] @@ -16470,8 +14268,8 @@ export type V2IntegrationGetResponses = { * Success */ 200: { - location: LocationInfo2 - data: IntegrationInfo2 | null + location: LocationInfo + data: IntegrationInfo | null } } @@ -16502,7 +14300,7 @@ export type V2IntegrationConnectKeyErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2IntegrationConnectKeyError = V2IntegrationConnectKeyErrors[keyof V2IntegrationConnectKeyErrors] @@ -16544,7 +14342,7 @@ export type V2IntegrationConnectOauthErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2IntegrationConnectOauthError = V2IntegrationConnectOauthErrors[keyof V2IntegrationConnectOauthErrors] @@ -16554,8 +14352,8 @@ export type V2IntegrationConnectOauthResponses = { * Success */ 200: { - location: LocationInfo2 - data: IntegrationAttempt2 + location: LocationInfo + data: IntegrationAttempt } } @@ -16584,7 +14382,7 @@ export type V2IntegrationAttemptCancelErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2IntegrationAttemptCancelError = V2IntegrationAttemptCancelErrors[keyof V2IntegrationAttemptCancelErrors] @@ -16621,7 +14419,7 @@ export type V2IntegrationAttemptStatusErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2IntegrationAttemptStatusError = V2IntegrationAttemptStatusErrors[keyof V2IntegrationAttemptStatusErrors] @@ -16631,8 +14429,8 @@ export type V2IntegrationAttemptStatusResponses = { * Success */ 200: { - location: LocationInfo2 - data: IntegrationAttemptStatus2 + location: LocationInfo + data: IntegrationAttemptStatus } } @@ -16663,7 +14461,7 @@ export type V2IntegrationAttemptCompleteErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2IntegrationAttemptCompleteError = @@ -16699,7 +14497,7 @@ export type V2McpListErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2McpListError = V2McpListErrors[keyof V2McpListErrors] @@ -16709,8 +14507,8 @@ export type V2McpListResponses = { * Success */ 200: { - location: LocationInfo2 - data: Array + location: LocationInfo + data: Array } } @@ -16738,7 +14536,7 @@ export type V2CredentialRemoveErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2CredentialRemoveError = V2CredentialRemoveErrors[keyof V2CredentialRemoveErrors] @@ -16776,7 +14574,7 @@ export type V2CredentialUpdateErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2CredentialUpdateError = V2CredentialUpdateErrors[keyof V2CredentialUpdateErrors] @@ -16810,7 +14608,7 @@ export type V2ProjectCurrentErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2ProjectCurrentError = V2ProjectCurrentErrors[keyof V2ProjectCurrentErrors] @@ -16819,7 +14617,7 @@ export type V2ProjectCurrentResponses = { /** * Project.Current */ - 200: ProjectCurrent2 + 200: ProjectCurrent } export type V2ProjectCurrentResponse = V2ProjectCurrentResponses[keyof V2ProjectCurrentResponses] @@ -16846,7 +14644,7 @@ export type V2ProjectDirectoriesErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2ProjectDirectoriesError = V2ProjectDirectoriesErrors[keyof V2ProjectDirectoriesErrors] @@ -16860,6 +14658,311 @@ export type V2ProjectDirectoriesResponses = { export type V2ProjectDirectoriesResponse = V2ProjectDirectoriesResponses[keyof V2ProjectDirectoriesResponses] +export type V2FormRequestListData = { + body?: never + path?: never + query?: { + location?: { + directory?: string | null + workspace?: string | null + } | null + } + url: "/api/form/request" +} + +export type V2FormRequestListErrors = { + /** + * InvalidRequestError + */ + 400: InvalidRequestErrorV2 + /** + * UnauthorizedError + */ + 401: UnauthorizedError +} + +export type V2FormRequestListError = V2FormRequestListErrors[keyof V2FormRequestListErrors] + +export type V2FormRequestListResponses = { + /** + * Success + */ + 200: { + location: LocationInfo + data: Array + } +} + +export type V2FormRequestListResponse = V2FormRequestListResponses[keyof V2FormRequestListResponses] + +export type V2SessionFormListData = { + body?: never + path: { + sessionID: string + } + query?: { + location?: { + directory?: string | null + workspace?: string | null + } | null + } + url: "/api/session/{sessionID}/form" +} + +export type V2SessionFormListErrors = { + /** + * InvalidRequestError + */ + 400: InvalidRequestErrorV2 + /** + * UnauthorizedError + */ + 401: UnauthorizedError + /** + * SessionNotFoundError + */ + 404: SessionNotFoundError +} + +export type V2SessionFormListError = V2SessionFormListErrors[keyof V2SessionFormListErrors] + +export type V2SessionFormListResponses = { + /** + * Success + */ + 200: { + location: LocationInfo + data: Array + } +} + +export type V2SessionFormListResponse = V2SessionFormListResponses[keyof V2SessionFormListResponses] + +export type V2SessionFormCreateData = { + body: FormCreatePayload + path: { + sessionID: string + } + query?: { + location?: { + directory?: string | null + workspace?: string | null + } | null + } + url: "/api/session/{sessionID}/form" +} + +export type V2SessionFormCreateErrors = { + /** + * InvalidRequestError + */ + 400: InvalidRequestError1 | InvalidRequestErrorV2 + /** + * UnauthorizedError + */ + 401: UnauthorizedError + /** + * SessionNotFoundError + */ + 404: SessionNotFoundError + /** + * ConflictError + */ + 409: ConflictError +} + +export type V2SessionFormCreateError = V2SessionFormCreateErrors[keyof V2SessionFormCreateErrors] + +export type V2SessionFormCreateResponses = { + /** + * Success + */ + 200: { + location: LocationInfo + data: FormFormInfo2 | FormUrlInfo2 + } +} + +export type V2SessionFormCreateResponse = V2SessionFormCreateResponses[keyof V2SessionFormCreateResponses] + +export type V2SessionFormGetData = { + body?: never + path: { + sessionID: string + formID: string + } + query?: { + location?: { + directory?: string | null + workspace?: string | null + } | null + } + url: "/api/session/{sessionID}/form/{formID}" +} + +export type V2SessionFormGetErrors = { + /** + * InvalidRequestError + */ + 400: InvalidRequestErrorV2 + /** + * UnauthorizedError + */ + 401: UnauthorizedError + /** + * FormNotFoundError | SessionNotFoundError + */ + 404: FormNotFoundError | SessionNotFoundError +} + +export type V2SessionFormGetError = V2SessionFormGetErrors[keyof V2SessionFormGetErrors] + +export type V2SessionFormGetResponses = { + /** + * Success + */ + 200: { + location: LocationInfo + data: FormFormInfo2 | FormUrlInfo2 + } +} + +export type V2SessionFormGetResponse = V2SessionFormGetResponses[keyof V2SessionFormGetResponses] + +export type V2SessionFormStateData = { + body?: never + path: { + sessionID: string + formID: string + } + query?: { + location?: { + directory?: string | null + workspace?: string | null + } | null + } + url: "/api/session/{sessionID}/form/{formID}/state" +} + +export type V2SessionFormStateErrors = { + /** + * InvalidRequestError + */ + 400: InvalidRequestErrorV2 + /** + * UnauthorizedError + */ + 401: UnauthorizedError + /** + * FormNotFoundError | SessionNotFoundError + */ + 404: FormNotFoundError | SessionNotFoundError +} + +export type V2SessionFormStateError = V2SessionFormStateErrors[keyof V2SessionFormStateErrors] + +export type V2SessionFormStateResponses = { + /** + * Success + */ + 200: { + location: LocationInfo + data: FormState + } +} + +export type V2SessionFormStateResponse = V2SessionFormStateResponses[keyof V2SessionFormStateResponses] + +export type V2SessionFormReplyData = { + body: FormReply + path: { + sessionID: string + formID: string + } + query?: { + location?: { + directory?: string | null + workspace?: string | null + } | null + } + url: "/api/session/{sessionID}/form/{formID}/reply" +} + +export type V2SessionFormReplyErrors = { + /** + * FormInvalidAnswerError | InvalidRequestError + */ + 400: FormInvalidAnswerError | InvalidRequestErrorV2 + /** + * UnauthorizedError + */ + 401: UnauthorizedError + /** + * FormNotFoundError | SessionNotFoundError + */ + 404: FormNotFoundError | SessionNotFoundError + /** + * FormAlreadySettledError + */ + 409: FormAlreadySettledError +} + +export type V2SessionFormReplyError = V2SessionFormReplyErrors[keyof V2SessionFormReplyErrors] + +export type V2SessionFormReplyResponses = { + /** + * + */ + 204: void +} + +export type V2SessionFormReplyResponse = V2SessionFormReplyResponses[keyof V2SessionFormReplyResponses] + +export type V2SessionFormCancelData = { + body?: never + path: { + sessionID: string + formID: string + } + query?: { + location?: { + directory?: string | null + workspace?: string | null + } | null + } + url: "/api/session/{sessionID}/form/{formID}/cancel" +} + +export type V2SessionFormCancelErrors = { + /** + * InvalidRequestError + */ + 400: InvalidRequestErrorV2 + /** + * UnauthorizedError + */ + 401: UnauthorizedError + /** + * FormNotFoundError | SessionNotFoundError + */ + 404: FormNotFoundError | SessionNotFoundError + /** + * FormAlreadySettledError + */ + 409: FormAlreadySettledError +} + +export type V2SessionFormCancelError = V2SessionFormCancelErrors[keyof V2SessionFormCancelErrors] + +export type V2SessionFormCancelResponses = { + /** + * + */ + 204: void +} + +export type V2SessionFormCancelResponse = V2SessionFormCancelResponses[keyof V2SessionFormCancelResponses] + export type V2PermissionRequestListData = { body?: never path?: never @@ -16880,7 +14983,7 @@ export type V2PermissionRequestListErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2PermissionRequestListError = V2PermissionRequestListErrors[keyof V2PermissionRequestListErrors] @@ -16890,8 +14993,8 @@ export type V2PermissionRequestListResponses = { * Success */ 200: { - location: LocationInfo2 - data: Array + location: LocationInfo + data: Array } } @@ -16914,7 +15017,7 @@ export type V2PermissionSavedListErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2PermissionSavedListError = V2PermissionSavedListErrors[keyof V2PermissionSavedListErrors] @@ -16924,7 +15027,7 @@ export type V2PermissionSavedListResponses = { * Success */ 200: { - data: Array + data: Array } } @@ -16947,7 +15050,7 @@ export type V2PermissionSavedRemoveErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2PermissionSavedRemoveError = V2PermissionSavedRemoveErrors[keyof V2PermissionSavedRemoveErrors] @@ -16978,11 +15081,11 @@ export type V2SessionPermissionListErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * SessionNotFoundError */ - 404: SessionNotFoundErrorV2 + 404: SessionNotFoundError } export type V2SessionPermissionListError = V2SessionPermissionListErrors[keyof V2SessionPermissionListErrors] @@ -16992,7 +15095,7 @@ export type V2SessionPermissionListResponses = { * Success */ 200: { - data: Array + data: Array } } @@ -17025,11 +15128,11 @@ export type V2SessionPermissionCreateErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * SessionNotFoundError */ - 404: SessionNotFoundErrorV2 + 404: SessionNotFoundError } export type V2SessionPermissionCreateError = V2SessionPermissionCreateErrors[keyof V2SessionPermissionCreateErrors] @@ -17041,7 +15144,7 @@ export type V2SessionPermissionCreateResponses = { 200: { data: { id: string - effect: PermissionV2Effect2 + effect: PermissionV2Effect } } } @@ -17067,11 +15170,11 @@ export type V2SessionPermissionGetErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * SessionNotFoundError | PermissionNotFoundError */ - 404: PermissionNotFoundErrorV2 | SessionNotFoundErrorV2 + 404: PermissionNotFoundErrorV2 | SessionNotFoundError } export type V2SessionPermissionGetError = V2SessionPermissionGetErrors[keyof V2SessionPermissionGetErrors] @@ -17081,7 +15184,7 @@ export type V2SessionPermissionGetResponses = { * Success */ 200: { - data: PermissionV2Request2 + data: PermissionV2Request } } @@ -17108,11 +15211,11 @@ export type V2SessionPermissionReplyErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * SessionNotFoundError | PermissionNotFoundError */ - 404: PermissionNotFoundErrorV2 | SessionNotFoundErrorV2 + 404: PermissionNotFoundErrorV2 | SessionNotFoundError } export type V2SessionPermissionReplyError = V2SessionPermissionReplyErrors[keyof V2SessionPermissionReplyErrors] @@ -17147,7 +15250,7 @@ export type V2FsReadErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2FsReadError = V2FsReadErrors[keyof V2FsReadErrors] @@ -17182,7 +15285,7 @@ export type V2FsListErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2FsListError = V2FsListErrors[keyof V2FsListErrors] @@ -17192,8 +15295,8 @@ export type V2FsListResponses = { * Success */ 200: { - location: LocationInfo2 - data: Array + location: LocationInfo + data: Array } } @@ -17222,7 +15325,7 @@ export type V2FsFindErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2FsFindError = V2FsFindErrors[keyof V2FsFindErrors] @@ -17232,8 +15335,8 @@ export type V2FsFindResponses = { * Success */ 200: { - location: LocationInfo2 - data: Array + location: LocationInfo + data: Array } } @@ -17259,7 +15362,7 @@ export type V2CommandListErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2CommandListError = V2CommandListErrors[keyof V2CommandListErrors] @@ -17269,8 +15372,8 @@ export type V2CommandListResponses = { * Success */ 200: { - location: LocationInfo2 - data: Array + location: LocationInfo + data: Array } } @@ -17296,7 +15399,7 @@ export type V2SkillListErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2SkillListError = V2SkillListErrors[keyof V2SkillListErrors] @@ -17306,7 +15409,7 @@ export type V2SkillListResponses = { * Success */ 200: { - location: LocationInfo2 + location: LocationInfo data: Array } } @@ -17328,7 +15431,7 @@ export type V2EventSubscribeErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2EventSubscribeError = V2EventSubscribeErrors[keyof V2EventSubscribeErrors] @@ -17337,7 +15440,11 @@ export type V2EventSubscribeResponses = { /** * Success */ - 200: V2Event + 200: { + id: string | null + event: string + data: V2EventStream + } } export type V2EventSubscribeResponse = V2EventSubscribeResponses[keyof V2EventSubscribeResponses] @@ -17357,7 +15464,7 @@ export type V2EventChangesErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2EventChangesError = V2EventChangesErrors[keyof V2EventChangesErrors] @@ -17369,7 +15476,7 @@ export type V2EventChangesResponses = { 200: { id: string | null event: string - data: EventLogChangeStream2 + data: EventLogChangeStream } } @@ -17395,7 +15502,7 @@ export type V2PtyListErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2PtyListError = V2PtyListErrors[keyof V2PtyListErrors] @@ -17405,7 +15512,7 @@ export type V2PtyListResponses = { * Success */ 200: { - location: LocationInfo2 + location: LocationInfo data: Array } } @@ -17440,7 +15547,7 @@ export type V2PtyCreateErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2PtyCreateError = V2PtyCreateErrors[keyof V2PtyCreateErrors] @@ -17450,7 +15557,7 @@ export type V2PtyCreateResponses = { * Success */ 200: { - location: LocationInfo2 + location: LocationInfo data: PtyV2 } } @@ -17479,7 +15586,7 @@ export type V2PtyRemoveErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * PtyNotFoundError */ @@ -17519,7 +15626,7 @@ export type V2PtyGetErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * PtyNotFoundError */ @@ -17533,7 +15640,7 @@ export type V2PtyGetResponses = { * Success */ 200: { - location: LocationInfo2 + location: LocationInfo data: PtyV2 } } @@ -17568,7 +15675,7 @@ export type V2PtyUpdateErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * PtyNotFoundError */ @@ -17582,7 +15689,7 @@ export type V2PtyUpdateResponses = { * Success */ 200: { - location: LocationInfo2 + location: LocationInfo data: PtyV2 } } @@ -17611,11 +15718,11 @@ export type V2PtyConnectTokenErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * ForbiddenError */ - 403: ForbiddenErrorV2 + 403: ForbiddenError /** * PtyNotFoundError */ @@ -17629,7 +15736,7 @@ export type V2PtyConnectTokenResponses = { * Success */ 200: { - location: LocationInfo2 + location: LocationInfo data: PtyTicketConnectToken2 } } @@ -17658,11 +15765,11 @@ export type V2PtyConnectErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * ForbiddenError */ - 403: ForbiddenErrorV2 + 403: ForbiddenError /** * PtyNotFoundError */ @@ -17700,7 +15807,7 @@ export type V2ShellListErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2ShellListError = V2ShellListErrors[keyof V2ShellListErrors] @@ -17710,7 +15817,7 @@ export type V2ShellListResponses = { * Success */ 200: { - location: LocationInfo2 + location: LocationInfo data: Array } } @@ -17744,7 +15851,7 @@ export type V2ShellCreateErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2ShellCreateError = V2ShellCreateErrors[keyof V2ShellCreateErrors] @@ -17754,7 +15861,7 @@ export type V2ShellCreateResponses = { * Success */ 200: { - location: LocationInfo2 + location: LocationInfo data: Shell1V2 } } @@ -17783,11 +15890,11 @@ export type V2ShellRemoveErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * ShellNotFoundError */ - 404: ShellNotFoundErrorV2 + 404: ShellNotFoundError } export type V2ShellRemoveError = V2ShellRemoveErrors[keyof V2ShellRemoveErrors] @@ -17823,11 +15930,11 @@ export type V2ShellGetErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * ShellNotFoundError */ - 404: ShellNotFoundErrorV2 + 404: ShellNotFoundError } export type V2ShellGetError = V2ShellGetErrors[keyof V2ShellGetErrors] @@ -17837,7 +15944,7 @@ export type V2ShellGetResponses = { * Success */ 200: { - location: LocationInfo2 + location: LocationInfo data: Shell1V2 } } @@ -17868,11 +15975,11 @@ export type V2ShellOutputErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError /** * ShellNotFoundError */ - 404: ShellNotFoundErrorV2 + 404: ShellNotFoundError } export type V2ShellOutputError = V2ShellOutputErrors[keyof V2ShellOutputErrors] @@ -17882,7 +15989,7 @@ export type V2ShellOutputResponses = { * Success */ 200: { - location: LocationInfo2 + location: LocationInfo data: { output: string cursor: number @@ -17894,152 +16001,6 @@ export type V2ShellOutputResponses = { export type V2ShellOutputResponse = V2ShellOutputResponses[keyof V2ShellOutputResponses] -export type V2QuestionRequestListData = { - body?: never - path?: never - query?: { - location?: { - directory?: string | null - workspace?: string | null - } | null - } - url: "/api/question/request" -} - -export type V2QuestionRequestListErrors = { - /** - * InvalidRequestError - */ - 400: InvalidRequestErrorV2 - /** - * UnauthorizedError - */ - 401: UnauthorizedErrorV2 -} - -export type V2QuestionRequestListError = V2QuestionRequestListErrors[keyof V2QuestionRequestListErrors] - -export type V2QuestionRequestListResponses = { - /** - * Success - */ - 200: { - location: LocationInfo2 - data: Array - } -} - -export type V2QuestionRequestListResponse = V2QuestionRequestListResponses[keyof V2QuestionRequestListResponses] - -export type V2SessionQuestionListData = { - body?: never - path: { - sessionID: string - } - query?: never - url: "/api/session/{sessionID}/question" -} - -export type V2SessionQuestionListErrors = { - /** - * InvalidRequestError - */ - 400: InvalidRequestErrorV2 - /** - * UnauthorizedError - */ - 401: UnauthorizedErrorV2 - /** - * SessionNotFoundError - */ - 404: SessionNotFoundErrorV2 -} - -export type V2SessionQuestionListError = V2SessionQuestionListErrors[keyof V2SessionQuestionListErrors] - -export type V2SessionQuestionListResponses = { - /** - * Success - */ - 200: { - data: Array - } -} - -export type V2SessionQuestionListResponse = V2SessionQuestionListResponses[keyof V2SessionQuestionListResponses] - -export type V2SessionQuestionReplyData = { - body: QuestionV2Reply2 - path: { - sessionID: string - requestID: string - } - query?: never - url: "/api/session/{sessionID}/question/{requestID}/reply" -} - -export type V2SessionQuestionReplyErrors = { - /** - * InvalidRequestError - */ - 400: InvalidRequestErrorV2 - /** - * UnauthorizedError - */ - 401: UnauthorizedErrorV2 - /** - * SessionNotFoundError | QuestionNotFoundError - */ - 404: QuestionNotFoundErrorV2 | SessionNotFoundErrorV2 -} - -export type V2SessionQuestionReplyError = V2SessionQuestionReplyErrors[keyof V2SessionQuestionReplyErrors] - -export type V2SessionQuestionReplyResponses = { - /** - * - */ - 204: void -} - -export type V2SessionQuestionReplyResponse = V2SessionQuestionReplyResponses[keyof V2SessionQuestionReplyResponses] - -export type V2SessionQuestionRejectData = { - body?: never - path: { - sessionID: string - requestID: string - } - query?: never - url: "/api/session/{sessionID}/question/{requestID}/reject" -} - -export type V2SessionQuestionRejectErrors = { - /** - * InvalidRequestError - */ - 400: InvalidRequestErrorV2 - /** - * UnauthorizedError - */ - 401: UnauthorizedErrorV2 - /** - * SessionNotFoundError | QuestionNotFoundError - */ - 404: QuestionNotFoundErrorV2 | SessionNotFoundErrorV2 -} - -export type V2SessionQuestionRejectError = V2SessionQuestionRejectErrors[keyof V2SessionQuestionRejectErrors] - -export type V2SessionQuestionRejectResponses = { - /** - * - */ - 204: void -} - -export type V2SessionQuestionRejectResponse = V2SessionQuestionRejectResponses[keyof V2SessionQuestionRejectResponses] - export type V2ReferenceListData = { body?: never path?: never @@ -18060,7 +16021,7 @@ export type V2ReferenceListErrors = { /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2ReferenceListError = V2ReferenceListErrors[keyof V2ReferenceListErrors] @@ -18070,8 +16031,8 @@ export type V2ReferenceListResponses = { * Success */ 200: { - location: LocationInfo2 - data: Array + location: LocationInfo + data: Array } } @@ -18098,11 +16059,11 @@ export type V2ProjectCopyRemoveErrors = { /** * ProjectCopyError | InvalidRequestError */ - 400: ProjectCopyErrorV2 | InvalidRequestErrorV2 + 400: ProjectCopyError | InvalidRequestErrorV2 /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2ProjectCopyRemoveError = V2ProjectCopyRemoveErrors[keyof V2ProjectCopyRemoveErrors] @@ -18138,11 +16099,11 @@ export type V2ProjectCopyCreateErrors = { /** * ProjectCopyError | InvalidRequestError */ - 400: ProjectCopyErrorV2 | InvalidRequestErrorV2 + 400: ProjectCopyError | InvalidRequestErrorV2 /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2ProjectCopyCreateError = V2ProjectCopyCreateErrors[keyof V2ProjectCopyCreateErrors] @@ -18151,7 +16112,7 @@ export type V2ProjectCopyCreateResponses = { /** * ProjectCopy.Copy */ - 200: ProjectCopyCopy2 + 200: ProjectCopyCopy } export type V2ProjectCopyCreateResponse = V2ProjectCopyCreateResponses[keyof V2ProjectCopyCreateResponses] @@ -18174,11 +16135,11 @@ export type V2ProjectCopyRefreshErrors = { /** * ProjectCopyError | InvalidRequestError */ - 400: ProjectCopyErrorV2 | InvalidRequestErrorV2 + 400: ProjectCopyError | InvalidRequestErrorV2 /** * UnauthorizedError */ - 401: UnauthorizedErrorV2 + 401: UnauthorizedError } export type V2ProjectCopyRefreshError = V2ProjectCopyRefreshErrors[keyof V2ProjectCopyRefreshErrors] @@ -18191,39 +16152,3 @@ export type V2ProjectCopyRefreshResponses = { } export type V2ProjectCopyRefreshResponse = V2ProjectCopyRefreshResponses[keyof V2ProjectCopyRefreshResponses] - -export type PtyConnectData = { - body?: never - path: { - ptyID: string - } - query?: { - directory?: string - workspace?: string - cursor?: string - ticket?: string - } - url: "/pty/{ptyID}/connect" -} - -export type PtyConnectErrors = { - /** - * Forbidden - */ - 403: EffectHttpApiErrorForbidden - /** - * Not found - */ - 404: NotFoundError -} - -export type PtyConnectError = PtyConnectErrors[keyof PtyConnectErrors] - -export type PtyConnectResponses = { - /** - * Connected session - */ - 200: boolean -} - -export type PtyConnectResponse = PtyConnectResponses[keyof PtyConnectResponses]