whale-code 6.5.10 → 6.6.0

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 (627) hide show
  1. package/dist/cli/chat/ChatApp.js +7 -11
  2. package/dist/cli/chat/ChatApp.js.map +1 -1
  3. package/dist/cli/chat/ChatInput.js +7 -3
  4. package/dist/cli/chat/ChatInput.js.map +1 -1
  5. package/dist/cli/chat/MessageList.js +5 -6
  6. package/dist/cli/chat/MessageList.js.map +1 -1
  7. package/dist/cli/chat/StatusBar.d.ts +2 -2
  8. package/dist/cli/chat/StatusBar.js +90 -160
  9. package/dist/cli/chat/StatusBar.js.map +1 -1
  10. package/dist/cli/chat/components/LiveArea.js +78 -115
  11. package/dist/cli/chat/components/LiveArea.js.map +1 -1
  12. package/dist/cli/chat/components/StaticMessages.js +60 -79
  13. package/dist/cli/chat/components/StaticMessages.js.map +1 -1
  14. package/dist/cli/chat/hooks/useAgentLoop.js +45 -37
  15. package/dist/cli/chat/hooks/useAgentLoop.js.map +1 -1
  16. package/dist/cli/chat/store.d.ts +12 -0
  17. package/dist/cli/chat/store.js +19 -0
  18. package/dist/cli/chat/store.js.map +1 -1
  19. package/dist/cli/commands/doctor.js +1 -6
  20. package/dist/cli/commands/doctor.js.map +1 -1
  21. package/dist/cli/services/agent-loop-tools.js +11 -2
  22. package/dist/cli/services/agent-loop-tools.js.map +1 -1
  23. package/dist/cli/services/agent-loop.js +1 -1
  24. package/dist/cli/services/agent-loop.js.map +1 -1
  25. package/dist/cli/services/cli-agent-loop.js +3 -2
  26. package/dist/cli/services/cli-agent-loop.js.map +1 -1
  27. package/dist/cli/services/config-store.d.ts +8 -10
  28. package/dist/cli/services/config-store.js +14 -13
  29. package/dist/cli/services/config-store.js.map +1 -1
  30. package/dist/cli/services/memory-manager.js +2 -2
  31. package/dist/cli/services/memory-manager.js.map +1 -1
  32. package/dist/cli/services/permission-modes.js +14 -10
  33. package/dist/cli/services/permission-modes.js.map +1 -1
  34. package/dist/cli/services/session-client.js +2 -1
  35. package/dist/cli/services/session-client.js.map +1 -1
  36. package/dist/cli/services/session-persistence.js +14 -6
  37. package/dist/cli/services/session-persistence.js.map +1 -1
  38. package/dist/cli/setup/SetupApp.d.ts +2 -2
  39. package/dist/cli/setup/SetupApp.js +91 -254
  40. package/dist/cli/setup/SetupApp.js.map +1 -1
  41. package/dist/cli/shared/SpinnerSlot.js +4 -1
  42. package/dist/cli/shared/SpinnerSlot.js.map +1 -1
  43. package/dist/cli/status/StatusApp.js +3 -3
  44. package/dist/cli/status/StatusApp.js.map +1 -1
  45. package/dist/index.js +13 -3
  46. package/dist/index.js.map +1 -1
  47. package/dist/server/handlers/browser-lifecycle.js +10 -0
  48. package/dist/server/handlers/browser-lifecycle.js.map +1 -1
  49. package/dist/server/handlers/browser.js +16 -1
  50. package/dist/server/handlers/browser.js.map +1 -1
  51. package/dist/server/handlers/campaigns.js +11 -0
  52. package/dist/server/handlers/campaigns.js.map +1 -1
  53. package/dist/server/handlers/catalog-products.js +19 -5
  54. package/dist/server/handlers/catalog-products.js.map +1 -1
  55. package/dist/server/handlers/catalog.js +42 -8
  56. package/dist/server/handlers/catalog.js.map +1 -1
  57. package/dist/server/handlers/clickhouse.js +4 -4
  58. package/dist/server/handlers/clickhouse.js.map +1 -1
  59. package/dist/server/handlers/comms-email.js +70 -8
  60. package/dist/server/handlers/comms-email.js.map +1 -1
  61. package/dist/server/handlers/comms.js +63 -21
  62. package/dist/server/handlers/comms.js.map +1 -1
  63. package/dist/server/handlers/coupons.js +141 -77
  64. package/dist/server/handlers/coupons.js.map +1 -1
  65. package/dist/server/handlers/google-ads.js +280 -8
  66. package/dist/server/handlers/google-ads.js.map +1 -1
  67. package/dist/server/handlers/remove-bg.d.ts +33 -0
  68. package/dist/server/handlers/remove-bg.js +698 -44
  69. package/dist/server/handlers/remove-bg.js.map +1 -1
  70. package/dist/server/handlers/supply-chain.js +93 -1
  71. package/dist/server/handlers/supply-chain.js.map +1 -1
  72. package/dist/server/handlers/workflow-steps-types.d.ts +1 -1
  73. package/dist/server/handlers/workflow-steps-types.js +7 -1
  74. package/dist/server/handlers/workflow-steps-types.js.map +1 -1
  75. package/dist/server/handlers/workflow-steps.js +1 -1
  76. package/dist/server/handlers/workflow-steps.js.map +1 -1
  77. package/dist/server/index.js +122 -29
  78. package/dist/server/index.js.map +1 -1
  79. package/dist/server/lib/agent-loop-turn.js +33 -3
  80. package/dist/server/lib/agent-loop-turn.js.map +1 -1
  81. package/dist/server/lib/agent-loop-types.d.ts +6 -2
  82. package/dist/server/lib/agent-loop-types.js +14 -2
  83. package/dist/server/lib/agent-loop-types.js.map +1 -1
  84. package/dist/server/lib/clickhouse-client.js +4 -2
  85. package/dist/server/lib/clickhouse-client.js.map +1 -1
  86. package/dist/server/lib/code-worker.js +4 -1
  87. package/dist/server/lib/code-worker.js.map +1 -1
  88. package/dist/server/providers/anthropic.js +103 -33
  89. package/dist/server/providers/anthropic.js.map +1 -1
  90. package/dist/server/server-chat.js +2 -2
  91. package/dist/server/server-chat.js.map +1 -1
  92. package/dist/server/server-helpers.d.ts +8 -1
  93. package/dist/server/server-helpers.js +17 -3
  94. package/dist/server/server-helpers.js.map +1 -1
  95. package/dist/server/server-persist.js +34 -21
  96. package/dist/server/server-persist.js.map +1 -1
  97. package/dist/server/server-rate-limit.d.ts +0 -1
  98. package/dist/server/server-rate-limit.js +5 -5
  99. package/dist/server/server-rate-limit.js.map +1 -1
  100. package/dist/server/server-routes-approvals.js +2 -2
  101. package/dist/server/server-routes-approvals.js.map +1 -1
  102. package/dist/server/server-routes-auth.js +2 -2
  103. package/dist/server/server-routes-auth.js.map +1 -1
  104. package/dist/server/server-routes-events.js +2 -2
  105. package/dist/server/server-routes-events.js.map +1 -1
  106. package/dist/server/server-routes-public.js +4 -4
  107. package/dist/server/server-routes-public.js.map +1 -1
  108. package/dist/server/server-routes-webchat.js +3 -3
  109. package/dist/server/server-routes-webchat.js.map +1 -1
  110. package/dist/server/server-store-circuit-breaker.js +1 -1
  111. package/dist/server/server-store-circuit-breaker.js.map +1 -1
  112. package/dist/server/tool-router.js +7 -4
  113. package/dist/server/tool-router.js.map +1 -1
  114. package/dist/server/validation.js +11 -0
  115. package/dist/server/validation.js.map +1 -1
  116. package/dist/setup.js +5 -25
  117. package/dist/setup.js.map +1 -1
  118. package/dist/shared/api-client.js +38 -11
  119. package/dist/shared/api-client.js.map +1 -1
  120. package/package.json +12 -10
  121. package/vendor/ink/build/ink.js +68 -24
  122. package/vendor/ink/node_modules/react-devtools-core/README.md +152 -0
  123. package/vendor/ink/node_modules/react-devtools-core/backend.js +1 -0
  124. package/vendor/ink/node_modules/react-devtools-core/dist/648.chunk.js +2 -0
  125. package/vendor/ink/node_modules/react-devtools-core/dist/648.chunk.js.map +1 -0
  126. package/vendor/ink/node_modules/react-devtools-core/dist/backend.js +15691 -0
  127. package/vendor/ink/node_modules/react-devtools-core/dist/backend.js.map +1 -0
  128. package/vendor/ink/node_modules/react-devtools-core/dist/importFile.worker.worker.js +2 -0
  129. package/vendor/ink/node_modules/react-devtools-core/dist/importFile.worker.worker.js.map +1 -0
  130. package/vendor/ink/node_modules/react-devtools-core/dist/parseSourceAndMetadata.worker.worker.js +14 -0
  131. package/vendor/ink/node_modules/react-devtools-core/dist/parseSourceAndMetadata.worker.worker.js.map +1 -0
  132. package/vendor/ink/node_modules/react-devtools-core/dist/standalone.js +2 -0
  133. package/vendor/ink/node_modules/react-devtools-core/dist/standalone.js.map +1 -0
  134. package/vendor/ink/node_modules/react-devtools-core/node_modules/ws/LICENSE +21 -0
  135. package/vendor/ink/node_modules/react-devtools-core/node_modules/ws/README.md +495 -0
  136. package/vendor/ink/node_modules/react-devtools-core/node_modules/ws/browser.js +8 -0
  137. package/vendor/ink/node_modules/react-devtools-core/node_modules/ws/index.js +10 -0
  138. package/vendor/ink/node_modules/react-devtools-core/node_modules/ws/lib/buffer-util.js +129 -0
  139. package/vendor/ink/node_modules/react-devtools-core/node_modules/ws/lib/constants.js +10 -0
  140. package/vendor/ink/node_modules/react-devtools-core/node_modules/ws/lib/event-target.js +184 -0
  141. package/vendor/ink/node_modules/react-devtools-core/node_modules/ws/lib/extension.js +223 -0
  142. package/vendor/ink/node_modules/react-devtools-core/node_modules/ws/lib/limiter.js +55 -0
  143. package/vendor/ink/node_modules/react-devtools-core/node_modules/ws/lib/permessage-deflate.js +518 -0
  144. package/vendor/ink/node_modules/react-devtools-core/node_modules/ws/lib/receiver.js +607 -0
  145. package/vendor/ink/node_modules/react-devtools-core/node_modules/ws/lib/sender.js +409 -0
  146. package/vendor/ink/node_modules/react-devtools-core/node_modules/ws/lib/stream.js +180 -0
  147. package/vendor/ink/node_modules/react-devtools-core/node_modules/ws/lib/validation.js +104 -0
  148. package/vendor/ink/node_modules/react-devtools-core/node_modules/ws/lib/websocket-server.js +449 -0
  149. package/vendor/ink/node_modules/react-devtools-core/node_modules/ws/lib/websocket.js +1197 -0
  150. package/vendor/ink/node_modules/react-devtools-core/node_modules/ws/package.json +56 -0
  151. package/vendor/ink/node_modules/react-devtools-core/package.json +38 -0
  152. package/vendor/ink/node_modules/react-devtools-core/standalone.js +1 -0
  153. package/dist/cli/__tests__/print-mode-streaming.test.js +0 -270
  154. package/dist/cli/__tests__/print-mode.basic-output.test.js +0 -230
  155. package/dist/cli/__tests__/print-mode.session-errors.test.js +0 -252
  156. package/dist/cli/__tests__/print-mode.test.js +0 -273
  157. package/dist/cli/__tests__/serve-mode-messages.test.js +0 -338
  158. package/dist/cli/__tests__/serve-mode.messages.part2.test.js +0 -266
  159. package/dist/cli/__tests__/serve-mode.messages.test.js +0 -277
  160. package/dist/cli/__tests__/serve-mode.startup-http.test.js +0 -279
  161. package/dist/cli/__tests__/serve-mode.test.js +0 -345
  162. package/dist/cli/chat/NodeManager.d.ts +0 -30
  163. package/dist/cli/chat/NodeManager.js +0 -66
  164. package/dist/cli/chat/NodeManager.js.map +0 -1
  165. package/dist/cli/chat/chat-input-menu-handler.d.ts +0 -32
  166. package/dist/cli/chat/hooks/slash-imsg-handlers.js +0 -148
  167. package/dist/cli/chat/hooks/slash-imsg-handlers.js.map +0 -1
  168. package/dist/cli/chat/hooks/useStreamingReducer.d.ts +0 -66
  169. package/dist/cli/commands/__tests__/config-cmd.test.js +0 -270
  170. package/dist/cli/commands/__tests__/doctor.test.js +0 -257
  171. package/dist/cli/commands/__tests__/imsg-node-bridge.test.js +0 -99
  172. package/dist/cli/commands/__tests__/imsg-utils.test.js +0 -73
  173. package/dist/cli/commands/__tests__/init.test.js +0 -214
  174. package/dist/cli/commands/__tests__/mcp.test.js +0 -287
  175. package/dist/cli/commands/imsg-watcher-helpers.d.ts +0 -40
  176. package/dist/cli/commands/imsg-watcher-helpers.js +0 -184
  177. package/dist/cli/commands/imsg-watcher-helpers.js.map +0 -1
  178. package/dist/cli/commands/imsg-watcher.d.ts +0 -11
  179. package/dist/cli/commands/imsg-watcher.js +0 -230
  180. package/dist/cli/commands/imsg-watcher.js.map +0 -1
  181. package/dist/cli/services/__tests__/agent-definitions.test.js +0 -153
  182. package/dist/cli/services/__tests__/agent-events-global.test.js +0 -39
  183. package/dist/cli/services/__tests__/agent-events.part2.test.js +0 -113
  184. package/dist/cli/services/__tests__/agent-events.test.js +0 -157
  185. package/dist/cli/services/__tests__/agent-loop-auth.test.js +0 -392
  186. package/dist/cli/services/__tests__/agent-loop-budget.test.js +0 -389
  187. package/dist/cli/services/__tests__/agent-loop-tools-lifecycle.test.js +0 -430
  188. package/dist/cli/services/__tests__/agent-loop-tools-maxturns.test.js +0 -486
  189. package/dist/cli/services/__tests__/agent-loop-utils-execution.test.js +0 -528
  190. package/dist/cli/services/__tests__/agent-loop-utils-helpers.test.js +0 -466
  191. package/dist/cli/services/__tests__/agent-worker-base-execute.test.js +0 -257
  192. package/dist/cli/services/__tests__/agent-worker-base-helpers.test.js +0 -198
  193. package/dist/cli/services/__tests__/agent-worker-base.test.js +0 -278
  194. package/dist/cli/services/__tests__/auth-service-exports.test.js +0 -41
  195. package/dist/cli/services/__tests__/auth-service.part2.test.js +0 -169
  196. package/dist/cli/services/__tests__/auth-service.test.js +0 -242
  197. package/dist/cli/services/__tests__/background-processes.test.js +0 -282
  198. package/dist/cli/services/__tests__/claude-md-loader.test.js +0 -134
  199. package/dist/cli/services/__tests__/config-store.test.js +0 -247
  200. package/dist/cli/services/__tests__/debug-log.test.js +0 -199
  201. package/dist/cli/services/__tests__/edge-cases-caching.test.js +0 -174
  202. package/dist/cli/services/__tests__/edge-cases-compaction-core.test.js +0 -226
  203. package/dist/cli/services/__tests__/edge-cases-compaction-openai.test.js +0 -152
  204. package/dist/cli/services/__tests__/edge-cases-compaction-shapes.test.js +0 -53
  205. package/dist/cli/services/__tests__/edge-cases-compaction-thinking.test.js +0 -226
  206. package/dist/cli/services/__tests__/edge-cases-compaction.test.js +0 -131
  207. package/dist/cli/services/__tests__/edge-cases-paths.test.js +0 -86
  208. package/dist/cli/services/__tests__/error-logger-messages.test.js +0 -81
  209. package/dist/cli/services/__tests__/error-logger-transport.test.js +0 -119
  210. package/dist/cli/services/__tests__/error-logger.test.js +0 -264
  211. package/dist/cli/services/__tests__/file-history.test.js +0 -136
  212. package/dist/cli/services/__tests__/git-context-cache-reset.test.js +0 -223
  213. package/dist/cli/services/__tests__/git-context.test.js +0 -241
  214. package/dist/cli/services/__tests__/interactive-tools-execute.test.js +0 -166
  215. package/dist/cli/services/__tests__/interactive-tools-plan.test.js +0 -197
  216. package/dist/cli/services/__tests__/interactive-tools.part2.test.js +0 -168
  217. package/dist/cli/services/__tests__/interactive-tools.test.js +0 -179
  218. package/dist/cli/services/__tests__/keybinding-manager.test.js +0 -205
  219. package/dist/cli/services/__tests__/local-tools-dispatch.test.js +0 -404
  220. package/dist/cli/services/__tests__/local-tools.test.js +0 -238
  221. package/dist/cli/services/__tests__/lsp-manager.test.js +0 -364
  222. package/dist/cli/services/__tests__/mcp-client-connect-disconnect.test.js +0 -310
  223. package/dist/cli/services/__tests__/mcp-client.test.js +0 -93
  224. package/dist/cli/services/__tests__/memory-manager.test.js +0 -154
  225. package/dist/cli/services/__tests__/model-manager-utils.test.js +0 -154
  226. package/dist/cli/services/__tests__/model-manager.test.js +0 -175
  227. package/dist/cli/services/__tests__/permission-modes.test.js +0 -222
  228. package/dist/cli/services/__tests__/ripgrep.test.js +0 -328
  229. package/dist/cli/services/__tests__/server-tools-execute.test.js +0 -317
  230. package/dist/cli/services/__tests__/server-tools.test.js +0 -272
  231. package/dist/cli/services/__tests__/session-persistence.test.js +0 -245
  232. package/dist/cli/services/__tests__/subagent-basic.test.js +0 -489
  233. package/dist/cli/services/__tests__/subagent-edge.test.js +0 -545
  234. package/dist/cli/services/__tests__/subagent-prompts.test.js +0 -558
  235. package/dist/cli/services/__tests__/subagent-worker-errors.test.js +0 -255
  236. package/dist/cli/services/__tests__/subagent-worker.test.js +0 -242
  237. package/dist/cli/services/__tests__/system-prompt.test.js +0 -210
  238. package/dist/cli/services/__tests__/team-lead-comms-messaging.test.js +0 -250
  239. package/dist/cli/services/__tests__/team-lead-comms-result.test.js +0 -232
  240. package/dist/cli/services/__tests__/team-lead-comms-stop.test.js +0 -344
  241. package/dist/cli/services/__tests__/team-lead-comms.test.js +0 -285
  242. package/dist/cli/services/__tests__/team-lead-create.test.js +0 -327
  243. package/dist/cli/services/__tests__/team-lead-run.test.js +0 -318
  244. package/dist/cli/services/__tests__/team-lead-stop.test.js +0 -199
  245. package/dist/cli/services/__tests__/team-state-comms.test.js +0 -240
  246. package/dist/cli/services/__tests__/team-state-core.test.js +0 -230
  247. package/dist/cli/services/__tests__/team-state-tasks-complete-fail-available.test.js +0 -224
  248. package/dist/cli/services/__tests__/team-state-tasks.test.js +0 -184
  249. package/dist/cli/services/__tests__/telemetry-ai-metadata.test.js +0 -116
  250. package/dist/cli/services/__tests__/telemetry.part2.test.js +0 -195
  251. package/dist/cli/services/__tests__/telemetry.test.js +0 -176
  252. package/dist/cli/services/agent-loop-iteration.d.ts +0 -13
  253. package/dist/cli/services/agent-loop-setup.d.ts +0 -32
  254. package/dist/cli/services/agent-worker-base-api.d.ts +0 -19
  255. package/dist/cli/services/agent-worker-base-helpers.d.ts +0 -27
  256. package/dist/cli/services/agent-worker-base-tools.d.ts +0 -16
  257. package/dist/cli/services/agent-worker-base-types.d.ts +0 -81
  258. package/dist/cli/services/background-agents.d.ts +0 -26
  259. package/dist/cli/services/background-processes-ops.d.ts +0 -24
  260. package/dist/cli/services/background-tool-defs.d.ts +0 -50
  261. package/dist/cli/services/config-modules-model.test.js +0 -133
  262. package/dist/cli/services/config-modules-permission.test.js +0 -85
  263. package/dist/cli/services/config-modules-permissions.test.js +0 -85
  264. package/dist/cli/services/config-modules-session.test.js +0 -297
  265. package/dist/cli/services/format-server-response-columns.test.js +0 -265
  266. package/dist/cli/services/format-server-response-fallback.test.js +0 -65
  267. package/dist/cli/services/format-server-response-primitives-basic.test.js +0 -261
  268. package/dist/cli/services/format-server-response-primitives-nested.test.js +0 -188
  269. package/dist/cli/services/format-server-response-primitives.test.js +0 -300
  270. package/dist/cli/services/format-server-response-realworld.test.js +0 -248
  271. package/dist/cli/services/format-server-response-values.test.js +0 -247
  272. package/dist/cli/services/hooks-runners.test.js +0 -184
  273. package/dist/cli/services/hooks.glob-load.test.js +0 -233
  274. package/dist/cli/services/hooks.run-hooks.test.js +0 -184
  275. package/dist/cli/services/hooks.test.js +0 -233
  276. package/dist/cli/services/ink-incremental.d.ts +0 -19
  277. package/dist/cli/services/ink-incremental.js +0 -59
  278. package/dist/cli/services/ink-incremental.js.map +0 -1
  279. package/dist/cli/services/ink-resize-fix.d.ts +0 -18
  280. package/dist/cli/services/ink-resize-fix.js +0 -76
  281. package/dist/cli/services/ink-resize-fix.js.map +0 -1
  282. package/dist/cli/services/ink-sync-output.d.ts +0 -12
  283. package/dist/cli/services/ink-sync-output.js +0 -16
  284. package/dist/cli/services/ink-sync-output.js.map +0 -1
  285. package/dist/cli/services/interactive-tool-defs.d.ts +0 -80
  286. package/dist/cli/services/local-tools-definitions.d.ts +0 -6
  287. package/dist/cli/services/local-tools-files.test.js +0 -256
  288. package/dist/cli/services/local-tools-read-many.d.ts +0 -6
  289. package/dist/cli/services/model-router.test.js +0 -245
  290. package/dist/cli/services/rewind-rewindTo.test.js +0 -202
  291. package/dist/cli/services/rewind.test.js +0 -175
  292. package/dist/cli/services/sandbox.test.js +0 -198
  293. package/dist/cli/services/subagent-execution.d.ts +0 -12
  294. package/dist/cli/services/team-lead-auto.d.ts +0 -11
  295. package/dist/cli/services/team-lead-execution.d.ts +0 -28
  296. package/dist/cli/services/teammate-loop.js +0 -557
  297. package/dist/cli/services/teammate-loop.js.map +0 -1
  298. package/dist/cli/services/tools/__tests__/agent-tools-tasks-teams.test.js +0 -250
  299. package/dist/cli/services/tools/__tests__/agent-tools-teams.test.js +0 -200
  300. package/dist/cli/services/tools/__tests__/agent-tools.test.js +0 -340
  301. package/dist/cli/services/tools/__tests__/file-ops-cache.test.js +0 -152
  302. package/dist/cli/services/tools/__tests__/file-ops-notebook.test.js +0 -249
  303. package/dist/cli/services/tools/__tests__/file-ops-read.test.js +0 -261
  304. package/dist/cli/services/tools/__tests__/file-ops-write.test.js +0 -292
  305. package/dist/cli/services/tools/__tests__/search-tools-rg.test.js +0 -92
  306. package/dist/cli/services/tools/__tests__/search-tools.part2.test.js +0 -174
  307. package/dist/cli/services/tools/__tests__/search-tools.test.js +0 -227
  308. package/dist/cli/services/tools/__tests__/shell-exec-allowed-core.test.js +0 -163
  309. package/dist/cli/services/tools/__tests__/shell-exec-allowed-extended.test.js +0 -220
  310. package/dist/cli/services/tools/__tests__/shell-exec-allowed.part2.test.js +0 -215
  311. package/dist/cli/services/tools/__tests__/shell-exec-allowed.test.js +0 -154
  312. package/dist/cli/services/tools/__tests__/shell-exec-blocked.test.js +0 -132
  313. package/dist/cli/services/tools/__tests__/shell-exec-execution.test.js +0 -245
  314. package/dist/cli/services/tools/__tests__/task-manager-create.test.js +0 -110
  315. package/dist/cli/services/tools/__tests__/task-manager-crud.test.js +0 -339
  316. package/dist/cli/services/tools/__tests__/task-manager-list-get.test.js +0 -343
  317. package/dist/cli/services/tools/__tests__/task-manager-query.test.js +0 -346
  318. package/dist/cli/services/tools/__tests__/task-manager-routing.test.js +0 -58
  319. package/dist/cli/services/tools/__tests__/task-manager-update.test.js +0 -224
  320. package/dist/cli/services/tools/__tests__/task-manager.test.js +0 -159
  321. package/dist/cli/services/tools/__tests__/web-tools-html-search.test.js +0 -227
  322. package/dist/cli/services/tools/__tests__/web-tools.test.js +0 -285
  323. package/dist/cli/services/tools/shell-exec.test.js +0 -148
  324. package/dist/cli/shared/SharedTick.d.ts +0 -10
  325. package/dist/cli/shared/__tests__/markdown.test.js +0 -188
  326. package/dist/local-agent/__tests__/connection-disconnect.test.js +0 -201
  327. package/dist/local-agent/__tests__/connection-lifecycle.test.js +0 -289
  328. package/dist/local-agent/__tests__/connection-msghandling.test.js +0 -311
  329. package/dist/local-agent/__tests__/connection-reconnect.test.js +0 -230
  330. package/dist/local-agent/__tests__/connection-toolexec.test.js +0 -253
  331. package/dist/local-agent/__tests__/discovery.test.js +0 -328
  332. package/dist/local-agent/__tests__/executor-background.test.js +0 -219
  333. package/dist/local-agent/__tests__/executor-exec.test.js +0 -221
  334. package/dist/local-agent/__tests__/executor-jobs-sessions.test.js +0 -220
  335. package/dist/local-agent/__tests__/executor-system-info.test.js +0 -133
  336. package/dist/local-agent/__tests__/executor-systeminfo.test.js +0 -109
  337. package/dist/local-agent/__tests__/executor.test.js +0 -235
  338. package/dist/local-agent/__tests__/index.test.js +0 -139
  339. package/dist/node/__tests__/cli-channels.test.js +0 -293
  340. package/dist/node/__tests__/cli-config-edge.test.js +0 -154
  341. package/dist/node/__tests__/cli-config.test.js +0 -215
  342. package/dist/node/__tests__/config.test.js +0 -292
  343. package/dist/node/__tests__/runtime-heartbeat.test.js +0 -153
  344. package/dist/node/__tests__/runtime-lifecycle-init.test.js +0 -263
  345. package/dist/node/__tests__/runtime-lifecycle-stats.test.js +0 -180
  346. package/dist/node/__tests__/runtime-lifecycle.test.js +0 -305
  347. package/dist/node/__tests__/runtime-relay.test.js +0 -341
  348. package/dist/node/adapters/__tests__/base.test.js +0 -286
  349. package/dist/node/adapters/__tests__/discord.test.js +0 -284
  350. package/dist/node/adapters/__tests__/email-send.test.js +0 -295
  351. package/dist/node/adapters/__tests__/email.inbound-send.test.js +0 -217
  352. package/dist/node/adapters/__tests__/email.lifecycle.test.js +0 -211
  353. package/dist/node/adapters/__tests__/email.test.js +0 -290
  354. package/dist/node/adapters/__tests__/email.webhook-send.test.js +0 -251
  355. package/dist/node/adapters/__tests__/imessage-filter.test.js +0 -183
  356. package/dist/node/adapters/__tests__/imessage-lifecycle.test.js +0 -215
  357. package/dist/node/adapters/__tests__/imessage-send-restart.test.js +0 -227
  358. package/dist/node/adapters/__tests__/slack.part2.test.js +0 -135
  359. package/dist/node/adapters/__tests__/slack.test.js +0 -241
  360. package/dist/node/adapters/__tests__/sms-extras.test.js +0 -108
  361. package/dist/node/adapters/__tests__/sms-lifecycle.test.js +0 -203
  362. package/dist/node/adapters/__tests__/sms-messaging.test.js +0 -266
  363. package/dist/node/adapters/__tests__/sms.part2.test.js +0 -174
  364. package/dist/node/adapters/__tests__/sms.test.js +0 -253
  365. package/dist/node/adapters/__tests__/telegram-polling.test.js +0 -256
  366. package/dist/node/adapters/__tests__/telegram-send.test.js +0 -166
  367. package/dist/node/adapters/__tests__/webchat-inbound.test.js +0 -188
  368. package/dist/node/adapters/__tests__/webchat-outbound.test.js +0 -178
  369. package/dist/node/adapters/__tests__/whatsapp-inbound.test.js +0 -200
  370. package/dist/node/adapters/__tests__/whatsapp-send.test.js +0 -212
  371. package/dist/node/adapters/__tests__/whatsapp.test.js +0 -280
  372. package/dist/server/__tests__/gateway-fast-fail.test.js +0 -160
  373. package/dist/server/__tests__/local-agent-gateway.test.js +0 -186
  374. package/dist/server/__tests__/proxy-handlers-delegation.test.js +0 -240
  375. package/dist/server/__tests__/proxy-handlers-validation.test.js +0 -211
  376. package/dist/server/__tests__/proxy-handlers.part2.test.js +0 -240
  377. package/dist/server/__tests__/proxy-handlers.test.js +0 -213
  378. package/dist/server/__tests__/strip-base64-e2e.test.js +0 -303
  379. package/dist/server/__tests__/strip-base64.test.js +0 -256
  380. package/dist/server/__tests__/tool-router-agent-tools.test.js +0 -324
  381. package/dist/server/__tests__/tool-router-execute-core.test.js +0 -357
  382. package/dist/server/__tests__/tool-router-execute-permissions.test.js +0 -332
  383. package/dist/server/__tests__/tool-router-execute.test.js +0 -348
  384. package/dist/server/__tests__/tool-router-load.test.js +0 -432
  385. package/dist/server/__tests__/tool-router-permissions.test.js +0 -359
  386. package/dist/server/__tests__/tool-router-registry-cache.test.js +0 -383
  387. package/dist/server/__tests__/tool-router-registry-handlers.test.js +0 -272
  388. package/dist/server/__tests__/tool-router-registry.test.js +0 -331
  389. package/dist/server/__tests__/validation-inventory.test.js +0 -250
  390. package/dist/server/__tests__/validation-misc.test.js +0 -243
  391. package/dist/server/__tests__/validation-supply-chain.test.js +0 -188
  392. package/dist/server/__tests__/worker.test.js +0 -265
  393. package/dist/server/handlers/__tests__/conversation-lock.test.js +0 -117
  394. package/dist/server/handlers/__tests__/e2e/auth-cross-platform-login.e2e.test.js +0 -268
  395. package/dist/server/handlers/__tests__/e2e/auth-cross-platform-tokens.e2e.test.js +0 -264
  396. package/dist/server/handlers/__tests__/e2e/email-pipeline-send.e2e.test.js +0 -214
  397. package/dist/server/handlers/__tests__/e2e/email-pipeline-threads.e2e.test.js +0 -168
  398. package/dist/server/handlers/__tests__/e2e/error-logging-pipeline-dedup.e2e.test.js +0 -229
  399. package/dist/server/handlers/__tests__/e2e/error-logging-pipeline.e2e.test.js +0 -239
  400. package/dist/server/handlers/__tests__/e2e/error-logging-rate-limit.e2e.test.js +0 -150
  401. package/dist/server/handlers/__tests__/e2e/inventory-sync-guards.e2e.test.js +0 -177
  402. package/dist/server/handlers/__tests__/e2e/inventory-sync.e2e.test.js +0 -228
  403. package/dist/server/handlers/__tests__/e2e/inventory-sync.part2.e2e.test.js +0 -188
  404. package/dist/server/handlers/__tests__/e2e/order-lifecycle-fulfillment.e2e.test.js +0 -295
  405. package/dist/server/handlers/__tests__/e2e/order-lifecycle.e2e.test.js +0 -277
  406. package/dist/server/handlers/__tests__/e2e/order-lifecycle.fulfillment.e2e.test.js +0 -307
  407. package/dist/server/handlers/__tests__/e2e/order-lifecycle.setup.e2e.test.js +0 -177
  408. package/dist/server/handlers/__tests__/e2e/storefront-checkout-cart.e2e.test.js +0 -255
  409. package/dist/server/handlers/__tests__/e2e/storefront-checkout-webhook.e2e.test.js +0 -231
  410. package/dist/server/handlers/__tests__/e2e/workflow-execution-failures.e2e.test.js +0 -235
  411. package/dist/server/handlers/__tests__/e2e/workflow-execution.e2e.test.js +0 -294
  412. package/dist/server/handlers/__tests__/e2e/workflow-security.e2e.test.js +0 -311
  413. package/dist/server/handlers/__tests__/e2e/workflow-security.part2.e2e.test.js +0 -267
  414. package/dist/server/handlers/__tests__/workflow-cache.test.js +0 -237
  415. package/dist/server/handlers/analytics-errors-edge.test.js +0 -173
  416. package/dist/server/handlers/analytics.test.js +0 -280
  417. package/dist/server/handlers/api-docs-examples-ext.d.ts +0 -9
  418. package/dist/server/handlers/api-docs-examples-ext.js +0 -278
  419. package/dist/server/handlers/api-docs-examples-ext.js.map +0 -1
  420. package/dist/server/handlers/api-docs-examples.d.ts +0 -8
  421. package/dist/server/handlers/api-docs-examples.js +0 -221
  422. package/dist/server/handlers/api-docs-examples.js.map +0 -1
  423. package/dist/server/handlers/api-docs-sections-ext.d.ts +0 -2
  424. package/dist/server/handlers/api-docs-sections-ext.js +0 -497
  425. package/dist/server/handlers/api-docs-sections-ext.js.map +0 -1
  426. package/dist/server/handlers/api-docs-sections.d.ts +0 -21
  427. package/dist/server/handlers/api-docs-sections.js +0 -293
  428. package/dist/server/handlers/api-docs-sections.js.map +0 -1
  429. package/dist/server/handlers/api-keys.part2.test.js +0 -157
  430. package/dist/server/handlers/api-keys.test.js +0 -161
  431. package/dist/server/handlers/billing-routes.test.js +0 -123
  432. package/dist/server/handlers/billing.test.js +0 -215
  433. package/dist/server/handlers/browser-actions-errors.test.js +0 -94
  434. package/dist/server/handlers/browser-actions.part2.test.js +0 -190
  435. package/dist/server/handlers/browser-actions.test.js +0 -190
  436. package/dist/server/handlers/browser-validation.test.js +0 -257
  437. package/dist/server/handlers/catalog.test.js +0 -297
  438. package/dist/server/handlers/comms.test.js +0 -289
  439. package/dist/server/handlers/creations-advanced-collections.test.js +0 -214
  440. package/dist/server/handlers/creations-advanced-generate.test.js +0 -142
  441. package/dist/server/handlers/creations-advanced.test.js +0 -171
  442. package/dist/server/handlers/creations-collections-preview.test.js +0 -214
  443. package/dist/server/handlers/creations-crud.test.js +0 -260
  444. package/dist/server/handlers/creations-mutations.test.js +0 -197
  445. package/dist/server/handlers/crm.test.js +0 -179
  446. package/dist/server/handlers/discovery-advertise.test.js +0 -185
  447. package/dist/server/handlers/discovery-scan.test.js +0 -233
  448. package/dist/server/handlers/embeddings-embed-search.test.js +0 -196
  449. package/dist/server/handlers/embeddings-index-delete-stats.test.js +0 -140
  450. package/dist/server/handlers/embeddings-search.test.js +0 -221
  451. package/dist/server/handlers/embeddings.test.js +0 -137
  452. package/dist/server/handlers/enrichment-breach.d.ts +0 -8
  453. package/dist/server/handlers/enrichment-breach.js +0 -266
  454. package/dist/server/handlers/enrichment-breach.js.map +0 -1
  455. package/dist/server/handlers/enrichment-data.d.ts +0 -13
  456. package/dist/server/handlers/enrichment-data.js +0 -145
  457. package/dist/server/handlers/enrichment-data.js.map +0 -1
  458. package/dist/server/handlers/enrichment-mutations.test.js +0 -240
  459. package/dist/server/handlers/enrichment-queries.test.js +0 -181
  460. package/dist/server/handlers/enrichment-validation.test.js +0 -177
  461. package/dist/server/handlers/enrichment-writes.d.ts +0 -16
  462. package/dist/server/handlers/enrichment-writes.js +0 -226
  463. package/dist/server/handlers/enrichment-writes.js.map +0 -1
  464. package/dist/server/handlers/image-gen.test.js +0 -205
  465. package/dist/server/handlers/inventory.test.js +0 -380
  466. package/dist/server/handlers/kali-background.test.js +0 -222
  467. package/dist/server/handlers/kali-errors.test.js +0 -92
  468. package/dist/server/handlers/kali-validation.test.js +0 -234
  469. package/dist/server/handlers/llm-providers-actions.test.js +0 -220
  470. package/dist/server/handlers/llm-providers-anthropic.test.js +0 -239
  471. package/dist/server/handlers/llm-providers-failover.test.js +0 -232
  472. package/dist/server/handlers/llm-providers-providers.test.js +0 -300
  473. package/dist/server/handlers/llm-providers-validation.test.js +0 -239
  474. package/dist/server/handlers/local-agent-tools.test.js +0 -224
  475. package/dist/server/handlers/local-agent.test.js +0 -198
  476. package/dist/server/handlers/local-agent.tools-status.test.js +0 -204
  477. package/dist/server/handlers/local-agent.validation-exec.test.js +0 -182
  478. package/dist/server/handlers/meta-ads-audience-rules.test.js +0 -243
  479. package/dist/server/handlers/meta-ads-audience-targeting.test.js +0 -205
  480. package/dist/server/handlers/meta-ads-audiences-targeting.test.js +0 -383
  481. package/dist/server/handlers/meta-ads-crud-ads.test.js +0 -136
  482. package/dist/server/handlers/meta-ads-crud-campaigns.test.js +0 -189
  483. package/dist/server/handlers/meta-ads-crud-create.test.js +0 -303
  484. package/dist/server/handlers/meta-ads-crud-list-update.test.js +0 -259
  485. package/dist/server/handlers/meta-ads-delete-publish-sync.test.js +0 -282
  486. package/dist/server/handlers/meta-ads-insights.test.js +0 -80
  487. package/dist/server/handlers/meta-ads-list-get.test.js +0 -237
  488. package/dist/server/handlers/meta-ads-publish-delete.test.js +0 -254
  489. package/dist/server/handlers/meta-ads-publish-helpers.js +0 -117
  490. package/dist/server/handlers/meta-ads-publish-helpers.js.map +0 -1
  491. package/dist/server/handlers/meta-ads-publish-sync.test.js +0 -205
  492. package/dist/server/handlers/meta-ads-publish.test.js +0 -254
  493. package/dist/server/handlers/meta-ads-sync-insights.test.js +0 -184
  494. package/dist/server/handlers/meta-ads-update.test.js +0 -117
  495. package/dist/server/handlers/nodes-channels.test.js +0 -413
  496. package/dist/server/handlers/nodes-events.test.js +0 -131
  497. package/dist/server/handlers/nodes-list-delete.test.js +0 -171
  498. package/dist/server/handlers/nodes-messages-delivery.test.js +0 -208
  499. package/dist/server/handlers/nodes-messages.test.js +0 -211
  500. package/dist/server/handlers/nodes-register.test.js +0 -277
  501. package/dist/server/handlers/nodes.test.js +0 -353
  502. package/dist/server/handlers/operations.test.js +0 -136
  503. package/dist/server/handlers/platform-telemetry.test.js +0 -200
  504. package/dist/server/handlers/platform-websearch.test.js +0 -160
  505. package/dist/server/handlers/storefront.test.js +0 -329
  506. package/dist/server/handlers/supply-chain.test.js +0 -347
  507. package/dist/server/handlers/transcription.test.js +0 -118
  508. package/dist/server/handlers/video-gen-veo.js +0 -114
  509. package/dist/server/handlers/video-gen-veo.js.map +0 -1
  510. package/dist/server/handlers/video-gen.test.js +0 -146
  511. package/dist/server/handlers/voice.test.js +0 -153
  512. package/dist/server/handlers/workflow-steps.test.js +0 -330
  513. package/dist/server/handlers/workflows-extras.test.js +0 -65
  514. package/dist/server/handlers/workflows.part2.test.js +0 -170
  515. package/dist/server/handlers/workflows.test.js +0 -281
  516. package/dist/server/lib/__tests__/batch-client-conversion-jsonl.test.js +0 -171
  517. package/dist/server/lib/__tests__/batch-client-polling.test.js +0 -292
  518. package/dist/server/lib/__tests__/batch-client-queue.test.js +0 -270
  519. package/dist/server/lib/__tests__/clickhouse-buffer.test.js +0 -236
  520. package/dist/server/lib/__tests__/code-worker-edge-cases.test.js +0 -118
  521. package/dist/server/lib/__tests__/code-worker-pool-execute.test.js +0 -193
  522. package/dist/server/lib/__tests__/code-worker-pool-execution.test.js +0 -165
  523. package/dist/server/lib/__tests__/code-worker-pool-init.test.js +0 -131
  524. package/dist/server/lib/__tests__/code-worker-pool.test.js +0 -194
  525. package/dist/server/lib/__tests__/code-worker-sandbox-ops.test.js +0 -123
  526. package/dist/server/lib/__tests__/code-worker-sandbox.test.js +0 -217
  527. package/dist/server/lib/__tests__/code-worker.test.js +0 -179
  528. package/dist/server/lib/__tests__/compaction-service-generate.test.js +0 -229
  529. package/dist/server/lib/__tests__/compaction-service.test.js +0 -319
  530. package/dist/server/lib/__tests__/otel.test.js +0 -146
  531. package/dist/server/lib/__tests__/prompt-sanitizer-validation.test.js +0 -165
  532. package/dist/server/lib/__tests__/prompt-sanitizer.sanitize.test.js +0 -343
  533. package/dist/server/lib/__tests__/prompt-sanitizer.test.js +0 -328
  534. package/dist/server/lib/__tests__/prompt-sanitizer.validate-tool.test.js +0 -145
  535. package/dist/server/lib/__tests__/provider-capabilities.test.js +0 -263
  536. package/dist/server/lib/__tests__/provider-failover-routing.test.js +0 -145
  537. package/dist/server/lib/__tests__/provider-failover-state.test.js +0 -131
  538. package/dist/server/lib/__tests__/rate-limiter-budgets.test.js +0 -216
  539. package/dist/server/lib/__tests__/rate-limiter.budgets-tools.test.js +0 -113
  540. package/dist/server/lib/__tests__/rate-limiter.check-request.test.js +0 -141
  541. package/dist/server/lib/__tests__/rate-limiter.stats-lifecycle.test.js +0 -135
  542. package/dist/server/lib/__tests__/rate-limiter.test.js +0 -207
  543. package/dist/server/lib/__tests__/server-agent-loop-abort-conditions.test.js +0 -544
  544. package/dist/server/lib/__tests__/server-agent-loop-abort.part2.test.js +0 -504
  545. package/dist/server/lib/__tests__/server-agent-loop-abort.test.js +0 -396
  546. package/dist/server/lib/__tests__/server-agent-loop-compaction.test.js +0 -397
  547. package/dist/server/lib/__tests__/server-agent-loop-failover.test.js +0 -356
  548. package/dist/server/lib/__tests__/server-agent-loop-features-caching.test.js +0 -519
  549. package/dist/server/lib/__tests__/server-agent-loop-features-edges.test.js +0 -512
  550. package/dist/server/lib/__tests__/server-subagent-bailout.test.js +0 -194
  551. package/dist/server/lib/__tests__/server-subagent-basics.test.js +0 -348
  552. package/dist/server/lib/__tests__/server-subagent-errors-abort.test.js +0 -319
  553. package/dist/server/lib/__tests__/server-subagent-errors-progress.test.js +0 -253
  554. package/dist/server/lib/__tests__/server-subagent-errors.part2.test.js +0 -253
  555. package/dist/server/lib/__tests__/server-subagent-errors.test.js +0 -319
  556. package/dist/server/lib/__tests__/session-checkpoint-load.test.js +0 -275
  557. package/dist/server/lib/__tests__/session-checkpoint-save.test.js +0 -159
  558. package/dist/server/lib/__tests__/ssrf-guard.test.js +0 -93
  559. package/dist/server/lib/__tests__/supabase-client.test.js +0 -111
  560. package/dist/server/lib/__tests__/template-resolver.test.js +0 -317
  561. package/dist/server/lib/__tests__/utils-timeout.test.js +0 -49
  562. package/dist/server/lib/__tests__/utils.test.js +0 -322
  563. package/dist/server/providers/__tests__/anthropic-adapter.test.js +0 -228
  564. package/dist/server/providers/__tests__/anthropic-betas-toolchoice.test.js +0 -257
  565. package/dist/server/providers/__tests__/anthropic-errors.test.js +0 -262
  566. package/dist/server/providers/__tests__/anthropic-stream-core.test.js +0 -275
  567. package/dist/server/providers/__tests__/anthropic-streaming-betas.test.js +0 -247
  568. package/dist/server/providers/__tests__/anthropic-streaming-core.test.js +0 -275
  569. package/dist/server/providers/__tests__/bedrock-config.test.js +0 -177
  570. package/dist/server/providers/__tests__/bedrock-stream-behavior-streaming.test.js +0 -272
  571. package/dist/server/providers/__tests__/bedrock-stream-behavior-toolchoice.test.js +0 -214
  572. package/dist/server/providers/__tests__/bedrock-stream-behavior.part2.test.js +0 -165
  573. package/dist/server/providers/__tests__/bedrock-stream-behavior.test.js +0 -309
  574. package/dist/server/providers/__tests__/bedrock-stream-body-credentials.test.js +0 -170
  575. package/dist/server/providers/__tests__/bedrock-stream-body-extras.test.js +0 -183
  576. package/dist/server/providers/__tests__/bedrock-stream-body-request.test.js +0 -305
  577. package/dist/server/providers/__tests__/bedrock-stream-body.part2.test.js +0 -305
  578. package/dist/server/providers/__tests__/bedrock-stream-body.test.js +0 -175
  579. package/dist/server/providers/__tests__/bedrock-stream-errors.test.js +0 -165
  580. package/dist/server/providers/__tests__/gemini-config-methods.test.js +0 -182
  581. package/dist/server/providers/__tests__/gemini-config-streaming.test.js +0 -257
  582. package/dist/server/providers/__tests__/gemini-conversion-messages.test.js +0 -247
  583. package/dist/server/providers/__tests__/gemini-conversion-schema.test.js +0 -365
  584. package/dist/server/providers/__tests__/gemini-tools-choice.test.js +0 -221
  585. package/dist/server/providers/__tests__/gemini-tools-fn.test.js +0 -252
  586. package/dist/server/providers/__tests__/openai-config.test.js +0 -194
  587. package/dist/server/providers/__tests__/openai-conversion.test.js +0 -276
  588. package/dist/server/providers/__tests__/openai-messages.test.js +0 -261
  589. package/dist/server/providers/__tests__/openai-streaming.test.js +0 -394
  590. package/dist/server/providers/__tests__/openai-tools-cache.test.js +0 -227
  591. package/dist/server/providers/__tests__/registry.test.js +0 -183
  592. package/dist/server/providers/__tests__/shared.test.js +0 -297
  593. package/dist/shared/agent-core-config.test.js +0 -132
  594. package/dist/shared/agent-core-context-thinking.test.js +0 -293
  595. package/dist/shared/agent-core-loop-calls.test.js +0 -174
  596. package/dist/shared/agent-core-loop-detector-bail.test.js +0 -201
  597. package/dist/shared/agent-core-loop-detector.test.js +0 -195
  598. package/dist/shared/agent-core-loop-errors.test.js +0 -258
  599. package/dist/shared/agent-core-pricing.test.js +0 -191
  600. package/dist/shared/agent-core-sanitize-retry.test.js +0 -129
  601. package/dist/shared/api-client-build-request.test.js +0 -228
  602. package/dist/shared/api-client-build-system-caching.test.js +0 -107
  603. package/dist/shared/api-client-build.test.js +0 -223
  604. package/dist/shared/api-client-config.d.ts +0 -21
  605. package/dist/shared/api-client-helpers.d.ts +0 -57
  606. package/dist/shared/api-client-helpers.test.js +0 -261
  607. package/dist/shared/api-client-proxy-happy.test.js +0 -255
  608. package/dist/shared/api-client-proxy-retry.test.js +0 -307
  609. package/dist/shared/api-client-proxy.d.ts +0 -26
  610. package/dist/shared/api-client-proxy.test.js +0 -255
  611. package/dist/shared/api-client-retry.test.js +0 -307
  612. package/dist/shared/api-client-system-trimming.test.js +0 -261
  613. package/dist/shared/api-client-trimming.d.ts +0 -36
  614. package/dist/shared/api-client.test.js +0 -228
  615. package/dist/shared/compaction-thinking.test.js +0 -315
  616. package/dist/shared/compaction-trimming.test.js +0 -223
  617. package/dist/shared/sse-parser-callbacks.test.js +0 -422
  618. package/dist/shared/sse-parser-collect.test.js +0 -252
  619. package/dist/shared/sse-parser-e2e.test.js +0 -558
  620. package/dist/shared/sse-parser-parse.test.js +0 -253
  621. package/dist/shared/tool-dispatch-advanced-batch-build.test.js +0 -405
  622. package/dist/shared/tool-dispatch-advanced.test.js +0 -320
  623. package/dist/shared/tool-dispatch-basic.test.js +0 -278
  624. package/dist/shared/tool-dispatch-content.d.ts +0 -14
  625. package/dist/shared/tool-dispatch-parallel.test.js +0 -378
  626. package/dist/webchat/__tests__/widget-messaging.test.js +0 -323
  627. package/dist/webchat/__tests__/widget.test.js +0 -273
@@ -1,39 +0,0 @@
1
- import { describe, it, expect, afterEach, vi } from "vitest";
2
- import { AgentEventEmitter, getGlobalEmitter, setGlobalEmitter, clearGlobalEmitter } from "../agent-events.js";
3
-
4
- // ============================================================================
5
- // Global Emitter Singleton (split from agent-events.test.ts)
6
- // ============================================================================
7
-
8
- describe("Global Emitter", () => {
9
- afterEach(() => {
10
- clearGlobalEmitter();
11
- });
12
- it("getGlobalEmitter lazily creates an emitter", () => {
13
- const emitter = getGlobalEmitter();
14
- expect(emitter).toBeInstanceOf(AgentEventEmitter);
15
- });
16
- it("getGlobalEmitter returns the same instance", () => {
17
- const a = getGlobalEmitter();
18
- const b = getGlobalEmitter();
19
- expect(a).toBe(b);
20
- });
21
- it("setGlobalEmitter replaces the global emitter", () => {
22
- const custom = new AgentEventEmitter();
23
- setGlobalEmitter(custom);
24
- expect(getGlobalEmitter()).toBe(custom);
25
- });
26
- it("clearGlobalEmitter destroys and nulls the emitter", () => {
27
- const emitter = getGlobalEmitter();
28
- const spy = vi.spyOn(emitter, "destroy");
29
- clearGlobalEmitter();
30
- expect(spy).toHaveBeenCalled();
31
- // Next call creates a new one
32
- const next = getGlobalEmitter();
33
- expect(next).not.toBe(emitter);
34
- });
35
- it("clearGlobalEmitter is safe when no emitter exists", () => {
36
- clearGlobalEmitter(); // nothing to destroy
37
- clearGlobalEmitter(); // still safe
38
- });
39
- });
@@ -1,113 +0,0 @@
1
- import { describe, it, expect, beforeEach, afterEach } from "vitest";
2
- import { AgentEventEmitter } from "../agent-events.js";
3
-
4
- // ============================================================================
5
- // AgentEventEmitter — subagent & team events
6
- // ============================================================================
7
-
8
- describe("AgentEventEmitter — subagent & team events", () => {
9
- let emitter;
10
- let events;
11
- beforeEach(() => {
12
- emitter = new AgentEventEmitter();
13
- events = [];
14
- emitter.onEvent(e => events.push(e));
15
- });
16
- afterEach(() => {
17
- emitter.destroy();
18
- });
19
- it("emitSubagentStart emits subagent_start event", () => {
20
- emitter.emitSubagentStart("sa-1", "code", "opus", "Fix a bug");
21
- const e = events[0];
22
- expect(e.type).toBe("subagent_start");
23
- expect(e.id).toBe("sa-1");
24
- expect(e.agentType).toBe("code");
25
- expect(e.model).toBe("opus");
26
- expect(e.description).toBe("Fix a bug");
27
- });
28
- it("emitSubagentProgress emits subagent_progress event", () => {
29
- emitter.emitSubagentProgress("sa-1", "code", "reading file...", 2, "read_file");
30
- const e = events[0];
31
- expect(e.type).toBe("subagent_progress");
32
- expect(e.id).toBe("sa-1");
33
- expect(e.message).toBe("reading file...");
34
- expect(e.turn).toBe(2);
35
- expect(e.toolName).toBe("read_file");
36
- });
37
- it("emitSubagentDone emits subagent_done event", () => {
38
- emitter.emitSubagentDone("sa-1", "code", true, "done", {
39
- input: 100,
40
- output: 50
41
- }, ["read_file"], 5000);
42
- const e = events[0];
43
- expect(e.type).toBe("subagent_done");
44
- expect(e.success).toBe(true);
45
- expect(e.output).toBe("done");
46
- expect(e.tokens).toEqual({
47
- input: 100,
48
- output: 50
49
- });
50
- expect(e.tools).toEqual(["read_file"]);
51
- expect(e.durationMs).toBe(5000);
52
- });
53
- it("emitSubagentToolStart emits subagent_tool_start event", () => {
54
- emitter.emitSubagentToolStart("sa-1", "bash", {
55
- command: "ls"
56
- });
57
- const e = events[0];
58
- expect(e.type).toBe("subagent_tool_start");
59
- expect(e.agentId).toBe("sa-1");
60
- expect(e.toolName).toBe("bash");
61
- expect(e.toolInput).toEqual({
62
- command: "ls"
63
- });
64
- });
65
- it("emitSubagentToolEnd emits subagent_tool_end event", () => {
66
- emitter.emitSubagentToolEnd("sa-1", "bash", true, 250);
67
- const e = events[0];
68
- expect(e.type).toBe("subagent_tool_end");
69
- expect(e.agentId).toBe("sa-1");
70
- expect(e.success).toBe(true);
71
- expect(e.durationMs).toBe(250);
72
- });
73
- it("emitTeamStart emits team_start event", () => {
74
- emitter.emitTeamStart("tm-1", "refactor", 3, 5);
75
- const e = events[0];
76
- expect(e.type).toBe("team_start");
77
- expect(e.teamId).toBe("tm-1");
78
- expect(e.name).toBe("refactor");
79
- expect(e.teammateCount).toBe(3);
80
- expect(e.taskCount).toBe(5);
81
- });
82
- it("emitTeamProgress emits team_progress event", () => {
83
- emitter.emitTeamProgress("tm-1", "mate-1", "Alice", "working on task", "task-1");
84
- const e = events[0];
85
- expect(e.type).toBe("team_progress");
86
- expect(e.teamId).toBe("tm-1");
87
- expect(e.teammateId).toBe("mate-1");
88
- expect(e.teammateName).toBe("Alice");
89
- expect(e.message).toBe("working on task");
90
- expect(e.taskId).toBe("task-1");
91
- });
92
- it("emitTeamTask emits team_task event", () => {
93
- emitter.emitTeamTask("tm-1", "mate-1", "task-1", "Fix tests", "completed", "all green");
94
- const e = events[0];
95
- expect(e.type).toBe("team_task");
96
- expect(e.status).toBe("completed");
97
- expect(e.result).toBe("all green");
98
- });
99
- it("emitTeamDone emits team_done event", () => {
100
- emitter.emitTeamDone("tm-1", true, "All done", 4, 5, {
101
- input: 500,
102
- output: 300
103
- }, 60000);
104
- const e = events[0];
105
- expect(e.type).toBe("team_done");
106
- expect(e.teamId).toBe("tm-1");
107
- expect(e.success).toBe(true);
108
- expect(e.summary).toBe("All done");
109
- expect(e.tasksCompleted).toBe(4);
110
- expect(e.tasksTotal).toBe(5);
111
- expect(e.durationMs).toBe(60000);
112
- });
113
- });
@@ -1,157 +0,0 @@
1
- import { describe, it, expect, beforeEach, afterEach } from "vitest";
2
- import { AgentEventEmitter } from "../agent-events.js";
3
-
4
- // ============================================================================
5
- // AgentEventEmitter — core events
6
- // ============================================================================
7
-
8
- describe("AgentEventEmitter — core events", () => {
9
- let emitter;
10
- let events;
11
- beforeEach(() => {
12
- emitter = new AgentEventEmitter();
13
- events = [];
14
- emitter.onEvent(e => events.push(e));
15
- });
16
- afterEach(() => {
17
- emitter.destroy();
18
- });
19
- it("emitText emits a text event", () => {
20
- emitter.emitText("hello");
21
- expect(events).toHaveLength(1);
22
- const e = events[0];
23
- expect(e.type).toBe("text");
24
- expect(e.text).toBe("hello");
25
- expect(e.accumulated).toBe("");
26
- });
27
- it("emitText emits multiple text events in sequence", () => {
28
- emitter.emitText("a");
29
- emitter.emitText("b");
30
- emitter.emitText("c");
31
- expect(events).toHaveLength(3);
32
- expect(events[0].text).toBe("a");
33
- expect(events[1].text).toBe("b");
34
- expect(events[2].text).toBe("c");
35
- });
36
- it("emitText handles empty string", () => {
37
- emitter.emitText("");
38
- expect(events).toHaveLength(1);
39
- expect(events[0].text).toBe("");
40
- });
41
- it("flushText is a no-op", () => {
42
- emitter.flushText();
43
- expect(events).toHaveLength(0);
44
- });
45
- it("emitToolStart emits a tool_start event", () => {
46
- emitter.emitToolStart("tool-1", "read_file");
47
- expect(events).toHaveLength(1);
48
- const e = events[0];
49
- expect(e.type).toBe("tool_start");
50
- expect(e.id).toBe("tool-1");
51
- expect(e.name).toBe("read_file");
52
- });
53
- it("emitToolEnd emits a tool_end event with all fields", () => {
54
- emitter.emitToolEnd("tool-1", "read_file", true, "contents", {
55
- path: "/a"
56
- }, 120);
57
- expect(events).toHaveLength(1);
58
- const e = events[0];
59
- expect(e.type).toBe("tool_end");
60
- expect(e.id).toBe("tool-1");
61
- expect(e.name).toBe("read_file");
62
- expect(e.success).toBe(true);
63
- expect(e.result).toBe("contents");
64
- expect(e.input).toEqual({
65
- path: "/a"
66
- });
67
- expect(e.durationMs).toBe(120);
68
- });
69
- it("emitToolEnd handles undefined result/input", () => {
70
- emitter.emitToolEnd("t", "bash", false, undefined, undefined, 0);
71
- const e = events[0];
72
- expect(e.result).toBeUndefined();
73
- expect(e.input).toBeUndefined();
74
- });
75
- it("emitUsage emits a usage event", () => {
76
- emitter.emitUsage(100, 200, "claude-3", 0.05, 50, 10);
77
- expect(events).toHaveLength(1);
78
- const e = events[0];
79
- expect(e.type).toBe("usage");
80
- expect(e.inputTokens).toBe(100);
81
- expect(e.outputTokens).toBe(200);
82
- expect(e.model).toBe("claude-3");
83
- expect(e.costUsd).toBe(0.05);
84
- expect(e.cacheReadTokens).toBe(50);
85
- expect(e.cacheCreationTokens).toBe(10);
86
- });
87
- it("emitUsage handles optional parameters", () => {
88
- emitter.emitUsage(10, 20);
89
- const e = events[0];
90
- expect(e.model).toBeUndefined();
91
- expect(e.costUsd).toBeUndefined();
92
- });
93
- it("emitDone emits a done event", () => {
94
- const msgs = [{
95
- role: "user",
96
- content: "hi"
97
- }];
98
- emitter.emitDone("final text", msgs);
99
- expect(events).toHaveLength(1);
100
- const e = events[0];
101
- expect(e.type).toBe("done");
102
- expect(e.text).toBe("final text");
103
- expect(e.messages).toEqual(msgs);
104
- });
105
- it("emitError emits an error event", () => {
106
- emitter.emitError("something broke");
107
- expect(events).toHaveLength(1);
108
- const e = events[0];
109
- expect(e.type).toBe("error");
110
- expect(e.error).toBe("something broke");
111
- });
112
- it("emitCompact emits a compact event", () => {
113
- emitter.emitCompact(10000, 5000, 5000);
114
- expect(events).toHaveLength(1);
115
- const e = events[0];
116
- expect(e.type).toBe("compact");
117
- expect(e.before).toBe(10000);
118
- expect(e.after).toBe(5000);
119
- expect(e.tokensSaved).toBe(5000);
120
- });
121
- it("emitToolOutput emits a tool_output event", () => {
122
- emitter.emitToolOutput("bash", "line of output");
123
- expect(events).toHaveLength(1);
124
- const e = events[0];
125
- expect(e.type).toBe("tool_output");
126
- expect(e.toolName).toBe("bash");
127
- expect(e.line).toBe("line of output");
128
- });
129
- it("onEvent returns unsubscribe function", () => {
130
- const localEvents = [];
131
- const unsub = emitter.onEvent(e => localEvents.push(e));
132
- emitter.emitText("first");
133
- expect(localEvents).toHaveLength(1);
134
- unsub();
135
- emitter.emitText("second");
136
- expect(localEvents).toHaveLength(1);
137
- });
138
- it("supports multiple concurrent subscribers", () => {
139
- const sub1 = [];
140
- const sub2 = [];
141
- emitter.onEvent(e => sub1.push(e));
142
- emitter.onEvent(e => sub2.push(e));
143
- emitter.emitText("test");
144
- expect(sub1).toHaveLength(1);
145
- expect(sub2).toHaveLength(1);
146
- });
147
- it("destroy removes all listeners", () => {
148
- emitter.destroy();
149
- emitter.emitText("after destroy");
150
- expect(events).toHaveLength(0);
151
- });
152
- it("destroy is idempotent", () => {
153
- emitter.destroy();
154
- emitter.destroy();
155
- expect(emitter.listenerCount("event")).toBe(0);
156
- });
157
- });
@@ -1,392 +0,0 @@
1
- /**
2
- * Tests for agent-loop.ts — auth handling (split from agent-loop-tools-lifecycle)
3
- */
4
-
5
- import { describe, it, expect, vi, beforeEach } from "vitest";
6
-
7
- // ============================================================================
8
- // Mocks — must be declared before imports
9
- // ============================================================================
10
-
11
- vi.mock("../local-tools.js", () => ({
12
- LOCAL_TOOL_DEFINITIONS: [{
13
- name: "bash",
14
- description: "Run shell commands",
15
- input_schema: {
16
- type: "object",
17
- properties: {
18
- command: {
19
- type: "string"
20
- }
21
- }
22
- }
23
- }, {
24
- name: "read_file",
25
- description: "Read a file",
26
- input_schema: {
27
- type: "object",
28
- properties: {
29
- path: {
30
- type: "string"
31
- }
32
- }
33
- }
34
- }],
35
- executeLocalTool: vi.fn(async (name, _input) => ({
36
- success: true,
37
- output: `local-tool-result:${name}`
38
- })),
39
- isLocalTool: vi.fn(name => ["bash", "read_file"].includes(name))
40
- }));
41
- vi.mock("../interactive-tools.js", () => ({
42
- INTERACTIVE_TOOL_DEFINITIONS: [{
43
- name: "ask_user_question",
44
- description: "Ask user",
45
- input_schema: {
46
- type: "object",
47
- properties: {
48
- question: {
49
- type: "string"
50
- }
51
- }
52
- }
53
- }],
54
- executeInteractiveTool: vi.fn(async () => ({
55
- success: true,
56
- output: "user answered"
57
- }))
58
- }));
59
- vi.mock("../config-store.js", () => ({
60
- loadConfig: vi.fn(() => ({
61
- access_token: "test-token",
62
- refresh_token: "test-refresh",
63
- proxy_url: "https://proxy.test"
64
- })),
65
- resolveConfig: vi.fn(() => ({
66
- storeId: "store-123",
67
- proxyUrl: "https://proxy.test"
68
- })),
69
- getProxyUrl: vi.fn(() => "https://proxy.test")
70
- }));
71
- vi.mock("../auth-service.js", () => ({
72
- getValidToken: vi.fn(async () => "test-jwt-token"),
73
- refreshSession: vi.fn(async () => ({
74
- success: true,
75
- config: {
76
- access_token: "refreshed-token"
77
- }
78
- }))
79
- }));
80
- vi.mock("../server-tools.js", () => ({
81
- isServerTool: vi.fn(() => false),
82
- loadServerToolDefinitions: vi.fn(async () => []),
83
- executeServerTool: vi.fn(async () => ({
84
- success: true,
85
- output: "server-result"
86
- })),
87
- getServerStatus: vi.fn(() => ({
88
- connected: false
89
- })),
90
- setServerToolContext: vi.fn()
91
- }));
92
- vi.mock("../telemetry.js", () => ({
93
- nextTurn: vi.fn(() => 1),
94
- createTurnContext: vi.fn(() => ({
95
- traceId: "trace-1",
96
- spanId: "span-1",
97
- conversationId: "conv-1",
98
- userId: "user-1",
99
- userEmail: "test@test.com"
100
- })),
101
- logSpan: vi.fn(),
102
- generateSpanId: vi.fn(() => "span-gen-1"),
103
- flushCliSpans: vi.fn()
104
- }));
105
- vi.mock("../error-logger.js", () => ({
106
- captureError: vi.fn(),
107
- addBreadcrumb: vi.fn()
108
- }));
109
- vi.mock("../agent-events.js", () => ({
110
- AgentEventEmitter: vi.fn(),
111
- setGlobalEmitter: vi.fn(),
112
- clearGlobalEmitter: vi.fn()
113
- }));
114
- vi.mock("../mcp-client.js", () => ({
115
- mcpClientManager: {
116
- getTools: vi.fn(() => []),
117
- isMcpTool: vi.fn(() => false),
118
- callTool: vi.fn(async () => ({
119
- success: true,
120
- output: "mcp-result"
121
- }))
122
- }
123
- }));
124
- vi.mock("../hooks.js", () => ({
125
- loadHooks: vi.fn(() => []),
126
- runBeforeToolHook: vi.fn(async () => ({
127
- allow: true
128
- })),
129
- runAfterToolHook: vi.fn(async () => ({})),
130
- runSessionHook: vi.fn(async () => {})
131
- }));
132
- vi.mock("../../../shared/agent-core.js", () => {
133
- class MockLoopDetector {
134
- resetTurn = vi.fn();
135
- getSessionStats = vi.fn(() => ({
136
- totalErrors: 0,
137
- failedStrategies: 0,
138
- consecutiveFailedTurns: 0
139
- }));
140
- }
141
- return {
142
- LoopDetector: MockLoopDetector,
143
- COMPACTION_TRIGGER_TOKENS: 167_000,
144
- COMPACTION_TOTAL_BUDGET: 2_000_000,
145
- DEFAULT_SESSION_COST_BUDGET_USD: 25,
146
- AGENT_DEFAULTS: {
147
- maxTurns: 200,
148
- temperature: 1.0,
149
- maxConcurrentTools: 7,
150
- enableDelegation: true,
151
- maxDurationMs: 900_000,
152
- maxDurationMsWorkflow: 120_000,
153
- enableModelRouting: true,
154
- subagentMaxTokens: 32000,
155
- subagentMaxTurns: 25,
156
- subagentTemperature: 1.0,
157
- subagentMaxRetries: 3,
158
- maxContinuations: 10,
159
- subagentMaxContinuations: 5,
160
- maxMessageChars: 100_000,
161
- maxToolResultChars: 2048,
162
- compactionTriggerTokens: 167_000,
163
- compactionTotalBudget: 2_000_000,
164
- sessionCostBudgetUsd: 25.00,
165
- teammateMaxTotalTurns: 50,
166
- teamTimeoutMs: 600_000,
167
- workerStallMs: 180_000,
168
- teamReviewMaxTokens: 1024,
169
- apiTimeoutMs: 90_000,
170
- toolTimeoutMs: 60_000,
171
- toolResultTruncateChars: 500_000
172
- },
173
- emitCostWarningIfNeeded: vi.fn(),
174
- getCompactionConfig: vi.fn(() => ({
175
- isNative: true,
176
- triggerTokens: 167_000,
177
- totalBudget: 2_000_000
178
- })),
179
- getContextManagement: vi.fn(() => ({
180
- betas: [],
181
- config: {
182
- edits: []
183
- }
184
- })),
185
- resolveAgentLoopConfig: vi.fn(() => ({
186
- maxTurns: 200,
187
- temperature: 1.0,
188
- maxTokens: 32000,
189
- maxConcurrentTools: 7,
190
- enableDelegation: true,
191
- maxDurationMs: 900_000,
192
- enableModelRouting: true,
193
- maxMessageChars: 100_000,
194
- contextOverrides: {},
195
- subagentMaxTokens: 32000,
196
- subagentMaxTurns: 25,
197
- subagentTemperature: 1.0,
198
- maxContinuations: 10,
199
- subagentMaxContinuations: 5,
200
- subagentMaxRetries: 3,
201
- maxToolResultChars: 2048,
202
- defaultsUsed: []
203
- }))
204
- };
205
- });
206
- vi.mock("../agent-config.js", () => ({
207
- loadCLIAgentConfig: vi.fn(async () => null),
208
- resetAgentConfigCache: vi.fn()
209
- }));
210
- vi.mock("../../../shared/sse-parser.js", () => ({
211
- parseSSEStream: vi.fn(() => async function* () {}()),
212
- processStreamWithCallbacks: vi.fn(async () => ({
213
- text: "Hello from Claude",
214
- toolUseBlocks: [],
215
- thinkingBlocks: [],
216
- thinkingTokens: 0,
217
- citations: [],
218
- usage: {
219
- inputTokens: 100,
220
- outputTokens: 50,
221
- cacheCreationTokens: 0,
222
- cacheReadTokens: 0
223
- },
224
- compactionContent: null,
225
- contextManagementApplied: false,
226
- stopReason: "end_turn"
227
- })),
228
- collectStreamResult: vi.fn(async () => ({
229
- text: "summary",
230
- usage: {
231
- inputTokens: 10,
232
- outputTokens: 5,
233
- cacheCreationTokens: 0,
234
- cacheReadTokens: 0
235
- }
236
- }))
237
- }));
238
- vi.mock("../../../shared/api-client.js", () => ({
239
- callServerProxy: vi.fn(async () => new ReadableStream()),
240
- callTranscribe: vi.fn(async () => "transcribed text"),
241
- buildAPIRequest: vi.fn(() => ({
242
- maxTokens: 16384,
243
- betas: ["context-management-2025-06-27"],
244
- contextManagement: {
245
- edits: []
246
- },
247
- thinking: undefined
248
- })),
249
- buildSystemBlocks: vi.fn((prompt, cost) => [{
250
- type: "text",
251
- text: prompt,
252
- cache_control: {
253
- type: "ephemeral"
254
- }
255
- }, {
256
- type: "text",
257
- text: cost
258
- }]),
259
- prepareWithCaching: vi.fn((tools, messages) => ({
260
- tools,
261
- messages
262
- })),
263
- trimGeminiContext: vi.fn(msgs => msgs),
264
- trimOpenAIContext: vi.fn(msgs => msgs),
265
- requestProviderCompaction: vi.fn(async () => null)
266
- }));
267
- vi.mock("../../../shared/constants.js", () => ({
268
- MODELS: {
269
- HAIKU: "claude-haiku-4-5-20251001",
270
- SONNET: "claude-sonnet-4-6",
271
- OPUS: "claude-opus-4-6"
272
- },
273
- getProvider: vi.fn(() => "anthropic")
274
- }));
275
- vi.mock("../../../shared/tool-dispatch.js", () => ({
276
- dispatchTools: vi.fn(async () => ({
277
- results: [],
278
- bailOut: false,
279
- bailMessage: undefined
280
- })),
281
- buildAssistantContent: vi.fn(({
282
- text,
283
- toolUseBlocks
284
- }) => {
285
- const blocks = [];
286
- if (text) blocks.push({
287
- type: "text",
288
- text
289
- });
290
- for (const t of toolUseBlocks) blocks.push({
291
- type: "tool_use",
292
- id: t.id,
293
- name: t.name,
294
- input: t.input
295
- });
296
- return blocks;
297
- })
298
- }));
299
- vi.mock("../memory-manager.js", () => ({
300
- loadMemory: vi.fn(async () => "memory content"),
301
- addMemory: vi.fn(async () => {}),
302
- removeMemory: vi.fn(async () => {}),
303
- listMemories: vi.fn(async () => [])
304
- }));
305
- vi.mock("../git-context.js", () => ({
306
- refreshGitContext: vi.fn(async () => "git context"),
307
- resetGitContext: vi.fn()
308
- }));
309
- vi.mock("../claude-md-loader.js", () => ({
310
- loadClaudeMd: vi.fn(async () => "claude md"),
311
- reloadClaudeMd: vi.fn(async () => "claude md"),
312
- resetClaudeMdCache: vi.fn()
313
- }));
314
- vi.mock("../permission-modes.js", () => ({
315
- setPermissionMode: vi.fn(),
316
- getPermissionMode: vi.fn(() => "normal"),
317
- isToolAllowedByPermission: vi.fn(() => true)
318
- }));
319
- vi.mock("../model-manager.js", () => ({
320
- setModel: vi.fn(),
321
- setModelById: vi.fn(),
322
- getModel: vi.fn(() => "claude-sonnet-4-6"),
323
- getModelShortName: vi.fn(() => "sonnet"),
324
- estimateCostUsd: vi.fn(() => 0.005)
325
- }));
326
- vi.mock("../session-persistence.js", () => ({
327
- saveSession: vi.fn(async () => {}),
328
- loadSession: vi.fn(async () => null),
329
- listSessions: vi.fn(async () => []),
330
- findLatestSessionForCwd: vi.fn(async () => null)
331
- }));
332
- vi.mock("../system-prompt.js", () => ({
333
- buildSystemPrompt: vi.fn(async () => "You are a helpful AI assistant.")
334
- }));
335
- vi.mock("../background-processes.js", () => ({
336
- listProcesses: vi.fn(() => []),
337
- listBackgroundAgents: vi.fn(() => [])
338
- }));
339
-
340
- // ============================================================================
341
- // Imports — after all mocks
342
- // ============================================================================
343
-
344
- import { runAgentLoop, resetSessionState } from "../agent-loop.js";
345
- import { getValidToken } from "../auth-service.js";
346
- import { loadConfig } from "../config-store.js";
347
-
348
- // ============================================================================
349
- // Helpers
350
- // ============================================================================
351
-
352
- function makeCallbacks(overrides = {}) {
353
- return {
354
- onText: vi.fn(),
355
- onToolStart: vi.fn(),
356
- onToolResult: vi.fn(),
357
- onUsage: vi.fn(),
358
- onDone: vi.fn(),
359
- onError: vi.fn(),
360
- onAutoCompact: vi.fn(),
361
- ...overrides
362
- };
363
- }
364
-
365
- // ============================================================================
366
- // TESTS — auth
367
- // ============================================================================
368
-
369
- describe("runAgentLoop — auth", () => {
370
- beforeEach(() => {
371
- vi.clearAllMocks();
372
- resetSessionState();
373
- vi.mocked(getValidToken).mockResolvedValue("test-jwt-token");
374
- vi.mocked(loadConfig).mockReturnValue({
375
- access_token: "test-token",
376
- refresh_token: "test-refresh",
377
- proxy_url: "https://proxy.test"
378
- });
379
- });
380
- it("throws when no valid token available", async () => {
381
- vi.mocked(getValidToken).mockResolvedValueOnce(null);
382
- const callbacks = makeCallbacks();
383
- await runAgentLoop({
384
- message: "No auth",
385
- conversationHistory: [],
386
- callbacks
387
- });
388
- expect(callbacks.onError).toHaveBeenCalledOnce();
389
- const errorMsg = vi.mocked(callbacks.onError).mock.calls[0][0];
390
- expect(errorMsg).toContain("Not logged in");
391
- });
392
- });