@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
@@ -0,0 +1,94 @@
1
+ import type { Logger } from "pino";
2
+ export interface CreateThreadParams {
3
+ model?: string;
4
+ workspace?: string;
5
+ mode?: string;
6
+ allow_shell?: boolean;
7
+ trust_mode?: boolean;
8
+ auto_approve?: boolean;
9
+ system_prompt?: string;
10
+ }
11
+ export interface StartTurnParams {
12
+ prompt: string;
13
+ model?: string;
14
+ mode?: string;
15
+ allow_shell?: boolean;
16
+ trust_mode?: boolean;
17
+ auto_approve?: boolean;
18
+ }
19
+ export interface ServeHistoryItem {
20
+ id?: string;
21
+ kind?: string;
22
+ status?: string;
23
+ summary?: string;
24
+ detail?: string;
25
+ tool?: {
26
+ id?: string;
27
+ name?: string;
28
+ input?: any;
29
+ };
30
+ }
31
+ export interface ServeThreadTurn {
32
+ id?: string;
33
+ status?: string;
34
+ }
35
+ export interface ServeThreadDetail {
36
+ items?: ServeHistoryItem[];
37
+ active_turn_id?: string;
38
+ activeTurnId?: string;
39
+ active_turn?: {
40
+ id?: string;
41
+ };
42
+ activeTurn?: {
43
+ id?: string;
44
+ };
45
+ current_turn?: {
46
+ id?: string;
47
+ };
48
+ currentTurn?: {
49
+ id?: string;
50
+ };
51
+ turn?: {
52
+ id?: string;
53
+ status?: string;
54
+ };
55
+ turns?: ServeThreadTurn[];
56
+ }
57
+ export interface ServeSseEvent {
58
+ event: string;
59
+ data: {
60
+ seq?: number;
61
+ thread_id?: string;
62
+ turn_id?: string;
63
+ item_id?: string;
64
+ event?: string;
65
+ payload?: any;
66
+ };
67
+ }
68
+ export declare class DeepseekServeClient {
69
+ private readonly baseUrl;
70
+ private readonly token;
71
+ private readonly logger?;
72
+ constructor(baseUrl: string, token: string, logger?: Logger | undefined);
73
+ private headers;
74
+ private post;
75
+ createThread(params: CreateThreadParams): Promise<{
76
+ id: string;
77
+ model?: string;
78
+ }>;
79
+ startTurn(threadId: string, params: StartTurnParams): Promise<{
80
+ turn?: {
81
+ id?: string;
82
+ };
83
+ }>;
84
+ resumeThread(threadId: string): Promise<unknown>;
85
+ getThreadDetail(threadId: string): Promise<ServeThreadDetail>;
86
+ cancelTurn(threadId: string, turnId: string, options?: {
87
+ suppressErrors?: boolean;
88
+ }): Promise<void>;
89
+ decideApproval(approvalId: string, decision: "allow" | "deny"): Promise<void>;
90
+ openEventStream(threadId: string, signal: AbortSignal): Promise<{
91
+ frames: AsyncGenerator<ServeSseEvent>;
92
+ }>;
93
+ }
94
+ //# sourceMappingURL=serve-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve-client.d.ts","sourceRoot":"","sources":["../../../../../../src/server/agent/providers/deepseek/serve-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,142 @@
1
+ // Thin client for the `codewhale serve --http` runtime API. Wire formats were
2
+ // captured empirically against CodeWhale 0.8.47 — see the
3
+ // reference_codewhale_appserver_protocol memory for the recorded shapes.
4
+ export class DeepseekServeClient {
5
+ constructor(baseUrl, token, logger) {
6
+ this.baseUrl = baseUrl;
7
+ this.token = token;
8
+ this.logger = logger;
9
+ }
10
+ headers() {
11
+ return {
12
+ "content-type": "application/json",
13
+ authorization: `Bearer ${this.token}`,
14
+ };
15
+ }
16
+ async post(path, body) {
17
+ const res = await fetch(`${this.baseUrl}${path}`, {
18
+ method: "POST",
19
+ headers: this.headers(),
20
+ body: JSON.stringify(body ?? {}),
21
+ });
22
+ if (!res.ok) {
23
+ const text = await res.text().catch(() => "");
24
+ throw new Error(`codewhale ${path} -> ${res.status} ${text.slice(0, 300)}`);
25
+ }
26
+ return (await res.json());
27
+ }
28
+ async createThread(params) {
29
+ return this.post("/v1/threads", params);
30
+ }
31
+ async startTurn(threadId, params) {
32
+ return this.post(`/v1/threads/${threadId}/turns`, params);
33
+ }
34
+ async resumeThread(threadId) {
35
+ return this.post(`/v1/threads/${threadId}/resume`, {});
36
+ }
37
+ // GET /v1/threads/{id} returns the full thread detail including the
38
+ // persisted turn items — the conversation history used to rehydrate the
39
+ // timeline after a daemon restart / session resume.
40
+ async getThreadDetail(threadId) {
41
+ const res = await fetch(`${this.baseUrl}/v1/threads/${threadId}`, {
42
+ headers: this.headers(),
43
+ });
44
+ if (!res.ok) {
45
+ throw new Error(`codewhale GET /v1/threads/${threadId} -> ${res.status}`);
46
+ }
47
+ return (await res.json());
48
+ }
49
+ async cancelTurn(threadId, turnId, options) {
50
+ const request = this.post(`/v1/threads/${threadId}/turns/${turnId}/cancel`, {});
51
+ if (options?.suppressErrors) {
52
+ // Best-effort interrupt for user-initiated stop/close paths.
53
+ await request.catch(() => { });
54
+ return;
55
+ }
56
+ await request;
57
+ }
58
+ async decideApproval(approvalId, decision) {
59
+ await this.post(`/v1/approvals/${approvalId}`, { decision });
60
+ }
61
+ // Open the thread event SSE stream. The returned promise resolves only AFTER
62
+ // the HTTP connection is established (status checked), so callers can await
63
+ // it and be sure the subscription is live before starting a turn — otherwise
64
+ // a fast turn could emit turn.started/…/turn.completed before the stream is
65
+ // attached and the caller would miss them. The resolved object yields parsed
66
+ // frames until the stream ends or the AbortSignal fires.
67
+ async openEventStream(threadId, signal) {
68
+ const res = await fetch(`${this.baseUrl}/v1/threads/${threadId}/events`, {
69
+ headers: { authorization: `Bearer ${this.token}` },
70
+ signal,
71
+ });
72
+ if (!res.ok || !res.body) {
73
+ throw new Error(`codewhale SSE /events -> ${res.status}`);
74
+ }
75
+ const body = res.body;
76
+ const logger = this.logger;
77
+ async function* iterate() {
78
+ const reader = body.getReader();
79
+ const decoder = new TextDecoder();
80
+ let buf = "";
81
+ while (true) {
82
+ const { value, done } = await reader.read();
83
+ if (done)
84
+ break;
85
+ // Normalize CRLF/CR to LF so frame splitting and field parsing don't
86
+ // depend on the server's line-ending choice.
87
+ buf += decoder.decode(value, { stream: true }).replace(/\r\n?/g, "\n");
88
+ let idx;
89
+ // SSE frames are separated by a blank line (now always "\n\n").
90
+ while ((idx = buf.indexOf("\n\n")) >= 0) {
91
+ const block = buf.slice(0, idx);
92
+ buf = buf.slice(idx + 2);
93
+ const parsed = parseSseBlock(block);
94
+ if (parsed.frame) {
95
+ yield parsed.frame;
96
+ }
97
+ else if (parsed.malformed) {
98
+ // A frame carried an `event:` but its `data:` wasn't valid JSON —
99
+ // surface it (dropped, not yielded) so a future CodeWhale stream
100
+ // protocol change is diagnosable instead of silently lossy.
101
+ logger?.warn({ event: parsed.event, dataPreview: parsed.dataPreview }, "deepseek: dropped unparseable SSE frame");
102
+ }
103
+ // else: benign keep-alive / comment / fieldless block — ignore.
104
+ }
105
+ }
106
+ }
107
+ return { frames: iterate() };
108
+ }
109
+ }
110
+ // Parse one SSE frame per the spec: lines starting with `:` are comments
111
+ // (heartbeats) and ignored; `field: value` strips one optional leading space
112
+ // from the value; multiple `data:` lines are joined with "\n"; unknown fields
113
+ // (id/retry) are ignored.
114
+ function parseSseBlock(block) {
115
+ let event = "";
116
+ const dataParts = [];
117
+ for (const rawLine of block.split("\n")) {
118
+ if (rawLine === "" || rawLine.startsWith(":"))
119
+ continue; // blank / comment (heartbeat)
120
+ const colon = rawLine.indexOf(":");
121
+ const field = colon === -1 ? rawLine : rawLine.slice(0, colon);
122
+ let value = colon === -1 ? "" : rawLine.slice(colon + 1);
123
+ if (value.startsWith(" "))
124
+ value = value.slice(1); // one optional leading space
125
+ if (field === "event")
126
+ event = value;
127
+ else if (field === "data")
128
+ dataParts.push(value);
129
+ // id / retry / unknown fields: ignored
130
+ }
131
+ if (!event || dataParts.length === 0)
132
+ return { frame: null };
133
+ const dataLine = dataParts.join("\n");
134
+ try {
135
+ return { frame: { event, data: JSON.parse(dataLine) } };
136
+ }
137
+ catch {
138
+ // A real event frame whose data isn't JSON — flag it for the caller to log.
139
+ return { frame: null, malformed: true, event, dataPreview: dataLine.slice(0, 200) };
140
+ }
141
+ }
142
+ //# sourceMappingURL=serve-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve-client.js","sourceRoot":"","sources":["../../../../../../src/server/agent/providers/deepseek/serve-client.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,0DAA0D;AAC1D,yEAAyE;AAiEzE,MAAM,OAAO,mBAAmB;IAC9B,YACmB,OAAe,EACf,KAAa,EACb,MAAe;QAFf,YAAO,GAAP,OAAO,CAAQ;QACf,UAAK,GAAL,KAAK,CAAQ;QACb,WAAM,GAAN,MAAM,CAAS;IAC/B,CAAC;IAEI,OAAO;QACb,OAAO;YACL,cAAc,EAAE,kBAAkB;YAClC,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE;SACtC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,IAAI,CAAI,IAAY,EAAE,IAAa;QAC/C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,EAAE;YAChD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;YACvB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC;SACjC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,OAAO,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAM,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAA0B;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAgB,EAAE,MAAuB;QACvD,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,QAAQ,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAgB;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,QAAQ,SAAS,EAAE,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,oEAAoE;IACpE,wEAAwE;IACxE,oDAAoD;IACpD,KAAK,CAAC,eAAe,CAAC,QAAgB;QACpC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,eAAe,QAAQ,EAAE,EAAE;YAChE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;SACxB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,OAAO,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAsB,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,UAAU,CACd,QAAgB,EAChB,MAAc,EACd,OAAsC;QAEtC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,QAAQ,UAAU,MAAM,SAAS,EAAE,EAAE,CAAC,CAAC;QAChF,IAAI,OAAO,EAAE,cAAc,EAAE,CAAC;YAC5B,6DAA6D;YAC7D,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,MAAM,OAAO,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,UAAkB,EAAE,QAA0B;QACjE,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,6EAA6E;IAC7E,4EAA4E;IAC5E,6EAA6E;IAC7E,4EAA4E;IAC5E,6EAA6E;IAC7E,yDAAyD;IACzD,KAAK,CAAC,eAAe,CACnB,QAAgB,EAChB,MAAmB;QAEnB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,eAAe,QAAQ,SAAS,EAAE;YACvE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE,EAAE;YAClD,MAAM;SACP,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,KAAK,SAAS,CAAC,CAAC,OAAO;YACrB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;YAClC,IAAI,GAAG,GAAG,EAAE,CAAC;YACb,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5C,IAAI,IAAI;oBAAE,MAAM;gBAChB,qEAAqE;gBACrE,6CAA6C;gBAC7C,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACvE,IAAI,GAAW,CAAC;gBAChB,gEAAgE;gBAChE,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBAChC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;oBACpC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;wBACjB,MAAM,MAAM,CAAC,KAAK,CAAC;oBACrB,CAAC;yBAAM,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;wBAC5B,kEAAkE;wBAClE,iEAAiE;wBACjE,4DAA4D;wBAC5D,MAAM,EAAE,IAAI,CACV,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,EACxD,yCAAyC,CAC1C,CAAC;oBACJ,CAAC;oBACD,gEAAgE;gBAClE,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC;IAC/B,CAAC;CACF;AAYD,yEAAyE;AACzE,6EAA6E;AAC7E,8EAA8E;AAC9E,0BAA0B;AAC1B,SAAS,aAAa,CAAC,KAAa;IAClC,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS,CAAC,8BAA8B;QACvF,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC/D,IAAI,KAAK,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACzD,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,6BAA6B;QAChF,IAAI,KAAK,KAAK,OAAO;YAAE,KAAK,GAAG,KAAK,CAAC;aAChC,IAAI,KAAK,KAAK,MAAM;YAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjD,uCAAuC;IACzC,CAAC;IACD,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC7D,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC;QACH,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,4EAA4E;QAC5E,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IACtF,CAAC;AACH,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { ChildProcess } from "node:child_process";
2
+ import type { Logger } from "pino";
3
+ export interface DeepseekServeProcess {
4
+ readonly baseUrl: string;
5
+ readonly token: string;
6
+ readonly child: ChildProcess;
7
+ stderrTail(): string;
8
+ close(): void;
9
+ }
10
+ export interface StartServeOptions {
11
+ binary: string;
12
+ prefixArgs?: string[];
13
+ env: NodeJS.ProcessEnv;
14
+ logger: Logger;
15
+ startupTimeoutMs?: number;
16
+ }
17
+ export declare function startDeepseekServe(options: StartServeOptions): Promise<DeepseekServeProcess>;
18
+ //# sourceMappingURL=serve-process.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve-process.d.ts","sourceRoot":"","sources":["../../../../../../src/server/agent/providers/deepseek/serve-process.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AASnC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,UAAU,IAAI,MAAM,CAAC;IACrB,KAAK,IAAI,IAAI,CAAC;CACf;AAqCD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IAEf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAKD,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,oBAAoB,CAAC,CA4D/B"}
@@ -0,0 +1,93 @@
1
+ import { createServer } from "node:net";
2
+ import { randomUUID } from "node:crypto";
3
+ import { spawnProcess } from "../../../../utils/spawn.js";
4
+ async function findFreePort() {
5
+ return new Promise((resolve, reject) => {
6
+ const srv = createServer();
7
+ srv.once("error", reject);
8
+ srv.listen(0, "127.0.0.1", () => {
9
+ const addr = srv.address();
10
+ if (addr && typeof addr === "object") {
11
+ const { port } = addr;
12
+ srv.close(() => resolve(port));
13
+ }
14
+ else {
15
+ srv.close(() => reject(new Error("failed to acquire a free port")));
16
+ }
17
+ });
18
+ });
19
+ }
20
+ async function waitForHealth(baseUrl, timeoutMs) {
21
+ const deadline = Date.now() + timeoutMs;
22
+ let lastError;
23
+ while (Date.now() < deadline) {
24
+ try {
25
+ const res = await fetch(`${baseUrl}/health`);
26
+ if (res.ok)
27
+ return;
28
+ }
29
+ catch (err) {
30
+ lastError = err;
31
+ }
32
+ await new Promise((r) => setTimeout(r, 150));
33
+ }
34
+ throw new Error(`codewhale serve did not become healthy within ${timeoutMs}ms${lastError ? `: ${String(lastError)}` : ""}`);
35
+ }
36
+ // Spawn `codewhale serve --http` on a private loopback port with a generated
37
+ // bearer token, then block until /health responds. The caller owns teardown
38
+ // via close().
39
+ export async function startDeepseekServe(options) {
40
+ const { binary, prefixArgs = [], env, logger } = options;
41
+ const port = await findFreePort();
42
+ const token = randomUUID();
43
+ const baseUrl = `http://127.0.0.1:${port}`;
44
+ const args = [
45
+ ...prefixArgs,
46
+ "serve",
47
+ "--http",
48
+ "--host",
49
+ "127.0.0.1",
50
+ "--port",
51
+ String(port),
52
+ "--auth-token",
53
+ token,
54
+ ];
55
+ logger.debug({ binary, port }, "Starting codewhale serve --http");
56
+ const child = spawnProcess(binary, args, {
57
+ stdio: ["ignore", "pipe", "pipe"],
58
+ env,
59
+ });
60
+ let stderrTail = "";
61
+ const appendStderr = (chunk) => {
62
+ // CodeWhale leaks terminal-title escape codes to stderr; keep the tail
63
+ // small and let the parser ignore noise.
64
+ stderrTail = (stderrTail + chunk.toString()).slice(-4000);
65
+ };
66
+ child.stderr?.on("data", appendStderr);
67
+ // serve logs its "Runtime API listening" banner to stdout; capture for tail.
68
+ child.stdout?.on("data", appendStderr);
69
+ let exited = false;
70
+ child.once("exit", (code, signal) => {
71
+ exited = true;
72
+ logger.debug({ code, signal }, "codewhale serve exited");
73
+ });
74
+ try {
75
+ await waitForHealth(baseUrl, options.startupTimeoutMs ?? 30000);
76
+ }
77
+ catch (err) {
78
+ if (!child.killed)
79
+ child.kill("SIGTERM");
80
+ throw new Error(`${err instanceof Error ? err.message : String(err)}${stderrTail ? `\n--- codewhale serve output ---\n${stderrTail}` : ""}`);
81
+ }
82
+ return {
83
+ baseUrl,
84
+ token,
85
+ child,
86
+ stderrTail: () => stderrTail,
87
+ close: () => {
88
+ if (!exited && !child.killed)
89
+ child.kill("SIGTERM");
90
+ },
91
+ };
92
+ }
93
+ //# sourceMappingURL=serve-process.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve-process.js","sourceRoot":"","sources":["../../../../../../src/server/agent/providers/deepseek/serve-process.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ import type { Logger } from "pino";
2
+ import type { AgentCapabilityFlags, AgentClient, AgentLaunchContext, AgentMode, AgentModelDefinition, AgentPermissionRequest, AgentPermissionResponse, AgentPersistenceHandle, AgentPromptInput, AgentRunOptions, AgentRunResult, AgentRuntimeInfo, AgentSession, AgentSessionConfig, AgentStreamEvent, ListModelsOptions } from "../agent-sdk-types.js";
3
+ import { type ProviderRuntimeSettings } from "../provider-launch-config.js";
4
+ import { DEEPSEEK_PROVIDER } from "./deepseek/constants.js";
5
+ import { type DeepseekServeProcess } from "./deepseek/serve-process.js";
6
+ export { DEEPSEEK_PROVIDER };
7
+ /**
8
+ * Resolve the LLM gateway the CodeWhale serve subprocess should hit.
9
+ *
10
+ * serve runs in `DEEPSEEK_PROVIDER=openai` mode and reads `OPENAI_BASE_URL` /
11
+ * `OPENAI_API_KEY`, then appends `/v1/chat/completions` itself. The LLM gateway
12
+ * lives in `SEAWORK_LLM_BASE_URL` (auth.json base_url, e.g.
13
+ * `https://api.seawork.ai/llm`); the desktop sets `OPENAI_BASE_URL` to the
14
+ * *image* gateway, which has no chat-completions route. Reading OPENAI_BASE_URL
15
+ * verbatim is what produced `404 Cannot POST /v1/chat/completions`. So we take
16
+ * the gateway ONLY from SEAWORK_LLM_BASE_URL and pass it as the gateway root
17
+ * (do NOT append `/v1` — serve does that).
18
+ */
19
+ export declare function resolveDeepseekGatewayEnv(env: NodeJS.ProcessEnv): {
20
+ baseURL: string | null;
21
+ apiKey: string | null;
22
+ };
23
+ export declare class DeepseekAgentClient implements AgentClient {
24
+ private readonly logger;
25
+ private readonly runtimeSettings?;
26
+ readonly provider: "deepseek";
27
+ readonly capabilities: AgentCapabilityFlags;
28
+ private availabilityCache;
29
+ constructor(logger: Logger, runtimeSettings?: ProviderRuntimeSettings | undefined);
30
+ createSession(config: AgentSessionConfig, launchContext?: AgentLaunchContext): Promise<AgentSession>;
31
+ resumeSession(handle: AgentPersistenceHandle, overrides?: Partial<AgentSessionConfig>, launchContext?: AgentLaunchContext): Promise<AgentSession>;
32
+ listModels(_options?: ListModelsOptions): Promise<AgentModelDefinition[]>;
33
+ listModes(): Promise<AgentMode[]>;
34
+ isAvailable(): Promise<boolean>;
35
+ getDiagnostic(): Promise<{
36
+ diagnostic: string;
37
+ }>;
38
+ private spawnEnv;
39
+ private openSession;
40
+ }
41
+ export declare class DeepseekSession implements AgentSession {
42
+ private readonly config;
43
+ private readonly resumeHandle;
44
+ private readonly logger;
45
+ private readonly serve;
46
+ readonly provider: "deepseek";
47
+ readonly capabilities: AgentCapabilityFlags;
48
+ private readonly client;
49
+ private readonly subscribers;
50
+ private readonly history;
51
+ private persistedHistory;
52
+ private readonly pendingPermissions;
53
+ private readonly pendingPermissionTurn;
54
+ private threadId;
55
+ private currentMode;
56
+ private model;
57
+ private sseAbort;
58
+ private eventStreamReady;
59
+ private closed;
60
+ private lastStartedTurnId;
61
+ private lastTerminatedTurnId;
62
+ private turnStartInFlight;
63
+ private readonly assistantTextByTurn;
64
+ private activeTurnId;
65
+ private recoveringConflict;
66
+ constructor(config: AgentSessionConfig, resumeHandle: AgentPersistenceHandle | null, logger: Logger, serve: DeepseekServeProcess);
67
+ get id(): string | null;
68
+ connect(): Promise<void>;
69
+ run(prompt: AgentPromptInput, options?: AgentRunOptions): Promise<AgentRunResult>;
70
+ startTurn(prompt: AgentPromptInput, _options?: AgentRunOptions): Promise<{
71
+ turnId: string;
72
+ }>;
73
+ private tryRecoverActiveTurnConflict;
74
+ private resolveConflictingTurnId;
75
+ private getRecoverableLocalActiveTurnId;
76
+ private ensureEventStream;
77
+ subscribe(callback: (event: AgentStreamEvent) => void): () => void;
78
+ streamHistory(): AsyncGenerator<AgentStreamEvent>;
79
+ private loadPersistedHistory;
80
+ getRuntimeInfo(): Promise<AgentRuntimeInfo>;
81
+ getAvailableModes(): Promise<AgentMode[]>;
82
+ getCurrentMode(): Promise<string | null>;
83
+ setMode(modeId: string): Promise<void>;
84
+ getPendingPermissions(): AgentPermissionRequest[];
85
+ respondToPermission(requestId: string, response: AgentPermissionResponse): Promise<void>;
86
+ private clearPendingPermissionsForTurn;
87
+ describePersistence(): AgentPersistenceHandle | null;
88
+ interrupt(): Promise<void>;
89
+ close(): Promise<void>;
90
+ getRecentStderrTail(): string | undefined;
91
+ setModel(modelId: string | null): Promise<void>;
92
+ private emit;
93
+ }
94
+ //# sourceMappingURL=deepseek-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepseek-agent.d.ts","sourceRoot":"","sources":["../../../../../src/server/agent/providers/deepseek-agent.ts"],"names":[],"mappings":"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"}