whale-code 6.5.4 → 6.5.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 (853) hide show
  1. package/README.md +39 -31
  2. package/bin/{swagmanager-mcp.js → whale-code.js} +17 -2
  3. package/dist/cli/app.js +148 -72
  4. package/dist/cli/app.js.map +1 -0
  5. package/dist/cli/chat/AgentSelector.js +105 -10
  6. package/dist/cli/chat/AgentSelector.js.map +1 -0
  7. package/dist/cli/chat/ChatApp.d.ts +31 -0
  8. package/dist/cli/chat/ChatApp.js +539 -286
  9. package/dist/cli/chat/ChatApp.js.map +1 -0
  10. package/dist/cli/chat/ChatInput.js +1088 -770
  11. package/dist/cli/chat/ChatInput.js.map +1 -0
  12. package/dist/cli/chat/MarkdownText.js +39 -14
  13. package/dist/cli/chat/MarkdownText.js.map +1 -0
  14. package/dist/cli/chat/MemoryManager.js +181 -46
  15. package/dist/cli/chat/MemoryManager.js.map +1 -0
  16. package/dist/cli/chat/MessageList.d.ts +2 -3
  17. package/dist/cli/chat/MessageList.js +186 -45
  18. package/dist/cli/chat/MessageList.js.map +1 -0
  19. package/dist/cli/chat/ModelSelector.js +282 -63
  20. package/dist/cli/chat/ModelSelector.js.map +1 -0
  21. package/dist/cli/chat/NodeManager.js +165 -75
  22. package/dist/cli/chat/NodeManager.js.map +1 -0
  23. package/dist/cli/chat/NodeSelector.js +171 -30
  24. package/dist/cli/chat/NodeSelector.js.map +1 -0
  25. package/dist/cli/chat/PlanApproval.js +281 -57
  26. package/dist/cli/chat/PlanApproval.js.map +1 -0
  27. package/dist/cli/chat/RewindViewer.js +559 -144
  28. package/dist/cli/chat/RewindViewer.js.map +1 -0
  29. package/dist/cli/chat/SessionManager.js +137 -30
  30. package/dist/cli/chat/SessionManager.js.map +1 -0
  31. package/dist/cli/chat/SlashMenu.js +293 -164
  32. package/dist/cli/chat/SlashMenu.js.map +1 -0
  33. package/dist/cli/chat/StatusBar.js +172 -9
  34. package/dist/cli/chat/StatusBar.js.map +1 -0
  35. package/dist/cli/chat/StoreSelector.js +147 -18
  36. package/dist/cli/chat/StoreSelector.js.map +1 -0
  37. package/dist/cli/chat/StreamingText.d.ts +1 -5
  38. package/dist/cli/chat/StreamingText.js +22 -7
  39. package/dist/cli/chat/StreamingText.js.map +1 -0
  40. package/dist/cli/chat/SubagentPanel.d.ts +1 -2
  41. package/dist/cli/chat/SubagentPanel.js +612 -72
  42. package/dist/cli/chat/SubagentPanel.js.map +1 -0
  43. package/dist/cli/chat/TeamPanel.d.ts +1 -0
  44. package/dist/cli/chat/TeamPanel.js +230 -30
  45. package/dist/cli/chat/TeamPanel.js.map +1 -0
  46. package/dist/cli/chat/ThemeSelector.js +84 -24
  47. package/dist/cli/chat/ThemeSelector.js.map +1 -0
  48. package/dist/cli/chat/ToolIndicator.js +1476 -371
  49. package/dist/cli/chat/ToolIndicator.js.map +1 -0
  50. package/dist/cli/chat/hooks/useAgentLoop.d.ts +1 -0
  51. package/dist/cli/chat/hooks/useAgentLoop.js +481 -367
  52. package/dist/cli/chat/hooks/useAgentLoop.js.map +1 -0
  53. package/dist/cli/chat/hooks/useSlashCommands.d.ts +3 -14
  54. package/dist/cli/chat/hooks/useSlashCommands.js +744 -572
  55. package/dist/cli/chat/hooks/useSlashCommands.js.map +1 -0
  56. package/dist/cli/commands/config-cmd.js +56 -57
  57. package/dist/cli/commands/config-cmd.js.map +1 -0
  58. package/dist/cli/commands/db.js +184 -169
  59. package/dist/cli/commands/db.js.map +1 -0
  60. package/dist/cli/commands/doctor.js +212 -122
  61. package/dist/cli/commands/doctor.js.map +1 -0
  62. package/dist/cli/commands/init.js +211 -244
  63. package/dist/cli/commands/init.js.map +1 -0
  64. package/dist/cli/commands/mcp.js +127 -122
  65. package/dist/cli/commands/mcp.js.map +1 -0
  66. package/dist/cli/login/LoginApp.js +355 -141
  67. package/dist/cli/login/LoginApp.js.map +1 -0
  68. package/dist/cli/print-mode.js +196 -177
  69. package/dist/cli/print-mode.js.map +1 -0
  70. package/dist/cli/serve-mode.js +615 -530
  71. package/dist/cli/serve-mode.js.map +1 -0
  72. package/dist/cli/services/agent-config.d.ts +29 -0
  73. package/dist/cli/services/agent-config.js +91 -0
  74. package/dist/cli/services/agent-config.js.map +1 -0
  75. package/dist/cli/services/agent-definitions.d.ts +4 -1
  76. package/dist/cli/services/agent-definitions.js +97 -56
  77. package/dist/cli/services/agent-definitions.js.map +1 -0
  78. package/dist/cli/services/agent-events.js +225 -162
  79. package/dist/cli/services/agent-events.js.map +1 -0
  80. package/dist/cli/services/agent-loop.js +978 -669
  81. package/dist/cli/services/agent-loop.js.map +1 -0
  82. package/dist/cli/services/agent-worker-base.d.ts +35 -5
  83. package/dist/cli/services/agent-worker-base.js +337 -153
  84. package/dist/cli/services/agent-worker-base.js.map +1 -0
  85. package/dist/cli/services/api-retry.js +69 -64
  86. package/dist/cli/services/api-retry.js.map +1 -0
  87. package/dist/cli/services/auth-service.d.ts +3 -3
  88. package/dist/cli/services/auth-service.js +209 -132
  89. package/dist/cli/services/auth-service.js.map +1 -0
  90. package/dist/cli/services/background-processes.js +343 -267
  91. package/dist/cli/services/background-processes.js.map +1 -0
  92. package/dist/cli/services/browser-auth.d.ts +2 -2
  93. package/dist/cli/services/browser-auth.js +159 -118
  94. package/dist/cli/services/browser-auth.js.map +1 -0
  95. package/dist/cli/services/claude-md-loader.js +40 -36
  96. package/dist/cli/services/claude-md-loader.js.map +1 -0
  97. package/dist/cli/services/config-store.d.ts +9 -4
  98. package/dist/cli/services/config-store.js +164 -117
  99. package/dist/cli/services/config-store.js.map +1 -0
  100. package/dist/cli/services/debug-log.d.ts +1 -1
  101. package/dist/cli/services/debug-log.js +34 -35
  102. package/dist/cli/services/debug-log.js.map +1 -0
  103. package/dist/cli/services/env-detect.d.ts +7 -0
  104. package/dist/cli/services/env-detect.js +9 -0
  105. package/dist/cli/services/env-detect.js.map +1 -0
  106. package/dist/cli/services/error-logger.d.ts +2 -3
  107. package/dist/cli/services/error-logger.js +189 -180
  108. package/dist/cli/services/error-logger.js.map +1 -0
  109. package/dist/cli/services/file-history.d.ts +1 -1
  110. package/dist/cli/services/file-history.js +50 -54
  111. package/dist/cli/services/file-history.js.map +1 -0
  112. package/dist/cli/services/format-server-response.js +332 -372
  113. package/dist/cli/services/format-server-response.js.map +1 -0
  114. package/dist/cli/services/git-context.js +61 -45
  115. package/dist/cli/services/git-context.js.map +1 -0
  116. package/dist/cli/services/hooks.d.ts +2 -2
  117. package/dist/cli/services/hooks.js +195 -180
  118. package/dist/cli/services/hooks.js.map +1 -0
  119. package/dist/cli/services/ink-incremental.d.ts +19 -0
  120. package/dist/cli/services/ink-incremental.js +59 -0
  121. package/dist/cli/services/ink-incremental.js.map +1 -0
  122. package/dist/cli/services/ink-resize-fix.js +54 -44
  123. package/dist/cli/services/ink-resize-fix.js.map +1 -0
  124. package/dist/cli/services/ink-sync-output.d.ts +12 -0
  125. package/dist/cli/services/ink-sync-output.js +16 -0
  126. package/dist/cli/services/ink-sync-output.js.map +1 -0
  127. package/dist/cli/services/interactive-tools.js +268 -212
  128. package/dist/cli/services/interactive-tools.js.map +1 -0
  129. package/dist/cli/services/keybinding-manager.d.ts +11 -1
  130. package/dist/cli/services/keybinding-manager.js +126 -63
  131. package/dist/cli/services/keybinding-manager.js.map +1 -0
  132. package/dist/cli/services/local-tools.d.ts +1 -1
  133. package/dist/cli/services/local-tools.js +939 -656
  134. package/dist/cli/services/local-tools.js.map +1 -0
  135. package/dist/cli/services/lsp-manager.js +757 -594
  136. package/dist/cli/services/lsp-manager.js.map +1 -0
  137. package/dist/cli/services/mcp-client.d.ts +1 -1
  138. package/dist/cli/services/mcp-client.js +173 -134
  139. package/dist/cli/services/mcp-client.js.map +1 -0
  140. package/dist/cli/services/memory-manager.js +53 -40
  141. package/dist/cli/services/memory-manager.js.map +1 -0
  142. package/dist/cli/services/model-manager.js +55 -40
  143. package/dist/cli/services/model-manager.js.map +1 -0
  144. package/dist/cli/services/model-router.js +115 -85
  145. package/dist/cli/services/model-router.js.map +1 -0
  146. package/dist/cli/services/paths.d.ts +30 -0
  147. package/dist/cli/services/paths.js +81 -0
  148. package/dist/cli/services/paths.js.map +1 -0
  149. package/dist/cli/services/permission-modes.js +32 -25
  150. package/dist/cli/services/permission-modes.js.map +1 -0
  151. package/dist/cli/services/rewind.js +182 -168
  152. package/dist/cli/services/rewind.js.map +1 -0
  153. package/dist/cli/services/ripgrep.js +115 -115
  154. package/dist/cli/services/ripgrep.js.map +1 -0
  155. package/dist/cli/services/sandbox.d.ts +1 -1
  156. package/dist/cli/services/sandbox.js +58 -37
  157. package/dist/cli/services/sandbox.js.map +1 -0
  158. package/dist/cli/services/server-tools.js +738 -565
  159. package/dist/cli/services/server-tools.js.map +1 -0
  160. package/dist/cli/services/session-persistence.js +69 -74
  161. package/dist/cli/services/session-persistence.js.map +1 -0
  162. package/dist/cli/services/subagent-worker.js +42 -27
  163. package/dist/cli/services/subagent-worker.js.map +1 -0
  164. package/dist/cli/services/subagent.d.ts +2 -0
  165. package/dist/cli/services/subagent.js +606 -430
  166. package/dist/cli/services/subagent.js.map +1 -0
  167. package/dist/cli/services/system-prompt.js +86 -78
  168. package/dist/cli/services/system-prompt.js.map +1 -0
  169. package/dist/cli/services/task-decomposer.d.ts +1 -1
  170. package/dist/cli/services/task-decomposer.js +172 -139
  171. package/dist/cli/services/task-decomposer.js.map +1 -0
  172. package/dist/cli/services/team-lead.d.ts +2 -2
  173. package/dist/cli/services/team-lead.js +727 -529
  174. package/dist/cli/services/team-lead.js.map +1 -0
  175. package/dist/cli/services/team-state.js +319 -319
  176. package/dist/cli/services/team-state.js.map +1 -0
  177. package/dist/cli/services/teammate.d.ts +8 -2
  178. package/dist/cli/services/teammate.js +862 -560
  179. package/dist/cli/services/teammate.js.map +1 -0
  180. package/dist/cli/services/telemetry.d.ts +6 -1
  181. package/dist/cli/services/telemetry.js +180 -157
  182. package/dist/cli/services/telemetry.js.map +1 -0
  183. package/dist/cli/services/tools/agent-tools.d.ts +3 -3
  184. package/dist/cli/services/tools/agent-tools.js +480 -322
  185. package/dist/cli/services/tools/agent-tools.js.map +1 -0
  186. package/dist/cli/services/tools/file-ops.js +563 -450
  187. package/dist/cli/services/tools/file-ops.js.map +1 -0
  188. package/dist/cli/services/tools/search-tools.js +231 -162
  189. package/dist/cli/services/tools/search-tools.js.map +1 -0
  190. package/dist/cli/services/tools/shell-exec.js +197 -151
  191. package/dist/cli/services/tools/shell-exec.js.map +1 -0
  192. package/dist/cli/services/tools/task-manager.js +206 -173
  193. package/dist/cli/services/tools/task-manager.js.map +1 -0
  194. package/dist/cli/services/tools/web-tools.js +388 -341
  195. package/dist/cli/services/tools/web-tools.js.map +1 -0
  196. package/dist/cli/setup/SetupApp.d.ts +2 -2
  197. package/dist/cli/setup/SetupApp.js +608 -160
  198. package/dist/cli/setup/SetupApp.js.map +1 -0
  199. package/dist/cli/shared/ErrorBoundary.d.ts +22 -0
  200. package/dist/cli/shared/ErrorBoundary.js +73 -0
  201. package/dist/cli/shared/ErrorBoundary.js.map +1 -0
  202. package/dist/cli/shared/MatrixIntro.js +66 -69
  203. package/dist/cli/shared/MatrixIntro.js.map +1 -0
  204. package/dist/cli/shared/SpinnerSlot.d.ts +14 -0
  205. package/dist/cli/shared/SpinnerSlot.js +63 -0
  206. package/dist/cli/shared/SpinnerSlot.js.map +1 -0
  207. package/dist/cli/shared/Theme.d.ts +1 -1
  208. package/dist/cli/shared/Theme.js +136 -92
  209. package/dist/cli/shared/Theme.js.map +1 -0
  210. package/dist/cli/shared/WhaleBanner.js +99 -11
  211. package/dist/cli/shared/WhaleBanner.js.map +1 -0
  212. package/dist/cli/shared/markdown.d.ts +3 -1
  213. package/dist/cli/shared/markdown.js +736 -674
  214. package/dist/cli/shared/markdown.js.map +1 -0
  215. package/dist/cli/shared/marked-terminal.d.js +2 -0
  216. package/dist/cli/shared/marked-terminal.d.js.map +1 -0
  217. package/dist/cli/shared/theme-manager.js +99 -90
  218. package/dist/cli/shared/theme-manager.js.map +1 -0
  219. package/dist/cli/shared/theme-presets.js +256 -254
  220. package/dist/cli/shared/theme-presets.js.map +1 -0
  221. package/dist/cli/status/StatusApp.js +235 -86
  222. package/dist/cli/status/StatusApp.js.map +1 -0
  223. package/dist/cli/stores/StoreApp.js +275 -65
  224. package/dist/cli/stores/StoreApp.js.map +1 -0
  225. package/dist/index.d.ts +2 -2
  226. package/dist/index.js +509 -396
  227. package/dist/index.js.map +1 -0
  228. package/dist/local-agent/connection.d.ts +2 -2
  229. package/dist/local-agent/connection.js +352 -293
  230. package/dist/local-agent/connection.js.map +1 -0
  231. package/dist/local-agent/discovery.js +259 -122
  232. package/dist/local-agent/discovery.js.map +1 -0
  233. package/dist/local-agent/executor.js +216 -193
  234. package/dist/local-agent/executor.js.map +1 -0
  235. package/dist/local-agent/index.d.ts +2 -2
  236. package/dist/local-agent/index.js +156 -156
  237. package/dist/local-agent/index.js.map +1 -0
  238. package/dist/node/adapters/base.js +18 -8
  239. package/dist/node/adapters/base.js.map +1 -0
  240. package/dist/node/adapters/discord.js +286 -275
  241. package/dist/node/adapters/discord.js.map +1 -0
  242. package/dist/node/adapters/email.js +189 -202
  243. package/dist/node/adapters/email.js.map +1 -0
  244. package/dist/node/adapters/imessage.js +145 -142
  245. package/dist/node/adapters/imessage.js.map +1 -0
  246. package/dist/node/adapters/slack.js +237 -236
  247. package/dist/node/adapters/slack.js.map +1 -0
  248. package/dist/node/adapters/sms.js +149 -151
  249. package/dist/node/adapters/sms.js.map +1 -0
  250. package/dist/node/adapters/telegram.js +88 -92
  251. package/dist/node/adapters/telegram.js.map +1 -0
  252. package/dist/node/adapters/webchat.js +160 -136
  253. package/dist/node/adapters/webchat.js.map +1 -0
  254. package/dist/node/adapters/whatsapp.js +212 -215
  255. package/dist/node/adapters/whatsapp.js.map +1 -0
  256. package/dist/node/cli.js +884 -653
  257. package/dist/node/cli.js.map +1 -0
  258. package/dist/node/config.js +20 -18
  259. package/dist/node/config.js.map +1 -0
  260. package/dist/node/gateway-client.js +191 -181
  261. package/dist/node/gateway-client.js.map +1 -0
  262. package/dist/node/portal/clipboard.js +161 -130
  263. package/dist/node/portal/clipboard.js.map +1 -0
  264. package/dist/node/portal/discovery.js +51 -45
  265. package/dist/node/portal/discovery.js.map +1 -0
  266. package/dist/node/portal/forward.js +64 -58
  267. package/dist/node/portal/forward.js.map +1 -0
  268. package/dist/node/portal/index.js +246 -221
  269. package/dist/node/portal/index.js.map +1 -0
  270. package/dist/node/portal/multiplexer.js +192 -182
  271. package/dist/node/portal/multiplexer.js.map +1 -0
  272. package/dist/node/portal/permissions.js +102 -70
  273. package/dist/node/portal/permissions.js.map +1 -0
  274. package/dist/node/portal/protocol.js +153 -116
  275. package/dist/node/portal/protocol.js.map +1 -0
  276. package/dist/node/portal/screen.js +80 -69
  277. package/dist/node/portal/screen.js.map +1 -0
  278. package/dist/node/portal/session.js +124 -117
  279. package/dist/node/portal/session.js.map +1 -0
  280. package/dist/node/portal/shell.js +140 -113
  281. package/dist/node/portal/shell.js.map +1 -0
  282. package/dist/node/portal/stream.js +77 -75
  283. package/dist/node/portal/stream.js.map +1 -0
  284. package/dist/node/portal/transfer.js +190 -167
  285. package/dist/node/portal/transfer.js.map +1 -0
  286. package/dist/node/portal/ui.js +124 -99
  287. package/dist/node/portal/ui.js.map +1 -0
  288. package/dist/node/remote-desktop/compile-helper.js +50 -45
  289. package/dist/node/remote-desktop/compile-helper.js.map +1 -0
  290. package/dist/node/remote-desktop/index.js +215 -187
  291. package/dist/node/remote-desktop/index.js.map +1 -0
  292. package/dist/node/remote-desktop/protocol.js +45 -29
  293. package/dist/node/remote-desktop/protocol.js.map +1 -0
  294. package/dist/node/runtime.js +493 -410
  295. package/dist/node/runtime.js.map +1 -0
  296. package/dist/server/handlers/__test-utils__/test-db.js +39 -89
  297. package/dist/server/handlers/__test-utils__/test-db.js.map +1 -0
  298. package/dist/server/handlers/analytics.js +467 -261
  299. package/dist/server/handlers/analytics.js.map +1 -0
  300. package/dist/server/handlers/api-docs.d.ts +6 -0
  301. package/dist/server/handlers/api-docs.js +1613 -0
  302. package/dist/server/handlers/api-docs.js.map +1 -0
  303. package/dist/server/handlers/api-keys.js +295 -232
  304. package/dist/server/handlers/api-keys.js.map +1 -0
  305. package/dist/server/handlers/billing.js +330 -239
  306. package/dist/server/handlers/billing.js.map +1 -0
  307. package/dist/server/handlers/browser.js +468 -395
  308. package/dist/server/handlers/browser.js.map +1 -0
  309. package/dist/server/handlers/catalog.js +1377 -978
  310. package/dist/server/handlers/catalog.js.map +1 -0
  311. package/dist/server/handlers/clickhouse.js +157 -109
  312. package/dist/server/handlers/clickhouse.js.map +1 -0
  313. package/dist/server/handlers/comms.d.ts +0 -53
  314. package/dist/server/handlers/comms.js +1443 -970
  315. package/dist/server/handlers/comms.js.map +1 -0
  316. package/dist/server/handlers/creations.js +461 -394
  317. package/dist/server/handlers/creations.js.map +1 -0
  318. package/dist/server/handlers/crm.js +1082 -791
  319. package/dist/server/handlers/crm.js.map +1 -0
  320. package/dist/server/handlers/discovery.js +251 -232
  321. package/dist/server/handlers/discovery.js.map +1 -0
  322. package/dist/server/handlers/embeddings.js +241 -164
  323. package/dist/server/handlers/embeddings.js.map +1 -0
  324. package/dist/server/handlers/enrichment.js +887 -718
  325. package/dist/server/handlers/enrichment.js.map +1 -0
  326. package/dist/server/handlers/image-gen.js +467 -376
  327. package/dist/server/handlers/image-gen.js.map +1 -0
  328. package/dist/server/handlers/inventory.js +797 -424
  329. package/dist/server/handlers/inventory.js.map +1 -0
  330. package/dist/server/handlers/kali.js +272 -230
  331. package/dist/server/handlers/kali.js.map +1 -0
  332. package/dist/server/handlers/llm-providers.js +803 -580
  333. package/dist/server/handlers/llm-providers.js.map +1 -0
  334. package/dist/server/handlers/local-agent.js +133 -105
  335. package/dist/server/handlers/local-agent.js.map +1 -0
  336. package/dist/server/handlers/media.js +1179 -857
  337. package/dist/server/handlers/media.js.map +1 -0
  338. package/dist/server/handlers/meta-ads.js +2669 -2093
  339. package/dist/server/handlers/meta-ads.js.map +1 -0
  340. package/dist/server/handlers/nodes.js +1321 -913
  341. package/dist/server/handlers/nodes.js.map +1 -0
  342. package/dist/server/handlers/operations.js +183 -157
  343. package/dist/server/handlers/operations.js.map +1 -0
  344. package/dist/server/handlers/platform.js +346 -210
  345. package/dist/server/handlers/platform.js.map +1 -0
  346. package/dist/server/handlers/remove-bg.js +118 -86
  347. package/dist/server/handlers/remove-bg.js.map +1 -0
  348. package/dist/server/handlers/storefront.js +586 -446
  349. package/dist/server/handlers/storefront.js.map +1 -0
  350. package/dist/server/handlers/supply-chain.js +546 -326
  351. package/dist/server/handlers/supply-chain.js.map +1 -0
  352. package/dist/server/handlers/transcription.js +106 -97
  353. package/dist/server/handlers/transcription.js.map +1 -0
  354. package/dist/server/handlers/video-gen.js +593 -424
  355. package/dist/server/handlers/video-gen.js.map +1 -0
  356. package/dist/server/handlers/voice.js +1458 -1017
  357. package/dist/server/handlers/voice.js.map +1 -0
  358. package/dist/server/handlers/workflow-steps.js +2837 -2116
  359. package/dist/server/handlers/workflow-steps.js.map +1 -0
  360. package/dist/server/handlers/workflows.js +1630 -933
  361. package/dist/server/handlers/workflows.js.map +1 -0
  362. package/dist/server/index.js +3166 -2390
  363. package/dist/server/index.js.map +1 -0
  364. package/dist/server/lib/batch-client.js +471 -409
  365. package/dist/server/lib/batch-client.js.map +1 -0
  366. package/dist/server/lib/clickhouse-buffer.js +118 -104
  367. package/dist/server/lib/clickhouse-buffer.js.map +1 -0
  368. package/dist/server/lib/clickhouse-client.js +107 -107
  369. package/dist/server/lib/clickhouse-client.js.map +1 -0
  370. package/dist/server/lib/coa-renderer.js +1786 -356
  371. package/dist/server/lib/coa-renderer.js.map +1 -0
  372. package/dist/server/lib/code-worker-pool.js +227 -177
  373. package/dist/server/lib/code-worker-pool.js.map +1 -0
  374. package/dist/server/lib/code-worker.js +174 -164
  375. package/dist/server/lib/code-worker.js.map +1 -0
  376. package/dist/server/lib/compaction-service.d.ts +2 -12
  377. package/dist/server/lib/compaction-service.js +74 -184
  378. package/dist/server/lib/compaction-service.js.map +1 -0
  379. package/dist/server/lib/logger.js +36 -24
  380. package/dist/server/lib/logger.js.map +1 -0
  381. package/dist/server/lib/otel.js +101 -80
  382. package/dist/server/lib/otel.js.map +1 -0
  383. package/dist/server/lib/pdf-renderer.d.ts +1 -1
  384. package/dist/server/lib/pdf-renderer.js +954 -776
  385. package/dist/server/lib/pdf-renderer.js.map +1 -0
  386. package/dist/server/lib/prompt-sanitizer.js +188 -108
  387. package/dist/server/lib/prompt-sanitizer.js.map +1 -0
  388. package/dist/server/lib/provider-capabilities.js +136 -138
  389. package/dist/server/lib/provider-capabilities.js.map +1 -0
  390. package/dist/server/lib/provider-failover.js +190 -168
  391. package/dist/server/lib/provider-failover.js.map +1 -0
  392. package/dist/server/lib/rate-limiter.js +186 -117
  393. package/dist/server/lib/rate-limiter.js.map +1 -0
  394. package/dist/server/lib/react-pdf-layout.js +551 -382
  395. package/dist/server/lib/react-pdf-layout.js.map +1 -0
  396. package/dist/server/lib/server-agent-loop.d.ts +9 -0
  397. package/dist/server/lib/server-agent-loop.js +906 -624
  398. package/dist/server/lib/server-agent-loop.js.map +1 -0
  399. package/dist/server/lib/server-subagent.d.ts +2 -0
  400. package/dist/server/lib/server-subagent.js +260 -162
  401. package/dist/server/lib/server-subagent.js.map +1 -0
  402. package/dist/server/lib/session-checkpoint.js +105 -96
  403. package/dist/server/lib/session-checkpoint.js.map +1 -0
  404. package/dist/server/lib/ssrf-guard.js +193 -184
  405. package/dist/server/lib/ssrf-guard.js.map +1 -0
  406. package/dist/server/lib/supabase-client.js +94 -82
  407. package/dist/server/lib/supabase-client.js.map +1 -0
  408. package/dist/server/lib/template-resolver.js +154 -176
  409. package/dist/server/lib/template-resolver.js.map +1 -0
  410. package/dist/server/lib/utils.js +242 -133
  411. package/dist/server/lib/utils.js.map +1 -0
  412. package/dist/server/local-agent-gateway.d.ts +2 -2
  413. package/dist/server/local-agent-gateway.js +785 -627
  414. package/dist/server/local-agent-gateway.js.map +1 -0
  415. package/dist/server/providers/anthropic.js +254 -176
  416. package/dist/server/providers/anthropic.js.map +1 -0
  417. package/dist/server/providers/bedrock.js +221 -162
  418. package/dist/server/providers/bedrock.js.map +1 -0
  419. package/dist/server/providers/gemini.js +548 -418
  420. package/dist/server/providers/gemini.js.map +1 -0
  421. package/dist/server/providers/openai.js +571 -437
  422. package/dist/server/providers/openai.js.map +1 -0
  423. package/dist/server/providers/registry.js +23 -18
  424. package/dist/server/providers/registry.js.map +1 -0
  425. package/dist/server/providers/shared.js +123 -95
  426. package/dist/server/providers/shared.js.map +1 -0
  427. package/dist/server/providers/types.js +1 -11
  428. package/dist/server/providers/types.js.map +1 -0
  429. package/dist/server/proxy-handlers.js +209 -165
  430. package/dist/server/proxy-handlers.js.map +1 -0
  431. package/dist/server/tool-router.d.ts +13 -0
  432. package/dist/server/tool-router.js +960 -598
  433. package/dist/server/tool-router.js.map +1 -0
  434. package/dist/server/validation.js +248 -188
  435. package/dist/server/validation.js.map +1 -0
  436. package/dist/server/worker.js +202 -133
  437. package/dist/server/worker.js.map +1 -0
  438. package/dist/setup.d.ts +2 -2
  439. package/dist/setup.js +151 -147
  440. package/dist/setup.js.map +1 -0
  441. package/dist/shared/agent-core.d.ts +191 -24
  442. package/dist/shared/agent-core.js +971 -462
  443. package/dist/shared/agent-core.js.map +1 -0
  444. package/dist/shared/anthropic-types.js +1 -6
  445. package/dist/shared/anthropic-types.js.map +1 -0
  446. package/dist/shared/api-client.d.ts +17 -9
  447. package/dist/shared/api-client.js +419 -327
  448. package/dist/shared/api-client.js.map +1 -0
  449. package/dist/shared/compaction.d.ts +36 -0
  450. package/dist/shared/compaction.js +138 -0
  451. package/dist/shared/compaction.js.map +1 -0
  452. package/dist/shared/constants.js +67 -64
  453. package/dist/shared/constants.js.map +1 -0
  454. package/dist/shared/sse-parser.js +221 -219
  455. package/dist/shared/sse-parser.js.map +1 -0
  456. package/dist/shared/tool-dispatch.d.ts +4 -2
  457. package/dist/shared/tool-dispatch.js +226 -165
  458. package/dist/shared/tool-dispatch.js.map +1 -0
  459. package/dist/shared/types.js +1 -6
  460. package/dist/shared/types.js.map +1 -0
  461. package/dist/types/cli-highlight.d.js +2 -0
  462. package/dist/types/cli-highlight.d.js.map +1 -0
  463. package/dist/types/diff.d.js +2 -0
  464. package/dist/types/diff.d.js.map +1 -0
  465. package/dist/types/pdf-parse.d.js +2 -0
  466. package/dist/types/pdf-parse.d.js.map +1 -0
  467. package/dist/updater.d.ts +1 -1
  468. package/dist/updater.js +118 -92
  469. package/dist/updater.js.map +1 -0
  470. package/dist/webchat/widget.js +227 -380
  471. package/dist/webchat/widget.js.map +1 -0
  472. package/package.json +22 -10
  473. package/vendor/ink/build/ansi-tokenizer.d.ts +38 -0
  474. package/vendor/ink/build/ansi-tokenizer.js +316 -0
  475. package/vendor/ink/build/ansi-tokenizer.js.map +1 -0
  476. package/vendor/ink/build/apply-styles.js +175 -0
  477. package/vendor/ink/build/build-layout.js +77 -0
  478. package/vendor/ink/build/calculate-wrapped-text.js +53 -0
  479. package/vendor/ink/build/colorize.d.ts +3 -0
  480. package/vendor/ink/build/colorize.js +48 -0
  481. package/vendor/ink/build/colorize.js.map +1 -0
  482. package/vendor/ink/build/components/AccessibilityContext.d.ts +3 -0
  483. package/vendor/ink/build/components/AccessibilityContext.js +5 -0
  484. package/vendor/ink/build/components/AccessibilityContext.js.map +1 -0
  485. package/vendor/ink/build/components/App.d.ts +18 -0
  486. package/vendor/ink/build/components/App.js +351 -0
  487. package/vendor/ink/build/components/App.js.map +1 -0
  488. package/vendor/ink/build/components/AppContext.d.ts +15 -0
  489. package/vendor/ink/build/components/AppContext.js +11 -0
  490. package/vendor/ink/build/components/AppContext.js.map +1 -0
  491. package/vendor/ink/build/components/BackgroundContext.d.ts +4 -0
  492. package/vendor/ink/build/components/BackgroundContext.js +3 -0
  493. package/vendor/ink/build/components/BackgroundContext.js.map +1 -0
  494. package/vendor/ink/build/components/Box.d.ts +117 -0
  495. package/vendor/ink/build/components/Box.js +34 -0
  496. package/vendor/ink/build/components/Box.js.map +1 -0
  497. package/vendor/ink/build/components/Color.js +62 -0
  498. package/vendor/ink/build/components/Cursor.d.ts +83 -0
  499. package/vendor/ink/build/components/Cursor.js +53 -0
  500. package/vendor/ink/build/components/Cursor.js.map +1 -0
  501. package/vendor/ink/build/components/CursorContext.d.ts +11 -0
  502. package/vendor/ink/build/components/CursorContext.js +8 -0
  503. package/vendor/ink/build/components/CursorContext.js.map +1 -0
  504. package/vendor/ink/build/components/ErrorBoundary.d.ts +18 -0
  505. package/vendor/ink/build/components/ErrorBoundary.js +23 -0
  506. package/vendor/ink/build/components/ErrorBoundary.js.map +1 -0
  507. package/vendor/ink/build/components/ErrorOverview.d.ts +6 -0
  508. package/vendor/ink/build/components/ErrorOverview.js +84 -0
  509. package/vendor/ink/build/components/ErrorOverview.js.map +1 -0
  510. package/vendor/ink/build/components/FocusContext.d.ts +16 -0
  511. package/vendor/ink/build/components/FocusContext.js +17 -0
  512. package/vendor/ink/build/components/FocusContext.js.map +1 -0
  513. package/vendor/ink/build/components/Newline.d.ts +13 -0
  514. package/vendor/ink/build/components/Newline.js +8 -0
  515. package/vendor/ink/build/components/Newline.js.map +1 -0
  516. package/vendor/ink/build/components/Spacer.d.ts +7 -0
  517. package/vendor/ink/build/components/Spacer.js +11 -0
  518. package/vendor/ink/build/components/Spacer.js.map +1 -0
  519. package/vendor/ink/build/components/Static.d.ts +24 -0
  520. package/vendor/ink/build/components/Static.js +28 -0
  521. package/vendor/ink/build/components/Static.js.map +1 -0
  522. package/vendor/ink/build/components/StderrContext.d.ts +15 -0
  523. package/vendor/ink/build/components/StderrContext.js +13 -0
  524. package/vendor/ink/build/components/StderrContext.js.map +1 -0
  525. package/vendor/ink/build/components/StdinContext.d.ts +22 -0
  526. package/vendor/ink/build/components/StdinContext.js +19 -0
  527. package/vendor/ink/build/components/StdinContext.js.map +1 -0
  528. package/vendor/ink/build/components/StdoutContext.d.ts +15 -0
  529. package/vendor/ink/build/components/StdoutContext.js +13 -0
  530. package/vendor/ink/build/components/StdoutContext.js.map +1 -0
  531. package/vendor/ink/build/components/Text.d.ts +55 -0
  532. package/vendor/ink/build/components/Text.js +50 -0
  533. package/vendor/ink/build/components/Text.js.map +1 -0
  534. package/vendor/ink/build/components/Transform.d.ts +16 -0
  535. package/vendor/ink/build/components/Transform.js +15 -0
  536. package/vendor/ink/build/components/Transform.js.map +1 -0
  537. package/vendor/ink/build/cursor-helpers.d.ts +38 -0
  538. package/vendor/ink/build/cursor-helpers.js +56 -0
  539. package/vendor/ink/build/cursor-helpers.js.map +1 -0
  540. package/vendor/ink/build/devtools-window-polyfill.d.ts +1 -0
  541. package/vendor/ink/build/devtools-window-polyfill.js +65 -0
  542. package/vendor/ink/build/devtools-window-polyfill.js.map +1 -0
  543. package/vendor/ink/build/devtools.d.ts +1 -0
  544. package/vendor/ink/build/devtools.js +11 -0
  545. package/vendor/ink/build/devtools.js.map +1 -0
  546. package/vendor/ink/build/dom.d.ts +56 -0
  547. package/vendor/ink/build/dom.js +124 -0
  548. package/vendor/ink/build/dom.js.map +1 -0
  549. package/vendor/ink/build/experimental/apply-style.js +140 -0
  550. package/vendor/ink/build/experimental/dom.js +123 -0
  551. package/vendor/ink/build/experimental/output.js +91 -0
  552. package/vendor/ink/build/experimental/reconciler.js +141 -0
  553. package/vendor/ink/build/experimental/renderer.js +81 -0
  554. package/vendor/ink/build/get-max-width.d.ts +3 -0
  555. package/vendor/ink/build/get-max-width.js +10 -0
  556. package/vendor/ink/build/get-max-width.js.map +1 -0
  557. package/vendor/ink/build/hooks/use-app.d.ts +5 -0
  558. package/vendor/ink/build/hooks/use-app.js +8 -0
  559. package/vendor/ink/build/hooks/use-app.js.map +1 -0
  560. package/vendor/ink/build/hooks/use-cursor.d.ts +12 -0
  561. package/vendor/ink/build/hooks/use-cursor.js +29 -0
  562. package/vendor/ink/build/hooks/use-cursor.js.map +1 -0
  563. package/vendor/ink/build/hooks/use-focus-manager.d.ts +28 -0
  564. package/vendor/ink/build/hooks/use-focus-manager.js +17 -0
  565. package/vendor/ink/build/hooks/use-focus-manager.js.map +1 -0
  566. package/vendor/ink/build/hooks/use-focus.d.ts +29 -0
  567. package/vendor/ink/build/hooks/use-focus.js +42 -0
  568. package/vendor/ink/build/hooks/use-focus.js.map +1 -0
  569. package/vendor/ink/build/hooks/use-input.d.ts +131 -0
  570. package/vendor/ink/build/hooks/use-input.js +124 -0
  571. package/vendor/ink/build/hooks/use-input.js.map +1 -0
  572. package/vendor/ink/build/hooks/use-is-screen-reader-enabled.d.ts +5 -0
  573. package/vendor/ink/build/hooks/use-is-screen-reader-enabled.js +11 -0
  574. package/vendor/ink/build/hooks/use-is-screen-reader-enabled.js.map +1 -0
  575. package/vendor/ink/build/hooks/use-stderr.d.ts +5 -0
  576. package/vendor/ink/build/hooks/use-stderr.js +8 -0
  577. package/vendor/ink/build/hooks/use-stderr.js.map +1 -0
  578. package/vendor/ink/build/hooks/use-stdin.d.ts +5 -0
  579. package/vendor/ink/build/hooks/use-stdin.js +8 -0
  580. package/vendor/ink/build/hooks/use-stdin.js.map +1 -0
  581. package/vendor/ink/build/hooks/use-stdout.d.ts +5 -0
  582. package/vendor/ink/build/hooks/use-stdout.js +8 -0
  583. package/vendor/ink/build/hooks/use-stdout.js.map +1 -0
  584. package/vendor/ink/build/hooks/useInput.js +38 -0
  585. package/vendor/ink/build/index.d.ts +34 -0
  586. package/vendor/ink/build/index.js +20 -0
  587. package/vendor/ink/build/index.js.map +1 -0
  588. package/vendor/ink/build/ink.d.ts +90 -0
  589. package/vendor/ink/build/ink.js +654 -0
  590. package/vendor/ink/build/ink.js.map +1 -0
  591. package/vendor/ink/build/input-parser.d.ts +7 -0
  592. package/vendor/ink/build/input-parser.js +154 -0
  593. package/vendor/ink/build/input-parser.js.map +1 -0
  594. package/vendor/ink/build/instance.js +205 -0
  595. package/vendor/ink/build/instances.d.ts +3 -0
  596. package/vendor/ink/build/instances.js +8 -0
  597. package/vendor/ink/build/instances.js.map +1 -0
  598. package/vendor/ink/build/kitty-keyboard.d.ts +23 -0
  599. package/vendor/ink/build/kitty-keyboard.js +32 -0
  600. package/vendor/ink/build/kitty-keyboard.js.map +1 -0
  601. package/vendor/ink/build/layout.d.ts +7 -0
  602. package/vendor/ink/build/layout.js +33 -0
  603. package/vendor/ink/build/layout.js.map +1 -0
  604. package/vendor/ink/build/log-update.d.ts +19 -0
  605. package/vendor/ink/build/log-update.js +243 -0
  606. package/vendor/ink/build/log-update.js.map +1 -0
  607. package/vendor/ink/build/measure-element.d.ts +16 -0
  608. package/vendor/ink/build/measure-element.js +9 -0
  609. package/vendor/ink/build/measure-element.js.map +1 -0
  610. package/vendor/ink/build/measure-text.d.ts +6 -0
  611. package/vendor/ink/build/measure-text.js +21 -0
  612. package/vendor/ink/build/measure-text.js.map +1 -0
  613. package/vendor/ink/build/options.d.ts +52 -0
  614. package/vendor/ink/build/options.js +2 -0
  615. package/vendor/ink/build/options.js.map +1 -0
  616. package/vendor/ink/build/output.d.ts +35 -0
  617. package/vendor/ink/build/output.js +183 -0
  618. package/vendor/ink/build/output.js.map +1 -0
  619. package/vendor/ink/build/parse-keypress.d.ts +22 -0
  620. package/vendor/ink/build/parse-keypress.js +493 -0
  621. package/vendor/ink/build/parse-keypress.js.map +1 -0
  622. package/vendor/ink/build/reconciler.d.ts +4 -0
  623. package/vendor/ink/build/reconciler.js +274 -0
  624. package/vendor/ink/build/reconciler.js.map +1 -0
  625. package/vendor/ink/build/render-background.d.ts +4 -0
  626. package/vendor/ink/build/render-background.js +25 -0
  627. package/vendor/ink/build/render-background.js.map +1 -0
  628. package/vendor/ink/build/render-border.d.ts +4 -0
  629. package/vendor/ink/build/render-border.js +73 -0
  630. package/vendor/ink/build/render-border.js.map +1 -0
  631. package/vendor/ink/build/render-node-to-output.d.ts +14 -0
  632. package/vendor/ink/build/render-node-to-output.js +147 -0
  633. package/vendor/ink/build/render-node-to-output.js.map +1 -0
  634. package/vendor/ink/build/render-to-string.d.ts +38 -0
  635. package/vendor/ink/build/render-to-string.js +115 -0
  636. package/vendor/ink/build/render-to-string.js.map +1 -0
  637. package/vendor/ink/build/render.d.ts +121 -0
  638. package/vendor/ink/build/render.js +55 -0
  639. package/vendor/ink/build/render.js.map +1 -0
  640. package/vendor/ink/build/renderer.d.ts +8 -0
  641. package/vendor/ink/build/renderer.js +55 -0
  642. package/vendor/ink/build/renderer.js.map +1 -0
  643. package/vendor/ink/build/sanitize-ansi.d.ts +2 -0
  644. package/vendor/ink/build/sanitize-ansi.js +27 -0
  645. package/vendor/ink/build/sanitize-ansi.js.map +1 -0
  646. package/vendor/ink/build/screen-reader-update.d.ts +13 -0
  647. package/vendor/ink/build/screen-reader-update.js +38 -0
  648. package/vendor/ink/build/screen-reader-update.js.map +1 -0
  649. package/vendor/ink/build/squash-text-nodes.d.ts +3 -0
  650. package/vendor/ink/build/squash-text-nodes.js +36 -0
  651. package/vendor/ink/build/squash-text-nodes.js.map +1 -0
  652. package/vendor/ink/build/styles.d.ts +240 -0
  653. package/vendor/ink/build/styles.js +232 -0
  654. package/vendor/ink/build/styles.js.map +1 -0
  655. package/vendor/ink/build/utils.d.ts +2 -0
  656. package/vendor/ink/build/utils.js +4 -0
  657. package/vendor/ink/build/utils.js.map +1 -0
  658. package/vendor/ink/build/wrap-text.d.ts +3 -0
  659. package/vendor/ink/build/wrap-text.js +31 -0
  660. package/vendor/ink/build/wrap-text.js.map +1 -0
  661. package/vendor/ink/build/write-synchronized.d.ts +4 -0
  662. package/vendor/ink/build/write-synchronized.js +7 -0
  663. package/vendor/ink/build/write-synchronized.js.map +1 -0
  664. package/vendor/ink/license +10 -0
  665. package/vendor/ink/node_modules/@types/node/LICENSE +21 -0
  666. package/vendor/ink/node_modules/@types/node/README.md +15 -0
  667. package/vendor/ink/node_modules/@types/node/assert/strict.d.ts +105 -0
  668. package/vendor/ink/node_modules/@types/node/assert.d.ts +955 -0
  669. package/vendor/ink/node_modules/@types/node/async_hooks.d.ts +623 -0
  670. package/vendor/ink/node_modules/@types/node/buffer.buffer.d.ts +466 -0
  671. package/vendor/ink/node_modules/@types/node/buffer.d.ts +1810 -0
  672. package/vendor/ink/node_modules/@types/node/child_process.d.ts +1428 -0
  673. package/vendor/ink/node_modules/@types/node/cluster.d.ts +486 -0
  674. package/vendor/ink/node_modules/@types/node/compatibility/iterators.d.ts +21 -0
  675. package/vendor/ink/node_modules/@types/node/console.d.ts +151 -0
  676. package/vendor/ink/node_modules/@types/node/constants.d.ts +20 -0
  677. package/vendor/ink/node_modules/@types/node/crypto.d.ts +4065 -0
  678. package/vendor/ink/node_modules/@types/node/dgram.d.ts +564 -0
  679. package/vendor/ink/node_modules/@types/node/diagnostics_channel.d.ts +576 -0
  680. package/vendor/ink/node_modules/@types/node/dns/promises.d.ts +503 -0
  681. package/vendor/ink/node_modules/@types/node/dns.d.ts +922 -0
  682. package/vendor/ink/node_modules/@types/node/domain.d.ts +166 -0
  683. package/vendor/ink/node_modules/@types/node/events.d.ts +1054 -0
  684. package/vendor/ink/node_modules/@types/node/fs/promises.d.ts +1329 -0
  685. package/vendor/ink/node_modules/@types/node/fs.d.ts +4676 -0
  686. package/vendor/ink/node_modules/@types/node/globals.d.ts +150 -0
  687. package/vendor/ink/node_modules/@types/node/globals.typedarray.d.ts +101 -0
  688. package/vendor/ink/node_modules/@types/node/http.d.ts +2167 -0
  689. package/vendor/ink/node_modules/@types/node/http2.d.ts +2480 -0
  690. package/vendor/ink/node_modules/@types/node/https.d.ts +405 -0
  691. package/vendor/ink/node_modules/@types/node/index.d.ts +115 -0
  692. package/vendor/ink/node_modules/@types/node/inspector/promises.d.ts +41 -0
  693. package/vendor/ink/node_modules/@types/node/inspector.d.ts +224 -0
  694. package/vendor/ink/node_modules/@types/node/inspector.generated.d.ts +4226 -0
  695. package/vendor/ink/node_modules/@types/node/module.d.ts +819 -0
  696. package/vendor/ink/node_modules/@types/node/net.d.ts +933 -0
  697. package/vendor/ink/node_modules/@types/node/os.d.ts +507 -0
  698. package/vendor/ink/node_modules/@types/node/package.json +155 -0
  699. package/vendor/ink/node_modules/@types/node/path/posix.d.ts +8 -0
  700. package/vendor/ink/node_modules/@types/node/path/win32.d.ts +8 -0
  701. package/vendor/ink/node_modules/@types/node/path.d.ts +187 -0
  702. package/vendor/ink/node_modules/@types/node/perf_hooks.d.ts +643 -0
  703. package/vendor/ink/node_modules/@types/node/process.d.ts +2156 -0
  704. package/vendor/ink/node_modules/@types/node/punycode.d.ts +117 -0
  705. package/vendor/ink/node_modules/@types/node/querystring.d.ts +152 -0
  706. package/vendor/ink/node_modules/@types/node/quic.d.ts +910 -0
  707. package/vendor/ink/node_modules/@types/node/readline/promises.d.ts +161 -0
  708. package/vendor/ink/node_modules/@types/node/readline.d.ts +541 -0
  709. package/vendor/ink/node_modules/@types/node/repl.d.ts +415 -0
  710. package/vendor/ink/node_modules/@types/node/sea.d.ts +162 -0
  711. package/vendor/ink/node_modules/@types/node/sqlite.d.ts +955 -0
  712. package/vendor/ink/node_modules/@types/node/stream/consumers.d.ts +38 -0
  713. package/vendor/ink/node_modules/@types/node/stream/promises.d.ts +211 -0
  714. package/vendor/ink/node_modules/@types/node/stream/web.d.ts +296 -0
  715. package/vendor/ink/node_modules/@types/node/stream.d.ts +1760 -0
  716. package/vendor/ink/node_modules/@types/node/string_decoder.d.ts +67 -0
  717. package/vendor/ink/node_modules/@types/node/test/reporters.d.ts +96 -0
  718. package/vendor/ink/node_modules/@types/node/test.d.ts +2240 -0
  719. package/vendor/ink/node_modules/@types/node/timers/promises.d.ts +108 -0
  720. package/vendor/ink/node_modules/@types/node/timers.d.ts +159 -0
  721. package/vendor/ink/node_modules/@types/node/tls.d.ts +1198 -0
  722. package/vendor/ink/node_modules/@types/node/trace_events.d.ts +197 -0
  723. package/vendor/ink/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +462 -0
  724. package/vendor/ink/node_modules/@types/node/ts5.6/compatibility/float16array.d.ts +71 -0
  725. package/vendor/ink/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +36 -0
  726. package/vendor/ink/node_modules/@types/node/ts5.6/index.d.ts +117 -0
  727. package/vendor/ink/node_modules/@types/node/ts5.7/compatibility/float16array.d.ts +72 -0
  728. package/vendor/ink/node_modules/@types/node/ts5.7/index.d.ts +117 -0
  729. package/vendor/ink/node_modules/@types/node/tty.d.ts +250 -0
  730. package/vendor/ink/node_modules/@types/node/url.d.ts +519 -0
  731. package/vendor/ink/node_modules/@types/node/util/types.d.ts +558 -0
  732. package/vendor/ink/node_modules/@types/node/util.d.ts +1662 -0
  733. package/vendor/ink/node_modules/@types/node/v8.d.ts +983 -0
  734. package/vendor/ink/node_modules/@types/node/vm.d.ts +1208 -0
  735. package/vendor/ink/node_modules/@types/node/wasi.d.ts +202 -0
  736. package/vendor/ink/node_modules/@types/node/web-globals/abortcontroller.d.ts +59 -0
  737. package/vendor/ink/node_modules/@types/node/web-globals/blob.d.ts +23 -0
  738. package/vendor/ink/node_modules/@types/node/web-globals/console.d.ts +9 -0
  739. package/vendor/ink/node_modules/@types/node/web-globals/crypto.d.ts +39 -0
  740. package/vendor/ink/node_modules/@types/node/web-globals/domexception.d.ts +68 -0
  741. package/vendor/ink/node_modules/@types/node/web-globals/encoding.d.ts +11 -0
  742. package/vendor/ink/node_modules/@types/node/web-globals/events.d.ts +106 -0
  743. package/vendor/ink/node_modules/@types/node/web-globals/fetch.d.ts +69 -0
  744. package/vendor/ink/node_modules/@types/node/web-globals/importmeta.d.ts +13 -0
  745. package/vendor/ink/node_modules/@types/node/web-globals/messaging.d.ts +23 -0
  746. package/vendor/ink/node_modules/@types/node/web-globals/navigator.d.ts +25 -0
  747. package/vendor/ink/node_modules/@types/node/web-globals/performance.d.ts +45 -0
  748. package/vendor/ink/node_modules/@types/node/web-globals/storage.d.ts +24 -0
  749. package/vendor/ink/node_modules/@types/node/web-globals/streams.d.ts +115 -0
  750. package/vendor/ink/node_modules/@types/node/web-globals/timers.d.ts +44 -0
  751. package/vendor/ink/node_modules/@types/node/web-globals/url.d.ts +24 -0
  752. package/vendor/ink/node_modules/@types/node/worker_threads.d.ts +717 -0
  753. package/vendor/ink/node_modules/@types/node/zlib.d.ts +618 -0
  754. package/vendor/ink/node_modules/node-pty/LICENSE +69 -0
  755. package/vendor/ink/node_modules/node-pty/README.md +164 -0
  756. package/vendor/ink/node_modules/node-pty/binding.gyp +150 -0
  757. package/vendor/ink/node_modules/node-pty/lib/conpty_console_list_agent.js +25 -0
  758. package/vendor/ink/node_modules/node-pty/lib/eventEmitter2.js +47 -0
  759. package/vendor/ink/node_modules/node-pty/lib/index.js +52 -0
  760. package/vendor/ink/node_modules/node-pty/lib/interfaces.js +7 -0
  761. package/vendor/ink/node_modules/node-pty/lib/shared/conout.js +11 -0
  762. package/vendor/ink/node_modules/node-pty/lib/terminal.js +190 -0
  763. package/vendor/ink/node_modules/node-pty/lib/types.js +7 -0
  764. package/vendor/ink/node_modules/node-pty/lib/unixTerminal.js +349 -0
  765. package/vendor/ink/node_modules/node-pty/lib/utils.js +39 -0
  766. package/vendor/ink/node_modules/node-pty/lib/windowsConoutConnection.js +125 -0
  767. package/vendor/ink/node_modules/node-pty/lib/windowsPtyAgent.js +287 -0
  768. package/vendor/ink/node_modules/node-pty/lib/windowsTerminal.js +201 -0
  769. package/vendor/ink/node_modules/node-pty/lib/worker/conoutSocketWorker.js +22 -0
  770. package/vendor/ink/node_modules/node-pty/package.json +65 -0
  771. package/vendor/ink/node_modules/node-pty/prebuilds/darwin-arm64/pty.node +0 -0
  772. package/vendor/ink/node_modules/node-pty/prebuilds/darwin-arm64/spawn-helper +0 -0
  773. package/vendor/ink/node_modules/node-pty/prebuilds/darwin-x64/pty.node +0 -0
  774. package/vendor/ink/node_modules/node-pty/prebuilds/darwin-x64/spawn-helper +0 -0
  775. package/vendor/ink/node_modules/node-pty/prebuilds/linux-arm64/pty.node +0 -0
  776. package/vendor/ink/node_modules/node-pty/prebuilds/linux-x64/pty.node +0 -0
  777. package/vendor/ink/node_modules/node-pty/prebuilds/win32-arm64/conpty/OpenConsole.exe +0 -0
  778. package/vendor/ink/node_modules/node-pty/prebuilds/win32-arm64/conpty/conpty.dll +0 -0
  779. package/vendor/ink/node_modules/node-pty/prebuilds/win32-arm64/conpty.node +0 -0
  780. package/vendor/ink/node_modules/node-pty/prebuilds/win32-arm64/conpty.pdb +0 -0
  781. package/vendor/ink/node_modules/node-pty/prebuilds/win32-arm64/conpty_console_list.node +0 -0
  782. package/vendor/ink/node_modules/node-pty/prebuilds/win32-arm64/conpty_console_list.pdb +0 -0
  783. package/vendor/ink/node_modules/node-pty/prebuilds/win32-x64/conpty/OpenConsole.exe +0 -0
  784. package/vendor/ink/node_modules/node-pty/prebuilds/win32-x64/conpty/conpty.dll +0 -0
  785. package/vendor/ink/node_modules/node-pty/prebuilds/win32-x64/conpty.node +0 -0
  786. package/vendor/ink/node_modules/node-pty/prebuilds/win32-x64/conpty.pdb +0 -0
  787. package/vendor/ink/node_modules/node-pty/prebuilds/win32-x64/conpty_console_list.node +0 -0
  788. package/vendor/ink/node_modules/node-pty/prebuilds/win32-x64/conpty_console_list.pdb +0 -0
  789. package/vendor/ink/node_modules/node-pty/scripts/post-install.js +76 -0
  790. package/vendor/ink/node_modules/node-pty/scripts/prebuild.js +34 -0
  791. package/vendor/ink/node_modules/node-pty/src/unix/pty.cc +875 -0
  792. package/vendor/ink/node_modules/node-pty/src/unix/spawn-helper.cc +23 -0
  793. package/vendor/ink/node_modules/node-pty/src/win/conpty.cc +582 -0
  794. package/vendor/ink/node_modules/node-pty/src/win/conpty.h +41 -0
  795. package/vendor/ink/node_modules/node-pty/src/win/conpty_console_list.cc +44 -0
  796. package/vendor/ink/node_modules/node-pty/src/win/path_util.cc +95 -0
  797. package/vendor/ink/node_modules/node-pty/src/win/path_util.h +26 -0
  798. package/vendor/ink/node_modules/node-pty/third_party/conpty/1.23.251008001/win10-arm64/OpenConsole.exe +0 -0
  799. package/vendor/ink/node_modules/node-pty/third_party/conpty/1.23.251008001/win10-arm64/conpty.dll +0 -0
  800. package/vendor/ink/node_modules/node-pty/third_party/conpty/1.23.251008001/win10-x64/OpenConsole.exe +0 -0
  801. package/vendor/ink/node_modules/node-pty/third_party/conpty/1.23.251008001/win10-x64/conpty.dll +0 -0
  802. package/vendor/ink/node_modules/node-pty/typings/node-pty.d.ts +215 -0
  803. package/vendor/ink/node_modules/undici-types/LICENSE +21 -0
  804. package/vendor/ink/node_modules/undici-types/README.md +6 -0
  805. package/vendor/ink/node_modules/undici-types/agent.d.ts +32 -0
  806. package/vendor/ink/node_modules/undici-types/api.d.ts +43 -0
  807. package/vendor/ink/node_modules/undici-types/balanced-pool.d.ts +30 -0
  808. package/vendor/ink/node_modules/undici-types/cache-interceptor.d.ts +173 -0
  809. package/vendor/ink/node_modules/undici-types/cache.d.ts +36 -0
  810. package/vendor/ink/node_modules/undici-types/client-stats.d.ts +15 -0
  811. package/vendor/ink/node_modules/undici-types/client.d.ts +108 -0
  812. package/vendor/ink/node_modules/undici-types/connector.d.ts +34 -0
  813. package/vendor/ink/node_modules/undici-types/content-type.d.ts +21 -0
  814. package/vendor/ink/node_modules/undici-types/cookies.d.ts +30 -0
  815. package/vendor/ink/node_modules/undici-types/diagnostics-channel.d.ts +74 -0
  816. package/vendor/ink/node_modules/undici-types/dispatcher.d.ts +276 -0
  817. package/vendor/ink/node_modules/undici-types/env-http-proxy-agent.d.ts +22 -0
  818. package/vendor/ink/node_modules/undici-types/errors.d.ts +161 -0
  819. package/vendor/ink/node_modules/undici-types/eventsource.d.ts +66 -0
  820. package/vendor/ink/node_modules/undici-types/fetch.d.ts +211 -0
  821. package/vendor/ink/node_modules/undici-types/formdata.d.ts +108 -0
  822. package/vendor/ink/node_modules/undici-types/global-dispatcher.d.ts +9 -0
  823. package/vendor/ink/node_modules/undici-types/global-origin.d.ts +7 -0
  824. package/vendor/ink/node_modules/undici-types/h2c-client.d.ts +73 -0
  825. package/vendor/ink/node_modules/undici-types/handlers.d.ts +15 -0
  826. package/vendor/ink/node_modules/undici-types/header.d.ts +160 -0
  827. package/vendor/ink/node_modules/undici-types/index.d.ts +88 -0
  828. package/vendor/ink/node_modules/undici-types/interceptors.d.ts +73 -0
  829. package/vendor/ink/node_modules/undici-types/mock-agent.d.ts +68 -0
  830. package/vendor/ink/node_modules/undici-types/mock-call-history.d.ts +111 -0
  831. package/vendor/ink/node_modules/undici-types/mock-client.d.ts +27 -0
  832. package/vendor/ink/node_modules/undici-types/mock-errors.d.ts +12 -0
  833. package/vendor/ink/node_modules/undici-types/mock-interceptor.d.ts +94 -0
  834. package/vendor/ink/node_modules/undici-types/mock-pool.d.ts +27 -0
  835. package/vendor/ink/node_modules/undici-types/package.json +55 -0
  836. package/vendor/ink/node_modules/undici-types/patch.d.ts +29 -0
  837. package/vendor/ink/node_modules/undici-types/pool-stats.d.ts +19 -0
  838. package/vendor/ink/node_modules/undici-types/pool.d.ts +41 -0
  839. package/vendor/ink/node_modules/undici-types/proxy-agent.d.ts +29 -0
  840. package/vendor/ink/node_modules/undici-types/readable.d.ts +68 -0
  841. package/vendor/ink/node_modules/undici-types/retry-agent.d.ts +8 -0
  842. package/vendor/ink/node_modules/undici-types/retry-handler.d.ts +125 -0
  843. package/vendor/ink/node_modules/undici-types/round-robin-pool.d.ts +41 -0
  844. package/vendor/ink/node_modules/undici-types/snapshot-agent.d.ts +109 -0
  845. package/vendor/ink/node_modules/undici-types/util.d.ts +18 -0
  846. package/vendor/ink/node_modules/undici-types/utility.d.ts +7 -0
  847. package/vendor/ink/node_modules/undici-types/webidl.d.ts +341 -0
  848. package/vendor/ink/node_modules/undici-types/websocket.d.ts +186 -0
  849. package/vendor/ink/package.json +201 -0
  850. package/vendor/ink/readme.md +2636 -0
  851. package/bin/swag-agent.js +0 -9
  852. package/dist/server/lib/pg-rate-limiter.d.ts +0 -21
  853. package/dist/server/lib/pg-rate-limiter.js +0 -86
@@ -4,56 +4,61 @@
4
4
  * Scans the working directory to give the decomposer real filesystem context,
5
5
  * so it can assign specific files/directories to each agent instead of duplicating tasks.
6
6
  *
7
+ * Uses the server proxy (same auth as the main agent loop) — no direct API key needed.
7
8
  * Used by the Team system to auto-decompose tasks before assigning to teammates.
8
9
  */
9
- import Anthropic from "@anthropic-ai/sdk";
10
+
10
11
  import { randomUUID } from "node:crypto";
11
12
  import { readdirSync, statSync } from "node:fs";
12
13
  import { join } from "node:path";
13
- import { callWithRetry } from "./api-retry.js";
14
+ import { MODELS } from "../../shared/constants.js";
15
+ import { callServerProxy, buildAPIRequest } from "../../shared/api-client.js";
16
+ import { parseSSEStream, collectStreamResult } from "../../shared/sse-parser.js";
17
+ import { getProxyUrl } from "./config-store.js";
18
+ import { getValidToken } from "./auth-service.js";
19
+
20
+ // ── Types ──
21
+
14
22
  // ── Constants ──
15
- const DECOMPOSE_FALLBACK_MODEL = "claude-haiku-4-5-20251001";
23
+
16
24
  const DECOMPOSE_MAX_TOKENS = 8192;
25
+
17
26
  /** Scan a directory tree up to `maxDepth`, returning a compact file listing. */
18
27
  function scanDirectory(dir, maxDepth = 3, maxEntries = 200) {
19
- const lines = [];
20
- let count = 0;
21
- function walk(current, depth) {
22
- if (depth > maxDepth || count >= maxEntries)
23
- return;
24
- let entries;
25
- try {
26
- entries = readdirSync(current);
27
- }
28
- catch {
29
- return;
30
- }
31
- const skip = new Set(["node_modules", ".git", ".next", "dist", "build", "__pycache__", ".cache", ".turbo", "coverage", ".DS_Store"]);
32
- entries = entries.filter(e => !skip.has(e)).sort();
33
- for (const entry of entries) {
34
- if (count >= maxEntries)
35
- break;
36
- const fullPath = join(current, entry);
37
- let isDir = false;
38
- try {
39
- isDir = statSync(fullPath).isDirectory();
40
- }
41
- catch {
42
- continue;
43
- }
44
- const prefix = " ".repeat(depth);
45
- lines.push(`${prefix}${isDir ? `${entry}/` : entry}`);
46
- count++;
47
- if (isDir) {
48
- walk(fullPath, depth + 1);
49
- }
50
- }
28
+ const lines = [];
29
+ let count = 0;
30
+ function walk(current, depth) {
31
+ if (depth > maxDepth || count >= maxEntries) return;
32
+ let entries;
33
+ try {
34
+ entries = readdirSync(current);
35
+ } catch {
36
+ return;
37
+ }
38
+ const skip = new Set(["node_modules", ".git", ".next", "dist", "build", "__pycache__", ".cache", ".turbo", "coverage", ".DS_Store"]);
39
+ entries = entries.filter(e => !skip.has(e)).sort();
40
+ for (const entry of entries) {
41
+ if (count >= maxEntries) break;
42
+ const fullPath = join(current, entry);
43
+ let isDir = false;
44
+ try {
45
+ isDir = statSync(fullPath).isDirectory();
46
+ } catch {
47
+ continue;
48
+ }
49
+ const prefix = " ".repeat(depth);
50
+ lines.push(`${prefix}${isDir ? `${entry}/` : entry}`);
51
+ count++;
52
+ if (isDir) {
53
+ walk(fullPath, depth + 1);
54
+ }
51
55
  }
52
- walk(dir, 0);
53
- return lines.join("\n");
56
+ }
57
+ walk(dir, 0);
58
+ return lines.join("\n");
54
59
  }
55
60
  function buildSystemPrompt(maxCells) {
56
- return `You are a task decomposition engine for a multi-agent coding system.
61
+ return `You are a task decomposition engine for a multi-agent coding system.
57
62
 
58
63
  Given a user request and the project's file structure, break it into up to ${maxCells} sub-tasks that can be executed by independent coding agents in parallel. Each agent runs in its own thread — it CANNOT see other agents' work until completion.
59
64
 
@@ -73,9 +78,11 @@ Decomposition strategy:
73
78
  3. Each prompt MUST start with "Working directory: <path>" and list the exact files the agent should focus on.
74
79
  4. If the task involves auditing/reviewing, assign different directories to each agent.
75
80
  5. If the task involves refactoring, assign specific files to each agent — NEVER say "refactor all components."
76
- 6. Fewer focused tasks > many vague tasks. Use 2-4 cells for medium tasks, 5-6 only for large codebases.
77
- 7. DO NOT create a "planner" or "coordinator" task each agent plans its own work within its scope.
78
- 8. If the task is simple enough for 1-2 agents, use fewer. Don't pad to ${maxCells}.
81
+ 6. Each sub-task should scope to 3-5 files. If a logical unit involves more than 6 files, split it into multiple sub-tasks with clear boundaries.
82
+ 7. Prefer splitting by module/feature boundary over splitting by operation type. Example: DON'T split "implementer for all components" + "tester for all tests". DO split "agent A owns auth module (src/auth/*.ts + tests)" + "agent B owns billing module (src/billing/*.ts + tests)".
83
+ 8. Fewer focused tasks > many vague tasks. Use 2-4 cells for medium tasks, 5-6 only for large codebases.
84
+ 9. DO NOT create a "planner" or "coordinator" task — each agent plans its own work within its scope.
85
+ 10. If the task is simple enough for 1-2 agents, use fewer. Don't pad to ${maxCells}.
79
86
 
80
87
  Respond with ONLY valid JSON:
81
88
  {
@@ -86,114 +93,140 @@ Respond with ONLY valid JSON:
86
93
  }`;
87
94
  }
88
95
  export async function decomposeTask(task, opts = {}) {
89
- const maxCells = opts.maxCells || 6;
90
- const apiKey = opts.apiKey || process.env.ANTHROPIC_API_KEY;
91
- const model = opts.model || DECOMPOSE_FALLBACK_MODEL;
92
- if (!apiKey) {
93
- console.warn("[decomposer] No API key — falling back to single task");
94
- return singleTaskFallback(task);
96
+ const maxCells = opts.maxCells || 5;
97
+ const model = opts.model || MODELS.HAIKU;
98
+ const token = await getValidToken();
99
+ if (!token) {
100
+ console.warn("[decomposer] No auth token — falling back to single task");
101
+ return singleTaskFallback(task);
102
+ }
103
+ try {
104
+ let fileTree = "";
105
+ if (opts.workingDirectory) {
106
+ try {
107
+ fileTree = scanDirectory(opts.workingDirectory);
108
+ } catch (err) {
109
+ console.warn(`[decomposer] Failed to scan ${opts.workingDirectory}: ${err.message}`);
110
+ }
95
111
  }
96
- try {
97
- const client = new Anthropic({ apiKey });
98
- let fileTree = "";
99
- if (opts.workingDirectory) {
100
- try {
101
- fileTree = scanDirectory(opts.workingDirectory);
102
- }
103
- catch (err) {
104
- console.warn(`[decomposer] Failed to scan ${opts.workingDirectory}: ${err.message}`);
105
- }
106
- }
107
- const parts = [];
108
- if (opts.workingDirectory) {
109
- parts.push(`Working directory: ${opts.workingDirectory}`);
110
- }
111
- if (fileTree) {
112
- parts.push(`\nProject file structure:\n${fileTree}`);
113
- }
114
- if (opts.context) {
115
- parts.push(`\nPrevious round context:\n${opts.context}`);
116
- }
117
- parts.push(`\nTask: ${task}`);
118
- parts.push(`\nMax sub-tasks: ${maxCells}`);
119
- const userMessage = parts.join("\n");
120
- const response = await callWithRetry(() => client.messages.create({
121
- model,
122
- max_tokens: DECOMPOSE_MAX_TOKENS,
123
- system: buildSystemPrompt(maxCells),
124
- messages: [{ role: "user", content: userMessage }],
125
- }), { label: "decomposer" });
126
- const text = response.content
127
- .filter((b) => b.type === "text")
128
- .map(b => b.text)
129
- .join("");
130
- const jsonMatch = text.match(/\{[\s\S]*\}/);
131
- if (!jsonMatch) {
132
- console.warn("[decomposer] No JSON found in response — falling back to single task");
133
- return singleTaskFallback(task);
134
- }
135
- const parsed = JSON.parse(jsonMatch[0]);
136
- if (!parsed.sub_tasks?.length) {
137
- return singleTaskFallback(task);
138
- }
139
- const subTasks = parsed.sub_tasks.slice(0, maxCells).map((st, i) => ({
140
- id: randomUUID(),
141
- role: st.role,
142
- prompt: st.prompt,
143
- cell_index: i,
144
- depends_on: [],
145
- }));
146
- // Resolve depends_on from indices to UUIDs
147
- for (let i = 0; i < subTasks.length; i++) {
148
- const raw = parsed.sub_tasks[i];
149
- subTasks[i].depends_on = (raw.depends_on || [])
150
- .filter(idx => idx >= 0 && idx < subTasks.length && idx !== i)
151
- .map(idx => subTasks[idx].id);
152
- }
153
- return {
154
- sub_tasks: subTasks,
155
- summary: parsed.summary,
156
- };
112
+ const parts = [];
113
+ if (opts.workingDirectory) {
114
+ parts.push(`Working directory: ${opts.workingDirectory}`);
115
+ }
116
+ if (fileTree) {
117
+ parts.push(`\nProject file structure:\n${fileTree}`);
157
118
  }
158
- catch (err) {
159
- console.warn("[decomposer] API call failed — falling back to single task:", err.message);
160
- return singleTaskFallback(task);
119
+ if (opts.context) {
120
+ parts.push(`\nPrevious round context:\n${opts.context}`);
161
121
  }
122
+ parts.push(`\nTask: ${task}`);
123
+ parts.push(`\nMax sub-tasks: ${maxCells}`);
124
+ const userMessage = parts.join("\n");
125
+ const apiConfig = buildAPIRequest({
126
+ model,
127
+ contextProfile: "subagent"
128
+ });
129
+ const stream = await callServerProxy({
130
+ proxyUrl: getProxyUrl(),
131
+ token,
132
+ model,
133
+ system: [{
134
+ type: "text",
135
+ text: buildSystemPrompt(maxCells)
136
+ }],
137
+ messages: [{
138
+ role: "user",
139
+ content: userMessage
140
+ }],
141
+ tools: [],
142
+ apiConfig,
143
+ timeoutMs: 30_000
144
+ });
145
+ const result = await collectStreamResult(parseSSEStream(stream));
146
+ const text = result.text;
147
+ const jsonMatch = text.match(/\{[\s\S]*\}/);
148
+ if (!jsonMatch) {
149
+ console.warn("[decomposer] No JSON found in response — falling back to single task");
150
+ return singleTaskFallback(task);
151
+ }
152
+ const parsed = JSON.parse(jsonMatch[0]);
153
+ if (!parsed.sub_tasks?.length) {
154
+ return singleTaskFallback(task);
155
+ }
156
+ const subTasks = parsed.sub_tasks.slice(0, maxCells).map((st, i) => ({
157
+ id: randomUUID(),
158
+ role: st.role,
159
+ prompt: st.prompt,
160
+ cell_index: i,
161
+ depends_on: []
162
+ }));
163
+
164
+ // Resolve depends_on from indices to UUIDs
165
+ for (let i = 0; i < subTasks.length; i++) {
166
+ const raw = parsed.sub_tasks[i];
167
+ subTasks[i].depends_on = (raw.depends_on || []).filter(idx => idx >= 0 && idx < subTasks.length && idx !== i).map(idx => subTasks[idx].id);
168
+ }
169
+ return {
170
+ sub_tasks: subTasks,
171
+ summary: parsed.summary
172
+ };
173
+ } catch (err) {
174
+ console.warn("[decomposer] API call failed — falling back to single task:", err.message);
175
+ return singleTaskFallback(task);
176
+ }
162
177
  }
178
+
163
179
  /**
164
180
  * Scan decomposed sub-task prompts for suspicious patterns.
165
181
  * Returns an array of human-readable warnings (empty = clean).
166
182
  */
167
183
  export function sanitizePrompts(subTasks) {
168
- const warnings = [];
169
- const dangerous = [
170
- { pattern: /rm\s+-rf\s+[\/~]/i, label: "rm -rf with absolute path" },
171
- { pattern: /curl.*\|\s*(?:ba)?sh/i, label: "curl piped to shell" },
172
- { pattern: /eval\s*\(/i, label: "eval()" },
173
- { pattern: />\s*\/etc\//i, label: "write to /etc" },
174
- { pattern: /chmod\s+777/i, label: "chmod 777" },
175
- { pattern: /ssh\s+/i, label: "SSH command" },
176
- { pattern: /scp\s+/i, label: "SCP command" },
177
- ];
178
- for (const st of subTasks) {
179
- for (const { pattern, label } of dangerous) {
180
- if (pattern.test(st.prompt)) {
181
- const idx = st.cell_index ?? subTasks.indexOf(st);
182
- warnings.push(`Task ${idx} (${st.role}): prompt contains suspicious pattern — ${label}`);
183
- }
184
- }
184
+ const warnings = [];
185
+ const dangerous = [{
186
+ pattern: /rm\s+-rf\s+[\/~]/i,
187
+ label: "rm -rf with absolute path"
188
+ }, {
189
+ pattern: /curl.*\|\s*(?:ba)?sh/i,
190
+ label: "curl piped to shell"
191
+ }, {
192
+ pattern: /eval\s*\(/i,
193
+ label: "eval()"
194
+ }, {
195
+ pattern: />\s*\/etc\//i,
196
+ label: "write to /etc"
197
+ }, {
198
+ pattern: /chmod\s+777/i,
199
+ label: "chmod 777"
200
+ }, {
201
+ pattern: /ssh\s+/i,
202
+ label: "SSH command"
203
+ }, {
204
+ pattern: /scp\s+/i,
205
+ label: "SCP command"
206
+ }];
207
+ for (const st of subTasks) {
208
+ for (const {
209
+ pattern,
210
+ label
211
+ } of dangerous) {
212
+ if (pattern.test(st.prompt)) {
213
+ const idx = st.cell_index ?? subTasks.indexOf(st);
214
+ warnings.push(`Task ${idx} (${st.role}): prompt contains suspicious pattern — ${label}`);
215
+ }
185
216
  }
186
- return warnings;
217
+ }
218
+ return warnings;
187
219
  }
188
220
  function singleTaskFallback(task) {
189
- return {
190
- sub_tasks: [{
191
- id: randomUUID(),
192
- role: "executor",
193
- prompt: task,
194
- cell_index: 0,
195
- depends_on: [],
196
- }],
197
- summary: "Single agent execution",
198
- };
221
+ return {
222
+ sub_tasks: [{
223
+ id: randomUUID(),
224
+ role: "executor",
225
+ prompt: task,
226
+ cell_index: 0,
227
+ depends_on: []
228
+ }],
229
+ summary: "Single agent execution"
230
+ };
199
231
  }
232
+ //# sourceMappingURL=task-decomposer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-decomposer.js","names":["randomUUID","readdirSync","statSync","join","MODELS","callServerProxy","buildAPIRequest","parseSSEStream","collectStreamResult","getProxyUrl","getValidToken","DECOMPOSE_MAX_TOKENS","scanDirectory","dir","maxDepth","maxEntries","lines","count","walk","current","depth","entries","skip","Set","filter","e","has","sort","entry","fullPath","isDir","isDirectory","prefix","repeat","push","buildSystemPrompt","maxCells","decomposeTask","task","opts","model","HAIKU","token","console","warn","singleTaskFallback","fileTree","workingDirectory","err","message","parts","context","userMessage","apiConfig","contextProfile","stream","proxyUrl","system","type","text","messages","role","content","tools","timeoutMs","result","jsonMatch","match","parsed","JSON","parse","sub_tasks","length","subTasks","slice","map","st","i","id","prompt","cell_index","depends_on","raw","idx","summary","sanitizePrompts","warnings","dangerous","pattern","label","test","indexOf"],"sources":["../../../src/cli/services/task-decomposer.ts"],"sourcesContent":["/**\n * Task Decomposer — breaks a user request into N sub-tasks via Claude API.\n *\n * Scans the working directory to give the decomposer real filesystem context,\n * so it can assign specific files/directories to each agent instead of duplicating tasks.\n *\n * Uses the server proxy (same auth as the main agent loop) — no direct API key needed.\n * Used by the Team system to auto-decompose tasks before assigning to teammates.\n */\n\nimport { randomUUID } from \"node:crypto\";\nimport { readdirSync, statSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { MODELS } from \"../../shared/constants.js\";\nimport { callServerProxy, buildAPIRequest } from \"../../shared/api-client.js\";\nimport { parseSSEStream, collectStreamResult } from \"../../shared/sse-parser.js\";\nimport { getProxyUrl } from \"./config-store.js\";\nimport { getValidToken } from \"./auth-service.js\";\n\n// ── Types ──\n\nexport interface SubTask {\n id: string;\n role: string; // implementer, tester, reviewer, researcher, executor\n prompt: string;\n cell_index: number;\n depends_on: string[];\n}\n\nexport interface DecompositionResult {\n sub_tasks: SubTask[];\n summary: string;\n}\n\n// ── Constants ──\n\nconst DECOMPOSE_MAX_TOKENS = 8192;\n\n/** Scan a directory tree up to `maxDepth`, returning a compact file listing. */\nfunction scanDirectory(dir: string, maxDepth = 3, maxEntries = 200): string {\n const lines: string[] = [];\n let count = 0;\n\n function walk(current: string, depth: number) {\n if (depth > maxDepth || count >= maxEntries) return;\n let entries: string[];\n try {\n entries = readdirSync(current);\n } catch {\n return;\n }\n const skip = new Set([\"node_modules\", \".git\", \".next\", \"dist\", \"build\", \"__pycache__\", \".cache\", \".turbo\", \"coverage\", \".DS_Store\"]);\n entries = entries.filter(e => !skip.has(e)).sort();\n\n for (const entry of entries) {\n if (count >= maxEntries) break;\n const fullPath = join(current, entry);\n let isDir = false;\n try {\n isDir = statSync(fullPath).isDirectory();\n } catch {\n continue;\n }\n const prefix = \" \".repeat(depth);\n lines.push(`${prefix}${isDir ? `${entry}/` : entry}`);\n count++;\n if (isDir) {\n walk(fullPath, depth + 1);\n }\n }\n }\n\n walk(dir, 0);\n return lines.join(\"\\n\");\n}\n\nfunction buildSystemPrompt(maxCells: number): string {\n return `You are a task decomposition engine for a multi-agent coding system.\n\nGiven a user request and the project's file structure, break it into up to ${maxCells} sub-tasks that can be executed by independent coding agents in parallel. Each agent runs in its own thread — it CANNOT see other agents' work until completion.\n\nCRITICAL RULES:\n- ALL sub-tasks MUST have depends_on: []\n- Every sub-task MUST target DIFFERENT files/directories — NEVER assign the same file to two agents\n- Each prompt MUST list the SPECIFIC files/directories that agent owns exclusively\n\nEach sub-task has:\n- role: one of \"implementer\", \"tester\", \"reviewer\", or \"researcher\"\n- prompt: the specific instruction for this agent (MUST include exact file paths from the project structure)\n- depends_on: ALWAYS [] (empty array)\n\nDecomposition strategy:\n1. Study the file structure provided. Identify the major areas/modules/directories.\n2. Partition the work so each agent owns a DISTINCT set of files. Example: Agent 0 handles src/components/Header.tsx + src/components/Nav.tsx, Agent 1 handles src/pages/Home.tsx + src/pages/About.tsx, etc.\n3. Each prompt MUST start with \"Working directory: <path>\" and list the exact files the agent should focus on.\n4. If the task involves auditing/reviewing, assign different directories to each agent.\n5. If the task involves refactoring, assign specific files to each agent — NEVER say \"refactor all components.\"\n6. Each sub-task should scope to 3-5 files. If a logical unit involves more than 6 files, split it into multiple sub-tasks with clear boundaries.\n7. Prefer splitting by module/feature boundary over splitting by operation type. Example: DON'T split \"implementer for all components\" + \"tester for all tests\". DO split \"agent A owns auth module (src/auth/*.ts + tests)\" + \"agent B owns billing module (src/billing/*.ts + tests)\".\n8. Fewer focused tasks > many vague tasks. Use 2-4 cells for medium tasks, 5-6 only for large codebases.\n9. DO NOT create a \"planner\" or \"coordinator\" task — each agent plans its own work within its scope.\n10. If the task is simple enough for 1-2 agents, use fewer. Don't pad to ${maxCells}.\n\nRespond with ONLY valid JSON:\n{\n \"summary\": \"One-line description of the split strategy\",\n \"sub_tasks\": [\n { \"role\": \"implementer\", \"prompt\": \"Working directory: /path/to/project\\\\n\\\\nYour scope: src/components/Header.tsx, src/components/Nav.tsx\\\\n\\\\nTask: ...\", \"depends_on\": [] }\n ]\n}`;\n}\n\nexport async function decomposeTask(\n task: string,\n opts: {\n maxCells?: number;\n context?: string;\n model?: string;\n workingDirectory?: string;\n } = {},\n): Promise<DecompositionResult> {\n const maxCells = opts.maxCells || 5;\n const model = opts.model || MODELS.HAIKU;\n\n const token = await getValidToken();\n if (!token) {\n console.warn(\"[decomposer] No auth token — falling back to single task\");\n return singleTaskFallback(task);\n }\n\n try {\n let fileTree = \"\";\n if (opts.workingDirectory) {\n try {\n fileTree = scanDirectory(opts.workingDirectory);\n } catch (err) {\n console.warn(`[decomposer] Failed to scan ${opts.workingDirectory}: ${(err as Error).message}`);\n }\n }\n\n const parts: string[] = [];\n if (opts.workingDirectory) {\n parts.push(`Working directory: ${opts.workingDirectory}`);\n }\n if (fileTree) {\n parts.push(`\\nProject file structure:\\n${fileTree}`);\n }\n if (opts.context) {\n parts.push(`\\nPrevious round context:\\n${opts.context}`);\n }\n parts.push(`\\nTask: ${task}`);\n parts.push(`\\nMax sub-tasks: ${maxCells}`);\n\n const userMessage = parts.join(\"\\n\");\n const apiConfig = buildAPIRequest({ model, contextProfile: \"subagent\" });\n\n const stream = await callServerProxy({\n proxyUrl: getProxyUrl(),\n token,\n model,\n system: [{ type: \"text\", text: buildSystemPrompt(maxCells) }],\n messages: [{ role: \"user\", content: userMessage }],\n tools: [],\n apiConfig,\n timeoutMs: 30_000,\n });\n\n const result = await collectStreamResult(parseSSEStream(stream));\n const text = result.text;\n\n const jsonMatch = text.match(/\\{[\\s\\S]*\\}/);\n if (!jsonMatch) {\n console.warn(\"[decomposer] No JSON found in response — falling back to single task\");\n return singleTaskFallback(task);\n }\n\n const parsed = JSON.parse(jsonMatch[0]) as {\n summary: string;\n sub_tasks: Array<{\n role: string;\n prompt: string;\n depends_on: number[];\n }>;\n };\n\n if (!parsed.sub_tasks?.length) {\n return singleTaskFallback(task);\n }\n\n const subTasks: SubTask[] = parsed.sub_tasks.slice(0, maxCells).map((st, i) => ({\n id: randomUUID(),\n role: st.role,\n prompt: st.prompt,\n cell_index: i,\n depends_on: [],\n }));\n\n // Resolve depends_on from indices to UUIDs\n for (let i = 0; i < subTasks.length; i++) {\n const raw = parsed.sub_tasks[i];\n subTasks[i].depends_on = (raw.depends_on || [])\n .filter(idx => idx >= 0 && idx < subTasks.length && idx !== i)\n .map(idx => subTasks[idx].id);\n }\n\n return {\n sub_tasks: subTasks,\n summary: parsed.summary,\n };\n } catch (err) {\n console.warn(\"[decomposer] API call failed — falling back to single task:\", (err as Error).message);\n return singleTaskFallback(task);\n }\n}\n\n/**\n * Scan decomposed sub-task prompts for suspicious patterns.\n * Returns an array of human-readable warnings (empty = clean).\n */\nexport function sanitizePrompts(subTasks: Array<{ role: string; prompt: string; cell_index?: number }>): string[] {\n const warnings: string[] = [];\n const dangerous: Array<{ pattern: RegExp; label: string }> = [\n { pattern: /rm\\s+-rf\\s+[\\/~]/i, label: \"rm -rf with absolute path\" },\n { pattern: /curl.*\\|\\s*(?:ba)?sh/i, label: \"curl piped to shell\" },\n { pattern: /eval\\s*\\(/i, label: \"eval()\" },\n { pattern: />\\s*\\/etc\\//i, label: \"write to /etc\" },\n { pattern: /chmod\\s+777/i, label: \"chmod 777\" },\n { pattern: /ssh\\s+/i, label: \"SSH command\" },\n { pattern: /scp\\s+/i, label: \"SCP command\" },\n ];\n\n for (const st of subTasks) {\n for (const { pattern, label } of dangerous) {\n if (pattern.test(st.prompt)) {\n const idx = st.cell_index ?? subTasks.indexOf(st);\n warnings.push(`Task ${idx} (${st.role}): prompt contains suspicious pattern — ${label}`);\n }\n }\n }\n return warnings;\n}\n\nfunction singleTaskFallback(task: string): DecompositionResult {\n return {\n sub_tasks: [{\n id: randomUUID(),\n role: \"executor\",\n prompt: task,\n cell_index: 0,\n depends_on: [],\n }],\n summary: \"Single agent execution\",\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -70,13 +70,13 @@ export declare class TeamLead extends EventEmitter {
70
70
  } | null;
71
71
  stop(): void;
72
72
  }
73
- export declare function runAgentTeam(config: TeamConfig): Promise<TeamResult>;
73
+ export declare function runAgentTeam(config: TeamConfig, signal?: AbortSignal): Promise<TeamResult>;
74
74
  export interface AutoTeamOptions {
75
75
  maxTeammates?: number;
76
76
  model?: "sonnet" | "opus" | "haiku";
77
77
  workingDirectory?: string;
78
- apiKey?: string;
79
78
  review?: boolean;
79
+ signal?: AbortSignal;
80
80
  }
81
81
  /**
82
82
  * Auto-decompose a task into sub-tasks and run them as a team.