@within-7/minto 0.4.2 → 0.4.3

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 (1263) hide show
  1. package/cli.cjs +32 -154
  2. package/cli.js +3255 -0
  3. package/package.json +21 -38
  4. package/scripts/postinstall.cjs +19 -136
  5. package/vendor/ripgrep/arm64-linux/rg +0 -0
  6. package/vendor/ripgrep/x64-darwin/rg +0 -0
  7. package/vendor/ripgrep/x64-linux/rg +0 -0
  8. package/vendor/ripgrep/x64-win32/rg.exe +0 -0
  9. package/dist/Tool.js +0 -46
  10. package/dist/Tool.js.map +0 -7
  11. package/dist/commands/agents/AgentsCommand.js +0 -2170
  12. package/dist/commands/agents/AgentsCommand.js.map +0 -7
  13. package/dist/commands/agents/constants.js +0 -58
  14. package/dist/commands/agents/constants.js.map +0 -7
  15. package/dist/commands/agents/index.js +0 -37
  16. package/dist/commands/agents/index.js.map +0 -7
  17. package/dist/commands/agents/types.js +0 -11
  18. package/dist/commands/agents/types.js.map +0 -7
  19. package/dist/commands/agents/utils/fileOperations.js +0 -245
  20. package/dist/commands/agents/utils/fileOperations.js.map +0 -7
  21. package/dist/commands/agents/utils/index.js +0 -23
  22. package/dist/commands/agents/utils/index.js.map +0 -7
  23. package/dist/commands/approvedTools.js +0 -36
  24. package/dist/commands/approvedTools.js.map +0 -7
  25. package/dist/commands/bug.js +0 -88
  26. package/dist/commands/bug.js.map +0 -7
  27. package/dist/commands/clear.js +0 -41
  28. package/dist/commands/clear.js.map +0 -7
  29. package/dist/commands/compact.js +0 -119
  30. package/dist/commands/compact.js.map +0 -7
  31. package/dist/commands/config.js +0 -20
  32. package/dist/commands/config.js.map +0 -7
  33. package/dist/commands/context.js +0 -118
  34. package/dist/commands/context.js.map +0 -7
  35. package/dist/commands/cost.js +0 -19
  36. package/dist/commands/cost.js.map +0 -7
  37. package/dist/commands/ctx_viz.js +0 -193
  38. package/dist/commands/ctx_viz.js.map +0 -7
  39. package/dist/commands/doctor.js +0 -171
  40. package/dist/commands/doctor.js.map +0 -7
  41. package/dist/commands/effort.js +0 -87
  42. package/dist/commands/effort.js.map +0 -7
  43. package/dist/commands/export.js +0 -747
  44. package/dist/commands/export.js.map +0 -7
  45. package/dist/commands/help.js +0 -20
  46. package/dist/commands/help.js.map +0 -7
  47. package/dist/commands/ide.js +0 -18
  48. package/dist/commands/ide.js.map +0 -7
  49. package/dist/commands/init.js +0 -38
  50. package/dist/commands/init.js.map +0 -7
  51. package/dist/commands/language.js +0 -110
  52. package/dist/commands/language.js.map +0 -7
  53. package/dist/commands/login.js +0 -128
  54. package/dist/commands/login.js.map +0 -7
  55. package/dist/commands/mcp-interactive.js +0 -485
  56. package/dist/commands/mcp-interactive.js.map +0 -7
  57. package/dist/commands/memory.js +0 -119
  58. package/dist/commands/memory.js.map +0 -7
  59. package/dist/commands/model.js +0 -497
  60. package/dist/commands/model.js.map +0 -7
  61. package/dist/commands/new.js +0 -56
  62. package/dist/commands/new.js.map +0 -7
  63. package/dist/commands/outputStyle.js +0 -64
  64. package/dist/commands/outputStyle.js.map +0 -7
  65. package/dist/commands/permissions.js +0 -113
  66. package/dist/commands/permissions.js.map +0 -7
  67. package/dist/commands/plugin/AddMarketplaceForm.js +0 -91
  68. package/dist/commands/plugin/AddMarketplaceForm.js.map +0 -7
  69. package/dist/commands/plugin/ConfirmDialog.js +0 -84
  70. package/dist/commands/plugin/ConfirmDialog.js.map +0 -7
  71. package/dist/commands/plugin/ErrorView.js +0 -34
  72. package/dist/commands/plugin/ErrorView.js.map +0 -7
  73. package/dist/commands/plugin/InstalledPluginsByMarketplace.js +0 -152
  74. package/dist/commands/plugin/InstalledPluginsByMarketplace.js.map +0 -7
  75. package/dist/commands/plugin/InstalledPluginsManager.js +0 -102
  76. package/dist/commands/plugin/InstalledPluginsManager.js.map +0 -7
  77. package/dist/commands/plugin/LoadingView.js +0 -14
  78. package/dist/commands/plugin/LoadingView.js.map +0 -7
  79. package/dist/commands/plugin/MainMenu.js +0 -67
  80. package/dist/commands/plugin/MainMenu.js.map +0 -7
  81. package/dist/commands/plugin/MarketplaceManager.js +0 -201
  82. package/dist/commands/plugin/MarketplaceManager.js.map +0 -7
  83. package/dist/commands/plugin/MarketplaceSelector.js +0 -124
  84. package/dist/commands/plugin/MarketplaceSelector.js.map +0 -7
  85. package/dist/commands/plugin/PlaceholderScreen.js +0 -31
  86. package/dist/commands/plugin/PlaceholderScreen.js.map +0 -7
  87. package/dist/commands/plugin/PluginBrowser.js +0 -183
  88. package/dist/commands/plugin/PluginBrowser.js.map +0 -7
  89. package/dist/commands/plugin/PluginDetailsInstall.js +0 -159
  90. package/dist/commands/plugin/PluginDetailsInstall.js.map +0 -7
  91. package/dist/commands/plugin/PluginDetailsManage.js +0 -210
  92. package/dist/commands/plugin/PluginDetailsManage.js.map +0 -7
  93. package/dist/commands/plugin/components.js +0 -16
  94. package/dist/commands/plugin/components.js.map +0 -7
  95. package/dist/commands/plugin/example-usage.js +0 -63
  96. package/dist/commands/plugin/example-usage.js.map +0 -7
  97. package/dist/commands/plugin/types.js +0 -1
  98. package/dist/commands/plugin/types.js.map +0 -7
  99. package/dist/commands/plugin/utils.js +0 -109
  100. package/dist/commands/plugin/utils.js.map +0 -7
  101. package/dist/commands/plugin.js +0 -1410
  102. package/dist/commands/plugin.js.map +0 -7
  103. package/dist/commands/quit.js +0 -20
  104. package/dist/commands/quit.js.map +0 -7
  105. package/dist/commands/refreshCommands.js +0 -48
  106. package/dist/commands/refreshCommands.js.map +0 -7
  107. package/dist/commands/resume.js +0 -71
  108. package/dist/commands/resume.js.map +0 -7
  109. package/dist/commands/review.js +0 -51
  110. package/dist/commands/review.js.map +0 -7
  111. package/dist/commands/sandbox.js +0 -203
  112. package/dist/commands/sandbox.js.map +0 -7
  113. package/dist/commands/sessions.js +0 -224
  114. package/dist/commands/sessions.js.map +0 -7
  115. package/dist/commands/setup.js +0 -653
  116. package/dist/commands/setup.js.map +0 -7
  117. package/dist/commands/stats.js +0 -292
  118. package/dist/commands/stats.js.map +0 -7
  119. package/dist/commands/status.js +0 -127
  120. package/dist/commands/status.js.map +0 -7
  121. package/dist/commands/tasks.js +0 -108
  122. package/dist/commands/tasks.js.map +0 -7
  123. package/dist/commands/terminalSetup.js +0 -174
  124. package/dist/commands/terminalSetup.js.map +0 -7
  125. package/dist/commands/todos.js +0 -123
  126. package/dist/commands/todos.js.map +0 -7
  127. package/dist/commands/undo.js +0 -227
  128. package/dist/commands/undo.js.map +0 -7
  129. package/dist/commands/vim.js +0 -22
  130. package/dist/commands/vim.js.map +0 -7
  131. package/dist/commands.js +0 -130
  132. package/dist/commands.js.map +0 -7
  133. package/dist/components/AgentDetailView.js +0 -126
  134. package/dist/components/AgentDetailView.js.map +0 -7
  135. package/dist/components/AgentResponseBlock.js +0 -41
  136. package/dist/components/AgentResponseBlock.js.map +0 -7
  137. package/dist/components/AgentThinkingBlock.js +0 -32
  138. package/dist/components/AgentThinkingBlock.js.map +0 -7
  139. package/dist/components/AgentViewBanner.js +0 -22
  140. package/dist/components/AgentViewBanner.js.map +0 -7
  141. package/dist/components/AsciiLogo.js +0 -18
  142. package/dist/components/AsciiLogo.js.map +0 -7
  143. package/dist/components/AskUserQuestionDialog/AskUserQuestionDialog.js +0 -142
  144. package/dist/components/AskUserQuestionDialog/AskUserQuestionDialog.js.map +0 -7
  145. package/dist/components/AskUserQuestionDialog/QuestionView.js +0 -55
  146. package/dist/components/AskUserQuestionDialog/QuestionView.js.map +0 -7
  147. package/dist/components/AskUserQuestionDialog/index.js +0 -7
  148. package/dist/components/AskUserQuestionDialog/index.js.map +0 -7
  149. package/dist/components/BackgroundTasksPanel.js +0 -177
  150. package/dist/components/BackgroundTasksPanel.js.map +0 -7
  151. package/dist/components/BashStreamingProgress.js +0 -24
  152. package/dist/components/BashStreamingProgress.js.map +0 -7
  153. package/dist/components/CollapsibleHint.js +0 -15
  154. package/dist/components/CollapsibleHint.js.map +0 -7
  155. package/dist/components/Config.js +0 -181
  156. package/dist/components/Config.js.map +0 -7
  157. package/dist/components/ConsoleOAuthFlow.js +0 -179
  158. package/dist/components/ConsoleOAuthFlow.js.map +0 -7
  159. package/dist/components/Cost.js +0 -14
  160. package/dist/components/Cost.js.map +0 -7
  161. package/dist/components/CostThresholdDialog.js +0 -38
  162. package/dist/components/CostThresholdDialog.js.map +0 -7
  163. package/dist/components/CustomSelect/option-map.js +0 -32
  164. package/dist/components/CustomSelect/option-map.js.map +0 -7
  165. package/dist/components/CustomSelect/select-option.js +0 -37
  166. package/dist/components/CustomSelect/select-option.js.map +0 -7
  167. package/dist/components/CustomSelect/select.js +0 -64
  168. package/dist/components/CustomSelect/select.js.map +0 -7
  169. package/dist/components/CustomSelect/theme.js +0 -1
  170. package/dist/components/CustomSelect/theme.js.map +0 -7
  171. package/dist/components/CustomSelect/use-select-state.js +0 -220
  172. package/dist/components/CustomSelect/use-select-state.js.map +0 -7
  173. package/dist/components/CustomSelect/use-select.js +0 -21
  174. package/dist/components/CustomSelect/use-select.js.map +0 -7
  175. package/dist/components/FallbackToolUseRejectedMessage.js +0 -11
  176. package/dist/components/FallbackToolUseRejectedMessage.js.map +0 -7
  177. package/dist/components/FileEditToolUpdatedMessage.js +0 -32
  178. package/dist/components/FileEditToolUpdatedMessage.js.map +0 -7
  179. package/dist/components/HeaderBar.js +0 -63
  180. package/dist/components/HeaderBar.js.map +0 -7
  181. package/dist/components/Help.js +0 -185
  182. package/dist/components/Help.js.map +0 -7
  183. package/dist/components/HighlightedCode.js +0 -31
  184. package/dist/components/HighlightedCode.js.map +0 -7
  185. package/dist/components/HistorySearchOverlay.js +0 -49
  186. package/dist/components/HistorySearchOverlay.js.map +0 -7
  187. package/dist/components/HotkeyHelpPanel.js +0 -154
  188. package/dist/components/HotkeyHelpPanel.js.map +0 -7
  189. package/dist/components/IdleNotificationBar.js +0 -10
  190. package/dist/components/IdleNotificationBar.js.map +0 -7
  191. package/dist/components/InfoPanel/InfoPanel.js +0 -123
  192. package/dist/components/InfoPanel/InfoPanel.js.map +0 -7
  193. package/dist/components/InfoPanel/index.js +0 -5
  194. package/dist/components/InfoPanel/index.js.map +0 -7
  195. package/dist/components/InfoPanel/types.js +0 -1
  196. package/dist/components/InfoPanel/types.js.map +0 -7
  197. package/dist/components/InteractionRoundBlock.js +0 -56
  198. package/dist/components/InteractionRoundBlock.js.map +0 -7
  199. package/dist/components/InvalidConfigDialog.js +0 -84
  200. package/dist/components/InvalidConfigDialog.js.map +0 -7
  201. package/dist/components/Link.js +0 -18
  202. package/dist/components/Link.js.map +0 -7
  203. package/dist/components/LogSelector.js +0 -50
  204. package/dist/components/LogSelector.js.map +0 -7
  205. package/dist/components/Logo.js +0 -55
  206. package/dist/components/Logo.js.map +0 -7
  207. package/dist/components/MCPServerApprovalDialog.js +0 -81
  208. package/dist/components/MCPServerApprovalDialog.js.map +0 -7
  209. package/dist/components/MCPServerDialogCopy.js +0 -12
  210. package/dist/components/MCPServerDialogCopy.js.map +0 -7
  211. package/dist/components/MCPServerMultiselectDialog.js +0 -82
  212. package/dist/components/MCPServerMultiselectDialog.js.map +0 -7
  213. package/dist/components/Message.js +0 -162
  214. package/dist/components/Message.js.map +0 -7
  215. package/dist/components/MessageResponse.js +0 -9
  216. package/dist/components/MessageResponse.js.map +0 -7
  217. package/dist/components/MessageSelector.js +0 -127
  218. package/dist/components/MessageSelector.js.map +0 -7
  219. package/dist/components/ModeIndicator.js +0 -39
  220. package/dist/components/ModeIndicator.js.map +0 -7
  221. package/dist/components/ModelConfig.js +0 -223
  222. package/dist/components/ModelConfig.js.map +0 -7
  223. package/dist/components/ModelListManager.js +0 -142
  224. package/dist/components/ModelListManager.js.map +0 -7
  225. package/dist/components/ModelSelector/BrandTextInput.js +0 -43
  226. package/dist/components/ModelSelector/BrandTextInput.js.map +0 -7
  227. package/dist/components/ModelSelector/ModelSelector.js +0 -2103
  228. package/dist/components/ModelSelector/ModelSelector.js.map +0 -7
  229. package/dist/components/ModelSelector/ScreenContainer.js +0 -27
  230. package/dist/components/ModelSelector/ScreenContainer.js.map +0 -7
  231. package/dist/components/ModelSelector/WizardContainer.js +0 -45
  232. package/dist/components/ModelSelector/WizardContainer.js.map +0 -7
  233. package/dist/components/ModelSelector/constants.js +0 -37
  234. package/dist/components/ModelSelector/constants.js.map +0 -7
  235. package/dist/components/ModelSelector/hooks/index.js +0 -5
  236. package/dist/components/ModelSelector/hooks/index.js.map +0 -7
  237. package/dist/components/ModelSelector/hooks/useEscapeNavigation.js +0 -21
  238. package/dist/components/ModelSelector/hooks/useEscapeNavigation.js.map +0 -7
  239. package/dist/components/ModelSelector/index.js +0 -15
  240. package/dist/components/ModelSelector/index.js.map +0 -7
  241. package/dist/components/ModelSelector/types.js +0 -1
  242. package/dist/components/ModelSelector/types.js.map +0 -7
  243. package/dist/components/Onboarding.js +0 -159
  244. package/dist/components/Onboarding.js.map +0 -7
  245. package/dist/components/OperationSummary.js +0 -130
  246. package/dist/components/OperationSummary.js.map +0 -7
  247. package/dist/components/PressEnterToContinue.js +0 -10
  248. package/dist/components/PressEnterToContinue.js.map +0 -7
  249. package/dist/components/ProgressBar.js +0 -74
  250. package/dist/components/ProgressBar.js.map +0 -7
  251. package/dist/components/ProjectOnboarding.js +0 -99
  252. package/dist/components/ProjectOnboarding.js.map +0 -7
  253. package/dist/components/PromptInput.js +0 -1067
  254. package/dist/components/PromptInput.js.map +0 -7
  255. package/dist/components/PulseLabel.js +0 -44
  256. package/dist/components/PulseLabel.js.map +0 -7
  257. package/dist/components/QuitSummary.js +0 -88
  258. package/dist/components/QuitSummary.js.map +0 -7
  259. package/dist/components/RequestStatusIndicator.js +0 -194
  260. package/dist/components/RequestStatusIndicator.js.map +0 -7
  261. package/dist/components/RewindPanel.js +0 -272
  262. package/dist/components/RewindPanel.js.map +0 -7
  263. package/dist/components/SensitiveFileWarning.js +0 -35
  264. package/dist/components/SensitiveFileWarning.js.map +0 -7
  265. package/dist/components/SentryErrorBoundary.js +0 -27
  266. package/dist/components/SentryErrorBoundary.js.map +0 -7
  267. package/dist/components/SimpleSelector/SimpleSelector.js +0 -154
  268. package/dist/components/SimpleSelector/SimpleSelector.js.map +0 -7
  269. package/dist/components/SimpleSelector/index.js +0 -5
  270. package/dist/components/SimpleSelector/index.js.map +0 -7
  271. package/dist/components/SimpleSelector/types.js +0 -1
  272. package/dist/components/SimpleSelector/types.js.map +0 -7
  273. package/dist/components/Spinner.js +0 -174
  274. package/dist/components/Spinner.js.map +0 -7
  275. package/dist/components/SpinnerSymbol.js +0 -72
  276. package/dist/components/SpinnerSymbol.js.map +0 -7
  277. package/dist/components/StartupStatus.js +0 -57
  278. package/dist/components/StartupStatus.js.map +0 -7
  279. package/dist/components/StatusOverlayContent.js +0 -21
  280. package/dist/components/StatusOverlayContent.js.map +0 -7
  281. package/dist/components/StreamingBashOutput.js +0 -71
  282. package/dist/components/StreamingBashOutput.js.map +0 -7
  283. package/dist/components/StreamingTextPreview.js +0 -29
  284. package/dist/components/StreamingTextPreview.js.map +0 -7
  285. package/dist/components/StructuredDiff.js +0 -146
  286. package/dist/components/StructuredDiff.js.map +0 -7
  287. package/dist/components/SubagentBlock.js +0 -197
  288. package/dist/components/SubagentBlock.js.map +0 -7
  289. package/dist/components/SubagentManager.js +0 -65
  290. package/dist/components/SubagentManager.js.map +0 -7
  291. package/dist/components/SubagentProgress.js +0 -123
  292. package/dist/components/SubagentProgress.js.map +0 -7
  293. package/dist/components/SubagentStatusMarker.js +0 -37
  294. package/dist/components/SubagentStatusMarker.js.map +0 -7
  295. package/dist/components/TabbedListView/ScrollableList.js +0 -117
  296. package/dist/components/TabbedListView/ScrollableList.js.map +0 -7
  297. package/dist/components/TabbedListView/SearchInput.js +0 -23
  298. package/dist/components/TabbedListView/SearchInput.js.map +0 -7
  299. package/dist/components/TabbedListView/TabBar.js +0 -25
  300. package/dist/components/TabbedListView/TabBar.js.map +0 -7
  301. package/dist/components/TabbedListView/TabbedListView.js +0 -292
  302. package/dist/components/TabbedListView/TabbedListView.js.map +0 -7
  303. package/dist/components/TabbedListView/index.js +0 -11
  304. package/dist/components/TabbedListView/index.js.map +0 -7
  305. package/dist/components/TabbedListView/types.js +0 -1
  306. package/dist/components/TabbedListView/types.js.map +0 -7
  307. package/dist/components/TaskCard.js +0 -176
  308. package/dist/components/TaskCard.js.map +0 -7
  309. package/dist/components/TeamMemberPanel.js +0 -107
  310. package/dist/components/TeamMemberPanel.js.map +0 -7
  311. package/dist/components/TextInput.js +0 -108
  312. package/dist/components/TextInput.js.map +0 -7
  313. package/dist/components/ThinkingSelector.js +0 -84
  314. package/dist/components/ThinkingSelector.js.map +0 -7
  315. package/dist/components/TimelineRenderer.js +0 -31
  316. package/dist/components/TimelineRenderer.js.map +0 -7
  317. package/dist/components/TitledDivider.js +0 -26
  318. package/dist/components/TitledDivider.js.map +0 -7
  319. package/dist/components/TodoChangeBlock.js +0 -30
  320. package/dist/components/TodoChangeBlock.js.map +0 -7
  321. package/dist/components/TodoChangeLine.js +0 -22
  322. package/dist/components/TodoChangeLine.js.map +0 -7
  323. package/dist/components/TodoItem.js +0 -35
  324. package/dist/components/TodoItem.js.map +0 -7
  325. package/dist/components/TodoPanel.js +0 -167
  326. package/dist/components/TodoPanel.js.map +0 -7
  327. package/dist/components/TokenCounter.js +0 -74
  328. package/dist/components/TokenCounter.js.map +0 -7
  329. package/dist/components/TokenWarning.js +0 -41
  330. package/dist/components/TokenWarning.js.map +0 -7
  331. package/dist/components/ToolExecutionBlock.js +0 -18
  332. package/dist/components/ToolExecutionBlock.js.map +0 -7
  333. package/dist/components/ToolUseLoader.js +0 -29
  334. package/dist/components/ToolUseLoader.js.map +0 -7
  335. package/dist/components/TreeConnector.js +0 -26
  336. package/dist/components/TreeConnector.js.map +0 -7
  337. package/dist/components/TrustDialog.js +0 -71
  338. package/dist/components/TrustDialog.js.map +0 -7
  339. package/dist/components/TurnCompletionIndicator.js +0 -18
  340. package/dist/components/TurnCompletionIndicator.js.map +0 -7
  341. package/dist/components/UserQueryBlock.js +0 -12
  342. package/dist/components/UserQueryBlock.js.map +0 -7
  343. package/dist/components/binary-feedback/BinaryFeedback.js +0 -50
  344. package/dist/components/binary-feedback/BinaryFeedback.js.map +0 -7
  345. package/dist/components/binary-feedback/BinaryFeedbackOption.js +0 -92
  346. package/dist/components/binary-feedback/BinaryFeedbackOption.js.map +0 -7
  347. package/dist/components/binary-feedback/BinaryFeedbackView.js +0 -140
  348. package/dist/components/binary-feedback/BinaryFeedbackView.js.map +0 -7
  349. package/dist/components/binary-feedback/utils.js +0 -108
  350. package/dist/components/binary-feedback/utils.js.map +0 -7
  351. package/dist/components/messages/AssistantBashOutputMessage.js +0 -23
  352. package/dist/components/messages/AssistantBashOutputMessage.js.map +0 -7
  353. package/dist/components/messages/AssistantLocalCommandOutputMessage.js +0 -36
  354. package/dist/components/messages/AssistantLocalCommandOutputMessage.js.map +0 -7
  355. package/dist/components/messages/AssistantRedactedThinkingMessage.js +0 -12
  356. package/dist/components/messages/AssistantRedactedThinkingMessage.js.map +0 -7
  357. package/dist/components/messages/AssistantTextMessage.js +0 -92
  358. package/dist/components/messages/AssistantTextMessage.js.map +0 -7
  359. package/dist/components/messages/AssistantThinkingMessage.js +0 -42
  360. package/dist/components/messages/AssistantThinkingMessage.js.map +0 -7
  361. package/dist/components/messages/AssistantToolUseMessage.js +0 -108
  362. package/dist/components/messages/AssistantToolUseMessage.js.map +0 -7
  363. package/dist/components/messages/DefaultToolResultFallback.js +0 -11
  364. package/dist/components/messages/DefaultToolResultFallback.js.map +0 -7
  365. package/dist/components/messages/GroupRenderer.js +0 -54
  366. package/dist/components/messages/GroupRenderer.js.map +0 -7
  367. package/dist/components/messages/NestedTasksPreview.js +0 -24
  368. package/dist/components/messages/NestedTasksPreview.js.map +0 -7
  369. package/dist/components/messages/ParallelTasksGroupView.js +0 -101
  370. package/dist/components/messages/ParallelTasksGroupView.js.map +0 -7
  371. package/dist/components/messages/TaskInModuleView.js +0 -218
  372. package/dist/components/messages/TaskInModuleView.js.map +0 -7
  373. package/dist/components/messages/TaskOutputContent.js +0 -56
  374. package/dist/components/messages/TaskOutputContent.js.map +0 -7
  375. package/dist/components/messages/TaskProgressMessage.js +0 -11
  376. package/dist/components/messages/TaskProgressMessage.js.map +0 -7
  377. package/dist/components/messages/TaskToolMessage.js +0 -39
  378. package/dist/components/messages/TaskToolMessage.js.map +0 -7
  379. package/dist/components/messages/UserBashInputMessage.js +0 -18
  380. package/dist/components/messages/UserBashInputMessage.js.map +0 -7
  381. package/dist/components/messages/UserCommandMessage.js +0 -20
  382. package/dist/components/messages/UserCommandMessage.js.map +0 -7
  383. package/dist/components/messages/UserGuidanceMessage.js +0 -26
  384. package/dist/components/messages/UserGuidanceMessage.js.map +0 -7
  385. package/dist/components/messages/UserKodingInputMessage.js +0 -18
  386. package/dist/components/messages/UserKodingInputMessage.js.map +0 -7
  387. package/dist/components/messages/UserPromptMessage.js +0 -26
  388. package/dist/components/messages/UserPromptMessage.js.map +0 -7
  389. package/dist/components/messages/UserTeamNotificationMessage.js +0 -91
  390. package/dist/components/messages/UserTeamNotificationMessage.js.map +0 -7
  391. package/dist/components/messages/UserTextMessage.js +0 -33
  392. package/dist/components/messages/UserTextMessage.js.map +0 -7
  393. package/dist/components/messages/UserToolResultMessage/UserToolCanceledMessage.js +0 -11
  394. package/dist/components/messages/UserToolResultMessage/UserToolCanceledMessage.js.map +0 -7
  395. package/dist/components/messages/UserToolResultMessage/UserToolErrorMessage.js +0 -15
  396. package/dist/components/messages/UserToolResultMessage/UserToolErrorMessage.js.map +0 -7
  397. package/dist/components/messages/UserToolResultMessage/UserToolRejectMessage.js +0 -27
  398. package/dist/components/messages/UserToolResultMessage/UserToolRejectMessage.js.map +0 -7
  399. package/dist/components/messages/UserToolResultMessage/UserToolResultMessage.js +0 -64
  400. package/dist/components/messages/UserToolResultMessage/UserToolResultMessage.js.map +0 -7
  401. package/dist/components/messages/UserToolResultMessage/UserToolSuccessMessage.js +0 -33
  402. package/dist/components/messages/UserToolResultMessage/UserToolSuccessMessage.js.map +0 -7
  403. package/dist/components/messages/UserToolResultMessage/utils.js +0 -50
  404. package/dist/components/messages/UserToolResultMessage/utils.js.map +0 -7
  405. package/dist/components/permissions/BashPermissionRequest/BashPermissionRequest.js +0 -112
  406. package/dist/components/permissions/BashPermissionRequest/BashPermissionRequest.js.map +0 -7
  407. package/dist/components/permissions/FallbackPermissionRequest.js +0 -131
  408. package/dist/components/permissions/FallbackPermissionRequest.js.map +0 -7
  409. package/dist/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.js +0 -159
  410. package/dist/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.js.map +0 -7
  411. package/dist/components/permissions/FileEditPermissionRequest/FileEditToolDiff.js +0 -58
  412. package/dist/components/permissions/FileEditPermissionRequest/FileEditToolDiff.js.map +0 -7
  413. package/dist/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.js +0 -153
  414. package/dist/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.js.map +0 -7
  415. package/dist/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.js +0 -70
  416. package/dist/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.js.map +0 -7
  417. package/dist/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.js +0 -212
  418. package/dist/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.js.map +0 -7
  419. package/dist/components/permissions/PermissionRequest.js +0 -74
  420. package/dist/components/permissions/PermissionRequest.js.map +0 -7
  421. package/dist/components/permissions/PermissionRequestTitle.js +0 -52
  422. package/dist/components/permissions/PermissionRequestTitle.js.map +0 -7
  423. package/dist/components/permissions/PlanApprovalRequest.js +0 -164
  424. package/dist/components/permissions/PlanApprovalRequest.js.map +0 -7
  425. package/dist/components/permissions/hooks.js +0 -23
  426. package/dist/components/permissions/hooks.js.map +0 -7
  427. package/dist/components/permissions/toolUseOptions.js +0 -46
  428. package/dist/components/permissions/toolUseOptions.js.map +0 -7
  429. package/dist/components/permissions/utils.js +0 -21
  430. package/dist/components/permissions/utils.js.map +0 -7
  431. package/dist/constants/agentTeams.js +0 -17
  432. package/dist/constants/agentTeams.js.map +0 -7
  433. package/dist/constants/claude-asterisk-ascii-art.js +0 -242
  434. package/dist/constants/claude-asterisk-ascii-art.js.map +0 -7
  435. package/dist/constants/colors.js +0 -192
  436. package/dist/constants/colors.js.map +0 -7
  437. package/dist/constants/compressionPrompts.js +0 -73
  438. package/dist/constants/compressionPrompts.js.map +0 -7
  439. package/dist/constants/figures.js +0 -6
  440. package/dist/constants/figures.js.map +0 -7
  441. package/dist/constants/formatRules.js +0 -102
  442. package/dist/constants/formatRules.js.map +0 -7
  443. package/dist/constants/macros.js +0 -12
  444. package/dist/constants/macros.js.map +0 -7
  445. package/dist/constants/modelCapabilities.js +0 -239
  446. package/dist/constants/modelCapabilities.js.map +0 -7
  447. package/dist/constants/models.js +0 -1034
  448. package/dist/constants/models.js.map +0 -7
  449. package/dist/constants/oauth.js +0 -18
  450. package/dist/constants/oauth.js.map +0 -7
  451. package/dist/constants/product.js +0 -28
  452. package/dist/constants/product.js.map +0 -7
  453. package/dist/constants/prompts/agentPrompt.js +0 -31
  454. package/dist/constants/prompts/agentPrompt.js.map +0 -7
  455. package/dist/constants/prompts/autoMemory.js +0 -39
  456. package/dist/constants/prompts/autoMemory.js.map +0 -7
  457. package/dist/constants/prompts/codeConventions.js +0 -15
  458. package/dist/constants/prompts/codeConventions.js.map +0 -7
  459. package/dist/constants/prompts/doingTasks.js +0 -34
  460. package/dist/constants/prompts/doingTasks.js.map +0 -7
  461. package/dist/constants/prompts/envInfo.js +0 -16
  462. package/dist/constants/prompts/envInfo.js.map +0 -7
  463. package/dist/constants/prompts/executingWithCare.js +0 -17
  464. package/dist/constants/prompts/executingWithCare.js.map +0 -7
  465. package/dist/constants/prompts/identity.js +0 -10
  466. package/dist/constants/prompts/identity.js.map +0 -7
  467. package/dist/constants/prompts/index.js +0 -100
  468. package/dist/constants/prompts/index.js.map +0 -7
  469. package/dist/constants/prompts/taskManagement.js +0 -19
  470. package/dist/constants/prompts/taskManagement.js.map +0 -7
  471. package/dist/constants/prompts/teamOverlays.js +0 -50
  472. package/dist/constants/prompts/teamOverlays.js.map +0 -7
  473. package/dist/constants/prompts/toneAndStyle.js +0 -37
  474. package/dist/constants/prompts/toneAndStyle.js.map +0 -7
  475. package/dist/constants/prompts/toolUsagePolicy.js +0 -23
  476. package/dist/constants/prompts/toolUsagePolicy.js.map +0 -7
  477. package/dist/constants/prompts.js +0 -13
  478. package/dist/constants/prompts.js.map +0 -7
  479. package/dist/constants/providerRegistry.js +0 -235
  480. package/dist/constants/providerRegistry.js.map +0 -7
  481. package/dist/constants/providers.js +0 -35
  482. package/dist/constants/providers.js.map +0 -7
  483. package/dist/constants/releaseNotes.js +0 -9
  484. package/dist/constants/releaseNotes.js.map +0 -7
  485. package/dist/constants/symbols.js +0 -108
  486. package/dist/constants/symbols.js.map +0 -7
  487. package/dist/constants/timing.js +0 -39
  488. package/dist/constants/timing.js.map +0 -7
  489. package/dist/constants/toolInputExamples.js +0 -88
  490. package/dist/constants/toolInputExamples.js.map +0 -7
  491. package/dist/context/PermissionContext.js +0 -110
  492. package/dist/context/PermissionContext.js.map +0 -7
  493. package/dist/context.js +0 -367
  494. package/dist/context.js.map +0 -7
  495. package/dist/core/backupHook.js +0 -29
  496. package/dist/core/backupHook.js.map +0 -7
  497. package/dist/core/backupManager.js +0 -321
  498. package/dist/core/backupManager.js.map +0 -7
  499. package/dist/core/config/defaults.js +0 -93
  500. package/dist/core/config/defaults.js.map +0 -7
  501. package/dist/core/config/index.js +0 -111
  502. package/dist/core/config/index.js.map +0 -7
  503. package/dist/core/config/loader.js +0 -221
  504. package/dist/core/config/loader.js.map +0 -7
  505. package/dist/core/config/migrations.js +0 -128
  506. package/dist/core/config/migrations.js.map +0 -7
  507. package/dist/core/config/schema.js +0 -196
  508. package/dist/core/config/schema.js.map +0 -7
  509. package/dist/core/costTracker.js +0 -131
  510. package/dist/core/costTracker.js.map +0 -7
  511. package/dist/core/gitAutoCommit.js +0 -287
  512. package/dist/core/gitAutoCommit.js.map +0 -7
  513. package/dist/core/index.js +0 -7
  514. package/dist/core/index.js.map +0 -7
  515. package/dist/core/operationTracker.js +0 -212
  516. package/dist/core/operationTracker.js.map +0 -7
  517. package/dist/core/permissions/auditLog.js +0 -204
  518. package/dist/core/permissions/auditLog.js.map +0 -7
  519. package/dist/core/permissions/engine/index.js +0 -3
  520. package/dist/core/permissions/engine/index.js.map +0 -7
  521. package/dist/core/permissions/engine/permissionEngine.js +0 -106
  522. package/dist/core/permissions/engine/permissionEngine.js.map +0 -7
  523. package/dist/core/permissions/engine/types.js +0 -1
  524. package/dist/core/permissions/engine/types.js.map +0 -7
  525. package/dist/core/permissions/index.js +0 -84
  526. package/dist/core/permissions/index.js.map +0 -7
  527. package/dist/core/permissions/ruleEngine.js +0 -259
  528. package/dist/core/permissions/ruleEngine.js.map +0 -7
  529. package/dist/core/permissions/rules/allowedToolsRule.js +0 -62
  530. package/dist/core/permissions/rules/allowedToolsRule.js.map +0 -7
  531. package/dist/core/permissions/rules/autoEscalationRule.js +0 -296
  532. package/dist/core/permissions/rules/autoEscalationRule.js.map +0 -7
  533. package/dist/core/permissions/rules/index.js +0 -46
  534. package/dist/core/permissions/rules/index.js.map +0 -7
  535. package/dist/core/permissions/rules/planModeRule.js +0 -55
  536. package/dist/core/permissions/rules/planModeRule.js.map +0 -7
  537. package/dist/core/permissions/rules/projectBoundaryRule.js +0 -173
  538. package/dist/core/permissions/rules/projectBoundaryRule.js.map +0 -7
  539. package/dist/core/permissions/rules/safeModeRule.js +0 -65
  540. package/dist/core/permissions/rules/safeModeRule.js.map +0 -7
  541. package/dist/core/permissions/rules/sensitivePathsRule.js +0 -345
  542. package/dist/core/permissions/rules/sensitivePathsRule.js.map +0 -7
  543. package/dist/core/permissions/types.js +0 -127
  544. package/dist/core/permissions/types.js.map +0 -7
  545. package/dist/core/tokenStats.js +0 -9
  546. package/dist/core/tokenStats.js.map +0 -7
  547. package/dist/core/tokenStatsManager.js +0 -354
  548. package/dist/core/tokenStatsManager.js.map +0 -7
  549. package/dist/core/tools/executor.js +0 -143
  550. package/dist/core/tools/executor.js.map +0 -7
  551. package/dist/core/tools/index.js +0 -15
  552. package/dist/core/tools/index.js.map +0 -7
  553. package/dist/core/tools/registry.js +0 -183
  554. package/dist/core/tools/registry.js.map +0 -7
  555. package/dist/core/tools/types.js +0 -1
  556. package/dist/core/tools/types.js.map +0 -7
  557. package/dist/cost-tracker.js +0 -68
  558. package/dist/cost-tracker.js.map +0 -7
  559. package/dist/engine/AgentEngine.js +0 -902
  560. package/dist/engine/AgentEngine.js.map +0 -7
  561. package/dist/engine/EngineRegistry.js +0 -89
  562. package/dist/engine/EngineRegistry.js.map +0 -7
  563. package/dist/engine/foregroundAdapter.js +0 -191
  564. package/dist/engine/foregroundAdapter.js.map +0 -7
  565. package/dist/engine/index.js +0 -15
  566. package/dist/engine/index.js.map +0 -7
  567. package/dist/engine/types.js +0 -1
  568. package/dist/engine/types.js.map +0 -7
  569. package/dist/entrypoints/bootstrap.js +0 -56
  570. package/dist/entrypoints/bootstrap.js.map +0 -7
  571. package/dist/entrypoints/cli.js +0 -1721
  572. package/dist/entrypoints/cli.js.map +0 -7
  573. package/dist/entrypoints/mcp.js +0 -153
  574. package/dist/entrypoints/mcp.js.map +0 -7
  575. package/dist/history.js +0 -96
  576. package/dist/history.js.map +0 -7
  577. package/dist/hooks/useAgentEngine.js +0 -129
  578. package/dist/hooks/useAgentEngine.js.map +0 -7
  579. package/dist/hooks/useAgentTokenStats.js +0 -56
  580. package/dist/hooks/useAgentTokenStats.js.map +0 -7
  581. package/dist/hooks/useAgentTranscripts.js +0 -141
  582. package/dist/hooks/useAgentTranscripts.js.map +0 -7
  583. package/dist/hooks/useAnimationSync.js +0 -53
  584. package/dist/hooks/useAnimationSync.js.map +0 -7
  585. package/dist/hooks/useApiKeyVerification.js +0 -12
  586. package/dist/hooks/useApiKeyVerification.js.map +0 -7
  587. package/dist/hooks/useArrowKeyHistory.js +0 -52
  588. package/dist/hooks/useArrowKeyHistory.js.map +0 -7
  589. package/dist/hooks/useAskUser.js +0 -24
  590. package/dist/hooks/useAskUser.js.map +0 -7
  591. package/dist/hooks/useBackgroundShells.js +0 -29
  592. package/dist/hooks/useBackgroundShells.js.map +0 -7
  593. package/dist/hooks/useCanUseTool.js +0 -134
  594. package/dist/hooks/useCanUseTool.js.map +0 -7
  595. package/dist/hooks/useDeferredLoading.js +0 -67
  596. package/dist/hooks/useDeferredLoading.js.map +0 -7
  597. package/dist/hooks/useDoublePress.js +0 -31
  598. package/dist/hooks/useDoublePress.js.map +0 -7
  599. package/dist/hooks/useExitOnCtrlCD.js +0 -30
  600. package/dist/hooks/useExitOnCtrlCD.js.map +0 -7
  601. package/dist/hooks/useHistorySearch.js +0 -62
  602. package/dist/hooks/useHistorySearch.js.map +0 -7
  603. package/dist/hooks/useHookStatus.js +0 -40
  604. package/dist/hooks/useHookStatus.js.map +0 -7
  605. package/dist/hooks/useIdleNotifications.js +0 -66
  606. package/dist/hooks/useIdleNotifications.js.map +0 -7
  607. package/dist/hooks/useInterval.js +0 -18
  608. package/dist/hooks/useInterval.js.map +0 -7
  609. package/dist/hooks/useLogMessages.js +0 -41
  610. package/dist/hooks/useLogMessages.js.map +0 -7
  611. package/dist/hooks/useLogStartupTime.js +0 -10
  612. package/dist/hooks/useLogStartupTime.js.map +0 -7
  613. package/dist/hooks/useMessageGroups.js +0 -43
  614. package/dist/hooks/useMessageGroups.js.map +0 -7
  615. package/dist/hooks/useNotifyAfterTimeout.js +0 -42
  616. package/dist/hooks/useNotifyAfterTimeout.js.map +0 -7
  617. package/dist/hooks/usePermissionRequestLogging.js +0 -23
  618. package/dist/hooks/usePermissionRequestLogging.js.map +0 -7
  619. package/dist/hooks/useSessionTracking.js +0 -57
  620. package/dist/hooks/useSessionTracking.js.map +0 -7
  621. package/dist/hooks/useTeamMembers.js +0 -51
  622. package/dist/hooks/useTeamMembers.js.map +0 -7
  623. package/dist/hooks/useTerminalSize.js +0 -115
  624. package/dist/hooks/useTerminalSize.js.map +0 -7
  625. package/dist/hooks/useTextInput.js +0 -253
  626. package/dist/hooks/useTextInput.js.map +0 -7
  627. package/dist/hooks/useUnifiedCompletion.js +0 -1098
  628. package/dist/hooks/useUnifiedCompletion.js.map +0 -7
  629. package/dist/i18n/index.js +0 -109
  630. package/dist/i18n/index.js.map +0 -7
  631. package/dist/i18n/locales/en.js +0 -993
  632. package/dist/i18n/locales/en.js.map +0 -7
  633. package/dist/i18n/locales/index.js +0 -7
  634. package/dist/i18n/locales/index.js.map +0 -7
  635. package/dist/i18n/locales/zh-CN.js +0 -993
  636. package/dist/i18n/locales/zh-CN.js.map +0 -7
  637. package/dist/i18n/types.js +0 -8
  638. package/dist/i18n/types.js.map +0 -7
  639. package/dist/index.js +0 -5
  640. package/dist/index.js.map +0 -7
  641. package/dist/messages.js +0 -68
  642. package/dist/messages.js.map +0 -7
  643. package/dist/package.json +0 -4
  644. package/dist/permissions.js +0 -536
  645. package/dist/permissions.js.map +0 -7
  646. package/dist/query.js +0 -851
  647. package/dist/query.js.map +0 -7
  648. package/dist/screens/LogList.js +0 -55
  649. package/dist/screens/LogList.js.map +0 -7
  650. package/dist/screens/REPL.js +0 -1240
  651. package/dist/screens/REPL.js.map +0 -7
  652. package/dist/screens/ResumeConversation.js +0 -244
  653. package/dist/screens/ResumeConversation.js.map +0 -7
  654. package/dist/services/adapters/base.js +0 -29
  655. package/dist/services/adapters/base.js.map +0 -7
  656. package/dist/services/adapters/chatCompletions.js +0 -71
  657. package/dist/services/adapters/chatCompletions.js.map +0 -7
  658. package/dist/services/adapters/messageNormalizer.js +0 -354
  659. package/dist/services/adapters/messageNormalizer.js.map +0 -7
  660. package/dist/services/adapters/responsesAPI.js +0 -137
  661. package/dist/services/adapters/responsesAPI.js.map +0 -7
  662. package/dist/services/agentTeams/backends/headless.js +0 -108
  663. package/dist/services/agentTeams/backends/headless.js.map +0 -7
  664. package/dist/services/agentTeams/backends/inProcess.js +0 -102
  665. package/dist/services/agentTeams/backends/inProcess.js.map +0 -7
  666. package/dist/services/agentTeams/backends/resolver.js +0 -18
  667. package/dist/services/agentTeams/backends/resolver.js.map +0 -7
  668. package/dist/services/agentTeams/backends/tmux.js +0 -168
  669. package/dist/services/agentTeams/backends/tmux.js.map +0 -7
  670. package/dist/services/agentTeams/backends/types.js +0 -1
  671. package/dist/services/agentTeams/backends/types.js.map +0 -7
  672. package/dist/services/agentTeams/heartbeat.js +0 -88
  673. package/dist/services/agentTeams/heartbeat.js.map +0 -7
  674. package/dist/services/agentTeams/index.js +0 -75
  675. package/dist/services/agentTeams/index.js.map +0 -7
  676. package/dist/services/agentTeams/injectionChannel.js +0 -105
  677. package/dist/services/agentTeams/injectionChannel.js.map +0 -7
  678. package/dist/services/agentTeams/mailbox.js +0 -494
  679. package/dist/services/agentTeams/mailbox.js.map +0 -7
  680. package/dist/services/agentTeams/messageFormatter.js +0 -80
  681. package/dist/services/agentTeams/messageFormatter.js.map +0 -7
  682. package/dist/services/agentTeams/permissionDelegation.js +0 -71
  683. package/dist/services/agentTeams/permissionDelegation.js.map +0 -7
  684. package/dist/services/agentTeams/teamEvents.js +0 -45
  685. package/dist/services/agentTeams/teamEvents.js.map +0 -7
  686. package/dist/services/agentTeams/teamManager.js +0 -366
  687. package/dist/services/agentTeams/teamManager.js.map +0 -7
  688. package/dist/services/agentTeams/teamTaskStore.js +0 -343
  689. package/dist/services/agentTeams/teamTaskStore.js.map +0 -7
  690. package/dist/services/agentTeams/teammateSpawner.js +0 -161
  691. package/dist/services/agentTeams/teammateSpawner.js.map +0 -7
  692. package/dist/services/checkpointManager.js +0 -399
  693. package/dist/services/checkpointManager.js.map +0 -7
  694. package/dist/services/claude.js +0 -41
  695. package/dist/services/claude.js.map +0 -7
  696. package/dist/services/compressionService.js +0 -259
  697. package/dist/services/compressionService.js.map +0 -7
  698. package/dist/services/contextMonitor.js +0 -162
  699. package/dist/services/contextMonitor.js.map +0 -7
  700. package/dist/services/customCommands.js +0 -489
  701. package/dist/services/customCommands.js.map +0 -7
  702. package/dist/services/fileFreshness.js +0 -275
  703. package/dist/services/fileFreshness.js.map +0 -7
  704. package/dist/services/gpt5ConnectionTest.js +0 -263
  705. package/dist/services/gpt5ConnectionTest.js.map +0 -7
  706. package/dist/services/hookExecutor.js +0 -771
  707. package/dist/services/hookExecutor.js.map +0 -7
  708. package/dist/services/intelligentCompactor.js +0 -281
  709. package/dist/services/intelligentCompactor.js.map +0 -7
  710. package/dist/services/llm/anthropicProvider.js +0 -804
  711. package/dist/services/llm/anthropicProvider.js.map +0 -7
  712. package/dist/services/llm/dispatch.js +0 -237
  713. package/dist/services/llm/dispatch.js.map +0 -7
  714. package/dist/services/llm/index.js +0 -44
  715. package/dist/services/llm/index.js.map +0 -7
  716. package/dist/services/llm/mintoContext.js +0 -69
  717. package/dist/services/llm/mintoContext.js.map +0 -7
  718. package/dist/services/llm/openaiProvider.js +0 -601
  719. package/dist/services/llm/openaiProvider.js.map +0 -7
  720. package/dist/services/llm/types.js +0 -231
  721. package/dist/services/llm/types.js.map +0 -7
  722. package/dist/services/lspConfig.js +0 -109
  723. package/dist/services/lspConfig.js.map +0 -7
  724. package/dist/services/mainAgentCompressor.js +0 -84
  725. package/dist/services/mainAgentCompressor.js.map +0 -7
  726. package/dist/services/mcpClient.js +0 -997
  727. package/dist/services/mcpClient.js.map +0 -7
  728. package/dist/services/mcpServerApproval.js +0 -55
  729. package/dist/services/mcpServerApproval.js.map +0 -7
  730. package/dist/services/mentionProcessor.js +0 -214
  731. package/dist/services/mentionProcessor.js.map +0 -7
  732. package/dist/services/mintoAuth.js +0 -299
  733. package/dist/services/mintoAuth.js.map +0 -7
  734. package/dist/services/modelAdapterFactory.js +0 -47
  735. package/dist/services/modelAdapterFactory.js.map +0 -7
  736. package/dist/services/modelOrchestrator.js +0 -310
  737. package/dist/services/modelOrchestrator.js.map +0 -7
  738. package/dist/services/notifier.js +0 -49
  739. package/dist/services/notifier.js.map +0 -7
  740. package/dist/services/oauth.js +0 -249
  741. package/dist/services/oauth.js.map +0 -7
  742. package/dist/services/openai.js +0 -1120
  743. package/dist/services/openai.js.map +0 -7
  744. package/dist/services/outputStyles.js +0 -219
  745. package/dist/services/outputStyles.js.map +0 -7
  746. package/dist/services/plugins/index.js +0 -5
  747. package/dist/services/plugins/index.js.map +0 -7
  748. package/dist/services/plugins/lspServers.js +0 -188
  749. package/dist/services/plugins/lspServers.js.map +0 -7
  750. package/dist/services/plugins/pluginRuntime.js +0 -236
  751. package/dist/services/plugins/pluginRuntime.js.map +0 -7
  752. package/dist/services/plugins/pluginValidation.js +0 -228
  753. package/dist/services/plugins/pluginValidation.js.map +0 -7
  754. package/dist/services/plugins/skillMarketplace.js +0 -567
  755. package/dist/services/plugins/skillMarketplace.js.map +0 -7
  756. package/dist/services/responseStateManager.js +0 -102
  757. package/dist/services/responseStateManager.js.map +0 -7
  758. package/dist/services/sandbox/filesystemBoundary.js +0 -341
  759. package/dist/services/sandbox/filesystemBoundary.js.map +0 -7
  760. package/dist/services/sandbox/index.js +0 -14
  761. package/dist/services/sandbox/index.js.map +0 -7
  762. package/dist/services/sandbox/networkProxy.js +0 -293
  763. package/dist/services/sandbox/networkProxy.js.map +0 -7
  764. package/dist/services/sandbox/sandboxController.js +0 -582
  765. package/dist/services/sandbox/sandboxController.js.map +0 -7
  766. package/dist/services/sandbox/types.js +0 -50
  767. package/dist/services/sandbox/types.js.map +0 -7
  768. package/dist/services/sentry.js +0 -9
  769. package/dist/services/sentry.js.map +0 -7
  770. package/dist/services/sessionMemory.js +0 -279
  771. package/dist/services/sessionMemory.js.map +0 -7
  772. package/dist/services/sessionMemoryInjector.js +0 -77
  773. package/dist/services/sessionMemoryInjector.js.map +0 -7
  774. package/dist/services/subagentAbortManager.js +0 -95
  775. package/dist/services/subagentAbortManager.js.map +0 -7
  776. package/dist/services/subagentCompressor.js +0 -146
  777. package/dist/services/subagentCompressor.js.map +0 -7
  778. package/dist/services/systemReminder.js +0 -815
  779. package/dist/services/systemReminder.js.map +0 -7
  780. package/dist/services/taskRouter.js +0 -324
  781. package/dist/services/taskRouter.js.map +0 -7
  782. package/dist/services/taskStore.js +0 -415
  783. package/dist/services/taskStore.js.map +0 -7
  784. package/dist/services/topicDetector.js +0 -169
  785. package/dist/services/topicDetector.js.map +0 -7
  786. package/dist/services/vcr.js +0 -133
  787. package/dist/services/vcr.js.map +0 -7
  788. package/dist/tools/ArchitectTool/ArchitectTool.js +0 -126
  789. package/dist/tools/ArchitectTool/ArchitectTool.js.map +0 -7
  790. package/dist/tools/ArchitectTool/prompt.js +0 -18
  791. package/dist/tools/ArchitectTool/prompt.js.map +0 -7
  792. package/dist/tools/AskExpertModelTool/AskExpertModelTool.js +0 -420
  793. package/dist/tools/AskExpertModelTool/AskExpertModelTool.js.map +0 -7
  794. package/dist/tools/AskUserQuestionTool/AskUserQuestionTool.js +0 -158
  795. package/dist/tools/AskUserQuestionTool/AskUserQuestionTool.js.map +0 -7
  796. package/dist/tools/AskUserQuestionTool/index.js +0 -5
  797. package/dist/tools/AskUserQuestionTool/index.js.map +0 -7
  798. package/dist/tools/AskUserQuestionTool/prompt.js +0 -167
  799. package/dist/tools/AskUserQuestionTool/prompt.js.map +0 -7
  800. package/dist/tools/BaseTool.js +0 -72
  801. package/dist/tools/BaseTool.js.map +0 -7
  802. package/dist/tools/BashOutputTool/BashOutputTool.js +0 -120
  803. package/dist/tools/BashOutputTool/BashOutputTool.js.map +0 -7
  804. package/dist/tools/BashOutputTool/BashOutputToolResultMessage.js +0 -14
  805. package/dist/tools/BashOutputTool/BashOutputToolResultMessage.js.map +0 -7
  806. package/dist/tools/BashOutputTool/prompt.js +0 -13
  807. package/dist/tools/BashOutputTool/prompt.js.map +0 -7
  808. package/dist/tools/BashTool/BashTool.js +0 -353
  809. package/dist/tools/BashTool/BashTool.js.map +0 -7
  810. package/dist/tools/BashTool/BashToolResultMessage.js +0 -24
  811. package/dist/tools/BashTool/BashToolResultMessage.js.map +0 -7
  812. package/dist/tools/BashTool/OutputLine.js +0 -84
  813. package/dist/tools/BashTool/OutputLine.js.map +0 -7
  814. package/dist/tools/BashTool/prompt.js +0 -496
  815. package/dist/tools/BashTool/prompt.js.map +0 -7
  816. package/dist/tools/BashTool/utils.js +0 -89
  817. package/dist/tools/BashTool/utils.js.map +0 -7
  818. package/dist/tools/EnterWorktreeTool/EnterWorktreeTool.js +0 -121
  819. package/dist/tools/EnterWorktreeTool/EnterWorktreeTool.js.map +0 -7
  820. package/dist/tools/EnterWorktreeTool/prompt.js +0 -22
  821. package/dist/tools/EnterWorktreeTool/prompt.js.map +0 -7
  822. package/dist/tools/FileEditTool/FileEditTool.js +0 -278
  823. package/dist/tools/FileEditTool/FileEditTool.js.map +0 -7
  824. package/dist/tools/FileEditTool/prompt.js +0 -56
  825. package/dist/tools/FileEditTool/prompt.js.map +0 -7
  826. package/dist/tools/FileEditTool/utils.js +0 -48
  827. package/dist/tools/FileEditTool/utils.js.map +0 -7
  828. package/dist/tools/FileReadTool/FileReadTool.js +0 -427
  829. package/dist/tools/FileReadTool/FileReadTool.js.map +0 -7
  830. package/dist/tools/FileReadTool/prompt.js +0 -24
  831. package/dist/tools/FileReadTool/prompt.js.map +0 -7
  832. package/dist/tools/FileWriteTool/FileWriteTool.js +0 -211
  833. package/dist/tools/FileWriteTool/FileWriteTool.js.map +0 -7
  834. package/dist/tools/FileWriteTool/prompt.js +0 -21
  835. package/dist/tools/FileWriteTool/prompt.js.map +0 -7
  836. package/dist/tools/GlobTool/GlobTool.js +0 -100
  837. package/dist/tools/GlobTool/GlobTool.js.map +0 -7
  838. package/dist/tools/GlobTool/prompt.js +0 -23
  839. package/dist/tools/GlobTool/prompt.js.map +0 -7
  840. package/dist/tools/GrepTool/GrepTool.js +0 -417
  841. package/dist/tools/GrepTool/GrepTool.js.map +0 -7
  842. package/dist/tools/GrepTool/prompt.js +0 -22
  843. package/dist/tools/GrepTool/prompt.js.map +0 -7
  844. package/dist/tools/KillShellTool/KillShellTool.js +0 -92
  845. package/dist/tools/KillShellTool/KillShellTool.js.map +0 -7
  846. package/dist/tools/KillShellTool/KillShellToolResultMessage.js +0 -14
  847. package/dist/tools/KillShellTool/KillShellToolResultMessage.js.map +0 -7
  848. package/dist/tools/KillShellTool/prompt.js +0 -12
  849. package/dist/tools/KillShellTool/prompt.js.map +0 -7
  850. package/dist/tools/ListMcpResourcesTool/ListMcpResourcesTool.js +0 -109
  851. package/dist/tools/ListMcpResourcesTool/ListMcpResourcesTool.js.map +0 -7
  852. package/dist/tools/ListMcpResourcesTool/prompt.js +0 -19
  853. package/dist/tools/ListMcpResourcesTool/prompt.js.map +0 -7
  854. package/dist/tools/LspTool/LspTool.js +0 -673
  855. package/dist/tools/LspTool/LspTool.js.map +0 -7
  856. package/dist/tools/LspTool/prompt.js +0 -27
  857. package/dist/tools/LspTool/prompt.js.map +0 -7
  858. package/dist/tools/MCPSearchTool/MCPSearchTool.js +0 -172
  859. package/dist/tools/MCPSearchTool/MCPSearchTool.js.map +0 -7
  860. package/dist/tools/MCPSearchTool/prompt.js +0 -77
  861. package/dist/tools/MCPSearchTool/prompt.js.map +0 -7
  862. package/dist/tools/MCPTool/MCPTool.js +0 -97
  863. package/dist/tools/MCPTool/MCPTool.js.map +0 -7
  864. package/dist/tools/MCPTool/prompt.js +0 -7
  865. package/dist/tools/MCPTool/prompt.js.map +0 -7
  866. package/dist/tools/MemoryReadTool/MemoryReadTool.js +0 -117
  867. package/dist/tools/MemoryReadTool/MemoryReadTool.js.map +0 -7
  868. package/dist/tools/MemoryReadTool/prompt.js +0 -7
  869. package/dist/tools/MemoryReadTool/prompt.js.map +0 -7
  870. package/dist/tools/MemoryWriteTool/MemoryWriteTool.js +0 -78
  871. package/dist/tools/MemoryWriteTool/MemoryWriteTool.js.map +0 -7
  872. package/dist/tools/MemoryWriteTool/prompt.js +0 -7
  873. package/dist/tools/MemoryWriteTool/prompt.js.map +0 -7
  874. package/dist/tools/MultiEditTool/MultiEditTool.js +0 -328
  875. package/dist/tools/MultiEditTool/MultiEditTool.js.map +0 -7
  876. package/dist/tools/MultiEditTool/prompt.js +0 -47
  877. package/dist/tools/MultiEditTool/prompt.js.map +0 -7
  878. package/dist/tools/NotebookEditTool/NotebookEditTool.js +0 -257
  879. package/dist/tools/NotebookEditTool/NotebookEditTool.js.map +0 -7
  880. package/dist/tools/NotebookEditTool/prompt.js +0 -7
  881. package/dist/tools/NotebookEditTool/prompt.js.map +0 -7
  882. package/dist/tools/NotebookReadTool/NotebookReadTool.js +0 -218
  883. package/dist/tools/NotebookReadTool/NotebookReadTool.js.map +0 -7
  884. package/dist/tools/NotebookReadTool/prompt.js +0 -7
  885. package/dist/tools/NotebookReadTool/prompt.js.map +0 -7
  886. package/dist/tools/PlanModeTool/EnterPlanModeTool.js +0 -85
  887. package/dist/tools/PlanModeTool/EnterPlanModeTool.js.map +0 -7
  888. package/dist/tools/PlanModeTool/ExitPlanModeTool.js +0 -164
  889. package/dist/tools/PlanModeTool/ExitPlanModeTool.js.map +0 -7
  890. package/dist/tools/PlanModeTool/prompt.js +0 -43
  891. package/dist/tools/PlanModeTool/prompt.js.map +0 -7
  892. package/dist/tools/ReadMcpResourceTool/ReadMcpResourceTool.js +0 -130
  893. package/dist/tools/ReadMcpResourceTool/ReadMcpResourceTool.js.map +0 -7
  894. package/dist/tools/ReadMcpResourceTool/prompt.js +0 -17
  895. package/dist/tools/ReadMcpResourceTool/prompt.js.map +0 -7
  896. package/dist/tools/SendMessageTool/SendMessageTool.js +0 -341
  897. package/dist/tools/SendMessageTool/SendMessageTool.js.map +0 -7
  898. package/dist/tools/SendMessageTool/prompt.js +0 -44
  899. package/dist/tools/SendMessageTool/prompt.js.map +0 -7
  900. package/dist/tools/SkillTool/SkillTool.js +0 -227
  901. package/dist/tools/SkillTool/SkillTool.js.map +0 -7
  902. package/dist/tools/SkillTool/prompt.js +0 -81
  903. package/dist/tools/SkillTool/prompt.js.map +0 -7
  904. package/dist/tools/SlashCommandTool/SlashCommandTool.js +0 -416
  905. package/dist/tools/SlashCommandTool/SlashCommandTool.js.map +0 -7
  906. package/dist/tools/SlashCommandTool/prompt.js +0 -35
  907. package/dist/tools/SlashCommandTool/prompt.js.map +0 -7
  908. package/dist/tools/TaskCreateTool/TaskCreateTool.js +0 -102
  909. package/dist/tools/TaskCreateTool/TaskCreateTool.js.map +0 -7
  910. package/dist/tools/TaskCreateTool/prompt.js +0 -58
  911. package/dist/tools/TaskCreateTool/prompt.js.map +0 -7
  912. package/dist/tools/TaskGetTool/TaskGetTool.js +0 -115
  913. package/dist/tools/TaskGetTool/TaskGetTool.js.map +0 -7
  914. package/dist/tools/TaskGetTool/prompt.js +0 -28
  915. package/dist/tools/TaskGetTool/prompt.js.map +0 -7
  916. package/dist/tools/TaskListTool/TaskListTool.js +0 -102
  917. package/dist/tools/TaskListTool/TaskListTool.js.map +0 -7
  918. package/dist/tools/TaskListTool/prompt.js +0 -42
  919. package/dist/tools/TaskListTool/prompt.js.map +0 -7
  920. package/dist/tools/TaskOutputTool/TaskOutputTool.js +0 -190
  921. package/dist/tools/TaskOutputTool/TaskOutputTool.js.map +0 -7
  922. package/dist/tools/TaskOutputTool/prompt.js +0 -16
  923. package/dist/tools/TaskOutputTool/prompt.js.map +0 -7
  924. package/dist/tools/TaskStopTool/TaskStopTool.js +0 -150
  925. package/dist/tools/TaskStopTool/TaskStopTool.js.map +0 -7
  926. package/dist/tools/TaskStopTool/prompt.js +0 -15
  927. package/dist/tools/TaskStopTool/prompt.js.map +0 -7
  928. package/dist/tools/TaskTool/TaskTool.js +0 -1525
  929. package/dist/tools/TaskTool/TaskTool.js.map +0 -7
  930. package/dist/tools/TaskTool/constants.js +0 -11
  931. package/dist/tools/TaskTool/constants.js.map +0 -7
  932. package/dist/tools/TaskTool/prompt.js +0 -121
  933. package/dist/tools/TaskTool/prompt.js.map +0 -7
  934. package/dist/tools/TaskUpdateTool/TaskUpdateTool.js +0 -148
  935. package/dist/tools/TaskUpdateTool/TaskUpdateTool.js.map +0 -7
  936. package/dist/tools/TaskUpdateTool/prompt.js +0 -81
  937. package/dist/tools/TaskUpdateTool/prompt.js.map +0 -7
  938. package/dist/tools/TeamCreateTool/TeamCreateTool.js +0 -129
  939. package/dist/tools/TeamCreateTool/TeamCreateTool.js.map +0 -7
  940. package/dist/tools/TeamCreateTool/prompt.js +0 -58
  941. package/dist/tools/TeamCreateTool/prompt.js.map +0 -7
  942. package/dist/tools/TeamDeleteTool/TeamDeleteTool.js +0 -151
  943. package/dist/tools/TeamDeleteTool/TeamDeleteTool.js.map +0 -7
  944. package/dist/tools/TeamDeleteTool/prompt.js +0 -16
  945. package/dist/tools/TeamDeleteTool/prompt.js.map +0 -7
  946. package/dist/tools/ThinkTool/ThinkTool.js +0 -45
  947. package/dist/tools/ThinkTool/ThinkTool.js.map +0 -7
  948. package/dist/tools/ThinkTool/prompt.js +0 -16
  949. package/dist/tools/ThinkTool/prompt.js.map +0 -7
  950. package/dist/tools/TodoWriteTool/TodoWriteTool.js +0 -232
  951. package/dist/tools/TodoWriteTool/TodoWriteTool.js.map +0 -7
  952. package/dist/tools/TodoWriteTool/prompt.js +0 -87
  953. package/dist/tools/TodoWriteTool/prompt.js.map +0 -7
  954. package/dist/tools/URLFetcherTool/URLFetcherTool.js +0 -234
  955. package/dist/tools/URLFetcherTool/URLFetcherTool.js.map +0 -7
  956. package/dist/tools/URLFetcherTool/cache.js +0 -95
  957. package/dist/tools/URLFetcherTool/cache.js.map +0 -7
  958. package/dist/tools/URLFetcherTool/htmlToMarkdown.js +0 -44
  959. package/dist/tools/URLFetcherTool/htmlToMarkdown.js.map +0 -7
  960. package/dist/tools/URLFetcherTool/prompt.js +0 -28
  961. package/dist/tools/URLFetcherTool/prompt.js.map +0 -7
  962. package/dist/tools/WebSearchTool/WebSearchTool.js +0 -92
  963. package/dist/tools/WebSearchTool/WebSearchTool.js.map +0 -7
  964. package/dist/tools/WebSearchTool/prompt.js +0 -24
  965. package/dist/tools/WebSearchTool/prompt.js.map +0 -7
  966. package/dist/tools/WebSearchTool/searchProviders.js +0 -58
  967. package/dist/tools/WebSearchTool/searchProviders.js.map +0 -7
  968. package/dist/tools/lsTool/lsTool.js +0 -201
  969. package/dist/tools/lsTool/lsTool.js.map +0 -7
  970. package/dist/tools/lsTool/prompt.js +0 -5
  971. package/dist/tools/lsTool/prompt.js.map +0 -7
  972. package/dist/tools.js +0 -207
  973. package/dist/tools.js.map +0 -7
  974. package/dist/types/PermissionMode.js +0 -160
  975. package/dist/types/PermissionMode.js.map +0 -7
  976. package/dist/types/RequestContext.js +0 -47
  977. package/dist/types/RequestContext.js.map +0 -7
  978. package/dist/types/agentTeams.js +0 -1
  979. package/dist/types/agentTeams.js.map +0 -7
  980. package/dist/types/askUserQuestion.js +0 -1
  981. package/dist/types/askUserQuestion.js.map +0 -7
  982. package/dist/types/common.d.js +0 -1
  983. package/dist/types/common.d.js.map +0 -7
  984. package/dist/types/conversation.js +0 -1
  985. package/dist/types/conversation.js.map +0 -7
  986. package/dist/types/core.js +0 -1
  987. package/dist/types/core.js.map +0 -7
  988. package/dist/types/hooks.js +0 -47
  989. package/dist/types/hooks.js.map +0 -7
  990. package/dist/types/interactionRound.js +0 -1
  991. package/dist/types/interactionRound.js.map +0 -7
  992. package/dist/types/logs.js +0 -1
  993. package/dist/types/logs.js.map +0 -7
  994. package/dist/types/marketplace.js +0 -107
  995. package/dist/types/marketplace.js.map +0 -7
  996. package/dist/types/messageGroup.js +0 -36
  997. package/dist/types/messageGroup.js.map +0 -7
  998. package/dist/types/modelCapabilities.js +0 -1
  999. package/dist/types/modelCapabilities.js.map +0 -7
  1000. package/dist/types/notebook.js +0 -1
  1001. package/dist/types/notebook.js.map +0 -7
  1002. package/dist/types/plugin.js +0 -86
  1003. package/dist/types/plugin.js.map +0 -7
  1004. package/dist/types/subagent.js +0 -1
  1005. package/dist/types/subagent.js.map +0 -7
  1006. package/dist/types/thinking.js +0 -1
  1007. package/dist/types/thinking.js.map +0 -7
  1008. package/dist/utils/BackgroundShellManager.js +0 -378
  1009. package/dist/utils/BackgroundShellManager.js.map +0 -7
  1010. package/dist/utils/CircuitBreaker.js +0 -248
  1011. package/dist/utils/CircuitBreaker.js.map +0 -7
  1012. package/dist/utils/Cursor.js +0 -315
  1013. package/dist/utils/Cursor.js.map +0 -7
  1014. package/dist/utils/MessageBatchBuffer.js +0 -102
  1015. package/dist/utils/MessageBatchBuffer.js.map +0 -7
  1016. package/dist/utils/PersistentShell.js +0 -526
  1017. package/dist/utils/PersistentShell.js.map +0 -7
  1018. package/dist/utils/advancedFuzzyMatcher.js +0 -209
  1019. package/dist/utils/advancedFuzzyMatcher.js.map +0 -7
  1020. package/dist/utils/agentHookExecutor.js +0 -103
  1021. package/dist/utils/agentHookExecutor.js.map +0 -7
  1022. package/dist/utils/agentLoader.js +0 -655
  1023. package/dist/utils/agentLoader.js.map +0 -7
  1024. package/dist/utils/agentMemory.js +0 -134
  1025. package/dist/utils/agentMemory.js.map +0 -7
  1026. package/dist/utils/agentStorage.js +0 -59
  1027. package/dist/utils/agentStorage.js.map +0 -7
  1028. package/dist/utils/agentTranscripts.js +0 -641
  1029. package/dist/utils/agentTranscripts.js.map +0 -7
  1030. package/dist/utils/animationManager.js +0 -250
  1031. package/dist/utils/animationManager.js.map +0 -7
  1032. package/dist/utils/animationSync.js +0 -110
  1033. package/dist/utils/animationSync.js.map +0 -7
  1034. package/dist/utils/array.js +0 -7
  1035. package/dist/utils/array.js.map +0 -7
  1036. package/dist/utils/ask.js +0 -80
  1037. package/dist/utils/ask.js.map +0 -7
  1038. package/dist/utils/async.js +0 -167
  1039. package/dist/utils/async.js.map +0 -7
  1040. package/dist/utils/asyncFile.js +0 -215
  1041. package/dist/utils/asyncFile.js.map +0 -7
  1042. package/dist/utils/atomicWrite.js +0 -23
  1043. package/dist/utils/atomicWrite.js.map +0 -7
  1044. package/dist/utils/auth.js +0 -11
  1045. package/dist/utils/auth.js.map +0 -7
  1046. package/dist/utils/autoCompactCore.js +0 -203
  1047. package/dist/utils/autoCompactCore.js.map +0 -7
  1048. package/dist/utils/autoMemoryPaths.js +0 -89
  1049. package/dist/utils/autoMemoryPaths.js.map +0 -7
  1050. package/dist/utils/autoUpdater.js +0 -113
  1051. package/dist/utils/autoUpdater.js.map +0 -7
  1052. package/dist/utils/backgroundAgentManager.js +0 -231
  1053. package/dist/utils/backgroundAgentManager.js.map +0 -7
  1054. package/dist/utils/browser.js +0 -15
  1055. package/dist/utils/browser.js.map +0 -7
  1056. package/dist/utils/claudeCodeSync.js +0 -439
  1057. package/dist/utils/claudeCodeSync.js.map +0 -7
  1058. package/dist/utils/cleanup.js +0 -54
  1059. package/dist/utils/cleanup.js.map +0 -7
  1060. package/dist/utils/commands.js +0 -219
  1061. package/dist/utils/commands.js.map +0 -7
  1062. package/dist/utils/commonUnixCommands.js +0 -689
  1063. package/dist/utils/commonUnixCommands.js.map +0 -7
  1064. package/dist/utils/compressionMode.js +0 -47
  1065. package/dist/utils/compressionMode.js.map +0 -7
  1066. package/dist/utils/config.js +0 -716
  1067. package/dist/utils/config.js.map +0 -7
  1068. package/dist/utils/configPaths.js +0 -199
  1069. package/dist/utils/configPaths.js.map +0 -7
  1070. package/dist/utils/configSchema.js +0 -232
  1071. package/dist/utils/configSchema.js.map +0 -7
  1072. package/dist/utils/conversationRecovery.js +0 -54
  1073. package/dist/utils/conversationRecovery.js.map +0 -7
  1074. package/dist/utils/credentials/CredentialStore.js +0 -1
  1075. package/dist/utils/credentials/CredentialStore.js.map +0 -7
  1076. package/dist/utils/credentials/EncryptedFileStore.js +0 -157
  1077. package/dist/utils/credentials/EncryptedFileStore.js.map +0 -7
  1078. package/dist/utils/credentials/index.js +0 -51
  1079. package/dist/utils/credentials/index.js.map +0 -7
  1080. package/dist/utils/credentials/migration.js +0 -82
  1081. package/dist/utils/credentials/migration.js.map +0 -7
  1082. package/dist/utils/debugLogger.js +0 -889
  1083. package/dist/utils/debugLogger.js.map +0 -7
  1084. package/dist/utils/diff.js +0 -32
  1085. package/dist/utils/diff.js.map +0 -7
  1086. package/dist/utils/dualPath.js +0 -24
  1087. package/dist/utils/dualPath.js.map +0 -7
  1088. package/dist/utils/env.js +0 -45
  1089. package/dist/utils/env.js.map +0 -7
  1090. package/dist/utils/envConfig.js +0 -116
  1091. package/dist/utils/envConfig.js.map +0 -7
  1092. package/dist/utils/errorHandling.js +0 -89
  1093. package/dist/utils/errorHandling.js.map +0 -7
  1094. package/dist/utils/errors.js +0 -23
  1095. package/dist/utils/errors.js.map +0 -7
  1096. package/dist/utils/execFileNoThrow.js +0 -45
  1097. package/dist/utils/execFileNoThrow.js.map +0 -7
  1098. package/dist/utils/exit.js +0 -132
  1099. package/dist/utils/exit.js.map +0 -7
  1100. package/dist/utils/expertChatStorage.js +0 -78
  1101. package/dist/utils/expertChatStorage.js.map +0 -7
  1102. package/dist/utils/externalEditor.js +0 -155
  1103. package/dist/utils/externalEditor.js.map +0 -7
  1104. package/dist/utils/file.js +0 -282
  1105. package/dist/utils/file.js.map +0 -7
  1106. package/dist/utils/fileLock.js +0 -67
  1107. package/dist/utils/fileLock.js.map +0 -7
  1108. package/dist/utils/fileRecoveryCore.js +0 -41
  1109. package/dist/utils/fileRecoveryCore.js.map +0 -7
  1110. package/dist/utils/format.js +0 -119
  1111. package/dist/utils/format.js.map +0 -7
  1112. package/dist/utils/fuzzyMatcher.js +0 -258
  1113. package/dist/utils/fuzzyMatcher.js.map +0 -7
  1114. package/dist/utils/generators.js +0 -116
  1115. package/dist/utils/generators.js.map +0 -7
  1116. package/dist/utils/git.js +0 -83
  1117. package/dist/utils/git.js.map +0 -7
  1118. package/dist/utils/globalErrorHandler.js +0 -58
  1119. package/dist/utils/globalErrorHandler.js.map +0 -7
  1120. package/dist/utils/gpt5.js +0 -146
  1121. package/dist/utils/gpt5.js.map +0 -7
  1122. package/dist/utils/groupHandlers/index.js +0 -8
  1123. package/dist/utils/groupHandlers/index.js.map +0 -7
  1124. package/dist/utils/groupHandlers/parallelTasksHandler.js +0 -142
  1125. package/dist/utils/groupHandlers/parallelTasksHandler.js.map +0 -7
  1126. package/dist/utils/groupHandlers/taskHandler.js +0 -104
  1127. package/dist/utils/groupHandlers/taskHandler.js.map +0 -7
  1128. package/dist/utils/groupHandlers/types.js +0 -1
  1129. package/dist/utils/groupHandlers/types.js.map +0 -7
  1130. package/dist/utils/historyManager.js +0 -234
  1131. package/dist/utils/historyManager.js.map +0 -7
  1132. package/dist/utils/hookManager.js +0 -540
  1133. package/dist/utils/hookManager.js.map +0 -7
  1134. package/dist/utils/http.js +0 -7
  1135. package/dist/utils/http.js.map +0 -7
  1136. package/dist/utils/imagePaste.js +0 -29
  1137. package/dist/utils/imagePaste.js.map +0 -7
  1138. package/dist/utils/json.js +0 -16
  1139. package/dist/utils/json.js.map +0 -7
  1140. package/dist/utils/log.js +0 -333
  1141. package/dist/utils/log.js.map +0 -7
  1142. package/dist/utils/logRotation.js +0 -224
  1143. package/dist/utils/logRotation.js.map +0 -7
  1144. package/dist/utils/markdown.js +0 -464
  1145. package/dist/utils/markdown.js.map +0 -7
  1146. package/dist/utils/marketplaceManager.js +0 -545
  1147. package/dist/utils/marketplaceManager.js.map +0 -7
  1148. package/dist/utils/memSafety.js +0 -264
  1149. package/dist/utils/memSafety.js.map +0 -7
  1150. package/dist/utils/memoizeWithTTL.js +0 -25
  1151. package/dist/utils/memoizeWithTTL.js.map +0 -7
  1152. package/dist/utils/messageContextManager.js +0 -208
  1153. package/dist/utils/messageContextManager.js.map +0 -7
  1154. package/dist/utils/messageGroupManager.js +0 -274
  1155. package/dist/utils/messageGroupManager.js.map +0 -7
  1156. package/dist/utils/messages.js +0 -725
  1157. package/dist/utils/messages.js.map +0 -7
  1158. package/dist/utils/migration/index.js +0 -37
  1159. package/dist/utils/migration/index.js.map +0 -7
  1160. package/dist/utils/migration/migrateHistory.js +0 -273
  1161. package/dist/utils/migration/migrateHistory.js.map +0 -7
  1162. package/dist/utils/migration/migrateTodos.js +0 -323
  1163. package/dist/utils/migration/migrateTodos.js.map +0 -7
  1164. package/dist/utils/model.js +0 -846
  1165. package/dist/utils/model.js.map +0 -7
  1166. package/dist/utils/pasteCache.js +0 -313
  1167. package/dist/utils/pasteCache.js.map +0 -7
  1168. package/dist/utils/permissions/filesystem.js +0 -236
  1169. package/dist/utils/permissions/filesystem.js.map +0 -7
  1170. package/dist/utils/plan/planMode.js +0 -143
  1171. package/dist/utils/plan/planMode.js.map +0 -7
  1172. package/dist/utils/pluginInstaller.js +0 -518
  1173. package/dist/utils/pluginInstaller.js.map +0 -7
  1174. package/dist/utils/pluginLoader.js +0 -819
  1175. package/dist/utils/pluginLoader.js.map +0 -7
  1176. package/dist/utils/pluginRegistry.js +0 -111
  1177. package/dist/utils/pluginRegistry.js.map +0 -7
  1178. package/dist/utils/pluginValidator.js +0 -798
  1179. package/dist/utils/pluginValidator.js.map +0 -7
  1180. package/dist/utils/ptyCompat.js +0 -125
  1181. package/dist/utils/ptyCompat.js.map +0 -7
  1182. package/dist/utils/replStateMachine.js +0 -145
  1183. package/dist/utils/replStateMachine.js.map +0 -7
  1184. package/dist/utils/repoFetcher.js +0 -110
  1185. package/dist/utils/repoFetcher.js.map +0 -7
  1186. package/dist/utils/ripgrep.js +0 -236
  1187. package/dist/utils/ripgrep.js.map +0 -7
  1188. package/dist/utils/roundConverter.js +0 -262
  1189. package/dist/utils/roundConverter.js.map +0 -7
  1190. package/dist/utils/safeFetch.js +0 -45
  1191. package/dist/utils/safeFetch.js.map +0 -7
  1192. package/dist/utils/safePath.js +0 -132
  1193. package/dist/utils/safePath.js.map +0 -7
  1194. package/dist/utils/sanitizeInput.js +0 -32
  1195. package/dist/utils/sanitizeInput.js.map +0 -7
  1196. package/dist/utils/secureFile.js +0 -512
  1197. package/dist/utils/secureFile.js.map +0 -7
  1198. package/dist/utils/secureKeyStorage.js +0 -341
  1199. package/dist/utils/secureKeyStorage.js.map +0 -7
  1200. package/dist/utils/sensitiveFiles.js +0 -125
  1201. package/dist/utils/sensitiveFiles.js.map +0 -7
  1202. package/dist/utils/session/sessionPlugins.js +0 -67
  1203. package/dist/utils/session/sessionPlugins.js.map +0 -7
  1204. package/dist/utils/sessionIndex.js +0 -192
  1205. package/dist/utils/sessionIndex.js.map +0 -7
  1206. package/dist/utils/sessionState.js +0 -22
  1207. package/dist/utils/sessionState.js.map +0 -7
  1208. package/dist/utils/sessionTracker.js +0 -170
  1209. package/dist/utils/sessionTracker.js.map +0 -7
  1210. package/dist/utils/simpleMode.js +0 -7
  1211. package/dist/utils/simpleMode.js.map +0 -7
  1212. package/dist/utils/skillLoader.js +0 -230
  1213. package/dist/utils/skillLoader.js.map +0 -7
  1214. package/dist/utils/state.js +0 -24
  1215. package/dist/utils/state.js.map +0 -7
  1216. package/dist/utils/stats.js +0 -417
  1217. package/dist/utils/stats.js.map +0 -7
  1218. package/dist/utils/streamingState.js +0 -62
  1219. package/dist/utils/streamingState.js.map +0 -7
  1220. package/dist/utils/stringSubstitution.js +0 -106
  1221. package/dist/utils/stringSubstitution.js.map +0 -7
  1222. package/dist/utils/style.js +0 -34
  1223. package/dist/utils/style.js.map +0 -7
  1224. package/dist/utils/taskDisplayUtils.js +0 -258
  1225. package/dist/utils/taskDisplayUtils.js.map +0 -7
  1226. package/dist/utils/teamConfig.js +0 -624
  1227. package/dist/utils/teamConfig.js.map +0 -7
  1228. package/dist/utils/terminal.js +0 -59
  1229. package/dist/utils/terminal.js.map +0 -7
  1230. package/dist/utils/theme.js +0 -134
  1231. package/dist/utils/theme.js.map +0 -7
  1232. package/dist/utils/thinking.js +0 -63
  1233. package/dist/utils/thinking.js.map +0 -7
  1234. package/dist/utils/todoChangeCalculator.js +0 -64
  1235. package/dist/utils/todoChangeCalculator.js.map +0 -7
  1236. package/dist/utils/todoStorage.js +0 -413
  1237. package/dist/utils/todoStorage.js.map +0 -7
  1238. package/dist/utils/tokenProgress.js +0 -55
  1239. package/dist/utils/tokenProgress.js.map +0 -7
  1240. package/dist/utils/tokens.js +0 -30
  1241. package/dist/utils/tokens.js.map +0 -7
  1242. package/dist/utils/toolExecutionController.js +0 -109
  1243. package/dist/utils/toolExecutionController.js.map +0 -7
  1244. package/dist/utils/toolRiskClassification.js +0 -210
  1245. package/dist/utils/toolRiskClassification.js.map +0 -7
  1246. package/dist/utils/toolTimeout.js +0 -136
  1247. package/dist/utils/toolTimeout.js.map +0 -7
  1248. package/dist/utils/tooling/safeRender.js +0 -115
  1249. package/dist/utils/tooling/safeRender.js.map +0 -7
  1250. package/dist/utils/tooling/toolError.js +0 -12
  1251. package/dist/utils/tooling/toolError.js.map +0 -7
  1252. package/dist/utils/unaryLogging.js +0 -6
  1253. package/dist/utils/unaryLogging.js.map +0 -7
  1254. package/dist/utils/user.js +0 -40
  1255. package/dist/utils/user.js.map +0 -7
  1256. package/dist/utils/userFriendlyError.js +0 -346
  1257. package/dist/utils/userFriendlyError.js.map +0 -7
  1258. package/dist/utils/validate.js +0 -132
  1259. package/dist/utils/validate.js.map +0 -7
  1260. package/dist/version.js +0 -7
  1261. package/dist/version.js.map +0 -7
  1262. package/dist/yoga.wasm +0 -0
  1263. /package/{dist/utils/vendor → vendor}/ripgrep/arm64-darwin/rg +0 -0
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/utils/agentTranscripts.ts"],
4
- "sourcesContent": ["/**\n * Agent Transcripts System\n *\n * Provides persistent storage for agent execution history, enabling:\n * - Resume interrupted agent executions\n * - View agent execution history\n * - Debug and audit agent behavior\n *\n * Storage location: ~/.minto/transcripts/{agentId}.json\n */\n\nimport {\n existsSync,\n readFileSync,\n writeFileSync,\n mkdirSync,\n readdirSync,\n unlinkSync,\n} from 'fs'\nimport { join } from 'path'\nimport { homedir } from 'os'\nimport { EventEmitter } from 'events'\nimport type { Message as MessageType } from '@query'\nimport { debug as debugLogger } from './debugLogger'\n\n/**\n * Event types for transcript updates\n */\nexport type TranscriptEventType =\n | 'created'\n | 'updated'\n | 'message_appended'\n | 'status_changed'\n | 'completed'\n | 'failed'\n | 'interrupted'\n\n/**\n * Event payload for transcript events\n */\nexport interface TranscriptEvent {\n type: TranscriptEventType\n agentId: string\n toolUseId?: string\n transcript: AgentTranscript\n previousStatus?: AgentStatus\n}\n\n/**\n * AgentTranscript Event Emitter\n *\n * Provides real-time event notification for transcript changes,\n * enabling UI components to react immediately without polling.\n *\n * Performance optimizations:\n * - Throttled message_appended events to reduce UI re-renders\n * - Immediate emission for status changes and critical events\n * - Batched updates for high-frequency events\n *\n * Usage:\n * ```typescript\n * // Subscribe to all updates\n * transcriptEmitter.on('update', (event) => { ... })\n *\n * // Subscribe to specific agent updates\n * transcriptEmitter.on('update:agent-123', (transcript) => { ... })\n *\n * // Subscribe to specific event types\n * transcriptEmitter.on('status_changed', (event) => { ... })\n * ```\n */\nclass AgentTranscriptEmitter extends EventEmitter {\n private static instance: AgentTranscriptEmitter\n\n // Throttle configuration\n private static readonly THROTTLE_INTERVAL = 100 // ms between message_appended events\n private static readonly HIGH_PRIORITY_EVENTS: TranscriptEventType[] = [\n 'created',\n 'completed',\n 'failed',\n 'interrupted',\n 'status_changed',\n ]\n\n // Throttle state per agent\n private throttleState: Map<\n string,\n {\n lastEmitTime: number\n pendingEvent: TranscriptEvent | null\n timeoutId: ReturnType<typeof setTimeout> | null\n }\n > = new Map()\n\n private constructor() {\n super()\n // Increase max listeners for concurrent agent scenarios\n this.setMaxListeners(100)\n }\n\n static getInstance(): AgentTranscriptEmitter {\n if (!AgentTranscriptEmitter.instance) {\n AgentTranscriptEmitter.instance = new AgentTranscriptEmitter()\n }\n return AgentTranscriptEmitter.instance\n }\n\n /**\n * Get or create throttle state for an agent\n */\n private getThrottleState(agentId: string) {\n let state = this.throttleState.get(agentId)\n if (!state) {\n state = {\n lastEmitTime: 0,\n pendingEvent: null,\n timeoutId: null,\n }\n this.throttleState.set(agentId, state)\n }\n return state\n }\n\n /**\n * Clean up throttle state for an agent (call when agent completes)\n */\n private cleanupThrottleState(agentId: string): void {\n const state = this.throttleState.get(agentId)\n if (state?.timeoutId) {\n clearTimeout(state.timeoutId)\n }\n this.throttleState.delete(agentId)\n }\n\n /**\n * Internal emit that actually sends the event\n */\n private doEmit(event: TranscriptEvent): void {\n // Emit general update event\n this.emit('update', event)\n\n // Emit agent-specific event\n this.emit(`update:${event.agentId}`, event.transcript)\n\n // Emit toolUseId-specific event (for Task tool UI updates)\n if (event.toolUseId) {\n this.emit(`update:toolUse:${event.toolUseId}`, event.transcript)\n }\n\n // Emit event-type specific event\n this.emit(event.type, event)\n\n debugLogger.trace('TRANSCRIPT_EVENT_EMITTED', {\n type: event.type,\n agentId: event.agentId,\n status: event.transcript.status,\n })\n }\n\n /**\n * Emit a transcript update event\n *\n * High-priority events (status changes, completion) are emitted immediately.\n * Low-priority events (message_appended) are throttled to reduce UI flickering.\n */\n emitUpdate(event: TranscriptEvent): void {\n // High-priority events: emit immediately\n if (AgentTranscriptEmitter.HIGH_PRIORITY_EVENTS.includes(event.type)) {\n // Clean up throttle state on completion events\n if (\n event.type === 'completed' ||\n event.type === 'failed' ||\n event.type === 'interrupted'\n ) {\n // Flush any pending event first\n const state = this.throttleState.get(event.agentId)\n if (state?.pendingEvent) {\n this.doEmit(state.pendingEvent)\n }\n this.cleanupThrottleState(event.agentId)\n }\n\n this.doEmit(event)\n return\n }\n\n // Low-priority events: apply throttling\n const state = this.getThrottleState(event.agentId)\n const now = Date.now()\n const timeSinceLastEmit = now - state.lastEmitTime\n\n if (timeSinceLastEmit >= AgentTranscriptEmitter.THROTTLE_INTERVAL) {\n // Enough time has passed, emit immediately\n state.lastEmitTime = now\n state.pendingEvent = null\n if (state.timeoutId) {\n clearTimeout(state.timeoutId)\n state.timeoutId = null\n }\n this.doEmit(event)\n } else {\n // Store as pending and schedule delayed emit\n state.pendingEvent = event\n\n if (!state.timeoutId) {\n const delay =\n AgentTranscriptEmitter.THROTTLE_INTERVAL - timeSinceLastEmit\n state.timeoutId = setTimeout(() => {\n const currentState = this.throttleState.get(event.agentId)\n if (currentState?.pendingEvent) {\n currentState.lastEmitTime = Date.now()\n const pendingEvent = currentState.pendingEvent\n currentState.pendingEvent = null\n currentState.timeoutId = null\n this.doEmit(pendingEvent)\n }\n }, delay)\n }\n }\n }\n\n /**\n * Subscribe to updates for a specific agent\n */\n onAgentUpdate(\n agentId: string,\n callback: (transcript: AgentTranscript) => void,\n ): () => void {\n const eventName = `update:${agentId}`\n this.on(eventName, callback)\n return () => this.off(eventName, callback)\n }\n\n /**\n * Subscribe to updates for a specific toolUseId\n */\n onToolUseUpdate(\n toolUseId: string,\n callback: (transcript: AgentTranscript) => void,\n ): () => void {\n const eventName = `update:toolUse:${toolUseId}`\n this.on(eventName, callback)\n return () => this.off(eventName, callback)\n }\n\n /**\n * Subscribe to all updates (any agent)\n */\n onAnyUpdate(callback: (event: TranscriptEvent) => void): () => void {\n this.on('update', callback)\n return () => this.off('update', callback)\n }\n\n /**\n * Subscribe to status change events\n */\n onStatusChange(callback: (event: TranscriptEvent) => void): () => void {\n this.on('status_changed', callback)\n return () => this.off('status_changed', callback)\n }\n}\n\n// Export singleton instance\nexport const transcriptEmitter = AgentTranscriptEmitter.getInstance()\n\n/**\n * Agent execution status\n */\nexport type AgentStatus = 'running' | 'completed' | 'failed' | 'interrupted'\n\n/**\n * Token usage statistics\n */\nexport interface TokenUsage {\n inputTokens: number\n outputTokens: number\n cacheReadTokens?: number\n cacheCreationTokens?: number\n}\n\n/**\n * Agent Transcript - Complete record of an agent's execution\n */\nexport interface AgentTranscript {\n /** Unique identifier for this agent execution */\n agentId: string\n\n /** Type of agent (e.g., \"general-purpose\", \"strategic-market-analyzer\") */\n agentType: string\n\n /** Parent agent ID if this is a nested agent call */\n parentAgentId?: string\n\n /** The tool_use ID that triggered this agent (for UI association) */\n toolUseId?: string\n\n /** Short description of the task (3-5 words) */\n description: string\n\n /** Full prompt given to the agent */\n prompt: string\n\n /** Unix timestamp when execution started */\n startTime: number\n\n /** Unix timestamp when execution ended (undefined if still running) */\n endTime?: number\n\n /** Current execution status */\n status: AgentStatus\n\n /** All messages in the agent's conversation */\n messages: MessageType[]\n\n /** Number of tool uses during execution */\n toolUseCount: number\n\n /** Token usage statistics */\n tokenUsage: TokenUsage\n\n /** Model used for this agent */\n model: string\n\n /** Fork number for log correlation */\n forkNumber?: number\n\n /** Message log name for log correlation */\n messageLogName?: string\n\n /** Additional metadata */\n metadata?: Record<string, unknown>\n\n /** API retry events (for display in UI) */\n retryEvents?: Array<{\n timestamp: number\n attempt: number\n maxRetries: number\n errorMessage: string\n delayMs: number\n }>\n}\n\n/**\n * Summary of an agent transcript (for listing)\n */\nexport interface AgentTranscriptSummary {\n agentId: string\n agentType: string\n description: string\n status: AgentStatus\n startTime: number\n endTime?: number\n messageCount: number\n toolUseCount: number\n model: string\n}\n\n/**\n * Options for listing transcripts\n */\nexport interface ListTranscriptsOptions {\n /** Filter by status */\n status?: AgentStatus | AgentStatus[]\n /** Filter by agent type */\n agentType?: string\n /** Limit number of results */\n limit?: number\n /** Sort order (newest first by default) */\n sortOrder?: 'asc' | 'desc'\n /** Only include transcripts after this timestamp */\n since?: number\n}\n\n// In-memory cache for active transcripts (faster access during execution)\nconst activeTranscripts = new Map<string, AgentTranscript>()\n\n/**\n * Get the transcripts directory path\n */\nfunction getTranscriptsDirectory(): string {\n const configDir =\n process.env.MINTO_CONFIG_DIR ??\n process.env.CLAUDE_CONFIG_DIR ??\n join(homedir(), '.minto')\n\n return join(configDir, 'transcripts')\n}\n\n/**\n * Ensure the transcripts directory exists\n */\nfunction ensureTranscriptsDirectory(): void {\n const dir = getTranscriptsDirectory()\n if (!existsSync(dir)) {\n mkdirSync(dir, { recursive: true })\n }\n}\n\n/**\n * Get the file path for a transcript\n */\nfunction getTranscriptPath(agentId: string): string {\n return join(getTranscriptsDirectory(), `${agentId}.json`)\n}\n\n/**\n * Create a new agent transcript\n */\nexport function createAgentTranscript(\n options: Omit<\n AgentTranscript,\n 'startTime' | 'status' | 'messages' | 'toolUseCount' | 'tokenUsage'\n > & {\n messages?: MessageType[]\n toolUseCount?: number\n tokenUsage?: Partial<TokenUsage>\n },\n): AgentTranscript {\n const transcript: AgentTranscript = {\n ...options,\n startTime: Date.now(),\n status: 'running',\n messages: options.messages || [],\n toolUseCount: options.toolUseCount || 0,\n tokenUsage: {\n inputTokens: options.tokenUsage?.inputTokens || 0,\n outputTokens: options.tokenUsage?.outputTokens || 0,\n cacheReadTokens: options.tokenUsage?.cacheReadTokens,\n cacheCreationTokens: options.tokenUsage?.cacheCreationTokens,\n },\n }\n\n // Store in memory cache\n activeTranscripts.set(options.agentId, transcript)\n\n // Persist to disk\n saveAgentTranscript(transcript, false) // Don't emit here, we'll emit 'created' specifically\n\n debugLogger.info('AGENT_TRANSCRIPT_CREATED', {\n agentId: options.agentId,\n agentType: options.agentType,\n description: options.description,\n })\n\n // Emit creation event\n transcriptEmitter.emitUpdate({\n type: 'created',\n agentId: options.agentId,\n toolUseId: options.toolUseId,\n transcript,\n })\n\n return transcript\n}\n\n/**\n * Save an agent transcript to disk\n * @param transcript The transcript to save\n * @param emitEvent Whether to emit an update event (default: true)\n */\nexport function saveAgentTranscript(\n transcript: AgentTranscript,\n emitEvent: boolean = true,\n): void {\n ensureTranscriptsDirectory()\n\n const filePath = getTranscriptPath(transcript.agentId)\n\n try {\n writeFileSync(filePath, JSON.stringify(transcript, null, 2), 'utf-8')\n\n // Update memory cache\n activeTranscripts.set(transcript.agentId, transcript)\n\n debugLogger.trace('AGENT_TRANSCRIPT_SAVED', {\n agentId: transcript.agentId,\n status: transcript.status,\n messageCount: transcript.messages.length,\n })\n\n // Emit update event if requested\n if (emitEvent) {\n transcriptEmitter.emitUpdate({\n type: 'updated',\n agentId: transcript.agentId,\n toolUseId: transcript.toolUseId,\n transcript,\n })\n }\n } catch (error) {\n debugLogger.error('AGENT_TRANSCRIPT_SAVE_FAILED', {\n agentId: transcript.agentId,\n error: error instanceof Error ? error.message : String(error),\n })\n throw error\n }\n}\n\n/**\n * Get an agent transcript by ID\n */\nexport function getAgentTranscript(agentId: string): AgentTranscript | null {\n // Check memory cache first\n const cached = activeTranscripts.get(agentId)\n if (cached) {\n return cached\n }\n\n // Try to load from disk\n const filePath = getTranscriptPath(agentId)\n\n if (!existsSync(filePath)) {\n return null\n }\n\n try {\n const content = readFileSync(filePath, 'utf-8')\n const transcript = JSON.parse(content) as AgentTranscript\n\n // Cache for future access\n activeTranscripts.set(agentId, transcript)\n\n return transcript\n } catch (error) {\n debugLogger.error('AGENT_TRANSCRIPT_READ_FAILED', {\n agentId,\n error: error instanceof Error ? error.message : String(error),\n })\n return null\n }\n}\n\n/**\n * Update an existing agent transcript\n * @param agentId The agent ID to update\n * @param updates The fields to update\n * @param emitEvent Whether to emit an update event (default: true)\n */\nexport function updateAgentTranscript(\n agentId: string,\n updates: Partial<Omit<AgentTranscript, 'agentId' | 'startTime'>>,\n emitEvent: boolean = true,\n): AgentTranscript | null {\n const transcript = getAgentTranscript(agentId)\n if (!transcript) {\n debugLogger.warn('AGENT_TRANSCRIPT_UPDATE_NOT_FOUND', { agentId })\n return null\n }\n\n const updated: AgentTranscript = {\n ...transcript,\n ...updates,\n // Merge token usage if provided\n tokenUsage: updates.tokenUsage\n ? { ...transcript.tokenUsage, ...updates.tokenUsage }\n : transcript.tokenUsage,\n }\n\n saveAgentTranscript(updated, emitEvent)\n return updated\n}\n\n/**\n * Append a message to an agent transcript\n */\nexport function appendMessageToTranscript(\n agentId: string,\n message: MessageType,\n): AgentTranscript | null {\n const transcript = getAgentTranscript(agentId)\n if (!transcript) {\n debugLogger.warn('AGENT_TRANSCRIPT_APPEND_NOT_FOUND', { agentId })\n return null\n }\n\n // \u2705 CRITICAL FIX: Create new array reference to trigger React re-renders\n // Instead of mutating transcript.messages.push(message), we create a new array\n const updatedMessages = [...transcript.messages, message]\n\n // Count tool uses\n let newToolUseCount = transcript.toolUseCount\n if (message.type === 'assistant') {\n const content = message.message.content\n if (Array.isArray(content)) {\n const toolUses = content.filter(block => block.type === 'tool_use')\n newToolUseCount += toolUses.length\n }\n }\n\n // Create updated transcript with new references\n const updated: AgentTranscript = {\n ...transcript,\n messages: updatedMessages,\n toolUseCount: newToolUseCount,\n }\n\n // Update memory cache with new reference\n activeTranscripts.set(agentId, updated)\n\n saveAgentTranscript(updated, false) // Don't emit generic update\n\n // Emit specific message_appended event\n transcriptEmitter.emitUpdate({\n type: 'message_appended',\n agentId,\n toolUseId: transcript.toolUseId,\n transcript: updated,\n })\n\n return updated\n}\n\n/**\n * Mark an agent transcript as completed\n */\nexport function completeAgentTranscript(\n agentId: string,\n tokenUsage?: Partial<TokenUsage>,\n): AgentTranscript | null {\n const transcript = getAgentTranscript(agentId)\n if (!transcript) {\n return null\n }\n\n const previousStatus = transcript.status\n\n // Merge partial token usage with existing\n const mergedTokenUsage: TokenUsage = tokenUsage\n ? { ...transcript.tokenUsage, ...tokenUsage }\n : transcript.tokenUsage\n\n const updated = updateAgentTranscript(\n agentId,\n {\n status: 'completed',\n endTime: Date.now(),\n tokenUsage: mergedTokenUsage,\n },\n false,\n ) // Don't emit generic update\n\n if (updated) {\n // Emit specific completed event\n transcriptEmitter.emitUpdate({\n type: 'completed',\n agentId,\n toolUseId: updated.toolUseId,\n transcript: updated,\n previousStatus,\n })\n\n // Also emit status_changed for subscribers\n transcriptEmitter.emitUpdate({\n type: 'status_changed',\n agentId,\n toolUseId: updated.toolUseId,\n transcript: updated,\n previousStatus,\n })\n }\n\n return updated\n}\n\n/**\n * Mark an agent transcript as failed\n */\nexport function failAgentTranscript(\n agentId: string,\n error?: string,\n): AgentTranscript | null {\n const transcript = getAgentTranscript(agentId)\n if (!transcript) {\n return null\n }\n\n const previousStatus = transcript.status\n\n const updated = updateAgentTranscript(\n agentId,\n {\n status: 'failed',\n endTime: Date.now(),\n metadata: error ? { error } : undefined,\n },\n false,\n ) // Don't emit generic update\n\n if (updated) {\n // Emit specific failed event\n transcriptEmitter.emitUpdate({\n type: 'failed',\n agentId,\n toolUseId: updated.toolUseId,\n transcript: updated,\n previousStatus,\n })\n\n // Also emit status_changed for subscribers\n transcriptEmitter.emitUpdate({\n type: 'status_changed',\n agentId,\n toolUseId: updated.toolUseId,\n transcript: updated,\n previousStatus,\n })\n }\n\n return updated\n}\n\n/**\n * Mark an agent transcript as interrupted\n */\nexport function interruptAgentTranscript(\n agentId: string,\n): AgentTranscript | null {\n const transcript = getAgentTranscript(agentId)\n if (!transcript) {\n return null\n }\n\n const previousStatus = transcript.status\n\n const updated = updateAgentTranscript(\n agentId,\n {\n status: 'interrupted',\n endTime: Date.now(),\n },\n false,\n ) // Don't emit generic update\n\n if (updated) {\n // Emit specific interrupted event\n transcriptEmitter.emitUpdate({\n type: 'interrupted',\n agentId,\n toolUseId: updated.toolUseId,\n transcript: updated,\n previousStatus,\n })\n\n // Also emit status_changed for subscribers\n transcriptEmitter.emitUpdate({\n type: 'status_changed',\n agentId,\n toolUseId: updated.toolUseId,\n transcript: updated,\n previousStatus,\n })\n }\n\n return updated\n}\n\n/**\n * Add a retry event to an agent transcript\n */\nexport function addRetryEventToTranscript(\n agentId: string,\n event: {\n attempt: number\n maxRetries: number\n errorMessage: string\n delayMs: number\n },\n): AgentTranscript | null {\n const transcript = getAgentTranscript(agentId)\n if (!transcript) {\n return null\n }\n\n const retryEvents = transcript.retryEvents || []\n retryEvents.push({\n ...event,\n timestamp: Date.now(),\n })\n\n return updateAgentTranscript(agentId, {\n retryEvents,\n })\n}\n\n/**\n * List agent transcripts with optional filtering\n */\nexport function listAgentTranscripts(\n options: ListTranscriptsOptions = {},\n): AgentTranscriptSummary[] {\n ensureTranscriptsDirectory()\n\n const dir = getTranscriptsDirectory()\n const files = readdirSync(dir).filter(f => f.endsWith('.json'))\n\n const summaries: AgentTranscriptSummary[] = []\n\n for (const file of files) {\n try {\n const content = readFileSync(join(dir, file), 'utf-8')\n const transcript = JSON.parse(content) as AgentTranscript\n\n // Apply filters\n if (options.status) {\n const statuses = Array.isArray(options.status)\n ? options.status\n : [options.status]\n if (!statuses.includes(transcript.status)) {\n continue\n }\n }\n\n if (options.agentType && transcript.agentType !== options.agentType) {\n continue\n }\n\n if (options.since && transcript.startTime < options.since) {\n continue\n }\n\n summaries.push({\n agentId: transcript.agentId,\n agentType: transcript.agentType,\n description: transcript.description,\n status: transcript.status,\n startTime: transcript.startTime,\n endTime: transcript.endTime,\n messageCount: transcript.messages.length,\n toolUseCount: transcript.toolUseCount,\n model: transcript.model,\n })\n } catch {\n // Skip invalid files\n continue\n }\n }\n\n // Sort by start time\n summaries.sort((a, b) => {\n const order = options.sortOrder === 'asc' ? 1 : -1\n return order * (b.startTime - a.startTime)\n })\n\n // Apply limit\n if (options.limit && options.limit > 0) {\n return summaries.slice(0, options.limit)\n }\n\n return summaries\n}\n\n/**\n * Delete an agent transcript\n */\nexport function deleteAgentTranscript(agentId: string): boolean {\n const filePath = getTranscriptPath(agentId)\n\n // Remove from cache\n activeTranscripts.delete(agentId)\n\n if (!existsSync(filePath)) {\n return false\n }\n\n try {\n unlinkSync(filePath)\n debugLogger.info('AGENT_TRANSCRIPT_DELETED', { agentId })\n return true\n } catch (error) {\n debugLogger.error('AGENT_TRANSCRIPT_DELETE_FAILED', {\n agentId,\n error: error instanceof Error ? error.message : String(error),\n })\n return false\n }\n}\n\n/**\n * Clean up old transcripts\n * @param maxAge Maximum age in milliseconds (default: 7 days)\n */\nexport function cleanupOldTranscripts(\n maxAge: number = 7 * 24 * 60 * 60 * 1000,\n): number {\n const cutoff = Date.now() - maxAge\n const transcripts = listAgentTranscripts()\n let deleted = 0\n\n for (const summary of transcripts) {\n // Only delete completed or failed transcripts that are old\n if (\n (summary.status === 'completed' || summary.status === 'failed') &&\n summary.startTime < cutoff\n ) {\n if (deleteAgentTranscript(summary.agentId)) {\n deleted++\n }\n }\n }\n\n debugLogger.info('AGENT_TRANSCRIPTS_CLEANUP', { deleted, maxAge })\n return deleted\n}\n\n/**\n * Get a transcript that can be resumed (running or interrupted)\n */\nexport function getResumableTranscript(\n agentId: string,\n): AgentTranscript | null {\n const transcript = getAgentTranscript(agentId)\n if (!transcript) {\n return null\n }\n\n // Only running or interrupted transcripts can be resumed\n if (transcript.status !== 'running' && transcript.status !== 'interrupted') {\n debugLogger.warn('AGENT_TRANSCRIPT_NOT_RESUMABLE', {\n agentId,\n status: transcript.status,\n })\n return null\n }\n\n return transcript\n}\n\n/**\n * Check if a transcript exists and is resumable\n */\nexport function canResumeTranscript(agentId: string): boolean {\n return getResumableTranscript(agentId) !== null\n}\n\n/**\n * Get all running agent transcripts\n */\nexport function getRunningTranscripts(): AgentTranscriptSummary[] {\n return listAgentTranscripts({ status: 'running' })\n}\n\n/**\n * Clear the in-memory transcript cache\n */\nexport function clearTranscriptCache(): void {\n activeTranscripts.clear()\n}\n\n// In-memory map from toolUseId to agentId for fast lookup\nconst toolUseToAgentMap = new Map<string, string>()\n\n// Reverse map from agentId to toolUseId for TaskOutput association\nconst agentToToolUseMap = new Map<string, string>()\n\n/**\n * Register a toolUseId -> agentId mapping (bidirectional)\n */\nexport function registerToolUseAgent(toolUseId: string, agentId: string): void {\n toolUseToAgentMap.set(toolUseId, agentId)\n agentToToolUseMap.set(agentId, toolUseId)\n}\n\n/**\n * Get agent ID from a tool use ID\n */\nexport function getAgentIdByToolUseId(toolUseId: string): string | null {\n return toolUseToAgentMap.get(toolUseId) || null\n}\n\n/**\n * Get tool use ID from an agent ID (reverse lookup for TaskOutput association)\n * Enhanced: Falls back to disk lookup when memory mapping is empty (for history restore)\n */\nexport function getToolUseIdByAgentId(agentId: string): string | null {\n // 1. Try memory mapping first (fast path)\n const cached = agentToToolUseMap.get(agentId)\n if (cached) {\n return cached\n }\n\n // 2. Try lazy bulk restore (first miss triggers full scan)\n if (!diskMappingsRestored) {\n restoreToolUseAgentMappings()\n\n // Check again after restore\n const afterRestore = agentToToolUseMap.get(agentId)\n if (afterRestore) {\n return afterRestore\n }\n }\n\n // 3. Last resort: load specific transcript by agentId and extract toolUseId\n const transcript = getAgentTranscript(agentId)\n if (transcript?.toolUseId) {\n // Cache for future lookups\n registerToolUseAgent(transcript.toolUseId, agentId)\n return transcript.toolUseId\n }\n\n return null\n}\n\n// Flag to track if we've already scanned disk for history restore\nlet diskMappingsRestored = false\n\n/**\n * Scan transcript files to find one matching the toolUseId\n * Used for history restore when memory mappings are empty\n */\nfunction findTranscriptByToolUseIdOnDisk(\n toolUseId: string,\n): AgentTranscript | null {\n const dir = getTranscriptsDirectory()\n if (!existsSync(dir)) return null\n\n try {\n const files = readdirSync(dir).filter(f => f.endsWith('.json'))\n\n for (const file of files) {\n try {\n const content = readFileSync(join(dir, file), 'utf-8')\n const transcript = JSON.parse(content) as AgentTranscript\n\n if (transcript.toolUseId === toolUseId) {\n // Cache to memory for subsequent access\n activeTranscripts.set(transcript.agentId, transcript)\n registerToolUseAgent(toolUseId, transcript.agentId)\n\n debugLogger.trace('TRANSCRIPT_FOUND_ON_DISK', {\n toolUseId,\n agentId: transcript.agentId,\n })\n\n return transcript\n }\n } catch {\n // Skip invalid files\n continue\n }\n }\n } catch (error) {\n debugLogger.error('TRANSCRIPT_DISK_SCAN_FAILED', {\n error: error instanceof Error ? error.message : String(error),\n })\n }\n\n return null\n}\n\n/**\n * Restore all toolUseId -> agentId mappings from disk\n * Called lazily on first lookup miss to support history restore\n */\nexport function restoreToolUseAgentMappings(): void {\n if (diskMappingsRestored) return\n\n const dir = getTranscriptsDirectory()\n if (!existsSync(dir)) {\n diskMappingsRestored = true\n return\n }\n\n try {\n const files = readdirSync(dir).filter(f => f.endsWith('.json'))\n let restoredCount = 0\n\n for (const file of files) {\n try {\n const content = readFileSync(join(dir, file), 'utf-8')\n const transcript = JSON.parse(content) as AgentTranscript\n\n if (transcript.toolUseId && transcript.agentId) {\n registerToolUseAgent(transcript.toolUseId, transcript.agentId)\n activeTranscripts.set(transcript.agentId, transcript)\n restoredCount++\n }\n } catch {\n // Skip invalid files\n continue\n }\n }\n\n debugLogger.info('TRANSCRIPT_MAPPINGS_RESTORED', {\n count: restoredCount,\n totalFiles: files.length,\n })\n } catch (error) {\n debugLogger.error('TRANSCRIPT_RESTORE_FAILED', {\n error: error instanceof Error ? error.message : String(error),\n })\n }\n\n diskMappingsRestored = true\n}\n\n/**\n * Get agent transcript by tool use ID\n * Enhanced: Falls back to disk scan when memory mapping is empty (for history restore)\n */\nexport function getAgentTranscriptByToolUseId(\n toolUseId: string,\n): AgentTranscript | null {\n // 1. Try memory mapping first (fast path for live sessions)\n const agentId = getAgentIdByToolUseId(toolUseId)\n if (agentId) {\n return getAgentTranscript(agentId)\n }\n\n // 2. Try lazy bulk restore (first miss triggers full scan)\n if (!diskMappingsRestored) {\n restoreToolUseAgentMappings()\n\n // Check again after restore\n const agentIdAfterRestore = getAgentIdByToolUseId(toolUseId)\n if (agentIdAfterRestore) {\n return getAgentTranscript(agentIdAfterRestore)\n }\n }\n\n // 3. Last resort: direct disk lookup (handles late-written transcripts)\n return findTranscriptByToolUseIdOnDisk(toolUseId)\n}\n\n/**\n * Clear the toolUseId -> agentId mapping cache\n */\nexport function clearToolUseAgentMap(): void {\n toolUseToAgentMap.clear()\n agentToToolUseMap.clear()\n}\n"],
5
- "mappings": "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",
6
- "names": ["state"]
7
- }
@@ -1,250 +0,0 @@
1
- class AnimationManager {
2
- static instance;
3
- subscriptions = /* @__PURE__ */ new Map();
4
- rafId = null;
5
- lastFrameTime = 0;
6
- isRunning = false;
7
- resumeCallbacks = /* @__PURE__ */ new Set();
8
- // Use 30fps as base rate to reduce terminal render load
9
- // Terminal rendering is expensive, unlike browser canvas rendering
10
- FRAME_INTERVAL = 33;
11
- // ~30fps (was 16ms/60fps)
12
- // If tick gap exceeds this threshold, the process was likely backgrounded
13
- // (tab switch, app nap, system sleep). Skip animation and notify listeners
14
- // to do a full re-render, preventing ghost artifacts from Ink's differential
15
- // rendering getting out of sync while the terminal was invisible.
16
- BACKGROUND_THRESHOLD = 2e3;
17
- // 2 seconds
18
- constructor() {
19
- }
20
- static getInstance() {
21
- if (!AnimationManager.instance) {
22
- AnimationManager.instance = new AnimationManager();
23
- }
24
- return AnimationManager.instance;
25
- }
26
- /**
27
- * Subscribe to animation updates
28
- * @param id Unique identifier for this subscription
29
- * @param callback Function to call on each animation frame
30
- * @param interval Minimum interval between callback invocations (ms)
31
- * @returns Unsubscribe function
32
- */
33
- subscribe(id, callback, interval) {
34
- this.subscriptions.set(id, {
35
- id,
36
- callback,
37
- interval,
38
- lastUpdate: 0
39
- });
40
- if (!this.isRunning) {
41
- this.start();
42
- }
43
- return () => this.unsubscribe(id);
44
- }
45
- /**
46
- * Unsubscribe from animation updates
47
- */
48
- unsubscribe(id) {
49
- this.subscriptions.delete(id);
50
- if (this.subscriptions.size === 0) {
51
- this.stop();
52
- }
53
- }
54
- /**
55
- * Register a callback for when the process resumes from background.
56
- * Fires when a tick gap exceeds BACKGROUND_THRESHOLD, indicating the
57
- * terminal was likely inactive (tab switch, app nap, system sleep).
58
- * @returns Unsubscribe function
59
- */
60
- onResume(callback) {
61
- this.resumeCallbacks.add(callback);
62
- return () => this.resumeCallbacks.delete(callback);
63
- }
64
- /**
65
- * Start the animation loop
66
- */
67
- start() {
68
- if (this.isRunning) return;
69
- this.isRunning = true;
70
- this.lastFrameTime = Date.now();
71
- this.tick();
72
- }
73
- /**
74
- * Stop the animation loop
75
- */
76
- stop() {
77
- if (!this.isRunning) return;
78
- this.isRunning = false;
79
- if (this.rafId !== null) {
80
- clearTimeout(this.rafId);
81
- this.rafId = null;
82
- }
83
- }
84
- /**
85
- * Main animation tick
86
- */
87
- tick = () => {
88
- if (!this.isRunning) return;
89
- const now = Date.now();
90
- const deltaTime = now - this.lastFrameTime;
91
- this.lastFrameTime = now;
92
- if (deltaTime > this.BACKGROUND_THRESHOLD && this.resumeCallbacks.size > 0) {
93
- for (const cb of this.resumeCallbacks) {
94
- try {
95
- cb();
96
- } catch {
97
- }
98
- }
99
- this.rafId = setTimeout(this.tick, this.FRAME_INTERVAL);
100
- return;
101
- }
102
- const callbacksToRun = [];
103
- for (const sub of this.subscriptions.values()) {
104
- const timeSinceLastUpdate = now - sub.lastUpdate;
105
- if (timeSinceLastUpdate >= sub.interval) {
106
- sub.lastUpdate = now;
107
- callbacksToRun.push(sub.callback);
108
- }
109
- }
110
- if (callbacksToRun.length > 0) {
111
- for (const callback of callbacksToRun) {
112
- try {
113
- callback(deltaTime);
114
- } catch (error) {
115
- }
116
- }
117
- }
118
- this.rafId = setTimeout(this.tick, this.FRAME_INTERVAL);
119
- };
120
- /**
121
- * Get the number of active subscriptions
122
- */
123
- getSubscriptionCount() {
124
- return this.subscriptions.size;
125
- }
126
- /**
127
- * Check if animation loop is running
128
- */
129
- isAnimating() {
130
- return this.isRunning;
131
- }
132
- }
133
- const animationManager = AnimationManager.getInstance();
134
- import { useState, useEffect, useRef } from "react";
135
- function useUnifiedAnimation({
136
- enabled,
137
- startTime,
138
- spinnerFrameCount,
139
- componentId
140
- }) {
141
- const [animState, setAnimState] = useState(() => ({
142
- spinnerFrame: 0,
143
- dotVisible: true,
144
- elapsedTime: Math.floor((Date.now() - startTime) / 1e3),
145
- dataTick: 0
146
- }));
147
- const startTimeRef = useRef(startTime);
148
- startTimeRef.current = startTime;
149
- const timingRef = useRef({
150
- lastSpinnerUpdate: 0,
151
- lastDotUpdate: 0,
152
- lastElapsedUpdate: 0,
153
- lastDataTickUpdate: 0
154
- });
155
- const SPINNER_INTERVAL = 200;
156
- const DOT_INTERVAL = 800;
157
- const ELAPSED_INTERVAL = 1e3;
158
- const DATA_TICK_INTERVAL = 100;
159
- useEffect(() => {
160
- if (!enabled) {
161
- return void 0;
162
- }
163
- const uniqueId = `${componentId}-unified-animation`;
164
- const unsubscribe = animationManager.subscribe(
165
- uniqueId,
166
- () => {
167
- const now = Date.now();
168
- const timing = timingRef.current;
169
- setAnimState((prevState) => {
170
- let needsUpdate = false;
171
- let newSpinnerFrame = prevState.spinnerFrame;
172
- let newDotVisible = prevState.dotVisible;
173
- let newElapsedTime = prevState.elapsedTime;
174
- let newDataTick = prevState.dataTick;
175
- if (now - timing.lastSpinnerUpdate >= SPINNER_INTERVAL) {
176
- timing.lastSpinnerUpdate = now;
177
- newSpinnerFrame = (newSpinnerFrame + 1) % spinnerFrameCount;
178
- needsUpdate = true;
179
- }
180
- if (now - timing.lastDotUpdate >= DOT_INTERVAL) {
181
- timing.lastDotUpdate = now;
182
- newDotVisible = !newDotVisible;
183
- needsUpdate = true;
184
- }
185
- if (now - timing.lastElapsedUpdate >= ELAPSED_INTERVAL) {
186
- timing.lastElapsedUpdate = now;
187
- newElapsedTime = Math.floor((now - startTimeRef.current) / 1e3);
188
- needsUpdate = true;
189
- }
190
- if (now - timing.lastDataTickUpdate >= DATA_TICK_INTERVAL) {
191
- timing.lastDataTickUpdate = now;
192
- newDataTick = newDataTick + 1;
193
- needsUpdate = true;
194
- }
195
- if (!needsUpdate) {
196
- return prevState;
197
- }
198
- return {
199
- spinnerFrame: newSpinnerFrame,
200
- dotVisible: newDotVisible,
201
- elapsedTime: newElapsedTime,
202
- dataTick: newDataTick
203
- };
204
- });
205
- },
206
- // Use fastest needed interval for checking
207
- Math.min(SPINNER_INTERVAL, DOT_INTERVAL, ELAPSED_INTERVAL)
208
- );
209
- return unsubscribe;
210
- }, [enabled, spinnerFrameCount, componentId]);
211
- return animState;
212
- }
213
- function throttle(func, limit) {
214
- let inThrottle = false;
215
- let lastArgs = null;
216
- return function(...args) {
217
- if (!inThrottle) {
218
- func.apply(this, args);
219
- inThrottle = true;
220
- setTimeout(() => {
221
- inThrottle = false;
222
- if (lastArgs) {
223
- func.apply(this, lastArgs);
224
- lastArgs = null;
225
- }
226
- }, limit);
227
- } else {
228
- lastArgs = args;
229
- }
230
- };
231
- }
232
- function debounce(func, wait) {
233
- let timeoutId = null;
234
- return function(...args) {
235
- if (timeoutId !== null) {
236
- clearTimeout(timeoutId);
237
- }
238
- timeoutId = setTimeout(() => {
239
- func.apply(this, args);
240
- timeoutId = null;
241
- }, wait);
242
- };
243
- }
244
- export {
245
- animationManager,
246
- debounce,
247
- throttle,
248
- useUnifiedAnimation
249
- };
250
- //# sourceMappingURL=animationManager.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/utils/animationManager.ts"],
4
- "sourcesContent": ["/**\n * Unified Animation Manager\n *\n * Consolidates multiple animation timers into a single requestAnimationFrame loop\n * to prevent render thrashing and screen flickering.\n *\n * Benefits:\n * - Single animation frame callback instead of multiple setInterval timers\n * - Batched state updates reduce React re-renders\n * - Configurable frame rates for different animation types\n * - Automatic cleanup on unmount\n */\n\ntype AnimationCallback = (deltaTime: number) => void\n\ninterface AnimationSubscription {\n id: string\n callback: AnimationCallback\n interval: number // Minimum interval between updates in ms\n lastUpdate: number\n}\n\nclass AnimationManager {\n private static instance: AnimationManager\n private subscriptions: Map<string, AnimationSubscription> = new Map()\n private rafId: ReturnType<typeof setTimeout> | null = null\n private lastFrameTime: number = 0\n private isRunning: boolean = false\n private resumeCallbacks: Set<() => void> = new Set()\n\n // Use 30fps as base rate to reduce terminal render load\n // Terminal rendering is expensive, unlike browser canvas rendering\n private readonly FRAME_INTERVAL = 33 // ~30fps (was 16ms/60fps)\n\n // If tick gap exceeds this threshold, the process was likely backgrounded\n // (tab switch, app nap, system sleep). Skip animation and notify listeners\n // to do a full re-render, preventing ghost artifacts from Ink's differential\n // rendering getting out of sync while the terminal was invisible.\n private readonly BACKGROUND_THRESHOLD = 2000 // 2 seconds\n\n private constructor() {}\n\n static getInstance(): AnimationManager {\n if (!AnimationManager.instance) {\n AnimationManager.instance = new AnimationManager()\n }\n return AnimationManager.instance\n }\n\n /**\n * Subscribe to animation updates\n * @param id Unique identifier for this subscription\n * @param callback Function to call on each animation frame\n * @param interval Minimum interval between callback invocations (ms)\n * @returns Unsubscribe function\n */\n subscribe(\n id: string,\n callback: AnimationCallback,\n interval: number,\n ): () => void {\n this.subscriptions.set(id, {\n id,\n callback,\n interval,\n lastUpdate: 0,\n })\n\n if (!this.isRunning) {\n this.start()\n }\n\n return () => this.unsubscribe(id)\n }\n\n /**\n * Unsubscribe from animation updates\n */\n unsubscribe(id: string): void {\n this.subscriptions.delete(id)\n\n if (this.subscriptions.size === 0) {\n this.stop()\n }\n }\n\n /**\n * Register a callback for when the process resumes from background.\n * Fires when a tick gap exceeds BACKGROUND_THRESHOLD, indicating the\n * terminal was likely inactive (tab switch, app nap, system sleep).\n * @returns Unsubscribe function\n */\n onResume(callback: () => void): () => void {\n this.resumeCallbacks.add(callback)\n return () => this.resumeCallbacks.delete(callback)\n }\n\n /**\n * Start the animation loop\n */\n private start(): void {\n if (this.isRunning) return\n\n this.isRunning = true\n this.lastFrameTime = Date.now()\n this.tick()\n }\n\n /**\n * Stop the animation loop\n */\n private stop(): void {\n if (!this.isRunning) return\n\n this.isRunning = false\n if (this.rafId !== null) {\n clearTimeout(this.rafId)\n this.rafId = null\n }\n }\n\n /**\n * Main animation tick\n */\n private tick = (): void => {\n if (!this.isRunning) return\n\n const now = Date.now()\n const deltaTime = now - this.lastFrameTime\n this.lastFrameTime = now\n\n // Detect resume from background: if tick gap is abnormally large,\n // the process was likely backgrounded (tab switch, app nap, etc.).\n // Skip this animation frame to avoid burst renders, and notify\n // listeners so they can do a full screen clear + re-render.\n if (\n deltaTime > this.BACKGROUND_THRESHOLD &&\n this.resumeCallbacks.size > 0\n ) {\n for (const cb of this.resumeCallbacks) {\n try {\n cb()\n } catch {\n // Silently ignore callback errors\n }\n }\n this.rafId = setTimeout(this.tick, this.FRAME_INTERVAL)\n return\n }\n\n // Batch all callbacks that need to run this frame\n const callbacksToRun: AnimationCallback[] = []\n\n for (const sub of this.subscriptions.values()) {\n const timeSinceLastUpdate = now - sub.lastUpdate\n\n if (timeSinceLastUpdate >= sub.interval) {\n sub.lastUpdate = now\n callbacksToRun.push(sub.callback)\n }\n }\n\n // Execute all callbacks in a single batch\n // This allows React to batch the state updates\n if (callbacksToRun.length > 0) {\n for (const callback of callbacksToRun) {\n try {\n callback(deltaTime)\n } catch (error) {\n // Silently ignore callback errors to prevent animation loop from breaking\n }\n }\n }\n\n // Schedule next frame using setTimeout (works in Node.js/Bun)\n this.rafId = setTimeout(this.tick, this.FRAME_INTERVAL)\n }\n\n /**\n * Get the number of active subscriptions\n */\n getSubscriptionCount(): number {\n return this.subscriptions.size\n }\n\n /**\n * Check if animation loop is running\n */\n isAnimating(): boolean {\n return this.isRunning\n }\n}\n\n// Export singleton instance\nexport const animationManager = AnimationManager.getInstance()\n\n/**\n * React hook for unified animation updates\n *\n * Usage:\n * ```typescript\n * const { spinnerFrame, dotVisible, elapsedTime } = useUnifiedAnimation({\n * enabled: hasRunningTasks,\n * startTime: Date.now(),\n * spinnerFrameCount: 12,\n * })\n * ```\n */\nexport interface UnifiedAnimationState {\n spinnerFrame: number\n dotVisible: boolean\n elapsedTime: number\n dataTick: number // 100ms tick for streaming data refresh\n}\n\nexport interface UseUnifiedAnimationOptions {\n enabled: boolean\n startTime: number\n spinnerFrameCount: number\n componentId: string\n}\n\nimport { useState, useEffect, useRef, useCallback } from 'react'\n\nexport function useUnifiedAnimation({\n enabled,\n startTime,\n spinnerFrameCount,\n componentId,\n}: UseUnifiedAnimationOptions): UnifiedAnimationState {\n // Use a single state object to batch updates\n const [animState, setAnimState] = useState<UnifiedAnimationState>(() => ({\n spinnerFrame: 0,\n dotVisible: true,\n elapsedTime: Math.floor((Date.now() - startTime) / 1000),\n dataTick: 0,\n }))\n\n // Store startTime in ref to avoid closure issues\n const startTimeRef = useRef(startTime)\n startTimeRef.current = startTime\n\n // Track timing internally to reduce state updates\n const timingRef = useRef({\n lastSpinnerUpdate: 0,\n lastDotUpdate: 0,\n lastElapsedUpdate: 0,\n lastDataTickUpdate: 0,\n })\n\n // Animation intervals - optimized for less flicker\n // Slower spinner reduces terminal re-render frequency\n const SPINNER_INTERVAL = 200 // 200ms (was 120ms) - reduces flicker by ~40%\n const DOT_INTERVAL = 800 // 800ms (was 600ms) - less visual noise\n const ELAPSED_INTERVAL = 1000 // 1s - unchanged\n const DATA_TICK_INTERVAL = 100 // 100ms - streaming data refresh (10 FPS)\n\n useEffect(() => {\n if (!enabled) {\n return undefined\n }\n\n const uniqueId = `${componentId}-unified-animation`\n\n const unsubscribe = animationManager.subscribe(\n uniqueId,\n () => {\n const now = Date.now()\n const timing = timingRef.current\n\n // Use functional state update to avoid closure issues\n setAnimState(prevState => {\n let needsUpdate = false\n let newSpinnerFrame = prevState.spinnerFrame\n let newDotVisible = prevState.dotVisible\n let newElapsedTime = prevState.elapsedTime\n let newDataTick = prevState.dataTick\n\n // Check spinner update\n if (now - timing.lastSpinnerUpdate >= SPINNER_INTERVAL) {\n timing.lastSpinnerUpdate = now\n newSpinnerFrame = (newSpinnerFrame + 1) % spinnerFrameCount\n needsUpdate = true\n }\n\n // Check dot update\n if (now - timing.lastDotUpdate >= DOT_INTERVAL) {\n timing.lastDotUpdate = now\n newDotVisible = !newDotVisible\n needsUpdate = true\n }\n\n // Check elapsed time update\n if (now - timing.lastElapsedUpdate >= ELAPSED_INTERVAL) {\n timing.lastElapsedUpdate = now\n newElapsedTime = Math.floor((now - startTimeRef.current) / 1000)\n needsUpdate = true\n }\n\n // Check data tick update (100ms \u2014 for streaming data refresh)\n if (now - timing.lastDataTickUpdate >= DATA_TICK_INTERVAL) {\n timing.lastDataTickUpdate = now\n newDataTick = newDataTick + 1\n needsUpdate = true\n }\n\n // Return same object if no update needed (prevents unnecessary re-render)\n if (!needsUpdate) {\n return prevState\n }\n\n return {\n spinnerFrame: newSpinnerFrame,\n dotVisible: newDotVisible,\n elapsedTime: newElapsedTime,\n dataTick: newDataTick,\n }\n })\n },\n // Use fastest needed interval for checking\n Math.min(SPINNER_INTERVAL, DOT_INTERVAL, ELAPSED_INTERVAL),\n )\n\n return unsubscribe\n }, [enabled, spinnerFrameCount, componentId])\n\n return animState\n}\n\n/**\n * Throttle utility for event handlers\n */\nexport function throttle<T extends (...args: any[]) => any>(\n func: T,\n limit: number,\n): (...args: Parameters<T>) => void {\n let inThrottle = false\n let lastArgs: Parameters<T> | null = null\n\n return function (this: any, ...args: Parameters<T>) {\n if (!inThrottle) {\n func.apply(this, args)\n inThrottle = true\n setTimeout(() => {\n inThrottle = false\n if (lastArgs) {\n func.apply(this, lastArgs)\n lastArgs = null\n }\n }, limit)\n } else {\n lastArgs = args\n }\n }\n}\n\n/**\n * Debounce utility for event handlers\n */\nexport function debounce<T extends (...args: any[]) => any>(\n func: T,\n wait: number,\n): (...args: Parameters<T>) => void {\n let timeoutId: ReturnType<typeof setTimeout> | null = null\n\n return function (this: any, ...args: Parameters<T>) {\n if (timeoutId !== null) {\n clearTimeout(timeoutId)\n }\n timeoutId = setTimeout(() => {\n func.apply(this, args)\n timeoutId = null\n }, wait)\n }\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,110 +0,0 @@
1
- import { EventEmitter } from "events";
2
- const ANIMATION_INTERVALS = {
3
- SPINNER: 120,
4
- // Spinner frame rotation
5
- BLINK: 600,
6
- // Blinking dot visibility toggle
7
- ELAPSED_TIME: 1e3
8
- // Elapsed time counter
9
- };
10
- class AnimationSyncManager extends EventEmitter {
11
- static instance = null;
12
- timers = /* @__PURE__ */ new Map();
13
- frame = {
14
- spinnerFrame: 0,
15
- blinkVisible: true,
16
- elapsedSeconds: 0
17
- };
18
- subscriberCount = 0;
19
- startTime = 0;
20
- constructor() {
21
- super();
22
- this.setMaxListeners(100);
23
- }
24
- static getInstance() {
25
- if (!AnimationSyncManager.instance) {
26
- AnimationSyncManager.instance = new AnimationSyncManager();
27
- }
28
- return AnimationSyncManager.instance;
29
- }
30
- /**
31
- * Subscribe to animation frame updates
32
- * @param callback Called on every animation frame update
33
- * @returns Unsubscribe function
34
- */
35
- subscribe(callback) {
36
- this.subscriberCount++;
37
- if (this.subscriberCount === 1) {
38
- this.startTimers();
39
- }
40
- callback({ ...this.frame });
41
- this.on("frame", callback);
42
- return () => {
43
- this.off("frame", callback);
44
- this.subscriberCount--;
45
- if (this.subscriberCount === 0) {
46
- this.stopTimers();
47
- }
48
- };
49
- }
50
- /**
51
- * Get current animation frame state
52
- */
53
- getFrame() {
54
- return { ...this.frame };
55
- }
56
- /**
57
- * Reset elapsed time counter (e.g., when starting a new operation)
58
- */
59
- resetElapsedTime() {
60
- this.frame.elapsedSeconds = 0;
61
- this.startTime = Date.now();
62
- }
63
- startTimers() {
64
- this.startTime = Date.now();
65
- const spinnerTimer = setInterval(() => {
66
- this.frame.spinnerFrame = (this.frame.spinnerFrame + 1) % 12;
67
- this.emit("frame", { ...this.frame });
68
- }, ANIMATION_INTERVALS.SPINNER);
69
- this.timers.set("SPINNER", spinnerTimer);
70
- const blinkTimer = setInterval(() => {
71
- this.frame.blinkVisible = !this.frame.blinkVisible;
72
- }, ANIMATION_INTERVALS.BLINK);
73
- this.timers.set("BLINK", blinkTimer);
74
- const elapsedTimer = setInterval(() => {
75
- this.frame.elapsedSeconds = Math.floor(
76
- (Date.now() - this.startTime) / 1e3
77
- );
78
- }, ANIMATION_INTERVALS.ELAPSED_TIME);
79
- this.timers.set("ELAPSED_TIME", elapsedTimer);
80
- }
81
- stopTimers() {
82
- for (const timer of this.timers.values()) {
83
- clearInterval(timer);
84
- }
85
- this.timers.clear();
86
- this.frame = {
87
- spinnerFrame: 0,
88
- blinkVisible: true,
89
- elapsedSeconds: 0
90
- };
91
- }
92
- /**
93
- * Cleanup - should be called on application shutdown
94
- */
95
- destroy() {
96
- this.stopTimers();
97
- this.removeAllListeners();
98
- AnimationSyncManager.instance = null;
99
- }
100
- }
101
- const animationSync = AnimationSyncManager.getInstance();
102
- function useAnimationSync() {
103
- return animationSync.getFrame();
104
- }
105
- export {
106
- ANIMATION_INTERVALS,
107
- animationSync,
108
- useAnimationSync
109
- };
110
- //# sourceMappingURL=animationSync.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/utils/animationSync.ts"],
4
- "sourcesContent": ["/**\n * Animation Synchronization Manager\n *\n * Provides synchronized animation timing across all UI components.\n * This ensures consistent visual experience by keeping all animations in sync.\n *\n * Animation intervals (Claude Code spec compliant):\n * - Spinner: 120ms\n * - Blinking Dot: 600ms\n * - Elapsed Time: 1000ms\n */\n\nimport { EventEmitter } from 'events'\n\n// Animation intervals per Claude Code specification\nexport const ANIMATION_INTERVALS = {\n SPINNER: 120, // Spinner frame rotation\n BLINK: 600, // Blinking dot visibility toggle\n ELAPSED_TIME: 1000, // Elapsed time counter\n} as const\n\ntype AnimationType = keyof typeof ANIMATION_INTERVALS\n\ninterface AnimationFrame {\n spinnerFrame: number\n blinkVisible: boolean\n elapsedSeconds: number\n}\n\nclass AnimationSyncManager extends EventEmitter {\n private static instance: AnimationSyncManager | null = null\n private timers: Map<AnimationType, NodeJS.Timeout> = new Map()\n private frame: AnimationFrame = {\n spinnerFrame: 0,\n blinkVisible: true,\n elapsedSeconds: 0,\n }\n private subscriberCount: number = 0\n private startTime: number = 0\n\n private constructor() {\n super()\n this.setMaxListeners(100) // Allow many components to subscribe\n }\n\n static getInstance(): AnimationSyncManager {\n if (!AnimationSyncManager.instance) {\n AnimationSyncManager.instance = new AnimationSyncManager()\n }\n return AnimationSyncManager.instance\n }\n\n /**\n * Subscribe to animation frame updates\n * @param callback Called on every animation frame update\n * @returns Unsubscribe function\n */\n subscribe(callback: (frame: AnimationFrame) => void): () => void {\n this.subscriberCount++\n\n // Start timers if this is the first subscriber\n if (this.subscriberCount === 1) {\n this.startTimers()\n }\n\n // Immediately call with current frame\n callback({ ...this.frame })\n\n // Subscribe to updates\n this.on('frame', callback)\n\n return () => {\n this.off('frame', callback)\n this.subscriberCount--\n\n // Stop timers if no more subscribers\n if (this.subscriberCount === 0) {\n this.stopTimers()\n }\n }\n }\n\n /**\n * Get current animation frame state\n */\n getFrame(): AnimationFrame {\n return { ...this.frame }\n }\n\n /**\n * Reset elapsed time counter (e.g., when starting a new operation)\n */\n resetElapsedTime(): void {\n this.frame.elapsedSeconds = 0\n this.startTime = Date.now()\n }\n\n private startTimers(): void {\n this.startTime = Date.now()\n\n // Spinner timer (120ms)\n const spinnerTimer = setInterval(() => {\n this.frame.spinnerFrame = (this.frame.spinnerFrame + 1) % 12 // 12 frames for smooth animation\n this.emit('frame', { ...this.frame })\n }, ANIMATION_INTERVALS.SPINNER)\n this.timers.set('SPINNER', spinnerTimer)\n\n // Blink timer (600ms)\n const blinkTimer = setInterval(() => {\n this.frame.blinkVisible = !this.frame.blinkVisible\n // Note: We don't emit here to avoid double emissions\n // The blink state is included in the spinner frame update\n }, ANIMATION_INTERVALS.BLINK)\n this.timers.set('BLINK', blinkTimer)\n\n // Elapsed time timer (1000ms)\n const elapsedTimer = setInterval(() => {\n this.frame.elapsedSeconds = Math.floor(\n (Date.now() - this.startTime) / 1000,\n )\n // Note: We don't emit here to avoid double emissions\n }, ANIMATION_INTERVALS.ELAPSED_TIME)\n this.timers.set('ELAPSED_TIME', elapsedTimer)\n }\n\n private stopTimers(): void {\n for (const timer of this.timers.values()) {\n clearInterval(timer)\n }\n this.timers.clear()\n\n // Reset frame state\n this.frame = {\n spinnerFrame: 0,\n blinkVisible: true,\n elapsedSeconds: 0,\n }\n }\n\n /**\n * Cleanup - should be called on application shutdown\n */\n destroy(): void {\n this.stopTimers()\n this.removeAllListeners()\n AnimationSyncManager.instance = null\n }\n}\n\n/**\n * Global animation sync manager instance\n */\nexport const animationSync = AnimationSyncManager.getInstance()\n\n/**\n * React hook for synchronized animations\n * Usage:\n * ```tsx\n * function MyComponent() {\n * const frame = useAnimationSync()\n * return <Text>{spinnerChars[frame.spinnerFrame % spinnerChars.length]}</Text>\n * }\n * ```\n */\nexport function useAnimationSync(): AnimationFrame {\n // This is a placeholder - actual React hook implementation\n // should be in a separate file to avoid importing React here\n return animationSync.getFrame()\n}\n"],
5
- "mappings": "AAYA,SAAS,oBAAoB;AAGtB,MAAM,sBAAsB;AAAA,EACjC,SAAS;AAAA;AAAA,EACT,OAAO;AAAA;AAAA,EACP,cAAc;AAAA;AAChB;AAUA,MAAM,6BAA6B,aAAa;AAAA,EAC9C,OAAe,WAAwC;AAAA,EAC/C,SAA6C,oBAAI,IAAI;AAAA,EACrD,QAAwB;AAAA,IAC9B,cAAc;AAAA,IACd,cAAc;AAAA,IACd,gBAAgB;AAAA,EAClB;AAAA,EACQ,kBAA0B;AAAA,EAC1B,YAAoB;AAAA,EAEpB,cAAc;AACpB,UAAM;AACN,SAAK,gBAAgB,GAAG;AAAA,EAC1B;AAAA,EAEA,OAAO,cAAoC;AACzC,QAAI,CAAC,qBAAqB,UAAU;AAClC,2BAAqB,WAAW,IAAI,qBAAqB;AAAA,IAC3D;AACA,WAAO,qBAAqB;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,UAAU,UAAuD;AAC/D,SAAK;AAGL,QAAI,KAAK,oBAAoB,GAAG;AAC9B,WAAK,YAAY;AAAA,IACnB;AAGA,aAAS,EAAE,GAAG,KAAK,MAAM,CAAC;AAG1B,SAAK,GAAG,SAAS,QAAQ;AAEzB,WAAO,MAAM;AACX,WAAK,IAAI,SAAS,QAAQ;AAC1B,WAAK;AAGL,UAAI,KAAK,oBAAoB,GAAG;AAC9B,aAAK,WAAW;AAAA,MAClB;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,WAA2B;AACzB,WAAO,EAAE,GAAG,KAAK,MAAM;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA,EAKA,mBAAyB;AACvB,SAAK,MAAM,iBAAiB;AAC5B,SAAK,YAAY,KAAK,IAAI;AAAA,EAC5B;AAAA,EAEQ,cAAoB;AAC1B,SAAK,YAAY,KAAK,IAAI;AAG1B,UAAM,eAAe,YAAY,MAAM;AACrC,WAAK,MAAM,gBAAgB,KAAK,MAAM,eAAe,KAAK;AAC1D,WAAK,KAAK,SAAS,EAAE,GAAG,KAAK,MAAM,CAAC;AAAA,IACtC,GAAG,oBAAoB,OAAO;AAC9B,SAAK,OAAO,IAAI,WAAW,YAAY;AAGvC,UAAM,aAAa,YAAY,MAAM;AACnC,WAAK,MAAM,eAAe,CAAC,KAAK,MAAM;AAAA,IAGxC,GAAG,oBAAoB,KAAK;AAC5B,SAAK,OAAO,IAAI,SAAS,UAAU;AAGnC,UAAM,eAAe,YAAY,MAAM;AACrC,WAAK,MAAM,iBAAiB,KAAK;AAAA,SAC9B,KAAK,IAAI,IAAI,KAAK,aAAa;AAAA,MAClC;AAAA,IAEF,GAAG,oBAAoB,YAAY;AACnC,SAAK,OAAO,IAAI,gBAAgB,YAAY;AAAA,EAC9C;AAAA,EAEQ,aAAmB;AACzB,eAAW,SAAS,KAAK,OAAO,OAAO,GAAG;AACxC,oBAAc,KAAK;AAAA,IACrB;AACA,SAAK,OAAO,MAAM;AAGlB,SAAK,QAAQ;AAAA,MACX,cAAc;AAAA,MACd,cAAc;AAAA,MACd,gBAAgB;AAAA,IAClB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,UAAgB;AACd,SAAK,WAAW;AAChB,SAAK,mBAAmB;AACxB,yBAAqB,WAAW;AAAA,EAClC;AACF;AAKO,MAAM,gBAAgB,qBAAqB,YAAY;AAYvD,SAAS,mBAAmC;AAGjD,SAAO,cAAc,SAAS;AAChC;",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- function intersperse(as, separator) {
2
- return as.flatMap((a, i) => i ? [separator(i), a] : [a]);
3
- }
4
- export {
5
- intersperse
6
- };
7
- //# sourceMappingURL=array.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/utils/array.ts"],
4
- "sourcesContent": ["export function intersperse<A>(as: A[], separator: (index: number) => A): A[] {\n return as.flatMap((a, i) => (i ? [separator(i), a] : [a]))\n}\n"],
5
- "mappings": "AAAO,SAAS,YAAe,IAAS,WAAsC;AAC5E,SAAO,GAAG,QAAQ,CAAC,GAAG,MAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE;AAC3D;",
6
- "names": []
7
- }
package/dist/utils/ask.js DELETED
@@ -1,80 +0,0 @@
1
- import { last } from "lodash-es";
2
- import { getSystemPrompt } from "../constants/prompts/index.js";
3
- import { getContext } from "../context.js";
4
- import { getTotalCost } from "../cost-tracker.js";
5
- import { query } from "../query.js";
6
- import { getModelManager } from "./model.js";
7
- import { setCwd } from "./state.js";
8
- import { getMessagesPath, overwriteLog } from "./log.js";
9
- import { createUserMessage } from "./messages.js";
10
- async function ask({
11
- commands,
12
- safeMode,
13
- safetyMode = "yolo",
14
- hasPermissionsToUseTool,
15
- messageLogName,
16
- prompt,
17
- cwd,
18
- tools,
19
- verbose = false
20
- }) {
21
- await setCwd(cwd);
22
- const message = createUserMessage(prompt);
23
- const messages = [message];
24
- const [systemPrompt, context, model] = await Promise.all([
25
- getSystemPrompt(),
26
- getContext(),
27
- getModelManager().getModelName("main")
28
- ]);
29
- for await (const m of query(
30
- messages,
31
- systemPrompt,
32
- context,
33
- hasPermissionsToUseTool,
34
- {
35
- options: {
36
- commands,
37
- tools,
38
- verbose,
39
- safeMode,
40
- safetyMode,
41
- forkNumber: 0,
42
- messageLogName: "unused",
43
- maxThinkingTokens: 0
44
- },
45
- abortController: new AbortController(),
46
- messageId: void 0,
47
- readFileTimestamps: {},
48
- setToolJSX: () => {
49
- }
50
- // No-op function for non-interactive use
51
- }
52
- )) {
53
- messages.push(m);
54
- }
55
- const result = last(messages);
56
- if (!result || result.type !== "assistant") {
57
- throw new Error("Expected content to be an assistant message");
58
- }
59
- const textBlock = result.message.content.find(
60
- (block) => block.type === "text"
61
- );
62
- if (!textBlock || textBlock.type !== "text") {
63
- throw new Error(
64
- `Expected at least one text content item, but got ${JSON.stringify(
65
- result.message.content.map((b) => b.type)
66
- )}`
67
- );
68
- }
69
- const messageHistoryFile = getMessagesPath(messageLogName, 0, 0);
70
- overwriteLog(messageHistoryFile, messages);
71
- return {
72
- resultText: textBlock.text,
73
- totalCost: getTotalCost(),
74
- messageHistoryFile
75
- };
76
- }
77
- export {
78
- ask
79
- };
80
- //# sourceMappingURL=ask.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/utils/ask.tsx"],
4
- "sourcesContent": ["import { last } from 'lodash-es'\nimport { Command } from '@commands'\nimport { getSystemPrompt } from '@constants/prompts'\nimport { getContext } from '@context'\nimport { getTotalCost } from '@costTracker'\nimport { Message, query } from '@query'\nimport { CanUseToolFn } from '@hooks/useCanUseTool'\nimport { Tool } from '@tool'\nimport { getModelManager } from '@utils/model'\nimport { setCwd } from './state'\nimport { getMessagesPath, overwriteLog } from './log'\nimport { createUserMessage } from './messages'\nimport type { SafetyMode } from './config'\n\ntype Props = {\n commands: Command[]\n /** @deprecated Use safetyMode instead */\n safeMode?: boolean\n /** Safety mode: 'yolo' | 'smart' | 'strict' */\n safetyMode?: SafetyMode\n hasPermissionsToUseTool: CanUseToolFn\n messageLogName: string\n prompt: string\n cwd: string\n tools: Tool[]\n verbose?: boolean\n}\n\n// Sends a single prompt to the Anthropic Messages API and returns the response.\n// Assumes that claude is being used non-interactively -- will not\n// ask the user for permissions or further input.\nexport async function ask({\n commands,\n safeMode,\n safetyMode = 'yolo',\n hasPermissionsToUseTool,\n messageLogName,\n prompt,\n cwd,\n tools,\n verbose = false,\n}: Props): Promise<{\n resultText: string\n totalCost: number\n messageHistoryFile: string\n}> {\n await setCwd(cwd)\n const message = createUserMessage(prompt)\n const messages: Message[] = [message]\n\n const [systemPrompt, context, model] = await Promise.all([\n getSystemPrompt(),\n getContext(),\n getModelManager().getModelName('main'),\n ])\n\n for await (const m of query(\n messages,\n systemPrompt,\n context,\n hasPermissionsToUseTool,\n {\n options: {\n commands,\n tools,\n verbose,\n safeMode,\n safetyMode,\n forkNumber: 0,\n messageLogName: 'unused',\n maxThinkingTokens: 0,\n },\n abortController: new AbortController(),\n messageId: undefined,\n readFileTimestamps: {},\n setToolJSX: () => {}, // No-op function for non-interactive use\n },\n )) {\n messages.push(m)\n }\n\n const result = last(messages)\n if (!result || result.type !== 'assistant') {\n throw new Error('Expected content to be an assistant message')\n }\n\n // Find first text block (skip thinking/redacted_thinking blocks)\n const textBlock = result.message.content.find(\n (block: any) => block.type === 'text',\n )\n if (!textBlock || textBlock.type !== 'text') {\n throw new Error(\n `Expected at least one text content item, but got ${JSON.stringify(\n result.message.content.map((b: any) => b.type),\n )}`,\n )\n }\n\n // Write log that can be retrieved with `claude log`\n const messageHistoryFile = getMessagesPath(messageLogName, 0, 0)\n overwriteLog(messageHistoryFile, messages)\n\n return {\n resultText: textBlock.text,\n totalCost: getTotalCost(),\n messageHistoryFile,\n }\n}\n"],
5
- "mappings": "AAAA,SAAS,YAAY;AAErB,SAAS,uBAAuB;AAChC,SAAS,kBAAkB;AAC3B,SAAS,oBAAoB;AAC7B,SAAkB,aAAa;AAG/B,SAAS,uBAAuB;AAChC,SAAS,cAAc;AACvB,SAAS,iBAAiB,oBAAoB;AAC9C,SAAS,yBAAyB;AAoBlC,eAAsB,IAAI;AAAA,EACxB;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AACZ,GAIG;AACD,QAAM,OAAO,GAAG;AAChB,QAAM,UAAU,kBAAkB,MAAM;AACxC,QAAM,WAAsB,CAAC,OAAO;AAEpC,QAAM,CAAC,cAAc,SAAS,KAAK,IAAI,MAAM,QAAQ,IAAI;AAAA,IACvD,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,gBAAgB,EAAE,aAAa,MAAM;AAAA,EACvC,CAAC;AAED,mBAAiB,KAAK;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACE,SAAS;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,YAAY;AAAA,QACZ,gBAAgB;AAAA,QAChB,mBAAmB;AAAA,MACrB;AAAA,MACA,iBAAiB,IAAI,gBAAgB;AAAA,MACrC,WAAW;AAAA,MACX,oBAAoB,CAAC;AAAA,MACrB,YAAY,MAAM;AAAA,MAAC;AAAA;AAAA,IACrB;AAAA,EACF,GAAG;AACD,aAAS,KAAK,CAAC;AAAA,EACjB;AAEA,QAAM,SAAS,KAAK,QAAQ;AAC5B,MAAI,CAAC,UAAU,OAAO,SAAS,aAAa;AAC1C,UAAM,IAAI,MAAM,6CAA6C;AAAA,EAC/D;AAGA,QAAM,YAAY,OAAO,QAAQ,QAAQ;AAAA,IACvC,CAAC,UAAe,MAAM,SAAS;AAAA,EACjC;AACA,MAAI,CAAC,aAAa,UAAU,SAAS,QAAQ;AAC3C,UAAM,IAAI;AAAA,MACR,oDAAoD,KAAK;AAAA,QACvD,OAAO,QAAQ,QAAQ,IAAI,CAAC,MAAW,EAAE,IAAI;AAAA,MAC/C,CAAC;AAAA,IACH;AAAA,EACF;AAGA,QAAM,qBAAqB,gBAAgB,gBAAgB,GAAG,CAAC;AAC/D,eAAa,oBAAoB,QAAQ;AAEzC,SAAO;AAAA,IACL,YAAY,UAAU;AAAA,IACtB,WAAW,aAAa;AAAA,IACxB;AAAA,EACF;AACF;",
6
- "names": []
7
- }