diff options
| author | James Long <[email protected]> | 2026-03-03 21:35:38 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-03-03 21:35:38 -0500 |
| commit | 7f37acdaaa89b358fb795ccd006d37ed7fa6672e (patch) | |
| tree | 843595f6931d5de4daae43000cbf071c9bb192bf /packages/sdk/js/src | |
| parent | e79d41c70ed3cd01b3a576dcf774c35cad6551c1 (diff) | |
| download | opencode-7f37acdaaa89b358fb795ccd006d37ed7fa6672e.tar.gz opencode-7f37acdaaa89b358fb795ccd006d37ed7fa6672e.zip | |
feat(core): rework workspace integration and adaptor interface (#15895)
Diffstat (limited to 'packages/sdk/js/src')
| -rw-r--r-- | packages/sdk/js/src/v2/gen/sdk.gen.ts | 252 | ||||
| -rw-r--r-- | packages/sdk/js/src/v2/gen/types.gen.ts | 159 |
2 files changed, 204 insertions, 207 deletions
diff --git a/packages/sdk/js/src/v2/gen/sdk.gen.ts b/packages/sdk/js/src/v2/gen/sdk.gen.ts index 49ebc8473..feabf7199 100644 --- a/packages/sdk/js/src/v2/gen/sdk.gen.ts +++ b/packages/sdk/js/src/v2/gen/sdk.gen.ts @@ -862,17 +862,16 @@ export class Tool extends HeyApiClient { } } -export class Worktree extends HeyApiClient { +export class Workspace extends HeyApiClient { /** - * Remove worktree + * List workspaces * - * Remove a git worktree and delete its branch. + * List all workspaces. */ - public remove<ThrowOnError extends boolean = false>( + public list<ThrowOnError extends boolean = false>( parameters?: { directory?: string workspace?: string - worktreeRemoveInput?: WorktreeRemoveInput }, options?: Options<never, ThrowOnError>, ) { @@ -883,32 +882,32 @@ export class Worktree extends HeyApiClient { args: [ { in: "query", key: "directory" }, { in: "query", key: "workspace" }, - { key: "worktreeRemoveInput", map: "body" }, ], }, ], ) - return (options?.client ?? this.client).delete<WorktreeRemoveResponses, WorktreeRemoveErrors, ThrowOnError>({ - url: "/experimental/worktree", + return (options?.client ?? this.client).get<ExperimentalWorkspaceListResponses, unknown, ThrowOnError>({ + url: "/experimental/workspace", ...options, ...params, - headers: { - "Content-Type": "application/json", - ...options?.headers, - ...params.headers, - }, }) } /** - * List worktrees + * Create workspace * - * List all sandbox worktrees for the current project. + * Create a workspace for the current project. */ - public list<ThrowOnError extends boolean = false>( + public create<ThrowOnError extends boolean = false>( parameters?: { directory?: string workspace?: string + body?: { + branch?: string | null + } & { + type: "worktree" + name: string + } }, options?: Options<never, ThrowOnError>, ) { @@ -919,27 +918,37 @@ export class Worktree extends HeyApiClient { args: [ { in: "query", key: "directory" }, { in: "query", key: "workspace" }, + { key: "body", map: "body" }, ], }, ], ) - return (options?.client ?? this.client).get<WorktreeListResponses, unknown, ThrowOnError>({ - url: "/experimental/worktree", + return (options?.client ?? this.client).post< + ExperimentalWorkspaceCreateResponses, + ExperimentalWorkspaceCreateErrors, + ThrowOnError + >({ + url: "/experimental/workspace", ...options, ...params, + headers: { + "Content-Type": "application/json", + ...options?.headers, + ...params.headers, + }, }) } /** - * Create worktree + * Remove workspace * - * Create a new git worktree for the current project and run any configured startup scripts. + * Remove an existing workspace. */ - public create<ThrowOnError extends boolean = false>( - parameters?: { + public remove<ThrowOnError extends boolean = false>( + parameters: { + id: string directory?: string workspace?: string - worktreeCreateInput?: WorktreeCreateInput }, options?: Options<never, ThrowOnError>, ) { @@ -948,35 +957,41 @@ export class Worktree extends HeyApiClient { [ { args: [ + { in: "path", key: "id" }, { in: "query", key: "directory" }, { in: "query", key: "workspace" }, - { key: "worktreeCreateInput", map: "body" }, ], }, ], ) - return (options?.client ?? this.client).post<WorktreeCreateResponses, WorktreeCreateErrors, ThrowOnError>({ - url: "/experimental/worktree", + return (options?.client ?? this.client).delete< + ExperimentalWorkspaceRemoveResponses, + ExperimentalWorkspaceRemoveErrors, + ThrowOnError + >({ + url: "/experimental/workspace/{id}", ...options, ...params, - headers: { - "Content-Type": "application/json", - ...options?.headers, - ...params.headers, - }, }) } +} +export class Session extends HeyApiClient { /** - * Reset worktree + * List sessions * - * Reset a worktree branch to the primary default branch. + * Get a list of all OpenCode sessions across projects, sorted by most recently updated. Archived sessions are excluded by default. */ - public reset<ThrowOnError extends boolean = false>( + public list<ThrowOnError extends boolean = false>( parameters?: { directory?: string workspace?: string - worktreeResetInput?: WorktreeResetInput + roots?: boolean + start?: number + cursor?: number + search?: string + limit?: number + archived?: boolean }, options?: Options<never, ThrowOnError>, ) { @@ -987,33 +1002,32 @@ export class Worktree extends HeyApiClient { args: [ { in: "query", key: "directory" }, { in: "query", key: "workspace" }, - { key: "worktreeResetInput", map: "body" }, + { in: "query", key: "roots" }, + { in: "query", key: "start" }, + { in: "query", key: "cursor" }, + { in: "query", key: "search" }, + { in: "query", key: "limit" }, + { in: "query", key: "archived" }, ], }, ], ) - return (options?.client ?? this.client).post<WorktreeResetResponses, WorktreeResetErrors, ThrowOnError>({ - url: "/experimental/worktree/reset", + return (options?.client ?? this.client).get<ExperimentalSessionListResponses, unknown, ThrowOnError>({ + url: "/experimental/session", ...options, ...params, - headers: { - "Content-Type": "application/json", - ...options?.headers, - ...params.headers, - }, }) } } -export class Workspace extends HeyApiClient { +export class Resource extends HeyApiClient { /** - * Remove workspace + * Get MCP resources * - * Remove an existing workspace. + * Get all available MCP resources from connected servers. Optionally filter by name. */ - public remove<ThrowOnError extends boolean = false>( - parameters: { - id: string + public list<ThrowOnError extends boolean = false>( + parameters?: { directory?: string workspace?: string }, @@ -1024,39 +1038,48 @@ export class Workspace extends HeyApiClient { [ { args: [ - { in: "path", key: "id" }, { in: "query", key: "directory" }, { in: "query", key: "workspace" }, ], }, ], ) - return (options?.client ?? this.client).delete< - ExperimentalWorkspaceRemoveResponses, - ExperimentalWorkspaceRemoveErrors, - ThrowOnError - >({ - url: "/experimental/workspace/{id}", + return (options?.client ?? this.client).get<ExperimentalResourceListResponses, unknown, ThrowOnError>({ + url: "/experimental/resource", ...options, ...params, }) } +} + +export class Experimental extends HeyApiClient { + private _workspace?: Workspace + get workspace(): Workspace { + return (this._workspace ??= new Workspace({ client: this.client })) + } + + private _session?: Session + get session(): Session { + return (this._session ??= new Session({ client: this.client })) + } + + private _resource?: Resource + get resource(): Resource { + return (this._resource ??= new Resource({ client: this.client })) + } +} +export class Worktree extends HeyApiClient { /** - * Create workspace + * Remove worktree * - * Create a workspace for the current project. + * Remove a git worktree and delete its branch. */ - public create<ThrowOnError extends boolean = false>( - parameters: { - id: string + public remove<ThrowOnError extends boolean = false>( + parameters?: { directory?: string workspace?: string - branch?: string | null - config?: { - directory: string - type: "worktree" - } + worktreeRemoveInput?: WorktreeRemoveInput }, options?: Options<never, ThrowOnError>, ) { @@ -1065,21 +1088,15 @@ export class Workspace extends HeyApiClient { [ { args: [ - { in: "path", key: "id" }, { in: "query", key: "directory" }, { in: "query", key: "workspace" }, - { in: "body", key: "branch" }, - { in: "body", key: "config" }, + { key: "worktreeRemoveInput", map: "body" }, ], }, ], ) - return (options?.client ?? this.client).post< - ExperimentalWorkspaceCreateResponses, - ExperimentalWorkspaceCreateErrors, - ThrowOnError - >({ - url: "/experimental/workspace/{id}", + return (options?.client ?? this.client).delete<WorktreeRemoveResponses, WorktreeRemoveErrors, ThrowOnError>({ + url: "/experimental/worktree", ...options, ...params, headers: { @@ -1091,9 +1108,9 @@ export class Workspace extends HeyApiClient { } /** - * List workspaces + * List worktrees * - * List all workspaces. + * List all sandbox worktrees for the current project. */ public list<ThrowOnError extends boolean = false>( parameters?: { @@ -1113,30 +1130,23 @@ export class Workspace extends HeyApiClient { }, ], ) - return (options?.client ?? this.client).get<ExperimentalWorkspaceListResponses, unknown, ThrowOnError>({ - url: "/experimental/workspace", + return (options?.client ?? this.client).get<WorktreeListResponses, unknown, ThrowOnError>({ + url: "/experimental/worktree", ...options, ...params, }) } -} -export class Session extends HeyApiClient { /** - * List sessions + * Create worktree * - * Get a list of all OpenCode sessions across projects, sorted by most recently updated. Archived sessions are excluded by default. + * Create a new git worktree for the current project and run any configured startup scripts. */ - public list<ThrowOnError extends boolean = false>( + public create<ThrowOnError extends boolean = false>( parameters?: { directory?: string workspace?: string - roots?: boolean - start?: number - cursor?: number - search?: string - limit?: number - archived?: boolean + worktreeCreateInput?: WorktreeCreateInput }, options?: Options<never, ThrowOnError>, ) { @@ -1147,34 +1157,33 @@ export class Session extends HeyApiClient { args: [ { in: "query", key: "directory" }, { in: "query", key: "workspace" }, - { in: "query", key: "roots" }, - { in: "query", key: "start" }, - { in: "query", key: "cursor" }, - { in: "query", key: "search" }, - { in: "query", key: "limit" }, - { in: "query", key: "archived" }, + { key: "worktreeCreateInput", map: "body" }, ], }, ], ) - return (options?.client ?? this.client).get<ExperimentalSessionListResponses, unknown, ThrowOnError>({ - url: "/experimental/session", + return (options?.client ?? this.client).post<WorktreeCreateResponses, WorktreeCreateErrors, ThrowOnError>({ + url: "/experimental/worktree", ...options, ...params, + headers: { + "Content-Type": "application/json", + ...options?.headers, + ...params.headers, + }, }) } -} -export class Resource extends HeyApiClient { /** - * Get MCP resources + * Reset worktree * - * Get all available MCP resources from connected servers. Optionally filter by name. + * Reset a worktree branch to the primary default branch. */ - public list<ThrowOnError extends boolean = false>( + public reset<ThrowOnError extends boolean = false>( parameters?: { directory?: string workspace?: string + worktreeResetInput?: WorktreeResetInput }, options?: Options<never, ThrowOnError>, ) { @@ -1185,35 +1194,24 @@ export class Resource extends HeyApiClient { args: [ { in: "query", key: "directory" }, { in: "query", key: "workspace" }, + { key: "worktreeResetInput", map: "body" }, ], }, ], ) - return (options?.client ?? this.client).get<ExperimentalResourceListResponses, unknown, ThrowOnError>({ - url: "/experimental/resource", + return (options?.client ?? this.client).post<WorktreeResetResponses, WorktreeResetErrors, ThrowOnError>({ + url: "/experimental/worktree/reset", ...options, ...params, + headers: { + "Content-Type": "application/json", + ...options?.headers, + ...params.headers, + }, }) } } -export class Experimental extends HeyApiClient { - private _workspace?: Workspace - get workspace(): Workspace { - return (this._workspace ??= new Workspace({ client: this.client })) - } - - private _session?: Session - get session(): Session { - return (this._session ??= new Session({ client: this.client })) - } - - private _resource?: Resource - get resource(): Resource { - return (this._resource ??= new Resource({ client: this.client })) - } -} - export class Session2 extends HeyApiClient { /** * List sessions @@ -3898,16 +3896,16 @@ export class OpencodeClient extends HeyApiClient { return (this._tool ??= new Tool({ client: this.client })) } - private _worktree?: Worktree - get worktree(): Worktree { - return (this._worktree ??= new Worktree({ client: this.client })) - } - private _experimental?: Experimental get experimental(): Experimental { return (this._experimental ??= new Experimental({ client: this.client })) } + private _worktree?: Worktree + get worktree(): Worktree { + return (this._worktree ??= new Worktree({ client: this.client })) + } + private _session?: Session2 get session(): Session2 { return (this._session ??= new Session2({ 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 69d105610..e40eb13a3 100644 --- a/packages/sdk/js/src/v2/gen/types.gen.ts +++ b/packages/sdk/js/src/v2/gen/types.gen.ts @@ -1631,6 +1631,18 @@ export type ToolListItem = { export type ToolList = Array<ToolListItem> +export type Workspace = { + id: string + branch: string | null + projectID: string + config: { + type: "worktree" + directory: string + name: string + branch: string + } +} + export type Worktree = { name: string branch: string @@ -1645,16 +1657,6 @@ export type WorktreeCreateInput = { startCommand?: string } -export type Workspace = { - id: string - branch: string | null - projectID: string - config: { - directory: string - type: "worktree" - } -} - export type WorktreeRemoveInput = { directory: string } @@ -2444,80 +2446,60 @@ export type ToolListResponses = { export type ToolListResponse = ToolListResponses[keyof ToolListResponses] -export type WorktreeRemoveData = { - body?: WorktreeRemoveInput - path?: never - query?: { - directory?: string - workspace?: string - } - url: "/experimental/worktree" -} - -export type WorktreeRemoveErrors = { - /** - * Bad request - */ - 400: BadRequestError -} - -export type WorktreeRemoveError = WorktreeRemoveErrors[keyof WorktreeRemoveErrors] - -export type WorktreeRemoveResponses = { - /** - * Worktree removed - */ - 200: boolean -} - -export type WorktreeRemoveResponse = WorktreeRemoveResponses[keyof WorktreeRemoveResponses] - -export type WorktreeListData = { +export type ExperimentalWorkspaceListData = { body?: never path?: never query?: { directory?: string workspace?: string } - url: "/experimental/worktree" + url: "/experimental/workspace" } -export type WorktreeListResponses = { +export type ExperimentalWorkspaceListResponses = { /** - * List of worktree directories + * Workspaces */ - 200: Array<string> + 200: Array<Workspace> } -export type WorktreeListResponse = WorktreeListResponses[keyof WorktreeListResponses] +export type ExperimentalWorkspaceListResponse = + ExperimentalWorkspaceListResponses[keyof ExperimentalWorkspaceListResponses] -export type WorktreeCreateData = { - body?: WorktreeCreateInput +export type ExperimentalWorkspaceCreateData = { + body?: { + branch?: string | null + } & { + type: "worktree" + name: string + } path?: never query?: { directory?: string workspace?: string } - url: "/experimental/worktree" + url: "/experimental/workspace" } -export type WorktreeCreateErrors = { +export type ExperimentalWorkspaceCreateErrors = { /** * Bad request */ 400: BadRequestError } -export type WorktreeCreateError = WorktreeCreateErrors[keyof WorktreeCreateErrors] +export type ExperimentalWorkspaceCreateError = + ExperimentalWorkspaceCreateErrors[keyof ExperimentalWorkspaceCreateErrors] -export type WorktreeCreateResponses = { +export type ExperimentalWorkspaceCreateResponses = { /** - * Worktree created + * Workspace created */ - 200: Worktree + 200: Workspace } -export type WorktreeCreateResponse = WorktreeCreateResponses[keyof WorktreeCreateResponses] +export type ExperimentalWorkspaceCreateResponse = + ExperimentalWorkspaceCreateResponses[keyof ExperimentalWorkspaceCreateResponses] export type ExperimentalWorkspaceRemoveData = { body?: never @@ -2551,63 +2533,80 @@ export type ExperimentalWorkspaceRemoveResponses = { export type ExperimentalWorkspaceRemoveResponse = ExperimentalWorkspaceRemoveResponses[keyof ExperimentalWorkspaceRemoveResponses] -export type ExperimentalWorkspaceCreateData = { - body?: { - branch: string | null - config: { - directory: string - type: "worktree" - } - } - path: { - id: string - } +export type WorktreeRemoveData = { + body?: WorktreeRemoveInput + path?: never query?: { directory?: string workspace?: string } - url: "/experimental/workspace/{id}" + url: "/experimental/worktree" } -export type ExperimentalWorkspaceCreateErrors = { +export type WorktreeRemoveErrors = { /** * Bad request */ 400: BadRequestError } -export type ExperimentalWorkspaceCreateError = - ExperimentalWorkspaceCreateErrors[keyof ExperimentalWorkspaceCreateErrors] +export type WorktreeRemoveError = WorktreeRemoveErrors[keyof WorktreeRemoveErrors] -export type ExperimentalWorkspaceCreateResponses = { +export type WorktreeRemoveResponses = { /** - * Workspace created + * Worktree removed */ - 200: Workspace + 200: boolean } -export type ExperimentalWorkspaceCreateResponse = - ExperimentalWorkspaceCreateResponses[keyof ExperimentalWorkspaceCreateResponses] +export type WorktreeRemoveResponse = WorktreeRemoveResponses[keyof WorktreeRemoveResponses] -export type ExperimentalWorkspaceListData = { +export type WorktreeListData = { body?: never path?: never query?: { directory?: string workspace?: string } - url: "/experimental/workspace" + url: "/experimental/worktree" } -export type ExperimentalWorkspaceListResponses = { +export type WorktreeListResponses = { /** - * Workspaces + * List of worktree directories */ - 200: Array<Workspace> + 200: Array<string> } -export type ExperimentalWorkspaceListResponse = - ExperimentalWorkspaceListResponses[keyof ExperimentalWorkspaceListResponses] +export type WorktreeListResponse = WorktreeListResponses[keyof WorktreeListResponses] + +export type WorktreeCreateData = { + body?: WorktreeCreateInput + path?: never + query?: { + directory?: string + workspace?: string + } + url: "/experimental/worktree" +} + +export type WorktreeCreateErrors = { + /** + * Bad request + */ + 400: BadRequestError +} + +export type WorktreeCreateError = WorktreeCreateErrors[keyof WorktreeCreateErrors] + +export type WorktreeCreateResponses = { + /** + * Worktree created + */ + 200: Worktree +} + +export type WorktreeCreateResponse = WorktreeCreateResponses[keyof WorktreeCreateResponses] export type WorktreeResetData = { body?: WorktreeResetInput |
