Files
opencode/packages/sdk/js/src/v2/gen/sdk.gen.ts
2025-12-07 19:58:04 -05:00

2346 lines
56 KiB
TypeScript

// This file is auto-generated by @hey-api/openapi-ts
import { client } from "./client.gen.js"
import { buildClientParams, type Client, type Options as Options2, type TDataShape } from "./client/index.js"
import type {
AgentPartInput,
AppAgentsResponses,
AppLogErrors,
AppLogResponses,
Auth as Auth2,
AuthSetErrors,
AuthSetResponses,
CommandListResponses,
Config as Config2,
ConfigGetResponses,
ConfigProvidersResponses,
ConfigUpdateErrors,
ConfigUpdateResponses,
EventSubscribeResponses,
EventTuiCommandExecute,
EventTuiPromptAppend,
EventTuiToastShow,
FileListResponses,
FilePartInput,
FileReadResponses,
FileStatusResponses,
FindFilesResponses,
FindSymbolsResponses,
FindTextResponses,
FormatterStatusResponses,
GlobalEventResponses,
InstanceDisposeResponses,
LspStatusResponses,
McpAddErrors,
McpAddResponses,
McpAuthAuthenticateErrors,
McpAuthAuthenticateResponses,
McpAuthCallbackErrors,
McpAuthCallbackResponses,
McpAuthRemoveErrors,
McpAuthRemoveResponses,
McpAuthStartErrors,
McpAuthStartResponses,
McpLocalConfig,
McpRemoteConfig,
McpStatusResponses,
PathGetResponses,
PermissionRespondErrors,
PermissionRespondResponses,
ProjectCurrentResponses,
ProjectListResponses,
ProviderAuthResponses,
ProviderListResponses,
ProviderOauthAuthorizeErrors,
ProviderOauthAuthorizeResponses,
ProviderOauthCallbackErrors,
ProviderOauthCallbackResponses,
PtyConnectErrors,
PtyConnectResponses,
PtyCreateErrors,
PtyCreateResponses,
PtyGetErrors,
PtyGetResponses,
PtyListResponses,
PtyRemoveErrors,
PtyRemoveResponses,
PtyUpdateErrors,
PtyUpdateResponses,
SessionAbortErrors,
SessionAbortResponses,
SessionChildrenErrors,
SessionChildrenResponses,
SessionCommandErrors,
SessionCommandResponses,
SessionCreateErrors,
SessionCreateResponses,
SessionDeleteErrors,
SessionDeleteResponses,
SessionDiffErrors,
SessionDiffResponses,
SessionForkResponses,
SessionGetErrors,
SessionGetResponses,
SessionInitErrors,
SessionInitResponses,
SessionListResponses,
SessionMessageErrors,
SessionMessageResponses,
SessionMessagesErrors,
SessionMessagesResponses,
SessionPromptAsyncErrors,
SessionPromptAsyncResponses,
SessionPromptErrors,
SessionPromptResponses,
SessionRevertErrors,
SessionRevertResponses,
SessionShareErrors,
SessionShareResponses,
SessionShellErrors,
SessionShellResponses,
SessionStatusErrors,
SessionStatusResponses,
SessionSummarizeErrors,
SessionSummarizeResponses,
SessionTodoErrors,
SessionTodoResponses,
SessionUnrevertErrors,
SessionUnrevertResponses,
SessionUnshareErrors,
SessionUnshareResponses,
SessionUpdateErrors,
SessionUpdateResponses,
SubtaskPartInput,
TextPartInput,
ToolIdsErrors,
ToolIdsResponses,
ToolListErrors,
ToolListResponses,
TuiAppendPromptErrors,
TuiAppendPromptResponses,
TuiClearPromptResponses,
TuiControlNextResponses,
TuiControlResponseResponses,
TuiExecuteCommandErrors,
TuiExecuteCommandResponses,
TuiOpenHelpResponses,
TuiOpenModelsResponses,
TuiOpenSessionsResponses,
TuiOpenThemesResponses,
TuiPublishErrors,
TuiPublishResponses,
TuiShowToastResponses,
TuiSubmitPromptResponses,
VcsGetResponses,
} from "./types.gen.js"
export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = Options2<
TData,
ThrowOnError
> & {
/**
* You can provide a client instance returned by `createClient()` instead of
* individual options. This might be also useful if you want to implement a
* custom client.
*/
client?: Client
/**
* You can pass arbitrary values through the `meta` object. This can be
* used to access values that aren't defined as part of the SDK function.
*/
meta?: Record<string, unknown>
}
class HeyApiClient {
protected client: Client
constructor(args?: { client?: Client }) {
this.client = args?.client ?? client
}
}
class HeyApiRegistry<T> {
private readonly defaultKey = "default"
private readonly instances: Map<string, T> = new Map()
get(key?: string): T {
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: T, key?: string): void {
this.instances.set(key ?? this.defaultKey, value)
}
}
export class Global extends HeyApiClient {
/**
* Get events
*/
public event<ThrowOnError extends boolean = false>(options?: Options<never, ThrowOnError>) {
return (options?.client ?? this.client).sse.get<GlobalEventResponses, unknown, ThrowOnError>({
url: "/global/event",
...options,
})
}
}
export class Project extends HeyApiClient {
/**
* List all projects
*
* List all projects
*/
public list<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }] }])
return (options?.client ?? this.client).get<ProjectListResponses, unknown, ThrowOnError>({
url: "/project",
...options,
...params,
})
}
/**
* Get the current project
*/
public current<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }] }])
return (options?.client ?? this.client).get<ProjectCurrentResponses, unknown, ThrowOnError>({
url: "/project/current",
...options,
...params,
})
}
}
export class Pty extends HeyApiClient {
/**
* List all PTY sessions
*/
public list<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }] }])
return (options?.client ?? this.client).get<PtyListResponses, unknown, ThrowOnError>({
url: "/pty",
...options,
...params,
})
}
/**
* Create a new PTY session
*/
public create<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
command?: string
args?: Array<string>
cwd?: string
title?: string
env?: {
[key: string]: string
}
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "query", key: "directory" },
{ 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<PtyCreateResponses, PtyCreateErrors, ThrowOnError>({
url: "/pty",
...options,
...params,
headers: {
"Content-Type": "application/json",
...options?.headers,
...params.headers,
},
})
}
/**
* Remove a PTY session
*/
public remove<ThrowOnError extends boolean = false>(
parameters: {
ptyID: string
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "ptyID" },
{ in: "query", key: "directory" },
],
},
],
)
return (options?.client ?? this.client).delete<PtyRemoveResponses, PtyRemoveErrors, ThrowOnError>({
url: "/pty/{ptyID}",
...options,
...params,
})
}
/**
* Get PTY session info
*/
public get<ThrowOnError extends boolean = false>(
parameters: {
ptyID: string
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "ptyID" },
{ in: "query", key: "directory" },
],
},
],
)
return (options?.client ?? this.client).get<PtyGetResponses, PtyGetErrors, ThrowOnError>({
url: "/pty/{ptyID}",
...options,
...params,
})
}
/**
* Update PTY session
*/
public update<ThrowOnError extends boolean = false>(
parameters: {
ptyID: string
directory?: string
title?: string
size?: {
rows: number
cols: number
}
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "ptyID" },
{ in: "query", key: "directory" },
{ in: "body", key: "title" },
{ in: "body", key: "size" },
],
},
],
)
return (options?.client ?? this.client).put<PtyUpdateResponses, PtyUpdateErrors, ThrowOnError>({
url: "/pty/{ptyID}",
...options,
...params,
headers: {
"Content-Type": "application/json",
...options?.headers,
...params.headers,
},
})
}
/**
* Connect to a PTY session
*/
public connect<ThrowOnError extends boolean = false>(
parameters: {
ptyID: string
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "ptyID" },
{ in: "query", key: "directory" },
],
},
],
)
return (options?.client ?? this.client).get<PtyConnectResponses, PtyConnectErrors, ThrowOnError>({
url: "/pty/{ptyID}/connect",
...options,
...params,
})
}
}
export class Config extends HeyApiClient {
/**
* Get config info
*/
public get<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }] }])
return (options?.client ?? this.client).get<ConfigGetResponses, unknown, ThrowOnError>({
url: "/config",
...options,
...params,
})
}
/**
* Update config
*/
public update<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
config?: Config2
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "query", key: "directory" },
{ key: "config", map: "body" },
],
},
],
)
return (options?.client ?? this.client).patch<ConfigUpdateResponses, ConfigUpdateErrors, ThrowOnError>({
url: "/config",
...options,
...params,
headers: {
"Content-Type": "application/json",
...options?.headers,
...params.headers,
},
})
}
/**
* List all providers
*/
public providers<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }] }])
return (options?.client ?? this.client).get<ConfigProvidersResponses, unknown, ThrowOnError>({
url: "/config/providers",
...options,
...params,
})
}
}
export class Tool extends HeyApiClient {
/**
* List all tool IDs (including built-in and dynamically registered)
*/
public ids<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }] }])
return (options?.client ?? this.client).get<ToolIdsResponses, ToolIdsErrors, ThrowOnError>({
url: "/experimental/tool/ids",
...options,
...params,
})
}
/**
* List tools with JSON schema parameters for a provider/model
*/
public list<ThrowOnError extends boolean = false>(
parameters: {
directory?: string
provider: string
model: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "query", key: "directory" },
{ in: "query", key: "provider" },
{ in: "query", key: "model" },
],
},
],
)
return (options?.client ?? this.client).get<ToolListResponses, ToolListErrors, ThrowOnError>({
url: "/experimental/tool",
...options,
...params,
})
}
}
export class Instance extends HeyApiClient {
/**
* Dispose the current instance
*/
public dispose<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }] }])
return (options?.client ?? this.client).post<InstanceDisposeResponses, unknown, ThrowOnError>({
url: "/instance/dispose",
...options,
...params,
})
}
}
export class Path extends HeyApiClient {
/**
* Get the current path
*/
public get<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }] }])
return (options?.client ?? this.client).get<PathGetResponses, unknown, ThrowOnError>({
url: "/path",
...options,
...params,
})
}
}
export class Vcs extends HeyApiClient {
/**
* Get VCS info for the current instance
*/
public get<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }] }])
return (options?.client ?? this.client).get<VcsGetResponses, unknown, ThrowOnError>({
url: "/vcs",
...options,
...params,
})
}
}
export class Session extends HeyApiClient {
/**
* List all sessions
*/
public list<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }] }])
return (options?.client ?? this.client).get<SessionListResponses, unknown, ThrowOnError>({
url: "/session",
...options,
...params,
})
}
/**
* Create a new session
*/
public create<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
parentID?: string
title?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "query", key: "directory" },
{ in: "body", key: "parentID" },
{ in: "body", key: "title" },
],
},
],
)
return (options?.client ?? this.client).post<SessionCreateResponses, SessionCreateErrors, ThrowOnError>({
url: "/session",
...options,
...params,
headers: {
"Content-Type": "application/json",
...options?.headers,
...params.headers,
},
})
}
/**
* Get session status
*/
public status<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }] }])
return (options?.client ?? this.client).get<SessionStatusResponses, SessionStatusErrors, ThrowOnError>({
url: "/session/status",
...options,
...params,
})
}
/**
* Delete a session and all its data
*/
public delete<ThrowOnError extends boolean = false>(
parameters: {
sessionID: string
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "sessionID" },
{ in: "query", key: "directory" },
],
},
],
)
return (options?.client ?? this.client).delete<SessionDeleteResponses, SessionDeleteErrors, ThrowOnError>({
url: "/session/{sessionID}",
...options,
...params,
})
}
/**
* Get session
*/
public get<ThrowOnError extends boolean = false>(
parameters: {
sessionID: string
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "sessionID" },
{ in: "query", key: "directory" },
],
},
],
)
return (options?.client ?? this.client).get<SessionGetResponses, SessionGetErrors, ThrowOnError>({
url: "/session/{sessionID}",
...options,
...params,
})
}
/**
* Update session properties
*/
public update<ThrowOnError extends boolean = false>(
parameters: {
sessionID: string
directory?: string
title?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "sessionID" },
{ in: "query", key: "directory" },
{ in: "body", key: "title" },
],
},
],
)
return (options?.client ?? this.client).patch<SessionUpdateResponses, SessionUpdateErrors, ThrowOnError>({
url: "/session/{sessionID}",
...options,
...params,
headers: {
"Content-Type": "application/json",
...options?.headers,
...params.headers,
},
})
}
/**
* Get a session's children
*/
public children<ThrowOnError extends boolean = false>(
parameters: {
sessionID: string
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "sessionID" },
{ in: "query", key: "directory" },
],
},
],
)
return (options?.client ?? this.client).get<SessionChildrenResponses, SessionChildrenErrors, ThrowOnError>({
url: "/session/{sessionID}/children",
...options,
...params,
})
}
/**
* Get the todo list for a session
*/
public todo<ThrowOnError extends boolean = false>(
parameters: {
sessionID: string
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "sessionID" },
{ in: "query", key: "directory" },
],
},
],
)
return (options?.client ?? this.client).get<SessionTodoResponses, SessionTodoErrors, ThrowOnError>({
url: "/session/{sessionID}/todo",
...options,
...params,
})
}
/**
* Analyze the app and create an AGENTS.md file
*/
public init<ThrowOnError extends boolean = false>(
parameters: {
sessionID: string
directory?: string
modelID?: string
providerID?: string
messageID?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "sessionID" },
{ in: "query", key: "directory" },
{ in: "body", key: "modelID" },
{ in: "body", key: "providerID" },
{ in: "body", key: "messageID" },
],
},
],
)
return (options?.client ?? this.client).post<SessionInitResponses, SessionInitErrors, ThrowOnError>({
url: "/session/{sessionID}/init",
...options,
...params,
headers: {
"Content-Type": "application/json",
...options?.headers,
...params.headers,
},
})
}
/**
* Fork an existing session at a specific message
*/
public fork<ThrowOnError extends boolean = false>(
parameters: {
sessionID: string
directory?: string
messageID?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "sessionID" },
{ in: "query", key: "directory" },
{ in: "body", key: "messageID" },
],
},
],
)
return (options?.client ?? this.client).post<SessionForkResponses, unknown, ThrowOnError>({
url: "/session/{sessionID}/fork",
...options,
...params,
headers: {
"Content-Type": "application/json",
...options?.headers,
...params.headers,
},
})
}
/**
* Abort a session
*/
public abort<ThrowOnError extends boolean = false>(
parameters: {
sessionID: string
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "sessionID" },
{ in: "query", key: "directory" },
],
},
],
)
return (options?.client ?? this.client).post<SessionAbortResponses, SessionAbortErrors, ThrowOnError>({
url: "/session/{sessionID}/abort",
...options,
...params,
})
}
/**
* Unshare the session
*/
public unshare<ThrowOnError extends boolean = false>(
parameters: {
sessionID: string
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "sessionID" },
{ in: "query", key: "directory" },
],
},
],
)
return (options?.client ?? this.client).delete<SessionUnshareResponses, SessionUnshareErrors, ThrowOnError>({
url: "/session/{sessionID}/share",
...options,
...params,
})
}
/**
* Share a session
*/
public share<ThrowOnError extends boolean = false>(
parameters: {
sessionID: string
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "sessionID" },
{ in: "query", key: "directory" },
],
},
],
)
return (options?.client ?? this.client).post<SessionShareResponses, SessionShareErrors, ThrowOnError>({
url: "/session/{sessionID}/share",
...options,
...params,
})
}
/**
* Get the diff for this session
*/
public diff<ThrowOnError extends boolean = false>(
parameters: {
sessionID: string
directory?: string
messageID?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "sessionID" },
{ in: "query", key: "directory" },
{ in: "query", key: "messageID" },
],
},
],
)
return (options?.client ?? this.client).get<SessionDiffResponses, SessionDiffErrors, ThrowOnError>({
url: "/session/{sessionID}/diff",
...options,
...params,
})
}
/**
* Summarize the session
*/
public summarize<ThrowOnError extends boolean = false>(
parameters: {
sessionID: string
directory?: string
providerID?: string
modelID?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "sessionID" },
{ in: "query", key: "directory" },
{ in: "body", key: "providerID" },
{ in: "body", key: "modelID" },
],
},
],
)
return (options?.client ?? this.client).post<SessionSummarizeResponses, SessionSummarizeErrors, ThrowOnError>({
url: "/session/{sessionID}/summarize",
...options,
...params,
headers: {
"Content-Type": "application/json",
...options?.headers,
...params.headers,
},
})
}
/**
* List messages for a session
*/
public messages<ThrowOnError extends boolean = false>(
parameters: {
sessionID: string
directory?: string
limit?: number
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "sessionID" },
{ in: "query", key: "directory" },
{ in: "query", key: "limit" },
],
},
],
)
return (options?.client ?? this.client).get<SessionMessagesResponses, SessionMessagesErrors, ThrowOnError>({
url: "/session/{sessionID}/message",
...options,
...params,
})
}
/**
* Create and send a new message to a session
*/
public prompt<ThrowOnError extends boolean = false>(
parameters: {
sessionID: string
directory?: string
messageID?: string
model?: {
providerID: string
modelID: string
}
agent?: string
noReply?: boolean
system?: string
tools?: {
[key: string]: boolean
}
parts?: Array<TextPartInput | FilePartInput | AgentPartInput | SubtaskPartInput>
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "sessionID" },
{ in: "query", key: "directory" },
{ in: "body", key: "messageID" },
{ in: "body", key: "model" },
{ in: "body", key: "agent" },
{ in: "body", key: "noReply" },
{ in: "body", key: "system" },
{ in: "body", key: "tools" },
{ in: "body", key: "parts" },
],
},
],
)
return (options?.client ?? this.client).post<SessionPromptResponses, SessionPromptErrors, ThrowOnError>({
url: "/session/{sessionID}/message",
...options,
...params,
headers: {
"Content-Type": "application/json",
...options?.headers,
...params.headers,
},
})
}
/**
* Get a message from a session
*/
public message<ThrowOnError extends boolean = false>(
parameters: {
sessionID: string
messageID: string
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "sessionID" },
{ in: "path", key: "messageID" },
{ in: "query", key: "directory" },
],
},
],
)
return (options?.client ?? this.client).get<SessionMessageResponses, SessionMessageErrors, ThrowOnError>({
url: "/session/{sessionID}/message/{messageID}",
...options,
...params,
})
}
/**
* Create and send a new message to a session, start if needed and return immediately
*/
public promptAsync<ThrowOnError extends boolean = false>(
parameters: {
sessionID: string
directory?: string
messageID?: string
model?: {
providerID: string
modelID: string
}
agent?: string
noReply?: boolean
system?: string
tools?: {
[key: string]: boolean
}
parts?: Array<TextPartInput | FilePartInput | AgentPartInput | SubtaskPartInput>
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "sessionID" },
{ in: "query", key: "directory" },
{ in: "body", key: "messageID" },
{ in: "body", key: "model" },
{ in: "body", key: "agent" },
{ in: "body", key: "noReply" },
{ in: "body", key: "system" },
{ in: "body", key: "tools" },
{ in: "body", key: "parts" },
],
},
],
)
return (options?.client ?? this.client).post<SessionPromptAsyncResponses, SessionPromptAsyncErrors, ThrowOnError>({
url: "/session/{sessionID}/prompt_async",
...options,
...params,
headers: {
"Content-Type": "application/json",
...options?.headers,
...params.headers,
},
})
}
/**
* Send a new command to a session
*/
public command<ThrowOnError extends boolean = false>(
parameters: {
sessionID: string
directory?: string
messageID?: string
agent?: string
model?: string
arguments?: string
command?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "sessionID" },
{ in: "query", key: "directory" },
{ in: "body", key: "messageID" },
{ in: "body", key: "agent" },
{ in: "body", key: "model" },
{ in: "body", key: "arguments" },
{ in: "body", key: "command" },
],
},
],
)
return (options?.client ?? this.client).post<SessionCommandResponses, SessionCommandErrors, ThrowOnError>({
url: "/session/{sessionID}/command",
...options,
...params,
headers: {
"Content-Type": "application/json",
...options?.headers,
...params.headers,
},
})
}
/**
* Run a shell command
*/
public shell<ThrowOnError extends boolean = false>(
parameters: {
sessionID: string
directory?: string
agent?: string
model?: {
providerID: string
modelID: string
}
command?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "sessionID" },
{ in: "query", key: "directory" },
{ in: "body", key: "agent" },
{ in: "body", key: "model" },
{ in: "body", key: "command" },
],
},
],
)
return (options?.client ?? this.client).post<SessionShellResponses, SessionShellErrors, ThrowOnError>({
url: "/session/{sessionID}/shell",
...options,
...params,
headers: {
"Content-Type": "application/json",
...options?.headers,
...params.headers,
},
})
}
/**
* Revert a message
*/
public revert<ThrowOnError extends boolean = false>(
parameters: {
sessionID: string
directory?: string
messageID?: string
partID?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "sessionID" },
{ in: "query", key: "directory" },
{ in: "body", key: "messageID" },
{ in: "body", key: "partID" },
],
},
],
)
return (options?.client ?? this.client).post<SessionRevertResponses, SessionRevertErrors, ThrowOnError>({
url: "/session/{sessionID}/revert",
...options,
...params,
headers: {
"Content-Type": "application/json",
...options?.headers,
...params.headers,
},
})
}
/**
* Restore all reverted messages
*/
public unrevert<ThrowOnError extends boolean = false>(
parameters: {
sessionID: string
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "sessionID" },
{ in: "query", key: "directory" },
],
},
],
)
return (options?.client ?? this.client).post<SessionUnrevertResponses, SessionUnrevertErrors, ThrowOnError>({
url: "/session/{sessionID}/unrevert",
...options,
...params,
})
}
}
export class Permission extends HeyApiClient {
/**
* Respond to a permission request
*/
public respond<ThrowOnError extends boolean = false>(
parameters: {
sessionID: string
permissionID: string
directory?: string
response?: "once" | "always" | "reject"
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "sessionID" },
{ in: "path", key: "permissionID" },
{ in: "query", key: "directory" },
{ in: "body", key: "response" },
],
},
],
)
return (options?.client ?? this.client).post<PermissionRespondResponses, PermissionRespondErrors, ThrowOnError>({
url: "/session/{sessionID}/permissions/{permissionID}",
...options,
...params,
headers: {
"Content-Type": "application/json",
...options?.headers,
...params.headers,
},
})
}
}
export class Command extends HeyApiClient {
/**
* List all commands
*/
public list<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }] }])
return (options?.client ?? this.client).get<CommandListResponses, unknown, ThrowOnError>({
url: "/command",
...options,
...params,
})
}
}
export class Oauth extends HeyApiClient {
/**
* Authorize a provider using OAuth
*/
public authorize<ThrowOnError extends boolean = false>(
parameters: {
providerID: string
directory?: string
method?: number
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "providerID" },
{ in: "query", key: "directory" },
{ in: "body", key: "method" },
],
},
],
)
return (options?.client ?? this.client).post<
ProviderOauthAuthorizeResponses,
ProviderOauthAuthorizeErrors,
ThrowOnError
>({
url: "/provider/{providerID}/oauth/authorize",
...options,
...params,
headers: {
"Content-Type": "application/json",
...options?.headers,
...params.headers,
},
})
}
/**
* Handle OAuth callback for a provider
*/
public callback<ThrowOnError extends boolean = false>(
parameters: {
providerID: string
directory?: string
method?: number
code?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "providerID" },
{ in: "query", key: "directory" },
{ in: "body", key: "method" },
{ in: "body", key: "code" },
],
},
],
)
return (options?.client ?? this.client).post<
ProviderOauthCallbackResponses,
ProviderOauthCallbackErrors,
ThrowOnError
>({
url: "/provider/{providerID}/oauth/callback",
...options,
...params,
headers: {
"Content-Type": "application/json",
...options?.headers,
...params.headers,
},
})
}
}
export class Provider extends HeyApiClient {
/**
* List all providers
*/
public list<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }] }])
return (options?.client ?? this.client).get<ProviderListResponses, unknown, ThrowOnError>({
url: "/provider",
...options,
...params,
})
}
/**
* Get provider authentication methods
*/
public auth<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }] }])
return (options?.client ?? this.client).get<ProviderAuthResponses, unknown, ThrowOnError>({
url: "/provider/auth",
...options,
...params,
})
}
oauth = new Oauth({ client: this.client })
}
export class Find extends HeyApiClient {
/**
* Find text in files
*/
public text<ThrowOnError extends boolean = false>(
parameters: {
directory?: string
pattern: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "query", key: "directory" },
{ in: "query", key: "pattern" },
],
},
],
)
return (options?.client ?? this.client).get<FindTextResponses, unknown, ThrowOnError>({
url: "/find",
...options,
...params,
})
}
/**
* Find files
*/
public files<ThrowOnError extends boolean = false>(
parameters: {
directory?: string
query: string
dirs?: "true" | "false"
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "query", key: "directory" },
{ in: "query", key: "query" },
{ in: "query", key: "dirs" },
],
},
],
)
return (options?.client ?? this.client).get<FindFilesResponses, unknown, ThrowOnError>({
url: "/find/file",
...options,
...params,
})
}
/**
* Find workspace symbols
*/
public symbols<ThrowOnError extends boolean = false>(
parameters: {
directory?: string
query: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "query", key: "directory" },
{ in: "query", key: "query" },
],
},
],
)
return (options?.client ?? this.client).get<FindSymbolsResponses, unknown, ThrowOnError>({
url: "/find/symbol",
...options,
...params,
})
}
}
export class File extends HeyApiClient {
/**
* List files and directories
*/
public list<ThrowOnError extends boolean = false>(
parameters: {
directory?: string
path: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "query", key: "directory" },
{ in: "query", key: "path" },
],
},
],
)
return (options?.client ?? this.client).get<FileListResponses, unknown, ThrowOnError>({
url: "/file",
...options,
...params,
})
}
/**
* Read a file
*/
public read<ThrowOnError extends boolean = false>(
parameters: {
directory?: string
path: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "query", key: "directory" },
{ in: "query", key: "path" },
],
},
],
)
return (options?.client ?? this.client).get<FileReadResponses, unknown, ThrowOnError>({
url: "/file/content",
...options,
...params,
})
}
/**
* Get file status
*/
public status<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }] }])
return (options?.client ?? this.client).get<FileStatusResponses, unknown, ThrowOnError>({
url: "/file/status",
...options,
...params,
})
}
}
export class App extends HeyApiClient {
/**
* Write a log entry to the server logs
*/
public log<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
service?: string
level?: "debug" | "info" | "error" | "warn"
message?: string
extra?: {
[key: string]: unknown
}
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "query", key: "directory" },
{ in: "body", key: "service" },
{ in: "body", key: "level" },
{ in: "body", key: "message" },
{ in: "body", key: "extra" },
],
},
],
)
return (options?.client ?? this.client).post<AppLogResponses, AppLogErrors, ThrowOnError>({
url: "/log",
...options,
...params,
headers: {
"Content-Type": "application/json",
...options?.headers,
...params.headers,
},
})
}
/**
* List all agents
*/
public agents<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }] }])
return (options?.client ?? this.client).get<AppAgentsResponses, unknown, ThrowOnError>({
url: "/agent",
...options,
...params,
})
}
}
export class Auth extends HeyApiClient {
/**
* Remove OAuth credentials for an MCP server
*/
public remove<ThrowOnError extends boolean = false>(
parameters: {
name: string
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "name" },
{ in: "query", key: "directory" },
],
},
],
)
return (options?.client ?? this.client).delete<McpAuthRemoveResponses, McpAuthRemoveErrors, ThrowOnError>({
url: "/mcp/{name}/auth",
...options,
...params,
})
}
/**
* Start OAuth authentication flow for an MCP server
*/
public start<ThrowOnError extends boolean = false>(
parameters: {
name: string
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "name" },
{ in: "query", key: "directory" },
],
},
],
)
return (options?.client ?? this.client).post<McpAuthStartResponses, McpAuthStartErrors, ThrowOnError>({
url: "/mcp/{name}/auth",
...options,
...params,
})
}
/**
* Complete OAuth authentication with authorization code
*/
public callback<ThrowOnError extends boolean = false>(
parameters: {
name: string
directory?: string
code?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "name" },
{ in: "query", key: "directory" },
{ in: "body", key: "code" },
],
},
],
)
return (options?.client ?? this.client).post<McpAuthCallbackResponses, McpAuthCallbackErrors, ThrowOnError>({
url: "/mcp/{name}/auth/callback",
...options,
...params,
headers: {
"Content-Type": "application/json",
...options?.headers,
...params.headers,
},
})
}
/**
* Start OAuth flow and wait for callback (opens browser)
*/
public authenticate<ThrowOnError extends boolean = false>(
parameters: {
name: string
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "name" },
{ in: "query", key: "directory" },
],
},
],
)
return (options?.client ?? this.client).post<McpAuthAuthenticateResponses, McpAuthAuthenticateErrors, ThrowOnError>(
{
url: "/mcp/{name}/auth/authenticate",
...options,
...params,
},
)
}
/**
* Set authentication credentials
*/
public set<ThrowOnError extends boolean = false>(
parameters: {
providerID: string
directory?: string
auth?: Auth2
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "providerID" },
{ in: "query", key: "directory" },
{ key: "auth", map: "body" },
],
},
],
)
return (options?.client ?? this.client).put<AuthSetResponses, AuthSetErrors, ThrowOnError>({
url: "/auth/{providerID}",
...options,
...params,
headers: {
"Content-Type": "application/json",
...options?.headers,
...params.headers,
},
})
}
}
export class Mcp extends HeyApiClient {
/**
* Get MCP server status
*/
public status<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }] }])
return (options?.client ?? this.client).get<McpStatusResponses, unknown, ThrowOnError>({
url: "/mcp",
...options,
...params,
})
}
/**
* Add MCP server dynamically
*/
public add<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
name?: string
config?: McpLocalConfig | McpRemoteConfig
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "query", key: "directory" },
{ in: "body", key: "name" },
{ in: "body", key: "config" },
],
},
],
)
return (options?.client ?? this.client).post<McpAddResponses, McpAddErrors, ThrowOnError>({
url: "/mcp",
...options,
...params,
headers: {
"Content-Type": "application/json",
...options?.headers,
...params.headers,
},
})
}
auth = new Auth({ client: this.client })
}
export class Lsp extends HeyApiClient {
/**
* Get LSP server status
*/
public status<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }] }])
return (options?.client ?? this.client).get<LspStatusResponses, unknown, ThrowOnError>({
url: "/lsp",
...options,
...params,
})
}
}
export class Formatter extends HeyApiClient {
/**
* Get formatter status
*/
public status<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }] }])
return (options?.client ?? this.client).get<FormatterStatusResponses, unknown, ThrowOnError>({
url: "/formatter",
...options,
...params,
})
}
}
export class Control extends HeyApiClient {
/**
* Get the next TUI request from the queue
*/
public next<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }] }])
return (options?.client ?? this.client).get<TuiControlNextResponses, unknown, ThrowOnError>({
url: "/tui/control/next",
...options,
...params,
})
}
/**
* Submit a response to the TUI request queue
*/
public response<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
body?: unknown
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }, { in: "body" }] }])
return (options?.client ?? this.client).post<TuiControlResponseResponses, unknown, ThrowOnError>({
url: "/tui/control/response",
...options,
...params,
headers: {
"Content-Type": "application/json",
...options?.headers,
...params.headers,
},
})
}
}
export class Tui extends HeyApiClient {
/**
* Append prompt to the TUI
*/
public appendPrompt<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
text?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "query", key: "directory" },
{ in: "body", key: "text" },
],
},
],
)
return (options?.client ?? this.client).post<TuiAppendPromptResponses, TuiAppendPromptErrors, ThrowOnError>({
url: "/tui/append-prompt",
...options,
...params,
headers: {
"Content-Type": "application/json",
...options?.headers,
...params.headers,
},
})
}
/**
* Open the help dialog
*/
public openHelp<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }] }])
return (options?.client ?? this.client).post<TuiOpenHelpResponses, unknown, ThrowOnError>({
url: "/tui/open-help",
...options,
...params,
})
}
/**
* Open the session dialog
*/
public openSessions<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }] }])
return (options?.client ?? this.client).post<TuiOpenSessionsResponses, unknown, ThrowOnError>({
url: "/tui/open-sessions",
...options,
...params,
})
}
/**
* Open the theme dialog
*/
public openThemes<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }] }])
return (options?.client ?? this.client).post<TuiOpenThemesResponses, unknown, ThrowOnError>({
url: "/tui/open-themes",
...options,
...params,
})
}
/**
* Open the model dialog
*/
public openModels<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }] }])
return (options?.client ?? this.client).post<TuiOpenModelsResponses, unknown, ThrowOnError>({
url: "/tui/open-models",
...options,
...params,
})
}
/**
* Submit the prompt
*/
public submitPrompt<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }] }])
return (options?.client ?? this.client).post<TuiSubmitPromptResponses, unknown, ThrowOnError>({
url: "/tui/submit-prompt",
...options,
...params,
})
}
/**
* Clear the prompt
*/
public clearPrompt<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }] }])
return (options?.client ?? this.client).post<TuiClearPromptResponses, unknown, ThrowOnError>({
url: "/tui/clear-prompt",
...options,
...params,
})
}
/**
* Execute a TUI command (e.g. agent_cycle)
*/
public executeCommand<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
command?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "query", key: "directory" },
{ in: "body", key: "command" },
],
},
],
)
return (options?.client ?? this.client).post<TuiExecuteCommandResponses, TuiExecuteCommandErrors, ThrowOnError>({
url: "/tui/execute-command",
...options,
...params,
headers: {
"Content-Type": "application/json",
...options?.headers,
...params.headers,
},
})
}
/**
* Show a toast notification in the TUI
*/
public showToast<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
title?: string
message?: string
variant?: "info" | "success" | "warning" | "error"
duration?: number
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "query", key: "directory" },
{ in: "body", key: "title" },
{ in: "body", key: "message" },
{ in: "body", key: "variant" },
{ in: "body", key: "duration" },
],
},
],
)
return (options?.client ?? this.client).post<TuiShowToastResponses, unknown, ThrowOnError>({
url: "/tui/show-toast",
...options,
...params,
headers: {
"Content-Type": "application/json",
...options?.headers,
...params.headers,
},
})
}
/**
* Publish a TUI event
*/
public publish<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
body?: EventTuiPromptAppend | EventTuiCommandExecute | EventTuiToastShow
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }, { in: "body" }] }])
return (options?.client ?? this.client).post<TuiPublishResponses, TuiPublishErrors, ThrowOnError>({
url: "/tui/publish",
...options,
...params,
headers: {
"Content-Type": "application/json",
...options?.headers,
...params.headers,
},
})
}
control = new Control({ client: this.client })
}
export class Event extends HeyApiClient {
/**
* Get events
*/
public subscribe<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }] }])
return (options?.client ?? this.client).sse.get<EventSubscribeResponses, unknown, ThrowOnError>({
url: "/event",
...options,
...params,
})
}
}
export class OpencodeClient extends HeyApiClient {
public static readonly __registry = new HeyApiRegistry<OpencodeClient>()
constructor(args?: { client?: Client; key?: string }) {
super(args)
OpencodeClient.__registry.set(this, args?.key)
}
global = new Global({ client: this.client })
project = new Project({ client: this.client })
pty = new Pty({ client: this.client })
config = new Config({ client: this.client })
tool = new Tool({ client: this.client })
instance = new Instance({ client: this.client })
path = new Path({ client: this.client })
vcs = new Vcs({ client: this.client })
session = new Session({ client: this.client })
permission = new Permission({ client: this.client })
command = new Command({ client: this.client })
provider = new Provider({ client: this.client })
find = new Find({ client: this.client })
file = new File({ client: this.client })
app = new App({ client: this.client })
mcp = new Mcp({ client: this.client })
lsp = new Lsp({ client: this.client })
formatter = new Formatter({ client: this.client })
tui = new Tui({ client: this.client })
auth = new Auth({ client: this.client })
event = new Event({ client: this.client })
}