summaryrefslogtreecommitdiffhomepage
path: root/packages/sdk
diff options
context:
space:
mode:
Diffstat (limited to 'packages/sdk')
-rw-r--r--packages/sdk/js/src/v2/gen/sdk.gen.ts495
-rw-r--r--packages/sdk/js/src/v2/gen/types.gen.ts708
-rw-r--r--packages/sdk/openapi.json1571
3 files changed, 1414 insertions, 1360 deletions
diff --git a/packages/sdk/js/src/v2/gen/sdk.gen.ts b/packages/sdk/js/src/v2/gen/sdk.gen.ts
index 09b193c7c..6f6993199 100644
--- a/packages/sdk/js/src/v2/gen/sdk.gen.ts
+++ b/packages/sdk/js/src/v2/gen/sdk.gen.ts
@@ -7,6 +7,7 @@ import type {
AppAgentsResponses,
AppLogErrors,
AppLogResponses,
+ AppSkillsResponses,
Auth as Auth3,
AuthSetErrors,
AuthSetResponses,
@@ -100,7 +101,6 @@ import type {
SessionCreateResponses,
SessionDeleteErrors,
SessionDeleteResponses,
- SessionDiffErrors,
SessionDiffResponses,
SessionForkResponses,
SessionGetErrors,
@@ -653,48 +653,6 @@ export class Tool extends HeyApiClient {
}
}
-export class Instance extends HeyApiClient {
- /**
- * Dispose instance
- *
- * Clean up and dispose the current OpenCode instance, releasing all resources.
- */
- 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 paths
- *
- * Retrieve the current working directory and related path information for the OpenCode 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<PathGetResponses, unknown, ThrowOnError>({
- url: "/path",
- ...options,
- ...params,
- })
- }
-}
-
export class Worktree extends HeyApiClient {
/**
* List worktrees
@@ -751,27 +709,34 @@ export class Worktree extends HeyApiClient {
}
}
-export class Vcs extends HeyApiClient {
+export class Resource extends HeyApiClient {
/**
- * Get VCS info
+ * Get MCP resources
*
- * Retrieve version control system (VCS) information for the current project, such as git branch.
+ * Get all available MCP resources from connected servers. Optionally filter by name.
*/
- public get<ThrowOnError extends boolean = false>(
+ 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<VcsGetResponses, unknown, ThrowOnError>({
- url: "/vcs",
+ return (options?.client ?? this.client).get<ExperimentalResourceListResponses, unknown, ThrowOnError>({
+ url: "/experimental/resource",
...options,
...params,
})
}
}
+export class Experimental extends HeyApiClient {
+ private _resource?: Resource
+ get resource(): Resource {
+ return (this._resource ??= new Resource({ client: this.client }))
+ }
+}
+
export class Session extends HeyApiClient {
/**
* List sessions
@@ -1197,9 +1162,9 @@ export class Session extends HeyApiClient {
}
/**
- * Get session diff
+ * Get message diff
*
- * Get all file changes (diffs) made during this session.
+ * Get the file changes (diff) that resulted from a specific user message in the session.
*/
public diff<ThrowOnError extends boolean = false>(
parameters: {
@@ -1221,7 +1186,7 @@ export class Session extends HeyApiClient {
},
],
)
- return (options?.client ?? this.client).get<SessionDiffResponses, SessionDiffErrors, ThrowOnError>({
+ return (options?.client ?? this.client).get<SessionDiffResponses, unknown, ThrowOnError>({
url: "/session/{sessionID}/diff",
...options,
...params,
@@ -1877,27 +1842,6 @@ export class Question extends HeyApiClient {
}
}
-export class Command extends HeyApiClient {
- /**
- * List commands
- *
- * Get a list of all available commands in the OpenCode system.
- */
- 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 {
/**
* OAuth authorize
@@ -2208,70 +2152,6 @@ export class File extends HeyApiClient {
}
}
-export class App extends HeyApiClient {
- /**
- * Write log
- *
- * Write a log entry to the server logs with specified level and metadata.
- */
- 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 agents
- *
- * Get a list of all available AI agents in the OpenCode system.
- */
- 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 MCP OAuth
@@ -2522,76 +2402,6 @@ export class Mcp extends HeyApiClient {
}
}
-export class Resource extends HeyApiClient {
- /**
- * Get MCP resources
- *
- * Get all available MCP resources from connected servers. Optionally filter by name.
- */
- 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<ExperimentalResourceListResponses, unknown, ThrowOnError>({
- url: "/experimental/resource",
- ...options,
- ...params,
- })
- }
-}
-
-export class Experimental extends HeyApiClient {
- private _resource?: Resource
- get resource(): Resource {
- return (this._resource ??= new Resource({ client: this.client }))
- }
-}
-
-export class Lsp extends HeyApiClient {
- /**
- * Get LSP status
- *
- * 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
- *
- * 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 next TUI request
@@ -2930,6 +2740,215 @@ export class Tui extends HeyApiClient {
}
}
+export class Instance extends HeyApiClient {
+ /**
+ * Dispose instance
+ *
+ * Clean up and dispose the current OpenCode instance, releasing all resources.
+ */
+ 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 paths
+ *
+ * Retrieve the current working directory and related path information for the OpenCode 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<PathGetResponses, unknown, ThrowOnError>({
+ 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.
+ */
+ 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 Command extends HeyApiClient {
+ /**
+ * List commands
+ *
+ * Get a list of all available commands in the OpenCode system.
+ */
+ 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 App extends HeyApiClient {
+ /**
+ * Write log
+ *
+ * Write a log entry to the server logs with specified level and metadata.
+ */
+ 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 agents
+ *
+ * Get a list of all available AI agents in the OpenCode system.
+ */
+ 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,
+ })
+ }
+
+ /**
+ * List skills
+ *
+ * Get a list of all available skills in the OpenCode system.
+ */
+ public skills<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<AppSkillsResponses, unknown, ThrowOnError>({
+ url: "/skill",
+ ...options,
+ ...params,
+ })
+ }
+}
+
+export class Lsp extends HeyApiClient {
+ /**
+ * Get LSP status
+ *
+ * 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
+ *
+ * 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 Auth2 extends HeyApiClient {
/**
* Set auth credentials
@@ -3023,24 +3042,14 @@ export class OpencodeClient extends HeyApiClient {
return (this._tool ??= new Tool({ client: this.client }))
}
- private _instance?: Instance
- get instance(): Instance {
- return (this._instance ??= new Instance({ client: this.client }))
- }
-
- private _path?: Path
- get path(): Path {
- return (this._path ??= new Path({ client: this.client }))
- }
-
private _worktree?: Worktree
get worktree(): Worktree {
return (this._worktree ??= new Worktree({ client: this.client }))
}
- private _vcs?: Vcs
- get vcs(): Vcs {
- return (this._vcs ??= new Vcs({ client: this.client }))
+ private _experimental?: Experimental
+ get experimental(): Experimental {
+ return (this._experimental ??= new Experimental({ client: this.client }))
}
private _session?: Session
@@ -3063,11 +3072,6 @@ export class OpencodeClient extends HeyApiClient {
return (this._question ??= new Question({ client: this.client }))
}
- private _command?: Command
- get command(): Command {
- return (this._command ??= new Command({ client: this.client }))
- }
-
private _provider?: Provider
get provider(): Provider {
return (this._provider ??= new Provider({ client: this.client }))
@@ -3083,19 +3087,39 @@ export class OpencodeClient extends HeyApiClient {
return (this._file ??= new File({ client: this.client }))
}
- private _app?: App
- get app(): App {
- return (this._app ??= new App({ client: this.client }))
- }
-
private _mcp?: Mcp
get mcp(): Mcp {
return (this._mcp ??= new Mcp({ client: this.client }))
}
- private _experimental?: Experimental
- get experimental(): Experimental {
- return (this._experimental ??= new Experimental({ client: this.client }))
+ private _tui?: Tui
+ get tui(): Tui {
+ return (this._tui ??= new Tui({ client: this.client }))
+ }
+
+ private _instance?: Instance
+ get instance(): Instance {
+ return (this._instance ??= new Instance({ client: this.client }))
+ }
+
+ private _path?: Path
+ get path(): Path {
+ return (this._path ??= new Path({ client: this.client }))
+ }
+
+ private _vcs?: Vcs
+ get vcs(): Vcs {
+ return (this._vcs ??= new Vcs({ client: this.client }))
+ }
+
+ private _command?: Command
+ get command(): Command {
+ return (this._command ??= new Command({ client: this.client }))
+ }
+
+ private _app?: App
+ get app(): App {
+ return (this._app ??= new App({ client: this.client }))
}
private _lsp?: Lsp
@@ -3108,11 +3132,6 @@ export class OpencodeClient extends HeyApiClient {
return (this._formatter ??= new Formatter({ client: this.client }))
}
- private _tui?: Tui
- get tui(): Tui {
- return (this._tui ??= new Tui({ client: this.client }))
- }
-
private _auth?: Auth2
get auth(): Auth2 {
return (this._auth ??= new Auth2({ client: this.client }))
diff --git a/packages/sdk/js/src/v2/gen/types.gen.ts b/packages/sdk/js/src/v2/gen/types.gen.ts
index 65db19131..32321a7df 100644
--- a/packages/sdk/js/src/v2/gen/types.gen.ts
+++ b/packages/sdk/js/src/v2/gen/types.gen.ts
@@ -62,6 +62,13 @@ export type EventLspUpdated = {
}
}
+export type EventFileEdited = {
+ type: "file.edited"
+ properties: {
+ file: string
+ }
+}
+
export type FileDiff = {
file: string
before: string
@@ -599,13 +606,6 @@ export type EventSessionCompacted = {
}
}
-export type EventFileEdited = {
- type: "file.edited"
- properties: {
- file: string
- }
-}
-
export type Todo = {
/**
* Brief description of the task
@@ -843,15 +843,15 @@ export type EventPtyDeleted = {
}
}
-export type EventServerConnected = {
- type: "server.connected"
+export type EventGlobalDisposed = {
+ type: "global.disposed"
properties: {
[key: string]: unknown
}
}
-export type EventGlobalDisposed = {
- type: "global.disposed"
+export type EventServerConnected = {
+ type: "server.connected"
properties: {
[key: string]: unknown
}
@@ -864,6 +864,7 @@ export type Event =
| EventServerInstanceDisposed
| EventLspClientDiagnostics
| EventLspUpdated
+ | EventFileEdited
| EventMessageUpdated
| EventMessageRemoved
| EventMessagePartUpdated
@@ -876,7 +877,6 @@ export type Event =
| EventQuestionReplied
| EventQuestionRejected
| EventSessionCompacted
- | EventFileEdited
| EventTodoUpdated
| EventTuiPromptAppend
| EventTuiCommandExecute
@@ -896,8 +896,8 @@ export type Event =
| EventPtyUpdated
| EventPtyExited
| EventPtyDeleted
- | EventServerConnected
| EventGlobalDisposed
+ | EventServerConnected
export type GlobalEvent = {
directory: string
@@ -1796,98 +1796,6 @@ export type Config = {
}
}
-export type ToolIds = Array<string>
-
-export type ToolListItem = {
- id: string
- description: string
- parameters: unknown
-}
-
-export type ToolList = Array<ToolListItem>
-
-export type Path = {
- home: string
- state: string
- config: string
- worktree: string
- directory: string
-}
-
-export type Worktree = {
- name: string
- branch: string
- directory: string
-}
-
-export type WorktreeCreateInput = {
- name?: string
- startCommand?: string
-}
-
-export type VcsInfo = {
- branch: string
-}
-
-export type TextPartInput = {
- id?: string
- type: "text"
- text: string
- synthetic?: boolean
- ignored?: boolean
- time?: {
- start: number
- end?: number
- }
- metadata?: {
- [key: string]: unknown
- }
-}
-
-export type FilePartInput = {
- id?: string
- type: "file"
- mime: string
- filename?: string
- url: string
- source?: FilePartSource
-}
-
-export type AgentPartInput = {
- id?: string
- type: "agent"
- name: string
- source?: {
- value: string
- start: number
- end: number
- }
-}
-
-export type SubtaskPartInput = {
- id?: string
- type: "subtask"
- prompt: string
- description: string
- agent: string
- model?: {
- providerID: string
- modelID: string
- }
- command?: string
-}
-
-export type Command = {
- name: string
- description?: string
- agent?: string
- model?: string
- mcp?: boolean
- template: string
- subtask?: boolean
- hints: Array<string>
-}
-
export type Model = {
id: string
providerID: string
@@ -1973,6 +1881,83 @@ export type Provider = {
}
}
+export type ToolIds = Array<string>
+
+export type ToolListItem = {
+ id: string
+ description: string
+ parameters: unknown
+}
+
+export type ToolList = Array<ToolListItem>
+
+export type Worktree = {
+ name: string
+ branch: string
+ directory: string
+}
+
+export type WorktreeCreateInput = {
+ name?: string
+ startCommand?: string
+}
+
+export type McpResource = {
+ name: string
+ uri: string
+ description?: string
+ mimeType?: string
+ client: string
+}
+
+export type TextPartInput = {
+ id?: string
+ type: "text"
+ text: string
+ synthetic?: boolean
+ ignored?: boolean
+ time?: {
+ start: number
+ end?: number
+ }
+ metadata?: {
+ [key: string]: unknown
+ }
+}
+
+export type FilePartInput = {
+ id?: string
+ type: "file"
+ mime: string
+ filename?: string
+ url: string
+ source?: FilePartSource
+}
+
+export type AgentPartInput = {
+ id?: string
+ type: "agent"
+ name: string
+ source?: {
+ value: string
+ start: number
+ end: number
+ }
+}
+
+export type SubtaskPartInput = {
+ id?: string
+ type: "subtask"
+ prompt: string
+ description: string
+ agent: string
+ model?: {
+ providerID: string
+ modelID: string
+ }
+ command?: string
+}
+
export type ProviderAuthMethod = {
type: "oauth" | "api"
label: string
@@ -2030,27 +2015,6 @@ export type File = {
status: "added" | "deleted" | "modified"
}
-export type Agent = {
- name: string
- description?: string
- mode: "subagent" | "primary" | "all"
- native?: boolean
- hidden?: boolean
- topP?: number
- temperature?: number
- color?: string
- permission: PermissionRuleset
- model?: {
- modelID: string
- providerID: string
- }
- prompt?: string
- options: {
- [key: string]: unknown
- }
- steps?: number
-}
-
export type McpStatusConnected = {
status: "connected"
}
@@ -2080,12 +2044,48 @@ export type McpStatus =
| McpStatusNeedsAuth
| McpStatusNeedsClientRegistration
-export type McpResource = {
+export type Path = {
+ home: string
+ state: string
+ config: string
+ worktree: string
+ directory: string
+}
+
+export type VcsInfo = {
+ branch: string
+}
+
+export type Command = {
name: string
- uri: string
description?: string
- mimeType?: string
- client: string
+ agent?: string
+ model?: string
+ mcp?: boolean
+ template: string
+ subtask?: boolean
+ hints: Array<string>
+}
+
+export type Agent = {
+ name: string
+ description?: string
+ mode: "subagent" | "primary" | "all"
+ native?: boolean
+ hidden?: boolean
+ topP?: number
+ temperature?: number
+ color?: string
+ permission: PermissionRuleset
+ model?: {
+ modelID: string
+ providerID: string
+ }
+ prompt?: string
+ options: {
+ [key: string]: unknown
+ }
+ steps?: number
}
export type LspStatus = {
@@ -2469,6 +2469,29 @@ export type ConfigUpdateResponses = {
export type ConfigUpdateResponse = ConfigUpdateResponses[keyof ConfigUpdateResponses]
+export type ConfigProvidersData = {
+ body?: never
+ path?: never
+ query?: {
+ directory?: string
+ }
+ url: "/config/providers"
+}
+
+export type ConfigProvidersResponses = {
+ /**
+ * List of providers
+ */
+ 200: {
+ providers: Array<Provider>
+ default: {
+ [key: string]: string
+ }
+ }
+}
+
+export type ConfigProvidersResponse = ConfigProvidersResponses[keyof ConfigProvidersResponses]
+
export type ToolIdsData = {
body?: never
path?: never
@@ -2525,42 +2548,6 @@ export type ToolListResponses = {
export type ToolListResponse = ToolListResponses[keyof ToolListResponses]
-export type InstanceDisposeData = {
- body?: never
- path?: never
- query?: {
- directory?: string
- }
- url: "/instance/dispose"
-}
-
-export type InstanceDisposeResponses = {
- /**
- * Instance disposed
- */
- 200: boolean
-}
-
-export type InstanceDisposeResponse = InstanceDisposeResponses[keyof InstanceDisposeResponses]
-
-export type PathGetData = {
- body?: never
- path?: never
- query?: {
- directory?: string
- }
- url: "/path"
-}
-
-export type PathGetResponses = {
- /**
- * Path
- */
- 200: Path
-}
-
-export type PathGetResponse = PathGetResponses[keyof PathGetResponses]
-
export type WorktreeListData = {
body?: never
path?: never
@@ -2606,23 +2593,26 @@ export type WorktreeCreateResponses = {
export type WorktreeCreateResponse = WorktreeCreateResponses[keyof WorktreeCreateResponses]
-export type VcsGetData = {
+export type ExperimentalResourceListData = {
body?: never
path?: never
query?: {
directory?: string
}
- url: "/vcs"
+ url: "/experimental/resource"
}
-export type VcsGetResponses = {
+export type ExperimentalResourceListResponses = {
/**
- * VCS info
+ * MCP resources
*/
- 200: VcsInfo
+ 200: {
+ [key: string]: McpResource
+ }
}
-export type VcsGetResponse = VcsGetResponses[keyof VcsGetResponses]
+export type ExperimentalResourceListResponse =
+ ExperimentalResourceListResponses[keyof ExperimentalResourceListResponses]
export type SessionListData = {
body?: never
@@ -3058,9 +3048,6 @@ export type SessionShareResponse = SessionShareResponses[keyof SessionShareRespo
export type SessionDiffData = {
body?: never
path: {
- /**
- * Session ID
- */
sessionID: string
}
query?: {
@@ -3070,22 +3057,9 @@ export type SessionDiffData = {
url: "/session/{sessionID}/diff"
}
-export type SessionDiffErrors = {
- /**
- * Bad request
- */
- 400: BadRequestError
- /**
- * Not found
- */
- 404: NotFoundError
-}
-
-export type SessionDiffError = SessionDiffErrors[keyof SessionDiffErrors]
-
export type SessionDiffResponses = {
/**
- * List of diffs
+ * Successfully retrieved diff
*/
200: Array<FileDiff>
}
@@ -3757,47 +3731,6 @@ export type QuestionRejectResponses = {
export type QuestionRejectResponse = QuestionRejectResponses[keyof QuestionRejectResponses]
-export type CommandListData = {
- body?: never
- path?: never
- query?: {
- directory?: string
- }
- url: "/command"
-}
-
-export type CommandListResponses = {
- /**
- * List of commands
- */
- 200: Array<Command>
-}
-
-export type CommandListResponse = CommandListResponses[keyof CommandListResponses]
-
-export type ConfigProvidersData = {
- body?: never
- path?: never
- query?: {
- directory?: string
- }
- url: "/config/providers"
-}
-
-export type ConfigProvidersResponses = {
- /**
- * List of providers
- */
- 200: {
- providers: Array<Provider>
- default: {
- [key: string]: string
- }
- }
-}
-
-export type ConfigProvidersResponse = ConfigProvidersResponses[keyof ConfigProvidersResponses]
-
export type ProviderListData = {
body?: never
path?: never
@@ -4112,70 +4045,6 @@ export type FileStatusResponses = {
export type FileStatusResponse = FileStatusResponses[keyof FileStatusResponses]
-export type AppLogData = {
- body?: {
- /**
- * Service name for the log entry
- */
- service: string
- /**
- * Log level
- */
- level: "debug" | "info" | "error" | "warn"
- /**
- * Log message
- */
- message: string
- /**
- * Additional metadata for the log entry
- */
- extra?: {
- [key: string]: unknown
- }
- }
- path?: never
- query?: {
- directory?: string
- }
- url: "/log"
-}
-
-export type AppLogErrors = {
- /**
- * Bad request
- */
- 400: BadRequestError
-}
-
-export type AppLogError = AppLogErrors[keyof AppLogErrors]
-
-export type AppLogResponses = {
- /**
- * Log entry written successfully
- */
- 200: boolean
-}
-
-export type AppLogResponse = AppLogResponses[keyof AppLogResponses]
-
-export type AppAgentsData = {
- body?: never
- path?: never
- query?: {
- directory?: string
- }
- url: "/agent"
-}
-
-export type AppAgentsResponses = {
- /**
- * List of agents
- */
- 200: Array<Agent>
-}
-
-export type AppAgentsResponse = AppAgentsResponses[keyof AppAgentsResponses]
-
export type McpStatusData = {
body?: never
path?: never
@@ -4408,63 +4277,6 @@ export type McpDisconnectResponses = {
export type McpDisconnectResponse = McpDisconnectResponses[keyof McpDisconnectResponses]
-export type ExperimentalResourceListData = {
- body?: never
- path?: never
- query?: {
- directory?: string
- }
- url: "/experimental/resource"
-}
-
-export type ExperimentalResourceListResponses = {
- /**
- * MCP resources
- */
- 200: {
- [key: string]: McpResource
- }
-}
-
-export type ExperimentalResourceListResponse =
- ExperimentalResourceListResponses[keyof ExperimentalResourceListResponses]
-
-export type LspStatusData = {
- body?: never
- path?: never
- query?: {
- directory?: string
- }
- url: "/lsp"
-}
-
-export type LspStatusResponses = {
- /**
- * LSP server status
- */
- 200: Array<LspStatus>
-}
-
-export type LspStatusResponse = LspStatusResponses[keyof LspStatusResponses]
-
-export type FormatterStatusData = {
- body?: never
- path?: never
- query?: {
- directory?: string
- }
- url: "/formatter"
-}
-
-export type FormatterStatusResponses = {
- /**
- * Formatter status
- */
- 200: Array<FormatterStatus>
-}
-
-export type FormatterStatusResponse = FormatterStatusResponses[keyof FormatterStatusResponses]
-
export type TuiAppendPromptData = {
body?: {
text: string
@@ -4759,6 +4571,200 @@ export type TuiControlResponseResponses = {
export type TuiControlResponseResponse = TuiControlResponseResponses[keyof TuiControlResponseResponses]
+export type InstanceDisposeData = {
+ body?: never
+ path?: never
+ query?: {
+ directory?: string
+ }
+ url: "/instance/dispose"
+}
+
+export type InstanceDisposeResponses = {
+ /**
+ * Instance disposed
+ */
+ 200: boolean
+}
+
+export type InstanceDisposeResponse = InstanceDisposeResponses[keyof InstanceDisposeResponses]
+
+export type PathGetData = {
+ body?: never
+ path?: never
+ query?: {
+ directory?: string
+ }
+ url: "/path"
+}
+
+export type PathGetResponses = {
+ /**
+ * Path
+ */
+ 200: Path
+}
+
+export type PathGetResponse = PathGetResponses[keyof PathGetResponses]
+
+export type VcsGetData = {
+ body?: never
+ path?: never
+ query?: {
+ directory?: string
+ }
+ url: "/vcs"
+}
+
+export type VcsGetResponses = {
+ /**
+ * VCS info
+ */
+ 200: VcsInfo
+}
+
+export type VcsGetResponse = VcsGetResponses[keyof VcsGetResponses]
+
+export type CommandListData = {
+ body?: never
+ path?: never
+ query?: {
+ directory?: string
+ }
+ url: "/command"
+}
+
+export type CommandListResponses = {
+ /**
+ * List of commands
+ */
+ 200: Array<Command>
+}
+
+export type CommandListResponse = CommandListResponses[keyof CommandListResponses]
+
+export type AppLogData = {
+ body?: {
+ /**
+ * Service name for the log entry
+ */
+ service: string
+ /**
+ * Log level
+ */
+ level: "debug" | "info" | "error" | "warn"
+ /**
+ * Log message
+ */
+ message: string
+ /**
+ * Additional metadata for the log entry
+ */
+ extra?: {
+ [key: string]: unknown
+ }
+ }
+ path?: never
+ query?: {
+ directory?: string
+ }
+ url: "/log"
+}
+
+export type AppLogErrors = {
+ /**
+ * Bad request
+ */
+ 400: BadRequestError
+}
+
+export type AppLogError = AppLogErrors[keyof AppLogErrors]
+
+export type AppLogResponses = {
+ /**
+ * Log entry written successfully
+ */
+ 200: boolean
+}
+
+export type AppLogResponse = AppLogResponses[keyof AppLogResponses]
+
+export type AppAgentsData = {
+ body?: never
+ path?: never
+ query?: {
+ directory?: string
+ }
+ url: "/agent"
+}
+
+export type AppAgentsResponses = {
+ /**
+ * List of agents
+ */
+ 200: Array<Agent>
+}
+
+export type AppAgentsResponse = AppAgentsResponses[keyof AppAgentsResponses]
+
+export type AppSkillsData = {
+ body?: never
+ path?: never
+ query?: {
+ directory?: string
+ }
+ url: "/skill"
+}
+
+export type AppSkillsResponses = {
+ /**
+ * List of skills
+ */
+ 200: Array<{
+ name: string
+ description: string
+ location: string
+ }>
+}
+
+export type AppSkillsResponse = AppSkillsResponses[keyof AppSkillsResponses]
+
+export type LspStatusData = {
+ body?: never
+ path?: never
+ query?: {
+ directory?: string
+ }
+ url: "/lsp"
+}
+
+export type LspStatusResponses = {
+ /**
+ * LSP server status
+ */
+ 200: Array<LspStatus>
+}
+
+export type LspStatusResponse = LspStatusResponses[keyof LspStatusResponses]
+
+export type FormatterStatusData = {
+ body?: never
+ path?: never
+ query?: {
+ directory?: string
+ }
+ url: "/formatter"
+}
+
+export type FormatterStatusResponses = {
+ /**
+ * Formatter status
+ */
+ 200: Array<FormatterStatus>
+}
+
+export type FormatterStatusResponse = FormatterStatusResponses[keyof FormatterStatusResponses]
+
export type AuthSetData = {
body?: Auth
path: {
diff --git a/packages/sdk/openapi.json b/packages/sdk/openapi.json
index 010e87118..904f3eeae 100644
--- a/packages/sdk/openapi.json
+++ b/packages/sdk/openapi.json
@@ -678,6 +678,58 @@
]
}
},
+ "/config/providers": {
+ "get": {
+ "operationId": "config.providers",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "directory",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "summary": "List config providers",
+ "description": "Get a list of all configured AI providers and their default models.",
+ "responses": {
+ "200": {
+ "description": "List of providers",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "providers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Provider"
+ }
+ },
+ "default": {
+ "type": "object",
+ "propertyNames": {
+ "type": "string"
+ },
+ "additionalProperties": {
+ "type": "string"
+ }
+ }
+ },
+ "required": ["providers", "default"]
+ }
+ }
+ }
+ }
+ },
+ "x-codeSamples": [
+ {
+ "lang": "js",
+ "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.config.providers({\n ...\n})"
+ }
+ ]
+ }
+ },
"/experimental/tool/ids": {
"get": {
"operationId": "tool.ids",
@@ -782,74 +834,6 @@
]
}
},
- "/instance/dispose": {
- "post": {
- "operationId": "instance.dispose",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Dispose instance",
- "description": "Clean up and dispose the current OpenCode instance, releasing all resources.",
- "responses": {
- "200": {
- "description": "Instance disposed",
- "content": {
- "application/json": {
- "schema": {
- "type": "boolean"
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.instance.dispose({\n ...\n})"
- }
- ]
- }
- },
- "/path": {
- "get": {
- "operationId": "path.get",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Get paths",
- "description": "Retrieve the current working directory and related path information for the OpenCode instance.",
- "responses": {
- "200": {
- "description": "Path",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Path"
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.path.get({\n ...\n})"
- }
- ]
- }
- },
"/experimental/worktree": {
"post": {
"operationId": "worktree.create",
@@ -938,9 +922,9 @@
]
}
},
- "/vcs": {
+ "/experimental/resource": {
"get": {
- "operationId": "vcs.get",
+ "operationId": "experimental.resource.list",
"parameters": [
{
"in": "query",
@@ -950,15 +934,21 @@
}
}
],
- "summary": "Get VCS info",
- "description": "Retrieve version control system (VCS) information for the current project, such as git branch.",
+ "summary": "Get MCP resources",
+ "description": "Get all available MCP resources from connected servers. Optionally filter by name.",
"responses": {
"200": {
- "description": "VCS info",
+ "description": "MCP resources",
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/VcsInfo"
+ "type": "object",
+ "propertyNames": {
+ "type": "string"
+ },
+ "additionalProperties": {
+ "$ref": "#/components/schemas/McpResource"
+ }
}
}
}
@@ -967,7 +957,7 @@
"x-codeSamples": [
{
"lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.vcs.get({\n ...\n})"
+ "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.experimental.resource.list({\n ...\n})"
}
]
}
@@ -1838,10 +1828,10 @@
"in": "path",
"name": "sessionID",
"schema": {
- "type": "string"
+ "type": "string",
+ "pattern": "^ses.*"
},
- "required": true,
- "description": "Session ID"
+ "required": true
},
{
"in": "query",
@@ -1852,11 +1842,11 @@
}
}
],
- "summary": "Get session diff",
- "description": "Get all file changes (diffs) made during this session.",
+ "summary": "Get message diff",
+ "description": "Get the file changes (diff) that resulted from a specific user message in the session.",
"responses": {
"200": {
- "description": "List of diffs",
+ "description": "Successfully retrieved diff",
"content": {
"application/json": {
"schema": {
@@ -1867,26 +1857,6 @@
}
}
}
- },
- "400": {
- "description": "Bad request",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/BadRequestError"
- }
- }
- }
- },
- "404": {
- "description": "Not found",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/NotFoundError"
- }
- }
- }
}
},
"x-codeSamples": [
@@ -3345,95 +3315,6 @@
]
}
},
- "/command": {
- "get": {
- "operationId": "command.list",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "List commands",
- "description": "Get a list of all available commands in the OpenCode system.",
- "responses": {
- "200": {
- "description": "List of commands",
- "content": {
- "application/json": {
- "schema": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/Command"
- }
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.command.list({\n ...\n})"
- }
- ]
- }
- },
- "/config/providers": {
- "get": {
- "operationId": "config.providers",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "List config providers",
- "description": "Get a list of all configured AI providers and their default models.",
- "responses": {
- "200": {
- "description": "List of providers",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "providers": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/Provider"
- }
- },
- "default": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string"
- }
- }
- },
- "required": ["providers", "default"]
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.config.providers({\n ...\n})"
- }
- ]
- }
- },
"/provider": {
"get": {
"operationId": "provider.list",
@@ -4214,120 +4095,6 @@
]
}
},
- "/log": {
- "post": {
- "operationId": "app.log",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Write log",
- "description": "Write a log entry to the server logs with specified level and metadata.",
- "responses": {
- "200": {
- "description": "Log entry written successfully",
- "content": {
- "application/json": {
- "schema": {
- "type": "boolean"
- }
- }
- }
- },
- "400": {
- "description": "Bad request",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/BadRequestError"
- }
- }
- }
- }
- },
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "service": {
- "description": "Service name for the log entry",
- "type": "string"
- },
- "level": {
- "description": "Log level",
- "type": "string",
- "enum": ["debug", "info", "error", "warn"]
- },
- "message": {
- "description": "Log message",
- "type": "string"
- },
- "extra": {
- "description": "Additional metadata for the log entry",
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {}
- }
- },
- "required": ["service", "level", "message"]
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.app.log({\n ...\n})"
- }
- ]
- }
- },
- "/agent": {
- "get": {
- "operationId": "app.agents",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "List agents",
- "description": "Get a list of all available AI agents in the OpenCode system.",
- "responses": {
- "200": {
- "description": "List of agents",
- "content": {
- "application/json": {
- "schema": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/Agent"
- }
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.app.agents({\n ...\n})"
- }
- ]
- }
- },
"/mcp": {
"get": {
"operationId": "mcp.status",
@@ -4789,120 +4556,6 @@
]
}
},
- "/experimental/resource": {
- "get": {
- "operationId": "experimental.resource.list",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Get MCP resources",
- "description": "Get all available MCP resources from connected servers. Optionally filter by name.",
- "responses": {
- "200": {
- "description": "MCP resources",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "$ref": "#/components/schemas/McpResource"
- }
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.experimental.resource.list({\n ...\n})"
- }
- ]
- }
- },
- "/lsp": {
- "get": {
- "operationId": "lsp.status",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Get LSP status",
- "description": "Get LSP server status",
- "responses": {
- "200": {
- "description": "LSP server status",
- "content": {
- "application/json": {
- "schema": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/LSPStatus"
- }
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.lsp.status({\n ...\n})"
- }
- ]
- }
- },
- "/formatter": {
- "get": {
- "operationId": "formatter.status",
- "parameters": [
- {
- "in": "query",
- "name": "directory",
- "schema": {
- "type": "string"
- }
- }
- ],
- "summary": "Get formatter status",
- "description": "Get formatter status",
- "responses": {
- "200": {
- "description": "Formatter status",
- "content": {
- "application/json": {
- "schema": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/FormatterStatus"
- }
- }
- }
- }
- }
- },
- "x-codeSamples": [
- {
- "lang": "js",
- "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.formatter.status({\n ...\n})"
- }
- ]
- }
- },
"/tui/append-prompt": {
"post": {
"operationId": "tui.appendPrompt",
@@ -5505,6 +5158,382 @@
]
}
},
+ "/instance/dispose": {
+ "post": {
+ "operationId": "instance.dispose",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "directory",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "summary": "Dispose instance",
+ "description": "Clean up and dispose the current OpenCode instance, releasing all resources.",
+ "responses": {
+ "200": {
+ "description": "Instance disposed",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "boolean"
+ }
+ }
+ }
+ }
+ },
+ "x-codeSamples": [
+ {
+ "lang": "js",
+ "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.instance.dispose({\n ...\n})"
+ }
+ ]
+ }
+ },
+ "/path": {
+ "get": {
+ "operationId": "path.get",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "directory",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "summary": "Get paths",
+ "description": "Retrieve the current working directory and related path information for the OpenCode instance.",
+ "responses": {
+ "200": {
+ "description": "Path",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Path"
+ }
+ }
+ }
+ }
+ },
+ "x-codeSamples": [
+ {
+ "lang": "js",
+ "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.path.get({\n ...\n})"
+ }
+ ]
+ }
+ },
+ "/vcs": {
+ "get": {
+ "operationId": "vcs.get",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "directory",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "summary": "Get VCS info",
+ "description": "Retrieve version control system (VCS) information for the current project, such as git branch.",
+ "responses": {
+ "200": {
+ "description": "VCS info",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/VcsInfo"
+ }
+ }
+ }
+ }
+ },
+ "x-codeSamples": [
+ {
+ "lang": "js",
+ "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.vcs.get({\n ...\n})"
+ }
+ ]
+ }
+ },
+ "/command": {
+ "get": {
+ "operationId": "command.list",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "directory",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "summary": "List commands",
+ "description": "Get a list of all available commands in the OpenCode system.",
+ "responses": {
+ "200": {
+ "description": "List of commands",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Command"
+ }
+ }
+ }
+ }
+ }
+ },
+ "x-codeSamples": [
+ {
+ "lang": "js",
+ "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.command.list({\n ...\n})"
+ }
+ ]
+ }
+ },
+ "/log": {
+ "post": {
+ "operationId": "app.log",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "directory",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "summary": "Write log",
+ "description": "Write a log entry to the server logs with specified level and metadata.",
+ "responses": {
+ "200": {
+ "description": "Log entry written successfully",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "boolean"
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "Bad request",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/BadRequestError"
+ }
+ }
+ }
+ }
+ },
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "service": {
+ "description": "Service name for the log entry",
+ "type": "string"
+ },
+ "level": {
+ "description": "Log level",
+ "type": "string",
+ "enum": ["debug", "info", "error", "warn"]
+ },
+ "message": {
+ "description": "Log message",
+ "type": "string"
+ },
+ "extra": {
+ "description": "Additional metadata for the log entry",
+ "type": "object",
+ "propertyNames": {
+ "type": "string"
+ },
+ "additionalProperties": {}
+ }
+ },
+ "required": ["service", "level", "message"]
+ }
+ }
+ }
+ },
+ "x-codeSamples": [
+ {
+ "lang": "js",
+ "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.app.log({\n ...\n})"
+ }
+ ]
+ }
+ },
+ "/agent": {
+ "get": {
+ "operationId": "app.agents",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "directory",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "summary": "List agents",
+ "description": "Get a list of all available AI agents in the OpenCode system.",
+ "responses": {
+ "200": {
+ "description": "List of agents",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Agent"
+ }
+ }
+ }
+ }
+ }
+ },
+ "x-codeSamples": [
+ {
+ "lang": "js",
+ "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.app.agents({\n ...\n})"
+ }
+ ]
+ }
+ },
+ "/skill": {
+ "get": {
+ "operationId": "app.skills",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "directory",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "summary": "List skills",
+ "description": "Get a list of all available skills in the OpenCode system.",
+ "responses": {
+ "200": {
+ "description": "List of skills",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "location": {
+ "type": "string"
+ }
+ },
+ "required": ["name", "description", "location"]
+ }
+ }
+ }
+ }
+ }
+ },
+ "x-codeSamples": [
+ {
+ "lang": "js",
+ "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.app.skills({\n ...\n})"
+ }
+ ]
+ }
+ },
+ "/lsp": {
+ "get": {
+ "operationId": "lsp.status",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "directory",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "summary": "Get LSP status",
+ "description": "Get LSP server status",
+ "responses": {
+ "200": {
+ "description": "LSP server status",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/LSPStatus"
+ }
+ }
+ }
+ }
+ }
+ },
+ "x-codeSamples": [
+ {
+ "lang": "js",
+ "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.lsp.status({\n ...\n})"
+ }
+ ]
+ }
+ },
+ "/formatter": {
+ "get": {
+ "operationId": "formatter.status",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "directory",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "summary": "Get formatter status",
+ "description": "Get formatter status",
+ "responses": {
+ "200": {
+ "description": "Formatter status",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/FormatterStatus"
+ }
+ }
+ }
+ }
+ }
+ },
+ "x-codeSamples": [
+ {
+ "lang": "js",
+ "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.formatter.status({\n ...\n})"
+ }
+ ]
+ }
+ },
"/auth/{providerID}": {
"put": {
"operationId": "auth.set",
@@ -5760,6 +5789,25 @@
},
"required": ["type", "properties"]
},
+ "Event.file.edited": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "file.edited"
+ },
+ "properties": {
+ "type": "object",
+ "properties": {
+ "file": {
+ "type": "string"
+ }
+ },
+ "required": ["file"]
+ }
+ },
+ "required": ["type", "properties"]
+ },
"FileDiff": {
"type": "object",
"properties": {
@@ -7275,25 +7323,6 @@
},
"required": ["type", "properties"]
},
- "Event.file.edited": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "const": "file.edited"
- },
- "properties": {
- "type": "object",
- "properties": {
- "file": {
- "type": "string"
- }
- },
- "required": ["file"]
- }
- },
- "required": ["type", "properties"]
- },
"Todo": {
"type": "object",
"properties": {
@@ -7933,12 +7962,12 @@
},
"required": ["type", "properties"]
},
- "Event.server.connected": {
+ "Event.global.disposed": {
"type": "object",
"properties": {
"type": {
"type": "string",
- "const": "server.connected"
+ "const": "global.disposed"
},
"properties": {
"type": "object",
@@ -7947,12 +7976,12 @@
},
"required": ["type", "properties"]
},
- "Event.global.disposed": {
+ "Event.server.connected": {
"type": "object",
"properties": {
"type": {
"type": "string",
- "const": "global.disposed"
+ "const": "server.connected"
},
"properties": {
"type": "object",
@@ -7982,6 +8011,9 @@
"$ref": "#/components/schemas/Event.lsp.updated"
},
{
+ "$ref": "#/components/schemas/Event.file.edited"
+ },
+ {
"$ref": "#/components/schemas/Event.message.updated"
},
{
@@ -8018,9 +8050,6 @@
"$ref": "#/components/schemas/Event.session.compacted"
},
{
- "$ref": "#/components/schemas/Event.file.edited"
- },
- {
"$ref": "#/components/schemas/Event.todo.updated"
},
{
@@ -8078,10 +8107,10 @@
"$ref": "#/components/schemas/Event.pty.deleted"
},
{
- "$ref": "#/components/schemas/Event.server.connected"
+ "$ref": "#/components/schemas/Event.global.disposed"
},
{
- "$ref": "#/components/schemas/Event.global.disposed"
+ "$ref": "#/components/schemas/Event.server.connected"
}
]
},
@@ -9637,265 +9666,6 @@
},
"additionalProperties": false
},
- "ToolIDs": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "ToolListItem": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "description": {
- "type": "string"
- },
- "parameters": {}
- },
- "required": ["id", "description", "parameters"]
- },
- "ToolList": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/ToolListItem"
- }
- },
- "Path": {
- "type": "object",
- "properties": {
- "home": {
- "type": "string"
- },
- "state": {
- "type": "string"
- },
- "config": {
- "type": "string"
- },
- "worktree": {
- "type": "string"
- },
- "directory": {
- "type": "string"
- }
- },
- "required": ["home", "state", "config", "worktree", "directory"]
- },
- "Worktree": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string"
- },
- "branch": {
- "type": "string"
- },
- "directory": {
- "type": "string"
- }
- },
- "required": ["name", "branch", "directory"]
- },
- "WorktreeCreateInput": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string"
- },
- "startCommand": {
- "type": "string"
- }
- }
- },
- "VcsInfo": {
- "type": "object",
- "properties": {
- "branch": {
- "type": "string"
- }
- },
- "required": ["branch"]
- },
- "TextPartInput": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "type": {
- "type": "string",
- "const": "text"
- },
- "text": {
- "type": "string"
- },
- "synthetic": {
- "type": "boolean"
- },
- "ignored": {
- "type": "boolean"
- },
- "time": {
- "type": "object",
- "properties": {
- "start": {
- "type": "number"
- },
- "end": {
- "type": "number"
- }
- },
- "required": ["start"]
- },
- "metadata": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {}
- }
- },
- "required": ["type", "text"]
- },
- "FilePartInput": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "type": {
- "type": "string",
- "const": "file"
- },
- "mime": {
- "type": "string"
- },
- "filename": {
- "type": "string"
- },
- "url": {
- "type": "string"
- },
- "source": {
- "$ref": "#/components/schemas/FilePartSource"
- }
- },
- "required": ["type", "mime", "url"]
- },
- "AgentPartInput": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "type": {
- "type": "string",
- "const": "agent"
- },
- "name": {
- "type": "string"
- },
- "source": {
- "type": "object",
- "properties": {
- "value": {
- "type": "string"
- },
- "start": {
- "type": "integer",
- "minimum": -9007199254740991,
- "maximum": 9007199254740991
- },
- "end": {
- "type": "integer",
- "minimum": -9007199254740991,
- "maximum": 9007199254740991
- }
- },
- "required": ["value", "start", "end"]
- }
- },
- "required": ["type", "name"]
- },
- "SubtaskPartInput": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "type": {
- "type": "string",
- "const": "subtask"
- },
- "prompt": {
- "type": "string"
- },
- "description": {
- "type": "string"
- },
- "agent": {
- "type": "string"
- },
- "model": {
- "type": "object",
- "properties": {
- "providerID": {
- "type": "string"
- },
- "modelID": {
- "type": "string"
- }
- },
- "required": ["providerID", "modelID"]
- },
- "command": {
- "type": "string"
- }
- },
- "required": ["type", "prompt", "description", "agent"]
- },
- "Command": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string"
- },
- "description": {
- "type": "string"
- },
- "agent": {
- "type": "string"
- },
- "model": {
- "type": "string"
- },
- "mcp": {
- "type": "boolean"
- },
- "template": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "string"
- }
- ]
- },
- "subtask": {
- "type": "boolean"
- },
- "hints": {
- "type": "array",
- "items": {
- "type": "string"
- }
- }
- },
- "required": ["name", "template", "hints"]
- },
"Model": {
"type": "object",
"properties": {
@@ -10158,6 +9928,216 @@
},
"required": ["id", "name", "source", "env", "options", "models"]
},
+ "ToolIDs": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ToolListItem": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "parameters": {}
+ },
+ "required": ["id", "description", "parameters"]
+ },
+ "ToolList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ToolListItem"
+ }
+ },
+ "Worktree": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "branch": {
+ "type": "string"
+ },
+ "directory": {
+ "type": "string"
+ }
+ },
+ "required": ["name", "branch", "directory"]
+ },
+ "WorktreeCreateInput": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "startCommand": {
+ "type": "string"
+ }
+ }
+ },
+ "McpResource": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "uri": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "mimeType": {
+ "type": "string"
+ },
+ "client": {
+ "type": "string"
+ }
+ },
+ "required": ["name", "uri", "client"]
+ },
+ "TextPartInput": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string",
+ "const": "text"
+ },
+ "text": {
+ "type": "string"
+ },
+ "synthetic": {
+ "type": "boolean"
+ },
+ "ignored": {
+ "type": "boolean"
+ },
+ "time": {
+ "type": "object",
+ "properties": {
+ "start": {
+ "type": "number"
+ },
+ "end": {
+ "type": "number"
+ }
+ },
+ "required": ["start"]
+ },
+ "metadata": {
+ "type": "object",
+ "propertyNames": {
+ "type": "string"
+ },
+ "additionalProperties": {}
+ }
+ },
+ "required": ["type", "text"]
+ },
+ "FilePartInput": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string",
+ "const": "file"
+ },
+ "mime": {
+ "type": "string"
+ },
+ "filename": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ },
+ "source": {
+ "$ref": "#/components/schemas/FilePartSource"
+ }
+ },
+ "required": ["type", "mime", "url"]
+ },
+ "AgentPartInput": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string",
+ "const": "agent"
+ },
+ "name": {
+ "type": "string"
+ },
+ "source": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "string"
+ },
+ "start": {
+ "type": "integer",
+ "minimum": -9007199254740991,
+ "maximum": 9007199254740991
+ },
+ "end": {
+ "type": "integer",
+ "minimum": -9007199254740991,
+ "maximum": 9007199254740991
+ }
+ },
+ "required": ["value", "start", "end"]
+ }
+ },
+ "required": ["type", "name"]
+ },
+ "SubtaskPartInput": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string",
+ "const": "subtask"
+ },
+ "prompt": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "agent": {
+ "type": "string"
+ },
+ "model": {
+ "type": "object",
+ "properties": {
+ "providerID": {
+ "type": "string"
+ },
+ "modelID": {
+ "type": "string"
+ }
+ },
+ "required": ["providerID", "modelID"]
+ },
+ "command": {
+ "type": "string"
+ }
+ },
+ "required": ["type", "prompt", "description", "agent"]
+ },
"ProviderAuthMethod": {
"type": "object",
"properties": {
@@ -10343,67 +10323,6 @@
},
"required": ["path", "added", "removed", "status"]
},
- "Agent": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string"
- },
- "description": {
- "type": "string"
- },
- "mode": {
- "type": "string",
- "enum": ["subagent", "primary", "all"]
- },
- "native": {
- "type": "boolean"
- },
- "hidden": {
- "type": "boolean"
- },
- "topP": {
- "type": "number"
- },
- "temperature": {
- "type": "number"
- },
- "color": {
- "type": "string"
- },
- "permission": {
- "$ref": "#/components/schemas/PermissionRuleset"
- },
- "model": {
- "type": "object",
- "properties": {
- "modelID": {
- "type": "string"
- },
- "providerID": {
- "type": "string"
- }
- },
- "required": ["modelID", "providerID"]
- },
- "prompt": {
- "type": "string"
- },
- "options": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {}
- },
- "steps": {
- "type": "integer",
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991
- }
- },
- "required": ["name", "mode", "permission", "options"]
- },
"MCPStatusConnected": {
"type": "object",
"properties": {
@@ -10479,26 +10398,136 @@
}
]
},
- "McpResource": {
+ "Path": {
+ "type": "object",
+ "properties": {
+ "home": {
+ "type": "string"
+ },
+ "state": {
+ "type": "string"
+ },
+ "config": {
+ "type": "string"
+ },
+ "worktree": {
+ "type": "string"
+ },
+ "directory": {
+ "type": "string"
+ }
+ },
+ "required": ["home", "state", "config", "worktree", "directory"]
+ },
+ "VcsInfo": {
+ "type": "object",
+ "properties": {
+ "branch": {
+ "type": "string"
+ }
+ },
+ "required": ["branch"]
+ },
+ "Command": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
- "uri": {
+ "description": {
+ "type": "string"
+ },
+ "agent": {
+ "type": "string"
+ },
+ "model": {
+ "type": "string"
+ },
+ "mcp": {
+ "type": "boolean"
+ },
+ "template": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "subtask": {
+ "type": "boolean"
+ },
+ "hints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": ["name", "template", "hints"]
+ },
+ "Agent": {
+ "type": "object",
+ "properties": {
+ "name": {
"type": "string"
},
"description": {
"type": "string"
},
- "mimeType": {
+ "mode": {
+ "type": "string",
+ "enum": ["subagent", "primary", "all"]
+ },
+ "native": {
+ "type": "boolean"
+ },
+ "hidden": {
+ "type": "boolean"
+ },
+ "topP": {
+ "type": "number"
+ },
+ "temperature": {
+ "type": "number"
+ },
+ "color": {
"type": "string"
},
- "client": {
+ "permission": {
+ "$ref": "#/components/schemas/PermissionRuleset"
+ },
+ "model": {
+ "type": "object",
+ "properties": {
+ "modelID": {
+ "type": "string"
+ },
+ "providerID": {
+ "type": "string"
+ }
+ },
+ "required": ["modelID", "providerID"]
+ },
+ "prompt": {
"type": "string"
+ },
+ "options": {
+ "type": "object",
+ "propertyNames": {
+ "type": "string"
+ },
+ "additionalProperties": {}
+ },
+ "steps": {
+ "type": "integer",
+ "exclusiveMinimum": 0,
+ "maximum": 9007199254740991
}
},
- "required": ["name", "uri", "client"]
+ "required": ["name", "mode", "permission", "options"]
},
"LSPStatus": {
"type": "object",