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":"permission-modes.js","names":["loadConfig","updateConfig","activePermissionMode","cfg","permission_mode","includes","PLAN_MODE_TOOLS","Set","setPermissionMode","mode","success","message","getPermissionMode","isToolAllowedByPermission","toolName","has"],"sources":["../../../src/cli/services/permission-modes.ts"],"sourcesContent":["/**\n * Permission Modes — control tool access levels\n *\n * Extracted from agent-loop.ts for single-responsibility.\n * All consumers should import from agent-loop.ts (re-export facade).\n */\n\nimport { loadConfig, updateConfig } from \"./config-store.js\";\n\nexport type PermissionMode = \"default\" | \"plan\" | \"yolo\";\n\n/** CLI-only: current permission mode */\nlet activePermissionMode: PermissionMode = \"default\";\n\n// Load persisted permission mode on import\ntry {\n const cfg = loadConfig();\n if (cfg.permission_mode && [\"default\", \"plan\", \"yolo\"].includes(cfg.permission_mode)) {\n activePermissionMode = cfg.permission_mode as PermissionMode;\n }\n} catch { /* use default */ }\n\n// Tools allowed in plan mode\nconst PLAN_MODE_TOOLS = new Set([\n \"read_file\", \"list_directory\", \"search_files\", \"search_content\",\n \"glob\", \"grep\", \"web_fetch\", \"web_search\", \"task\", \"task_output\",\n \"bash_output\", \"list_shells\", \"tasks\", \"config\", \"ask_user\",\n // Interactive tools (read-only by nature)\n \"ask_user_question\", \"enter_plan_mode\", \"exit_plan_mode\",\n]);\n\nexport function setPermissionMode(mode: PermissionMode): { success: boolean; message: string } {\n activePermissionMode = mode;\n try { updateConfig({ permission_mode: mode }); } catch { /* best effort */ }\n return { success: true, message: `Permission mode: ${mode}` };\n}\n\nexport function getPermissionMode(): PermissionMode {\n return activePermissionMode;\n}\n\nexport function isToolAllowedByPermission(toolName: string): boolean {\n switch (activePermissionMode) {\n case \"yolo\": return true;\n case \"plan\": return PLAN_MODE_TOOLS.has(toolName);\n case \"default\": return true; // Default allows all — UI can prompt for confirmation\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,UAAU,EAAEC,YAAY,QAAQ,mBAAmB;AAI5D;AACA,IAAIC,oBAAoC,GAAG,SAAS;;AAEpD;AACA,IAAI;EACF,MAAMC,GAAG,GAAGH,UAAU,CAAC,CAAC;EACxB,IAAIG,GAAG,CAACC,eAAe,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAACC,QAAQ,CAACF,GAAG,CAACC,eAAe,CAAC,EAAE;IACpFF,oBAAoB,GAAGC,GAAG,CAACC,eAAiC;EAC9D;AACF,CAAC,CAAC,MAAM,CAAE;;AAEV;AACA,MAAME,eAAe,GAAG,IAAIC,GAAG,CAAC,CAC9B,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAC/D,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAChE,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU;AAC3D;AACA,mBAAmB,EAAE,iBAAiB,EAAE,gBAAgB,CACzD,CAAC;AAEF,OAAO,SAASC,iBAAiBA,CAACC,IAAoB,EAAyC;EAC7FP,oBAAoB,GAAGO,IAAI;EAC3B,IAAI;IAAER,YAAY,CAAC;MAAEG,eAAe,EAAEK;IAAK,CAAC,CAAC;EAAE,CAAC,CAAC,MAAM,CAAE;EACzD,OAAO;IAAEC,OAAO,EAAE,IAAI;IAAEC,OAAO,EAAE,oBAAoBF,IAAI;EAAG,CAAC;AAC/D;AAEA,OAAO,SAASG,iBAAiBA,CAAA,EAAmB;EAClD,OAAOV,oBAAoB;AAC7B;AAEA,OAAO,SAASW,yBAAyBA,CAACC,QAAgB,EAAW;EACnE,QAAQZ,oBAAoB;IAC1B,KAAK,MAAM;MAAE,OAAO,IAAI;IACxB,KAAK,MAAM;MAAE,OAAOI,eAAe,CAACS,GAAG,CAACD,QAAQ,CAAC;IACjD,KAAK,SAAS;MAAE,OAAO,IAAI;IAAE;EAC/B;AACF","ignoreList":[]}
@@ -11,184 +11,198 @@
11
11
  *
12
12
  * Integrates with the existing file-history.ts backup system.
13
13
  */
14
+
14
15
  import { existsSync, readFileSync, writeFileSync, unlinkSync } from "fs";
16
+
17
+ // ============================================================================
18
+ // TYPES
19
+ // ============================================================================
20
+
15
21
  // ============================================================================
16
22
  // REWIND MANAGER
17
23
  // ============================================================================
24
+
18
25
  export class RewindManager {
19
- checkpoints = [];
20
- pendingFileChanges = [];
21
- /**
22
- * Record a checkpoint after an assistant turn completes.
23
- */
24
- addCheckpoint(turnIndex, messageCount, summary, fileChanges) {
25
- this.checkpoints.push({
26
- turnIndex,
27
- messageCount,
28
- timestamp: Date.now(),
29
- summary: summary.slice(0, 80),
30
- fileChanges,
31
- });
32
- }
33
- /**
34
- * Get all checkpoints for display.
35
- */
36
- getCheckpoints() {
37
- return [...this.checkpoints];
38
- }
39
- /**
40
- * Get the number of recorded checkpoints.
41
- */
42
- getCheckpointCount() {
43
- return this.checkpoints.length;
26
+ checkpoints = [];
27
+ pendingFileChanges = [];
28
+
29
+ /**
30
+ * Record a checkpoint after an assistant turn completes.
31
+ */
32
+ addCheckpoint(turnIndex, messageCount, summary, fileChanges) {
33
+ this.checkpoints.push({
34
+ turnIndex,
35
+ messageCount,
36
+ timestamp: Date.now(),
37
+ summary: summary.slice(0, 80),
38
+ fileChanges
39
+ });
40
+ }
41
+
42
+ /**
43
+ * Get all checkpoints for display.
44
+ */
45
+ getCheckpoints() {
46
+ return [...this.checkpoints];
47
+ }
48
+
49
+ /**
50
+ * Get the number of recorded checkpoints.
51
+ */
52
+ getCheckpointCount() {
53
+ return this.checkpoints.length;
54
+ }
55
+
56
+ /**
57
+ * Rewind to a specific checkpoint index. All checkpoints AFTER this index
58
+ * are removed, and their file changes are reverted.
59
+ *
60
+ * Returns the message count to truncate to, plus lists of reverted/deleted files.
61
+ */
62
+ rewindTo(checkpointIndex) {
63
+ if (checkpointIndex < 0 || checkpointIndex >= this.checkpoints.length) {
64
+ return {
65
+ messageCount: 0,
66
+ filesReverted: [],
67
+ filesDeleted: [],
68
+ errors: [`Invalid checkpoint index: ${checkpointIndex}`]
69
+ };
44
70
  }
45
- /**
46
- * Rewind to a specific checkpoint index. All checkpoints AFTER this index
47
- * are removed, and their file changes are reverted.
48
- *
49
- * Returns the message count to truncate to, plus lists of reverted/deleted files.
50
- */
51
- rewindTo(checkpointIndex) {
52
- if (checkpointIndex < 0 || checkpointIndex >= this.checkpoints.length) {
53
- return {
54
- messageCount: 0,
55
- filesReverted: [],
56
- filesDeleted: [],
57
- errors: [`Invalid checkpoint index: ${checkpointIndex}`],
58
- };
59
- }
60
- const targetCheckpoint = this.checkpoints[checkpointIndex];
61
- const removedCheckpoints = this.checkpoints.slice(checkpointIndex + 1);
62
- const filesReverted = [];
63
- const filesDeleted = [];
64
- const errors = [];
65
- // Revert file changes in reverse chronological order
66
- // Process checkpoints from newest to oldest
67
- for (let i = removedCheckpoints.length - 1; i >= 0; i--) {
68
- const cp = removedCheckpoints[i];
69
- // Process file changes within each checkpoint in reverse order
70
- for (let j = cp.fileChanges.length - 1; j >= 0; j--) {
71
- const change = cp.fileChanges[j];
72
- try {
73
- if (change.isNewFile) {
74
- // File was created during this turn — delete it
75
- if (existsSync(change.filePath)) {
76
- unlinkSync(change.filePath);
77
- filesDeleted.push(change.filePath);
78
- }
79
- }
80
- else if (change.backupPath && existsSync(change.backupPath)) {
81
- // File was edited — restore from backup
82
- const backupContent = readFileSync(change.backupPath);
83
- writeFileSync(change.filePath, backupContent);
84
- filesReverted.push(change.filePath);
85
- }
86
- else {
87
- errors.push(`No backup found for ${change.filePath}`);
88
- }
89
- }
90
- catch (err) {
91
- const msg = err instanceof Error ? err.message : String(err);
92
- errors.push(`Failed to revert ${change.filePath}: ${msg}`);
93
- }
71
+ const targetCheckpoint = this.checkpoints[checkpointIndex];
72
+ const removedCheckpoints = this.checkpoints.slice(checkpointIndex + 1);
73
+ const filesReverted = [];
74
+ const filesDeleted = [];
75
+ const errors = [];
76
+
77
+ // Revert file changes in reverse chronological order
78
+ // Process checkpoints from newest to oldest
79
+ for (let i = removedCheckpoints.length - 1; i >= 0; i--) {
80
+ const cp = removedCheckpoints[i];
81
+ // Process file changes within each checkpoint in reverse order
82
+ for (let j = cp.fileChanges.length - 1; j >= 0; j--) {
83
+ const change = cp.fileChanges[j];
84
+ try {
85
+ if (change.isNewFile) {
86
+ // File was created during this turn — delete it
87
+ if (existsSync(change.filePath)) {
88
+ unlinkSync(change.filePath);
89
+ filesDeleted.push(change.filePath);
94
90
  }
91
+ } else if (change.backupPath && existsSync(change.backupPath)) {
92
+ // File was edited — restore from backup
93
+ const backupContent = readFileSync(change.backupPath);
94
+ writeFileSync(change.filePath, backupContent);
95
+ filesReverted.push(change.filePath);
96
+ } else {
97
+ errors.push(`No backup found for ${change.filePath}`);
98
+ }
99
+ } catch (err) {
100
+ const msg = err instanceof Error ? err.message : String(err);
101
+ errors.push(`Failed to revert ${change.filePath}: ${msg}`);
95
102
  }
96
- // Truncate checkpoints to the target
97
- this.checkpoints = this.checkpoints.slice(0, checkpointIndex + 1);
98
- // Clear any pending file changes
99
- this.pendingFileChanges = [];
100
- return {
101
- messageCount: targetCheckpoint.messageCount,
102
- filesReverted: [...new Set(filesReverted)],
103
- filesDeleted: [...new Set(filesDeleted)],
104
- errors,
105
- };
103
+ }
106
104
  }
107
- /**
108
- * Revert only file changes (without truncating conversation).
109
- * Used when user wants to undo file changes but keep conversation history.
110
- */
111
- revertFilesFrom(checkpointIndex) {
112
- if (checkpointIndex < 0 || checkpointIndex >= this.checkpoints.length) {
113
- return {
114
- filesReverted: [],
115
- filesDeleted: [],
116
- errors: [`Invalid checkpoint index: ${checkpointIndex}`],
117
- };
118
- }
119
- const removedCheckpoints = this.checkpoints.slice(checkpointIndex + 1);
120
- const filesReverted = [];
121
- const filesDeleted = [];
122
- const errors = [];
123
- for (let i = removedCheckpoints.length - 1; i >= 0; i--) {
124
- const cp = removedCheckpoints[i];
125
- for (let j = cp.fileChanges.length - 1; j >= 0; j--) {
126
- const change = cp.fileChanges[j];
127
- try {
128
- if (change.isNewFile) {
129
- if (existsSync(change.filePath)) {
130
- unlinkSync(change.filePath);
131
- filesDeleted.push(change.filePath);
132
- }
133
- }
134
- else if (change.backupPath && existsSync(change.backupPath)) {
135
- const backupContent = readFileSync(change.backupPath);
136
- writeFileSync(change.filePath, backupContent);
137
- filesReverted.push(change.filePath);
138
- }
139
- else {
140
- errors.push(`No backup found for ${change.filePath}`);
141
- }
142
- }
143
- catch (err) {
144
- const msg = err instanceof Error ? err.message : String(err);
145
- errors.push(`Failed to revert ${change.filePath}: ${msg}`);
146
- }
105
+
106
+ // Truncate checkpoints to the target
107
+ this.checkpoints = this.checkpoints.slice(0, checkpointIndex + 1);
108
+
109
+ // Clear any pending file changes
110
+ this.pendingFileChanges = [];
111
+ return {
112
+ messageCount: targetCheckpoint.messageCount,
113
+ filesReverted: [...new Set(filesReverted)],
114
+ filesDeleted: [...new Set(filesDeleted)],
115
+ errors
116
+ };
117
+ }
118
+
119
+ /**
120
+ * Revert only file changes (without truncating conversation).
121
+ * Used when user wants to undo file changes but keep conversation history.
122
+ */
123
+ revertFilesFrom(checkpointIndex) {
124
+ if (checkpointIndex < 0 || checkpointIndex >= this.checkpoints.length) {
125
+ return {
126
+ filesReverted: [],
127
+ filesDeleted: [],
128
+ errors: [`Invalid checkpoint index: ${checkpointIndex}`]
129
+ };
130
+ }
131
+ const removedCheckpoints = this.checkpoints.slice(checkpointIndex + 1);
132
+ const filesReverted = [];
133
+ const filesDeleted = [];
134
+ const errors = [];
135
+ for (let i = removedCheckpoints.length - 1; i >= 0; i--) {
136
+ const cp = removedCheckpoints[i];
137
+ for (let j = cp.fileChanges.length - 1; j >= 0; j--) {
138
+ const change = cp.fileChanges[j];
139
+ try {
140
+ if (change.isNewFile) {
141
+ if (existsSync(change.filePath)) {
142
+ unlinkSync(change.filePath);
143
+ filesDeleted.push(change.filePath);
147
144
  }
145
+ } else if (change.backupPath && existsSync(change.backupPath)) {
146
+ const backupContent = readFileSync(change.backupPath);
147
+ writeFileSync(change.filePath, backupContent);
148
+ filesReverted.push(change.filePath);
149
+ } else {
150
+ errors.push(`No backup found for ${change.filePath}`);
151
+ }
152
+ } catch (err) {
153
+ const msg = err instanceof Error ? err.message : String(err);
154
+ errors.push(`Failed to revert ${change.filePath}: ${msg}`);
148
155
  }
149
- return {
150
- filesReverted: [...new Set(filesReverted)],
151
- filesDeleted: [...new Set(filesDeleted)],
152
- errors,
153
- };
154
- }
155
- /**
156
- * Track a file change for the current (uncommitted) turn.
157
- */
158
- trackFileChange(change) {
159
- this.pendingFileChanges.push(change);
160
- }
161
- /**
162
- * Get the current turn's pending file changes.
163
- */
164
- getCurrentFileChanges() {
165
- return [...this.pendingFileChanges];
166
- }
167
- /**
168
- * Clear current turn tracking (called when checkpoint is committed).
169
- */
170
- commitTurn() {
171
- this.pendingFileChanges = [];
172
- }
173
- /**
174
- * Check if there are any checkpoints with file changes that could be reverted.
175
- */
176
- hasFileChanges() {
177
- return this.checkpoints.some(cp => cp.fileChanges.length > 0);
178
- }
179
- /**
180
- * Get the total number of file changes across all checkpoints after a given index.
181
- */
182
- getFileChangeCountAfter(checkpointIndex) {
183
- return this.checkpoints
184
- .slice(checkpointIndex + 1)
185
- .reduce((sum, cp) => sum + cp.fileChanges.length, 0);
186
- }
187
- /**
188
- * Reset all state.
189
- */
190
- reset() {
191
- this.checkpoints = [];
192
- this.pendingFileChanges = [];
156
+ }
193
157
  }
158
+ return {
159
+ filesReverted: [...new Set(filesReverted)],
160
+ filesDeleted: [...new Set(filesDeleted)],
161
+ errors
162
+ };
163
+ }
164
+
165
+ /**
166
+ * Track a file change for the current (uncommitted) turn.
167
+ */
168
+ trackFileChange(change) {
169
+ this.pendingFileChanges.push(change);
170
+ }
171
+
172
+ /**
173
+ * Get the current turn's pending file changes.
174
+ */
175
+ getCurrentFileChanges() {
176
+ return [...this.pendingFileChanges];
177
+ }
178
+
179
+ /**
180
+ * Clear current turn tracking (called when checkpoint is committed).
181
+ */
182
+ commitTurn() {
183
+ this.pendingFileChanges = [];
184
+ }
185
+
186
+ /**
187
+ * Check if there are any checkpoints with file changes that could be reverted.
188
+ */
189
+ hasFileChanges() {
190
+ return this.checkpoints.some(cp => cp.fileChanges.length > 0);
191
+ }
192
+
193
+ /**
194
+ * Get the total number of file changes across all checkpoints after a given index.
195
+ */
196
+ getFileChangeCountAfter(checkpointIndex) {
197
+ return this.checkpoints.slice(checkpointIndex + 1).reduce((sum, cp) => sum + cp.fileChanges.length, 0);
198
+ }
199
+
200
+ /**
201
+ * Reset all state.
202
+ */
203
+ reset() {
204
+ this.checkpoints = [];
205
+ this.pendingFileChanges = [];
206
+ }
194
207
  }
208
+ //# sourceMappingURL=rewind.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rewind.js","names":["existsSync","readFileSync","writeFileSync","unlinkSync","RewindManager","checkpoints","pendingFileChanges","addCheckpoint","turnIndex","messageCount","summary","fileChanges","push","timestamp","Date","now","slice","getCheckpoints","getCheckpointCount","length","rewindTo","checkpointIndex","filesReverted","filesDeleted","errors","targetCheckpoint","removedCheckpoints","i","cp","j","change","isNewFile","filePath","backupPath","backupContent","err","msg","Error","message","String","Set","revertFilesFrom","trackFileChange","getCurrentFileChanges","commitTurn","hasFileChanges","some","getFileChangeCountAfter","reduce","sum","reset"],"sources":["../../../src/cli/services/rewind.ts"],"sourcesContent":["/**\n * Rewind — checkpoint tracking and file revert for conversation rewind\n *\n * After each assistant turn, a checkpoint is recorded with:\n * - The turn index and message count at that point\n * - A summary of what happened (first 80 chars of assistant text)\n * - File changes made during that turn (with backup paths from file-history)\n *\n * On rewind, files are restored from their backups in reverse chronological\n * order. Files that were CREATED (not edited) during reverted turns are deleted.\n *\n * Integrates with the existing file-history.ts backup system.\n */\n\nimport { existsSync, readFileSync, writeFileSync, unlinkSync } from \"fs\";\n\n// ============================================================================\n// TYPES\n// ============================================================================\n\nexport interface FileChange {\n filePath: string;\n backupPath: string; // Path to the backup in file-history (empty if file was created new)\n operation: \"write\" | \"edit\" | \"multi_edit\";\n isNewFile: boolean; // True if the file did not exist before this operation\n}\n\nexport interface RewindCheckpoint {\n turnIndex: number; // Which assistant turn this represents (0-based)\n messageCount: number; // messages.length at this point\n timestamp: number; // Date.now()\n summary: string; // Brief description (first 80 chars of assistant text)\n fileChanges: FileChange[]; // Files modified during this turn\n}\n\nexport interface RewindResult {\n messageCount: number; // The message count to truncate to\n filesReverted: string[]; // File paths that were reverted\n filesDeleted: string[]; // File paths that were deleted (created during reverted turns)\n errors: string[]; // Any errors during revert\n}\n\n// ============================================================================\n// REWIND MANAGER\n// ============================================================================\n\nexport class RewindManager {\n private checkpoints: RewindCheckpoint[] = [];\n private pendingFileChanges: FileChange[] = [];\n\n /**\n * Record a checkpoint after an assistant turn completes.\n */\n addCheckpoint(\n turnIndex: number,\n messageCount: number,\n summary: string,\n fileChanges: FileChange[],\n ): void {\n this.checkpoints.push({\n turnIndex,\n messageCount,\n timestamp: Date.now(),\n summary: summary.slice(0, 80),\n fileChanges,\n });\n }\n\n /**\n * Get all checkpoints for display.\n */\n getCheckpoints(): RewindCheckpoint[] {\n return [...this.checkpoints];\n }\n\n /**\n * Get the number of recorded checkpoints.\n */\n getCheckpointCount(): number {\n return this.checkpoints.length;\n }\n\n /**\n * Rewind to a specific checkpoint index. All checkpoints AFTER this index\n * are removed, and their file changes are reverted.\n *\n * Returns the message count to truncate to, plus lists of reverted/deleted files.\n */\n rewindTo(checkpointIndex: number): RewindResult {\n if (checkpointIndex < 0 || checkpointIndex >= this.checkpoints.length) {\n return {\n messageCount: 0,\n filesReverted: [],\n filesDeleted: [],\n errors: [`Invalid checkpoint index: ${checkpointIndex}`],\n };\n }\n\n const targetCheckpoint = this.checkpoints[checkpointIndex];\n const removedCheckpoints = this.checkpoints.slice(checkpointIndex + 1);\n const filesReverted: string[] = [];\n const filesDeleted: string[] = [];\n const errors: string[] = [];\n\n // Revert file changes in reverse chronological order\n // Process checkpoints from newest to oldest\n for (let i = removedCheckpoints.length - 1; i >= 0; i--) {\n const cp = removedCheckpoints[i];\n // Process file changes within each checkpoint in reverse order\n for (let j = cp.fileChanges.length - 1; j >= 0; j--) {\n const change = cp.fileChanges[j];\n try {\n if (change.isNewFile) {\n // File was created during this turn — delete it\n if (existsSync(change.filePath)) {\n unlinkSync(change.filePath);\n filesDeleted.push(change.filePath);\n }\n } else if (change.backupPath && existsSync(change.backupPath)) {\n // File was edited — restore from backup\n const backupContent = readFileSync(change.backupPath);\n writeFileSync(change.filePath, backupContent);\n filesReverted.push(change.filePath);\n } else {\n errors.push(`No backup found for ${change.filePath}`);\n }\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n errors.push(`Failed to revert ${change.filePath}: ${msg}`);\n }\n }\n }\n\n // Truncate checkpoints to the target\n this.checkpoints = this.checkpoints.slice(0, checkpointIndex + 1);\n\n // Clear any pending file changes\n this.pendingFileChanges = [];\n\n return {\n messageCount: targetCheckpoint.messageCount,\n filesReverted: [...new Set(filesReverted)],\n filesDeleted: [...new Set(filesDeleted)],\n errors,\n };\n }\n\n /**\n * Revert only file changes (without truncating conversation).\n * Used when user wants to undo file changes but keep conversation history.\n */\n revertFilesFrom(checkpointIndex: number): Omit<RewindResult, \"messageCount\"> {\n if (checkpointIndex < 0 || checkpointIndex >= this.checkpoints.length) {\n return {\n filesReverted: [],\n filesDeleted: [],\n errors: [`Invalid checkpoint index: ${checkpointIndex}`],\n };\n }\n\n const removedCheckpoints = this.checkpoints.slice(checkpointIndex + 1);\n const filesReverted: string[] = [];\n const filesDeleted: string[] = [];\n const errors: string[] = [];\n\n for (let i = removedCheckpoints.length - 1; i >= 0; i--) {\n const cp = removedCheckpoints[i];\n for (let j = cp.fileChanges.length - 1; j >= 0; j--) {\n const change = cp.fileChanges[j];\n try {\n if (change.isNewFile) {\n if (existsSync(change.filePath)) {\n unlinkSync(change.filePath);\n filesDeleted.push(change.filePath);\n }\n } else if (change.backupPath && existsSync(change.backupPath)) {\n const backupContent = readFileSync(change.backupPath);\n writeFileSync(change.filePath, backupContent);\n filesReverted.push(change.filePath);\n } else {\n errors.push(`No backup found for ${change.filePath}`);\n }\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n errors.push(`Failed to revert ${change.filePath}: ${msg}`);\n }\n }\n }\n\n return {\n filesReverted: [...new Set(filesReverted)],\n filesDeleted: [...new Set(filesDeleted)],\n errors,\n };\n }\n\n /**\n * Track a file change for the current (uncommitted) turn.\n */\n trackFileChange(change: FileChange): void {\n this.pendingFileChanges.push(change);\n }\n\n /**\n * Get the current turn's pending file changes.\n */\n getCurrentFileChanges(): FileChange[] {\n return [...this.pendingFileChanges];\n }\n\n /**\n * Clear current turn tracking (called when checkpoint is committed).\n */\n commitTurn(): void {\n this.pendingFileChanges = [];\n }\n\n /**\n * Check if there are any checkpoints with file changes that could be reverted.\n */\n hasFileChanges(): boolean {\n return this.checkpoints.some(cp => cp.fileChanges.length > 0);\n }\n\n /**\n * Get the total number of file changes across all checkpoints after a given index.\n */\n getFileChangeCountAfter(checkpointIndex: number): number {\n return this.checkpoints\n .slice(checkpointIndex + 1)\n .reduce((sum, cp) => sum + cp.fileChanges.length, 0);\n }\n\n /**\n * Reset all state.\n */\n reset(): void {\n this.checkpoints = [];\n this.pendingFileChanges = [];\n }\n}\n"],"mappings":"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","ignoreList":[]}