@seawork/server 1.0.22 → 2.0.2-rc.6

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 (349) hide show
  1. package/dist/scripts/supervisor-entrypoint.js +48 -8
  2. package/dist/scripts/supervisor-entrypoint.js.map +1 -1
  3. package/dist/scripts/supervisor-native-classifier.js +77 -5
  4. package/dist/scripts/supervisor-native-classifier.js.map +1 -1
  5. package/dist/scripts/supervisor-stdio-tail.js +27 -0
  6. package/dist/scripts/supervisor-stdio-tail.js.map +1 -0
  7. package/dist/scripts/supervisor.js +12 -0
  8. package/dist/scripts/supervisor.js.map +1 -1
  9. package/dist/server/client/daemon-client.d.ts +142 -2
  10. package/dist/server/client/daemon-client.d.ts.map +1 -1
  11. package/dist/server/client/daemon-client.js +384 -3
  12. package/dist/server/client/daemon-client.js.map +1 -1
  13. package/dist/server/server/agent/agent-manager.d.ts +55 -3
  14. package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
  15. package/dist/server/server/agent/agent-manager.js +324 -45
  16. package/dist/server/server/agent/agent-manager.js.map +1 -1
  17. package/dist/server/server/agent/agent-metadata-generator.d.ts +1 -0
  18. package/dist/server/server/agent/agent-metadata-generator.d.ts.map +1 -1
  19. package/dist/server/server/agent/agent-metadata-generator.js +8 -0
  20. package/dist/server/server/agent/agent-metadata-generator.js.map +1 -1
  21. package/dist/server/server/agent/agent-projections.js +7 -2
  22. package/dist/server/server/agent/agent-projections.js.map +1 -1
  23. package/dist/server/server/agent/agent-response-loop.d.ts +3 -1
  24. package/dist/server/server/agent/agent-response-loop.d.ts.map +1 -1
  25. package/dist/server/server/agent/agent-response-loop.js +33 -6
  26. package/dist/server/server/agent/agent-response-loop.js.map +1 -1
  27. package/dist/server/server/agent/agent-sdk-types.d.ts +43 -1
  28. package/dist/server/server/agent/agent-sdk-types.d.ts.map +1 -1
  29. package/dist/server/server/agent/claude-memory.d.ts +4 -0
  30. package/dist/server/server/agent/claude-memory.d.ts.map +1 -0
  31. package/dist/server/server/agent/claude-memory.js +97 -0
  32. package/dist/server/server/agent/claude-memory.js.map +1 -0
  33. package/dist/server/server/agent/mcp-server.d.ts.map +1 -1
  34. package/dist/server/server/agent/mcp-server.js +247 -0
  35. package/dist/server/server/agent/mcp-server.js.map +1 -1
  36. package/dist/server/server/agent/mcp-shared.d.ts +2 -0
  37. package/dist/server/server/agent/mcp-shared.d.ts.map +1 -1
  38. package/dist/server/server/agent/provider-launch-config.d.ts +6 -139
  39. package/dist/server/server/agent/provider-launch-config.d.ts.map +1 -1
  40. package/dist/server/server/agent/provider-launch-config.js +65 -33
  41. package/dist/server/server/agent/provider-launch-config.js.map +1 -1
  42. package/dist/server/server/agent/provider-manifest.d.ts +1 -0
  43. package/dist/server/server/agent/provider-manifest.d.ts.map +1 -1
  44. package/dist/server/server/agent/provider-manifest.js +36 -0
  45. package/dist/server/server/agent/provider-manifest.js.map +1 -1
  46. package/dist/server/server/agent/provider-registry.d.ts.map +1 -1
  47. package/dist/server/server/agent/provider-registry.js +4 -0
  48. package/dist/server/server/agent/provider-registry.js.map +1 -1
  49. package/dist/server/server/agent/provider-snapshot-manager.d.ts +3 -1
  50. package/dist/server/server/agent/provider-snapshot-manager.d.ts.map +1 -1
  51. package/dist/server/server/agent/provider-snapshot-manager.js +13 -0
  52. package/dist/server/server/agent/provider-snapshot-manager.js.map +1 -1
  53. package/dist/server/server/agent/providers/claude-agent.d.ts.map +1 -1
  54. package/dist/server/server/agent/providers/claude-agent.js +141 -27
  55. package/dist/server/server/agent/providers/claude-agent.js.map +1 -1
  56. package/dist/server/server/agent/providers/codex/tool-call-mapper.d.ts.map +1 -1
  57. package/dist/server/server/agent/providers/codex/tool-call-mapper.js +14 -1
  58. package/dist/server/server/agent/providers/codex/tool-call-mapper.js.map +1 -1
  59. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +132 -4
  60. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -1
  61. package/dist/server/server/agent/providers/codex-app-server-agent.js +2233 -163
  62. package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
  63. package/dist/server/server/agent/providers/codex-binary-resolver.d.ts +9 -0
  64. package/dist/server/server/agent/providers/codex-binary-resolver.d.ts.map +1 -1
  65. package/dist/server/server/agent/providers/codex-binary-resolver.js +35 -14
  66. package/dist/server/server/agent/providers/codex-binary-resolver.js.map +1 -1
  67. package/dist/server/server/agent/providers/codex-health-probe.js +1 -1
  68. package/dist/server/server/agent/providers/codex-health-probe.js.map +1 -1
  69. package/dist/server/server/agent/providers/deepseek/constants.d.ts +4 -0
  70. package/dist/server/server/agent/providers/deepseek/constants.d.ts.map +1 -0
  71. package/dist/server/server/agent/providers/deepseek/constants.js +11 -0
  72. package/dist/server/server/agent/providers/deepseek/constants.js.map +1 -0
  73. package/dist/server/server/agent/providers/deepseek/event-mapper.d.ts +21 -0
  74. package/dist/server/server/agent/providers/deepseek/event-mapper.d.ts.map +1 -0
  75. package/dist/server/server/agent/providers/deepseek/event-mapper.js +286 -0
  76. package/dist/server/server/agent/providers/deepseek/event-mapper.js.map +1 -0
  77. package/dist/server/server/agent/providers/deepseek/serve-client.d.ts +94 -0
  78. package/dist/server/server/agent/providers/deepseek/serve-client.d.ts.map +1 -0
  79. package/dist/server/server/agent/providers/deepseek/serve-client.js +142 -0
  80. package/dist/server/server/agent/providers/deepseek/serve-client.js.map +1 -0
  81. package/dist/server/server/agent/providers/deepseek/serve-process.d.ts +18 -0
  82. package/dist/server/server/agent/providers/deepseek/serve-process.d.ts.map +1 -0
  83. package/dist/server/server/agent/providers/deepseek/serve-process.js +93 -0
  84. package/dist/server/server/agent/providers/deepseek/serve-process.js.map +1 -0
  85. package/dist/server/server/agent/providers/deepseek-agent.d.ts +94 -0
  86. package/dist/server/server/agent/providers/deepseek-agent.d.ts.map +1 -0
  87. package/dist/server/server/agent/providers/deepseek-agent.js +811 -0
  88. package/dist/server/server/agent/providers/deepseek-agent.js.map +1 -0
  89. package/dist/server/server/agent/providers/gateway-telemetry.d.ts +9 -0
  90. package/dist/server/server/agent/providers/gateway-telemetry.d.ts.map +1 -0
  91. package/dist/server/server/agent/providers/gateway-telemetry.js +36 -0
  92. package/dist/server/server/agent/providers/gateway-telemetry.js.map +1 -0
  93. package/dist/server/server/agent/providers/seaagent/constants.d.ts +3 -0
  94. package/dist/server/server/agent/providers/seaagent/constants.d.ts.map +1 -0
  95. package/dist/server/server/agent/providers/seaagent/constants.js +3 -0
  96. package/dist/server/server/agent/providers/seaagent/constants.js.map +1 -0
  97. package/dist/server/server/agent/providers/seaagent/event-mapper.d.ts +3 -0
  98. package/dist/server/server/agent/providers/seaagent/event-mapper.d.ts.map +1 -0
  99. package/dist/server/server/agent/providers/seaagent/event-mapper.js +69 -0
  100. package/dist/server/server/agent/providers/seaagent/event-mapper.js.map +1 -0
  101. package/dist/server/server/agent/providers/seaagent/rpc-client.d.ts +23 -0
  102. package/dist/server/server/agent/providers/seaagent/rpc-client.d.ts.map +1 -0
  103. package/dist/server/server/agent/providers/seaagent/rpc-client.js +139 -0
  104. package/dist/server/server/agent/providers/seaagent/rpc-client.js.map +1 -0
  105. package/dist/server/server/agent/providers/seaagent/tool-call-mapper.d.ts +3 -0
  106. package/dist/server/server/agent/providers/seaagent/tool-call-mapper.d.ts.map +1 -0
  107. package/dist/server/server/agent/providers/seaagent/tool-call-mapper.js +38 -0
  108. package/dist/server/server/agent/providers/seaagent/tool-call-mapper.js.map +1 -0
  109. package/dist/server/server/agent/providers/seaagent-agent.d.ts +81 -0
  110. package/dist/server/server/agent/providers/seaagent-agent.d.ts.map +1 -0
  111. package/dist/server/server/agent/providers/seaagent-agent.js +502 -0
  112. package/dist/server/server/agent/providers/seaagent-agent.js.map +1 -0
  113. package/dist/server/server/agent/providers/seaagent-binary-resolver.d.ts +18 -0
  114. package/dist/server/server/agent/providers/seaagent-binary-resolver.d.ts.map +1 -0
  115. package/dist/server/server/agent/providers/seaagent-binary-resolver.js +46 -0
  116. package/dist/server/server/agent/providers/seaagent-binary-resolver.js.map +1 -0
  117. package/dist/server/server/agent/providers/seaagent-health-probe.d.ts +11 -0
  118. package/dist/server/server/agent/providers/seaagent-health-probe.d.ts.map +1 -0
  119. package/dist/server/server/agent/providers/seaagent-health-probe.js +49 -0
  120. package/dist/server/server/agent/providers/seaagent-health-probe.js.map +1 -0
  121. package/dist/server/server/agent/providers/seawork-models.d.ts +8 -0
  122. package/dist/server/server/agent/providers/seawork-models.d.ts.map +1 -1
  123. package/dist/server/server/agent/providers/seawork-models.js +118 -74
  124. package/dist/server/server/agent/providers/seawork-models.js.map +1 -1
  125. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts +2 -2
  126. package/dist/server/server/agent/timeline-projection.d.ts +5 -1
  127. package/dist/server/server/agent/timeline-projection.d.ts.map +1 -1
  128. package/dist/server/server/agent/timeline-projection.js +20 -4
  129. package/dist/server/server/agent/timeline-projection.js.map +1 -1
  130. package/dist/server/server/agent-attention-policy.d.ts +1 -0
  131. package/dist/server/server/agent-attention-policy.d.ts.map +1 -1
  132. package/dist/server/server/agent-attention-policy.js +6 -0
  133. package/dist/server/server/agent-attention-policy.js.map +1 -1
  134. package/dist/server/server/allowed-hosts.d.ts +13 -0
  135. package/dist/server/server/allowed-hosts.d.ts.map +1 -1
  136. package/dist/server/server/allowed-hosts.js +33 -0
  137. package/dist/server/server/allowed-hosts.js.map +1 -1
  138. package/dist/server/server/bootstrap.d.ts +2 -0
  139. package/dist/server/server/bootstrap.d.ts.map +1 -1
  140. package/dist/server/server/bootstrap.js +200 -14
  141. package/dist/server/server/bootstrap.js.map +1 -1
  142. package/dist/server/server/browser-extension-token.d.ts +23 -0
  143. package/dist/server/server/browser-extension-token.d.ts.map +1 -0
  144. package/dist/server/server/browser-extension-token.js +114 -0
  145. package/dist/server/server/browser-extension-token.js.map +1 -0
  146. package/dist/server/server/bug-report-handler.d.ts +7 -1
  147. package/dist/server/server/bug-report-handler.d.ts.map +1 -1
  148. package/dist/server/server/bug-report-handler.js +73 -5
  149. package/dist/server/server/bug-report-handler.js.map +1 -1
  150. package/dist/server/server/bug-report-redact.d.ts +25 -1
  151. package/dist/server/server/bug-report-redact.d.ts.map +1 -1
  152. package/dist/server/server/bug-report-redact.js +42 -5
  153. package/dist/server/server/bug-report-redact.js.map +1 -1
  154. package/dist/server/server/config.d.ts +1 -0
  155. package/dist/server/server/config.d.ts.map +1 -1
  156. package/dist/server/server/config.js +51 -1
  157. package/dist/server/server/config.js.map +1 -1
  158. package/dist/server/server/crash-report.d.ts.map +1 -1
  159. package/dist/server/server/crash-report.js +18 -0
  160. package/dist/server/server/crash-report.js.map +1 -1
  161. package/dist/server/server/daemon-config-store.d.ts.map +1 -1
  162. package/dist/server/server/daemon-config-store.js +94 -3
  163. package/dist/server/server/daemon-config-store.js.map +1 -1
  164. package/dist/server/server/disk-full.d.ts +4 -0
  165. package/dist/server/server/disk-full.d.ts.map +1 -0
  166. package/dist/server/server/disk-full.js +46 -0
  167. package/dist/server/server/disk-full.js.map +1 -0
  168. package/dist/server/server/exports.d.ts +3 -2
  169. package/dist/server/server/exports.d.ts.map +1 -1
  170. package/dist/server/server/exports.js +2 -1
  171. package/dist/server/server/exports.js.map +1 -1
  172. package/dist/server/server/git-forge/github-client.d.ts +18 -0
  173. package/dist/server/server/git-forge/github-client.d.ts.map +1 -1
  174. package/dist/server/server/git-forge/github-client.js +88 -0
  175. package/dist/server/server/git-forge/github-client.js.map +1 -1
  176. package/dist/server/server/git-forge/parse-remote.d.ts +2 -0
  177. package/dist/server/server/git-forge/parse-remote.d.ts.map +1 -1
  178. package/dist/server/server/git-forge/parse-remote.js +71 -6
  179. package/dist/server/server/git-forge/parse-remote.js.map +1 -1
  180. package/dist/server/server/git-forge/service.d.ts +87 -0
  181. package/dist/server/server/git-forge/service.d.ts.map +1 -1
  182. package/dist/server/server/git-forge/service.js +198 -4
  183. package/dist/server/server/git-forge/service.js.map +1 -1
  184. package/dist/server/server/index.js +72 -0
  185. package/dist/server/server/index.js.map +1 -1
  186. package/dist/server/server/integrations/wecom-openclaw/bridge.d.ts +88 -0
  187. package/dist/server/server/integrations/wecom-openclaw/bridge.d.ts.map +1 -0
  188. package/dist/server/server/integrations/wecom-openclaw/bridge.js +1229 -0
  189. package/dist/server/server/integrations/wecom-openclaw/bridge.js.map +1 -0
  190. package/dist/server/server/integrations/wecom-openclaw/qr.d.ts +38 -0
  191. package/dist/server/server/integrations/wecom-openclaw/qr.d.ts.map +1 -0
  192. package/dist/server/server/integrations/wecom-openclaw/qr.js +101 -0
  193. package/dist/server/server/integrations/wecom-openclaw/qr.js.map +1 -0
  194. package/dist/server/server/integrations/wecom-openclaw/workspace.d.ts +5 -0
  195. package/dist/server/server/integrations/wecom-openclaw/workspace.d.ts.map +1 -0
  196. package/dist/server/server/integrations/wecom-openclaw/workspace.js +40 -0
  197. package/dist/server/server/integrations/wecom-openclaw/workspace.js.map +1 -0
  198. package/dist/server/server/latency-proxy.d.ts.map +1 -1
  199. package/dist/server/server/latency-proxy.js +45 -5
  200. package/dist/server/server/latency-proxy.js.map +1 -1
  201. package/dist/server/server/library/codex-skill-discovery.d.ts +9 -0
  202. package/dist/server/server/library/codex-skill-discovery.d.ts.map +1 -0
  203. package/dist/server/server/library/codex-skill-discovery.js +49 -0
  204. package/dist/server/server/library/codex-skill-discovery.js.map +1 -0
  205. package/dist/server/server/library/hub-install.d.ts +79 -0
  206. package/dist/server/server/library/hub-install.d.ts.map +1 -0
  207. package/dist/server/server/library/hub-install.js +263 -0
  208. package/dist/server/server/library/hub-install.js.map +1 -0
  209. package/dist/server/server/library/hub-test-run.d.ts +81 -0
  210. package/dist/server/server/library/hub-test-run.d.ts.map +1 -0
  211. package/dist/server/server/library/hub-test-run.js +237 -0
  212. package/dist/server/server/library/hub-test-run.js.map +1 -0
  213. package/dist/server/server/library/library-import.d.ts +27 -0
  214. package/dist/server/server/library/library-import.d.ts.map +1 -0
  215. package/dist/server/server/library/library-import.js +227 -0
  216. package/dist/server/server/library/library-import.js.map +1 -0
  217. package/dist/server/server/library/library-injection.d.ts +16 -0
  218. package/dist/server/server/library/library-injection.d.ts.map +1 -0
  219. package/dist/server/server/library/library-injection.js +49 -0
  220. package/dist/server/server/library/library-injection.js.map +1 -0
  221. package/dist/server/server/library/library-rpc.d.ts +73 -0
  222. package/dist/server/server/library/library-rpc.d.ts.map +1 -0
  223. package/dist/server/server/library/library-rpc.js +239 -0
  224. package/dist/server/server/library/library-rpc.js.map +1 -0
  225. package/dist/server/server/library/library-store.d.ts +35 -0
  226. package/dist/server/server/library/library-store.d.ts.map +1 -0
  227. package/dist/server/server/library/library-store.js +169 -0
  228. package/dist/server/server/library/library-store.js.map +1 -0
  229. package/dist/server/server/library/library-sync.d.ts +46 -0
  230. package/dist/server/server/library/library-sync.d.ts.map +1 -0
  231. package/dist/server/server/library/library-sync.js +235 -0
  232. package/dist/server/server/library/library-sync.js.map +1 -0
  233. package/dist/server/server/library/library-types.d.ts +756 -0
  234. package/dist/server/server/library/library-types.d.ts.map +1 -0
  235. package/dist/server/server/library/library-types.js +99 -0
  236. package/dist/server/server/library/library-types.js.map +1 -0
  237. package/dist/server/server/library/worktree-dev.d.ts +14 -0
  238. package/dist/server/server/library/worktree-dev.d.ts.map +1 -0
  239. package/dist/server/server/library/worktree-dev.js +24 -0
  240. package/dist/server/server/library/worktree-dev.js.map +1 -0
  241. package/dist/server/server/log-stream-error.d.ts +2 -0
  242. package/dist/server/server/log-stream-error.d.ts.map +1 -0
  243. package/dist/server/server/log-stream-error.js +33 -0
  244. package/dist/server/server/log-stream-error.js.map +1 -0
  245. package/dist/server/server/logger.d.ts +1 -0
  246. package/dist/server/server/logger.d.ts.map +1 -1
  247. package/dist/server/server/logger.js +32 -0
  248. package/dist/server/server/logger.js.map +1 -1
  249. package/dist/server/server/loop/rpc-schemas.d.ts +96 -96
  250. package/dist/server/server/loop-service.d.ts +18 -18
  251. package/dist/server/server/messages.d.ts +4 -1
  252. package/dist/server/server/messages.d.ts.map +1 -1
  253. package/dist/server/server/messages.js +40 -2
  254. package/dist/server/server/messages.js.map +1 -1
  255. package/dist/server/server/node-pty-error.d.ts +2 -0
  256. package/dist/server/server/node-pty-error.d.ts.map +1 -0
  257. package/dist/server/server/node-pty-error.js +19 -0
  258. package/dist/server/server/node-pty-error.js.map +1 -0
  259. package/dist/server/server/persisted-config.d.ts +219 -135
  260. package/dist/server/server/persisted-config.d.ts.map +1 -1
  261. package/dist/server/server/persisted-config.js +35 -1
  262. package/dist/server/server/persisted-config.js.map +1 -1
  263. package/dist/server/server/port-in-use.d.ts +4 -0
  264. package/dist/server/server/port-in-use.d.ts.map +1 -0
  265. package/dist/server/server/port-in-use.js +35 -0
  266. package/dist/server/server/port-in-use.js.map +1 -0
  267. package/dist/server/server/provider-runtime-settings-mask.d.ts +7 -0
  268. package/dist/server/server/provider-runtime-settings-mask.d.ts.map +1 -0
  269. package/dist/server/server/provider-runtime-settings-mask.js +65 -0
  270. package/dist/server/server/provider-runtime-settings-mask.js.map +1 -0
  271. package/dist/server/server/sac/auth.d.ts +12 -0
  272. package/dist/server/server/sac/auth.d.ts.map +1 -1
  273. package/dist/server/server/sac/auth.js +19 -1
  274. package/dist/server/server/sac/auth.js.map +1 -1
  275. package/dist/server/server/sac/index.d.ts +2 -2
  276. package/dist/server/server/sac/index.d.ts.map +1 -1
  277. package/dist/server/server/sac/index.js +2 -2
  278. package/dist/server/server/sac/index.js.map +1 -1
  279. package/dist/server/server/sac/poll.d.ts +2 -0
  280. package/dist/server/server/sac/poll.d.ts.map +1 -1
  281. package/dist/server/server/sac/poll.js +7 -2
  282. package/dist/server/server/sac/poll.js.map +1 -1
  283. package/dist/server/server/schedule/cron.d.ts.map +1 -1
  284. package/dist/server/server/schedule/cron.js +6 -6
  285. package/dist/server/server/schedule/cron.js.map +1 -1
  286. package/dist/server/server/schedule/rpc-schemas.d.ts +895 -0
  287. package/dist/server/server/schedule/rpc-schemas.d.ts.map +1 -1
  288. package/dist/server/server/schedule/rpc-schemas.js +34 -0
  289. package/dist/server/server/schedule/rpc-schemas.js.map +1 -1
  290. package/dist/server/server/schedule/service.d.ts +5 -1
  291. package/dist/server/server/schedule/service.d.ts.map +1 -1
  292. package/dist/server/server/schedule/service.js +97 -14
  293. package/dist/server/server/schedule/service.js.map +1 -1
  294. package/dist/server/server/schedule/types.d.ts +19 -0
  295. package/dist/server/server/schedule/types.d.ts.map +1 -1
  296. package/dist/server/server/schedule/types.js +1 -0
  297. package/dist/server/server/schedule/types.js.map +1 -1
  298. package/dist/server/server/session.d.ts +83 -2
  299. package/dist/server/server/session.d.ts.map +1 -1
  300. package/dist/server/server/session.js +895 -82
  301. package/dist/server/server/session.js.map +1 -1
  302. package/dist/server/server/speech/native-runtime-guard.d.ts +1 -0
  303. package/dist/server/server/speech/native-runtime-guard.d.ts.map +1 -1
  304. package/dist/server/server/speech/native-runtime-guard.js +10 -4
  305. package/dist/server/server/speech/native-runtime-guard.js.map +1 -1
  306. package/dist/server/server/websocket-server.d.ts +6 -1
  307. package/dist/server/server/websocket-server.d.ts.map +1 -1
  308. package/dist/server/server/websocket-server.js +79 -7
  309. package/dist/server/server/websocket-server.js.map +1 -1
  310. package/dist/server/server/workspace-git-service.d.ts +2 -1
  311. package/dist/server/server/workspace-git-service.d.ts.map +1 -1
  312. package/dist/server/server/workspace-git-service.js +7 -3
  313. package/dist/server/server/workspace-git-service.js.map +1 -1
  314. package/dist/server/server/workspace-registry-model.d.ts +1 -0
  315. package/dist/server/server/workspace-registry-model.d.ts.map +1 -1
  316. package/dist/server/server/workspace-registry-model.js +18 -0
  317. package/dist/server/server/workspace-registry-model.js.map +1 -1
  318. package/dist/server/server/worktree-session.d.ts +3 -3
  319. package/dist/server/server/worktree-session.d.ts.map +1 -1
  320. package/dist/server/server/worktree-session.js +1 -3
  321. package/dist/server/server/worktree-session.js.map +1 -1
  322. package/dist/server/shared/messages.d.ts +59658 -21927
  323. package/dist/server/shared/messages.d.ts.map +1 -1
  324. package/dist/server/shared/messages.js +531 -3
  325. package/dist/server/shared/messages.js.map +1 -1
  326. package/dist/server/shared/provider-runtime-settings.d.ts +87 -0
  327. package/dist/server/shared/provider-runtime-settings.d.ts.map +1 -0
  328. package/dist/server/shared/provider-runtime-settings.js +33 -0
  329. package/dist/server/shared/provider-runtime-settings.js.map +1 -0
  330. package/dist/server/terminal/terminal.d.ts +9 -0
  331. package/dist/server/terminal/terminal.d.ts.map +1 -1
  332. package/dist/server/terminal/terminal.js +100 -3
  333. package/dist/server/terminal/terminal.js.map +1 -1
  334. package/dist/server/utils/checkout-git.d.ts +23 -1
  335. package/dist/server/utils/checkout-git.d.ts.map +1 -1
  336. package/dist/server/utils/checkout-git.js +182 -21
  337. package/dist/server/utils/checkout-git.js.map +1 -1
  338. package/dist/server/utils/directory-suggestions.d.ts.map +1 -1
  339. package/dist/server/utils/directory-suggestions.js +57 -9
  340. package/dist/server/utils/directory-suggestions.js.map +1 -1
  341. package/dist/src/server/bug-report-redact.js +42 -5
  342. package/dist/src/server/bug-report-redact.js.map +1 -1
  343. package/dist/src/server/crash-report.js +18 -0
  344. package/dist/src/server/crash-report.js.map +1 -1
  345. package/dist/src/server/speech/native-runtime-guard.js +177 -0
  346. package/dist/src/server/speech/native-runtime-guard.js.map +1 -0
  347. package/dist/src/server/speech/speech-types.js +8 -0
  348. package/dist/src/server/speech/speech-types.js.map +1 -0
  349. package/package.json +16 -4
@@ -8,18 +8,26 @@ import { promisify } from "node:util";
8
8
  import { query, } from "@anthropic-ai/claude-agent-sdk";
9
9
  import { resolveElectronHelperPath } from "../../../utils/electron-helper.js";
10
10
  import { spawnProcess } from "../../../utils/spawn.js";
11
- import { getOrchestratorModeInstructions } from "../orchestrator-instructions.js";
12
- import { applyProviderEnv } from "../provider-launch-config.js";
13
11
  import { getLatencyProxyUrlSync } from "../../latency-proxy.js";
12
+ import { claudeProjectDirName } from "../claude-memory.js";
13
+ import { getOrchestratorModeInstructions } from "../orchestrator-instructions.js";
14
+ import { applyProviderEnv, mergeLocalhostProxyBypass, } from "../provider-launch-config.js";
14
15
  import { getClaudeModels, normalizeClaudeRuntimeModelId } from "./claude/claude-models.js";
15
16
  import { parsePartialJsonObject } from "./claude/partial-json.js";
16
17
  import { ClaudeSidechainTracker } from "./claude/sidechain-tracker.js";
17
18
  import { mapTaskNotificationSystemRecordToToolCall, mapTaskNotificationUserContentToToolCall, } from "./claude/task-notification-tool-call.js";
18
19
  import { mapClaudeCanceledToolCall, mapClaudeCompletedToolCall, mapClaudeFailedToolCall, mapClaudeRunningToolCall, } from "./claude/tool-call-mapper.js";
19
20
  import { formatDiagnosticStatus, formatProviderDiagnostic, formatProviderDiagnosticError, toDiagnosticErrorMessage, } from "./diagnostic-utils.js";
21
+ import { appendAnthropicCustomHeaders, buildSeaworkGatewayHeaders } from "./gateway-telemetry.js";
20
22
  const fsPromises = promises;
21
23
  const execFileAsync = promisify(execFile);
22
24
  const CLAUDE_SETTING_SOURCES = ["user", "project"];
25
+ const CLAUDE_PROVIDER = "claude";
26
+ const CLAUDE_TOOL_SCHEMA_GUIDANCE = `
27
+ <claude-tool-schema-guidance>
28
+ When using Claude Code tools, follow each tool's exact input schema. The Read tool requires the argument \`file_path\`; do not use Seawork timeline display fields such as \`filePath\` as tool arguments.
29
+ </claude-tool-schema-guidance>
30
+ `;
23
31
  const CLAUDE_CAPABILITIES = {
24
32
  supportsStreaming: true,
25
33
  supportsSessionPersistence: true,
@@ -70,6 +78,11 @@ const UUID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3
70
78
  * ENOENT error messages reference a real on-disk location instead of the
71
79
  * misleading asar path.
72
80
  */
81
+ function rewriteAsarToUnpacked(p) {
82
+ const asarSeg = `app.asar${path.sep}`;
83
+ const unpackedSeg = `app.asar.unpacked${path.sep}`;
84
+ return p.includes(asarSeg) && !p.includes(unpackedSeg) ? p.replace(asarSeg, unpackedSeg) : p;
85
+ }
73
86
  let cachedClaudeCliPath;
74
87
  export function resolveClaudeCliExecutable() {
75
88
  if (cachedClaudeCliPath !== undefined) {
@@ -80,13 +93,22 @@ export function resolveClaudeCliExecutable() {
80
93
  // The SDK's package.json doesn't expose "./package.json" via exports, so
81
94
  // resolve the main entry (sdk.mjs) and derive the package root from it.
82
95
  const mainPath = sdkRequire.resolve("@anthropic-ai/claude-agent-sdk");
83
- let cliPath = path.join(path.dirname(mainPath), "cli.js");
84
- const asarSeg = `app.asar${path.sep}`;
85
- const unpackedSeg = `app.asar.unpacked${path.sep}`;
86
- if (cliPath.includes(asarSeg) && !cliPath.includes(unpackedSeg)) {
87
- cliPath = cliPath.replace(asarSeg, unpackedSeg);
96
+ // 0.2.x shipped cli.js next to the main entry.
97
+ const cliPath = rewriteAsarToUnpacked(path.join(path.dirname(mainPath), "cli.js"));
98
+ if (fs.existsSync(cliPath)) {
99
+ cachedClaudeCliPath = cliPath;
100
+ return cachedClaudeCliPath;
101
+ }
102
+ // 0.3.x ships the native `claude` binary in a per-platform optional dep.
103
+ const ext = process.platform === "win32" ? ".exe" : "";
104
+ const pkg = `@anthropic-ai/claude-agent-sdk-${process.platform}-${process.arch}/claude${ext}`;
105
+ try {
106
+ const native = rewriteAsarToUnpacked(sdkRequire.resolve(pkg));
107
+ cachedClaudeCliPath = fs.existsSync(native) ? native : null;
108
+ }
109
+ catch {
110
+ cachedClaudeCliPath = null;
88
111
  }
89
- cachedClaudeCliPath = fs.existsSync(cliPath) ? cliPath : null;
90
112
  }
91
113
  catch {
92
114
  cachedClaudeCliPath = null;
@@ -113,6 +135,12 @@ function resolveClaudeSpawnCommand(spawnOptions, runtimeSettings) {
113
135
  };
114
136
  }
115
137
  export function resolveClaudeAuthSpawnEnv(mergedEnv, authMode) {
138
+ const mergeSeaworkCustomHeaders = (env) => {
139
+ return {
140
+ ...env,
141
+ ANTHROPIC_CUSTOM_HEADERS: appendAnthropicCustomHeaders(env.ANTHROPIC_CUSTOM_HEADERS, buildSeaworkGatewayHeaders(CLAUDE_PROVIDER)),
142
+ };
143
+ };
116
144
  if (authMode === "local") {
117
145
  return {
118
146
  spawnEnv: {
@@ -135,7 +163,7 @@ export function resolveClaudeAuthSpawnEnv(mergedEnv, authMode) {
135
163
  return { spawnEnv: { ...mergedEnv }, hasApiKey };
136
164
  }
137
165
  return {
138
- spawnEnv: {
166
+ spawnEnv: mergeSeaworkCustomHeaders({
139
167
  ...mergedEnv,
140
168
  CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: "1",
141
169
  ANTHROPIC_AUTH_TOKEN: undefined,
@@ -144,11 +172,11 @@ export function resolveClaudeAuthSpawnEnv(mergedEnv, authMode) {
144
172
  CLAUDE_CODE_USE_BEDROCK: undefined,
145
173
  CLAUDE_CODE_USE_VERTEX: undefined,
146
174
  AWS_BEARER_TOKEN_BEDROCK: undefined,
147
- },
175
+ }),
148
176
  hasApiKey,
149
177
  };
150
178
  }
151
- function applyRuntimeSettingsToClaudeOptions(options, runtimeSettings, launchEnv, logger) {
179
+ function applyRuntimeSettingsToClaudeOptions(options, runtimeSettings, launchEnv, logger, latencyProxyUrl) {
152
180
  return {
153
181
  ...options,
154
182
  spawnClaudeCodeProcess: (spawnOptions) => {
@@ -162,6 +190,13 @@ function applyRuntimeSettingsToClaudeOptions(options, runtimeSettings, launchEnv
162
190
  ...applyProviderEnv(spawnOptions.env, runtimeSettings),
163
191
  ...(launchEnv ?? {}),
164
192
  }, runtimeSettings?.authMode);
193
+ // Merge the localhost bypass AFTER launchEnv is spread: a launch context
194
+ // that carries its own NO_PROXY would otherwise overwrite the bypass and
195
+ // route local daemon MCP traffic back through the CONNECT-only latency
196
+ // proxy. Only applies when the latency-debug proxy is active.
197
+ if (latencyProxyUrl) {
198
+ mergeLocalhostProxyBypass(spawnEnv);
199
+ }
165
200
  if (!isDefaultRuntime) {
166
201
  command = resolved.command;
167
202
  }
@@ -258,6 +293,19 @@ function isClaudeThinkingEffort(value) {
258
293
  const MAX_RECENT_STDERR_CHARS = 4000;
259
294
  const STDERR_FLUSH_WAIT_MS = 150;
260
295
  const STDERR_FLUSH_POLL_INTERVAL_MS = 10;
296
+ const MAX_PLAN_TEXT_LENGTH = 50000;
297
+ function truncatePlanInput(input) {
298
+ const plan = input?.["plan"];
299
+ if (typeof plan !== "string") {
300
+ // plan key absent or non-string: discard the whole client object so unknown
301
+ // keys cannot leak into the plan_approval tool-call input; caller falls back
302
+ // to pending.request.input (the original server-side value).
303
+ return null;
304
+ }
305
+ // Extract only the known `plan` key; discard any other client-supplied keys
306
+ // so they cannot leak into the plan_approval tool-call input (matches codex path).
307
+ return { plan: plan.slice(0, MAX_PLAN_TEXT_LENGTH) };
308
+ }
261
309
  function summarizeClaudeOptionsForLog(options) {
262
310
  const systemPromptRaw = options.systemPrompt;
263
311
  const systemPromptSummary = (() => {
@@ -1099,6 +1147,7 @@ class ClaudeAgentSession {
1099
1147
  });
1100
1148
  this.persistedHistory = [];
1101
1149
  this.historyPending = false;
1150
+ this.historyPathCache = new Map();
1102
1151
  this.turnState = "idle";
1103
1152
  this.nextTurnOrdinal = 1;
1104
1153
  this.cancelCurrentTurn = null;
@@ -1114,6 +1163,7 @@ class ClaudeAgentSession {
1114
1163
  this.userMessageIds = [];
1115
1164
  this.recentStderr = "";
1116
1165
  this.closed = false;
1166
+ this.maxEffortClampWarned = false;
1117
1167
  this.handlePermissionRequest = async (toolName, input, options) => {
1118
1168
  const requestId = `permission-${randomUUID()}`;
1119
1169
  const kind = resolvePermissionKind(toolName, input);
@@ -1366,11 +1416,18 @@ class ClaudeAgentSession {
1366
1416
  this.notifySubscribers({ type: "turn_started", provider: "claude" });
1367
1417
  try {
1368
1418
  await this.ensureQuery();
1369
- if (!this.input) {
1419
+ // Snapshot this.input locally. ensureQuery() guarantees this.input is
1420
+ // set on return; the previous code re-read this.input after the
1421
+ // (sync-only) startQueryPump() call, which made the .push() vulnerable
1422
+ // to any path that mutated this.input between the guard and the push
1423
+ // — observed in #779 as `Cannot read properties of null (reading
1424
+ // 'push')` after a previous turn's subprocess exit.
1425
+ const input = this.input;
1426
+ if (!input) {
1370
1427
  throw new Error("Claude session input stream not initialized");
1371
1428
  }
1372
1429
  this.startQueryPump();
1373
- this.input.push(sdkMessage);
1430
+ input.push(sdkMessage);
1374
1431
  }
1375
1432
  catch (error) {
1376
1433
  this.flushPendingToolCalls();
@@ -1473,6 +1530,9 @@ class ClaudeAgentSession {
1473
1530
  this.pendingPermissions.delete(requestId);
1474
1531
  pending.cleanup?.();
1475
1532
  if (response.behavior === "allow") {
1533
+ const updatedInput = pending.request.kind === "plan"
1534
+ ? truncatePlanInput(response.updatedInput)
1535
+ : response.updatedInput;
1476
1536
  if (pending.request.kind === "plan") {
1477
1537
  const selectedActionId = response.selectedActionId;
1478
1538
  const shouldResumePriorMode = selectedActionId === "implement_resume" && this.planResumeMode === "bypassPermissions";
@@ -1483,7 +1543,7 @@ class ClaudeAgentSession {
1483
1543
  this.pushToolCall(mapClaudeCompletedToolCall({
1484
1544
  name: "plan_approval",
1485
1545
  callId: pending.request.id,
1486
- input: pending.request.input ?? null,
1546
+ input: updatedInput ?? pending.request.input ?? null,
1487
1547
  output: {
1488
1548
  approved: true,
1489
1549
  actionId: selectedActionId ?? "implement",
@@ -1492,7 +1552,7 @@ class ClaudeAgentSession {
1492
1552
  }
1493
1553
  const result = {
1494
1554
  behavior: "allow",
1495
- updatedInput: response.updatedInput ?? pending.request.input ?? {},
1555
+ updatedInput: updatedInput ?? pending.request.input ?? {},
1496
1556
  updatedPermissions: this.normalizePermissionUpdates(response.updatedPermissions),
1497
1557
  };
1498
1558
  pending.resolve(result);
@@ -1536,12 +1596,16 @@ class ClaudeAgentSession {
1536
1596
  // Old GA agents (1.0.16) are covered too because handle is constructed
1537
1597
  // here on the daemon at migrate time, not from the client payload.
1538
1598
  const sourcePath = this.resolveHistoryPath(this.claudeSessionId);
1599
+ // Persist the user's pre-injection base, never the daemon-injected
1600
+ // systemPrompt, so resume re-injects once instead of doubling.
1601
+ const { systemPromptBase, ...rest } = this.config;
1539
1602
  this.persistence = {
1540
1603
  provider: "claude",
1541
1604
  sessionId: this.claudeSessionId,
1542
1605
  nativeHandle: this.claudeSessionId,
1543
1606
  metadata: {
1544
- ...this.config,
1607
+ ...rest,
1608
+ ...(systemPromptBase !== undefined ? { systemPrompt: systemPromptBase || undefined } : {}),
1545
1609
  ...(sourcePath ? { sourcePath } : {}),
1546
1610
  },
1547
1611
  };
@@ -1576,7 +1640,11 @@ class ClaudeAgentSession {
1576
1640
  const q = await this.ensureQuery();
1577
1641
  const commands = await q.supportedCommands();
1578
1642
  const commandMap = new Map();
1643
+ const deniedSkills = new Set(this.config.librarySkillDenylist ?? []);
1579
1644
  for (const cmd of commands) {
1645
+ if (deniedSkills.has(cmd.name)) {
1646
+ continue;
1647
+ }
1580
1648
  if (!commandMap.has(cmd.name)) {
1581
1649
  commandMap.set(cmd.name, {
1582
1650
  name: cmd.name,
@@ -1818,17 +1886,32 @@ class ClaudeAgentSession {
1818
1886
  }
1819
1887
  }
1820
1888
  async buildOptions() {
1889
+ const useLocalClaudeConfig = this.runtimeSettings?.authMode === "local";
1821
1890
  const thinkingOptionId = this.config.thinkingOptionId && this.config.thinkingOptionId !== "default"
1822
1891
  ? this.config.thinkingOptionId
1823
1892
  : undefined;
1824
1893
  let thinking;
1825
1894
  let effort;
1826
1895
  if (thinkingOptionId && isClaudeThinkingEffort(thinkingOptionId)) {
1896
+ // Claude.ai subscription auth (local CLI) rejects effort "max" with
1897
+ // SDK exit code 1 ("Effort level \"max\" is not available for
1898
+ // Claude.ai subscribers"), which previously failed every turn and
1899
+ // could wedge the session (#779). Clamp to "high" for local auth so
1900
+ // the turn actually runs.
1901
+ let resolvedEffort = thinkingOptionId;
1902
+ if (useLocalClaudeConfig && resolvedEffort === "max") {
1903
+ resolvedEffort = "high";
1904
+ if (!this.maxEffortClampWarned) {
1905
+ this.maxEffortClampWarned = true;
1906
+ this.logger.warn({ from: "max", to: "high", reason: "claude.ai-subscription" }, "Clamping reasoning effort: Claude.ai subscription auth does not support 'max'");
1907
+ }
1908
+ }
1827
1909
  thinking = { type: "adaptive" };
1828
- effort = thinkingOptionId;
1910
+ effort = resolvedEffort;
1829
1911
  }
1830
1912
  const appendedSystemPrompt = [
1831
1913
  getOrchestratorModeInstructions(),
1914
+ CLAUDE_TOOL_SCHEMA_GUIDANCE,
1832
1915
  this.config.systemPrompt?.trim(),
1833
1916
  ]
1834
1917
  .filter((entry) => typeof entry === "string" && entry.length > 0)
@@ -1838,7 +1921,6 @@ class ClaudeAgentSession {
1838
1921
  // The SDK `settings` option (flag settings layer) has the highest priority.
1839
1922
  const seaworkHome = process.env.SEAWORK_HOME ?? path.join(os.homedir(), ".seawork");
1840
1923
  const seaworkSettingsPath = path.join(seaworkHome, "claude-settings.json");
1841
- const useLocalClaudeConfig = this.runtimeSettings?.authMode === "local";
1842
1924
  const hasSeaworkSettings = !useLocalClaudeConfig && fs.existsSync(seaworkSettingsPath);
1843
1925
  // Windows' CreateProcess returns ENOENT when the spawn cwd does not exist,
1844
1926
  // and the SDK mislabels that ENOENT as "Claude Code executable not found".
@@ -1927,15 +2009,17 @@ class ClaudeAgentSession {
1927
2009
  if (this.claudeSessionId) {
1928
2010
  base.resume = this.claudeSessionId;
1929
2011
  }
1930
- return this.applyRuntimeSettings(base);
2012
+ return this.applyRuntimeSettings(base, latencyProxyUrl);
1931
2013
  }
1932
- applyRuntimeSettings(options) {
1933
- return applyRuntimeSettingsToClaudeOptions(options, this.runtimeSettings, this.launchEnv, this.logger);
2014
+ applyRuntimeSettings(options, latencyProxyUrl) {
2015
+ return applyRuntimeSettingsToClaudeOptions(options, this.runtimeSettings, this.launchEnv, this.logger, latencyProxyUrl);
1934
2016
  }
1935
2017
  normalizeMcpServers(servers) {
1936
2018
  const result = {};
1937
2019
  for (const [name, config] of Object.entries(servers)) {
1938
- result[name] = toClaudeSdkMcpConfig(config);
2020
+ const sdkConfig = toClaudeSdkMcpConfig(config);
2021
+ result[name] =
2022
+ name === "seawork" ? Object.assign(sdkConfig, { alwaysLoad: true }) : sdkConfig;
1939
2023
  }
1940
2024
  return result;
1941
2025
  }
@@ -2778,12 +2862,13 @@ class ClaudeAgentSession {
2778
2862
  try {
2779
2863
  const historyPath = this.resolveHistoryPath(sessionId);
2780
2864
  if (!historyPath || !fs.existsSync(historyPath)) {
2865
+ this.logger.warn({ sessionId, cwd: this.config.cwd }, "Claude transcript not found on resume");
2781
2866
  return;
2782
2867
  }
2783
2868
  this.ingestPersistedHistory(fs.readFileSync(historyPath, "utf8"));
2784
2869
  }
2785
2870
  catch (error) {
2786
- // ignore history load failures
2871
+ this.logger.warn({ error, sessionId }, "Failed to load Claude persisted history");
2787
2872
  }
2788
2873
  }
2789
2874
  ingestPersistedHistory(content) {
@@ -2826,11 +2911,40 @@ class ClaudeAgentSession {
2826
2911
  const cwd = this.config.cwd;
2827
2912
  if (!cwd)
2828
2913
  return null;
2829
- // Match Claude CLI's path sanitization: replace slashes, dots, and underscores with dashes
2830
- const sanitized = cwd.replace(/[\\/\.]/g, "-").replace(/_/g, "-");
2914
+ const cached = this.historyPathCache.get(sessionId);
2915
+ if (cached) {
2916
+ return cached;
2917
+ }
2831
2918
  const configDir = process.env.CLAUDE_CONFIG_DIR ?? path.join(os.homedir(), ".claude");
2832
- const dir = path.join(configDir, "projects", sanitized);
2833
- return path.join(dir, `${sessionId}.jsonl`);
2919
+ const projectsRoot = path.join(configDir, "projects");
2920
+ // Fast path: reproduce Claude CLI's directory sanitization (slashes, dots,
2921
+ // underscores, and Windows drive colons all collapse to dashes). Matches for
2922
+ // the common case with a single existsSync and no directory scan.
2923
+ const sanitized = claudeProjectDirName(cwd);
2924
+ const guess = path.join(projectsRoot, sanitized, `${sessionId}.jsonl`);
2925
+ if (fs.existsSync(guess)) {
2926
+ this.historyPathCache.set(sessionId, guess);
2927
+ return guess;
2928
+ }
2929
+ // Fallback: the sanitization rule can diverge from what Claude CLI actually
2930
+ // wrote (non-ASCII paths, trailing slashes, etc.). The session id is a unique
2931
+ // uuid, so scan project dirs for an exact `<sessionId>.jsonl` match without
2932
+ // reading any file contents.
2933
+ let projectDirs;
2934
+ try {
2935
+ projectDirs = fs.readdirSync(projectsRoot);
2936
+ }
2937
+ catch {
2938
+ return guess;
2939
+ }
2940
+ for (const dirName of projectDirs) {
2941
+ const candidate = path.join(projectsRoot, dirName, `${sessionId}.jsonl`);
2942
+ if (fs.existsSync(candidate)) {
2943
+ this.historyPathCache.set(sessionId, candidate);
2944
+ return candidate;
2945
+ }
2946
+ }
2947
+ return guess;
2834
2948
  }
2835
2949
  convertHistoryEntry(entry) {
2836
2950
  return convertClaudeHistoryEntry(entry, (content) => this.mapBlocksToTimeline(content));