@getpaseo/server 0.1.62 → 0.1.65

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 (590) hide show
  1. package/README.md +4 -0
  2. package/dist/server/client/daemon-client-runtime-metrics.d.ts +6 -6
  3. package/dist/server/client/daemon-client-runtime-metrics.d.ts.map +1 -1
  4. package/dist/server/client/daemon-client-transport-types.d.ts +15 -13
  5. package/dist/server/client/daemon-client-transport-types.d.ts.map +1 -1
  6. package/dist/server/client/daemon-client-websocket-transport.d.ts +3 -2
  7. package/dist/server/client/daemon-client-websocket-transport.d.ts.map +1 -1
  8. package/dist/server/client/daemon-client-websocket-transport.js +9 -8
  9. package/dist/server/client/daemon-client-websocket-transport.js.map +1 -1
  10. package/dist/server/client/daemon-client.d.ts +88 -56
  11. package/dist/server/client/daemon-client.d.ts.map +1 -1
  12. package/dist/server/client/daemon-client.js +264 -111
  13. package/dist/server/client/daemon-client.js.map +1 -1
  14. package/dist/server/client/terminal-stream-router.d.ts +24 -0
  15. package/dist/server/client/terminal-stream-router.d.ts.map +1 -0
  16. package/dist/server/client/terminal-stream-router.js +100 -0
  17. package/dist/server/client/terminal-stream-router.js.map +1 -0
  18. package/dist/server/server/agent/activity-curator.d.ts +6 -3
  19. package/dist/server/server/agent/activity-curator.d.ts.map +1 -1
  20. package/dist/server/server/agent/activity-curator.js +45 -138
  21. package/dist/server/server/agent/activity-curator.js.map +1 -1
  22. package/dist/server/server/agent/agent-loading.d.ts.map +1 -1
  23. package/dist/server/server/agent/agent-loading.js +5 -3
  24. package/dist/server/server/agent/agent-loading.js.map +1 -1
  25. package/dist/server/server/agent/agent-manager.d.ts +46 -31
  26. package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
  27. package/dist/server/server/agent/agent-manager.js +457 -419
  28. package/dist/server/server/agent/agent-manager.js.map +1 -1
  29. package/dist/server/server/agent/agent-metadata-generator.d.ts +6 -11
  30. package/dist/server/server/agent/agent-metadata-generator.d.ts.map +1 -1
  31. package/dist/server/server/agent/agent-metadata-generator.js +3 -85
  32. package/dist/server/server/agent/agent-metadata-generator.js.map +1 -1
  33. package/dist/server/server/agent/agent-projections.d.ts +4 -6
  34. package/dist/server/server/agent/agent-projections.d.ts.map +1 -1
  35. package/dist/server/server/agent/agent-projections.js +59 -65
  36. package/dist/server/server/agent/agent-projections.js.map +1 -1
  37. package/dist/server/server/agent/agent-response-loop.d.ts +4 -4
  38. package/dist/server/server/agent/agent-response-loop.d.ts.map +1 -1
  39. package/dist/server/server/agent/agent-response-loop.js +58 -45
  40. package/dist/server/server/agent/agent-response-loop.js.map +1 -1
  41. package/dist/server/server/agent/agent-sdk-types.d.ts +58 -41
  42. package/dist/server/server/agent/agent-sdk-types.d.ts.map +1 -1
  43. package/dist/server/server/agent/agent-sdk-types.js.map +1 -1
  44. package/dist/server/server/agent/agent-storage.d.ts +2 -2
  45. package/dist/server/server/agent/agent-storage.d.ts.map +1 -1
  46. package/dist/server/server/agent/agent-storage.js +29 -36
  47. package/dist/server/server/agent/agent-storage.js.map +1 -1
  48. package/dist/server/server/agent/agent-stream-coalescer.d.ts +7 -7
  49. package/dist/server/server/agent/agent-stream-coalescer.d.ts.map +1 -1
  50. package/dist/server/server/agent/agent-stream-coalescer.js +1 -1
  51. package/dist/server/server/agent/agent-stream-coalescer.js.map +1 -1
  52. package/dist/server/server/agent/agent-timeline-store-types.d.ts +10 -10
  53. package/dist/server/server/agent/agent-timeline-store-types.d.ts.map +1 -1
  54. package/dist/server/server/agent/agent-timeline-store.d.ts +2 -2
  55. package/dist/server/server/agent/agent-timeline-store.d.ts.map +1 -1
  56. package/dist/server/server/agent/agent-timeline-store.js +103 -85
  57. package/dist/server/server/agent/agent-timeline-store.js.map +1 -1
  58. package/dist/server/server/agent/foreground-run-state.d.ts +50 -0
  59. package/dist/server/server/agent/foreground-run-state.d.ts.map +1 -0
  60. package/dist/server/server/agent/foreground-run-state.js +162 -0
  61. package/dist/server/server/agent/foreground-run-state.js.map +1 -0
  62. package/dist/server/server/agent/mcp-server.d.ts +5 -3
  63. package/dist/server/server/agent/mcp-server.d.ts.map +1 -1
  64. package/dist/server/server/agent/mcp-server.js +282 -234
  65. package/dist/server/server/agent/mcp-server.js.map +1 -1
  66. package/dist/server/server/agent/mcp-shared.d.ts +9 -2
  67. package/dist/server/server/agent/mcp-shared.d.ts.map +1 -1
  68. package/dist/server/server/agent/mcp-shared.js +9 -1
  69. package/dist/server/server/agent/mcp-shared.js.map +1 -1
  70. package/dist/server/server/agent/model-resolver.d.ts +2 -2
  71. package/dist/server/server/agent/model-resolver.d.ts.map +1 -1
  72. package/dist/server/server/agent/model-resolver.js +9 -5
  73. package/dist/server/server/agent/model-resolver.js.map +1 -1
  74. package/dist/server/server/agent/prompt-attachments.d.ts +4 -3
  75. package/dist/server/server/agent/prompt-attachments.d.ts.map +1 -1
  76. package/dist/server/server/agent/prompt-attachments.js +43 -4
  77. package/dist/server/server/agent/prompt-attachments.js.map +1 -1
  78. package/dist/server/server/agent/provider-launch-config.d.ts +28 -17
  79. package/dist/server/server/agent/provider-launch-config.d.ts.map +1 -1
  80. package/dist/server/server/agent/provider-launch-config.js +20 -9
  81. package/dist/server/server/agent/provider-launch-config.js.map +1 -1
  82. package/dist/server/server/agent/provider-manifest.d.ts.map +1 -1
  83. package/dist/server/server/agent/provider-manifest.js +7 -0
  84. package/dist/server/server/agent/provider-manifest.js.map +1 -1
  85. package/dist/server/server/agent/provider-registry.d.ts +4 -2
  86. package/dist/server/server/agent/provider-registry.d.ts.map +1 -1
  87. package/dist/server/server/agent/provider-registry.js +24 -21
  88. package/dist/server/server/agent/provider-registry.js.map +1 -1
  89. package/dist/server/server/agent/provider-snapshot-manager.d.ts +6 -5
  90. package/dist/server/server/agent/provider-snapshot-manager.d.ts.map +1 -1
  91. package/dist/server/server/agent/provider-snapshot-manager.js +40 -31
  92. package/dist/server/server/agent/provider-snapshot-manager.js.map +1 -1
  93. package/dist/server/server/agent/providers/acp-agent.d.ts +49 -13
  94. package/dist/server/server/agent/providers/acp-agent.d.ts.map +1 -1
  95. package/dist/server/server/agent/providers/acp-agent.js +404 -261
  96. package/dist/server/server/agent/providers/acp-agent.js.map +1 -1
  97. package/dist/server/server/agent/providers/claude/sidechain-tracker.d.ts +2 -0
  98. package/dist/server/server/agent/providers/claude/sidechain-tracker.d.ts.map +1 -1
  99. package/dist/server/server/agent/providers/claude/sidechain-tracker.js +47 -45
  100. package/dist/server/server/agent/providers/claude/sidechain-tracker.js.map +1 -1
  101. package/dist/server/server/agent/providers/claude/task-notification-tool-call.d.ts +2 -2
  102. package/dist/server/server/agent/providers/claude/task-notification-tool-call.d.ts.map +1 -1
  103. package/dist/server/server/agent/providers/claude/task-notification-tool-call.js +10 -5
  104. package/dist/server/server/agent/providers/claude/task-notification-tool-call.js.map +1 -1
  105. package/dist/server/server/agent/providers/claude/tool-call-detail-parser.d.ts.map +1 -1
  106. package/dist/server/server/agent/providers/claude/tool-call-detail-parser.js +11 -2
  107. package/dist/server/server/agent/providers/claude/tool-call-detail-parser.js.map +1 -1
  108. package/dist/server/server/agent/providers/claude/tool-call-mapper.d.ts +2 -2
  109. package/dist/server/server/agent/providers/claude/tool-call-mapper.d.ts.map +1 -1
  110. package/dist/server/server/agent/providers/claude/tool-call-mapper.js +83 -206
  111. package/dist/server/server/agent/providers/claude/tool-call-mapper.js.map +1 -1
  112. package/dist/server/server/agent/providers/claude-agent.d.ts +20 -8
  113. package/dist/server/server/agent/providers/claude-agent.d.ts.map +1 -1
  114. package/dist/server/server/agent/providers/claude-agent.js +654 -554
  115. package/dist/server/server/agent/providers/claude-agent.js.map +1 -1
  116. package/dist/server/server/agent/providers/codex/tool-call-detail-parser.d.ts +2 -2
  117. package/dist/server/server/agent/providers/codex/tool-call-detail-parser.d.ts.map +1 -1
  118. package/dist/server/server/agent/providers/codex/tool-call-mapper.d.ts +2 -2
  119. package/dist/server/server/agent/providers/codex/tool-call-mapper.d.ts.map +1 -1
  120. package/dist/server/server/agent/providers/codex/tool-call-mapper.js +174 -185
  121. package/dist/server/server/agent/providers/codex/tool-call-mapper.js.map +1 -1
  122. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +62 -13
  123. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -1
  124. package/dist/server/server/agent/providers/codex-app-server-agent.js +873 -646
  125. package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
  126. package/dist/server/server/agent/providers/codex-rollout-timeline.d.ts +2 -2
  127. package/dist/server/server/agent/providers/codex-rollout-timeline.d.ts.map +1 -1
  128. package/dist/server/server/agent/providers/codex-rollout-timeline.js +58 -47
  129. package/dist/server/server/agent/providers/codex-rollout-timeline.js.map +1 -1
  130. package/dist/server/server/agent/providers/copilot-acp-agent.d.ts +2 -2
  131. package/dist/server/server/agent/providers/copilot-acp-agent.d.ts.map +1 -1
  132. package/dist/server/server/agent/providers/diagnostic-utils.d.ts +3 -3
  133. package/dist/server/server/agent/providers/diagnostic-utils.d.ts.map +1 -1
  134. package/dist/server/server/agent/providers/diagnostic-utils.js +82 -9
  135. package/dist/server/server/agent/providers/diagnostic-utils.js.map +1 -1
  136. package/dist/server/server/agent/providers/generic-acp-agent.d.ts +2 -2
  137. package/dist/server/server/agent/providers/generic-acp-agent.d.ts.map +1 -1
  138. package/dist/server/server/agent/providers/mock-load-test-agent.d.ts +6 -2
  139. package/dist/server/server/agent/providers/mock-load-test-agent.d.ts.map +1 -1
  140. package/dist/server/server/agent/providers/mock-load-test-agent.js +294 -113
  141. package/dist/server/server/agent/providers/mock-load-test-agent.js.map +1 -1
  142. package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.d.ts +1 -1
  143. package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.d.ts.map +1 -1
  144. package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.js +94 -2
  145. package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.js.map +1 -1
  146. package/dist/server/server/agent/providers/opencode/tool-call-mapper.d.ts +2 -2
  147. package/dist/server/server/agent/providers/opencode/tool-call-mapper.d.ts.map +1 -1
  148. package/dist/server/server/agent/providers/opencode/tool-call-mapper.js +24 -115
  149. package/dist/server/server/agent/providers/opencode/tool-call-mapper.js.map +1 -1
  150. package/dist/server/server/agent/providers/opencode-agent.d.ts +104 -3
  151. package/dist/server/server/agent/providers/opencode-agent.d.ts.map +1 -1
  152. package/dist/server/server/agent/providers/opencode-agent.js +786 -503
  153. package/dist/server/server/agent/providers/opencode-agent.js.map +1 -1
  154. package/dist/server/server/agent/providers/pi-direct-agent.d.ts +1 -0
  155. package/dist/server/server/agent/providers/pi-direct-agent.d.ts.map +1 -1
  156. package/dist/server/server/agent/providers/pi-direct-agent.js +109 -140
  157. package/dist/server/server/agent/providers/pi-direct-agent.js.map +1 -1
  158. package/dist/server/server/agent/providers/provider-runner.d.ts +27 -0
  159. package/dist/server/server/agent/providers/provider-runner.d.ts.map +1 -0
  160. package/dist/server/server/agent/providers/provider-runner.js +80 -0
  161. package/dist/server/server/agent/providers/provider-runner.js.map +1 -0
  162. package/dist/server/server/agent/providers/test-utils/session-stream-adapter.d.ts.map +1 -1
  163. package/dist/server/server/agent/providers/test-utils/session-stream-adapter.js +3 -1
  164. package/dist/server/server/agent/providers/test-utils/session-stream-adapter.js.map +1 -1
  165. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts +9 -6
  166. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts.map +1 -1
  167. package/dist/server/server/agent/providers/tool-call-detail-primitives.js +102 -73
  168. package/dist/server/server/agent/providers/tool-call-detail-primitives.js.map +1 -1
  169. package/dist/server/server/agent/providers/tool-call-mapper-utils.d.ts +4 -2
  170. package/dist/server/server/agent/providers/tool-call-mapper-utils.d.ts.map +1 -1
  171. package/dist/server/server/agent/providers/tool-call-mapper-utils.js +31 -0
  172. package/dist/server/server/agent/providers/tool-call-mapper-utils.js.map +1 -1
  173. package/dist/server/server/agent/stt-manager.d.ts.map +1 -1
  174. package/dist/server/server/agent/stt-manager.js +63 -53
  175. package/dist/server/server/agent/stt-manager.js.map +1 -1
  176. package/dist/server/server/agent/timeline-projection.d.ts +27 -11
  177. package/dist/server/server/agent/timeline-projection.d.ts.map +1 -1
  178. package/dist/server/server/agent/timeline-projection.js +70 -15
  179. package/dist/server/server/agent/timeline-projection.js.map +1 -1
  180. package/dist/server/server/agent/tts-manager.d.ts.map +1 -1
  181. package/dist/server/server/agent/tts-manager.js +1 -0
  182. package/dist/server/server/agent/tts-manager.js.map +1 -1
  183. package/dist/server/server/agent-attention-policy.d.ts +2 -2
  184. package/dist/server/server/agent-attention-policy.d.ts.map +1 -1
  185. package/dist/server/server/auth.d.ts +25 -0
  186. package/dist/server/server/auth.d.ts.map +1 -0
  187. package/dist/server/server/auth.js +93 -0
  188. package/dist/server/server/auth.js.map +1 -0
  189. package/dist/server/server/bootstrap.d.ts +7 -5
  190. package/dist/server/server/bootstrap.d.ts.map +1 -1
  191. package/dist/server/server/bootstrap.js +550 -485
  192. package/dist/server/server/bootstrap.js.map +1 -1
  193. package/dist/server/server/chat/chat-service.d.ts +1 -1
  194. package/dist/server/server/chat/chat-service.d.ts.map +1 -1
  195. package/dist/server/server/chat/chat-service.js +3 -3
  196. package/dist/server/server/chat/chat-service.js.map +1 -1
  197. package/dist/server/server/checkout-diff-manager.d.ts +2 -2
  198. package/dist/server/server/checkout-diff-manager.d.ts.map +1 -1
  199. package/dist/server/server/checkout-git-utils.d.ts +5 -3
  200. package/dist/server/server/checkout-git-utils.d.ts.map +1 -1
  201. package/dist/server/server/checkout-git-utils.js +1 -2
  202. package/dist/server/server/checkout-git-utils.js.map +1 -1
  203. package/dist/server/server/config.d.ts.map +1 -1
  204. package/dist/server/server/config.js +79 -39
  205. package/dist/server/server/config.js.map +1 -1
  206. package/dist/server/server/connection-offer.d.ts +2 -2
  207. package/dist/server/server/connection-offer.d.ts.map +1 -1
  208. package/dist/server/server/daemon-config-store.d.ts +5 -3
  209. package/dist/server/server/daemon-config-store.d.ts.map +1 -1
  210. package/dist/server/server/daemon-config-store.js +26 -0
  211. package/dist/server/server/daemon-config-store.js.map +1 -1
  212. package/dist/server/server/daemon-keypair.d.ts +2 -2
  213. package/dist/server/server/daemon-keypair.d.ts.map +1 -1
  214. package/dist/server/server/editor-targets.d.ts +4 -4
  215. package/dist/server/server/editor-targets.d.ts.map +1 -1
  216. package/dist/server/server/editor-targets.js +11 -15
  217. package/dist/server/server/editor-targets.js.map +1 -1
  218. package/dist/server/server/exports.d.ts +10 -4
  219. package/dist/server/server/exports.d.ts.map +1 -1
  220. package/dist/server/server/exports.js +7 -4
  221. package/dist/server/server/exports.js.map +1 -1
  222. package/dist/server/server/file-download/token-store.d.ts +4 -4
  223. package/dist/server/server/file-download/token-store.d.ts.map +1 -1
  224. package/dist/server/server/file-explorer/service.d.ts +10 -0
  225. package/dist/server/server/file-explorer/service.d.ts.map +1 -1
  226. package/dist/server/server/file-explorer/service.js +38 -4
  227. package/dist/server/server/file-explorer/service.js.map +1 -1
  228. package/dist/server/server/index.js +25 -18
  229. package/dist/server/server/index.js.map +1 -1
  230. package/dist/server/server/logger.d.ts +4 -4
  231. package/dist/server/server/logger.d.ts.map +1 -1
  232. package/dist/server/server/logger.js +41 -21
  233. package/dist/server/server/logger.js.map +1 -1
  234. package/dist/server/server/loop/rpc-schemas.d.ts +52 -52
  235. package/dist/server/server/loop-service.d.ts +13 -12
  236. package/dist/server/server/loop-service.d.ts.map +1 -1
  237. package/dist/server/server/loop-service.js +22 -18
  238. package/dist/server/server/loop-service.js.map +1 -1
  239. package/dist/server/server/package-version.d.ts +2 -2
  240. package/dist/server/server/package-version.d.ts.map +1 -1
  241. package/dist/server/server/package-version.js +19 -17
  242. package/dist/server/server/package-version.js.map +1 -1
  243. package/dist/server/server/pagination/cursor.d.ts +16 -0
  244. package/dist/server/server/pagination/cursor.d.ts.map +1 -0
  245. package/dist/server/server/pagination/cursor.js +62 -0
  246. package/dist/server/server/pagination/cursor.js.map +1 -0
  247. package/dist/server/server/pagination/sortable-pager.d.ts +24 -0
  248. package/dist/server/server/pagination/sortable-pager.d.ts.map +1 -0
  249. package/dist/server/server/pagination/sortable-pager.js +68 -0
  250. package/dist/server/server/pagination/sortable-pager.js.map +1 -0
  251. package/dist/server/server/pairing-offer.d.ts +2 -2
  252. package/dist/server/server/pairing-offer.d.ts.map +1 -1
  253. package/dist/server/server/paseo-env.d.ts +9 -0
  254. package/dist/server/server/paseo-env.d.ts.map +1 -0
  255. package/dist/server/server/paseo-env.js +70 -0
  256. package/dist/server/server/paseo-env.js.map +1 -0
  257. package/dist/server/server/paseo-worktree-archive-service.d.ts +7 -5
  258. package/dist/server/server/paseo-worktree-archive-service.d.ts.map +1 -1
  259. package/dist/server/server/paseo-worktree-archive-service.js +70 -62
  260. package/dist/server/server/paseo-worktree-archive-service.js.map +1 -1
  261. package/dist/server/server/paseo-worktree-service.d.ts +13 -0
  262. package/dist/server/server/paseo-worktree-service.d.ts.map +1 -1
  263. package/dist/server/server/paseo-worktree-service.js +72 -3
  264. package/dist/server/server/paseo-worktree-service.js.map +1 -1
  265. package/dist/server/server/persisted-config.d.ts +87 -62
  266. package/dist/server/server/persisted-config.d.ts.map +1 -1
  267. package/dist/server/server/persisted-config.js +13 -4
  268. package/dist/server/server/persisted-config.js.map +1 -1
  269. package/dist/server/server/persistence-hooks.d.ts +8 -9
  270. package/dist/server/server/persistence-hooks.d.ts.map +1 -1
  271. package/dist/server/server/persistence-hooks.js +4 -12
  272. package/dist/server/server/persistence-hooks.js.map +1 -1
  273. package/dist/server/server/pid-lock.js.map +1 -1
  274. package/dist/server/server/push/push-service.d.ts.map +1 -1
  275. package/dist/server/server/push/push-service.js +1 -3
  276. package/dist/server/server/push/push-service.js.map +1 -1
  277. package/dist/server/server/relay-transport.d.ts +8 -8
  278. package/dist/server/server/relay-transport.d.ts.map +1 -1
  279. package/dist/server/server/relay-transport.js +43 -20
  280. package/dist/server/server/relay-transport.js.map +1 -1
  281. package/dist/server/server/resolve-worktree-creation-intent.d.ts +0 -10
  282. package/dist/server/server/resolve-worktree-creation-intent.d.ts.map +1 -1
  283. package/dist/server/server/resolve-worktree-creation-intent.js +1 -45
  284. package/dist/server/server/resolve-worktree-creation-intent.js.map +1 -1
  285. package/dist/server/server/schedule/service.d.ts.map +1 -1
  286. package/dist/server/server/schedule/service.js +2 -2
  287. package/dist/server/server/schedule/service.js.map +1 -1
  288. package/dist/server/server/script-health-monitor.d.ts.map +1 -1
  289. package/dist/server/server/script-health-monitor.js +7 -6
  290. package/dist/server/server/script-health-monitor.js.map +1 -1
  291. package/dist/server/server/script-proxy.js +1 -1
  292. package/dist/server/server/script-proxy.js.map +1 -1
  293. package/dist/server/server/script-status-projection.d.ts +10 -5
  294. package/dist/server/server/script-status-projection.d.ts.map +1 -1
  295. package/dist/server/server/script-status-projection.js +66 -47
  296. package/dist/server/server/script-status-projection.js.map +1 -1
  297. package/dist/server/server/server-id.d.ts +4 -4
  298. package/dist/server/server/server-id.d.ts.map +1 -1
  299. package/dist/server/server/session.d.ts +64 -65
  300. package/dist/server/server/session.d.ts.map +1 -1
  301. package/dist/server/server/session.js +1356 -1734
  302. package/dist/server/server/session.js.map +1 -1
  303. package/dist/server/server/speech/audio.js +1 -1
  304. package/dist/server/server/speech/audio.js.map +1 -1
  305. package/dist/server/server/speech/providers/local/config.d.ts +6 -6
  306. package/dist/server/server/speech/providers/local/config.d.ts.map +1 -1
  307. package/dist/server/server/speech/providers/local/config.js +41 -16
  308. package/dist/server/server/speech/providers/local/config.js.map +1 -1
  309. package/dist/server/server/speech/providers/local/pocket/pocket-tts-onnx.d.ts +2 -2
  310. package/dist/server/server/speech/providers/local/pocket/pocket-tts-onnx.d.ts.map +1 -1
  311. package/dist/server/server/speech/providers/local/pocket/pocket-tts-onnx.js +42 -19
  312. package/dist/server/server/speech/providers/local/pocket/pocket-tts-onnx.js.map +1 -1
  313. package/dist/server/server/speech/providers/local/runtime.d.ts +4 -4
  314. package/dist/server/server/speech/providers/local/runtime.d.ts.map +1 -1
  315. package/dist/server/server/speech/providers/local/runtime.js +108 -77
  316. package/dist/server/server/speech/providers/local/runtime.js.map +1 -1
  317. package/dist/server/server/speech/providers/local/sherpa/model-catalog.d.ts +2 -2
  318. package/dist/server/server/speech/providers/local/sherpa/model-catalog.d.ts.map +1 -1
  319. package/dist/server/server/speech/providers/local/sherpa/model-catalog.js +1 -4
  320. package/dist/server/server/speech/providers/local/sherpa/model-catalog.js.map +1 -1
  321. package/dist/server/server/speech/providers/local/sherpa/model-downloader.d.ts +2 -2
  322. package/dist/server/server/speech/providers/local/sherpa/model-downloader.d.ts.map +1 -1
  323. package/dist/server/server/speech/providers/local/sherpa/model-downloader.js +19 -19
  324. package/dist/server/server/speech/providers/local/sherpa/model-downloader.js.map +1 -1
  325. package/dist/server/server/speech/providers/local/sherpa/sherpa-offline-recognizer.d.ts +28 -7
  326. package/dist/server/server/speech/providers/local/sherpa/sherpa-offline-recognizer.d.ts.map +1 -1
  327. package/dist/server/server/speech/providers/local/sherpa/sherpa-offline-recognizer.js.map +1 -1
  328. package/dist/server/server/speech/providers/local/sherpa/sherpa-online-recognizer.d.ts +23 -4
  329. package/dist/server/server/speech/providers/local/sherpa/sherpa-online-recognizer.d.ts.map +1 -1
  330. package/dist/server/server/speech/providers/local/sherpa/sherpa-online-recognizer.js +35 -28
  331. package/dist/server/server/speech/providers/local/sherpa/sherpa-online-recognizer.js.map +1 -1
  332. package/dist/server/server/speech/providers/local/sherpa/sherpa-onnx-loader.d.ts +5 -5
  333. package/dist/server/server/speech/providers/local/sherpa/sherpa-onnx-loader.d.ts.map +1 -1
  334. package/dist/server/server/speech/providers/local/sherpa/sherpa-onnx-node-loader.d.ts +7 -7
  335. package/dist/server/server/speech/providers/local/sherpa/sherpa-onnx-node-loader.d.ts.map +1 -1
  336. package/dist/server/server/speech/providers/local/sherpa/sherpa-onnx-node-loader.js +5 -0
  337. package/dist/server/server/speech/providers/local/sherpa/sherpa-onnx-node-loader.js.map +1 -1
  338. package/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-realtime-session.d.ts.map +1 -1
  339. package/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-realtime-session.js +3 -1
  340. package/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-realtime-session.js.map +1 -1
  341. package/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-stt.d.ts +2 -2
  342. package/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-stt.d.ts.map +1 -1
  343. package/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-stt.js +3 -1
  344. package/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-stt.js.map +1 -1
  345. package/dist/server/server/speech/providers/local/sherpa/sherpa-realtime-session.d.ts.map +1 -1
  346. package/dist/server/server/speech/providers/local/sherpa/sherpa-realtime-session.js +10 -4
  347. package/dist/server/server/speech/providers/local/sherpa/sherpa-realtime-session.js.map +1 -1
  348. package/dist/server/server/speech/providers/local/sherpa/sherpa-runtime-env.d.ts +2 -2
  349. package/dist/server/server/speech/providers/local/sherpa/sherpa-runtime-env.d.ts.map +1 -1
  350. package/dist/server/server/speech/providers/local/sherpa/sherpa-stt.d.ts +2 -2
  351. package/dist/server/server/speech/providers/local/sherpa/sherpa-stt.d.ts.map +1 -1
  352. package/dist/server/server/speech/providers/local/sherpa/sherpa-stt.js +4 -1
  353. package/dist/server/server/speech/providers/local/sherpa/sherpa-stt.js.map +1 -1
  354. package/dist/server/server/speech/providers/local/sherpa/sherpa-tts.d.ts +2 -2
  355. package/dist/server/server/speech/providers/local/sherpa/sherpa-tts.d.ts.map +1 -1
  356. package/dist/server/server/speech/providers/local/sherpa/sherpa-tts.js +18 -11
  357. package/dist/server/server/speech/providers/local/sherpa/sherpa-tts.js.map +1 -1
  358. package/dist/server/server/speech/providers/openai/config.d.ts +2 -2
  359. package/dist/server/server/speech/providers/openai/config.d.ts.map +1 -1
  360. package/dist/server/server/speech/providers/openai/config.js +58 -31
  361. package/dist/server/server/speech/providers/openai/config.js.map +1 -1
  362. package/dist/server/server/speech/providers/openai/realtime-transcription-session.d.ts.map +1 -1
  363. package/dist/server/server/speech/providers/openai/realtime-transcription-session.js +2 -2
  364. package/dist/server/server/speech/providers/openai/realtime-transcription-session.js.map +1 -1
  365. package/dist/server/server/speech/providers/openai/runtime.d.ts +4 -4
  366. package/dist/server/server/speech/providers/openai/runtime.d.ts.map +1 -1
  367. package/dist/server/server/speech/providers/openai/runtime.js +37 -32
  368. package/dist/server/server/speech/providers/openai/runtime.js.map +1 -1
  369. package/dist/server/server/speech/providers/openai/stt.d.ts.map +1 -1
  370. package/dist/server/server/speech/providers/openai/stt.js +4 -3
  371. package/dist/server/server/speech/providers/openai/stt.js.map +1 -1
  372. package/dist/server/server/speech/providers/openai/tts.d.ts.map +1 -1
  373. package/dist/server/server/speech/providers/openai/tts.js +3 -2
  374. package/dist/server/server/speech/providers/openai/tts.js.map +1 -1
  375. package/dist/server/server/speech/speech-config-resolver.d.ts.map +1 -1
  376. package/dist/server/server/speech/speech-config-resolver.js +46 -17
  377. package/dist/server/server/speech/speech-config-resolver.js.map +1 -1
  378. package/dist/server/server/speech/speech-provider.d.ts +2 -2
  379. package/dist/server/server/speech/speech-provider.d.ts.map +1 -1
  380. package/dist/server/server/speech/speech-runtime.d.ts +6 -6
  381. package/dist/server/server/speech/speech-runtime.d.ts.map +1 -1
  382. package/dist/server/server/speech/speech-runtime.js +17 -17
  383. package/dist/server/server/speech/speech-runtime.js.map +1 -1
  384. package/dist/server/server/speech/speech-types.d.ts +2 -2
  385. package/dist/server/server/speech/speech-types.d.ts.map +1 -1
  386. package/dist/server/server/speech/turn-detection-provider.d.ts +2 -2
  387. package/dist/server/server/speech/turn-detection-provider.d.ts.map +1 -1
  388. package/dist/server/server/utils/diff-highlighter.d.ts +0 -3
  389. package/dist/server/server/utils/diff-highlighter.d.ts.map +1 -1
  390. package/dist/server/server/utils/diff-highlighter.js +67 -66
  391. package/dist/server/server/utils/diff-highlighter.js.map +1 -1
  392. package/dist/server/server/voice/voice-turn-controller.d.ts.map +1 -1
  393. package/dist/server/server/voice/voice-turn-controller.js +1 -0
  394. package/dist/server/server/voice/voice-turn-controller.js.map +1 -1
  395. package/dist/server/server/voice-types.d.ts +2 -2
  396. package/dist/server/server/voice-types.d.ts.map +1 -1
  397. package/dist/server/server/websocket-server.d.ts +34 -22
  398. package/dist/server/server/websocket-server.d.ts.map +1 -1
  399. package/dist/server/server/websocket-server.js +360 -205
  400. package/dist/server/server/websocket-server.js.map +1 -1
  401. package/dist/server/server/workspace-directory.d.ts +69 -0
  402. package/dist/server/server/workspace-directory.d.ts.map +1 -0
  403. package/dist/server/server/workspace-directory.js +229 -0
  404. package/dist/server/server/workspace-directory.js.map +1 -0
  405. package/dist/server/server/workspace-git-metadata.d.ts +2 -2
  406. package/dist/server/server/workspace-git-metadata.d.ts.map +1 -1
  407. package/dist/server/server/workspace-git-metadata.js +2 -32
  408. package/dist/server/server/workspace-git-metadata.js.map +1 -1
  409. package/dist/server/server/workspace-git-service.d.ts +8 -4
  410. package/dist/server/server/workspace-git-service.d.ts.map +1 -1
  411. package/dist/server/server/workspace-git-service.js +163 -115
  412. package/dist/server/server/workspace-git-service.js.map +1 -1
  413. package/dist/server/server/workspace-reconciliation-service.d.ts +5 -4
  414. package/dist/server/server/workspace-reconciliation-service.d.ts.map +1 -1
  415. package/dist/server/server/workspace-reconciliation-service.js +82 -82
  416. package/dist/server/server/workspace-reconciliation-service.js.map +1 -1
  417. package/dist/server/server/workspace-registry-bootstrap.d.ts.map +1 -1
  418. package/dist/server/server/workspace-registry-bootstrap.js +40 -33
  419. package/dist/server/server/workspace-registry-bootstrap.js.map +1 -1
  420. package/dist/server/server/workspace-registry-model.d.ts +19 -6
  421. package/dist/server/server/workspace-registry-model.d.ts.map +1 -1
  422. package/dist/server/server/workspace-registry-model.js +35 -21
  423. package/dist/server/server/workspace-registry-model.js.map +1 -1
  424. package/dist/server/server/workspace-registry.d.ts +2 -2
  425. package/dist/server/server/workspace-script-runtime-store.d.ts +2 -2
  426. package/dist/server/server/workspace-script-runtime-store.d.ts.map +1 -1
  427. package/dist/server/server/workspace-service-env.js +3 -3
  428. package/dist/server/server/workspace-service-env.js.map +1 -1
  429. package/dist/server/server/worktree-bootstrap.d.ts +4 -4
  430. package/dist/server/server/worktree-bootstrap.d.ts.map +1 -1
  431. package/dist/server/server/worktree-bootstrap.js +101 -69
  432. package/dist/server/server/worktree-bootstrap.js.map +1 -1
  433. package/dist/server/server/worktree-core.d.ts +2 -0
  434. package/dist/server/server/worktree-core.d.ts.map +1 -1
  435. package/dist/server/server/worktree-core.js.map +1 -1
  436. package/dist/server/server/worktree-errors.d.ts +1 -1
  437. package/dist/server/server/worktree-errors.d.ts.map +1 -1
  438. package/dist/server/server/worktree-errors.js +1 -4
  439. package/dist/server/server/worktree-errors.js.map +1 -1
  440. package/dist/server/server/worktree-session.d.ts +54 -27
  441. package/dist/server/server/worktree-session.d.ts.map +1 -1
  442. package/dist/server/server/worktree-session.js +95 -44
  443. package/dist/server/server/worktree-session.js.map +1 -1
  444. package/dist/server/services/github-service.d.ts +1 -7
  445. package/dist/server/services/github-service.d.ts.map +1 -1
  446. package/dist/server/services/github-service.js +123 -143
  447. package/dist/server/services/github-service.js.map +1 -1
  448. package/dist/server/shared/agent-attention-notification.d.ts +9 -8
  449. package/dist/server/shared/agent-attention-notification.d.ts.map +1 -1
  450. package/dist/server/shared/agent-attention-notification.js +27 -17
  451. package/dist/server/shared/agent-attention-notification.js.map +1 -1
  452. package/dist/server/shared/binary-frames/file-transfer.d.ts +56 -0
  453. package/dist/server/shared/binary-frames/file-transfer.d.ts.map +1 -0
  454. package/dist/server/shared/binary-frames/file-transfer.js +108 -0
  455. package/dist/server/shared/binary-frames/file-transfer.js.map +1 -0
  456. package/dist/server/shared/binary-frames/index.d.ts +3 -0
  457. package/dist/server/shared/binary-frames/index.d.ts.map +1 -0
  458. package/dist/server/shared/binary-frames/index.js +3 -0
  459. package/dist/server/shared/binary-frames/index.js.map +1 -0
  460. package/dist/server/shared/{terminal-stream-protocol.d.ts → binary-frames/terminal.d.ts} +4 -4
  461. package/dist/server/shared/binary-frames/terminal.d.ts.map +1 -0
  462. package/dist/server/shared/{terminal-stream-protocol.js → binary-frames/terminal.js} +2 -2
  463. package/dist/server/shared/binary-frames/terminal.js.map +1 -0
  464. package/dist/server/shared/client-capabilities.d.ts +5 -0
  465. package/dist/server/shared/client-capabilities.d.ts.map +1 -0
  466. package/dist/server/shared/client-capabilities.js +4 -0
  467. package/dist/server/shared/client-capabilities.js.map +1 -0
  468. package/dist/server/shared/connection-offer.d.ts +8 -0
  469. package/dist/server/shared/connection-offer.d.ts.map +1 -1
  470. package/dist/server/shared/connection-offer.js +35 -0
  471. package/dist/server/shared/connection-offer.js.map +1 -1
  472. package/dist/server/shared/daemon-endpoints.d.ts +18 -3
  473. package/dist/server/shared/daemon-endpoints.d.ts.map +1 -1
  474. package/dist/server/shared/daemon-endpoints.js +82 -8
  475. package/dist/server/shared/daemon-endpoints.js.map +1 -1
  476. package/dist/server/shared/host-connection-schema.d.ts +23 -0
  477. package/dist/server/shared/host-connection-schema.d.ts.map +1 -0
  478. package/dist/server/shared/host-connection-schema.js +9 -0
  479. package/dist/server/shared/host-connection-schema.js.map +1 -0
  480. package/dist/server/shared/messages.d.ts +25073 -3453
  481. package/dist/server/shared/messages.d.ts.map +1 -1
  482. package/dist/server/shared/messages.js +152 -36
  483. package/dist/server/shared/messages.js.map +1 -1
  484. package/dist/server/shared/tool-call-display.d.ts +2 -2
  485. package/dist/server/shared/tool-call-display.d.ts.map +1 -1
  486. package/dist/server/terminal/terminal-manager-factory.d.ts +7 -0
  487. package/dist/server/terminal/terminal-manager-factory.d.ts.map +1 -0
  488. package/dist/server/terminal/terminal-manager-factory.js +13 -0
  489. package/dist/server/terminal/terminal-manager-factory.js.map +1 -0
  490. package/dist/server/terminal/terminal-manager.d.ts +7 -1
  491. package/dist/server/terminal/terminal-manager.d.ts.map +1 -1
  492. package/dist/server/terminal/terminal-manager.js +15 -4
  493. package/dist/server/terminal/terminal-manager.js.map +1 -1
  494. package/dist/server/terminal/terminal-output-coalescer.d.ts +6 -6
  495. package/dist/server/terminal/terminal-output-coalescer.d.ts.map +1 -1
  496. package/dist/server/terminal/terminal-session-controller.d.ts +63 -0
  497. package/dist/server/terminal/terminal-session-controller.d.ts.map +1 -0
  498. package/dist/server/terminal/terminal-session-controller.js +615 -0
  499. package/dist/server/terminal/terminal-session-controller.js.map +1 -0
  500. package/dist/server/terminal/terminal-ts-loader.mjs +20 -0
  501. package/dist/server/terminal/terminal-worker-process.d.ts +2 -0
  502. package/dist/server/terminal/terminal-worker-process.d.ts.map +1 -0
  503. package/dist/server/terminal/terminal-worker-process.js +221 -0
  504. package/dist/server/terminal/terminal-worker-process.js.map +1 -0
  505. package/dist/server/terminal/terminal-worker-protocol.d.ts +113 -0
  506. package/dist/server/terminal/terminal-worker-protocol.d.ts.map +1 -0
  507. package/dist/server/terminal/terminal-worker-protocol.js +2 -0
  508. package/dist/server/terminal/terminal-worker-protocol.js.map +1 -0
  509. package/dist/server/terminal/terminal.d.ts +10 -2
  510. package/dist/server/terminal/terminal.d.ts.map +1 -1
  511. package/dist/server/terminal/terminal.js +79 -28
  512. package/dist/server/terminal/terminal.js.map +1 -1
  513. package/dist/server/terminal/worker-terminal-manager.d.ts +19 -0
  514. package/dist/server/terminal/worker-terminal-manager.d.ts.map +1 -0
  515. package/dist/server/terminal/worker-terminal-manager.js +466 -0
  516. package/dist/server/terminal/worker-terminal-manager.js.map +1 -0
  517. package/dist/server/utils/checkout-git.d.ts +13 -12
  518. package/dist/server/utils/checkout-git.d.ts.map +1 -1
  519. package/dist/server/utils/checkout-git.js +351 -281
  520. package/dist/server/utils/checkout-git.js.map +1 -1
  521. package/dist/server/utils/directory-suggestions.d.ts.map +1 -1
  522. package/dist/server/utils/directory-suggestions.js +22 -34
  523. package/dist/server/utils/directory-suggestions.js.map +1 -1
  524. package/dist/server/utils/executable.d.ts +1 -14
  525. package/dist/server/utils/executable.d.ts.map +1 -1
  526. package/dist/server/utils/executable.js +13 -49
  527. package/dist/server/utils/executable.js.map +1 -1
  528. package/dist/server/utils/github-remote.d.ts +13 -0
  529. package/dist/server/utils/github-remote.d.ts.map +1 -0
  530. package/dist/server/utils/github-remote.js +128 -0
  531. package/dist/server/utils/github-remote.js.map +1 -0
  532. package/dist/server/utils/paseo-config-file.d.ts +30 -0
  533. package/dist/server/utils/paseo-config-file.d.ts.map +1 -0
  534. package/dist/server/utils/paseo-config-file.js +90 -0
  535. package/dist/server/utils/paseo-config-file.js.map +1 -0
  536. package/dist/server/utils/paseo-config-schema.d.ts +290 -0
  537. package/dist/server/utils/paseo-config-schema.d.ts.map +1 -0
  538. package/dist/server/utils/paseo-config-schema.js +60 -0
  539. package/dist/server/utils/paseo-config-schema.js.map +1 -0
  540. package/dist/server/utils/process-tree.d.ts +25 -0
  541. package/dist/server/utils/process-tree.d.ts.map +1 -0
  542. package/dist/server/utils/process-tree.js +96 -0
  543. package/dist/server/utils/process-tree.js.map +1 -0
  544. package/dist/server/utils/project-icon.d.ts.map +1 -1
  545. package/dist/server/utils/project-icon.js +84 -109
  546. package/dist/server/utils/project-icon.js.map +1 -1
  547. package/dist/server/utils/promise-timeout.d.ts +2 -2
  548. package/dist/server/utils/promise-timeout.d.ts.map +1 -1
  549. package/dist/server/utils/run-git-command.d.ts +3 -1
  550. package/dist/server/utils/run-git-command.d.ts.map +1 -1
  551. package/dist/server/utils/run-git-command.js +10 -1
  552. package/dist/server/utils/run-git-command.js.map +1 -1
  553. package/dist/server/utils/script-hostname.d.ts +2 -2
  554. package/dist/server/utils/script-hostname.d.ts.map +1 -1
  555. package/dist/server/utils/spawn.d.ts +10 -3
  556. package/dist/server/utils/spawn.d.ts.map +1 -1
  557. package/dist/server/utils/spawn.js +30 -5
  558. package/dist/server/utils/spawn.js.map +1 -1
  559. package/dist/server/utils/windows-command.d.ts +15 -0
  560. package/dist/server/utils/windows-command.d.ts.map +1 -0
  561. package/dist/server/utils/windows-command.js +41 -0
  562. package/dist/server/utils/windows-command.js.map +1 -0
  563. package/dist/server/utils/worktree-metadata.d.ts +44 -0
  564. package/dist/server/utils/worktree-metadata.d.ts.map +1 -1
  565. package/dist/server/utils/worktree-metadata.js +58 -0
  566. package/dist/server/utils/worktree-metadata.js.map +1 -1
  567. package/dist/server/utils/worktree.d.ts +23 -8
  568. package/dist/server/utils/worktree.d.ts.map +1 -1
  569. package/dist/server/utils/worktree.js +81 -63
  570. package/dist/server/utils/worktree.js.map +1 -1
  571. package/dist/src/server/pid-lock.js.map +1 -1
  572. package/package.json +17 -21
  573. package/dist/server/server/agent/llm-openai.d.ts +0 -7
  574. package/dist/server/server/agent/llm-openai.d.ts.map +0 -1
  575. package/dist/server/server/agent/llm-openai.js +0 -8
  576. package/dist/server/server/agent/llm-openai.js.map +0 -1
  577. package/dist/server/server/agent/orchestrator.d.ts +0 -12
  578. package/dist/server/server/agent/orchestrator.d.ts.map +0 -1
  579. package/dist/server/server/agent/orchestrator.js +0 -12
  580. package/dist/server/server/agent/orchestrator.js.map +0 -1
  581. package/dist/server/server/types.d.ts +0 -5
  582. package/dist/server/server/types.d.ts.map +0 -1
  583. package/dist/server/server/types.js +0 -3
  584. package/dist/server/server/types.js.map +0 -1
  585. package/dist/server/server/workspace-registry.test-helpers.d.ts +0 -37
  586. package/dist/server/server/workspace-registry.test-helpers.d.ts.map +0 -1
  587. package/dist/server/server/workspace-registry.test-helpers.js +0 -121
  588. package/dist/server/server/workspace-registry.test-helpers.js.map +0 -1
  589. package/dist/server/shared/terminal-stream-protocol.d.ts.map +0 -1
  590. package/dist/server/shared/terminal-stream-protocol.js.map +0 -1
@@ -4,7 +4,9 @@ import { ensureValidJson } from "../json-utils.js";
4
4
  import { AgentPermissionRequestPayloadSchema, AgentListItemPayloadSchema, AgentPermissionResponseSchema, AgentSnapshotPayloadSchema, } from "../messages.js";
5
5
  import { buildStoredAgentPayload, toAgentListItemPayload, toAgentPayload, } from "./agent-projections.js";
6
6
  import { curateAgentActivity } from "./activity-curator.js";
7
+ import { selectItemsByProjectedLimit } from "./timeline-projection.js";
7
8
  import { ensureAgentLoaded } from "./agent-loading.js";
9
+ import { isStoredAgentProviderAvailable } from "../persistence-hooks.js";
8
10
  import { appendTimelineItemIfAgentKnown, emitLiveTimelineItemIfAgentKnown, } from "./timeline-append.js";
9
11
  import { getPaseoWorktreesRoot } from "../../utils/worktree.js";
10
12
  import { archivePaseoWorktree, killTerminalsUnderPath, } from "../paseo-worktree-archive-service.js";
@@ -12,7 +14,6 @@ import { WaitForAgentTracker } from "./wait-for-agent-tracker.js";
12
14
  import { scheduleAgentMetadataGeneration } from "./agent-metadata-generator.js";
13
15
  import { expandUserPath, isSameOrDescendantPath, resolvePathFromBase } from "../path-utils.js";
14
16
  import { captureTerminalLines } from "../../terminal/terminal.js";
15
- import { runAsyncWorktreeBootstrap } from "../worktree-bootstrap.js";
16
17
  import { ScheduleSummarySchema, StoredScheduleSchema } from "../schedule/types.js";
17
18
  import { resolveSnapshotCwd } from "./provider-snapshot-manager.js";
18
19
  import { AgentModelSchema, AgentProviderEnum, AgentStatusEnum, ProviderSummarySchema, parseDurationString, resolveRequiredProviderModel, sanitizePermissionRequest, sendPromptToAgent, setupFinishNotification, serializeSnapshotWithMetadata, startAgentRun, toScheduleSummary, waitForAgentWithTimeout, } from "./mcp-shared.js";
@@ -59,6 +60,34 @@ function parseTimestamp(value) {
59
60
  function resolveAgentListActivityTime(agent) {
60
61
  return Math.max(parseTimestamp(agent.updatedAt), parseTimestamp(agent.lastUserMessageAt), parseTimestamp(agent.attentionTimestamp), parseTimestamp(agent.archivedAt), parseTimestamp(agent.createdAt));
61
62
  }
63
+ function resolveRegisteredProviderIds(agentManager, providerRegistry) {
64
+ return providerRegistry
65
+ ? Object.keys(providerRegistry)
66
+ : agentManager.getRegisteredProviderIds();
67
+ }
68
+ async function resolveProviderSummary(provider, logger) {
69
+ const base = {
70
+ id: provider.id,
71
+ label: provider.label,
72
+ description: provider.description,
73
+ modes: provider.modes,
74
+ };
75
+ if (!provider.enabled) {
76
+ return { ...base, enabled: false, status: "unavailable" };
77
+ }
78
+ try {
79
+ const available = await provider.createClient(logger).isAvailable();
80
+ return { ...base, enabled: true, status: available ? "available" : "unavailable" };
81
+ }
82
+ catch (availabilityError) {
83
+ return {
84
+ ...base,
85
+ enabled: true,
86
+ status: "unavailable",
87
+ error: availabilityError instanceof Error ? availabilityError.message : String(availabilityError),
88
+ };
89
+ }
90
+ }
62
91
  function compareAgentListItems(a, b) {
63
92
  const attentionDelta = Number(b.requiresAttention ?? false) - Number(a.requiresAttention ?? false);
64
93
  if (attentionDelta !== 0) {
@@ -155,12 +184,6 @@ export async function createAgentMcpServer(options) {
155
184
  name: "agent-mcp",
156
185
  version: "2.0.0",
157
186
  });
158
- const requireProviderRegistry = () => {
159
- if (!providerRegistry) {
160
- throw new Error("Provider registry is required to load stored agent records");
161
- }
162
- return providerRegistry;
163
- };
164
187
  const resolveCallerAgent = () => {
165
188
  if (!callerAgentId) {
166
189
  return null;
@@ -171,7 +194,7 @@ export async function createAgentMcpServer(options) {
171
194
  }
172
195
  return parentAgent;
173
196
  };
174
- const resolveScopedCwd = (requestedCwd, options) => {
197
+ const resolveScopedCwd = (requestedCwd, opts) => {
175
198
  const callerAgent = resolveCallerAgent();
176
199
  if (callerAgent) {
177
200
  return resolveChildAgentCwd({
@@ -183,66 +206,76 @@ export async function createAgentMcpServer(options) {
183
206
  }
184
207
  const trimmedCwd = requestedCwd?.trim();
185
208
  if (!trimmedCwd) {
186
- if (options?.required) {
209
+ if (opts?.required) {
187
210
  throw new Error("cwd is required");
188
211
  }
189
212
  throw new Error("cwd is required when no caller agent is available");
190
213
  }
191
214
  return expandUserPath(trimmedCwd);
192
215
  };
216
+ const buildCallerAgentScheduleConfigExtras = (callerAgent) => {
217
+ return {
218
+ ...(callerAgent.config.thinkingOptionId
219
+ ? { thinkingOptionId: callerAgent.config.thinkingOptionId }
220
+ : {}),
221
+ ...(callerAgent.config.approvalPolicy
222
+ ? { approvalPolicy: callerAgent.config.approvalPolicy }
223
+ : {}),
224
+ ...(callerAgent.config.sandboxMode ? { sandboxMode: callerAgent.config.sandboxMode } : {}),
225
+ ...(typeof callerAgent.config.networkAccess === "boolean"
226
+ ? { networkAccess: callerAgent.config.networkAccess }
227
+ : {}),
228
+ ...(typeof callerAgent.config.webSearch === "boolean"
229
+ ? { webSearch: callerAgent.config.webSearch }
230
+ : {}),
231
+ ...(callerAgent.config.title ? { title: callerAgent.config.title } : {}),
232
+ ...(callerAgent.config.extra ? { extra: callerAgent.config.extra } : {}),
233
+ ...(callerAgent.config.systemPrompt ? { systemPrompt: callerAgent.config.systemPrompt } : {}),
234
+ ...(callerAgent.config.mcpServers ? { mcpServers: callerAgent.config.mcpServers } : {}),
235
+ };
236
+ };
237
+ const buildCallerAgentScheduleConfig = (callerAgent, params) => {
238
+ const hasProviderOverride = params?.provider !== undefined;
239
+ const resolvedProviderModel = hasProviderOverride
240
+ ? resolveScheduleProviderAndModel({
241
+ provider: params?.provider,
242
+ defaultProvider: callerAgent.provider,
243
+ })
244
+ : null;
245
+ const resolvedProvider = resolvedProviderModel?.provider ?? callerAgent.provider;
246
+ let resolvedModel;
247
+ if (resolvedProviderModel?.model) {
248
+ resolvedModel = resolvedProviderModel.model;
249
+ }
250
+ else if (!hasProviderOverride && callerAgent.config.model) {
251
+ resolvedModel = callerAgent.config.model;
252
+ }
253
+ return {
254
+ provider: resolvedProvider,
255
+ cwd: params?.cwd?.trim() ? expandUserPath(params.cwd) : callerAgent.cwd,
256
+ ...(callerAgent.currentModeId
257
+ ? {
258
+ modeId: mapModeAcrossProviders(callerAgent.currentModeId, callerAgent.provider, resolvedProvider),
259
+ }
260
+ : {}),
261
+ ...(resolvedModel ? { model: resolvedModel } : {}),
262
+ ...buildCallerAgentScheduleConfigExtras(callerAgent),
263
+ };
264
+ };
193
265
  const resolveNewAgentScheduleTarget = (params) => {
266
+ if (!params?.provider?.trim()) {
267
+ throw new Error("provider is required when target is new-agent");
268
+ }
194
269
  const callerAgent = resolveCallerAgent();
195
270
  if (callerAgent) {
196
- const hasProviderOverride = params?.provider !== undefined;
197
- const resolvedProviderModel = hasProviderOverride
198
- ? resolveScheduleProviderAndModel({
199
- provider: params?.provider,
200
- defaultProvider: callerAgent.provider,
201
- })
202
- : null;
203
- const resolvedProvider = resolvedProviderModel?.provider ?? callerAgent.provider;
204
271
  return {
205
272
  type: "new-agent",
206
- config: {
207
- provider: resolvedProvider,
208
- cwd: params?.cwd?.trim() ? expandUserPath(params.cwd) : callerAgent.cwd,
209
- ...(callerAgent.currentModeId
210
- ? {
211
- modeId: mapModeAcrossProviders(callerAgent.currentModeId, callerAgent.provider, resolvedProvider),
212
- }
213
- : {}),
214
- ...(resolvedProviderModel?.model
215
- ? { model: resolvedProviderModel.model }
216
- : !hasProviderOverride && callerAgent.config.model
217
- ? { model: callerAgent.config.model }
218
- : {}),
219
- ...(callerAgent.config.thinkingOptionId
220
- ? { thinkingOptionId: callerAgent.config.thinkingOptionId }
221
- : {}),
222
- ...(callerAgent.config.approvalPolicy
223
- ? { approvalPolicy: callerAgent.config.approvalPolicy }
224
- : {}),
225
- ...(callerAgent.config.sandboxMode
226
- ? { sandboxMode: callerAgent.config.sandboxMode }
227
- : {}),
228
- ...(typeof callerAgent.config.networkAccess === "boolean"
229
- ? { networkAccess: callerAgent.config.networkAccess }
230
- : {}),
231
- ...(typeof callerAgent.config.webSearch === "boolean"
232
- ? { webSearch: callerAgent.config.webSearch }
233
- : {}),
234
- ...(callerAgent.config.title ? { title: callerAgent.config.title } : {}),
235
- ...(callerAgent.config.extra ? { extra: callerAgent.config.extra } : {}),
236
- ...(callerAgent.config.systemPrompt
237
- ? { systemPrompt: callerAgent.config.systemPrompt }
238
- : {}),
239
- ...(callerAgent.config.mcpServers ? { mcpServers: callerAgent.config.mcpServers } : {}),
240
- },
273
+ config: buildCallerAgentScheduleConfig(callerAgent, params),
241
274
  };
242
275
  }
243
276
  const resolvedProviderModel = resolveScheduleProviderAndModel({
244
277
  provider: params?.provider,
245
- defaultProvider: "claude",
278
+ defaultProvider: params.provider,
246
279
  });
247
280
  return {
248
281
  type: "new-agent",
@@ -387,9 +420,100 @@ export async function createAgentMcpServer(options) {
387
420
  if (options.voiceOnly) {
388
421
  return server;
389
422
  }
423
+ const resolveCallerCreateAgentArgs = (args, parentAgentId) => {
424
+ const callerArgs = agentToAgentCreateAgentArgsSchema.parse(args);
425
+ const resolvedProviderModel = resolveRequiredProviderModel(callerArgs.provider);
426
+ const parentAgent = agentManager.getAgent(parentAgentId);
427
+ if (!parentAgent) {
428
+ throw new Error(`Parent agent ${parentAgentId} not found`);
429
+ }
430
+ const provider = resolvedProviderModel.provider;
431
+ const resolvedCwd = resolveChildAgentCwd({
432
+ parentCwd: parentAgent.cwd,
433
+ requestedCwd: callerArgs.cwd,
434
+ lockedCwd: callerContext?.lockedCwd,
435
+ allowCustomCwd: callerContext?.allowCustomCwd ?? true,
436
+ });
437
+ const parentMode = parentAgent.currentModeId;
438
+ const resolvedMode = parentMode
439
+ ? mapModeAcrossProviders(parentMode, parentAgent.provider, provider)
440
+ : undefined;
441
+ return {
442
+ provider,
443
+ initialPrompt: callerArgs.initialPrompt,
444
+ background: callerArgs.background ?? false,
445
+ normalizedTitle: callerArgs.title.trim(),
446
+ model: resolvedProviderModel.model,
447
+ thinking: callerArgs.thinking,
448
+ labels: callerArgs.labels,
449
+ notifyOnFinish: callerArgs.notifyOnFinish ?? false,
450
+ resolvedCwd,
451
+ resolvedMode,
452
+ setupContinuation: undefined,
453
+ };
454
+ };
455
+ const resolveTopLevelCreateAgentArgs = async (args) => {
456
+ const topLevelArgs = topLevelCreateAgentArgsSchema.parse(args);
457
+ const resolvedProviderModel = resolveRequiredProviderModel(topLevelArgs.provider);
458
+ const { cwd, mode, worktreeName, baseBranch, refName, action, githubPrNumber } = topLevelArgs;
459
+ let resolvedCwd = expandUserPath(cwd);
460
+ let setupContinuation;
461
+ const shouldCreateWorktree = Boolean(worktreeName || refName || action || githubPrNumber);
462
+ if (shouldCreateWorktree) {
463
+ if (worktreeName && !baseBranch && !refName && !action && githubPrNumber === undefined) {
464
+ throw new Error("baseBranch is required when creating a worktree");
465
+ }
466
+ const createdWorktree = await createMcpWorktree({
467
+ input: {
468
+ cwd: resolvedCwd,
469
+ worktreeSlug: worktreeName,
470
+ refName,
471
+ action,
472
+ githubPrNumber,
473
+ ...(topLevelArgs.initialPrompt
474
+ ? { firstAgentContext: { prompt: topLevelArgs.initialPrompt } }
475
+ : {}),
476
+ runSetup: false,
477
+ paseoHome: options.paseoHome,
478
+ },
479
+ createPaseoWorktree: options.createPaseoWorktree,
480
+ resolveDefaultBranch: baseBranch ? async () => baseBranch : undefined,
481
+ setupContinuation: {
482
+ kind: "agent",
483
+ terminalManager: terminalManager ?? null,
484
+ appendTimelineItem: ({ agentId, item }) => appendTimelineItemIfAgentKnown({
485
+ agentManager,
486
+ agentId,
487
+ item,
488
+ }),
489
+ emitLiveTimelineItem: ({ agentId, item }) => emitLiveTimelineItemIfAgentKnown({
490
+ agentManager,
491
+ agentId,
492
+ item,
493
+ }),
494
+ logger: childLogger,
495
+ },
496
+ });
497
+ resolvedCwd = createdWorktree.worktree.worktreePath;
498
+ setupContinuation = createdWorktree.setupContinuation;
499
+ }
500
+ return {
501
+ provider: resolvedProviderModel.provider,
502
+ initialPrompt: topLevelArgs.initialPrompt,
503
+ background: topLevelArgs.background ?? false,
504
+ normalizedTitle: topLevelArgs.title.trim(),
505
+ model: resolvedProviderModel.model,
506
+ thinking: topLevelArgs.thinking,
507
+ labels: topLevelArgs.labels,
508
+ notifyOnFinish: topLevelArgs.notifyOnFinish ?? false,
509
+ resolvedCwd,
510
+ resolvedMode: mode,
511
+ setupContinuation,
512
+ };
513
+ };
390
514
  server.registerTool("create_agent", {
391
515
  title: "Create agent",
392
- description: "Create an agent tied to a working directory. Requires provider/model, for example codex/gpt-5.4. Optionally run an initial prompt immediately or create a git worktree for the agent.",
516
+ description: "Create an agent tied to a working directory. Requires provider/model, for example codex/gpt-5.4. Do not guess; call list_providers and list_models first if uncertain. Optionally run an initial prompt immediately or create a git worktree for the agent.",
393
517
  inputSchema: createAgentInputSchema,
394
518
  outputSchema: {
395
519
  agentId: z.string(),
@@ -406,87 +530,15 @@ export async function createAgentMcpServer(options) {
406
530
  permission: AgentPermissionRequestPayloadSchema.nullable().optional(),
407
531
  },
408
532
  }, async (args) => {
409
- let provider;
410
- let initialPrompt;
411
- let background = false;
412
- let normalizedTitle;
413
- let model;
414
- let thinking;
415
- let labels;
416
- let notifyOnFinish = false;
417
- let resolvedCwd;
418
- let resolvedMode;
419
- let worktreeConfig;
420
- let shouldBootstrapWorktree;
421
- if (callerAgentId) {
422
- const callerArgs = agentToAgentCreateAgentArgsSchema.parse(args);
423
- const resolvedProviderModel = resolveRequiredProviderModel(callerArgs.provider);
424
- provider = resolvedProviderModel.provider;
425
- model = resolvedProviderModel.model;
426
- initialPrompt = callerArgs.initialPrompt;
427
- background = callerArgs.background ?? false;
428
- normalizedTitle = callerArgs.title.trim();
429
- thinking = callerArgs.thinking;
430
- labels = callerArgs.labels;
431
- notifyOnFinish = callerArgs.notifyOnFinish ?? false;
432
- const parentAgent = agentManager.getAgent(callerAgentId);
433
- if (!parentAgent) {
434
- throw new Error(`Parent agent ${callerAgentId} not found`);
435
- }
436
- resolvedCwd = resolveChildAgentCwd({
437
- parentCwd: parentAgent.cwd,
438
- requestedCwd: callerArgs.cwd,
439
- lockedCwd: callerContext?.lockedCwd,
440
- allowCustomCwd: callerContext?.allowCustomCwd ?? true,
441
- });
442
- const parentMode = parentAgent.currentModeId;
443
- if (parentMode) {
444
- resolvedMode = mapModeAcrossProviders(parentMode, parentAgent.provider, provider);
445
- }
446
- }
447
- else {
448
- const topLevelArgs = topLevelCreateAgentArgsSchema.parse(args);
449
- const resolvedProviderModel = resolveRequiredProviderModel(topLevelArgs.provider);
450
- provider = resolvedProviderModel.provider;
451
- model = resolvedProviderModel.model;
452
- initialPrompt = topLevelArgs.initialPrompt;
453
- background = topLevelArgs.background ?? false;
454
- normalizedTitle = topLevelArgs.title.trim();
455
- thinking = topLevelArgs.thinking;
456
- labels = topLevelArgs.labels;
457
- notifyOnFinish = topLevelArgs.notifyOnFinish ?? false;
458
- const { cwd, mode, worktreeName, baseBranch, refName, action, githubPrNumber } = topLevelArgs;
459
- resolvedCwd = expandUserPath(cwd);
460
- if (worktreeName) {
461
- if (!baseBranch && !refName && !action && githubPrNumber === undefined) {
462
- throw new Error("baseBranch is required when creating a worktree");
463
- }
464
- const createdWorktree = await createMcpWorktree({
465
- input: {
466
- cwd: resolvedCwd,
467
- worktreeSlug: worktreeName,
468
- refName,
469
- action,
470
- githubPrNumber,
471
- runSetup: false,
472
- paseoHome: options.paseoHome,
473
- },
474
- createPaseoWorktree: options.createPaseoWorktree,
475
- resolveDefaultBranch: baseBranch ? async () => baseBranch : undefined,
476
- workspaceGitService: options.workspaceGitService,
477
- logger: options.logger,
478
- });
479
- resolvedCwd = createdWorktree.worktree.worktreePath;
480
- worktreeConfig = createdWorktree.worktree;
481
- shouldBootstrapWorktree = createdWorktree.created;
482
- }
483
- resolvedMode = mode;
484
- }
533
+ const resolved = callerAgentId
534
+ ? resolveCallerCreateAgentArgs(args, callerAgentId)
535
+ : await resolveTopLevelCreateAgentArgs(args);
536
+ const { provider, initialPrompt, background, normalizedTitle, model, thinking, labels, notifyOnFinish, resolvedCwd, resolvedMode, setupContinuation, } = resolved;
485
537
  const childAgentDefaultLabels = callerContext?.childAgentDefaultLabels;
486
538
  const mergedLabels = {
487
539
  ...(callerAgentId ? { "paseo.parent-agent-id": callerAgentId } : {}),
488
- ...(childAgentDefaultLabels ?? {}),
489
- ...(labels ?? {}),
540
+ ...childAgentDefaultLabels,
541
+ ...labels,
490
542
  };
491
543
  const snapshot = await agentManager.createAgent({
492
544
  provider,
@@ -496,25 +548,9 @@ export async function createAgentMcpServer(options) {
496
548
  model,
497
549
  thinkingOptionId: thinking,
498
550
  }, undefined, Object.keys(mergedLabels).length > 0 ? { labels: mergedLabels } : undefined);
499
- if (worktreeConfig) {
500
- void runAsyncWorktreeBootstrap({
501
- agentId: snapshot.id,
502
- worktree: worktreeConfig,
503
- shouldBootstrap: shouldBootstrapWorktree,
504
- terminalManager: terminalManager ?? null,
505
- appendTimelineItem: (item) => appendTimelineItemIfAgentKnown({
506
- agentManager,
507
- agentId: snapshot.id,
508
- item,
509
- }),
510
- emitLiveTimelineItem: (item) => emitLiveTimelineItemIfAgentKnown({
511
- agentManager,
512
- agentId: snapshot.id,
513
- item,
514
- }),
515
- logger: childLogger,
516
- });
517
- }
551
+ setupContinuation?.startAfterAgentCreate({
552
+ agentId: snapshot.id,
553
+ });
518
554
  const trimmedPrompt = initialPrompt.trim();
519
555
  scheduleAgentMetadataGeneration({
520
556
  agentManager,
@@ -524,11 +560,6 @@ export async function createAgentMcpServer(options) {
524
560
  explicitTitle: snapshot.config.title,
525
561
  paseoHome: options.paseoHome,
526
562
  logger: childLogger,
527
- deps: options.workspaceGitService
528
- ? {
529
- workspaceGitService: options.workspaceGitService,
530
- }
531
- : undefined,
532
563
  });
533
564
  try {
534
565
  agentManager.recordUserMessage(snapshot.id, trimmedPrompt, {
@@ -767,7 +798,7 @@ export async function createAgentMcpServer(options) {
767
798
  if (!record || record.internal) {
768
799
  throw new Error(`Agent ${agentId} not found`);
769
800
  }
770
- const structuredSnapshot = buildStoredAgentPayload(record, requireProviderRegistry(), childLogger);
801
+ const structuredSnapshot = buildStoredAgentPayload(record, resolveRegisteredProviderIds(agentManager, providerRegistry));
771
802
  return {
772
803
  content: [],
773
804
  structuredContent: ensureValidJson({
@@ -804,10 +835,12 @@ export async function createAgentMcpServer(options) {
804
835
  const liveAgents = await Promise.all(liveSnapshots.map((snapshot) => serializeSnapshotWithMetadata(agentStorage, snapshot, childLogger)));
805
836
  const liveIds = new Set(liveSnapshots.map((snapshot) => snapshot.id));
806
837
  const storedRecords = await agentStorage.list();
838
+ const registeredProviderIds = resolveRegisteredProviderIds(agentManager, providerRegistry);
807
839
  const storedAgents = storedRecords
808
840
  .filter((record) => !record.internal && !liveIds.has(record.id))
809
841
  .filter((record) => includeArchived || !record.archivedAt)
810
- .map((record) => buildStoredAgentPayload(record, requireProviderRegistry(), childLogger));
842
+ .filter((record) => includeArchived || isStoredAgentProviderAvailable(record, registeredProviderIds))
843
+ .map((record) => buildStoredAgentPayload(record, registeredProviderIds));
811
844
  const agents = [...liveAgents, ...storedAgents]
812
845
  .map(toAgentListItemPayload)
813
846
  .filter((agent) => !requestedCwd || isSameOrDescendantPath(requestedCwd, agent.cwd))
@@ -1213,25 +1246,18 @@ export async function createAgentMcpServer(options) {
1213
1246
  });
1214
1247
  server.registerTool("list_providers", {
1215
1248
  title: "List providers",
1216
- description: "List available agent providers and their modes.",
1249
+ description: "List configured agent providers, availability, and their modes.",
1217
1250
  inputSchema: {},
1218
1251
  outputSchema: {
1219
1252
  providers: z.array(ProviderSummarySchema),
1220
1253
  },
1221
- }, async () => ({
1222
- content: [],
1223
- structuredContent: ensureValidJson({
1224
- providers: Object.values(providerRegistry ?? {}).map((provider) => ({
1225
- id: provider.id,
1226
- label: provider.label,
1227
- modes: provider.modes.map((mode) => ({
1228
- id: mode.id,
1229
- label: mode.label,
1230
- ...(mode.description ? { description: mode.description } : {}),
1231
- })),
1232
- })),
1233
- }),
1234
- }));
1254
+ }, async () => {
1255
+ const providers = await Promise.all(Object.values(providerRegistry ?? {}).map((provider) => resolveProviderSummary(provider, childLogger)));
1256
+ return {
1257
+ content: [],
1258
+ structuredContent: ensureValidJson({ providers }),
1259
+ };
1260
+ });
1235
1261
  server.registerTool("list_models", {
1236
1262
  title: "List models",
1237
1263
  description: "List models for an agent provider.",
@@ -1250,6 +1276,9 @@ export async function createAgentMcpServer(options) {
1250
1276
  if (!definition) {
1251
1277
  throw new Error(`Provider ${provider} is not configured`);
1252
1278
  }
1279
+ if (!definition.enabled) {
1280
+ throw new Error(`Provider '${provider}' is disabled`);
1281
+ }
1253
1282
  const models = await definition.fetchModels({ cwd: resolveSnapshotCwd(), force: false });
1254
1283
  return {
1255
1284
  content: [],
@@ -1286,41 +1315,48 @@ export async function createAgentMcpServer(options) {
1286
1315
  });
1287
1316
  server.registerTool("create_worktree", {
1288
1317
  title: "Create worktree",
1289
- description: "Create a Paseo-managed git worktree.",
1318
+ description: "Create a Paseo-managed git worktree. Branch off a new branch, check out an existing branch, or check out a GitHub PR.",
1290
1319
  inputSchema: {
1291
- cwd: z
1292
- .string()
1293
- .optional()
1294
- .describe("Optional repository cwd. Defaults to the caller agent cwd."),
1295
- branchName: z.string().optional(),
1296
- baseBranch: z.string().optional(),
1297
- refName: z.string().min(1).optional(),
1298
- action: z.enum(["branch-off", "checkout"]).optional(),
1299
- githubPrNumber: z.number().int().positive().optional(),
1320
+ cwd: z.string().optional().describe("Repository directory. Defaults to the agent's cwd."),
1321
+ target: z
1322
+ .discriminatedUnion("mode", [
1323
+ z
1324
+ .object({
1325
+ mode: z.literal("branch-off"),
1326
+ newBranch: z.string().min(1).describe("Name for the new branch."),
1327
+ base: z
1328
+ .string()
1329
+ .min(1)
1330
+ .optional()
1331
+ .describe("Base ref. Defaults to the repo's default branch."),
1332
+ })
1333
+ .describe("Create a new branch off a base."),
1334
+ z
1335
+ .object({
1336
+ mode: z.literal("checkout-branch"),
1337
+ branch: z.string().min(1).describe("Existing branch to check out."),
1338
+ })
1339
+ .describe("Check out an existing branch."),
1340
+ z
1341
+ .object({
1342
+ mode: z.literal("checkout-pr"),
1343
+ prNumber: z.number().int().positive().describe("Pull request number."),
1344
+ })
1345
+ .describe("Check out a GitHub pull request."),
1346
+ ])
1347
+ .describe("What the worktree should contain."),
1300
1348
  },
1301
1349
  outputSchema: {
1302
1350
  branchName: z.string(),
1303
1351
  worktreePath: z.string(),
1304
1352
  },
1305
- }, async ({ cwd, branchName, baseBranch, refName, action, githubPrNumber }) => {
1306
- if (!branchName && !refName && githubPrNumber === undefined) {
1307
- throw new Error("create_worktree requires branchName, refName, or githubPrNumber");
1308
- }
1353
+ }, async ({ cwd, target }) => {
1309
1354
  const repoRoot = resolveScopedCwd(cwd, { required: true });
1355
+ const mcpInput = mcpCreateWorktreeInput(repoRoot, target, options.paseoHome);
1310
1356
  const createdWorktree = await createMcpWorktree({
1311
- input: {
1312
- cwd: repoRoot,
1313
- worktreeSlug: branchName,
1314
- refName,
1315
- action,
1316
- githubPrNumber,
1317
- runSetup: false,
1318
- paseoHome: options.paseoHome,
1319
- },
1357
+ input: mcpInput.input,
1320
1358
  createPaseoWorktree: options.createPaseoWorktree,
1321
- resolveDefaultBranch: baseBranch ? async () => baseBranch : undefined,
1322
- workspaceGitService: options.workspaceGitService,
1323
- logger: options.logger,
1359
+ resolveDefaultBranch: mcpInput.resolveDefaultBranch,
1324
1360
  });
1325
1361
  const { worktree } = createdWorktree;
1326
1362
  return {
@@ -1359,9 +1395,15 @@ export async function createAgentMcpServer(options) {
1359
1395
  if (!options.archiveWorkspaceRecord) {
1360
1396
  throw new Error("Workspace registry archiver is required to archive worktrees");
1361
1397
  }
1362
- if (!options.emitWorkspaceUpdatesForCwds) {
1398
+ if (!options.emitWorkspaceUpdatesForWorkspaceIds) {
1363
1399
  throw new Error("Workspace update emitter is required to archive worktrees");
1364
1400
  }
1401
+ if (!options.markWorkspaceArchiving) {
1402
+ throw new Error("Workspace archiving marker is required to archive worktrees");
1403
+ }
1404
+ if (!options.clearWorkspaceArchiving) {
1405
+ throw new Error("Workspace archiving clearer is required to archive worktrees");
1406
+ }
1365
1407
  if (!options.emitSessionMessage) {
1366
1408
  throw new Error("Session message emitter is required to archive worktrees");
1367
1409
  }
@@ -1375,7 +1417,9 @@ export async function createAgentMcpServer(options) {
1375
1417
  agentStorage,
1376
1418
  archiveWorkspaceRecord: options.archiveWorkspaceRecord,
1377
1419
  emit: options.emitSessionMessage,
1378
- emitWorkspaceUpdatesForCwds: options.emitWorkspaceUpdatesForCwds,
1420
+ emitWorkspaceUpdatesForWorkspaceIds: options.emitWorkspaceUpdatesForWorkspaceIds,
1421
+ markWorkspaceArchiving: options.markWorkspaceArchiving,
1422
+ clearWorkspaceArchiving: options.clearWorkspaceArchiving,
1379
1423
  isPathWithinRoot: isSameOrDescendantPath,
1380
1424
  killTerminalsUnderPath: (rootPath) => killTerminalsUnderPath({
1381
1425
  terminalManager: terminalManager ?? null,
@@ -1418,17 +1462,17 @@ export async function createAgentMcpServer(options) {
1418
1462
  });
1419
1463
  const timeline = agentManager.getTimeline(agentId);
1420
1464
  const snapshot = agentManager.getAgent(agentId);
1421
- const activitiesToCurate = limit ? timeline.slice(-limit) : timeline;
1422
- const curatedContent = curateAgentActivity(activitiesToCurate);
1423
- const totalCount = timeline.length;
1424
- const shownCount = activitiesToCurate.length;
1425
- let countHeader;
1426
- if (limit && shownCount < totalCount) {
1427
- countHeader = `Showing ${shownCount} of ${totalCount} ${totalCount === 1 ? "activity" : "activities"} (limited to ${limit})`;
1428
- }
1429
- else {
1430
- countHeader = `Showing all ${totalCount} ${totalCount === 1 ? "activity" : "activities"}`;
1431
- }
1465
+ const selection = selectItemsByProjectedLimit({
1466
+ items: timeline,
1467
+ direction: "tail",
1468
+ limit: limit ?? 0,
1469
+ });
1470
+ const curatedContent = curateAgentActivity(selection.items);
1471
+ const { totalProjected, shownProjected } = selection;
1472
+ const noun = totalProjected === 1 ? "activity" : "activities";
1473
+ const countHeader = limit && shownProjected < totalProjected
1474
+ ? `Showing ${shownProjected} of ${totalProjected} ${noun} (limited to ${limit})`
1475
+ : `Showing all ${totalProjected} ${noun}`;
1432
1476
  const contentWithCount = `${countHeader}\n\n${curatedContent}`;
1433
1477
  return {
1434
1478
  content: [],
@@ -1503,35 +1547,39 @@ export async function createAgentMcpServer(options) {
1503
1547
  });
1504
1548
  return server;
1505
1549
  }
1550
+ function mcpCreateWorktreeInput(repoRoot, target, paseoHome) {
1551
+ const base = { cwd: repoRoot, runSetup: false, paseoHome };
1552
+ switch (target.mode) {
1553
+ case "branch-off":
1554
+ return {
1555
+ input: {
1556
+ ...base,
1557
+ worktreeSlug: target.newBranch,
1558
+ action: "branch-off",
1559
+ ...(target.base ? { refName: target.base } : {}),
1560
+ },
1561
+ };
1562
+ case "checkout-branch":
1563
+ return {
1564
+ input: { ...base, action: "checkout", refName: target.branch },
1565
+ };
1566
+ case "checkout-pr":
1567
+ return {
1568
+ input: { ...base, action: "checkout", githubPrNumber: target.prNumber },
1569
+ };
1570
+ }
1571
+ }
1506
1572
  async function createMcpWorktree(options) {
1507
1573
  try {
1508
1574
  if (!options.createPaseoWorktree) {
1509
1575
  throw new Error("Paseo worktree service is not configured");
1510
1576
  }
1511
1577
  const result = await options.createPaseoWorktree(options.input, {
1512
- resolveDefaultBranch: options.resolveDefaultBranch,
1578
+ ...(options.resolveDefaultBranch
1579
+ ? { resolveDefaultBranch: options.resolveDefaultBranch }
1580
+ : {}),
1581
+ ...(options.setupContinuation ? { setupContinuation: options.setupContinuation } : {}),
1513
1582
  });
1514
- if (options.workspaceGitService) {
1515
- const refreshResults = await Promise.allSettled([
1516
- options.workspaceGitService.getSnapshot(options.input.cwd, {
1517
- force: true,
1518
- reason: "create-worktree",
1519
- }),
1520
- options.workspaceGitService.getSnapshot(result.worktree.worktreePath, {
1521
- force: true,
1522
- reason: "create-worktree",
1523
- }),
1524
- ]);
1525
- for (const [index, refreshResult] of refreshResults.entries()) {
1526
- if (refreshResult.status === "fulfilled") {
1527
- continue;
1528
- }
1529
- options.logger.warn({
1530
- err: refreshResult.reason,
1531
- cwd: index === 0 ? options.input.cwd : result.worktree.worktreePath,
1532
- }, "Failed to force-refresh workspace git snapshot after creating worktree");
1533
- }
1534
- }
1535
1583
  return result;
1536
1584
  }
1537
1585
  catch (error) {