@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/screens/REPL.tsx"],
4
- "sourcesContent": ["import {\n ToolUseBlockParam,\n ToolResultBlockParam,\n} from '@anthropic-ai/sdk/resources/index.mjs'\nimport { Box, Newline, Static, Text, useApp } from 'ink'\nimport ProjectOnboarding, {\n markProjectOnboardingComplete,\n} from '@components/ProjectOnboarding'\nimport type { SafetyMode } from '@utils/config'\nimport { CostThresholdDialog } from '@components/CostThresholdDialog'\nimport * as React from 'react'\nimport { useEffect, useMemo, useRef, useState, useCallback } from 'react'\nimport { Command } from '@commands'\nimport { Logo } from '@components/Logo'\nimport { Message } from '@components/Message'\nimport { MessageResponse } from '@components/MessageResponse'\nimport { BashStreamingProgress } from '@components/BashStreamingProgress'\nimport { StreamingTextPreview } from '@components/StreamingTextPreview'\nimport { MessageSelector } from '@components/MessageSelector'\nimport {\n RewindPanel,\n type RewindAction,\n type RewindPoint,\n} from '@components/RewindPanel'\nimport {\n PermissionRequest,\n type ToolUseConfirm,\n} from '@components/permissions/PermissionRequest'\nimport PromptInput from '@components/PromptInput'\nimport { getSystemPrompt } from '@constants/prompts'\nimport { getContext } from '@context'\nimport { getTotalCost, useCostSummary } from '@costTracker'\nimport { useLogStartupTime } from '@hooks/useLogStartupTime'\nimport { addToHistory } from '@history'\nimport { useApiKeyVerification } from '@hooks/useApiKeyVerification'\n// useCancelRequest removed - ESC interrupt logic consolidated into onInterrupt callback\nimport useCanUseTool from '@hooks/useCanUseTool'\nimport { useLogMessages, serializeMessageForLog } from '@hooks/useLogMessages'\nimport { overwriteLog } from '@utils/log'\nimport { PermissionProvider } from '@context/PermissionContext'\nimport { useFullscreenExitCallback } from '@hooks/useTerminalSize'\n// ModeIndicator moved to PromptInput footer for lightweight inline display\nimport { TodoPanel } from '@components/TodoPanel'\nimport { ThinkingSelector } from '@components/ThinkingSelector'\nimport { TurnCompletionIndicator } from '@components/TurnCompletionIndicator'\nimport { getTodos, initTodoSession } from '@utils/todoStorage'\nimport {\n setMessagesGetter,\n setMessagesSetter,\n setModelConfigChangeHandler,\n setLanguageChangeHandler,\n} from '@messages'\nimport {\n type AssistantMessage,\n type BinaryFeedbackResult,\n type Message as MessageType,\n type ProgressMessage,\n type StreamingProgressContent,\n} from '@query'\nimport type { WrappedClient } from '@services/mcpClient'\nimport type { Tool } from '@tool'\n// Auto-updater removed; only show a new version banner passed from CLI\nimport { getGlobalConfig, saveGlobalConfig } from '@utils/config'\nimport { useBackgroundShells } from '@hooks/useBackgroundShells'\nimport { useDeferredLoading } from '@hooks/useDeferredLoading'\nimport { useSessionTracking } from '@hooks/useSessionTracking'\nimport { getNextAvailableLogForkNumber } from '@utils/log'\nimport {\n getErroredToolUseMessages,\n getInProgressToolUseIDs,\n getLastAssistantMessageId,\n getToolUseID,\n getUnresolvedToolUseIDs,\n INTERRUPT_MESSAGE,\n isNotEmptyMessage,\n type NormalizedMessage,\n normalizeMessages,\n normalizeMessagesForAPI,\n processUserInput,\n reorderMessages,\n extractTag,\n createAssistantMessage,\n createAssistantAPIErrorMessage,\n createUserMessage,\n} from '@utils/messages'\nimport { logError } from '@utils/log'\nimport { getModelManager, ModelManager } from '@utils/model'\nimport {\n clearTerminal,\n clearScreen,\n updateTerminalTitle,\n} from '@utils/terminal'\nimport { BinaryFeedback } from '@components/binary-feedback/BinaryFeedback'\nimport { getMaxThinkingTokens } from '@utils/thinking'\nimport { getOriginalCwd } from '@utils/state'\nimport { animationManager } from '@utils/animationManager'\nimport { handleHashCommand } from '@commands/terminalSetup'\nimport { randomUUID } from 'crypto'\nimport { getMessagesPath } from '@utils/log'\nimport { BackgroundShellManager } from '@utils/BackgroundShellManager'\nimport { BackgroundTasksPanel } from '@components/BackgroundTasksPanel'\nimport { TeamMemberPanel } from '@components/TeamMemberPanel'\nimport { AgentViewBanner } from '@components/AgentViewBanner'\nimport { TitledDivider } from '@components/TitledDivider'\nimport { t } from '@i18n'\nimport { IdleNotificationBar } from '@components/IdleNotificationBar'\nimport { AskUserQuestionDialog } from '@components/AskUserQuestionDialog/AskUserQuestionDialog'\nimport {\n getToolUseIdByAgentId,\n getAgentIdByToolUseId,\n restoreToolUseAgentMappings,\n} from '@utils/agentTranscripts'\nimport type { AskUserQuestionContext } from '@minto-types/askUserQuestion'\nimport useAskUser from '@hooks/useAskUser'\n// V1+ hierarchical message display imports\nimport { useMessageGroups } from '@hooks/useMessageGroups'\nimport { useAgentTranscripts } from '@hooks/useAgentTranscripts'\nimport { GroupRenderer } from '@components/messages/GroupRenderer'\nimport { SEMANTIC_COLORS } from '@constants/colors'\nimport { useIdleNotifications } from '@hooks/useIdleNotifications'\nimport { useTeamMembers } from '@hooks/useTeamMembers'\nimport {\n recordFirstPrompt,\n incrementMessageCount,\n incrementToolCallCount,\n flushSessionStats,\n} from '@utils/sessionTracker'\nimport {\n getActiveTeams,\n disbandTeam,\n formatUserGuidanceForInjection,\n teamEvents,\n} from '@services/agentTeams'\nimport { AgentEngine } from '../engine/AgentEngine'\nimport { EngineRegistry, setGlobalRegistry } from '../engine/EngineRegistry'\nimport { useAgentEngine } from '@hooks/useAgentEngine'\n\n// Maximum number of recent messages to display when resuming a conversation\n// Set to Infinity to show all messages (user can scroll to see earlier ones)\nconst RESUME_VISIBLE_MESSAGE_COUNT = Infinity\n\n// Number of messages to show initially in transcript mode (Ctrl+O)\n// Ctrl+E toggles between showing last N and showing all\nconst TRANSCRIPT_VISIBLE_COUNT = 10\n\n// Screen mode type: 'prompt' (normal) or 'transcript' (detailed, verbose)\ntype ScreenMode = 'prompt' | 'transcript'\n\ntype Props = {\n commands: Command[]\n /** @deprecated Use safetyMode instead */\n safeMode?: boolean\n /** Safety mode: 'yolo' | 'smart' | 'strict' */\n safetyMode?: SafetyMode\n debug?: boolean\n initialForkNumber?: number | undefined\n initialPrompt: string | undefined\n // A unique name for the message log file, used to identify the fork\n messageLogName: string\n shouldShowPromptInput: boolean\n tools: Tool[]\n /**\n * Verbose mode: shows full parameters and complete outputs when enabled\n */\n verbose?: boolean | undefined\n // Initial messages to populate the REPL with\n initialMessages?: MessageType[]\n // MCP clients\n mcpClients?: WrappedClient[]\n // Flag to indicate if current model is default\n isDefaultModel?: boolean\n // Update banner info passed from CLI before first render\n initialUpdateVersion?: string | null\n initialUpdateCommands?: string[] | null\n // Whether to use limited input mode (raw mode not supported)\n fallbackMode?: boolean\n // Whether this is a resumed conversation (shows collapsed history indicator)\n isResumedConversation?: boolean\n // Whether architect tool is enabled (needed for deferred getTools() call)\n enableArchitect?: boolean\n}\n\nexport type BinaryFeedbackContext = {\n m1: AssistantMessage\n m2: AssistantMessage\n resolve: (result: BinaryFeedbackResult) => void\n}\n\nexport function REPL({\n commands,\n safeMode,\n safetyMode = 'yolo',\n debug = false,\n initialForkNumber = 0,\n initialPrompt,\n messageLogName,\n shouldShowPromptInput,\n tools,\n verbose: verboseFromCLI,\n initialMessages,\n mcpClients = [],\n isDefaultModel = true,\n initialUpdateVersion,\n initialUpdateCommands,\n fallbackMode = false,\n isResumedConversation = false,\n enableArchitect,\n}: Props): React.ReactNode {\n // Screen mode state: 'prompt' (normal) or 'transcript' (detailed verbose view)\n // Ctrl+O toggles between modes; verbose is derived from screen mode\n const [screen, setScreen] = useState<ScreenMode>(\n verboseFromCLI === true ? 'transcript' : 'prompt',\n )\n // Whether to show all messages in transcript mode (toggled by Ctrl+E)\n const [showAllInTranscript, setShowAllInTranscript] = useState(false)\n // Derived verbose flag \u2014 used by all downstream display logic\n const verbose = screen === 'transcript'\n\n // Used to force the logo to re-render and conversation log to use a new file\n const [forkNumber, setForkNumber] = useState(\n getNextAvailableLogForkNumber(messageLogName, initialForkNumber, 0),\n )\n\n // State to temporarily hide transient UI during resize to prevent ghost artifacts\n const [isResizeClearing, setIsResizeClearing] = useState(false)\n\n // Centralized 4-step anti-ghosting protocol for all forkNumber changes.\n // Hides transient UI \u2192 waits for empty render \u2192 clears terminal \u2192 runs optional callback \u2192 re-renders.\n const safeRefork = useCallback(async (beforeRefork?: () => void) => {\n setIsResizeClearing(true)\n await new Promise(resolve => setTimeout(resolve, 50))\n await clearTerminal()\n beforeRefork?.()\n setForkNumber(prev => prev + 1)\n setIsResizeClearing(false)\n }, [])\n\n // Get exit function from Ink for unmounting (used by /resume command)\n const { exit: unmountREPL } = useApp()\n\n // Re-render UI when significant resize occurs to clear ghost artifacts\n useFullscreenExitCallback(() => safeRefork())\n\n // Re-render UI when resuming from background (tab switch, app nap, system sleep).\n // AnimationManager detects tick gaps > 2s and fires onResume callbacks.\n // Without this, Ink's differential rendering gets out of sync while the terminal\n // is invisible, causing ghost artifacts when the user returns.\n useEffect(() => {\n const unsubscribe = animationManager.onResume(() => safeRefork())\n return unsubscribe\n }, [safeRefork])\n\n // Handle SIGCONT: process resumed from suspension (Ctrl+Z \u2192 fg).\n // Same ghost artifact issue \u2014 terminal state is stale after resume.\n useEffect(() => {\n const handler = () => safeRefork()\n process.on('SIGCONT', handler)\n return () => {\n process.off('SIGCONT', handler)\n }\n }, [safeRefork])\n\n const [\n forkConvoWithMessagesOnTheNextRender,\n setForkConvoWithMessagesOnTheNextRender,\n ] = useState<MessageType[] | null>(null)\n\n // \u2500\u2500 Default Engine + Registry \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n // Engine is the single source of truth for messages, loading state, and abort.\n const defaultEngine = useMemo(() => {\n const engine = new AgentEngine({\n agentId: 'default',\n name: 'default',\n role: 'default',\n systemPrompt: () => getSystemPrompt(),\n context: () => getContext(),\n tools: tools,\n commands: commands,\n initialMessages: initialMessages ?? [],\n verbose: verboseFromCLI === true,\n safeMode,\n safetyMode,\n messageLogName,\n forkNumber: getNextAvailableLogForkNumber(\n messageLogName,\n initialForkNumber,\n 0,\n ),\n })\n return engine\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const registry = useMemo(() => {\n const r = new EngineRegistry()\n r.register('default', defaultEngine)\n setGlobalRegistry(r)\n return r\n }, [defaultEngine])\n\n // Subscribe to focused engine events \u2192 React state\n const {\n messages,\n isLoading,\n lastTurnDurationMs,\n submitPrompt: engineSubmitPrompt,\n abort: engineAbort,\n setMessages: engineSetMessages,\n appendMessages: engineAppendMessages,\n } = useAgentEngine(registry.focused ?? null)\n\n // No auto-updater state\n const [toolJSX, setToolJSX] = useState<{\n jsx: React.ReactNode | null\n shouldHidePromptInput: boolean\n } | null>(null)\n const [toolUseConfirm, setToolUseConfirm] = useState<ToolUseConfirm | null>(\n null,\n )\n // Phase 4.1: Message history stack for Esc Esc rollback\n const [messageHistory, setMessageHistory] = useState<MessageType[][]>([])\n const [inputValue, setInputValue] = useState('')\n const [inputMode, setInputMode] = useState<'bash' | 'prompt' | 'koding'>(\n 'prompt',\n )\n const [submitCount, setSubmitCount] = useState(0)\n const [isMessageSelectorVisible, setIsMessageSelectorVisible] =\n useState(false)\n const [isRewindPanelVisible, setIsRewindPanelVisible] = useState(false)\n const [showCostDialog, setShowCostDialog] = useState(false)\n const [haveShownCostDialog, setHaveShownCostDialog] = useState(\n getGlobalConfig().hasAcknowledgedCostThreshold,\n )\n\n const [binaryFeedbackContext, setBinaryFeedbackContext] =\n useState<BinaryFeedbackContext | null>(null)\n const [askUserQuestionContext, setAskUserQuestionContext] =\n useState<AskUserQuestionContext | null>(null)\n // Deferred loading: MCP clients, tools, commands, version check (background)\n const {\n commands: currentCommands,\n tools: currentTools,\n mcpClients: currentMcpClients,\n updateVersion: updateAvailableVersion,\n updateCommands,\n startupItems,\n } = useDeferredLoading({\n initialCommands: commands,\n initialTools: tools,\n initialMcpClients: mcpClients,\n initialUpdateVersion: initialUpdateVersion,\n initialUpdateCommands: initialUpdateCommands,\n enableArchitect,\n })\n\n // TodoPanel state\n const [isTodoPanelVisible, setIsTodoPanelVisible] = useState(true)\n\n // ThinkingSelector overlay state\n const [showThinkingSelector, setShowThinkingSelector] = useState(false)\n\n // Turn duration tracking is now handled by the engine (emits turn_end event).\n // lastTurnDurationMs comes from useAgentEngine.\n\n // Background tasks state (event-driven via hook)\n const {\n shells: backgroundShells,\n isPanelVisible: showBackgroundPanel,\n setIsPanelVisible: setShowBackgroundPanel,\n runningCount: backgroundShellRunningCount,\n } = useBackgroundShells()\n\n // Team panel state\n const [showTeamPanel, setShowTeamPanel] = useState(false)\n\n // Current viewed agent: null = team-lead (main REPL), string = teammate agentId\n const [currentViewAgent, setCurrentViewAgent] = useState<string | null>(null)\n\n // Idle notifications (auto-dismissing toasts when teammates go idle)\n const { notifications: idleNotifications } = useIdleNotifications()\n\n // Team member data for inline context display in PromptInput\n const { members: teamMembers, teamName, hasActiveTeam } = useTeamMembers()\n\n // Auto-cleanup when team is disbanded.\n // Two responsibilities:\n // 1. If viewing a teammate: switch back to team-lead view, clear display.\n // 2. Always: demote the default engine from team-lead, cleaning up stale\n // heartbeat/mailbox/channel resources that would otherwise trigger\n // unexpected re-queries after the team is gone.\n // Also defensively reset UI overlay state (toolJSX, toolUseConfirm) that\n // could block input if left stale.\n useEffect(() => {\n if (!hasActiveTeam) {\n setShowTeamPanel(false)\n // Defensive: reset any UI overlay state that could block input\n setToolJSX(null)\n setToolUseConfirm(null)\n if (currentViewAgent) {\n // Full cleanup: switch focus, clear display, re-mount Static.\n // Uses synchronous clearScreen() to ensure terminal is cleared BEFORE\n // React re-renders \u2014 async clearTerminal() would race with Ink's render.\n setIsResizeClearing(true)\n clearScreen()\n registry.setFocus('default')\n setCurrentViewAgent(null)\n setForkNumber(prev => prev + 1)\n setImmediate(() => setIsResizeClearing(false))\n }\n // Remove team-lead overlay \u2014 revert to default system prompt\n defaultEngine.updateConfig({\n systemPrompt: () => getSystemPrompt(),\n })\n // Demote the default engine: stop heartbeat, unsub mailbox, drain\n // stale channel messages. Without this, the engine's channel listener\n // can trigger phantom queries from stale team messages, which can\n // leave the engine stuck in 'querying' and block user input.\n defaultEngine.demoteFromTeamLead()\n }\n }, [hasActiveTeam]) // eslint-disable-line react-hooks/exhaustive-deps\n\n // React to registry focus changes (e.g., teammate engine unregistered while focused).\n // When the registry silently falls back to 'default', sync React state to match.\n useEffect(() => {\n const unsub = registry.onChange(() => {\n // Skip if we're in the middle of a view switch (prevents double forkNumber bump \u2192 ghost messages)\n if (isSwitchingViewRef.current) return\n // If registry focus fell back to default but React still thinks we're viewing a teammate\n if (registry.focusedId === 'default' && currentViewAgent) {\n setIsResizeClearing(true)\n clearScreen()\n setCurrentViewAgent(null)\n setForkNumber(prev => prev + 1)\n setImmediate(() => setIsResizeClearing(false))\n }\n })\n return unsub\n }, [registry, currentViewAgent])\n\n // Phase 2.1: Removed recentlyCompletedIDs state - immediate static rendering for better performance\n const prevUnresolvedRef = useRef<Set<string>>(new Set())\n\n // Guard to prevent onChange listener from double-triggering forkNumber during view switch\n const isSwitchingViewRef = useRef(false)\n\n // Message batching is now handled by the engine + useAgentEngine hook.\n\n const getBinaryFeedbackResponse = useCallback(\n (\n m1: AssistantMessage,\n m2: AssistantMessage,\n ): Promise<BinaryFeedbackResult> => {\n return new Promise<BinaryFeedbackResult>(resolvePromise => {\n setBinaryFeedbackContext({\n m1,\n m2,\n resolve: resolvePromise,\n })\n })\n },\n [],\n )\n\n const readFileTimestamps = useRef<{\n [filename: string]: number\n }>({})\n\n const { status: apiKeyStatus, reverify } = useApiKeyVerification()\n // Unified interrupt handler - called by PromptInput when ESC is pressed with empty input\n const onInterrupt = useCallback(() => {\n if (!isLoading) {\n return\n }\n\n // Force save messages before interrupt using engine as source of truth\n const currentMessages = registry.focused?.messages\n if (currentMessages && currentMessages.length > 0) {\n const serializedMessages = [...currentMessages].map(\n serializeMessageForLog,\n )\n overwriteLog(\n getMessagesPath(messageLogName, forkNumber, 0),\n serializedMessages,\n )\n }\n\n // Clean up UI state\n setToolJSX(null)\n setToolUseConfirm(null)\n setBinaryFeedbackContext(null)\n // Abort the request \u2014 engine handles isLoading transition\n if (toolUseConfirm) {\n toolUseConfirm.onAbort()\n } else {\n engineAbort()\n }\n }, [\n isLoading,\n registry.focused?.messages,\n messageLogName,\n forkNumber,\n toolUseConfirm,\n engineAbort,\n ])\n\n // Legacy onCancel for other callers (e.g., PermissionRequest)\n const onCancel = useCallback(() => {\n onInterrupt()\n }, [onInterrupt])\n\n useEffect(() => {\n if (forkConvoWithMessagesOnTheNextRender) {\n setForkNumber(_ => _ + 1)\n setForkConvoWithMessagesOnTheNextRender(null)\n engineSetMessages(forkConvoWithMessagesOnTheNextRender)\n }\n }, [forkConvoWithMessagesOnTheNextRender, engineSetMessages])\n\n useEffect(() => {\n const totalCost = getTotalCost()\n if (totalCost >= 5 /* $5 */ && !showCostDialog && !haveShownCostDialog) {\n setShowCostDialog(true)\n }\n }, [messages, showCostDialog, haveShownCostDialog])\n\n // Update banner is provided by CLI at startup; no async check here.\n\n const canUseTool = useCanUseTool(setToolUseConfirm)\n const askUser = useAskUser(setAskUserQuestionContext)\n\n async function onInit() {\n reverify()\n\n if (!initialPrompt) {\n return\n }\n\n try {\n const tempAbortController = new AbortController()\n const newMessages = await processUserInput(\n initialPrompt,\n 'prompt',\n setToolJSX,\n {\n abortController: tempAbortController,\n options: {\n commands: currentCommands,\n forkNumber,\n messageLogName,\n tools: currentTools,\n verbose,\n maxThinkingTokens: 0,\n },\n messageId: getLastAssistantMessageId(messages),\n setForkConvoWithMessagesOnTheNextRender,\n readFileTimestamps: readFileTimestamps.current,\n },\n null,\n )\n\n if (newMessages.length) {\n for (const message of newMessages) {\n if (message.type === 'user') {\n addToHistory(initialPrompt)\n }\n }\n // Delegate to onQuery which uses the engine\n await onQuery(newMessages)\n } else {\n addToHistory(initialPrompt)\n }\n\n setHaveShownCostDialog(\n getGlobalConfig().hasAcknowledgedCostThreshold || false,\n )\n } catch (error) {\n logError(error)\n }\n }\n\n // Phase 4.1: Rollback to previous message state\n const rollbackConversation = useCallback((): boolean => {\n if (messageHistory.length === 0) {\n return false // No history to rollback to\n }\n\n // Pop the last snapshot and restore it\n const previousMessages = messageHistory[messageHistory.length - 1]\n if (!previousMessages) return false\n engineSetMessages(previousMessages)\n setMessageHistory(history => history.slice(0, -1))\n\n return true // Successfully rolled back\n }, [messageHistory, engineSetMessages])\n\n // \u2500\u2500 Query handler: delegates to engine \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n // The engine handles the query loop, post-query drain, and team message delivery.\n // This wrapper does REPL-layer pre/post-processing.\n async function onQuery(\n newMessages: MessageType[],\n _passedAbortController?: AbortController,\n ) {\n // Reset to normal mode when user starts new task\n setScreen('prompt')\n setShowAllInTranscript(false)\n\n // Check if this is a Koding request based on last message's options\n const firstMessage = newMessages[0]\n const isKodingRequest =\n newMessages.length > 0 &&\n firstMessage !== undefined &&\n firstMessage.type === 'user' &&\n 'options' in firstMessage &&\n (firstMessage as any).options?.isKodingRequest === true\n\n // Save message history snapshot for rollback (limit to last 10)\n setMessageHistory(history => [...history, [...messages]].slice(-10))\n\n // Mark onboarding as complete when any user message is sent\n markProjectOnboardingComplete()\n\n // Session tracking\n const lastMessage = newMessages[newMessages.length - 1]\n if (\n lastMessage &&\n lastMessage.type === 'user' &&\n typeof lastMessage.message.content === 'string'\n ) {\n recordFirstPrompt(lastMessage.message.content)\n incrementMessageCount(1)\n }\n\n // If last message is assistant (bash command result / slash command), just append\n if (lastMessage && lastMessage.type === 'assistant') {\n engineAppendMessages(newMessages)\n return\n }\n\n // Update the focused engine config with current maxThinkingTokens\n const maxThinkingTokens = await getMaxThinkingTokens([\n ...messages,\n ...newMessages,\n ])\n const targetEngine = registry.focused ?? defaultEngine\n targetEngine.updateConfig({ maxThinkingTokens })\n\n // If isKodingRequest, mark it in the engine config so we can handle post-query\n if (isKodingRequest) {\n targetEngine.updateConfig({ isKodingRequest: true })\n }\n\n // Delegate to engine \u2014 it handles the query loop, batching, and drain\n await engineSubmitPrompt(newMessages)\n\n // Post-query: flush session stats\n flushSessionStats()\n\n // Post-query: Koding response save\n if (isKodingRequest) {\n const engineMsgs = registry.focused?.messages ?? []\n const lastAssistantMsg = [...engineMsgs]\n .reverse()\n .find(m => m.type === 'assistant')\n if (lastAssistantMsg && lastAssistantMsg.type === 'assistant') {\n try {\n const content =\n typeof lastAssistantMsg.message.content === 'string'\n ? lastAssistantMsg.message.content\n : lastAssistantMsg.message.content\n .filter(block => block.type === 'text')\n .map(block => (block.type === 'text' ? block.text : ''))\n .join('\\n')\n if (content && content.trim().length > 0) {\n handleHashCommand(content)\n }\n } catch (error) {\n console.error('Error saving response to project docs:', error)\n }\n }\n targetEngine.updateConfig({ isKodingRequest: undefined })\n }\n }\n\n // Register cost summary tracker\n useCostSummary()\n\n // Register messages getter and setter (engine is source of truth)\n useEffect(() => {\n const getMessages = () => messages\n setMessagesGetter(getMessages)\n setMessagesSetter(engineSetMessages)\n }, [messages, engineSetMessages])\n\n // Initialize todo session with unique identifier\n // Using messageLogName + forkNumber as session ID to ensure:\n // 1. Each conversation has its own todo list\n // 2. Resumed conversations restore their todos\n useEffect(() => {\n const todoSessionId = `${messageLogName}-${forkNumber}`\n initTodoSession(todoSessionId)\n\n // Restore transcript mappings for history restore\n // This enables proper display of Task tool results from previous sessions\n if (initialMessages && initialMessages.length > 0) {\n restoreToolUseAgentMappings()\n }\n }, [messageLogName, forkNumber, initialMessages])\n\n // Register model config change handler for UI refresh\n useEffect(() => {\n setModelConfigChangeHandler(() => safeRefork())\n }, [safeRefork])\n\n // Register language change handler for UI refresh\n useEffect(() => {\n setLanguageChangeHandler(() => safeRefork())\n }, [safeRefork])\n\n // messagesRef removed \u2014 engine.messages is the synchronous source of truth\n\n // Record transcripts locally, for debugging and conversation recovery\n useLogMessages(messages, messageLogName, forkNumber)\n\n // Log startup time\n useLogStartupTime()\n\n // Initial load\n useEffect(() => {\n onInit()\n // TODO: fix this\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n // Session tracking: plugins, hook manager, session lifecycle\n useSessionTracking(messageLogName, forkNumber)\n\n // Unified message source: focused engine provides messages via useAgentEngine.\n // For teammate engines, skip the inherited parent messages prefix so only\n // the agent's own activity (its prompt, tool calls, responses) is rendered.\n // This prevents \"mixed content\" where parent messages bleed into the teammate view.\n const activeMessages = useMemo(() => {\n const engine = registry.focused\n if (\n engine &&\n engine !== defaultEngine &&\n engine.ownMessagesStartIndex > 0\n ) {\n return messages.slice(engine.ownMessagesStartIndex)\n }\n return messages\n }, [messages, currentViewAgent, registry, defaultEngine])\n\n const normalizedMessages = useMemo(\n () => normalizeMessages(activeMessages).filter(isNotEmptyMessage),\n [activeMessages],\n )\n\n const unresolvedToolUseIDs = useMemo(\n () => getUnresolvedToolUseIDs(normalizedMessages),\n [normalizedMessages],\n )\n\n // Phase 2.1: Removed 300ms delay useEffect - immediate static rendering\n // Update prevUnresolvedRef when unresolvedToolUseIDs changes\n useEffect(() => {\n prevUnresolvedRef.current = new Set(unresolvedToolUseIDs)\n }, [unresolvedToolUseIDs])\n\n const inProgressToolUseIDs = useMemo(\n () => getInProgressToolUseIDs(normalizedMessages),\n [normalizedMessages],\n )\n\n const erroredToolUseIDs = useMemo(\n () =>\n new Set(\n getErroredToolUseMessages(normalizedMessages).map(\n _ => (_.message.content[0]! as ToolUseBlockParam).id,\n ),\n ),\n [normalizedMessages],\n )\n\n // V1+ Message Groups - identifies parallel task groups for unified rendering\n const {\n groups: messageGroups,\n getGroupForMessage,\n getGroupForToolUse,\n shouldGroupBeStatic,\n displayConfig,\n } = useMessageGroups(\n normalizedMessages,\n unresolvedToolUseIDs,\n inProgressToolUseIDs,\n verbose,\n )\n\n // V1+ Agent Transcripts - real-time transcript access for task display\n // getTranscript enables lazy loading from disk for historical messages\n const { transcripts: agentTranscripts, getTranscript } = useAgentTranscripts()\n\n // V1+ Tool outputs map for group rendering\n const toolOutputs = useMemo(() => {\n const outputs = new Map<string, ToolResultBlockParam>()\n for (const msg of normalizedMessages) {\n if (msg.type === 'user' && msg.message.role === 'user') {\n for (const block of msg.message.content) {\n if (typeof block === 'object' && block.type === 'tool_result') {\n outputs.set(block.tool_use_id, block as ToolResultBlockParam)\n }\n }\n }\n }\n return outputs\n }, [normalizedMessages])\n\n // Type for message JSX items - pre-rendered JSX with static/transient type\n type MessageJSXItem = {\n type: 'static' | 'transient'\n jsx: React.ReactElement\n }\n\n // Static item type for Ink's Static component (requires id for deduplication)\n type StaticItem = { id: string; jsx: React.ReactElement }\n\n const messagesJSX = useMemo(() => {\n const reorderedMessages = reorderMessages(normalizedMessages)\n const isTranscript = screen === 'transcript'\n\n // Message truncation: transcript mode (last 10) or resume mode\n const shouldTruncateTranscript = isTranscript && !showAllInTranscript\n const totalMessageCount = reorderedMessages.length\n const transcriptTruncatedCount =\n shouldTruncateTranscript && totalMessageCount > TRANSCRIPT_VISIBLE_COUNT\n ? totalMessageCount - TRANSCRIPT_VISIBLE_COUNT\n : 0\n\n // Resume truncation (separate, lower priority)\n const resumeHiddenCount =\n !isTranscript &&\n isResumedConversation &&\n reorderedMessages.length > RESUME_VISIBLE_MESSAGE_COUNT\n ? reorderedMessages.length - RESUME_VISIBLE_MESSAGE_COUNT\n : 0\n\n // Apply truncation: transcript mode takes precedence\n const visibleMessages =\n transcriptTruncatedCount > 0\n ? reorderedMessages.slice(-TRANSCRIPT_VISIBLE_COUNT)\n : resumeHiddenCount > 0\n ? reorderedMessages.slice(-RESUME_VISIBLE_MESSAGE_COUNT)\n : reorderedMessages\n\n // Build the result array with conditional header\n const result: MessageJSXItem[] = []\n\n // Unified header: Logo + Onboarding for all agents\n // In team mode with a focused teammate, also show the agent indicator\n result.push({\n type: 'static',\n jsx: (\n <Box flexDirection=\"column\" width=\"100%\" key=\"logo\">\n <Logo\n mcpClients={currentMcpClients}\n isDefaultModel={isDefaultModel}\n updateBannerVersion={updateAvailableVersion}\n updateBannerCommands={updateCommands}\n />\n <ProjectOnboarding workspaceDir={getOriginalCwd()} />\n {currentViewAgent &&\n (() => {\n const focusedEngine = registry.get(registry.focusedId)\n const engineName = focusedEngine?.engineConfig?.name ?? 'unknown'\n const engineState = focusedEngine?.state ?? 'pending'\n return (\n <AgentViewBanner\n displayName={\n currentViewAgent.includes('@')\n ? currentViewAgent.split('@')[0]!\n : currentViewAgent\n }\n agentType={engineName}\n status={engineState}\n />\n )\n })()}\n </Box>\n ),\n })\n\n // Transcript mode: show \"ctrl+e to show/hide N previous messages\" divider\n if (transcriptTruncatedCount > 0) {\n result.push({\n type: 'static' as const,\n jsx: (\n <Box key={`transcript-truncation-${forkNumber}`} width=\"100%\">\n <TitledDivider\n title={t('ui.transcript.showPrevious').replace(\n '{count}',\n String(transcriptTruncatedCount),\n )}\n />\n </Box>\n ),\n })\n } else if (\n isTranscript &&\n showAllInTranscript &&\n totalMessageCount > TRANSCRIPT_VISIBLE_COUNT\n ) {\n result.push({\n type: 'static' as const,\n jsx: (\n <Box key={`transcript-hide-${forkNumber}`} width=\"100%\">\n <TitledDivider\n title={t('ui.transcript.hidePrevious').replace(\n '{count}',\n String(totalMessageCount - TRANSCRIPT_VISIBLE_COUNT),\n )}\n />\n </Box>\n ),\n })\n }\n\n // Show collapsed history indicator when resuming with hidden messages\n if (resumeHiddenCount > 0) {\n result.push({\n type: 'static' as const,\n jsx: (\n <Box key=\"collapsed-history\" paddingLeft={2} marginBottom={1}>\n <Text color={SEMANTIC_COLORS.dim}>\n \u00B7\u00B7\u00B7 {resumeHiddenCount} earlier messages hidden \u00B7\u00B7\u00B7\n </Text>\n </Box>\n ),\n })\n }\n\n // V1+ Track rendered groups to avoid duplicate rendering\n const renderedGroupIds = new Set<string>()\n // V1+ Track tool_use_ids that are part of groups (to skip their tool_result messages)\n const groupToolUseIds = new Set<string>()\n // V1+ Track TaskOutput tool_use_ids that reference grouped tasks (to skip their tool_result messages)\n const taskOutputToolUseIdsToSkip = new Set<string>()\n\n // Render all messages - with V1+ group detection for parallel-tasks and task groups\n for (const _ of visibleMessages) {\n const toolUseID = getToolUseID(_)\n\n // V1+ Check if this message belongs to a group (parallel-tasks or task)\n // For progress messages, use toolUseID to find the group (since progress messages have different UUIDs)\n // For assistant messages, also fallback to toolUseID lookup if UUID lookup fails\n // (this prevents double rendering when a message UUID isn't registered in the group)\n let group = getGroupForMessage(_.uuid)\n if (!group && _.type === 'progress') {\n // This is a progress message for a task - look up by toolUseID\n group = getGroupForToolUse(_.toolUseID)\n }\n if (!group && toolUseID) {\n // Fallback: assistant messages with tool_use blocks may not have their UUID registered\n // but their toolUseID should be tracked by the group manager\n group = getGroupForToolUse(toolUseID)\n }\n\n // V1+ Handle grouped messages (parallel-tasks and single task groups)\n if (group && (group.type === 'parallel-tasks' || group.type === 'task')) {\n // Skip if this group was already rendered\n if (renderedGroupIds.has(group.id)) {\n continue\n }\n renderedGroupIds.add(group.id)\n\n // Track all tool_use_ids in this group to skip their tool_result messages later\n if (group.metadata.siblingToolUseIds) {\n for (const id of group.metadata.siblingToolUseIds as string[]) {\n groupToolUseIds.add(id)\n }\n }\n if (group.metadata.toolUseId) {\n groupToolUseIds.add(group.metadata.toolUseId as string)\n }\n\n // Render the entire group using GroupRenderer\n const isGroupStatic = shouldGroupBeStatic(group)\n const groupType = isGroupStatic ? 'static' : 'transient'\n\n const shouldAnimate =\n !toolJSX &&\n !toolUseConfirm &&\n !isMessageSelectorVisible &&\n !isRewindPanelVisible &&\n !isGroupStatic\n\n result.push({\n type: groupType,\n jsx: (\n <Box key={`group-${group.id}`} width=\"100%\">\n <GroupRenderer\n group={group}\n context={{\n depth: 0,\n isLastChild: true,\n displayConfig,\n shouldAnimate,\n getTranscript,\n }}\n messages={normalizedMessages}\n transcripts={agentTranscripts}\n outputs={toolOutputs}\n />\n </Box>\n ),\n })\n continue\n }\n\n // V1+ Skip tool_result messages for tools that are part of a group\n // (their output is rendered within the group view)\n // Also skip tool_result messages for TaskOutput calls that reference grouped tasks\n if (_.type === 'user' && _.message.role === 'user') {\n const content = _.message.content\n if (Array.isArray(content)) {\n const toolResult = content.find(\n (block): block is ToolResultBlockParam =>\n typeof block === 'object' && block.type === 'tool_result',\n )\n if (\n toolResult &&\n (groupToolUseIds.has(toolResult.tool_use_id) ||\n taskOutputToolUseIdsToSkip.has(toolResult.tool_use_id))\n ) {\n continue\n }\n }\n }\n\n // V1+ Skip TaskOutput tool calls that reference agents belonging to a group\n // (their output is already rendered within the group view)\n if (_.type === 'assistant') {\n const content = _.message.content\n if (Array.isArray(content)) {\n const taskOutputCall = content.find(\n (block): block is ToolUseBlockParam =>\n typeof block === 'object' &&\n block.type === 'tool_use' &&\n block.name === 'TaskOutput',\n )\n if (taskOutputCall) {\n const taskId = (taskOutputCall.input as { task_id?: string })\n ?.task_id\n if (taskId) {\n // Check if this task_id (agentId) corresponds to a tool_use_id in a group\n const correspondingToolUseId = getToolUseIdByAgentId(taskId)\n if (\n correspondingToolUseId &&\n groupToolUseIds.has(correspondingToolUseId)\n ) {\n // Track this TaskOutput's tool_use_id so we can also skip its tool_result\n taskOutputToolUseIdsToSkip.add(taskOutputCall.id)\n continue\n }\n }\n }\n }\n }\n\n // Skip ALL progress messages when their tool is already completed\n // The final tool_result message will show the complete output, avoiding duplicate display\n // This covers both streaming progress (BashTool) and non-streaming progress (Task intermediate state)\n if (_.type === 'progress' && !unresolvedToolUseIDs.has(_.toolUseID)) {\n continue\n }\n\n // Skip empty text-only assistant messages (API often returns empty text blocks between tool_use blocks)\n // Without this, each empty block renders an empty <Box> which produces a blank line in the output\n if (!isNotEmptyMessage(_)) {\n continue\n }\n\n // Normal message rendering\n const message =\n _.type === 'progress' ? (\n // Check if this is a streaming progress content (e.g., from BashTool)\n 'type' in _.content && _.content.type === 'streaming' ? (\n <BashStreamingProgress\n stdout={(_.content as StreamingProgressContent).stdout}\n stderr={(_.content as StreamingProgressContent).stderr}\n isStreaming={(_.content as StreamingProgressContent).isStreaming}\n />\n ) : (_.content as AssistantMessage).message.content[0]?.type ===\n 'text' &&\n // TaskTool interrupts use Progress messages without extra \u23BF\n // since <Message /> component already adds the margin\n (_.content as AssistantMessage).message.content[0].text ===\n INTERRUPT_MESSAGE ? (\n <Message\n message={_.content as AssistantMessage}\n messages={_.normalizedMessages}\n addMargin={false}\n tools={_.tools}\n verbose={verbose ?? false}\n debug={debug}\n erroredToolUseIDs={new Set()}\n inProgressToolUseIDs={new Set()}\n unresolvedToolUseIDs={new Set()}\n shouldAnimate={false}\n shouldShowDot={false}\n />\n ) : (\n <MessageResponse\n children={\n <Message\n message={_.content as AssistantMessage}\n messages={_.normalizedMessages}\n addMargin={false}\n tools={_.tools}\n verbose={verbose ?? false}\n debug={debug}\n erroredToolUseIDs={new Set()}\n inProgressToolUseIDs={new Set()}\n unresolvedToolUseIDs={\n new Set([\n (\n (_.content as AssistantMessage).message\n .content[0]! as ToolUseBlockParam\n ).id,\n ])\n }\n shouldAnimate={false}\n shouldShowDot={false}\n />\n }\n />\n )\n ) : (\n <Message\n message={_}\n messages={normalizedMessages}\n addMargin={true}\n tools={currentTools}\n verbose={verbose}\n debug={debug}\n erroredToolUseIDs={erroredToolUseIDs}\n inProgressToolUseIDs={inProgressToolUseIDs}\n shouldAnimate={\n !toolJSX &&\n !toolUseConfirm &&\n !isMessageSelectorVisible &&\n !isRewindPanelVisible &&\n (!toolUseID || inProgressToolUseIDs.has(toolUseID))\n }\n shouldShowDot={true}\n unresolvedToolUseIDs={unresolvedToolUseIDs}\n />\n )\n\n const type = shouldRenderStatically(\n _,\n normalizedMessages,\n unresolvedToolUseIDs,\n )\n ? 'static'\n : 'transient'\n\n if (debug) {\n result.push({\n type,\n jsx: (\n <Box\n borderStyle=\"single\"\n borderColor={type === 'static' ? 'green' : 'red'}\n key={_.uuid}\n width=\"100%\"\n >\n {message}\n </Box>\n ),\n })\n } else {\n result.push({\n type,\n jsx: (\n <Box key={_.uuid} width=\"100%\">\n {message}\n </Box>\n ),\n })\n }\n }\n\n return result\n }, [\n forkNumber,\n normalizedMessages,\n currentTools,\n verbose,\n debug,\n erroredToolUseIDs,\n inProgressToolUseIDs,\n toolJSX,\n toolUseConfirm,\n isMessageSelectorVisible,\n isRewindPanelVisible,\n unresolvedToolUseIDs,\n currentMcpClients,\n isDefaultModel,\n isResumedConversation,\n // Transcript mode dependencies\n screen,\n showAllInTranscript,\n // V1+ dependencies\n messageGroups,\n getGroupForMessage,\n getGroupForToolUse,\n shouldGroupBeStatic,\n displayConfig,\n agentTranscripts,\n toolOutputs,\n // Agent view dependencies\n currentViewAgent,\n ])\n\n // only show the dialog once not loading\n const showingCostDialog = !isLoading && showCostDialog\n\n // Separate static and dynamic messages for proper Ink Static component usage\n // Static messages: completed messages that won't change - protected from Ink's clearTerminal\n // Dynamic messages: in-progress messages that need to re-render\n const { staticItems, dynamicItems } = useMemo(() => {\n const staticItems: StaticItem[] = []\n const dynamicItems: MessageJSXItem[] = []\n\n for (const item of messagesJSX) {\n if (item.type === 'static') {\n // Extract key from jsx element for Static component deduplication\n const key = item.jsx.key?.toString() || `static-${staticItems.length}`\n staticItems.push({ id: key, jsx: item.jsx })\n } else if (item.type === 'transient') {\n dynamicItems.push(item)\n }\n }\n\n return { staticItems, dynamicItems }\n }, [messagesJSX])\n\n // =========================================================================\n // Stable callback functions for PromptInput props\n // Using useCallback prevents memo invalidation on parent re-renders\n // =========================================================================\n\n // No-op callbacks for PromptInput (engine manages these)\n const noopSetBool = useCallback((_: boolean) => {}, [])\n const noopSetAbort = useCallback((_: AbortController | null) => {}, [])\n\n // Toggle message selector visibility\n const handleShowMessageSelector = useCallback(() => {\n setIsMessageSelectorVisible(prev => !prev)\n }, [])\n\n // Show rewind panel (double-Esc)\n const handleShowRewindPanel = useCallback(() => {\n if (messages.length === 0) return\n setIsRewindPanelVisible(true)\n }, [messages.length])\n\n // Handle rewind action selection\n const handleRewindAction = useCallback(\n (action: RewindAction, point: RewindPoint) => {\n setIsRewindPanelVisible(false)\n\n if (action === 'never_mind') return\n\n if (\n action === 'restore_code_and_conversation' ||\n action === 'restore_conversation'\n ) {\n // Cancel any running task\n onCancel()\n setImmediate(async () => {\n await clearTerminal()\n // Truncate messages to before the selected user message\n const truncatedMessages = messages.slice(0, point.messageIndex)\n engineSetMessages([])\n setForkConvoWithMessagesOnTheNextRender(truncatedMessages)\n // Pre-fill input with the selected prompt text for re-editing\n if (point.userText) {\n setInputValue(point.userText)\n }\n })\n return\n }\n\n if (action === 'restore_code') {\n // Code-only restore: keep conversation, revert files\n // File restoration relies on CheckpointManager data if available\n // TODO: wire CheckpointManager.restore() when checkpoints are created per turn\n return\n }\n\n if (action === 'summarize_from_here') {\n // Summarize messages from the selected point forward\n // Keep messages before the selected point, compact the rest\n onCancel()\n setImmediate(async () => {\n await clearTerminal()\n const preserved = messages.slice(0, point.messageIndex)\n engineSetMessages([])\n setForkConvoWithMessagesOnTheNextRender(preserved)\n // Pre-fill with the original prompt for re-submission\n if (point.userText) {\n setInputValue(point.userText)\n }\n })\n }\n },\n [\n messages,\n onCancel,\n engineSetMessages,\n setForkConvoWithMessagesOnTheNextRender,\n ],\n )\n\n // Toggle todo panel visibility\n const handleToggleTodoPanel = useCallback(() => {\n setIsTodoPanelVisible(prev => !prev)\n }, [])\n\n // Toggle thinking selector overlay\n const handleToggleThinkingSelector = useCallback(() => {\n setShowThinkingSelector(prev => !prev)\n }, [])\n\n // Toggle background panel visibility\n const handleToggleBackgroundPanel = useCallback(() => {\n setShowBackgroundPanel(prev => !prev)\n }, [])\n\n // Toggle team panel visibility\n const handleToggleTeamPanel = useCallback(() => {\n setShowTeamPanel(prev => !prev)\n }, [])\n\n // Kill all background agents (Ctrl+F double-tap)\n const handleKillAllAgents = useCallback(() => {\n const teams = getActiveTeams()\n for (const team of teams) {\n disbandTeam(team.name)\n }\n }, [])\n\n // Unified view switch: clear terminal + swap message source via currentViewAgent\n // All agents (team-lead + teammates) use the same rendering pipeline.\n // Switching = clear screen + set currentViewAgent + increment forkNumber to force Static re-emit.\n const handleSwitchView = useCallback(\n async (agentId: string | null) => {\n isSwitchingViewRef.current = true\n setShowTeamPanel(false)\n const isTeamLead =\n agentId === null ||\n agentId.startsWith('team-lead') ||\n agentId === 'team-lead'\n\n // Pause idle timeout on old focused engine, resume on switch away\n const oldFocused = registry.focused\n if (oldFocused && oldFocused !== defaultEngine) {\n oldFocused.setIdlePaused(false)\n }\n\n await safeRefork(() => {\n setCurrentViewAgent(isTeamLead ? null : agentId)\n const targetId = isTeamLead ? 'default' : agentId!\n if (registry.get(targetId)) {\n registry.setFocus(targetId)\n const newFocused = registry.get(targetId)\n if (newFocused && newFocused !== defaultEngine) {\n newFocused.setIdlePaused(true)\n }\n } else {\n registry.setFocus('default')\n }\n })\n isSwitchingViewRef.current = false\n },\n [registry, defaultEngine],\n )\n\n const handleBackFromAgent = useCallback(async () => {\n await handleSwitchView(null)\n }, [handleSwitchView])\n\n // Cycle through teammates (Shift+Down/Up)\n // List includes team-lead (null) + all active teammates\n const handleCycleTeammate = useCallback(\n (direction: 'next' | 'prev') => {\n const activeMembers = teamMembers.filter(m => m.status !== 'stopped')\n if (activeMembers.length === 0) return\n\n // Build member list: null (team-lead) + all active teammates\n const memberIds: (string | null)[] = [\n null,\n ...activeMembers.map(m => m.name),\n ]\n\n // Find current focused index\n const currentIdx =\n currentViewAgent === null\n ? 0\n : memberIds.findIndex(\n id =>\n id !== null &&\n (currentViewAgent.includes(id) ||\n id.includes(currentViewAgent?.split('@')[0] || '')),\n )\n\n let nextIdx: number\n if (direction === 'next') {\n nextIdx = currentIdx < 0 ? 0 : (currentIdx + 1) % memberIds.length\n } else {\n nextIdx =\n currentIdx < 0\n ? memberIds.length - 1\n : (currentIdx - 1 + memberIds.length) % memberIds.length\n }\n\n const nextId = memberIds[nextIdx]\n if (nextId) handleSwitchView(nextId)\n },\n [teamMembers, currentViewAgent, handleSwitchView],\n )\n\n // Toggle agent view (Ctrl+J)\n const handleToggleAgentView = useCallback(() => {\n if (currentViewAgent) {\n // Already in agent view \u2014 go back to main REPL\n handleBackFromAgent()\n } else {\n // Enter agent view \u2014 focus first active teammate\n const activeMembers = teamMembers.filter(m => m.status !== 'stopped')\n const firstActive = activeMembers[0]\n if (firstActive) {\n handleSwitchView(firstActive.name)\n }\n }\n }, [currentViewAgent, teamMembers, handleBackFromAgent, handleSwitchView])\n\n // Handle model change (force re-render with terminal clear to prevent ghosting)\n const handleModelChange = useCallback(() => safeRefork(), [safeRefork])\n\n // Screen mode toggle handler (Ctrl+O) - switch between prompt and transcript\n const handleToggleScreen = useCallback(async () => {\n setShowAllInTranscript(false)\n await safeRefork(() =>\n setScreen(prev => (prev === 'transcript' ? 'prompt' : 'transcript')),\n )\n }, [safeRefork])\n\n // Show/hide previous messages in transcript mode (Ctrl+E)\n const handleToggleShowAll = useCallback(async () => {\n await safeRefork(() => setShowAllInTranscript(prev => !prev))\n }, [safeRefork])\n\n // Event-driven re-query: handled by the engine's injection channel listener.\n\n // Reactive team engine: promote default engine to team-lead when team is created\n useEffect(() => {\n const unsubscribe = teamEvents.onTeamChange(\n (data: { teamName: string; event: string }) => {\n if (data.event === 'created') {\n defaultEngine.promoteToTeamLead(data.teamName)\n // Inject team-lead overlay into system prompt\n defaultEngine.updateConfig({\n systemPrompt: () => getSystemPrompt('team-lead'),\n })\n } else if (data.event === 'disbanded') {\n // Remove team-lead overlay \u2014 revert to default system prompt\n defaultEngine.updateConfig({\n systemPrompt: () => getSystemPrompt(),\n })\n }\n },\n )\n return unsubscribe\n }, [defaultEngine])\n\n // Wire interactive callbacks to the focused engine\n useEffect(() => {\n const engine = registry.focused\n if (!engine) return\n engine.setCanUseTool(canUseTool)\n engine.setAskUser(askUser)\n engine.setToolJSX(setToolJSX)\n engine.setBinaryFeedbackResponse(getBinaryFeedbackResponse)\n }, [registry.focusedId, canUseTool, askUser, getBinaryFeedbackResponse])\n\n // Start the default engine on mount\n useEffect(() => {\n defaultEngine.start()\n return () => {\n defaultEngine.stop()\n }\n }, [defaultEngine])\n\n // Update engine config when tools/commands change\n useEffect(() => {\n defaultEngine.updateConfig({\n tools: currentTools,\n commands: currentCommands,\n })\n }, [currentTools, currentCommands, defaultEngine])\n\n // Update engine config when verbose/safeMode/safetyMode change\n useEffect(() => {\n defaultEngine.updateConfig({ verbose, safeMode, safetyMode })\n }, [verbose, safeMode, safetyMode, defaultEngine])\n\n return (\n <PermissionProvider\n isBypassPermissionsModeAvailable={!safeMode}\n children={\n <React.Fragment>\n {/* Single unified rendering pipeline \u2014 all agents (team-lead + teammates) render here */}\n <>\n {/*\n Static/Dynamic separation for proper Ink rendering:\n\n 1. Static messages use Ink's <Static> component:\n - Content written to terminal is PRESERVED (not cleared by Ink)\n - Items are deduped by `id` - same id = same output\n - Perfect for: completed messages, finished tool results\n\n 2. Dynamic messages render normally (below Static):\n - Can be re-rendered without affecting static content above\n - Used for: in-progress tools, current interaction\n\n This architecture solves the clearTerminal issue:\n - When outputHeight >= terminal rows, Ink calls clearTerminal + re-render\n - But Static content is already written to terminal, not affected by this\n - Only dynamic content below gets cleared and re-rendered\n */}\n {/* STATIC SECTION: Completed messages protected from Ink's clearTerminal */}\n {/* Note: Static component uses forkNumber in fragment key to force rebuild on verbose toggle */}\n <React.Fragment key={`static-wrapper-${forkNumber}`}>\n <Static<StaticItem>\n items={staticItems}\n children={item => (\n <React.Fragment key={item.id}>{item.jsx}</React.Fragment>\n )}\n />\n </React.Fragment>\n\n {/* DYNAMIC SECTION: In-progress content that can re-render */}\n <React.Fragment key={`dynamic-messages-${forkNumber}`}>\n {/* Render transient items */}\n {dynamicItems.map(item => item.jsx)}\n </React.Fragment>\n {/* Streaming text preview \u2014 typewriter display of LLM output as it generates */}\n {isLoading && !isResizeClearing && <StreamingTextPreview />}\n {/*\n IMPORTANT: Key prop tied to forkNumber ensures all transient UI components\n are properly re-rendered when exiting fullscreen mode. This prevents ghost\n artifacts from appearing when the terminal shrinks significantly.\n See useFullscreenExitCallback above which increments forkNumber on fullscreen exit.\n */}\n <Box\n key={`transient-ui-${forkNumber}`}\n borderColor=\"red\"\n borderStyle={debug ? 'single' : undefined}\n flexDirection=\"column\"\n width=\"100%\"\n >\n {/* Unified Spinner + TodoPanel - shown for ALL focused agents */}\n {/* Hidden during resize clearing to prevent ghost artifacts */}\n {!isResizeClearing &&\n !toolJSX &&\n !toolUseConfirm &&\n !binaryFeedbackContext && (\n <TodoPanel\n todos={getTodos()}\n isVisible={isTodoPanelVisible}\n isLoading={isLoading}\n showTodoList={isTodoPanelVisible}\n focusedAgentId={currentViewAgent}\n />\n )}\n {/* Turn completion indicator - shown for ALL focused agents */}\n {!isResizeClearing &&\n !isLoading &&\n !toolJSX &&\n !toolUseConfirm &&\n !binaryFeedbackContext &&\n !defaultEngine.injectionChannel.hasMessages() && (\n <TurnCompletionIndicator\n durationMs={lastTurnDurationMs}\n isVisible={lastTurnDurationMs !== null}\n />\n )}\n {/* Render toolJSX here only when it should hide PromptInput */}\n {toolJSX?.shouldHidePromptInput ? toolJSX.jsx : null}\n {!toolJSX &&\n binaryFeedbackContext &&\n !isMessageSelectorVisible &&\n !isRewindPanelVisible && (\n <BinaryFeedback\n m1={binaryFeedbackContext.m1}\n m2={binaryFeedbackContext.m2}\n resolve={result => {\n binaryFeedbackContext.resolve(result)\n setTimeout(() => setBinaryFeedbackContext(null), 0)\n }}\n verbose={verbose}\n normalizedMessages={normalizedMessages}\n tools={currentTools}\n debug={debug}\n erroredToolUseIDs={erroredToolUseIDs}\n inProgressToolUseIDs={inProgressToolUseIDs}\n unresolvedToolUseIDs={unresolvedToolUseIDs}\n />\n )}\n {!toolJSX &&\n toolUseConfirm &&\n !isMessageSelectorVisible &&\n !isRewindPanelVisible &&\n !binaryFeedbackContext &&\n !askUserQuestionContext && (\n <PermissionRequest\n toolUseConfirm={toolUseConfirm}\n onDone={() => setToolUseConfirm(null)}\n verbose={verbose}\n />\n )}\n {!toolJSX &&\n !toolUseConfirm &&\n !isMessageSelectorVisible &&\n !isRewindPanelVisible &&\n !binaryFeedbackContext &&\n askUserQuestionContext && (\n <AskUserQuestionDialog\n context={askUserQuestionContext}\n onDone={() => setAskUserQuestionContext(null)}\n />\n )}\n {!toolJSX &&\n !toolUseConfirm &&\n !isMessageSelectorVisible &&\n !isRewindPanelVisible &&\n !binaryFeedbackContext &&\n !askUserQuestionContext &&\n showingCostDialog && (\n <CostThresholdDialog\n onDone={() => {\n setShowCostDialog(false)\n setHaveShownCostDialog(true)\n const projectConfig = getGlobalConfig()\n saveGlobalConfig({\n ...projectConfig,\n hasAcknowledgedCostThreshold: true,\n })\n }}\n />\n )}\n\n {!toolUseConfirm &&\n !toolJSX?.shouldHidePromptInput &&\n shouldShowPromptInput &&\n !isMessageSelectorVisible &&\n !isRewindPanelVisible &&\n !showThinkingSelector &&\n !binaryFeedbackContext &&\n !askUserQuestionContext &&\n !showingCostDialog && (\n <>\n {/* BackgroundTasksPanel */}\n <BackgroundTasksPanel\n shells={backgroundShells}\n isVisible={showBackgroundPanel}\n onSelect={shell => {\n // View shell details (could show detailed output)\n setShowBackgroundPanel(false)\n }}\n onKill={shell => {\n BackgroundShellManager.getInstance().kill(shell.id)\n }}\n onClose={() => setShowBackgroundPanel(false)}\n />\n {/* Idle notifications - brief inline toasts when teammates go idle */}\n {!isResizeClearing && (\n <IdleNotificationBar notifications={idleNotifications} />\n )}\n <PromptInput\n commands={currentCommands}\n forkNumber={forkNumber}\n focusedAgentName={\n currentViewAgent\n ? (teamMembers.find(m => m.id === currentViewAgent)\n ?.name ?? currentViewAgent.split('@')[0])\n : hasActiveTeam\n ? 'team-lead'\n : null\n }\n messageLogName={messageLogName}\n tools={currentTools}\n isDisabled={apiKeyStatus === 'invalid'}\n isLoading={isLoading}\n onQuery={onQuery}\n debug={debug}\n verbose={verbose}\n messages={messages}\n setToolJSX={setToolJSX}\n input={inputValue}\n onInputChange={setInputValue}\n mode={inputMode}\n onModeChange={setInputMode}\n submitCount={submitCount}\n onSubmitCountChange={setSubmitCount}\n setIsLoading={noopSetBool}\n setAbortController={noopSetAbort}\n onShowMessageSelector={handleShowMessageSelector}\n setForkConvoWithMessagesOnTheNextRender={\n setForkConvoWithMessagesOnTheNextRender\n }\n readFileTimestamps={readFileTimestamps.current}\n abortController={null}\n onModelChange={handleModelChange}\n onShowRewindPanel={handleShowRewindPanel}\n onToggleTodoPanel={handleToggleTodoPanel}\n onToggleThinkingSelector={handleToggleThinkingSelector}\n onToggleScreen={handleToggleScreen}\n onToggleShowAllInTranscript={handleToggleShowAll}\n screen={screen}\n onToggleBackgroundPanel={handleToggleBackgroundPanel}\n onToggleTeamPanel={handleToggleTeamPanel}\n onCycleTeammate={handleCycleTeammate}\n onToggleAgentView={handleToggleAgentView}\n onKillAllAgents={handleKillAllAgents}\n backgroundShellCount={\n backgroundShells.filter(s => s.status === 'running')\n .length\n }\n isBackgroundPanelOpen={showBackgroundPanel}\n fallbackMode={fallbackMode}\n onInjectMessage={input => {\n const formatted = formatUserGuidanceForInjection(input)\n const focusedEng = registry.focused ?? defaultEngine\n focusedEng.injectionChannel.push(\n formatted,\n 'user',\n input,\n )\n }}\n onRemoveQueuedMessage={() => {\n const focusedEng = registry.focused ?? defaultEngine\n return focusedEng.injectionChannel.removeLastUserMessage()\n }}\n injectionPending={\n (registry.focused ?? defaultEngine).injectionChannel\n .size > 0\n }\n getQueuedUserMessages={() =>\n (\n registry.focused ?? defaultEngine\n ).injectionChannel.peekUserDisplayTexts()\n }\n onInterrupt={onInterrupt}\n isOverlayActive={\n showTeamPanel ||\n !!(toolJSX && !toolJSX.shouldHidePromptInput)\n }\n unmount={unmountREPL}\n startupItems={startupItems}\n teamMembers={teamMembers}\n hasActiveTeam={hasActiveTeam}\n />\n {/* Render toolJSX below PromptInput when shouldHidePromptInput is false */}\n {toolJSX && !toolJSX.shouldHidePromptInput && toolJSX.jsx}\n {/* TeamMemberPanel - rendered below PromptInput like TabbedListView overlays */}\n <TeamMemberPanel\n isVisible={showTeamPanel}\n onClose={() => setShowTeamPanel(false)}\n onFocusAgent={handleSwitchView}\n />\n {/* Transcript mode bottom bar */}\n {screen === 'transcript' && (\n <Box\n width=\"100%\"\n paddingLeft={2}\n marginTop={1}\n borderStyle=\"single\"\n borderTop={true}\n borderBottom={false}\n borderLeft={false}\n borderRight={false}\n borderColor={SEMANTIC_COLORS.dim}\n >\n <Text dimColor>{t('ui.transcript.showing')}</Text>\n </Box>\n )}\n </>\n )}\n </Box>\n {isMessageSelectorVisible && (\n <React.Fragment key={`message-selector-wrapper-${forkNumber}`}>\n <MessageSelector\n erroredToolUseIDs={erroredToolUseIDs}\n unresolvedToolUseIDs={unresolvedToolUseIDs}\n messages={normalizeMessagesForAPI(messages)}\n onSelect={async message => {\n setIsMessageSelectorVisible(false)\n\n // If the user selected the current prompt, do nothing\n if (!messages.includes(message)) {\n return\n }\n\n // Cancel tool use calls/requests\n onCancel()\n\n // Hack: make sure the \"Interrupted by user\" message is\n // rendered in response to the cancellation. Otherwise,\n // the screen will be cleared but there will remain a\n // vestigial \"Interrupted by user\" message at the top.\n setImmediate(async () => {\n // Clear messages, and re-render\n await clearTerminal()\n engineSetMessages([])\n setForkConvoWithMessagesOnTheNextRender(\n messages.slice(0, messages.indexOf(message)),\n )\n\n // Populate/reset the prompt input\n if (typeof message.message.content === 'string') {\n setInputValue(message.message.content)\n }\n })\n }}\n onEscape={() => setIsMessageSelectorVisible(false)}\n tools={currentTools}\n />\n </React.Fragment>\n )}\n {isRewindPanelVisible && (\n <RewindPanel\n messages={messages}\n onAction={handleRewindAction}\n onEscape={() => setIsRewindPanelVisible(false)}\n />\n )}\n {showThinkingSelector && (\n <ThinkingSelector\n onClose={() => setShowThinkingSelector(false)}\n />\n )}\n {/** Fix occasional rendering artifact */}\n <Newline />\n </>\n </React.Fragment>\n }\n />\n )\n}\n\nfunction shouldRenderStatically(\n message: NormalizedMessage,\n messages: NormalizedMessage[],\n unresolvedToolUseIDs: Set<string>,\n): boolean {\n switch (message.type) {\n case 'user':\n case 'assistant': {\n const toolUseID = getToolUseID(message)\n if (!toolUseID) {\n return true\n }\n if (unresolvedToolUseIDs.has(toolUseID)) {\n return false\n }\n // Phase 2.1: Removed delay - immediately mark as static when resolved\n\n const correspondingProgressMessage = messages.find(\n _ => _.type === 'progress' && _.toolUseID === toolUseID,\n ) as ProgressMessage | null\n if (!correspondingProgressMessage) {\n return true\n }\n\n return !intersects(\n unresolvedToolUseIDs,\n correspondingProgressMessage.siblingToolUseIDs,\n )\n }\n case 'progress':\n // Phase 2.1: Immediately mark as static when resolved - no delay\n return !intersects(unresolvedToolUseIDs, message.siblingToolUseIDs)\n }\n}\n\nfunction intersects<A>(a: Set<A>, b: Set<A>): boolean {\n return a.size > 0 && b.size > 0 && [...a].some(_ => b.has(_))\n}\n"],
5
- "mappings": "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",
6
- "names": ["staticItems", "dynamicItems"]
7
- }
@@ -1,244 +0,0 @@
1
- import React, { useState, useMemo } from "react";
2
- import { render } from "ink";
3
- import path from "path";
4
- import { REPL } from "./REPL.js";
5
- import { deserializeMessages } from "../utils/conversationRecovery.js";
6
- import { logError, getNextAvailableLogForkNumber } from "../utils/log.js";
7
- import { isDefaultSlowAndCapableModel } from "../utils/model.js";
8
- import { prepareTerminalForREPL } from "../utils/terminal.js";
9
- import { getCwd } from "../utils/state.js";
10
- import { t } from "../i18n/index.js";
11
- import {
12
- TabbedListView
13
- } from "../components/TabbedListView/index.js";
14
- function formatRelativeTime(date) {
15
- const diffMs = Date.now() - date.getTime();
16
- const diffMin = Math.floor(diffMs / 6e4);
17
- const diffHour = Math.floor(diffMin / 60);
18
- const diffDay = Math.floor(diffHour / 24);
19
- const diffWeek = Math.floor(diffDay / 7);
20
- if (diffMin < 1) return "just now";
21
- if (diffMin < 60) return `${diffMin} min${diffMin > 1 ? "s" : ""} ago`;
22
- if (diffHour < 24) return `${diffHour} hour${diffHour > 1 ? "s" : ""} ago`;
23
- if (diffDay < 7) return `${diffDay} day${diffDay > 1 ? "s" : ""} ago`;
24
- if (diffWeek < 5) return `${diffWeek} week${diffWeek > 1 ? "s" : ""} ago`;
25
- return date.toLocaleDateString("en-US", { month: "short", day: "numeric" });
26
- }
27
- function formatFileSize(bytes) {
28
- if (bytes <= 0) return "";
29
- if (bytes < 1024) return `${bytes} bytes`;
30
- if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)}KB`;
31
- return `${(bytes / (1024 * 1024)).toFixed(1)}MB`;
32
- }
33
- function truncate(str, maxLength) {
34
- if (str.length <= maxLength) return str;
35
- return str.slice(0, maxLength - 3) + "...";
36
- }
37
- function getMessageText(msg) {
38
- if (typeof msg.message?.content === "string") return msg.message.content;
39
- if (Array.isArray(msg.message?.content)) {
40
- return msg.message.content.filter((c) => c.type === "text").map((c) => c.text).join("");
41
- }
42
- return "";
43
- }
44
- function wasCleared(log) {
45
- for (let i = log.messages.length - 1; i >= 0; i--) {
46
- const msg = log.messages[i];
47
- if (msg.type === "user") {
48
- return getMessageText(msg).includes(
49
- "<command-name>clear</command-name>"
50
- );
51
- }
52
- }
53
- return false;
54
- }
55
- function isEmpty(log) {
56
- if (log.messageCount === 0) return true;
57
- return !log.messages.some((msg) => msg.type === "user");
58
- }
59
- function deduplicateLogForks(logs) {
60
- const grouped = /* @__PURE__ */ new Map();
61
- for (const log of logs) {
62
- const group = grouped.get(log.date) || [];
63
- group.push(log);
64
- grouped.set(log.date, group);
65
- }
66
- const deduped = [];
67
- for (const [, group] of grouped) {
68
- const best = group.sort((a, b) => {
69
- const forkDiff = (b.forkNumber ?? 0) - (a.forkNumber ?? 0);
70
- if (forkDiff !== 0) return forkDiff;
71
- return b.modified.getTime() - a.modified.getTime();
72
- })[0];
73
- if (best) deduped.push(best);
74
- }
75
- return deduped.sort((a, b) => b.modified.getTime() - a.modified.getTime());
76
- }
77
- function extractPromptText(msg) {
78
- const content = getMessageText(msg);
79
- const trimmed = content.trim();
80
- if (!trimmed) return null;
81
- if (trimmed.startsWith("<system-reminder>")) return null;
82
- if (trimmed.match(/<command-name>[^<]+<\/command-name>/)) return null;
83
- if (trimmed.startsWith("<") && trimmed.includes("</")) return null;
84
- const firstLine = trimmed.split("\n")[0]?.trim() || "";
85
- return firstLine || null;
86
- }
87
- function extractLastUserPrompt(log) {
88
- for (let i = log.messages.length - 1; i >= 0; i--) {
89
- const msg = log.messages[i];
90
- if (msg.type !== "user") continue;
91
- const text = extractPromptText(msg);
92
- if (text) return text;
93
- }
94
- return "(session)";
95
- }
96
- function getLogProjectPath(log) {
97
- return log.messages[0]?.cwd || null;
98
- }
99
- function prepareSessionLogs(rawLogs) {
100
- return deduplicateLogForks(
101
- rawLogs.filter((log) => !isEmpty(log) && !wasCleared(log))
102
- );
103
- }
104
- function logToListItem(log) {
105
- const projectPath = getLogProjectPath(log) || "";
106
- const projectName = projectPath ? path.basename(projectPath) : "";
107
- const firstPrompt = extractLastUserPrompt(log);
108
- const relativeTime = formatRelativeTime(log.modified);
109
- const fileSize = formatFileSize(log.fileSize ?? 0);
110
- const descParts = [relativeTime];
111
- if (projectName) descParts.push(truncate(projectName, 20));
112
- if (fileSize) descParts.push(fileSize);
113
- return {
114
- id: log.fullPath,
115
- label: truncate(firstPrompt, 60),
116
- description: descParts.join(" \xB7 "),
117
- category: projectName || "Unknown",
118
- data: log
119
- };
120
- }
121
- function SessionPicker({
122
- logs,
123
- onSelect,
124
- onClose
125
- }) {
126
- const [activeTab, setActiveTab] = useState("recent");
127
- const [searchQuery, setSearchQuery] = useState("");
128
- const cwd = getCwd();
129
- const validLogs = useMemo(() => prepareSessionLogs(logs), [logs]);
130
- const recentLogs = useMemo(() => validLogs.slice(0, 20), [validLogs]);
131
- const projectLogs = useMemo(
132
- () => validLogs.filter((log) => getLogProjectPath(log) === cwd),
133
- [validLogs, cwd]
134
- );
135
- const allLogs = useMemo(() => validLogs.slice(0, 100), [validLogs]);
136
- const tabs = useMemo(
137
- () => [
138
- {
139
- id: "recent",
140
- label: t("commands.sessions.title"),
141
- badge: recentLogs.length
142
- },
143
- {
144
- id: "project",
145
- label: t("commands.sessions.headerProject"),
146
- badge: projectLogs.length
147
- },
148
- {
149
- id: "all",
150
- label: t("common.all"),
151
- badge: allLogs.length
152
- }
153
- ],
154
- [recentLogs.length, projectLogs.length, allLogs.length]
155
- );
156
- const items = useMemo(() => {
157
- let source;
158
- switch (activeTab) {
159
- case "project":
160
- source = projectLogs;
161
- break;
162
- case "all":
163
- source = allLogs;
164
- break;
165
- default:
166
- source = recentLogs;
167
- }
168
- return source.map(logToListItem);
169
- }, [activeTab, recentLogs, projectLogs, allLogs]);
170
- const handleSelect = (item) => {
171
- const log = item.data;
172
- onSelect(log);
173
- };
174
- return /* @__PURE__ */ React.createElement(
175
- TabbedListView,
176
- {
177
- title: t("commands.resume.title"),
178
- tabs,
179
- activeTab,
180
- onTabChange: setActiveTab,
181
- items,
182
- searchEnabled: true,
183
- searchPlaceholder: t("ui.tabbedList.search"),
184
- searchQuery,
185
- onSearchChange: setSearchQuery,
186
- onSelect: handleSelect,
187
- onClose,
188
- emptyText: t("commands.resume.noSessions"),
189
- footerHint: t("commands.resume.navigationHint"),
190
- groupByCategory: activeTab === "all"
191
- }
192
- );
193
- }
194
- function ResumeConversation({
195
- context,
196
- commands,
197
- logs,
198
- tools,
199
- verbose
200
- }) {
201
- const handleSelect = async (log) => {
202
- try {
203
- const isDefaultModel = await isDefaultSlowAndCapableModel();
204
- context.unmount?.();
205
- await prepareTerminalForREPL();
206
- render(
207
- /* @__PURE__ */ React.createElement(
208
- REPL,
209
- {
210
- messageLogName: log.date,
211
- initialPrompt: "",
212
- shouldShowPromptInput: true,
213
- verbose,
214
- commands,
215
- tools,
216
- initialMessages: deserializeMessages(log.messages, tools),
217
- initialForkNumber: getNextAvailableLogForkNumber(
218
- log.date,
219
- log.forkNumber ?? 1,
220
- 0
221
- ),
222
- isDefaultModel,
223
- isResumedConversation: true
224
- }
225
- ),
226
- { exitOnCtrlC: false }
227
- );
228
- } catch (e) {
229
- logError(`Failed to load conversation: ${e}`);
230
- throw e;
231
- }
232
- };
233
- const handleClose = () => {
234
- context.unmount?.();
235
- process.exit(0);
236
- };
237
- return /* @__PURE__ */ React.createElement(SessionPicker, { logs, onSelect: handleSelect, onClose: handleClose });
238
- }
239
- export {
240
- ResumeConversation,
241
- SessionPicker,
242
- prepareSessionLogs
243
- };
244
- //# sourceMappingURL=ResumeConversation.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/screens/ResumeConversation.tsx"],
4
- "sourcesContent": ["/**\n * ResumeConversation Screen & SessionPicker\n *\n * Single source of truth for session resume UI.\n * Used by both `minto --resume` (CLI) and `/resume` (REPL command).\n *\n * Display format:\n * Line 1: Last user prompt (skipping commands, falls back to first prompt)\n * Line 2: \"7 hours ago \u00B7 projectName \u00B7 61KB\"\n */\n\nimport React, { useState, useMemo } from 'react'\nimport { render } from 'ink'\nimport path from 'path'\nimport { REPL } from './REPL'\nimport { deserializeMessages } from '@utils/conversationRecovery'\nimport type { LogOption } from '@minto-types/logs'\nimport { logError, getNextAvailableLogForkNumber } from '@utils/log'\nimport type { Tool } from '@tool'\nimport type { Command } from '@commands'\nimport { isDefaultSlowAndCapableModel } from '@utils/model'\nimport { prepareTerminalForREPL } from '@utils/terminal'\nimport { getCwd } from '@utils/state'\nimport { t } from '@i18n'\nimport {\n TabbedListView,\n type ListItem,\n type TabDefinition,\n} from '@components/TabbedListView'\n\n// \u2500\u2500 Formatting helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/** Format relative time (CC-style: \"7 hours ago\", \"2 days ago\") */\nfunction formatRelativeTime(date: Date): string {\n const diffMs = Date.now() - date.getTime()\n const diffMin = Math.floor(diffMs / 60_000)\n const diffHour = Math.floor(diffMin / 60)\n const diffDay = Math.floor(diffHour / 24)\n const diffWeek = Math.floor(diffDay / 7)\n\n if (diffMin < 1) return 'just now'\n if (diffMin < 60) return `${diffMin} min${diffMin > 1 ? 's' : ''} ago`\n if (diffHour < 24) return `${diffHour} hour${diffHour > 1 ? 's' : ''} ago`\n if (diffDay < 7) return `${diffDay} day${diffDay > 1 ? 's' : ''} ago`\n if (diffWeek < 5) return `${diffWeek} week${diffWeek > 1 ? 's' : ''} ago`\n return date.toLocaleDateString('en-US', { month: 'short', day: 'numeric' })\n}\n\n/** Format file size (CC-style: \"61KB\", \"1.2MB\") */\nfunction formatFileSize(bytes: number): string {\n if (bytes <= 0) return ''\n if (bytes < 1024) return `${bytes} bytes`\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)}KB`\n return `${(bytes / (1024 * 1024)).toFixed(1)}MB`\n}\n\nfunction truncate(str: string, maxLength: number): string {\n if (str.length <= maxLength) return str\n return str.slice(0, maxLength - 3) + '...'\n}\n\n// \u2500\u2500 Log message text extraction \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/** Extract text content from a serialized message */\nfunction getMessageText(msg: { message?: { content: any } }): string {\n if (typeof msg.message?.content === 'string') return msg.message.content\n if (Array.isArray(msg.message?.content)) {\n return msg.message.content\n .filter((c: any) => c.type === 'text')\n .map((c: any) => c.text)\n .join('')\n }\n return ''\n}\n\n// \u2500\u2500 Log filtering helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/** Check if conversation ended with /clear */\nfunction wasCleared(log: LogOption): boolean {\n for (let i = log.messages.length - 1; i >= 0; i--) {\n const msg = log.messages[i]\n if (msg.type === 'user') {\n return getMessageText(msg).includes(\n '<command-name>clear</command-name>',\n )\n }\n }\n return false\n}\n\n/** Check if conversation is empty (no real user content) */\nfunction isEmpty(log: LogOption): boolean {\n if (log.messageCount === 0) return true\n // A session is empty if it has no user messages at all\n return !log.messages.some(msg => msg.type === 'user')\n}\n\n/** Deduplicate logs: keep only the latest fork per base conversation */\nfunction deduplicateLogForks(logs: LogOption[]): LogOption[] {\n const grouped = new Map<string, LogOption[]>()\n for (const log of logs) {\n const group = grouped.get(log.date) || []\n group.push(log)\n grouped.set(log.date, group)\n }\n\n const deduped: LogOption[] = []\n for (const [, group] of grouped) {\n const best = group.sort((a, b) => {\n const forkDiff = (b.forkNumber ?? 0) - (a.forkNumber ?? 0)\n if (forkDiff !== 0) return forkDiff\n return b.modified.getTime() - a.modified.getTime()\n })[0]\n if (best) deduped.push(best)\n }\n\n return deduped.sort((a, b) => b.modified.getTime() - a.modified.getTime())\n}\n\n/**\n * Check if a user message is a plain text prompt (not a command or system XML).\n * Returns the first line of text if it's a real prompt, null otherwise.\n */\nfunction extractPromptText(msg: { type: string; message?: { content: any } }): string | null {\n const content = getMessageText(msg)\n const trimmed = content.trim()\n if (!trimmed) return null\n\n // Skip pure system-reminder messages\n if (trimmed.startsWith('<system-reminder>')) return null\n\n // Commands are not user prompts\n if (trimmed.match(/<command-name>[^<]+<\\/command-name>/)) return null\n\n // Skip other XML-only messages (e.g. <local-command-stdout>)\n if (trimmed.startsWith('<') && trimmed.includes('</')) return null\n\n const firstLine = trimmed.split('\\n')[0]?.trim() || ''\n return firstLine || null\n}\n\n/**\n * Extract the last user prompt from log (most recent actual prompt text).\n * Skips commands (/clear, /model, etc.) and system XML messages.\n * Falls back to the first user prompt if no later prompt is found.\n */\nfunction extractLastUserPrompt(log: LogOption): string {\n // Walk backwards to find the last real user prompt\n for (let i = log.messages.length - 1; i >= 0; i--) {\n const msg = log.messages[i]\n if (msg.type !== 'user') continue\n\n const text = extractPromptText(msg)\n if (text) return text\n }\n return '(session)'\n}\n\nfunction getLogProjectPath(log: LogOption): string | null {\n return log.messages[0]?.cwd || null\n}\n\n// \u2500\u2500 Shared log preparation \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/**\n * Prepare logs for the session picker: filter empty/cleared, deduplicate forks.\n * Exported for reuse by the /resume command.\n */\nexport function prepareSessionLogs(rawLogs: LogOption[]): LogOption[] {\n return deduplicateLogForks(\n rawLogs.filter(log => !isEmpty(log) && !wasCleared(log)),\n )\n}\n\n// \u2500\u2500 List item conversion \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/**\n * Convert LogOption to CC-style ListItem:\n * label: first user prompt (or /command)\n * description: \"7 hours ago \u00B7 projectName \u00B7 61KB\"\n */\nfunction logToListItem(log: LogOption): ListItem {\n const projectPath = getLogProjectPath(log) || ''\n const projectName = projectPath ? path.basename(projectPath) : ''\n const firstPrompt = extractLastUserPrompt(log)\n const relativeTime = formatRelativeTime(log.modified)\n const fileSize = formatFileSize(log.fileSize ?? 0)\n\n const descParts = [relativeTime]\n if (projectName) descParts.push(truncate(projectName, 20))\n if (fileSize) descParts.push(fileSize)\n\n return {\n id: log.fullPath,\n label: truncate(firstPrompt, 60),\n description: descParts.join(' \u00B7 '),\n category: projectName || 'Unknown',\n data: log,\n }\n}\n\n// \u2500\u2500 SessionPicker component (shared) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport interface SessionPickerProps {\n /** Raw log list (will be filtered & deduped internally) */\n logs: LogOption[]\n /** Called when user selects a session */\n onSelect: (log: LogOption) => void\n /** Called when user presses Esc */\n onClose: () => void\n}\n\n/**\n * Reusable session picker with TabbedListView.\n * Used by both `minto --resume` (CLI) and `/resume` (REPL command).\n */\nexport function SessionPicker({\n logs,\n onSelect,\n onClose,\n}: SessionPickerProps) {\n const [activeTab, setActiveTab] = useState('recent')\n const [searchQuery, setSearchQuery] = useState('')\n const cwd = getCwd()\n\n const validLogs = useMemo(() => prepareSessionLogs(logs), [logs])\n\n const recentLogs = useMemo(() => validLogs.slice(0, 20), [validLogs])\n\n const projectLogs = useMemo(\n () => validLogs.filter(log => getLogProjectPath(log) === cwd),\n [validLogs, cwd],\n )\n\n const allLogs = useMemo(() => validLogs.slice(0, 100), [validLogs])\n\n const tabs: TabDefinition[] = useMemo(\n () => [\n {\n id: 'recent',\n label: t('commands.sessions.title'),\n badge: recentLogs.length,\n },\n {\n id: 'project',\n label: t('commands.sessions.headerProject'),\n badge: projectLogs.length,\n },\n {\n id: 'all',\n label: t('common.all'),\n badge: allLogs.length,\n },\n ],\n [recentLogs.length, projectLogs.length, allLogs.length],\n )\n\n const items: ListItem[] = useMemo(() => {\n let source: LogOption[]\n switch (activeTab) {\n case 'project':\n source = projectLogs\n break\n case 'all':\n source = allLogs\n break\n default:\n source = recentLogs\n }\n return source.map(logToListItem)\n }, [activeTab, recentLogs, projectLogs, allLogs])\n\n const handleSelect = (item: ListItem) => {\n const log = item.data as LogOption\n onSelect(log)\n }\n\n return (\n <TabbedListView\n title={t('commands.resume.title')}\n tabs={tabs}\n activeTab={activeTab}\n onTabChange={setActiveTab}\n items={items}\n searchEnabled={true}\n searchPlaceholder={t('ui.tabbedList.search')}\n searchQuery={searchQuery}\n onSearchChange={setSearchQuery}\n onSelect={handleSelect}\n onClose={onClose}\n emptyText={t('commands.resume.noSessions')}\n footerHint={t('commands.resume.navigationHint')}\n groupByCategory={activeTab === 'all'}\n />\n )\n}\n\n// \u2500\u2500 CLI --resume wrapper \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\ntype ResumeConversationProps = {\n commands: Command[]\n context: { unmount?: () => void }\n logs: LogOption[]\n tools: Tool[]\n verbose: boolean | undefined\n}\n\nexport function ResumeConversation({\n context,\n commands,\n logs,\n tools,\n verbose,\n}: ResumeConversationProps): React.ReactNode {\n const handleSelect = async (log: LogOption) => {\n try {\n const isDefaultModel = await isDefaultSlowAndCapableModel()\n context.unmount?.()\n await prepareTerminalForREPL()\n render(\n <REPL\n messageLogName={log.date}\n initialPrompt=\"\"\n shouldShowPromptInput={true}\n verbose={verbose}\n commands={commands}\n tools={tools}\n initialMessages={deserializeMessages(log.messages, tools)}\n initialForkNumber={getNextAvailableLogForkNumber(\n log.date,\n log.forkNumber ?? 1,\n 0,\n )}\n isDefaultModel={isDefaultModel}\n isResumedConversation={true}\n />,\n { exitOnCtrlC: false },\n )\n } catch (e) {\n logError(`Failed to load conversation: ${e}`)\n throw e\n }\n }\n\n const handleClose = () => {\n context.unmount?.()\n process.exit(0)\n }\n\n return <SessionPicker logs={logs} onSelect={handleSelect} onClose={handleClose} />\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,29 +0,0 @@
1
- class ModelAPIAdapter {
2
- constructor(capabilities, modelProfile) {
3
- this.capabilities = capabilities;
4
- this.modelProfile = modelProfile;
5
- }
6
- // Shared utility methods
7
- getMaxTokensParam() {
8
- return this.capabilities.parameters.maxTokensField;
9
- }
10
- getTemperature() {
11
- if (this.capabilities.parameters.temperatureMode === "fixed_one") {
12
- return 1;
13
- }
14
- if (this.capabilities.parameters.temperatureMode === "restricted") {
15
- return Math.min(1, 0.7);
16
- }
17
- return 0.7;
18
- }
19
- shouldIncludeReasoningEffort() {
20
- return this.capabilities.parameters.supportsReasoningEffort;
21
- }
22
- shouldIncludeVerbosity() {
23
- return this.capabilities.parameters.supportsVerbosity;
24
- }
25
- }
26
- export {
27
- ModelAPIAdapter
28
- };
29
- //# sourceMappingURL=base.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/services/adapters/base.ts"],
4
- "sourcesContent": ["import {\n ModelCapabilities,\n UnifiedRequestParams,\n UnifiedResponse,\n} from '@minto-types/modelCapabilities'\nimport { ModelProfile } from '@utils/config'\nimport { Tool } from '@tool'\n\nexport abstract class ModelAPIAdapter {\n constructor(\n protected capabilities: ModelCapabilities,\n protected modelProfile: ModelProfile,\n ) {}\n\n // Subclasses must implement these methods\n abstract createRequest(params: UnifiedRequestParams): unknown\n abstract parseResponse(response: unknown): UnifiedResponse\n abstract buildTools(tools: Tool[]): unknown[]\n\n // Shared utility methods\n protected getMaxTokensParam(): string {\n return this.capabilities.parameters.maxTokensField\n }\n\n protected getTemperature(): number {\n if (this.capabilities.parameters.temperatureMode === 'fixed_one') {\n return 1\n }\n if (this.capabilities.parameters.temperatureMode === 'restricted') {\n return Math.min(1, 0.7)\n }\n return 0.7\n }\n\n protected shouldIncludeReasoningEffort(): boolean {\n return this.capabilities.parameters.supportsReasoningEffort\n }\n\n protected shouldIncludeVerbosity(): boolean {\n return this.capabilities.parameters.supportsVerbosity\n }\n}\n"],
5
- "mappings": "AAQO,MAAe,gBAAgB;AAAA,EACpC,YACY,cACA,cACV;AAFU;AACA;AAAA,EACT;AAAA;AAAA,EAQO,oBAA4B;AACpC,WAAO,KAAK,aAAa,WAAW;AAAA,EACtC;AAAA,EAEU,iBAAyB;AACjC,QAAI,KAAK,aAAa,WAAW,oBAAoB,aAAa;AAChE,aAAO;AAAA,IACT;AACA,QAAI,KAAK,aAAa,WAAW,oBAAoB,cAAc;AACjE,aAAO,KAAK,IAAI,GAAG,GAAG;AAAA,IACxB;AACA,WAAO;AAAA,EACT;AAAA,EAEU,+BAAwC;AAChD,WAAO,KAAK,aAAa,WAAW;AAAA,EACtC;AAAA,EAEU,yBAAkC;AAC1C,WAAO,KAAK,aAAa,WAAW;AAAA,EACtC;AACF;",
6
- "names": []
7
- }