diff --git a/packages/contracts/src/git.ts b/packages/contracts/src/git.ts index 6f1e4ea90c3e313f8a7cf13a59fb3b0c53b47705..8d1f22d1d8dd915d527dc8bd673f82857c3a43d3 100644 --- a/packages/contracts/src/git.ts +++ b/packages/contracts/src/git.ts @@ -22,6 +22,11 @@ export const gitCreateBranchInputSchema = z.object({ branch: z.string().min(1), }); +export const gitCheckoutInputSchema = z.object({ + cwd: z.string().min(1), + branch: z.string().min(1), +}); + export const gitInitInputSchema = z.object({ cwd: z.string().min(1), }); @@ -50,6 +55,7 @@ export type GitRemoveWorktreeInput = z.infer< typeof gitRemoveWorktreeInputSchema >; export type GitCreateBranchInput = z.infer; +export type GitCheckoutInput = z.infer; export type GitInitInput = z.infer; export interface GitListBranchesResult { diff --git a/packages/contracts/src/ipc.ts b/packages/contracts/src/ipc.ts index d0b843d322fd9bcc266a10b9ea96f3af85e62a50..0070e3100288134e1b6ddaba02db7188fa382d75 100644 --- a/packages/contracts/src/ipc.ts +++ b/packages/contracts/src/ipc.ts @@ -1,5 +1,6 @@ import type { AgentConfig, AgentExit, OutputChunk } from "./agent"; import type { + GitCheckoutInput, GitCreateBranchInput, GitCreateWorktreeInput, GitCreateWorktreeResult, @@ -76,6 +77,7 @@ export interface NativeApi { createWorktree: (input: GitCreateWorktreeInput) => Promise; removeWorktree: (input: GitRemoveWorktreeInput) => Promise; createBranch: (input: GitCreateBranchInput) => Promise; + checkout: (input: GitCheckoutInput) => Promise; init: (input: GitInitInput) => Promise; }; }