@cerbur/clutch-dsh-worktree 0.1.17 → 0.1.19

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 (288) hide show
  1. package/README.md +207 -42
  2. package/README.zh.md +174 -38
  3. package/assets/screenshots/screenshots-agent-steer.jpg +0 -0
  4. package/assets/screenshots/screenshots-baseline-sync.png +0 -0
  5. package/lib/client/WorktreeSurface.d.ts.map +1 -1
  6. package/lib/client/WorktreeSurface.js +55 -12
  7. package/lib/client/WorktreeSurface.js.map +1 -1
  8. package/lib/client/branch/GitBranchSelector.d.ts +23 -0
  9. package/lib/client/branch/GitBranchSelector.d.ts.map +1 -0
  10. package/lib/client/branch/GitBranchSelector.js +142 -0
  11. package/lib/client/branch/GitBranchSelector.js.map +1 -0
  12. package/lib/client/context/worktree-context-store.d.ts +3 -1
  13. package/lib/client/context/worktree-context-store.d.ts.map +1 -1
  14. package/lib/client/context/worktree-context-store.js +4 -2
  15. package/lib/client/context/worktree-context-store.js.map +1 -1
  16. package/lib/client/context/worktree-context.d.ts +3 -2
  17. package/lib/client/context/worktree-context.d.ts.map +1 -1
  18. package/lib/client/context/worktree-context.js +5 -3
  19. package/lib/client/context/worktree-context.js.map +1 -1
  20. package/lib/client/dashboard/WorktreeDashboard.d.ts +11 -3
  21. package/lib/client/dashboard/WorktreeDashboard.d.ts.map +1 -1
  22. package/lib/client/dashboard/WorktreeDashboard.js +181 -75
  23. package/lib/client/dashboard/WorktreeDashboard.js.map +1 -1
  24. package/lib/client/dashboard/dashboard-selection.d.ts +8 -3
  25. package/lib/client/dashboard/dashboard-selection.d.ts.map +1 -1
  26. package/lib/client/dashboard/dashboard-selection.js +29 -4
  27. package/lib/client/dashboard/dashboard-selection.js.map +1 -1
  28. package/lib/client/dashboard/git/GitChangedFiles.d.ts +2 -1
  29. package/lib/client/dashboard/git/GitChangedFiles.d.ts.map +1 -1
  30. package/lib/client/dashboard/git/GitChangedFiles.js +8 -6
  31. package/lib/client/dashboard/git/GitChangedFiles.js.map +1 -1
  32. package/lib/client/dashboard/git/GitCommitList.d.ts +6 -1
  33. package/lib/client/dashboard/git/GitCommitList.d.ts.map +1 -1
  34. package/lib/client/dashboard/git/GitCommitList.js +34 -29
  35. package/lib/client/dashboard/git/GitCommitList.js.map +1 -1
  36. package/lib/client/dashboard/git/GitCommitStats.d.ts +8 -0
  37. package/lib/client/dashboard/git/GitCommitStats.d.ts.map +1 -0
  38. package/lib/client/dashboard/git/GitCommitStats.js +7 -0
  39. package/lib/client/dashboard/git/GitCommitStats.js.map +1 -0
  40. package/lib/client/dashboard/git/WorktreeGitOverview.d.ts.map +1 -1
  41. package/lib/client/dashboard/git/WorktreeGitOverview.js +2 -1
  42. package/lib/client/dashboard/git/WorktreeGitOverview.js.map +1 -1
  43. package/lib/client/dashboard/git/WorktreeGitPanel.d.ts +1 -1
  44. package/lib/client/dashboard/git/WorktreeGitPanel.d.ts.map +1 -1
  45. package/lib/client/dashboard/git/WorktreeGitPanel.js +28 -9
  46. package/lib/client/dashboard/git/WorktreeGitPanel.js.map +1 -1
  47. package/lib/client/dashboard/git/file-address.d.ts +5 -2
  48. package/lib/client/dashboard/git/file-address.d.ts.map +1 -1
  49. package/lib/client/dashboard/git/file-address.js +50 -7
  50. package/lib/client/dashboard/git/file-address.js.map +1 -1
  51. package/lib/client/dashboard/git/git-facts.js +1 -1
  52. package/lib/client/dashboard/git/git-facts.js.map +1 -1
  53. package/lib/client/dashboard/git/useWorktreeGitState.d.ts +7 -2
  54. package/lib/client/dashboard/git/useWorktreeGitState.d.ts.map +1 -1
  55. package/lib/client/dashboard/git/useWorktreeGitState.js +84 -21
  56. package/lib/client/dashboard/git/useWorktreeGitState.js.map +1 -1
  57. package/lib/client/dsh-icons.d.ts +2 -0
  58. package/lib/client/dsh-icons.d.ts.map +1 -1
  59. package/lib/client/dsh-icons.js +2 -0
  60. package/lib/client/dsh-icons.js.map +1 -1
  61. package/lib/client/dsh-slot-contract.d.ts +8 -1
  62. package/lib/client/dsh-slot-contract.d.ts.map +1 -1
  63. package/lib/client/entry.d.ts.map +1 -1
  64. package/lib/client/entry.js +22 -4
  65. package/lib/client/entry.js.map +1 -1
  66. package/lib/client/locales.d.ts +86 -2
  67. package/lib/client/locales.d.ts.map +1 -1
  68. package/lib/client/locales.js +100 -16
  69. package/lib/client/locales.js.map +1 -1
  70. package/lib/client/permission/worktree-permission.d.ts.map +1 -1
  71. package/lib/client/permission/worktree-permission.js +14 -6
  72. package/lib/client/permission/worktree-permission.js.map +1 -1
  73. package/lib/client/select/SearchableSingleSelect.d.ts +44 -0
  74. package/lib/client/select/SearchableSingleSelect.d.ts.map +1 -0
  75. package/lib/client/select/SearchableSingleSelect.js +180 -0
  76. package/lib/client/select/SearchableSingleSelect.js.map +1 -0
  77. package/lib/client/select/WorktreeSelector.d.ts +14 -0
  78. package/lib/client/select/WorktreeSelector.d.ts.map +1 -0
  79. package/lib/client/select/WorktreeSelector.js +11 -0
  80. package/lib/client/select/WorktreeSelector.js.map +1 -0
  81. package/lib/client/settings/diagnostics.d.ts +4 -0
  82. package/lib/client/settings/diagnostics.d.ts.map +1 -1
  83. package/lib/client/settings/diagnostics.js +12 -0
  84. package/lib/client/settings/diagnostics.js.map +1 -1
  85. package/lib/client/steer/SteerDock.d.ts +8 -0
  86. package/lib/client/steer/SteerDock.d.ts.map +1 -0
  87. package/lib/client/steer/SteerDock.js +12 -0
  88. package/lib/client/steer/SteerDock.js.map +1 -0
  89. package/lib/client/steer/steer-activity.d.ts +18 -0
  90. package/lib/client/steer/steer-activity.d.ts.map +1 -0
  91. package/lib/client/steer/steer-activity.js +37 -0
  92. package/lib/client/steer/steer-activity.js.map +1 -0
  93. package/lib/client/steer/steer-state.d.ts +24 -0
  94. package/lib/client/steer/steer-state.d.ts.map +1 -0
  95. package/lib/client/steer/steer-state.js +102 -0
  96. package/lib/client/steer/steer-state.js.map +1 -0
  97. package/lib/client/surface/actions/useLifecycleActions.js +1 -1
  98. package/lib/client/surface/actions/useLifecycleActions.js.map +1 -1
  99. package/lib/client/surface/actions/useWorktreeRegistration.d.ts +1 -1
  100. package/lib/client/surface/actions/useWorktreeRegistration.d.ts.map +1 -1
  101. package/lib/client/surface/actions/useWorktreeRegistration.js +32 -11
  102. package/lib/client/surface/actions/useWorktreeRegistration.js.map +1 -1
  103. package/lib/client/surface/components/RegistrationDialog.d.ts +3 -3
  104. package/lib/client/surface/components/RegistrationDialog.d.ts.map +1 -1
  105. package/lib/client/surface/components/RegistrationDialog.js +70 -5
  106. package/lib/client/surface/components/RegistrationDialog.js.map +1 -1
  107. package/lib/client/surface/components/WorkspaceTree.d.ts.map +1 -1
  108. package/lib/client/surface/components/WorkspaceTree.js +11 -8
  109. package/lib/client/surface/components/WorkspaceTree.js.map +1 -1
  110. package/lib/client/surface/components/dialogs.d.ts +1 -1
  111. package/lib/client/surface/components/dialogs.d.ts.map +1 -1
  112. package/lib/client/surface/components/dialogs.js +24 -15
  113. package/lib/client/surface/components/dialogs.js.map +1 -1
  114. package/lib/client/surface/state/useRegistrationState.d.ts +6 -1
  115. package/lib/client/surface/state/useRegistrationState.d.ts.map +1 -1
  116. package/lib/client/surface/state/useRegistrationState.js +7 -0
  117. package/lib/client/surface/state/useRegistrationState.js.map +1 -1
  118. package/lib/client/surface/state/useSurfaceRefresh.d.ts.map +1 -1
  119. package/lib/client/surface/state/useSurfaceRefresh.js +6 -3
  120. package/lib/client/surface/state/useSurfaceRefresh.js.map +1 -1
  121. package/lib/client/surface/types.d.ts +10 -2
  122. package/lib/client/surface/types.d.ts.map +1 -1
  123. package/lib/client/view/worktree-error-copy.d.ts.map +1 -1
  124. package/lib/client/view/worktree-error-copy.js +4 -0
  125. package/lib/client/view/worktree-error-copy.js.map +1 -1
  126. package/lib/client/view/worktree-view-read.d.ts +7 -2
  127. package/lib/client/view/worktree-view-read.d.ts.map +1 -1
  128. package/lib/client/view/worktree-view-read.js +57 -18
  129. package/lib/client/view/worktree-view-read.js.map +1 -1
  130. package/lib/client/worktree-connection.d.ts +4 -0
  131. package/lib/client/worktree-connection.d.ts.map +1 -1
  132. package/lib/client/worktree-connection.js +20 -1
  133. package/lib/client/worktree-connection.js.map +1 -1
  134. package/lib/client.js +2361 -834
  135. package/lib/client.js.map +1 -1
  136. package/lib/contract/baseline-sync.d.ts +27 -0
  137. package/lib/contract/baseline-sync.d.ts.map +1 -0
  138. package/lib/contract/baseline-sync.js +2 -0
  139. package/lib/contract/baseline-sync.js.map +1 -0
  140. package/lib/contract/index.contract.js +16 -0
  141. package/lib/contract/index.contract.js.map +1 -1
  142. package/lib/contract/index.d.ts +73 -12
  143. package/lib/contract/index.d.ts.map +1 -1
  144. package/lib/contract/index.js +4 -0
  145. package/lib/contract/index.js.map +1 -1
  146. package/lib/contract/worktree-permission.d.ts +2 -0
  147. package/lib/contract/worktree-permission.d.ts.map +1 -1
  148. package/lib/contract/worktree-permission.js +1 -1
  149. package/lib/contract/worktree-permission.js.map +1 -1
  150. package/lib/contract/worktree-tool-changes.d.ts +2 -0
  151. package/lib/contract/worktree-tool-changes.d.ts.map +1 -1
  152. package/lib/host/baseline-sync.d.ts +15 -0
  153. package/lib/host/baseline-sync.d.ts.map +1 -0
  154. package/lib/host/baseline-sync.js +93 -0
  155. package/lib/host/baseline-sync.js.map +1 -0
  156. package/lib/host/remote.d.ts +2 -1
  157. package/lib/host/remote.d.ts.map +1 -1
  158. package/lib/host/remote.js +8 -1
  159. package/lib/host/remote.js.map +1 -1
  160. package/lib/host/service.d.ts +18 -6
  161. package/lib/host/service.d.ts.map +1 -1
  162. package/lib/host/service.js +45 -2
  163. package/lib/host/service.js.map +1 -1
  164. package/lib/host/worktree-permission.d.ts +12 -0
  165. package/lib/host/worktree-permission.d.ts.map +1 -1
  166. package/lib/host/worktree-permission.js +87 -16
  167. package/lib/host/worktree-permission.js.map +1 -1
  168. package/lib/host/worktree-tool-changes.d.ts +1 -1
  169. package/lib/host/worktree-tool-changes.d.ts.map +1 -1
  170. package/lib/host/worktree-tool-changes.js +5 -2
  171. package/lib/host/worktree-tool-changes.js.map +1 -1
  172. package/lib/index.d.ts +1 -1
  173. package/lib/index.d.ts.map +1 -1
  174. package/lib/index.js.map +1 -1
  175. package/lib/manage/manager-git-history.d.ts +5 -7
  176. package/lib/manage/manager-git-history.d.ts.map +1 -1
  177. package/lib/manage/manager-git-history.js +158 -65
  178. package/lib/manage/manager-git-history.js.map +1 -1
  179. package/lib/manage/manager-git-paths.d.ts +7 -0
  180. package/lib/manage/manager-git-paths.d.ts.map +1 -0
  181. package/lib/manage/manager-git-paths.js +62 -0
  182. package/lib/manage/manager-git-paths.js.map +1 -0
  183. package/lib/manage/manager-worktrees.d.ts +9 -1
  184. package/lib/manage/manager-worktrees.d.ts.map +1 -1
  185. package/lib/manage/manager-worktrees.js +69 -14
  186. package/lib/manage/manager-worktrees.js.map +1 -1
  187. package/lib/manage/manager.d.ts +17 -5
  188. package/lib/manage/manager.d.ts.map +1 -1
  189. package/lib/manage/manager.js +81 -4
  190. package/lib/manage/manager.js.map +1 -1
  191. package/lib/manage/types.d.ts +5 -0
  192. package/lib/manage/types.d.ts.map +1 -1
  193. package/lib/provider/git/adapter.d.ts +13 -12
  194. package/lib/provider/git/adapter.d.ts.map +1 -1
  195. package/lib/provider/git/adapter.js +152 -29
  196. package/lib/provider/git/adapter.js.map +1 -1
  197. package/lib/provider/git/branch-name.d.ts +5 -0
  198. package/lib/provider/git/branch-name.d.ts.map +1 -0
  199. package/lib/provider/git/branch-name.js +16 -0
  200. package/lib/provider/git/branch-name.js.map +1 -0
  201. package/lib/provider/git/branches.d.ts +11 -0
  202. package/lib/provider/git/branches.d.ts.map +1 -0
  203. package/lib/provider/git/branches.js +37 -0
  204. package/lib/provider/git/branches.js.map +1 -0
  205. package/lib/provider/sidecar/repository.d.ts.map +1 -1
  206. package/lib/provider/sidecar/repository.js +2 -1
  207. package/lib/provider/sidecar/repository.js.map +1 -1
  208. package/lib/provider/sidecar/sidecar-schema.d.ts.map +1 -1
  209. package/lib/provider/sidecar/sidecar-schema.js +2 -0
  210. package/lib/provider/sidecar/sidecar-schema.js.map +1 -1
  211. package/lib/provider/transaction/operations/create.d.ts.map +1 -1
  212. package/lib/provider/transaction/operations/create.js +18 -6
  213. package/lib/provider/transaction/operations/create.js.map +1 -1
  214. package/lib/provider/transaction/recovery/failure-recovery.d.ts.map +1 -1
  215. package/lib/provider/transaction/recovery/failure-recovery.js +3 -2
  216. package/lib/provider/transaction/recovery/failure-recovery.js.map +1 -1
  217. package/lib/provider/transaction/recovery/recover.d.ts.map +1 -1
  218. package/lib/provider/transaction/recovery/recover.js +8 -5
  219. package/lib/provider/transaction/recovery/recover.js.map +1 -1
  220. package/lib/provider/transaction/support/journal.d.ts.map +1 -1
  221. package/lib/provider/transaction/support/journal.js +1 -0
  222. package/lib/provider/transaction/support/journal.js.map +1 -1
  223. package/lib/provider/types.d.ts +24 -4
  224. package/lib/provider/types.d.ts.map +1 -1
  225. package/lib/provider/types.js.map +1 -1
  226. package/lib/tool/agent-relay.d.ts +55 -0
  227. package/lib/tool/agent-relay.d.ts.map +1 -0
  228. package/lib/tool/agent-relay.js +159 -0
  229. package/lib/tool/agent-relay.js.map +1 -0
  230. package/lib/tool/delegation.d.ts +1 -0
  231. package/lib/tool/delegation.d.ts.map +1 -1
  232. package/lib/tool/delegation.js +32 -6
  233. package/lib/tool/delegation.js.map +1 -1
  234. package/lib/tool/dispatch-session.d.ts +18 -0
  235. package/lib/tool/dispatch-session.d.ts.map +1 -0
  236. package/lib/tool/dispatch-session.js +41 -0
  237. package/lib/tool/dispatch-session.js.map +1 -0
  238. package/lib/tool/errors.d.ts +6 -0
  239. package/lib/tool/errors.d.ts.map +1 -1
  240. package/lib/tool/errors.js +16 -2
  241. package/lib/tool/errors.js.map +1 -1
  242. package/lib/tool/guidance.d.ts +1 -0
  243. package/lib/tool/guidance.d.ts.map +1 -1
  244. package/lib/tool/guidance.js +2 -0
  245. package/lib/tool/guidance.js.map +1 -1
  246. package/lib/tool/index.d.ts.map +1 -1
  247. package/lib/tool/index.js +38 -4
  248. package/lib/tool/index.js.map +1 -1
  249. package/lib/tool/inputs.d.ts.map +1 -1
  250. package/lib/tool/inputs.js +6 -6
  251. package/lib/tool/inputs.js.map +1 -1
  252. package/lib/tool/list-models.js +2 -2
  253. package/lib/tool/list-models.js.map +1 -1
  254. package/lib/tool/list-sessions.js +2 -2
  255. package/lib/tool/list-sessions.js.map +1 -1
  256. package/lib/tool/list-worktrees.d.ts.map +1 -1
  257. package/lib/tool/list-worktrees.js +9 -2
  258. package/lib/tool/list-worktrees.js.map +1 -1
  259. package/lib/tool/native-session.d.ts +4 -0
  260. package/lib/tool/native-session.d.ts.map +1 -1
  261. package/lib/tool/native-session.js +17 -0
  262. package/lib/tool/native-session.js.map +1 -1
  263. package/lib/tool/new-worktree.js +4 -4
  264. package/lib/tool/new-worktree.js.map +1 -1
  265. package/lib/tool/report-result.d.ts.map +1 -1
  266. package/lib/tool/report-result.js +9 -7
  267. package/lib/tool/report-result.js.map +1 -1
  268. package/lib/tool/schema.d.ts +8 -0
  269. package/lib/tool/schema.d.ts.map +1 -1
  270. package/lib/tool/schema.js +31 -2
  271. package/lib/tool/schema.js.map +1 -1
  272. package/lib/tool/send-message.d.ts.map +1 -1
  273. package/lib/tool/send-message.js +8 -7
  274. package/lib/tool/send-message.js.map +1 -1
  275. package/lib/tool/span-worktree.d.ts.map +1 -1
  276. package/lib/tool/span-worktree.js +33 -59
  277. package/lib/tool/span-worktree.js.map +1 -1
  278. package/lib/tool/types.d.ts +2 -0
  279. package/lib/tool/types.d.ts.map +1 -1
  280. package/lib/tool/wire-schema.d.ts +4 -0
  281. package/lib/tool/wire-schema.d.ts.map +1 -0
  282. package/lib/tool/wire-schema.js +24 -0
  283. package/lib/tool/wire-schema.js.map +1 -0
  284. package/lib/typert.host.js +283 -52
  285. package/lib/typert.remote-client.d.ts +13 -5
  286. package/lib/typert.remote-client.d.ts.map +1 -1
  287. package/lib/typert.remote-client.js +283 -52
  288. package/package.json +7 -2
@@ -0,0 +1,55 @@
1
+ import type { UserMessage } from '@deepseek-ai/dsh-llm';
2
+ import type { CallingAgent } from './types.js';
3
+ declare module '@deepseek-ai/dsh-llm' {
4
+ interface MessageSourceMap {
5
+ 'clutch-worktree-agent-relay': {
6
+ readonly kind: 'agent-message';
7
+ readonly form: 'relay';
8
+ readonly senderSessionId: string;
9
+ };
10
+ }
11
+ }
12
+ export interface AgentRelayInput {
13
+ readonly sender: CallingAgent;
14
+ readonly sessionId: string;
15
+ readonly requestId: string;
16
+ readonly mode: 'queue' | 'steer';
17
+ readonly content: readonly {
18
+ type: 'text';
19
+ text: string;
20
+ }[];
21
+ }
22
+ export interface RelayAgent extends CallingAgent {
23
+ readonly inbox: {
24
+ readonly nextTurn: readonly UserMessage[];
25
+ readonly nextStep: readonly UserMessage[];
26
+ };
27
+ followup(message: UserMessage): void;
28
+ steer(message: UserMessage): void;
29
+ }
30
+ /** A native message identity, not a model-supplied sender or a human RPC source. */
31
+ export declare function relayMessageId(requestId: string): string;
32
+ interface RelayObservation extends Disposable {
33
+ readonly events: readonly {
34
+ readonly type: string;
35
+ readonly data: unknown;
36
+ }[];
37
+ }
38
+ /** Native inbox insertion/history own receipts. Only active admission lanes live in memory. */
39
+ export declare function createAgentRelaySender(deps: {
40
+ getAgent(id: string): RelayAgent | undefined;
41
+ resolveAgent(id: string): Promise<RelayAgent>;
42
+ observeSession(id: string, options: {
43
+ signal: AbortSignal;
44
+ }): Promise<RelayObservation>;
45
+ }): {
46
+ revoke(agent: CallingAgent): void;
47
+ dispose(): void;
48
+ send(input: AgentRelayInput, callerSignal: AbortSignal): Promise<{
49
+ accepted: true;
50
+ }>;
51
+ };
52
+ /** Construct a native relay without importing the subagent manager's private helpers. */
53
+ export declare function agentRelayMessage(input: AgentRelayInput): UserMessage;
54
+ export {};
55
+ //# sourceMappingURL=agent-relay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-relay.d.ts","sourceRoot":"","sources":["../../src/tool/agent-relay.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI/C,OAAO,QAAQ,sBAAsB,CAAC;IACpC,UAAU,gBAAgB;QACxB,6BAA6B,EAAE;YAC7B,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;YAC/B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;YACvB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;SAClC,CAAC;KACH;CACF;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC7D;AACD,MAAM,WAAW,UAAW,SAAQ,YAAY;IAC9C,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAA;KAAE,CAAC;IACzG,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IACrC,KAAK,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;CACnC;AACD,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAGxD;AAED,UAAU,gBAAiB,SAAQ,UAAU;IAC3C,QAAQ,CAAC,MAAM,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;CAC/E;AAED,+FAA+F;AAC/F,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IAC7C,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9C,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,MAAM,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACzF;kBAMiB,YAAY,GAAG,IAAI;eACtB,IAAI;gBACG,eAAe,gBAAgB,WAAW,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,IAAI,CAAA;KAAE,CAAC;EAqD7F;AAED,yFAAyF;AACzF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,GAAG,WAAW,CASrE"}
@@ -0,0 +1,159 @@
1
+ var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
2
+ if (value !== null && value !== void 0) {
3
+ if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
4
+ var dispose, inner;
5
+ if (async) {
6
+ if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
7
+ dispose = value[Symbol.asyncDispose];
8
+ }
9
+ if (dispose === void 0) {
10
+ if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
11
+ dispose = value[Symbol.dispose];
12
+ if (async) inner = dispose;
13
+ }
14
+ if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
15
+ if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
16
+ env.stack.push({ value: value, dispose: dispose, async: async });
17
+ }
18
+ else if (async) {
19
+ env.stack.push({ async: true });
20
+ }
21
+ return value;
22
+ };
23
+ var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
24
+ return function (env) {
25
+ function fail(e) {
26
+ env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
27
+ env.hasError = true;
28
+ }
29
+ var r, s = 0;
30
+ function next() {
31
+ while (r = env.stack.pop()) {
32
+ try {
33
+ if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
34
+ if (r.dispose) {
35
+ var result = r.dispose.call(r.value);
36
+ if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
37
+ }
38
+ else s |= 1;
39
+ }
40
+ catch (e) {
41
+ fail(e);
42
+ }
43
+ }
44
+ if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
45
+ if (env.hasError) throw env.error;
46
+ }
47
+ return next();
48
+ };
49
+ })(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
50
+ var e = new Error(message);
51
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
52
+ });
53
+ import { createHash } from 'node:crypto';
54
+ import { isDeepStrictEqual } from 'node:util';
55
+ import { createUserMessage, freezeMessage } from '@deepseek-ai/dsh-llm';
56
+ /** A native message identity, not a model-supplied sender or a human RPC source. */
57
+ export function relayMessageId(requestId) {
58
+ const prefix = requestId.startsWith('clutch-worktree-report:') ? 'clutch-worktree-relay-report:' : 'clutch-worktree-relay:';
59
+ return prefix + createHash('sha256').update(JSON.stringify(requestId)).digest('hex');
60
+ }
61
+ /** Native inbox insertion/history own receipts. Only active admission lanes live in memory. */
62
+ export function createAgentRelaySender(deps) {
63
+ const lifetime = new AbortController();
64
+ const revoked = new WeakSet();
65
+ const lanes = new Map();
66
+ const live = (agent) => !revoked.has(agent) && deps.getAgent(agent.session.id) === agent;
67
+ return {
68
+ revoke(agent) { revoked.add(agent); },
69
+ dispose() { lifetime.abort(new Error('Worktree relay adapter is disposed')); lanes.clear(); },
70
+ async send(input, callerSignal) {
71
+ const signal = AbortSignal.any([callerSignal, lifetime.signal]);
72
+ signal.throwIfAborted();
73
+ if (!live(input.sender))
74
+ throw new Error('Agent relay requires the exact live sender');
75
+ const previous = lanes.get(input.sessionId) ?? Promise.resolve();
76
+ let release;
77
+ const current = new Promise((resolve) => { release = resolve; });
78
+ const tail = previous.then(() => current);
79
+ lanes.set(input.sessionId, tail);
80
+ try {
81
+ const env_1 = { stack: [], error: void 0, hasError: false };
82
+ try {
83
+ await previous;
84
+ signal.throwIfAborted();
85
+ const target = await deps.resolveAgent(input.sessionId);
86
+ signal.throwIfAborted();
87
+ if (target.session.id !== input.sessionId || !live(input.sender) || !live(target))
88
+ throw new Error('Agent relay sender or recipient is no longer live');
89
+ const observed = __addDisposableResource(env_1, await deps.observeSession(input.sessionId, { signal }), false);
90
+ signal.throwIfAborted();
91
+ if (target.session.id !== input.sessionId || !live(input.sender) || !live(target))
92
+ throw new Error('Agent relay sender or recipient is no longer live');
93
+ const message = agentRelayMessage(input);
94
+ // Claim removes pending input before awaited prompt/request preparation;
95
+ // user/message is appended only later. The durable insertion spans that
96
+ // gap, and remains an admission receipt after native cancellation/removal.
97
+ let accepted = false;
98
+ const inspect = (value) => {
99
+ const receipt = value;
100
+ if (typeof receipt?.id !== 'string')
101
+ throw new Error('Native Agent message receipt is unreadable');
102
+ if (receipt.id !== message.id)
103
+ return;
104
+ if (receipt.role !== message.role || !isDeepStrictEqual(receipt.source, message.source) || !isDeepStrictEqual(receipt.content, message.content))
105
+ throw new Error('Agent relay retry identity requires identical sender and content');
106
+ accepted = true;
107
+ };
108
+ for (const receipt of [...target.inbox.nextTurn, ...target.inbox.nextStep])
109
+ inspect(receipt);
110
+ // Check every occurrence: a later same-id replacement must not hide a
111
+ // conflicting original admission, or let a retry adopt its changed body.
112
+ for (const event of observed.events) {
113
+ if (event.type === 'user/message')
114
+ inspect(event.data);
115
+ else if (event.type === 'agent/inbox/spliced') {
116
+ const inserted = event.data?.inserted;
117
+ if (!Array.isArray(inserted))
118
+ throw new Error('Native Agent inbox insertion receipt is unreadable');
119
+ for (const receipt of inserted)
120
+ inspect(receipt);
121
+ }
122
+ }
123
+ if (accepted)
124
+ return { accepted: true };
125
+ // No await across the final live/abort check and native acceptance.
126
+ if (input.mode === 'steer')
127
+ target.steer(message);
128
+ else
129
+ target.followup(message);
130
+ return { accepted: true };
131
+ }
132
+ catch (e_1) {
133
+ env_1.error = e_1;
134
+ env_1.hasError = true;
135
+ }
136
+ finally {
137
+ __disposeResources(env_1);
138
+ }
139
+ }
140
+ finally {
141
+ release();
142
+ if (lanes.get(input.sessionId) === tail)
143
+ lanes.delete(input.sessionId);
144
+ }
145
+ },
146
+ };
147
+ }
148
+ /** Construct a native relay without importing the subagent manager's private helpers. */
149
+ export function agentRelayMessage(input) {
150
+ const message = createUserMessage({
151
+ source: { kind: 'agent-message', form: 'relay', senderSessionId: input.sender.session.id },
152
+ content: [
153
+ { type: 'text', text: 'Agent ' + input.sender.session.id + ' sent a message: ' },
154
+ ...input.content,
155
+ ],
156
+ });
157
+ return freezeMessage({ ...message, id: relayMessageId(input.requestId) });
158
+ }
159
+ //# sourceMappingURL=agent-relay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-relay.js","sourceRoot":"","sources":["../../src/tool/agent-relay.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ export interface ReportToken {
12
12
  export declare class DelegationControl {
13
13
  private readonly routes;
14
14
  private readonly deliveries;
15
+ private readonly reports;
15
16
  private readonly disposed;
16
17
  assertAlive(agent: CallingAgent): void;
17
18
  register(agent: CallingAgent): void;
@@ -1 +1 @@
1
- {"version":3,"file":"delegation.d.ts","sourceRoot":"","sources":["../../src/tool/delegation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;CACpE;AAoBD,4FAA4F;AAC5F,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IACnD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAC1D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+B;IAExD,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAItC,QAAQ,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAUnC,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAKlC,gFAAgF;IAChF,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAclC,KAAK,IAAI,IAAI;IASb,KAAK,CAAC,KAAK,EAAE,YAAY,GAAG,WAAW,GAAG,SAAS;IAKnD,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAKxE,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ1D,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAyB7G,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAQxG,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAKpC,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,cAAc;IAKtB,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,0BAAoB,GAAG,WAAW;IASzE,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAS9F,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAS/B,yFAAyF;IACzF,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CA+B3F"}
1
+ {"version":3,"file":"delegation.d.ts","sourceRoot":"","sources":["../../src/tool/delegation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI/C,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;CACpE;AAqBD,4FAA4F;AAC5F,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IACnD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAC1D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmD;IAC3E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+B;IAExD,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAItC,QAAQ,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAUnC,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAKlC,gFAAgF;IAChF,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAiBlC,KAAK,IAAI,IAAI;IAUb,KAAK,CAAC,KAAK,EAAE,YAAY,GAAG,WAAW,GAAG,SAAS;IAKnD,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAKxE,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ1D,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAyB7G,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAQxG,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAKpC,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,cAAc;IAKtB,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,0BAAoB,GAAG,WAAW;IASzE,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAY9F,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAS/B,yFAAyF;IACzF,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CA2C3F"}
@@ -1,4 +1,5 @@
1
1
  import { createHash } from 'node:crypto';
2
+ import { relayMessageId } from './agent-relay.js';
2
3
  function reject(code, message) {
3
4
  throw Object.assign(new Error(message), { code });
4
5
  }
@@ -6,6 +7,7 @@ function reject(code, message) {
6
7
  export class DelegationControl {
7
8
  routes = new Map();
8
9
  deliveries = new Map();
10
+ reports = new Map();
9
11
  disposed = new WeakSet();
10
12
  assertAlive(agent) {
11
13
  if (this.disposed.has(agent))
@@ -39,6 +41,11 @@ export class DelegationControl {
39
41
  this.close(child.token);
40
42
  }
41
43
  this.routes.delete(id);
44
+ // An already queued report keeps only its sender id until its recipient is
45
+ // disposed or this bounded index evicts it; never retain the sender Agent.
46
+ for (const [messageId, report] of this.reports)
47
+ if (report.to === id)
48
+ this.reports.delete(messageId);
42
49
  for (const [requestId, delivery] of this.deliveries) {
43
50
  if (delivery.from === id || delivery.to === id)
44
51
  this.deliveries.delete(requestId);
@@ -52,6 +59,7 @@ export class DelegationControl {
52
59
  }
53
60
  this.routes.clear();
54
61
  this.deliveries.clear();
62
+ this.reports.clear();
55
63
  }
56
64
  token(agent) {
57
65
  const route = this.routes.get(agent.session.id);
@@ -118,7 +126,7 @@ export class DelegationControl {
118
126
  reject('DELEGATION_CAPACITY', 'Too many pending dispatch inputs. Wait for existing tasks to finish.');
119
127
  this.deliveries.delete(evictable[0]);
120
128
  }
121
- this.deliveries.set(requestId, delivery);
129
+ this.deliveries.set(requestId, { ...delivery, messageId: relayMessageId(requestId) });
122
130
  }
123
131
  assertIdentity(delivery, from, to, signature, kind) {
124
132
  if (delivery.from !== from || delivery.to !== to || delivery.signature !== signature || delivery.kind !== kind)
@@ -140,6 +148,10 @@ export class DelegationControl {
140
148
  if (attempt?.pending)
141
149
  reject('REPORT_IN_PROGRESS', 'This task already has a report admission in flight.');
142
150
  token.attempt = { requestId, message, pending: true };
151
+ const messageId = relayMessageId(requestId);
152
+ if (!this.reports.has(messageId) && this.reports.size >= 512)
153
+ this.reports.delete(this.reports.keys().next().value);
154
+ this.reports.set(messageId, { from: agent.session.id, to: token.parentSessionId });
143
155
  }
144
156
  close(token) {
145
157
  token.active = false;
@@ -164,10 +176,13 @@ export class DelegationControl {
164
176
  }
165
177
  if (event.type !== 'user/message' || (event.surfaceOp !== undefined && event.surfaceOp !== 'append'))
166
178
  return;
167
- const source = event.data?.source;
168
- if (source?.kind !== 'user')
179
+ const data = event.data;
180
+ const source = data?.source;
181
+ if (source?.kind !== 'user' && source?.kind !== 'agent-message')
169
182
  return;
170
- const delivery = source.rpcId === undefined ? undefined : this.deliveries.get(source.rpcId);
183
+ const delivery = source.kind === 'agent-message' && source.form === 'relay'
184
+ ? [...this.deliveries.values()].find((item) => item.messageId === data?.id && item.from === source.senderSessionId)
185
+ : undefined;
171
186
  if (delivery?.to === sessionId) {
172
187
  if (delivery.kind === 'task' && delivery.token && delivery.token === route.token && !route.humanInput) {
173
188
  delivery.token.active = true;
@@ -180,8 +195,19 @@ export class DelegationControl {
180
195
  this.close(route.token);
181
196
  return;
182
197
  }
183
- // Native prompt IDs retain this prefix after plugin/Agent restart. Unknown
184
- // plugin admissions never become a human authorization to start a callback.
198
+ if (source.kind === 'agent-message') {
199
+ if (!route.humanInput)
200
+ route.dispatchBlocked = true;
201
+ // A report can arrive while its recipient owns an outer task. Keeping that
202
+ // task does not authorize callbacks or assert that the child succeeded.
203
+ const report = data?.id === undefined ? undefined : this.reports.get(data.id);
204
+ const knownReport = source.form === 'relay' && report?.to === sessionId && report.from === source.senderSessionId;
205
+ if (!knownReport && route.token)
206
+ this.close(route.token);
207
+ return;
208
+ }
209
+ // Legacy queued user-RPC messages retain these prefixes after upgrade.
210
+ // They never become human authorization or activate a new relay task.
185
211
  if (source.rpcId?.startsWith('clutch-worktree:') || source.rpcId?.startsWith('clutch-worktree-report:')) {
186
212
  if (!route.humanInput)
187
213
  route.dispatchBlocked = true;
@@ -1 +1 @@
1
- {"version":3,"file":"delegation.js","sourceRoot":"","sources":["../../src/tool/delegation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delegation.js","sourceRoot":"","sources":["../../src/tool/delegation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { WorktreeRecord, WorktreeManager } from '../contract/index.js';
2
+ import type { WorktreeSessionDispatchResult } from '../contract/baseline-sync.js';
3
+ import type { ToolModel, WorktreeToolSessionPort } from './native-session.js';
4
+ import type { CallingAgent } from './types.js';
5
+ /** Shared by the Agent tool and Dashboard tasks; all mutations use native DSH APIs. */
6
+ export declare function dispatchWorktreeSession(input: {
7
+ readonly record: WorktreeRecord;
8
+ readonly manager: Pick<WorktreeManager, 'bindSession'>;
9
+ readonly sessions: WorktreeToolSessionPort;
10
+ readonly model: ToolModel;
11
+ readonly prompt: string;
12
+ readonly sender?: CallingAgent;
13
+ readonly title?: string;
14
+ readonly signal: AbortSignal;
15
+ readonly check: () => void;
16
+ readonly prepare?: (sessionId: string, requestId: string) => Promise<void>;
17
+ }): Promise<WorktreeSessionDispatchResult>;
18
+ //# sourceMappingURL=dispatch-session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch-session.d.ts","sourceRoot":"","sources":["../../src/tool/dispatch-session.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,KAAK,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,uFAAuF;AACvF,wBAAsB,uBAAuB,CAAC,KAAK,EAAE;IACnD,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;IACvD,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5E,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAkCzC"}
@@ -0,0 +1,41 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ /** Shared by the Agent tool and Dashboard tasks; all mutations use native DSH APIs. */
3
+ export async function dispatchWorktreeSession(input) {
4
+ const { record, manager, sessions, model, signal, check } = input;
5
+ check();
6
+ const { sessionId } = await sessions.create({ cwd: record.absolutePath });
7
+ const requestId = `clutch-worktree:${sessionId}:${randomUUID()}`;
8
+ let status = 'binding-failed';
9
+ let error;
10
+ try {
11
+ check();
12
+ await manager.bindSession({ workspaceId: record.workspaceId, worktreeId: record.worktreeId, sessionId });
13
+ status = 'model-failed';
14
+ check();
15
+ await sessions.configureModel(sessionId, model, signal);
16
+ if (input.title) {
17
+ status = 'title-failed';
18
+ check();
19
+ await sessions.rename({ sessionId, title: input.title });
20
+ }
21
+ if (input.prepare) {
22
+ status = 'reporting-failed';
23
+ check();
24
+ await input.prepare(sessionId, requestId);
25
+ }
26
+ status = 'prompt-failed';
27
+ check();
28
+ const message = { sessionId, requestId, mode: 'queue', content: [{ type: 'text', text: input.prompt }] };
29
+ if (input.sender)
30
+ await sessions.sendAgentMessage({ ...message, sender: input.sender }, signal);
31
+ else
32
+ await sessions.prompt(message, signal);
33
+ status = 'dispatched';
34
+ }
35
+ catch (cause) {
36
+ error = (cause instanceof Error ? cause.message : String(cause)).slice(0, 700);
37
+ }
38
+ return { workspaceId: record.workspaceId, worktreeId: record.worktreeId, sessionId, requestId,
39
+ model, status, ...(error === undefined ? {} : { error }) };
40
+ }
41
+ //# sourceMappingURL=dispatch-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch-session.js","sourceRoot":"","sources":["../../src/tool/dispatch-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAMzC,uFAAuF;AACvF,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,KAW7C;IACC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAClE,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAC1E,MAAM,SAAS,GAAG,mBAAmB,SAAS,IAAI,UAAU,EAAE,EAAE,CAAC;IACjE,IAAI,MAAM,GAA4C,gBAAgB,CAAC;IACvE,IAAI,KAAyB,CAAC;IAC9B,IAAI,CAAC;QACH,KAAK,EAAE,CAAC;QACR,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;QACzG,MAAM,GAAG,cAAc,CAAC;QACxB,KAAK,EAAE,CAAC;QACR,MAAM,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACxD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,GAAG,cAAc,CAAC;YACxB,KAAK,EAAE,CAAC;YACR,MAAM,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,GAAG,kBAAkB,CAAC;YAC5B,KAAK,EAAE,CAAC;YACR,MAAM,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,GAAG,eAAe,CAAC;QACzB,KAAK,EAAE,CAAC;QACR,MAAM,OAAO,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,OAAgB,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;QAC3H,IAAI,KAAK,CAAC,MAAM;YAAE,MAAM,QAAQ,CAAC,gBAAgB,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;;YAC3F,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5C,MAAM,GAAG,YAAY,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,KAAK,GAAG,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS;QAC3F,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AAC/D,CAAC"}
@@ -1,3 +1,9 @@
1
+ /** Only plugin-authored failures may replace the default recovery instructions. */
2
+ export declare class ToolRecoveryError extends Error {
3
+ readonly code: string;
4
+ readonly correction: string;
5
+ constructor(message: string, code: string, correction: string);
6
+ }
1
7
  export declare function recovery(name: string): string;
2
8
  export declare function actionableError(name: string, cause: unknown): Error;
3
9
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/tool/errors.ts"],"names":[],"mappings":"AAgCA,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAc7C;AACD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,CAiBnE"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/tool/errors.ts"],"names":[],"mappings":"AAGA,mFAAmF;AACnF,qBAAa,iBAAkB,SAAQ,KAAK;IACb,QAAQ,CAAC,IAAI,EAAE,MAAM;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM;gBAAnE,OAAO,EAAE,MAAM,EAAW,IAAI,EAAE,MAAM,EAAW,UAAU,EAAE,MAAM;CAGhF;AAgCD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAe7C;AACD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,CAmBnE"}
@@ -1,4 +1,15 @@
1
1
  import { z } from 'zod';
2
+ import { optionalInputGuidance } from './schema.js';
3
+ /** Only plugin-authored failures may replace the default recovery instructions. */
4
+ export class ToolRecoveryError extends Error {
5
+ code;
6
+ correction;
7
+ constructor(message, code, correction) {
8
+ super(message);
9
+ this.code = code;
10
+ this.correction = correction;
11
+ }
12
+ }
2
13
  const examples = {
3
14
  clutch_new_worktree: { name: 'feature/demo' },
4
15
  clutch_list_worktrees: {},
@@ -32,11 +43,12 @@ const delegationRecovery = {
32
43
  export function recovery(name) {
33
44
  return [
34
45
  'Use only the documented fields and exact ids returned by discovery/creation; ids are not paths or titles.',
46
+ optionalInputGuidance,
35
47
  name === 'clutch_span_worktree'
36
48
  ? 'Supply exactly one worktreeId or legacy exact branch name, plus a nonempty prompt. List Worktrees to select an active healthy target; list models only for an explicit override.'
37
49
  : '',
38
50
  name === 'clutch_send_message' || name === 'clutch_report_result'
39
- ? 'The target must still belong to the same Workspace with a valid binding/cwd. Repair unavailable or detached relations first. On uncertain admission retry the identical message with the returned requestId.'
51
+ ? 'The target must still belong to the same Workspace with a valid binding/cwd. Repair unavailable or detached relations first. Omit requestId for a new message/report; never invent one. On uncertain admission retry the identical message with the returned requestId.'
40
52
  : '',
41
53
  'Do not repeat a failed mutation without checking returned identities and its failed stage.',
42
54
  `Example: ${name}(${JSON.stringify(examples[name] ?? {})})`,
@@ -57,7 +69,9 @@ export function actionableError(name, cause) {
57
69
  const code = invalid
58
70
  ? 'INVALID_ARGUMENTS'
59
71
  : (cause?.code ?? 'TOOL_OPERATION_FAILED');
60
- const correction = delegationRecovery[String(code)] ?? recovery(name);
72
+ const correction = cause instanceof ToolRecoveryError
73
+ ? cause.correction
74
+ : delegationRecovery[String(code)] ?? recovery(name);
61
75
  return new Error(`${name}: ${code}. Why: ${reason.slice(0, 700)}. Correction: ${correction}`);
62
76
  }
63
77
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/tool/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/tool/errors.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { Context } from '@deepseek-ai/cordis';
2
2
  export declare const delegationHandoff = "After successful delegation or follow-up admission to a delegated Session, acknowledge dispatch and end the turn; continue only separate independent work already requested by the human. Wait for the executing Session's pushed report. Do not poll or check the delegated task through Session/Worktree lists, list_agents, wait_agent, bash, run_code, sleep loops, raw .dsh logs, Git/file checks or tests; do not edit or commit its Worktree yourself. No substitute monitoring tools and no housekeeping checks to fill the wait. An explicit human request for progress/investigation or a concrete admission failure permits a targeted action; otherwise wait for the pushed report.";
3
+ export declare const toolHandoff = "After successful admission, acknowledge dispatch and end the turn; continue only independent human-requested work. Wait for the pushed report. Do not poll via Session/Worktree lists, list_agents, wait_agent, bash, run_code, Git/file checks or tests, or edit/commit the delegated Worktree. Only an explicit human request or concrete admission failure permits targeted investigation.";
3
4
  export declare const delegationModel = "Before dispatch, honor the human's model or reasoning requirements. With no such requirement, omit model to inherit the caller's effective provider, model and reasoning effort; do not query the catalog merely to confirm this default. For a requested different model or task-based model choice, use clutch_list_models only when enabled, choose exact supported provider/model/effort ids and pass the model object explicitly. Do not invent model ids or substitute the deployment default. If discovery is disabled and the requested route is unknown, ask for the route or explain the missing capability before dispatch.";
4
5
  export declare function registerToolGuidance(ctx: Context, tools: () => ReadonlySet<string>, parent: () => string | undefined): void;
5
6
  //# sourceMappingURL=guidance.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"guidance.d.ts","sourceRoot":"","sources":["../../src/tool/guidance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGnD,eAAO,MAAM,iBAAiB,oqBAAqqB,CAAC;AAEpsB,eAAO,MAAM,eAAe,2mBAA6mB,CAAC;AAE1oB,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,MAAM,WAAW,CAAC,MAAM,CAAC,EAChC,MAAM,EAAE,MAAM,MAAM,GAAG,SAAS,GAC/B,IAAI,CA6CN"}
1
+ {"version":3,"file":"guidance.d.ts","sourceRoot":"","sources":["../../src/tool/guidance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGnD,eAAO,MAAM,iBAAiB,oqBAAqqB,CAAC;AAGpsB,eAAO,MAAM,WAAW,kYAAkY,CAAC;AAE3Z,eAAO,MAAM,eAAe,2mBAA6mB,CAAC;AAE1oB,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,MAAM,WAAW,CAAC,MAAM,CAAC,EAChC,MAAM,EAAE,MAAM,MAAM,GAAG,SAAS,GAC/B,IAAI,CA6CN"}
@@ -1,5 +1,7 @@
1
1
  // Also included in tool descriptions: complete personas (such as minimal) omit extra sections.
2
2
  export const delegationHandoff = 'After successful delegation or follow-up admission to a delegated Session, acknowledge dispatch and end the turn; continue only separate independent work already requested by the human. Wait for the executing Session\'s pushed report. Do not poll or check the delegated task through Session/Worktree lists, list_agents, wait_agent, bash, run_code, sleep loops, raw .dsh logs, Git/file checks or tests; do not edit or commit its Worktree yourself. No substitute monitoring tools and no housekeeping checks to fill the wait. An explicit human request for progress/investigation or a concrete admission failure permits a targeted action; otherwise wait for the pushed report.';
3
+ // Compact tool-local safety contract; full workflow guidance stays below.
4
+ export const toolHandoff = 'After successful admission, acknowledge dispatch and end the turn; continue only independent human-requested work. Wait for the pushed report. Do not poll via Session/Worktree lists, list_agents, wait_agent, bash, run_code, Git/file checks or tests, or edit/commit the delegated Worktree. Only an explicit human request or concrete admission failure permits targeted investigation.';
3
5
  export const delegationModel = 'Before dispatch, honor the human\'s model or reasoning requirements. With no such requirement, omit model to inherit the caller\'s effective provider, model and reasoning effort; do not query the catalog merely to confirm this default. For a requested different model or task-based model choice, use clutch_list_models only when enabled, choose exact supported provider/model/effort ids and pass the model object explicitly. Do not invent model ids or substitute the deployment default. If discovery is disabled and the requested route is unknown, ask for the route or explain the missing capability before dispatch.';
4
6
  export function registerToolGuidance(ctx, tools, parent) {
5
7
  const prompt = ctx.get('systemPrompt');
@@ -1 +1 @@
1
- {"version":3,"file":"guidance.js","sourceRoot":"","sources":["../../src/tool/guidance.ts"],"names":[],"mappings":"AAEA,+FAA+F;AAC/F,MAAM,CAAC,MAAM,iBAAiB,GAAG,kqBAAkqB,CAAC;AAEpsB,MAAM,CAAC,MAAM,eAAe,GAAG,0mBAA0mB,CAAC;AAE1oB,MAAM,UAAU,oBAAoB,CAClC,GAAY,EACZ,KAAgC,EAChC,MAAgC;IAEhC,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,cAAc,CAEpC,CAAC;IACF,MAAM,CAAC,OAAO,CAAC;QACb,IAAI,EAAE,4BAA4B;QAClC,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,GAAG,EAAE;YACT,MAAM,eAAe,GAAG,MAAM,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAC;YACzB,OAAO;gBACL,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;oBACrB,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC;wBACE,2HAA2H;wBAC3H,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,sBAAsB,CAAC;4BAC/D,CAAC,CAAC,CAAC,iFAAiF,CAAC,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,8QAA8Q,CAAC;4BAC7a,CAAC,CAAC,EAAE,CAAC;qBACR,CAAC;gBACN,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,sBAAsB,CAAC;oBACtC,CAAC,CAAC;wBACE,0fAA0f;wBAC1f,QAAQ,CAAC,GAAG,CAAC,qBAAqB,CAAC;4BACjC,CAAC,CAAC,usBAAusB;4BACzsB,CAAC,CAAC,2YAA2Y;wBAC/Y,eAAe;wBACf,4DAA4D,iBAAiB,EAAE;wBAC/E,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,qBAAqB,CAAC;4BACrC,CAAC,CAAC,CAAC,yJAAyJ,CAAC;4BAC7J,CAAC,CAAC,EAAE,CAAC;wBACP,kcAAkc;wBAClc,wPAAwP;qBACzP;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,sBAAsB,CAAC;oBAC9E,CAAC,CAAC,CAAC,oQAAoQ,CAAC;oBACxQ,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,eAAe,KAAK,SAAS;oBAC/B,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC;wBACE,iCAAiC,eAAe,81BAA81B;qBAC/4B,CAAC;aACP,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"guidance.js","sourceRoot":"","sources":["../../src/tool/guidance.ts"],"names":[],"mappings":"AAEA,+FAA+F;AAC/F,MAAM,CAAC,MAAM,iBAAiB,GAAG,kqBAAkqB,CAAC;AAEpsB,0EAA0E;AAC1E,MAAM,CAAC,MAAM,WAAW,GAAG,+XAA+X,CAAC;AAE3Z,MAAM,CAAC,MAAM,eAAe,GAAG,0mBAA0mB,CAAC;AAE1oB,MAAM,UAAU,oBAAoB,CAClC,GAAY,EACZ,KAAgC,EAChC,MAAgC;IAEhC,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,cAAc,CAEpC,CAAC;IACF,MAAM,CAAC,OAAO,CAAC;QACb,IAAI,EAAE,4BAA4B;QAClC,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,GAAG,EAAE;YACT,MAAM,eAAe,GAAG,MAAM,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAC;YACzB,OAAO;gBACL,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;oBACrB,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC;wBACE,2HAA2H;wBAC3H,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,sBAAsB,CAAC;4BAC/D,CAAC,CAAC,CAAC,iFAAiF,CAAC,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,8QAA8Q,CAAC;4BAC7a,CAAC,CAAC,EAAE,CAAC;qBACR,CAAC;gBACN,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,sBAAsB,CAAC;oBACtC,CAAC,CAAC;wBACE,0fAA0f;wBAC1f,QAAQ,CAAC,GAAG,CAAC,qBAAqB,CAAC;4BACjC,CAAC,CAAC,usBAAusB;4BACzsB,CAAC,CAAC,2YAA2Y;wBAC/Y,eAAe;wBACf,4DAA4D,iBAAiB,EAAE;wBAC/E,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,qBAAqB,CAAC;4BACrC,CAAC,CAAC,CAAC,yJAAyJ,CAAC;4BAC7J,CAAC,CAAC,EAAE,CAAC;wBACP,kcAAkc;wBAClc,wPAAwP;qBACzP;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,sBAAsB,CAAC;oBAC9E,CAAC,CAAC,CAAC,oQAAoQ,CAAC;oBACxQ,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,eAAe,KAAK,SAAS;oBAC/B,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC;wBACE,iCAAiC,eAAe,81BAA81B;qBAC/4B,CAAC;aACP,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tool/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAS,MAAM,qBAAqB,CAAC;AAE1D,OAAO,KAAK,EAA2C,OAAO,EAAE,MAAM,YAAY,CAAC;AAenF,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,YAAY,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,kFAAkF;AAClF,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAiUzF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tool/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAS,MAAM,qBAAqB,CAAC;AAE1D,OAAO,KAAK,EAA2C,OAAO,EAAE,MAAM,YAAY,CAAC;AAgBnF,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,YAAY,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,kFAAkF;AAClF,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAkWzF"}