@cerbur/clutch-dsh-worktree 0.1.5 → 0.1.7

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 (167) hide show
  1. package/README.md +167 -24
  2. package/README.zh.md +141 -19
  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/WorktreeHeroContext.d.ts +1 -1
  8. package/lib/client/WorktreeHeroContext.js +1 -1
  9. package/lib/client/WorktreeSurface.d.ts +2 -2
  10. package/lib/client/WorktreeSurface.d.ts.map +1 -1
  11. package/lib/client/WorktreeSurface.js +592 -124
  12. package/lib/client/WorktreeSurface.js.map +1 -1
  13. package/lib/client/entry.d.ts.map +1 -1
  14. package/lib/client/entry.js +87 -2
  15. package/lib/client/entry.js.map +1 -1
  16. package/lib/client/index.d.ts +3 -0
  17. package/lib/client/index.d.ts.map +1 -1
  18. package/lib/client/index.js +2 -0
  19. package/lib/client/index.js.map +1 -1
  20. package/lib/client/locales.d.ts +82 -0
  21. package/lib/client/locales.d.ts.map +1 -1
  22. package/lib/client/locales.js +84 -2
  23. package/lib/client/locales.js.map +1 -1
  24. package/lib/client/session-view.d.ts +34 -0
  25. package/lib/client/session-view.d.ts.map +1 -1
  26. package/lib/client/session-view.js +119 -1
  27. package/lib/client/session-view.js.map +1 -1
  28. package/lib/client/virtual-workspace-membership.js +1 -1
  29. package/lib/client/virtual-workspace-membership.js.map +1 -1
  30. package/lib/client/worktree-connection.d.ts +6 -2
  31. package/lib/client/worktree-connection.d.ts.map +1 -1
  32. package/lib/client/worktree-connection.js +8 -0
  33. package/lib/client/worktree-connection.js.map +1 -1
  34. package/lib/client/worktree-error-copy.d.ts +2 -0
  35. package/lib/client/worktree-error-copy.d.ts.map +1 -1
  36. package/lib/client/worktree-error-copy.js +22 -0
  37. package/lib/client/worktree-error-copy.js.map +1 -1
  38. package/lib/client/worktree-expand-state.d.ts +33 -0
  39. package/lib/client/worktree-expand-state.d.ts.map +1 -0
  40. package/lib/client/worktree-expand-state.js +83 -0
  41. package/lib/client/worktree-expand-state.js.map +1 -0
  42. package/lib/client/worktree-permission-icon.d.ts +7 -0
  43. package/lib/client/worktree-permission-icon.d.ts.map +1 -0
  44. package/lib/client/worktree-permission-icon.js +119 -0
  45. package/lib/client/worktree-permission-icon.js.map +1 -0
  46. package/lib/client/worktree-permission.d.ts +21 -0
  47. package/lib/client/worktree-permission.d.ts.map +1 -0
  48. package/lib/client/worktree-permission.js +70 -0
  49. package/lib/client/worktree-permission.js.map +1 -0
  50. package/lib/client/worktree-session-fork.d.ts +65 -0
  51. package/lib/client/worktree-session-fork.d.ts.map +1 -0
  52. package/lib/client/worktree-session-fork.js +174 -0
  53. package/lib/client/worktree-session-fork.js.map +1 -0
  54. package/lib/client/worktree-session-order.d.ts +36 -0
  55. package/lib/client/worktree-session-order.d.ts.map +1 -0
  56. package/lib/client/worktree-session-order.js +215 -0
  57. package/lib/client/worktree-session-order.js.map +1 -0
  58. package/lib/client/worktree-session-position.d.ts +2 -0
  59. package/lib/client/worktree-session-position.d.ts.map +1 -0
  60. package/lib/client/worktree-session-position.js +11 -0
  61. package/lib/client/worktree-session-position.js.map +1 -0
  62. package/lib/client/worktree-session.d.ts +34 -1
  63. package/lib/client/worktree-session.d.ts.map +1 -1
  64. package/lib/client/worktree-session.js +98 -2
  65. package/lib/client/worktree-session.js.map +1 -1
  66. package/lib/client/worktree-surface-dialogs.d.ts +1 -1
  67. package/lib/client/worktree-surface-dialogs.d.ts.map +1 -1
  68. package/lib/client/worktree-surface-dialogs.js +30 -13
  69. package/lib/client/worktree-surface-dialogs.js.map +1 -1
  70. package/lib/client/worktree-surface-rows.d.ts +4 -4
  71. package/lib/client/worktree-surface-rows.d.ts.map +1 -1
  72. package/lib/client/worktree-surface-rows.js +132 -47
  73. package/lib/client/worktree-surface-rows.js.map +1 -1
  74. package/lib/client/worktree-surface-selectors.d.ts +18 -0
  75. package/lib/client/worktree-surface-selectors.d.ts.map +1 -1
  76. package/lib/client/worktree-surface-selectors.js +62 -0
  77. package/lib/client/worktree-surface-selectors.js.map +1 -1
  78. package/lib/client/worktree-surface-types.d.ts +73 -3
  79. package/lib/client/worktree-surface-types.d.ts.map +1 -1
  80. package/lib/client/worktree-view-actions.d.ts +11 -3
  81. package/lib/client/worktree-view-actions.d.ts.map +1 -1
  82. package/lib/client/worktree-view-actions.js +31 -2
  83. package/lib/client/worktree-view-actions.js.map +1 -1
  84. package/lib/client/worktree-view-errors.d.ts +10 -0
  85. package/lib/client/worktree-view-errors.d.ts.map +1 -1
  86. package/lib/client/worktree-view-errors.js +22 -1
  87. package/lib/client/worktree-view-errors.js.map +1 -1
  88. package/lib/client/worktree-view-read.d.ts +8 -0
  89. package/lib/client/worktree-view-read.d.ts.map +1 -1
  90. package/lib/client/worktree-view-read.js +19 -0
  91. package/lib/client/worktree-view-read.js.map +1 -1
  92. package/lib/client.js +2047 -264
  93. package/lib/client.js.map +1 -1
  94. package/lib/contract/index.contract.js +16 -0
  95. package/lib/contract/index.contract.js.map +1 -1
  96. package/lib/contract/index.d.ts +26 -2
  97. package/lib/contract/index.d.ts.map +1 -1
  98. package/lib/contract/index.js +8 -0
  99. package/lib/contract/index.js.map +1 -1
  100. package/lib/contract/worktree-permission.d.ts +73 -0
  101. package/lib/contract/worktree-permission.d.ts.map +1 -0
  102. package/lib/contract/worktree-permission.js +32 -0
  103. package/lib/contract/worktree-permission.js.map +1 -0
  104. package/lib/host/index.d.ts +4 -0
  105. package/lib/host/index.d.ts.map +1 -1
  106. package/lib/host/index.js +2 -0
  107. package/lib/host/index.js.map +1 -1
  108. package/lib/host/remote.d.ts +2 -2
  109. package/lib/host/remote.d.ts.map +1 -1
  110. package/lib/host/remote.js +9 -1
  111. package/lib/host/remote.js.map +1 -1
  112. package/lib/host/service.d.ts +10 -1
  113. package/lib/host/service.d.ts.map +1 -1
  114. package/lib/host/service.js +48 -2
  115. package/lib/host/service.js.map +1 -1
  116. package/lib/host/worktree-permission-manager.d.ts +14 -0
  117. package/lib/host/worktree-permission-manager.d.ts.map +1 -0
  118. package/lib/host/worktree-permission-manager.js +111 -0
  119. package/lib/host/worktree-permission-manager.js.map +1 -0
  120. package/lib/host/worktree-permission.d.ts +38 -0
  121. package/lib/host/worktree-permission.d.ts.map +1 -0
  122. package/lib/host/worktree-permission.js +156 -0
  123. package/lib/host/worktree-permission.js.map +1 -0
  124. package/lib/index.d.ts +4 -3
  125. package/lib/index.d.ts.map +1 -1
  126. package/lib/index.js +2 -1
  127. package/lib/index.js.map +1 -1
  128. package/lib/manage/manager-support.d.ts +2 -0
  129. package/lib/manage/manager-support.d.ts.map +1 -1
  130. package/lib/manage/manager-support.js +9 -0
  131. package/lib/manage/manager-support.js.map +1 -1
  132. package/lib/manage/manager-worktrees.d.ts +10 -1
  133. package/lib/manage/manager-worktrees.d.ts.map +1 -1
  134. package/lib/manage/manager-worktrees.js +121 -5
  135. package/lib/manage/manager-worktrees.js.map +1 -1
  136. package/lib/manage/manager.d.ts +8 -1
  137. package/lib/manage/manager.d.ts.map +1 -1
  138. package/lib/manage/manager.js +7 -1
  139. package/lib/manage/manager.js.map +1 -1
  140. package/lib/manage/worktree-permission.d.ts +3 -0
  141. package/lib/manage/worktree-permission.d.ts.map +1 -0
  142. package/lib/manage/worktree-permission.js +3 -0
  143. package/lib/manage/worktree-permission.js.map +1 -0
  144. package/lib/provider/git.d.ts +2 -0
  145. package/lib/provider/git.d.ts.map +1 -1
  146. package/lib/provider/git.js +23 -1
  147. package/lib/provider/git.js.map +1 -1
  148. package/lib/provider/index.d.ts +1 -1
  149. package/lib/provider/index.d.ts.map +1 -1
  150. package/lib/provider/index.js +1 -1
  151. package/lib/provider/index.js.map +1 -1
  152. package/lib/provider/sidecar-schema.d.ts +1 -1
  153. package/lib/provider/sidecar-schema.d.ts.map +1 -1
  154. package/lib/provider/sidecar-schema.js +33 -37
  155. package/lib/provider/sidecar-schema.js.map +1 -1
  156. package/lib/provider/sidecar.d.ts.map +1 -1
  157. package/lib/provider/sidecar.js +3 -1
  158. package/lib/provider/sidecar.js.map +1 -1
  159. package/lib/provider/types.d.ts +9 -1
  160. package/lib/provider/types.d.ts.map +1 -1
  161. package/lib/provider/types.js +2 -1
  162. package/lib/provider/types.js.map +1 -1
  163. package/lib/typert.host.js +214 -21
  164. package/lib/typert.remote-client.d.ts +9 -1
  165. package/lib/typert.remote-client.d.ts.map +1 -1
  166. package/lib/typert.remote-client.js +214 -21
  167. package/package.json +30 -30
@@ -8,6 +8,10 @@ const JsonValueRemoteCodec$schema4 = z.union([z.literal(null), z.string(), z.num
8
8
  const JsonValueRemoteCodec$schema5 = 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()])
9
9
  const JsonValueRemoteCodec$schema6 = 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()])
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
+ 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
+ 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()])
11
15
  const _cerbur_clutch_dsh_worktree_worktreeManager_bindSession_parameter_0$schema = z.object({
12
16
  'workspaceId': z.string().readonly(),
13
17
  'worktreeId': z.string().readonly(),
@@ -16,9 +20,9 @@ const _cerbur_clutch_dsh_worktree_worktreeManager_bindSession_parameter_0$schema
16
20
  const _cerbur_clutch_dsh_worktree_worktreeManager_bindSession_result$schema = z.union([z.object({
17
21
  'ok': z.literal(false).readonly(),
18
22
  'error': z.object({
19
- '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("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_PERMISSION_BINDING_REQUIRED")]).readonly(),
20
24
  'message': z.string().readonly(),
21
- '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(),
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(),
22
26
  }).readonly(),
23
27
  }), z.object({
24
28
  'ok': z.literal(true).readonly(),
@@ -37,9 +41,9 @@ const _cerbur_clutch_dsh_worktree_worktreeManager_createWorktree_parameter_0$sch
37
41
  const _cerbur_clutch_dsh_worktree_worktreeManager_createWorktree_result$schema = z.union([z.object({
38
42
  'ok': z.literal(false).readonly(),
39
43
  'error': z.object({
40
- '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("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_PERMISSION_BINDING_REQUIRED")]).readonly(),
41
45
  'message': z.string().readonly(),
42
- '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(),
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(),
43
47
  }).readonly(),
44
48
  }), z.object({
45
49
  'ok': z.literal(true).readonly(),
@@ -48,6 +52,55 @@ const _cerbur_clutch_dsh_worktree_worktreeManager_createWorktree_result$schema =
48
52
  'workspaceId': z.string().readonly(),
49
53
  'absolutePath': z.string().readonly(),
50
54
  'branch': z.string().readonly(),
55
+ 'source': z.union([z.literal("plugin"), z.literal("external")]).readonly(),
56
+ 'status': z.union([z.literal("active"), z.literal("removed")]).readonly(),
57
+ 'health': z.union([z.undefined(), z.literal("ready"), z.literal("repair")]).readonly().optional(),
58
+ }).readonly(),
59
+ })])
60
+ const _cerbur_clutch_dsh_worktree_worktreeManager_ensureWorktreePermission_parameter_0$schema = z.object({
61
+ 'workspaceId': z.string().readonly(),
62
+ 'worktreeId': z.string().readonly(),
63
+ 'sessionId': z.string().readonly(),
64
+ 'binding': z.union([z.undefined(), z.literal("active"), z.literal("detached"), z.literal("main"), z.literal("unbound")]).readonly().optional(),
65
+ 'confirmed': z.union([z.undefined(), z.literal(false), z.literal(true)]).readonly().optional(),
66
+ })
67
+ const _cerbur_clutch_dsh_worktree_worktreeManager_ensureWorktreePermission_result$schema = z.union([z.object({
68
+ 'ok': z.literal(false).readonly(),
69
+ 'error': z.object({
70
+ '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_PERMISSION_BINDING_REQUIRED")]).readonly(),
71
+ 'message': z.string().readonly(),
72
+ '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(),
73
+ }).readonly(),
74
+ }), z.object({
75
+ 'ok': z.literal(true).readonly(),
76
+ 'value': z.object({
77
+ '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(),
78
+ 'preset': z.union([z.undefined(), z.string()]).readonly().optional(),
79
+ 'sandboxMode': z.union([z.undefined(), z.literal("read-only"), z.literal("workspace-write"), z.literal("danger-full-access")]).readonly().optional(),
80
+ 'approvalPolicy': z.union([z.undefined(), z.literal("ask"), z.literal("never")]).readonly().optional(),
81
+ 'sessionIds': z.union([z.undefined(), z.array(z.string())]).readonly().optional(),
82
+ 'retryable': z.boolean().readonly(),
83
+ }).readonly(),
84
+ })])
85
+ const _cerbur_clutch_dsh_worktree_worktreeManager_importWorktree_parameter_0$schema = z.object({
86
+ 'workspaceId': z.string().readonly(),
87
+ 'absolutePath': z.string().readonly(),
88
+ })
89
+ const _cerbur_clutch_dsh_worktree_worktreeManager_importWorktree_result$schema = z.union([z.object({
90
+ 'ok': z.literal(false).readonly(),
91
+ 'error': z.object({
92
+ '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_PERMISSION_BINDING_REQUIRED")]).readonly(),
93
+ 'message': z.string().readonly(),
94
+ '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(),
95
+ }).readonly(),
96
+ }), z.object({
97
+ 'ok': z.literal(true).readonly(),
98
+ 'value': z.object({
99
+ 'worktreeId': z.string().readonly(),
100
+ 'workspaceId': z.string().readonly(),
101
+ 'absolutePath': z.string().readonly(),
102
+ 'branch': z.string().readonly(),
103
+ 'source': z.union([z.literal("plugin"), z.literal("external")]).readonly(),
51
104
  'status': z.union([z.literal("active"), z.literal("removed")]).readonly(),
52
105
  'health': z.union([z.undefined(), z.literal("ready"), z.literal("repair")]).readonly().optional(),
53
106
  }).readonly(),
@@ -60,9 +113,9 @@ const _cerbur_clutch_dsh_worktree_worktreeManager_insertWorktreeBefore_parameter
60
113
  const _cerbur_clutch_dsh_worktree_worktreeManager_insertWorktreeBefore_result$schema = z.union([z.object({
61
114
  'ok': z.literal(false).readonly(),
62
115
  'error': z.object({
63
- '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("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(),
116
+ '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_PERMISSION_BINDING_REQUIRED")]).readonly(),
64
117
  'message': z.string().readonly(),
65
- '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(),
118
+ '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(),
66
119
  }).readonly(),
67
120
  }), z.object({
68
121
  'ok': z.literal(true).readonly(),
@@ -74,9 +127,9 @@ const _cerbur_clutch_dsh_worktree_worktreeManager_listBindings_parameter_0$schem
74
127
  const _cerbur_clutch_dsh_worktree_worktreeManager_listBindings_result$schema = z.union([z.object({
75
128
  'ok': z.literal(false).readonly(),
76
129
  'error': z.object({
77
- '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("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(),
130
+ '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_PERMISSION_BINDING_REQUIRED")]).readonly(),
78
131
  'message': z.string().readonly(),
79
- '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(),
132
+ '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(),
80
133
  }).readonly(),
81
134
  }), z.object({
82
135
  'ok': z.literal(true).readonly(),
@@ -93,9 +146,9 @@ const _cerbur_clutch_dsh_worktree_worktreeManager_listBranches_parameter_0$schem
93
146
  const _cerbur_clutch_dsh_worktree_worktreeManager_listBranches_result$schema = z.union([z.object({
94
147
  'ok': z.literal(false).readonly(),
95
148
  'error': z.object({
96
- '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("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(),
149
+ '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_PERMISSION_BINDING_REQUIRED")]).readonly(),
97
150
  'message': z.string().readonly(),
98
- '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(),
151
+ '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(),
99
152
  }).readonly(),
100
153
  }), z.object({
101
154
  'ok': z.literal(true).readonly(),
@@ -105,15 +158,32 @@ const _cerbur_clutch_dsh_worktree_worktreeManager_listBranches_result$schema = z
105
158
  'checkedOut': z.boolean().readonly(),
106
159
  })).readonly(),
107
160
  })])
161
+ const _cerbur_clutch_dsh_worktree_worktreeManager_listImportCandidates_parameter_0$schema = z.object({
162
+ 'workspaceId': z.string().readonly(),
163
+ })
164
+ const _cerbur_clutch_dsh_worktree_worktreeManager_listImportCandidates_result$schema = z.union([z.object({
165
+ 'ok': z.literal(false).readonly(),
166
+ 'error': z.object({
167
+ '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_PERMISSION_BINDING_REQUIRED")]).readonly(),
168
+ 'message': z.string().readonly(),
169
+ '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(),
170
+ }).readonly(),
171
+ }), z.object({
172
+ 'ok': z.literal(true).readonly(),
173
+ 'value': z.array(z.object({
174
+ 'absolutePath': z.string().readonly(),
175
+ 'branch': z.string().readonly(),
176
+ })).readonly(),
177
+ })])
108
178
  const _cerbur_clutch_dsh_worktree_worktreeManager_listWorktrees_parameter_0$schema = z.object({
109
179
  'workspaceId': z.string().readonly(),
110
180
  })
111
181
  const _cerbur_clutch_dsh_worktree_worktreeManager_listWorktrees_result$schema = z.union([z.object({
112
182
  'ok': z.literal(false).readonly(),
113
183
  'error': z.object({
114
- '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("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(),
184
+ '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_PERMISSION_BINDING_REQUIRED")]).readonly(),
115
185
  'message': z.string().readonly(),
116
- '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(),
186
+ '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(),
117
187
  }).readonly(),
118
188
  }), z.object({
119
189
  'ok': z.literal(true).readonly(),
@@ -122,10 +192,33 @@ const _cerbur_clutch_dsh_worktree_worktreeManager_listWorktrees_result$schema =
122
192
  'workspaceId': z.string().readonly(),
123
193
  'absolutePath': z.string().readonly(),
124
194
  'branch': z.string().readonly(),
195
+ 'source': z.union([z.literal("plugin"), z.literal("external")]).readonly(),
125
196
  'status': z.union([z.literal("active"), z.literal("removed")]).readonly(),
126
197
  'health': z.union([z.undefined(), z.literal("ready"), z.literal("repair")]).readonly().optional(),
127
198
  })).readonly(),
128
199
  })])
200
+ const _cerbur_clutch_dsh_worktree_worktreeManager_normalizeDetachedWorktreePermissions_parameter_0$schema = z.object({
201
+ 'workspaceId': z.string().readonly(),
202
+ 'worktreeId': z.string().readonly(),
203
+ })
204
+ const _cerbur_clutch_dsh_worktree_worktreeManager_normalizeDetachedWorktreePermissions_result$schema = z.union([z.object({
205
+ 'ok': z.literal(false).readonly(),
206
+ 'error': z.object({
207
+ '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_PERMISSION_BINDING_REQUIRED")]).readonly(),
208
+ 'message': z.string().readonly(),
209
+ '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(),
210
+ }).readonly(),
211
+ }), z.object({
212
+ 'ok': z.literal(true).readonly(),
213
+ 'value': z.object({
214
+ '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(),
215
+ 'preset': z.union([z.undefined(), z.string()]).readonly().optional(),
216
+ 'sandboxMode': z.union([z.undefined(), z.literal("read-only"), z.literal("workspace-write"), z.literal("danger-full-access")]).readonly().optional(),
217
+ 'approvalPolicy': z.union([z.undefined(), z.literal("ask"), z.literal("never")]).readonly().optional(),
218
+ 'sessionIds': z.union([z.undefined(), z.array(z.string())]).readonly().optional(),
219
+ 'retryable': z.boolean().readonly(),
220
+ }).readonly(),
221
+ })])
129
222
  const _cerbur_clutch_dsh_worktree_worktreeManager_removeWorktree_parameter_0$schema = z.object({
130
223
  'workspaceId': z.string().readonly(),
131
224
  'worktreeId': z.string().readonly(),
@@ -133,9 +226,9 @@ const _cerbur_clutch_dsh_worktree_worktreeManager_removeWorktree_parameter_0$sch
133
226
  const _cerbur_clutch_dsh_worktree_worktreeManager_removeWorktree_result$schema = z.union([z.object({
134
227
  'ok': z.literal(false).readonly(),
135
228
  'error': z.object({
136
- '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("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(),
229
+ '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_PERMISSION_BINDING_REQUIRED")]).readonly(),
137
230
  'message': z.string().readonly(),
138
- '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(),
231
+ '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(),
139
232
  }).readonly(),
140
233
  }), z.object({
141
234
  'ok': z.literal(true).readonly(),
@@ -168,7 +261,7 @@ export const TYPERT_REMOTE = {
168
261
  typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreeRemoteResult',
169
262
  schema: _cerbur_clutch_dsh_worktree_worktreeManager_bindSession_result$schema,
170
263
  },
171
- sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":116,"column":3},
264
+ sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":167,"column":3},
172
265
  },
173
266
  {
174
267
  id: '@cerbur/clutch-dsh-worktree#worktreeManager/createWorktree',
@@ -193,7 +286,57 @@ export const TYPERT_REMOTE = {
193
286
  typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreeRemoteResult',
194
287
  schema: _cerbur_clutch_dsh_worktree_worktreeManager_createWorktree_result$schema,
195
288
  },
196
- sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":83,"column":3},
289
+ sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":126,"column":3},
290
+ },
291
+ {
292
+ id: '@cerbur/clutch-dsh-worktree#worktreeManager/ensureWorktreePermission',
293
+ service: 'worktreeManager',
294
+ namespace: 'worktreeManager',
295
+ method: 'ensureWorktreePermission',
296
+ invocation: { kind: 'direct' },
297
+ parameters: [
298
+ {
299
+ name: 'input',
300
+ wire: 'input',
301
+ source: 'json',
302
+ codec: {
303
+ mode: 'strict',
304
+ typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreePermissionRequest',
305
+ schema: _cerbur_clutch_dsh_worktree_worktreeManager_ensureWorktreePermission_parameter_0$schema,
306
+ },
307
+ },
308
+ ],
309
+ result: {
310
+ mode: 'strict',
311
+ typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreeRemoteResult',
312
+ schema: _cerbur_clutch_dsh_worktree_worktreeManager_ensureWorktreePermission_result$schema,
313
+ },
314
+ sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":176,"column":3},
315
+ },
316
+ {
317
+ id: '@cerbur/clutch-dsh-worktree#worktreeManager/importWorktree',
318
+ service: 'worktreeManager',
319
+ namespace: 'worktreeManager',
320
+ method: 'importWorktree',
321
+ invocation: { kind: 'direct' },
322
+ parameters: [
323
+ {
324
+ name: 'input',
325
+ wire: 'input',
326
+ source: 'json',
327
+ codec: {
328
+ mode: 'strict',
329
+ typeSymbol: '@cerbur/clutch-dsh-worktree#worktreeManager/importWorktree:input',
330
+ schema: _cerbur_clutch_dsh_worktree_worktreeManager_importWorktree_parameter_0$schema,
331
+ },
332
+ },
333
+ ],
334
+ result: {
335
+ mode: 'strict',
336
+ typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreeRemoteResult',
337
+ schema: _cerbur_clutch_dsh_worktree_worktreeManager_importWorktree_result$schema,
338
+ },
339
+ sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":135,"column":3},
197
340
  },
198
341
  {
199
342
  id: '@cerbur/clutch-dsh-worktree#worktreeManager/insertWorktreeBefore',
@@ -218,7 +361,7 @@ export const TYPERT_REMOTE = {
218
361
  typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreeRemoteResult',
219
362
  schema: _cerbur_clutch_dsh_worktree_worktreeManager_insertWorktreeBefore_result$schema,
220
363
  },
221
- sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":100,"column":3},
364
+ sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":151,"column":3},
222
365
  },
223
366
  {
224
367
  id: '@cerbur/clutch-dsh-worktree#worktreeManager/listBindings',
@@ -243,7 +386,7 @@ export const TYPERT_REMOTE = {
243
386
  typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreeRemoteResult',
244
387
  schema: _cerbur_clutch_dsh_worktree_worktreeManager_listBindings_result$schema,
245
388
  },
246
- sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":109,"column":3},
389
+ sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":160,"column":3},
247
390
  },
248
391
  {
249
392
  id: '@cerbur/clutch-dsh-worktree#worktreeManager/listBranches',
@@ -268,7 +411,32 @@ export const TYPERT_REMOTE = {
268
411
  typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreeRemoteResult',
269
412
  schema: _cerbur_clutch_dsh_worktree_worktreeManager_listBranches_result$schema,
270
413
  },
271
- sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":76,"column":3},
414
+ sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":119,"column":3},
415
+ },
416
+ {
417
+ id: '@cerbur/clutch-dsh-worktree#worktreeManager/listImportCandidates',
418
+ service: 'worktreeManager',
419
+ namespace: 'worktreeManager',
420
+ method: 'listImportCandidates',
421
+ invocation: { kind: 'direct' },
422
+ parameters: [
423
+ {
424
+ name: 'input',
425
+ wire: 'input',
426
+ source: 'json',
427
+ codec: {
428
+ mode: 'strict',
429
+ typeSymbol: '@cerbur/clutch-dsh-worktree#worktreeManager/listImportCandidates:input',
430
+ schema: _cerbur_clutch_dsh_worktree_worktreeManager_listImportCandidates_parameter_0$schema,
431
+ },
432
+ },
433
+ ],
434
+ result: {
435
+ mode: 'strict',
436
+ typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreeRemoteResult',
437
+ schema: _cerbur_clutch_dsh_worktree_worktreeManager_listImportCandidates_result$schema,
438
+ },
439
+ sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":112,"column":3},
272
440
  },
273
441
  {
274
442
  id: '@cerbur/clutch-dsh-worktree#worktreeManager/listWorktrees',
@@ -293,7 +461,32 @@ export const TYPERT_REMOTE = {
293
461
  typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreeRemoteResult',
294
462
  schema: _cerbur_clutch_dsh_worktree_worktreeManager_listWorktrees_result$schema,
295
463
  },
296
- sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":69,"column":3},
464
+ sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":105,"column":3},
465
+ },
466
+ {
467
+ id: '@cerbur/clutch-dsh-worktree#worktreeManager/normalizeDetachedWorktreePermissions',
468
+ service: 'worktreeManager',
469
+ namespace: 'worktreeManager',
470
+ method: 'normalizeDetachedWorktreePermissions',
471
+ invocation: { kind: 'direct' },
472
+ parameters: [
473
+ {
474
+ name: 'input',
475
+ wire: 'input',
476
+ source: 'json',
477
+ codec: {
478
+ mode: 'strict',
479
+ typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreePermissionNormalizationRequest',
480
+ schema: _cerbur_clutch_dsh_worktree_worktreeManager_normalizeDetachedWorktreePermissions_parameter_0$schema,
481
+ },
482
+ },
483
+ ],
484
+ result: {
485
+ mode: 'strict',
486
+ typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreeRemoteResult',
487
+ schema: _cerbur_clutch_dsh_worktree_worktreeManager_normalizeDetachedWorktreePermissions_result$schema,
488
+ },
489
+ sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":183,"column":3},
297
490
  },
298
491
  {
299
492
  id: '@cerbur/clutch-dsh-worktree#worktreeManager/removeWorktree',
@@ -318,7 +511,7 @@ export const TYPERT_REMOTE = {
318
511
  typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreeRemoteResult',
319
512
  schema: _cerbur_clutch_dsh_worktree_worktreeManager_removeWorktree_result$schema,
320
513
  },
321
- sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":92,"column":3},
514
+ sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":143,"column":3},
322
515
  },
323
516
  ],
324
517
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cerbur/clutch-dsh-worktree",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
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": {
@@ -84,39 +84,39 @@
84
84
  },
85
85
  "peerDependencies": {
86
86
  "@deepseek-ai/cordis": "4.0.1",
87
- "@deepseek-ai/dsh-client-connection": "0.1.0-rc.8",
88
- "@deepseek-ai/dsh-client-locale": "0.1.0-rc.8",
89
- "@deepseek-ai/dsh-client-runtime": "0.1.0-rc.8",
90
- "@deepseek-ai/dsh-client-ui-conversation": "0.1.0-rc.8",
91
- "@deepseek-ai/dsh-client-ui-layout": "0.1.0-rc.8",
92
- "@deepseek-ai/dsh-client-ui-primitives": "0.1.0-rc.8",
93
- "@deepseek-ai/dsh-client-ui-sidebar": "0.1.0-rc.8",
94
- "@deepseek-ai/dsh-client-ui-slots": "0.1.0-rc.8",
95
- "@deepseek-ai/dsh-session": "0.1.0-rc.8",
96
- "@deepseek-ai/dsh-session-persistence": "0.1.0-rc.8",
97
- "@deepseek-ai/dsh-typert-protocol": "0.1.0-rc.8",
98
- "@deepseek-ai/dsh-workspace": "0.1.0-rc.8"
87
+ "@deepseek-ai/dsh-client-connection": "*",
88
+ "@deepseek-ai/dsh-client-locale": "*",
89
+ "@deepseek-ai/dsh-client-runtime": "*",
90
+ "@deepseek-ai/dsh-client-ui-conversation": "*",
91
+ "@deepseek-ai/dsh-client-ui-layout": "*",
92
+ "@deepseek-ai/dsh-client-ui-primitives": "*",
93
+ "@deepseek-ai/dsh-client-ui-sidebar": "*",
94
+ "@deepseek-ai/dsh-client-ui-slots": "*",
95
+ "@deepseek-ai/dsh-session": "*",
96
+ "@deepseek-ai/dsh-session-persistence": "*",
97
+ "@deepseek-ai/dsh-typert-protocol": "*",
98
+ "@deepseek-ai/dsh-workspace": "*"
99
99
  },
100
100
  "devDependencies": {
101
101
  "@deepseek-ai/cordis": "4.0.1",
102
102
  "@deepseek-ai/cordis-plugin-loader": "1.0.2",
103
- "@deepseek-ai/dsh-api-gateway": "0.1.0-rc.8",
104
- "@deepseek-ai/dsh-client-connection": "0.1.0-rc.8",
105
- "@deepseek-ai/dsh-client-locale": "0.1.0-rc.8",
106
- "@deepseek-ai/dsh-client-runtime": "0.1.0-rc.8",
107
- "@deepseek-ai/dsh-client-ui-conversation": "0.1.0-rc.8",
108
- "@deepseek-ai/dsh-client-ui-layout": "0.1.0-rc.8",
109
- "@deepseek-ai/dsh-client-ui-primitives": "0.1.0-rc.8",
110
- "@deepseek-ai/dsh-client-ui-sidebar": "0.1.0-rc.8",
111
- "@deepseek-ai/dsh-client-ui-slots": "0.1.0-rc.8",
112
- "@deepseek-ai/dsh-invariants": "0.1.0-rc.8",
113
- "@deepseek-ai/dsh-session": "0.1.0-rc.8",
114
- "@deepseek-ai/dsh-session-persistence": "0.1.0-rc.8",
115
- "@deepseek-ai/dsh-typert-generator": "0.1.0-rc.8",
116
- "@deepseek-ai/dsh-typert-loader": "0.1.0-rc.8",
117
- "@deepseek-ai/dsh-typert-protocol": "0.1.0-rc.8",
118
- "@deepseek-ai/dsh-typert-registry": "0.1.0-rc.8",
119
- "@deepseek-ai/dsh-workspace": "0.1.0-rc.8",
103
+ "@deepseek-ai/dsh-api-gateway": "0.1.1-rc.2",
104
+ "@deepseek-ai/dsh-client-connection": "0.1.1-rc.2",
105
+ "@deepseek-ai/dsh-client-locale": "0.1.1-rc.2",
106
+ "@deepseek-ai/dsh-client-runtime": "0.1.1-rc.2",
107
+ "@deepseek-ai/dsh-client-ui-conversation": "0.1.1-rc.2",
108
+ "@deepseek-ai/dsh-client-ui-layout": "0.1.1-rc.2",
109
+ "@deepseek-ai/dsh-client-ui-primitives": "0.1.1-rc.2",
110
+ "@deepseek-ai/dsh-client-ui-sidebar": "0.1.1-rc.2",
111
+ "@deepseek-ai/dsh-client-ui-slots": "0.1.1-rc.2",
112
+ "@deepseek-ai/dsh-invariants": "0.1.1-rc.2",
113
+ "@deepseek-ai/dsh-session": "0.1.1-rc.2",
114
+ "@deepseek-ai/dsh-session-persistence": "0.1.1-rc.2",
115
+ "@deepseek-ai/dsh-typert-generator": "0.1.1-rc.2",
116
+ "@deepseek-ai/dsh-typert-loader": "0.1.1-rc.2",
117
+ "@deepseek-ai/dsh-typert-protocol": "0.1.1-rc.2",
118
+ "@deepseek-ai/dsh-typert-registry": "0.1.1-rc.2",
119
+ "@deepseek-ai/dsh-workspace": "0.1.1-rc.2",
120
120
  "@types/node": "^22.15.3",
121
121
  "@types/react": "~18.3.1",
122
122
  "react": "^18.2.0",