dsh-git-worktree 0.7.5 → 0.9.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.
Files changed (150) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/README.en.md +11 -5
  3. package/README.md +11 -5
  4. package/docs/i18n.md +63 -0
  5. package/lib/adapters/files.d.ts +0 -7
  6. package/lib/adapters/files.js +4 -3
  7. package/lib/adapters/files.js.map +1 -1
  8. package/lib/adapters/git.d.ts +0 -10
  9. package/lib/adapters/git.js +92 -18
  10. package/lib/adapters/git.js.map +1 -1
  11. package/lib/adapters/initial-commit.d.ts +16 -0
  12. package/lib/adapters/initial-commit.js +112 -0
  13. package/lib/adapters/initial-commit.js.map +1 -0
  14. package/lib/adapters/lookup.js +21 -0
  15. package/lib/adapters/lookup.js.map +1 -1
  16. package/lib/adapters/registry.d.ts +0 -7
  17. package/lib/adapters/registry.js +2 -1
  18. package/lib/adapters/registry.js.map +1 -1
  19. package/lib/adapters/safe-file.d.ts +0 -7
  20. package/lib/adapters/safe-file.js +5 -4
  21. package/lib/adapters/safe-file.js.map +1 -1
  22. package/lib/client/WorktreeCreateRow.js +5 -2
  23. package/lib/client/WorktreeCreateRow.js.map +1 -1
  24. package/lib/client/WorktreeReviewRow.d.ts +1 -1
  25. package/lib/client/WorktreeReviewRow.js +11 -9
  26. package/lib/client/WorktreeReviewRow.js.map +1 -1
  27. package/lib/client/actions.d.ts +4 -7
  28. package/lib/client/actions.js +17 -13
  29. package/lib/client/actions.js.map +1 -1
  30. package/lib/client/console-remote/adapter.d.ts +2 -1
  31. package/lib/client/console-remote/adapter.js +37 -32
  32. package/lib/client/console-remote/adapter.js.map +1 -1
  33. package/lib/client/console-remote/index.js +6 -2
  34. package/lib/client/console-remote/index.js.map +1 -1
  35. package/lib/client/i18n.d.ts +25 -0
  36. package/lib/client/i18n.js +43 -0
  37. package/lib/client/i18n.js.map +1 -0
  38. package/lib/client/index.d.ts +1 -1
  39. package/lib/client/index.js +17 -4
  40. package/lib/client/index.js.map +1 -1
  41. package/lib/client/model.d.ts +3 -2
  42. package/lib/client/model.js +8 -8
  43. package/lib/client/model.js.map +1 -1
  44. package/lib/client/pre-session/PreSessionWorktreeToggle.d.ts +2 -2
  45. package/lib/client/pre-session/PreSessionWorktreeToggle.js +95 -80
  46. package/lib/client/pre-session/PreSessionWorktreeToggle.js.map +1 -1
  47. package/lib/client/pre-session/controller.d.ts +3 -0
  48. package/lib/client/pre-session/controller.js +27 -13
  49. package/lib/client/pre-session/controller.js.map +1 -1
  50. package/lib/client/pre-session/harness-input.d.ts +13 -0
  51. package/lib/client/pre-session/harness-input.js +18 -0
  52. package/lib/client/pre-session/harness-input.js.map +1 -0
  53. package/lib/client/pre-session/index.d.ts +13 -2
  54. package/lib/client/pre-session/index.js +11 -2
  55. package/lib/client/pre-session/index.js.map +1 -1
  56. package/lib/client/review-console/DeliveryProof.js +15 -12
  57. package/lib/client/review-console/DeliveryProof.js.map +1 -1
  58. package/lib/client/review-console/PreflightStatus.js +15 -8
  59. package/lib/client/review-console/PreflightStatus.js.map +1 -1
  60. package/lib/client/review-console/ReviewActions.d.ts +4 -1
  61. package/lib/client/review-console/ReviewActions.js +139 -114
  62. package/lib/client/review-console/ReviewActions.js.map +1 -1
  63. package/lib/client/review-console/ReviewDetailsModal.d.ts +12 -0
  64. package/lib/client/review-console/ReviewDetailsModal.js +56 -0
  65. package/lib/client/review-console/ReviewDetailsModal.js.map +1 -0
  66. package/lib/client/review-console/ReviewIcon.d.ts +35 -0
  67. package/lib/client/review-console/ReviewIcon.js +14 -0
  68. package/lib/client/review-console/ReviewIcon.js.map +1 -0
  69. package/lib/client/review-console/WorktreeReviewPanel.d.ts +3 -7
  70. package/lib/client/review-console/WorktreeReviewPanel.js +20 -82
  71. package/lib/client/review-console/WorktreeReviewPanel.js.map +1 -1
  72. package/lib/client/review-console/recovery-continuation.d.ts +2 -1
  73. package/lib/client/review-console/recovery-continuation.js +12 -8
  74. package/lib/client/review-console/recovery-continuation.js.map +1 -1
  75. package/lib/client/review-console/review-console.styles.js +101 -23
  76. package/lib/client/review-console/review-console.styles.js.map +1 -1
  77. package/lib/client/styles.js +13 -10
  78. package/lib/client/styles.js.map +1 -1
  79. package/lib/client/target-console/TargetStatusAction.js +87 -65
  80. package/lib/client/target-console/TargetStatusAction.js.map +1 -1
  81. package/lib/client/target-console/WorktreeConsoleView.d.ts +2 -1
  82. package/lib/client/target-console/WorktreeConsoleView.js +42 -37
  83. package/lib/client/target-console/WorktreeConsoleView.js.map +1 -1
  84. package/lib/client/target-console/WorktreeManagerModal.js +3 -1
  85. package/lib/client/target-console/WorktreeManagerModal.js.map +1 -1
  86. package/lib/client/target-console/WorktreeReviewStatus.js +45 -88
  87. package/lib/client/target-console/WorktreeReviewStatus.js.map +1 -1
  88. package/lib/client/target-console/current-polling.d.ts +11 -0
  89. package/lib/client/target-console/current-polling.js +104 -0
  90. package/lib/client/target-console/current-polling.js.map +1 -0
  91. package/lib/client/target-console/target-console.styles.js +8 -0
  92. package/lib/client/target-console/target-console.styles.js.map +1 -1
  93. package/lib/client/workspace-sidebar/index.js +8 -3
  94. package/lib/client/workspace-sidebar/index.js.map +1 -1
  95. package/lib/client/workspace-sidebar/model.d.ts +5 -1
  96. package/lib/client/workspace-sidebar/model.js +97 -23
  97. package/lib/client/workspace-sidebar/model.js.map +1 -1
  98. package/lib/client.js +12228 -8928
  99. package/lib/commands.js +32 -35
  100. package/lib/commands.js.map +1 -1
  101. package/lib/console-contract.d.ts +20 -0
  102. package/lib/console-contract.js.map +1 -1
  103. package/lib/console-host/control-plane.d.ts +3 -1
  104. package/lib/console-host/control-plane.js +186 -95
  105. package/lib/console-host/control-plane.js.map +1 -1
  106. package/lib/console-host/errors.js +2 -1
  107. package/lib/console-host/errors.js.map +1 -1
  108. package/lib/console-host/projection.js +3 -1
  109. package/lib/console-host/projection.js.map +1 -1
  110. package/lib/console-host/review-diff.js +6 -5
  111. package/lib/console-host/review-diff.js.map +1 -1
  112. package/lib/console-host/service.d.ts +27 -23
  113. package/lib/console-host/service.js +66 -51
  114. package/lib/console-host/service.js.map +1 -1
  115. package/lib/console-remote/descriptors.js +4 -2
  116. package/lib/console-remote/descriptors.js.map +1 -1
  117. package/lib/console-remote/remote.d.ts +25 -22
  118. package/lib/console-remote/remote.js.map +1 -1
  119. package/lib/console-remote/schemas.d.ts +14 -2
  120. package/lib/console-remote/schemas.js +8 -0
  121. package/lib/console-remote/schemas.js.map +1 -1
  122. package/lib/i18n/client-messages.d.ts +1671 -0
  123. package/lib/i18n/client-messages.js +1468 -0
  124. package/lib/i18n/client-messages.js.map +1 -0
  125. package/lib/i18n/core.d.ts +12 -0
  126. package/lib/i18n/core.js +10 -0
  127. package/lib/i18n/core.js.map +1 -0
  128. package/lib/i18n/host-messages.d.ts +1495 -0
  129. package/lib/i18n/host-messages.js +1485 -0
  130. package/lib/i18n/host-messages.js.map +1 -0
  131. package/lib/i18n/host.d.ts +9 -0
  132. package/lib/i18n/host.js +34 -0
  133. package/lib/i18n/host.js.map +1 -0
  134. package/lib/i18n/transport-messages.d.ts +10 -0
  135. package/lib/i18n/transport-messages.js +11 -0
  136. package/lib/i18n/transport-messages.js.map +1 -0
  137. package/lib/ports.d.ts +15 -0
  138. package/lib/session-checkout-apply.js +93 -92
  139. package/lib/session-checkout-apply.js.map +1 -1
  140. package/lib/session-checkout-module.js +234 -229
  141. package/lib/session-checkout-module.js.map +1 -1
  142. package/lib/session-target-context.js +2 -1
  143. package/lib/session-target-context.js.map +1 -1
  144. package/lib/tools.d.ts +0 -8
  145. package/lib/tools.js +108 -96
  146. package/lib/tools.js.map +1 -1
  147. package/package.json +3 -1
  148. package/scripts/check-publish.mjs +1 -1
  149. package/scripts/dev-dsh-lib.mjs +1 -1
  150. package/scripts/workspace-sidebar-upstream.mjs +1 -1
@@ -1,5 +1,6 @@
1
1
  /** Dynamic replay-stable model context for the current Worktree Session Target. */
2
2
  import '@deepseek-ai/dsh-system-prompt';
3
+ import { languageForInvocation, withHostLanguage } from './i18n/host.js';
3
4
  /** Register a per-assembly snapshot without performing Git or filesystem I/O. */
4
5
  export function registerSessionTargetContext(ctx, module) {
5
6
  ctx.inject(['systemPrompt'], (scope) => {
@@ -8,7 +9,7 @@ export function registerSessionTargetContext(ctx, module) {
8
9
  order: 118,
9
10
  text: (context) => {
10
11
  const sessionId = context.agent?.session?.id;
11
- return typeof sessionId === 'string' ? module.runtimeContext(sessionId) : '';
12
+ return withHostLanguage(languageForInvocation(context.agent, scope), () => (typeof sessionId === 'string' ? module.runtimeContext(sessionId) : ''));
12
13
  },
13
14
  });
14
15
  });
@@ -1 +1 @@
1
- {"version":3,"file":"session-target-context.js","sourceRoot":"","sources":["../src/session-target-context.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAGnF,OAAO,gCAAgC,CAAA;AAOvC,iFAAiF;AACjF,MAAM,UAAU,4BAA4B,CAAC,GAAY,EAAE,MAA6B;IACtF,GAAG,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,KAAc,EAAE,EAAE;QAC9C,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC;YACzB,IAAI,EAAE,6BAA6B;YACnC,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;gBAChB,MAAM,SAAS,GAAI,OAAO,CAAC,KAAkC,EAAE,OAAO,EAAE,EAAE,CAAA;gBAC1E,OAAO,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YAC9E,CAAC;SACF,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"session-target-context.js","sourceRoot":"","sources":["../src/session-target-context.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAGnF,OAAO,gCAAgC,CAAA;AAEvC,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAMxE,iFAAiF;AACjF,MAAM,UAAU,4BAA4B,CAAC,GAAY,EAAE,MAA6B;IACtF,GAAG,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,KAAc,EAAE,EAAE;QAC9C,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC;YACzB,IAAI,EAAE,6BAA6B;YACnC,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;gBAChB,MAAM,SAAS,GAAI,OAAO,CAAC,KAAkC,EAAE,OAAO,EAAE,EAAE,CAAA;gBAC1E,OAAO,gBAAgB,CAAC,qBAAqB,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,CACzE,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CACtE,CAAC,CAAA;YACJ,CAAC;SACF,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC"}
package/lib/tools.d.ts CHANGED
@@ -1,11 +1,3 @@
1
- /**
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
- * @module dsh-git-worktree/tools
8
- */
9
1
  import type { Context } from '@deepseek-ai/cordis';
10
2
  import type { SessionCheckoutModule } from './index.js';
11
3
  /** Register the safe model-facing worktree tools. */
package/lib/tools.js CHANGED
@@ -1,3 +1,5 @@
1
+ import { hostMessage, withHostLanguage, languageForInvocation } from './i18n/host.js';
2
+ import { hostRegistrationMessage } from './i18n/host-messages.js';
1
3
  /**
2
4
  * Model-facing worktree tools. Destructive delivery actions are deliberately
3
5
  * absent: Finish/Discard/Remove are human commands surfaced by the client
@@ -11,7 +13,7 @@ import { defineTool } from '@deepseek-ai/dsh-tools';
11
13
  function sessionIdOf(agent) {
12
14
  const session = agent?.session;
13
15
  if (!session || typeof session.id !== 'string') {
14
- throw new Error('worktree 工具只能在 DSH Agent 会话中调用');
16
+ throw new Error(hostMessage('worktreeToolsCanOnlyBeCalledInADSH'));
15
17
  }
16
18
  return session.id;
17
19
  }
@@ -23,7 +25,7 @@ function renderJson(value) {
23
25
  export function registerTools(ctx, module) {
24
26
  ctx.tools.register(defineTool({
25
27
  name: 'worktree_create',
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.',
28
+ description: hostRegistrationMessage('reserveAUniqueManagedGitWorktreeAndADistinct'),
27
29
  parameters: {},
28
30
  output: {
29
31
  schema: {
@@ -42,24 +44,26 @@ export function registerTools(ctx, module) {
42
44
  render: (_args, value) => renderJson(value),
43
45
  },
44
46
  async execute(_args, exec) {
45
- const sourceSessionId = sessionIdOf(exec.agent);
46
- const targetSessionId = randomUUID();
47
- const launch = await module.createIsolatedTarget(sourceSessionId, targetSessionId);
48
- return {
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
- };
47
+ return withHostLanguage(languageForInvocation(exec.agent, ctx), async () => {
48
+ const sourceSessionId = sessionIdOf(exec.agent);
49
+ const targetSessionId = randomUUID();
50
+ const launch = await module.createIsolatedTarget(sourceSessionId, targetSessionId);
51
+ return {
52
+ kind: 'worktree_target_created',
53
+ checkoutId: launch.target.checkout.id,
54
+ targetSessionId,
55
+ managedRoot: launch.managedRoot,
56
+ phase: launch.target.checkout.phase,
57
+ currentOid: launch.target.current.oid,
58
+ sourceSessionId,
59
+ };
60
+ });
57
61
  },
58
- presentCall: () => ({ card: 'generic', title: 'Create isolated Session Target', kind: 'other', rawInput: {} }),
62
+ presentCall: () => ({ card: 'generic', title: hostRegistrationMessage('createIsolatedSessionTarget'), kind: 'other', rawInput: {} }),
59
63
  }));
60
64
  ctx.tools.register(defineTool({
61
65
  name: 'worktree_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.',
66
+ description: hostRegistrationMessage('listManagedWorktreesVisibleToTheCurrentSessionResults'),
63
67
  parameters: {},
64
68
  output: {
65
69
  schema: {
@@ -90,27 +94,29 @@ export function registerTools(ctx, module) {
90
94
  render: (_args, value) => renderJson(value),
91
95
  },
92
96
  async execute(_args, exec) {
93
- const sessionId = sessionIdOf(exec.agent);
94
- const summaries = await module.listManagedWorktreesForSession(sessionId);
95
- return {
96
- kind: 'worktree_list',
97
- worktrees: summaries.map((summary) => ({
98
- checkoutId: summary.checkoutId,
99
- projectName: summary.project.name,
100
- ownerSessionId: summary.ownerSessionId,
101
- iteration: summary.iteration,
102
- state: summary.state,
103
- phase: summary.phase,
104
- dirty: summary.dirty,
105
- commitOid: summary.commitOid ?? undefined,
106
- })),
107
- };
97
+ return withHostLanguage(languageForInvocation(exec.agent, ctx), async () => {
98
+ const sessionId = sessionIdOf(exec.agent);
99
+ const summaries = await module.listManagedWorktreesForSession(sessionId);
100
+ return {
101
+ kind: 'worktree_list',
102
+ worktrees: summaries.map((summary) => ({
103
+ checkoutId: summary.checkoutId,
104
+ projectName: summary.project.name,
105
+ ownerSessionId: summary.ownerSessionId,
106
+ iteration: summary.iteration,
107
+ state: summary.state,
108
+ phase: summary.phase,
109
+ dirty: summary.dirty,
110
+ commitOid: summary.commitOid ?? undefined,
111
+ })),
112
+ };
113
+ });
108
114
  },
109
- presentCall: () => ({ card: 'generic', title: 'List managed worktrees', kind: 'other', rawInput: {} }),
115
+ presentCall: () => ({ card: 'generic', title: hostRegistrationMessage('listManagedWorktrees'), kind: 'other', rawInput: {} }),
110
116
  }));
111
117
  ctx.tools.register(defineTool({
112
118
  name: 'worktree_resume_revision',
113
- description: '当前 Isolated Session 处于尚未同步 Local 的 Ready for Review,且用户提出新的代码或文件修改时,必须先自动调用本工具使旧 Review 失效并恢复同一轮 Working,然后直接继续执行请求。纯讨论、问答或补充信息不要调用;不要要求用户点击恢复编辑,也不要先同步 Local。',
119
+ description: hostRegistrationMessage('whenTheCurrentIsolatedSessionIsReadyForReview'),
114
120
  parameters: {},
115
121
  output: {
116
122
  schema: {
@@ -128,29 +134,31 @@ export function registerTools(ctx, module) {
128
134
  render: (_args, value) => renderJson(value),
129
135
  },
130
136
  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
- };
137
+ return withHostLanguage(languageForInvocation(exec.agent, ctx), async () => {
138
+ const sessionId = sessionIdOf(exec.agent);
139
+ const current = await module.inspect(sessionId);
140
+ if (current.delivery?.state !== 'ready_for_review') {
141
+ throw new Error(hostMessage('theCurrentWorktreeHasNoUnsyncedReviewToResume372', { p0: current.delivery?.state ?? 'unknown' }));
142
+ }
143
+ const target = await module.resumeRevision(sessionId, current.revision, current.delivery.review.reviewId);
144
+ if (target.delivery?.state !== 'working') {
145
+ throw new Error(hostMessage('worktreeDidNotReturnToWorkingState', { p0: target.delivery?.state ?? 'unknown' }));
146
+ }
147
+ return {
148
+ kind: 'worktree_revision_resumed',
149
+ checkoutId: target.checkout.id,
150
+ iteration: target.delivery.iteration,
151
+ revision: target.revision,
152
+ phase: target.checkout.phase,
153
+ sessionId,
154
+ };
155
+ });
148
156
  },
149
- presentCall: () => ({ card: 'generic', title: 'Resume Worktree revision', kind: 'other', rawInput: {} }),
157
+ presentCall: () => ({ card: 'generic', title: hostRegistrationMessage('resumeWorktreeRevision'), kind: 'other', rawInput: {} }),
150
158
  }));
151
159
  ctx.tools.register(defineTool({
152
160
  name: 'worktree_begin_next_iteration',
153
- description: '当当前 Isolated Session 已交付并完成 cleanup,而用户在同一对话中提出新的代码或文件修改时,先调用本工具安全重建同一个 immutable cwd 并进入下一轮,然后继续执行用户请求。不要改用 worktree_create;retained 或 cleanup_pending 状态不能调用。',
161
+ description: hostRegistrationMessage('whenTheCurrentIsolatedSessionHasBeenDeliveredAnd'),
154
162
  parameters: {},
155
163
  output: {
156
164
  schema: {
@@ -168,35 +176,37 @@ export function registerTools(ctx, module) {
168
176
  render: (_args, value) => renderJson(value),
169
177
  },
170
178
  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'}`);
176
- }
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
- };
179
+ return withHostLanguage(languageForInvocation(exec.agent, ctx), async () => {
180
+ const sessionId = sessionIdOf(exec.agent);
181
+ const current = await module.inspect(sessionId);
182
+ const target = await module.beginNextIteration(sessionId, current.revision);
183
+ if (target.delivery?.state !== 'working') {
184
+ throw new Error(hostMessage('theNextWorktreeIterationDidNotEnterWorkingState', { p0: target.delivery?.state ?? 'unknown' }));
185
+ }
186
+ return {
187
+ kind: 'worktree_next_iteration_started',
188
+ checkoutId: target.checkout.id,
189
+ iteration: target.delivery.iteration,
190
+ phase: target.checkout.phase,
191
+ currentOid: target.current.oid,
192
+ sessionId,
193
+ };
194
+ });
185
195
  },
186
- presentCall: () => ({ card: 'generic', title: 'Start next Worktree iteration', kind: 'other', rawInput: {} }),
196
+ presentCall: () => ({ card: 'generic', title: hostRegistrationMessage('startNextWorktreeIteration'), kind: 'other', rawInput: {} }),
187
197
  }));
188
198
  ctx.tools.register(defineTool({
189
199
  name: 'worktree_ready_for_review',
190
- description: '仅用于已经选择 Isolated Checkout 的 Worktree Session,普通 Local Checkout 任务必须用正常助手回复结束且不得调用本工具。它是 Isolated Session 的最后一个模型动作:把完整交付报告、验证证据和建议 Commit Message 仅写入本工具参数,然后立即停止。不要在调用前后用普通回复重复完整报告;最多用一句话提示用户通过底部验收条处理。用户会显式决定是否提交或放弃,模型不得自动提交或清理。',
200
+ description: hostRegistrationMessage('onlyForWorktreeSessionsThatHaveAlreadySelectedAn'),
191
201
  parameters: {
192
202
  summary: {
193
203
  type: 'string',
194
204
  required: true,
195
- description: 'One-line summary of the change (max 240 chars).',
205
+ description: hostRegistrationMessage('oneLineSummaryOfTheChangeMax240Chars'),
196
206
  },
197
207
  details: {
198
208
  type: 'string',
199
- description: 'Optional full Markdown details (max 12000 chars).',
209
+ description: hostRegistrationMessage('optionalFullMarkdownDetailsMax12000Chars'),
200
210
  },
201
211
  validationStatus: {
202
212
  type: 'string',
@@ -205,7 +215,7 @@ export function registerTools(ctx, module) {
205
215
  },
206
216
  validationSummary: {
207
217
  type: 'string',
208
- description: 'Optional one-line validation outcome.',
218
+ description: hostRegistrationMessage('optionalOneLineValidationOutcome'),
209
219
  },
210
220
  tests: {
211
221
  type: 'array',
@@ -223,7 +233,7 @@ export function registerTools(ctx, module) {
223
233
  suggestedCommitMessage: {
224
234
  type: 'string',
225
235
  required: true,
226
- description: 'Suggested commit message for the human acceptance action.',
236
+ description: hostRegistrationMessage('suggestedCommitMessageForTheHumanAcceptanceAction'),
227
237
  },
228
238
  },
229
239
  output: {
@@ -242,32 +252,34 @@ export function registerTools(ctx, module) {
242
252
  render: (_args, value) => renderJson(value),
243
253
  },
244
254
  async execute(args, exec) {
245
- const sessionId = sessionIdOf(exec.agent);
246
- const target = await module.markReadyForReview(sessionId, {
247
- summary: args.summary,
248
- detailsMarkdown: args.details,
249
- validationStatus: args.validationStatus,
250
- validationSummary: args.validationSummary,
251
- tests: (args.tests ?? []).map((test) => ({
252
- command: test.command,
253
- status: test.status,
254
- ...(test.summary ? { summary: test.summary } : {}),
255
- })),
256
- suggestedCommitMessage: args.suggestedCommitMessage,
255
+ return withHostLanguage(languageForInvocation(exec.agent, ctx), async () => {
256
+ const sessionId = sessionIdOf(exec.agent);
257
+ const target = await module.markReadyForReview(sessionId, {
258
+ summary: args.summary,
259
+ detailsMarkdown: args.details,
260
+ validationStatus: args.validationStatus,
261
+ validationSummary: args.validationSummary,
262
+ tests: (args.tests ?? []).map((test) => ({
263
+ command: test.command,
264
+ status: test.status,
265
+ ...(test.summary ? { summary: test.summary } : {}),
266
+ })),
267
+ suggestedCommitMessage: args.suggestedCommitMessage,
268
+ });
269
+ if (target.delivery?.state !== 'ready_for_review') {
270
+ throw new Error(hostMessage('worktreeDidNotEnterAReviewableState', { p0: target.delivery?.state ?? 'unknown' }));
271
+ }
272
+ return {
273
+ kind: 'worktree_ready_for_review',
274
+ state: target.delivery.state,
275
+ reviewId: target.delivery.review.reviewId,
276
+ revision: target.revision,
277
+ iteration: target.delivery.review.iteration,
278
+ changedFiles: target.delivery.review.changedFiles,
279
+ };
257
280
  });
258
- if (target.delivery?.state !== 'ready_for_review') {
259
- throw new Error(`worktree 未进入可验收状态: ${target.delivery?.state ?? 'unknown'}`);
260
- }
261
- return {
262
- kind: 'worktree_ready_for_review',
263
- state: target.delivery.state,
264
- reviewId: target.delivery.review.reviewId,
265
- revision: target.revision,
266
- iteration: target.delivery.review.iteration,
267
- changedFiles: target.delivery.review.changedFiles,
268
- };
269
281
  },
270
- presentCall: () => ({ card: 'generic', title: 'Ready for Worktree review', kind: 'other', rawInput: {} }),
282
+ presentCall: () => ({ card: 'generic', title: hostRegistrationMessage('readyForWorktreeReview'), kind: 'other', rawInput: {} }),
271
283
  }));
272
284
  }
273
285
  //# 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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-git-worktree",
3
- "version": "0.7.5",
3
+ "version": "0.9.0",
4
4
  "description": "Experimental Git worktree Session Targets for DeepSeek Harness with isolated sessions, review checkpoints, human-confirmed delivery, and safe recovery.",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",
@@ -33,6 +33,7 @@
33
33
  "lib",
34
34
  "scripts",
35
35
  "CHANGELOG.md",
36
+ "docs/i18n.md",
36
37
  "NOTICE",
37
38
  "cordis.patch.yml"
38
39
  ],
@@ -81,6 +82,7 @@
81
82
  },
82
83
  "dependencies": {
83
84
  "@deepseek-ai/schemastery": "3.18.2",
85
+ "lucide-react": "1.43.0",
84
86
  "zod": "4.4.3"
85
87
  },
86
88
  "peerDependencies": {
@@ -131,7 +131,7 @@ try {
131
131
  if (hostContribution?.package !== manifest.name || hostContribution.face !== 'host') fail('./typert has invalid package/face identity')
132
132
  if (remoteContribution?.package !== manifest.name) fail('./remote has invalid package identity')
133
133
  if (hostContribution.invocations !== remoteContribution.descriptors) fail('./typert and ./remote must share one descriptor array instance')
134
- const expectedRemoteMethods = ['sidebarTopology', 'current', 'list', 'create', 'inspect', 'reviewDiff', 'preflight', 'previewRecoveryPreflight', 'preparePreviewRecoveryAnalysis', 'createPreviewRecoveryHandoff', 'preview', 'checkpoint', 'resumeRevision', 'prepareReviewRegeneration', 'rollbackPreview', 'discard', 'finalize', 'finalizePreview', 'setRetention', 'retryCleanup', 'beginNextIteration']
134
+ const expectedRemoteMethods = ['sidebarTopology', 'current', 'list', 'preflightCreate', 'createWithInitialCommit', 'create', 'inspect', 'reviewDiff', 'preflight', 'previewRecoveryPreflight', 'preparePreviewRecoveryAnalysis', 'createPreviewRecoveryHandoff', 'preview', 'checkpoint', 'resumeRevision', 'prepareReviewRegeneration', 'rollbackPreview', 'discard', 'finalize', 'finalizePreview', 'setRetention', 'retryCleanup', 'beginNextIteration']
135
135
  if (JSON.stringify(hostContribution.invocations.map(value => value.method)) !== JSON.stringify(expectedRemoteMethods)) {
136
136
  fail(`manual Remote methods differ from the required surface: ${hostContribution.invocations.map(value => value.method).join(', ')}`)
137
137
  }
@@ -462,7 +462,7 @@ export function installLocalSnapshot(options) {
462
462
  scripts: {},
463
463
  }
464
464
  writeFileSync(join(stagingRoot, 'package.json'), `${JSON.stringify(stagedManifest, null, 2)}\n`)
465
- for (const entry of ['lib', 'cordis.patch.yml', 'README.md', 'README.en.md', 'LICENSE', 'NOTICE']) {
465
+ for (const entry of ['lib', 'cordis.patch.yml', 'README.md', 'README.en.md', 'docs/i18n.md', 'LICENSE', 'NOTICE']) {
466
466
  const source = join(options.projectRoot, entry)
467
467
  if (existsSync(source)) copyPackageEntry(source, join(stagingRoot, entry))
468
468
  }
@@ -46,7 +46,7 @@ export function decorateOfficialWorkspaceClient(source) {
46
46
  'Chinese Worktree locale')
47
47
  derived = replaceExactlyOnce(derived,
48
48
  '\t\tconst en = {',
49
- `\t\tconst en = {\n\t\t\t"dshGitWorktree.managed": "Managed Worktree",\n\t\t\t"dshGitWorktree.state.working": "Working",\n\t\t\t"dshGitWorktree.state.ready_for_review": "Ready",\n\t\t\t"dshGitWorktree.state.preview_active": "Preview",\n\t\t\t"dshGitWorktree.state.preview_detached": "Resume preview",\n\t\t\t"dshGitWorktree.state.recovery_required": "Recovery required",\n\t\t\t"dshGitWorktree.state.finalized": "Done",\n\t\t\t"dshGitWorktree.state.discarded": "Discarded",`,
49
+ `\t\tconst en = {\n\t\t\t"dshGitWorktree.managed": "Managed Worktree",\n\t\t\t"dshGitWorktree.state.working": "In progress",\n\t\t\t"dshGitWorktree.state.ready_for_review": "Ready for review",\n\t\t\t"dshGitWorktree.state.preview_active": "Preview",\n\t\t\t"dshGitWorktree.state.preview_detached": "Resume preview",\n\t\t\t"dshGitWorktree.state.recovery_required": "Recovery required",\n\t\t\t"dshGitWorktree.state.finalized": "Done",\n\t\t\t"dshGitWorktree.state.discarded": "Discarded",`,
50
50
  'English Worktree locale')
51
51
  derived = replaceExactlyOnce(derived,
52
52
  '\t\t\t\tgroups.push(buildGroup(workspace.workspaceId, workspace.workspaceId, workspace.path, Date.parse(workspace.createdAt), workspace.title, members, "account"));',