@getpaseo/server 0.1.63 → 0.1.66

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 (265) hide show
  1. package/dist/server/client/daemon-client-transport-types.d.ts +2 -0
  2. package/dist/server/client/daemon-client-transport-types.d.ts.map +1 -1
  3. package/dist/server/client/daemon-client-websocket-transport.d.ts +2 -1
  4. package/dist/server/client/daemon-client-websocket-transport.d.ts.map +1 -1
  5. package/dist/server/client/daemon-client-websocket-transport.js +4 -4
  6. package/dist/server/client/daemon-client-websocket-transport.js.map +1 -1
  7. package/dist/server/client/daemon-client.d.ts +30 -20
  8. package/dist/server/client/daemon-client.d.ts.map +1 -1
  9. package/dist/server/client/daemon-client.js +206 -98
  10. package/dist/server/client/daemon-client.js.map +1 -1
  11. package/dist/server/client/terminal-stream-router.d.ts +24 -0
  12. package/dist/server/client/terminal-stream-router.d.ts.map +1 -0
  13. package/dist/server/client/terminal-stream-router.js +100 -0
  14. package/dist/server/client/terminal-stream-router.js.map +1 -0
  15. package/dist/server/server/agent/activity-curator.d.ts +6 -3
  16. package/dist/server/server/agent/activity-curator.d.ts.map +1 -1
  17. package/dist/server/server/agent/activity-curator.js +45 -138
  18. package/dist/server/server/agent/activity-curator.js.map +1 -1
  19. package/dist/server/server/agent/agent-manager.d.ts +3 -14
  20. package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
  21. package/dist/server/server/agent/agent-manager.js +75 -140
  22. package/dist/server/server/agent/agent-manager.js.map +1 -1
  23. package/dist/server/server/agent/agent-metadata-generator.d.ts +0 -5
  24. package/dist/server/server/agent/agent-metadata-generator.d.ts.map +1 -1
  25. package/dist/server/server/agent/agent-metadata-generator.js +3 -93
  26. package/dist/server/server/agent/agent-metadata-generator.js.map +1 -1
  27. package/dist/server/server/agent/agent-sdk-types.d.ts +15 -1
  28. package/dist/server/server/agent/agent-sdk-types.d.ts.map +1 -1
  29. package/dist/server/server/agent/agent-stream-coalescer.d.ts +1 -1
  30. package/dist/server/server/agent/agent-stream-coalescer.d.ts.map +1 -1
  31. package/dist/server/server/agent/agent-stream-coalescer.js +1 -1
  32. package/dist/server/server/agent/agent-stream-coalescer.js.map +1 -1
  33. package/dist/server/server/agent/agent-timeline-store.d.ts.map +1 -1
  34. package/dist/server/server/agent/agent-timeline-store.js +29 -32
  35. package/dist/server/server/agent/agent-timeline-store.js.map +1 -1
  36. package/dist/server/server/agent/foreground-run-state.d.ts +50 -0
  37. package/dist/server/server/agent/foreground-run-state.d.ts.map +1 -0
  38. package/dist/server/server/agent/foreground-run-state.js +162 -0
  39. package/dist/server/server/agent/foreground-run-state.js.map +1 -0
  40. package/dist/server/server/agent/mcp-server.d.ts +5 -3
  41. package/dist/server/server/agent/mcp-server.d.ts.map +1 -1
  42. package/dist/server/server/agent/mcp-server.js +110 -99
  43. package/dist/server/server/agent/mcp-server.js.map +1 -1
  44. package/dist/server/server/agent/mcp-shared.d.ts.map +1 -1
  45. package/dist/server/server/agent/mcp-shared.js +7 -1
  46. package/dist/server/server/agent/mcp-shared.js.map +1 -1
  47. package/dist/server/server/agent/prompt-attachments.d.ts +4 -3
  48. package/dist/server/server/agent/prompt-attachments.d.ts.map +1 -1
  49. package/dist/server/server/agent/prompt-attachments.js +43 -4
  50. package/dist/server/server/agent/prompt-attachments.js.map +1 -1
  51. package/dist/server/server/agent/provider-manifest.d.ts.map +1 -1
  52. package/dist/server/server/agent/provider-manifest.js +7 -0
  53. package/dist/server/server/agent/provider-manifest.js.map +1 -1
  54. package/dist/server/server/agent/providers/acp-agent.d.ts +38 -1
  55. package/dist/server/server/agent/providers/acp-agent.d.ts.map +1 -1
  56. package/dist/server/server/agent/providers/acp-agent.js +257 -140
  57. package/dist/server/server/agent/providers/acp-agent.js.map +1 -1
  58. package/dist/server/server/agent/providers/claude/sidechain-tracker.d.ts.map +1 -1
  59. package/dist/server/server/agent/providers/claude/sidechain-tracker.js +1 -1
  60. package/dist/server/server/agent/providers/claude/sidechain-tracker.js.map +1 -1
  61. package/dist/server/server/agent/providers/claude/tool-call-mapper.d.ts.map +1 -1
  62. package/dist/server/server/agent/providers/claude/tool-call-mapper.js +68 -198
  63. package/dist/server/server/agent/providers/claude/tool-call-mapper.js.map +1 -1
  64. package/dist/server/server/agent/providers/claude-agent.d.ts.map +1 -1
  65. package/dist/server/server/agent/providers/claude-agent.js +52 -102
  66. package/dist/server/server/agent/providers/claude-agent.js.map +1 -1
  67. package/dist/server/server/agent/providers/codex/tool-call-mapper.d.ts.map +1 -1
  68. package/dist/server/server/agent/providers/codex/tool-call-mapper.js +125 -141
  69. package/dist/server/server/agent/providers/codex/tool-call-mapper.js.map +1 -1
  70. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +36 -6
  71. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -1
  72. package/dist/server/server/agent/providers/codex-app-server-agent.js +374 -219
  73. package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
  74. package/dist/server/server/agent/providers/mock-load-test-agent.d.ts +6 -2
  75. package/dist/server/server/agent/providers/mock-load-test-agent.d.ts.map +1 -1
  76. package/dist/server/server/agent/providers/mock-load-test-agent.js +294 -113
  77. package/dist/server/server/agent/providers/mock-load-test-agent.js.map +1 -1
  78. package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.d.ts +1 -1
  79. package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.d.ts.map +1 -1
  80. package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.js +94 -2
  81. package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.js.map +1 -1
  82. package/dist/server/server/agent/providers/opencode/tool-call-mapper.d.ts.map +1 -1
  83. package/dist/server/server/agent/providers/opencode/tool-call-mapper.js +24 -115
  84. package/dist/server/server/agent/providers/opencode/tool-call-mapper.js.map +1 -1
  85. package/dist/server/server/agent/providers/opencode-agent.d.ts +102 -1
  86. package/dist/server/server/agent/providers/opencode-agent.d.ts.map +1 -1
  87. package/dist/server/server/agent/providers/opencode-agent.js +416 -158
  88. package/dist/server/server/agent/providers/opencode-agent.js.map +1 -1
  89. package/dist/server/server/agent/providers/provider-runner.d.ts +27 -0
  90. package/dist/server/server/agent/providers/provider-runner.d.ts.map +1 -0
  91. package/dist/server/server/agent/providers/provider-runner.js +80 -0
  92. package/dist/server/server/agent/providers/provider-runner.js.map +1 -0
  93. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts +6 -3
  94. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts.map +1 -1
  95. package/dist/server/server/agent/providers/tool-call-mapper-utils.d.ts +2 -0
  96. package/dist/server/server/agent/providers/tool-call-mapper-utils.d.ts.map +1 -1
  97. package/dist/server/server/agent/providers/tool-call-mapper-utils.js +31 -0
  98. package/dist/server/server/agent/providers/tool-call-mapper-utils.js.map +1 -1
  99. package/dist/server/server/agent/timeline-projection.d.ts +21 -5
  100. package/dist/server/server/agent/timeline-projection.d.ts.map +1 -1
  101. package/dist/server/server/agent/timeline-projection.js +59 -9
  102. package/dist/server/server/agent/timeline-projection.js.map +1 -1
  103. package/dist/server/server/auth.d.ts +25 -0
  104. package/dist/server/server/auth.d.ts.map +1 -0
  105. package/dist/server/server/auth.js +93 -0
  106. package/dist/server/server/auth.js.map +1 -0
  107. package/dist/server/server/bootstrap.d.ts +3 -1
  108. package/dist/server/server/bootstrap.d.ts.map +1 -1
  109. package/dist/server/server/bootstrap.js +87 -30
  110. package/dist/server/server/bootstrap.js.map +1 -1
  111. package/dist/server/server/config.d.ts.map +1 -1
  112. package/dist/server/server/config.js +11 -0
  113. package/dist/server/server/config.js.map +1 -1
  114. package/dist/server/server/exports.d.ts +7 -1
  115. package/dist/server/server/exports.d.ts.map +1 -1
  116. package/dist/server/server/exports.js +6 -1
  117. package/dist/server/server/exports.js.map +1 -1
  118. package/dist/server/server/file-explorer/service.d.ts +10 -0
  119. package/dist/server/server/file-explorer/service.d.ts.map +1 -1
  120. package/dist/server/server/file-explorer/service.js +38 -4
  121. package/dist/server/server/file-explorer/service.js.map +1 -1
  122. package/dist/server/server/index.js +9 -6
  123. package/dist/server/server/index.js.map +1 -1
  124. package/dist/server/server/logger.d.ts.map +1 -1
  125. package/dist/server/server/logger.js +15 -1
  126. package/dist/server/server/logger.js.map +1 -1
  127. package/dist/server/server/pagination/cursor.d.ts +16 -0
  128. package/dist/server/server/pagination/cursor.d.ts.map +1 -0
  129. package/dist/server/server/pagination/cursor.js +62 -0
  130. package/dist/server/server/pagination/cursor.js.map +1 -0
  131. package/dist/server/server/pagination/sortable-pager.d.ts +24 -0
  132. package/dist/server/server/pagination/sortable-pager.d.ts.map +1 -0
  133. package/dist/server/server/pagination/sortable-pager.js +68 -0
  134. package/dist/server/server/pagination/sortable-pager.js.map +1 -0
  135. package/dist/server/server/paseo-worktree-archive-service.d.ts +3 -1
  136. package/dist/server/server/paseo-worktree-archive-service.d.ts.map +1 -1
  137. package/dist/server/server/paseo-worktree-archive-service.js +61 -53
  138. package/dist/server/server/paseo-worktree-archive-service.js.map +1 -1
  139. package/dist/server/server/paseo-worktree-service.d.ts +13 -0
  140. package/dist/server/server/paseo-worktree-service.d.ts.map +1 -1
  141. package/dist/server/server/paseo-worktree-service.js +72 -3
  142. package/dist/server/server/paseo-worktree-service.js.map +1 -1
  143. package/dist/server/server/persisted-config.d.ts +25 -0
  144. package/dist/server/server/persisted-config.d.ts.map +1 -1
  145. package/dist/server/server/persisted-config.js +9 -0
  146. package/dist/server/server/persisted-config.js.map +1 -1
  147. package/dist/server/server/relay-transport.d.ts.map +1 -1
  148. package/dist/server/server/relay-transport.js +16 -4
  149. package/dist/server/server/relay-transport.js.map +1 -1
  150. package/dist/server/server/resolve-worktree-creation-intent.d.ts +0 -10
  151. package/dist/server/server/resolve-worktree-creation-intent.d.ts.map +1 -1
  152. package/dist/server/server/resolve-worktree-creation-intent.js +1 -45
  153. package/dist/server/server/resolve-worktree-creation-intent.js.map +1 -1
  154. package/dist/server/server/script-status-projection.d.ts +6 -1
  155. package/dist/server/server/script-status-projection.d.ts.map +1 -1
  156. package/dist/server/server/script-status-projection.js +12 -3
  157. package/dist/server/server/script-status-projection.js.map +1 -1
  158. package/dist/server/server/session.d.ts +19 -51
  159. package/dist/server/server/session.d.ts.map +1 -1
  160. package/dist/server/server/session.js +354 -1069
  161. package/dist/server/server/session.js.map +1 -1
  162. package/dist/server/server/websocket-server.d.ts +4 -2
  163. package/dist/server/server/websocket-server.d.ts.map +1 -1
  164. package/dist/server/server/websocket-server.js +65 -12
  165. package/dist/server/server/websocket-server.js.map +1 -1
  166. package/dist/server/server/workspace-directory.d.ts +69 -0
  167. package/dist/server/server/workspace-directory.d.ts.map +1 -0
  168. package/dist/server/server/workspace-directory.js +229 -0
  169. package/dist/server/server/workspace-directory.js.map +1 -0
  170. package/dist/server/server/worktree-bootstrap.d.ts.map +1 -1
  171. package/dist/server/server/worktree-bootstrap.js +6 -2
  172. package/dist/server/server/worktree-bootstrap.js.map +1 -1
  173. package/dist/server/server/worktree-core.d.ts +2 -0
  174. package/dist/server/server/worktree-core.d.ts.map +1 -1
  175. package/dist/server/server/worktree-core.js.map +1 -1
  176. package/dist/server/server/worktree-errors.d.ts +1 -1
  177. package/dist/server/server/worktree-errors.d.ts.map +1 -1
  178. package/dist/server/server/worktree-errors.js +1 -4
  179. package/dist/server/server/worktree-errors.js.map +1 -1
  180. package/dist/server/server/worktree-session.d.ts +47 -20
  181. package/dist/server/server/worktree-session.d.ts.map +1 -1
  182. package/dist/server/server/worktree-session.js +68 -25
  183. package/dist/server/server/worktree-session.js.map +1 -1
  184. package/dist/server/shared/binary-frames/file-transfer.d.ts +56 -0
  185. package/dist/server/shared/binary-frames/file-transfer.d.ts.map +1 -0
  186. package/dist/server/shared/binary-frames/file-transfer.js +108 -0
  187. package/dist/server/shared/binary-frames/file-transfer.js.map +1 -0
  188. package/dist/server/shared/binary-frames/index.d.ts +3 -0
  189. package/dist/server/shared/binary-frames/index.d.ts.map +1 -0
  190. package/dist/server/shared/binary-frames/index.js +3 -0
  191. package/dist/server/shared/binary-frames/index.js.map +1 -0
  192. package/dist/server/shared/{terminal-stream-protocol.d.ts → binary-frames/terminal.d.ts} +2 -2
  193. package/dist/server/shared/binary-frames/terminal.d.ts.map +1 -0
  194. package/dist/server/shared/{terminal-stream-protocol.js → binary-frames/terminal.js} +2 -2
  195. package/dist/server/shared/binary-frames/terminal.js.map +1 -0
  196. package/dist/server/shared/client-capabilities.d.ts +5 -0
  197. package/dist/server/shared/client-capabilities.d.ts.map +1 -0
  198. package/dist/server/shared/client-capabilities.js +4 -0
  199. package/dist/server/shared/client-capabilities.js.map +1 -0
  200. package/dist/server/shared/connection-offer.d.ts +8 -0
  201. package/dist/server/shared/connection-offer.d.ts.map +1 -1
  202. package/dist/server/shared/connection-offer.js +35 -0
  203. package/dist/server/shared/connection-offer.js.map +1 -1
  204. package/dist/server/shared/daemon-endpoints.d.ts +16 -1
  205. package/dist/server/shared/daemon-endpoints.d.ts.map +1 -1
  206. package/dist/server/shared/daemon-endpoints.js +65 -6
  207. package/dist/server/shared/daemon-endpoints.js.map +1 -1
  208. package/dist/server/shared/host-connection-schema.d.ts +23 -0
  209. package/dist/server/shared/host-connection-schema.d.ts.map +1 -0
  210. package/dist/server/shared/host-connection-schema.js +9 -0
  211. package/dist/server/shared/host-connection-schema.js.map +1 -0
  212. package/dist/server/shared/messages.d.ts +3242 -535
  213. package/dist/server/shared/messages.d.ts.map +1 -1
  214. package/dist/server/shared/messages.js +73 -34
  215. package/dist/server/shared/messages.js.map +1 -1
  216. package/dist/server/terminal/terminal-manager-factory.d.ts +7 -0
  217. package/dist/server/terminal/terminal-manager-factory.d.ts.map +1 -0
  218. package/dist/server/terminal/terminal-manager-factory.js +13 -0
  219. package/dist/server/terminal/terminal-manager-factory.js.map +1 -0
  220. package/dist/server/terminal/terminal-manager.d.ts +7 -1
  221. package/dist/server/terminal/terminal-manager.d.ts.map +1 -1
  222. package/dist/server/terminal/terminal-manager.js +14 -1
  223. package/dist/server/terminal/terminal-manager.js.map +1 -1
  224. package/dist/server/terminal/terminal-session-controller.d.ts +63 -0
  225. package/dist/server/terminal/terminal-session-controller.d.ts.map +1 -0
  226. package/dist/server/terminal/terminal-session-controller.js +615 -0
  227. package/dist/server/terminal/terminal-session-controller.js.map +1 -0
  228. package/dist/server/terminal/terminal-ts-loader.mjs +20 -0
  229. package/dist/server/terminal/terminal-worker-process.d.ts +2 -0
  230. package/dist/server/terminal/terminal-worker-process.d.ts.map +1 -0
  231. package/dist/server/terminal/terminal-worker-process.js +221 -0
  232. package/dist/server/terminal/terminal-worker-process.js.map +1 -0
  233. package/dist/server/terminal/terminal-worker-protocol.d.ts +113 -0
  234. package/dist/server/terminal/terminal-worker-protocol.d.ts.map +1 -0
  235. package/dist/server/terminal/terminal-worker-protocol.js +2 -0
  236. package/dist/server/terminal/terminal-worker-protocol.js.map +1 -0
  237. package/dist/server/terminal/terminal.d.ts +7 -0
  238. package/dist/server/terminal/terminal.d.ts.map +1 -1
  239. package/dist/server/terminal/terminal.js +45 -9
  240. package/dist/server/terminal/terminal.js.map +1 -1
  241. package/dist/server/terminal/worker-terminal-manager.d.ts +19 -0
  242. package/dist/server/terminal/worker-terminal-manager.d.ts.map +1 -0
  243. package/dist/server/terminal/worker-terminal-manager.js +466 -0
  244. package/dist/server/terminal/worker-terminal-manager.js.map +1 -0
  245. package/dist/server/utils/directory-suggestions.d.ts.map +1 -1
  246. package/dist/server/utils/directory-suggestions.js +10 -1
  247. package/dist/server/utils/directory-suggestions.js.map +1 -1
  248. package/dist/server/utils/process-tree.d.ts +25 -0
  249. package/dist/server/utils/process-tree.d.ts.map +1 -0
  250. package/dist/server/utils/process-tree.js +96 -0
  251. package/dist/server/utils/process-tree.js.map +1 -0
  252. package/dist/server/utils/windows-command.d.ts.map +1 -1
  253. package/dist/server/utils/windows-command.js +5 -1
  254. package/dist/server/utils/windows-command.js.map +1 -1
  255. package/dist/server/utils/worktree-metadata.d.ts +44 -0
  256. package/dist/server/utils/worktree-metadata.d.ts.map +1 -1
  257. package/dist/server/utils/worktree-metadata.js +58 -0
  258. package/dist/server/utils/worktree-metadata.js.map +1 -1
  259. package/dist/server/utils/worktree.d.ts +14 -2
  260. package/dist/server/utils/worktree.d.ts.map +1 -1
  261. package/dist/server/utils/worktree.js +22 -13
  262. package/dist/server/utils/worktree.js.map +1 -1
  263. package/package.json +5 -4
  264. package/dist/server/shared/terminal-stream-protocol.d.ts.map +0 -1
  265. package/dist/server/shared/terminal-stream-protocol.js.map +0 -1
@@ -13,176 +13,53 @@ const ClaudeRawToolCallSchema = z
13
13
  status: ClaudeToolCallStatusSchema,
14
14
  })
15
15
  .passthrough();
16
- const ClaudeToolCallPass1Schema = ClaudeRawToolCallSchema.transform((raw) => ({
17
- callId: typeof raw.callId === "string" && raw.callId.trim().length > 0 ? raw.callId : null,
18
- name: raw.name.trim(),
19
- input: raw.input ?? null,
20
- output: raw.output ?? null,
21
- metadata: raw.metadata,
22
- error: raw.error ?? null,
23
- status: raw.status,
24
- }));
25
- const ClaudeShellToolNameSchema = z.union([
26
- z.literal("Bash"),
27
- z.literal("bash"),
28
- z.literal("shell"),
29
- z.literal("exec_command"),
30
- ]);
31
- const ClaudeReadToolNameSchema = z.union([
32
- z.literal("Read"),
33
- z.literal("read"),
34
- z.literal("read_file"),
35
- z.literal("view_file"),
36
- ]);
37
- const ClaudeWriteToolNameSchema = z.union([
38
- z.literal("Write"),
39
- z.literal("write"),
40
- z.literal("write_file"),
41
- z.literal("create_file"),
42
- ]);
43
- const ClaudeEditToolNameSchema = z.union([
44
- z.literal("Edit"),
45
- z.literal("MultiEdit"),
46
- z.literal("multi_edit"),
47
- z.literal("edit"),
48
- z.literal("apply_patch"),
49
- z.literal("apply_diff"),
50
- z.literal("str_replace_editor"),
51
- ]);
52
- const ClaudeSearchToolNameSchema = z.union([
53
- z.literal("WebSearch"),
54
- z.literal("web_search"),
55
- z.literal("search"),
56
- z.literal("Grep"),
57
- z.literal("grep"),
58
- z.literal("Glob"),
59
- z.literal("glob"),
60
- ]);
61
- const ClaudeFetchToolNameSchema = z.union([
62
- z.literal("WebFetch"),
63
- z.literal("web_fetch"),
64
- z.literal("WebFetchTool"),
65
- z.literal("web_fetch_tool"),
66
- z.literal("webfetch"),
67
- ]);
68
- const ClaudeSpeakToolNameSchema = z
69
- .string()
70
- .min(1)
71
- .refine((name) => isSpeakToolName(name.trim()));
72
- const ClaudeToolKindSchema = z.enum([
73
- "shell",
74
- "read",
75
- "write",
16
+ const SHELL_NAMES = new Set(["Bash", "bash", "shell", "exec_command"]);
17
+ const READ_NAMES = new Set(["Read", "read", "read_file", "view_file"]);
18
+ const WRITE_NAMES = new Set(["Write", "write", "write_file", "create_file"]);
19
+ const EDIT_NAMES = new Set([
20
+ "Edit",
21
+ "MultiEdit",
22
+ "multi_edit",
76
23
  "edit",
77
- "search",
78
- "fetch",
79
- "speak",
80
- "unknown",
24
+ "apply_patch",
25
+ "apply_diff",
26
+ "str_replace_editor",
81
27
  ]);
82
- const ClaudeToolCallPass2BaseSchema = z.object({
83
- callId: z.string().min(1),
84
- name: z.string().min(1),
85
- input: z.unknown().nullable(),
86
- output: z.unknown().nullable(),
87
- metadata: z.record(z.string(), z.unknown()).optional(),
88
- error: z.unknown().nullable(),
89
- status: ClaudeToolCallStatusSchema,
90
- toolKind: ClaudeToolKindSchema,
91
- });
92
- const ClaudeToolCallPass2InputSchema = ClaudeToolCallPass2BaseSchema.omit({
93
- toolKind: true,
94
- });
95
- const ClaudeToolCallPass2EnvelopeSchema = z.union([
96
- ClaudeToolCallPass2InputSchema.extend({
97
- name: ClaudeShellToolNameSchema,
98
- }).transform((normalized) => ({
99
- ...normalized,
100
- name: normalized.name.trim(),
101
- toolKind: "shell",
102
- })),
103
- ClaudeToolCallPass2InputSchema.extend({
104
- name: ClaudeReadToolNameSchema,
105
- }).transform((normalized) => ({
106
- ...normalized,
107
- name: normalized.name.trim(),
108
- toolKind: "read",
109
- })),
110
- ClaudeToolCallPass2InputSchema.extend({
111
- name: ClaudeWriteToolNameSchema,
112
- }).transform((normalized) => ({
113
- ...normalized,
114
- name: normalized.name.trim(),
115
- toolKind: "write",
116
- })),
117
- ClaudeToolCallPass2InputSchema.extend({
118
- name: ClaudeEditToolNameSchema,
119
- }).transform((normalized) => ({
120
- ...normalized,
121
- name: normalized.name.trim(),
122
- toolKind: "edit",
123
- })),
124
- ClaudeToolCallPass2InputSchema.extend({
125
- name: ClaudeSearchToolNameSchema,
126
- }).transform((normalized) => ({
127
- ...normalized,
128
- name: normalized.name.trim(),
129
- toolKind: "search",
130
- })),
131
- ClaudeToolCallPass2InputSchema.extend({
132
- name: ClaudeFetchToolNameSchema,
133
- }).transform((normalized) => ({
134
- ...normalized,
135
- name: normalized.name.trim(),
136
- toolKind: "fetch",
137
- })),
138
- ClaudeToolCallPass2InputSchema.extend({
139
- name: ClaudeSpeakToolNameSchema,
140
- }).transform((normalized) => ({
141
- ...normalized,
142
- name: "speak",
143
- toolKind: "speak",
144
- })),
145
- ClaudeToolCallPass2InputSchema.transform((normalized) => ({
146
- ...normalized,
147
- name: normalized.name.trim(),
148
- toolKind: "unknown",
149
- })),
28
+ const SEARCH_NAMES = new Set([
29
+ "WebSearch",
30
+ "web_search",
31
+ "search",
32
+ "Grep",
33
+ "grep",
34
+ "Glob",
35
+ "glob",
150
36
  ]);
151
- const ClaudeToolCallPass2Schema = z.discriminatedUnion("toolKind", [
152
- ClaudeToolCallPass2BaseSchema.extend({
153
- toolKind: z.literal("shell"),
154
- name: ClaudeShellToolNameSchema,
155
- }),
156
- ClaudeToolCallPass2BaseSchema.extend({
157
- toolKind: z.literal("read"),
158
- name: ClaudeReadToolNameSchema,
159
- }),
160
- ClaudeToolCallPass2BaseSchema.extend({
161
- toolKind: z.literal("write"),
162
- name: ClaudeWriteToolNameSchema,
163
- }),
164
- ClaudeToolCallPass2BaseSchema.extend({
165
- toolKind: z.literal("edit"),
166
- name: ClaudeEditToolNameSchema,
167
- }),
168
- ClaudeToolCallPass2BaseSchema.extend({
169
- toolKind: z.literal("search"),
170
- name: ClaudeSearchToolNameSchema,
171
- }),
172
- ClaudeToolCallPass2BaseSchema.extend({
173
- toolKind: z.literal("fetch"),
174
- name: ClaudeFetchToolNameSchema,
175
- }),
176
- ClaudeToolCallPass2BaseSchema.extend({
177
- toolKind: z.literal("speak"),
178
- name: z.literal("speak"),
179
- }),
180
- ClaudeToolCallPass2BaseSchema.extend({
181
- toolKind: z.literal("unknown"),
182
- }),
37
+ const FETCH_NAMES = new Set([
38
+ "WebFetch",
39
+ "web_fetch",
40
+ "WebFetchTool",
41
+ "web_fetch_tool",
42
+ "webfetch",
183
43
  ]);
184
- function resolveDetailName(normalized) {
185
- switch (normalized.toolKind) {
44
+ function resolveClaudeToolKind(name) {
45
+ if (SHELL_NAMES.has(name))
46
+ return "shell";
47
+ if (READ_NAMES.has(name))
48
+ return "read";
49
+ if (WRITE_NAMES.has(name))
50
+ return "write";
51
+ if (EDIT_NAMES.has(name))
52
+ return "edit";
53
+ if (SEARCH_NAMES.has(name))
54
+ return "search";
55
+ if (FETCH_NAMES.has(name))
56
+ return "fetch";
57
+ if (isSpeakToolName(name))
58
+ return "speak";
59
+ return "unknown";
60
+ }
61
+ function resolveDetailName(toolKind, name) {
62
+ switch (toolKind) {
186
63
  case "shell":
187
64
  return "shell";
188
65
  case "read":
@@ -193,57 +70,50 @@ function resolveDetailName(normalized) {
193
70
  return "apply_patch";
194
71
  case "search":
195
72
  case "fetch":
196
- return normalized.name;
73
+ return name;
197
74
  case "speak":
198
75
  return "speak";
199
76
  default:
200
- return normalized.name;
77
+ return name;
201
78
  }
202
79
  }
203
- function toToolCallTimelineItem(normalized) {
204
- const name = normalized.toolKind === "speak" ? "speak" : normalized.name;
205
- const detailName = resolveDetailName(normalized);
206
- const detail = deriveClaudeToolDetail(detailName, normalized.input, normalized.output);
207
- if (normalized.status === "failed") {
80
+ function mapClaudeToolCall(params, status, error) {
81
+ const parsed = ClaudeRawToolCallSchema.safeParse({ ...params, status, error });
82
+ if (!parsed.success) {
83
+ return null;
84
+ }
85
+ const raw = parsed.data;
86
+ const callId = typeof raw.callId === "string" && raw.callId.trim().length > 0 ? raw.callId : null;
87
+ if (callId === null) {
88
+ return null;
89
+ }
90
+ const trimmedName = raw.name.trim();
91
+ const toolKind = resolveClaudeToolKind(trimmedName);
92
+ const name = toolKind === "speak" ? "speak" : trimmedName;
93
+ const input = raw.input ?? null;
94
+ const output = raw.output ?? null;
95
+ const detail = deriveClaudeToolDetail(resolveDetailName(toolKind, name), input, output);
96
+ if (raw.status === "failed") {
208
97
  return {
209
98
  type: "tool_call",
210
- callId: normalized.callId,
99
+ callId,
211
100
  name,
212
101
  detail,
213
102
  status: "failed",
214
- error: normalized.error ?? { message: "Tool call failed" },
215
- ...(normalized.metadata ? { metadata: normalized.metadata } : {}),
103
+ error: raw.error ?? { message: "Tool call failed" },
104
+ ...(raw.metadata ? { metadata: raw.metadata } : {}),
216
105
  };
217
106
  }
218
107
  return {
219
108
  type: "tool_call",
220
- callId: normalized.callId,
109
+ callId,
221
110
  name,
222
111
  detail,
223
- status: normalized.status,
112
+ status: raw.status,
224
113
  error: null,
225
- ...(normalized.metadata ? { metadata: normalized.metadata } : {}),
114
+ ...(raw.metadata ? { metadata: raw.metadata } : {}),
226
115
  };
227
116
  }
228
- function mapClaudeToolCall(params, status, error) {
229
- const pass1 = ClaudeToolCallPass1Schema.safeParse({
230
- ...params,
231
- status,
232
- error,
233
- });
234
- if (!pass1.success) {
235
- return null;
236
- }
237
- const pass2Envelope = ClaudeToolCallPass2EnvelopeSchema.safeParse(pass1.data);
238
- if (!pass2Envelope.success) {
239
- return null;
240
- }
241
- const pass2 = ClaudeToolCallPass2Schema.safeParse(pass2Envelope.data);
242
- if (!pass2.success) {
243
- return null;
244
- }
245
- return toToolCallTimelineItem(pass2.data);
246
- }
247
117
  export function mapClaudeRunningToolCall(params) {
248
118
  return mapClaudeToolCall(params, "running", null);
249
119
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tool-call-mapper.js","sourceRoot":"","sources":["../../../../../../src/server/agent/providers/claude/tool-call-mapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-call-mapper.js","sourceRoot":"","sources":["../../../../../../src/server/agent/providers/claude/tool-call-mapper.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"claude-agent.d.ts","sourceRoot":"","sources":["../../../../../src/server/agent/providers/claude-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-agent.d.ts","sourceRoot":"","sources":["../../../../../src/server/agent/providers/claude-agent.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ import { getClaudeModels, normalizeClaudeRuntimeModelId } from "./claude/claude-
10
10
  import { parsePartialJsonObject } from "./claude/partial-json.js";
11
11
  import { ClaudeSidechainTracker } from "./claude/sidechain-tracker.js";
12
12
  import { formatDiagnosticStatus, formatProviderDiagnostic, formatProviderDiagnosticError, toDiagnosticErrorMessage, } from "./diagnostic-utils.js";
13
+ import { appendOrReplaceGrowingAssistantMessage, runProviderTurn } from "./provider-runner.js";
13
14
  import { renderPromptAttachmentAsText } from "../prompt-attachments.js";
14
15
  import { createProviderEnv, createProviderEnvSpec, } from "../provider-launch-config.js";
15
16
  import { findExecutable, isCommandAvailable } from "../../../utils/executable.js";
@@ -1219,77 +1220,14 @@ class ClaudeAgentSession {
1219
1220
  return { ...info };
1220
1221
  }
1221
1222
  async run(prompt, options) {
1222
- const timeline = [];
1223
- let finalText = "";
1224
- let usage;
1225
- let turnId = null;
1226
- const bufferedEvents = [];
1227
- let settled = false;
1228
- let resolveCompletion;
1229
- let rejectCompletion;
1230
- const processEvent = (event) => {
1231
- if (settled) {
1232
- return;
1233
- }
1234
- const eventTurnId = event.turnId;
1235
- if (turnId && eventTurnId && eventTurnId !== turnId) {
1236
- return;
1237
- }
1238
- if (event.type === "timeline") {
1239
- timeline.push(event.item);
1240
- if (event.item.type === "assistant_message") {
1241
- if (!finalText) {
1242
- finalText = event.item.text;
1243
- }
1244
- else if (event.item.text.startsWith(finalText)) {
1245
- finalText = event.item.text;
1246
- }
1247
- else {
1248
- finalText += event.item.text;
1249
- }
1250
- }
1251
- return;
1252
- }
1253
- if (event.type === "turn_completed") {
1254
- usage = event.usage;
1255
- settled = true;
1256
- resolveCompletion();
1257
- return;
1258
- }
1259
- if (event.type === "turn_failed") {
1260
- settled = true;
1261
- rejectCompletion(new Error(event.error));
1262
- return;
1263
- }
1264
- if (event.type === "turn_canceled") {
1265
- settled = true;
1266
- resolveCompletion();
1267
- }
1268
- };
1269
- const completion = new Promise((resolve, reject) => {
1270
- resolveCompletion = resolve;
1271
- rejectCompletion = reject;
1223
+ const result = await runProviderTurn({
1224
+ prompt,
1225
+ runOptions: options,
1226
+ startTurn: (p, o) => this.startTurn(p, o),
1227
+ subscribe: (callback) => this.subscribe(callback),
1228
+ getSessionId: () => this.claudeSessionId ?? "",
1229
+ reduceFinalText: appendOrReplaceGrowingAssistantMessage,
1272
1230
  });
1273
- const unsubscribe = this.subscribe((event) => {
1274
- if (!turnId) {
1275
- bufferedEvents.push(event);
1276
- return;
1277
- }
1278
- processEvent(event);
1279
- });
1280
- try {
1281
- const result = await this.startTurn(prompt, options);
1282
- turnId = result.turnId;
1283
- for (const event of bufferedEvents) {
1284
- processEvent(event);
1285
- }
1286
- if (!settled) {
1287
- await completion;
1288
- }
1289
- }
1290
- finally {
1291
- unsubscribe();
1292
- }
1293
1231
  this.cachedRuntimeInfo = {
1294
1232
  provider: "claude",
1295
1233
  sessionId: this.claudeSessionId,
@@ -1299,12 +1237,7 @@ class ClaudeAgentSession {
1299
1237
  if (!this.claudeSessionId) {
1300
1238
  throw new Error("Session ID not set after run completed");
1301
1239
  }
1302
- return {
1303
- sessionId: this.claudeSessionId,
1304
- finalText,
1305
- usage,
1306
- timeline,
1307
- };
1240
+ return result;
1308
1241
  }
1309
1242
  async startTurn(prompt, _options) {
1310
1243
  if (this.closed) {
@@ -1748,9 +1681,6 @@ class ClaudeAgentSession {
1748
1681
  this.input = null;
1749
1682
  this.queryPumpPromise = null;
1750
1683
  this.queryRestartNeeded = false;
1751
- // Reset session identity for explicit restarts so the new query starts
1752
- // a fresh session rather than resuming the previous one.
1753
- this.claudeSessionId = null;
1754
1684
  oldInput?.end();
1755
1685
  oldQuery.close?.();
1756
1686
  try {
@@ -1760,10 +1690,8 @@ class ClaudeAgentSession {
1760
1690
  /* ignore */
1761
1691
  }
1762
1692
  }
1763
- // When the pump died unexpectedly (query became null, e.g. after a session
1764
- // ID overwrite error), preserve claudeSessionId so buildOptions() passes
1765
- // resume: sessionId and the new query auto-resumes the previous session.
1766
- // For explicit restarts above, claudeSessionId was already cleared.
1693
+ // Preserve claudeSessionId across query recreation so buildOptions() passes
1694
+ // resume: sessionId and the new query continues the existing conversation.
1767
1695
  this.persistence = null;
1768
1696
  const input = createAsyncMessageInput();
1769
1697
  const options = await this.buildOptions();
@@ -1913,11 +1841,8 @@ class ClaudeAgentSession {
1913
1841
  },
1914
1842
  });
1915
1843
  }
1916
- else if (chunk.type === "github_pr" || chunk.type === "github_issue") {
1917
- content.push({
1918
- type: "text",
1919
- text: renderPromptAttachmentAsText(chunk),
1920
- });
1844
+ else {
1845
+ content.push({ type: "text", text: renderPromptAttachmentAsText(chunk) });
1921
1846
  }
1922
1847
  }
1923
1848
  }
@@ -2317,7 +2242,6 @@ class ClaudeAgentSession {
2317
2242
  this.query = null;
2318
2243
  this.input = null;
2319
2244
  }
2320
- this.claudeSessionId = null;
2321
2245
  this.persistence = null;
2322
2246
  this.persistedHistory = [];
2323
2247
  this.historyPending = false;
@@ -2350,12 +2274,19 @@ class ClaudeAgentSession {
2350
2274
  return this.sidechainTracker.handleMessage(message, parentToolUseId);
2351
2275
  }
2352
2276
  const events = [];
2353
- const fallbackThreadSessionId = this.captureSessionIdFromMessage(message);
2354
- if (fallbackThreadSessionId) {
2277
+ const sessionCapture = this.captureSessionIdFromMessage(message);
2278
+ if (sessionCapture.notice) {
2279
+ events.push({
2280
+ type: "timeline",
2281
+ provider: "claude",
2282
+ item: sessionCapture.notice,
2283
+ });
2284
+ }
2285
+ if (sessionCapture.threadStartedSessionId) {
2355
2286
  events.push({
2356
2287
  type: "thread_started",
2357
2288
  provider: "claude",
2358
- sessionId: fallbackThreadSessionId,
2289
+ sessionId: sessionCapture.threadStartedSessionId,
2359
2290
  });
2360
2291
  }
2361
2292
  switch (message.type) {
@@ -2388,12 +2319,19 @@ class ClaudeAgentSession {
2388
2319
  }
2389
2320
  appendSystemMessageEvents(message, events) {
2390
2321
  if (message.subtype === "init") {
2391
- const threadSessionId = this.handleSystemMessage(message);
2392
- if (threadSessionId) {
2322
+ const sessionUpdate = this.handleSystemMessage(message);
2323
+ if (sessionUpdate.notice) {
2324
+ events.push({
2325
+ type: "timeline",
2326
+ provider: "claude",
2327
+ item: sessionUpdate.notice,
2328
+ });
2329
+ }
2330
+ if (sessionUpdate.threadStartedSessionId) {
2393
2331
  events.push({
2394
2332
  type: "thread_started",
2395
2333
  provider: "claude",
2396
- sessionId: threadSessionId,
2334
+ sessionId: sessionUpdate.threadStartedSessionId,
2397
2335
  });
2398
2336
  }
2399
2337
  return;
@@ -2529,39 +2467,50 @@ class ClaudeAgentSession {
2529
2467
  : "Claude run failed";
2530
2468
  events.push(this.buildTurnFailedEvent(errorMessage));
2531
2469
  }
2470
+ createClaudeSessionChangedNotice(oldSessionId, newSessionId) {
2471
+ return {
2472
+ type: "assistant_message",
2473
+ text: `Claude switched to a new session: ${oldSessionId} -> ${newSessionId}`,
2474
+ };
2475
+ }
2532
2476
  captureSessionIdFromMessage(message) {
2533
2477
  const msg = message;
2534
2478
  const sessionId = extractSessionIdRaw(msg).trim();
2535
2479
  if (!sessionId) {
2536
- return null;
2480
+ return { threadStartedSessionId: null, notice: null };
2537
2481
  }
2538
2482
  if (this.claudeSessionId === null) {
2539
2483
  this.claudeSessionId = sessionId;
2540
2484
  this.persistence = null;
2541
- return sessionId;
2485
+ return { threadStartedSessionId: sessionId, notice: null };
2542
2486
  }
2543
2487
  if (this.claudeSessionId === sessionId) {
2544
- return null;
2488
+ return { threadStartedSessionId: null, notice: null };
2545
2489
  }
2490
+ const oldSessionId = this.claudeSessionId;
2546
2491
  // Session ID changed mid-stream (e.g. a hook caused Claude to restart
2547
2492
  // with a new session). Accept the new ID and continue — the turn should
2548
2493
  // not be failed just because the underlying subprocess cycled.
2549
2494
  this.logger.warn({ existingSessionId: this.claudeSessionId, newSessionId: sessionId }, "Claude session ID changed in message; accepting new session");
2550
2495
  this.claudeSessionId = sessionId;
2551
2496
  this.persistence = null;
2552
- return sessionId;
2497
+ return {
2498
+ threadStartedSessionId: sessionId,
2499
+ notice: this.createClaudeSessionChangedNotice(oldSessionId, sessionId),
2500
+ };
2553
2501
  }
2554
2502
  handleSystemMessage(message) {
2555
2503
  if (message.subtype !== "init") {
2556
- return null;
2504
+ return { threadStartedSessionId: null, notice: null };
2557
2505
  }
2558
2506
  const msg = message;
2559
2507
  const newSessionId = extractSessionIdRaw(msg).trim();
2560
2508
  if (!newSessionId) {
2561
- return null;
2509
+ return { threadStartedSessionId: null, notice: null };
2562
2510
  }
2563
2511
  const existingSessionId = this.claudeSessionId;
2564
2512
  let threadStartedSessionId = null;
2513
+ let notice = null;
2565
2514
  if (existingSessionId === null) {
2566
2515
  this.claudeSessionId = newSessionId;
2567
2516
  threadStartedSessionId = newSessionId;
@@ -2576,6 +2525,7 @@ class ClaudeAgentSession {
2576
2525
  this.logger.warn({ existingSessionId, newSessionId }, "Claude session ID changed in init message; accepting new session");
2577
2526
  this.claudeSessionId = newSessionId;
2578
2527
  threadStartedSessionId = newSessionId;
2528
+ notice = this.createClaudeSessionChangedNotice(existingSessionId, newSessionId);
2579
2529
  }
2580
2530
  this.availableModes = DEFAULT_MODES;
2581
2531
  this.currentMode = message.permissionMode;
@@ -2595,7 +2545,7 @@ class ClaudeAgentSession {
2595
2545
  this.lastRuntimeModel = message.model;
2596
2546
  this.cachedRuntimeInfo = null;
2597
2547
  }
2598
- return threadStartedSessionId;
2548
+ return { threadStartedSessionId, notice };
2599
2549
  }
2600
2550
  readMissingResumedConversationError(message) {
2601
2551
  if (message.type !== "result" || message.subtype !== "error_during_execution") {