@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
@@ -10,6 +10,8 @@ const JsonValueRemoteCodec$schema6 = z.union([z.literal(null), z.string(), z.num
10
10
  const JsonValueRemoteCodec$schema7 = z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema7)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema7)).readonly()])
11
11
  const JsonValueRemoteCodec$schema8 = z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema8)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema8)).readonly()])
12
12
  const JsonValueRemoteCodec$schema9 = z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema9)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema9)).readonly()])
13
+ const JsonValueRemoteCodec$schema10 = z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema10)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema10)).readonly()])
14
+ const JsonValueRemoteCodec$schema11 = z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema11)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema11)).readonly()])
13
15
  const _cerbur_clutch_dsh_worktree_worktreeManager_bindSession_parameter_0$schema = z.object({
14
16
  'workspaceId': z.string().readonly(),
15
17
  'worktreeId': z.string().readonly(),
@@ -18,9 +20,9 @@ const _cerbur_clutch_dsh_worktree_worktreeManager_bindSession_parameter_0$schema
18
20
  const _cerbur_clutch_dsh_worktree_worktreeManager_bindSession_result$schema = z.union([z.object({
19
21
  'ok': z.literal(false).readonly(),
20
22
  'error': z.object({
21
- 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("GIT_NOT_INSTALLED"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("WORKTREE_IMPORT_INVALID"), z.literal("WORKTREE_ALREADY_MANAGED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED")]).readonly(),
23
+ 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("GIT_NOT_INSTALLED"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("WORKTREE_IMPORT_INVALID"), z.literal("WORKTREE_ALREADY_MANAGED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED"), z.literal("WORKTREE_MUTATION_BUSY"), z.literal("WORKTREE_STATE_CONFLICT"), z.literal("WORKTREE_RECOVERY_REQUIRED"), z.literal("WORKTREE_IDENTITY_CHANGED"), z.literal("WORKTREE_PERMISSION_BINDING_REQUIRED")]).readonly(),
22
24
  'message': z.string().readonly(),
23
- 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema5)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema5)).readonly()])).readonly().readonly(),
25
+ 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema9)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema9)).readonly()])).readonly().readonly(),
24
26
  }).readonly(),
25
27
  }), z.object({
26
28
  'ok': z.literal(true).readonly(),
@@ -39,9 +41,9 @@ const _cerbur_clutch_dsh_worktree_worktreeManager_createWorktree_parameter_0$sch
39
41
  const _cerbur_clutch_dsh_worktree_worktreeManager_createWorktree_result$schema = z.union([z.object({
40
42
  'ok': z.literal(false).readonly(),
41
43
  'error': z.object({
42
- 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("GIT_NOT_INSTALLED"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("WORKTREE_IMPORT_INVALID"), z.literal("WORKTREE_ALREADY_MANAGED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED")]).readonly(),
44
+ 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("GIT_NOT_INSTALLED"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("WORKTREE_IMPORT_INVALID"), z.literal("WORKTREE_ALREADY_MANAGED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED"), z.literal("WORKTREE_MUTATION_BUSY"), z.literal("WORKTREE_STATE_CONFLICT"), z.literal("WORKTREE_RECOVERY_REQUIRED"), z.literal("WORKTREE_IDENTITY_CHANGED"), z.literal("WORKTREE_PERMISSION_BINDING_REQUIRED")]).readonly(),
43
45
  'message': z.string().readonly(),
44
- 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema9)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema9)).readonly()])).readonly().readonly(),
46
+ 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema4)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema4)).readonly()])).readonly().readonly(),
45
47
  }).readonly(),
46
48
  }), z.object({
47
49
  'ok': z.literal(true).readonly(),
@@ -52,7 +54,33 @@ const _cerbur_clutch_dsh_worktree_worktreeManager_createWorktree_result$schema =
52
54
  'branch': z.string().readonly(),
53
55
  'source': z.union([z.literal("plugin"), z.literal("external")]).readonly(),
54
56
  'status': z.union([z.literal("active"), z.literal("removed")]).readonly(),
55
- 'health': z.union([z.undefined(), z.literal("ready"), z.literal("repair")]).readonly().optional(),
57
+ 'health': z.union([z.undefined(), z.literal("ready"), z.literal("repair"), z.literal("recovery-needed")]).readonly().optional(),
58
+ 'mutationToken': z.union([z.undefined(), z.string()]).readonly().optional(),
59
+ }).readonly(),
60
+ })])
61
+ const _cerbur_clutch_dsh_worktree_worktreeManager_ensureWorktreePermission_parameter_0$schema = z.object({
62
+ 'workspaceId': z.string().readonly(),
63
+ 'worktreeId': z.string().readonly(),
64
+ 'sessionId': z.string().readonly(),
65
+ 'binding': z.union([z.undefined(), z.literal("active"), z.literal("detached"), z.literal("main"), z.literal("unbound")]).readonly().optional(),
66
+ 'confirmed': z.union([z.undefined(), z.literal(false), z.literal(true)]).readonly().optional(),
67
+ })
68
+ const _cerbur_clutch_dsh_worktree_worktreeManager_ensureWorktreePermission_result$schema = z.union([z.object({
69
+ 'ok': z.literal(false).readonly(),
70
+ 'error': z.object({
71
+ 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("GIT_NOT_INSTALLED"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("WORKTREE_IMPORT_INVALID"), z.literal("WORKTREE_ALREADY_MANAGED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED"), z.literal("WORKTREE_MUTATION_BUSY"), z.literal("WORKTREE_STATE_CONFLICT"), z.literal("WORKTREE_RECOVERY_REQUIRED"), z.literal("WORKTREE_IDENTITY_CHANGED"), z.literal("WORKTREE_PERMISSION_BINDING_REQUIRED")]).readonly(),
72
+ 'message': z.string().readonly(),
73
+ 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema10)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema10)).readonly()])).readonly().readonly(),
74
+ }).readonly(),
75
+ }), z.object({
76
+ 'ok': z.literal(true).readonly(),
77
+ 'value': z.object({
78
+ 'status': z.union([z.literal("full-applied"), z.literal("already-full"), z.literal("confirmation-required"), z.literal("fallback-workspace-write"), z.literal("user-restricted"), z.literal("unverified"), z.literal("normalized-workspace-write"), z.literal("no-op")]).readonly(),
79
+ 'preset': z.union([z.undefined(), z.string()]).readonly().optional(),
80
+ 'sandboxMode': z.union([z.undefined(), z.literal("read-only"), z.literal("workspace-write"), z.literal("danger-full-access")]).readonly().optional(),
81
+ 'approvalPolicy': z.union([z.undefined(), z.literal("ask"), z.literal("never")]).readonly().optional(),
82
+ 'sessionIds': z.union([z.undefined(), z.array(z.string())]).readonly().optional(),
83
+ 'retryable': z.boolean().readonly(),
56
84
  }).readonly(),
57
85
  })])
58
86
  const _cerbur_clutch_dsh_worktree_worktreeManager_importWorktree_parameter_0$schema = z.object({
@@ -62,9 +90,9 @@ const _cerbur_clutch_dsh_worktree_worktreeManager_importWorktree_parameter_0$sch
62
90
  const _cerbur_clutch_dsh_worktree_worktreeManager_importWorktree_result$schema = z.union([z.object({
63
91
  'ok': z.literal(false).readonly(),
64
92
  'error': z.object({
65
- 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("GIT_NOT_INSTALLED"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("WORKTREE_IMPORT_INVALID"), z.literal("WORKTREE_ALREADY_MANAGED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED")]).readonly(),
93
+ 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("GIT_NOT_INSTALLED"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("WORKTREE_IMPORT_INVALID"), z.literal("WORKTREE_ALREADY_MANAGED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED"), z.literal("WORKTREE_MUTATION_BUSY"), z.literal("WORKTREE_STATE_CONFLICT"), z.literal("WORKTREE_RECOVERY_REQUIRED"), z.literal("WORKTREE_IDENTITY_CHANGED"), z.literal("WORKTREE_PERMISSION_BINDING_REQUIRED")]).readonly(),
66
94
  'message': z.string().readonly(),
67
- 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema)).readonly()])).readonly().readonly(),
95
+ 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema5)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema5)).readonly()])).readonly().readonly(),
68
96
  }).readonly(),
69
97
  }), z.object({
70
98
  'ok': z.literal(true).readonly(),
@@ -75,7 +103,8 @@ const _cerbur_clutch_dsh_worktree_worktreeManager_importWorktree_result$schema =
75
103
  'branch': z.string().readonly(),
76
104
  'source': z.union([z.literal("plugin"), z.literal("external")]).readonly(),
77
105
  'status': z.union([z.literal("active"), z.literal("removed")]).readonly(),
78
- 'health': z.union([z.undefined(), z.literal("ready"), z.literal("repair")]).readonly().optional(),
106
+ 'health': z.union([z.undefined(), z.literal("ready"), z.literal("repair"), z.literal("recovery-needed")]).readonly().optional(),
107
+ 'mutationToken': z.union([z.undefined(), z.string()]).readonly().optional(),
79
108
  }).readonly(),
80
109
  })])
81
110
  const _cerbur_clutch_dsh_worktree_worktreeManager_insertWorktreeBefore_parameter_0$schema = z.object({
@@ -86,9 +115,9 @@ const _cerbur_clutch_dsh_worktree_worktreeManager_insertWorktreeBefore_parameter
86
115
  const _cerbur_clutch_dsh_worktree_worktreeManager_insertWorktreeBefore_result$schema = z.union([z.object({
87
116
  'ok': z.literal(false).readonly(),
88
117
  'error': z.object({
89
- 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("GIT_NOT_INSTALLED"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("WORKTREE_IMPORT_INVALID"), z.literal("WORKTREE_ALREADY_MANAGED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED")]).readonly(),
118
+ 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("GIT_NOT_INSTALLED"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("WORKTREE_IMPORT_INVALID"), z.literal("WORKTREE_ALREADY_MANAGED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED"), z.literal("WORKTREE_MUTATION_BUSY"), z.literal("WORKTREE_STATE_CONFLICT"), z.literal("WORKTREE_RECOVERY_REQUIRED"), z.literal("WORKTREE_IDENTITY_CHANGED"), z.literal("WORKTREE_PERMISSION_BINDING_REQUIRED")]).readonly(),
90
119
  'message': z.string().readonly(),
91
- 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema3)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema3)).readonly()])).readonly().readonly(),
120
+ 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema7)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema7)).readonly()])).readonly().readonly(),
92
121
  }).readonly(),
93
122
  }), z.object({
94
123
  'ok': z.literal(true).readonly(),
@@ -100,9 +129,9 @@ const _cerbur_clutch_dsh_worktree_worktreeManager_listBindings_parameter_0$schem
100
129
  const _cerbur_clutch_dsh_worktree_worktreeManager_listBindings_result$schema = z.union([z.object({
101
130
  'ok': z.literal(false).readonly(),
102
131
  'error': z.object({
103
- 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("GIT_NOT_INSTALLED"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("WORKTREE_IMPORT_INVALID"), z.literal("WORKTREE_ALREADY_MANAGED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED")]).readonly(),
132
+ 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("GIT_NOT_INSTALLED"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("WORKTREE_IMPORT_INVALID"), z.literal("WORKTREE_ALREADY_MANAGED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED"), z.literal("WORKTREE_MUTATION_BUSY"), z.literal("WORKTREE_STATE_CONFLICT"), z.literal("WORKTREE_RECOVERY_REQUIRED"), z.literal("WORKTREE_IDENTITY_CHANGED"), z.literal("WORKTREE_PERMISSION_BINDING_REQUIRED")]).readonly(),
104
133
  'message': z.string().readonly(),
105
- 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema4)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema4)).readonly()])).readonly().readonly(),
134
+ 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema8)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema8)).readonly()])).readonly().readonly(),
106
135
  }).readonly(),
107
136
  }), z.object({
108
137
  'ok': z.literal(true).readonly(),
@@ -119,9 +148,9 @@ const _cerbur_clutch_dsh_worktree_worktreeManager_listBranches_parameter_0$schem
119
148
  const _cerbur_clutch_dsh_worktree_worktreeManager_listBranches_result$schema = z.union([z.object({
120
149
  'ok': z.literal(false).readonly(),
121
150
  'error': z.object({
122
- 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("GIT_NOT_INSTALLED"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("WORKTREE_IMPORT_INVALID"), z.literal("WORKTREE_ALREADY_MANAGED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED")]).readonly(),
151
+ 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("GIT_NOT_INSTALLED"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("WORKTREE_IMPORT_INVALID"), z.literal("WORKTREE_ALREADY_MANAGED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED"), z.literal("WORKTREE_MUTATION_BUSY"), z.literal("WORKTREE_STATE_CONFLICT"), z.literal("WORKTREE_RECOVERY_REQUIRED"), z.literal("WORKTREE_IDENTITY_CHANGED"), z.literal("WORKTREE_PERMISSION_BINDING_REQUIRED")]).readonly(),
123
152
  'message': z.string().readonly(),
124
- 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema8)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema8)).readonly()])).readonly().readonly(),
153
+ 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema3)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema3)).readonly()])).readonly().readonly(),
125
154
  }).readonly(),
126
155
  }), z.object({
127
156
  'ok': z.literal(true).readonly(),
@@ -137,9 +166,9 @@ const _cerbur_clutch_dsh_worktree_worktreeManager_listImportCandidates_parameter
137
166
  const _cerbur_clutch_dsh_worktree_worktreeManager_listImportCandidates_result$schema = z.union([z.object({
138
167
  'ok': z.literal(false).readonly(),
139
168
  'error': z.object({
140
- 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("GIT_NOT_INSTALLED"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("WORKTREE_IMPORT_INVALID"), z.literal("WORKTREE_ALREADY_MANAGED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED")]).readonly(),
169
+ 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("GIT_NOT_INSTALLED"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("WORKTREE_IMPORT_INVALID"), z.literal("WORKTREE_ALREADY_MANAGED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED"), z.literal("WORKTREE_MUTATION_BUSY"), z.literal("WORKTREE_STATE_CONFLICT"), z.literal("WORKTREE_RECOVERY_REQUIRED"), z.literal("WORKTREE_IDENTITY_CHANGED"), z.literal("WORKTREE_PERMISSION_BINDING_REQUIRED")]).readonly(),
141
170
  'message': z.string().readonly(),
142
- 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema7)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema7)).readonly()])).readonly().readonly(),
171
+ 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema2)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema2)).readonly()])).readonly().readonly(),
143
172
  }).readonly(),
144
173
  }), z.object({
145
174
  'ok': z.literal(true).readonly(),
@@ -154,9 +183,9 @@ const _cerbur_clutch_dsh_worktree_worktreeManager_listWorktrees_parameter_0$sche
154
183
  const _cerbur_clutch_dsh_worktree_worktreeManager_listWorktrees_result$schema = z.union([z.object({
155
184
  'ok': z.literal(false).readonly(),
156
185
  'error': z.object({
157
- 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("GIT_NOT_INSTALLED"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("WORKTREE_IMPORT_INVALID"), z.literal("WORKTREE_ALREADY_MANAGED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED")]).readonly(),
186
+ 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("GIT_NOT_INSTALLED"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("WORKTREE_IMPORT_INVALID"), z.literal("WORKTREE_ALREADY_MANAGED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED"), z.literal("WORKTREE_MUTATION_BUSY"), z.literal("WORKTREE_STATE_CONFLICT"), z.literal("WORKTREE_RECOVERY_REQUIRED"), z.literal("WORKTREE_IDENTITY_CHANGED"), z.literal("WORKTREE_PERMISSION_BINDING_REQUIRED")]).readonly(),
158
187
  'message': z.string().readonly(),
159
- 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema6)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema6)).readonly()])).readonly().readonly(),
188
+ 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema)).readonly()])).readonly().readonly(),
160
189
  }).readonly(),
161
190
  }), z.object({
162
191
  'ok': z.literal(true).readonly(),
@@ -167,19 +196,43 @@ const _cerbur_clutch_dsh_worktree_worktreeManager_listWorktrees_result$schema =
167
196
  'branch': z.string().readonly(),
168
197
  'source': z.union([z.literal("plugin"), z.literal("external")]).readonly(),
169
198
  'status': z.union([z.literal("active"), z.literal("removed")]).readonly(),
170
- 'health': z.union([z.undefined(), z.literal("ready"), z.literal("repair")]).readonly().optional(),
199
+ 'health': z.union([z.undefined(), z.literal("ready"), z.literal("repair"), z.literal("recovery-needed")]).readonly().optional(),
200
+ 'mutationToken': z.union([z.undefined(), z.string()]).readonly().optional(),
171
201
  })).readonly(),
172
202
  })])
203
+ const _cerbur_clutch_dsh_worktree_worktreeManager_normalizeDetachedWorktreePermissions_parameter_0$schema = z.object({
204
+ 'workspaceId': z.string().readonly(),
205
+ 'worktreeId': z.string().readonly(),
206
+ })
207
+ const _cerbur_clutch_dsh_worktree_worktreeManager_normalizeDetachedWorktreePermissions_result$schema = z.union([z.object({
208
+ 'ok': z.literal(false).readonly(),
209
+ 'error': z.object({
210
+ 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("GIT_NOT_INSTALLED"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("WORKTREE_IMPORT_INVALID"), z.literal("WORKTREE_ALREADY_MANAGED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED"), z.literal("WORKTREE_MUTATION_BUSY"), z.literal("WORKTREE_STATE_CONFLICT"), z.literal("WORKTREE_RECOVERY_REQUIRED"), z.literal("WORKTREE_IDENTITY_CHANGED"), z.literal("WORKTREE_PERMISSION_BINDING_REQUIRED")]).readonly(),
211
+ 'message': z.string().readonly(),
212
+ 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema11)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema11)).readonly()])).readonly().readonly(),
213
+ }).readonly(),
214
+ }), z.object({
215
+ 'ok': z.literal(true).readonly(),
216
+ 'value': z.object({
217
+ 'status': z.union([z.literal("full-applied"), z.literal("already-full"), z.literal("confirmation-required"), z.literal("fallback-workspace-write"), z.literal("user-restricted"), z.literal("unverified"), z.literal("normalized-workspace-write"), z.literal("no-op")]).readonly(),
218
+ 'preset': z.union([z.undefined(), z.string()]).readonly().optional(),
219
+ 'sandboxMode': z.union([z.undefined(), z.literal("read-only"), z.literal("workspace-write"), z.literal("danger-full-access")]).readonly().optional(),
220
+ 'approvalPolicy': z.union([z.undefined(), z.literal("ask"), z.literal("never")]).readonly().optional(),
221
+ 'sessionIds': z.union([z.undefined(), z.array(z.string())]).readonly().optional(),
222
+ 'retryable': z.boolean().readonly(),
223
+ }).readonly(),
224
+ })])
173
225
  const _cerbur_clutch_dsh_worktree_worktreeManager_removeWorktree_parameter_0$schema = z.object({
174
226
  'workspaceId': z.string().readonly(),
175
227
  'worktreeId': z.string().readonly(),
228
+ 'mutationToken': z.string().readonly(),
176
229
  })
177
230
  const _cerbur_clutch_dsh_worktree_worktreeManager_removeWorktree_result$schema = z.union([z.object({
178
231
  'ok': z.literal(false).readonly(),
179
232
  'error': z.object({
180
- 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("GIT_NOT_INSTALLED"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("WORKTREE_IMPORT_INVALID"), z.literal("WORKTREE_ALREADY_MANAGED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED")]).readonly(),
233
+ 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("GIT_NOT_INSTALLED"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("WORKTREE_IMPORT_INVALID"), z.literal("WORKTREE_ALREADY_MANAGED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED"), z.literal("WORKTREE_MUTATION_BUSY"), z.literal("WORKTREE_STATE_CONFLICT"), z.literal("WORKTREE_RECOVERY_REQUIRED"), z.literal("WORKTREE_IDENTITY_CHANGED"), z.literal("WORKTREE_PERMISSION_BINDING_REQUIRED")]).readonly(),
181
234
  'message': z.string().readonly(),
182
- 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema2)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema2)).readonly()])).readonly().readonly(),
235
+ 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema6)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema6)).readonly()])).readonly().readonly(),
183
236
  }).readonly(),
184
237
  }), z.object({
185
238
  'ok': z.literal(true).readonly(),
@@ -212,7 +265,7 @@ export const TYPERT_REMOTE = {
212
265
  typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreeRemoteResult',
213
266
  schema: _cerbur_clutch_dsh_worktree_worktreeManager_bindSession_result$schema,
214
267
  },
215
- sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":133,"column":3},
268
+ sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":178,"column":3},
216
269
  },
217
270
  {
218
271
  id: '@cerbur/clutch-dsh-worktree#worktreeManager/createWorktree',
@@ -237,7 +290,32 @@ export const TYPERT_REMOTE = {
237
290
  typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreeRemoteResult',
238
291
  schema: _cerbur_clutch_dsh_worktree_worktreeManager_createWorktree_result$schema,
239
292
  },
240
- sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":92,"column":3},
293
+ sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":136,"column":3},
294
+ },
295
+ {
296
+ id: '@cerbur/clutch-dsh-worktree#worktreeManager/ensureWorktreePermission',
297
+ service: 'worktreeManager',
298
+ namespace: 'worktreeManager',
299
+ method: 'ensureWorktreePermission',
300
+ invocation: { kind: 'direct' },
301
+ parameters: [
302
+ {
303
+ name: 'input',
304
+ wire: 'input',
305
+ source: 'json',
306
+ codec: {
307
+ mode: 'strict',
308
+ typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreePermissionRequest',
309
+ schema: _cerbur_clutch_dsh_worktree_worktreeManager_ensureWorktreePermission_parameter_0$schema,
310
+ },
311
+ },
312
+ ],
313
+ result: {
314
+ mode: 'strict',
315
+ typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreeRemoteResult',
316
+ schema: _cerbur_clutch_dsh_worktree_worktreeManager_ensureWorktreePermission_result$schema,
317
+ },
318
+ sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":187,"column":3},
241
319
  },
242
320
  {
243
321
  id: '@cerbur/clutch-dsh-worktree#worktreeManager/importWorktree',
@@ -262,7 +340,7 @@ export const TYPERT_REMOTE = {
262
340
  typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreeRemoteResult',
263
341
  schema: _cerbur_clutch_dsh_worktree_worktreeManager_importWorktree_result$schema,
264
342
  },
265
- sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":101,"column":3},
343
+ sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":145,"column":3},
266
344
  },
267
345
  {
268
346
  id: '@cerbur/clutch-dsh-worktree#worktreeManager/insertWorktreeBefore',
@@ -287,7 +365,7 @@ export const TYPERT_REMOTE = {
287
365
  typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreeRemoteResult',
288
366
  schema: _cerbur_clutch_dsh_worktree_worktreeManager_insertWorktreeBefore_result$schema,
289
367
  },
290
- sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":117,"column":3},
368
+ sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":162,"column":3},
291
369
  },
292
370
  {
293
371
  id: '@cerbur/clutch-dsh-worktree#worktreeManager/listBindings',
@@ -312,7 +390,7 @@ export const TYPERT_REMOTE = {
312
390
  typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreeRemoteResult',
313
391
  schema: _cerbur_clutch_dsh_worktree_worktreeManager_listBindings_result$schema,
314
392
  },
315
- sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":126,"column":3},
393
+ sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":171,"column":3},
316
394
  },
317
395
  {
318
396
  id: '@cerbur/clutch-dsh-worktree#worktreeManager/listBranches',
@@ -337,7 +415,7 @@ export const TYPERT_REMOTE = {
337
415
  typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreeRemoteResult',
338
416
  schema: _cerbur_clutch_dsh_worktree_worktreeManager_listBranches_result$schema,
339
417
  },
340
- sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":85,"column":3},
418
+ sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":129,"column":3},
341
419
  },
342
420
  {
343
421
  id: '@cerbur/clutch-dsh-worktree#worktreeManager/listImportCandidates',
@@ -362,7 +440,7 @@ export const TYPERT_REMOTE = {
362
440
  typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreeRemoteResult',
363
441
  schema: _cerbur_clutch_dsh_worktree_worktreeManager_listImportCandidates_result$schema,
364
442
  },
365
- sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":78,"column":3},
443
+ sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":122,"column":3},
366
444
  },
367
445
  {
368
446
  id: '@cerbur/clutch-dsh-worktree#worktreeManager/listWorktrees',
@@ -387,7 +465,32 @@ export const TYPERT_REMOTE = {
387
465
  typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreeRemoteResult',
388
466
  schema: _cerbur_clutch_dsh_worktree_worktreeManager_listWorktrees_result$schema,
389
467
  },
390
- sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":71,"column":3},
468
+ sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":115,"column":3},
469
+ },
470
+ {
471
+ id: '@cerbur/clutch-dsh-worktree#worktreeManager/normalizeDetachedWorktreePermissions',
472
+ service: 'worktreeManager',
473
+ namespace: 'worktreeManager',
474
+ method: 'normalizeDetachedWorktreePermissions',
475
+ invocation: { kind: 'direct' },
476
+ parameters: [
477
+ {
478
+ name: 'input',
479
+ wire: 'input',
480
+ source: 'json',
481
+ codec: {
482
+ mode: 'strict',
483
+ typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreePermissionNormalizationRequest',
484
+ schema: _cerbur_clutch_dsh_worktree_worktreeManager_normalizeDetachedWorktreePermissions_parameter_0$schema,
485
+ },
486
+ },
487
+ ],
488
+ result: {
489
+ mode: 'strict',
490
+ typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreeRemoteResult',
491
+ schema: _cerbur_clutch_dsh_worktree_worktreeManager_normalizeDetachedWorktreePermissions_result$schema,
492
+ },
493
+ sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":194,"column":3},
391
494
  },
392
495
  {
393
496
  id: '@cerbur/clutch-dsh-worktree#worktreeManager/removeWorktree',
@@ -412,7 +515,7 @@ export const TYPERT_REMOTE = {
412
515
  typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreeRemoteResult',
413
516
  schema: _cerbur_clutch_dsh_worktree_worktreeManager_removeWorktree_result$schema,
414
517
  },
415
- sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":109,"column":3},
518
+ sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":153,"column":3},
416
519
  },
417
520
  ],
418
521
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cerbur/clutch-dsh-worktree",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
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": {
@@ -94,6 +94,7 @@
94
94
  "@deepseek-ai/dsh-client-ui-slots": "*",
95
95
  "@deepseek-ai/dsh-session": "*",
96
96
  "@deepseek-ai/dsh-session-persistence": "*",
97
+ "@deepseek-ai/dsh-subprocess": "*",
97
98
  "@deepseek-ai/dsh-typert-protocol": "*",
98
99
  "@deepseek-ai/dsh-workspace": "*"
99
100
  },
@@ -112,6 +113,7 @@
112
113
  "@deepseek-ai/dsh-invariants": "0.1.1-rc.2",
113
114
  "@deepseek-ai/dsh-session": "0.1.1-rc.2",
114
115
  "@deepseek-ai/dsh-session-persistence": "0.1.1-rc.2",
116
+ "@deepseek-ai/dsh-subprocess": "0.1.1-rc.2",
115
117
  "@deepseek-ai/dsh-typert-generator": "0.1.1-rc.2",
116
118
  "@deepseek-ai/dsh-typert-loader": "0.1.1-rc.2",
117
119
  "@deepseek-ai/dsh-typert-protocol": "0.1.1-rc.2",