dsh-git-worktree 0.1.2 → 0.3.0
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 +93 -0
- package/LICENSE +21 -21
- package/README.md +187 -43
- package/README.zh.md +187 -41
- package/cordis.patch.yml +7 -7
- package/lib/adapters/lookup.d.ts +4 -2
- package/lib/adapters/lookup.js +31 -3
- package/lib/adapters/lookup.js.map +1 -1
- package/lib/adapters/registry.js +41 -0
- package/lib/adapters/registry.js.map +1 -1
- package/lib/adapters/safe-file.js +34 -4
- package/lib/adapters/safe-file.js.map +1 -1
- package/lib/client/WorktreeCreateRow.d.ts +7 -0
- package/lib/client/WorktreeCreateRow.js +26 -0
- package/lib/client/WorktreeCreateRow.js.map +1 -0
- package/lib/client/WorktreeReviewRow.d.ts +11 -0
- package/lib/client/WorktreeReviewRow.js +67 -0
- package/lib/client/WorktreeReviewRow.js.map +1 -0
- package/lib/client/actions.d.ts +86 -0
- package/lib/client/actions.js +35 -0
- package/lib/client/actions.js.map +1 -0
- package/lib/client/console-remote/adapter.d.ts +3 -0
- package/lib/client/console-remote/adapter.js +61 -0
- package/lib/client/console-remote/adapter.js.map +1 -0
- package/lib/client/console-remote/index.d.ts +18 -0
- package/lib/client/console-remote/index.js +17 -0
- package/lib/client/console-remote/index.js.map +1 -0
- package/lib/client/index.d.ts +17 -0
- package/lib/client/index.js +44 -0
- package/lib/client/index.js.map +1 -0
- package/lib/client/model.d.ts +68 -0
- package/lib/client/model.js +127 -0
- package/lib/client/model.js.map +1 -0
- package/lib/client/pre-session/PreSessionWorktreeToggle.d.ts +16 -0
- package/lib/client/pre-session/PreSessionWorktreeToggle.js +128 -0
- package/lib/client/pre-session/PreSessionWorktreeToggle.js.map +1 -0
- package/lib/client/pre-session/controller.d.ts +42 -0
- package/lib/client/pre-session/controller.js +149 -0
- package/lib/client/pre-session/controller.js.map +1 -0
- package/lib/client/pre-session/index.d.ts +15 -0
- package/lib/client/pre-session/index.js +16 -0
- package/lib/client/pre-session/index.js.map +1 -0
- package/lib/client/review-console/ReviewActions.d.ts +15 -0
- package/lib/client/review-console/ReviewActions.js +234 -0
- package/lib/client/review-console/ReviewActions.js.map +1 -0
- package/lib/client/review-console/WorktreeReviewPanel.d.ts +20 -0
- package/lib/client/review-console/WorktreeReviewPanel.js +75 -0
- package/lib/client/review-console/WorktreeReviewPanel.js.map +1 -0
- package/lib/client/review-console/index.d.ts +8 -0
- package/lib/client/review-console/index.js +22 -0
- package/lib/client/review-console/index.js.map +1 -0
- package/lib/client/review-console/review-console.styles.d.ts +1 -0
- package/lib/client/review-console/review-console.styles.js +81 -0
- package/lib/client/review-console/review-console.styles.js.map +1 -0
- package/lib/client/review-console/status-events.d.ts +3 -0
- package/lib/client/review-console/status-events.js +6 -0
- package/lib/client/review-console/status-events.js.map +1 -0
- package/lib/client/styles.d.ts +1 -0
- package/lib/client/styles.js +78 -0
- package/lib/client/styles.js.map +1 -0
- package/lib/client/target-console/TargetStatusAction.d.ts +7 -0
- package/lib/client/target-console/TargetStatusAction.js +46 -0
- package/lib/client/target-console/TargetStatusAction.js.map +1 -0
- package/lib/client/target-console/WorktreeConsoleView.d.ts +9 -0
- package/lib/client/target-console/WorktreeConsoleView.js +362 -0
- package/lib/client/target-console/WorktreeConsoleView.js.map +1 -0
- package/lib/client/target-console/WorktreeReviewStatus.d.ts +9 -0
- package/lib/client/target-console/WorktreeReviewStatus.js +125 -0
- package/lib/client/target-console/WorktreeReviewStatus.js.map +1 -0
- package/lib/client/target-console/index.d.ts +14 -0
- package/lib/client/target-console/index.js +23 -0
- package/lib/client/target-console/index.js.map +1 -0
- package/lib/client/target-console/target-console.styles.d.ts +1 -0
- package/lib/client/target-console/target-console.styles.js +130 -0
- package/lib/client/target-console/target-console.styles.js.map +1 -0
- package/lib/client.js +6902 -0
- package/lib/commands.d.ts +2 -4
- package/lib/commands.js +69 -28
- package/lib/commands.js.map +1 -1
- package/lib/console-contract.d.ts +253 -0
- package/lib/console-contract.js +86 -0
- package/lib/console-contract.js.map +1 -0
- package/lib/console-host/control-plane.d.ts +31 -0
- package/lib/console-host/control-plane.js +502 -0
- package/lib/console-host/control-plane.js.map +1 -0
- package/lib/console-host/errors.d.ts +6 -0
- package/lib/console-host/errors.js +31 -0
- package/lib/console-host/errors.js.map +1 -0
- package/lib/console-host/projection.d.ts +12 -0
- package/lib/console-host/projection.js +136 -0
- package/lib/console-host/projection.js.map +1 -0
- package/lib/console-host/review-diff.d.ts +18 -0
- package/lib/console-host/review-diff.js +176 -0
- package/lib/console-host/review-diff.js.map +1 -0
- package/lib/console-host/service.d.ts +26 -0
- package/lib/console-host/service.js +143 -0
- package/lib/console-host/service.js.map +1 -0
- package/lib/console-remote/descriptors.d.ts +3 -0
- package/lib/console-remote/descriptors.js +105 -0
- package/lib/console-remote/descriptors.js.map +1 -0
- package/lib/console-remote/remote.d.ts +29 -0
- package/lib/console-remote/remote.js +4 -0
- package/lib/console-remote/remote.js.map +1 -0
- package/lib/console-remote/schemas.d.ts +29 -0
- package/lib/console-remote/schemas.js +145 -0
- package/lib/console-remote/schemas.js.map +1 -0
- package/lib/console-remote/typert.d.ts +3 -0
- package/lib/console-remote/typert.js +14 -0
- package/lib/console-remote/typert.js.map +1 -0
- package/lib/index.d.ts +26 -8
- package/lib/index.js +28 -10
- package/lib/index.js.map +1 -1
- package/lib/managed-worktree-path.d.ts +14 -13
- package/lib/managed-worktree-path.js +32 -22
- package/lib/managed-worktree-path.js.map +1 -1
- package/lib/ports.d.ts +39 -1
- package/lib/session-checkout-apply.d.ts +54 -1
- package/lib/session-checkout-apply.js +318 -28
- package/lib/session-checkout-apply.js.map +1 -1
- package/lib/session-checkout-module.js +1098 -36
- package/lib/session-checkout-module.js.map +1 -1
- package/lib/session-target-context.d.ts +6 -0
- package/lib/session-target-context.js +16 -0
- package/lib/session-target-context.js.map +1 -0
- package/lib/tools.d.ts +6 -6
- package/lib/tools.js +107 -218
- package/lib/tools.js.map +1 -1
- package/lib/types.d.ts +57 -11
- package/lib/types.js +6 -6
- package/lib/types.js.map +1 -1
- package/package.json +116 -69
- package/scripts/check-publish.mjs +193 -0
- package/scripts/clean-lib.mjs +7 -0
- package/scripts/dev-dsh-lib.mjs +509 -0
- package/scripts/dev-dsh.mjs +95 -0
- package/scripts/dsh-source-runner.mjs +14 -0
package/lib/tools.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Model-facing worktree tools.
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
2
|
+
* Model-facing worktree tools. Destructive delivery actions are deliberately
|
|
3
|
+
* absent: Finish/Discard/Remove are human commands surfaced by the client
|
|
4
|
+
* ToolView. The model can reserve a real target session, inspect its own
|
|
5
|
+
* scoped worktrees, invalidate an unsynced review before further file edits,
|
|
6
|
+
* safely begin a cleaned same-session iteration, and stop at Ready for Review.
|
|
7
7
|
* @module dsh-git-worktree/tools
|
|
8
8
|
*/
|
|
9
|
+
import { randomUUID } from 'node:crypto';
|
|
9
10
|
import { defineTool } from '@deepseek-ai/dsh-tools';
|
|
10
11
|
function sessionIdOf(agent) {
|
|
11
12
|
const session = agent?.session;
|
|
@@ -14,58 +15,58 @@ function sessionIdOf(agent) {
|
|
|
14
15
|
}
|
|
15
16
|
return session.id;
|
|
16
17
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
`dirty: ${target.dirty}`,
|
|
21
|
-
`current: ${target.current.branch ?? 'detached'} @ ${target.current.oid.slice(0, 7)}`,
|
|
22
|
-
];
|
|
23
|
-
if (target.delivery)
|
|
24
|
-
lines.push(`delivery: ${target.delivery.state}`);
|
|
25
|
-
return lines.join('\n');
|
|
18
|
+
/** Canonical logged payload consumed by both the model and the keyed ToolView. */
|
|
19
|
+
function renderJson(value) {
|
|
20
|
+
return [{ type: 'text', text: JSON.stringify(value) }];
|
|
26
21
|
}
|
|
27
|
-
/** Register the
|
|
22
|
+
/** Register the safe model-facing worktree tools. */
|
|
28
23
|
export function registerTools(ctx, module) {
|
|
29
24
|
ctx.tools.register(defineTool({
|
|
30
25
|
name: 'worktree_create',
|
|
31
|
-
description: '
|
|
26
|
+
description: 'Reserve a unique managed Git worktree and a distinct owner Session ID. This does not change the current Session cwd. After the tool returns, stop modifying code in this Local Session and let the user open the isolated Session from the Worktree card.',
|
|
32
27
|
parameters: {},
|
|
33
28
|
output: {
|
|
34
29
|
schema: {
|
|
35
30
|
type: 'object',
|
|
36
31
|
additionalProperties: false,
|
|
37
32
|
properties: {
|
|
33
|
+
kind: { type: 'string', required: true },
|
|
38
34
|
checkoutId: { type: 'string', required: true },
|
|
35
|
+
targetSessionId: { type: 'string', required: true },
|
|
36
|
+
managedRoot: { type: 'string', required: true },
|
|
39
37
|
phase: { type: 'string', required: true },
|
|
40
|
-
dirty: { type: 'boolean', required: true },
|
|
41
|
-
currentBranch: { type: 'string' },
|
|
42
38
|
currentOid: { type: 'string', required: true },
|
|
39
|
+
sourceSessionId: { type: 'string', required: true },
|
|
43
40
|
},
|
|
44
41
|
},
|
|
45
|
-
render: (_args, value) =>
|
|
42
|
+
render: (_args, value) => renderJson(value),
|
|
46
43
|
},
|
|
47
44
|
async execute(_args, exec) {
|
|
48
|
-
const
|
|
49
|
-
const
|
|
45
|
+
const sourceSessionId = sessionIdOf(exec.agent);
|
|
46
|
+
const targetSessionId = randomUUID();
|
|
47
|
+
const launch = await module.createIsolatedTarget(sourceSessionId, targetSessionId);
|
|
50
48
|
return {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
49
|
+
kind: 'worktree_target_created',
|
|
50
|
+
checkoutId: launch.target.checkout.id,
|
|
51
|
+
targetSessionId,
|
|
52
|
+
managedRoot: launch.managedRoot,
|
|
53
|
+
phase: launch.target.checkout.phase,
|
|
54
|
+
currentOid: launch.target.current.oid,
|
|
55
|
+
sourceSessionId,
|
|
56
56
|
};
|
|
57
57
|
},
|
|
58
|
-
presentCall: () => ({ card: 'generic', title: 'Create
|
|
58
|
+
presentCall: () => ({ card: 'generic', title: 'Create isolated Session Target', kind: 'other', rawInput: {} }),
|
|
59
59
|
}));
|
|
60
60
|
ctx.tools.register(defineTool({
|
|
61
61
|
name: 'worktree_list',
|
|
62
|
-
description: 'List
|
|
62
|
+
description: 'List managed worktrees visible to the current Session. Results are scoped to the original project and to worktrees this Session owns or created.',
|
|
63
63
|
parameters: {},
|
|
64
64
|
output: {
|
|
65
65
|
schema: {
|
|
66
66
|
type: 'object',
|
|
67
67
|
additionalProperties: false,
|
|
68
68
|
properties: {
|
|
69
|
+
kind: { type: 'string', required: true },
|
|
69
70
|
worktrees: {
|
|
70
71
|
type: 'array',
|
|
71
72
|
required: true,
|
|
@@ -75,6 +76,7 @@ export function registerTools(ctx, module) {
|
|
|
75
76
|
properties: {
|
|
76
77
|
checkoutId: { type: 'string', required: true },
|
|
77
78
|
projectName: { type: 'string', required: true },
|
|
79
|
+
ownerSessionId: { type: 'string', required: true },
|
|
78
80
|
iteration: { type: 'number', required: true },
|
|
79
81
|
state: { type: 'string', required: true },
|
|
80
82
|
phase: { type: 'string', required: true },
|
|
@@ -85,19 +87,17 @@ export function registerTools(ctx, module) {
|
|
|
85
87
|
},
|
|
86
88
|
},
|
|
87
89
|
},
|
|
88
|
-
render: (_args, value) =>
|
|
89
|
-
type: 'text',
|
|
90
|
-
text: value.worktrees.length === 0
|
|
91
|
-
? 'No managed worktrees.'
|
|
92
|
-
: value.worktrees.map((entry) => (`${entry.checkoutId} ${entry.projectName} i${entry.iteration} ${entry.state}/${entry.phase} dirty=${entry.dirty}${entry.commitOid ? ` commit ${entry.commitOid.slice(0, 7)}` : ''}`)).join('\n'),
|
|
93
|
-
}],
|
|
90
|
+
render: (_args, value) => renderJson(value),
|
|
94
91
|
},
|
|
95
92
|
async execute(_args, exec) {
|
|
96
|
-
const
|
|
93
|
+
const sessionId = sessionIdOf(exec.agent);
|
|
94
|
+
const summaries = await module.listManagedWorktreesForSession(sessionId);
|
|
97
95
|
return {
|
|
96
|
+
kind: 'worktree_list',
|
|
98
97
|
worktrees: summaries.map((summary) => ({
|
|
99
98
|
checkoutId: summary.checkoutId,
|
|
100
99
|
projectName: summary.project.name,
|
|
100
|
+
ownerSessionId: summary.ownerSessionId,
|
|
101
101
|
iteration: summary.iteration,
|
|
102
102
|
state: summary.state,
|
|
103
103
|
phase: summary.phase,
|
|
@@ -109,50 +109,85 @@ export function registerTools(ctx, module) {
|
|
|
109
109
|
presentCall: () => ({ card: 'generic', title: 'List managed worktrees', kind: 'other', rawInput: {} }),
|
|
110
110
|
}));
|
|
111
111
|
ctx.tools.register(defineTool({
|
|
112
|
-
name: '
|
|
113
|
-
description: '
|
|
114
|
-
parameters: {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
112
|
+
name: 'worktree_resume_revision',
|
|
113
|
+
description: '当前 Isolated Session 处于尚未同步 Local 的 Ready for Review,且用户提出新的代码或文件修改时,必须先自动调用本工具使旧 Review 失效并恢复同一轮 Working,然后直接继续执行请求。纯讨论、问答或补充信息不要调用;不要要求用户点击恢复编辑,也不要先同步 Local。',
|
|
114
|
+
parameters: {},
|
|
115
|
+
output: {
|
|
116
|
+
schema: {
|
|
117
|
+
type: 'object',
|
|
118
|
+
additionalProperties: false,
|
|
119
|
+
properties: {
|
|
120
|
+
kind: { type: 'string', required: true },
|
|
121
|
+
checkoutId: { type: 'string', required: true },
|
|
122
|
+
iteration: { type: 'number', required: true },
|
|
123
|
+
revision: { type: 'number', required: true },
|
|
124
|
+
phase: { type: 'string', required: true },
|
|
125
|
+
sessionId: { type: 'string', required: true },
|
|
126
|
+
},
|
|
124
127
|
},
|
|
128
|
+
render: (_args, value) => renderJson(value),
|
|
125
129
|
},
|
|
130
|
+
async execute(_args, exec) {
|
|
131
|
+
const sessionId = sessionIdOf(exec.agent);
|
|
132
|
+
const current = await module.inspect(sessionId);
|
|
133
|
+
if (current.delivery?.state !== 'ready_for_review') {
|
|
134
|
+
throw new Error(`当前 Worktree 没有可恢复的未同步 Review: ${current.delivery?.state ?? 'unknown'}`);
|
|
135
|
+
}
|
|
136
|
+
const target = await module.resumeRevision(sessionId, current.revision, current.delivery.review.reviewId);
|
|
137
|
+
if (target.delivery?.state !== 'working') {
|
|
138
|
+
throw new Error(`Worktree 未恢复到 working 状态: ${target.delivery?.state ?? 'unknown'}`);
|
|
139
|
+
}
|
|
140
|
+
return {
|
|
141
|
+
kind: 'worktree_revision_resumed',
|
|
142
|
+
checkoutId: target.checkout.id,
|
|
143
|
+
iteration: target.delivery.iteration,
|
|
144
|
+
revision: target.revision,
|
|
145
|
+
phase: target.checkout.phase,
|
|
146
|
+
sessionId,
|
|
147
|
+
};
|
|
148
|
+
},
|
|
149
|
+
presentCall: () => ({ card: 'generic', title: 'Resume Worktree revision', kind: 'other', rawInput: {} }),
|
|
150
|
+
}));
|
|
151
|
+
ctx.tools.register(defineTool({
|
|
152
|
+
name: 'worktree_begin_next_iteration',
|
|
153
|
+
description: '当当前 Isolated Session 已交付并完成 cleanup,而用户在同一对话中提出新的代码或文件修改时,先调用本工具安全重建同一个 immutable cwd 并进入下一轮,然后继续执行用户请求。不要改用 worktree_create;retained 或 cleanup_pending 状态不能调用。',
|
|
154
|
+
parameters: {},
|
|
126
155
|
output: {
|
|
127
156
|
schema: {
|
|
128
157
|
type: 'object',
|
|
129
158
|
additionalProperties: false,
|
|
130
159
|
properties: {
|
|
160
|
+
kind: { type: 'string', required: true },
|
|
131
161
|
checkoutId: { type: 'string', required: true },
|
|
132
|
-
|
|
162
|
+
iteration: { type: 'number', required: true },
|
|
163
|
+
phase: { type: 'string', required: true },
|
|
164
|
+
currentOid: { type: 'string', required: true },
|
|
165
|
+
sessionId: { type: 'string', required: true },
|
|
133
166
|
},
|
|
134
167
|
},
|
|
135
|
-
render: (_args, value) =>
|
|
168
|
+
render: (_args, value) => renderJson(value),
|
|
136
169
|
},
|
|
137
|
-
async execute(
|
|
138
|
-
const
|
|
139
|
-
const
|
|
140
|
-
|
|
141
|
-
|
|
170
|
+
async execute(_args, exec) {
|
|
171
|
+
const sessionId = sessionIdOf(exec.agent);
|
|
172
|
+
const current = await module.inspect(sessionId);
|
|
173
|
+
const target = await module.beginNextIteration(sessionId, current.revision);
|
|
174
|
+
if (target.delivery?.state !== 'working') {
|
|
175
|
+
throw new Error(`下一轮 Worktree 未进入 working 状态: ${target.delivery?.state ?? 'unknown'}`);
|
|
142
176
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
177
|
+
return {
|
|
178
|
+
kind: 'worktree_next_iteration_started',
|
|
179
|
+
checkoutId: target.checkout.id,
|
|
180
|
+
iteration: target.delivery.iteration,
|
|
181
|
+
phase: target.checkout.phase,
|
|
182
|
+
currentOid: target.current.oid,
|
|
183
|
+
sessionId,
|
|
184
|
+
};
|
|
150
185
|
},
|
|
151
|
-
presentCall: (
|
|
186
|
+
presentCall: () => ({ card: 'generic', title: 'Start next Worktree iteration', kind: 'other', rawInput: {} }),
|
|
152
187
|
}));
|
|
153
188
|
ctx.tools.register(defineTool({
|
|
154
189
|
name: 'worktree_ready_for_review',
|
|
155
|
-
description: '
|
|
190
|
+
description: 'Isolated Session 的最后一个模型动作:把完整交付报告、验证证据和建议 Commit Message 仅写入本工具参数,然后立即停止。不要在调用前后用普通回复重复完整报告;最多用一句话提示用户通过底部验收条处理。用户会显式决定是否提交或放弃,模型不得自动提交或清理。',
|
|
156
191
|
parameters: {
|
|
157
192
|
summary: {
|
|
158
193
|
type: 'string',
|
|
@@ -188,7 +223,7 @@ export function registerTools(ctx, module) {
|
|
|
188
223
|
suggestedCommitMessage: {
|
|
189
224
|
type: 'string',
|
|
190
225
|
required: true,
|
|
191
|
-
description: 'Suggested commit message for the
|
|
226
|
+
description: 'Suggested commit message for the human acceptance action.',
|
|
192
227
|
},
|
|
193
228
|
},
|
|
194
229
|
output: {
|
|
@@ -196,12 +231,15 @@ export function registerTools(ctx, module) {
|
|
|
196
231
|
type: 'object',
|
|
197
232
|
additionalProperties: false,
|
|
198
233
|
properties: {
|
|
234
|
+
kind: { type: 'string', required: true },
|
|
199
235
|
state: { type: 'string', required: true },
|
|
200
236
|
reviewId: { type: 'string', required: true },
|
|
237
|
+
revision: { type: 'number', required: true },
|
|
238
|
+
iteration: { type: 'number', required: true },
|
|
201
239
|
changedFiles: { type: 'array', required: true, items: { type: 'string' } },
|
|
202
240
|
},
|
|
203
241
|
},
|
|
204
|
-
render: (_args, value) =>
|
|
242
|
+
render: (_args, value) => renderJson(value),
|
|
205
243
|
},
|
|
206
244
|
async execute(args, exec) {
|
|
207
245
|
const sessionId = sessionIdOf(exec.agent);
|
|
@@ -221,164 +259,15 @@ export function registerTools(ctx, module) {
|
|
|
221
259
|
throw new Error(`worktree 未进入可验收状态: ${target.delivery?.state ?? 'unknown'}`);
|
|
222
260
|
}
|
|
223
261
|
return {
|
|
262
|
+
kind: 'worktree_ready_for_review',
|
|
224
263
|
state: target.delivery.state,
|
|
225
264
|
reviewId: target.delivery.review.reviewId,
|
|
265
|
+
revision: target.revision,
|
|
266
|
+
iteration: target.delivery.review.iteration,
|
|
226
267
|
changedFiles: target.delivery.review.changedFiles,
|
|
227
268
|
};
|
|
228
269
|
},
|
|
229
|
-
presentCall: () => ({ card: 'generic', title: '
|
|
230
|
-
}));
|
|
231
|
-
ctx.tools.register(defineTool({
|
|
232
|
-
name: 'worktree_apply',
|
|
233
|
-
description: 'Merge the current managed worktree\'s changes into the Local checkout: conflict-aware, fingerprint-CAS, and Local untouched until the plan is verified. On conflict the result carries conflictingFiles and localHeadOid — sync the worktree to Local HEAD, resolve, and retry. After a successful apply the worktree stays ready_for_review; use worktree_finish to commit or worktree_discard to abandon.',
|
|
234
|
-
parameters: {},
|
|
235
|
-
output: {
|
|
236
|
-
schema: {
|
|
237
|
-
type: 'object',
|
|
238
|
-
additionalProperties: false,
|
|
239
|
-
properties: {
|
|
240
|
-
status: { type: 'string', required: true, enum: ['applied', 'conflict', 'error'] },
|
|
241
|
-
changedFiles: { type: 'array', items: { type: 'string' } },
|
|
242
|
-
conflictingFiles: { type: 'array', items: { type: 'string' } },
|
|
243
|
-
localHeadOid: { type: 'string' },
|
|
244
|
-
message: { type: 'string' },
|
|
245
|
-
},
|
|
246
|
-
},
|
|
247
|
-
render: (_args, value) => {
|
|
248
|
-
if (value.status === 'applied') {
|
|
249
|
-
return [{ type: 'text', text: `Applied ${value.changedFiles?.length ?? 0} file(s) to Local.` }];
|
|
250
|
-
}
|
|
251
|
-
if (value.status === 'conflict') {
|
|
252
|
-
return [{ type: 'text', text: `Conflict in ${value.conflictingFiles?.join(', ')} — sync worktree to Local HEAD ${value.localHeadOid?.slice(0, 7)} and resolve.` }];
|
|
253
|
-
}
|
|
254
|
-
return [{ type: 'text', text: value.message ?? 'Apply failed.' }];
|
|
255
|
-
},
|
|
256
|
-
},
|
|
257
|
-
async execute(_args, exec) {
|
|
258
|
-
const sessionId = sessionIdOf(exec.agent);
|
|
259
|
-
const target = await module.inspect(sessionId);
|
|
260
|
-
const result = await module.operate({
|
|
261
|
-
action: 'apply',
|
|
262
|
-
sessionId,
|
|
263
|
-
expectedRevision: target.revision,
|
|
264
|
-
});
|
|
265
|
-
if (result.status === 'applied') {
|
|
266
|
-
return { status: 'applied', changedFiles: result.changedFiles };
|
|
267
|
-
}
|
|
268
|
-
if (result.status === 'conflict') {
|
|
269
|
-
return {
|
|
270
|
-
status: 'conflict',
|
|
271
|
-
conflictingFiles: result.conflictingFiles,
|
|
272
|
-
localHeadOid: result.localHeadOid,
|
|
273
|
-
};
|
|
274
|
-
}
|
|
275
|
-
if (result.status === 'error') {
|
|
276
|
-
return { status: 'error', message: `${result.code}: ${result.message}` };
|
|
277
|
-
}
|
|
278
|
-
return { status: 'error', message: 'Apply 未返回预期结果' };
|
|
279
|
-
},
|
|
280
|
-
presentCall: () => ({ card: 'generic', title: 'Apply worktree to Local', kind: 'other', rawInput: {} }),
|
|
281
|
-
}));
|
|
282
|
-
ctx.tools.register(defineTool({
|
|
283
|
-
name: 'worktree_finish',
|
|
284
|
-
description: 'Commit the current managed worktree\'s changes onto the Local branch as one task commit, preserving any unrelated staged/working state the user has in Local, then clean up the worktree. Refuses when Local is detached. Optional retention keeps the frozen worktree for a while instead of removing it.',
|
|
285
|
-
parameters: {
|
|
286
|
-
commitMessage: {
|
|
287
|
-
type: 'string',
|
|
288
|
-
required: true,
|
|
289
|
-
description: 'Commit message for the task delta.',
|
|
290
|
-
},
|
|
291
|
-
retention: {
|
|
292
|
-
type: 'string',
|
|
293
|
-
enum: ['cleanup', 'retain_24h', 'retain_3d', 'retain_manual'],
|
|
294
|
-
description: 'Default cleanup removes the worktree after the commit; retain_* keeps it.',
|
|
295
|
-
},
|
|
296
|
-
},
|
|
297
|
-
output: {
|
|
298
|
-
schema: {
|
|
299
|
-
type: 'object',
|
|
300
|
-
additionalProperties: false,
|
|
301
|
-
properties: {
|
|
302
|
-
status: { type: 'string', required: true, enum: ['finished', 'conflict', 'error'] },
|
|
303
|
-
commitOid: { type: 'string' },
|
|
304
|
-
changedFiles: { type: 'array', items: { type: 'string' } },
|
|
305
|
-
cleanup: { type: 'string' },
|
|
306
|
-
message: { type: 'string' },
|
|
307
|
-
},
|
|
308
|
-
},
|
|
309
|
-
render: (_args, value) => {
|
|
310
|
-
if (value.status === 'finished') {
|
|
311
|
-
return [{ type: 'text', text: `Finished: committed ${value.changedFiles?.length ?? 0} file(s) as ${value.commitOid?.slice(0, 7)} (cleanup: ${value.cleanup ?? 'unknown'}).` }];
|
|
312
|
-
}
|
|
313
|
-
return [{ type: 'text', text: value.message ?? 'Finish failed.' }];
|
|
314
|
-
},
|
|
315
|
-
},
|
|
316
|
-
async execute(args, exec) {
|
|
317
|
-
const sessionId = sessionIdOf(exec.agent);
|
|
318
|
-
const target = await module.inspect(sessionId);
|
|
319
|
-
const result = await module.operate({
|
|
320
|
-
action: 'finish',
|
|
321
|
-
sessionId,
|
|
322
|
-
expectedRevision: target.revision,
|
|
323
|
-
commitMessage: args.commitMessage,
|
|
324
|
-
...(args.retention ? { retention: args.retention } : {}),
|
|
325
|
-
});
|
|
326
|
-
if (result.status === 'finished') {
|
|
327
|
-
return {
|
|
328
|
-
status: 'finished',
|
|
329
|
-
commitOid: result.commitOid ?? undefined,
|
|
330
|
-
changedFiles: result.changedFiles,
|
|
331
|
-
cleanup: result.cleanup,
|
|
332
|
-
};
|
|
333
|
-
}
|
|
334
|
-
if (result.status === 'conflict') {
|
|
335
|
-
return { status: 'conflict', message: `冲突:${result.conflictingFiles.join('、')} — 请先在 worktree 内同步 Local HEAD 并解决。` };
|
|
336
|
-
}
|
|
337
|
-
if (result.status === 'error') {
|
|
338
|
-
return { status: 'error', message: `${result.code}: ${result.message}` };
|
|
339
|
-
}
|
|
340
|
-
return { status: 'error', message: 'Finish 未返回预期结果' };
|
|
341
|
-
},
|
|
342
|
-
presentCall: () => ({ card: 'generic', title: 'Finish worktree (commit to Local)', kind: 'other', rawInput: {} }),
|
|
343
|
-
}));
|
|
344
|
-
ctx.tools.register(defineTool({
|
|
345
|
-
name: 'worktree_discard',
|
|
346
|
-
description: 'Discard the current managed worktree and all its uncommitted changes. Requires confirmDirty: true. The worktree the current session is working inside cannot be discarded; use worktree_remove from a Local session instead.',
|
|
347
|
-
parameters: {
|
|
348
|
-
confirmDirty: {
|
|
349
|
-
type: 'boolean',
|
|
350
|
-
required: true,
|
|
351
|
-
description: 'Confirm discarding uncommitted worktree changes.',
|
|
352
|
-
},
|
|
353
|
-
},
|
|
354
|
-
output: {
|
|
355
|
-
schema: {
|
|
356
|
-
type: 'object',
|
|
357
|
-
additionalProperties: false,
|
|
358
|
-
properties: {
|
|
359
|
-
status: { type: 'string', required: true, enum: ['discarded', 'error'] },
|
|
360
|
-
message: { type: 'string' },
|
|
361
|
-
},
|
|
362
|
-
},
|
|
363
|
-
render: (_args, value) => [{ type: 'text', text: value.status === 'discarded' ? 'Worktree discarded.' : (value.message ?? 'Discard failed.') }],
|
|
364
|
-
},
|
|
365
|
-
async execute(args, exec) {
|
|
366
|
-
const sessionId = sessionIdOf(exec.agent);
|
|
367
|
-
const target = await module.inspect(sessionId);
|
|
368
|
-
const result = await module.operate({
|
|
369
|
-
action: 'discard',
|
|
370
|
-
sessionId,
|
|
371
|
-
expectedRevision: target.revision,
|
|
372
|
-
confirmDirty: args.confirmDirty === true,
|
|
373
|
-
});
|
|
374
|
-
if (result.status === 'discarded')
|
|
375
|
-
return { status: 'discarded' };
|
|
376
|
-
if (result.status === 'error') {
|
|
377
|
-
return { status: 'error', message: `${result.code}: ${result.message}` };
|
|
378
|
-
}
|
|
379
|
-
return { status: 'error', message: 'Discard 未返回预期结果' };
|
|
380
|
-
},
|
|
381
|
-
presentCall: () => ({ card: 'generic', title: 'Discard worktree', kind: 'other', rawInput: {} }),
|
|
270
|
+
presentCall: () => ({ card: 'generic', title: 'Ready for Worktree review', kind: 'other', rawInput: {} }),
|
|
382
271
|
}));
|
|
383
272
|
}
|
|
384
273
|
//# sourceMappingURL=tools.js.map
|
package/lib/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
package/lib/types.d.ts
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Type surface for dsh-git-worktree, ported from Domi's session-checkout
|
|
3
|
-
* domain (`@proma/shared` types/session-target.ts)
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* (or retained/finalized), with journal-based crash recovery and fingerprint
|
|
8
|
-
* CAS throughout.
|
|
3
|
+
* domain (`@proma/shared` types/session-target.ts). The plugin keeps Domi's
|
|
4
|
+
* Local preview/rollback/finalize lifecycle while omitting collaborator and
|
|
5
|
+
* Electron-only surfaces. Harness transport and Session separation live above
|
|
6
|
+
* this host-agnostic state machine.
|
|
9
7
|
* @module dsh-git-worktree/types
|
|
10
8
|
*/
|
|
11
9
|
/** Stable session-target reference in the durable layer. Paths and branches are not checkout identity. */
|
|
@@ -58,6 +56,17 @@ export type WorktreeDeliveryView = {
|
|
|
58
56
|
} | {
|
|
59
57
|
state: 'ready_for_review';
|
|
60
58
|
review: WorktreeReviewView;
|
|
59
|
+
} | {
|
|
60
|
+
state: 'preview_active';
|
|
61
|
+
review: WorktreeReviewView;
|
|
62
|
+
previewedAt: number;
|
|
63
|
+
} | {
|
|
64
|
+
state: 'preview_detached';
|
|
65
|
+
review: WorktreeReviewView;
|
|
66
|
+
previewedAt: number;
|
|
67
|
+
detachedAt: number;
|
|
68
|
+
reason: 'stale_local' | 'preview_modified';
|
|
69
|
+
attemptedAction: 'rollback_preview' | 'finalize_preview' | 'discard';
|
|
61
70
|
} | {
|
|
62
71
|
state: 'finalized';
|
|
63
72
|
review: WorktreeReviewView;
|
|
@@ -141,6 +150,10 @@ export interface SessionTargetView {
|
|
|
141
150
|
revision: number;
|
|
142
151
|
/** Delivery state for isolated checkouts; Local targets do not carry it. */
|
|
143
152
|
delivery?: WorktreeDeliveryView;
|
|
153
|
+
/** Current project Local Preview slot state; does not expose another checkout identity. */
|
|
154
|
+
reviewSlot?: 'available' | 'waiting';
|
|
155
|
+
/** Owner Session holding the slot, used only for navigation/status. */
|
|
156
|
+
reviewSlotOwnerSessionId?: string;
|
|
144
157
|
}
|
|
145
158
|
export type SessionTargetBindChoice = {
|
|
146
159
|
kind: 'local';
|
|
@@ -158,6 +171,21 @@ export interface SessionCheckoutFinishOperation extends SessionCheckoutOperation
|
|
|
158
171
|
action: 'finish';
|
|
159
172
|
commitMessage: string;
|
|
160
173
|
retention?: WorktreeRetentionMode;
|
|
174
|
+
/** When present, Finish is bound to this persisted human-reviewed snapshot. */
|
|
175
|
+
expectedReviewId?: string;
|
|
176
|
+
}
|
|
177
|
+
export interface SessionCheckoutPreviewOperation extends SessionCheckoutOperationBase {
|
|
178
|
+
action: 'preview';
|
|
179
|
+
}
|
|
180
|
+
export interface SessionCheckoutRollbackPreviewOperation extends SessionCheckoutOperationBase {
|
|
181
|
+
action: 'rollback_preview';
|
|
182
|
+
/** Structured withdraw-and-continue flow returns to working instead of preserving the review. */
|
|
183
|
+
resumeRevision?: boolean;
|
|
184
|
+
}
|
|
185
|
+
export interface SessionCheckoutFinalizePreviewOperation extends SessionCheckoutOperationBase {
|
|
186
|
+
action: 'finalize_preview';
|
|
187
|
+
commitMessage: string;
|
|
188
|
+
retention?: WorktreeRetentionMode;
|
|
161
189
|
}
|
|
162
190
|
export interface SessionCheckoutRetryCleanupOperation extends SessionCheckoutOperationBase {
|
|
163
191
|
action: 'retry_cleanup';
|
|
@@ -165,16 +193,34 @@ export interface SessionCheckoutRetryCleanupOperation extends SessionCheckoutOpe
|
|
|
165
193
|
export interface SessionCheckoutDiscardOperation extends SessionCheckoutOperationBase {
|
|
166
194
|
action: 'discard';
|
|
167
195
|
confirmDirty: boolean;
|
|
196
|
+
rollbackPreview?: boolean;
|
|
168
197
|
}
|
|
169
198
|
export interface SessionCheckoutRecoverOperation extends SessionCheckoutOperationBase {
|
|
170
199
|
action: 'recover';
|
|
171
200
|
}
|
|
172
|
-
export type SessionCheckoutOperation = SessionCheckoutApplyOperation | SessionCheckoutFinishOperation | SessionCheckoutRetryCleanupOperation | SessionCheckoutDiscardOperation | SessionCheckoutRecoverOperation;
|
|
201
|
+
export type SessionCheckoutOperation = SessionCheckoutApplyOperation | SessionCheckoutFinishOperation | SessionCheckoutPreviewOperation | SessionCheckoutRollbackPreviewOperation | SessionCheckoutFinalizePreviewOperation | SessionCheckoutRetryCleanupOperation | SessionCheckoutDiscardOperation | SessionCheckoutRecoverOperation;
|
|
173
202
|
export interface SessionCheckoutAppliedResult {
|
|
174
203
|
status: 'applied';
|
|
175
204
|
target: SessionTargetView;
|
|
176
205
|
changedFiles: string[];
|
|
177
206
|
}
|
|
207
|
+
export interface SessionCheckoutPreviewedResult {
|
|
208
|
+
status: 'previewed';
|
|
209
|
+
target: SessionTargetView;
|
|
210
|
+
changedFiles: string[];
|
|
211
|
+
}
|
|
212
|
+
export interface SessionCheckoutPreviewRolledBackResult {
|
|
213
|
+
status: 'preview_rolled_back';
|
|
214
|
+
target: SessionTargetView;
|
|
215
|
+
changedFiles: string[];
|
|
216
|
+
}
|
|
217
|
+
export interface SessionCheckoutPreviewDetachedResult {
|
|
218
|
+
status: 'preview_detached';
|
|
219
|
+
target: SessionTargetView;
|
|
220
|
+
changedFiles: string[];
|
|
221
|
+
reason: 'stale_local' | 'preview_modified';
|
|
222
|
+
attemptedAction: 'rollback_preview' | 'finalize_preview' | 'discard';
|
|
223
|
+
}
|
|
178
224
|
export interface SessionCheckoutFinishedResult {
|
|
179
225
|
status: 'finished';
|
|
180
226
|
target: SessionTargetView;
|
|
@@ -187,7 +233,7 @@ export interface SessionCheckoutFinishedResult {
|
|
|
187
233
|
cleanupReason?: WorktreeCleanupReason;
|
|
188
234
|
}
|
|
189
235
|
export type ManagedWorktreeCleanupEligibility = 'safe' | 'retained' | 'blocked';
|
|
190
|
-
export type ManagedWorktreeCleanupBlockReason = 'working' | 'review_pending' | 'retention_active' | 'uncommitted_changes' | 'identity_mismatch' | 'cleanup_failed' | 'unknown';
|
|
236
|
+
export type ManagedWorktreeCleanupBlockReason = 'working' | 'review_pending' | 'preview_active' | 'retention_active' | 'uncommitted_changes' | 'identity_mismatch' | 'cleanup_failed' | 'unknown';
|
|
191
237
|
/** Read-only inspection conclusion without paths. Bulk mutations re-validate; this result is never authorization. */
|
|
192
238
|
export interface ManagedWorktreeCleanupView {
|
|
193
239
|
eligibility: ManagedWorktreeCleanupEligibility;
|
|
@@ -211,7 +257,7 @@ export interface BulkCleanupManagedWorktreesResult {
|
|
|
211
257
|
cleanup: ManagedWorktreeCleanupView;
|
|
212
258
|
}>;
|
|
213
259
|
}
|
|
214
|
-
export type ManagedWorktreeSummaryState = 'working' | 'ready_for_review' | 'retained' | 'cleanup_pending' | 'needs_attention' | 'delivered';
|
|
260
|
+
export type ManagedWorktreeSummaryState = 'working' | 'ready_for_review' | 'preview_active' | 'retained' | 'cleanup_pending' | 'needs_attention' | 'delivered';
|
|
215
261
|
/** Path-free projection for the management surface. */
|
|
216
262
|
export interface ManagedWorktreeSummaryView {
|
|
217
263
|
checkoutId: string;
|
|
@@ -265,8 +311,8 @@ export interface SessionCheckoutOperationErrorResult {
|
|
|
265
311
|
message: string;
|
|
266
312
|
target?: SessionTargetView;
|
|
267
313
|
}
|
|
268
|
-
export type SessionCheckoutOperationResult = SessionCheckoutAppliedResult | SessionCheckoutFinishedResult | SessionCheckoutConflictResult | SessionCheckoutDiscardedResult | SessionCheckoutRecoveredResult | SessionCheckoutOperationErrorResult;
|
|
269
|
-
export declare const SESSION_CHECKOUT_ERROR_CODES: readonly ["session_not_found", "project_not_found", "project_root_missing", "not_git_repository", "target_unselected", "target_already_bound", "project_mismatch", "checkout_missing", "checkout_mismatch", "recovery_required", "registry_corrupt", "git_operation_failed", "not_owner", "stale_target", "dirty_confirmation_required", "apply_conflict", "apply_failed", "invalid_input", "invalid_plan", "stale_local", "stale_isolated", "git_error", "commit_isolation_conflict", "checkout_limit_reached", "project_acceptance_busy", "operation_not_allowed", "recovery_unsafe"];
|
|
314
|
+
export type SessionCheckoutOperationResult = SessionCheckoutAppliedResult | SessionCheckoutPreviewedResult | SessionCheckoutPreviewRolledBackResult | SessionCheckoutPreviewDetachedResult | SessionCheckoutFinishedResult | SessionCheckoutConflictResult | SessionCheckoutDiscardedResult | SessionCheckoutRecoveredResult | SessionCheckoutOperationErrorResult;
|
|
315
|
+
export declare const SESSION_CHECKOUT_ERROR_CODES: readonly ["session_not_found", "project_not_found", "project_root_missing", "not_git_repository", "target_unselected", "target_already_bound", "project_mismatch", "checkout_missing", "checkout_mismatch", "recovery_required", "registry_corrupt", "git_operation_failed", "not_owner", "stale_target", "dirty_confirmation_required", "apply_conflict", "apply_failed", "invalid_input", "invalid_plan", "stale_local", "stale_isolated", "git_error", "commit_isolation_conflict", "checkout_limit_reached", "project_acceptance_busy", "operation_not_allowed", "preview_not_active", "preview_modified", "recovery_unsafe"];
|
|
270
316
|
export type SessionCheckoutErrorCode = typeof SESSION_CHECKOUT_ERROR_CODES[number];
|
|
271
317
|
export interface SessionCheckoutFailure {
|
|
272
318
|
code: SessionCheckoutErrorCode;
|