whale-code 6.5.5 → 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 (847) 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 +5 -1
  73. package/dist/cli/services/agent-config.js +66 -36
  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 +976 -688
  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.js +187 -169
  107. package/dist/cli/services/error-logger.js.map +1 -0
  108. package/dist/cli/services/file-history.d.ts +1 -1
  109. package/dist/cli/services/file-history.js +50 -54
  110. package/dist/cli/services/file-history.js.map +1 -0
  111. package/dist/cli/services/format-server-response.js +332 -372
  112. package/dist/cli/services/format-server-response.js.map +1 -0
  113. package/dist/cli/services/git-context.js +61 -45
  114. package/dist/cli/services/git-context.js.map +1 -0
  115. package/dist/cli/services/hooks.d.ts +2 -2
  116. package/dist/cli/services/hooks.js +195 -180
  117. package/dist/cli/services/hooks.js.map +1 -0
  118. package/dist/cli/services/ink-incremental.d.ts +19 -0
  119. package/dist/cli/services/ink-incremental.js +59 -0
  120. package/dist/cli/services/ink-incremental.js.map +1 -0
  121. package/dist/cli/services/ink-resize-fix.js +54 -44
  122. package/dist/cli/services/ink-resize-fix.js.map +1 -0
  123. package/dist/cli/services/ink-sync-output.d.ts +12 -0
  124. package/dist/cli/services/ink-sync-output.js +16 -0
  125. package/dist/cli/services/ink-sync-output.js.map +1 -0
  126. package/dist/cli/services/interactive-tools.js +268 -212
  127. package/dist/cli/services/interactive-tools.js.map +1 -0
  128. package/dist/cli/services/keybinding-manager.d.ts +11 -1
  129. package/dist/cli/services/keybinding-manager.js +126 -63
  130. package/dist/cli/services/keybinding-manager.js.map +1 -0
  131. package/dist/cli/services/local-tools.d.ts +1 -1
  132. package/dist/cli/services/local-tools.js +939 -656
  133. package/dist/cli/services/local-tools.js.map +1 -0
  134. package/dist/cli/services/lsp-manager.js +757 -594
  135. package/dist/cli/services/lsp-manager.js.map +1 -0
  136. package/dist/cli/services/mcp-client.d.ts +1 -1
  137. package/dist/cli/services/mcp-client.js +173 -134
  138. package/dist/cli/services/mcp-client.js.map +1 -0
  139. package/dist/cli/services/memory-manager.js +53 -40
  140. package/dist/cli/services/memory-manager.js.map +1 -0
  141. package/dist/cli/services/model-manager.js +55 -40
  142. package/dist/cli/services/model-manager.js.map +1 -0
  143. package/dist/cli/services/model-router.js +115 -85
  144. package/dist/cli/services/model-router.js.map +1 -0
  145. package/dist/cli/services/paths.d.ts +30 -0
  146. package/dist/cli/services/paths.js +81 -0
  147. package/dist/cli/services/paths.js.map +1 -0
  148. package/dist/cli/services/permission-modes.js +32 -25
  149. package/dist/cli/services/permission-modes.js.map +1 -0
  150. package/dist/cli/services/rewind.js +182 -168
  151. package/dist/cli/services/rewind.js.map +1 -0
  152. package/dist/cli/services/ripgrep.js +115 -115
  153. package/dist/cli/services/ripgrep.js.map +1 -0
  154. package/dist/cli/services/sandbox.d.ts +1 -1
  155. package/dist/cli/services/sandbox.js +58 -37
  156. package/dist/cli/services/sandbox.js.map +1 -0
  157. package/dist/cli/services/server-tools.js +738 -565
  158. package/dist/cli/services/server-tools.js.map +1 -0
  159. package/dist/cli/services/session-persistence.js +69 -74
  160. package/dist/cli/services/session-persistence.js.map +1 -0
  161. package/dist/cli/services/subagent-worker.js +42 -27
  162. package/dist/cli/services/subagent-worker.js.map +1 -0
  163. package/dist/cli/services/subagent.d.ts +2 -0
  164. package/dist/cli/services/subagent.js +605 -433
  165. package/dist/cli/services/subagent.js.map +1 -0
  166. package/dist/cli/services/system-prompt.js +86 -78
  167. package/dist/cli/services/system-prompt.js.map +1 -0
  168. package/dist/cli/services/task-decomposer.d.ts +1 -1
  169. package/dist/cli/services/task-decomposer.js +172 -139
  170. package/dist/cli/services/task-decomposer.js.map +1 -0
  171. package/dist/cli/services/team-lead.d.ts +2 -2
  172. package/dist/cli/services/team-lead.js +727 -529
  173. package/dist/cli/services/team-lead.js.map +1 -0
  174. package/dist/cli/services/team-state.js +319 -319
  175. package/dist/cli/services/team-state.js.map +1 -0
  176. package/dist/cli/services/teammate.d.ts +8 -2
  177. package/dist/cli/services/teammate.js +857 -569
  178. package/dist/cli/services/teammate.js.map +1 -0
  179. package/dist/cli/services/telemetry.d.ts +6 -1
  180. package/dist/cli/services/telemetry.js +180 -157
  181. package/dist/cli/services/telemetry.js.map +1 -0
  182. package/dist/cli/services/tools/agent-tools.d.ts +3 -3
  183. package/dist/cli/services/tools/agent-tools.js +480 -322
  184. package/dist/cli/services/tools/agent-tools.js.map +1 -0
  185. package/dist/cli/services/tools/file-ops.js +563 -450
  186. package/dist/cli/services/tools/file-ops.js.map +1 -0
  187. package/dist/cli/services/tools/search-tools.js +231 -162
  188. package/dist/cli/services/tools/search-tools.js.map +1 -0
  189. package/dist/cli/services/tools/shell-exec.js +197 -151
  190. package/dist/cli/services/tools/shell-exec.js.map +1 -0
  191. package/dist/cli/services/tools/task-manager.js +206 -173
  192. package/dist/cli/services/tools/task-manager.js.map +1 -0
  193. package/dist/cli/services/tools/web-tools.js +388 -341
  194. package/dist/cli/services/tools/web-tools.js.map +1 -0
  195. package/dist/cli/setup/SetupApp.d.ts +2 -2
  196. package/dist/cli/setup/SetupApp.js +608 -160
  197. package/dist/cli/setup/SetupApp.js.map +1 -0
  198. package/dist/cli/shared/ErrorBoundary.d.ts +22 -0
  199. package/dist/cli/shared/ErrorBoundary.js +73 -0
  200. package/dist/cli/shared/ErrorBoundary.js.map +1 -0
  201. package/dist/cli/shared/MatrixIntro.js +66 -69
  202. package/dist/cli/shared/MatrixIntro.js.map +1 -0
  203. package/dist/cli/shared/SpinnerSlot.d.ts +14 -0
  204. package/dist/cli/shared/SpinnerSlot.js +63 -0
  205. package/dist/cli/shared/SpinnerSlot.js.map +1 -0
  206. package/dist/cli/shared/Theme.d.ts +1 -1
  207. package/dist/cli/shared/Theme.js +136 -92
  208. package/dist/cli/shared/Theme.js.map +1 -0
  209. package/dist/cli/shared/WhaleBanner.js +99 -11
  210. package/dist/cli/shared/WhaleBanner.js.map +1 -0
  211. package/dist/cli/shared/markdown.d.ts +3 -1
  212. package/dist/cli/shared/markdown.js +736 -674
  213. package/dist/cli/shared/markdown.js.map +1 -0
  214. package/dist/cli/shared/marked-terminal.d.js +2 -0
  215. package/dist/cli/shared/marked-terminal.d.js.map +1 -0
  216. package/dist/cli/shared/theme-manager.js +99 -90
  217. package/dist/cli/shared/theme-manager.js.map +1 -0
  218. package/dist/cli/shared/theme-presets.js +256 -254
  219. package/dist/cli/shared/theme-presets.js.map +1 -0
  220. package/dist/cli/status/StatusApp.js +235 -86
  221. package/dist/cli/status/StatusApp.js.map +1 -0
  222. package/dist/cli/stores/StoreApp.js +275 -65
  223. package/dist/cli/stores/StoreApp.js.map +1 -0
  224. package/dist/index.d.ts +2 -2
  225. package/dist/index.js +509 -396
  226. package/dist/index.js.map +1 -0
  227. package/dist/local-agent/connection.d.ts +2 -2
  228. package/dist/local-agent/connection.js +352 -293
  229. package/dist/local-agent/connection.js.map +1 -0
  230. package/dist/local-agent/discovery.js +259 -122
  231. package/dist/local-agent/discovery.js.map +1 -0
  232. package/dist/local-agent/executor.js +216 -193
  233. package/dist/local-agent/executor.js.map +1 -0
  234. package/dist/local-agent/index.d.ts +2 -2
  235. package/dist/local-agent/index.js +156 -156
  236. package/dist/local-agent/index.js.map +1 -0
  237. package/dist/node/adapters/base.js +18 -8
  238. package/dist/node/adapters/base.js.map +1 -0
  239. package/dist/node/adapters/discord.js +286 -275
  240. package/dist/node/adapters/discord.js.map +1 -0
  241. package/dist/node/adapters/email.js +189 -202
  242. package/dist/node/adapters/email.js.map +1 -0
  243. package/dist/node/adapters/imessage.js +145 -142
  244. package/dist/node/adapters/imessage.js.map +1 -0
  245. package/dist/node/adapters/slack.js +237 -236
  246. package/dist/node/adapters/slack.js.map +1 -0
  247. package/dist/node/adapters/sms.js +149 -151
  248. package/dist/node/adapters/sms.js.map +1 -0
  249. package/dist/node/adapters/telegram.js +88 -92
  250. package/dist/node/adapters/telegram.js.map +1 -0
  251. package/dist/node/adapters/webchat.js +160 -136
  252. package/dist/node/adapters/webchat.js.map +1 -0
  253. package/dist/node/adapters/whatsapp.js +212 -215
  254. package/dist/node/adapters/whatsapp.js.map +1 -0
  255. package/dist/node/cli.js +884 -653
  256. package/dist/node/cli.js.map +1 -0
  257. package/dist/node/config.js +20 -18
  258. package/dist/node/config.js.map +1 -0
  259. package/dist/node/gateway-client.js +191 -181
  260. package/dist/node/gateway-client.js.map +1 -0
  261. package/dist/node/portal/clipboard.js +161 -130
  262. package/dist/node/portal/clipboard.js.map +1 -0
  263. package/dist/node/portal/discovery.js +51 -45
  264. package/dist/node/portal/discovery.js.map +1 -0
  265. package/dist/node/portal/forward.js +64 -58
  266. package/dist/node/portal/forward.js.map +1 -0
  267. package/dist/node/portal/index.js +246 -221
  268. package/dist/node/portal/index.js.map +1 -0
  269. package/dist/node/portal/multiplexer.js +192 -182
  270. package/dist/node/portal/multiplexer.js.map +1 -0
  271. package/dist/node/portal/permissions.js +102 -70
  272. package/dist/node/portal/permissions.js.map +1 -0
  273. package/dist/node/portal/protocol.js +153 -116
  274. package/dist/node/portal/protocol.js.map +1 -0
  275. package/dist/node/portal/screen.js +80 -69
  276. package/dist/node/portal/screen.js.map +1 -0
  277. package/dist/node/portal/session.js +124 -117
  278. package/dist/node/portal/session.js.map +1 -0
  279. package/dist/node/portal/shell.js +140 -113
  280. package/dist/node/portal/shell.js.map +1 -0
  281. package/dist/node/portal/stream.js +77 -75
  282. package/dist/node/portal/stream.js.map +1 -0
  283. package/dist/node/portal/transfer.js +190 -167
  284. package/dist/node/portal/transfer.js.map +1 -0
  285. package/dist/node/portal/ui.js +124 -99
  286. package/dist/node/portal/ui.js.map +1 -0
  287. package/dist/node/remote-desktop/compile-helper.js +50 -45
  288. package/dist/node/remote-desktop/compile-helper.js.map +1 -0
  289. package/dist/node/remote-desktop/index.js +215 -187
  290. package/dist/node/remote-desktop/index.js.map +1 -0
  291. package/dist/node/remote-desktop/protocol.js +45 -29
  292. package/dist/node/remote-desktop/protocol.js.map +1 -0
  293. package/dist/node/runtime.js +493 -410
  294. package/dist/node/runtime.js.map +1 -0
  295. package/dist/server/handlers/__test-utils__/test-db.js +39 -89
  296. package/dist/server/handlers/__test-utils__/test-db.js.map +1 -0
  297. package/dist/server/handlers/analytics.js +467 -261
  298. package/dist/server/handlers/analytics.js.map +1 -0
  299. package/dist/server/handlers/api-docs.js +1030 -895
  300. package/dist/server/handlers/api-docs.js.map +1 -0
  301. package/dist/server/handlers/api-keys.js +291 -242
  302. package/dist/server/handlers/api-keys.js.map +1 -0
  303. package/dist/server/handlers/billing.js +330 -239
  304. package/dist/server/handlers/billing.js.map +1 -0
  305. package/dist/server/handlers/browser.js +468 -395
  306. package/dist/server/handlers/browser.js.map +1 -0
  307. package/dist/server/handlers/catalog.js +1377 -978
  308. package/dist/server/handlers/catalog.js.map +1 -0
  309. package/dist/server/handlers/clickhouse.js +157 -109
  310. package/dist/server/handlers/clickhouse.js.map +1 -0
  311. package/dist/server/handlers/comms.js +1439 -984
  312. package/dist/server/handlers/comms.js.map +1 -0
  313. package/dist/server/handlers/creations.js +461 -394
  314. package/dist/server/handlers/creations.js.map +1 -0
  315. package/dist/server/handlers/crm.js +1082 -791
  316. package/dist/server/handlers/crm.js.map +1 -0
  317. package/dist/server/handlers/discovery.js +251 -232
  318. package/dist/server/handlers/discovery.js.map +1 -0
  319. package/dist/server/handlers/embeddings.js +241 -164
  320. package/dist/server/handlers/embeddings.js.map +1 -0
  321. package/dist/server/handlers/enrichment.js +887 -718
  322. package/dist/server/handlers/enrichment.js.map +1 -0
  323. package/dist/server/handlers/image-gen.js +467 -376
  324. package/dist/server/handlers/image-gen.js.map +1 -0
  325. package/dist/server/handlers/inventory.js +797 -424
  326. package/dist/server/handlers/inventory.js.map +1 -0
  327. package/dist/server/handlers/kali.js +272 -230
  328. package/dist/server/handlers/kali.js.map +1 -0
  329. package/dist/server/handlers/llm-providers.js +803 -580
  330. package/dist/server/handlers/llm-providers.js.map +1 -0
  331. package/dist/server/handlers/local-agent.js +133 -105
  332. package/dist/server/handlers/local-agent.js.map +1 -0
  333. package/dist/server/handlers/media.js +1179 -857
  334. package/dist/server/handlers/media.js.map +1 -0
  335. package/dist/server/handlers/meta-ads.js +2669 -2093
  336. package/dist/server/handlers/meta-ads.js.map +1 -0
  337. package/dist/server/handlers/nodes.js +1321 -913
  338. package/dist/server/handlers/nodes.js.map +1 -0
  339. package/dist/server/handlers/operations.js +183 -157
  340. package/dist/server/handlers/operations.js.map +1 -0
  341. package/dist/server/handlers/platform.js +346 -210
  342. package/dist/server/handlers/platform.js.map +1 -0
  343. package/dist/server/handlers/remove-bg.js +118 -86
  344. package/dist/server/handlers/remove-bg.js.map +1 -0
  345. package/dist/server/handlers/storefront.js +586 -446
  346. package/dist/server/handlers/storefront.js.map +1 -0
  347. package/dist/server/handlers/supply-chain.js +546 -326
  348. package/dist/server/handlers/supply-chain.js.map +1 -0
  349. package/dist/server/handlers/transcription.js +106 -97
  350. package/dist/server/handlers/transcription.js.map +1 -0
  351. package/dist/server/handlers/video-gen.js +593 -424
  352. package/dist/server/handlers/video-gen.js.map +1 -0
  353. package/dist/server/handlers/voice.js +1458 -1039
  354. package/dist/server/handlers/voice.js.map +1 -0
  355. package/dist/server/handlers/workflow-steps.js +2837 -2116
  356. package/dist/server/handlers/workflow-steps.js.map +1 -0
  357. package/dist/server/handlers/workflows.js +1630 -933
  358. package/dist/server/handlers/workflows.js.map +1 -0
  359. package/dist/server/index.js +3167 -2422
  360. package/dist/server/index.js.map +1 -0
  361. package/dist/server/lib/batch-client.js +471 -409
  362. package/dist/server/lib/batch-client.js.map +1 -0
  363. package/dist/server/lib/clickhouse-buffer.js +118 -104
  364. package/dist/server/lib/clickhouse-buffer.js.map +1 -0
  365. package/dist/server/lib/clickhouse-client.js +107 -107
  366. package/dist/server/lib/clickhouse-client.js.map +1 -0
  367. package/dist/server/lib/coa-renderer.js +1786 -356
  368. package/dist/server/lib/coa-renderer.js.map +1 -0
  369. package/dist/server/lib/code-worker-pool.js +227 -177
  370. package/dist/server/lib/code-worker-pool.js.map +1 -0
  371. package/dist/server/lib/code-worker.js +174 -164
  372. package/dist/server/lib/code-worker.js.map +1 -0
  373. package/dist/server/lib/compaction-service.d.ts +2 -12
  374. package/dist/server/lib/compaction-service.js +74 -184
  375. package/dist/server/lib/compaction-service.js.map +1 -0
  376. package/dist/server/lib/logger.js +36 -24
  377. package/dist/server/lib/logger.js.map +1 -0
  378. package/dist/server/lib/otel.js +101 -80
  379. package/dist/server/lib/otel.js.map +1 -0
  380. package/dist/server/lib/pdf-renderer.js +952 -788
  381. package/dist/server/lib/pdf-renderer.js.map +1 -0
  382. package/dist/server/lib/prompt-sanitizer.js +188 -108
  383. package/dist/server/lib/prompt-sanitizer.js.map +1 -0
  384. package/dist/server/lib/provider-capabilities.js +136 -138
  385. package/dist/server/lib/provider-capabilities.js.map +1 -0
  386. package/dist/server/lib/provider-failover.js +190 -168
  387. package/dist/server/lib/provider-failover.js.map +1 -0
  388. package/dist/server/lib/rate-limiter.js +186 -117
  389. package/dist/server/lib/rate-limiter.js.map +1 -0
  390. package/dist/server/lib/react-pdf-layout.js +551 -382
  391. package/dist/server/lib/react-pdf-layout.js.map +1 -0
  392. package/dist/server/lib/server-agent-loop.d.ts +4 -1
  393. package/dist/server/lib/server-agent-loop.js +906 -634
  394. package/dist/server/lib/server-agent-loop.js.map +1 -0
  395. package/dist/server/lib/server-subagent.js +260 -164
  396. package/dist/server/lib/server-subagent.js.map +1 -0
  397. package/dist/server/lib/session-checkpoint.js +105 -96
  398. package/dist/server/lib/session-checkpoint.js.map +1 -0
  399. package/dist/server/lib/ssrf-guard.js +193 -184
  400. package/dist/server/lib/ssrf-guard.js.map +1 -0
  401. package/dist/server/lib/supabase-client.js +94 -82
  402. package/dist/server/lib/supabase-client.js.map +1 -0
  403. package/dist/server/lib/template-resolver.js +154 -176
  404. package/dist/server/lib/template-resolver.js.map +1 -0
  405. package/dist/server/lib/utils.js +242 -133
  406. package/dist/server/lib/utils.js.map +1 -0
  407. package/dist/server/local-agent-gateway.d.ts +2 -2
  408. package/dist/server/local-agent-gateway.js +785 -627
  409. package/dist/server/local-agent-gateway.js.map +1 -0
  410. package/dist/server/providers/anthropic.js +250 -172
  411. package/dist/server/providers/anthropic.js.map +1 -0
  412. package/dist/server/providers/bedrock.js +217 -158
  413. package/dist/server/providers/bedrock.js.map +1 -0
  414. package/dist/server/providers/gemini.js +548 -418
  415. package/dist/server/providers/gemini.js.map +1 -0
  416. package/dist/server/providers/openai.js +571 -437
  417. package/dist/server/providers/openai.js.map +1 -0
  418. package/dist/server/providers/registry.js +23 -18
  419. package/dist/server/providers/registry.js.map +1 -0
  420. package/dist/server/providers/shared.js +123 -95
  421. package/dist/server/providers/shared.js.map +1 -0
  422. package/dist/server/providers/types.js +1 -11
  423. package/dist/server/providers/types.js.map +1 -0
  424. package/dist/server/proxy-handlers.js +209 -165
  425. package/dist/server/proxy-handlers.js.map +1 -0
  426. package/dist/server/tool-router.js +959 -599
  427. package/dist/server/tool-router.js.map +1 -0
  428. package/dist/server/validation.js +248 -188
  429. package/dist/server/validation.js.map +1 -0
  430. package/dist/server/worker.js +202 -133
  431. package/dist/server/worker.js.map +1 -0
  432. package/dist/setup.d.ts +2 -2
  433. package/dist/setup.js +151 -147
  434. package/dist/setup.js.map +1 -0
  435. package/dist/shared/agent-core.d.ts +115 -26
  436. package/dist/shared/agent-core.js +956 -522
  437. package/dist/shared/agent-core.js.map +1 -0
  438. package/dist/shared/anthropic-types.js +1 -6
  439. package/dist/shared/anthropic-types.js.map +1 -0
  440. package/dist/shared/api-client.d.ts +16 -9
  441. package/dist/shared/api-client.js +419 -327
  442. package/dist/shared/api-client.js.map +1 -0
  443. package/dist/shared/compaction.d.ts +36 -0
  444. package/dist/shared/compaction.js +138 -0
  445. package/dist/shared/compaction.js.map +1 -0
  446. package/dist/shared/constants.js +67 -64
  447. package/dist/shared/constants.js.map +1 -0
  448. package/dist/shared/sse-parser.js +221 -219
  449. package/dist/shared/sse-parser.js.map +1 -0
  450. package/dist/shared/tool-dispatch.d.ts +4 -0
  451. package/dist/shared/tool-dispatch.js +226 -165
  452. package/dist/shared/tool-dispatch.js.map +1 -0
  453. package/dist/shared/types.js +1 -6
  454. package/dist/shared/types.js.map +1 -0
  455. package/dist/types/cli-highlight.d.js +2 -0
  456. package/dist/types/cli-highlight.d.js.map +1 -0
  457. package/dist/types/diff.d.js +2 -0
  458. package/dist/types/diff.d.js.map +1 -0
  459. package/dist/types/pdf-parse.d.js +2 -0
  460. package/dist/types/pdf-parse.d.js.map +1 -0
  461. package/dist/updater.d.ts +1 -1
  462. package/dist/updater.js +118 -92
  463. package/dist/updater.js.map +1 -0
  464. package/dist/webchat/widget.js +227 -380
  465. package/dist/webchat/widget.js.map +1 -0
  466. package/package.json +22 -10
  467. package/vendor/ink/build/ansi-tokenizer.d.ts +38 -0
  468. package/vendor/ink/build/ansi-tokenizer.js +316 -0
  469. package/vendor/ink/build/ansi-tokenizer.js.map +1 -0
  470. package/vendor/ink/build/apply-styles.js +175 -0
  471. package/vendor/ink/build/build-layout.js +77 -0
  472. package/vendor/ink/build/calculate-wrapped-text.js +53 -0
  473. package/vendor/ink/build/colorize.d.ts +3 -0
  474. package/vendor/ink/build/colorize.js +48 -0
  475. package/vendor/ink/build/colorize.js.map +1 -0
  476. package/vendor/ink/build/components/AccessibilityContext.d.ts +3 -0
  477. package/vendor/ink/build/components/AccessibilityContext.js +5 -0
  478. package/vendor/ink/build/components/AccessibilityContext.js.map +1 -0
  479. package/vendor/ink/build/components/App.d.ts +18 -0
  480. package/vendor/ink/build/components/App.js +351 -0
  481. package/vendor/ink/build/components/App.js.map +1 -0
  482. package/vendor/ink/build/components/AppContext.d.ts +15 -0
  483. package/vendor/ink/build/components/AppContext.js +11 -0
  484. package/vendor/ink/build/components/AppContext.js.map +1 -0
  485. package/vendor/ink/build/components/BackgroundContext.d.ts +4 -0
  486. package/vendor/ink/build/components/BackgroundContext.js +3 -0
  487. package/vendor/ink/build/components/BackgroundContext.js.map +1 -0
  488. package/vendor/ink/build/components/Box.d.ts +117 -0
  489. package/vendor/ink/build/components/Box.js +34 -0
  490. package/vendor/ink/build/components/Box.js.map +1 -0
  491. package/vendor/ink/build/components/Color.js +62 -0
  492. package/vendor/ink/build/components/Cursor.d.ts +83 -0
  493. package/vendor/ink/build/components/Cursor.js +53 -0
  494. package/vendor/ink/build/components/Cursor.js.map +1 -0
  495. package/vendor/ink/build/components/CursorContext.d.ts +11 -0
  496. package/vendor/ink/build/components/CursorContext.js +8 -0
  497. package/vendor/ink/build/components/CursorContext.js.map +1 -0
  498. package/vendor/ink/build/components/ErrorBoundary.d.ts +18 -0
  499. package/vendor/ink/build/components/ErrorBoundary.js +23 -0
  500. package/vendor/ink/build/components/ErrorBoundary.js.map +1 -0
  501. package/vendor/ink/build/components/ErrorOverview.d.ts +6 -0
  502. package/vendor/ink/build/components/ErrorOverview.js +84 -0
  503. package/vendor/ink/build/components/ErrorOverview.js.map +1 -0
  504. package/vendor/ink/build/components/FocusContext.d.ts +16 -0
  505. package/vendor/ink/build/components/FocusContext.js +17 -0
  506. package/vendor/ink/build/components/FocusContext.js.map +1 -0
  507. package/vendor/ink/build/components/Newline.d.ts +13 -0
  508. package/vendor/ink/build/components/Newline.js +8 -0
  509. package/vendor/ink/build/components/Newline.js.map +1 -0
  510. package/vendor/ink/build/components/Spacer.d.ts +7 -0
  511. package/vendor/ink/build/components/Spacer.js +11 -0
  512. package/vendor/ink/build/components/Spacer.js.map +1 -0
  513. package/vendor/ink/build/components/Static.d.ts +24 -0
  514. package/vendor/ink/build/components/Static.js +28 -0
  515. package/vendor/ink/build/components/Static.js.map +1 -0
  516. package/vendor/ink/build/components/StderrContext.d.ts +15 -0
  517. package/vendor/ink/build/components/StderrContext.js +13 -0
  518. package/vendor/ink/build/components/StderrContext.js.map +1 -0
  519. package/vendor/ink/build/components/StdinContext.d.ts +22 -0
  520. package/vendor/ink/build/components/StdinContext.js +19 -0
  521. package/vendor/ink/build/components/StdinContext.js.map +1 -0
  522. package/vendor/ink/build/components/StdoutContext.d.ts +15 -0
  523. package/vendor/ink/build/components/StdoutContext.js +13 -0
  524. package/vendor/ink/build/components/StdoutContext.js.map +1 -0
  525. package/vendor/ink/build/components/Text.d.ts +55 -0
  526. package/vendor/ink/build/components/Text.js +50 -0
  527. package/vendor/ink/build/components/Text.js.map +1 -0
  528. package/vendor/ink/build/components/Transform.d.ts +16 -0
  529. package/vendor/ink/build/components/Transform.js +15 -0
  530. package/vendor/ink/build/components/Transform.js.map +1 -0
  531. package/vendor/ink/build/cursor-helpers.d.ts +38 -0
  532. package/vendor/ink/build/cursor-helpers.js +56 -0
  533. package/vendor/ink/build/cursor-helpers.js.map +1 -0
  534. package/vendor/ink/build/devtools-window-polyfill.d.ts +1 -0
  535. package/vendor/ink/build/devtools-window-polyfill.js +65 -0
  536. package/vendor/ink/build/devtools-window-polyfill.js.map +1 -0
  537. package/vendor/ink/build/devtools.d.ts +1 -0
  538. package/vendor/ink/build/devtools.js +11 -0
  539. package/vendor/ink/build/devtools.js.map +1 -0
  540. package/vendor/ink/build/dom.d.ts +56 -0
  541. package/vendor/ink/build/dom.js +124 -0
  542. package/vendor/ink/build/dom.js.map +1 -0
  543. package/vendor/ink/build/experimental/apply-style.js +140 -0
  544. package/vendor/ink/build/experimental/dom.js +123 -0
  545. package/vendor/ink/build/experimental/output.js +91 -0
  546. package/vendor/ink/build/experimental/reconciler.js +141 -0
  547. package/vendor/ink/build/experimental/renderer.js +81 -0
  548. package/vendor/ink/build/get-max-width.d.ts +3 -0
  549. package/vendor/ink/build/get-max-width.js +10 -0
  550. package/vendor/ink/build/get-max-width.js.map +1 -0
  551. package/vendor/ink/build/hooks/use-app.d.ts +5 -0
  552. package/vendor/ink/build/hooks/use-app.js +8 -0
  553. package/vendor/ink/build/hooks/use-app.js.map +1 -0
  554. package/vendor/ink/build/hooks/use-cursor.d.ts +12 -0
  555. package/vendor/ink/build/hooks/use-cursor.js +29 -0
  556. package/vendor/ink/build/hooks/use-cursor.js.map +1 -0
  557. package/vendor/ink/build/hooks/use-focus-manager.d.ts +28 -0
  558. package/vendor/ink/build/hooks/use-focus-manager.js +17 -0
  559. package/vendor/ink/build/hooks/use-focus-manager.js.map +1 -0
  560. package/vendor/ink/build/hooks/use-focus.d.ts +29 -0
  561. package/vendor/ink/build/hooks/use-focus.js +42 -0
  562. package/vendor/ink/build/hooks/use-focus.js.map +1 -0
  563. package/vendor/ink/build/hooks/use-input.d.ts +131 -0
  564. package/vendor/ink/build/hooks/use-input.js +124 -0
  565. package/vendor/ink/build/hooks/use-input.js.map +1 -0
  566. package/vendor/ink/build/hooks/use-is-screen-reader-enabled.d.ts +5 -0
  567. package/vendor/ink/build/hooks/use-is-screen-reader-enabled.js +11 -0
  568. package/vendor/ink/build/hooks/use-is-screen-reader-enabled.js.map +1 -0
  569. package/vendor/ink/build/hooks/use-stderr.d.ts +5 -0
  570. package/vendor/ink/build/hooks/use-stderr.js +8 -0
  571. package/vendor/ink/build/hooks/use-stderr.js.map +1 -0
  572. package/vendor/ink/build/hooks/use-stdin.d.ts +5 -0
  573. package/vendor/ink/build/hooks/use-stdin.js +8 -0
  574. package/vendor/ink/build/hooks/use-stdin.js.map +1 -0
  575. package/vendor/ink/build/hooks/use-stdout.d.ts +5 -0
  576. package/vendor/ink/build/hooks/use-stdout.js +8 -0
  577. package/vendor/ink/build/hooks/use-stdout.js.map +1 -0
  578. package/vendor/ink/build/hooks/useInput.js +38 -0
  579. package/vendor/ink/build/index.d.ts +34 -0
  580. package/vendor/ink/build/index.js +20 -0
  581. package/vendor/ink/build/index.js.map +1 -0
  582. package/vendor/ink/build/ink.d.ts +90 -0
  583. package/vendor/ink/build/ink.js +654 -0
  584. package/vendor/ink/build/ink.js.map +1 -0
  585. package/vendor/ink/build/input-parser.d.ts +7 -0
  586. package/vendor/ink/build/input-parser.js +154 -0
  587. package/vendor/ink/build/input-parser.js.map +1 -0
  588. package/vendor/ink/build/instance.js +205 -0
  589. package/vendor/ink/build/instances.d.ts +3 -0
  590. package/vendor/ink/build/instances.js +8 -0
  591. package/vendor/ink/build/instances.js.map +1 -0
  592. package/vendor/ink/build/kitty-keyboard.d.ts +23 -0
  593. package/vendor/ink/build/kitty-keyboard.js +32 -0
  594. package/vendor/ink/build/kitty-keyboard.js.map +1 -0
  595. package/vendor/ink/build/layout.d.ts +7 -0
  596. package/vendor/ink/build/layout.js +33 -0
  597. package/vendor/ink/build/layout.js.map +1 -0
  598. package/vendor/ink/build/log-update.d.ts +19 -0
  599. package/vendor/ink/build/log-update.js +243 -0
  600. package/vendor/ink/build/log-update.js.map +1 -0
  601. package/vendor/ink/build/measure-element.d.ts +16 -0
  602. package/vendor/ink/build/measure-element.js +9 -0
  603. package/vendor/ink/build/measure-element.js.map +1 -0
  604. package/vendor/ink/build/measure-text.d.ts +6 -0
  605. package/vendor/ink/build/measure-text.js +21 -0
  606. package/vendor/ink/build/measure-text.js.map +1 -0
  607. package/vendor/ink/build/options.d.ts +52 -0
  608. package/vendor/ink/build/options.js +2 -0
  609. package/vendor/ink/build/options.js.map +1 -0
  610. package/vendor/ink/build/output.d.ts +35 -0
  611. package/vendor/ink/build/output.js +183 -0
  612. package/vendor/ink/build/output.js.map +1 -0
  613. package/vendor/ink/build/parse-keypress.d.ts +22 -0
  614. package/vendor/ink/build/parse-keypress.js +493 -0
  615. package/vendor/ink/build/parse-keypress.js.map +1 -0
  616. package/vendor/ink/build/reconciler.d.ts +4 -0
  617. package/vendor/ink/build/reconciler.js +274 -0
  618. package/vendor/ink/build/reconciler.js.map +1 -0
  619. package/vendor/ink/build/render-background.d.ts +4 -0
  620. package/vendor/ink/build/render-background.js +25 -0
  621. package/vendor/ink/build/render-background.js.map +1 -0
  622. package/vendor/ink/build/render-border.d.ts +4 -0
  623. package/vendor/ink/build/render-border.js +73 -0
  624. package/vendor/ink/build/render-border.js.map +1 -0
  625. package/vendor/ink/build/render-node-to-output.d.ts +14 -0
  626. package/vendor/ink/build/render-node-to-output.js +147 -0
  627. package/vendor/ink/build/render-node-to-output.js.map +1 -0
  628. package/vendor/ink/build/render-to-string.d.ts +38 -0
  629. package/vendor/ink/build/render-to-string.js +115 -0
  630. package/vendor/ink/build/render-to-string.js.map +1 -0
  631. package/vendor/ink/build/render.d.ts +121 -0
  632. package/vendor/ink/build/render.js +55 -0
  633. package/vendor/ink/build/render.js.map +1 -0
  634. package/vendor/ink/build/renderer.d.ts +8 -0
  635. package/vendor/ink/build/renderer.js +55 -0
  636. package/vendor/ink/build/renderer.js.map +1 -0
  637. package/vendor/ink/build/sanitize-ansi.d.ts +2 -0
  638. package/vendor/ink/build/sanitize-ansi.js +27 -0
  639. package/vendor/ink/build/sanitize-ansi.js.map +1 -0
  640. package/vendor/ink/build/screen-reader-update.d.ts +13 -0
  641. package/vendor/ink/build/screen-reader-update.js +38 -0
  642. package/vendor/ink/build/screen-reader-update.js.map +1 -0
  643. package/vendor/ink/build/squash-text-nodes.d.ts +3 -0
  644. package/vendor/ink/build/squash-text-nodes.js +36 -0
  645. package/vendor/ink/build/squash-text-nodes.js.map +1 -0
  646. package/vendor/ink/build/styles.d.ts +240 -0
  647. package/vendor/ink/build/styles.js +232 -0
  648. package/vendor/ink/build/styles.js.map +1 -0
  649. package/vendor/ink/build/utils.d.ts +2 -0
  650. package/vendor/ink/build/utils.js +4 -0
  651. package/vendor/ink/build/utils.js.map +1 -0
  652. package/vendor/ink/build/wrap-text.d.ts +3 -0
  653. package/vendor/ink/build/wrap-text.js +31 -0
  654. package/vendor/ink/build/wrap-text.js.map +1 -0
  655. package/vendor/ink/build/write-synchronized.d.ts +4 -0
  656. package/vendor/ink/build/write-synchronized.js +7 -0
  657. package/vendor/ink/build/write-synchronized.js.map +1 -0
  658. package/vendor/ink/license +10 -0
  659. package/vendor/ink/node_modules/@types/node/LICENSE +21 -0
  660. package/vendor/ink/node_modules/@types/node/README.md +15 -0
  661. package/vendor/ink/node_modules/@types/node/assert/strict.d.ts +105 -0
  662. package/vendor/ink/node_modules/@types/node/assert.d.ts +955 -0
  663. package/vendor/ink/node_modules/@types/node/async_hooks.d.ts +623 -0
  664. package/vendor/ink/node_modules/@types/node/buffer.buffer.d.ts +466 -0
  665. package/vendor/ink/node_modules/@types/node/buffer.d.ts +1810 -0
  666. package/vendor/ink/node_modules/@types/node/child_process.d.ts +1428 -0
  667. package/vendor/ink/node_modules/@types/node/cluster.d.ts +486 -0
  668. package/vendor/ink/node_modules/@types/node/compatibility/iterators.d.ts +21 -0
  669. package/vendor/ink/node_modules/@types/node/console.d.ts +151 -0
  670. package/vendor/ink/node_modules/@types/node/constants.d.ts +20 -0
  671. package/vendor/ink/node_modules/@types/node/crypto.d.ts +4065 -0
  672. package/vendor/ink/node_modules/@types/node/dgram.d.ts +564 -0
  673. package/vendor/ink/node_modules/@types/node/diagnostics_channel.d.ts +576 -0
  674. package/vendor/ink/node_modules/@types/node/dns/promises.d.ts +503 -0
  675. package/vendor/ink/node_modules/@types/node/dns.d.ts +922 -0
  676. package/vendor/ink/node_modules/@types/node/domain.d.ts +166 -0
  677. package/vendor/ink/node_modules/@types/node/events.d.ts +1054 -0
  678. package/vendor/ink/node_modules/@types/node/fs/promises.d.ts +1329 -0
  679. package/vendor/ink/node_modules/@types/node/fs.d.ts +4676 -0
  680. package/vendor/ink/node_modules/@types/node/globals.d.ts +150 -0
  681. package/vendor/ink/node_modules/@types/node/globals.typedarray.d.ts +101 -0
  682. package/vendor/ink/node_modules/@types/node/http.d.ts +2167 -0
  683. package/vendor/ink/node_modules/@types/node/http2.d.ts +2480 -0
  684. package/vendor/ink/node_modules/@types/node/https.d.ts +405 -0
  685. package/vendor/ink/node_modules/@types/node/index.d.ts +115 -0
  686. package/vendor/ink/node_modules/@types/node/inspector/promises.d.ts +41 -0
  687. package/vendor/ink/node_modules/@types/node/inspector.d.ts +224 -0
  688. package/vendor/ink/node_modules/@types/node/inspector.generated.d.ts +4226 -0
  689. package/vendor/ink/node_modules/@types/node/module.d.ts +819 -0
  690. package/vendor/ink/node_modules/@types/node/net.d.ts +933 -0
  691. package/vendor/ink/node_modules/@types/node/os.d.ts +507 -0
  692. package/vendor/ink/node_modules/@types/node/package.json +155 -0
  693. package/vendor/ink/node_modules/@types/node/path/posix.d.ts +8 -0
  694. package/vendor/ink/node_modules/@types/node/path/win32.d.ts +8 -0
  695. package/vendor/ink/node_modules/@types/node/path.d.ts +187 -0
  696. package/vendor/ink/node_modules/@types/node/perf_hooks.d.ts +643 -0
  697. package/vendor/ink/node_modules/@types/node/process.d.ts +2156 -0
  698. package/vendor/ink/node_modules/@types/node/punycode.d.ts +117 -0
  699. package/vendor/ink/node_modules/@types/node/querystring.d.ts +152 -0
  700. package/vendor/ink/node_modules/@types/node/quic.d.ts +910 -0
  701. package/vendor/ink/node_modules/@types/node/readline/promises.d.ts +161 -0
  702. package/vendor/ink/node_modules/@types/node/readline.d.ts +541 -0
  703. package/vendor/ink/node_modules/@types/node/repl.d.ts +415 -0
  704. package/vendor/ink/node_modules/@types/node/sea.d.ts +162 -0
  705. package/vendor/ink/node_modules/@types/node/sqlite.d.ts +955 -0
  706. package/vendor/ink/node_modules/@types/node/stream/consumers.d.ts +38 -0
  707. package/vendor/ink/node_modules/@types/node/stream/promises.d.ts +211 -0
  708. package/vendor/ink/node_modules/@types/node/stream/web.d.ts +296 -0
  709. package/vendor/ink/node_modules/@types/node/stream.d.ts +1760 -0
  710. package/vendor/ink/node_modules/@types/node/string_decoder.d.ts +67 -0
  711. package/vendor/ink/node_modules/@types/node/test/reporters.d.ts +96 -0
  712. package/vendor/ink/node_modules/@types/node/test.d.ts +2240 -0
  713. package/vendor/ink/node_modules/@types/node/timers/promises.d.ts +108 -0
  714. package/vendor/ink/node_modules/@types/node/timers.d.ts +159 -0
  715. package/vendor/ink/node_modules/@types/node/tls.d.ts +1198 -0
  716. package/vendor/ink/node_modules/@types/node/trace_events.d.ts +197 -0
  717. package/vendor/ink/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +462 -0
  718. package/vendor/ink/node_modules/@types/node/ts5.6/compatibility/float16array.d.ts +71 -0
  719. package/vendor/ink/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +36 -0
  720. package/vendor/ink/node_modules/@types/node/ts5.6/index.d.ts +117 -0
  721. package/vendor/ink/node_modules/@types/node/ts5.7/compatibility/float16array.d.ts +72 -0
  722. package/vendor/ink/node_modules/@types/node/ts5.7/index.d.ts +117 -0
  723. package/vendor/ink/node_modules/@types/node/tty.d.ts +250 -0
  724. package/vendor/ink/node_modules/@types/node/url.d.ts +519 -0
  725. package/vendor/ink/node_modules/@types/node/util/types.d.ts +558 -0
  726. package/vendor/ink/node_modules/@types/node/util.d.ts +1662 -0
  727. package/vendor/ink/node_modules/@types/node/v8.d.ts +983 -0
  728. package/vendor/ink/node_modules/@types/node/vm.d.ts +1208 -0
  729. package/vendor/ink/node_modules/@types/node/wasi.d.ts +202 -0
  730. package/vendor/ink/node_modules/@types/node/web-globals/abortcontroller.d.ts +59 -0
  731. package/vendor/ink/node_modules/@types/node/web-globals/blob.d.ts +23 -0
  732. package/vendor/ink/node_modules/@types/node/web-globals/console.d.ts +9 -0
  733. package/vendor/ink/node_modules/@types/node/web-globals/crypto.d.ts +39 -0
  734. package/vendor/ink/node_modules/@types/node/web-globals/domexception.d.ts +68 -0
  735. package/vendor/ink/node_modules/@types/node/web-globals/encoding.d.ts +11 -0
  736. package/vendor/ink/node_modules/@types/node/web-globals/events.d.ts +106 -0
  737. package/vendor/ink/node_modules/@types/node/web-globals/fetch.d.ts +69 -0
  738. package/vendor/ink/node_modules/@types/node/web-globals/importmeta.d.ts +13 -0
  739. package/vendor/ink/node_modules/@types/node/web-globals/messaging.d.ts +23 -0
  740. package/vendor/ink/node_modules/@types/node/web-globals/navigator.d.ts +25 -0
  741. package/vendor/ink/node_modules/@types/node/web-globals/performance.d.ts +45 -0
  742. package/vendor/ink/node_modules/@types/node/web-globals/storage.d.ts +24 -0
  743. package/vendor/ink/node_modules/@types/node/web-globals/streams.d.ts +115 -0
  744. package/vendor/ink/node_modules/@types/node/web-globals/timers.d.ts +44 -0
  745. package/vendor/ink/node_modules/@types/node/web-globals/url.d.ts +24 -0
  746. package/vendor/ink/node_modules/@types/node/worker_threads.d.ts +717 -0
  747. package/vendor/ink/node_modules/@types/node/zlib.d.ts +618 -0
  748. package/vendor/ink/node_modules/node-pty/LICENSE +69 -0
  749. package/vendor/ink/node_modules/node-pty/README.md +164 -0
  750. package/vendor/ink/node_modules/node-pty/binding.gyp +150 -0
  751. package/vendor/ink/node_modules/node-pty/lib/conpty_console_list_agent.js +25 -0
  752. package/vendor/ink/node_modules/node-pty/lib/eventEmitter2.js +47 -0
  753. package/vendor/ink/node_modules/node-pty/lib/index.js +52 -0
  754. package/vendor/ink/node_modules/node-pty/lib/interfaces.js +7 -0
  755. package/vendor/ink/node_modules/node-pty/lib/shared/conout.js +11 -0
  756. package/vendor/ink/node_modules/node-pty/lib/terminal.js +190 -0
  757. package/vendor/ink/node_modules/node-pty/lib/types.js +7 -0
  758. package/vendor/ink/node_modules/node-pty/lib/unixTerminal.js +349 -0
  759. package/vendor/ink/node_modules/node-pty/lib/utils.js +39 -0
  760. package/vendor/ink/node_modules/node-pty/lib/windowsConoutConnection.js +125 -0
  761. package/vendor/ink/node_modules/node-pty/lib/windowsPtyAgent.js +287 -0
  762. package/vendor/ink/node_modules/node-pty/lib/windowsTerminal.js +201 -0
  763. package/vendor/ink/node_modules/node-pty/lib/worker/conoutSocketWorker.js +22 -0
  764. package/vendor/ink/node_modules/node-pty/package.json +65 -0
  765. package/vendor/ink/node_modules/node-pty/prebuilds/darwin-arm64/pty.node +0 -0
  766. package/vendor/ink/node_modules/node-pty/prebuilds/darwin-arm64/spawn-helper +0 -0
  767. package/vendor/ink/node_modules/node-pty/prebuilds/darwin-x64/pty.node +0 -0
  768. package/vendor/ink/node_modules/node-pty/prebuilds/darwin-x64/spawn-helper +0 -0
  769. package/vendor/ink/node_modules/node-pty/prebuilds/linux-arm64/pty.node +0 -0
  770. package/vendor/ink/node_modules/node-pty/prebuilds/linux-x64/pty.node +0 -0
  771. package/vendor/ink/node_modules/node-pty/prebuilds/win32-arm64/conpty/OpenConsole.exe +0 -0
  772. package/vendor/ink/node_modules/node-pty/prebuilds/win32-arm64/conpty/conpty.dll +0 -0
  773. package/vendor/ink/node_modules/node-pty/prebuilds/win32-arm64/conpty.node +0 -0
  774. package/vendor/ink/node_modules/node-pty/prebuilds/win32-arm64/conpty.pdb +0 -0
  775. package/vendor/ink/node_modules/node-pty/prebuilds/win32-arm64/conpty_console_list.node +0 -0
  776. package/vendor/ink/node_modules/node-pty/prebuilds/win32-arm64/conpty_console_list.pdb +0 -0
  777. package/vendor/ink/node_modules/node-pty/prebuilds/win32-x64/conpty/OpenConsole.exe +0 -0
  778. package/vendor/ink/node_modules/node-pty/prebuilds/win32-x64/conpty/conpty.dll +0 -0
  779. package/vendor/ink/node_modules/node-pty/prebuilds/win32-x64/conpty.node +0 -0
  780. package/vendor/ink/node_modules/node-pty/prebuilds/win32-x64/conpty.pdb +0 -0
  781. package/vendor/ink/node_modules/node-pty/prebuilds/win32-x64/conpty_console_list.node +0 -0
  782. package/vendor/ink/node_modules/node-pty/prebuilds/win32-x64/conpty_console_list.pdb +0 -0
  783. package/vendor/ink/node_modules/node-pty/scripts/post-install.js +76 -0
  784. package/vendor/ink/node_modules/node-pty/scripts/prebuild.js +34 -0
  785. package/vendor/ink/node_modules/node-pty/src/unix/pty.cc +875 -0
  786. package/vendor/ink/node_modules/node-pty/src/unix/spawn-helper.cc +23 -0
  787. package/vendor/ink/node_modules/node-pty/src/win/conpty.cc +582 -0
  788. package/vendor/ink/node_modules/node-pty/src/win/conpty.h +41 -0
  789. package/vendor/ink/node_modules/node-pty/src/win/conpty_console_list.cc +44 -0
  790. package/vendor/ink/node_modules/node-pty/src/win/path_util.cc +95 -0
  791. package/vendor/ink/node_modules/node-pty/src/win/path_util.h +26 -0
  792. package/vendor/ink/node_modules/node-pty/third_party/conpty/1.23.251008001/win10-arm64/OpenConsole.exe +0 -0
  793. package/vendor/ink/node_modules/node-pty/third_party/conpty/1.23.251008001/win10-arm64/conpty.dll +0 -0
  794. package/vendor/ink/node_modules/node-pty/third_party/conpty/1.23.251008001/win10-x64/OpenConsole.exe +0 -0
  795. package/vendor/ink/node_modules/node-pty/third_party/conpty/1.23.251008001/win10-x64/conpty.dll +0 -0
  796. package/vendor/ink/node_modules/node-pty/typings/node-pty.d.ts +215 -0
  797. package/vendor/ink/node_modules/undici-types/LICENSE +21 -0
  798. package/vendor/ink/node_modules/undici-types/README.md +6 -0
  799. package/vendor/ink/node_modules/undici-types/agent.d.ts +32 -0
  800. package/vendor/ink/node_modules/undici-types/api.d.ts +43 -0
  801. package/vendor/ink/node_modules/undici-types/balanced-pool.d.ts +30 -0
  802. package/vendor/ink/node_modules/undici-types/cache-interceptor.d.ts +173 -0
  803. package/vendor/ink/node_modules/undici-types/cache.d.ts +36 -0
  804. package/vendor/ink/node_modules/undici-types/client-stats.d.ts +15 -0
  805. package/vendor/ink/node_modules/undici-types/client.d.ts +108 -0
  806. package/vendor/ink/node_modules/undici-types/connector.d.ts +34 -0
  807. package/vendor/ink/node_modules/undici-types/content-type.d.ts +21 -0
  808. package/vendor/ink/node_modules/undici-types/cookies.d.ts +30 -0
  809. package/vendor/ink/node_modules/undici-types/diagnostics-channel.d.ts +74 -0
  810. package/vendor/ink/node_modules/undici-types/dispatcher.d.ts +276 -0
  811. package/vendor/ink/node_modules/undici-types/env-http-proxy-agent.d.ts +22 -0
  812. package/vendor/ink/node_modules/undici-types/errors.d.ts +161 -0
  813. package/vendor/ink/node_modules/undici-types/eventsource.d.ts +66 -0
  814. package/vendor/ink/node_modules/undici-types/fetch.d.ts +211 -0
  815. package/vendor/ink/node_modules/undici-types/formdata.d.ts +108 -0
  816. package/vendor/ink/node_modules/undici-types/global-dispatcher.d.ts +9 -0
  817. package/vendor/ink/node_modules/undici-types/global-origin.d.ts +7 -0
  818. package/vendor/ink/node_modules/undici-types/h2c-client.d.ts +73 -0
  819. package/vendor/ink/node_modules/undici-types/handlers.d.ts +15 -0
  820. package/vendor/ink/node_modules/undici-types/header.d.ts +160 -0
  821. package/vendor/ink/node_modules/undici-types/index.d.ts +88 -0
  822. package/vendor/ink/node_modules/undici-types/interceptors.d.ts +73 -0
  823. package/vendor/ink/node_modules/undici-types/mock-agent.d.ts +68 -0
  824. package/vendor/ink/node_modules/undici-types/mock-call-history.d.ts +111 -0
  825. package/vendor/ink/node_modules/undici-types/mock-client.d.ts +27 -0
  826. package/vendor/ink/node_modules/undici-types/mock-errors.d.ts +12 -0
  827. package/vendor/ink/node_modules/undici-types/mock-interceptor.d.ts +94 -0
  828. package/vendor/ink/node_modules/undici-types/mock-pool.d.ts +27 -0
  829. package/vendor/ink/node_modules/undici-types/package.json +55 -0
  830. package/vendor/ink/node_modules/undici-types/patch.d.ts +29 -0
  831. package/vendor/ink/node_modules/undici-types/pool-stats.d.ts +19 -0
  832. package/vendor/ink/node_modules/undici-types/pool.d.ts +41 -0
  833. package/vendor/ink/node_modules/undici-types/proxy-agent.d.ts +29 -0
  834. package/vendor/ink/node_modules/undici-types/readable.d.ts +68 -0
  835. package/vendor/ink/node_modules/undici-types/retry-agent.d.ts +8 -0
  836. package/vendor/ink/node_modules/undici-types/retry-handler.d.ts +125 -0
  837. package/vendor/ink/node_modules/undici-types/round-robin-pool.d.ts +41 -0
  838. package/vendor/ink/node_modules/undici-types/snapshot-agent.d.ts +109 -0
  839. package/vendor/ink/node_modules/undici-types/util.d.ts +18 -0
  840. package/vendor/ink/node_modules/undici-types/utility.d.ts +7 -0
  841. package/vendor/ink/node_modules/undici-types/webidl.d.ts +341 -0
  842. package/vendor/ink/node_modules/undici-types/websocket.d.ts +186 -0
  843. package/vendor/ink/package.json +201 -0
  844. package/vendor/ink/readme.md +2636 -0
  845. package/bin/swag-agent.js +0 -9
  846. package/dist/server/lib/pg-rate-limiter.d.ts +0 -21
  847. package/dist/server/lib/pg-rate-limiter.js +0 -86
@@ -4,42 +4,49 @@
4
4
  * The parent agent loop injects all dependencies; this module has zero imports
5
5
  * from index.ts (avoids circular deps) and is fully testable in isolation.
6
6
  */
7
+
7
8
  import { randomUUID } from "node:crypto";
8
- import { LoopDetector, estimateCostUsd, sanitizeError, isRetryableError, addPromptCaching, } from "../../shared/agent-core.js";
9
+ import { LoopDetector, estimateCostUsd, sanitizeError, isRetryableError, addPromptCaching, AGENT_DEFAULTS } from "../../shared/agent-core.js";
9
10
  import { buildAPIRequest } from "../../shared/api-client.js";
10
11
  import { MODELS, MODEL_MAP } from "../../shared/constants.js";
11
12
  import { dispatchTools } from "../../shared/tool-dispatch.js";
13
+
14
+ // ============================================================================
15
+ // TYPES
16
+ // ============================================================================
17
+
12
18
  // ============================================================================
13
19
  // TOOL DEFINITION — exposed to parent Opus agent
14
20
  // ============================================================================
21
+
15
22
  export const DELEGATE_TASK_TOOL_DEF = {
16
- name: "delegate_task",
17
- description: "Delegate a focused task to a faster sub-agent. Use for: data lookups, " +
18
- "multi-step tool chains, analytics queries, inventory checks, customer lookups. " +
19
- "Do NOT delegate decisions requiring your judgment or creative writing.",
20
- input_schema: {
21
- type: "object",
22
- properties: {
23
- prompt: {
24
- type: "string",
25
- description: "Clear instruction for the sub-agent. Include all context needed.",
26
- },
27
- model: {
28
- type: "string",
29
- enum: ["haiku", "sonnet"],
30
- description: "haiku (fast/$1) for simple lookups. sonnet ($3) for multi-step chains. Default: haiku.",
31
- },
32
- max_turns: {
33
- type: "number",
34
- description: "Max agentic turns (1-12). Default: 6.",
35
- },
36
- },
37
- required: ["prompt"],
23
+ name: "delegate_task",
24
+ description: "Delegate a focused task to a faster sub-agent. Use for: data lookups, " + "multi-step tool chains, analytics queries, inventory checks, customer lookups. " + "Do NOT delegate decisions requiring your judgment or creative writing.",
25
+ input_schema: {
26
+ type: "object",
27
+ properties: {
28
+ prompt: {
29
+ type: "string",
30
+ description: "Clear instruction for the sub-agent. Include all context needed."
31
+ },
32
+ model: {
33
+ type: "string",
34
+ enum: ["haiku", "sonnet"],
35
+ description: "haiku (fast/$1) for simple lookups. sonnet ($3) for multi-step chains. Default: haiku."
36
+ },
37
+ max_turns: {
38
+ type: "number",
39
+ description: "Max agentic turns (1-12). Default: 6."
40
+ }
38
41
  },
42
+ required: ["prompt"]
43
+ }
39
44
  };
45
+
40
46
  // ============================================================================
41
47
  // SUBAGENT SYSTEM PROMPT
42
48
  // ============================================================================
49
+
43
50
  const SUBAGENT_SYSTEM_PROMPT = `You are a focused tool executor. Your job is to complete the delegated task using the available tools, then return a clear summary of the results.
44
51
 
45
52
  Rules:
@@ -48,161 +55,250 @@ Rules:
48
55
  - If a tool fails, try an alternative approach or report the failure
49
56
  - Be concise in your final response
50
57
  - Always include store_id in tool calls when it's available in your context`;
58
+
51
59
  // ============================================================================
52
60
  // CORE LOOP
53
61
  // ============================================================================
54
- const SUBAGENT_MAX_OUTPUT_TOKENS = 8192;
62
+
63
+ const SUBAGENT_MAX_OUTPUT_TOKENS = AGENT_DEFAULTS.subagentMaxTokens;
55
64
  export async function runServerSubagent(opts) {
56
- const { anthropic, prompt, model: modelAlias, maxTurns, tools, executeTool, onProgress, clientDisconnected, startedAt, maxDurationMs, storeId, } = opts;
57
- const subagentId = `sub-${randomUUID().slice(0, 8)}`;
58
- const modelId = MODEL_MAP[modelAlias] || MODELS.HAIKU;
59
- const loopDetector = new LoopDetector();
60
- const toolsUsed = [];
61
- let totalIn = 0;
62
- let totalOut = 0;
63
- let cacheCreation = 0;
64
- let cacheRead = 0;
65
- // Enable thinking for capable models; adjust max tokens for Opus
66
- const shouldThink = modelAlias === "opus" || modelAlias === "sonnet";
67
- const baseMaxTokens = opts.maxOutputTokens ?? SUBAGENT_MAX_OUTPUT_TOKENS;
68
- const effectiveMaxTokens = modelAlias === "opus" ? Math.max(16384, baseMaxTokens) : baseMaxTokens;
69
- const effectiveTemperature = opts.temperature ?? 0.3;
70
- // Context management for subagent: clear at 60K, keep 2, no compaction
71
- const apiConfig = buildAPIRequest({
72
- model: modelId,
73
- contextProfile: "subagent",
74
- thinkingEnabled: shouldThink,
75
- maxOutputTokens: effectiveMaxTokens,
65
+ const {
66
+ anthropic,
67
+ prompt,
68
+ model: modelAlias,
69
+ maxTurns,
70
+ tools,
71
+ executeTool,
72
+ onProgress,
73
+ clientDisconnected,
74
+ startedAt,
75
+ maxDurationMs,
76
+ storeId
77
+ } = opts;
78
+ const subagentId = `sub-${randomUUID().slice(0, 8)}`;
79
+ const modelId = MODEL_MAP[modelAlias] || MODELS.HAIKU;
80
+ const loopDetector = new LoopDetector();
81
+ const toolsUsed = [];
82
+ let totalIn = 0;
83
+ let totalOut = 0;
84
+ let cacheCreation = 0;
85
+ let cacheRead = 0;
86
+
87
+ // Enable thinking for capable models; adjust max tokens for Opus
88
+ const shouldThink = modelAlias === "opus" || modelAlias === "sonnet";
89
+ const baseMaxTokens = opts.maxOutputTokens ?? SUBAGENT_MAX_OUTPUT_TOKENS;
90
+ const effectiveMaxTokens = modelAlias === "opus" ? Math.max(16384, baseMaxTokens) : baseMaxTokens;
91
+ const effectiveTemperature = opts.temperature ?? AGENT_DEFAULTS.subagentTemperature;
92
+
93
+ // Context management for subagent: clear at 60K, keep 2, no compaction
94
+ const apiConfig = buildAPIRequest({
95
+ model: modelId,
96
+ contextProfile: "subagent",
97
+ thinkingEnabled: shouldThink,
98
+ maxOutputTokens: effectiveMaxTokens
99
+ });
100
+ const system = storeId ? `${SUBAGENT_SYSTEM_PROMPT}\n\nstore_id: ${storeId}` : SUBAGENT_SYSTEM_PROMPT;
101
+ const messages = [{
102
+ role: "user",
103
+ content: prompt
104
+ }];
105
+ onProgress?.({
106
+ subagentId,
107
+ event: "started",
108
+ model: modelAlias
109
+ });
110
+ let turn = 0;
111
+ let lastText = "";
112
+ while (turn < maxTurns) {
113
+ // Abort checks
114
+ if (clientDisconnected.value) {
115
+ return makeResult(false, "Client disconnected", totalIn, totalOut, modelId, toolsUsed, turn, cacheRead, cacheCreation);
116
+ }
117
+ if (Date.now() - startedAt > maxDurationMs) {
118
+ return makeResult(false, "Parent request timeout", totalIn, totalOut, modelId, toolsUsed, turn, cacheRead, cacheCreation);
119
+ }
120
+ turn++;
121
+ loopDetector.resetTurn();
122
+ onProgress?.({
123
+ subagentId,
124
+ event: "turn",
125
+ turn,
126
+ maxTurns
76
127
  });
77
- const system = storeId
78
- ? `${SUBAGENT_SYSTEM_PROMPT}\n\nstore_id: ${storeId}`
79
- : SUBAGENT_SYSTEM_PROMPT;
80
- const messages = [{ role: "user", content: prompt }];
81
- onProgress?.({ subagentId, event: "started", model: modelAlias });
82
- let turn = 0;
83
- let lastText = "";
84
- while (turn < maxTurns) {
85
- // Abort checks
86
- if (clientDisconnected.value) {
87
- return makeResult(false, "Client disconnected", totalIn, totalOut, modelId, toolsUsed, turn, cacheRead, cacheCreation);
88
- }
89
- if (Date.now() - startedAt > maxDurationMs) {
90
- return makeResult(false, "Parent request timeout", totalIn, totalOut, modelId, toolsUsed, turn, cacheRead, cacheCreation);
91
- }
92
- turn++;
93
- loopDetector.resetTurn();
94
- onProgress?.({ subagentId, event: "turn", turn, maxTurns });
95
- // Apply prompt caching to tools and messages for cache hits on repeated context
96
- const { tools: cachedTools, messages: cachedMessages } = addPromptCaching(tools, messages);
97
- // Non-streaming API call with retry
98
- let response;
99
- try {
100
- response = await withSubagentRetry(async () => {
101
- return await anthropic.beta.messages.create({
102
- model: modelId,
103
- max_tokens: apiConfig.maxTokens,
104
- temperature: shouldThink ? 1 : effectiveTemperature, // Anthropic requires temp=1 with thinking
105
- system,
106
- tools: cachedTools,
107
- messages: cachedMessages,
108
- betas: apiConfig.betas,
109
- context_management: apiConfig.contextManagement,
110
- ...(apiConfig.thinking ? { thinking: apiConfig.thinking } : {}),
111
- });
112
- });
113
- }
114
- catch (err) {
115
- const errMsg = sanitizeError(err);
116
- onProgress?.({ subagentId, event: "error", output: errMsg });
117
- return makeResult(false, `API error: ${errMsg}`, totalIn, totalOut, modelId, toolsUsed, turn, cacheRead, cacheCreation);
118
- }
119
- // Track tokens (including cache for accurate cost)
120
- totalIn += response.usage?.input_tokens || 0;
121
- totalOut += response.usage?.output_tokens || 0;
122
- cacheCreation += response.usage?.cache_creation_input_tokens ?? 0;
123
- cacheRead += response.usage?.cache_read_input_tokens ?? 0;
124
- // Extract text and tool_use blocks
125
- const textBlocks = [];
126
- const toolUseBlocks = [];
127
- for (const block of response.content) {
128
- if (block.type === "text") {
129
- textBlocks.push(block.text);
130
- }
131
- else if (block.type === "tool_use") {
132
- toolUseBlocks.push({ id: block.id, name: block.name, input: block.input });
133
- }
134
- }
135
- lastText = textBlocks.join("\n");
136
- // No tool calls → done
137
- if (toolUseBlocks.length === 0) {
138
- onProgress?.({ subagentId, event: "done", output: lastText });
139
- return makeResult(true, lastText, totalIn, totalOut, modelId, toolsUsed, turn, cacheRead, cacheCreation);
140
- }
141
- // Execute tools in parallel via dispatchTools
142
- const toolExecutor = async (name, input) => {
143
- toolsUsed.push(name);
144
- onProgress?.({ subagentId, event: "tool_start", toolName: name });
145
- try {
146
- const result = await executeTool(name, input);
147
- onProgress?.({ subagentId, event: "tool_result", toolName: name, toolSuccess: result.success });
148
- return {
149
- success: result.success,
150
- output: result.success ? JSON.stringify(result.data) : (result.error || "Unknown error"),
151
- };
152
- }
153
- catch (err) {
154
- const errMsg = sanitizeError(err);
155
- onProgress?.({ subagentId, event: "tool_result", toolName: name, toolSuccess: false });
156
- return { success: false, output: errMsg };
157
- }
158
- };
159
- const { results: toolResults, bailOut, bailMessage } = await dispatchTools(toolUseBlocks, toolExecutor, { loopDetector, maxConcurrent: 3 });
160
- if (bailOut) {
161
- onProgress?.({ subagentId, event: "error", output: bailMessage });
162
- return makeResult(false, bailMessage || "Too many errors", totalIn, totalOut, modelId, toolsUsed, turn, cacheRead, cacheCreation);
163
- }
164
- // Append for next turn
165
- messages.push({
166
- role: "assistant",
167
- content: response.content,
128
+
129
+ // Apply prompt caching to tools and messages for cache hits on repeated context
130
+ const {
131
+ tools: cachedTools,
132
+ messages: cachedMessages
133
+ } = addPromptCaching(tools, messages);
134
+
135
+ // Non-streaming API call with retry
136
+ let response;
137
+ try {
138
+ response = await withSubagentRetry(async () => {
139
+ return await anthropic.beta.messages.create({
140
+ model: modelId,
141
+ max_tokens: apiConfig.maxTokens,
142
+ temperature: shouldThink ? 1 : effectiveTemperature,
143
+ // Anthropic requires temp=1 with thinking
144
+ system,
145
+ tools: cachedTools,
146
+ messages: cachedMessages,
147
+ betas: apiConfig.betas,
148
+ context_management: apiConfig.contextManagement,
149
+ ...(apiConfig.thinking ? {
150
+ thinking: apiConfig.thinking
151
+ } : {})
152
+ });
153
+ });
154
+ } catch (err) {
155
+ const errMsg = sanitizeError(err);
156
+ onProgress?.({
157
+ subagentId,
158
+ event: "error",
159
+ output: errMsg
160
+ });
161
+ return makeResult(false, `API error: ${errMsg}`, totalIn, totalOut, modelId, toolsUsed, turn, cacheRead, cacheCreation);
162
+ }
163
+
164
+ // Track tokens (including cache for accurate cost)
165
+ totalIn += response.usage?.input_tokens || 0;
166
+ totalOut += response.usage?.output_tokens || 0;
167
+ cacheCreation += response.usage?.cache_creation_input_tokens ?? 0;
168
+ cacheRead += response.usage?.cache_read_input_tokens ?? 0;
169
+
170
+ // Extract text and tool_use blocks
171
+ const textBlocks = [];
172
+ const toolUseBlocks = [];
173
+ for (const block of response.content) {
174
+ if (block.type === "text") {
175
+ textBlocks.push(block.text);
176
+ } else if (block.type === "tool_use") {
177
+ toolUseBlocks.push({
178
+ id: block.id,
179
+ name: block.name,
180
+ input: block.input
181
+ });
182
+ }
183
+ }
184
+ lastText = textBlocks.join("\n");
185
+
186
+ // No tool calls → done
187
+ if (toolUseBlocks.length === 0) {
188
+ onProgress?.({
189
+ subagentId,
190
+ event: "done",
191
+ output: lastText
192
+ });
193
+ return makeResult(true, lastText, totalIn, totalOut, modelId, toolsUsed, turn, cacheRead, cacheCreation);
194
+ }
195
+
196
+ // Execute tools in parallel via dispatchTools
197
+ const toolExecutor = async (name, input) => {
198
+ toolsUsed.push(name);
199
+ onProgress?.({
200
+ subagentId,
201
+ event: "tool_start",
202
+ toolName: name
203
+ });
204
+ try {
205
+ const result = await executeTool(name, input);
206
+ onProgress?.({
207
+ subagentId,
208
+ event: "tool_result",
209
+ toolName: name,
210
+ toolSuccess: result.success
168
211
  });
169
- messages.push({
170
- role: "user",
171
- content: toolResults,
212
+ return {
213
+ success: result.success,
214
+ output: result.success ? JSON.stringify(result.data) : result.error || "Unknown error"
215
+ };
216
+ } catch (err) {
217
+ const errMsg = sanitizeError(err);
218
+ onProgress?.({
219
+ subagentId,
220
+ event: "tool_result",
221
+ toolName: name,
222
+ toolSuccess: false
172
223
  });
224
+ return {
225
+ success: false,
226
+ output: errMsg
227
+ };
228
+ }
229
+ };
230
+ const {
231
+ results: toolResults,
232
+ bailOut,
233
+ bailMessage
234
+ } = await dispatchTools(toolUseBlocks, toolExecutor, {
235
+ loopDetector,
236
+ maxConcurrent: AGENT_DEFAULTS.maxConcurrentTools,
237
+ batchErrorLimit: AGENT_DEFAULTS.loopBatchErrorLimit
238
+ });
239
+ if (bailOut) {
240
+ onProgress?.({
241
+ subagentId,
242
+ event: "error",
243
+ output: bailMessage
244
+ });
245
+ return makeResult(false, bailMessage || "Too many errors", totalIn, totalOut, modelId, toolsUsed, turn, cacheRead, cacheCreation);
173
246
  }
174
- // Exhausted max turns
175
- onProgress?.({ subagentId, event: "done", output: lastText });
176
- return makeResult(true, lastText || "(subagent completed without text response)", totalIn, totalOut, modelId, toolsUsed, turn, cacheRead, cacheCreation);
247
+
248
+ // Append for next turn
249
+ messages.push({
250
+ role: "assistant",
251
+ content: response.content
252
+ });
253
+ messages.push({
254
+ role: "user",
255
+ content: toolResults
256
+ });
257
+ }
258
+
259
+ // Exhausted max turns
260
+ onProgress?.({
261
+ subagentId,
262
+ event: "done",
263
+ output: lastText
264
+ });
265
+ return makeResult(true, lastText || "(subagent completed without text response)", totalIn, totalOut, modelId, toolsUsed, turn, cacheRead, cacheCreation);
177
266
  }
267
+
178
268
  // ============================================================================
179
269
  // HELPERS
180
270
  // ============================================================================
271
+
181
272
  function makeResult(success, output, inputTokens, outputTokens, modelId, toolsUsed, turnCount, cacheReadTokens = 0, cacheCreationTokens = 0) {
182
- return {
183
- success,
184
- output,
185
- tokensUsed: { input: inputTokens, output: outputTokens, cacheRead: cacheReadTokens, cacheCreation: cacheCreationTokens },
186
- costUsd: estimateCostUsd(inputTokens, outputTokens, modelId, 0, cacheReadTokens, cacheCreationTokens),
187
- toolsUsed: [...new Set(toolsUsed)],
188
- turnCount,
189
- stopReason: "end_turn", // subagent always runs to completion or error
190
- };
273
+ return {
274
+ success,
275
+ output,
276
+ tokensUsed: {
277
+ input: inputTokens,
278
+ output: outputTokens,
279
+ cacheRead: cacheReadTokens,
280
+ cacheCreation: cacheCreationTokens
281
+ },
282
+ costUsd: estimateCostUsd(inputTokens, outputTokens, modelId, 0, cacheReadTokens, cacheCreationTokens),
283
+ toolsUsed: [...new Set(toolsUsed)],
284
+ turnCount,
285
+ stopReason: "end_turn" // subagent always runs to completion or error
286
+ };
191
287
  }
192
288
  async function withSubagentRetry(fn, maxRetries = 2) {
193
- let lastError;
194
- for (let attempt = 0; attempt <= maxRetries; attempt++) {
195
- try {
196
- return await fn();
197
- }
198
- catch (err) {
199
- lastError = err;
200
- if (attempt < maxRetries && isRetryableError(err)) {
201
- await new Promise((resolve) => setTimeout(resolve, 1000 * Math.pow(2, attempt)));
202
- continue;
203
- }
204
- throw err;
205
- }
289
+ let lastError;
290
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
291
+ try {
292
+ return await fn();
293
+ } catch (err) {
294
+ lastError = err;
295
+ if (attempt < maxRetries && isRetryableError(err)) {
296
+ await new Promise(resolve => setTimeout(resolve, 1000 * Math.pow(2, attempt)));
297
+ continue;
298
+ }
299
+ throw err;
206
300
  }
207
- throw lastError;
301
+ }
302
+ throw lastError;
208
303
  }
304
+ //# sourceMappingURL=server-subagent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-subagent.js","names":["randomUUID","LoopDetector","estimateCostUsd","sanitizeError","isRetryableError","addPromptCaching","AGENT_DEFAULTS","buildAPIRequest","MODELS","MODEL_MAP","dispatchTools","DELEGATE_TASK_TOOL_DEF","name","description","input_schema","type","properties","prompt","model","enum","max_turns","required","SUBAGENT_SYSTEM_PROMPT","SUBAGENT_MAX_OUTPUT_TOKENS","subagentMaxTokens","runServerSubagent","opts","anthropic","modelAlias","maxTurns","tools","executeTool","onProgress","clientDisconnected","startedAt","maxDurationMs","storeId","subagentId","slice","modelId","HAIKU","loopDetector","toolsUsed","totalIn","totalOut","cacheCreation","cacheRead","shouldThink","baseMaxTokens","maxOutputTokens","effectiveMaxTokens","Math","max","effectiveTemperature","temperature","subagentTemperature","apiConfig","contextProfile","thinkingEnabled","system","messages","role","content","event","turn","lastText","value","makeResult","Date","now","resetTurn","cachedTools","cachedMessages","response","withSubagentRetry","beta","create","max_tokens","maxTokens","betas","context_management","contextManagement","thinking","err","errMsg","output","usage","input_tokens","output_tokens","cache_creation_input_tokens","cache_read_input_tokens","textBlocks","toolUseBlocks","block","push","text","id","input","join","length","toolExecutor","toolName","result","toolSuccess","success","JSON","stringify","data","error","results","toolResults","bailOut","bailMessage","maxConcurrent","maxConcurrentTools","batchErrorLimit","loopBatchErrorLimit","inputTokens","outputTokens","turnCount","cacheReadTokens","cacheCreationTokens","tokensUsed","costUsd","Set","stopReason","fn","maxRetries","lastError","attempt","Promise","resolve","setTimeout","pow"],"sources":["../../../src/server/lib/server-subagent.ts"],"sourcesContent":["/**\n * Server Subagent — enables Opus to delegate tool execution to Haiku/Sonnet.\n *\n * The parent agent loop injects all dependencies; this module has zero imports\n * from index.ts (avoids circular deps) and is fully testable in isolation.\n */\n\nimport { randomUUID } from \"node:crypto\";\nimport type Anthropic from \"@anthropic-ai/sdk\";\nimport type { SupabaseClient } from \"@supabase/supabase-js\";\n\nimport {\n LoopDetector,\n estimateCostUsd,\n sanitizeError,\n isRetryableError,\n addPromptCaching,\n AGENT_DEFAULTS,\n} from \"../../shared/agent-core.js\";\nimport { buildAPIRequest } from \"../../shared/api-client.js\";\nimport { MODELS, MODEL_MAP } from \"../../shared/constants.js\";\nimport { dispatchTools } from \"../../shared/tool-dispatch.js\";\n\n// ============================================================================\n// TYPES\n// ============================================================================\n\nexport interface SubagentResult {\n success: boolean;\n output: string;\n tokensUsed: { input: number; output: number; cacheRead: number; cacheCreation: number };\n costUsd: number;\n toolsUsed: string[];\n turnCount: number;\n stopReason: string;\n}\n\nexport interface SubagentProgressEvent {\n subagentId: string;\n event: \"started\" | \"tool_start\" | \"tool_result\" | \"turn\" | \"done\" | \"error\";\n model?: string;\n toolName?: string;\n toolSuccess?: boolean;\n turn?: number;\n maxTurns?: number;\n output?: string;\n}\n\nexport type SubagentProgressCallback = (event: SubagentProgressEvent) => void;\n\nexport interface RunServerSubagentOptions {\n anthropic: Anthropic;\n supabase: SupabaseClient;\n storeId: string | undefined;\n prompt: string;\n model: \"haiku\" | \"sonnet\" | \"opus\";\n maxTurns: number;\n tools: Array<{ name: string; description: string; input_schema: Record<string, unknown> }>;\n executeTool: (\n toolName: string,\n args: Record<string, unknown>,\n ) => Promise<{ success: boolean; data?: unknown; error?: string }>;\n onProgress?: SubagentProgressCallback;\n clientDisconnected: { value: boolean };\n startedAt: number;\n maxDurationMs: number;\n // Parent-controlled overrides from context_config\n maxOutputTokens?: number; // Default: SUBAGENT_MAX_OUTPUT_TOKENS (8192)\n temperature?: number; // Default: 0.3\n}\n\n// ============================================================================\n// TOOL DEFINITION — exposed to parent Opus agent\n// ============================================================================\n\nexport const DELEGATE_TASK_TOOL_DEF = {\n name: \"delegate_task\",\n description:\n \"Delegate a focused task to a faster sub-agent. Use for: data lookups, \" +\n \"multi-step tool chains, analytics queries, inventory checks, customer lookups. \" +\n \"Do NOT delegate decisions requiring your judgment or creative writing.\",\n input_schema: {\n type: \"object\" as const,\n properties: {\n prompt: {\n type: \"string\",\n description: \"Clear instruction for the sub-agent. Include all context needed.\",\n },\n model: {\n type: \"string\",\n enum: [\"haiku\", \"sonnet\"],\n description: \"haiku (fast/$1) for simple lookups. sonnet ($3) for multi-step chains. Default: haiku.\",\n },\n max_turns: {\n type: \"number\",\n description: \"Max agentic turns (1-12). Default: 6.\",\n },\n },\n required: [\"prompt\"],\n },\n};\n\n// ============================================================================\n// SUBAGENT SYSTEM PROMPT\n// ============================================================================\n\nconst SUBAGENT_SYSTEM_PROMPT = `You are a focused tool executor. Your job is to complete the delegated task using the available tools, then return a clear summary of the results.\n\nRules:\n- Execute tools as needed to fulfill the request\n- Return factual results — do not add opinions or recommendations\n- If a tool fails, try an alternative approach or report the failure\n- Be concise in your final response\n- Always include store_id in tool calls when it's available in your context`;\n\n// ============================================================================\n// CORE LOOP\n// ============================================================================\n\nconst SUBAGENT_MAX_OUTPUT_TOKENS = AGENT_DEFAULTS.subagentMaxTokens;\nexport async function runServerSubagent(opts: RunServerSubagentOptions): Promise<SubagentResult> {\n const {\n anthropic,\n prompt,\n model: modelAlias,\n maxTurns,\n tools,\n executeTool,\n onProgress,\n clientDisconnected,\n startedAt,\n maxDurationMs,\n storeId,\n } = opts;\n\n const subagentId = `sub-${randomUUID().slice(0, 8)}`;\n const modelId = MODEL_MAP[modelAlias] || MODELS.HAIKU;\n const loopDetector = new LoopDetector();\n const toolsUsed: string[] = [];\n\n let totalIn = 0;\n let totalOut = 0;\n let cacheCreation = 0;\n let cacheRead = 0;\n\n // Enable thinking for capable models; adjust max tokens for Opus\n const shouldThink = modelAlias === \"opus\" || modelAlias === \"sonnet\";\n const baseMaxTokens = opts.maxOutputTokens ?? SUBAGENT_MAX_OUTPUT_TOKENS;\n const effectiveMaxTokens = modelAlias === \"opus\" ? Math.max(16384, baseMaxTokens) : baseMaxTokens;\n const effectiveTemperature = opts.temperature ?? AGENT_DEFAULTS.subagentTemperature;\n\n // Context management for subagent: clear at 60K, keep 2, no compaction\n const apiConfig = buildAPIRequest({\n model: modelId,\n contextProfile: \"subagent\",\n thinkingEnabled: shouldThink,\n maxOutputTokens: effectiveMaxTokens,\n });\n\n const system = storeId\n ? `${SUBAGENT_SYSTEM_PROMPT}\\n\\nstore_id: ${storeId}`\n : SUBAGENT_SYSTEM_PROMPT;\n\n const messages: Anthropic.MessageParam[] = [{ role: \"user\", content: prompt }];\n\n onProgress?.({ subagentId, event: \"started\", model: modelAlias });\n\n let turn = 0;\n let lastText = \"\";\n\n while (turn < maxTurns) {\n // Abort checks\n if (clientDisconnected.value) {\n return makeResult(false, \"Client disconnected\", totalIn, totalOut, modelId, toolsUsed, turn, cacheRead, cacheCreation);\n }\n if (Date.now() - startedAt > maxDurationMs) {\n return makeResult(false, \"Parent request timeout\", totalIn, totalOut, modelId, toolsUsed, turn, cacheRead, cacheCreation);\n }\n\n turn++;\n loopDetector.resetTurn();\n\n onProgress?.({ subagentId, event: \"turn\", turn, maxTurns });\n\n // Apply prompt caching to tools and messages for cache hits on repeated context\n const { tools: cachedTools, messages: cachedMessages } = addPromptCaching(\n tools as any, messages as any,\n );\n\n // Non-streaming API call with retry\n let response: Anthropic.Message;\n try {\n response = await withSubagentRetry(async () => {\n return await anthropic.beta.messages.create({\n model: modelId,\n max_tokens: apiConfig.maxTokens,\n temperature: shouldThink ? 1 : effectiveTemperature, // Anthropic requires temp=1 with thinking\n system,\n tools: cachedTools as any,\n messages: cachedMessages as any,\n betas: apiConfig.betas,\n context_management: apiConfig.contextManagement,\n ...(apiConfig.thinking ? { thinking: apiConfig.thinking } : {}),\n } as any) as unknown as Anthropic.Message;\n });\n } catch (err) {\n const errMsg = sanitizeError(err);\n onProgress?.({ subagentId, event: \"error\", output: errMsg });\n return makeResult(false, `API error: ${errMsg}`, totalIn, totalOut, modelId, toolsUsed, turn, cacheRead, cacheCreation);\n }\n\n // Track tokens (including cache for accurate cost)\n totalIn += response.usage?.input_tokens || 0;\n totalOut += response.usage?.output_tokens || 0;\n cacheCreation += (response.usage as any)?.cache_creation_input_tokens ?? 0;\n cacheRead += (response.usage as any)?.cache_read_input_tokens ?? 0;\n\n // Extract text and tool_use blocks\n const textBlocks: string[] = [];\n const toolUseBlocks: Array<{ id: string; name: string; input: Record<string, unknown> }> = [];\n\n for (const block of response.content) {\n if (block.type === \"text\") {\n textBlocks.push(block.text);\n } else if (block.type === \"tool_use\") {\n toolUseBlocks.push({ id: block.id, name: block.name, input: block.input as Record<string, unknown> });\n }\n }\n\n lastText = textBlocks.join(\"\\n\");\n\n // No tool calls → done\n if (toolUseBlocks.length === 0) {\n onProgress?.({ subagentId, event: \"done\", output: lastText });\n return makeResult(true, lastText, totalIn, totalOut, modelId, toolsUsed, turn, cacheRead, cacheCreation);\n }\n\n // Execute tools in parallel via dispatchTools\n const toolExecutor = async (name: string, input: Record<string, unknown>) => {\n toolsUsed.push(name);\n onProgress?.({ subagentId, event: \"tool_start\", toolName: name });\n try {\n const result = await executeTool(name, input);\n onProgress?.({ subagentId, event: \"tool_result\", toolName: name, toolSuccess: result.success });\n return {\n success: result.success,\n output: result.success ? JSON.stringify(result.data) : (result.error || \"Unknown error\"),\n };\n } catch (err) {\n const errMsg = sanitizeError(err);\n onProgress?.({ subagentId, event: \"tool_result\", toolName: name, toolSuccess: false });\n return { success: false, output: errMsg };\n }\n };\n\n const { results: toolResults, bailOut, bailMessage } = await dispatchTools(\n toolUseBlocks as any,\n toolExecutor,\n { loopDetector, maxConcurrent: AGENT_DEFAULTS.maxConcurrentTools, batchErrorLimit: AGENT_DEFAULTS.loopBatchErrorLimit },\n );\n\n if (bailOut) {\n onProgress?.({ subagentId, event: \"error\", output: bailMessage });\n return makeResult(false, bailMessage || \"Too many errors\", totalIn, totalOut, modelId, toolsUsed, turn, cacheRead, cacheCreation);\n }\n\n // Append for next turn\n messages.push({\n role: \"assistant\",\n content: response.content as any,\n });\n messages.push({\n role: \"user\",\n content: toolResults as any,\n });\n }\n\n // Exhausted max turns\n onProgress?.({ subagentId, event: \"done\", output: lastText });\n return makeResult(true, lastText || \"(subagent completed without text response)\", totalIn, totalOut, modelId, toolsUsed, turn, cacheRead, cacheCreation);\n}\n\n// ============================================================================\n// HELPERS\n// ============================================================================\n\nfunction makeResult(\n success: boolean,\n output: string,\n inputTokens: number,\n outputTokens: number,\n modelId: string,\n toolsUsed: string[],\n turnCount: number,\n cacheReadTokens = 0,\n cacheCreationTokens = 0,\n): SubagentResult {\n return {\n success,\n output,\n tokensUsed: { input: inputTokens, output: outputTokens, cacheRead: cacheReadTokens, cacheCreation: cacheCreationTokens },\n costUsd: estimateCostUsd(inputTokens, outputTokens, modelId, 0, cacheReadTokens, cacheCreationTokens),\n toolsUsed: [...new Set(toolsUsed)],\n turnCount,\n stopReason: \"end_turn\", // subagent always runs to completion or error\n };\n}\n\nasync function withSubagentRetry<T>(fn: () => Promise<T>, maxRetries = 2): Promise<T> {\n let lastError: unknown;\n for (let attempt = 0; attempt <= maxRetries; attempt++) {\n try {\n return await fn();\n } catch (err) {\n lastError = err;\n if (attempt < maxRetries && isRetryableError(err)) {\n await new Promise((resolve) => setTimeout(resolve, 1000 * Math.pow(2, attempt)));\n continue;\n }\n throw err;\n }\n }\n throw lastError;\n}\n"],"mappings":"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","ignoreList":[]}