@cerbur/clutch-dsh-worktree 0.1.21 → 0.1.23

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 (237) hide show
  1. package/README.md +49 -38
  2. package/README.zh.md +42 -28
  3. package/cordis.patch.yml +0 -8
  4. package/lib/client/WorktreeSurface.d.ts.map +1 -1
  5. package/lib/client/WorktreeSurface.js +5 -8
  6. package/lib/client/WorktreeSurface.js.map +1 -1
  7. package/lib/client/dashboard/dashboard-sessions.d.ts +1 -1
  8. package/lib/client/dashboard/dashboard-sessions.d.ts.map +1 -1
  9. package/lib/client/dashboard/dashboard-sessions.js +3 -2
  10. package/lib/client/dashboard/dashboard-sessions.js.map +1 -1
  11. package/lib/client/entry.d.ts.map +1 -1
  12. package/lib/client/entry.js +33 -40
  13. package/lib/client/entry.js.map +1 -1
  14. package/lib/client/index.d.ts +0 -3
  15. package/lib/client/index.d.ts.map +1 -1
  16. package/lib/client/index.js +0 -2
  17. package/lib/client/index.js.map +1 -1
  18. package/lib/client/locales.d.ts +2 -26
  19. package/lib/client/locales.d.ts.map +1 -1
  20. package/lib/client/locales.js +2 -26
  21. package/lib/client/locales.js.map +1 -1
  22. package/lib/client/restart-notice.d.ts +1 -4
  23. package/lib/client/restart-notice.d.ts.map +1 -1
  24. package/lib/client/restart-notice.js +0 -20
  25. package/lib/client/restart-notice.js.map +1 -1
  26. package/lib/client/session/local-session.d.ts +27 -0
  27. package/lib/client/session/local-session.d.ts.map +1 -0
  28. package/lib/client/session/local-session.js +61 -0
  29. package/lib/client/session/local-session.js.map +1 -0
  30. package/lib/client/session/session-rename.d.ts.map +1 -1
  31. package/lib/client/session/session-rename.js.map +1 -1
  32. package/lib/client/session/virtual-workspace-membership.d.ts +1 -0
  33. package/lib/client/session/virtual-workspace-membership.d.ts.map +1 -1
  34. package/lib/client/session/virtual-workspace-membership.js +4 -0
  35. package/lib/client/session/virtual-workspace-membership.js.map +1 -1
  36. package/lib/client/session/worktree-session.d.ts +15 -36
  37. package/lib/client/session/worktree-session.d.ts.map +1 -1
  38. package/lib/client/session/worktree-session.js +124 -152
  39. package/lib/client/session/worktree-session.js.map +1 -1
  40. package/lib/client/steer/steer-activity.d.ts.map +1 -1
  41. package/lib/client/steer/steer-activity.js +2 -1
  42. package/lib/client/steer/steer-activity.js.map +1 -1
  43. package/lib/client/surface/actions/lifecycle-commands.d.ts.map +1 -1
  44. package/lib/client/surface/actions/lifecycle-commands.js +1 -28
  45. package/lib/client/surface/actions/lifecycle-commands.js.map +1 -1
  46. package/lib/client/surface/actions/useDashboardBatchManage.d.ts.map +1 -1
  47. package/lib/client/surface/actions/useDashboardBatchManage.js +0 -13
  48. package/lib/client/surface/actions/useDashboardBatchManage.js.map +1 -1
  49. package/lib/client/surface/actions/useLifecycleActions.d.ts +4 -6
  50. package/lib/client/surface/actions/useLifecycleActions.d.ts.map +1 -1
  51. package/lib/client/surface/actions/useLifecycleActions.js +4 -47
  52. package/lib/client/surface/actions/useLifecycleActions.js.map +1 -1
  53. package/lib/client/surface/actions/useSessionActions.d.ts +1 -1
  54. package/lib/client/surface/actions/useSessionActions.d.ts.map +1 -1
  55. package/lib/client/surface/actions/useSessionActions.js +11 -20
  56. package/lib/client/surface/actions/useSessionActions.js.map +1 -1
  57. package/lib/client/surface/actions/useWorktreeRegistration.d.ts.map +1 -1
  58. package/lib/client/surface/actions/useWorktreeRegistration.js +7 -14
  59. package/lib/client/surface/actions/useWorktreeRegistration.js.map +1 -1
  60. package/lib/client/surface/actions/worktree-cleanup-flow.d.ts +1 -2
  61. package/lib/client/surface/actions/worktree-cleanup-flow.d.ts.map +1 -1
  62. package/lib/client/surface/actions/worktree-cleanup-flow.js +1 -1
  63. package/lib/client/surface/actions/worktree-cleanup-flow.js.map +1 -1
  64. package/lib/client/surface/components/LifecycleDialogs.d.ts +1 -1
  65. package/lib/client/surface/components/LifecycleDialogs.d.ts.map +1 -1
  66. package/lib/client/surface/components/RestartToast.d.ts.map +1 -1
  67. package/lib/client/surface/components/RestartToast.js +1 -2
  68. package/lib/client/surface/components/RestartToast.js.map +1 -1
  69. package/lib/client/surface/components/SurfaceContent.d.ts +2 -2
  70. package/lib/client/surface/components/SurfaceContent.d.ts.map +1 -1
  71. package/lib/client/surface/components/SurfaceContent.js +15 -28
  72. package/lib/client/surface/components/SurfaceContent.js.map +1 -1
  73. package/lib/client/surface/components/WorkspaceTree.d.ts +1 -1
  74. package/lib/client/surface/components/WorkspaceTree.d.ts.map +1 -1
  75. package/lib/client/surface/components/WorkspaceTree.js +3 -2
  76. package/lib/client/surface/components/WorkspaceTree.js.map +1 -1
  77. package/lib/client/surface/selectors.d.ts +3 -1
  78. package/lib/client/surface/selectors.d.ts.map +1 -1
  79. package/lib/client/surface/selectors.js +15 -0
  80. package/lib/client/surface/selectors.js.map +1 -1
  81. package/lib/client/surface/shared.d.ts +1 -7
  82. package/lib/client/surface/shared.d.ts.map +1 -1
  83. package/lib/client/surface/shared.js +0 -5
  84. package/lib/client/surface/shared.js.map +1 -1
  85. package/lib/client/surface/state/useLifecycleState.d.ts +0 -1
  86. package/lib/client/surface/state/useLifecycleState.d.ts.map +1 -1
  87. package/lib/client/surface/state/useLifecycleState.js +0 -3
  88. package/lib/client/surface/state/useLifecycleState.js.map +1 -1
  89. package/lib/client/surface/state/useSessionOrdering.d.ts.map +1 -1
  90. package/lib/client/surface/state/useSessionOrdering.js +1 -1
  91. package/lib/client/surface/state/useSessionOrdering.js.map +1 -1
  92. package/lib/client/surface/state/useSurfaceRefresh.d.ts +4 -3
  93. package/lib/client/surface/state/useSurfaceRefresh.d.ts.map +1 -1
  94. package/lib/client/surface/state/useSurfaceRefresh.js +178 -98
  95. package/lib/client/surface/state/useSurfaceRefresh.js.map +1 -1
  96. package/lib/client/surface/state/useSurfaceSources.d.ts +1 -6
  97. package/lib/client/surface/state/useSurfaceSources.d.ts.map +1 -1
  98. package/lib/client/surface/state/useSurfaceSources.js +11 -23
  99. package/lib/client/surface/state/useSurfaceSources.js.map +1 -1
  100. package/lib/client/surface/types.d.ts +15 -36
  101. package/lib/client/surface/types.d.ts.map +1 -1
  102. package/lib/client/view/worktree-error-copy.d.ts +0 -2
  103. package/lib/client/view/worktree-error-copy.d.ts.map +1 -1
  104. package/lib/client/view/worktree-error-copy.js +0 -17
  105. package/lib/client/view/worktree-error-copy.js.map +1 -1
  106. package/lib/client/view/worktree-view-errors.d.ts +0 -10
  107. package/lib/client/view/worktree-view-errors.d.ts.map +1 -1
  108. package/lib/client/view/worktree-view-errors.js +1 -22
  109. package/lib/client/view/worktree-view-errors.js.map +1 -1
  110. package/lib/client/view/worktree-view-read.d.ts +12 -3
  111. package/lib/client/view/worktree-view-read.d.ts.map +1 -1
  112. package/lib/client/view/worktree-view-read.js +137 -6
  113. package/lib/client/view/worktree-view-read.js.map +1 -1
  114. package/lib/client/worktree-connection.d.ts +6 -4
  115. package/lib/client/worktree-connection.d.ts.map +1 -1
  116. package/lib/client/worktree-connection.js +24 -4
  117. package/lib/client/worktree-connection.js.map +1 -1
  118. package/lib/client.js +3752 -3822
  119. package/lib/client.js.map +1 -1
  120. package/lib/contract/index.contract.js +4 -2
  121. package/lib/contract/index.contract.js.map +1 -1
  122. package/lib/contract/index.d.ts +27 -6
  123. package/lib/contract/index.d.ts.map +1 -1
  124. package/lib/contract/index.js +5 -4
  125. package/lib/contract/index.js.map +1 -1
  126. package/lib/contract/session-flow.d.ts +29 -0
  127. package/lib/contract/session-flow.d.ts.map +1 -0
  128. package/lib/contract/session-flow.js +2 -0
  129. package/lib/contract/session-flow.js.map +1 -0
  130. package/lib/host/dsh-read-adapter.d.ts +14 -0
  131. package/lib/host/dsh-read-adapter.d.ts.map +1 -1
  132. package/lib/host/dsh-read-adapter.js +30 -3
  133. package/lib/host/dsh-read-adapter.js.map +1 -1
  134. package/lib/host/index.d.ts +0 -4
  135. package/lib/host/index.d.ts.map +1 -1
  136. package/lib/host/index.js +0 -2
  137. package/lib/host/index.js.map +1 -1
  138. package/lib/host/remote.d.ts +2 -2
  139. package/lib/host/remote.d.ts.map +1 -1
  140. package/lib/host/remote.js +11 -7
  141. package/lib/host/remote.js.map +1 -1
  142. package/lib/host/service.d.ts +15 -3
  143. package/lib/host/service.d.ts.map +1 -1
  144. package/lib/host/service.js +69 -37
  145. package/lib/host/service.js.map +1 -1
  146. package/lib/host/session-creation.d.ts +12 -0
  147. package/lib/host/session-creation.d.ts.map +1 -0
  148. package/lib/host/session-creation.js +56 -0
  149. package/lib/host/session-creation.js.map +1 -0
  150. package/lib/index.d.ts +4 -4
  151. package/lib/index.d.ts.map +1 -1
  152. package/lib/index.js +2 -2
  153. package/lib/index.js.map +1 -1
  154. package/lib/manage/manager-navigation.d.ts +11 -0
  155. package/lib/manage/manager-navigation.d.ts.map +1 -0
  156. package/lib/manage/manager-navigation.js +88 -0
  157. package/lib/manage/manager-navigation.js.map +1 -0
  158. package/lib/manage/manager-sessions.d.ts +2 -2
  159. package/lib/manage/manager-sessions.d.ts.map +1 -1
  160. package/lib/manage/manager-sessions.js +30 -16
  161. package/lib/manage/manager-sessions.js.map +1 -1
  162. package/lib/manage/manager-support.d.ts +2 -1
  163. package/lib/manage/manager-support.d.ts.map +1 -1
  164. package/lib/manage/manager-support.js +21 -37
  165. package/lib/manage/manager-support.js.map +1 -1
  166. package/lib/manage/manager-worktrees.d.ts +3 -1
  167. package/lib/manage/manager-worktrees.d.ts.map +1 -1
  168. package/lib/manage/manager-worktrees.js +41 -19
  169. package/lib/manage/manager-worktrees.js.map +1 -1
  170. package/lib/manage/manager.d.ts +8 -1
  171. package/lib/manage/manager.d.ts.map +1 -1
  172. package/lib/manage/manager.js +35 -37
  173. package/lib/manage/manager.js.map +1 -1
  174. package/lib/provider/generated-path.d.ts +7 -0
  175. package/lib/provider/generated-path.d.ts.map +1 -0
  176. package/lib/provider/generated-path.js +57 -0
  177. package/lib/provider/generated-path.js.map +1 -0
  178. package/lib/provider/sidecar/sidecar-schema.d.ts.map +1 -1
  179. package/lib/provider/sidecar/sidecar-schema.js +7 -1
  180. package/lib/provider/sidecar/sidecar-schema.js.map +1 -1
  181. package/lib/provider/transaction/operations/create.d.ts.map +1 -1
  182. package/lib/provider/transaction/operations/create.js +2 -0
  183. package/lib/provider/transaction/operations/create.js.map +1 -1
  184. package/lib/provider/transaction/support/path-safety.d.ts.map +1 -1
  185. package/lib/provider/transaction/support/path-safety.js +5 -43
  186. package/lib/provider/transaction/support/path-safety.js.map +1 -1
  187. package/lib/provider/types.d.ts +2 -0
  188. package/lib/provider/types.d.ts.map +1 -1
  189. package/lib/provider/types.js.map +1 -1
  190. package/lib/tool/create-session.d.ts +11 -0
  191. package/lib/tool/create-session.d.ts.map +1 -0
  192. package/lib/tool/create-session.js +19 -0
  193. package/lib/tool/create-session.js.map +1 -0
  194. package/lib/tool/dispatch-session.d.ts.map +1 -1
  195. package/lib/tool/dispatch-session.js +9 -5
  196. package/lib/tool/dispatch-session.js.map +1 -1
  197. package/lib/tool/native-session.d.ts +9 -0
  198. package/lib/tool/native-session.d.ts.map +1 -1
  199. package/lib/tool/native-session.js +47 -1
  200. package/lib/tool/native-session.js.map +1 -1
  201. package/lib/typert.host.js +338 -120
  202. package/lib/typert.remote-client.d.ts +9 -5
  203. package/lib/typert.remote-client.d.ts.map +1 -1
  204. package/lib/typert.remote-client.js +338 -120
  205. package/package.json +1 -5
  206. package/lib/client/permission/worktree-permission-icon.d.ts +0 -7
  207. package/lib/client/permission/worktree-permission-icon.d.ts.map +0 -1
  208. package/lib/client/permission/worktree-permission-icon.js +0 -119
  209. package/lib/client/permission/worktree-permission-icon.js.map +0 -1
  210. package/lib/client/permission/worktree-permission.d.ts +0 -21
  211. package/lib/client/permission/worktree-permission.d.ts.map +0 -1
  212. package/lib/client/permission/worktree-permission.js +0 -78
  213. package/lib/client/permission/worktree-permission.js.map +0 -1
  214. package/lib/client/surface/components/AccessConfirmation.d.ts +0 -9
  215. package/lib/client/surface/components/AccessConfirmation.d.ts.map +0 -1
  216. package/lib/client/surface/components/AccessConfirmation.js +0 -18
  217. package/lib/client/surface/components/AccessConfirmation.js.map +0 -1
  218. package/lib/contract/worktree-permission.d.ts +0 -75
  219. package/lib/contract/worktree-permission.d.ts.map +0 -1
  220. package/lib/contract/worktree-permission.js +0 -32
  221. package/lib/contract/worktree-permission.js.map +0 -1
  222. package/lib/host/permission-preset-append.d.ts +0 -15
  223. package/lib/host/permission-preset-append.d.ts.map +0 -1
  224. package/lib/host/permission-preset-append.js +0 -63
  225. package/lib/host/permission-preset-append.js.map +0 -1
  226. package/lib/host/worktree-permission-manager.d.ts +0 -14
  227. package/lib/host/worktree-permission-manager.d.ts.map +0 -1
  228. package/lib/host/worktree-permission-manager.js +0 -115
  229. package/lib/host/worktree-permission-manager.js.map +0 -1
  230. package/lib/host/worktree-permission.d.ts +0 -51
  231. package/lib/host/worktree-permission.d.ts.map +0 -1
  232. package/lib/host/worktree-permission.js +0 -251
  233. package/lib/host/worktree-permission.js.map +0 -1
  234. package/lib/manage/worktree-permission.d.ts +0 -3
  235. package/lib/manage/worktree-permission.d.ts.map +0 -1
  236. package/lib/manage/worktree-permission.js +0 -3
  237. package/lib/manage/worktree-permission.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cerbur/clutch-dsh-worktree",
3
- "version": "0.1.21",
3
+ "version": "0.1.23",
4
4
  "description": "Adds a Worktree view to DSH Web UI that groups Sessions by Git worktree while keeping DSH as the source of truth.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -24,10 +24,6 @@
24
24
  "import": "./lib/index.js",
25
25
  "default": "./lib/index.js"
26
26
  },
27
- "./permission-presets": {
28
- "types": "./lib/host/permission-preset-append.d.ts",
29
- "default": "./lib/host/permission-preset-append.js"
30
- },
31
27
  "./contract": {
32
28
  "types": "./lib/contract/index.d.ts",
33
29
  "import": "./lib/contract/index.js",
@@ -1,7 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"worktree-permission-icon.d.ts","sourceRoot":"","sources":["../../../src/client/permission/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"}
@@ -1,119 +0,0 @@
1
- const PLUGIN_ID = '@cerbur/clutch-dsh-worktree';
2
- const STYLE_ID = `${PLUGIN_ID}/permission-icon`;
3
- const WORKTREE_PERMISSION_LABEL = 'Worktree Full Access';
4
- /** DOM marker owned only by this plugin's permission icon decorator. */
5
- export const WORKTREE_PERMISSION_ICON_ATTRIBUTE = 'data-clutch-dsh-worktree-permission-icon';
6
- // The native DSH menu has no icon extension point for host-configured values.
7
- // A branch glyph keeps the custom option visually distinct while preserving
8
- // the same 16px geometry as the built-in permission glyphs.
9
- const ICON_SVG = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M13.0762 1.37207C14.0846 1.37228 14.9021 2.19077 14.9023 3.19922C14.9022 4.20772 14.0847 5.02518 13.0762 5.02539C12.2967 5.02539 11.6325 4.53691 11.3701 3.84961H4.35547C4.79397 4.26458 5.15861 4.7644 5.41699 5.33496L7.10645 9.06738C7.88526 10.7875 9.55104 11.9228 11.4189 12.0371C11.7085 11.4109 12.3411 10.9756 13.0762 10.9756C14.0843 10.9759 14.9023 11.7936 14.9023 12.8018C14.9023 13.81 14.0843 14.6277 13.0762 14.6279C12.2534 14.6279 11.5574 14.0832 11.3291 13.335C8.9868 13.1879 6.89981 11.7612 5.92285 9.60352L4.23242 5.87109C3.67503 4.64033 2.44878 3.84961 1.09766 3.84961V2.54883C1.10665 2.54883 1.11601 2.54975 1.125 2.5498L11.3701 2.54883C11.6326 1.86151 12.2969 1.37207 13.0762 1.37207ZM13.0762 12.2764C12.7858 12.2764 12.5508 12.5114 12.5508 12.8018C12.5508 13.0921 12.7858 13.3281 13.0762 13.3281C13.3664 13.3279 13.6025 13.092 13.6025 12.8018C13.6025 12.5115 13.3664 12.2766 13.0762 12.2764ZM13.0762 2.67285C12.7855 2.67285 12.55 2.90861 12.5498 3.19922C12.5499 3.48987 12.7855 3.72559 13.0762 3.72559C13.3667 3.72538 13.6024 3.48975 13.6025 3.19922C13.6023 2.90874 13.3666 2.67306 13.0762 2.67285Z" fill="black"/></svg>';
10
- function iconStyles() {
11
- const mask = `url("data:image/svg+xml,${encodeURIComponent(ICON_SVG)}")`;
12
- return `
13
- [${WORKTREE_PERMISSION_ICON_ATTRIBUTE}]::before {
14
- content: "";
15
- display: inline-block;
16
- flex: 0 0 auto;
17
- width: 16px;
18
- height: 16px;
19
- background-color: var(--dsw-alias-label-tertiary, currentColor);
20
- -webkit-mask-image: ${mask};
21
- mask-image: ${mask};
22
- -webkit-mask-position: center;
23
- mask-position: center;
24
- -webkit-mask-repeat: no-repeat;
25
- mask-repeat: no-repeat;
26
- -webkit-mask-size: contain;
27
- mask-size: contain;
28
- }
29
- [${WORKTREE_PERMISSION_ICON_ATTRIBUTE}="trigger"]::before {
30
- width: 14px;
31
- height: 14px;
32
- }
33
- @container (max-width: 460px) {
34
- [${WORKTREE_PERMISSION_ICON_ATTRIBUTE}="trigger"] > span:first-of-type {
35
- display: none;
36
- }
37
- }
38
- `;
39
- }
40
- function normalizedText(element) {
41
- return (element.textContent ?? '').replace(/\s+/g, ' ').trim();
42
- }
43
- function isWorktreeMenuItem(element) {
44
- return element.matches('button[role="menuitem"]') &&
45
- normalizedText(element) === WORKTREE_PERMISSION_LABEL &&
46
- element.closest('[role="menu"]') !== null;
47
- }
48
- function isWorktreeTrigger(element) {
49
- if (!element.matches('button[aria-label]'))
50
- return false;
51
- const label = element.getAttribute('aria-label') ?? '';
52
- return /^(?:access mode,\s*current:\s*|访问模式,当前:\s*)worktree full access$/iu.test(label.trim());
53
- }
54
- /** Mark the native custom permission row and trigger for CSS decoration. */
55
- export function decorateWorktreePermissionIcons(document) {
56
- for (const marked of document.querySelectorAll(`[${WORKTREE_PERMISSION_ICON_ATTRIBUTE}]`)) {
57
- const kind = marked.getAttribute(WORKTREE_PERMISSION_ICON_ATTRIBUTE);
58
- if ((kind === 'menu' && !isWorktreeMenuItem(marked)) ||
59
- (kind === 'trigger' && !isWorktreeTrigger(marked))) {
60
- marked.removeAttribute(WORKTREE_PERMISSION_ICON_ATTRIBUTE);
61
- }
62
- }
63
- for (const item of document.querySelectorAll('button[role="menuitem"]')) {
64
- if (isWorktreeMenuItem(item)) {
65
- item.setAttribute(WORKTREE_PERMISSION_ICON_ATTRIBUTE, 'menu');
66
- }
67
- }
68
- for (const button of document.querySelectorAll('button[aria-label]')) {
69
- if (isWorktreeTrigger(button)) {
70
- button.setAttribute(WORKTREE_PERMISSION_ICON_ATTRIBUTE, 'trigger');
71
- }
72
- }
73
- }
74
- /** Install the Worktree permission icon and return a plugin-local disposer. */
75
- export function installWorktreePermissionIcon(document) {
76
- for (const existing of document.querySelectorAll('style[data-plugin-css]')) {
77
- if (existing.getAttribute('data-plugin-css') === STYLE_ID)
78
- existing.remove();
79
- }
80
- const style = document.createElement('style');
81
- style.setAttribute('data-plugin', PLUGIN_ID);
82
- style.setAttribute('data-plugin-css', STYLE_ID);
83
- style.textContent = iconStyles();
84
- document.head.appendChild(style);
85
- let active = true;
86
- let queued = false;
87
- const scan = () => {
88
- if (!active || queued)
89
- return;
90
- queued = true;
91
- queueMicrotask(() => {
92
- queued = false;
93
- if (active)
94
- decorateWorktreePermissionIcons(document);
95
- });
96
- };
97
- decorateWorktreePermissionIcons(document);
98
- const observer = typeof MutationObserver === 'function'
99
- ? new MutationObserver(scan)
100
- : undefined;
101
- observer?.observe(document.documentElement, {
102
- attributes: true,
103
- attributeFilter: ['aria-label'],
104
- characterData: true,
105
- childList: true,
106
- subtree: true,
107
- });
108
- return () => {
109
- if (!active)
110
- return;
111
- active = false;
112
- observer?.disconnect();
113
- style.remove();
114
- for (const marked of document.querySelectorAll(`[${WORKTREE_PERMISSION_ICON_ATTRIBUTE}]`)) {
115
- marked.removeAttribute(WORKTREE_PERMISSION_ICON_ATTRIBUTE);
116
- }
117
- };
118
- }
119
- //# sourceMappingURL=worktree-permission-icon.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worktree-permission-icon.js","sourceRoot":"","sources":["../../../src/client/permission/worktree-permission-icon.ts"],"names":[],"mappings":"AAAA,MAAM,SAAS,GAAG,6BAA6B,CAAC;AAChD,MAAM,QAAQ,GAAG,GAAG,SAAS,kBAAkB,CAAC;AAChD,MAAM,yBAAyB,GAAG,sBAAsB,CAAC;AAEzD,wEAAwE;AACxE,MAAM,CAAC,MAAM,kCAAkC,GAC7C,0CAA0C,CAAC;AAE7C,8EAA8E;AAC9E,4EAA4E;AAC5E,4DAA4D;AAC5D,MAAM,QAAQ,GAAG,qrCAAqrC,CAAC;AAEvsC,SAAS,UAAU;IACjB,MAAM,IAAI,GAAG,2BAA2B,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC;IACzE,OAAO;GACN,kCAAkC;;;;;;;wBAOb,IAAI;gBACZ,IAAI;;;;;;;;GAQjB,kCAAkC;;;;;KAKhC,kCAAkC;;;;CAItC,CAAC;AACF,CAAC;AAED,SAAS,cAAc,CAAC,OAAgB;IACtC,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AACjE,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAgB;IAC1C,OAAO,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC;QAC/C,cAAc,CAAC,OAAO,CAAC,KAAK,yBAAyB;QACrD,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;AAC9C,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAgB;IACzC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC;QAAE,OAAO,KAAK,CAAC;IACzD,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IACvD,OAAO,oEAAoE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AACjG,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,+BAA+B,CAAC,QAAkB;IAChE,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,IAAI,kCAAkC,GAAG,CAAC,EAAE,CAAC;QAC1F,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,kCAAkC,CAAC,CAAC;QACrE,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAClD,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YACrD,MAAM,CAAC,eAAe,CAAC,kCAAkC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,EAAE,CAAC;QACxE,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,YAAY,CAAC,kCAAkC,EAAE,MAAM,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACrE,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,YAAY,CAAC,kCAAkC,EAAE,SAAS,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,6BAA6B,CAAC,QAAkB;IAC9D,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,EAAE,CAAC;QAC3E,IAAI,QAAQ,CAAC,YAAY,CAAC,iBAAiB,CAAC,KAAK,QAAQ;YAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC/E,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9C,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAC7C,KAAK,CAAC,YAAY,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;IAChD,KAAK,CAAC,WAAW,GAAG,UAAU,EAAE,CAAC;IACjC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAEjC,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,MAAM,IAAI,GAAG,GAAS,EAAE;QACtB,IAAI,CAAC,MAAM,IAAI,MAAM;YAAE,OAAO;QAC9B,MAAM,GAAG,IAAI,CAAC;QACd,cAAc,CAAC,GAAG,EAAE;YAClB,MAAM,GAAG,KAAK,CAAC;YACf,IAAI,MAAM;gBAAE,+BAA+B,CAAC,QAAQ,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,+BAA+B,CAAC,QAAQ,CAAC,CAAC;IAE1C,MAAM,QAAQ,GAAG,OAAO,gBAAgB,KAAK,UAAU;QACrD,CAAC,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC;QAC5B,CAAC,CAAC,SAAS,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,eAAe,EAAE;QAC1C,UAAU,EAAE,IAAI;QAChB,eAAe,EAAE,CAAC,YAAY,CAAC;QAC/B,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IAEH,OAAO,GAAG,EAAE;QACV,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,GAAG,KAAK,CAAC;QACf,QAAQ,EAAE,UAAU,EAAE,CAAC;QACvB,KAAK,CAAC,MAAM,EAAE,CAAC;QACf,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,IAAI,kCAAkC,GAAG,CAAC,EAAE,CAAC;YAC1F,MAAM,CAAC,eAAe,CAAC,kCAAkC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -1,21 +0,0 @@
1
- export interface WorktreeFullAccessConfirmationInput {
2
- readonly workspaceId: string;
3
- readonly worktreeId: string;
4
- readonly sessionId: string;
5
- readonly cwd: string;
6
- }
7
- export interface WorktreeFullAccessConfirmationController {
8
- readonly getSnapshot: () => WorktreeFullAccessConfirmationInput | undefined;
9
- readonly subscribe: (listener: () => void) => () => void;
10
- readonly request: (input: WorktreeFullAccessConfirmationInput) => Promise<boolean>;
11
- readonly resolve: (confirmed: boolean) => void;
12
- readonly dispose: () => void;
13
- }
14
- export declare function worktreeFullAccessConfirmationMessage(input: WorktreeFullAccessConfirmationInput, locale?: string): string;
15
- /**
16
- * Coordinate async permission requests with the one in-page confirmation
17
- * rendered by the Worktree surface. Requests are serialized so concurrent
18
- * Worktree Session creations cannot replace one another's dialog.
19
- */
20
- export declare function createWorktreeFullAccessConfirmationController(): WorktreeFullAccessConfirmationController;
21
- //# sourceMappingURL=worktree-permission.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worktree-permission.d.ts","sourceRoot":"","sources":["../../../src/client/permission/worktree-permission.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,wCAAwC;IACvD,QAAQ,CAAC,WAAW,EAAE,MAAM,mCAAmC,GAAG,SAAS,CAAC;IAC5E,QAAQ,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;IACzD,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,mCAAmC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACnF,QAAQ,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAWD,wBAAgB,qCAAqC,CACnD,KAAK,EAAE,mCAAmC,EAC1C,MAAM,SAAiC,GACtC,MAAM,CAKR;AAED;;;;GAIG;AACH,wBAAgB,8CAA8C,IAC5D,wCAAwC,CA6DzC"}
@@ -1,78 +0,0 @@
1
- const englishReason = 'This Worktree Session may need Git metadata and linked Worktree files outside the Session directory. '
2
- + 'Full Access disables filesystem confinement for this Session; approval prompts remain enabled, '
3
- + 'and network and process policy is unchanged. The native menu may show Custom when the named preset is unavailable. Continue?';
4
- const chineseReason = '这个 Worktree Session 可能需要访问 Session 目录之外的 Git 元数据和关联 Worktree 文件。'
5
- + '完全访问会关闭此 Session 的文件系统沙箱,但会保留审批提示,网络和进程策略不变。'
6
- + '命名预设未加载时,原生菜单可能显示 Custom(自定义)。是否继续?';
7
- export function worktreeFullAccessConfirmationMessage(input, locale = globalThis.navigator?.language) {
8
- const reason = locale?.toLocaleLowerCase().startsWith('zh') === true
9
- ? chineseReason
10
- : englishReason;
11
- return `${reason}\n\nWorktree: ${input.cwd}`;
12
- }
13
- /**
14
- * Coordinate async permission requests with the one in-page confirmation
15
- * rendered by the Worktree surface. Requests are serialized so concurrent
16
- * Worktree Session creations cannot replace one another's dialog.
17
- */
18
- export function createWorktreeFullAccessConfirmationController() {
19
- let active;
20
- const queue = [];
21
- const listeners = new Set();
22
- let disposed = false;
23
- const notify = () => {
24
- for (const listener of listeners)
25
- listener();
26
- };
27
- const showNext = () => {
28
- if (active !== undefined)
29
- return;
30
- active = queue.shift();
31
- notify();
32
- };
33
- const controller = {
34
- getSnapshot: () => active?.input,
35
- subscribe: (listener) => {
36
- listeners.add(listener);
37
- return () => {
38
- listeners.delete(listener);
39
- };
40
- },
41
- request: (input) => {
42
- if (disposed)
43
- return Promise.resolve(false);
44
- const existing = [active, ...queue].find(pending => pending !== undefined &&
45
- pending.input.workspaceId === input.workspaceId &&
46
- pending.input.worktreeId === input.worktreeId &&
47
- pending.input.sessionId === input.sessionId &&
48
- pending.input.cwd === input.cwd);
49
- if (existing !== undefined)
50
- return existing.promise;
51
- let settle;
52
- const promise = new Promise(resolve => { settle = resolve; });
53
- queue.push({ input: { ...input }, resolve: settle, promise });
54
- showNext();
55
- return promise;
56
- },
57
- resolve: (confirmed) => {
58
- if (active === undefined)
59
- return;
60
- const current = active;
61
- active = undefined;
62
- current.resolve(confirmed);
63
- showNext();
64
- },
65
- dispose: () => {
66
- if (disposed)
67
- return;
68
- disposed = true;
69
- active?.resolve(false);
70
- active = undefined;
71
- for (const pending of queue.splice(0))
72
- pending.resolve(false);
73
- notify();
74
- },
75
- };
76
- return controller;
77
- }
78
- //# sourceMappingURL=worktree-permission.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worktree-permission.js","sourceRoot":"","sources":["../../../src/client/permission/worktree-permission.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import type { WorktreeSurfaceProps } from '../types.js';
2
- import type { useSurfaceSources } from '../state/useSurfaceSources.js';
3
- type Input = {
4
- source: Pick<ReturnType<typeof useSurfaceSources>, 'fullAccessConfirmationSnapshot' | 'fullAccessAcknowledged' | 'setFullAccessAcknowledged'>;
5
- props: Pick<WorktreeSurfaceProps, 't' | 'fullAccessConfirmation'>;
6
- };
7
- export declare function AccessConfirmation({ source, props }: Input): import("react").JSX.Element;
8
- export {};
9
- //# sourceMappingURL=AccessConfirmation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AccessConfirmation.d.ts","sourceRoot":"","sources":["../../../../src/client/surface/components/AccessConfirmation.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,KAAK,KAAK,GAAG;IACX,MAAM,EAAE,IAAI,CACV,UAAU,CAAC,OAAO,iBAAiB,CAAC,EACpC,gCAAgC,GAAG,wBAAwB,GAAG,2BAA2B,CAC1F,CAAC;IACF,KAAK,EAAE,IAAI,CAAC,oBAAoB,EAAE,GAAG,GAAG,wBAAwB,CAAC,CAAC;CACnE,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,+BAkC1D"}
@@ -1,18 +0,0 @@
1
- import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { RiskConfirmation } from '@deepseek-ai/dsh-client-ui-primitives';
3
- export function AccessConfirmation({ source, props }) {
4
- const { fullAccessConfirmationSnapshot, fullAccessAcknowledged, setFullAccessAcknowledged } = source;
5
- const { t, fullAccessConfirmation } = props;
6
- return (_jsx(_Fragment, { children: _jsx(RiskConfirmation, { open: fullAccessConfirmationSnapshot !== undefined, title: t('permission.fullAccessTitle'), description: fullAccessConfirmationSnapshot === undefined
7
- ? ''
8
- : t('permission.fullAccessDescription', {
9
- cwd: fullAccessConfirmationSnapshot.cwd,
10
- }), acknowledgeLabel: t('permission.fullAccessAcknowledge'), cancelLabel: t('dialog.cancel'), closeLabel: t('dialog.close'), confirmLabel: t('permission.fullAccessEnable'), acknowledged: fullAccessAcknowledged, onAcknowledgedChange: setFullAccessAcknowledged, onCancel: () => {
11
- setFullAccessAcknowledged(false);
12
- fullAccessConfirmation?.resolve(false);
13
- }, onConfirm: () => {
14
- setFullAccessAcknowledged(false);
15
- fullAccessConfirmation?.resolve(true);
16
- } }) }));
17
- }
18
- //# sourceMappingURL=AccessConfirmation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AccessConfirmation.js","sourceRoot":"","sources":["../../../../src/client/surface/components/AccessConfirmation.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAYzE,MAAM,UAAU,kBAAkB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAS;IACzD,MAAM,EAAE,8BAA8B,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,GACzF,MAAM,CAAC;IACT,MAAM,EAAE,CAAC,EAAE,sBAAsB,EAAE,GAAG,KAAK,CAAC;IAE5C,OAAO,CACL,4BACE,KAAC,gBAAgB,IACf,IAAI,EAAE,8BAA8B,KAAK,SAAS,EAClD,KAAK,EAAE,CAAC,CAAC,4BAA4B,CAAC,EACtC,WAAW,EACT,8BAA8B,KAAK,SAAS;gBAC1C,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,CAAC,CAAC,kCAAkC,EAAE;oBACpC,GAAG,EAAE,8BAA8B,CAAC,GAAG;iBACxC,CAAC,EAER,gBAAgB,EAAE,CAAC,CAAC,kCAAkC,CAAC,EACvD,WAAW,EAAE,CAAC,CAAC,eAAe,CAAC,EAC/B,UAAU,EAAE,CAAC,CAAC,cAAc,CAAC,EAC7B,YAAY,EAAE,CAAC,CAAC,6BAA6B,CAAC,EAC9C,YAAY,EAAE,sBAAsB,EACpC,oBAAoB,EAAE,yBAAyB,EAC/C,QAAQ,EAAE,GAAG,EAAE;gBACb,yBAAyB,CAAC,KAAK,CAAC,CAAC;gBACjC,sBAAsB,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC,EACD,SAAS,EAAE,GAAG,EAAE;gBACd,yBAAyB,CAAC,KAAK,CAAC,CAAC;gBACjC,sBAAsB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC,GACD,GACD,CACJ,CAAC;AACJ,CAAC"}
@@ -1,75 +0,0 @@
1
- /**
2
- * Browser-safe Worktree permission vocabulary. DSH runtime services are
3
- * intentionally absent; the Host adapts them to these plain values.
4
- */
5
- export declare const WORKTREE_FULL_ACCESS_PRESET: "worktree-full-access";
6
- export type WorktreePermissionBinding = 'active' | 'detached' | 'main' | 'unbound';
7
- export type WorktreePermissionSandboxMode = 'read-only' | 'workspace-write' | 'danger-full-access';
8
- export type WorktreePermissionApprovalPolicy = 'ask' | 'never';
9
- export interface WorktreePermissionCurrentState {
10
- readonly preset?: string;
11
- readonly sandboxMode?: WorktreePermissionSandboxMode;
12
- readonly approvalPolicy?: WorktreePermissionApprovalPolicy;
13
- /** True when the current process has observed an explicit native UI choice. */
14
- readonly explicitUserOverride: boolean;
15
- }
16
- export interface WorktreePermissionCapability {
17
- readonly permissionService: boolean;
18
- readonly fullPreset: boolean;
19
- readonly workspaceWrite: boolean;
20
- /** Native per-Session sandbox/approval write and readback, independent of the catalog. */
21
- readonly sessionPolicy?: boolean;
22
- }
23
- export interface WorktreePermissionDecisionInput {
24
- readonly binding: WorktreePermissionBinding;
25
- readonly current: WorktreePermissionCurrentState;
26
- readonly capability: WorktreePermissionCapability;
27
- }
28
- export type WorktreePermissionDecision = {
29
- readonly kind: 'apply-full';
30
- readonly preset: typeof WORKTREE_FULL_ACCESS_PRESET;
31
- } | {
32
- readonly kind: 'preserve-user-restriction';
33
- } | {
34
- readonly kind: 'unverified';
35
- } | {
36
- readonly kind: 'fallback-workspace-write';
37
- } | {
38
- readonly kind: 'normalize-workspace-write';
39
- } | {
40
- readonly kind: 'no-op';
41
- };
42
- export type WorktreePermissionStatus = 'full-applied' | 'already-full' | 'confirmation-required' | 'fallback-workspace-write' | 'user-restricted' | 'unverified' | 'normalized-workspace-write' | 'no-op';
43
- export interface WorktreePermissionResult {
44
- readonly status: WorktreePermissionStatus;
45
- readonly preset?: string;
46
- readonly sandboxMode?: WorktreePermissionSandboxMode;
47
- readonly approvalPolicy?: WorktreePermissionApprovalPolicy;
48
- /** Session IDs considered by a detached-worktree normalization batch. */
49
- readonly sessionIds?: readonly string[];
50
- readonly retryable: boolean;
51
- }
52
- export interface WorktreePermissionRequest {
53
- readonly workspaceId: string;
54
- readonly worktreeId: string;
55
- readonly sessionId: string;
56
- readonly binding?: WorktreePermissionBinding;
57
- readonly confirmed?: boolean;
58
- }
59
- export interface WorktreePermissionNormalizationRequest {
60
- readonly workspaceId: string;
61
- readonly worktreeId: string;
62
- }
63
- /** Browser-facing permission operation; it accepts no arbitrary DSH policy. */
64
- export interface WorktreePermissionManager {
65
- ensureWorktreePermission(input: WorktreePermissionRequest): Promise<WorktreePermissionResult>;
66
- normalizeDetachedWorktreePermissions(input: WorktreePermissionNormalizationRequest): Promise<WorktreePermissionResult>;
67
- }
68
- /** Host-only adapter used by the Host composition layer. */
69
- export interface WorktreePermissionPort {
70
- ensure(input: WorktreePermissionRequest): Promise<WorktreePermissionResult>;
71
- normalize(input: WorktreePermissionRequest): Promise<WorktreePermissionResult>;
72
- }
73
- /** Decide one permission transition without reading or mutating DSH state. */
74
- export declare function decideWorktreePermission(input: WorktreePermissionDecisionInput): WorktreePermissionDecision;
75
- //# sourceMappingURL=worktree-permission.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worktree-permission.d.ts","sourceRoot":"","sources":["../../src/contract/worktree-permission.ts"],"names":[],"mappings":"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"}
@@ -1,32 +0,0 @@
1
- /**
2
- * Browser-safe Worktree permission vocabulary. DSH runtime services are
3
- * intentionally absent; the Host adapts them to these plain values.
4
- */
5
- export const WORKTREE_FULL_ACCESS_PRESET = 'worktree-full-access';
6
- function isFullAccess(current) {
7
- return (current.preset === WORKTREE_FULL_ACCESS_PRESET ||
8
- current.sandboxMode === 'danger-full-access');
9
- }
10
- /** Decide one permission transition without reading or mutating DSH state. */
11
- export function decideWorktreePermission(input) {
12
- if (input.binding === 'main' || input.binding === 'unbound')
13
- return { kind: 'no-op' };
14
- if (input.binding === 'detached') {
15
- return isFullAccess(input.current)
16
- ? { kind: 'normalize-workspace-write' }
17
- : { kind: 'no-op' };
18
- }
19
- if (input.current.explicitUserOverride)
20
- return { kind: 'preserve-user-restriction' };
21
- if (isFullAccess(input.current))
22
- return { kind: 'no-op' };
23
- if (!input.capability.permissionService)
24
- return { kind: 'unverified' };
25
- if (input.capability.fullPreset || input.capability.sessionPolicy) {
26
- return { kind: 'apply-full', preset: WORKTREE_FULL_ACCESS_PRESET };
27
- }
28
- if (input.capability.workspaceWrite)
29
- return { kind: 'fallback-workspace-write' };
30
- return { kind: 'unverified' };
31
- }
32
- //# sourceMappingURL=worktree-permission.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worktree-permission.js","sourceRoot":"","sources":["../../src/contract/worktree-permission.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,sBAA+B,CAAC;AAwF3E,SAAS,YAAY,CAAC,OAAuC;IAC3D,OAAO,CACL,OAAO,CAAC,MAAM,KAAK,2BAA2B;QAC9C,OAAO,CAAC,WAAW,KAAK,oBAAoB,CAC7C,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,wBAAwB,CACtC,KAAsC;IAEtC,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAEtF,IAAI,KAAK,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QACjC,OAAO,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC;YAChC,CAAC,CAAC,EAAE,IAAI,EAAE,2BAA2B,EAAE;YACvC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACxB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,oBAAoB;QAAE,OAAO,EAAE,IAAI,EAAE,2BAA2B,EAAE,CAAC;IACrF,IAAI,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC1D,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,iBAAiB;QAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IACvE,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QAClE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,2BAA2B,EAAE,CAAC;IACrE,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,CAAC,cAAc;QAAE,OAAO,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC;IACjF,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;AAChC,CAAC"}
@@ -1,15 +0,0 @@
1
- import { type Context } from '@deepseek-ai/cordis';
2
- declare module '@deepseek-ai/cordis' {
3
- interface Context {
4
- /** Startup gate for the lifecycle-owned permission config contribution. */
5
- clutchWorktreePermissionPresets: boolean;
6
- }
7
- }
8
- /**
9
- * Append one preset before the native permission service validates its config.
10
- * The bundle gates that entry on this contribution, so the hook is installed
11
- * before its first activation and is removed with the plugin. The raw Loader
12
- * config and the native runtime catalog (including Auto review) remain owned by DSH.
13
- */
14
- export declare function apply(ctx: Context): void;
15
- //# sourceMappingURL=permission-preset-append.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"permission-preset-append.d.ts","sourceRoot":"","sources":["../../src/host/permission-preset-append.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,OAAO,EAAc,MAAM,qBAAqB,CAAC;AAGtF,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,OAAO;QACf,2EAA2E;QAC3E,+BAA+B,EAAE,OAAO,CAAC;KAC1C;CACF;AAiBD;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAkDxC"}
@@ -1,63 +0,0 @@
1
- import { Inject, resolveConfig } from '@deepseek-ai/cordis';
2
- import { WORKTREE_FULL_ACCESS_PRESET } from '../contract/index.js';
3
- function isRecord(value) {
4
- return typeof value === 'object' && value !== null && !Array.isArray(value);
5
- }
6
- /**
7
- * Append one preset before the native permission service validates its config.
8
- * The bundle gates that entry on this contribution, so the hook is installed
9
- * before its first activation and is removed with the plugin. The raw Loader
10
- * config and the native runtime catalog (including Auto review) remain owned by DSH.
11
- */
12
- export function apply(ctx) {
13
- let permissionFiber;
14
- // Registered first, so it runs after the hook and startup gate are removed.
15
- // Removing the bundle may remount the native entry before removing this row;
16
- // re-resolve that still-live fiber from its untouched raw config in that case.
17
- ctx.effect(() => async () => {
18
- if (ctx.root.fiber.uid === null ||
19
- !permissionFiber ||
20
- permissionFiber.uid === null ||
21
- !permissionFiber.entry)
22
- return;
23
- // HMR still needs the gate until the replacement contributor activates.
24
- if (Object.hasOwn(Inject.resolve(permissionFiber.entry.options.inject), 'clutchWorktreePermissionPresets'))
25
- return;
26
- // Older Loaders merge changed injections into the live fiber. Remove only
27
- // our withdrawn gate before reactivating the unchanged native configuration.
28
- delete permissionFiber.inject.clutchWorktreePermissionPresets;
29
- await permissionFiber.update(permissionFiber.entry.options.config, true);
30
- await permissionFiber.await();
31
- });
32
- ctx.on('internal/config', function (_config, next) {
33
- const raw = next();
34
- const entry = this.entry;
35
- if (entry?.options.id !== 'permission' ||
36
- entry.options.name !== '@deepseek-ai/dsh-permission-presets' ||
37
- this.parent.fiber?.entry === entry ||
38
- this.runtime === null)
39
- return raw;
40
- permissionFiber = this;
41
- // Obtain schema defaults from the native plugin instead of copying its
42
- // built-in table. Keep all other raw fields, including volatile settings.
43
- const resolved = resolveConfig(this.runtime, raw);
44
- if (!isRecord(resolved) || !isRecord(resolved.presets))
45
- return raw;
46
- if (Object.hasOwn(resolved.presets, WORKTREE_FULL_ACCESS_PRESET))
47
- return raw;
48
- return {
49
- ...(isRecord(raw) ? raw : {}),
50
- presets: {
51
- ...resolved.presets,
52
- [WORKTREE_FULL_ACCESS_PRESET]: {
53
- sandbox: 'danger-full-access',
54
- approval: 'ask',
55
- name: 'Worktree Full Access',
56
- description: 'Full file access for Worktree metadata while keeping approval prompts enabled.',
57
- },
58
- },
59
- };
60
- }, { global: true, prepend: true });
61
- ctx.provide('clutchWorktreePermissionPresets', true);
62
- }
63
- //# sourceMappingURL=permission-preset-append.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"permission-preset-append.js","sourceRoot":"","sources":["../../src/host/permission-preset-append.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAA4B,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAoBnE,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,KAAK,CAAC,GAAY;IAChC,IAAI,eAA4C,CAAC;IACjD,4EAA4E;IAC5E,6EAA6E;IAC7E,+EAA+E;IAC/E,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE;QAC1B,IACE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI;YAC3B,CAAC,eAAe;YAChB,eAAe,CAAC,GAAG,KAAK,IAAI;YAC5B,CAAC,eAAe,CAAC,KAAK;YACtB,OAAO;QACT,wEAAwE;QACxE,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,iCAAiC,CAAC;YAAE,OAAO;QACnH,0EAA0E;QAC1E,6EAA6E;QAC7E,OAAO,eAAe,CAAC,MAAM,CAAC,+BAA+B,CAAC;QAC9D,MAAM,eAAe,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACzE,MAAM,eAAe,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;IACH,GAAG,CAAC,EAAE,CAAC,iBAAiB,EAAE,UAAuB,OAAO,EAAE,IAAI;QAC5D,MAAM,GAAG,GAAY,IAAI,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAI,IAAwB,CAAC,KAAK,CAAC;QAC9C,IACE,KAAK,EAAE,OAAO,CAAC,EAAE,KAAK,YAAY;YAClC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,qCAAqC;YAC3D,IAAI,CAAC,MAAM,CAAC,KAAqC,EAAE,KAAK,KAAK,KAAK;YACnE,IAAI,CAAC,OAAO,KAAK,IAAI;YACrB,OAAO,GAAG,CAAC;QACb,eAAe,GAAG,IAAuB,CAAC;QAE1C,uEAAuE;QACvE,0EAA0E;QAC1E,MAAM,QAAQ,GAAY,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO,GAAG,CAAC;QACnE,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAC;YAAE,OAAO,GAAG,CAAC;QAC7E,OAAO;YACL,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE;gBACP,GAAG,QAAQ,CAAC,OAAO;gBACnB,CAAC,2BAA2B,CAAC,EAAE;oBAC7B,OAAO,EAAE,oBAAoB;oBAC7B,QAAQ,EAAE,KAAK;oBACf,IAAI,EAAE,sBAAsB;oBAC5B,WAAW,EAAE,gFAAgF;iBAC9F;aACF;SACF,CAAC;IACJ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,GAAG,CAAC,OAAO,CAAC,iCAAiC,EAAE,IAAI,CAAC,CAAC;AACvD,CAAC"}
@@ -1,14 +0,0 @@
1
- import type { WorktreeManager, WorktreePermissionManager, WorktreePermissionPort } from '../contract/index.js';
2
- import type { DshReadAdapter } from '../provider/types.js';
3
- export interface WorktreePermissionManagerOptions {
4
- readonly manager: Pick<WorktreeManager, 'listWorktrees' | 'listBindings'>;
5
- readonly dsh: DshReadAdapter;
6
- readonly permissions?: WorktreePermissionPort;
7
- }
8
- /**
9
- * Compose the browser-facing permission operation with authoritative Worktree/Session
10
- * facts. The caller cannot turn this into a general Session permission endpoint because
11
- * the Host re-checks the active relation on every invocation.
12
- */
13
- export declare function createWorktreePermissionManager(options: WorktreePermissionManagerOptions): WorktreePermissionManager;
14
- //# sourceMappingURL=worktree-permission-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worktree-permission-manager.d.ts","sourceRoot":"","sources":["../../src/host/worktree-permission-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,yBAAyB,EAEzB,sBAAsB,EAGvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,eAAe,GAAG,cAAc,CAAC,CAAC;IAC1E,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,sBAAsB,CAAC;CAC/C;AAyBD;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,gCAAgC,GACxC,yBAAyB,CAkJ3B"}