mirror of
https://bitbucket.org/siakitem/my-pi.git
synced 2026-10-26 10:45:22 +00:00
提供 /wt(别名 /worktree)一键拆分/合并: - /wt new 建 worktree 后经 SessionManager.forkFrom + switchSession 迁移会话 cwd,历史上下文保留;合并/切换同理 - /wt merge 先确认再 rebase 到来源分支、默认 --ff-only(可选 --squash),来源改动用 stash 兜底,冲突可中止或保留后用 /wt merge --continue / --abort 处理,永不 push - 来源 checkout 的 .pi/worktree.json 声明环境复刻(copy/link/env/ postCreate),确认框先展示计划再执行;postCreate 仅在项目已信任 时以 argv 形式 execFile,失败可 /wt reopen 增量重跑 - 登记文件 <agentDir>/pi-worktree/state.json 原子写入并加锁 串行化;会话切换后向模型注入 cwd 变更提示;未被 .gitignore 覆盖的软链/环境文件写入 .git/info/exclude 防止误提交 - 仅注册用户显式触发的斜杠命令,不暴露模型可调用工具 Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
37 lines
1.1 KiB
TypeScript
37 lines
1.1 KiB
TypeScript
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
|
|
import { registerWorktreeCommands } from "./src/commands.ts";
|
|
|
|
export default function worktreeExtension(pi: ExtensionAPI): void {
|
|
registerWorktreeCommands(pi);
|
|
}
|
|
|
|
export { validateSlug, toPathSlug, toBranchName } from "./src/slug.ts";
|
|
export { argumentCompletions } from "./src/commands.ts";
|
|
export { prepareSessionForCwd, switchToCwd } from "./src/session.ts";
|
|
export {
|
|
loadState,
|
|
saveState,
|
|
addEntry,
|
|
removeEntry,
|
|
findBySlug,
|
|
findByCwd,
|
|
stateFilePath,
|
|
} from "./src/state.ts";
|
|
export type { WorktreeEntry, WorktreeState } from "./src/state.ts";
|
|
export { createGit, defaultGitRunner, GitError } from "./src/git.ts";
|
|
export type { Git, GitRunner, GitResult, WorktreeInfo, RebaseResult } from "./src/git.ts";
|
|
export { readWorktreeSettings } from "./src/settings.ts";
|
|
export type { WorktreeSettings } from "./src/settings.ts";
|
|
export {
|
|
loadSetupConfig,
|
|
parseSetupConfig,
|
|
expandPattern,
|
|
planSetup,
|
|
applySetup,
|
|
formatPlan,
|
|
fnv1a32,
|
|
worktreePort,
|
|
} from "./src/setup.ts";
|
|
export type { SetupConfig, SetupStep, SetupPlan, ApplyResult } from "./src/setup.ts";
|