diff options
| author | Adam <[email protected]> | 2026-01-02 20:17:02 -0600 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-01-02 20:17:02 -0600 |
| commit | 052de3c556097a983c7c27e9a9a9cbc5d22b13c5 (patch) | |
| tree | 6b2f8d7d74e1027a110f8ee17ab9fd538c25ccfd /packages/sdk | |
| parent | f6fe709f6ee75427ba64829af25b64d9a3111569 (diff) | |
| download | opencode-052de3c556097a983c7c27e9a9a9cbc5d22b13c5.tar.gz opencode-052de3c556097a983c7c27e9a9a9cbc5d22b13c5.zip | |
feat: add managed git worktrees (#6674)
Diffstat (limited to 'packages/sdk')
| -rw-r--r-- | packages/sdk/js/src/v2/gen/sdk.gen.ts | 62 | ||||
| -rw-r--r-- | packages/sdk/js/src/v2/gen/types.gen.ts | 57 |
2 files changed, 119 insertions, 0 deletions
diff --git a/packages/sdk/js/src/v2/gen/sdk.gen.ts b/packages/sdk/js/src/v2/gen/sdk.gen.ts index 5319a714b..702af6324 100644 --- a/packages/sdk/js/src/v2/gen/sdk.gen.ts +++ b/packages/sdk/js/src/v2/gen/sdk.gen.ts @@ -150,6 +150,10 @@ import type { TuiShowToastResponses, TuiSubmitPromptResponses, VcsGetResponses, + WorktreeCreateErrors, + WorktreeCreateInput, + WorktreeCreateResponses, + WorktreeListResponses, } from "./types.gen.js" export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = Options2< @@ -683,6 +687,62 @@ export class Path extends HeyApiClient { } } +export class Worktree extends HeyApiClient { + /** + * List worktrees + * + * List all sandbox worktrees for the current project. + */ + 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<WorktreeListResponses, unknown, ThrowOnError>({ + url: "/experimental/worktree", + ...options, + ...params, + }) + } + + /** + * Create worktree + * + * Create a new git worktree for the current project. + */ + public create<ThrowOnError extends boolean = false>( + parameters?: { + directory?: string + worktreeCreateInput?: WorktreeCreateInput + }, + options?: Options<never, ThrowOnError>, + ) { + const params = buildClientParams( + [parameters], + [ + { + args: [ + { in: "query", key: "directory" }, + { key: "worktreeCreateInput", map: "body" }, + ], + }, + ], + ) + 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 Vcs extends HeyApiClient { /** * Get VCS info @@ -2789,6 +2849,8 @@ export class OpencodeClient extends HeyApiClient { path = new Path({ client: this.client }) + worktree = new Worktree({ client: this.client }) + vcs = new Vcs({ client: this.client }) session = new Session({ 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 f0aa4a406..f083dc85d 100644 --- a/packages/sdk/js/src/v2/gen/types.gen.ts +++ b/packages/sdk/js/src/v2/gen/types.gen.ts @@ -32,6 +32,7 @@ export type Project = { updated: number initialized?: number } + sandboxes?: Array<string> } export type EventProjectUpdated = { @@ -1686,6 +1687,17 @@ export type Path = { directory: string } +export type Worktree = { + name: string + branch: string + directory: string +} + +export type WorktreeCreateInput = { + name?: string + startCommand?: string +} + export type VcsInfo = { branch: string } @@ -2408,6 +2420,51 @@ export type PathGetResponses = { export type PathGetResponse = PathGetResponses[keyof PathGetResponses] +export type WorktreeListData = { + body?: never + path?: never + query?: { + directory?: string + } + url: "/experimental/worktree" +} + +export type WorktreeListResponses = { + /** + * List of worktree directories + */ + 200: Array<string> +} + +export type WorktreeListResponse = WorktreeListResponses[keyof WorktreeListResponses] + +export type WorktreeCreateData = { + body?: WorktreeCreateInput + path?: never + query?: { + directory?: 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 VcsGetData = { body?: never path?: never |
