/** * Git 操作封装 * * 为 SDD 引擎提供 Git 操作接口: * - HEAD commit 获取 * - diff 生成(审查包) * - worktree 管理 * * 来自 Superpowers 的核心机制——审查包通过 git diff 生成文件, * 避免将大段 diff 塞入 AI 上下文窗口。 */ /** * 获取当前 HEAD commit SHA * 等价于: git rev-parse HEAD */ export declare function getHeadCommit(cwd?: string): string; /** * 获取两个 commit 之间的 diff */ export declare function getDiff(base: string, head: string, cwd?: string): string; /** * 获取变更文件列表 */ export declare function getChangedFiles(base: string, head: string, cwd?: string): string[]; /** * 获取 diff 统计信息 */ export declare function getDiffStats(base: string, head: string, cwd?: string): { files: number; insertions: number; deletions: number; }; /** * 生成审查包文件 * * 将 git diff 格式化为 Markdown 审查包, * 写入文件返回路径。 * 审查者子代理读取此文件而非接收上下文注入的 diff。 * * @param base - 基础 commit SHA * @param head - 目标 commit SHA * @param briefPath - 任务简报路径(用于提取上下文) * @param outputDir - 输出目录 * @returns 审查包文件路径 */ export declare function generateReviewPackage(base: string, head: string, briefPath: string, outputDir: string, cwd?: string): string; /** * 创建 Git worktree(来自 Superpowers 的隔离策略) * * 在独立目录中 checkout 分支,避免主工作区污染。 */ export declare function createWorktree(branchName: string, worktreePath: string, baseBranch?: string): void; /** * 删除 Git worktree */ export declare function removeWorktree(worktreePath: string, force?: boolean): void; /** * 获取当前 Git 分支名称 * * 使用 git rev-parse --abbrev-ref HEAD 获取当前分支名。 * detached HEAD 状态返回空字符串。 */ export declare function getCurrentBranch(cwd?: string): string; /** * 检查是否在 Git 仓库中 */ export declare function isGitRepo(): boolean; /** * 将指定分支合并到当前分支(在 cwd 中执行) * 优先尝试 fast-forward,失败则使用 --no-ff */ export declare function mergeBranch(branchName: string, cwd?: string): { success: boolean; conflict: boolean; }; /** * 删除本地分支 */ export declare function deleteBranch(branchName: string, cwd?: string): void; /** * 清理残留的 worktree 和分支 * * 在并行模式启动时调用,清理上次崩溃残留的: * 1. .worktrees/ 目录下的子目录(先尝试 git worktree remove,失败则直接删除) * 2. specpow-parallel- 前缀的本地分支 */ export declare function cleanupStaleWorktrees(workspaceDir: string): void; //# sourceMappingURL=git-ops.d.ts.map