summaryrefslogtreecommitdiffhomepage
path: root/packages/sdk
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-01-02 20:17:02 -0600
committerGitHub <[email protected]>2026-01-02 20:17:02 -0600
commit052de3c556097a983c7c27e9a9a9cbc5d22b13c5 (patch)
tree6b2f8d7d74e1027a110f8ee17ab9fd538c25ccfd /packages/sdk
parentf6fe709f6ee75427ba64829af25b64d9a3111569 (diff)
downloadopencode-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.ts62
-rw-r--r--packages/sdk/js/src/v2/gen/types.gen.ts57
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