@getpaseo/server 0.1.59 → 0.1.61

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 (274) hide show
  1. package/dist/scripts/dev-runner.js +26 -7
  2. package/dist/scripts/dev-runner.js.map +1 -1
  3. package/dist/server/client/daemon-client-runtime-metrics.d.ts +39 -0
  4. package/dist/server/client/daemon-client-runtime-metrics.d.ts.map +1 -0
  5. package/dist/server/client/daemon-client-runtime-metrics.js +173 -0
  6. package/dist/server/client/daemon-client-runtime-metrics.js.map +1 -0
  7. package/dist/server/client/daemon-client.d.ts +58 -9
  8. package/dist/server/client/daemon-client.d.ts.map +1 -1
  9. package/dist/server/client/daemon-client.js +151 -10
  10. package/dist/server/client/daemon-client.js.map +1 -1
  11. package/dist/server/server/agent/agent-manager.d.ts +55 -48
  12. package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
  13. package/dist/server/server/agent/agent-manager.js +541 -331
  14. package/dist/server/server/agent/agent-manager.js.map +1 -1
  15. package/dist/server/server/agent/agent-metadata-generator.d.ts +3 -2
  16. package/dist/server/server/agent/agent-metadata-generator.d.ts.map +1 -1
  17. package/dist/server/server/agent/agent-metadata-generator.js +31 -16
  18. package/dist/server/server/agent/agent-metadata-generator.js.map +1 -1
  19. package/dist/server/server/agent/agent-projections.d.ts +2 -1
  20. package/dist/server/server/agent/agent-projections.d.ts.map +1 -1
  21. package/dist/server/server/agent/agent-projections.js +29 -1
  22. package/dist/server/server/agent/agent-projections.js.map +1 -1
  23. package/dist/server/server/agent/agent-sdk-types.d.ts +9 -5
  24. package/dist/server/server/agent/agent-sdk-types.d.ts.map +1 -1
  25. package/dist/server/server/agent/agent-sdk-types.js.map +1 -1
  26. package/dist/server/server/agent/agent-storage.d.ts +76 -69
  27. package/dist/server/server/agent/agent-storage.d.ts.map +1 -1
  28. package/dist/server/server/agent/agent-storage.js +13 -6
  29. package/dist/server/server/agent/agent-storage.js.map +1 -1
  30. package/dist/server/server/agent/agent-stream-coalescer.d.ts +41 -0
  31. package/dist/server/server/agent/agent-stream-coalescer.d.ts.map +1 -0
  32. package/dist/server/server/agent/agent-stream-coalescer.js +166 -0
  33. package/dist/server/server/agent/agent-stream-coalescer.js.map +1 -0
  34. package/dist/server/server/agent/agent-timeline-store-types.d.ts +54 -0
  35. package/dist/server/server/agent/agent-timeline-store-types.d.ts.map +1 -0
  36. package/dist/server/server/agent/agent-timeline-store-types.js +2 -0
  37. package/dist/server/server/agent/agent-timeline-store-types.js.map +1 -0
  38. package/dist/server/server/agent/agent-timeline-store.d.ts +32 -0
  39. package/dist/server/server/agent/agent-timeline-store.d.ts.map +1 -0
  40. package/dist/server/server/agent/agent-timeline-store.js +245 -0
  41. package/dist/server/server/agent/agent-timeline-store.js.map +1 -0
  42. package/dist/server/server/agent/mcp-server.d.ts +12 -1
  43. package/dist/server/server/agent/mcp-server.d.ts.map +1 -1
  44. package/dist/server/server/agent/mcp-server.js +276 -65
  45. package/dist/server/server/agent/mcp-server.js.map +1 -1
  46. package/dist/server/server/agent/mcp-shared.d.ts +196 -152
  47. package/dist/server/server/agent/mcp-shared.d.ts.map +1 -1
  48. package/dist/server/server/agent/mcp-shared.js +40 -42
  49. package/dist/server/server/agent/mcp-shared.js.map +1 -1
  50. package/dist/server/server/agent/model-resolver.d.ts.map +1 -1
  51. package/dist/server/server/agent/model-resolver.js +3 -1
  52. package/dist/server/server/agent/model-resolver.js.map +1 -1
  53. package/dist/server/server/agent/prompt-attachments.d.ts +6 -0
  54. package/dist/server/server/agent/prompt-attachments.d.ts.map +1 -0
  55. package/dist/server/server/agent/prompt-attachments.js +31 -0
  56. package/dist/server/server/agent/prompt-attachments.js.map +1 -0
  57. package/dist/server/server/agent/provider-launch-config.d.ts +78 -8
  58. package/dist/server/server/agent/provider-launch-config.d.ts.map +1 -1
  59. package/dist/server/server/agent/provider-launch-config.js +35 -0
  60. package/dist/server/server/agent/provider-launch-config.js.map +1 -1
  61. package/dist/server/server/agent/provider-manifest.d.ts +1 -0
  62. package/dist/server/server/agent/provider-manifest.d.ts.map +1 -1
  63. package/dist/server/server/agent/provider-manifest.js +22 -1
  64. package/dist/server/server/agent/provider-manifest.js.map +1 -1
  65. package/dist/server/server/agent/provider-registry.d.ts +5 -2
  66. package/dist/server/server/agent/provider-registry.d.ts.map +1 -1
  67. package/dist/server/server/agent/provider-registry.js +61 -17
  68. package/dist/server/server/agent/provider-registry.js.map +1 -1
  69. package/dist/server/server/agent/provider-snapshot-manager.d.ts +17 -5
  70. package/dist/server/server/agent/provider-snapshot-manager.d.ts.map +1 -1
  71. package/dist/server/server/agent/provider-snapshot-manager.js +150 -61
  72. package/dist/server/server/agent/provider-snapshot-manager.js.map +1 -1
  73. package/dist/server/server/agent/providers/acp-agent.d.ts +8 -4
  74. package/dist/server/server/agent/providers/acp-agent.d.ts.map +1 -1
  75. package/dist/server/server/agent/providers/acp-agent.js +73 -8
  76. package/dist/server/server/agent/providers/acp-agent.js.map +1 -1
  77. package/dist/server/server/agent/providers/claude/task-notification-tool-call.d.ts +2 -2
  78. package/dist/server/server/agent/providers/claude-agent.d.ts +1 -1
  79. package/dist/server/server/agent/providers/claude-agent.d.ts.map +1 -1
  80. package/dist/server/server/agent/providers/claude-agent.js +8 -7
  81. package/dist/server/server/agent/providers/claude-agent.js.map +1 -1
  82. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +37 -4
  83. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -1
  84. package/dist/server/server/agent/providers/codex-app-server-agent.js +61 -31
  85. package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
  86. package/dist/server/server/agent/providers/copilot-acp-agent.d.ts.map +1 -1
  87. package/dist/server/server/agent/providers/copilot-acp-agent.js +3 -2
  88. package/dist/server/server/agent/providers/copilot-acp-agent.js.map +1 -1
  89. package/dist/server/server/agent/providers/mock-load-test-agent.d.ts +64 -0
  90. package/dist/server/server/agent/providers/mock-load-test-agent.d.ts.map +1 -0
  91. package/dist/server/server/agent/providers/mock-load-test-agent.js +585 -0
  92. package/dist/server/server/agent/providers/mock-load-test-agent.js.map +1 -0
  93. package/dist/server/server/agent/providers/opencode-agent.d.ts +19 -4
  94. package/dist/server/server/agent/providers/opencode-agent.d.ts.map +1 -1
  95. package/dist/server/server/agent/providers/opencode-agent.js +227 -118
  96. package/dist/server/server/agent/providers/opencode-agent.js.map +1 -1
  97. package/dist/server/server/agent/providers/pi-direct-agent.d.ts +69 -0
  98. package/dist/server/server/agent/providers/pi-direct-agent.d.ts.map +1 -0
  99. package/dist/server/server/agent/providers/pi-direct-agent.js +1171 -0
  100. package/dist/server/server/agent/providers/pi-direct-agent.js.map +1 -0
  101. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts +7 -4
  102. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts.map +1 -1
  103. package/dist/server/server/agent-attention-policy.d.ts +13 -13
  104. package/dist/server/server/agent-attention-policy.d.ts.map +1 -1
  105. package/dist/server/server/agent-attention-policy.js +20 -36
  106. package/dist/server/server/agent-attention-policy.js.map +1 -1
  107. package/dist/server/server/bootstrap.d.ts +6 -0
  108. package/dist/server/server/bootstrap.d.ts.map +1 -1
  109. package/dist/server/server/bootstrap.js +113 -11
  110. package/dist/server/server/bootstrap.js.map +1 -1
  111. package/dist/server/server/chat/chat-rpc-schemas.d.ts +44 -44
  112. package/dist/server/server/chat/chat-types.d.ts +6 -6
  113. package/dist/server/server/checkout-diff-manager.d.ts +0 -1
  114. package/dist/server/server/checkout-diff-manager.d.ts.map +1 -1
  115. package/dist/server/server/checkout-diff-manager.js +6 -4
  116. package/dist/server/server/checkout-diff-manager.js.map +1 -1
  117. package/dist/server/server/config.d.ts.map +1 -1
  118. package/dist/server/server/config.js +1 -0
  119. package/dist/server/server/config.js.map +1 -1
  120. package/dist/server/server/file-explorer/service.d.ts.map +1 -1
  121. package/dist/server/server/file-explorer/service.js +2 -1
  122. package/dist/server/server/file-explorer/service.js.map +1 -1
  123. package/dist/server/server/loop/rpc-schemas.d.ts +392 -392
  124. package/dist/server/server/loop-service.d.ts +52 -52
  125. package/dist/server/server/paseo-worktree-archive-service.d.ts +41 -0
  126. package/dist/server/server/paseo-worktree-archive-service.d.ts.map +1 -0
  127. package/dist/server/server/paseo-worktree-archive-service.js +137 -0
  128. package/dist/server/server/paseo-worktree-archive-service.js.map +1 -0
  129. package/dist/server/server/paseo-worktree-service.d.ts +24 -0
  130. package/dist/server/server/paseo-worktree-service.d.ts.map +1 -0
  131. package/dist/server/server/paseo-worktree-service.js +94 -0
  132. package/dist/server/server/paseo-worktree-service.js.map +1 -0
  133. package/dist/server/server/path-utils.d.ts +1 -0
  134. package/dist/server/server/path-utils.d.ts.map +1 -1
  135. package/dist/server/server/path-utils.js +9 -0
  136. package/dist/server/server/path-utils.js.map +1 -1
  137. package/dist/server/server/persisted-config.d.ts +195 -67
  138. package/dist/server/server/persisted-config.d.ts.map +1 -1
  139. package/dist/server/server/persistence-hooks.d.ts.map +1 -1
  140. package/dist/server/server/persistence-hooks.js +3 -0
  141. package/dist/server/server/persistence-hooks.js.map +1 -1
  142. package/dist/server/server/resolve-worktree-creation-intent.d.ts +30 -0
  143. package/dist/server/server/resolve-worktree-creation-intent.d.ts.map +1 -0
  144. package/dist/server/server/resolve-worktree-creation-intent.js +163 -0
  145. package/dist/server/server/resolve-worktree-creation-intent.js.map +1 -0
  146. package/dist/server/server/schedule/rpc-schemas.d.ts +192 -192
  147. package/dist/server/server/schedule/service.d.ts +1 -1
  148. package/dist/server/server/schedule/service.d.ts.map +1 -1
  149. package/dist/server/server/schedule/types.d.ts +44 -44
  150. package/dist/server/server/script-health-monitor.d.ts +39 -0
  151. package/dist/server/server/script-health-monitor.d.ts.map +1 -0
  152. package/dist/server/server/script-health-monitor.js +158 -0
  153. package/dist/server/server/script-health-monitor.js.map +1 -0
  154. package/dist/server/server/script-proxy.d.ts +40 -0
  155. package/dist/server/server/script-proxy.d.ts.map +1 -0
  156. package/dist/server/server/script-proxy.js +245 -0
  157. package/dist/server/server/script-proxy.js.map +1 -0
  158. package/dist/server/server/script-route-branch-handler.d.ts +10 -0
  159. package/dist/server/server/script-route-branch-handler.d.ts.map +1 -0
  160. package/dist/server/server/script-route-branch-handler.js +45 -0
  161. package/dist/server/server/script-route-branch-handler.js.map +1 -0
  162. package/dist/server/server/script-status-projection.d.ts +29 -0
  163. package/dist/server/server/script-status-projection.d.ts.map +1 -0
  164. package/dist/server/server/script-status-projection.js +133 -0
  165. package/dist/server/server/script-status-projection.js.map +1 -0
  166. package/dist/server/server/session.d.ts +77 -13
  167. package/dist/server/server/session.d.ts.map +1 -1
  168. package/dist/server/server/session.js +1290 -548
  169. package/dist/server/server/session.js.map +1 -1
  170. package/dist/server/server/websocket-server.d.ts +27 -3
  171. package/dist/server/server/websocket-server.d.ts.map +1 -1
  172. package/dist/server/server/websocket-server.js +112 -29
  173. package/dist/server/server/websocket-server.js.map +1 -1
  174. package/dist/server/server/workspace-archive-service.d.ts +8 -0
  175. package/dist/server/server/workspace-archive-service.d.ts.map +1 -0
  176. package/dist/server/server/workspace-archive-service.js +17 -0
  177. package/dist/server/server/workspace-archive-service.js.map +1 -0
  178. package/dist/server/server/workspace-git-metadata.d.ts +24 -0
  179. package/dist/server/server/workspace-git-metadata.d.ts.map +1 -0
  180. package/dist/server/server/workspace-git-metadata.js +78 -0
  181. package/dist/server/server/workspace-git-metadata.js.map +1 -0
  182. package/dist/server/server/workspace-git-service.d.ts +104 -5
  183. package/dist/server/server/workspace-git-service.d.ts.map +1 -1
  184. package/dist/server/server/workspace-git-service.js +442 -56
  185. package/dist/server/server/workspace-git-service.js.map +1 -1
  186. package/dist/server/server/workspace-reconciliation-service.d.ts +54 -0
  187. package/dist/server/server/workspace-reconciliation-service.d.ts.map +1 -0
  188. package/dist/server/server/workspace-reconciliation-service.js +176 -0
  189. package/dist/server/server/workspace-reconciliation-service.js.map +1 -0
  190. package/dist/server/server/workspace-registry-bootstrap.d.ts.map +1 -1
  191. package/dist/server/server/workspace-registry-bootstrap.js +4 -3
  192. package/dist/server/server/workspace-registry-bootstrap.js.map +1 -1
  193. package/dist/server/server/workspace-registry.d.ts +8 -8
  194. package/dist/server/server/workspace-registry.test-helpers.d.ts +37 -0
  195. package/dist/server/server/workspace-registry.test-helpers.d.ts.map +1 -0
  196. package/dist/server/server/workspace-registry.test-helpers.js +121 -0
  197. package/dist/server/server/workspace-registry.test-helpers.js.map +1 -0
  198. package/dist/server/server/workspace-script-runtime-store.d.ts +28 -0
  199. package/dist/server/server/workspace-script-runtime-store.d.ts.map +1 -0
  200. package/dist/server/server/workspace-script-runtime-store.js +78 -0
  201. package/dist/server/server/workspace-script-runtime-store.js.map +1 -0
  202. package/dist/server/server/workspace-service-env.d.ts +17 -0
  203. package/dist/server/server/workspace-service-env.d.ts.map +1 -0
  204. package/dist/server/server/workspace-service-env.js +80 -0
  205. package/dist/server/server/workspace-service-env.js.map +1 -0
  206. package/dist/server/server/workspace-service-port-registry.d.ts +19 -0
  207. package/dist/server/server/workspace-service-port-registry.d.ts.map +1 -0
  208. package/dist/server/server/workspace-service-port-registry.js +59 -0
  209. package/dist/server/server/workspace-service-port-registry.js.map +1 -0
  210. package/dist/server/server/worktree-bootstrap.d.ts +55 -10
  211. package/dist/server/server/worktree-bootstrap.d.ts.map +1 -1
  212. package/dist/server/server/worktree-bootstrap.js +290 -112
  213. package/dist/server/server/worktree-bootstrap.js.map +1 -1
  214. package/dist/server/server/worktree-core.d.ts +25 -0
  215. package/dist/server/server/worktree-core.d.ts.map +1 -0
  216. package/dist/server/server/worktree-core.js +75 -0
  217. package/dist/server/server/worktree-core.js.map +1 -0
  218. package/dist/server/server/worktree-errors.d.ts +12 -0
  219. package/dist/server/server/worktree-errors.d.ts.map +1 -0
  220. package/dist/server/server/worktree-errors.js +31 -0
  221. package/dist/server/server/worktree-errors.js.map +1 -0
  222. package/dist/server/server/worktree-session.d.ts +56 -70
  223. package/dist/server/server/worktree-session.d.ts.map +1 -1
  224. package/dist/server/server/worktree-session.js +176 -251
  225. package/dist/server/server/worktree-session.js.map +1 -1
  226. package/dist/server/services/github-service.d.ts +225 -0
  227. package/dist/server/services/github-service.d.ts.map +1 -0
  228. package/dist/server/services/github-service.js +1381 -0
  229. package/dist/server/services/github-service.js.map +1 -0
  230. package/dist/server/shared/messages.d.ts +29408 -12268
  231. package/dist/server/shared/messages.d.ts.map +1 -1
  232. package/dist/server/shared/messages.js +391 -65
  233. package/dist/server/shared/messages.js.map +1 -1
  234. package/dist/server/terminal/shell-integration/zsh/.zshenv +17 -0
  235. package/dist/server/terminal/shell-integration/zsh/paseo-integration.zsh +32 -0
  236. package/dist/server/terminal/terminal-manager.d.ts +9 -0
  237. package/dist/server/terminal/terminal-manager.d.ts.map +1 -1
  238. package/dist/server/terminal/terminal-manager.js +27 -0
  239. package/dist/server/terminal/terminal-manager.js.map +1 -1
  240. package/dist/server/terminal/terminal-output-coalescer.d.ts +30 -0
  241. package/dist/server/terminal/terminal-output-coalescer.d.ts.map +1 -0
  242. package/dist/server/terminal/terminal-output-coalescer.js +55 -0
  243. package/dist/server/terminal/terminal-output-coalescer.js.map +1 -0
  244. package/dist/server/terminal/terminal.d.ts +32 -1
  245. package/dist/server/terminal/terminal.d.ts.map +1 -1
  246. package/dist/server/terminal/terminal.js +397 -17
  247. package/dist/server/terminal/terminal.js.map +1 -1
  248. package/dist/server/utils/checkout-git.d.ts +63 -10
  249. package/dist/server/utils/checkout-git.d.ts.map +1 -1
  250. package/dist/server/utils/checkout-git.js +321 -229
  251. package/dist/server/utils/checkout-git.js.map +1 -1
  252. package/dist/server/utils/promise-timeout.d.ts +9 -0
  253. package/dist/server/utils/promise-timeout.d.ts.map +1 -0
  254. package/dist/server/utils/promise-timeout.js +25 -0
  255. package/dist/server/utils/promise-timeout.js.map +1 -0
  256. package/dist/server/utils/script-hostname.d.ts +8 -0
  257. package/dist/server/utils/script-hostname.d.ts.map +1 -0
  258. package/dist/server/utils/script-hostname.js +14 -0
  259. package/dist/server/utils/script-hostname.js.map +1 -0
  260. package/dist/server/utils/string-command-shell.d.ts +10 -0
  261. package/dist/server/utils/string-command-shell.d.ts.map +1 -0
  262. package/dist/server/utils/string-command-shell.js +21 -0
  263. package/dist/server/utils/string-command-shell.js.map +1 -0
  264. package/dist/server/utils/worktree.d.ts +54 -7
  265. package/dist/server/utils/worktree.d.ts.map +1 -1
  266. package/dist/server/utils/worktree.js +434 -129
  267. package/dist/server/utils/worktree.js.map +1 -1
  268. package/dist/src/terminal/shell-integration/zsh/.zshenv +17 -0
  269. package/dist/src/terminal/shell-integration/zsh/paseo-integration.zsh +32 -0
  270. package/package.json +11 -14
  271. package/dist/server/server/agent/providers/pi-acp-agent.d.ts +0 -28
  272. package/dist/server/server/agent/providers/pi-acp-agent.d.ts.map +0 -1
  273. package/dist/server/server/agent/providers/pi-acp-agent.js +0 -302
  274. package/dist/server/server/agent/providers/pi-acp-agent.js.map +0 -1
@@ -11,18 +11,18 @@ declare const LoopLogEntrySchema: z.ZodObject<{
11
11
  text: z.ZodString;
12
12
  }, "strip", z.ZodTypeAny, {
13
13
  text: string;
14
- source: "worker" | "loop" | "verifier" | "verify-check";
15
- level: "error" | "info";
16
14
  seq: number;
17
15
  timestamp: string;
18
16
  iteration: number | null;
17
+ source: "loop" | "worker" | "verifier" | "verify-check";
18
+ level: "error" | "info";
19
19
  }, {
20
20
  text: string;
21
- source: "worker" | "loop" | "verifier" | "verify-check";
22
- level: "error" | "info";
23
21
  seq: number;
24
22
  timestamp: string;
25
23
  iteration: number | null;
24
+ source: "loop" | "worker" | "verifier" | "verify-check";
25
+ level: "error" | "info";
26
26
  }>;
27
27
  declare const LoopVerifyCheckResultSchema: z.ZodObject<{
28
28
  command: z.ZodString;
@@ -33,20 +33,20 @@ declare const LoopVerifyCheckResultSchema: z.ZodObject<{
33
33
  startedAt: z.ZodString;
34
34
  completedAt: z.ZodString;
35
35
  }, "strip", z.ZodTypeAny, {
36
+ startedAt: string;
36
37
  command: string;
37
38
  exitCode: number;
39
+ passed: boolean;
38
40
  stdout: string;
39
41
  stderr: string;
40
- startedAt: string;
41
- passed: boolean;
42
42
  completedAt: string;
43
43
  }, {
44
+ startedAt: string;
44
45
  command: string;
45
46
  exitCode: number;
47
+ passed: boolean;
46
48
  stdout: string;
47
49
  stderr: string;
48
- startedAt: string;
49
- passed: boolean;
50
50
  completedAt: string;
51
51
  }>;
52
52
  declare const LoopVerifyPromptResultSchema: z.ZodObject<{
@@ -86,20 +86,20 @@ declare const LoopIterationRecordSchema: z.ZodObject<{
86
86
  startedAt: z.ZodString;
87
87
  completedAt: z.ZodString;
88
88
  }, "strip", z.ZodTypeAny, {
89
+ startedAt: string;
89
90
  command: string;
90
91
  exitCode: number;
92
+ passed: boolean;
91
93
  stdout: string;
92
94
  stderr: string;
93
- startedAt: string;
94
- passed: boolean;
95
95
  completedAt: string;
96
96
  }, {
97
+ startedAt: string;
97
98
  command: string;
98
99
  exitCode: number;
100
+ passed: boolean;
99
101
  stdout: string;
100
102
  stderr: string;
101
- startedAt: string;
102
- passed: boolean;
103
103
  completedAt: string;
104
104
  }>, "many">;
105
105
  verifyPrompt: z.ZodNullable<z.ZodObject<{
@@ -122,7 +122,7 @@ declare const LoopIterationRecordSchema: z.ZodObject<{
122
122
  verifierAgentId: string | null;
123
123
  }>>;
124
124
  }, "strip", z.ZodTypeAny, {
125
- status: "running" | "failed" | "stopped" | "succeeded";
125
+ status: "running" | "failed" | "succeeded" | "stopped";
126
126
  verifierAgentId: string | null;
127
127
  index: number;
128
128
  workerAgentId: string | null;
@@ -131,12 +131,12 @@ declare const LoopIterationRecordSchema: z.ZodObject<{
131
131
  workerOutcome: "completed" | "failed" | "canceled" | null;
132
132
  failureReason: string | null;
133
133
  verifyChecks: {
134
+ startedAt: string;
134
135
  command: string;
135
136
  exitCode: number;
137
+ passed: boolean;
136
138
  stdout: string;
137
139
  stderr: string;
138
- startedAt: string;
139
- passed: boolean;
140
140
  completedAt: string;
141
141
  }[];
142
142
  verifyPrompt: {
@@ -147,7 +147,7 @@ declare const LoopIterationRecordSchema: z.ZodObject<{
147
147
  verifierAgentId: string | null;
148
148
  } | null;
149
149
  }, {
150
- status: "running" | "failed" | "stopped" | "succeeded";
150
+ status: "running" | "failed" | "succeeded" | "stopped";
151
151
  verifierAgentId: string | null;
152
152
  index: number;
153
153
  workerAgentId: string | null;
@@ -156,12 +156,12 @@ declare const LoopIterationRecordSchema: z.ZodObject<{
156
156
  workerOutcome: "completed" | "failed" | "canceled" | null;
157
157
  failureReason: string | null;
158
158
  verifyChecks: {
159
+ startedAt: string;
159
160
  command: string;
160
161
  exitCode: number;
162
+ passed: boolean;
161
163
  stdout: string;
162
164
  stderr: string;
163
- startedAt: string;
164
- passed: boolean;
165
165
  completedAt: string;
166
166
  }[];
167
167
  verifyPrompt: {
@@ -213,20 +213,20 @@ declare const LoopRecordSchema: z.ZodObject<{
213
213
  startedAt: z.ZodString;
214
214
  completedAt: z.ZodString;
215
215
  }, "strip", z.ZodTypeAny, {
216
+ startedAt: string;
216
217
  command: string;
217
218
  exitCode: number;
219
+ passed: boolean;
218
220
  stdout: string;
219
221
  stderr: string;
220
- startedAt: string;
221
- passed: boolean;
222
222
  completedAt: string;
223
223
  }, {
224
+ startedAt: string;
224
225
  command: string;
225
226
  exitCode: number;
227
+ passed: boolean;
226
228
  stdout: string;
227
229
  stderr: string;
228
- startedAt: string;
229
- passed: boolean;
230
230
  completedAt: string;
231
231
  }>, "many">;
232
232
  verifyPrompt: z.ZodNullable<z.ZodObject<{
@@ -249,7 +249,7 @@ declare const LoopRecordSchema: z.ZodObject<{
249
249
  verifierAgentId: string | null;
250
250
  }>>;
251
251
  }, "strip", z.ZodTypeAny, {
252
- status: "running" | "failed" | "stopped" | "succeeded";
252
+ status: "running" | "failed" | "succeeded" | "stopped";
253
253
  verifierAgentId: string | null;
254
254
  index: number;
255
255
  workerAgentId: string | null;
@@ -258,12 +258,12 @@ declare const LoopRecordSchema: z.ZodObject<{
258
258
  workerOutcome: "completed" | "failed" | "canceled" | null;
259
259
  failureReason: string | null;
260
260
  verifyChecks: {
261
+ startedAt: string;
261
262
  command: string;
262
263
  exitCode: number;
264
+ passed: boolean;
263
265
  stdout: string;
264
266
  stderr: string;
265
- startedAt: string;
266
- passed: boolean;
267
267
  completedAt: string;
268
268
  }[];
269
269
  verifyPrompt: {
@@ -274,7 +274,7 @@ declare const LoopRecordSchema: z.ZodObject<{
274
274
  verifierAgentId: string | null;
275
275
  } | null;
276
276
  }, {
277
- status: "running" | "failed" | "stopped" | "succeeded";
277
+ status: "running" | "failed" | "succeeded" | "stopped";
278
278
  verifierAgentId: string | null;
279
279
  index: number;
280
280
  workerAgentId: string | null;
@@ -283,12 +283,12 @@ declare const LoopRecordSchema: z.ZodObject<{
283
283
  workerOutcome: "completed" | "failed" | "canceled" | null;
284
284
  failureReason: string | null;
285
285
  verifyChecks: {
286
+ startedAt: string;
286
287
  command: string;
287
288
  exitCode: number;
289
+ passed: boolean;
288
290
  stdout: string;
289
291
  stderr: string;
290
- startedAt: string;
291
- passed: boolean;
292
292
  completedAt: string;
293
293
  }[];
294
294
  verifyPrompt: {
@@ -308,18 +308,18 @@ declare const LoopRecordSchema: z.ZodObject<{
308
308
  text: z.ZodString;
309
309
  }, "strip", z.ZodTypeAny, {
310
310
  text: string;
311
- source: "worker" | "loop" | "verifier" | "verify-check";
312
- level: "error" | "info";
313
311
  seq: number;
314
312
  timestamp: string;
315
313
  iteration: number | null;
314
+ source: "loop" | "worker" | "verifier" | "verify-check";
315
+ level: "error" | "info";
316
316
  }, {
317
317
  text: string;
318
- source: "worker" | "loop" | "verifier" | "verify-check";
319
- level: "error" | "info";
320
318
  seq: number;
321
319
  timestamp: string;
322
320
  iteration: number | null;
321
+ source: "loop" | "worker" | "verifier" | "verify-check";
322
+ level: "error" | "info";
323
323
  }>, "many">;
324
324
  nextLogSeq: z.ZodNumber;
325
325
  activeIteration: z.ZodNullable<z.ZodNumber>;
@@ -327,15 +327,15 @@ declare const LoopRecordSchema: z.ZodObject<{
327
327
  activeVerifierAgentId: z.ZodNullable<z.ZodString>;
328
328
  }, "strip", z.ZodTypeAny, {
329
329
  name: string | null;
330
- id: string;
331
- status: "running" | "failed" | "stopped" | "succeeded";
330
+ status: "running" | "failed" | "succeeded" | "stopped";
332
331
  cwd: string;
333
- prompt: string;
332
+ id: string;
333
+ createdAt: string;
334
+ updatedAt: string;
334
335
  provider: string;
335
336
  model: string | null;
336
- updatedAt: string;
337
- createdAt: string;
338
337
  startedAt: string;
338
+ prompt: string;
339
339
  completedAt: string | null;
340
340
  verifyChecks: string[];
341
341
  verifyPrompt: string | null;
@@ -349,7 +349,7 @@ declare const LoopRecordSchema: z.ZodObject<{
349
349
  maxTimeMs: number | null;
350
350
  stopRequestedAt: string | null;
351
351
  iterations: {
352
- status: "running" | "failed" | "stopped" | "succeeded";
352
+ status: "running" | "failed" | "succeeded" | "stopped";
353
353
  verifierAgentId: string | null;
354
354
  index: number;
355
355
  workerAgentId: string | null;
@@ -358,12 +358,12 @@ declare const LoopRecordSchema: z.ZodObject<{
358
358
  workerOutcome: "completed" | "failed" | "canceled" | null;
359
359
  failureReason: string | null;
360
360
  verifyChecks: {
361
+ startedAt: string;
361
362
  command: string;
362
363
  exitCode: number;
364
+ passed: boolean;
363
365
  stdout: string;
364
366
  stderr: string;
365
- startedAt: string;
366
- passed: boolean;
367
367
  completedAt: string;
368
368
  }[];
369
369
  verifyPrompt: {
@@ -376,11 +376,11 @@ declare const LoopRecordSchema: z.ZodObject<{
376
376
  }[];
377
377
  logs: {
378
378
  text: string;
379
- source: "worker" | "loop" | "verifier" | "verify-check";
380
- level: "error" | "info";
381
379
  seq: number;
382
380
  timestamp: string;
383
381
  iteration: number | null;
382
+ source: "loop" | "worker" | "verifier" | "verify-check";
383
+ level: "error" | "info";
384
384
  }[];
385
385
  nextLogSeq: number;
386
386
  activeIteration: number | null;
@@ -388,15 +388,15 @@ declare const LoopRecordSchema: z.ZodObject<{
388
388
  activeVerifierAgentId: string | null;
389
389
  }, {
390
390
  name: string | null;
391
- id: string;
392
- status: "running" | "failed" | "stopped" | "succeeded";
391
+ status: "running" | "failed" | "succeeded" | "stopped";
393
392
  cwd: string;
394
- prompt: string;
393
+ id: string;
394
+ createdAt: string;
395
+ updatedAt: string;
395
396
  provider: string;
396
397
  model: string | null;
397
- updatedAt: string;
398
- createdAt: string;
399
398
  startedAt: string;
399
+ prompt: string;
400
400
  completedAt: string | null;
401
401
  verifyChecks: string[];
402
402
  verifyPrompt: string | null;
@@ -410,7 +410,7 @@ declare const LoopRecordSchema: z.ZodObject<{
410
410
  maxTimeMs: number | null;
411
411
  stopRequestedAt: string | null;
412
412
  iterations: {
413
- status: "running" | "failed" | "stopped" | "succeeded";
413
+ status: "running" | "failed" | "succeeded" | "stopped";
414
414
  verifierAgentId: string | null;
415
415
  index: number;
416
416
  workerAgentId: string | null;
@@ -419,12 +419,12 @@ declare const LoopRecordSchema: z.ZodObject<{
419
419
  workerOutcome: "completed" | "failed" | "canceled" | null;
420
420
  failureReason: string | null;
421
421
  verifyChecks: {
422
+ startedAt: string;
422
423
  command: string;
423
424
  exitCode: number;
425
+ passed: boolean;
424
426
  stdout: string;
425
427
  stderr: string;
426
- startedAt: string;
427
- passed: boolean;
428
428
  completedAt: string;
429
429
  }[];
430
430
  verifyPrompt: {
@@ -437,11 +437,11 @@ declare const LoopRecordSchema: z.ZodObject<{
437
437
  }[];
438
438
  logs: {
439
439
  text: string;
440
- source: "worker" | "loop" | "verifier" | "verify-check";
441
- level: "error" | "info";
442
440
  seq: number;
443
441
  timestamp: string;
444
442
  iteration: number | null;
443
+ source: "loop" | "worker" | "verifier" | "verify-check";
444
+ level: "error" | "info";
445
445
  }[];
446
446
  nextLogSeq: number;
447
447
  activeIteration: number | null;
@@ -0,0 +1,41 @@
1
+ import type { Logger } from "pino";
2
+ import type { AgentManager } from "./agent/agent-manager.js";
3
+ import type { AgentStorage } from "./agent/agent-storage.js";
4
+ import type { SessionOutboundMessage } from "./messages.js";
5
+ import type { WorkspaceGitService } from "./workspace-git-service.js";
6
+ import type { GitHubService } from "../services/github-service.js";
7
+ import type { TerminalManager } from "../terminal/terminal-manager.js";
8
+ type EmitSessionMessage = (message: SessionOutboundMessage) => void;
9
+ export type ArchivePaseoWorktreeDependencies = {
10
+ paseoHome?: string;
11
+ github: GitHubService;
12
+ workspaceGitService: Pick<WorkspaceGitService, "getSnapshot">;
13
+ agentManager: Pick<AgentManager, "listAgents" | "closeAgent">;
14
+ agentStorage: Pick<AgentStorage, "list" | "remove">;
15
+ archiveWorkspaceRecord: (workspaceId: string) => Promise<void>;
16
+ emit: EmitSessionMessage;
17
+ emitWorkspaceUpdatesForCwds: (cwds: Iterable<string>) => Promise<void>;
18
+ isPathWithinRoot: (rootPath: string, candidatePath: string) => boolean;
19
+ killTerminalsUnderPath: (rootPath: string) => Promise<void>;
20
+ sessionLogger?: Logger;
21
+ };
22
+ export type KillTerminalsUnderPathDependencies = {
23
+ isPathWithinRoot: (rootPath: string, candidatePath: string) => boolean;
24
+ killTrackedTerminal: (terminalId: string, options?: {
25
+ emitExit: boolean;
26
+ }) => void;
27
+ detachTerminalStream?: (terminalId: string, options: {
28
+ emitExit: boolean;
29
+ }) => void;
30
+ sessionLogger: Logger;
31
+ terminalManager: TerminalManager | null;
32
+ };
33
+ export declare function archivePaseoWorktree(dependencies: ArchivePaseoWorktreeDependencies, options: {
34
+ targetPath: string;
35
+ repoRoot: string | null;
36
+ worktreesRoot?: string;
37
+ requestId: string;
38
+ }): Promise<string[]>;
39
+ export declare function killTerminalsUnderPath(dependencies: KillTerminalsUnderPathDependencies, rootPath: string): Promise<void>;
40
+ export {};
41
+ //# sourceMappingURL=paseo-worktree-archive-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paseo-worktree-archive-service.d.ts","sourceRoot":"","sources":["../../../src/server/paseo-worktree-archive-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAqB,MAAM,0BAA0B,CAAC;AAChF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,KAAK,kBAAkB,GAAG,CAAC,OAAO,EAAE,sBAAsB,KAAK,IAAI,CAAC;AAEpE,MAAM,MAAM,gCAAgC,GAAG;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,aAAa,CAAC;IACtB,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,EAAE,aAAa,CAAC,CAAC;IAC9D,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,GAAG,YAAY,CAAC,CAAC;IAC9D,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC;IACpD,sBAAsB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,IAAI,EAAE,kBAAkB,CAAC;IACzB,2BAA2B,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC;IACvE,sBAAsB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC;IACvE,mBAAmB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IACnF,oBAAoB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IACpF,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;CACzC,CAAC;AAEF,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,gCAAgC,EAC9C,OAAO,EAAE;IACP,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB,GACA,OAAO,CAAC,MAAM,EAAE,CAAC,CA8HnB;AAED,wBAAsB,sBAAsB,CAC1C,YAAY,EAAE,kCAAkC,EAChD,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CA6Cf"}
@@ -0,0 +1,137 @@
1
+ import { normalizeWorkspaceId as normalizePersistedWorkspaceId } from "./workspace-registry-model.js";
2
+ import { deletePaseoWorktree, resolvePaseoWorktreeRootForCwd } from "../utils/worktree.js";
3
+ export async function archivePaseoWorktree(dependencies, options) {
4
+ let targetPath = options.targetPath;
5
+ const resolvedWorktree = await resolvePaseoWorktreeRootForCwd(targetPath, {
6
+ paseoHome: dependencies.paseoHome,
7
+ });
8
+ if (resolvedWorktree) {
9
+ targetPath = resolvedWorktree.worktreePath;
10
+ }
11
+ const removedAgents = new Set();
12
+ const affectedWorkspaceCwds = new Set([targetPath]);
13
+ const affectedWorkspaceIds = new Set([normalizePersistedWorkspaceId(targetPath)]);
14
+ const liveAgents = dependencies.agentManager
15
+ .listAgents()
16
+ .filter((agent) => dependencies.isPathWithinRoot(targetPath, agent.cwd));
17
+ for (const agent of liveAgents) {
18
+ removedAgents.add(agent.id);
19
+ affectedWorkspaceCwds.add(agent.cwd);
20
+ affectedWorkspaceIds.add(normalizePersistedWorkspaceId(agent.cwd));
21
+ }
22
+ let storedRecords = [];
23
+ try {
24
+ storedRecords = await dependencies.agentStorage.list();
25
+ }
26
+ catch (error) {
27
+ dependencies.sessionLogger?.warn({ err: error, targetPath }, "Failed to list stored agents during worktree archive; continuing");
28
+ }
29
+ const matchingStoredRecords = storedRecords.filter((record) => dependencies.isPathWithinRoot(targetPath, record.cwd));
30
+ for (const record of matchingStoredRecords) {
31
+ removedAgents.add(record.id);
32
+ affectedWorkspaceCwds.add(record.cwd);
33
+ affectedWorkspaceIds.add(normalizePersistedWorkspaceId(record.cwd));
34
+ }
35
+ const agentIdsToRemoveFromStorage = new Set([
36
+ ...liveAgents.map((agent) => agent.id),
37
+ ...matchingStoredRecords.map((record) => record.id),
38
+ ]);
39
+ const teardownResults = await Promise.allSettled([
40
+ ...liveAgents.map((agent) => dependencies.agentManager.closeAgent(agent.id)),
41
+ dependencies.killTerminalsUnderPath(targetPath),
42
+ ]);
43
+ for (const result of teardownResults) {
44
+ if (result.status === "rejected") {
45
+ dependencies.sessionLogger?.warn({ err: result.reason, targetPath }, "Worktree teardown step failed during archive; continuing");
46
+ }
47
+ }
48
+ const agentIdsToRemove = Array.from(agentIdsToRemoveFromStorage);
49
+ const storageRemovalResults = await Promise.allSettled(agentIdsToRemove.map((agentId) => dependencies.agentStorage.remove(agentId)));
50
+ storageRemovalResults.forEach((result, index) => {
51
+ if (result.status === "fulfilled") {
52
+ return;
53
+ }
54
+ dependencies.sessionLogger?.warn({
55
+ err: result.reason,
56
+ agentId: agentIdsToRemove[index],
57
+ targetPath,
58
+ }, "Failed to remove archived worktree agent from storage; continuing");
59
+ });
60
+ await deletePaseoWorktree({
61
+ cwd: options.repoRoot,
62
+ worktreePath: targetPath,
63
+ worktreesRoot: options.worktreesRoot,
64
+ paseoHome: dependencies.paseoHome,
65
+ });
66
+ if (options.repoRoot) {
67
+ try {
68
+ await dependencies.workspaceGitService.getSnapshot(options.repoRoot, {
69
+ force: true,
70
+ reason: "archive-worktree",
71
+ });
72
+ }
73
+ catch (error) {
74
+ dependencies.sessionLogger?.warn({ err: error, cwd: options.repoRoot }, "Failed to force-refresh workspace git snapshot after archiving worktree");
75
+ }
76
+ }
77
+ for (const cwd of affectedWorkspaceCwds) {
78
+ dependencies.github.invalidate({ cwd });
79
+ }
80
+ for (const workspaceId of affectedWorkspaceIds) {
81
+ try {
82
+ await dependencies.archiveWorkspaceRecord(workspaceId);
83
+ }
84
+ catch (error) {
85
+ dependencies.sessionLogger?.warn({ err: error, workspaceId }, "Failed to archive workspace record; worktree FS already removed");
86
+ }
87
+ }
88
+ for (const agentId of removedAgents) {
89
+ dependencies.emit({
90
+ type: "agent_deleted",
91
+ payload: {
92
+ agentId,
93
+ requestId: options.requestId,
94
+ },
95
+ });
96
+ }
97
+ await dependencies.emitWorkspaceUpdatesForCwds(affectedWorkspaceCwds);
98
+ return Array.from(removedAgents);
99
+ }
100
+ export async function killTerminalsUnderPath(dependencies, rootPath) {
101
+ const terminalManager = dependencies.terminalManager;
102
+ if (!terminalManager) {
103
+ return;
104
+ }
105
+ const terminalIds = [];
106
+ const terminalDirectories = [...terminalManager.listDirectories()];
107
+ for (const terminalCwd of terminalDirectories) {
108
+ if (!dependencies.isPathWithinRoot(rootPath, terminalCwd)) {
109
+ continue;
110
+ }
111
+ try {
112
+ const terminals = await terminalManager.getTerminals(terminalCwd);
113
+ for (const terminal of terminals) {
114
+ terminalIds.push(terminal.id);
115
+ }
116
+ }
117
+ catch (error) {
118
+ dependencies.sessionLogger.warn({ err: error, cwd: terminalCwd }, "Failed to enumerate worktree terminals during archive");
119
+ }
120
+ }
121
+ if (terminalIds.length === 0) {
122
+ return;
123
+ }
124
+ await Promise.allSettled(terminalIds.map(async (terminalId) => {
125
+ try {
126
+ dependencies.detachTerminalStream?.(terminalId, { emitExit: true });
127
+ await terminalManager.killTerminalAndWait(terminalId, {
128
+ gracefulTimeoutMs: 2000,
129
+ forceTimeoutMs: 1500,
130
+ });
131
+ }
132
+ catch (error) {
133
+ dependencies.sessionLogger.warn({ err: error, terminalId }, "Terminal kill escalation failed during archive; proceeding anyway");
134
+ }
135
+ }));
136
+ }
137
+ //# sourceMappingURL=paseo-worktree-archive-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paseo-worktree-archive-service.js","sourceRoot":"","sources":["../../../src/server/paseo-worktree-archive-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { WorkspaceGitService } from "./workspace-git-service.js";
2
+ import { type PersistedWorkspaceRecord, type ProjectRegistry, type WorkspaceRegistry } from "./workspace-registry.js";
3
+ import { type CreateWorktreeCoreDeps, type CreateWorktreeCoreInput } from "./worktree-core.js";
4
+ import type { WorktreeConfig } from "../utils/worktree.js";
5
+ import type { WorktreeCreationIntent } from "./resolve-worktree-creation-intent.js";
6
+ export interface CreatePaseoWorktreeInput extends CreateWorktreeCoreInput {
7
+ }
8
+ export interface CreatePaseoWorktreeResult {
9
+ worktree: WorktreeConfig;
10
+ intent: WorktreeCreationIntent;
11
+ workspace: PersistedWorkspaceRecord;
12
+ repoRoot: string;
13
+ created: boolean;
14
+ }
15
+ export type CreatePaseoWorktreeFn = (input: CreatePaseoWorktreeInput, options?: {
16
+ resolveDefaultBranch?: (repoRoot: string) => Promise<string>;
17
+ }) => Promise<CreatePaseoWorktreeResult>;
18
+ export interface CreatePaseoWorktreeDeps extends CreateWorktreeCoreDeps {
19
+ projectRegistry: Pick<ProjectRegistry, "get" | "upsert">;
20
+ workspaceRegistry: Pick<WorkspaceRegistry, "get" | "list" | "upsert">;
21
+ workspaceGitService: WorkspaceGitService;
22
+ }
23
+ export declare function createPaseoWorktree(input: CreatePaseoWorktreeInput, deps: CreatePaseoWorktreeDeps): Promise<CreatePaseoWorktreeResult>;
24
+ //# sourceMappingURL=paseo-worktree-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paseo-worktree-service.d.ts","sourceRoot":"","sources":["../../../src/server/paseo-worktree-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,eAAe,EACpB,KAAK,iBAAiB,EAGvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAEpF,MAAM,WAAW,wBAAyB,SAAQ,uBAAuB;CAAG;AAE5E,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,sBAAsB,CAAC;IAC/B,SAAS,EAAE,wBAAwB,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,qBAAqB,GAAG,CAClC,KAAK,EAAE,wBAAwB,EAC/B,OAAO,CAAC,EAAE;IACR,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9D,KACE,OAAO,CAAC,yBAAyB,CAAC,CAAC;AAExC,MAAM,WAAW,uBAAwB,SAAQ,sBAAsB;IACrE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC;IACzD,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC,CAAC;IACtE,mBAAmB,EAAE,mBAAmB,CAAC;CAC1C;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,wBAAwB,EAC/B,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,yBAAyB,CAAC,CAkBpC"}
@@ -0,0 +1,94 @@
1
+ import { createPersistedProjectRecord, createPersistedWorkspaceRecord, } from "./workspace-registry.js";
2
+ import { deriveProjectGroupingName, normalizeWorkspaceId } from "./workspace-registry-model.js";
3
+ import { createWorktreeCore, } from "./worktree-core.js";
4
+ export async function createPaseoWorktree(input, deps) {
5
+ const createdWorktree = await createWorktreeCore(input, deps);
6
+ const workspace = await upsertWorkspaceForWorktree({
7
+ inputCwd: input.cwd,
8
+ repoRoot: createdWorktree.repoRoot,
9
+ worktree: createdWorktree.worktree,
10
+ deps,
11
+ });
12
+ deps.github.invalidate({ cwd: createdWorktree.worktree.worktreePath });
13
+ return {
14
+ worktree: createdWorktree.worktree,
15
+ intent: createdWorktree.intent,
16
+ workspace,
17
+ repoRoot: createdWorktree.repoRoot,
18
+ created: createdWorktree.created,
19
+ };
20
+ }
21
+ async function upsertWorkspaceForWorktree(options) {
22
+ const normalizedCwd = normalizeWorkspaceId(options.worktree.worktreePath);
23
+ const normalizedInputCwd = normalizeWorkspaceId(options.inputCwd);
24
+ const normalizedRepoRoot = normalizeWorkspaceId(options.repoRoot);
25
+ const existingWorkspace = await findWorkspaceByDirectory(normalizedCwd, options.deps.workspaceRegistry);
26
+ const sourceProject = await resolveSourceProjectForWorktree({
27
+ inputCwd: normalizedInputCwd,
28
+ repoRoot: normalizedRepoRoot,
29
+ existingWorkspace,
30
+ deps: options.deps,
31
+ });
32
+ const workspaceId = normalizedCwd;
33
+ const now = new Date().toISOString();
34
+ await options.deps.projectRegistry.upsert(createPersistedProjectRecord({
35
+ projectId: sourceProject.projectId,
36
+ rootPath: sourceProject.rootPath,
37
+ kind: sourceProject.kind,
38
+ displayName: sourceProject.displayName,
39
+ createdAt: sourceProject.createdAt ?? now,
40
+ updatedAt: now,
41
+ archivedAt: null,
42
+ }));
43
+ const workspace = createPersistedWorkspaceRecord({
44
+ workspaceId,
45
+ projectId: sourceProject.projectId,
46
+ cwd: normalizedCwd,
47
+ kind: "worktree",
48
+ displayName: options.worktree.branchName || normalizedCwd,
49
+ createdAt: existingWorkspace?.createdAt ?? now,
50
+ updatedAt: now,
51
+ archivedAt: null,
52
+ });
53
+ await options.deps.workspaceRegistry.upsert(workspace);
54
+ return (await options.deps.workspaceRegistry.get(workspace.workspaceId)) ?? workspace;
55
+ }
56
+ async function resolveSourceProjectForWorktree(options) {
57
+ const sourceWorkspace = options.existingWorkspace ??
58
+ (await findWorkspaceForSource({
59
+ inputCwd: options.inputCwd,
60
+ repoRoot: options.repoRoot,
61
+ workspaceRegistry: options.deps.workspaceRegistry,
62
+ }));
63
+ const sourceProject = sourceWorkspace
64
+ ? await options.deps.projectRegistry.get(sourceWorkspace.projectId)
65
+ : null;
66
+ if (sourceWorkspace) {
67
+ return {
68
+ projectId: sourceWorkspace.projectId,
69
+ rootPath: sourceProject?.rootPath ?? options.repoRoot,
70
+ kind: "git",
71
+ displayName: sourceProject?.displayName ?? deriveProjectGroupingName(sourceWorkspace.projectId),
72
+ createdAt: sourceProject?.createdAt ?? null,
73
+ };
74
+ }
75
+ const existingFallbackProject = await options.deps.projectRegistry.get(options.repoRoot);
76
+ return {
77
+ projectId: options.repoRoot,
78
+ rootPath: existingFallbackProject?.rootPath ?? options.repoRoot,
79
+ kind: "git",
80
+ displayName: existingFallbackProject?.displayName ?? deriveProjectGroupingName(options.repoRoot),
81
+ createdAt: existingFallbackProject?.createdAt ?? null,
82
+ };
83
+ }
84
+ async function findWorkspaceForSource(options) {
85
+ const workspaces = await options.workspaceRegistry.list();
86
+ return (workspaces.find((workspace) => workspace.cwd === options.inputCwd && !workspace.archivedAt) ??
87
+ workspaces.find((workspace) => workspace.cwd === options.repoRoot && !workspace.archivedAt) ??
88
+ null);
89
+ }
90
+ async function findWorkspaceByDirectory(cwd, workspaceRegistry) {
91
+ const workspaces = await workspaceRegistry.list();
92
+ return workspaces.find((workspace) => workspace.cwd === cwd) ?? null;
93
+ }
94
+ //# sourceMappingURL=paseo-worktree-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paseo-worktree-service.js","sourceRoot":"","sources":["../../../src/server/paseo-worktree-service.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export declare function expandUserPath(value: string): string;
2
2
  export declare function resolvePathFromBase(baseCwd: string, requestedPath: string): string;
3
+ export declare function isSameOrDescendantPath(basePath: string, candidatePath: string): boolean;
3
4
  //# sourceMappingURL=path-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"path-utils.d.ts","sourceRoot":"","sources":["../../../src/server/path-utils.ts"],"names":[],"mappings":"AAOA,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMpD;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAMlF"}
1
+ {"version":3,"file":"path-utils.d.ts","sourceRoot":"","sources":["../../../src/server/path-utils.ts"],"names":[],"mappings":"AAOA,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMpD;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAMlF;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAYvF"}