Buckets:
| // This file is auto-generated by @hey-api/openapi-ts | |
| import { client } from "./client.gen.js"; | |
| import { buildClientParams } from "./client/index.js"; | |
| class HeyApiClient { | |
| client; | |
| constructor(args) { | |
| this.client = args?.client ?? client; | |
| } | |
| } | |
| class HeyApiRegistry { | |
| defaultKey = "default"; | |
| instances = new Map(); | |
| get(key) { | |
| const instance = this.instances.get(key ?? this.defaultKey); | |
| if (!instance) { | |
| throw new Error(`No SDK client found. Create one with "new OpencodeClient()" to fix this error.`); | |
| } | |
| return instance; | |
| } | |
| set(value, key) { | |
| this.instances.set(key ?? this.defaultKey, value); | |
| } | |
| } | |
| export class Config extends HeyApiClient { | |
| /** | |
| * Get global configuration | |
| * | |
| * Retrieve the current global OpenCode configuration settings and preferences. | |
| */ | |
| get(options) { | |
| return (options?.client ?? this.client).get({ | |
| url: "/global/config", | |
| ...options, | |
| }); | |
| } | |
| /** | |
| * Update global configuration | |
| * | |
| * Update global OpenCode configuration settings and preferences. | |
| */ | |
| update(parameters, options) { | |
| const params = buildClientParams([parameters], [{ args: [{ key: "config", map: "body" }] }]); | |
| return (options?.client ?? this.client).patch({ | |
| url: "/global/config", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| } | |
| export class Global extends HeyApiClient { | |
| /** | |
| * Get health | |
| * | |
| * Get health information about the OpenCode server. | |
| */ | |
| health(options) { | |
| return (options?.client ?? this.client).get({ | |
| url: "/global/health", | |
| ...options, | |
| }); | |
| } | |
| /** | |
| * Get global events | |
| * | |
| * Subscribe to global events from the OpenCode system using server-sent events. | |
| */ | |
| event(options) { | |
| return (options?.client ?? this.client).sse.get({ | |
| url: "/global/event", | |
| ...options, | |
| }); | |
| } | |
| /** | |
| * Dispose instance | |
| * | |
| * Clean up and dispose all OpenCode instances, releasing all resources. | |
| */ | |
| dispose(options) { | |
| return (options?.client ?? this.client).post({ | |
| url: "/global/dispose", | |
| ...options, | |
| }); | |
| } | |
| _config; | |
| get config() { | |
| return (this._config ??= new Config({ client: this.client })); | |
| } | |
| } | |
| export class Auth extends HeyApiClient { | |
| /** | |
| * Remove auth credentials | |
| * | |
| * Remove authentication credentials | |
| */ | |
| remove(parameters, options) { | |
| const params = buildClientParams([parameters], [{ args: [{ in: "path", key: "providerID" }] }]); | |
| return (options?.client ?? this.client).delete({ | |
| url: "/auth/{providerID}", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Set auth credentials | |
| * | |
| * Set authentication credentials | |
| */ | |
| set(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "providerID" }, | |
| { key: "auth", map: "body" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).put({ | |
| url: "/auth/{providerID}", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| } | |
| export class Project extends HeyApiClient { | |
| /** | |
| * List all projects | |
| * | |
| * Get a list of projects that have been opened with OpenCode. | |
| */ | |
| list(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/project", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Get current project | |
| * | |
| * Retrieve the currently active project that OpenCode is working with. | |
| */ | |
| current(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/project/current", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Update project | |
| * | |
| * Update project properties such as name, icon, and commands. | |
| */ | |
| update(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "projectID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "body", key: "name" }, | |
| { in: "body", key: "icon" }, | |
| { in: "body", key: "commands" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).patch({ | |
| url: "/project/{projectID}", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| } | |
| export class Pty extends HeyApiClient { | |
| /** | |
| * List PTY sessions | |
| * | |
| * Get a list of all active pseudo-terminal (PTY) sessions managed by OpenCode. | |
| */ | |
| list(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/pty", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Create PTY session | |
| * | |
| * Create a new pseudo-terminal (PTY) session for running shell commands and processes. | |
| */ | |
| create(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "body", key: "command" }, | |
| { in: "body", key: "args" }, | |
| { in: "body", key: "cwd" }, | |
| { in: "body", key: "title" }, | |
| { in: "body", key: "env" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/pty", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| /** | |
| * Remove PTY session | |
| * | |
| * Remove and terminate a specific pseudo-terminal (PTY) session. | |
| */ | |
| remove(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "ptyID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).delete({ | |
| url: "/pty/{ptyID}", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Get PTY session | |
| * | |
| * Retrieve detailed information about a specific pseudo-terminal (PTY) session. | |
| */ | |
| get(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "ptyID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/pty/{ptyID}", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Update PTY session | |
| * | |
| * Update properties of an existing pseudo-terminal (PTY) session. | |
| */ | |
| update(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "ptyID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "body", key: "title" }, | |
| { in: "body", key: "size" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).put({ | |
| url: "/pty/{ptyID}", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| /** | |
| * Connect to PTY session | |
| * | |
| * Establish a WebSocket connection to interact with a pseudo-terminal (PTY) session in real-time. | |
| */ | |
| connect(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "ptyID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/pty/{ptyID}/connect", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| } | |
| export class Config2 extends HeyApiClient { | |
| /** | |
| * Get configuration | |
| * | |
| * Retrieve the current OpenCode configuration settings and preferences. | |
| */ | |
| get(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/config", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Update configuration | |
| * | |
| * Update OpenCode configuration settings and preferences. | |
| */ | |
| update(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { key: "config", map: "body" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).patch({ | |
| url: "/config", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| /** | |
| * List config providers | |
| * | |
| * Get a list of all configured AI providers and their default models. | |
| */ | |
| providers(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/config/providers", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| } | |
| export class Tool extends HeyApiClient { | |
| /** | |
| * List tool IDs | |
| * | |
| * Get a list of all available tool IDs, including both built-in tools and dynamically registered tools. | |
| */ | |
| ids(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/experimental/tool/ids", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * List tools | |
| * | |
| * Get a list of available tools with their JSON schema parameters for a specific provider and model combination. | |
| */ | |
| list(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "query", key: "provider" }, | |
| { in: "query", key: "model" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/experimental/tool", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| } | |
| export class Worktree extends HeyApiClient { | |
| /** | |
| * Remove worktree | |
| * | |
| * Remove a git worktree and delete its branch. | |
| */ | |
| remove(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { key: "worktreeRemoveInput", map: "body" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).delete({ | |
| url: "/experimental/worktree", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| /** | |
| * List worktrees | |
| * | |
| * List all sandbox worktrees for the current project. | |
| */ | |
| list(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/experimental/worktree", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Create worktree | |
| * | |
| * Create a new git worktree for the current project and run any configured startup scripts. | |
| */ | |
| create(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { key: "worktreeCreateInput", map: "body" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/experimental/worktree", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| /** | |
| * Reset worktree | |
| * | |
| * Reset a worktree branch to the primary default branch. | |
| */ | |
| reset(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { key: "worktreeResetInput", map: "body" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/experimental/worktree/reset", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| } | |
| export class Workspace extends HeyApiClient { | |
| /** | |
| * Remove workspace | |
| * | |
| * Remove an existing workspace. | |
| */ | |
| remove(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "id" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).delete({ | |
| url: "/experimental/workspace/{id}", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Create workspace | |
| * | |
| * Create a workspace for the current project. | |
| */ | |
| create(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "id" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "body", key: "branch" }, | |
| { in: "body", key: "config" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/experimental/workspace/{id}", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| /** | |
| * List workspaces | |
| * | |
| * List all workspaces. | |
| */ | |
| list(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/experimental/workspace", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| } | |
| export class Session extends HeyApiClient { | |
| /** | |
| * List sessions | |
| * | |
| * Get a list of all OpenCode sessions across projects, sorted by most recently updated. Archived sessions are excluded by default. | |
| */ | |
| list(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "query", key: "roots" }, | |
| { in: "query", key: "start" }, | |
| { in: "query", key: "cursor" }, | |
| { in: "query", key: "search" }, | |
| { in: "query", key: "limit" }, | |
| { in: "query", key: "archived" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/experimental/session", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| } | |
| export class Resource extends HeyApiClient { | |
| /** | |
| * Get MCP resources | |
| * | |
| * Get all available MCP resources from connected servers. Optionally filter by name. | |
| */ | |
| list(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/experimental/resource", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| } | |
| export class Experimental extends HeyApiClient { | |
| _workspace; | |
| get workspace() { | |
| return (this._workspace ??= new Workspace({ client: this.client })); | |
| } | |
| _session; | |
| get session() { | |
| return (this._session ??= new Session({ client: this.client })); | |
| } | |
| _resource; | |
| get resource() { | |
| return (this._resource ??= new Resource({ client: this.client })); | |
| } | |
| } | |
| export class Session2 extends HeyApiClient { | |
| /** | |
| * List sessions | |
| * | |
| * Get a list of all OpenCode sessions, sorted by most recently updated. | |
| */ | |
| list(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "query", key: "roots" }, | |
| { in: "query", key: "start" }, | |
| { in: "query", key: "search" }, | |
| { in: "query", key: "limit" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/session", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Create session | |
| * | |
| * Create a new OpenCode session for interacting with AI assistants and managing conversations. | |
| */ | |
| create(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "body", key: "parentID" }, | |
| { in: "body", key: "title" }, | |
| { in: "body", key: "permission" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/session", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| /** | |
| * Get session status | |
| * | |
| * Retrieve the current status of all sessions, including active, idle, and completed states. | |
| */ | |
| status(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/session/status", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Delete session | |
| * | |
| * Delete a session and permanently remove all associated data, including messages and history. | |
| */ | |
| delete(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "sessionID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).delete({ | |
| url: "/session/{sessionID}", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Get session | |
| * | |
| * Retrieve detailed information about a specific OpenCode session. | |
| */ | |
| get(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "sessionID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/session/{sessionID}", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Update session | |
| * | |
| * Update properties of an existing session, such as title or other metadata. | |
| */ | |
| update(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "sessionID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "body", key: "title" }, | |
| { in: "body", key: "time" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).patch({ | |
| url: "/session/{sessionID}", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| /** | |
| * Get session children | |
| * | |
| * Retrieve all child sessions that were forked from the specified parent session. | |
| */ | |
| children(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "sessionID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/session/{sessionID}/children", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Get session todos | |
| * | |
| * Retrieve the todo list associated with a specific session, showing tasks and action items. | |
| */ | |
| todo(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "sessionID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/session/{sessionID}/todo", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Initialize session | |
| * | |
| * Analyze the current application and create an AGENTS.md file with project-specific agent configurations. | |
| */ | |
| init(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "sessionID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "body", key: "modelID" }, | |
| { in: "body", key: "providerID" }, | |
| { in: "body", key: "messageID" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/session/{sessionID}/init", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| /** | |
| * Fork session | |
| * | |
| * Create a new session by forking an existing session at a specific message point. | |
| */ | |
| fork(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "sessionID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "body", key: "messageID" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/session/{sessionID}/fork", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| /** | |
| * Abort session | |
| * | |
| * Abort an active session and stop any ongoing AI processing or command execution. | |
| */ | |
| abort(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "sessionID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/session/{sessionID}/abort", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Unshare session | |
| * | |
| * Remove the shareable link for a session, making it private again. | |
| */ | |
| unshare(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "sessionID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).delete({ | |
| url: "/session/{sessionID}/share", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Share session | |
| * | |
| * Create a shareable link for a session, allowing others to view the conversation. | |
| */ | |
| share(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "sessionID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/session/{sessionID}/share", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Get message diff | |
| * | |
| * Get the file changes (diff) that resulted from a specific user message in the session. | |
| */ | |
| diff(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "sessionID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "query", key: "messageID" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/session/{sessionID}/diff", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Summarize session | |
| * | |
| * Generate a concise summary of the session using AI compaction to preserve key information. | |
| */ | |
| summarize(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "sessionID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "body", key: "providerID" }, | |
| { in: "body", key: "modelID" }, | |
| { in: "body", key: "auto" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/session/{sessionID}/summarize", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| /** | |
| * Get session messages | |
| * | |
| * Retrieve all messages in a session, including user prompts and AI responses. | |
| */ | |
| messages(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "sessionID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "query", key: "limit" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/session/{sessionID}/message", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Send message | |
| * | |
| * Create and send a new message to a session, streaming the AI response. | |
| */ | |
| prompt(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "sessionID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "body", key: "messageID" }, | |
| { in: "body", key: "model" }, | |
| { in: "body", key: "agent" }, | |
| { in: "body", key: "noReply" }, | |
| { in: "body", key: "tools" }, | |
| { in: "body", key: "format" }, | |
| { in: "body", key: "system" }, | |
| { in: "body", key: "variant" }, | |
| { in: "body", key: "parts" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/session/{sessionID}/message", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| /** | |
| * Delete message | |
| * | |
| * Permanently delete a specific message (and all of its parts) from a session. This does not revert any file changes that may have been made while processing the message. | |
| */ | |
| deleteMessage(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "sessionID" }, | |
| { in: "path", key: "messageID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).delete({ | |
| url: "/session/{sessionID}/message/{messageID}", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Get message | |
| * | |
| * Retrieve a specific message from a session by its message ID. | |
| */ | |
| message(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "sessionID" }, | |
| { in: "path", key: "messageID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/session/{sessionID}/message/{messageID}", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Send async message | |
| * | |
| * Create and send a new message to a session asynchronously, starting the session if needed and returning immediately. | |
| */ | |
| promptAsync(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "sessionID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "body", key: "messageID" }, | |
| { in: "body", key: "model" }, | |
| { in: "body", key: "agent" }, | |
| { in: "body", key: "noReply" }, | |
| { in: "body", key: "tools" }, | |
| { in: "body", key: "format" }, | |
| { in: "body", key: "system" }, | |
| { in: "body", key: "variant" }, | |
| { in: "body", key: "parts" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/session/{sessionID}/prompt_async", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| /** | |
| * Send command | |
| * | |
| * Send a new command to a session for execution by the AI assistant. | |
| */ | |
| command(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "sessionID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "body", key: "messageID" }, | |
| { in: "body", key: "agent" }, | |
| { in: "body", key: "model" }, | |
| { in: "body", key: "arguments" }, | |
| { in: "body", key: "command" }, | |
| { in: "body", key: "variant" }, | |
| { in: "body", key: "parts" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/session/{sessionID}/command", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| /** | |
| * Run shell command | |
| * | |
| * Execute a shell command within the session context and return the AI's response. | |
| */ | |
| shell(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "sessionID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "body", key: "agent" }, | |
| { in: "body", key: "model" }, | |
| { in: "body", key: "command" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/session/{sessionID}/shell", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| /** | |
| * Revert message | |
| * | |
| * Revert a specific message in a session, undoing its effects and restoring the previous state. | |
| */ | |
| revert(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "sessionID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "body", key: "messageID" }, | |
| { in: "body", key: "partID" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/session/{sessionID}/revert", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| /** | |
| * Restore reverted messages | |
| * | |
| * Restore all previously reverted messages in a session. | |
| */ | |
| unrevert(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "sessionID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/session/{sessionID}/unrevert", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| } | |
| export class Part extends HeyApiClient { | |
| /** | |
| * Delete a part from a message | |
| */ | |
| delete(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "sessionID" }, | |
| { in: "path", key: "messageID" }, | |
| { in: "path", key: "partID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).delete({ | |
| url: "/session/{sessionID}/message/{messageID}/part/{partID}", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Update a part in a message | |
| */ | |
| update(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "sessionID" }, | |
| { in: "path", key: "messageID" }, | |
| { in: "path", key: "partID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { key: "part", map: "body" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).patch({ | |
| url: "/session/{sessionID}/message/{messageID}/part/{partID}", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| } | |
| export class Permission extends HeyApiClient { | |
| /** | |
| * Respond to permission | |
| * | |
| * Approve or deny a permission request from the AI assistant. | |
| * | |
| * @deprecated | |
| */ | |
| respond(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "sessionID" }, | |
| { in: "path", key: "permissionID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "body", key: "response" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/session/{sessionID}/permissions/{permissionID}", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| /** | |
| * Respond to permission request | |
| * | |
| * Approve or deny a permission request from the AI assistant. | |
| */ | |
| reply(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "requestID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "body", key: "reply" }, | |
| { in: "body", key: "message" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/permission/{requestID}/reply", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| /** | |
| * List pending permissions | |
| * | |
| * Get all pending permission requests across all sessions. | |
| */ | |
| list(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/permission", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| } | |
| export class Question extends HeyApiClient { | |
| /** | |
| * List pending questions | |
| * | |
| * Get all pending question requests across all sessions. | |
| */ | |
| list(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/question", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Reply to question request | |
| * | |
| * Provide answers to a question request from the AI assistant. | |
| */ | |
| reply(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "requestID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "body", key: "answers" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/question/{requestID}/reply", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| /** | |
| * Reject question request | |
| * | |
| * Reject a question request from the AI assistant. | |
| */ | |
| reject(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "requestID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/question/{requestID}/reject", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| } | |
| export class Oauth extends HeyApiClient { | |
| /** | |
| * OAuth authorize | |
| * | |
| * Initiate OAuth authorization for a specific AI provider to get an authorization URL. | |
| */ | |
| authorize(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "providerID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "body", key: "method" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/provider/{providerID}/oauth/authorize", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| /** | |
| * OAuth callback | |
| * | |
| * Handle the OAuth callback from a provider after user authorization. | |
| */ | |
| callback(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "providerID" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "body", key: "method" }, | |
| { in: "body", key: "code" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/provider/{providerID}/oauth/callback", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| } | |
| export class Provider extends HeyApiClient { | |
| /** | |
| * List providers | |
| * | |
| * Get a list of all available AI providers, including both available and connected ones. | |
| */ | |
| list(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/provider", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Get provider auth methods | |
| * | |
| * Retrieve available authentication methods for all AI providers. | |
| */ | |
| auth(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/provider/auth", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| _oauth; | |
| get oauth() { | |
| return (this._oauth ??= new Oauth({ client: this.client })); | |
| } | |
| } | |
| export class Find extends HeyApiClient { | |
| /** | |
| * Find text | |
| * | |
| * Search for text patterns across files in the project using ripgrep. | |
| */ | |
| text(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "query", key: "pattern" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/find", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Find files | |
| * | |
| * Search for files or directories by name or pattern in the project directory. | |
| */ | |
| files(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "query", key: "query" }, | |
| { in: "query", key: "dirs" }, | |
| { in: "query", key: "type" }, | |
| { in: "query", key: "limit" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/find/file", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Find symbols | |
| * | |
| * Search for workspace symbols like functions, classes, and variables using LSP. | |
| */ | |
| symbols(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "query", key: "query" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/find/symbol", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| } | |
| export class File extends HeyApiClient { | |
| /** | |
| * List files | |
| * | |
| * List files and directories in a specified path. | |
| */ | |
| list(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "query", key: "path" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/file", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Read file | |
| * | |
| * Read the content of a specified file. | |
| */ | |
| read(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "query", key: "path" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/file/content", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Get file status | |
| * | |
| * Get the git status of all files in the project. | |
| */ | |
| status(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/file/status", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| } | |
| export class Auth2 extends HeyApiClient { | |
| /** | |
| * Remove MCP OAuth | |
| * | |
| * Remove OAuth credentials for an MCP server | |
| */ | |
| remove(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "name" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).delete({ | |
| url: "/mcp/{name}/auth", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Start MCP OAuth | |
| * | |
| * Start OAuth authentication flow for a Model Context Protocol (MCP) server. | |
| */ | |
| start(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "name" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/mcp/{name}/auth", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Complete MCP OAuth | |
| * | |
| * Complete OAuth authentication for a Model Context Protocol (MCP) server using the authorization code. | |
| */ | |
| callback(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "name" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "body", key: "code" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/mcp/{name}/auth/callback", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| /** | |
| * Authenticate MCP OAuth | |
| * | |
| * Start OAuth flow and wait for callback (opens browser) | |
| */ | |
| authenticate(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "name" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/mcp/{name}/auth/authenticate", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| } | |
| export class Mcp extends HeyApiClient { | |
| /** | |
| * Get MCP status | |
| * | |
| * Get the status of all Model Context Protocol (MCP) servers. | |
| */ | |
| status(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/mcp", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Add MCP server | |
| * | |
| * Dynamically add a new Model Context Protocol (MCP) server to the system. | |
| */ | |
| add(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "body", key: "name" }, | |
| { in: "body", key: "config" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/mcp", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| /** | |
| * Connect an MCP server | |
| */ | |
| connect(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "name" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/mcp/{name}/connect", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Disconnect an MCP server | |
| */ | |
| disconnect(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "path", key: "name" }, | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/mcp/{name}/disconnect", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| _auth; | |
| get auth() { | |
| return (this._auth ??= new Auth2({ client: this.client })); | |
| } | |
| } | |
| export class Control extends HeyApiClient { | |
| /** | |
| * Get next TUI request | |
| * | |
| * Retrieve the next TUI (Terminal User Interface) request from the queue for processing. | |
| */ | |
| next(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/tui/control/next", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Submit TUI response | |
| * | |
| * Submit a response to the TUI request queue to complete a pending request. | |
| */ | |
| response(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { key: "body", map: "body" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/tui/control/response", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| } | |
| export class Tui extends HeyApiClient { | |
| /** | |
| * Append TUI prompt | |
| * | |
| * Append prompt to the TUI | |
| */ | |
| appendPrompt(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "body", key: "text" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/tui/append-prompt", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| /** | |
| * Open help dialog | |
| * | |
| * Open the help dialog in the TUI to display user assistance information. | |
| */ | |
| openHelp(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/tui/open-help", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Open sessions dialog | |
| * | |
| * Open the session dialog | |
| */ | |
| openSessions(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/tui/open-sessions", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Open themes dialog | |
| * | |
| * Open the theme dialog | |
| */ | |
| openThemes(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/tui/open-themes", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Open models dialog | |
| * | |
| * Open the model dialog | |
| */ | |
| openModels(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/tui/open-models", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Submit TUI prompt | |
| * | |
| * Submit the prompt | |
| */ | |
| submitPrompt(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/tui/submit-prompt", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Clear TUI prompt | |
| * | |
| * Clear the prompt | |
| */ | |
| clearPrompt(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/tui/clear-prompt", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * Execute TUI command | |
| * | |
| * Execute a TUI command (e.g. agent_cycle) | |
| */ | |
| executeCommand(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "body", key: "command" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/tui/execute-command", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| /** | |
| * Show TUI toast | |
| * | |
| * Show a toast notification in the TUI | |
| */ | |
| showToast(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "body", key: "title" }, | |
| { in: "body", key: "message" }, | |
| { in: "body", key: "variant" }, | |
| { in: "body", key: "duration" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/tui/show-toast", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| /** | |
| * Publish TUI event | |
| * | |
| * Publish a TUI event | |
| */ | |
| publish(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { key: "body", map: "body" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/tui/publish", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| /** | |
| * Select session | |
| * | |
| * Navigate the TUI to display the specified session. | |
| */ | |
| selectSession(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "body", key: "sessionID" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/tui/select-session", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| _control; | |
| get control() { | |
| return (this._control ??= new Control({ client: this.client })); | |
| } | |
| } | |
| export class Instance extends HeyApiClient { | |
| /** | |
| * Dispose instance | |
| * | |
| * Clean up and dispose the current OpenCode instance, releasing all resources. | |
| */ | |
| dispose(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/instance/dispose", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| } | |
| export class Path extends HeyApiClient { | |
| /** | |
| * Get paths | |
| * | |
| * Retrieve the current working directory and related path information for the OpenCode instance. | |
| */ | |
| get(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/path", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| } | |
| export class Vcs extends HeyApiClient { | |
| /** | |
| * Get VCS info | |
| * | |
| * Retrieve version control system (VCS) information for the current project, such as git branch. | |
| */ | |
| get(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/vcs", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| } | |
| export class Command extends HeyApiClient { | |
| /** | |
| * List commands | |
| * | |
| * Get a list of all available commands in the OpenCode system. | |
| */ | |
| list(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/command", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| } | |
| export class App extends HeyApiClient { | |
| /** | |
| * Write log | |
| * | |
| * Write a log entry to the server logs with specified level and metadata. | |
| */ | |
| log(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| { in: "body", key: "service" }, | |
| { in: "body", key: "level" }, | |
| { in: "body", key: "message" }, | |
| { in: "body", key: "extra" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).post({ | |
| url: "/log", | |
| ...options, | |
| ...params, | |
| headers: { | |
| "Content-Type": "application/json", | |
| ...options?.headers, | |
| ...params.headers, | |
| }, | |
| }); | |
| } | |
| /** | |
| * List agents | |
| * | |
| * Get a list of all available AI agents in the OpenCode system. | |
| */ | |
| agents(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/agent", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| /** | |
| * List skills | |
| * | |
| * Get a list of all available skills in the OpenCode system. | |
| */ | |
| skills(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/skill", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| } | |
| export class Lsp extends HeyApiClient { | |
| /** | |
| * Get LSP status | |
| * | |
| * Get LSP server status | |
| */ | |
| status(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/lsp", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| } | |
| export class Formatter extends HeyApiClient { | |
| /** | |
| * Get formatter status | |
| * | |
| * Get formatter status | |
| */ | |
| status(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).get({ | |
| url: "/formatter", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| } | |
| export class Event extends HeyApiClient { | |
| /** | |
| * Subscribe to events | |
| * | |
| * Get events | |
| */ | |
| subscribe(parameters, options) { | |
| const params = buildClientParams([parameters], [ | |
| { | |
| args: [ | |
| { in: "query", key: "directory" }, | |
| { in: "query", key: "workspace" }, | |
| ], | |
| }, | |
| ]); | |
| return (options?.client ?? this.client).sse.get({ | |
| url: "/event", | |
| ...options, | |
| ...params, | |
| }); | |
| } | |
| } | |
| export class OpencodeClient extends HeyApiClient { | |
| static __registry = new HeyApiRegistry(); | |
| constructor(args) { | |
| super(args); | |
| OpencodeClient.__registry.set(this, args?.key); | |
| } | |
| _global; | |
| get global() { | |
| return (this._global ??= new Global({ client: this.client })); | |
| } | |
| _auth; | |
| get auth() { | |
| return (this._auth ??= new Auth({ client: this.client })); | |
| } | |
| _project; | |
| get project() { | |
| return (this._project ??= new Project({ client: this.client })); | |
| } | |
| _pty; | |
| get pty() { | |
| return (this._pty ??= new Pty({ client: this.client })); | |
| } | |
| _config; | |
| get config() { | |
| return (this._config ??= new Config2({ client: this.client })); | |
| } | |
| _tool; | |
| get tool() { | |
| return (this._tool ??= new Tool({ client: this.client })); | |
| } | |
| _worktree; | |
| get worktree() { | |
| return (this._worktree ??= new Worktree({ client: this.client })); | |
| } | |
| _experimental; | |
| get experimental() { | |
| return (this._experimental ??= new Experimental({ client: this.client })); | |
| } | |
| _session; | |
| get session() { | |
| return (this._session ??= new Session2({ client: this.client })); | |
| } | |
| _part; | |
| get part() { | |
| return (this._part ??= new Part({ client: this.client })); | |
| } | |
| _permission; | |
| get permission() { | |
| return (this._permission ??= new Permission({ client: this.client })); | |
| } | |
| _question; | |
| get question() { | |
| return (this._question ??= new Question({ client: this.client })); | |
| } | |
| _provider; | |
| get provider() { | |
| return (this._provider ??= new Provider({ client: this.client })); | |
| } | |
| _find; | |
| get find() { | |
| return (this._find ??= new Find({ client: this.client })); | |
| } | |
| _file; | |
| get file() { | |
| return (this._file ??= new File({ client: this.client })); | |
| } | |
| _mcp; | |
| get mcp() { | |
| return (this._mcp ??= new Mcp({ client: this.client })); | |
| } | |
| _tui; | |
| get tui() { | |
| return (this._tui ??= new Tui({ client: this.client })); | |
| } | |
| _instance; | |
| get instance() { | |
| return (this._instance ??= new Instance({ client: this.client })); | |
| } | |
| _path; | |
| get path() { | |
| return (this._path ??= new Path({ client: this.client })); | |
| } | |
| _vcs; | |
| get vcs() { | |
| return (this._vcs ??= new Vcs({ client: this.client })); | |
| } | |
| _command; | |
| get command() { | |
| return (this._command ??= new Command({ client: this.client })); | |
| } | |
| _app; | |
| get app() { | |
| return (this._app ??= new App({ client: this.client })); | |
| } | |
| _lsp; | |
| get lsp() { | |
| return (this._lsp ??= new Lsp({ client: this.client })); | |
| } | |
| _formatter; | |
| get formatter() { | |
| return (this._formatter ??= new Formatter({ client: this.client })); | |
| } | |
| _event; | |
| get event() { | |
| return (this._event ??= new Event({ client: this.client })); | |
| } | |
| } | |
Xet Storage Details
- Size:
- 76 kB
- Xet hash:
- a8635bb35a491ea08b32d86e430603470de8a6ea058261c278e1834ee1f64eb5
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.