@cerbur/clutch-dsh-worktree 0.1.21 → 0.1.22

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 (214) hide show
  1. package/README.md +39 -38
  2. package/README.zh.md +33 -28
  3. package/cordis.patch.yml +0 -8
  4. package/lib/client/WorktreeSurface.d.ts.map +1 -1
  5. package/lib/client/WorktreeSurface.js +2 -3
  6. package/lib/client/WorktreeSurface.js.map +1 -1
  7. package/lib/client/entry.d.ts.map +1 -1
  8. package/lib/client/entry.js +22 -39
  9. package/lib/client/entry.js.map +1 -1
  10. package/lib/client/index.d.ts +0 -3
  11. package/lib/client/index.d.ts.map +1 -1
  12. package/lib/client/index.js +0 -2
  13. package/lib/client/index.js.map +1 -1
  14. package/lib/client/locales.d.ts +0 -26
  15. package/lib/client/locales.d.ts.map +1 -1
  16. package/lib/client/locales.js +0 -26
  17. package/lib/client/locales.js.map +1 -1
  18. package/lib/client/restart-notice.d.ts +1 -4
  19. package/lib/client/restart-notice.d.ts.map +1 -1
  20. package/lib/client/restart-notice.js +0 -20
  21. package/lib/client/restart-notice.js.map +1 -1
  22. package/lib/client/session/local-session.d.ts +27 -0
  23. package/lib/client/session/local-session.d.ts.map +1 -0
  24. package/lib/client/session/local-session.js +61 -0
  25. package/lib/client/session/local-session.js.map +1 -0
  26. package/lib/client/session/session-rename.d.ts.map +1 -1
  27. package/lib/client/session/session-rename.js.map +1 -1
  28. package/lib/client/session/worktree-session.d.ts +15 -36
  29. package/lib/client/session/worktree-session.d.ts.map +1 -1
  30. package/lib/client/session/worktree-session.js +124 -152
  31. package/lib/client/session/worktree-session.js.map +1 -1
  32. package/lib/client/steer/steer-activity.d.ts.map +1 -1
  33. package/lib/client/steer/steer-activity.js +2 -1
  34. package/lib/client/steer/steer-activity.js.map +1 -1
  35. package/lib/client/surface/actions/lifecycle-commands.d.ts.map +1 -1
  36. package/lib/client/surface/actions/lifecycle-commands.js +1 -28
  37. package/lib/client/surface/actions/lifecycle-commands.js.map +1 -1
  38. package/lib/client/surface/actions/useDashboardBatchManage.d.ts.map +1 -1
  39. package/lib/client/surface/actions/useDashboardBatchManage.js +0 -13
  40. package/lib/client/surface/actions/useDashboardBatchManage.js.map +1 -1
  41. package/lib/client/surface/actions/useLifecycleActions.d.ts +4 -6
  42. package/lib/client/surface/actions/useLifecycleActions.d.ts.map +1 -1
  43. package/lib/client/surface/actions/useLifecycleActions.js +4 -47
  44. package/lib/client/surface/actions/useLifecycleActions.js.map +1 -1
  45. package/lib/client/surface/actions/useSessionActions.d.ts +1 -1
  46. package/lib/client/surface/actions/useSessionActions.d.ts.map +1 -1
  47. package/lib/client/surface/actions/useSessionActions.js +11 -20
  48. package/lib/client/surface/actions/useSessionActions.js.map +1 -1
  49. package/lib/client/surface/actions/useWorktreeRegistration.d.ts.map +1 -1
  50. package/lib/client/surface/actions/useWorktreeRegistration.js +7 -14
  51. package/lib/client/surface/actions/useWorktreeRegistration.js.map +1 -1
  52. package/lib/client/surface/actions/worktree-cleanup-flow.d.ts +1 -2
  53. package/lib/client/surface/actions/worktree-cleanup-flow.d.ts.map +1 -1
  54. package/lib/client/surface/actions/worktree-cleanup-flow.js +1 -1
  55. package/lib/client/surface/actions/worktree-cleanup-flow.js.map +1 -1
  56. package/lib/client/surface/components/LifecycleDialogs.d.ts +1 -1
  57. package/lib/client/surface/components/LifecycleDialogs.d.ts.map +1 -1
  58. package/lib/client/surface/components/RestartToast.d.ts.map +1 -1
  59. package/lib/client/surface/components/RestartToast.js +1 -2
  60. package/lib/client/surface/components/RestartToast.js.map +1 -1
  61. package/lib/client/surface/components/SurfaceContent.d.ts +2 -2
  62. package/lib/client/surface/components/SurfaceContent.d.ts.map +1 -1
  63. package/lib/client/surface/components/SurfaceContent.js +13 -26
  64. package/lib/client/surface/components/SurfaceContent.js.map +1 -1
  65. package/lib/client/surface/shared.d.ts +1 -7
  66. package/lib/client/surface/shared.d.ts.map +1 -1
  67. package/lib/client/surface/shared.js +0 -5
  68. package/lib/client/surface/shared.js.map +1 -1
  69. package/lib/client/surface/state/useLifecycleState.d.ts +0 -1
  70. package/lib/client/surface/state/useLifecycleState.d.ts.map +1 -1
  71. package/lib/client/surface/state/useLifecycleState.js +0 -3
  72. package/lib/client/surface/state/useLifecycleState.js.map +1 -1
  73. package/lib/client/surface/state/useSurfaceRefresh.d.ts +2 -1
  74. package/lib/client/surface/state/useSurfaceRefresh.d.ts.map +1 -1
  75. package/lib/client/surface/state/useSurfaceRefresh.js +66 -9
  76. package/lib/client/surface/state/useSurfaceRefresh.js.map +1 -1
  77. package/lib/client/surface/state/useSurfaceSources.d.ts +1 -6
  78. package/lib/client/surface/state/useSurfaceSources.d.ts.map +1 -1
  79. package/lib/client/surface/state/useSurfaceSources.js +3 -22
  80. package/lib/client/surface/state/useSurfaceSources.js.map +1 -1
  81. package/lib/client/surface/types.d.ts +8 -31
  82. package/lib/client/surface/types.d.ts.map +1 -1
  83. package/lib/client/view/worktree-error-copy.d.ts +0 -2
  84. package/lib/client/view/worktree-error-copy.d.ts.map +1 -1
  85. package/lib/client/view/worktree-error-copy.js +0 -17
  86. package/lib/client/view/worktree-error-copy.js.map +1 -1
  87. package/lib/client/view/worktree-view-errors.d.ts +0 -10
  88. package/lib/client/view/worktree-view-errors.d.ts.map +1 -1
  89. package/lib/client/view/worktree-view-errors.js +1 -22
  90. package/lib/client/view/worktree-view-errors.js.map +1 -1
  91. package/lib/client/view/worktree-view-read.d.ts +3 -1
  92. package/lib/client/view/worktree-view-read.d.ts.map +1 -1
  93. package/lib/client/view/worktree-view-read.js +42 -1
  94. package/lib/client/view/worktree-view-read.js.map +1 -1
  95. package/lib/client/worktree-connection.d.ts +5 -4
  96. package/lib/client/worktree-connection.d.ts.map +1 -1
  97. package/lib/client/worktree-connection.js +6 -4
  98. package/lib/client/worktree-connection.js.map +1 -1
  99. package/lib/client.js +3494 -3751
  100. package/lib/client.js.map +1 -1
  101. package/lib/contract/index.contract.js +2 -2
  102. package/lib/contract/index.contract.js.map +1 -1
  103. package/lib/contract/index.d.ts +13 -6
  104. package/lib/contract/index.d.ts.map +1 -1
  105. package/lib/contract/index.js +4 -4
  106. package/lib/contract/index.js.map +1 -1
  107. package/lib/contract/session-flow.d.ts +29 -0
  108. package/lib/contract/session-flow.d.ts.map +1 -0
  109. package/lib/contract/session-flow.js +2 -0
  110. package/lib/contract/session-flow.js.map +1 -0
  111. package/lib/host/dsh-read-adapter.d.ts +14 -0
  112. package/lib/host/dsh-read-adapter.d.ts.map +1 -1
  113. package/lib/host/dsh-read-adapter.js +30 -3
  114. package/lib/host/dsh-read-adapter.js.map +1 -1
  115. package/lib/host/index.d.ts +0 -4
  116. package/lib/host/index.d.ts.map +1 -1
  117. package/lib/host/index.js +0 -2
  118. package/lib/host/index.js.map +1 -1
  119. package/lib/host/remote.d.ts +2 -2
  120. package/lib/host/remote.d.ts.map +1 -1
  121. package/lib/host/remote.js +6 -7
  122. package/lib/host/remote.js.map +1 -1
  123. package/lib/host/service.d.ts +12 -3
  124. package/lib/host/service.d.ts.map +1 -1
  125. package/lib/host/service.js +63 -37
  126. package/lib/host/service.js.map +1 -1
  127. package/lib/host/session-creation.d.ts +12 -0
  128. package/lib/host/session-creation.d.ts.map +1 -0
  129. package/lib/host/session-creation.js +56 -0
  130. package/lib/host/session-creation.js.map +1 -0
  131. package/lib/index.d.ts +4 -4
  132. package/lib/index.d.ts.map +1 -1
  133. package/lib/index.js +2 -2
  134. package/lib/index.js.map +1 -1
  135. package/lib/manage/manager-sessions.d.ts +2 -2
  136. package/lib/manage/manager-sessions.d.ts.map +1 -1
  137. package/lib/manage/manager-sessions.js +30 -16
  138. package/lib/manage/manager-sessions.js.map +1 -1
  139. package/lib/manage/manager-support.d.ts +2 -1
  140. package/lib/manage/manager-support.d.ts.map +1 -1
  141. package/lib/manage/manager-support.js +21 -37
  142. package/lib/manage/manager-support.js.map +1 -1
  143. package/lib/manage/manager-worktrees.d.ts +3 -1
  144. package/lib/manage/manager-worktrees.d.ts.map +1 -1
  145. package/lib/manage/manager-worktrees.js +41 -19
  146. package/lib/manage/manager-worktrees.js.map +1 -1
  147. package/lib/manage/manager.d.ts +5 -1
  148. package/lib/manage/manager.d.ts.map +1 -1
  149. package/lib/manage/manager.js +30 -4
  150. package/lib/manage/manager.js.map +1 -1
  151. package/lib/provider/generated-path.d.ts +7 -0
  152. package/lib/provider/generated-path.d.ts.map +1 -0
  153. package/lib/provider/generated-path.js +57 -0
  154. package/lib/provider/generated-path.js.map +1 -0
  155. package/lib/provider/sidecar/sidecar-schema.d.ts.map +1 -1
  156. package/lib/provider/sidecar/sidecar-schema.js +7 -1
  157. package/lib/provider/sidecar/sidecar-schema.js.map +1 -1
  158. package/lib/provider/transaction/operations/create.d.ts.map +1 -1
  159. package/lib/provider/transaction/operations/create.js +2 -0
  160. package/lib/provider/transaction/operations/create.js.map +1 -1
  161. package/lib/provider/transaction/support/path-safety.d.ts.map +1 -1
  162. package/lib/provider/transaction/support/path-safety.js +5 -43
  163. package/lib/provider/transaction/support/path-safety.js.map +1 -1
  164. package/lib/provider/types.d.ts +2 -0
  165. package/lib/provider/types.d.ts.map +1 -1
  166. package/lib/provider/types.js.map +1 -1
  167. package/lib/tool/create-session.d.ts +11 -0
  168. package/lib/tool/create-session.d.ts.map +1 -0
  169. package/lib/tool/create-session.js +19 -0
  170. package/lib/tool/create-session.js.map +1 -0
  171. package/lib/tool/dispatch-session.d.ts.map +1 -1
  172. package/lib/tool/dispatch-session.js +9 -5
  173. package/lib/tool/dispatch-session.js.map +1 -1
  174. package/lib/tool/native-session.d.ts +9 -0
  175. package/lib/tool/native-session.d.ts.map +1 -1
  176. package/lib/tool/native-session.js +47 -1
  177. package/lib/tool/native-session.js.map +1 -1
  178. package/lib/typert.host.js +236 -122
  179. package/lib/typert.remote-client.d.ts +7 -5
  180. package/lib/typert.remote-client.d.ts.map +1 -1
  181. package/lib/typert.remote-client.js +236 -122
  182. package/package.json +1 -5
  183. package/lib/client/permission/worktree-permission-icon.d.ts +0 -7
  184. package/lib/client/permission/worktree-permission-icon.d.ts.map +0 -1
  185. package/lib/client/permission/worktree-permission-icon.js +0 -119
  186. package/lib/client/permission/worktree-permission-icon.js.map +0 -1
  187. package/lib/client/permission/worktree-permission.d.ts +0 -21
  188. package/lib/client/permission/worktree-permission.d.ts.map +0 -1
  189. package/lib/client/permission/worktree-permission.js +0 -78
  190. package/lib/client/permission/worktree-permission.js.map +0 -1
  191. package/lib/client/surface/components/AccessConfirmation.d.ts +0 -9
  192. package/lib/client/surface/components/AccessConfirmation.d.ts.map +0 -1
  193. package/lib/client/surface/components/AccessConfirmation.js +0 -18
  194. package/lib/client/surface/components/AccessConfirmation.js.map +0 -1
  195. package/lib/contract/worktree-permission.d.ts +0 -75
  196. package/lib/contract/worktree-permission.d.ts.map +0 -1
  197. package/lib/contract/worktree-permission.js +0 -32
  198. package/lib/contract/worktree-permission.js.map +0 -1
  199. package/lib/host/permission-preset-append.d.ts +0 -15
  200. package/lib/host/permission-preset-append.d.ts.map +0 -1
  201. package/lib/host/permission-preset-append.js +0 -63
  202. package/lib/host/permission-preset-append.js.map +0 -1
  203. package/lib/host/worktree-permission-manager.d.ts +0 -14
  204. package/lib/host/worktree-permission-manager.d.ts.map +0 -1
  205. package/lib/host/worktree-permission-manager.js +0 -115
  206. package/lib/host/worktree-permission-manager.js.map +0 -1
  207. package/lib/host/worktree-permission.d.ts +0 -51
  208. package/lib/host/worktree-permission.d.ts.map +0 -1
  209. package/lib/host/worktree-permission.js +0 -251
  210. package/lib/host/worktree-permission.js.map +0 -1
  211. package/lib/manage/worktree-permission.d.ts +0 -3
  212. package/lib/manage/worktree-permission.d.ts.map +0 -1
  213. package/lib/manage/worktree-permission.js +0 -3
  214. package/lib/manage/worktree-permission.js.map +0 -1
@@ -1,115 +0,0 @@
1
- import { providerError } from '../provider/types.js';
2
- import { boundSessionCwdMatchesWorktree } from '../provider/worktree-path.js';
3
- function unverified() {
4
- return { status: 'unverified', retryable: true };
5
- }
6
- function aggregateNormalization(sessionIds, results) {
7
- const hasUnverified = results.some((result) => result.status === 'unverified');
8
- const hasNormalized = results.some((result) => result.status === 'normalized-workspace-write');
9
- return {
10
- status: hasUnverified
11
- ? 'unverified'
12
- : hasNormalized
13
- ? 'normalized-workspace-write'
14
- : 'no-op',
15
- sessionIds,
16
- retryable: results.some((result) => result.retryable),
17
- };
18
- }
19
- /**
20
- * Compose the browser-facing permission operation with authoritative Worktree/Session
21
- * facts. The caller cannot turn this into a general Session permission endpoint because
22
- * the Host re-checks the active relation on every invocation.
23
- */
24
- export function createWorktreePermissionManager(options) {
25
- return {
26
- async ensureWorktreePermission(input) {
27
- const workspace = await options.dsh.getWorkspace(input.workspaceId);
28
- if (workspace === undefined) {
29
- throw providerError('WORKSPACE_NOT_FOUND', `Workspace "${input.workspaceId}" was not found`, { workspaceId: input.workspaceId });
30
- }
31
- const [worktrees, bindings] = await Promise.all([
32
- options.manager.listWorktrees({ workspaceId: input.workspaceId }),
33
- options.manager.listBindings({ workspaceId: input.workspaceId }),
34
- ]);
35
- const worktree = worktrees.find((candidate) => candidate.workspaceId === input.workspaceId &&
36
- candidate.worktreeId === input.worktreeId);
37
- if (worktree === undefined) {
38
- throw providerError('WORKTREE_NOT_FOUND', `Worktree "${input.worktreeId}" was not found`, { workspaceId: input.workspaceId, worktreeId: input.worktreeId });
39
- }
40
- if ((worktree.status !== 'active' && worktree.diskCleanup === 'completed') ||
41
- worktree.health === 'repair' ||
42
- worktree.health === 'recovery-needed') {
43
- throw providerError('WORKTREE_REMOVED', `Worktree "${input.worktreeId}" is not active`, { workspaceId: input.workspaceId, worktreeId: input.worktreeId });
44
- }
45
- const binding = bindings.find((candidate) => candidate.workspaceId === input.workspaceId &&
46
- candidate.worktreeId === input.worktreeId &&
47
- candidate.sessionId === input.sessionId &&
48
- candidate.status === 'active');
49
- if (binding === undefined) {
50
- throw providerError('WORKTREE_PERMISSION_BINDING_REQUIRED', `Session "${input.sessionId}" is not actively bound to this Worktree`, {
51
- workspaceId: input.workspaceId,
52
- worktreeId: input.worktreeId,
53
- sessionId: input.sessionId,
54
- });
55
- }
56
- const session = await options.dsh.getSession(input.sessionId);
57
- if (session === undefined) {
58
- throw providerError('SESSION_NOT_FOUND', `Session "${input.sessionId}" was not found`, {
59
- sessionId: input.sessionId,
60
- });
61
- }
62
- const sessionCwdMatches = await boundSessionCwdMatchesWorktree(session.cwd, worktree);
63
- if ((session.workspaceId !== undefined && session.workspaceId !== workspace.workspaceId) ||
64
- !sessionCwdMatches) {
65
- throw providerError('SESSION_CWD_MISMATCH', `Session "${input.sessionId}" does not belong to this Worktree`, {
66
- workspaceId: input.workspaceId,
67
- worktreeId: input.worktreeId,
68
- sessionId: input.sessionId,
69
- });
70
- }
71
- if (options.permissions === undefined)
72
- return unverified();
73
- return options.permissions.ensure({ ...input, binding: 'active' });
74
- },
75
- async normalizeDetachedWorktreePermissions(input) {
76
- const workspace = await options.dsh.getWorkspace(input.workspaceId);
77
- if (workspace === undefined) {
78
- throw providerError('WORKSPACE_NOT_FOUND', `Workspace "${input.workspaceId}" was not found`, { workspaceId: input.workspaceId });
79
- }
80
- const [worktrees, bindings] = await Promise.all([
81
- options.manager.listWorktrees({ workspaceId: input.workspaceId }),
82
- options.manager.listBindings({ workspaceId: input.workspaceId }),
83
- ]);
84
- const worktree = worktrees.find((candidate) => candidate.workspaceId === input.workspaceId &&
85
- candidate.worktreeId === input.worktreeId);
86
- if (worktree === undefined) {
87
- throw providerError('WORKTREE_NOT_FOUND', `Worktree "${input.worktreeId}" was not found`, { workspaceId: input.workspaceId, worktreeId: input.worktreeId });
88
- }
89
- if (worktree.status !== 'removed' || worktree.diskCleanup !== 'completed') {
90
- throw providerError('WORKTREE_REMOVED', `Worktree "${input.worktreeId}" is not detached`, { workspaceId: input.workspaceId, worktreeId: input.worktreeId });
91
- }
92
- const detachedBindings = bindings.filter((binding) => binding.workspaceId === input.workspaceId &&
93
- binding.worktreeId === input.worktreeId &&
94
- binding.status === 'detached');
95
- const sessionIds = detachedBindings.map((binding) => binding.sessionId);
96
- if (sessionIds.length === 0) {
97
- return { status: 'no-op', sessionIds, retryable: false };
98
- }
99
- if (options.permissions === undefined) {
100
- return { ...unverified(), sessionIds };
101
- }
102
- const results = [];
103
- for (const binding of detachedBindings) {
104
- results.push(await options.permissions.normalize({
105
- workspaceId: input.workspaceId,
106
- worktreeId: input.worktreeId,
107
- sessionId: binding.sessionId,
108
- binding: 'detached',
109
- }));
110
- }
111
- return aggregateNormalization(sessionIds, results);
112
- },
113
- };
114
- }
115
- //# sourceMappingURL=worktree-permission-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worktree-permission-manager.js","sourceRoot":"","sources":["../../src/host/worktree-permission-manager.ts"],"names":[],"mappings":"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"}
@@ -1,51 +0,0 @@
1
- import { type WorktreePermissionApprovalPolicy, type WorktreePermissionPort, type WorktreePermissionSandboxMode } from '../manage/worktree-permission.js';
2
- interface PermissionEvent {
3
- readonly type: string;
4
- readonly data?: unknown;
5
- }
6
- interface PermissionSession {
7
- readonly id: string;
8
- readonly events?: readonly PermissionEvent[];
9
- snapshotEvents?(): readonly PermissionEvent[];
10
- append(type: string, data: unknown): unknown;
11
- }
12
- interface PermissionPresetSpec {
13
- readonly sandbox: WorktreePermissionSandboxMode;
14
- readonly approval: WorktreePermissionApprovalPolicy;
15
- }
16
- interface PermissionPresetService {
17
- readonly names: readonly string[];
18
- current(sessionOrEvents: unknown): string;
19
- resolve(name: string): PermissionPresetSpec;
20
- set(session: PermissionSession, name: string): void;
21
- }
22
- interface SandboxPolicyService {
23
- readonly defaultMode?: WorktreePermissionSandboxMode;
24
- resolve?(request: {
25
- session: PermissionSession;
26
- }): {
27
- readonly mode: WorktreePermissionSandboxMode;
28
- };
29
- }
30
- interface ApprovalService {
31
- readonly config: {
32
- readonly policy?: WorktreePermissionApprovalPolicy;
33
- };
34
- overrideOf(session: PermissionSession): WorktreePermissionApprovalPolicy | undefined;
35
- }
36
- export interface DshWorktreePermissionAdapterOptions {
37
- readonly sessions: {
38
- get(sessionId: string): unknown;
39
- };
40
- readonly permissionPresets?: PermissionPresetService;
41
- readonly sandboxPolicy?: SandboxPolicyService;
42
- readonly approval?: ApprovalService;
43
- }
44
- /**
45
- * Adapt the optional public DSH permission services to the Worktree Manager
46
- * port. No DSH package is imported at runtime, so an older bundle without the
47
- * optional service can remain loadable and report an unverified capability.
48
- */
49
- export declare function createDshWorktreePermissionAdapter(options: DshWorktreePermissionAdapterOptions): WorktreePermissionPort;
50
- export {};
51
- //# sourceMappingURL=worktree-permission.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worktree-permission.d.ts","sourceRoot":"","sources":["../../src/host/worktree-permission.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,gCAAgC,EAErC,KAAK,sBAAsB,EAG3B,KAAK,6BAA6B,EACnC,MAAM,kCAAkC,CAAC;AAE1C,UAAU,eAAe;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,UAAU,iBAAiB;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IAC7C,cAAc,CAAC,IAAI,SAAS,eAAe,EAAE,CAAC;IAC9C,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;CAC9C;AAED,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,OAAO,EAAE,6BAA6B,CAAC;IAChD,QAAQ,CAAC,QAAQ,EAAE,gCAAgC,CAAC;CACrD;AAED,UAAU,uBAAuB;IAC/B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,OAAO,CAAC,eAAe,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAAC;IAC5C,GAAG,CAAC,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrD;AAED,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,6BAA6B,CAAC;IACrD,OAAO,CAAC,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,iBAAiB,CAAA;KAAE,GAAG;QAAE,QAAQ,CAAC,IAAI,EAAE,6BAA6B,CAAA;KAAE,CAAC;CACrG;AAED,UAAU,eAAe;IACvB,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,gCAAgC,CAAA;KAAE,CAAC;IACxE,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,gCAAgC,GAAG,SAAS,CAAC;CACtF;AAED,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,QAAQ,EAAE;QACjB,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;KACjC,CAAC;IACF,QAAQ,CAAC,iBAAiB,CAAC,EAAE,uBAAuB,CAAC;IACrD,QAAQ,CAAC,aAAa,CAAC,EAAE,oBAAoB,CAAC;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC;CACrC;AA+ID;;;;GAIG;AACH,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,mCAAmC,GAC3C,sBAAsB,CA2HxB"}
@@ -1,251 +0,0 @@
1
- import { decideWorktreePermission, WORKTREE_FULL_ACCESS_PRESET, } from '../manage/worktree-permission.js';
2
- const WORKSPACE_WRITE_PRESET = 'workspace-write';
3
- function isRecord(value) {
4
- return typeof value === 'object' && value !== null && !Array.isArray(value);
5
- }
6
- function stringValue(value) {
7
- return typeof value === 'string' ? value : undefined;
8
- }
9
- function lastEventValue(events, type, key) {
10
- for (let index = events.length - 1; index >= 0; index -= 1) {
11
- const event = events[index];
12
- if (event.type !== type || !isRecord(event.data))
13
- continue;
14
- const value = stringValue(event.data[key]);
15
- if (value !== undefined)
16
- return value;
17
- }
18
- return undefined;
19
- }
20
- function hasFullThenRestriction(events) {
21
- let fullSeen = false;
22
- for (const event of events) {
23
- if (event.type === 'sandbox/mode' && isRecord(event.data)) {
24
- if (event.data.mode === 'danger-full-access')
25
- fullSeen = true;
26
- else if (fullSeen && (event.data.mode === 'workspace-write' || event.data.mode === 'read-only'))
27
- return true;
28
- }
29
- if (event.type !== 'permission/preset' || !isRecord(event.data))
30
- continue;
31
- const preset = stringValue(event.data.preset);
32
- if (preset === WORKTREE_FULL_ACCESS_PRESET) {
33
- fullSeen = true;
34
- }
35
- else if (fullSeen && preset !== undefined) {
36
- return true;
37
- }
38
- }
39
- return false;
40
- }
41
- function resolveCurrentPreset(permissionPresets, session, events) {
42
- if (permissionPresets === undefined || typeof permissionPresets.current !== 'function') {
43
- return undefined;
44
- }
45
- try {
46
- return permissionPresets.current(session);
47
- }
48
- catch {
49
- try {
50
- return permissionPresets.current(events);
51
- }
52
- catch {
53
- return undefined;
54
- }
55
- }
56
- }
57
- function readCurrentState(session, permissionPresets, sandboxPolicy, pluginApplied, approval) {
58
- const events = getSessionEvents(session);
59
- const preset = resolveCurrentPreset(permissionPresets, session, events);
60
- let presetSpec;
61
- if (preset !== undefined && preset !== 'custom') {
62
- try {
63
- presetSpec = permissionPresets?.resolve(preset);
64
- }
65
- catch {
66
- presetSpec = undefined;
67
- }
68
- }
69
- let sandboxMode = lastEventValue(events, 'sandbox/mode', 'mode') ??
70
- presetSpec?.sandbox ??
71
- sandboxPolicy?.defaultMode;
72
- let approvalPolicy = lastEventValue(events, 'approval/policy', 'policy') ??
73
- presetSpec?.approval;
74
- // When available these are the actual consumers of the durable knob events,
75
- // not merely the configured preset (which may no longer match the Session).
76
- if (typeof sandboxPolicy?.resolve === 'function' && typeof approval?.overrideOf === 'function') {
77
- try {
78
- sandboxMode = sandboxPolicy.resolve({ session }).mode;
79
- approvalPolicy = approval.overrideOf(session) ?? approval.config.policy ?? 'ask';
80
- if (!['read-only', 'workspace-write', 'danger-full-access'].includes(sandboxMode) ||
81
- !['ask', 'never'].includes(approvalPolicy))
82
- throw new Error('Unsupported native permission state');
83
- }
84
- catch {
85
- return { ...(preset === undefined ? {} : { preset }), explicitUserOverride: false, unavailable: true };
86
- }
87
- }
88
- const pluginChangedThisRuntime = pluginApplied.has(session.id);
89
- const currentIsRestricted = pluginChangedThisRuntime && sandboxMode !== 'danger-full-access' ||
90
- hasFullThenRestriction(events) ||
91
- (preset !== undefined && sandboxMode === 'read-only') ||
92
- (preset !== undefined &&
93
- preset !== WORKSPACE_WRITE_PRESET &&
94
- preset !== WORKTREE_FULL_ACCESS_PRESET &&
95
- preset !== 'danger-full-access' &&
96
- !(preset === 'custom' && sandboxMode === 'danger-full-access'));
97
- return {
98
- ...(preset === undefined ? {} : { preset }),
99
- ...(sandboxMode === undefined ? {} : { sandboxMode }),
100
- ...(approvalPolicy === undefined ? {} : { approvalPolicy }),
101
- explicitUserOverride: currentIsRestricted,
102
- };
103
- }
104
- function resultFromCurrent(status, current, retryable) {
105
- return {
106
- status,
107
- ...(current.preset === undefined ? {} : { preset: current.preset }),
108
- ...(current.sandboxMode === undefined ? {} : { sandboxMode: current.sandboxMode }),
109
- ...(current.approvalPolicy === undefined ? {} : { approvalPolicy: current.approvalPolicy }),
110
- retryable,
111
- };
112
- }
113
- function serviceAvailable(permissionPresets) {
114
- return (permissionPresets !== undefined &&
115
- Array.isArray(permissionPresets.names) &&
116
- typeof permissionPresets.current === 'function' &&
117
- typeof permissionPresets.resolve === 'function' &&
118
- typeof permissionPresets.set === 'function');
119
- }
120
- /**
121
- * Adapt the optional public DSH permission services to the Worktree Manager
122
- * port. No DSH package is imported at runtime, so an older bundle without the
123
- * optional service can remain loadable and report an unverified capability.
124
- */
125
- export function createDshWorktreePermissionAdapter(options) {
126
- const pluginApplied = new Set();
127
- const apply = (input, binding) => {
128
- const session = options.sessions.get(input.sessionId);
129
- if (!isPermissionSession(session)) {
130
- return { status: 'unverified', retryable: true };
131
- }
132
- const permissionPresets = options.permissionPresets;
133
- const sandboxPolicy = options.sandboxPolicy;
134
- const approval = options.approval;
135
- const readState = () => readCurrentState(session, permissionPresets, sandboxPolicy, pluginApplied, approval);
136
- const current = readState();
137
- const hasService = serviceAvailable(permissionPresets);
138
- if (current.unavailable || (hasService && current.preset === undefined)) {
139
- return resultFromCurrent('unverified', current, true);
140
- }
141
- const sessionPolicyAvailable = hasService && typeof sandboxPolicy?.resolve === 'function' &&
142
- typeof approval?.overrideOf === 'function' && current.sandboxMode !== undefined &&
143
- current.approvalPolicy !== undefined;
144
- const namedFullAvailable = hasService && permissionPresets.names.includes(WORKTREE_FULL_ACCESS_PRESET);
145
- const verifiedResult = (status, mode, retryable = false) => {
146
- const next = readState();
147
- const verified = !next.unavailable && next.sandboxMode === mode && next.approvalPolicy === 'ask';
148
- return resultFromCurrent(verified ? status : 'unverified', next, !verified || retryable);
149
- };
150
- const decision = decideWorktreePermission({
151
- binding,
152
- current,
153
- capability: {
154
- permissionService: hasService,
155
- fullPreset: namedFullAvailable,
156
- sessionPolicy: sessionPolicyAvailable,
157
- workspaceWrite: hasService && permissionPresets.names.includes(WORKSPACE_WRITE_PRESET),
158
- },
159
- });
160
- if (binding === 'active' &&
161
- decision.kind === 'apply-full' &&
162
- input.confirmed !== true) {
163
- return { status: 'confirmation-required', retryable: false };
164
- }
165
- switch (decision.kind) {
166
- case 'apply-full':
167
- if (!hasService)
168
- return resultFromCurrent('unverified', current, true);
169
- if (namedFullAvailable) {
170
- const spec = permissionPresets.resolve(decision.preset);
171
- if (spec.sandbox !== 'danger-full-access' || spec.approval !== 'ask') {
172
- return resultFromCurrent('unverified', current, true);
173
- }
174
- permissionPresets.set(session, decision.preset);
175
- }
176
- else if (sessionPolicyAvailable) {
177
- // Same durable path as native setApprovalPolicy/setSandboxMode. Set
178
- // approval first: a failed write must not widen filesystem access.
179
- // No fabricated preset identity or native provider mutation.
180
- session.append('approval/policy', { policy: 'ask' });
181
- session.append('sandbox/mode', { mode: 'danger-full-access' });
182
- }
183
- else
184
- return resultFromCurrent('unverified', current, true);
185
- pluginApplied.add(session.id);
186
- return verifiedResult('full-applied', 'danger-full-access');
187
- case 'preserve-user-restriction':
188
- return resultFromCurrent('user-restricted', current, false);
189
- case 'unverified':
190
- return resultFromCurrent('unverified', current, true);
191
- case 'fallback-workspace-write':
192
- if (!hasService)
193
- return resultFromCurrent('unverified', current, true);
194
- {
195
- const spec = permissionPresets.resolve(WORKSPACE_WRITE_PRESET);
196
- if (spec.sandbox !== 'workspace-write' || spec.approval !== 'ask') {
197
- return resultFromCurrent('unverified', current, true);
198
- }
199
- }
200
- permissionPresets.set(session, WORKSPACE_WRITE_PRESET);
201
- return verifiedResult('fallback-workspace-write', 'workspace-write', true);
202
- case 'normalize-workspace-write':
203
- if (!hasService) {
204
- return resultFromCurrent('unverified', current, true);
205
- }
206
- if (permissionPresets.names.includes(WORKSPACE_WRITE_PRESET)) {
207
- const spec = permissionPresets.resolve(WORKSPACE_WRITE_PRESET);
208
- if (spec.sandbox !== 'workspace-write' || spec.approval !== 'ask') {
209
- return resultFromCurrent('unverified', current, true);
210
- }
211
- permissionPresets.set(session, WORKSPACE_WRITE_PRESET);
212
- }
213
- else if (sessionPolicyAvailable) {
214
- session.append('sandbox/mode', { mode: 'workspace-write' });
215
- session.append('approval/policy', { policy: 'ask' });
216
- }
217
- else
218
- return resultFromCurrent('unverified', current, true);
219
- pluginApplied.delete(session.id);
220
- return verifiedResult('normalized-workspace-write', 'workspace-write');
221
- case 'no-op':
222
- return resultFromCurrent(binding === 'active' && isFullAccessState(current) ? 'already-full' : 'no-op', current, false);
223
- }
224
- };
225
- return {
226
- async ensure(input) {
227
- return apply(input, 'active');
228
- },
229
- async normalize(input) {
230
- return apply(input, 'detached');
231
- },
232
- };
233
- }
234
- function isPermissionSession(value) {
235
- return (isRecord(value) &&
236
- typeof value.id === 'string' &&
237
- (typeof value.snapshotEvents === 'function' ||
238
- Array.isArray(value.events)) &&
239
- typeof value.append === 'function');
240
- }
241
- function getSessionEvents(session) {
242
- if (typeof session.snapshotEvents === 'function') {
243
- return session.snapshotEvents();
244
- }
245
- return Array.isArray(session.events) ? session.events : [];
246
- }
247
- function isFullAccessState(current) {
248
- return (current.preset === WORKTREE_FULL_ACCESS_PRESET ||
249
- current.sandboxMode === 'danger-full-access');
250
- }
251
- //# sourceMappingURL=worktree-permission.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worktree-permission.js","sourceRoot":"","sources":["../../src/host/worktree-permission.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- /** Compatibility barrel for the browser-safe Worktree permission contract. */
2
- export * from '../contract/worktree-permission.js';
3
- //# sourceMappingURL=worktree-permission.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worktree-permission.d.ts","sourceRoot":"","sources":["../../src/manage/worktree-permission.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,cAAc,oCAAoC,CAAC"}
@@ -1,3 +0,0 @@
1
- /** Compatibility barrel for the browser-safe Worktree permission contract. */
2
- export * from '../contract/worktree-permission.js';
3
- //# sourceMappingURL=worktree-permission.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worktree-permission.js","sourceRoot":"","sources":["../../src/manage/worktree-permission.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,cAAc,oCAAoC,CAAC"}