dsh-git-worktree 0.4.0 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +98 -0
- package/NOTICE +14 -0
- package/README.en.md +74 -266
- package/README.md +78 -286
- package/cordis.patch.yml +7 -3
- package/lib/adapters/git.js +8 -0
- package/lib/adapters/git.js.map +1 -1
- package/lib/adapters/registry.js +100 -1
- package/lib/adapters/registry.js.map +1 -1
- package/lib/checkpoint.d.ts +3 -0
- package/lib/checkpoint.js +29 -0
- package/lib/checkpoint.js.map +1 -0
- package/lib/client/WorktreeReviewRow.d.ts +1 -1
- package/lib/client/WorktreeReviewRow.js +32 -4
- package/lib/client/WorktreeReviewRow.js.map +1 -1
- package/lib/client/actions.d.ts +25 -1
- package/lib/client/actions.js.map +1 -1
- package/lib/client/console-remote/adapter.js +11 -3
- package/lib/client/console-remote/adapter.js.map +1 -1
- package/lib/client/index.d.ts +1 -1
- package/lib/client/index.js +3 -1
- package/lib/client/index.js.map +1 -1
- package/lib/client/pre-session/controller.js +9 -0
- package/lib/client/pre-session/controller.js.map +1 -1
- package/lib/client/review-console/PreflightStatus.d.ts +3 -2
- package/lib/client/review-console/PreflightStatus.js +3 -3
- package/lib/client/review-console/PreflightStatus.js.map +1 -1
- package/lib/client/review-console/ReviewActions.js +566 -27
- package/lib/client/review-console/ReviewActions.js.map +1 -1
- package/lib/client/review-console/WorktreeReviewPanel.js +18 -3
- package/lib/client/review-console/WorktreeReviewPanel.js.map +1 -1
- package/lib/client/review-console/preflight-cache.d.ts +2 -0
- package/lib/client/review-console/preflight-cache.js +18 -5
- package/lib/client/review-console/preflight-cache.js.map +1 -1
- package/lib/client/review-console/preview-recovery-cache.d.ts +20 -0
- package/lib/client/review-console/preview-recovery-cache.js +103 -0
- package/lib/client/review-console/preview-recovery-cache.js.map +1 -0
- package/lib/client/review-console/recovery-continuation.d.ts +53 -0
- package/lib/client/review-console/recovery-continuation.js +483 -0
- package/lib/client/review-console/recovery-continuation.js.map +1 -0
- package/lib/client/review-console/review-console.styles.js +9 -1
- package/lib/client/review-console/review-console.styles.js.map +1 -1
- package/lib/client/styles.js +61 -0
- package/lib/client/styles.js.map +1 -1
- package/lib/client/target-console/TargetStatusAction.js +2 -2
- package/lib/client/target-console/TargetStatusAction.js.map +1 -1
- package/lib/client/target-console/WorktreeConsoleView.js +1 -1
- package/lib/client/target-console/WorktreeConsoleView.js.map +1 -1
- package/lib/client/target-console/WorktreeReviewStatus.js +19 -6
- package/lib/client/target-console/WorktreeReviewStatus.js.map +1 -1
- package/lib/client/workspace-sidebar/index.d.ts +33 -0
- package/lib/client/workspace-sidebar/index.js +127 -0
- package/lib/client/workspace-sidebar/index.js.map +1 -0
- package/lib/client/workspace-sidebar/model.d.ts +37 -0
- package/lib/client/workspace-sidebar/model.js +88 -0
- package/lib/client/workspace-sidebar/model.js.map +1 -0
- package/lib/client.js +4511 -106
- package/lib/console-contract.d.ts +124 -1
- package/lib/console-contract.js.map +1 -1
- package/lib/console-host/control-plane.d.ts +7 -1
- package/lib/console-host/control-plane.js +264 -9
- package/lib/console-host/control-plane.js.map +1 -1
- package/lib/console-host/errors.d.ts +2 -2
- package/lib/console-host/errors.js +21 -5
- package/lib/console-host/errors.js.map +1 -1
- package/lib/console-host/projection.js +60 -1
- package/lib/console-host/projection.js.map +1 -1
- package/lib/console-host/service.d.ts +11 -5
- package/lib/console-host/service.js +54 -6
- package/lib/console-host/service.js.map +1 -1
- package/lib/console-remote/descriptors.js +40 -3
- package/lib/console-remote/descriptors.js.map +1 -1
- package/lib/console-remote/remote.d.ts +11 -5
- package/lib/console-remote/remote.js.map +1 -1
- package/lib/console-remote/schemas.d.ts +104 -1
- package/lib/console-remote/schemas.js +161 -5
- package/lib/console-remote/schemas.js.map +1 -1
- package/lib/index.d.ts +13 -2
- package/lib/index.js.map +1 -1
- package/lib/ports.d.ts +76 -1
- package/lib/session-checkout-apply.d.ts +76 -0
- package/lib/session-checkout-apply.js +608 -143
- package/lib/session-checkout-apply.js.map +1 -1
- package/lib/session-checkout-module.js +759 -124
- package/lib/session-checkout-module.js.map +1 -1
- package/lib/tools.js +1 -1
- package/lib/tools.js.map +1 -1
- package/lib/types.d.ts +93 -2
- package/lib/types.js.map +1 -1
- package/package.json +22 -14
- package/scripts/check-publish.mjs +17 -2
- package/scripts/check-workspace-sidebar-version.mjs +14 -0
- package/scripts/dev-dsh-lib.mjs +1 -1
- package/scripts/workspace-sidebar-upstream.d.mts +8 -0
- package/scripts/workspace-sidebar-upstream.mjs +160 -0
package/README.md
CHANGED
|
@@ -1,320 +1,127 @@
|
|
|
1
1
|
# dsh-git-worktree
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/dsh-git-worktree)
|
|
4
|
+
[](https://www.npmjs.com/package/dsh-git-worktree)
|
|
4
5
|
[](https://github.com/wloops/dsh-git-worktree/actions/workflows/ci.yml)
|
|
5
6
|
[](LICENSE)
|
|
6
7
|
|
|
7
|
-
**让 Agent 在真实 Git Worktree
|
|
8
|
+
**让 Agent 在真实 Git Worktree 中执行任务,先预览修改,再由用户明确确认是否保存。**
|
|
8
9
|
|
|
9
|
-
`dsh-git-worktree`
|
|
10
|
+
`dsh-git-worktree` 是 [DeepSeek Harness](https://github.com/deepseek-ai/DeepSeek-Harness) 的实验性 Session Target 插件。每个编码任务使用独立 checkout、Workspace 和 Session,避免 Agent 施工状态直接混入用户控制的 Local checkout。
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
这是独立维护的社区插件,不是 DeepSeek 官方项目,也不代表官方背书、合作或授权。
|
|
12
13
|
|
|
13
|
-
|
|
14
|
+
[English](README.en.md) · [完整使用指南](docs/USAGE.md) · [架构说明](docs/WORKTREE-CONSOLE-ARCHITECTURE.md)
|
|
14
15
|
|
|
15
|
-
|
|
16
|
+
## 为什么使用它?
|
|
16
17
|
|
|
17
|
-
|
|
18
|
+
普通 Agent Session 直接修改 Local 时,任务增量容易与已有 staged、unstaged、untracked 内容混在一起;多个任务也可能争用同一个 checkout。该插件把“施工”和“交付”拆开:
|
|
18
19
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
- Agent 的修改与 Local 中已有的 staged、unstaged、untracked 内容混在一起;
|
|
24
|
-
- 多个 Agent 任务共用一个 checkout 时,会相互覆盖文件、切换分支或污染彼此的提交边界;
|
|
25
|
-
- 多个任务同时把结果写入 Local 时,Preview、冲突处理和清理操作容易互相干扰;
|
|
26
|
-
- 任务完成前,用户很难确认哪些修改属于本次任务;
|
|
27
|
-
- “查看结果”常常已经等于“写入 Local”,不容易安全撤回;
|
|
28
|
-
- 提交、清理或恢复操作如果依赖模型自行判断,会放大误操作风险;
|
|
29
|
-
- 长对话完成一轮后,开始下一轮通常需要换 Session、重新解释上下文。
|
|
30
|
-
|
|
31
|
-
本插件把一次编码任务分成两个边界清晰的阶段:
|
|
32
|
-
|
|
33
|
-
1. **Agent 在 Isolated Worktree 中施工和验证**;
|
|
34
|
-
2. **用户在 Local 中验收并决定是否提交**。
|
|
20
|
+
- Agent 只在隔离 Worktree 中修改和测试;
|
|
21
|
+
- 用户先查看可撤回的 Local Preview;
|
|
22
|
+
- Host 只保存本轮任务增量,不吞入无关 Local 修改;
|
|
23
|
+
- 无法证明安全时停止写入并保留恢复证据。
|
|
35
24
|
|
|
36
25
|
## 核心能力
|
|
37
26
|
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
-
|
|
43
|
-
-
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
├─ 创建隔离的 Worktree Session
|
|
65
|
-
▼
|
|
66
|
-
Agent 在 Worktree 中修改、测试
|
|
67
|
-
│
|
|
68
|
-
├─ worktree_ready_for_review
|
|
69
|
-
▼
|
|
70
|
-
Ready for Review
|
|
71
|
-
│
|
|
72
|
-
├─ 同步到 Local Preview ── 验收并提交
|
|
73
|
-
│ └─ 撤回 Preview,继续修改
|
|
74
|
-
├─ 跳过 Preview,直接提交
|
|
75
|
-
└─ 放弃任务
|
|
76
|
-
│
|
|
77
|
-
└─ cleanup 后在原 Session 开始 iteration + 1
|
|
27
|
+
- **真实隔离**:每个任务拥有独立 Git Worktree、Workspace 和唯一 owner Session。
|
|
28
|
+
- **项目聚合侧边栏**:Managed owner 以 Branch Icon 和状态 Badge 直接归入原 Local 项目;普通 Local Session 保持官方行为。
|
|
29
|
+
- **人工验收**:Ready 后由用户选择“预览修改”“确认并保存”或其他操作。
|
|
30
|
+
- **可撤回 Preview**:预览写入 Local 但不立即创建 Commit,可安全撤回。
|
|
31
|
+
- **单任务保存**:最终只为本轮累计增量创建一个 Commit。
|
|
32
|
+
- **保存阶段并继续**:Checkpoint 只存在于 managed Worktree,最终仍合并为一次交付。
|
|
33
|
+
- **安全恢复**:处理 Local 漂移、冲突、`preview_detached`、重启和 cleanup 中断。
|
|
34
|
+
- **并行施工、串行验收**:多个 Worktree 可并行工作,同一 Local 项目一次只接受一个 Preview。
|
|
35
|
+
- **连续迭代**:交付并 cleanup 后,可在原 Session 和对话中开始下一轮。
|
|
36
|
+
|
|
37
|
+
> 当前定位是**项目级 Worktree Session 交付插件**,不是跨项目全局 Worktree Manager。
|
|
38
|
+
|
|
39
|
+
## 工作流
|
|
40
|
+
|
|
41
|
+
```mermaid
|
|
42
|
+
flowchart LR
|
|
43
|
+
A[Local Session] -->|创建 Worktree| B[Worktree Session]
|
|
44
|
+
B --> C[Agent 修改并验证]
|
|
45
|
+
C --> D[Ready for Review]
|
|
46
|
+
D -->|预览修改| E[Local Preview]
|
|
47
|
+
E -->|确认并保存| F[本轮已交付]
|
|
48
|
+
F -->|cleanup| G[开始下一轮]
|
|
49
|
+
|
|
50
|
+
D -.->|保存阶段并继续| H[保存 Checkpoint<br/>返回修改]
|
|
51
|
+
E -.->|撤回本次预览| I[返回修改]
|
|
52
|
+
D -.->|跳过预览并保存| F
|
|
78
53
|
```
|
|
79
54
|
|
|
80
|
-
###
|
|
81
|
-
|
|
82
|
-
在 blank/new Local Session 中打开 **Worktree** 开关并确认。确认之前不会创建 Worktree;确认后,未发送的文字和图片草稿会迁移到新的隔离 Session。
|
|
83
|
-
|
|
84
|
-
已有 Local Session 也可以由模型调用 `worktree_create` 创建目标 Session。源 Session 始终保持 Local,不会被偷偷切换到另一个 cwd。
|
|
85
|
-
|
|
86
|
-
### 2. Agent 在 Worktree 中工作
|
|
87
|
-
|
|
88
|
-
Agent 只在隔离 cwd 中读取、修改和验证项目。该 cwd 对应真实 Git Worktree,同时注册为 Harness Workspace,因此 Harness 的 Workspace 和 Session 边界仍然有效。
|
|
89
|
-
|
|
90
|
-
### 3. 准备验收
|
|
91
|
-
|
|
92
|
-
实现和验证完成后,Agent 调用 `worktree_ready_for_review`,提交:
|
|
93
|
-
|
|
94
|
-
- 变更摘要;
|
|
95
|
-
- changed files;
|
|
96
|
-
- 验证状态与测试命令;
|
|
97
|
-
- 建议 Commit Message。
|
|
98
|
-
|
|
99
|
-
该操作只保存验收报告,不写入 Local,也不创建 Commit。Ready 出现后,专用 Review 卡和 composer dock 会自动执行严格只读 Preflight,展示 Local/Worktree HEAD、effective base、变更数量、冲突和 acceptance slot;Review 卡与 dock 会复用同一检查结果,但真正 Preview 或直接 Finalize 前仍会强制重新检查,不能把缓存当作写入授权。
|
|
100
|
-
|
|
101
|
-
### 4. 用户决定如何交付
|
|
102
|
-
|
|
103
|
-
用户可以选择:
|
|
104
|
-
|
|
105
|
-
- **同步到 Local 验收**:创建一个未提交、可撤回的 Preview;
|
|
106
|
-
- **验收通过并提交**:只提交本次任务增量;
|
|
107
|
-
- **撤回并继续修改**:移除 Preview,返回原 Worktree;
|
|
108
|
-
- **跳过验收直接提交**:显式确认后走受保护的直接交付路径;
|
|
109
|
-
- **放弃任务**:在满足安全条件后清理任务环境。
|
|
110
|
-
|
|
111
|
-
如果预检发现 `stale_local`、`stale_isolated` 或冲突,旧 Preview/Finalize 操作会立即停用;用户可以重新检查,或返回当前 Worktree 重新验证并生成验收稿。`project_acceptance_busy` 会显示不含路径的占用任务摘要;只有 Host 再次证明 checkout、owner Session 与 canonical cwd 一致后,界面才会导航到该 Session。Finalize 成功后,Review 界面继续保留 Delivery Proof,而不是只显示“成功”。
|
|
112
|
-
|
|
113
|
-
### 5. 在原对话开始下一轮
|
|
114
|
-
|
|
115
|
-
成功提交并 cleanup 后,本轮 Worktree cwd 会被删除,但 Session 和对话仍然保留。用户提出新的代码或文件修改时,插件可以基于最新 Local HEAD,安全重建该 Session 的 immutable cwd,并进入下一轮 iteration。
|
|
55
|
+
### 怎么选?
|
|
116
56
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
## 界面预览
|
|
120
|
-
|
|
121
|
-
以下截图按一次完整任务的实际顺序展示主要交付流程。
|
|
122
|
-
|
|
123
|
-
### 创建 Worktree Session
|
|
124
|
-
|
|
125
|
-
在新的 Local Session 中启用 Worktree 后,Harness 会先说明会话切换边界;只有用户确认后才会创建并切换到隔离 Session。
|
|
126
|
-
|
|
127
|
-

|
|
128
|
-
|
|
129
|
-
### 准备验收
|
|
130
|
-
|
|
131
|
-
Agent 完成实现和验证后生成 Ready for Review,用户可以查看变更摘要与验证结果,再决定是否同步到 Local。
|
|
132
|
-
|
|
133
|
-

|
|
134
|
-
|
|
135
|
-
### 在 Local Preview 中验收
|
|
136
|
-
|
|
137
|
-
同步后,本次任务增量会以可撤回的 Local Preview 等待验收;用户可以提交、撤回后继续修改,或放弃任务。
|
|
138
|
-
|
|
139
|
-

|
|
140
|
-
|
|
141
|
-
### 确认提交与环境保留
|
|
142
|
-
|
|
143
|
-
默认路径会确认 Commit Message 并在提交后清理 Worktree;需要继续排查时,也可以按所选时长暂时保留冻结的运行环境。
|
|
144
|
-
|
|
145
|
-
| 提交并清理 | 提交并保留运行环境 |
|
|
57
|
+
| 目标 | 操作 |
|
|
146
58
|
| --- | --- |
|
|
147
|
-
|
|
|
148
|
-
|
|
149
|
-
|
|
59
|
+
| 先在 Local 查看效果 | **预览修改** |
|
|
60
|
+
| Preview 没问题 | **确认并保存** |
|
|
61
|
+
| 任务很长,先固定进度 | **保存阶段并继续** |
|
|
62
|
+
| 还要让 Agent 改代码 | **继续修改**或**撤回本次预览** |
|
|
63
|
+
| 不需要 Preview | **跳过预览并保存** |
|
|
150
64
|
|
|
151
|
-
|
|
65
|
+
详细的操作、恢复场景和命令见[完整使用指南](docs/USAGE.md)。
|
|
152
66
|
|
|
153
|
-
|
|
67
|
+
## 快速开始
|
|
154
68
|
|
|
155
|
-
|
|
69
|
+
### 环境要求
|
|
156
70
|
|
|
157
|
-
|
|
71
|
+
- Node.js `^22.19.0 || >=24.0.0`
|
|
72
|
+
- DeepSeek Harness `0.1.1-rc.2` 包线
|
|
73
|
+
- Harness Web Client
|
|
74
|
+
- Git Workspace
|
|
158
75
|
|
|
159
|
-
|
|
160
|
-
| --- | --- | --- |
|
|
161
|
-
| Session Target | 会话执行目标 | 当前 Session 被固定到的实际工作位置与执行边界,可以是 Local 或 Isolated Worktree |
|
|
162
|
-
| Isolated Worktree / checkout | 隔离 Worktree / checkout | Agent 独立施工的 Git 工作副本,不直接修改用户的 Local checkout |
|
|
163
|
-
| Review / Ready for Review | 验收稿 / 等待验收 | Agent 完成当前阶段后提交的摘要、文件、验证结果和建议 Commit Message |
|
|
164
|
-
| Local Preview | Local 预览 | 将任务增量临时同步到 Local 查看,但暂不创建 Commit |
|
|
165
|
-
| Rollback / Finalize | 撤回预览 / 确认提交 | 分别表示安全移除本次 Preview,或将验收通过的任务增量提交到 Local |
|
|
166
|
-
| acceptance slot | 验收槽位 | 同一 Local 项目唯一的 Preview 写入名额,用于避免多个任务同时写入 Local |
|
|
167
|
-
| cleanup / retention | 清理 / 保留运行环境 | 交付后立即删除 Worktree,或按用户选择暂时保留冻结环境 |
|
|
168
|
-
| iteration | 任务轮次 | 同一 Session 中一次完整的创建、修改、验收与交付周期 |
|
|
169
|
-
| fail closed / recovery | 保守拒绝 / 恢复处理 | 无法证明安全时停止写入并保留证据,而不是自动猜测或覆盖 |
|
|
170
|
-
|
|
171
|
-
## 设计基础与 Harness 适配
|
|
172
|
-
|
|
173
|
-
本项目的 Worktree 生命周期与 Git 交付引擎基于一套经过实际使用验证的桌面端实现重新适配。重点不是复制原有界面,而是保留已经验证过的安全不变量:
|
|
174
|
-
|
|
175
|
-
- managed checkout registry 与 revision CAS;
|
|
176
|
-
- canonical path、Git common-dir 和 git-dir 身份校验;
|
|
177
|
-
- staged、unstaged、untracked、binary 和 deletion 状态的完整 fingerprint;
|
|
178
|
-
- receipt-first Local Preview、Rollback 与 Finalize;
|
|
179
|
-
- 只提交任务增量,同时保留 Local 其他修改;
|
|
180
|
-
- internal refs、journal recovery、retention、quarantine 和保守 cleanup;
|
|
181
|
-
- 无法证明安全时 fail closed,而不是猜测后继续写入。
|
|
182
|
-
|
|
183
|
-
DeepSeek Harness 与原桌面端宿主模型不同,因此本插件对产品和权限边界做了重新适配:
|
|
184
|
-
|
|
185
|
-
- Harness 的 Workspace 与 Session cwd 是权威身份,插件 registry 只作为辅助状态;
|
|
186
|
-
- Host 能力通过 strict Typert Remote 暴露,浏览器 UI 使用 Harness 的公开 Client Slots;
|
|
187
|
-
- Local source Session 与 Isolated target Session 始终分离;
|
|
188
|
-
- cleanup 后不修改 Harness 已持久化的 Session cwd,而是在下一轮严格校验后重建同一路径;
|
|
189
|
-
- 模型只负责创建、恢复编辑和准备验收,最终写入 Local、提交与清理由用户入口控制。
|
|
190
|
-
|
|
191
|
-
详细的身份、状态与恢复边界见 [Session Target 迁移说明](docs/PORTING.md)。
|
|
192
|
-
|
|
193
|
-
## 环境要求
|
|
194
|
-
|
|
195
|
-
- Node.js `^22.19.0 || >=24.0.0`;
|
|
196
|
-
- DeepSeek Harness `0.1.0-rc.8` 包线;
|
|
197
|
-
- Harness Web Client,用于完整的 Worktree 创建和验收界面;
|
|
198
|
-
- 当前 Workspace 是 Git 仓库。
|
|
199
|
-
|
|
200
|
-
## 安装
|
|
201
|
-
|
|
202
|
-
推荐直接安装 npm 包:
|
|
76
|
+
### 安装
|
|
203
77
|
|
|
204
78
|
```bash
|
|
205
79
|
dsh plugin --profile web add dsh-git-worktree
|
|
206
80
|
```
|
|
207
81
|
|
|
208
|
-
|
|
82
|
+
也可以安装指定版本:
|
|
209
83
|
|
|
210
84
|
```bash
|
|
211
|
-
dsh plugin --profile web add github:wloops/dsh-git-worktree#v0.
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
使用 pnpm 10 或更高版本时,Git 源安装可能需要先在 profile 的 `pnpm-workspace.yaml` 中允许该包执行 `prepare`:
|
|
215
|
-
|
|
216
|
-
```yaml
|
|
217
|
-
allowBuilds:
|
|
218
|
-
dsh-git-worktree: true
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
安装完成后正常启动 Harness,并打开一个 Git 仓库作为 Workspace。
|
|
222
|
-
|
|
223
|
-
## 模型工具与用户入口
|
|
224
|
-
|
|
225
|
-
### 模型工具
|
|
226
|
-
|
|
227
|
-
| 工具 | 作用 |
|
|
228
|
-
| --- | --- |
|
|
229
|
-
| `worktree_create` | 从 Local Session 创建 managed Worktree,并预留独立 target Session |
|
|
230
|
-
| `worktree_list` | 列出当前 Session 在原项目中可见的 Worktree |
|
|
231
|
-
| `worktree_resume_revision` | 使尚未同步的旧 Review 失效,在不触碰 Local 的情况下恢复当前 iteration |
|
|
232
|
-
| `worktree_begin_next_iteration` | 为已交付且 cleanup 完成的 Session 重建下一轮 Worktree cwd |
|
|
233
|
-
| `worktree_ready_for_review` | 保存交付报告并停止,等待用户验收 |
|
|
234
|
-
|
|
235
|
-
Finish、Discard、Remove 和 Local Preview 不属于模型工具。普通讨论不会让 Ready Review 失效;只有新的代码或文件修改才需要恢复 Working。
|
|
236
|
-
|
|
237
|
-
### 用户操作
|
|
238
|
-
|
|
239
|
-
Web UI 提供日常所需的创建、Preview、撤回、提交、保留、继续修改和放弃入口。Session Header 的 `Local / Worktree · 状态` 胶囊可直接打开当前目标控制面板与“关联 Worktrees”管理器;source 或任一关联 target Session 都能查看同源任务、打开对应 Session,并在自身权限范围内处理当前 Worktree,无需返回原项目。Manager 只承载状态、导航与 owner lifecycle 操作,不恢复检查或验收展开;自动 Preflight、stale/conflict 恢复、acceptance slot 导航和 Delivery Proof 继续由专用 Review 卡与 composer dock 承担。Host 控制的同类能力也可通过 `/worktree` 命令使用:
|
|
240
|
-
|
|
241
|
-
```text
|
|
242
|
-
/worktree status
|
|
243
|
-
/worktree list
|
|
244
|
-
/worktree continue
|
|
245
|
-
/worktree next
|
|
246
|
-
/worktree finalize [<reviewId> <revision>] [cleanup|retain_24h|retain_3d|retain_manual]
|
|
247
|
-
/worktree finish <commit message>
|
|
248
|
-
/worktree discard
|
|
249
|
-
/worktree remove <checkoutId>
|
|
85
|
+
dsh plugin --profile web add github:wloops/dsh-git-worktree#v0.7.1
|
|
250
86
|
```
|
|
251
87
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
## 安全模型
|
|
88
|
+
安装后打开 Git Workspace,在新建 Session 时启用 **Worktree**;已有 Local Session 也可以让模型调用 `worktree_create` 创建隔离 Session。
|
|
255
89
|
|
|
256
|
-
|
|
90
|
+
第一次使用建议先完成一次“创建 → 预览修改 → 确认并保存 → cleanup”的完整流程。
|
|
257
91
|
|
|
258
|
-
|
|
92
|
+
如果 Git 源安装被 pnpm build approval 阻止,或需要查看完整命令和排错步骤,请阅读[安装与使用指南](docs/USAGE.md#安装与排错)。
|
|
259
93
|
|
|
260
|
-
|
|
261
|
-
- active target 的 Workspace 必须 canonicalize 到 registry 记录的 managed root;
|
|
262
|
-
- 同一 canonical Local 项目同时最多存在一个 active Preview;等待中的 owner 仍可执行只读 Preflight,但 Preview/Finalize capability 会关闭;
|
|
263
|
-
- acceptance slot blocker 只返回 path-free checkout/Session/state 摘要;打开占用任务前必须重新 inspect 并复验 owner 与 canonical cwd;
|
|
264
|
-
- 自动 Preflight 不创建 plan、slot、Git ref 或 Local 写入;Preview 与 direct Finalize 前必须 bypass 缓存重新检查;
|
|
265
|
-
- Preview receipt 和 internal refs 在写入 Local 前持久化;
|
|
266
|
-
- Preview、Rollback、Finalize、Discard 和继续修改都绑定 checkout、revision、review 与 fingerprint;
|
|
267
|
-
- Rollback 只移除可以证明属于本次 Preview 的增量,并尽量保留验收期间新增的无关 Local 修改;
|
|
268
|
-
- branch switch、non-fast-forward、重叠冲突、Preview 已进入 Commit 或额外漂移会进入 recovery,而不是强行覆盖;
|
|
269
|
-
- cleanup 前验证 managed path、Git metadata 和最终 fingerprint;未知残余会保留或 quarantine;
|
|
270
|
-
- Finalize 的 durable Delivery Proof 绑定准确 Review,并保存 Commit、Local branch/HEAD、changed files 与 validation 摘要;动态历史证据不授予新的写权限;
|
|
271
|
-
- 历史不可逆 Apply 记录不会被自动 Finish 或 Discard。
|
|
94
|
+
## 界面预览
|
|
272
95
|
|
|
273
|
-
|
|
96
|
+
### 项目聚合与任务状态
|
|
274
97
|
|
|
275
|
-
|
|
98
|
+

|
|
276
99
|
|
|
277
|
-
|
|
278
|
-
- 关联 Worktree Manager 通过 Session Header 控制面板打开;当前仍不挂载常驻的 `conversation.view` 标签页;
|
|
279
|
-
- Harness 仍按 canonical cwd 把 Local 与各 Worktree Session 显示为独立 Workspace;插件管理器展示的是 `sourceSessionId` 关联,不改变 Harness 原生侧边栏归组;
|
|
280
|
-
- 在已验证的 Harness `0.1.0-rc.8` 包线中,Workflow `agent({ isolation })` 集成尚不可用;
|
|
281
|
-
- 子 Agent 继承父 Session cwd;只有父 Session 已经位于 Worktree Session 时,子 Agent 才处于相同隔离边界;
|
|
282
|
-
- dependency snapshot/restore(依赖快照与恢复)与完整 collaborator handoff UI(协作者交接界面)尚未实现;
|
|
283
|
-
- 暂不支持把已验收阶段固化为内部检查点后继续开发;
|
|
284
|
-
- 暂不支持 Isolated Session 申请受控事务直接维修真实 Local;
|
|
285
|
-
- cleanup 会删除本轮 Worktree cwd,但已交付 Session 可以在严格校验后重建路径并开始下一轮。
|
|
100
|
+
### 准备验收
|
|
286
101
|
|
|
287
|
-
|
|
102
|
+

|
|
288
103
|
|
|
289
|
-
|
|
104
|
+
完整操作步骤见[完整使用指南](docs/USAGE.md#完整交付示例)。
|
|
290
105
|
|
|
291
|
-
|
|
106
|
+
## 安全边界
|
|
292
107
|
|
|
293
|
-
|
|
294
|
-
- 继续稳定 Ready(待验收)、Preview(Local 预览)、Rollback(撤回预览)、Finalize(确认提交)、cleanup(清理)与 iteration(任务轮次)恢复流程;
|
|
295
|
-
- 改善错误分类、recovery(恢复处理)指引和真实 Harness 版本兼容性;
|
|
296
|
-
- 根据实际使用反馈,评估是否还需要在 Header Manager 之外增加常驻 Worktrees 标签页。
|
|
108
|
+
所有 Local 写入都由 Host 在执行前重新检查,浏览器缓存和模型输出不构成写入授权。插件会验证 Session、checkout、revision、Git 身份、Preview receipt 和 Local 状态;遇到分支切换、重叠冲突、未知残余或恢复证据不足时会 fail closed。
|
|
297
109
|
|
|
298
|
-
|
|
110
|
+
完整状态机、CAS 和恢复不变量见:
|
|
299
111
|
|
|
300
|
-
-
|
|
301
|
-
-
|
|
302
|
-
- 迁移 dependency snapshot/restore(依赖快照与恢复),减少不同 Worktree 间重复安装依赖的成本;
|
|
303
|
-
- 完成 collaborator / subagent handoff(协作者 / 子 Agent 交接)生命周期,让协作任务可以安全释放并交付;
|
|
304
|
-
- 继续丰富关联 Worktree 列表、状态检查、保留期与清理管理;
|
|
305
|
-
- 丰富 Review(验收)展示,在不改变 Host 权威边界的前提下提供更清晰的差异和验证信息。
|
|
112
|
+
- [Worktree Console 架构](docs/WORKTREE-CONSOLE-ARCHITECTURE.md)
|
|
113
|
+
- [Session Target 迁移说明](docs/PORTING.md)
|
|
306
114
|
|
|
307
|
-
|
|
115
|
+
## 当前边界
|
|
308
116
|
|
|
309
|
-
-
|
|
310
|
-
-
|
|
311
|
-
-
|
|
312
|
-
-
|
|
117
|
+
- 正常 Managed owner 会聚合到原 Local 项目;owner 缺失、额外 Session 或归属冲突时保留原 Workspace,避免静默隐藏数据。
|
|
118
|
+
- Managed owner 可以重命名和归档;Worktree-aware Fork 尚未实现,本版不显示普通 Fork 入口。
|
|
119
|
+
- 子 Agent 继承父 Session cwd,插件不额外创建 per-child Worktree。
|
|
120
|
+
- Checkpoint 不提供历史编辑、删除、重排或任意回退。
|
|
121
|
+
- Domi 的全局 Manager、Local Maintenance、依赖快照和完整 collaborator 生命周期不在本插件范围内。
|
|
313
122
|
|
|
314
123
|
## 本地开发
|
|
315
124
|
|
|
316
|
-
安装依赖并运行标准检查:
|
|
317
|
-
|
|
318
125
|
```bash
|
|
319
126
|
pnpm install
|
|
320
127
|
pnpm run typecheck
|
|
@@ -323,34 +130,19 @@ pnpm run build
|
|
|
323
130
|
pnpm run check:publish
|
|
324
131
|
```
|
|
325
132
|
|
|
326
|
-
|
|
133
|
+
端到端启动:
|
|
327
134
|
|
|
328
135
|
```bash
|
|
329
136
|
pnpm run dev:dsh
|
|
330
137
|
```
|
|
331
138
|
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
常用变体:
|
|
335
|
-
|
|
336
|
-
```bash
|
|
337
|
-
# 只安装并验证当前快照,不启动 Web
|
|
338
|
-
pnpm run dev:dsh:install
|
|
339
|
-
|
|
340
|
-
# 验证已安装的 profile
|
|
341
|
-
pnpm run dev:dsh:smoke
|
|
342
|
-
|
|
343
|
-
# 指定 Git 根目录、端口或 Harness 源码 checkout
|
|
344
|
-
pnpm run dev:dsh -- --repo G:/path/to/repo --port 4090 --profile web
|
|
345
|
-
|
|
346
|
-
# 移除开发安装和缓存的本地归档
|
|
347
|
-
pnpm run dev:dsh:remove
|
|
348
|
-
```
|
|
139
|
+
更多开发命令见[完整使用指南](docs/USAGE.md#本地开发),发布前检查见[发布清单](docs/RELEASE.md)。
|
|
349
140
|
|
|
350
141
|
## 文档
|
|
351
142
|
|
|
352
|
-
- [
|
|
143
|
+
- [完整使用指南](docs/USAGE.md)
|
|
353
144
|
- [Worktree Console 架构](docs/WORKTREE-CONSOLE-ARCHITECTURE.md)
|
|
145
|
+
- [Session Target 迁移说明](docs/PORTING.md)
|
|
354
146
|
- [UI 开发说明](docs/UI-DEVELOPMENT.md)
|
|
355
147
|
- [发布清单](docs/RELEASE.md)
|
|
356
148
|
- [变更记录](CHANGELOG.md)
|
package/cordis.patch.yml
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
#
|
|
2
|
-
#
|
|
3
|
-
#
|
|
1
|
+
# Replace the official ui-workspace loader row while this plugin is enabled.
|
|
2
|
+
# The Client bundle derives that exact version's official Browser, Picker,
|
|
3
|
+
# locale, stores, and directory-flow declarations, wrapping only the Browser.
|
|
4
|
+
|
|
5
|
+
- id: ui-workspace
|
|
6
|
+
name: '@deepseek-ai/dsh-client-ui-workspace'
|
|
7
|
+
disabled: true
|
|
4
8
|
|
|
5
9
|
- insert:
|
|
6
10
|
- id: dsh-git-worktree
|
package/lib/adapters/git.js
CHANGED
|
@@ -150,6 +150,14 @@ export function createDshGitPort(ctx, options) {
|
|
|
150
150
|
retainInternalArtifact: async (localRoot, checkoutId, artifactName, oid) => {
|
|
151
151
|
await runSessionGitChecked(localRoot, ['update-ref', internalArtifactRef(checkoutId, artifactName), oid]);
|
|
152
152
|
},
|
|
153
|
+
readInternalArtifact: async (localRoot, checkoutId, artifactName) => {
|
|
154
|
+
const result = await runSessionGit(localRoot, ['rev-parse', '--verify', '--quiet', internalArtifactRef(checkoutId, artifactName)]);
|
|
155
|
+
if (result.code === 0 && result.stdout)
|
|
156
|
+
return result.stdout;
|
|
157
|
+
if (result.code === 1)
|
|
158
|
+
return null;
|
|
159
|
+
throw new SessionCheckoutError('git_operation_failed', result.stderr || '无法读取内部 Git artifact');
|
|
160
|
+
},
|
|
153
161
|
releaseInternalArtifacts: async (localRoot, checkoutId, artifactPrefix) => {
|
|
154
162
|
const prefix = artifactPrefix
|
|
155
163
|
? internalArtifactRef(checkoutId, artifactPrefix)
|
package/lib/adapters/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/adapters/git.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAInC,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAElD,wFAAwF;AACxF,MAAM,sBAAsB,GAAG,MAAM,CAAA;AACrC,MAAM,0BAA0B,GAAG,CAAC,GAAG,MAAM,CAAA;AAC7C,kFAAkF;AAClF,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,CAAA;AAEjC,SAAS,YAAY,CAAC,IAAuB;IAC3C,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ;QACnD,CAAC,CAAC,0BAA0B;QAC5B,CAAC,CAAC,sBAAsB,CAAA;AAC5B,CAAC;AAaD;;;;GAIG;AACH,KAAK,UAAU,MAAM,CAAC,GAAY,EAAE,GAAW,EAAE,IAAc,EAAE,OAAuB;IACtF,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IAClC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;IACxC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAA;IAC7D,OAAO,CAAC,KAAK,EAAE,EAAE,CAAA;IACjB,IAAI,CAAC;QACH,MAAM,MAAM,GAAqB,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC;YACpD,IAAI,EAAE;gBACJ,KAAK;gBACL,YAAY;gBACZ,qBAAqB;gBACrB,IAAI,EAAE,sBAAsB;gBAC5B,IAAI,EAAE,sBAAsB;gBAC5B,IAAI,EAAE,kBAAkB,OAAO,CAAC,SAAS,EAAE;gBAC3C,GAAG,IAAI;aACR;YACD,GAAG;YACH,KAAK,EAAE;gBACL,KAAK,EAAE,QAAQ;gBACf,MAAM,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE;gBACvC,MAAM,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE;aACxC;YACD,OAAO,EAAE,sBAAsB;YAC/B,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,GAAG,EAAE;gBACH,kBAAkB,EAAE,GAAG;gBACvB,mBAAmB,EAAE,GAAG;gBACxB,MAAM,EAAE,GAAG;gBACX,IAAI,EAAE,GAAG;aACV;SACF,CAAC,CAAA;QACF,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAA;QACjC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAA;QAC9D,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAA;QAC9D,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC9F,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,OAAO,SAAS,EAAE,CAAA;QACnF,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAA;IACvF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,iFAAiF;QACjF,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;IACjG,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,OAAO,CAAC,CAAA;IACvB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,GAAY,EAAE,GAAW,EAAE,IAAc,EAAE,OAAuB;IAC7F,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IACpD,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,oBAAoB,CAC5B,sBAAsB,EACtB,iBAAiB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9E,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAA;AACtB,CAAC;AAED,SAAS,eAAe,CAAC,UAAkB;IACzC,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAC9E,OAAO,uCAAuC,GAAG,EAAE,CAAA;AACrD,CAAC;AAED,SAAS,kBAAkB,CAAC,YAAoB;IAC9C,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACxC,IACE,QAAQ,CAAC,MAAM,KAAK,CAAC;WAClB,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,8BAA8B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAC5E,CAAC;QACD,MAAM,IAAI,oBAAoB,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAAA;IACzE,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,UAAkB,EAAE,YAAoB;IACnE,kBAAkB,CAAC,YAAY,CAAC,CAAA;IAChC,OAAO,GAAG,eAAe,CAAC,UAAU,CAAC,IAAI,YAAY,EAAE,CAAA;AACzD,CAAC;AAED,SAAS,YAAY,CAAC,UAAkB;IACtC,OAAO,mBAAmB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;AACtD,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,gBAAgB,CAAC,GAAY,EAAE,OAAuB;IACpE,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IACtF,MAAM,oBAAoB,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IAEpG,OAAO;QACL,OAAO,EAAE,KAAK,EAAE,IAAI,EAAuC,EAAE;YAC3D,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAA;YAC5E,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAA;YACxD,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,wBAAwB,EAAE,kBAAkB,CAAC,CAAC,CAAA;YAC/G,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,wBAAwB,EAAE,oBAAoB,CAAC,CAAC,CAAA;YAC9G,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAA;YACvE,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,cAAc,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAA;YAC/E,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAA;YACjF,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YAC7F,OAAO;gBACL,IAAI,EAAE,MAAM,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC9C,SAAS,EAAE,MAAM,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBAC7C,MAAM,EAAE,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACvC,MAAM;gBACN,OAAO;gBACP,OAAO;aACR,CAAA;QACH,CAAC;QACD,0BAA0B,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACzC,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAA;YAC5E,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAA;YACxD,OAAO,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;QAC3C,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACrB,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,uBAAuB,CAAC,CAAC,CAAA;YAC5G,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAA;QACrC,CAAC;QACD,sBAAsB,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE;YAChE,MAAM,oBAAoB,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAA;QAC9F,CAAC;QACD,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE;YAC/C,8EAA8E;YAC9E,8EAA8E;YAC9E,MAAM,oBAAoB,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAA;QACvF,CAAC;QACD,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE;YACpD,MAAM,oBAAoB,CAAC,SAAS,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;QACtF,CAAC;QACD,gBAAgB,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE;YAChD,MAAM,oBAAoB,CAAC,SAAS,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QACvF,CAAC;QACD,sBAAsB,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,EAAE,EAAE;YACzE,MAAM,oBAAoB,CAAC,SAAS,EAAE,CAAC,YAAY,EAAE,mBAAmB,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;QAC3G,CAAC;QACD,wBAAwB,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE;YACxE,MAAM,MAAM,GAAG,cAAc;gBAC3B,CAAC,CAAC,mBAAmB,CAAC,UAAU,EAAE,cAAc,CAAC;gBACjD,CAAC,CAAC,GAAG,eAAe,CAAC,UAAU,CAAC,GAAG,CAAA;YACrC,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,SAAS,EAAE,CAAC,cAAc,EAAE,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAA;YACrG,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YAC3E,KAAK,MAAM,GAAG,IAAI,IAAI;gBAAE,MAAM,oBAAoB,CAAC,SAAS,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;QAC1F,CAAC;QACD,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE;YACrD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAA;YACrG,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAA;YAClC,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAA;YACnC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,0BAA0B,CAAC,CAAA;QAC9D,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/adapters/git.ts"],"names":[],"mappings":"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"}
|