@cerbur/clutch-dsh-worktree 0.1.6 → 0.1.8

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 (178) hide show
  1. package/README.md +135 -23
  2. package/README.zh.md +107 -13
  3. package/cordis.patch.yml +21 -0
  4. package/lib/client/WorktreeContext.d.ts.map +1 -1
  5. package/lib/client/WorktreeContext.js +2 -2
  6. package/lib/client/WorktreeContext.js.map +1 -1
  7. package/lib/client/WorktreeSurface.d.ts +2 -2
  8. package/lib/client/WorktreeSurface.d.ts.map +1 -1
  9. package/lib/client/WorktreeSurface.js +291 -70
  10. package/lib/client/WorktreeSurface.js.map +1 -1
  11. package/lib/client/entry.d.ts.map +1 -1
  12. package/lib/client/entry.js +84 -2
  13. package/lib/client/entry.js.map +1 -1
  14. package/lib/client/index.d.ts +3 -0
  15. package/lib/client/index.d.ts.map +1 -1
  16. package/lib/client/index.js +2 -0
  17. package/lib/client/index.js.map +1 -1
  18. package/lib/client/locales.d.ts +70 -0
  19. package/lib/client/locales.d.ts.map +1 -1
  20. package/lib/client/locales.js +70 -0
  21. package/lib/client/locales.js.map +1 -1
  22. package/lib/client/session-view.d.ts +34 -0
  23. package/lib/client/session-view.d.ts.map +1 -1
  24. package/lib/client/session-view.js +119 -1
  25. package/lib/client/session-view.js.map +1 -1
  26. package/lib/client/worktree-connection.d.ts +4 -2
  27. package/lib/client/worktree-connection.d.ts.map +1 -1
  28. package/lib/client/worktree-connection.js +4 -0
  29. package/lib/client/worktree-connection.js.map +1 -1
  30. package/lib/client/worktree-context.js +1 -1
  31. package/lib/client/worktree-context.js.map +1 -1
  32. package/lib/client/worktree-error-copy.d.ts +2 -0
  33. package/lib/client/worktree-error-copy.d.ts.map +1 -1
  34. package/lib/client/worktree-error-copy.js +24 -0
  35. package/lib/client/worktree-error-copy.js.map +1 -1
  36. package/lib/client/worktree-permission-icon.d.ts +7 -0
  37. package/lib/client/worktree-permission-icon.d.ts.map +1 -0
  38. package/lib/client/worktree-permission-icon.js +119 -0
  39. package/lib/client/worktree-permission-icon.js.map +1 -0
  40. package/lib/client/worktree-permission.d.ts +21 -0
  41. package/lib/client/worktree-permission.d.ts.map +1 -0
  42. package/lib/client/worktree-permission.js +70 -0
  43. package/lib/client/worktree-permission.js.map +1 -0
  44. package/lib/client/worktree-session-fork.d.ts +65 -0
  45. package/lib/client/worktree-session-fork.d.ts.map +1 -0
  46. package/lib/client/worktree-session-fork.js +174 -0
  47. package/lib/client/worktree-session-fork.js.map +1 -0
  48. package/lib/client/worktree-session-order.d.ts +36 -0
  49. package/lib/client/worktree-session-order.d.ts.map +1 -0
  50. package/lib/client/worktree-session-order.js +215 -0
  51. package/lib/client/worktree-session-order.js.map +1 -0
  52. package/lib/client/worktree-session.d.ts +34 -1
  53. package/lib/client/worktree-session.d.ts.map +1 -1
  54. package/lib/client/worktree-session.js +101 -3
  55. package/lib/client/worktree-session.js.map +1 -1
  56. package/lib/client/worktree-surface-rows.d.ts +4 -4
  57. package/lib/client/worktree-surface-rows.d.ts.map +1 -1
  58. package/lib/client/worktree-surface-rows.js +139 -47
  59. package/lib/client/worktree-surface-rows.js.map +1 -1
  60. package/lib/client/worktree-surface-selectors.d.ts +2 -0
  61. package/lib/client/worktree-surface-selectors.d.ts.map +1 -1
  62. package/lib/client/worktree-surface-selectors.js +8 -0
  63. package/lib/client/worktree-surface-selectors.js.map +1 -1
  64. package/lib/client/worktree-surface-types.d.ts +46 -3
  65. package/lib/client/worktree-surface-types.d.ts.map +1 -1
  66. package/lib/client/worktree-view-actions.d.ts +8 -3
  67. package/lib/client/worktree-view-actions.d.ts.map +1 -1
  68. package/lib/client/worktree-view-actions.js +28 -2
  69. package/lib/client/worktree-view-actions.js.map +1 -1
  70. package/lib/client/worktree-view-errors.d.ts +10 -0
  71. package/lib/client/worktree-view-errors.d.ts.map +1 -1
  72. package/lib/client/worktree-view-errors.js +22 -1
  73. package/lib/client/worktree-view-errors.js.map +1 -1
  74. package/lib/client.js +1515 -207
  75. package/lib/client.js.map +1 -1
  76. package/lib/contract/index.contract.js +2 -0
  77. package/lib/contract/index.contract.js.map +1 -1
  78. package/lib/contract/index.d.ts +11 -3
  79. package/lib/contract/index.d.ts.map +1 -1
  80. package/lib/contract/index.js +8 -0
  81. package/lib/contract/index.js.map +1 -1
  82. package/lib/contract/worktree-permission.d.ts +73 -0
  83. package/lib/contract/worktree-permission.d.ts.map +1 -0
  84. package/lib/contract/worktree-permission.js +32 -0
  85. package/lib/contract/worktree-permission.js.map +1 -0
  86. package/lib/host/dsh-read-adapter.d.ts +1 -0
  87. package/lib/host/dsh-read-adapter.d.ts.map +1 -1
  88. package/lib/host/dsh-read-adapter.js +6 -0
  89. package/lib/host/dsh-read-adapter.js.map +1 -1
  90. package/lib/host/index.d.ts +4 -0
  91. package/lib/host/index.d.ts.map +1 -1
  92. package/lib/host/index.js +2 -0
  93. package/lib/host/index.js.map +1 -1
  94. package/lib/host/remote.d.ts +2 -2
  95. package/lib/host/remote.d.ts.map +1 -1
  96. package/lib/host/remote.js +7 -1
  97. package/lib/host/remote.js.map +1 -1
  98. package/lib/host/service.d.ts +5 -1
  99. package/lib/host/service.d.ts.map +1 -1
  100. package/lib/host/service.js +42 -3
  101. package/lib/host/service.js.map +1 -1
  102. package/lib/host/worktree-permission-manager.d.ts +14 -0
  103. package/lib/host/worktree-permission-manager.d.ts.map +1 -0
  104. package/lib/host/worktree-permission-manager.js +113 -0
  105. package/lib/host/worktree-permission-manager.js.map +1 -0
  106. package/lib/host/worktree-permission.d.ts +38 -0
  107. package/lib/host/worktree-permission.d.ts.map +1 -0
  108. package/lib/host/worktree-permission.js +156 -0
  109. package/lib/host/worktree-permission.js.map +1 -0
  110. package/lib/index.d.ts +6 -4
  111. package/lib/index.d.ts.map +1 -1
  112. package/lib/index.js +3 -1
  113. package/lib/index.js.map +1 -1
  114. package/lib/manage/manager-context.d.ts +2 -0
  115. package/lib/manage/manager-context.d.ts.map +1 -1
  116. package/lib/manage/manager-worktrees.d.ts +5 -0
  117. package/lib/manage/manager-worktrees.d.ts.map +1 -1
  118. package/lib/manage/manager-worktrees.js +125 -37
  119. package/lib/manage/manager-worktrees.js.map +1 -1
  120. package/lib/manage/manager.d.ts +20 -0
  121. package/lib/manage/manager.d.ts.map +1 -1
  122. package/lib/manage/manager.js +91 -13
  123. package/lib/manage/manager.js.map +1 -1
  124. package/lib/manage/types.d.ts +9 -1
  125. package/lib/manage/types.d.ts.map +1 -1
  126. package/lib/manage/worktree-permission.d.ts +3 -0
  127. package/lib/manage/worktree-permission.d.ts.map +1 -0
  128. package/lib/manage/worktree-permission.js +3 -0
  129. package/lib/manage/worktree-permission.js.map +1 -0
  130. package/lib/provider/git.d.ts +37 -9
  131. package/lib/provider/git.d.ts.map +1 -1
  132. package/lib/provider/git.js +162 -61
  133. package/lib/provider/git.js.map +1 -1
  134. package/lib/provider/index.d.ts +5 -1
  135. package/lib/provider/index.d.ts.map +1 -1
  136. package/lib/provider/index.js +4 -0
  137. package/lib/provider/index.js.map +1 -1
  138. package/lib/provider/mutation-lock.d.ts +37 -0
  139. package/lib/provider/mutation-lock.d.ts.map +1 -0
  140. package/lib/provider/mutation-lock.js +270 -0
  141. package/lib/provider/mutation-lock.js.map +1 -0
  142. package/lib/provider/mutation-token.d.ts +8 -0
  143. package/lib/provider/mutation-token.d.ts.map +1 -0
  144. package/lib/provider/mutation-token.js +20 -0
  145. package/lib/provider/mutation-token.js.map +1 -0
  146. package/lib/provider/repository-fingerprint.d.ts +8 -0
  147. package/lib/provider/repository-fingerprint.d.ts.map +1 -0
  148. package/lib/provider/repository-fingerprint.js +13 -0
  149. package/lib/provider/repository-fingerprint.js.map +1 -0
  150. package/lib/provider/sidecar-persistence.d.ts +7 -3
  151. package/lib/provider/sidecar-persistence.d.ts.map +1 -1
  152. package/lib/provider/sidecar-persistence.js +118 -44
  153. package/lib/provider/sidecar-persistence.js.map +1 -1
  154. package/lib/provider/sidecar-schema.d.ts +1 -1
  155. package/lib/provider/sidecar-schema.d.ts.map +1 -1
  156. package/lib/provider/sidecar-schema.js +140 -8
  157. package/lib/provider/sidecar-schema.js.map +1 -1
  158. package/lib/provider/sidecar.d.ts +3 -1
  159. package/lib/provider/sidecar.d.ts.map +1 -1
  160. package/lib/provider/sidecar.js +6 -1
  161. package/lib/provider/sidecar.js.map +1 -1
  162. package/lib/provider/subprocess.d.ts +37 -0
  163. package/lib/provider/subprocess.d.ts.map +1 -0
  164. package/lib/provider/subprocess.js +319 -0
  165. package/lib/provider/subprocess.js.map +1 -0
  166. package/lib/provider/transaction.d.ts +65 -0
  167. package/lib/provider/transaction.d.ts.map +1 -0
  168. package/lib/provider/transaction.js +1011 -0
  169. package/lib/provider/transaction.js.map +1 -0
  170. package/lib/provider/types.d.ts +98 -7
  171. package/lib/provider/types.d.ts.map +1 -1
  172. package/lib/provider/types.js +1 -1
  173. package/lib/provider/types.js.map +1 -1
  174. package/lib/typert.host.js +133 -30
  175. package/lib/typert.remote-client.d.ts +7 -3
  176. package/lib/typert.remote-client.d.ts.map +1 -1
  177. package/lib/typert.remote-client.js +133 -30
  178. package/package.json +3 -1
@@ -25,10 +25,13 @@ export const zh = {
25
25
  'worktree.mainWithBranch': '本地({branch})',
26
26
  'worktree.detached': '已分离 Worktree',
27
27
  'worktree.repair': 'Worktree 需要修复',
28
+ 'worktree.recovery': 'Worktree 需要恢复',
28
29
  'worktree.ready': '活动 Worktree 已就绪',
29
30
  'worktree.expand': '展开 {name}',
30
31
  'worktree.collapse': '收起 {name}',
31
32
  'worktree.options': 'Worktree 选项:{name}',
33
+ 'worktree.copyPath': '复制路径',
34
+ 'worktree.createNew': '创建新的 Worktree',
32
35
  'worktree.remove': '移除 Worktree',
33
36
  'worktree.removeDescription': '移除“{name}”?Session 会保留在 DSH 中,并作为已分离关系继续可用。',
34
37
  'worktree.removeExternalDescription': '移除“{name}”?这会删除关联的外部 Worktree 目录。Session 会保留在 DSH 中,并作为已分离关系继续可用。',
@@ -59,9 +62,27 @@ export const zh = {
59
62
  'session.rename': '重命名会话',
60
63
  'session.fork': 'Fork 会话',
61
64
  'session.archive': '归档会话',
65
+ 'session.copyId': '复制 Session ID',
62
66
  'session.expandMore': '展开其余 {count} 个会话',
63
67
  'session.collapse': '收起',
64
68
  'session.name': '会话名称',
69
+ 'session.status.running': '进行中',
70
+ 'session.status.subagentsRunning.one': '{n} 个子代理运行中',
71
+ 'session.status.subagentsRunning.other': '{n} 个子代理运行中',
72
+ 'session.status.idle': '空闲',
73
+ 'session.status.waitingApproval': '等待审批',
74
+ 'session.status.planReview': '计划待审',
75
+ 'session.status.waitingAnswer': '等待回答',
76
+ 'session.status.completed': '已完成',
77
+ copy: '复制',
78
+ 'hover.copied': '已复制',
79
+ 'session.time.now': '刚刚',
80
+ 'session.time.minutes': '{n}分钟',
81
+ 'session.time.hours': '{n}小时',
82
+ 'session.time.days': '{n}天',
83
+ 'session.time.months': '{n}个月',
84
+ 'session.time.years': '{n}年',
85
+ 'session.time.ago': '{t}前',
65
86
  'dialog.close': '关闭',
66
87
  'dialog.closeWorkspaceRename': '关闭重命名工作区对话框',
67
88
  'dialog.closeWorkspaceDelete': '关闭删除工作区对话框',
@@ -73,6 +94,14 @@ export const zh = {
73
94
  'action.retry': '重试',
74
95
  'action.retryBinding': '重试绑定',
75
96
  'action.openCreatedSession': '打开已创建的 Session',
97
+ 'permission.fallbackWorkspaceWrite': '无法使用 Worktree 完全访问预设,已降级为 workspace-write;保留审批提示。',
98
+ 'permission.userRestricted': '已保留你在 DSH 原生权限界面选择的限制,未自动提升此 Worktree Session。',
99
+ 'permission.unverified': '无法验证 Worktree Session 的权限服务;Session 已保留,但完全访问未得到确认。',
100
+ 'permission.unavailable': 'Worktree Session 权限状态暂时不可用,请重试。',
101
+ 'permission.fullAccessTitle': '确认启用 Worktree Full access?',
102
+ 'permission.fullAccessDescription': '启用 Worktree Full access 后,此 Session 可能访问 Session 目录之外的关联 Git 元数据和 Worktree 文件。完全访问会关闭此 Session 的文件系统沙箱,但会保留审批提示;网络和进程策略不变。目标 Worktree:{cwd}',
103
+ 'permission.fullAccessAcknowledge': '我已了解风险,并愿意继续',
104
+ 'permission.fullAccessEnable': '启用 Worktree Full access',
76
105
  'status.loading': '正在加载工作区…',
77
106
  'error.worktreeDataUnavailable': 'Worktree 数据不可用,请重试。',
78
107
  'error.gitNotInstalled': 'Git 未安装或不可用,请安装 Git 后重试。',
@@ -87,12 +116,18 @@ export const zh = {
87
116
  'error.worktreeRecordMissing': 'Worktree 注册未返回 Worktree 记录,请重试请求。',
88
117
  'error.worktreeImportInvalid': '这个 Worktree 无法导入,请选择同一 Workspace 中有效的绝对路径。',
89
118
  'error.worktreeAlreadyManaged': '这个 Worktree 已由插件管理。',
119
+ 'error.worktreeMutationBusy': '另一个 DSH 实例正在修改 Worktree 状态,请稍后重试。',
120
+ 'error.worktreeStateConflict': 'Worktree 状态已经变化,请刷新后重试。',
121
+ 'error.worktreeRecoveryRequired': 'Worktree 状态需要恢复;请先完成恢复后再重试破坏性操作。',
122
+ 'error.worktreeIdentityChanged': 'Worktree 或 repository 身份已经变化,需要恢复后再操作。',
90
123
  'error.worktreeRegistrationSessionUnavailable': 'Worktree 已注册,但 Session 创建不可用,请重新连接后重试。',
91
124
  'error.workspaceRenameUnavailable': '工作区重命名不可用,请重新连接后重试。',
92
125
  'error.workspaceDeleteUnavailable': '工作区删除不可用,请重新连接后重试。',
93
126
  'error.sessionRenameUnavailable': '会话重命名不可用,请重新连接后重试。',
94
127
  'error.sessionBindingFailed': 'Session {sessionId} 已创建,但 Worktree 绑定失败:{reason}',
95
128
  'error.sessionAlreadyBound': 'Session 已绑定到其他 Worktree,未创建新的 Session。',
129
+ 'error.worktreePermissionConfirmationRequired': 'Session 和绑定已保留;确认完全访问后重试,未打开 Session。',
130
+ 'error.worktreePermissionFailed': 'Worktree Session 权限设置失败,可重试:{reason}',
96
131
  'error.sessionListNotReady': 'Session 列表尚未就绪,请重试。',
97
132
  'error.sessionFactsIncomplete': 'Session 信息尚未完整,请重试。',
98
133
  'error.worktreeSessionRepairRequired': '当前 Worktree 的 Session 绑定需要修复,请重试。',
@@ -127,10 +162,13 @@ export const en = {
127
162
  'worktree.mainWithBranch': 'Local ({branch})',
128
163
  'worktree.detached': 'Detached Worktree',
129
164
  'worktree.repair': 'Worktree needs repair',
165
+ 'worktree.recovery': 'Worktree requires recovery',
130
166
  'worktree.ready': 'Active Worktree ready',
131
167
  'worktree.expand': 'Expand {name}',
132
168
  'worktree.collapse': 'Collapse {name}',
133
169
  'worktree.options': 'Worktree options for {name}',
170
+ 'worktree.copyPath': 'Copy path',
171
+ 'worktree.createNew': 'Create new Worktree',
134
172
  'worktree.remove': 'Remove Worktree',
135
173
  'worktree.removeDescription': 'Remove {name}? Sessions stay in DSH and remain available as detached bindings.',
136
174
  'worktree.removeExternalDescription': 'Remove {name}? This deletes the linked external Worktree directory. Sessions stay in DSH and remain available as detached bindings.',
@@ -161,9 +199,27 @@ export const en = {
161
199
  'session.rename': 'Rename session',
162
200
  'session.fork': 'Fork session',
163
201
  'session.archive': 'Archive session',
202
+ 'session.copyId': 'Copy session ID',
164
203
  'session.expandMore': 'Expand {count} more',
165
204
  'session.collapse': 'Collapse',
166
205
  'session.name': 'Session name',
206
+ 'session.status.running': 'Running',
207
+ 'session.status.subagentsRunning.one': '{n} subagent running',
208
+ 'session.status.subagentsRunning.other': '{n} subagents running',
209
+ 'session.status.idle': 'Idle',
210
+ 'session.status.waitingApproval': 'Waiting for approval',
211
+ 'session.status.planReview': 'Plan awaiting review',
212
+ 'session.status.waitingAnswer': 'Waiting for answer',
213
+ 'session.status.completed': 'Completed',
214
+ copy: 'Copy',
215
+ 'hover.copied': 'Copied',
216
+ 'session.time.now': 'now',
217
+ 'session.time.minutes': '{n}min',
218
+ 'session.time.hours': '{n}h',
219
+ 'session.time.days': '{n}d',
220
+ 'session.time.months': '{n}mo',
221
+ 'session.time.years': '{n}y',
222
+ 'session.time.ago': '{t} ago',
167
223
  'dialog.close': 'Close',
168
224
  'dialog.closeWorkspaceRename': 'Close Rename Workspace dialog',
169
225
  'dialog.closeWorkspaceDelete': 'Close Delete Workspace dialog',
@@ -175,6 +231,14 @@ export const en = {
175
231
  'action.retry': 'Retry',
176
232
  'action.retryBinding': 'Retry Binding',
177
233
  'action.openCreatedSession': 'Open Created Session',
234
+ 'permission.fallbackWorkspaceWrite': 'The Worktree Full Access preset is unavailable; fell back to workspace-write with approval prompts enabled.',
235
+ 'permission.userRestricted': 'The restriction selected in DSH’s native permission UI was preserved; this Worktree Session was not elevated.',
236
+ 'permission.unverified': 'The Worktree Session permission service could not be verified; the Session was retained, but Full Access is not confirmed.',
237
+ 'permission.unavailable': 'The Worktree Session permission state is temporarily unavailable; retry the request.',
238
+ 'permission.fullAccessTitle': 'Enable Worktree Full access?',
239
+ 'permission.fullAccessDescription': 'Worktree Full access lets this Session access linked Git metadata and Worktree files outside the Session directory. It disables filesystem confinement for this Session while keeping approval prompts enabled; network and process policy are unchanged. Target Worktree: {cwd}',
240
+ 'permission.fullAccessAcknowledge': 'I understand the risks and want to continue',
241
+ 'permission.fullAccessEnable': 'Enable Worktree Full access',
178
242
  'status.loading': 'Loading Workspaces…',
179
243
  'error.worktreeDataUnavailable': 'Worktree data is unavailable. Retry the request.',
180
244
  'error.gitNotInstalled': 'Git is not installed or unavailable. Install Git and retry.',
@@ -189,12 +253,18 @@ export const en = {
189
253
  'error.worktreeRecordMissing': 'Worktree registration returned no Worktree record; retry the request.',
190
254
  'error.worktreeImportInvalid': 'This Worktree cannot be imported. Choose a valid absolute path in this Workspace.',
191
255
  'error.worktreeAlreadyManaged': 'This Worktree is already managed by the plugin.',
256
+ 'error.worktreeMutationBusy': 'Another DSH instance is mutating Worktree state; retry shortly.',
257
+ 'error.worktreeStateConflict': 'The Worktree state changed; refresh and retry the request.',
258
+ 'error.worktreeRecoveryRequired': 'Worktree state requires recovery; resolve it before retrying destructive actions.',
259
+ 'error.worktreeIdentityChanged': 'The Worktree or repository identity changed; recovery is required before acting.',
192
260
  'error.worktreeRegistrationSessionUnavailable': 'The Worktree was registered, but Session creation is unavailable; retry after reconnecting.',
193
261
  'error.workspaceRenameUnavailable': 'Workspace rename is unavailable; retry after reconnecting.',
194
262
  'error.workspaceDeleteUnavailable': 'Workspace delete is unavailable; retry after reconnecting.',
195
263
  'error.sessionRenameUnavailable': 'Session rename is unavailable; retry after reconnecting.',
196
264
  'error.sessionBindingFailed': 'Session {sessionId} was created, but Worktree binding failed: {reason}',
197
265
  'error.sessionAlreadyBound': 'The Session is already bound to another Worktree; no new Session was created.',
266
+ 'error.worktreePermissionConfirmationRequired': 'The Session and binding were retained; confirm Full Access and retry. The Session was not opened.',
267
+ 'error.worktreePermissionFailed': 'Worktree Session permission setup failed; retryable error: {reason}',
198
268
  'error.sessionListNotReady': 'The Session list is not ready yet; retry the request.',
199
269
  'error.sessionFactsIncomplete': 'Session facts are incomplete; retry the request.',
200
270
  'error.worktreeSessionRepairRequired': 'The current Worktree Session binding needs repair; retry the request.',
@@ -1 +1 @@
1
- {"version":3,"file":"locales.js","sourceRoot":"","sources":["../../src/client/locales.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"locales.js","sourceRoot":"","sources":["../../src/client/locales.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,32 @@ export interface SessionSummaryLike {
3
3
  /** Native DSH's empty-log bit. Missing is treated as non-blank. */
4
4
  readonly blank?: boolean;
5
5
  readonly displayTitle?: string;
6
+ readonly running?: boolean;
7
+ readonly pendingInteraction?: PendingInteractionStatus;
8
+ readonly completed?: boolean;
9
+ readonly parentId?: string;
10
+ readonly origin?: 'subagent' | string;
11
+ readonly updatedAt?: number;
12
+ }
13
+ export type PendingInteractionStatus = 'approval' | 'plan-review' | 'question';
14
+ export type SessionStatusState = 'warning' | 'ongoing' | 'done';
15
+ export type SessionStatusLabelKey = 'running' | 'subagentsRunning' | 'idle' | 'waitingApproval' | 'planReview' | 'waitingAnswer' | 'completed';
16
+ export interface SessionStatusPresentation {
17
+ readonly state: SessionStatusState;
18
+ readonly labelKey: SessionStatusLabelKey;
19
+ readonly runningSubagentCount: number;
20
+ }
21
+ export interface RelativeTime {
22
+ readonly unit: 'now' | 'minutes' | 'hours' | 'days' | 'months' | 'years';
23
+ readonly n: number;
24
+ }
25
+ export interface SessionPresentation {
26
+ readonly status: SessionStatusPresentation;
27
+ readonly running: boolean;
28
+ readonly ongoing: boolean;
29
+ readonly runningSubagentCount: number;
30
+ readonly completed: boolean;
31
+ readonly updatedAt?: number;
6
32
  }
7
33
  /** The subset of the DSH Session list consumed by this browser Consumer. */
8
34
  export interface SessionListLike {
@@ -10,6 +36,14 @@ export interface SessionListLike {
10
36
  readonly current?: string;
11
37
  readonly byId: Record<string, SessionSummaryLike>;
12
38
  }
39
+ /** Native Workspace relative-time buckets, kept pure for deterministic rendering/tests. */
40
+ export declare function relativeTime(updatedAt: number | undefined, now: number): RelativeTime | undefined;
41
+ /** Match native Workspace status priority while retaining the aggregate subagent count. */
42
+ export declare function sessionStatus(session: Pick<SessionSummaryLike, 'pendingInteraction' | 'running' | 'completed'>, runningSubagentCount: number): SessionStatusPresentation;
43
+ /** Derive row and group activity facts from one retained DSH Session snapshot. */
44
+ export declare function deriveSessionPresentationIndex(sessions: Pick<SessionListLike, 'byId'>): Readonly<Record<string, SessionPresentation>>;
45
+ /** Aggregate only live ongoing activity; callers decide which IDs are in the group. */
46
+ export declare function hasOngoingSession(sessionIds: readonly string[], presentations: Readonly<Record<string, Pick<SessionPresentation, 'ongoing'> | undefined>>): boolean;
13
47
  /** Read the native blank flag without inferring blankness from title or id. */
14
48
  export declare function isBlankSession(sessionId: string, sessions: Pick<SessionListLike, 'byId'>): boolean;
15
49
  /** Filter a group without mutating its source order. */
@@ -1 +1 @@
1
- {"version":3,"file":"session-view.d.ts","sourceRoot":"","sources":["../../src/client/session-view.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,MAAM,WAAW,kBAAkB;IACjC,mEAAmE;IACnE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,4EAA4E;AAC5E,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;CACnD;AAED,+EAA+E;AAC/E,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,GACtC,OAAO,CAET;AAUD,wDAAwD;AACxD,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC,GAClD,SAAS,MAAM,EAAE,CAEnB;AAED,iFAAiF;AACjF,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,EACvC,UAAU,EAAE,MAAM,GACjB,MAAM,CAGR;AAED,6EAA6E;AAC7E,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,EACvC,eAAe,EAAE,MAAM,GACtB,OAAO,CAKT"}
1
+ {"version":3,"file":"session-view.d.ts","sourceRoot":"","sources":["../../src/client/session-view.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,MAAM,WAAW,kBAAkB;IACjC,mEAAmE;IACnE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;IACvD,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,wBAAwB,GAAG,UAAU,GAAG,aAAa,GAAG,UAAU,CAAC;AAE/E,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAEhE,MAAM,MAAM,qBAAqB,GAC7B,SAAS,GACT,kBAAkB,GAClB,MAAM,GACN,iBAAiB,GACjB,YAAY,GACZ,eAAe,GACf,WAAW,CAAC;AAEhB,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IACzC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;CACvC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACzE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,yBAAyB,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,4EAA4E;AAC5E,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;CACnD;AAyDD,2FAA2F;AAC3F,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAYjG;AAED,2FAA2F;AAC3F,wBAAgB,aAAa,CAC3B,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,oBAAoB,GAAG,SAAS,GAAG,WAAW,CAAC,EACjF,oBAAoB,EAAE,MAAM,GAC3B,yBAAyB,CAwB3B;AAWD,kFAAkF;AAClF,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,GACtC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAyB/C;AAED,uFAAuF;AACvF,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,GACxF,OAAO,CAET;AAED,+EAA+E;AAC/E,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,GACtC,OAAO,CAET;AAUD,wDAAwD;AACxD,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC,GAClD,SAAS,MAAM,EAAE,CAEnB;AAED,iFAAiF;AACjF,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,EACvC,UAAU,EAAE,MAAM,GACjB,MAAM,CAGR;AAED,6EAA6E;AAC7E,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,EACvC,eAAe,EAAE,MAAM,GACtB,OAAO,CAKT"}
@@ -1,3 +1,121 @@
1
+ function isPendingInteractionStatus(value) {
2
+ return value === 'approval' || value === 'plan-review' || value === 'question';
3
+ }
4
+ function validUpdatedAt(value) {
5
+ return value !== undefined && Number.isFinite(value);
6
+ }
7
+ /**
8
+ * Native-compatible subagent lineage index. The upstream runtime's public client
9
+ * entry is a browser module-loader bundle, so keeping this pure mirror local lets
10
+ * the browser Consumer and its Node tests share the same status semantics.
11
+ */
12
+ function indexSubagentDescendants(summaries) {
13
+ const indexed = new Map();
14
+ for (const descendant of Object.values(summaries)) {
15
+ if (descendant.origin !== 'subagent')
16
+ continue;
17
+ const seen = new Set();
18
+ let current = descendant;
19
+ while (current?.origin === 'subagent' &&
20
+ current.parentId !== undefined &&
21
+ !seen.has(current.id)) {
22
+ seen.add(current.id);
23
+ const aggregate = indexed.get(current.parentId);
24
+ if (aggregate === undefined) {
25
+ indexed.set(current.parentId, {
26
+ count: 1,
27
+ runningCount: descendant.running ? 1 : 0,
28
+ });
29
+ }
30
+ else {
31
+ aggregate.count += 1;
32
+ if (descendant.running)
33
+ aggregate.runningCount += 1;
34
+ }
35
+ current = summaries[current.parentId];
36
+ }
37
+ }
38
+ return indexed;
39
+ }
40
+ /** Native Workspace relative-time buckets, kept pure for deterministic rendering/tests. */
41
+ export function relativeTime(updatedAt, now) {
42
+ if (!validUpdatedAt(updatedAt) || !Number.isFinite(now))
43
+ return undefined;
44
+ const MIN = 60_000;
45
+ const HOUR = 3_600_000;
46
+ const DAY = 86_400_000;
47
+ const diff = Math.max(0, now - updatedAt);
48
+ if (diff < MIN)
49
+ return { unit: 'now', n: 0 };
50
+ if (diff < HOUR)
51
+ return { unit: 'minutes', n: Math.floor(diff / MIN) };
52
+ if (diff < DAY)
53
+ return { unit: 'hours', n: Math.floor(diff / HOUR) };
54
+ if (diff < 30 * DAY)
55
+ return { unit: 'days', n: Math.floor(diff / DAY) };
56
+ if (diff < 365 * DAY)
57
+ return { unit: 'months', n: Math.floor(diff / (30 * DAY)) };
58
+ return { unit: 'years', n: Math.floor(diff / (365 * DAY)) };
59
+ }
60
+ /** Match native Workspace status priority while retaining the aggregate subagent count. */
61
+ export function sessionStatus(session, runningSubagentCount) {
62
+ const count = Number.isFinite(runningSubagentCount) && runningSubagentCount > 0
63
+ ? Math.floor(runningSubagentCount)
64
+ : 0;
65
+ if (isPendingInteractionStatus(session.pendingInteraction)) {
66
+ const labelKey = session.pendingInteraction === 'approval'
67
+ ? 'waitingApproval'
68
+ : session.pendingInteraction === 'plan-review'
69
+ ? 'planReview'
70
+ : 'waitingAnswer';
71
+ return { state: 'warning', labelKey, runningSubagentCount: count };
72
+ }
73
+ if (session.running === true) {
74
+ return { state: 'ongoing', labelKey: 'running', runningSubagentCount: count };
75
+ }
76
+ if (count > 0) {
77
+ return { state: 'ongoing', labelKey: 'subagentsRunning', runningSubagentCount: count };
78
+ }
79
+ if (session.completed === true) {
80
+ return { state: 'done', labelKey: 'completed', runningSubagentCount: 0 };
81
+ }
82
+ return { state: 'done', labelKey: 'idle', runningSubagentCount: 0 };
83
+ }
84
+ function toLineageSummary(sessionId, summary) {
85
+ return {
86
+ id: sessionId,
87
+ running: summary.running === true,
88
+ ...(summary.parentId === undefined ? {} : { parentId: summary.parentId }),
89
+ ...(summary.origin === 'subagent' ? { origin: 'subagent' } : {}),
90
+ };
91
+ }
92
+ /** Derive row and group activity facts from one retained DSH Session snapshot. */
93
+ export function deriveSessionPresentationIndex(sessions) {
94
+ const lineageSummaries = Object.fromEntries(Object.entries(sessions.byId).map(([sessionId, summary]) => [
95
+ sessionId,
96
+ toLineageSummary(sessionId, summary),
97
+ ]));
98
+ const descendants = indexSubagentDescendants(lineageSummaries);
99
+ return Object.fromEntries(Object.entries(sessions.byId).map(([sessionId, summary]) => {
100
+ const runningSubagentCount = descendants.get(sessionId)?.runningCount ?? 0;
101
+ const status = sessionStatus(summary, runningSubagentCount);
102
+ return [
103
+ sessionId,
104
+ {
105
+ status,
106
+ running: summary.running === true,
107
+ ongoing: summary.running === true || runningSubagentCount > 0,
108
+ runningSubagentCount,
109
+ completed: summary.completed === true,
110
+ ...(validUpdatedAt(summary.updatedAt) ? { updatedAt: summary.updatedAt } : {}),
111
+ },
112
+ ];
113
+ }));
114
+ }
115
+ /** Aggregate only live ongoing activity; callers decide which IDs are in the group. */
116
+ export function hasOngoingSession(sessionIds, presentations) {
117
+ return sessionIds.some((sessionId) => presentations[sessionId]?.ongoing === true);
118
+ }
1
119
  /** Read the native blank flag without inferring blankness from title or id. */
2
120
  export function isBlankSession(sessionId, sessions) {
3
121
  return sessions.byId[sessionId]?.blank === true;
@@ -13,7 +131,7 @@ export function filterVisibleSessionIds(sessionIds, sessions) {
13
131
  /** Resolve a row title while keeping the blank label outside the DSH summary. */
14
132
  export function sessionDisplayLabel(sessionId, sessions, blankLabel) {
15
133
  const summary = sessions.byId[sessionId];
16
- return summary?.blank === true ? blankLabel : summary?.displayTitle ?? sessionId;
134
+ return summary?.blank === true ? blankLabel : (summary?.displayTitle ?? sessionId);
17
135
  }
18
136
  /** Match only durable Session titles or the final diagnostic id fallback. */
19
137
  export function sessionMatchesQuery(sessionId, sessions, normalizedQuery) {
@@ -1 +1 @@
1
- {"version":3,"file":"session-view.js","sourceRoot":"","sources":["../../src/client/session-view.ts"],"names":[],"mappings":"AAcA,+EAA+E;AAC/E,MAAM,UAAU,cAAc,CAC5B,SAAiB,EACjB,QAAuC;IAEvC,OAAO,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;AAClD,CAAC;AAED,mFAAmF;AACnF,SAAS,gBAAgB,CACvB,SAAiB,EACjB,QAAmD;IAEnD,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,CAAC;AAChF,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,uBAAuB,CACrC,UAA6B,EAC7B,QAAmD;IAEnD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;AACjF,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,mBAAmB,CACjC,SAAiB,EACjB,QAAuC,EACvC,UAAkB;IAElB,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,OAAO,OAAO,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,YAAY,IAAI,SAAS,CAAC;AACnF,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,mBAAmB,CACjC,SAAiB,EACjB,QAAuC,EACvC,eAAuB;IAEvB,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,IAAI,OAAO,EAAE,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC1C,MAAM,KAAK,GAAG,OAAO,EAAE,YAAY,IAAI,SAAS,CAAC;IACjD,OAAO,KAAK,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"session-view.js","sourceRoot":"","sources":["../../src/client/session-view.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { ClientConnectionRpc } from '@deepseek-ai/dsh-client-connection/client';
2
- import type { WorktreeManager } from '../contract/index.js';
2
+ import type { WorktreeManager, WorktreePermissionManager } from '../contract/index.js';
3
3
  /** The one logical channel shared by the DSH Connection and Typert Gateway. */
4
4
  export declare const WORKTREE_CONNECTION_CHANNEL: "/api";
5
5
  /**
@@ -16,6 +16,8 @@ export declare const WORKTREE_CONNECTION_ENDPOINTS: Readonly<{
16
16
  insertWorktreeBefore: "worktreeManager/insertWorktreeBefore";
17
17
  listBindings: "worktreeManager/listBindings";
18
18
  bindSession: "worktreeManager/bindSession";
19
+ ensureWorktreePermission: "worktreeManager/ensureWorktreePermission";
20
+ normalizeDetachedWorktreePermissions: "worktreeManager/normalizeDetachedWorktreePermissions";
19
21
  }>;
20
22
  /** Deliberately narrow transport seam: the adapter only needs `call`. */
21
23
  export type WorktreeConnectionRpc = Pick<ClientConnectionRpc, 'call'>;
@@ -33,7 +35,7 @@ export declare class WorktreeConnectionError extends Error {
33
35
  readonly retryable: boolean;
34
36
  constructor(options: WorktreeConnectionErrorOptions);
35
37
  }
36
- export interface WorktreeConnectionAdapter extends WorktreeManager {
38
+ export interface WorktreeConnectionAdapter extends WorktreeManager, WorktreePermissionManager {
37
39
  /** Abort all requests owned by this Client plugin instance. */
38
40
  dispose(): void;
39
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-connection.d.ts","sourceRoot":"","sources":["../../src/client/worktree-connection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAErF,OAAO,KAAK,EAEV,eAAe,EAGhB,MAAM,sBAAsB,CAAC;AAE9B,+EAA+E;AAC/E,eAAO,MAAM,2BAA2B,EAAG,MAAe,CAAC;AAE3D;;;GAGG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;EAUiB,CAAC;AAE5D,yEAAyE;AACzE,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;AAEtE,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,qFAAqF;AACrF,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;gBAEhB,OAAO,EAAE,8BAA8B;CAOpD;AAED,MAAM,WAAW,yBAA0B,SAAQ,eAAe;IAChE,+DAA+D;IAC/D,OAAO,IAAI,IAAI,CAAC;CACjB;AA+ED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,qBAAqB,GACzB,yBAAyB,CAiD3B"}
1
+ {"version":3,"file":"worktree-connection.d.ts","sourceRoot":"","sources":["../../src/client/worktree-connection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAErF,OAAO,KAAK,EAEV,eAAe,EACf,yBAAyB,EAI1B,MAAM,sBAAsB,CAAC;AAE9B,+EAA+E;AAC/E,eAAO,MAAM,2BAA2B,EAAG,MAAe,CAAC;AAE3D;;;GAGG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;EAYiB,CAAC;AAE5D,yEAAyE;AACzE,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;AAEtE,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,qFAAqF;AACrF,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;gBAEhB,OAAO,EAAE,8BAA8B;CAOpD;AAED,MAAM,WAAW,yBAA0B,SAAQ,eAAe,EAAE,yBAAyB;IAC3F,+DAA+D;IAC/D,OAAO,IAAI,IAAI,CAAC;CACjB;AA+ED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,qBAAqB,GACzB,yBAAyB,CAoD3B"}
@@ -14,6 +14,8 @@ export const WORKTREE_CONNECTION_ENDPOINTS = Object.freeze({
14
14
  insertWorktreeBefore: 'worktreeManager/insertWorktreeBefore',
15
15
  listBindings: 'worktreeManager/listBindings',
16
16
  bindSession: 'worktreeManager/bindSession',
17
+ ensureWorktreePermission: 'worktreeManager/ensureWorktreePermission',
18
+ normalizeDetachedWorktreePermissions: 'worktreeManager/normalizeDetachedWorktreePermissions',
17
19
  });
18
20
  /** Browser-safe error shared by transport, Gateway, endpoint and domain failures. */
19
21
  export class WorktreeConnectionError extends Error {
@@ -135,6 +137,8 @@ export function createWorktreeConnectionAdapter(rpc) {
135
137
  },
136
138
  listBindings: (input) => invoke('listBindings', input),
137
139
  bindSession: (input) => invoke('bindSession', input),
140
+ ensureWorktreePermission: (input) => invoke('ensureWorktreePermission', input),
141
+ normalizeDetachedWorktreePermissions: (input) => invoke('normalizeDetachedWorktreePermissions', input),
138
142
  dispose() {
139
143
  if (disposed)
140
144
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-connection.js","sourceRoot":"","sources":["../../src/client/worktree-connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worktree-connection.js","sourceRoot":"","sources":["../../src/client/worktree-connection.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,7 @@ export function resolveWorktreeSessionContext(input) {
26
26
  }
27
27
  if (record.status !== 'active')
28
28
  return none('stale');
29
- if (record.health === 'repair')
29
+ if (record.health === 'repair' || record.health === 'recovery-needed')
30
30
  return none('repair');
31
31
  if (record.branch.length === 0)
32
32
  return none('not-ready');
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-context.js","sourceRoot":"","sources":["../../src/client/worktree-context.ts"],"names":[],"mappings":"AA2CA,MAAM,IAAI,GAAG,CAAC,MAAoC,EAA0B,EAAE,CAAC,CAAC;IAC9E,IAAI,EAAE,MAAM;IACZ,MAAM;CACP,CAAC,CAAC;AAEH,+EAA+E;AAC/E,MAAM,UAAU,6BAA6B,CAC3C,KAA2B;IAE3B,MAAM,SAAS,GAAG,KAAK,CAAC,gBAAgB,CAAC;IACzC,IAAI,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,kBAAkB,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;IAEjG,MAAM,SAAS,GAAG,SAAS,KAAK,SAAS;QACvC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,WAAW,KAAK,KAAK,CAAC,kBAAkB,CAAC;QACtF,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9E,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;IAEpD,MAAM,OAAO,GAAG,SAAS,KAAK,SAAS;QACrC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;IAC1E,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACrF,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;QAE3D,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CACjC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,CAC3D,CAAC;QACF,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,WAAW,EAAE,CAAC;YACzE,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtD,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC;QAEzD,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,SAAS,CAAC,WAAW;YAClC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,KAAK,EAAE,MAAM,CAAC,MAAM;YACpB,MAAM,EAAE,gBAAgB;SACzB,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;IACxE,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC;IAE7F,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,SAAS,CAAC,WAAW;QAClC,KAAK,EAAE,aAAa,CAAC,IAAI;QACzB,MAAM,EAAE,gBAAgB;KACzB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"worktree-context.js","sourceRoot":"","sources":["../../src/client/worktree-context.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import type { TranslateNS } from '@deepseek-ai/dsh-client-ui-slots';
2
+ import type { WorktreePermissionResult } from '../contract/index.js';
2
3
  import type { WorktreeViewError } from './worktree-view.js';
3
4
  import { WORKTREE_NS } from './locales.js';
4
5
  type WorktreeTranslate = TranslateNS<typeof WORKTREE_NS>;
6
+ export declare function formatWorktreePermissionNotice(result: WorktreePermissionResult, t: WorktreeTranslate): string;
5
7
  export declare function formatWorktreeViewError(error: WorktreeViewError, t: WorktreeTranslate): string;
6
8
  export {};
7
9
  //# sourceMappingURL=worktree-error-copy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-error-copy.d.ts","sourceRoot":"","sources":["../../src/client/worktree-error-copy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,KAAK,iBAAiB,GAAG,WAAW,CAAC,OAAO,WAAW,CAAC,CAAC;AAWzD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,iBAAiB,EACxB,CAAC,EAAE,iBAAiB,GACnB,MAAM,CAyDR"}
1
+ {"version":3,"file":"worktree-error-copy.d.ts","sourceRoot":"","sources":["../../src/client/worktree-error-copy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,KAAK,iBAAiB,GAAG,WAAW,CAAC,OAAO,WAAW,CAAC,CAAC;AAWzD,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,wBAAwB,EAChC,CAAC,EAAE,iBAAiB,GACnB,MAAM,CAWR;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,iBAAiB,EACxB,CAAC,EAAE,iBAAiB,GACnB,MAAM,CAqER"}
@@ -5,6 +5,18 @@ function detail(error, name) {
5
5
  function reason(error, t) {
6
6
  return error.message.length > 0 ? error.message : t('error.worktreeDataUnavailable');
7
7
  }
8
+ export function formatWorktreePermissionNotice(result, t) {
9
+ switch (result.status) {
10
+ case 'fallback-workspace-write':
11
+ return t('permission.fallbackWorkspaceWrite');
12
+ case 'user-restricted':
13
+ return t('permission.userRestricted');
14
+ case 'unverified':
15
+ return t('permission.unverified');
16
+ default:
17
+ return t('permission.unavailable');
18
+ }
19
+ }
8
20
  export function formatWorktreeViewError(error, t) {
9
21
  switch (error.code) {
10
22
  case 'CLIENT_DISPOSED':
@@ -32,6 +44,14 @@ export function formatWorktreeViewError(error, t) {
32
44
  return t('error.worktreeImportInvalid');
33
45
  case 'WORKTREE_ALREADY_MANAGED':
34
46
  return t('error.worktreeAlreadyManaged');
47
+ case 'WORKTREE_MUTATION_BUSY':
48
+ return t('error.worktreeMutationBusy');
49
+ case 'WORKTREE_STATE_CONFLICT':
50
+ return t('error.worktreeStateConflict');
51
+ case 'WORKTREE_RECOVERY_REQUIRED':
52
+ return t('error.worktreeRecoveryRequired');
53
+ case 'WORKTREE_IDENTITY_CHANGED':
54
+ return t('error.worktreeIdentityChanged');
35
55
  case 'WORKTREE_REGISTRATION_SESSION_UNAVAILABLE':
36
56
  return t('error.worktreeRegistrationSessionUnavailable');
37
57
  case 'WORKSPACE_RENAME_UNAVAILABLE':
@@ -47,6 +67,10 @@ export function formatWorktreeViewError(error, t) {
47
67
  });
48
68
  case 'SESSION_ALREADY_BOUND':
49
69
  return t('error.sessionAlreadyBound');
70
+ case 'WORKTREE_PERMISSION_CONFIRMATION_REQUIRED':
71
+ return t('error.worktreePermissionConfirmationRequired');
72
+ case 'WORKTREE_PERMISSION_FAILED':
73
+ return t('error.worktreePermissionFailed', { reason: reason(error, t) });
50
74
  case 'SESSION_LIST_NOT_READY':
51
75
  return t('error.sessionListNotReady');
52
76
  case 'SESSION_FACTS_INCOMPLETE':
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-error-copy.js","sourceRoot":"","sources":["../../src/client/worktree-error-copy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worktree-error-copy.js","sourceRoot":"","sources":["../../src/client/worktree-error-copy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /** DOM marker owned only by this plugin's permission icon decorator. */
2
+ export declare const WORKTREE_PERMISSION_ICON_ATTRIBUTE = "data-clutch-dsh-worktree-permission-icon";
3
+ /** Mark the native custom permission row and trigger for CSS decoration. */
4
+ export declare function decorateWorktreePermissionIcons(document: Document): void;
5
+ /** Install the Worktree permission icon and return a plugin-local disposer. */
6
+ export declare function installWorktreePermissionIcon(document: Document): () => void;
7
+ //# sourceMappingURL=worktree-permission-icon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree-permission-icon.d.ts","sourceRoot":"","sources":["../../src/client/worktree-permission-icon.ts"],"names":[],"mappings":"AAIA,wEAAwE;AACxE,eAAO,MAAM,kCAAkC,6CACH,CAAC;AAsD7C,4EAA4E;AAC5E,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAoBxE;AAED,+EAA+E;AAC/E,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,IAAI,CA4C5E"}