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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubagentPanel.js","names":["React","useState","useEffect","Box","Text","SpinnerSlot","shortenPath","getDisplayName","colors","jsx","_jsx","jsxs","_jsxs","useElapsed","startTime","$","_c","t0","Math","floor","Date","now","elapsed","setElapsed","t1","t2","id","setInterval","clearInterval","formatTokens","n","String","toFixed","round","toolContext","name","input","path","pattern","parts","filter","Boolean","join","query","cmd","command","length","slice","url","AGENT_TYPE_LABELS","explore","plan","research","MAX_VISIBLE_TOOLS","RunningAgentTree","agent","isLast","isOnly","label","type","desc","description","T0","childPrefix","isThinking","t3","t4","message","tools","turn","running","_temp","completed","_temp2","maxCompleted","hiddenCount","max","visibleCompleted","visibleTools","t5","every","_temp3","includes","t6","color","tertiary","children","t7","Symbol","for","brand","t8","text","bold","t9","t10","t11","map","tool","i","isLastTool","toolBranch","ctx","status","success","error","flexDirection","t_1","t","t_0","CompletedSubagentTree","agents","typeCounts","Map","a","set","get","Array","from","entries","_temp4","typeStr","branch","label_1","totalTokens","tokens","output","Fragment","toolCount","marginLeft","label_0","count","CompactAgentLine","prefix","done","_temp5","_temp6","_temp7","dim","SubagentPanel","hasRunning","size","hasCompleted","runningEntries","isOnlyOne","isParallel","i_0","id_0","agent_0"],"sources":["../../../src/cli/chat/SubagentPanel.tsx"],"sourcesContent":["/**\n * SubagentPanel — Claude Code-style tree rendering for subagents\n *\n * Running agents show spinner + nested tool tree.\n * Completed agents show green dot + stats summary.\n * Uses ├──, └──, │ tree characters matching Claude Code's style.\n * Text-first rendering — minimal Box usage for reliable terminal output.\n */\n\nimport React, { useState, useEffect } from \"react\";\nimport { Box, Text } from \"ink\";\nimport { SpinnerSlot } from \"../shared/SpinnerSlot.js\";\nimport { shortenPath, getDisplayName } from \"./ToolIndicator.js\";\nimport { colors } from \"../shared/Theme.js\";\n\nfunction useElapsed(startTime: number): number {\n const [elapsed, setElapsed] = useState(() => Math.floor((Date.now() - startTime) / 1000));\n useEffect(() => {\n const id = setInterval(() => setElapsed(Math.floor((Date.now() - startTime) / 1000)), 1000);\n return () => clearInterval(id);\n }, [startTime]);\n return elapsed;\n}\n\n// ============================================================================\n// TYPES\n// ============================================================================\n\nexport interface SubagentInnerTool {\n name: string;\n status: \"running\" | \"success\" | \"error\";\n input?: Record<string, unknown>;\n durationMs?: number;\n}\n\nexport interface SubagentActivityState {\n type: string;\n model: string;\n description: string;\n turn: number;\n message: string;\n tools: SubagentInnerTool[];\n startTime: number;\n}\n\nexport interface CompletedSubagentInfo {\n id: string;\n type: string;\n description: string;\n toolCount: number;\n tokens: { input: number; output: number };\n durationMs: number;\n success: boolean;\n}\n\ninterface SubagentPanelProps {\n running: Map<string, SubagentActivityState>;\n completed: CompletedSubagentInfo[];\n}\n\n// ============================================================================\n// HELPERS\n// ============================================================================\n\nfunction formatTokens(n: number): string {\n if (n < 1000) return String(n);\n if (n < 10000) return `${(n / 1000).toFixed(1)}k`;\n return `${Math.round(n / 1000)}k`;\n}\n\nfunction toolContext(name: string, input?: Record<string, unknown>): string {\n if (!input) return \"\";\n if (name === \"read_file\" || name === \"write_file\" || name === \"edit_file\" || name === \"list_directory\") {\n return input.path ? shortenPath(String(input.path)) : \"\";\n }\n if (name === \"glob\") return input.pattern ? String(input.pattern) : \"\";\n if (name === \"grep\") {\n const parts = [input.pattern, input.path ? shortenPath(String(input.path)) : null].filter(Boolean);\n return parts.join(\" in \");\n }\n if (name === \"search_files\" || name === \"search_content\") {\n return [input.pattern || input.query, input.path ? shortenPath(String(input.path)) : null].filter(Boolean).join(\" in \");\n }\n if (name === \"run_command\") {\n const cmd = String(input.command || \"\");\n return cmd.length > 40 ? cmd.slice(0, 37) + \"...\" : cmd;\n }\n if (name === \"web_fetch\") return input.url ? String(input.url).slice(0, 40) : \"\";\n return \"\";\n}\n\nconst AGENT_TYPE_LABELS: Record<string, string> = {\n explore: \"Explore\",\n plan: \"Plan\",\n \"general-purpose\": \"Agent\",\n research: \"Research\",\n};\n\nconst MAX_VISIBLE_TOOLS = 4;\n\n// ============================================================================\n// RUNNING AGENT TREE\n// ============================================================================\n\nfunction RunningAgentTree({ agent, isLast, isOnly }: {\n agent: SubagentActivityState;\n isLast: boolean;\n isOnly: boolean;\n}) {\n const label = AGENT_TYPE_LABELS[agent.type] || agent.type;\n const desc = agent.description || \"\";\n const elapsed = useElapsed(agent.startTime);\n\n const running = agent.tools.filter(t => t.status === \"running\");\n const completed = agent.tools.filter(t => t.status !== \"running\");\n const maxCompleted = MAX_VISIBLE_TOOLS - running.length;\n const hiddenCount = Math.max(0, completed.length - maxCompleted);\n const visibleCompleted = completed.slice(hiddenCount);\n const visibleTools = [...visibleCompleted, ...running];\n\n const isThinking = agent.tools.length === 0 || (agent.tools.every(t => t.status !== \"running\") && agent.message.includes(\"calling API\"));\n\n const childPrefix = isOnly ? \" \" : (isLast ? \" \" : \"│ \");\n\n return (\n <Box flexDirection=\"column\">\n {/* Agent header */}\n <Text>\n {!isOnly ? <Text color={colors.tertiary}>{isLast ? \"└── \" : \"├── \"}</Text> : null}\n <Text color={colors.brand}><SpinnerSlot /></Text>\n <Text color={colors.text} bold> {label}</Text>\n {desc ? <Text color={colors.tertiary}> {desc}</Text> : null}\n {agent.turn > 0 ? <Text color={colors.tertiary}> · Turn {agent.turn}</Text> : null}\n {elapsed > 0 ? <Text color={colors.tertiary}> · {elapsed}s</Text> : null}\n </Text>\n\n {hiddenCount > 0 && (\n <Text color={colors.tertiary}>{childPrefix}│ ... +{hiddenCount} earlier</Text>\n )}\n\n {visibleTools.map((tool, i) => {\n const isLastTool = i === visibleTools.length - 1 && !isThinking;\n const toolBranch = isLastTool ? \"└── \" : \"├── \";\n const ctx = toolContext(tool.name, tool.input);\n\n return (\n <Text key={`${tool.name}-${i}`}>\n <Text color={colors.tertiary}>{childPrefix}{toolBranch}</Text>\n {tool.status === \"running\" ? (\n <Text color={colors.brand}><SpinnerSlot /></Text>\n ) : tool.status === \"success\" ? (\n <Text color={colors.success}>✓</Text>\n ) : (\n <Text color={colors.error}>✕</Text>\n )}\n <Text bold> {getDisplayName(tool.name)}</Text>\n {ctx ? <Text color={colors.tertiary}> {ctx}</Text> : null}\n </Text>\n );\n })}\n\n {isThinking && (\n <Text>\n <Text color={colors.tertiary}>{childPrefix}└── </Text>\n <Text color={colors.brand}><SpinnerSlot /></Text>\n <Text color={colors.tertiary}> thinking...</Text>\n </Text>\n )}\n </Box>\n );\n}\n\n// ============================================================================\n// COMPLETED SUMMARY TREE\n// ============================================================================\n\nexport function CompletedSubagentTree({ agents }: { agents: CompletedSubagentInfo[] }) {\n if (agents.length === 0) return null;\n\n const typeCounts = new Map<string, number>();\n for (const a of agents) {\n const label = AGENT_TYPE_LABELS[a.type] || a.type;\n typeCounts.set(label, (typeCounts.get(label) || 0) + 1);\n }\n const typeStr = Array.from(typeCounts.entries())\n .map(([label, count]) => `${count} ${label} agent${count > 1 ? \"s\" : \"\"}`)\n .join(\", \");\n\n return (\n <Box flexDirection=\"column\" marginLeft={2}>\n <Text>\n <Text color={colors.success}>●</Text>\n <Text color={colors.text} bold> {typeStr} finished</Text>\n </Text>\n\n {agents.map((agent, i) => {\n const isLast = i === agents.length - 1;\n const branch = isLast ? \"└── \" : \"├── \";\n const childPrefix = isLast ? \" \" : \"│ \";\n const label = AGENT_TYPE_LABELS[agent.type] || agent.type;\n const totalTokens = agent.tokens.input + agent.tokens.output;\n\n return (\n <React.Fragment key={agent.id}>\n <Text>\n <Text color={colors.tertiary}>{branch}</Text>\n <Text color={colors.text}>{label} {agent.description}</Text>\n <Text color={colors.tertiary}> · {agent.toolCount} tool use{agent.toolCount !== 1 ? \"s\" : \"\"} · {formatTokens(totalTokens)} tokens</Text>\n </Text>\n <Text>\n <Text color={colors.tertiary}>{childPrefix}</Text>\n {agent.success ? (\n <Text color={colors.success}>Done</Text>\n ) : (\n <Text color={colors.error}>Failed</Text>\n )}\n </Text>\n </React.Fragment>\n );\n })}\n </Box>\n );\n}\n\n// ============================================================================\n// MAIN PANEL\n// ============================================================================\n\n/**\n * Compact single-line summary for parallel agents — keeps dynamic area height stable.\n * Only shown when 2+ agents run simultaneously.\n */\nfunction CompactAgentLine({ agent, prefix }: { agent: SubagentActivityState; prefix: string }) {\n const label = AGENT_TYPE_LABELS[agent.type] || agent.type;\n const elapsed = useElapsed(agent.startTime);\n const running = agent.tools.filter(t => t.status === \"running\");\n const done = agent.tools.filter(t => t.status !== \"running\").length;\n const status = running.length > 0\n ? running.map(t => getDisplayName(t.name)).join(\", \")\n : \"thinking…\";\n\n return (\n <Text>\n <Text color={colors.tertiary}>{prefix}</Text>\n <Text color={colors.brand}><SpinnerSlot /></Text>\n <Text color={colors.text} bold> {label}</Text>\n {agent.description ? <Text color={colors.tertiary}> {agent.description}</Text> : null}\n <Text color={colors.dim}> — {status}</Text>\n {done > 0 ? <Text color={colors.tertiary}> · {done} done</Text> : null}\n {elapsed > 0 ? <Text color={colors.tertiary}> · {elapsed}s</Text> : null}\n </Text>\n );\n}\n\nexport function SubagentPanel({ running, completed }: SubagentPanelProps) {\n const hasRunning = running.size > 0;\n const hasCompleted = completed.length > 0;\n\n if (!hasRunning && !hasCompleted) return null;\n\n const runningEntries = Array.from(running.entries());\n const isOnlyOne = runningEntries.length === 1 && !hasCompleted;\n\n // Parallel mode: compact single-line per agent to keep height stable\n const isParallel = runningEntries.length > 1;\n\n return (\n <Box flexDirection=\"column\">\n {hasRunning && isParallel && runningEntries.map(([id, agent], i) => (\n <CompactAgentLine\n key={id}\n agent={agent}\n prefix={i === runningEntries.length - 1 && !hasCompleted ? \"└── \" : \"├── \"}\n />\n ))}\n\n {hasRunning && !isParallel && runningEntries.map(([id, agent], i) => (\n <RunningAgentTree\n key={id}\n agent={agent}\n isLast={i === runningEntries.length - 1}\n isOnly={isOnlyOne}\n />\n ))}\n\n {hasCompleted && <CompletedSubagentTree agents={completed} />}\n </Box>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -12,6 +12,7 @@ export interface TeamInfo {
12
12
  teammates: Map<string, {
13
13
  name: string;
14
14
  status: string;
15
+ startTime: number;
15
16
  }>;
16
17
  }
17
18
  interface TeamPanelProps {
@@ -1,42 +1,242 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { c as _c } from "react/compiler-runtime";
2
2
  /**
3
3
  * TeamPanel — Claude Code-style tree rendering for team execution
4
4
  *
5
5
  * Uses ├──, └──, │ tree chars. Text-first rendering.
6
6
  * Shows green ● header with task progress and per-teammate status.
7
7
  */
8
- import React from "react";
8
+
9
+ import React, { useState, useEffect } from "react";
9
10
  import { Box, Text } from "ink";
10
- import Spinner from "ink-spinner";
11
+ import { SpinnerSlot } from "../shared/SpinnerSlot.js";
11
12
  import { colors } from "../shared/Theme.js";
13
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
+ function useElapsed(startTime) {
15
+ const $ = _c(5);
16
+ let t0;
17
+ if ($[0] !== startTime) {
18
+ t0 = () => Math.floor((Date.now() - startTime) / 1000);
19
+ $[0] = startTime;
20
+ $[1] = t0;
21
+ } else {
22
+ t0 = $[1];
23
+ }
24
+ const [elapsed, setElapsed] = useState(t0);
25
+ let t1;
26
+ let t2;
27
+ if ($[2] !== startTime) {
28
+ t1 = () => {
29
+ const id = setInterval(() => setElapsed(Math.floor((Date.now() - startTime) / 1000)), 1000);
30
+ return () => clearInterval(id);
31
+ };
32
+ t2 = [startTime];
33
+ $[2] = startTime;
34
+ $[3] = t1;
35
+ $[4] = t2;
36
+ } else {
37
+ t1 = $[3];
38
+ t2 = $[4];
39
+ }
40
+ useEffect(t1, t2);
41
+ return elapsed;
42
+ }
12
43
  // Custom comparator — prevent re-render when Map contents haven't actually changed
13
44
  function teamPropsEqual(prev, next) {
14
- if (prev.team.name !== next.team.name)
15
- return false;
16
- if (prev.team.tasksCompleted !== next.team.tasksCompleted)
17
- return false;
18
- if (prev.team.tasksTotal !== next.team.tasksTotal)
19
- return false;
20
- if (prev.team.teammates.size !== next.team.teammates.size)
21
- return false;
22
- for (const [id, mate] of prev.team.teammates) {
23
- const nextMate = next.team.teammates.get(id);
24
- if (!nextMate)
25
- return false;
26
- if (mate.name !== nextMate.name || mate.status !== nextMate.status)
27
- return false;
28
- }
29
- return true;
45
+ if (prev.team.name !== next.team.name) return false;
46
+ if (prev.team.tasksCompleted !== next.team.tasksCompleted) return false;
47
+ if (prev.team.tasksTotal !== next.team.tasksTotal) return false;
48
+ if (prev.team.teammates.size !== next.team.teammates.size) return false;
49
+ for (const [id, mate] of prev.team.teammates) {
50
+ const nextMate = next.team.teammates.get(id);
51
+ if (!nextMate) return false;
52
+ if (mate.name !== nextMate.name || mate.status !== nextMate.status) return false;
53
+ }
54
+ return true;
55
+ }
56
+ function TeammateRow(t0) {
57
+ const $ = _c(21);
58
+ const {
59
+ id,
60
+ mate,
61
+ isLast
62
+ } = t0;
63
+ const branch = isLast ? "\u2514\u2500\u2500 " : "\u251C\u2500\u2500 ";
64
+ const isDone = mate.status === "done";
65
+ const isFailed = mate.status === "failed";
66
+ const isWorking = !isDone && !isFailed;
67
+ const color = isDone ? colors.success : isFailed ? colors.error : undefined;
68
+ const elapsed = useElapsed(mate.startTime);
69
+ let t1;
70
+ if ($[0] !== branch) {
71
+ t1 = /*#__PURE__*/_jsx(Text, {
72
+ color: colors.tertiary,
73
+ children: branch
74
+ });
75
+ $[0] = branch;
76
+ $[1] = t1;
77
+ } else {
78
+ t1 = $[1];
79
+ }
80
+ let t2;
81
+ if ($[2] !== isDone || $[3] !== isWorking) {
82
+ t2 = isWorking ? /*#__PURE__*/_jsx(Text, {
83
+ color: colors.brand,
84
+ children: /*#__PURE__*/_jsx(SpinnerSlot, {})
85
+ }) : isDone ? /*#__PURE__*/_jsx(Text, {
86
+ color: colors.success,
87
+ children: "\u2713"
88
+ }) : /*#__PURE__*/_jsx(Text, {
89
+ color: colors.error,
90
+ children: "\u2715"
91
+ });
92
+ $[2] = isDone;
93
+ $[3] = isWorking;
94
+ $[4] = t2;
95
+ } else {
96
+ t2 = $[4];
97
+ }
98
+ const t3 = color || colors.dim;
99
+ const t4 = mate.name || mate.status;
100
+ let t5;
101
+ if ($[5] !== t3 || $[6] !== t4) {
102
+ t5 = /*#__PURE__*/_jsxs(Text, {
103
+ color: t3,
104
+ children: [" ", t4]
105
+ });
106
+ $[5] = t3;
107
+ $[6] = t4;
108
+ $[7] = t5;
109
+ } else {
110
+ t5 = $[7];
111
+ }
112
+ let t6;
113
+ if ($[8] !== mate.name || $[9] !== mate.status) {
114
+ t6 = mate.name && mate.status !== mate.name && mate.status !== "done" && mate.status !== "failed" ? /*#__PURE__*/_jsxs(Text, {
115
+ color: colors.tertiary,
116
+ children: [" \u2014 ", mate.status]
117
+ }) : null;
118
+ $[8] = mate.name;
119
+ $[9] = mate.status;
120
+ $[10] = t6;
121
+ } else {
122
+ t6 = $[10];
123
+ }
124
+ let t7;
125
+ if ($[11] !== elapsed || $[12] !== isWorking) {
126
+ t7 = isWorking && elapsed > 0 ? /*#__PURE__*/_jsxs(Text, {
127
+ color: colors.tertiary,
128
+ children: [" \xB7 ", elapsed, "s"]
129
+ }) : null;
130
+ $[11] = elapsed;
131
+ $[12] = isWorking;
132
+ $[13] = t7;
133
+ } else {
134
+ t7 = $[13];
135
+ }
136
+ let t8;
137
+ if ($[14] !== id || $[15] !== t1 || $[16] !== t2 || $[17] !== t5 || $[18] !== t6 || $[19] !== t7) {
138
+ t8 = /*#__PURE__*/_jsxs(Text, {
139
+ children: [t1, t2, t5, t6, t7]
140
+ }, id);
141
+ $[14] = id;
142
+ $[15] = t1;
143
+ $[16] = t2;
144
+ $[17] = t5;
145
+ $[18] = t6;
146
+ $[19] = t7;
147
+ $[20] = t8;
148
+ } else {
149
+ t8 = $[20];
150
+ }
151
+ return t8;
30
152
  }
31
- export const TeamPanel = React.memo(function TeamPanel({ team }) {
32
- const teammates = Array.from(team.teammates.entries());
33
- return (_jsxs(Box, { flexDirection: "column", marginLeft: 2, children: [_jsxs(Text, { children: [_jsx(Text, { color: colors.success, children: "\u25CF" }), _jsxs(Text, { color: colors.text, bold: true, children: [" Team: ", team.name] }), _jsxs(Text, { color: colors.tertiary, children: [" \u00B7 ", team.tasksCompleted, "/", team.tasksTotal, " tasks"] })] }), teammates.map(([id, mate], i) => {
34
- const isLast = i === teammates.length - 1;
35
- const branch = isLast ? "└── " : "├── ";
36
- const isDone = mate.status === "done";
37
- const isFailed = mate.status === "failed";
38
- const isWorking = !isDone && !isFailed;
39
- const color = isDone ? colors.success : isFailed ? colors.error : undefined;
40
- return (_jsxs(Text, { children: [_jsx(Text, { color: colors.tertiary, children: branch }), isWorking ? (_jsx(Text, { color: colors.brand, children: _jsx(Spinner, { type: "dots" }) })) : isDone ? (_jsx(Text, { color: colors.success, children: "\u2713" })) : (_jsx(Text, { color: colors.error, children: "\u2715" })), _jsxs(Text, { color: color || colors.dim, children: [" ", mate.name || mate.status] }), mate.name && mate.status !== mate.name && mate.status !== "done" && mate.status !== "failed" ? (_jsxs(Text, { color: colors.tertiary, children: [" \u2014 ", mate.status] })) : null] }, id));
41
- })] }));
153
+ export const TeamPanel = /*#__PURE__*/React.memo(function TeamPanel(t0) {
154
+ const $ = _c(16);
155
+ const {
156
+ team
157
+ } = t0;
158
+ let t1;
159
+ if ($[0] !== team.teammates) {
160
+ t1 = Array.from(team.teammates.entries());
161
+ $[0] = team.teammates;
162
+ $[1] = t1;
163
+ } else {
164
+ t1 = $[1];
165
+ }
166
+ const teammates = t1;
167
+ let t2;
168
+ if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
169
+ t2 = /*#__PURE__*/_jsx(Text, {
170
+ color: colors.success,
171
+ children: "\u25CF"
172
+ });
173
+ $[2] = t2;
174
+ } else {
175
+ t2 = $[2];
176
+ }
177
+ let t3;
178
+ if ($[3] !== team.name) {
179
+ t3 = /*#__PURE__*/_jsxs(Text, {
180
+ color: colors.text,
181
+ bold: true,
182
+ children: [" Team: ", team.name]
183
+ });
184
+ $[3] = team.name;
185
+ $[4] = t3;
186
+ } else {
187
+ t3 = $[4];
188
+ }
189
+ let t4;
190
+ if ($[5] !== team.tasksCompleted || $[6] !== team.tasksTotal) {
191
+ t4 = /*#__PURE__*/_jsxs(Text, {
192
+ color: colors.tertiary,
193
+ children: [" \xB7 ", team.tasksCompleted, "/", team.tasksTotal, " tasks"]
194
+ });
195
+ $[5] = team.tasksCompleted;
196
+ $[6] = team.tasksTotal;
197
+ $[7] = t4;
198
+ } else {
199
+ t4 = $[7];
200
+ }
201
+ let t5;
202
+ if ($[8] !== t3 || $[9] !== t4) {
203
+ t5 = /*#__PURE__*/_jsxs(Text, {
204
+ children: [t2, t3, t4]
205
+ });
206
+ $[8] = t3;
207
+ $[9] = t4;
208
+ $[10] = t5;
209
+ } else {
210
+ t5 = $[10];
211
+ }
212
+ let t6;
213
+ if ($[11] !== teammates) {
214
+ t6 = teammates.map((t7, i) => {
215
+ const [id, mate] = t7;
216
+ return /*#__PURE__*/_jsx(TeammateRow, {
217
+ id: id,
218
+ mate: mate,
219
+ isLast: i === teammates.length - 1
220
+ }, id);
221
+ });
222
+ $[11] = teammates;
223
+ $[12] = t6;
224
+ } else {
225
+ t6 = $[12];
226
+ }
227
+ let t7;
228
+ if ($[13] !== t5 || $[14] !== t6) {
229
+ t7 = /*#__PURE__*/_jsxs(Box, {
230
+ flexDirection: "column",
231
+ marginLeft: 2,
232
+ children: [t5, t6]
233
+ });
234
+ $[13] = t5;
235
+ $[14] = t6;
236
+ $[15] = t7;
237
+ } else {
238
+ t7 = $[15];
239
+ }
240
+ return t7;
42
241
  }, teamPropsEqual);
242
+ //# sourceMappingURL=TeamPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TeamPanel.js","names":["React","useState","useEffect","Box","Text","SpinnerSlot","colors","jsx","_jsx","jsxs","_jsxs","useElapsed","startTime","$","_c","t0","Math","floor","Date","now","elapsed","setElapsed","t1","t2","id","setInterval","clearInterval","teamPropsEqual","prev","next","team","name","tasksCompleted","tasksTotal","teammates","size","mate","nextMate","get","status","TeammateRow","isLast","branch","isDone","isFailed","isWorking","color","success","error","undefined","tertiary","children","brand","t3","dim","t4","t5","t6","t7","t8","TeamPanel","memo","Array","from","entries","Symbol","for","text","bold","map","i","length","flexDirection","marginLeft"],"sources":["../../../src/cli/chat/TeamPanel.tsx"],"sourcesContent":["/**\n * TeamPanel — Claude Code-style tree rendering for team execution\n *\n * Uses ├──, └──, │ tree chars. Text-first rendering.\n * Shows green ● header with task progress and per-teammate status.\n */\n\nimport React, { useState, useEffect } from \"react\";\nimport { Box, Text } from \"ink\";\nimport { SpinnerSlot } from \"../shared/SpinnerSlot.js\";\nimport { colors } from \"../shared/Theme.js\";\n\nfunction useElapsed(startTime: number): number {\n const [elapsed, setElapsed] = useState(() => Math.floor((Date.now() - startTime) / 1000));\n useEffect(() => {\n const id = setInterval(() => setElapsed(Math.floor((Date.now() - startTime) / 1000)), 1000);\n return () => clearInterval(id);\n }, [startTime]);\n return elapsed;\n}\n\nexport interface TeamInfo {\n name: string;\n tasksCompleted: number;\n tasksTotal: number;\n teammates: Map<string, { name: string; status: string; startTime: number }>;\n}\n\ninterface TeamPanelProps {\n team: TeamInfo;\n}\n\n// Custom comparator — prevent re-render when Map contents haven't actually changed\nfunction teamPropsEqual(prev: TeamPanelProps, next: TeamPanelProps): boolean {\n if (prev.team.name !== next.team.name) return false;\n if (prev.team.tasksCompleted !== next.team.tasksCompleted) return false;\n if (prev.team.tasksTotal !== next.team.tasksTotal) return false;\n if (prev.team.teammates.size !== next.team.teammates.size) return false;\n\n for (const [id, mate] of prev.team.teammates) {\n const nextMate = next.team.teammates.get(id);\n if (!nextMate) return false;\n if (mate.name !== nextMate.name || mate.status !== nextMate.status) return false;\n }\n return true;\n}\n\nfunction TeammateRow({ id, mate, isLast }: {\n id: string;\n mate: { name: string; status: string; startTime: number };\n isLast: boolean;\n}) {\n const branch = isLast ? \"└── \" : \"├── \";\n const isDone = mate.status === \"done\";\n const isFailed = mate.status === \"failed\";\n const isWorking = !isDone && !isFailed;\n const color = isDone ? colors.success : isFailed ? colors.error : undefined;\n const elapsed = useElapsed(mate.startTime);\n\n return (\n <Text key={id}>\n <Text color={colors.tertiary}>{branch}</Text>\n {isWorking ? (\n <Text color={colors.brand}><SpinnerSlot /></Text>\n ) : isDone ? (\n <Text color={colors.success}>✓</Text>\n ) : (\n <Text color={colors.error}>✕</Text>\n )}\n <Text color={color || colors.dim}> {mate.name || mate.status}</Text>\n {mate.name && mate.status !== mate.name && mate.status !== \"done\" && mate.status !== \"failed\" ? (\n <Text color={colors.tertiary}> — {mate.status}</Text>\n ) : null}\n {isWorking && elapsed > 0 ? (\n <Text color={colors.tertiary}> · {elapsed}s</Text>\n ) : null}\n </Text>\n );\n}\n\nexport const TeamPanel = React.memo(function TeamPanel({ team }: TeamPanelProps) {\n const teammates = Array.from(team.teammates.entries());\n\n return (\n <Box flexDirection=\"column\" marginLeft={2}>\n <Text>\n <Text color={colors.success}>●</Text>\n <Text color={colors.text} bold> Team: {team.name}</Text>\n <Text color={colors.tertiary}> · {team.tasksCompleted}/{team.tasksTotal} tasks</Text>\n </Text>\n\n {teammates.map(([id, mate], i) => (\n <TeammateRow key={id} id={id} mate={mate} isLast={i === teammates.length - 1} />\n ))}\n </Box>\n );\n}, teamPropsEqual);\n"],"mappings":"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","ignoreList":[]}
@@ -1,29 +1,89 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ /**
2
+ * ThemeSelector — inline theme picker for chat
3
+ *
4
+ * Renders a SelectInput with available color themes.
5
+ * Shows colored preview dots (brand/success/error/purple) for each theme.
6
+ * Current theme marked with dot. Esc to cancel.
7
+ */
8
+
9
+ import React from "react"; // eslint-disable-line @typescript-eslint/no-unused-vars
2
10
  import { Box, Text, useInput } from "ink";
3
11
  import SelectInput from "ink-select-input";
4
12
  import { colors, symbols } from "../shared/Theme.js";
5
13
  import { getThemePresets, getCurrentThemeId } from "../shared/theme-manager.js";
6
- export function ThemeSelector({ onSelect, onCancel }) {
7
- useInput((_input, key) => {
8
- if (key.escape)
9
- onCancel();
10
- });
11
- const presets = getThemePresets();
12
- const currentId = getCurrentThemeId();
13
- const items = presets.map((p) => ({
14
- label: p.label,
15
- value: p.id,
16
- }));
17
- const handleSelect = (item) => {
18
- const preset = presets.find((p) => p.id === item.value);
19
- if (preset)
20
- onSelect(preset);
21
- };
22
- const initialIdx = Math.max(0, items.findIndex((i) => i.value === currentId));
23
- return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: colors.secondary, children: " Select theme:" }), _jsx(Box, { height: 1 }), _jsx(SelectInput, { items: items, initialIndex: initialIdx, onSelect: handleSelect, indicatorComponent: ({ isSelected }) => (_jsxs(Text, { color: isSelected ? colors.brand : colors.quaternary, children: [isSelected ? symbols.arrowRight : " ", " "] })), itemComponent: ({ isSelected, label, value }) => {
24
- const preset = presets.find((p) => p.id === value);
25
- const isCurrent = value === currentId;
26
- const chrome = preset?.chrome;
27
- return (_jsxs(Box, { children: [_jsx(Text, { color: isSelected ? colors.brand : colors.text, bold: isSelected, children: label }), chrome && (_jsxs(Text, { children: [" ", _jsx(Text, { color: chrome.brand, children: "\u25CF" }), _jsx(Text, { color: chrome.success, children: "\u25CF" }), _jsx(Text, { color: chrome.error, children: "\u25CF" }), _jsx(Text, { color: chrome.purple, children: "\u25CF" })] })), isCurrent && _jsxs(Text, { color: colors.success, children: [" ", symbols.dot, " current"] })] }));
28
- } }), _jsx(Text, { color: colors.quaternary, children: " esc to cancel" })] }));
14
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
15
+ export function ThemeSelector({
16
+ onSelect,
17
+ onCancel
18
+ }) {
19
+ useInput((_input, key) => {
20
+ if (key.escape) onCancel();
21
+ });
22
+ const presets = getThemePresets();
23
+ const currentId = getCurrentThemeId();
24
+ const items = presets.map(p => ({
25
+ label: p.label,
26
+ value: p.id
27
+ }));
28
+ const handleSelect = item => {
29
+ const preset = presets.find(p_0 => p_0.id === item.value);
30
+ if (preset) onSelect(preset);
31
+ };
32
+ const initialIdx = Math.max(0, items.findIndex(i => i.value === currentId));
33
+ return /*#__PURE__*/_jsxs(Box, {
34
+ flexDirection: "column",
35
+ children: [/*#__PURE__*/_jsx(Text, {
36
+ color: colors.secondary,
37
+ children: " Select theme:"
38
+ }), /*#__PURE__*/_jsx(Box, {
39
+ height: 1
40
+ }), /*#__PURE__*/_jsx(SelectInput, {
41
+ items: items,
42
+ initialIndex: initialIdx,
43
+ onSelect: handleSelect,
44
+ indicatorComponent: ({
45
+ isSelected
46
+ }) => /*#__PURE__*/_jsxs(Text, {
47
+ color: isSelected ? colors.brand : colors.quaternary,
48
+ children: [isSelected ? symbols.arrowRight : " ", " "]
49
+ }),
50
+ itemComponent: ({
51
+ isSelected: isSelected_0,
52
+ label,
53
+ value
54
+ }) => {
55
+ const preset_0 = presets.find(p_1 => p_1.id === value);
56
+ const isCurrent = value === currentId;
57
+ const chrome = preset_0?.chrome;
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
+ }), chrome && /*#__PURE__*/_jsxs(Text, {
64
+ children: [" ", /*#__PURE__*/_jsx(Text, {
65
+ color: chrome.brand,
66
+ children: "\u25CF"
67
+ }), /*#__PURE__*/_jsx(Text, {
68
+ color: chrome.success,
69
+ children: "\u25CF"
70
+ }), /*#__PURE__*/_jsx(Text, {
71
+ color: chrome.error,
72
+ children: "\u25CF"
73
+ }), /*#__PURE__*/_jsx(Text, {
74
+ color: chrome.purple,
75
+ children: "\u25CF"
76
+ })]
77
+ }), isCurrent && /*#__PURE__*/_jsxs(Text, {
78
+ color: colors.success,
79
+ children: [" ", symbols.dot, " current"]
80
+ })]
81
+ });
82
+ }
83
+ }), /*#__PURE__*/_jsx(Text, {
84
+ color: colors.quaternary,
85
+ children: " esc to cancel"
86
+ })]
87
+ });
29
88
  }
89
+ //# sourceMappingURL=ThemeSelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeSelector.js","names":["React","Box","Text","useInput","SelectInput","colors","symbols","getThemePresets","getCurrentThemeId","jsx","_jsx","jsxs","_jsxs","ThemeSelector","onSelect","onCancel","_input","key","escape","presets","currentId","items","map","p","label","value","id","handleSelect","item","preset","find","initialIdx","Math","max","findIndex","i","flexDirection","children","color","secondary","height","initialIndex","indicatorComponent","isSelected","brand","quaternary","arrowRight","itemComponent","isCurrent","chrome","text","bold","success","error","purple","dot"],"sources":["../../../src/cli/chat/ThemeSelector.tsx"],"sourcesContent":["/**\n * ThemeSelector — inline theme picker for chat\n *\n * Renders a SelectInput with available color themes.\n * Shows colored preview dots (brand/success/error/purple) for each theme.\n * Current theme marked with dot. Esc to cancel.\n */\n\nimport React from \"react\"; // eslint-disable-line @typescript-eslint/no-unused-vars\nimport { Box, Text, useInput } from \"ink\";\nimport SelectInput from \"ink-select-input\";\nimport { colors, symbols } from \"../shared/Theme.js\";\nimport { getThemePresets, getCurrentThemeId, type ThemePreset } from \"../shared/theme-manager.js\";\n\ninterface ThemeSelectorProps {\n onSelect: (preset: ThemePreset) => void;\n onCancel: () => void;\n}\n\nexport function ThemeSelector({ onSelect, onCancel }: ThemeSelectorProps) {\n useInput((_input, key) => {\n if (key.escape) onCancel();\n });\n\n const presets = getThemePresets();\n const currentId = getCurrentThemeId();\n\n const items = presets.map((p) => ({\n label: p.label,\n value: p.id,\n }));\n\n const handleSelect = (item: { label: string; value: string }) => {\n const preset = presets.find((p) => p.id === item.value);\n if (preset) onSelect(preset);\n };\n\n const initialIdx = Math.max(0, items.findIndex((i) => i.value === currentId));\n\n return (\n <Box flexDirection=\"column\">\n <Text color={colors.secondary}> Select theme:</Text>\n <Box height={1} />\n <SelectInput\n items={items}\n initialIndex={initialIdx}\n onSelect={handleSelect}\n indicatorComponent={({ isSelected }: { isSelected?: boolean }) => (\n <Text color={isSelected ? colors.brand : colors.quaternary}>\n {isSelected ? symbols.arrowRight : \" \"}{\" \"}\n </Text>\n )}\n itemComponent={({ isSelected, label, value }: { isSelected?: boolean; label: string; value?: string }) => {\n const preset = presets.find((p) => p.id === value);\n const isCurrent = value === currentId;\n const chrome = preset?.chrome;\n return (\n <Box>\n <Text color={isSelected ? colors.brand : colors.text} bold={isSelected}>\n {label}\n </Text>\n {chrome && (\n <Text>\n {\" \"}\n <Text color={chrome.brand}>●</Text>\n <Text color={chrome.success}>●</Text>\n <Text color={chrome.error}>●</Text>\n <Text color={chrome.purple}>●</Text>\n </Text>\n )}\n {isCurrent && <Text color={colors.success}> {symbols.dot} current</Text>}\n </Box>\n );\n }}\n />\n <Text color={colors.quaternary}> esc to cancel</Text>\n </Box>\n );\n}\n"],"mappings":"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","ignoreList":[]}