whale-code 6.5.4 → 6.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (853) hide show
  1. package/README.md +39 -31
  2. package/bin/{swagmanager-mcp.js → whale-code.js} +17 -2
  3. package/dist/cli/app.js +148 -72
  4. package/dist/cli/app.js.map +1 -0
  5. package/dist/cli/chat/AgentSelector.js +105 -10
  6. package/dist/cli/chat/AgentSelector.js.map +1 -0
  7. package/dist/cli/chat/ChatApp.d.ts +31 -0
  8. package/dist/cli/chat/ChatApp.js +539 -286
  9. package/dist/cli/chat/ChatApp.js.map +1 -0
  10. package/dist/cli/chat/ChatInput.js +1088 -770
  11. package/dist/cli/chat/ChatInput.js.map +1 -0
  12. package/dist/cli/chat/MarkdownText.js +39 -14
  13. package/dist/cli/chat/MarkdownText.js.map +1 -0
  14. package/dist/cli/chat/MemoryManager.js +181 -46
  15. package/dist/cli/chat/MemoryManager.js.map +1 -0
  16. package/dist/cli/chat/MessageList.d.ts +2 -3
  17. package/dist/cli/chat/MessageList.js +186 -45
  18. package/dist/cli/chat/MessageList.js.map +1 -0
  19. package/dist/cli/chat/ModelSelector.js +282 -63
  20. package/dist/cli/chat/ModelSelector.js.map +1 -0
  21. package/dist/cli/chat/NodeManager.js +165 -75
  22. package/dist/cli/chat/NodeManager.js.map +1 -0
  23. package/dist/cli/chat/NodeSelector.js +171 -30
  24. package/dist/cli/chat/NodeSelector.js.map +1 -0
  25. package/dist/cli/chat/PlanApproval.js +281 -57
  26. package/dist/cli/chat/PlanApproval.js.map +1 -0
  27. package/dist/cli/chat/RewindViewer.js +559 -144
  28. package/dist/cli/chat/RewindViewer.js.map +1 -0
  29. package/dist/cli/chat/SessionManager.js +137 -30
  30. package/dist/cli/chat/SessionManager.js.map +1 -0
  31. package/dist/cli/chat/SlashMenu.js +293 -164
  32. package/dist/cli/chat/SlashMenu.js.map +1 -0
  33. package/dist/cli/chat/StatusBar.js +172 -9
  34. package/dist/cli/chat/StatusBar.js.map +1 -0
  35. package/dist/cli/chat/StoreSelector.js +147 -18
  36. package/dist/cli/chat/StoreSelector.js.map +1 -0
  37. package/dist/cli/chat/StreamingText.d.ts +1 -5
  38. package/dist/cli/chat/StreamingText.js +22 -7
  39. package/dist/cli/chat/StreamingText.js.map +1 -0
  40. package/dist/cli/chat/SubagentPanel.d.ts +1 -2
  41. package/dist/cli/chat/SubagentPanel.js +612 -72
  42. package/dist/cli/chat/SubagentPanel.js.map +1 -0
  43. package/dist/cli/chat/TeamPanel.d.ts +1 -0
  44. package/dist/cli/chat/TeamPanel.js +230 -30
  45. package/dist/cli/chat/TeamPanel.js.map +1 -0
  46. package/dist/cli/chat/ThemeSelector.js +84 -24
  47. package/dist/cli/chat/ThemeSelector.js.map +1 -0
  48. package/dist/cli/chat/ToolIndicator.js +1476 -371
  49. package/dist/cli/chat/ToolIndicator.js.map +1 -0
  50. package/dist/cli/chat/hooks/useAgentLoop.d.ts +1 -0
  51. package/dist/cli/chat/hooks/useAgentLoop.js +481 -367
  52. package/dist/cli/chat/hooks/useAgentLoop.js.map +1 -0
  53. package/dist/cli/chat/hooks/useSlashCommands.d.ts +3 -14
  54. package/dist/cli/chat/hooks/useSlashCommands.js +744 -572
  55. package/dist/cli/chat/hooks/useSlashCommands.js.map +1 -0
  56. package/dist/cli/commands/config-cmd.js +56 -57
  57. package/dist/cli/commands/config-cmd.js.map +1 -0
  58. package/dist/cli/commands/db.js +184 -169
  59. package/dist/cli/commands/db.js.map +1 -0
  60. package/dist/cli/commands/doctor.js +212 -122
  61. package/dist/cli/commands/doctor.js.map +1 -0
  62. package/dist/cli/commands/init.js +211 -244
  63. package/dist/cli/commands/init.js.map +1 -0
  64. package/dist/cli/commands/mcp.js +127 -122
  65. package/dist/cli/commands/mcp.js.map +1 -0
  66. package/dist/cli/login/LoginApp.js +355 -141
  67. package/dist/cli/login/LoginApp.js.map +1 -0
  68. package/dist/cli/print-mode.js +196 -177
  69. package/dist/cli/print-mode.js.map +1 -0
  70. package/dist/cli/serve-mode.js +615 -530
  71. package/dist/cli/serve-mode.js.map +1 -0
  72. package/dist/cli/services/agent-config.d.ts +29 -0
  73. package/dist/cli/services/agent-config.js +91 -0
  74. package/dist/cli/services/agent-config.js.map +1 -0
  75. package/dist/cli/services/agent-definitions.d.ts +4 -1
  76. package/dist/cli/services/agent-definitions.js +97 -56
  77. package/dist/cli/services/agent-definitions.js.map +1 -0
  78. package/dist/cli/services/agent-events.js +225 -162
  79. package/dist/cli/services/agent-events.js.map +1 -0
  80. package/dist/cli/services/agent-loop.js +978 -669
  81. package/dist/cli/services/agent-loop.js.map +1 -0
  82. package/dist/cli/services/agent-worker-base.d.ts +35 -5
  83. package/dist/cli/services/agent-worker-base.js +337 -153
  84. package/dist/cli/services/agent-worker-base.js.map +1 -0
  85. package/dist/cli/services/api-retry.js +69 -64
  86. package/dist/cli/services/api-retry.js.map +1 -0
  87. package/dist/cli/services/auth-service.d.ts +3 -3
  88. package/dist/cli/services/auth-service.js +209 -132
  89. package/dist/cli/services/auth-service.js.map +1 -0
  90. package/dist/cli/services/background-processes.js +343 -267
  91. package/dist/cli/services/background-processes.js.map +1 -0
  92. package/dist/cli/services/browser-auth.d.ts +2 -2
  93. package/dist/cli/services/browser-auth.js +159 -118
  94. package/dist/cli/services/browser-auth.js.map +1 -0
  95. package/dist/cli/services/claude-md-loader.js +40 -36
  96. package/dist/cli/services/claude-md-loader.js.map +1 -0
  97. package/dist/cli/services/config-store.d.ts +9 -4
  98. package/dist/cli/services/config-store.js +164 -117
  99. package/dist/cli/services/config-store.js.map +1 -0
  100. package/dist/cli/services/debug-log.d.ts +1 -1
  101. package/dist/cli/services/debug-log.js +34 -35
  102. package/dist/cli/services/debug-log.js.map +1 -0
  103. package/dist/cli/services/env-detect.d.ts +7 -0
  104. package/dist/cli/services/env-detect.js +9 -0
  105. package/dist/cli/services/env-detect.js.map +1 -0
  106. package/dist/cli/services/error-logger.d.ts +2 -3
  107. package/dist/cli/services/error-logger.js +189 -180
  108. package/dist/cli/services/error-logger.js.map +1 -0
  109. package/dist/cli/services/file-history.d.ts +1 -1
  110. package/dist/cli/services/file-history.js +50 -54
  111. package/dist/cli/services/file-history.js.map +1 -0
  112. package/dist/cli/services/format-server-response.js +332 -372
  113. package/dist/cli/services/format-server-response.js.map +1 -0
  114. package/dist/cli/services/git-context.js +61 -45
  115. package/dist/cli/services/git-context.js.map +1 -0
  116. package/dist/cli/services/hooks.d.ts +2 -2
  117. package/dist/cli/services/hooks.js +195 -180
  118. package/dist/cli/services/hooks.js.map +1 -0
  119. package/dist/cli/services/ink-incremental.d.ts +19 -0
  120. package/dist/cli/services/ink-incremental.js +59 -0
  121. package/dist/cli/services/ink-incremental.js.map +1 -0
  122. package/dist/cli/services/ink-resize-fix.js +54 -44
  123. package/dist/cli/services/ink-resize-fix.js.map +1 -0
  124. package/dist/cli/services/ink-sync-output.d.ts +12 -0
  125. package/dist/cli/services/ink-sync-output.js +16 -0
  126. package/dist/cli/services/ink-sync-output.js.map +1 -0
  127. package/dist/cli/services/interactive-tools.js +268 -212
  128. package/dist/cli/services/interactive-tools.js.map +1 -0
  129. package/dist/cli/services/keybinding-manager.d.ts +11 -1
  130. package/dist/cli/services/keybinding-manager.js +126 -63
  131. package/dist/cli/services/keybinding-manager.js.map +1 -0
  132. package/dist/cli/services/local-tools.d.ts +1 -1
  133. package/dist/cli/services/local-tools.js +939 -656
  134. package/dist/cli/services/local-tools.js.map +1 -0
  135. package/dist/cli/services/lsp-manager.js +757 -594
  136. package/dist/cli/services/lsp-manager.js.map +1 -0
  137. package/dist/cli/services/mcp-client.d.ts +1 -1
  138. package/dist/cli/services/mcp-client.js +173 -134
  139. package/dist/cli/services/mcp-client.js.map +1 -0
  140. package/dist/cli/services/memory-manager.js +53 -40
  141. package/dist/cli/services/memory-manager.js.map +1 -0
  142. package/dist/cli/services/model-manager.js +55 -40
  143. package/dist/cli/services/model-manager.js.map +1 -0
  144. package/dist/cli/services/model-router.js +115 -85
  145. package/dist/cli/services/model-router.js.map +1 -0
  146. package/dist/cli/services/paths.d.ts +30 -0
  147. package/dist/cli/services/paths.js +81 -0
  148. package/dist/cli/services/paths.js.map +1 -0
  149. package/dist/cli/services/permission-modes.js +32 -25
  150. package/dist/cli/services/permission-modes.js.map +1 -0
  151. package/dist/cli/services/rewind.js +182 -168
  152. package/dist/cli/services/rewind.js.map +1 -0
  153. package/dist/cli/services/ripgrep.js +115 -115
  154. package/dist/cli/services/ripgrep.js.map +1 -0
  155. package/dist/cli/services/sandbox.d.ts +1 -1
  156. package/dist/cli/services/sandbox.js +58 -37
  157. package/dist/cli/services/sandbox.js.map +1 -0
  158. package/dist/cli/services/server-tools.js +738 -565
  159. package/dist/cli/services/server-tools.js.map +1 -0
  160. package/dist/cli/services/session-persistence.js +69 -74
  161. package/dist/cli/services/session-persistence.js.map +1 -0
  162. package/dist/cli/services/subagent-worker.js +42 -27
  163. package/dist/cli/services/subagent-worker.js.map +1 -0
  164. package/dist/cli/services/subagent.d.ts +2 -0
  165. package/dist/cli/services/subagent.js +606 -430
  166. package/dist/cli/services/subagent.js.map +1 -0
  167. package/dist/cli/services/system-prompt.js +86 -78
  168. package/dist/cli/services/system-prompt.js.map +1 -0
  169. package/dist/cli/services/task-decomposer.d.ts +1 -1
  170. package/dist/cli/services/task-decomposer.js +172 -139
  171. package/dist/cli/services/task-decomposer.js.map +1 -0
  172. package/dist/cli/services/team-lead.d.ts +2 -2
  173. package/dist/cli/services/team-lead.js +727 -529
  174. package/dist/cli/services/team-lead.js.map +1 -0
  175. package/dist/cli/services/team-state.js +319 -319
  176. package/dist/cli/services/team-state.js.map +1 -0
  177. package/dist/cli/services/teammate.d.ts +8 -2
  178. package/dist/cli/services/teammate.js +862 -560
  179. package/dist/cli/services/teammate.js.map +1 -0
  180. package/dist/cli/services/telemetry.d.ts +6 -1
  181. package/dist/cli/services/telemetry.js +180 -157
  182. package/dist/cli/services/telemetry.js.map +1 -0
  183. package/dist/cli/services/tools/agent-tools.d.ts +3 -3
  184. package/dist/cli/services/tools/agent-tools.js +480 -322
  185. package/dist/cli/services/tools/agent-tools.js.map +1 -0
  186. package/dist/cli/services/tools/file-ops.js +563 -450
  187. package/dist/cli/services/tools/file-ops.js.map +1 -0
  188. package/dist/cli/services/tools/search-tools.js +231 -162
  189. package/dist/cli/services/tools/search-tools.js.map +1 -0
  190. package/dist/cli/services/tools/shell-exec.js +197 -151
  191. package/dist/cli/services/tools/shell-exec.js.map +1 -0
  192. package/dist/cli/services/tools/task-manager.js +206 -173
  193. package/dist/cli/services/tools/task-manager.js.map +1 -0
  194. package/dist/cli/services/tools/web-tools.js +388 -341
  195. package/dist/cli/services/tools/web-tools.js.map +1 -0
  196. package/dist/cli/setup/SetupApp.d.ts +2 -2
  197. package/dist/cli/setup/SetupApp.js +608 -160
  198. package/dist/cli/setup/SetupApp.js.map +1 -0
  199. package/dist/cli/shared/ErrorBoundary.d.ts +22 -0
  200. package/dist/cli/shared/ErrorBoundary.js +73 -0
  201. package/dist/cli/shared/ErrorBoundary.js.map +1 -0
  202. package/dist/cli/shared/MatrixIntro.js +66 -69
  203. package/dist/cli/shared/MatrixIntro.js.map +1 -0
  204. package/dist/cli/shared/SpinnerSlot.d.ts +14 -0
  205. package/dist/cli/shared/SpinnerSlot.js +63 -0
  206. package/dist/cli/shared/SpinnerSlot.js.map +1 -0
  207. package/dist/cli/shared/Theme.d.ts +1 -1
  208. package/dist/cli/shared/Theme.js +136 -92
  209. package/dist/cli/shared/Theme.js.map +1 -0
  210. package/dist/cli/shared/WhaleBanner.js +99 -11
  211. package/dist/cli/shared/WhaleBanner.js.map +1 -0
  212. package/dist/cli/shared/markdown.d.ts +3 -1
  213. package/dist/cli/shared/markdown.js +736 -674
  214. package/dist/cli/shared/markdown.js.map +1 -0
  215. package/dist/cli/shared/marked-terminal.d.js +2 -0
  216. package/dist/cli/shared/marked-terminal.d.js.map +1 -0
  217. package/dist/cli/shared/theme-manager.js +99 -90
  218. package/dist/cli/shared/theme-manager.js.map +1 -0
  219. package/dist/cli/shared/theme-presets.js +256 -254
  220. package/dist/cli/shared/theme-presets.js.map +1 -0
  221. package/dist/cli/status/StatusApp.js +235 -86
  222. package/dist/cli/status/StatusApp.js.map +1 -0
  223. package/dist/cli/stores/StoreApp.js +275 -65
  224. package/dist/cli/stores/StoreApp.js.map +1 -0
  225. package/dist/index.d.ts +2 -2
  226. package/dist/index.js +509 -396
  227. package/dist/index.js.map +1 -0
  228. package/dist/local-agent/connection.d.ts +2 -2
  229. package/dist/local-agent/connection.js +352 -293
  230. package/dist/local-agent/connection.js.map +1 -0
  231. package/dist/local-agent/discovery.js +259 -122
  232. package/dist/local-agent/discovery.js.map +1 -0
  233. package/dist/local-agent/executor.js +216 -193
  234. package/dist/local-agent/executor.js.map +1 -0
  235. package/dist/local-agent/index.d.ts +2 -2
  236. package/dist/local-agent/index.js +156 -156
  237. package/dist/local-agent/index.js.map +1 -0
  238. package/dist/node/adapters/base.js +18 -8
  239. package/dist/node/adapters/base.js.map +1 -0
  240. package/dist/node/adapters/discord.js +286 -275
  241. package/dist/node/adapters/discord.js.map +1 -0
  242. package/dist/node/adapters/email.js +189 -202
  243. package/dist/node/adapters/email.js.map +1 -0
  244. package/dist/node/adapters/imessage.js +145 -142
  245. package/dist/node/adapters/imessage.js.map +1 -0
  246. package/dist/node/adapters/slack.js +237 -236
  247. package/dist/node/adapters/slack.js.map +1 -0
  248. package/dist/node/adapters/sms.js +149 -151
  249. package/dist/node/adapters/sms.js.map +1 -0
  250. package/dist/node/adapters/telegram.js +88 -92
  251. package/dist/node/adapters/telegram.js.map +1 -0
  252. package/dist/node/adapters/webchat.js +160 -136
  253. package/dist/node/adapters/webchat.js.map +1 -0
  254. package/dist/node/adapters/whatsapp.js +212 -215
  255. package/dist/node/adapters/whatsapp.js.map +1 -0
  256. package/dist/node/cli.js +884 -653
  257. package/dist/node/cli.js.map +1 -0
  258. package/dist/node/config.js +20 -18
  259. package/dist/node/config.js.map +1 -0
  260. package/dist/node/gateway-client.js +191 -181
  261. package/dist/node/gateway-client.js.map +1 -0
  262. package/dist/node/portal/clipboard.js +161 -130
  263. package/dist/node/portal/clipboard.js.map +1 -0
  264. package/dist/node/portal/discovery.js +51 -45
  265. package/dist/node/portal/discovery.js.map +1 -0
  266. package/dist/node/portal/forward.js +64 -58
  267. package/dist/node/portal/forward.js.map +1 -0
  268. package/dist/node/portal/index.js +246 -221
  269. package/dist/node/portal/index.js.map +1 -0
  270. package/dist/node/portal/multiplexer.js +192 -182
  271. package/dist/node/portal/multiplexer.js.map +1 -0
  272. package/dist/node/portal/permissions.js +102 -70
  273. package/dist/node/portal/permissions.js.map +1 -0
  274. package/dist/node/portal/protocol.js +153 -116
  275. package/dist/node/portal/protocol.js.map +1 -0
  276. package/dist/node/portal/screen.js +80 -69
  277. package/dist/node/portal/screen.js.map +1 -0
  278. package/dist/node/portal/session.js +124 -117
  279. package/dist/node/portal/session.js.map +1 -0
  280. package/dist/node/portal/shell.js +140 -113
  281. package/dist/node/portal/shell.js.map +1 -0
  282. package/dist/node/portal/stream.js +77 -75
  283. package/dist/node/portal/stream.js.map +1 -0
  284. package/dist/node/portal/transfer.js +190 -167
  285. package/dist/node/portal/transfer.js.map +1 -0
  286. package/dist/node/portal/ui.js +124 -99
  287. package/dist/node/portal/ui.js.map +1 -0
  288. package/dist/node/remote-desktop/compile-helper.js +50 -45
  289. package/dist/node/remote-desktop/compile-helper.js.map +1 -0
  290. package/dist/node/remote-desktop/index.js +215 -187
  291. package/dist/node/remote-desktop/index.js.map +1 -0
  292. package/dist/node/remote-desktop/protocol.js +45 -29
  293. package/dist/node/remote-desktop/protocol.js.map +1 -0
  294. package/dist/node/runtime.js +493 -410
  295. package/dist/node/runtime.js.map +1 -0
  296. package/dist/server/handlers/__test-utils__/test-db.js +39 -89
  297. package/dist/server/handlers/__test-utils__/test-db.js.map +1 -0
  298. package/dist/server/handlers/analytics.js +467 -261
  299. package/dist/server/handlers/analytics.js.map +1 -0
  300. package/dist/server/handlers/api-docs.d.ts +6 -0
  301. package/dist/server/handlers/api-docs.js +1613 -0
  302. package/dist/server/handlers/api-docs.js.map +1 -0
  303. package/dist/server/handlers/api-keys.js +295 -232
  304. package/dist/server/handlers/api-keys.js.map +1 -0
  305. package/dist/server/handlers/billing.js +330 -239
  306. package/dist/server/handlers/billing.js.map +1 -0
  307. package/dist/server/handlers/browser.js +468 -395
  308. package/dist/server/handlers/browser.js.map +1 -0
  309. package/dist/server/handlers/catalog.js +1377 -978
  310. package/dist/server/handlers/catalog.js.map +1 -0
  311. package/dist/server/handlers/clickhouse.js +157 -109
  312. package/dist/server/handlers/clickhouse.js.map +1 -0
  313. package/dist/server/handlers/comms.d.ts +0 -53
  314. package/dist/server/handlers/comms.js +1443 -970
  315. package/dist/server/handlers/comms.js.map +1 -0
  316. package/dist/server/handlers/creations.js +461 -394
  317. package/dist/server/handlers/creations.js.map +1 -0
  318. package/dist/server/handlers/crm.js +1082 -791
  319. package/dist/server/handlers/crm.js.map +1 -0
  320. package/dist/server/handlers/discovery.js +251 -232
  321. package/dist/server/handlers/discovery.js.map +1 -0
  322. package/dist/server/handlers/embeddings.js +241 -164
  323. package/dist/server/handlers/embeddings.js.map +1 -0
  324. package/dist/server/handlers/enrichment.js +887 -718
  325. package/dist/server/handlers/enrichment.js.map +1 -0
  326. package/dist/server/handlers/image-gen.js +467 -376
  327. package/dist/server/handlers/image-gen.js.map +1 -0
  328. package/dist/server/handlers/inventory.js +797 -424
  329. package/dist/server/handlers/inventory.js.map +1 -0
  330. package/dist/server/handlers/kali.js +272 -230
  331. package/dist/server/handlers/kali.js.map +1 -0
  332. package/dist/server/handlers/llm-providers.js +803 -580
  333. package/dist/server/handlers/llm-providers.js.map +1 -0
  334. package/dist/server/handlers/local-agent.js +133 -105
  335. package/dist/server/handlers/local-agent.js.map +1 -0
  336. package/dist/server/handlers/media.js +1179 -857
  337. package/dist/server/handlers/media.js.map +1 -0
  338. package/dist/server/handlers/meta-ads.js +2669 -2093
  339. package/dist/server/handlers/meta-ads.js.map +1 -0
  340. package/dist/server/handlers/nodes.js +1321 -913
  341. package/dist/server/handlers/nodes.js.map +1 -0
  342. package/dist/server/handlers/operations.js +183 -157
  343. package/dist/server/handlers/operations.js.map +1 -0
  344. package/dist/server/handlers/platform.js +346 -210
  345. package/dist/server/handlers/platform.js.map +1 -0
  346. package/dist/server/handlers/remove-bg.js +118 -86
  347. package/dist/server/handlers/remove-bg.js.map +1 -0
  348. package/dist/server/handlers/storefront.js +586 -446
  349. package/dist/server/handlers/storefront.js.map +1 -0
  350. package/dist/server/handlers/supply-chain.js +546 -326
  351. package/dist/server/handlers/supply-chain.js.map +1 -0
  352. package/dist/server/handlers/transcription.js +106 -97
  353. package/dist/server/handlers/transcription.js.map +1 -0
  354. package/dist/server/handlers/video-gen.js +593 -424
  355. package/dist/server/handlers/video-gen.js.map +1 -0
  356. package/dist/server/handlers/voice.js +1458 -1017
  357. package/dist/server/handlers/voice.js.map +1 -0
  358. package/dist/server/handlers/workflow-steps.js +2837 -2116
  359. package/dist/server/handlers/workflow-steps.js.map +1 -0
  360. package/dist/server/handlers/workflows.js +1630 -933
  361. package/dist/server/handlers/workflows.js.map +1 -0
  362. package/dist/server/index.js +3166 -2390
  363. package/dist/server/index.js.map +1 -0
  364. package/dist/server/lib/batch-client.js +471 -409
  365. package/dist/server/lib/batch-client.js.map +1 -0
  366. package/dist/server/lib/clickhouse-buffer.js +118 -104
  367. package/dist/server/lib/clickhouse-buffer.js.map +1 -0
  368. package/dist/server/lib/clickhouse-client.js +107 -107
  369. package/dist/server/lib/clickhouse-client.js.map +1 -0
  370. package/dist/server/lib/coa-renderer.js +1786 -356
  371. package/dist/server/lib/coa-renderer.js.map +1 -0
  372. package/dist/server/lib/code-worker-pool.js +227 -177
  373. package/dist/server/lib/code-worker-pool.js.map +1 -0
  374. package/dist/server/lib/code-worker.js +174 -164
  375. package/dist/server/lib/code-worker.js.map +1 -0
  376. package/dist/server/lib/compaction-service.d.ts +2 -12
  377. package/dist/server/lib/compaction-service.js +74 -184
  378. package/dist/server/lib/compaction-service.js.map +1 -0
  379. package/dist/server/lib/logger.js +36 -24
  380. package/dist/server/lib/logger.js.map +1 -0
  381. package/dist/server/lib/otel.js +101 -80
  382. package/dist/server/lib/otel.js.map +1 -0
  383. package/dist/server/lib/pdf-renderer.d.ts +1 -1
  384. package/dist/server/lib/pdf-renderer.js +954 -776
  385. package/dist/server/lib/pdf-renderer.js.map +1 -0
  386. package/dist/server/lib/prompt-sanitizer.js +188 -108
  387. package/dist/server/lib/prompt-sanitizer.js.map +1 -0
  388. package/dist/server/lib/provider-capabilities.js +136 -138
  389. package/dist/server/lib/provider-capabilities.js.map +1 -0
  390. package/dist/server/lib/provider-failover.js +190 -168
  391. package/dist/server/lib/provider-failover.js.map +1 -0
  392. package/dist/server/lib/rate-limiter.js +186 -117
  393. package/dist/server/lib/rate-limiter.js.map +1 -0
  394. package/dist/server/lib/react-pdf-layout.js +551 -382
  395. package/dist/server/lib/react-pdf-layout.js.map +1 -0
  396. package/dist/server/lib/server-agent-loop.d.ts +9 -0
  397. package/dist/server/lib/server-agent-loop.js +906 -624
  398. package/dist/server/lib/server-agent-loop.js.map +1 -0
  399. package/dist/server/lib/server-subagent.d.ts +2 -0
  400. package/dist/server/lib/server-subagent.js +260 -162
  401. package/dist/server/lib/server-subagent.js.map +1 -0
  402. package/dist/server/lib/session-checkpoint.js +105 -96
  403. package/dist/server/lib/session-checkpoint.js.map +1 -0
  404. package/dist/server/lib/ssrf-guard.js +193 -184
  405. package/dist/server/lib/ssrf-guard.js.map +1 -0
  406. package/dist/server/lib/supabase-client.js +94 -82
  407. package/dist/server/lib/supabase-client.js.map +1 -0
  408. package/dist/server/lib/template-resolver.js +154 -176
  409. package/dist/server/lib/template-resolver.js.map +1 -0
  410. package/dist/server/lib/utils.js +242 -133
  411. package/dist/server/lib/utils.js.map +1 -0
  412. package/dist/server/local-agent-gateway.d.ts +2 -2
  413. package/dist/server/local-agent-gateway.js +785 -627
  414. package/dist/server/local-agent-gateway.js.map +1 -0
  415. package/dist/server/providers/anthropic.js +254 -176
  416. package/dist/server/providers/anthropic.js.map +1 -0
  417. package/dist/server/providers/bedrock.js +221 -162
  418. package/dist/server/providers/bedrock.js.map +1 -0
  419. package/dist/server/providers/gemini.js +548 -418
  420. package/dist/server/providers/gemini.js.map +1 -0
  421. package/dist/server/providers/openai.js +571 -437
  422. package/dist/server/providers/openai.js.map +1 -0
  423. package/dist/server/providers/registry.js +23 -18
  424. package/dist/server/providers/registry.js.map +1 -0
  425. package/dist/server/providers/shared.js +123 -95
  426. package/dist/server/providers/shared.js.map +1 -0
  427. package/dist/server/providers/types.js +1 -11
  428. package/dist/server/providers/types.js.map +1 -0
  429. package/dist/server/proxy-handlers.js +209 -165
  430. package/dist/server/proxy-handlers.js.map +1 -0
  431. package/dist/server/tool-router.d.ts +13 -0
  432. package/dist/server/tool-router.js +960 -598
  433. package/dist/server/tool-router.js.map +1 -0
  434. package/dist/server/validation.js +248 -188
  435. package/dist/server/validation.js.map +1 -0
  436. package/dist/server/worker.js +202 -133
  437. package/dist/server/worker.js.map +1 -0
  438. package/dist/setup.d.ts +2 -2
  439. package/dist/setup.js +151 -147
  440. package/dist/setup.js.map +1 -0
  441. package/dist/shared/agent-core.d.ts +191 -24
  442. package/dist/shared/agent-core.js +971 -462
  443. package/dist/shared/agent-core.js.map +1 -0
  444. package/dist/shared/anthropic-types.js +1 -6
  445. package/dist/shared/anthropic-types.js.map +1 -0
  446. package/dist/shared/api-client.d.ts +17 -9
  447. package/dist/shared/api-client.js +419 -327
  448. package/dist/shared/api-client.js.map +1 -0
  449. package/dist/shared/compaction.d.ts +36 -0
  450. package/dist/shared/compaction.js +138 -0
  451. package/dist/shared/compaction.js.map +1 -0
  452. package/dist/shared/constants.js +67 -64
  453. package/dist/shared/constants.js.map +1 -0
  454. package/dist/shared/sse-parser.js +221 -219
  455. package/dist/shared/sse-parser.js.map +1 -0
  456. package/dist/shared/tool-dispatch.d.ts +4 -2
  457. package/dist/shared/tool-dispatch.js +226 -165
  458. package/dist/shared/tool-dispatch.js.map +1 -0
  459. package/dist/shared/types.js +1 -6
  460. package/dist/shared/types.js.map +1 -0
  461. package/dist/types/cli-highlight.d.js +2 -0
  462. package/dist/types/cli-highlight.d.js.map +1 -0
  463. package/dist/types/diff.d.js +2 -0
  464. package/dist/types/diff.d.js.map +1 -0
  465. package/dist/types/pdf-parse.d.js +2 -0
  466. package/dist/types/pdf-parse.d.js.map +1 -0
  467. package/dist/updater.d.ts +1 -1
  468. package/dist/updater.js +118 -92
  469. package/dist/updater.js.map +1 -0
  470. package/dist/webchat/widget.js +227 -380
  471. package/dist/webchat/widget.js.map +1 -0
  472. package/package.json +22 -10
  473. package/vendor/ink/build/ansi-tokenizer.d.ts +38 -0
  474. package/vendor/ink/build/ansi-tokenizer.js +316 -0
  475. package/vendor/ink/build/ansi-tokenizer.js.map +1 -0
  476. package/vendor/ink/build/apply-styles.js +175 -0
  477. package/vendor/ink/build/build-layout.js +77 -0
  478. package/vendor/ink/build/calculate-wrapped-text.js +53 -0
  479. package/vendor/ink/build/colorize.d.ts +3 -0
  480. package/vendor/ink/build/colorize.js +48 -0
  481. package/vendor/ink/build/colorize.js.map +1 -0
  482. package/vendor/ink/build/components/AccessibilityContext.d.ts +3 -0
  483. package/vendor/ink/build/components/AccessibilityContext.js +5 -0
  484. package/vendor/ink/build/components/AccessibilityContext.js.map +1 -0
  485. package/vendor/ink/build/components/App.d.ts +18 -0
  486. package/vendor/ink/build/components/App.js +351 -0
  487. package/vendor/ink/build/components/App.js.map +1 -0
  488. package/vendor/ink/build/components/AppContext.d.ts +15 -0
  489. package/vendor/ink/build/components/AppContext.js +11 -0
  490. package/vendor/ink/build/components/AppContext.js.map +1 -0
  491. package/vendor/ink/build/components/BackgroundContext.d.ts +4 -0
  492. package/vendor/ink/build/components/BackgroundContext.js +3 -0
  493. package/vendor/ink/build/components/BackgroundContext.js.map +1 -0
  494. package/vendor/ink/build/components/Box.d.ts +117 -0
  495. package/vendor/ink/build/components/Box.js +34 -0
  496. package/vendor/ink/build/components/Box.js.map +1 -0
  497. package/vendor/ink/build/components/Color.js +62 -0
  498. package/vendor/ink/build/components/Cursor.d.ts +83 -0
  499. package/vendor/ink/build/components/Cursor.js +53 -0
  500. package/vendor/ink/build/components/Cursor.js.map +1 -0
  501. package/vendor/ink/build/components/CursorContext.d.ts +11 -0
  502. package/vendor/ink/build/components/CursorContext.js +8 -0
  503. package/vendor/ink/build/components/CursorContext.js.map +1 -0
  504. package/vendor/ink/build/components/ErrorBoundary.d.ts +18 -0
  505. package/vendor/ink/build/components/ErrorBoundary.js +23 -0
  506. package/vendor/ink/build/components/ErrorBoundary.js.map +1 -0
  507. package/vendor/ink/build/components/ErrorOverview.d.ts +6 -0
  508. package/vendor/ink/build/components/ErrorOverview.js +84 -0
  509. package/vendor/ink/build/components/ErrorOverview.js.map +1 -0
  510. package/vendor/ink/build/components/FocusContext.d.ts +16 -0
  511. package/vendor/ink/build/components/FocusContext.js +17 -0
  512. package/vendor/ink/build/components/FocusContext.js.map +1 -0
  513. package/vendor/ink/build/components/Newline.d.ts +13 -0
  514. package/vendor/ink/build/components/Newline.js +8 -0
  515. package/vendor/ink/build/components/Newline.js.map +1 -0
  516. package/vendor/ink/build/components/Spacer.d.ts +7 -0
  517. package/vendor/ink/build/components/Spacer.js +11 -0
  518. package/vendor/ink/build/components/Spacer.js.map +1 -0
  519. package/vendor/ink/build/components/Static.d.ts +24 -0
  520. package/vendor/ink/build/components/Static.js +28 -0
  521. package/vendor/ink/build/components/Static.js.map +1 -0
  522. package/vendor/ink/build/components/StderrContext.d.ts +15 -0
  523. package/vendor/ink/build/components/StderrContext.js +13 -0
  524. package/vendor/ink/build/components/StderrContext.js.map +1 -0
  525. package/vendor/ink/build/components/StdinContext.d.ts +22 -0
  526. package/vendor/ink/build/components/StdinContext.js +19 -0
  527. package/vendor/ink/build/components/StdinContext.js.map +1 -0
  528. package/vendor/ink/build/components/StdoutContext.d.ts +15 -0
  529. package/vendor/ink/build/components/StdoutContext.js +13 -0
  530. package/vendor/ink/build/components/StdoutContext.js.map +1 -0
  531. package/vendor/ink/build/components/Text.d.ts +55 -0
  532. package/vendor/ink/build/components/Text.js +50 -0
  533. package/vendor/ink/build/components/Text.js.map +1 -0
  534. package/vendor/ink/build/components/Transform.d.ts +16 -0
  535. package/vendor/ink/build/components/Transform.js +15 -0
  536. package/vendor/ink/build/components/Transform.js.map +1 -0
  537. package/vendor/ink/build/cursor-helpers.d.ts +38 -0
  538. package/vendor/ink/build/cursor-helpers.js +56 -0
  539. package/vendor/ink/build/cursor-helpers.js.map +1 -0
  540. package/vendor/ink/build/devtools-window-polyfill.d.ts +1 -0
  541. package/vendor/ink/build/devtools-window-polyfill.js +65 -0
  542. package/vendor/ink/build/devtools-window-polyfill.js.map +1 -0
  543. package/vendor/ink/build/devtools.d.ts +1 -0
  544. package/vendor/ink/build/devtools.js +11 -0
  545. package/vendor/ink/build/devtools.js.map +1 -0
  546. package/vendor/ink/build/dom.d.ts +56 -0
  547. package/vendor/ink/build/dom.js +124 -0
  548. package/vendor/ink/build/dom.js.map +1 -0
  549. package/vendor/ink/build/experimental/apply-style.js +140 -0
  550. package/vendor/ink/build/experimental/dom.js +123 -0
  551. package/vendor/ink/build/experimental/output.js +91 -0
  552. package/vendor/ink/build/experimental/reconciler.js +141 -0
  553. package/vendor/ink/build/experimental/renderer.js +81 -0
  554. package/vendor/ink/build/get-max-width.d.ts +3 -0
  555. package/vendor/ink/build/get-max-width.js +10 -0
  556. package/vendor/ink/build/get-max-width.js.map +1 -0
  557. package/vendor/ink/build/hooks/use-app.d.ts +5 -0
  558. package/vendor/ink/build/hooks/use-app.js +8 -0
  559. package/vendor/ink/build/hooks/use-app.js.map +1 -0
  560. package/vendor/ink/build/hooks/use-cursor.d.ts +12 -0
  561. package/vendor/ink/build/hooks/use-cursor.js +29 -0
  562. package/vendor/ink/build/hooks/use-cursor.js.map +1 -0
  563. package/vendor/ink/build/hooks/use-focus-manager.d.ts +28 -0
  564. package/vendor/ink/build/hooks/use-focus-manager.js +17 -0
  565. package/vendor/ink/build/hooks/use-focus-manager.js.map +1 -0
  566. package/vendor/ink/build/hooks/use-focus.d.ts +29 -0
  567. package/vendor/ink/build/hooks/use-focus.js +42 -0
  568. package/vendor/ink/build/hooks/use-focus.js.map +1 -0
  569. package/vendor/ink/build/hooks/use-input.d.ts +131 -0
  570. package/vendor/ink/build/hooks/use-input.js +124 -0
  571. package/vendor/ink/build/hooks/use-input.js.map +1 -0
  572. package/vendor/ink/build/hooks/use-is-screen-reader-enabled.d.ts +5 -0
  573. package/vendor/ink/build/hooks/use-is-screen-reader-enabled.js +11 -0
  574. package/vendor/ink/build/hooks/use-is-screen-reader-enabled.js.map +1 -0
  575. package/vendor/ink/build/hooks/use-stderr.d.ts +5 -0
  576. package/vendor/ink/build/hooks/use-stderr.js +8 -0
  577. package/vendor/ink/build/hooks/use-stderr.js.map +1 -0
  578. package/vendor/ink/build/hooks/use-stdin.d.ts +5 -0
  579. package/vendor/ink/build/hooks/use-stdin.js +8 -0
  580. package/vendor/ink/build/hooks/use-stdin.js.map +1 -0
  581. package/vendor/ink/build/hooks/use-stdout.d.ts +5 -0
  582. package/vendor/ink/build/hooks/use-stdout.js +8 -0
  583. package/vendor/ink/build/hooks/use-stdout.js.map +1 -0
  584. package/vendor/ink/build/hooks/useInput.js +38 -0
  585. package/vendor/ink/build/index.d.ts +34 -0
  586. package/vendor/ink/build/index.js +20 -0
  587. package/vendor/ink/build/index.js.map +1 -0
  588. package/vendor/ink/build/ink.d.ts +90 -0
  589. package/vendor/ink/build/ink.js +654 -0
  590. package/vendor/ink/build/ink.js.map +1 -0
  591. package/vendor/ink/build/input-parser.d.ts +7 -0
  592. package/vendor/ink/build/input-parser.js +154 -0
  593. package/vendor/ink/build/input-parser.js.map +1 -0
  594. package/vendor/ink/build/instance.js +205 -0
  595. package/vendor/ink/build/instances.d.ts +3 -0
  596. package/vendor/ink/build/instances.js +8 -0
  597. package/vendor/ink/build/instances.js.map +1 -0
  598. package/vendor/ink/build/kitty-keyboard.d.ts +23 -0
  599. package/vendor/ink/build/kitty-keyboard.js +32 -0
  600. package/vendor/ink/build/kitty-keyboard.js.map +1 -0
  601. package/vendor/ink/build/layout.d.ts +7 -0
  602. package/vendor/ink/build/layout.js +33 -0
  603. package/vendor/ink/build/layout.js.map +1 -0
  604. package/vendor/ink/build/log-update.d.ts +19 -0
  605. package/vendor/ink/build/log-update.js +243 -0
  606. package/vendor/ink/build/log-update.js.map +1 -0
  607. package/vendor/ink/build/measure-element.d.ts +16 -0
  608. package/vendor/ink/build/measure-element.js +9 -0
  609. package/vendor/ink/build/measure-element.js.map +1 -0
  610. package/vendor/ink/build/measure-text.d.ts +6 -0
  611. package/vendor/ink/build/measure-text.js +21 -0
  612. package/vendor/ink/build/measure-text.js.map +1 -0
  613. package/vendor/ink/build/options.d.ts +52 -0
  614. package/vendor/ink/build/options.js +2 -0
  615. package/vendor/ink/build/options.js.map +1 -0
  616. package/vendor/ink/build/output.d.ts +35 -0
  617. package/vendor/ink/build/output.js +183 -0
  618. package/vendor/ink/build/output.js.map +1 -0
  619. package/vendor/ink/build/parse-keypress.d.ts +22 -0
  620. package/vendor/ink/build/parse-keypress.js +493 -0
  621. package/vendor/ink/build/parse-keypress.js.map +1 -0
  622. package/vendor/ink/build/reconciler.d.ts +4 -0
  623. package/vendor/ink/build/reconciler.js +274 -0
  624. package/vendor/ink/build/reconciler.js.map +1 -0
  625. package/vendor/ink/build/render-background.d.ts +4 -0
  626. package/vendor/ink/build/render-background.js +25 -0
  627. package/vendor/ink/build/render-background.js.map +1 -0
  628. package/vendor/ink/build/render-border.d.ts +4 -0
  629. package/vendor/ink/build/render-border.js +73 -0
  630. package/vendor/ink/build/render-border.js.map +1 -0
  631. package/vendor/ink/build/render-node-to-output.d.ts +14 -0
  632. package/vendor/ink/build/render-node-to-output.js +147 -0
  633. package/vendor/ink/build/render-node-to-output.js.map +1 -0
  634. package/vendor/ink/build/render-to-string.d.ts +38 -0
  635. package/vendor/ink/build/render-to-string.js +115 -0
  636. package/vendor/ink/build/render-to-string.js.map +1 -0
  637. package/vendor/ink/build/render.d.ts +121 -0
  638. package/vendor/ink/build/render.js +55 -0
  639. package/vendor/ink/build/render.js.map +1 -0
  640. package/vendor/ink/build/renderer.d.ts +8 -0
  641. package/vendor/ink/build/renderer.js +55 -0
  642. package/vendor/ink/build/renderer.js.map +1 -0
  643. package/vendor/ink/build/sanitize-ansi.d.ts +2 -0
  644. package/vendor/ink/build/sanitize-ansi.js +27 -0
  645. package/vendor/ink/build/sanitize-ansi.js.map +1 -0
  646. package/vendor/ink/build/screen-reader-update.d.ts +13 -0
  647. package/vendor/ink/build/screen-reader-update.js +38 -0
  648. package/vendor/ink/build/screen-reader-update.js.map +1 -0
  649. package/vendor/ink/build/squash-text-nodes.d.ts +3 -0
  650. package/vendor/ink/build/squash-text-nodes.js +36 -0
  651. package/vendor/ink/build/squash-text-nodes.js.map +1 -0
  652. package/vendor/ink/build/styles.d.ts +240 -0
  653. package/vendor/ink/build/styles.js +232 -0
  654. package/vendor/ink/build/styles.js.map +1 -0
  655. package/vendor/ink/build/utils.d.ts +2 -0
  656. package/vendor/ink/build/utils.js +4 -0
  657. package/vendor/ink/build/utils.js.map +1 -0
  658. package/vendor/ink/build/wrap-text.d.ts +3 -0
  659. package/vendor/ink/build/wrap-text.js +31 -0
  660. package/vendor/ink/build/wrap-text.js.map +1 -0
  661. package/vendor/ink/build/write-synchronized.d.ts +4 -0
  662. package/vendor/ink/build/write-synchronized.js +7 -0
  663. package/vendor/ink/build/write-synchronized.js.map +1 -0
  664. package/vendor/ink/license +10 -0
  665. package/vendor/ink/node_modules/@types/node/LICENSE +21 -0
  666. package/vendor/ink/node_modules/@types/node/README.md +15 -0
  667. package/vendor/ink/node_modules/@types/node/assert/strict.d.ts +105 -0
  668. package/vendor/ink/node_modules/@types/node/assert.d.ts +955 -0
  669. package/vendor/ink/node_modules/@types/node/async_hooks.d.ts +623 -0
  670. package/vendor/ink/node_modules/@types/node/buffer.buffer.d.ts +466 -0
  671. package/vendor/ink/node_modules/@types/node/buffer.d.ts +1810 -0
  672. package/vendor/ink/node_modules/@types/node/child_process.d.ts +1428 -0
  673. package/vendor/ink/node_modules/@types/node/cluster.d.ts +486 -0
  674. package/vendor/ink/node_modules/@types/node/compatibility/iterators.d.ts +21 -0
  675. package/vendor/ink/node_modules/@types/node/console.d.ts +151 -0
  676. package/vendor/ink/node_modules/@types/node/constants.d.ts +20 -0
  677. package/vendor/ink/node_modules/@types/node/crypto.d.ts +4065 -0
  678. package/vendor/ink/node_modules/@types/node/dgram.d.ts +564 -0
  679. package/vendor/ink/node_modules/@types/node/diagnostics_channel.d.ts +576 -0
  680. package/vendor/ink/node_modules/@types/node/dns/promises.d.ts +503 -0
  681. package/vendor/ink/node_modules/@types/node/dns.d.ts +922 -0
  682. package/vendor/ink/node_modules/@types/node/domain.d.ts +166 -0
  683. package/vendor/ink/node_modules/@types/node/events.d.ts +1054 -0
  684. package/vendor/ink/node_modules/@types/node/fs/promises.d.ts +1329 -0
  685. package/vendor/ink/node_modules/@types/node/fs.d.ts +4676 -0
  686. package/vendor/ink/node_modules/@types/node/globals.d.ts +150 -0
  687. package/vendor/ink/node_modules/@types/node/globals.typedarray.d.ts +101 -0
  688. package/vendor/ink/node_modules/@types/node/http.d.ts +2167 -0
  689. package/vendor/ink/node_modules/@types/node/http2.d.ts +2480 -0
  690. package/vendor/ink/node_modules/@types/node/https.d.ts +405 -0
  691. package/vendor/ink/node_modules/@types/node/index.d.ts +115 -0
  692. package/vendor/ink/node_modules/@types/node/inspector/promises.d.ts +41 -0
  693. package/vendor/ink/node_modules/@types/node/inspector.d.ts +224 -0
  694. package/vendor/ink/node_modules/@types/node/inspector.generated.d.ts +4226 -0
  695. package/vendor/ink/node_modules/@types/node/module.d.ts +819 -0
  696. package/vendor/ink/node_modules/@types/node/net.d.ts +933 -0
  697. package/vendor/ink/node_modules/@types/node/os.d.ts +507 -0
  698. package/vendor/ink/node_modules/@types/node/package.json +155 -0
  699. package/vendor/ink/node_modules/@types/node/path/posix.d.ts +8 -0
  700. package/vendor/ink/node_modules/@types/node/path/win32.d.ts +8 -0
  701. package/vendor/ink/node_modules/@types/node/path.d.ts +187 -0
  702. package/vendor/ink/node_modules/@types/node/perf_hooks.d.ts +643 -0
  703. package/vendor/ink/node_modules/@types/node/process.d.ts +2156 -0
  704. package/vendor/ink/node_modules/@types/node/punycode.d.ts +117 -0
  705. package/vendor/ink/node_modules/@types/node/querystring.d.ts +152 -0
  706. package/vendor/ink/node_modules/@types/node/quic.d.ts +910 -0
  707. package/vendor/ink/node_modules/@types/node/readline/promises.d.ts +161 -0
  708. package/vendor/ink/node_modules/@types/node/readline.d.ts +541 -0
  709. package/vendor/ink/node_modules/@types/node/repl.d.ts +415 -0
  710. package/vendor/ink/node_modules/@types/node/sea.d.ts +162 -0
  711. package/vendor/ink/node_modules/@types/node/sqlite.d.ts +955 -0
  712. package/vendor/ink/node_modules/@types/node/stream/consumers.d.ts +38 -0
  713. package/vendor/ink/node_modules/@types/node/stream/promises.d.ts +211 -0
  714. package/vendor/ink/node_modules/@types/node/stream/web.d.ts +296 -0
  715. package/vendor/ink/node_modules/@types/node/stream.d.ts +1760 -0
  716. package/vendor/ink/node_modules/@types/node/string_decoder.d.ts +67 -0
  717. package/vendor/ink/node_modules/@types/node/test/reporters.d.ts +96 -0
  718. package/vendor/ink/node_modules/@types/node/test.d.ts +2240 -0
  719. package/vendor/ink/node_modules/@types/node/timers/promises.d.ts +108 -0
  720. package/vendor/ink/node_modules/@types/node/timers.d.ts +159 -0
  721. package/vendor/ink/node_modules/@types/node/tls.d.ts +1198 -0
  722. package/vendor/ink/node_modules/@types/node/trace_events.d.ts +197 -0
  723. package/vendor/ink/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +462 -0
  724. package/vendor/ink/node_modules/@types/node/ts5.6/compatibility/float16array.d.ts +71 -0
  725. package/vendor/ink/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +36 -0
  726. package/vendor/ink/node_modules/@types/node/ts5.6/index.d.ts +117 -0
  727. package/vendor/ink/node_modules/@types/node/ts5.7/compatibility/float16array.d.ts +72 -0
  728. package/vendor/ink/node_modules/@types/node/ts5.7/index.d.ts +117 -0
  729. package/vendor/ink/node_modules/@types/node/tty.d.ts +250 -0
  730. package/vendor/ink/node_modules/@types/node/url.d.ts +519 -0
  731. package/vendor/ink/node_modules/@types/node/util/types.d.ts +558 -0
  732. package/vendor/ink/node_modules/@types/node/util.d.ts +1662 -0
  733. package/vendor/ink/node_modules/@types/node/v8.d.ts +983 -0
  734. package/vendor/ink/node_modules/@types/node/vm.d.ts +1208 -0
  735. package/vendor/ink/node_modules/@types/node/wasi.d.ts +202 -0
  736. package/vendor/ink/node_modules/@types/node/web-globals/abortcontroller.d.ts +59 -0
  737. package/vendor/ink/node_modules/@types/node/web-globals/blob.d.ts +23 -0
  738. package/vendor/ink/node_modules/@types/node/web-globals/console.d.ts +9 -0
  739. package/vendor/ink/node_modules/@types/node/web-globals/crypto.d.ts +39 -0
  740. package/vendor/ink/node_modules/@types/node/web-globals/domexception.d.ts +68 -0
  741. package/vendor/ink/node_modules/@types/node/web-globals/encoding.d.ts +11 -0
  742. package/vendor/ink/node_modules/@types/node/web-globals/events.d.ts +106 -0
  743. package/vendor/ink/node_modules/@types/node/web-globals/fetch.d.ts +69 -0
  744. package/vendor/ink/node_modules/@types/node/web-globals/importmeta.d.ts +13 -0
  745. package/vendor/ink/node_modules/@types/node/web-globals/messaging.d.ts +23 -0
  746. package/vendor/ink/node_modules/@types/node/web-globals/navigator.d.ts +25 -0
  747. package/vendor/ink/node_modules/@types/node/web-globals/performance.d.ts +45 -0
  748. package/vendor/ink/node_modules/@types/node/web-globals/storage.d.ts +24 -0
  749. package/vendor/ink/node_modules/@types/node/web-globals/streams.d.ts +115 -0
  750. package/vendor/ink/node_modules/@types/node/web-globals/timers.d.ts +44 -0
  751. package/vendor/ink/node_modules/@types/node/web-globals/url.d.ts +24 -0
  752. package/vendor/ink/node_modules/@types/node/worker_threads.d.ts +717 -0
  753. package/vendor/ink/node_modules/@types/node/zlib.d.ts +618 -0
  754. package/vendor/ink/node_modules/node-pty/LICENSE +69 -0
  755. package/vendor/ink/node_modules/node-pty/README.md +164 -0
  756. package/vendor/ink/node_modules/node-pty/binding.gyp +150 -0
  757. package/vendor/ink/node_modules/node-pty/lib/conpty_console_list_agent.js +25 -0
  758. package/vendor/ink/node_modules/node-pty/lib/eventEmitter2.js +47 -0
  759. package/vendor/ink/node_modules/node-pty/lib/index.js +52 -0
  760. package/vendor/ink/node_modules/node-pty/lib/interfaces.js +7 -0
  761. package/vendor/ink/node_modules/node-pty/lib/shared/conout.js +11 -0
  762. package/vendor/ink/node_modules/node-pty/lib/terminal.js +190 -0
  763. package/vendor/ink/node_modules/node-pty/lib/types.js +7 -0
  764. package/vendor/ink/node_modules/node-pty/lib/unixTerminal.js +349 -0
  765. package/vendor/ink/node_modules/node-pty/lib/utils.js +39 -0
  766. package/vendor/ink/node_modules/node-pty/lib/windowsConoutConnection.js +125 -0
  767. package/vendor/ink/node_modules/node-pty/lib/windowsPtyAgent.js +287 -0
  768. package/vendor/ink/node_modules/node-pty/lib/windowsTerminal.js +201 -0
  769. package/vendor/ink/node_modules/node-pty/lib/worker/conoutSocketWorker.js +22 -0
  770. package/vendor/ink/node_modules/node-pty/package.json +65 -0
  771. package/vendor/ink/node_modules/node-pty/prebuilds/darwin-arm64/pty.node +0 -0
  772. package/vendor/ink/node_modules/node-pty/prebuilds/darwin-arm64/spawn-helper +0 -0
  773. package/vendor/ink/node_modules/node-pty/prebuilds/darwin-x64/pty.node +0 -0
  774. package/vendor/ink/node_modules/node-pty/prebuilds/darwin-x64/spawn-helper +0 -0
  775. package/vendor/ink/node_modules/node-pty/prebuilds/linux-arm64/pty.node +0 -0
  776. package/vendor/ink/node_modules/node-pty/prebuilds/linux-x64/pty.node +0 -0
  777. package/vendor/ink/node_modules/node-pty/prebuilds/win32-arm64/conpty/OpenConsole.exe +0 -0
  778. package/vendor/ink/node_modules/node-pty/prebuilds/win32-arm64/conpty/conpty.dll +0 -0
  779. package/vendor/ink/node_modules/node-pty/prebuilds/win32-arm64/conpty.node +0 -0
  780. package/vendor/ink/node_modules/node-pty/prebuilds/win32-arm64/conpty.pdb +0 -0
  781. package/vendor/ink/node_modules/node-pty/prebuilds/win32-arm64/conpty_console_list.node +0 -0
  782. package/vendor/ink/node_modules/node-pty/prebuilds/win32-arm64/conpty_console_list.pdb +0 -0
  783. package/vendor/ink/node_modules/node-pty/prebuilds/win32-x64/conpty/OpenConsole.exe +0 -0
  784. package/vendor/ink/node_modules/node-pty/prebuilds/win32-x64/conpty/conpty.dll +0 -0
  785. package/vendor/ink/node_modules/node-pty/prebuilds/win32-x64/conpty.node +0 -0
  786. package/vendor/ink/node_modules/node-pty/prebuilds/win32-x64/conpty.pdb +0 -0
  787. package/vendor/ink/node_modules/node-pty/prebuilds/win32-x64/conpty_console_list.node +0 -0
  788. package/vendor/ink/node_modules/node-pty/prebuilds/win32-x64/conpty_console_list.pdb +0 -0
  789. package/vendor/ink/node_modules/node-pty/scripts/post-install.js +76 -0
  790. package/vendor/ink/node_modules/node-pty/scripts/prebuild.js +34 -0
  791. package/vendor/ink/node_modules/node-pty/src/unix/pty.cc +875 -0
  792. package/vendor/ink/node_modules/node-pty/src/unix/spawn-helper.cc +23 -0
  793. package/vendor/ink/node_modules/node-pty/src/win/conpty.cc +582 -0
  794. package/vendor/ink/node_modules/node-pty/src/win/conpty.h +41 -0
  795. package/vendor/ink/node_modules/node-pty/src/win/conpty_console_list.cc +44 -0
  796. package/vendor/ink/node_modules/node-pty/src/win/path_util.cc +95 -0
  797. package/vendor/ink/node_modules/node-pty/src/win/path_util.h +26 -0
  798. package/vendor/ink/node_modules/node-pty/third_party/conpty/1.23.251008001/win10-arm64/OpenConsole.exe +0 -0
  799. package/vendor/ink/node_modules/node-pty/third_party/conpty/1.23.251008001/win10-arm64/conpty.dll +0 -0
  800. package/vendor/ink/node_modules/node-pty/third_party/conpty/1.23.251008001/win10-x64/OpenConsole.exe +0 -0
  801. package/vendor/ink/node_modules/node-pty/third_party/conpty/1.23.251008001/win10-x64/conpty.dll +0 -0
  802. package/vendor/ink/node_modules/node-pty/typings/node-pty.d.ts +215 -0
  803. package/vendor/ink/node_modules/undici-types/LICENSE +21 -0
  804. package/vendor/ink/node_modules/undici-types/README.md +6 -0
  805. package/vendor/ink/node_modules/undici-types/agent.d.ts +32 -0
  806. package/vendor/ink/node_modules/undici-types/api.d.ts +43 -0
  807. package/vendor/ink/node_modules/undici-types/balanced-pool.d.ts +30 -0
  808. package/vendor/ink/node_modules/undici-types/cache-interceptor.d.ts +173 -0
  809. package/vendor/ink/node_modules/undici-types/cache.d.ts +36 -0
  810. package/vendor/ink/node_modules/undici-types/client-stats.d.ts +15 -0
  811. package/vendor/ink/node_modules/undici-types/client.d.ts +108 -0
  812. package/vendor/ink/node_modules/undici-types/connector.d.ts +34 -0
  813. package/vendor/ink/node_modules/undici-types/content-type.d.ts +21 -0
  814. package/vendor/ink/node_modules/undici-types/cookies.d.ts +30 -0
  815. package/vendor/ink/node_modules/undici-types/diagnostics-channel.d.ts +74 -0
  816. package/vendor/ink/node_modules/undici-types/dispatcher.d.ts +276 -0
  817. package/vendor/ink/node_modules/undici-types/env-http-proxy-agent.d.ts +22 -0
  818. package/vendor/ink/node_modules/undici-types/errors.d.ts +161 -0
  819. package/vendor/ink/node_modules/undici-types/eventsource.d.ts +66 -0
  820. package/vendor/ink/node_modules/undici-types/fetch.d.ts +211 -0
  821. package/vendor/ink/node_modules/undici-types/formdata.d.ts +108 -0
  822. package/vendor/ink/node_modules/undici-types/global-dispatcher.d.ts +9 -0
  823. package/vendor/ink/node_modules/undici-types/global-origin.d.ts +7 -0
  824. package/vendor/ink/node_modules/undici-types/h2c-client.d.ts +73 -0
  825. package/vendor/ink/node_modules/undici-types/handlers.d.ts +15 -0
  826. package/vendor/ink/node_modules/undici-types/header.d.ts +160 -0
  827. package/vendor/ink/node_modules/undici-types/index.d.ts +88 -0
  828. package/vendor/ink/node_modules/undici-types/interceptors.d.ts +73 -0
  829. package/vendor/ink/node_modules/undici-types/mock-agent.d.ts +68 -0
  830. package/vendor/ink/node_modules/undici-types/mock-call-history.d.ts +111 -0
  831. package/vendor/ink/node_modules/undici-types/mock-client.d.ts +27 -0
  832. package/vendor/ink/node_modules/undici-types/mock-errors.d.ts +12 -0
  833. package/vendor/ink/node_modules/undici-types/mock-interceptor.d.ts +94 -0
  834. package/vendor/ink/node_modules/undici-types/mock-pool.d.ts +27 -0
  835. package/vendor/ink/node_modules/undici-types/package.json +55 -0
  836. package/vendor/ink/node_modules/undici-types/patch.d.ts +29 -0
  837. package/vendor/ink/node_modules/undici-types/pool-stats.d.ts +19 -0
  838. package/vendor/ink/node_modules/undici-types/pool.d.ts +41 -0
  839. package/vendor/ink/node_modules/undici-types/proxy-agent.d.ts +29 -0
  840. package/vendor/ink/node_modules/undici-types/readable.d.ts +68 -0
  841. package/vendor/ink/node_modules/undici-types/retry-agent.d.ts +8 -0
  842. package/vendor/ink/node_modules/undici-types/retry-handler.d.ts +125 -0
  843. package/vendor/ink/node_modules/undici-types/round-robin-pool.d.ts +41 -0
  844. package/vendor/ink/node_modules/undici-types/snapshot-agent.d.ts +109 -0
  845. package/vendor/ink/node_modules/undici-types/util.d.ts +18 -0
  846. package/vendor/ink/node_modules/undici-types/utility.d.ts +7 -0
  847. package/vendor/ink/node_modules/undici-types/webidl.d.ts +341 -0
  848. package/vendor/ink/node_modules/undici-types/websocket.d.ts +186 -0
  849. package/vendor/ink/package.json +201 -0
  850. package/vendor/ink/readme.md +2636 -0
  851. package/bin/swag-agent.js +0 -9
  852. package/dist/server/lib/pg-rate-limiter.d.ts +0 -21
  853. package/dist/server/lib/pg-rate-limiter.js +0 -86
package/README.md CHANGED
@@ -1,23 +1,29 @@
1
- # @swagmanager/mcp
1
+ # whale-code
2
2
 
3
- MCP (Model Context Protocol) server for SwagManager — manage inventory, orders, analytics, customers, and more from Claude Code or Claude Desktop.
3
+ Local-first AI agent CLI for inventory, orders, analytics, customers, and more powered by MCP.
4
4
 
5
- ## Setup
5
+ ## Install
6
6
 
7
7
  ```bash
8
- npm install -g @swagmanager/mcp
8
+ npm install -g whale-code
9
9
  ```
10
10
 
11
- ### Environment Variables
12
-
13
- Create a `.env` file or set these environment variables:
11
+ Or use the one-liner:
14
12
 
13
+ ```bash
14
+ curl -fsSL https://whaletools.dev/install.sh | sh
15
15
  ```
16
- SUPABASE_URL=https://your-project.supabase.co
17
- SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
18
- DEFAULT_STORE_ID=your-store-uuid
16
+
17
+ ## Quick Start
18
+
19
+ ```bash
20
+ whale login # Browser-based OAuth to WhaleTools
21
+ whale # Start interactive chat
22
+ whale -p "prompt" # Non-interactive (print) mode
19
23
  ```
20
24
 
25
+ ## MCP Integration
26
+
21
27
  ### Claude Code
22
28
 
23
29
  Add to `~/.claude/settings.json`:
@@ -25,33 +31,21 @@ Add to `~/.claude/settings.json`:
25
31
  ```json
26
32
  {
27
33
  "mcpServers": {
28
- "swagmanager": {
29
- "command": "swagmanager-mcp",
30
- "env": {
31
- "SUPABASE_URL": "https://your-project.supabase.co",
32
- "SUPABASE_SERVICE_ROLE_KEY": "your-key",
33
- "DEFAULT_STORE_ID": "your-store-uuid"
34
- }
34
+ "whale": {
35
+ "command": "whale"
35
36
  }
36
37
  }
37
38
  }
38
39
  ```
39
40
 
40
- ### Claude Desktop
41
-
42
- Add to your Claude Desktop MCP config:
41
+ ### Claude Desktop / Cursor
43
42
 
44
43
  ```json
45
44
  {
46
45
  "mcpServers": {
47
- "swagmanager": {
46
+ "whale": {
48
47
  "command": "npx",
49
- "args": ["@swagmanager/mcp"],
50
- "env": {
51
- "SUPABASE_URL": "https://your-project.supabase.co",
52
- "SUPABASE_SERVICE_ROLE_KEY": "your-key",
53
- "DEFAULT_STORE_ID": "your-store-uuid"
54
- }
48
+ "args": ["whale-code"]
55
49
  }
56
50
  }
57
51
  }
@@ -59,7 +53,7 @@ Add to your Claude Desktop MCP config:
59
53
 
60
54
  ## Tools
61
55
 
62
- Tools are loaded dynamically from the `ai_tool_registry` database table. The default set includes:
56
+ Tools are loaded dynamically from the database no code changes needed when tools are added or updated.
63
57
 
64
58
  | Tool | Description |
65
59
  |------|-------------|
@@ -80,13 +74,27 @@ Tools are loaded dynamically from the `ai_tool_registry` database table. The def
80
74
  | `documents` | Generate COAs and documents |
81
75
  | `audit_trail` | View audit logs |
82
76
 
77
+ ## CLI Commands
78
+
79
+ ```
80
+ whale Start interactive chat
81
+ whale -p "prompt" Non-interactive mode
82
+ whale login Log in to WhaleTools
83
+ whale logout Clear saved session
84
+ whale status Show connection status
85
+ whale mcp list|add|remove Manage MCP servers
86
+ whale doctor Run diagnostics
87
+ whale config [key] [value] View/set configuration
88
+ whale update Update to latest version
89
+ whale help Show help
90
+ ```
91
+
83
92
  ## Development
84
93
 
85
94
  ```bash
86
- git clone https://github.com/floradistro/whale-mcp.git
87
- cd whale-mcp
95
+ git clone https://github.com/floradistro/whale-code.git
96
+ cd whale-code
88
97
  npm install
89
- cp .env.example .env # fill in your credentials
90
98
  npm run dev
91
99
  ```
92
100
 
@@ -6,7 +6,7 @@
6
6
  * Usage:
7
7
  * whale Start interactive chat
8
8
  * whale -p "prompt" Non-interactive (print) mode
9
- * whale login Log in with SwagManager credentials
9
+ * whale login Log in to WhaleTools
10
10
  * whale logout Clear saved session
11
11
  * whale status Show connection status
12
12
  * whale mcp list|add|remove Manage MCP servers
@@ -65,6 +65,9 @@ try {
65
65
  // Debug / verbose
66
66
  debug: { type: "boolean" },
67
67
  verbose: { type: "boolean", short: "v" },
68
+ // Output control
69
+ "no-color": { type: "boolean" },
70
+ quiet: { type: "boolean", short: "q" },
68
71
  // Standard
69
72
  help: { type: "boolean", short: "h" },
70
73
  version: { type: "boolean" },
@@ -78,6 +81,16 @@ try {
78
81
 
79
82
  const { values: flags, positionals } = parsed;
80
83
 
84
+ // --no-color: chalk respects NO_COLOR env var
85
+ if (flags["no-color"]) {
86
+ process.env.NO_COLOR = "1";
87
+ }
88
+
89
+ // --quiet: suppress banner, spinners, non-essential output
90
+ if (flags.quiet) {
91
+ process.env.WHALE_QUIET = "1";
92
+ }
93
+
81
94
  // First positional is the subcommand (unless --print is used)
82
95
  const subcommand = positionals[0];
83
96
  // If --print, remaining positionals form the message
@@ -103,7 +116,7 @@ function showHelp() {
103
116
  console.log();
104
117
  console.log(` ${B}Commands:${r}`);
105
118
  console.log(` whale${d} Start chatting (default)${r}`);
106
- console.log(` whale login${d} Log in to SwagManager${r}`);
119
+ console.log(` whale login${d} Log in to WhaleTools${r}`);
107
120
  console.log(` whale logout${d} Clear session${r}`);
108
121
  console.log(` whale stores${d} Switch active store${r}`);
109
122
  console.log(` whale status${d} Connection & tools${r}`);
@@ -137,6 +150,8 @@ function showHelp() {
137
150
  console.log(` --fallback-model <name>${d} Auto-fallback on overload${r}`);
138
151
  console.log(` --debug${d} Debug logging to stderr${r}`);
139
152
  console.log(` -v, --verbose${d} Extra output${r}`);
153
+ console.log(` --no-color${d} Disable ANSI colors${r}`);
154
+ console.log(` -q, --quiet${d} Suppress banner, spinners${r}`);
140
155
  console.log();
141
156
  console.log(` ${B}In chat:${r}`);
142
157
  console.log(` ${d}Type ${r}/${d} to open command menu${r}`);
package/dist/cli/app.js CHANGED
@@ -1,92 +1,168 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { render } from "ink";
1
+ /**
2
+ * CLI App Entry Point
3
+ *
4
+ * Dynamic imports for each mode — keeps MCP server path clean.
5
+ */
6
+
7
+ import React from "react";
3
8
  import chalk from "chalk";
4
9
  import { initErrorLogger, setErrorLoggerUser, captureError } from "./services/error-logger.js";
5
10
  import { loadConfig } from "./services/config-store.js";
11
+
12
+ // ── Deferred Ink loading — don't load Ink/Yoga until UI is needed ──
13
+ import { jsx as _jsx } from "react/jsx-runtime";
14
+ let _render = null;
15
+ async function getInkRender() {
16
+ if (!_render) {
17
+ const ink = await import("ink");
18
+ _render = ink.render;
19
+ }
20
+ return _render;
21
+ }
22
+
23
+ // ============================================================================
24
+ // CHAT OPTIONS — passed from CLI argument parsing
25
+ // ============================================================================
26
+
6
27
  export async function renderLogin() {
7
- const { LoginApp } = await import("./login/LoginApp.js");
8
- const { waitUntilExit } = render(_jsx(LoginApp, {}));
9
- await waitUntilExit();
28
+ const render = await getInkRender();
29
+ const {
30
+ LoginApp
31
+ } = await import("./login/LoginApp.js");
32
+ const {
33
+ waitUntilExit
34
+ } = render(/*#__PURE__*/_jsx(LoginApp, {}));
35
+ await waitUntilExit();
10
36
  }
11
37
  export async function renderLogout() {
12
- const { signOut, isLoggedIn } = await import("./services/auth-service.js");
13
- if (!isLoggedIn()) {
14
- console.log("Not logged in.");
15
- }
16
- else {
17
- signOut();
18
- console.log("Logged out. Tokens cleared.");
19
- }
38
+ const {
39
+ signOut,
40
+ isLoggedIn
41
+ } = await import("./services/auth-service.js");
42
+ if (!isLoggedIn()) {
43
+ console.log("Not logged in.");
44
+ } else {
45
+ signOut();
46
+ console.log("Logged out. Tokens cleared.");
47
+ }
20
48
  }
21
49
  export async function renderChat(options) {
22
- // Initialize error logging before anything else
23
- initErrorLogger({ serviceName: "whale-code" });
24
- const cfg = loadConfig();
25
- if (cfg.user_id || cfg.email || cfg.store_id) {
26
- setErrorLoggerUser(cfg.user_id, cfg.email, cfg.store_id);
27
- }
28
- // Global handlers — catch anything that slips through
29
- process.on("uncaughtException", (err) => {
30
- captureError({ error: err, severity: "fatal", tags: { source: "uncaughtException" } });
50
+ // Initialize error logging before anything else
51
+ initErrorLogger({
52
+ serviceName: "whale-code"
53
+ });
54
+ const cfg = loadConfig();
55
+ if (cfg.user_id || cfg.email || cfg.store_id) {
56
+ setErrorLoggerUser(cfg.user_id, cfg.email, cfg.store_id);
57
+ }
58
+
59
+ // Global handlers — catch anything that slips through
60
+ process.on("uncaughtException", err => {
61
+ captureError({
62
+ error: err,
63
+ severity: "fatal",
64
+ tags: {
65
+ source: "uncaughtException"
66
+ }
31
67
  });
32
- process.on("unhandledRejection", (reason) => {
33
- const err = reason instanceof Error ? reason : new Error(String(reason));
34
- captureError({ error: err, severity: "error", tags: { source: "unhandledRejection" } });
68
+ });
69
+ process.on("unhandledRejection", reason => {
70
+ const err = reason instanceof Error ? reason : new Error(String(reason));
71
+ captureError({
72
+ error: err,
73
+ severity: "error",
74
+ tags: {
75
+ source: "unhandledRejection"
76
+ }
35
77
  });
36
- // Auto-login if not authenticated — seamless browser OAuth
37
- const { isLoggedIn } = await import("./services/auth-service.js");
38
- if (!isLoggedIn()) {
39
- const { signInWithBrowser } = await import("./services/browser-auth.js");
40
- const brand = chalk.hex("#6366F1");
41
- const dim = chalk.hex("#64748B");
42
- const green = chalk.hex("#30D158");
43
- console.log();
44
- console.log(` ${brand.bold("◆")} Opening browser to sign in...`);
45
- const result = await signInWithBrowser(undefined, {
46
- onBrowserOpening: (url) => {
47
- console.log(` ${dim(url)}`);
48
- console.log();
49
- console.log(` ${dim("Waiting for authentication...")}`);
50
- },
51
- });
52
- if (!result.success) {
53
- console.error(` ${chalk.red("✗")} ${result.error}`);
54
- console.error(` ${dim("Run")} whale login ${dim("to try again.")}`);
55
- process.exit(1);
56
- }
57
- console.log(` ${green("✓")} Signed in as ${result.config?.email || "unknown"}`);
58
- if (result.config?.store_name) {
59
- console.log(` ${dim("Store:")} ${result.config.store_name}`);
60
- }
78
+ });
79
+
80
+ // Auto-login if not authenticated — seamless browser OAuth
81
+ const {
82
+ isLoggedIn
83
+ } = await import("./services/auth-service.js");
84
+ if (!isLoggedIn()) {
85
+ const {
86
+ signInWithBrowser
87
+ } = await import("./services/browser-auth.js");
88
+ const brand = chalk.hex("#6366F1");
89
+ const dim = chalk.hex("#64748B");
90
+ const green = chalk.hex("#30D158");
91
+ console.log();
92
+ console.log(` ${brand.bold("◆")} Opening browser to sign in...`);
93
+ const result = await signInWithBrowser(undefined, {
94
+ onBrowserOpening: url => {
95
+ console.log(` ${dim(url)}`);
61
96
  console.log();
97
+ console.log(` ${dim("Waiting for authentication...")}`);
98
+ }
99
+ });
100
+ if (!result.success) {
101
+ console.error(` ${chalk.red("✗")} ${result.error}`);
102
+ console.error(` ${dim("Run")} whale login ${dim("to try again.")}`);
103
+ process.exit(1);
104
+ }
105
+ console.log(` ${green("✓")} Signed in as ${result.config?.email || "unknown"}`);
106
+ if (result.config?.store_name) {
107
+ console.log(` ${dim("Store:")} ${result.config.store_name}`);
62
108
  }
63
- // Clear screen — fresh start
64
- process.stdout.write("\x1b[2J\x1b[3J\x1b[H");
65
- // Apply options before starting chat
66
- if (options?.model || options?.permissionMode) {
67
- const agentLoop = await import("./services/agent-loop.js");
68
- if (options.model)
69
- agentLoop.setModel(options.model);
70
- if (options.permissionMode) {
71
- agentLoop.setPermissionMode(options.permissionMode);
72
- }
109
+ console.log();
110
+ }
111
+
112
+ // Clear screen fresh start
113
+ process.stdout.write("\x1b[2J\x1b[3J\x1b[H");
114
+
115
+ // Apply options before starting chat
116
+ if (options?.model || options?.permissionMode) {
117
+ const agentLoop = await import("./services/agent-loop.js");
118
+ if (options.model) agentLoop.setModel(options.model);
119
+ if (options.permissionMode) {
120
+ agentLoop.setPermissionMode(options.permissionMode);
73
121
  }
74
- const { ChatApp } = await import("./chat/ChatApp.js");
75
- const { waitUntilExit } = render(_jsx(ChatApp, {}));
76
- await waitUntilExit();
122
+ }
123
+
124
+ // Pre-load all modules before render
125
+ const render = await getInkRender();
126
+ const [{
127
+ ChatApp
128
+ }, {
129
+ ErrorBoundary
130
+ }] = await Promise.all([import("./chat/ChatApp.js"), import("./shared/ErrorBoundary.js")]);
131
+ const {
132
+ waitUntilExit
133
+ } = render(/*#__PURE__*/_jsx(ErrorBoundary, {
134
+ children: /*#__PURE__*/_jsx(ChatApp, {})
135
+ }));
136
+ await waitUntilExit();
77
137
  }
78
138
  export async function renderSetup() {
79
- const { SetupApp } = await import("./setup/SetupApp.js");
80
- const { waitUntilExit } = render(_jsx(SetupApp, {}));
81
- await waitUntilExit();
139
+ const render = await getInkRender();
140
+ const {
141
+ SetupApp
142
+ } = await import("./setup/SetupApp.js");
143
+ const {
144
+ waitUntilExit
145
+ } = render(/*#__PURE__*/_jsx(SetupApp, {}));
146
+ await waitUntilExit();
82
147
  }
83
148
  export async function renderStatus() {
84
- const { StatusApp } = await import("./status/StatusApp.js");
85
- const { waitUntilExit } = render(_jsx(StatusApp, {}));
86
- await waitUntilExit();
149
+ const render = await getInkRender();
150
+ const {
151
+ StatusApp
152
+ } = await import("./status/StatusApp.js");
153
+ const {
154
+ waitUntilExit
155
+ } = render(/*#__PURE__*/_jsx(StatusApp, {}));
156
+ await waitUntilExit();
87
157
  }
88
158
  export async function renderStores() {
89
- const { StoreApp } = await import("./stores/StoreApp.js");
90
- const { waitUntilExit } = render(_jsx(StoreApp, {}));
91
- await waitUntilExit();
159
+ const render = await getInkRender();
160
+ const {
161
+ StoreApp
162
+ } = await import("./stores/StoreApp.js");
163
+ const {
164
+ waitUntilExit
165
+ } = render(/*#__PURE__*/_jsx(StoreApp, {}));
166
+ await waitUntilExit();
92
167
  }
168
+ //# sourceMappingURL=app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","names":["React","chalk","initErrorLogger","setErrorLoggerUser","captureError","loadConfig","jsx","_jsx","_render","getInkRender","ink","render","renderLogin","LoginApp","waitUntilExit","renderLogout","signOut","isLoggedIn","console","log","renderChat","options","serviceName","cfg","user_id","email","store_id","process","on","err","error","severity","tags","source","reason","Error","String","signInWithBrowser","brand","hex","dim","green","bold","result","undefined","onBrowserOpening","url","success","red","exit","config","store_name","stdout","write","model","permissionMode","agentLoop","setModel","setPermissionMode","ChatApp","ErrorBoundary","Promise","all","children","renderSetup","SetupApp","renderStatus","StatusApp","renderStores","StoreApp"],"sources":["../../src/cli/app.tsx"],"sourcesContent":["/**\n * CLI App Entry Point\n *\n * Dynamic imports for each mode — keeps MCP server path clean.\n */\n\nimport React from \"react\";\nimport chalk from \"chalk\";\nimport { initErrorLogger, setErrorLoggerUser, captureError } from \"./services/error-logger.js\";\nimport { loadConfig } from \"./services/config-store.js\";\n\n// ── Deferred Ink loading — don't load Ink/Yoga until UI is needed ──\n\nlet _render: typeof import(\"ink\").render | null = null;\nasync function getInkRender() {\n if (!_render) {\n const ink = await import(\"ink\");\n _render = ink.render;\n }\n return _render;\n}\n\n// ============================================================================\n// CHAT OPTIONS — passed from CLI argument parsing\n// ============================================================================\n\nexport interface ChatOptions {\n model?: string;\n permissionMode?: string;\n resumeSessionId?: string;\n continueLastSession?: boolean;\n sessionId?: string;\n maxTurns?: number;\n maxBudgetUsd?: number;\n effort?: string;\n allowedTools?: string[];\n disallowedTools?: string[];\n fallbackModel?: string;\n debug?: boolean;\n verbose?: boolean;\n}\n\nexport async function renderLogin(): Promise<void> {\n const render = await getInkRender();\n const { LoginApp } = await import(\"./login/LoginApp.js\");\n const { waitUntilExit } = render(<LoginApp />);\n await waitUntilExit();\n}\n\nexport async function renderLogout(): Promise<void> {\n const { signOut, isLoggedIn } = await import(\"./services/auth-service.js\");\n if (!isLoggedIn()) {\n console.log(\"Not logged in.\");\n } else {\n signOut();\n console.log(\"Logged out. Tokens cleared.\");\n }\n}\n\nexport async function renderChat(options?: ChatOptions): Promise<void> {\n // Initialize error logging before anything else\n initErrorLogger({ serviceName: \"whale-code\" });\n const cfg = loadConfig();\n if (cfg.user_id || cfg.email || cfg.store_id) {\n setErrorLoggerUser(cfg.user_id, cfg.email, cfg.store_id);\n }\n\n // Global handlers — catch anything that slips through\n process.on(\"uncaughtException\", (err) => {\n captureError({ error: err, severity: \"fatal\", tags: { source: \"uncaughtException\" } });\n });\n process.on(\"unhandledRejection\", (reason) => {\n const err = reason instanceof Error ? reason : new Error(String(reason));\n captureError({ error: err, severity: \"error\", tags: { source: \"unhandledRejection\" } });\n });\n\n // Auto-login if not authenticated — seamless browser OAuth\n const { isLoggedIn } = await import(\"./services/auth-service.js\");\n if (!isLoggedIn()) {\n const { signInWithBrowser } = await import(\"./services/browser-auth.js\");\n const brand = chalk.hex(\"#6366F1\");\n const dim = chalk.hex(\"#64748B\");\n const green = chalk.hex(\"#30D158\");\n\n console.log();\n console.log(` ${brand.bold(\"◆\")} Opening browser to sign in...`);\n\n const result = await signInWithBrowser(undefined, {\n onBrowserOpening: (url) => {\n console.log(` ${dim(url)}`);\n console.log();\n console.log(` ${dim(\"Waiting for authentication...\")}`);\n },\n });\n\n if (!result.success) {\n console.error(` ${chalk.red(\"✗\")} ${result.error}`);\n console.error(` ${dim(\"Run\")} whale login ${dim(\"to try again.\")}`);\n process.exit(1);\n }\n\n console.log(` ${green(\"✓\")} Signed in as ${result.config?.email || \"unknown\"}`);\n if (result.config?.store_name) {\n console.log(` ${dim(\"Store:\")} ${result.config.store_name}`);\n }\n console.log();\n }\n\n // Clear screen — fresh start\n process.stdout.write(\"\\x1b[2J\\x1b[3J\\x1b[H\");\n\n // Apply options before starting chat\n if (options?.model || options?.permissionMode) {\n const agentLoop = await import(\"./services/agent-loop.js\");\n if (options.model) agentLoop.setModel(options.model);\n if (options.permissionMode) {\n agentLoop.setPermissionMode(options.permissionMode as \"default\" | \"plan\" | \"yolo\");\n }\n }\n\n // Pre-load all modules before render\n const render = await getInkRender();\n const [{ ChatApp }, { ErrorBoundary }] = await Promise.all([\n import(\"./chat/ChatApp.js\"),\n import(\"./shared/ErrorBoundary.js\"),\n ]);\n\n const { waitUntilExit } = render(<ErrorBoundary><ChatApp /></ErrorBoundary>);\n await waitUntilExit();\n}\n\nexport async function renderSetup(): Promise<void> {\n const render = await getInkRender();\n const { SetupApp } = await import(\"./setup/SetupApp.js\");\n const { waitUntilExit } = render(<SetupApp />);\n await waitUntilExit();\n}\n\nexport async function renderStatus(): Promise<void> {\n const render = await getInkRender();\n const { StatusApp } = await import(\"./status/StatusApp.js\");\n const { waitUntilExit } = render(<StatusApp />);\n await waitUntilExit();\n}\n\nexport async function renderStores(): Promise<void> {\n const render = await getInkRender();\n const { StoreApp } = await import(\"./stores/StoreApp.js\");\n const { waitUntilExit } = render(<StoreApp />);\n await waitUntilExit();\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,14 +1,109 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { c as _c } from "react/compiler-runtime";
2
+ /**
3
+ * AgentSelector — polished agent picker with descriptions
4
+ */
5
+
6
+ import React from "react";
2
7
  import { Box, Text } from "ink";
3
8
  import SelectInput from "ink-select-input";
4
9
  import { colors, symbols } from "../shared/Theme.js";
5
- export function AgentSelector({ agents, onSelect }) {
6
- const items = agents.map((a) => ({
7
- label: `${a.name}`,
8
- value: a.id,
9
- }));
10
- return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: colors.muted, children: "Select an agent:" }), _jsx(Box, { height: 1 }), _jsx(SelectInput, { items: items, onSelect: (item) => onSelect(item.value), indicatorComponent: ({ isSelected }) => (_jsxs(Text, { color: isSelected ? colors.brand : colors.dim, children: [isSelected ? symbols.arrowRight : " ", " "] })), itemComponent: ({ isSelected, label }) => {
11
- const agent = agents.find((a) => a.name === label);
12
- return (_jsxs(Box, { children: [_jsx(Text, { color: isSelected ? colors.brand : colors.text, bold: isSelected, children: label }), agent && (_jsxs(Text, { color: colors.dim, children: [" (", agent.model, ")"] }))] }));
13
- } })] }));
10
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ export function AgentSelector(t0) {
12
+ const $ = _c(12);
13
+ const {
14
+ agents,
15
+ onSelect
16
+ } = t0;
17
+ let t1;
18
+ if ($[0] !== agents) {
19
+ t1 = agents.map(_temp);
20
+ $[0] = agents;
21
+ $[1] = t1;
22
+ } else {
23
+ t1 = $[1];
24
+ }
25
+ const items = t1;
26
+ let t2;
27
+ let t3;
28
+ if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
29
+ t2 = /*#__PURE__*/_jsx(Text, {
30
+ color: colors.muted,
31
+ children: "Select an agent:"
32
+ });
33
+ t3 = /*#__PURE__*/_jsx(Box, {
34
+ height: 1
35
+ });
36
+ $[2] = t2;
37
+ $[3] = t3;
38
+ } else {
39
+ t2 = $[2];
40
+ t3 = $[3];
41
+ }
42
+ let t4;
43
+ if ($[4] !== onSelect) {
44
+ t4 = item => onSelect(item.value);
45
+ $[4] = onSelect;
46
+ $[5] = t4;
47
+ } else {
48
+ t4 = $[5];
49
+ }
50
+ let t5;
51
+ if ($[6] !== agents) {
52
+ t5 = t6 => {
53
+ const {
54
+ isSelected: isSelected_0,
55
+ label
56
+ } = t6;
57
+ const agent = agents.find(a_0 => a_0.name === label);
58
+ return /*#__PURE__*/_jsxs(Box, {
59
+ children: [/*#__PURE__*/_jsx(Text, {
60
+ color: isSelected_0 ? colors.brand : colors.text,
61
+ bold: isSelected_0,
62
+ children: label
63
+ }), agent && /*#__PURE__*/_jsxs(Text, {
64
+ color: colors.dim,
65
+ children: [" (", agent.model, ")"]
66
+ })]
67
+ });
68
+ };
69
+ $[6] = agents;
70
+ $[7] = t5;
71
+ } else {
72
+ t5 = $[7];
73
+ }
74
+ let t6;
75
+ if ($[8] !== items || $[9] !== t4 || $[10] !== t5) {
76
+ t6 = /*#__PURE__*/_jsxs(Box, {
77
+ flexDirection: "column",
78
+ children: [t2, t3, /*#__PURE__*/_jsx(SelectInput, {
79
+ items: items,
80
+ onSelect: t4,
81
+ indicatorComponent: _temp2,
82
+ itemComponent: t5
83
+ })]
84
+ });
85
+ $[8] = items;
86
+ $[9] = t4;
87
+ $[10] = t5;
88
+ $[11] = t6;
89
+ } else {
90
+ t6 = $[11];
91
+ }
92
+ return t6;
93
+ }
94
+ function _temp2(t0) {
95
+ const {
96
+ isSelected
97
+ } = t0;
98
+ return /*#__PURE__*/_jsxs(Text, {
99
+ color: isSelected ? colors.brand : colors.dim,
100
+ children: [isSelected ? symbols.arrowRight : " ", " "]
101
+ });
102
+ }
103
+ function _temp(a) {
104
+ return {
105
+ label: `${a.name}`,
106
+ value: a.id
107
+ };
14
108
  }
109
+ //# sourceMappingURL=AgentSelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentSelector.js","names":["React","Box","Text","SelectInput","colors","symbols","jsx","_jsx","jsxs","_jsxs","AgentSelector","t0","$","_c","agents","onSelect","t1","map","_temp","items","t2","t3","Symbol","for","color","muted","children","height","t4","item","value","t5","t6","isSelected","isSelected_0","label","agent","find","a_0","a","name","brand","text","dim","model","flexDirection","indicatorComponent","_temp2","itemComponent","arrowRight","id"],"sources":["../../../src/cli/chat/AgentSelector.tsx"],"sourcesContent":["/**\n * AgentSelector — polished agent picker with descriptions\n */\n\nimport React from \"react\";\nimport { Box, Text } from \"ink\";\nimport SelectInput from \"ink-select-input\";\nimport { colors, symbols } from \"../shared/Theme.js\";\n\ninterface Agent {\n id: string;\n name: string;\n model: string;\n}\n\ninterface AgentSelectorProps {\n agents: Agent[];\n onSelect: (agentId: string) => void;\n}\n\nexport function AgentSelector({ agents, onSelect }: AgentSelectorProps) {\n const items = agents.map((a) => ({\n label: `${a.name}`,\n value: a.id,\n }));\n\n return (\n <Box flexDirection=\"column\">\n <Text color={colors.muted}>Select an agent:</Text>\n <Box height={1} />\n <SelectInput\n items={items}\n onSelect={(item) => onSelect(item.value)}\n indicatorComponent={({ isSelected }) => (\n <Text color={isSelected ? colors.brand : colors.dim}>\n {isSelected ? symbols.arrowRight : \" \"}{\" \"}\n </Text>\n )}\n itemComponent={({ isSelected, label }) => {\n const agent = agents.find((a) => a.name === label);\n return (\n <Box>\n <Text color={isSelected ? colors.brand : colors.text} bold={isSelected}>\n {label}\n </Text>\n {agent && (\n <Text color={colors.dim}> ({agent.model})</Text>\n )}\n </Box>\n );\n }}\n />\n </Box>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -6,4 +6,35 @@
6
6
  * thinking spinner, input) is in Ink's render loop.
7
7
  * This prevents screen overwriting and allows scrolling during generation.
8
8
  */
9
+ import { type NodeInfo } from "./NodeSelector.js";
10
+ import { type NodeStatus } from "./NodeManager.js";
11
+ import type { StoreInfo } from "../services/auth-service.js";
12
+ export type OverlayState = {
13
+ type: "none";
14
+ } | {
15
+ type: "storeSelect";
16
+ stores: StoreInfo[];
17
+ } | {
18
+ type: "nodeSelect";
19
+ nodes: NodeInfo[];
20
+ } | {
21
+ type: "sessionManager";
22
+ sessions: import("../services/session-persistence.js").SessionMeta[];
23
+ } | {
24
+ type: "memoryManager";
25
+ memories: string[];
26
+ } | {
27
+ type: "nodeManager";
28
+ status: NodeStatus;
29
+ } | {
30
+ type: "modelSelect";
31
+ } | {
32
+ type: "themeSelect";
33
+ } | {
34
+ type: "planApproval";
35
+ planContent: string;
36
+ planFile: string;
37
+ } | {
38
+ type: "rewind";
39
+ };
9
40
  export declare function ChatApp(): import("react/jsx-runtime").JSX.Element;