// This file is auto-generated by @hey-api/openapi-ts export type EventServerInstanceDisposed = { type: "server.instance.disposed" properties: { directory: string } } export type EventInstallationUpdated = { type: "installation.updated" properties: { version: string } } export type EventInstallationUpdateAvailable = { type: "installation.update-available" properties: { version: string } } export type EventLspClientDiagnostics = { type: "lsp.client.diagnostics" properties: { serverID: string path: string } } export type EventLspUpdated = { type: "lsp.updated" properties: { [key: string]: unknown } } export type FileDiff = { file: string before: string after: string additions: number deletions: number } export type UserMessage = { id: string sessionID: string role: "user" time: { created: number } summary?: { title?: string body?: string diffs: Array } agent: string model: { providerID: string modelID: string } system?: string tools?: { [key: string]: boolean } } export type ProviderAuthError = { name: "ProviderAuthError" data: { providerID: string message: string } } export type UnknownError = { name: "UnknownError" data: { message: string } } export type MessageOutputLengthError = { name: "MessageOutputLengthError" data: { [key: string]: unknown } } export type MessageAbortedError = { name: "MessageAbortedError" data: { message: string } } export type ApiError = { name: "APIError" data: { message: string statusCode?: number isRetryable: boolean responseHeaders?: { [key: string]: string } responseBody?: string } } export type AssistantMessage = { id: string sessionID: string role: "assistant" time: { created: number completed?: number } error?: ProviderAuthError | UnknownError | MessageOutputLengthError | MessageAbortedError | ApiError parentID: string modelID: string providerID: string mode: string path: { cwd: string root: string } summary?: boolean cost: number tokens: { input: number output: number reasoning: number cache: { read: number write: number } } finish?: string } export type Message = UserMessage | AssistantMessage export type EventMessageUpdated = { type: "message.updated" properties: { info: Message } } export type EventMessageRemoved = { type: "message.removed" properties: { sessionID: string messageID: string } } export type TextPart = { id: string sessionID: string messageID: string type: "text" text: string synthetic?: boolean ignored?: boolean time?: { start: number end?: number } metadata?: { [key: string]: unknown } } export type ReasoningPart = { id: string sessionID: string messageID: string type: "reasoning" text: string metadata?: { [key: string]: unknown } time: { start: number end?: number } } export type FilePartSourceText = { value: string start: number end: number } export type FileSource = { text: FilePartSourceText type: "file" path: string } export type Range = { start: { line: number character: number } end: { line: number character: number } } export type SymbolSource = { text: FilePartSourceText type: "symbol" path: string range: Range name: string kind: number } export type FilePartSource = FileSource | SymbolSource export type FilePart = { id: string sessionID: string messageID: string type: "file" mime: string filename?: string url: string source?: FilePartSource } export type ToolStatePending = { status: "pending" input: { [key: string]: unknown } raw: string } export type ToolStateRunning = { status: "running" input: { [key: string]: unknown } title?: string metadata?: { [key: string]: unknown } time: { start: number } } export type ToolStateCompleted = { status: "completed" input: { [key: string]: unknown } output: string title: string metadata: { [key: string]: unknown } time: { start: number end: number compacted?: number } attachments?: Array } export type ToolStateError = { status: "error" input: { [key: string]: unknown } error: string metadata?: { [key: string]: unknown } time: { start: number end: number } } export type ToolState = ToolStatePending | ToolStateRunning | ToolStateCompleted | ToolStateError export type ToolPart = { id: string sessionID: string messageID: string type: "tool" callID: string tool: string state: ToolState metadata?: { [key: string]: unknown } } export type StepStartPart = { id: string sessionID: string messageID: string type: "step-start" snapshot?: string } export type StepFinishPart = { id: string sessionID: string messageID: string type: "step-finish" reason: string snapshot?: string cost: number tokens: { input: number output: number reasoning: number cache: { read: number write: number } } } export type SnapshotPart = { id: string sessionID: string messageID: string type: "snapshot" snapshot: string } export type PatchPart = { id: string sessionID: string messageID: string type: "patch" hash: string files: Array } export type AgentPart = { id: string sessionID: string messageID: string type: "agent" name: string source?: { value: string start: number end: number } } export type RetryPart = { id: string sessionID: string messageID: string type: "retry" attempt: number error: ApiError time: { created: number } } export type CompactionPart = { id: string sessionID: string messageID: string type: "compaction" auto: boolean } export type Part = | TextPart | { id: string sessionID: string messageID: string type: "subtask" prompt: string description: string agent: string } | ReasoningPart | FilePart | ToolPart | StepStartPart | StepFinishPart | SnapshotPart | PatchPart | AgentPart | RetryPart | CompactionPart export type EventMessagePartUpdated = { type: "message.part.updated" properties: { part: Part delta?: string } } export type EventMessagePartRemoved = { type: "message.part.removed" properties: { sessionID: string messageID: string partID: string } } export type Permission = { id: string type: string pattern?: string | Array sessionID: string messageID: string callID?: string title: string metadata: { [key: string]: unknown } time: { created: number } } export type EventPermissionUpdated = { type: "permission.updated" properties: Permission } export type EventPermissionReplied = { type: "permission.replied" properties: { sessionID: string permissionID: string response: string } } export type SessionStatus = | { type: "idle" } | { type: "retry" attempt: number message: string next: number } | { type: "busy" } export type EventSessionStatus = { type: "session.status" properties: { sessionID: string status: SessionStatus } } export type EventSessionIdle = { type: "session.idle" properties: { sessionID: string } } export type EventSessionCompacted = { type: "session.compacted" properties: { sessionID: string } } export type EventFileEdited = { type: "file.edited" properties: { file: string } } export type Todo = { /** * Brief description of the task */ content: string /** * Current status of the task: pending, in_progress, completed, cancelled */ status: string /** * Priority level of the task: high, medium, low */ priority: string /** * Unique identifier for the todo item */ id: string } export type EventTodoUpdated = { type: "todo.updated" properties: { sessionID: string todos: Array } } export type EventCommandExecuted = { type: "command.executed" properties: { name: string sessionID: string arguments: string messageID: string } } export type Session = { id: string projectID: string directory: string parentID?: string summary?: { additions: number deletions: number files: number diffs?: Array } share?: { url: string } title: string version: string time: { created: number updated: number compacting?: number } revert?: { messageID: string partID?: string snapshot?: string diff?: string } } export type EventSessionCreated = { type: "session.created" properties: { info: Session } } export type EventSessionUpdated = { type: "session.updated" properties: { info: Session } } export type EventSessionDeleted = { type: "session.deleted" properties: { info: Session } } export type EventSessionDiff = { type: "session.diff" properties: { sessionID: string diff: Array } } export type EventSessionError = { type: "session.error" properties: { sessionID?: string error?: ProviderAuthError | UnknownError | MessageOutputLengthError | MessageAbortedError | ApiError } } export type EventFileWatcherUpdated = { type: "file.watcher.updated" properties: { file: string event: "add" | "change" | "unlink" } } export type EventVcsBranchUpdated = { type: "vcs.branch.updated" properties: { branch?: string } } export type EventTuiPromptAppend = { type: "tui.prompt.append" properties: { text: string } } export type EventTuiCommandExecute = { type: "tui.command.execute" properties: { command: | ( | "session.list" | "session.new" | "session.share" | "session.interrupt" | "session.compact" | "session.page.up" | "session.page.down" | "session.half.page.up" | "session.half.page.down" | "session.first" | "session.last" | "prompt.clear" | "prompt.submit" | "agent.cycle" ) | string } } export type EventTuiToastShow = { type: "tui.toast.show" properties: { title?: string message: string variant: "info" | "success" | "warning" | "error" /** * Duration in milliseconds */ duration?: number } } export type Pty = { id: string title: string command: string args: Array cwd: string status: "running" | "exited" pid: number } export type EventPtyCreated = { type: "pty.created" properties: { info: Pty } } export type EventPtyUpdated = { type: "pty.updated" properties: { info: Pty } } export type EventPtyExited = { type: "pty.exited" properties: { id: string exitCode: number } } export type EventPtyDeleted = { type: "pty.deleted" properties: { id: string } } export type EventServerConnected = { type: "server.connected" properties: { [key: string]: unknown } } export type Event = | EventServerInstanceDisposed | EventInstallationUpdated | EventInstallationUpdateAvailable | EventLspClientDiagnostics | EventLspUpdated | EventMessageUpdated | EventMessageRemoved | EventMessagePartUpdated | EventMessagePartRemoved | EventPermissionUpdated | EventPermissionReplied | EventSessionStatus | EventSessionIdle | EventSessionCompacted | EventFileEdited | EventTodoUpdated | EventCommandExecuted | EventSessionCreated | EventSessionUpdated | EventSessionDeleted | EventSessionDiff | EventSessionError | EventFileWatcherUpdated | EventVcsBranchUpdated | EventTuiPromptAppend | EventTuiCommandExecute | EventTuiToastShow | EventPtyCreated | EventPtyUpdated | EventPtyExited | EventPtyDeleted | EventServerConnected export type GlobalEvent = { directory: string payload: Event } export type Project = { id: string worktree: string vcsDir?: string vcs?: "git" time: { created: number initialized?: number } } export type BadRequestError = { data: unknown errors: Array<{ [key: string]: unknown }> success: false } export type NotFoundError = { name: "NotFoundError" data: { message: string } } /** * Custom keybind configurations */ export type KeybindsConfig = { /** * Leader key for keybind combinations */ leader?: string /** * Exit the application */ app_exit?: string /** * Open external editor */ editor_open?: string /** * List available themes */ theme_list?: string /** * Toggle sidebar */ sidebar_toggle?: string /** * Toggle session scrollbar */ scrollbar_toggle?: string /** * Toggle username visibility */ username_toggle?: string /** * View status */ status_view?: string /** * Export session to editor */ session_export?: string /** * Create a new session */ session_new?: string /** * List all sessions */ session_list?: string /** * Show session timeline */ session_timeline?: string /** * Share current session */ session_share?: string /** * Unshare current session */ session_unshare?: string /** * Interrupt current session */ session_interrupt?: string /** * Compact the session */ session_compact?: string /** * Scroll messages up by one page */ messages_page_up?: string /** * Scroll messages down by one page */ messages_page_down?: string /** * Scroll messages up by one line */ messages_line_up?: string /** * Scroll messages down by one line */ messages_line_down?: string /** * Scroll messages up by half page */ messages_half_page_up?: string /** * Scroll messages down by half page */ messages_half_page_down?: string /** * Navigate to first message */ messages_first?: string /** * Navigate to last message */ messages_last?: string /** * Navigate to next message */ messages_next?: string /** * Navigate to previous message */ messages_previous?: string /** * Navigate to last user message */ messages_last_user?: string /** * Copy message */ messages_copy?: string /** * Undo message */ messages_undo?: string /** * Redo message */ messages_redo?: string /** * Toggle code block concealment in messages */ messages_toggle_conceal?: string /** * Toggle tool details visibility */ tool_details?: string /** * List available models */ model_list?: string /** * Next recently used model */ model_cycle_recent?: string /** * Previous recently used model */ model_cycle_recent_reverse?: string /** * List available commands */ command_list?: string /** * List agents */ agent_list?: string /** * Next agent */ agent_cycle?: string /** * Previous agent */ agent_cycle_reverse?: string /** * Clear input field */ input_clear?: string /** * Forward delete */ input_forward_delete?: string /** * Paste from clipboard */ input_paste?: string /** * Submit input */ input_submit?: string /** * Insert newline in input */ input_newline?: string /** * Previous history item */ history_previous?: string /** * Next history item */ history_next?: string /** * Next child session */ session_child_cycle?: string /** * Previous child session */ session_child_cycle_reverse?: string /** * Suspend terminal */ terminal_suspend?: string /** * Toggle terminal title */ terminal_title_toggle?: string } export type AgentConfig = { model?: string temperature?: number top_p?: number prompt?: string tools?: { [key: string]: boolean } disable?: boolean /** * Description of when to use the agent */ description?: string mode?: "subagent" | "primary" | "all" /** * Hex color code for the agent (e.g., #FF5733) */ color?: string /** * Maximum number of agentic iterations before forcing text-only response */ maxSteps?: number permission?: { edit?: "ask" | "allow" | "deny" bash?: | ("ask" | "allow" | "deny") | { [key: string]: "ask" | "allow" | "deny" } webfetch?: "ask" | "allow" | "deny" doom_loop?: "ask" | "allow" | "deny" external_directory?: "ask" | "allow" | "deny" } [key: string]: | unknown | string | number | { [key: string]: boolean } | boolean | ("subagent" | "primary" | "all") | number | { edit?: "ask" | "allow" | "deny" bash?: | ("ask" | "allow" | "deny") | { [key: string]: "ask" | "allow" | "deny" } webfetch?: "ask" | "allow" | "deny" doom_loop?: "ask" | "allow" | "deny" external_directory?: "ask" | "allow" | "deny" } | undefined } export type ProviderConfig = { api?: string name?: string env?: Array id?: string npm?: string models?: { [key: string]: { id?: string name?: string release_date?: string attachment?: boolean reasoning?: boolean temperature?: boolean tool_call?: boolean cost?: { input: number output: number cache_read?: number cache_write?: number context_over_200k?: { input: number output: number cache_read?: number cache_write?: number } } limit?: { context: number output: number } modalities?: { input: Array<"text" | "audio" | "image" | "video" | "pdf"> output: Array<"text" | "audio" | "image" | "video" | "pdf"> } experimental?: boolean status?: "alpha" | "beta" | "deprecated" options?: { [key: string]: unknown } headers?: { [key: string]: string } provider?: { npm: string } } } whitelist?: Array blacklist?: Array options?: { apiKey?: string baseURL?: string /** * GitHub Enterprise URL for copilot authentication */ enterpriseUrl?: string /** * Enable promptCacheKey for this provider (default false) */ setCacheKey?: boolean /** * Timeout in milliseconds for requests to this provider. Default is 300000 (5 minutes). Set to false to disable timeout. */ timeout?: number | false [key: string]: unknown | string | boolean | (number | false) | undefined } } export type McpLocalConfig = { /** * Type of MCP server connection */ type: "local" /** * Command and arguments to run the MCP server */ command: Array /** * Environment variables to set when running the MCP server */ environment?: { [key: string]: string } /** * Enable or disable the MCP server on startup */ enabled?: boolean /** * Timeout in ms for fetching tools from the MCP server. Defaults to 5000 (5 seconds) if not specified. */ timeout?: number } export type McpOAuthConfig = { /** * OAuth client ID. If not provided, dynamic client registration (RFC 7591) will be attempted. */ clientId?: string /** * OAuth client secret (if required by the authorization server) */ clientSecret?: string /** * OAuth scopes to request during authorization */ scope?: string } export type McpRemoteConfig = { /** * Type of MCP server connection */ type: "remote" /** * URL of the remote MCP server */ url: string /** * Enable or disable the MCP server on startup */ enabled?: boolean /** * Headers to send with the request */ headers?: { [key: string]: string } /** * OAuth authentication configuration for the MCP server. Set to false to disable OAuth auto-detection. */ oauth?: McpOAuthConfig | false /** * Timeout in ms for fetching tools from the MCP server. Defaults to 5000 (5 seconds) if not specified. */ timeout?: number } /** * @deprecated Always uses stretch layout. */ export type LayoutConfig = "auto" | "stretch" export type Config = { /** * JSON schema reference for configuration validation */ $schema?: string /** * Theme name to use for the interface */ theme?: string keybinds?: KeybindsConfig /** * Log level */ logLevel?: "DEBUG" | "INFO" | "WARN" | "ERROR" /** * TUI specific settings */ tui?: { /** * TUI scroll speed */ scroll_speed?: number /** * Scroll acceleration settings */ scroll_acceleration?: { /** * Enable scroll acceleration */ enabled: boolean } /** * Control diff rendering style: 'auto' adapts to terminal width, 'stacked' always shows single column */ diff_style?: "auto" | "stacked" } /** * Command configuration, see https://opencode.ai/docs/commands */ command?: { [key: string]: { template: string description?: string agent?: string model?: string subtask?: boolean } } watcher?: { ignore?: Array } plugin?: Array snapshot?: boolean /** * Control sharing behavior:'manual' allows manual sharing via commands, 'auto' enables automatic sharing, 'disabled' disables all sharing */ share?: "manual" | "auto" | "disabled" /** * @deprecated Use 'share' field instead. Share newly created sessions automatically */ autoshare?: boolean /** * Automatically update to the latest version. Set to true to auto-update, false to disable, or 'notify' to show update notifications */ autoupdate?: boolean | "notify" /** * Disable providers that are loaded automatically */ disabled_providers?: Array /** * When set, ONLY these providers will be enabled. All other providers will be ignored */ enabled_providers?: Array /** * Model to use in the format of provider/model, eg anthropic/claude-2 */ model?: string /** * Small model to use for tasks like title generation in the format of provider/model */ small_model?: string /** * Custom username to display in conversations instead of system username */ username?: string /** * @deprecated Use `agent` field instead. */ mode?: { build?: AgentConfig plan?: AgentConfig [key: string]: AgentConfig | undefined } /** * Agent configuration, see https://opencode.ai/docs/agent */ agent?: { plan?: AgentConfig build?: AgentConfig general?: AgentConfig explore?: AgentConfig [key: string]: AgentConfig | undefined } /** * Custom provider configurations and model overrides */ provider?: { [key: string]: ProviderConfig } /** * MCP (Model Context Protocol) server configurations */ mcp?: { [key: string]: McpLocalConfig | McpRemoteConfig } formatter?: | false | { [key: string]: { disabled?: boolean command?: Array environment?: { [key: string]: string } extensions?: Array } } lsp?: | false | { [key: string]: | { disabled: true } | { command: Array extensions?: Array disabled?: boolean env?: { [key: string]: string } initialization?: { [key: string]: unknown } } } /** * Additional instruction files or patterns to include */ instructions?: Array layout?: LayoutConfig permission?: { edit?: "ask" | "allow" | "deny" bash?: | ("ask" | "allow" | "deny") | { [key: string]: "ask" | "allow" | "deny" } webfetch?: "ask" | "allow" | "deny" doom_loop?: "ask" | "allow" | "deny" external_directory?: "ask" | "allow" | "deny" } tools?: { [key: string]: boolean } enterprise?: { /** * Enterprise URL */ url?: string } experimental?: { hook?: { file_edited?: { [key: string]: Array<{ command: Array environment?: { [key: string]: string } }> } session_completed?: Array<{ command: Array environment?: { [key: string]: string } }> } /** * Number of retries for chat completions on failure */ chatMaxRetries?: number disable_paste_summary?: boolean /** * Enable the batch tool */ batch_tool?: boolean /** * Enable OpenTelemetry spans for AI SDK calls (using the 'experimental_telemetry' flag) */ openTelemetry?: boolean /** * Tools that should only be available to primary agents. */ primary_tools?: Array } } export type ToolIds = Array export type ToolListItem = { id: string description: string parameters: unknown } export type ToolList = Array export type Path = { state: string config: string worktree: string directory: string } export type VcsInfo = { branch: string } export type TextPartInput = { id?: string type: "text" text: string synthetic?: boolean ignored?: boolean time?: { start: number end?: number } metadata?: { [key: string]: unknown } } export type FilePartInput = { id?: string type: "file" mime: string filename?: string url: string source?: FilePartSource } export type AgentPartInput = { id?: string type: "agent" name: string source?: { value: string start: number end: number } } export type SubtaskPartInput = { id?: string type: "subtask" prompt: string description: string agent: string } export type Command = { name: string description?: string agent?: string model?: string template: string subtask?: boolean } export type Model = { id: string providerID: string api: { id: string url: string npm: string } name: string capabilities: { temperature: boolean reasoning: boolean attachment: boolean toolcall: boolean input: { text: boolean audio: boolean image: boolean video: boolean pdf: boolean } output: { text: boolean audio: boolean image: boolean video: boolean pdf: boolean } } cost: { input: number output: number cache: { read: number write: number } experimentalOver200K?: { input: number output: number cache: { read: number write: number } } } limit: { context: number output: number } status: "alpha" | "beta" | "deprecated" | "active" options: { [key: string]: unknown } headers: { [key: string]: string } } export type Provider = { id: string name: string source: "env" | "config" | "custom" | "api" env: Array key?: string options: { [key: string]: unknown } models: { [key: string]: Model } } export type ProviderAuthMethod = { type: "oauth" | "api" label: string } export type ProviderAuthAuthorization = { url: string method: "auto" | "code" instructions: string } export type Symbol = { name: string kind: number location: { uri: string range: Range } } export type FileNode = { name: string path: string absolute: string type: "file" | "directory" ignored: boolean } export type FileContent = { type: "text" | "binary" content: string diff?: string patch?: { oldFileName: string newFileName: string oldHeader?: string newHeader?: string hunks: Array<{ oldStart: number oldLines: number newStart: number newLines: number lines: Array }> index?: string } encoding?: "base64" mimeType?: string } export type File = { path: string added: number removed: number status: "added" | "deleted" | "modified" } export type Agent = { name: string description?: string mode: "subagent" | "primary" | "all" builtIn: boolean topP?: number temperature?: number color?: string permission: { edit: "ask" | "allow" | "deny" bash: { [key: string]: "ask" | "allow" | "deny" } webfetch?: "ask" | "allow" | "deny" doom_loop?: "ask" | "allow" | "deny" external_directory?: "ask" | "allow" | "deny" } model?: { modelID: string providerID: string } prompt?: string tools: { [key: string]: boolean } options: { [key: string]: unknown } maxSteps?: number } export type McpStatusConnected = { status: "connected" } export type McpStatusDisabled = { status: "disabled" } export type McpStatusFailed = { status: "failed" error: string } export type McpStatusNeedsAuth = { status: "needs_auth" } export type McpStatusNeedsClientRegistration = { status: "needs_client_registration" error: string } export type McpStatus = | McpStatusConnected | McpStatusDisabled | McpStatusFailed | McpStatusNeedsAuth | McpStatusNeedsClientRegistration export type LspStatus = { id: string name: string root: string status: "connected" | "error" } export type FormatterStatus = { name: string extensions: Array enabled: boolean } export type OAuth = { type: "oauth" refresh: string access: string expires: number enterpriseUrl?: string } export type ApiAuth = { type: "api" key: string } export type WellKnownAuth = { type: "wellknown" key: string token: string } export type Auth = OAuth | ApiAuth | WellKnownAuth export type GlobalEventData = { body?: never path?: never query?: never url: "/global/event" } export type GlobalEventResponses = { /** * Event stream */ 200: GlobalEvent } export type GlobalEventResponse = GlobalEventResponses[keyof GlobalEventResponses] export type ProjectListData = { body?: never path?: never query?: { directory?: string } url: "/project" } export type ProjectListResponses = { /** * List of projects */ 200: Array } export type ProjectListResponse = ProjectListResponses[keyof ProjectListResponses] export type ProjectCurrentData = { body?: never path?: never query?: { directory?: string } url: "/project/current" } export type ProjectCurrentResponses = { /** * Current project */ 200: Project } export type ProjectCurrentResponse = ProjectCurrentResponses[keyof ProjectCurrentResponses] export type PtyListData = { body?: never path?: never query?: { directory?: string } url: "/pty" } export type PtyListResponses = { /** * List of sessions */ 200: Array } export type PtyListResponse = PtyListResponses[keyof PtyListResponses] export type PtyCreateData = { body?: { command?: string args?: Array cwd?: string title?: string env?: { [key: string]: string } } path?: never query?: { directory?: string } url: "/pty" } export type PtyCreateErrors = { /** * Bad request */ 400: BadRequestError } export type PtyCreateError = PtyCreateErrors[keyof PtyCreateErrors] export type PtyCreateResponses = { /** * Created session */ 200: Pty } export type PtyCreateResponse = PtyCreateResponses[keyof PtyCreateResponses] export type PtyRemoveData = { body?: never path: { id: string } query?: { directory?: string } url: "/pty/{id}" } export type PtyRemoveErrors = { /** * Not found */ 404: NotFoundError } export type PtyRemoveError = PtyRemoveErrors[keyof PtyRemoveErrors] export type PtyRemoveResponses = { /** * Session removed */ 200: boolean } export type PtyRemoveResponse = PtyRemoveResponses[keyof PtyRemoveResponses] export type PtyGetData = { body?: never path: { id: string } query?: { directory?: string } url: "/pty/{id}" } export type PtyGetErrors = { /** * Not found */ 404: NotFoundError } export type PtyGetError = PtyGetErrors[keyof PtyGetErrors] export type PtyGetResponses = { /** * Session info */ 200: Pty } export type PtyGetResponse = PtyGetResponses[keyof PtyGetResponses] export type PtyUpdateData = { body?: { title?: string size?: { rows: number cols: number } } path: { id: string } query?: { directory?: string } url: "/pty/{id}" } export type PtyUpdateErrors = { /** * Bad request */ 400: BadRequestError } export type PtyUpdateError = PtyUpdateErrors[keyof PtyUpdateErrors] export type PtyUpdateResponses = { /** * Updated session */ 200: Pty } export type PtyUpdateResponse = PtyUpdateResponses[keyof PtyUpdateResponses] export type PtyConnectData = { body?: never path: { id: string } query?: { directory?: string } url: "/pty/{id}/connect" } export type PtyConnectErrors = { /** * 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 ConfigGetData = { body?: never path?: never query?: { directory?: string } url: "/config" } export type ConfigGetResponses = { /** * Get config info */ 200: Config } export type ConfigGetResponse = ConfigGetResponses[keyof ConfigGetResponses] export type ConfigUpdateData = { body?: Config path?: never query?: { directory?: string } url: "/config" } export type ConfigUpdateErrors = { /** * Bad request */ 400: BadRequestError } export type ConfigUpdateError = ConfigUpdateErrors[keyof ConfigUpdateErrors] export type ConfigUpdateResponses = { /** * Successfully updated config */ 200: Config } export type ConfigUpdateResponse = ConfigUpdateResponses[keyof ConfigUpdateResponses] export type ToolIdsData = { body?: never path?: never query?: { directory?: string } url: "/experimental/tool/ids" } export type ToolIdsErrors = { /** * Bad request */ 400: BadRequestError } export type ToolIdsError = ToolIdsErrors[keyof ToolIdsErrors] export type ToolIdsResponses = { /** * Tool IDs */ 200: ToolIds } export type ToolIdsResponse = ToolIdsResponses[keyof ToolIdsResponses] export type ToolListData = { body?: never path?: never query: { directory?: string provider: string model: string } url: "/experimental/tool" } export type ToolListErrors = { /** * Bad request */ 400: BadRequestError } export type ToolListError = ToolListErrors[keyof ToolListErrors] export type ToolListResponses = { /** * Tools */ 200: ToolList } export type ToolListResponse = ToolListResponses[keyof ToolListResponses] export type InstanceDisposeData = { body?: never path?: never query?: { directory?: string } url: "/instance/dispose" } export type InstanceDisposeResponses = { /** * Instance disposed */ 200: boolean } export type InstanceDisposeResponse = InstanceDisposeResponses[keyof InstanceDisposeResponses] export type PathGetData = { body?: never path?: never query?: { directory?: string } url: "/path" } export type PathGetResponses = { /** * Path */ 200: Path } export type PathGetResponse = PathGetResponses[keyof PathGetResponses] export type VcsGetData = { body?: never path?: never query?: { directory?: string } url: "/vcs" } export type VcsGetResponses = { /** * VCS info */ 200: VcsInfo } export type VcsGetResponse = VcsGetResponses[keyof VcsGetResponses] export type SessionListData = { body?: never path?: never query?: { directory?: string } url: "/session" } export type SessionListResponses = { /** * List of sessions */ 200: Array } export type SessionListResponse = SessionListResponses[keyof SessionListResponses] export type SessionCreateData = { body?: { parentID?: string title?: string } path?: never query?: { directory?: string } url: "/session" } export type SessionCreateErrors = { /** * Bad request */ 400: BadRequestError } export type SessionCreateError = SessionCreateErrors[keyof SessionCreateErrors] export type SessionCreateResponses = { /** * Successfully created session */ 200: Session } export type SessionCreateResponse = SessionCreateResponses[keyof SessionCreateResponses] export type SessionStatusData = { body?: never path?: never query?: { directory?: string } url: "/session/status" } export type SessionStatusErrors = { /** * Bad request */ 400: BadRequestError } export type SessionStatusError = SessionStatusErrors[keyof SessionStatusErrors] export type SessionStatusResponses = { /** * Get session status */ 200: { [key: string]: SessionStatus } } export type SessionStatusResponse = SessionStatusResponses[keyof SessionStatusResponses] export type SessionDeleteData = { body?: never path: { id: string } query?: { directory?: string } url: "/session/{id}" } export type SessionDeleteErrors = { /** * Bad request */ 400: BadRequestError /** * Not found */ 404: NotFoundError } export type SessionDeleteError = SessionDeleteErrors[keyof SessionDeleteErrors] export type SessionDeleteResponses = { /** * Successfully deleted session */ 200: boolean } export type SessionDeleteResponse = SessionDeleteResponses[keyof SessionDeleteResponses] export type SessionGetData = { body?: never path: { id: string } query?: { directory?: string } url: "/session/{id}" } export type SessionGetErrors = { /** * Bad request */ 400: BadRequestError /** * Not found */ 404: NotFoundError } export type SessionGetError = SessionGetErrors[keyof SessionGetErrors] export type SessionGetResponses = { /** * Get session */ 200: Session } export type SessionGetResponse = SessionGetResponses[keyof SessionGetResponses] export type SessionUpdateData = { body?: { title?: string } path: { id: string } query?: { directory?: string } url: "/session/{id}" } export type SessionUpdateErrors = { /** * Bad request */ 400: BadRequestError /** * Not found */ 404: NotFoundError } export type SessionUpdateError = SessionUpdateErrors[keyof SessionUpdateErrors] export type SessionUpdateResponses = { /** * Successfully updated session */ 200: Session } export type SessionUpdateResponse = SessionUpdateResponses[keyof SessionUpdateResponses] export type SessionChildrenData = { body?: never path: { id: string } query?: { directory?: string } url: "/session/{id}/children" } export type SessionChildrenErrors = { /** * Bad request */ 400: BadRequestError /** * Not found */ 404: NotFoundError } export type SessionChildrenError = SessionChildrenErrors[keyof SessionChildrenErrors] export type SessionChildrenResponses = { /** * List of children */ 200: Array } export type SessionChildrenResponse = SessionChildrenResponses[keyof SessionChildrenResponses] export type SessionTodoData = { body?: never path: { /** * Session ID */ id: string } query?: { directory?: string } url: "/session/{id}/todo" } export type SessionTodoErrors = { /** * Bad request */ 400: BadRequestError /** * Not found */ 404: NotFoundError } export type SessionTodoError = SessionTodoErrors[keyof SessionTodoErrors] export type SessionTodoResponses = { /** * Todo list */ 200: Array } export type SessionTodoResponse = SessionTodoResponses[keyof SessionTodoResponses] export type SessionInitData = { body?: { modelID: string providerID: string messageID: string } path: { /** * Session ID */ id: string } query?: { directory?: string } url: "/session/{id}/init" } export type SessionInitErrors = { /** * Bad request */ 400: BadRequestError /** * Not found */ 404: NotFoundError } export type SessionInitError = SessionInitErrors[keyof SessionInitErrors] export type SessionInitResponses = { /** * 200 */ 200: boolean } export type SessionInitResponse = SessionInitResponses[keyof SessionInitResponses] export type SessionForkData = { body?: { messageID?: string } path: { id: string } query?: { directory?: string } url: "/session/{id}/fork" } export type SessionForkResponses = { /** * 200 */ 200: Session } export type SessionForkResponse = SessionForkResponses[keyof SessionForkResponses] export type SessionAbortData = { body?: never path: { id: string } query?: { directory?: string } url: "/session/{id}/abort" } export type SessionAbortErrors = { /** * Bad request */ 400: BadRequestError /** * Not found */ 404: NotFoundError } export type SessionAbortError = SessionAbortErrors[keyof SessionAbortErrors] export type SessionAbortResponses = { /** * Aborted session */ 200: boolean } export type SessionAbortResponse = SessionAbortResponses[keyof SessionAbortResponses] export type SessionUnshareData = { body?: never path: { id: string } query?: { directory?: string } url: "/session/{id}/share" } export type SessionUnshareErrors = { /** * Bad request */ 400: BadRequestError /** * Not found */ 404: NotFoundError } export type SessionUnshareError = SessionUnshareErrors[keyof SessionUnshareErrors] export type SessionUnshareResponses = { /** * Successfully unshared session */ 200: Session } export type SessionUnshareResponse = SessionUnshareResponses[keyof SessionUnshareResponses] export type SessionShareData = { body?: never path: { id: string } query?: { directory?: string } url: "/session/{id}/share" } export type SessionShareErrors = { /** * Bad request */ 400: BadRequestError /** * Not found */ 404: NotFoundError } export type SessionShareError = SessionShareErrors[keyof SessionShareErrors] export type SessionShareResponses = { /** * Successfully shared session */ 200: Session } export type SessionShareResponse = SessionShareResponses[keyof SessionShareResponses] export type SessionDiffData = { body?: never path: { /** * Session ID */ id: string } query?: { directory?: string messageID?: string } url: "/session/{id}/diff" } export type SessionDiffErrors = { /** * Bad request */ 400: BadRequestError /** * Not found */ 404: NotFoundError } export type SessionDiffError = SessionDiffErrors[keyof SessionDiffErrors] export type SessionDiffResponses = { /** * List of diffs */ 200: Array } export type SessionDiffResponse = SessionDiffResponses[keyof SessionDiffResponses] export type SessionSummarizeData = { body?: { providerID: string modelID: string } path: { /** * Session ID */ id: string } query?: { directory?: string } url: "/session/{id}/summarize" } export type SessionSummarizeErrors = { /** * Bad request */ 400: BadRequestError /** * Not found */ 404: NotFoundError } export type SessionSummarizeError = SessionSummarizeErrors[keyof SessionSummarizeErrors] export type SessionSummarizeResponses = { /** * Summarized session */ 200: boolean } export type SessionSummarizeResponse = SessionSummarizeResponses[keyof SessionSummarizeResponses] export type SessionMessagesData = { body?: never path: { /** * Session ID */ id: string } query?: { directory?: string limit?: number } url: "/session/{id}/message" } export type SessionMessagesErrors = { /** * Bad request */ 400: BadRequestError /** * Not found */ 404: NotFoundError } export type SessionMessagesError = SessionMessagesErrors[keyof SessionMessagesErrors] export type SessionMessagesResponses = { /** * List of messages */ 200: Array<{ info: Message parts: Array }> } export type SessionMessagesResponse = SessionMessagesResponses[keyof SessionMessagesResponses] export type SessionPromptData = { body?: { messageID?: string model?: { providerID: string modelID: string } agent?: string noReply?: boolean system?: string tools?: { [key: string]: boolean } parts: Array } path: { /** * Session ID */ id: string } query?: { directory?: string } url: "/session/{id}/message" } export type SessionPromptErrors = { /** * Bad request */ 400: BadRequestError /** * Not found */ 404: NotFoundError } export type SessionPromptError = SessionPromptErrors[keyof SessionPromptErrors] export type SessionPromptResponses = { /** * Created message */ 200: { info: AssistantMessage parts: Array } } export type SessionPromptResponse = SessionPromptResponses[keyof SessionPromptResponses] export type SessionMessageData = { body?: never path: { /** * Session ID */ id: string /** * Message ID */ messageID: string } query?: { directory?: string } url: "/session/{id}/message/{messageID}" } export type SessionMessageErrors = { /** * Bad request */ 400: BadRequestError /** * Not found */ 404: NotFoundError } export type SessionMessageError = SessionMessageErrors[keyof SessionMessageErrors] export type SessionMessageResponses = { /** * Message */ 200: { info: Message parts: Array } } export type SessionMessageResponse = SessionMessageResponses[keyof SessionMessageResponses] export type SessionPromptAsyncData = { body?: { messageID?: string model?: { providerID: string modelID: string } agent?: string noReply?: boolean system?: string tools?: { [key: string]: boolean } parts: Array } path: { /** * Session ID */ id: string } query?: { directory?: string } url: "/session/{id}/prompt_async" } export type SessionPromptAsyncErrors = { /** * Bad request */ 400: BadRequestError /** * Not found */ 404: NotFoundError } export type SessionPromptAsyncError = SessionPromptAsyncErrors[keyof SessionPromptAsyncErrors] export type SessionPromptAsyncResponses = { /** * Prompt accepted */ 204: void } export type SessionPromptAsyncResponse = SessionPromptAsyncResponses[keyof SessionPromptAsyncResponses] export type SessionCommandData = { body?: { messageID?: string agent?: string model?: string arguments: string command: string } path: { /** * Session ID */ id: string } query?: { directory?: string } url: "/session/{id}/command" } export type SessionCommandErrors = { /** * Bad request */ 400: BadRequestError /** * Not found */ 404: NotFoundError } export type SessionCommandError = SessionCommandErrors[keyof SessionCommandErrors] export type SessionCommandResponses = { /** * Created message */ 200: { info: AssistantMessage parts: Array } } export type SessionCommandResponse = SessionCommandResponses[keyof SessionCommandResponses] export type SessionShellData = { body?: { agent: string model?: { providerID: string modelID: string } command: string } path: { /** * Session ID */ id: string } query?: { directory?: string } url: "/session/{id}/shell" } export type SessionShellErrors = { /** * Bad request */ 400: BadRequestError /** * Not found */ 404: NotFoundError } export type SessionShellError = SessionShellErrors[keyof SessionShellErrors] export type SessionShellResponses = { /** * Created message */ 200: AssistantMessage } export type SessionShellResponse = SessionShellResponses[keyof SessionShellResponses] export type SessionRevertData = { body?: { messageID: string partID?: string } path: { id: string } query?: { directory?: string } url: "/session/{id}/revert" } export type SessionRevertErrors = { /** * Bad request */ 400: BadRequestError /** * Not found */ 404: NotFoundError } export type SessionRevertError = SessionRevertErrors[keyof SessionRevertErrors] export type SessionRevertResponses = { /** * Updated session */ 200: Session } export type SessionRevertResponse = SessionRevertResponses[keyof SessionRevertResponses] export type SessionUnrevertData = { body?: never path: { id: string } query?: { directory?: string } url: "/session/{id}/unrevert" } export type SessionUnrevertErrors = { /** * Bad request */ 400: BadRequestError /** * Not found */ 404: NotFoundError } export type SessionUnrevertError = SessionUnrevertErrors[keyof SessionUnrevertErrors] export type SessionUnrevertResponses = { /** * Updated session */ 200: Session } export type SessionUnrevertResponse = SessionUnrevertResponses[keyof SessionUnrevertResponses] export type PostSessionIdPermissionsPermissionIdData = { body?: { response: "once" | "always" | "reject" } path: { id: string permissionID: string } query?: { directory?: string } url: "/session/{id}/permissions/{permissionID}" } export type PostSessionIdPermissionsPermissionIdErrors = { /** * Bad request */ 400: BadRequestError /** * Not found */ 404: NotFoundError } export type PostSessionIdPermissionsPermissionIdError = PostSessionIdPermissionsPermissionIdErrors[keyof PostSessionIdPermissionsPermissionIdErrors] export type PostSessionIdPermissionsPermissionIdResponses = { /** * Permission processed successfully */ 200: boolean } export type PostSessionIdPermissionsPermissionIdResponse = PostSessionIdPermissionsPermissionIdResponses[keyof PostSessionIdPermissionsPermissionIdResponses] export type CommandListData = { body?: never path?: never query?: { directory?: string } url: "/command" } export type CommandListResponses = { /** * List of commands */ 200: Array } export type CommandListResponse = CommandListResponses[keyof CommandListResponses] export type ConfigProvidersData = { body?: never path?: never query?: { directory?: string } url: "/config/providers" } export type ConfigProvidersResponses = { /** * List of providers */ 200: { providers: Array default: { [key: string]: string } } } export type ConfigProvidersResponse = ConfigProvidersResponses[keyof ConfigProvidersResponses] export type ProviderListData = { body?: never path?: never query?: { directory?: string } url: "/provider" } export type ProviderListResponses = { /** * List of providers */ 200: { all: Array<{ api?: string name: string env: Array id: string npm?: string models: { [key: string]: { id: string name: string release_date: string attachment: boolean reasoning: boolean temperature: boolean tool_call: boolean cost?: { input: number output: number cache_read?: number cache_write?: number context_over_200k?: { input: number output: number cache_read?: number cache_write?: number } } limit: { context: number output: number } modalities?: { input: Array<"text" | "audio" | "image" | "video" | "pdf"> output: Array<"text" | "audio" | "image" | "video" | "pdf"> } experimental?: boolean status?: "alpha" | "beta" | "deprecated" options: { [key: string]: unknown } headers?: { [key: string]: string } provider?: { npm: string } } } }> default: { [key: string]: string } connected: Array } } export type ProviderListResponse = ProviderListResponses[keyof ProviderListResponses] export type ProviderAuthData = { body?: never path?: never query?: { directory?: string } url: "/provider/auth" } export type ProviderAuthResponses = { /** * Provider auth methods */ 200: { [key: string]: Array } } export type ProviderAuthResponse = ProviderAuthResponses[keyof ProviderAuthResponses] export type ProviderOauthAuthorizeData = { body?: { /** * Auth method index */ method: number } path: { /** * Provider ID */ id: string } query?: { directory?: string } url: "/provider/{id}/oauth/authorize" } export type ProviderOauthAuthorizeErrors = { /** * Bad request */ 400: BadRequestError } export type ProviderOauthAuthorizeError = ProviderOauthAuthorizeErrors[keyof ProviderOauthAuthorizeErrors] export type ProviderOauthAuthorizeResponses = { /** * Authorization URL and method */ 200: ProviderAuthAuthorization } export type ProviderOauthAuthorizeResponse = ProviderOauthAuthorizeResponses[keyof ProviderOauthAuthorizeResponses] export type ProviderOauthCallbackData = { body?: { /** * Auth method index */ method: number /** * OAuth authorization code */ code?: string } path: { /** * Provider ID */ id: string } query?: { directory?: string } url: "/provider/{id}/oauth/callback" } export type ProviderOauthCallbackErrors = { /** * Bad request */ 400: BadRequestError } export type ProviderOauthCallbackError = ProviderOauthCallbackErrors[keyof ProviderOauthCallbackErrors] export type ProviderOauthCallbackResponses = { /** * OAuth callback processed successfully */ 200: boolean } export type ProviderOauthCallbackResponse = ProviderOauthCallbackResponses[keyof ProviderOauthCallbackResponses] export type FindTextData = { body?: never path?: never query: { directory?: string pattern: string } url: "/find" } export type FindTextResponses = { /** * Matches */ 200: Array<{ path: { text: string } lines: { text: string } line_number: number absolute_offset: number submatches: Array<{ match: { text: string } start: number end: number }> }> } export type FindTextResponse = FindTextResponses[keyof FindTextResponses] export type FindFilesData = { body?: never path?: never query: { directory?: string query: string dirs?: "true" | "false" } url: "/find/file" } export type FindFilesResponses = { /** * File paths */ 200: Array } export type FindFilesResponse = FindFilesResponses[keyof FindFilesResponses] export type FindSymbolsData = { body?: never path?: never query: { directory?: string query: string } url: "/find/symbol" } export type FindSymbolsResponses = { /** * Symbols */ 200: Array } export type FindSymbolsResponse = FindSymbolsResponses[keyof FindSymbolsResponses] export type FileListData = { body?: never path?: never query: { directory?: string path: string } url: "/file" } export type FileListResponses = { /** * Files and directories */ 200: Array } export type FileListResponse = FileListResponses[keyof FileListResponses] export type FileReadData = { body?: never path?: never query: { directory?: string path: string } url: "/file/content" } export type FileReadResponses = { /** * File content */ 200: FileContent } export type FileReadResponse = FileReadResponses[keyof FileReadResponses] export type FileStatusData = { body?: never path?: never query?: { directory?: string } url: "/file/status" } export type FileStatusResponses = { /** * File status */ 200: Array } export type FileStatusResponse = FileStatusResponses[keyof FileStatusResponses] export type AppLogData = { body?: { /** * Service name for the log entry */ service: string /** * Log level */ level: "debug" | "info" | "error" | "warn" /** * Log message */ message: string /** * Additional metadata for the log entry */ extra?: { [key: string]: unknown } } path?: never query?: { directory?: string } url: "/log" } export type AppLogErrors = { /** * Bad request */ 400: BadRequestError } export type AppLogError = AppLogErrors[keyof AppLogErrors] export type AppLogResponses = { /** * Log entry written successfully */ 200: boolean } export type AppLogResponse = AppLogResponses[keyof AppLogResponses] export type AppAgentsData = { body?: never path?: never query?: { directory?: string } url: "/agent" } export type AppAgentsResponses = { /** * List of agents */ 200: Array } export type AppAgentsResponse = AppAgentsResponses[keyof AppAgentsResponses] export type McpStatusData = { body?: never path?: never query?: { directory?: string } url: "/mcp" } export type McpStatusResponses = { /** * MCP server status */ 200: { [key: string]: McpStatus } } export type McpStatusResponse = McpStatusResponses[keyof McpStatusResponses] export type McpAddData = { body?: { name: string config: McpLocalConfig | McpRemoteConfig } path?: never query?: { directory?: string } url: "/mcp" } export type McpAddErrors = { /** * Bad request */ 400: BadRequestError } export type McpAddError = McpAddErrors[keyof McpAddErrors] export type McpAddResponses = { /** * MCP server added successfully */ 200: { [key: string]: McpStatus } } export type McpAddResponse = McpAddResponses[keyof McpAddResponses] export type McpAuthRemoveData = { body?: never path: { name: string } query?: { directory?: string } url: "/mcp/{name}/auth" } export type McpAuthRemoveErrors = { /** * Not found */ 404: NotFoundError } export type McpAuthRemoveError = McpAuthRemoveErrors[keyof McpAuthRemoveErrors] export type McpAuthRemoveResponses = { /** * OAuth credentials removed */ 200: { success: true } } export type McpAuthRemoveResponse = McpAuthRemoveResponses[keyof McpAuthRemoveResponses] export type McpAuthStartData = { body?: never path: { name: string } query?: { directory?: string } url: "/mcp/{name}/auth" } export type McpAuthStartErrors = { /** * Bad request */ 400: BadRequestError /** * Not found */ 404: NotFoundError } export type McpAuthStartError = McpAuthStartErrors[keyof McpAuthStartErrors] export type McpAuthStartResponses = { /** * OAuth flow started */ 200: { /** * URL to open in browser for authorization */ authorizationUrl: string } } export type McpAuthStartResponse = McpAuthStartResponses[keyof McpAuthStartResponses] export type McpAuthCallbackData = { body?: { /** * Authorization code from OAuth callback */ code: string } path: { name: string } query?: { directory?: string } url: "/mcp/{name}/auth/callback" } export type McpAuthCallbackErrors = { /** * Bad request */ 400: BadRequestError /** * Not found */ 404: NotFoundError } export type McpAuthCallbackError = McpAuthCallbackErrors[keyof McpAuthCallbackErrors] export type McpAuthCallbackResponses = { /** * OAuth authentication completed */ 200: McpStatus } export type McpAuthCallbackResponse = McpAuthCallbackResponses[keyof McpAuthCallbackResponses] export type McpAuthAuthenticateData = { body?: never path: { name: string } query?: { directory?: string } url: "/mcp/{name}/auth/authenticate" } export type McpAuthAuthenticateErrors = { /** * Bad request */ 400: BadRequestError /** * Not found */ 404: NotFoundError } export type McpAuthAuthenticateError = McpAuthAuthenticateErrors[keyof McpAuthAuthenticateErrors] export type McpAuthAuthenticateResponses = { /** * OAuth authentication completed */ 200: McpStatus } export type McpAuthAuthenticateResponse = McpAuthAuthenticateResponses[keyof McpAuthAuthenticateResponses] export type McpConnectData = { body?: never path: { name: string } query?: { directory?: string } url: "/mcp/{name}/connect" } export type McpConnectResponses = { /** * MCP server connected successfully */ 200: boolean } export type McpConnectResponse = McpConnectResponses[keyof McpConnectResponses] export type McpDisconnectData = { body?: never path: { name: string } query?: { directory?: string } url: "/mcp/{name}/disconnect" } export type McpDisconnectResponses = { /** * MCP server disconnected successfully */ 200: boolean } export type McpDisconnectResponse = McpDisconnectResponses[keyof McpDisconnectResponses] export type LspStatusData = { body?: never path?: never query?: { directory?: string } url: "/lsp" } export type LspStatusResponses = { /** * LSP server status */ 200: Array } export type LspStatusResponse = LspStatusResponses[keyof LspStatusResponses] export type FormatterStatusData = { body?: never path?: never query?: { directory?: string } url: "/formatter" } export type FormatterStatusResponses = { /** * Formatter status */ 200: Array } export type FormatterStatusResponse = FormatterStatusResponses[keyof FormatterStatusResponses] export type TuiAppendPromptData = { body?: { text: string } path?: never query?: { directory?: string } url: "/tui/append-prompt" } export type TuiAppendPromptErrors = { /** * Bad request */ 400: BadRequestError } export type TuiAppendPromptError = TuiAppendPromptErrors[keyof TuiAppendPromptErrors] export type TuiAppendPromptResponses = { /** * Prompt processed successfully */ 200: boolean } export type TuiAppendPromptResponse = TuiAppendPromptResponses[keyof TuiAppendPromptResponses] export type TuiOpenHelpData = { body?: never path?: never query?: { directory?: string } url: "/tui/open-help" } export type TuiOpenHelpResponses = { /** * Help dialog opened successfully */ 200: boolean } export type TuiOpenHelpResponse = TuiOpenHelpResponses[keyof TuiOpenHelpResponses] export type TuiOpenSessionsData = { body?: never path?: never query?: { directory?: string } url: "/tui/open-sessions" } export type TuiOpenSessionsResponses = { /** * Session dialog opened successfully */ 200: boolean } export type TuiOpenSessionsResponse = TuiOpenSessionsResponses[keyof TuiOpenSessionsResponses] export type TuiOpenThemesData = { body?: never path?: never query?: { directory?: string } url: "/tui/open-themes" } export type TuiOpenThemesResponses = { /** * Theme dialog opened successfully */ 200: boolean } export type TuiOpenThemesResponse = TuiOpenThemesResponses[keyof TuiOpenThemesResponses] export type TuiOpenModelsData = { body?: never path?: never query?: { directory?: string } url: "/tui/open-models" } export type TuiOpenModelsResponses = { /** * Model dialog opened successfully */ 200: boolean } export type TuiOpenModelsResponse = TuiOpenModelsResponses[keyof TuiOpenModelsResponses] export type TuiSubmitPromptData = { body?: never path?: never query?: { directory?: string } url: "/tui/submit-prompt" } export type TuiSubmitPromptResponses = { /** * Prompt submitted successfully */ 200: boolean } export type TuiSubmitPromptResponse = TuiSubmitPromptResponses[keyof TuiSubmitPromptResponses] export type TuiClearPromptData = { body?: never path?: never query?: { directory?: string } url: "/tui/clear-prompt" } export type TuiClearPromptResponses = { /** * Prompt cleared successfully */ 200: boolean } export type TuiClearPromptResponse = TuiClearPromptResponses[keyof TuiClearPromptResponses] export type TuiExecuteCommandData = { body?: { command: string } path?: never query?: { directory?: string } url: "/tui/execute-command" } export type TuiExecuteCommandErrors = { /** * Bad request */ 400: BadRequestError } export type TuiExecuteCommandError = TuiExecuteCommandErrors[keyof TuiExecuteCommandErrors] export type TuiExecuteCommandResponses = { /** * Command executed successfully */ 200: boolean } export type TuiExecuteCommandResponse = TuiExecuteCommandResponses[keyof TuiExecuteCommandResponses] export type TuiShowToastData = { body?: { title?: string message: string variant: "info" | "success" | "warning" | "error" /** * Duration in milliseconds */ duration?: number } path?: never query?: { directory?: string } url: "/tui/show-toast" } export type TuiShowToastResponses = { /** * Toast notification shown successfully */ 200: boolean } export type TuiShowToastResponse = TuiShowToastResponses[keyof TuiShowToastResponses] export type TuiPublishData = { body?: EventTuiPromptAppend | EventTuiCommandExecute | EventTuiToastShow path?: never query?: { directory?: string } url: "/tui/publish" } export type TuiPublishErrors = { /** * Bad request */ 400: BadRequestError } export type TuiPublishError = TuiPublishErrors[keyof TuiPublishErrors] export type TuiPublishResponses = { /** * Event published successfully */ 200: boolean } export type TuiPublishResponse = TuiPublishResponses[keyof TuiPublishResponses] export type TuiControlNextData = { body?: never path?: never query?: { directory?: string } url: "/tui/control/next" } export type TuiControlNextResponses = { /** * Next TUI request */ 200: { path: string body: unknown } } export type TuiControlNextResponse = TuiControlNextResponses[keyof TuiControlNextResponses] export type TuiControlResponseData = { body?: unknown path?: never query?: { directory?: string } url: "/tui/control/response" } export type TuiControlResponseResponses = { /** * Response submitted successfully */ 200: boolean } export type TuiControlResponseResponse = TuiControlResponseResponses[keyof TuiControlResponseResponses] export type AuthSetData = { body?: Auth path: { id: string } query?: { directory?: string } url: "/auth/{id}" } export type AuthSetErrors = { /** * Bad request */ 400: BadRequestError } export type AuthSetError = AuthSetErrors[keyof AuthSetErrors] export type AuthSetResponses = { /** * Successfully set authentication credentials */ 200: boolean } export type AuthSetResponse = AuthSetResponses[keyof AuthSetResponses] export type EventSubscribeData = { body?: never path?: never query?: { directory?: string } url: "/event" } export type EventSubscribeResponses = { /** * Event stream */ 200: Event } export type EventSubscribeResponse = EventSubscribeResponses[keyof EventSubscribeResponses] export type ClientOptions = { baseUrl: `${string}://${string}` | (string & {}) }