@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/commands/agents/AgentsCommand.tsx"],
4
- "sourcesContent": ["import React, {\n useState,\n useEffect,\n useMemo,\n useCallback,\n useReducer,\n Fragment,\n} from 'react'\nimport { Box, Text, useInput } from 'ink'\nimport InkTextInput from 'ink-text-input'\nimport {\n getActiveAgents,\n clearAgentCache,\n AgentConfig,\n} from '@utils/agentLoader'\nimport * as path from 'path'\nimport * as os from 'os'\nimport { exec } from 'child_process'\nimport { promisify } from 'util'\nimport { getTheme } from '@utils/theme'\nimport { clearScreen } from '@utils/terminal'\nimport { SEMANTIC_COLORS } from '@constants/colors'\n\nconst execAsync = promisify(exec)\nimport { getMCPTools } from '@services/mcpClient'\nimport { getModelManager } from '@utils/model'\nimport { randomUUID } from 'crypto'\n\n// TabbedListView for consistent UI\nimport { TabbedListView } from '@components/TabbedListView/TabbedListView'\nimport type {\n TabDefinition,\n ListItem,\n StatusOverlay,\n} from '@components/TabbedListView/types'\n\n// Import from local modules\nimport {\n AGENT_LOCATIONS,\n UI_ICONS,\n FOLDER_CONFIG,\n TOOL_CATEGORIES,\n} from './constants'\nimport type {\n AgentLocation,\n ModeState,\n CreateState,\n Tool,\n GeneratedAgent,\n} from './types'\nimport {\n getAgentFilePath,\n saveAgent,\n deleteAgent,\n openInEditor,\n viewInPager,\n updateAgent,\n} from './utils'\n\n// Phase state machine for TabbedListView navigation\ntype AgentPhase =\n | { type: 'main' }\n | { type: 'agent-actions'; agent: AgentConfig }\n | { type: 'edit-actions'; agent: AgentConfig }\n | { type: 'create'; step: ModeState }\n | { type: 'edit-tools'; agent: AgentConfig }\n | { type: 'edit-model'; agent: AgentConfig }\n | { type: 'edit-color'; agent: AgentConfig }\n | { type: 'delete-confirm'; agent: AgentConfig }\n\n// Map a stored model identifier to a display name via ModelManager\nfunction getDisplayModelName(modelId?: string | null): string {\n // null/undefined means inherit from parent (task model)\n if (!modelId) return 'Inherit'\n\n try {\n const profiles = getModelManager().getActiveModelProfiles()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const profile = profiles.find(\n (p: any) => p.modelName === modelId || p.name === modelId,\n )\n return profile ? profile.name : `Custom (${modelId})`\n } catch (error) {\n console.warn('Failed to get model profiles:', error)\n return modelId ? `Custom (${modelId})` : 'Inherit'\n }\n}\n\n// AI generation function (use main pointer model)\nasync function generateAgentWithClaude(\n prompt: string,\n): Promise<GeneratedAgent> {\n // Import Claude service dynamically to avoid circular dependencies\n const { queryModel } = await import('@services/claude')\n\n const systemPrompt = `You are an expert at creating AI agent configurations. Based on the user's description, generate a specialized agent configuration.\n\nReturn your response as a JSON object with exactly these fields:\n- identifier: A short, kebab-case identifier for the agent (e.g., \"code-reviewer\", \"security-auditor\")\n- whenToUse: A clear description of when this agent should be used (50-200 words)\n- systemPrompt: A comprehensive system prompt that defines the agent's role, capabilities, and behavior (200-500 words)\n\nMake the agent highly specialized and effective for the described use case.`\n\n try {\n const messages = [\n {\n type: 'user',\n uuid: randomUUID(),\n message: { role: 'user', content: prompt },\n },\n ] as any\n const response = await queryModel('main', messages, [systemPrompt])\n\n // Get the text content from the response - handle both string and object responses\n let responseText = ''\n if (typeof response.message?.content === 'string') {\n responseText = response.message.content\n } else if (Array.isArray(response.message?.content)) {\n const textContent = response.message.content.find(\n (c: any) => c.type === 'text',\n )\n responseText = textContent?.text || ''\n } else if (response.message?.content?.[0]?.text) {\n responseText = response.message.content[0].text\n }\n\n if (!responseText) {\n throw new Error('No text content in Claude response')\n }\n\n // \u5B89\u5168\u9650\u5236\n const MAX_JSON_SIZE = 100_000 // 100KB\n const MAX_FIELD_LENGTH = 10_000\n\n if (responseText.length > MAX_JSON_SIZE) {\n throw new Error('Response too large')\n }\n\n // \u5B89\u5168\u7684JSON\u63D0\u53D6\u548C\u89E3\u6790\n let parsed: any\n try {\n // \u9996\u5148\u5C1D\u8BD5\u76F4\u63A5\u89E3\u6790\u6574\u4E2A\u54CD\u5E94\n parsed = JSON.parse(responseText.trim())\n } catch {\n // \u5982\u679C\u5931\u8D25\uFF0C\u63D0\u53D6\u7B2C\u4E00\u4E2AJSON\u5BF9\u8C61\uFF0C\u9650\u5236\u641C\u7D22\u8303\u56F4\n const startIdx = responseText.indexOf('{')\n const endIdx = responseText.lastIndexOf('}')\n\n if (startIdx === -1 || endIdx === -1 || startIdx >= endIdx) {\n throw new Error('No valid JSON found in Claude response')\n }\n\n const jsonStr = responseText.substring(startIdx, endIdx + 1)\n if (jsonStr.length > MAX_JSON_SIZE) {\n throw new Error('JSON content too large')\n }\n\n try {\n parsed = JSON.parse(jsonStr)\n } catch (parseError) {\n throw new Error(\n `Invalid JSON format: ${parseError instanceof Error ? parseError.message : 'Unknown error'}`,\n )\n }\n }\n\n // \u6DF1\u5EA6\u9A8C\u8BC1\u548C\u5B89\u5168\u6E05\u7406\n const identifier = String(parsed.identifier || '')\n .slice(0, 100)\n .trim()\n const whenToUse = String(parsed.whenToUse || '')\n .slice(0, MAX_FIELD_LENGTH)\n .trim()\n const agentSystemPrompt = String(parsed.systemPrompt || '')\n .slice(0, MAX_FIELD_LENGTH)\n .trim()\n\n // \u9A8C\u8BC1\u5FC5\u586B\u5B57\u6BB5\n if (!identifier || !whenToUse || !agentSystemPrompt) {\n throw new Error(\n 'Invalid response structure: missing required fields (identifier, whenToUse, systemPrompt)',\n )\n }\n\n // \u6E05\u7406\u5371\u9669\u5B57\u7B26\uFF08\u63A7\u5236\u5B57\u7B26\u548C\u975E\u6253\u5370\u5B57\u7B26\uFF09\n const sanitize = (str: string) => str.replace(/[\\x00-\\x1F\\x7F-\\x9F]/g, '')\n\n // \u9A8C\u8BC1identifier\u683C\u5F0F\uFF08\u53EA\u5141\u8BB8\u5B57\u6BCD\u3001\u6570\u5B57\u3001\u8FDE\u5B57\u7B26\uFF09\n const cleanIdentifier = sanitize(identifier)\n if (!/^[a-zA-Z0-9-]+$/.test(cleanIdentifier)) {\n throw new Error(\n 'Invalid identifier format: only letters, numbers, and hyphens allowed',\n )\n }\n\n return {\n identifier: cleanIdentifier,\n whenToUse: sanitize(whenToUse),\n systemPrompt: sanitize(agentSystemPrompt),\n }\n } catch (error) {\n console.error('AI generation failed:', error)\n // Fallback to a reasonable default based on the prompt\n const fallbackId = prompt\n .toLowerCase()\n .replace(/[^a-z0-9\\s-]/g, '')\n .replace(/\\s+/g, '-')\n .slice(0, 30)\n\n return {\n identifier: fallbackId || 'custom-agent',\n whenToUse: `Use this agent when you need assistance with: ${prompt}`,\n systemPrompt: `You are a specialized assistant focused on helping with ${prompt}. Provide expert-level assistance in this domain.`,\n }\n }\n}\n\n// Comprehensive validation system\nfunction validateAgentType(\n agentType: string,\n existingAgents: AgentConfig[] = [],\n): {\n isValid: boolean\n errors: string[]\n warnings: string[]\n} {\n const errors: string[] = []\n const warnings: string[] = []\n\n if (!agentType) {\n errors.push('Agent type is required')\n return { isValid: false, errors, warnings }\n }\n\n if (!/^[a-zA-Z]/.test(agentType)) {\n errors.push('Agent type must start with a letter')\n }\n\n if (!/^[a-zA-Z0-9-]+$/.test(agentType)) {\n errors.push('Agent type can only contain letters, numbers, and hyphens')\n }\n\n if (agentType.length < 3) {\n errors.push('Agent type must be at least 3 characters long')\n }\n\n if (agentType.length > 50) {\n errors.push('Agent type must be less than 50 characters')\n }\n\n // Check for reserved names\n const reserved = ['help', 'exit', 'quit', 'agents', 'task']\n if (reserved.includes(agentType.toLowerCase())) {\n errors.push('This name is reserved')\n }\n\n // Check for duplicates\n const duplicate = existingAgents.find(a => a.agentType === agentType)\n if (duplicate) {\n errors.push(\n `An agent with this name already exists in ${duplicate.location}`,\n )\n }\n\n // Warnings\n if (agentType.includes('--')) {\n warnings.push('Consider avoiding consecutive hyphens')\n }\n\n return {\n isValid: errors.length === 0,\n errors,\n warnings,\n }\n}\n\nfunction validateAgentConfig(\n config: Partial<CreateState>,\n existingAgents: AgentConfig[] = [],\n): {\n isValid: boolean\n errors: string[]\n warnings: string[]\n} {\n const errors: string[] = []\n const warnings: string[] = []\n\n // Validate agent type\n if (config.agentType) {\n const typeValidation = validateAgentType(config.agentType, existingAgents)\n errors.push(...typeValidation.errors)\n warnings.push(...typeValidation.warnings)\n }\n\n // Validate description\n if (!config.whenToUse) {\n errors.push('Description is required')\n } else if (config.whenToUse.length < 10) {\n warnings.push(\n 'Description should be more descriptive (at least 10 characters)',\n )\n }\n\n // Validate system prompt\n if (!config.systemPrompt) {\n errors.push('System prompt is required')\n } else if (config.systemPrompt.length < 20) {\n warnings.push(\n 'System prompt might be too short for effective agent behavior',\n )\n }\n\n // Validate tools\n if (!config.selectedTools || config.selectedTools.length === 0) {\n warnings.push('No tools selected - agent will have limited capabilities')\n }\n\n return {\n isValid: errors.length === 0,\n errors,\n warnings,\n }\n}\n\n// Enhanced UI components retained for Claude Code parity\n\ninterface HeaderProps {\n title: string\n subtitle?: string\n step?: number\n totalSteps?: number\n children?: React.ReactNode\n}\n\nfunction Header({ title, subtitle, step, totalSteps, children }: HeaderProps) {\n const theme = getTheme()\n return (\n <Box flexDirection=\"column\">\n <Text bold color={theme.primary}>\n {title}\n </Text>\n {subtitle && (\n <Text color={theme.secondary}>\n {step && totalSteps ? `Step ${step}/${totalSteps}: ` : ''}\n {subtitle}\n </Text>\n )}\n {children}\n </Box>\n )\n}\n\ninterface InstructionBarProps {\n instructions?: string\n}\n\nfunction InstructionBar({\n instructions = 'Press \u2191\u2193 to navigate \u00B7 Enter to select \u00B7 Esc to go back',\n}: InstructionBarProps) {\n const theme = getTheme()\n return (\n <Box marginTop={2}>\n <Box borderStyle=\"round\" borderColor={theme.secondary} paddingX={1}>\n <Text color={theme.secondary}>{instructions}</Text>\n </Box>\n </Box>\n )\n}\n\ninterface SelectListProps {\n options: Array<{ label: string; value: string }>\n selectedIndex: number\n onChange: (value: string) => void\n onCancel?: () => void\n numbered?: boolean\n}\n\nfunction SelectList({\n options,\n selectedIndex,\n onChange,\n onCancel,\n numbered = true,\n isActive = true,\n}: SelectListProps & { isActive?: boolean }) {\n const theme = getTheme()\n\n // Only listen when this component is active to prevent listener accumulation\n useInput(\n (input, key) => {\n if (key.escape && onCancel) {\n onCancel()\n } else if (key.return) {\n onChange(options[selectedIndex].value)\n }\n },\n { isActive },\n )\n\n return (\n <Box flexDirection=\"column\">\n {options.map((option, idx) => (\n <Box key={option.value}>\n <Text color={idx === selectedIndex ? theme.primary : undefined}>\n {idx === selectedIndex ? `${UI_ICONS.pointer} ` : ' '}\n {numbered ? `${idx + 1}. ` : ''}\n {option.label}\n </Text>\n </Box>\n ))}\n </Box>\n )\n}\n\n// Multiline text input component with better UX\ninterface MultilineTextInputProps {\n value: string\n onChange: (value: string) => void\n placeholder?: string\n onSubmit?: () => void\n focus?: boolean\n rows?: number\n error?: string | null\n}\n\nfunction MultilineTextInput({\n value,\n onChange,\n placeholder = '',\n onSubmit,\n focus = true,\n rows = 5,\n error,\n}: MultilineTextInputProps) {\n const theme = getTheme()\n const [internalValue, setInternalValue] = useState(value)\n const [cursorBlink, setCursorBlink] = useState(true)\n\n // Sync with external value changes\n useEffect(() => {\n setInternalValue(value)\n }, [value])\n\n // Cursor blink animation\n useEffect(() => {\n if (!focus) return undefined\n const timer = setInterval(() => {\n setCursorBlink(prev => !prev)\n }, 500)\n return () => clearInterval(timer)\n }, [focus])\n\n // Calculate display metrics\n const lines = internalValue.split('\\n')\n const lineCount = lines.length\n const charCount = internalValue.length\n const isEmpty = !internalValue.trim()\n const hasContent = !isEmpty\n\n // Format lines for display with word wrapping\n const formatLines = (text: string): string[] => {\n if (!text && placeholder) {\n return [placeholder]\n }\n const maxWidth = 70 // Maximum characters per line\n const result: string[] = []\n const textLines = text.split('\\n')\n\n textLines.forEach(line => {\n if (line.length <= maxWidth) {\n result.push(line)\n } else {\n // Word wrap long lines\n let remaining = line\n while (remaining.length > 0) {\n result.push(remaining.slice(0, maxWidth))\n remaining = remaining.slice(maxWidth)\n }\n }\n })\n\n return result.length > 0 ? result : ['']\n }\n\n const displayLines = formatLines(internalValue)\n const visibleLines = displayLines.slice(\n Math.max(0, displayLines.length - rows),\n )\n\n // Handle submit\n const handleSubmit = () => {\n if (internalValue.trim() && onSubmit) {\n onSubmit()\n }\n }\n\n return (\n <Box flexDirection=\"column\" width=\"100%\">\n {/* Modern card-style input container */}\n <Box flexDirection=\"column\">\n {/* Input area */}\n <Box\n borderStyle=\"round\"\n borderColor={focus ? theme.primary : 'gray'}\n paddingX={2}\n paddingY={1}\n minHeight={rows + 2}\n >\n <Box flexDirection=\"column\">\n {/* Use ink-text-input for better input handling */}\n <InkTextInput\n value={internalValue}\n onChange={val => {\n setInternalValue(val)\n onChange(val)\n }}\n onSubmit={handleSubmit}\n focus={focus}\n placeholder={placeholder}\n />\n\n {/* Show cursor indicator when focused */}\n {focus && cursorBlink && hasContent && (\n <Text color={theme.primary}>_</Text>\n )}\n </Box>\n </Box>\n\n {/* Status bar */}\n <Box marginTop={1} flexDirection=\"row\" justifyContent=\"space-between\">\n <Box>\n {hasContent ? (\n <Text color={theme.success}>\n \u2713 {charCount} chars \u2022 {lineCount} line\n {lineCount !== 1 ? 's' : ''}\n </Text>\n ) : (\n <Text color={SEMANTIC_COLORS.dim}>\u25CB Type to begin...</Text>\n )}\n </Box>\n <Box>\n {error ? (\n <Text color={theme.error}>\u26A0 {error}</Text>\n ) : (\n <Text color={SEMANTIC_COLORS.dim}>\n {hasContent ? 'Ready' : 'Waiting'}\n </Text>\n )}\n </Box>\n </Box>\n </Box>\n\n {/* Instructions */}\n <Box marginTop={1}>\n <Text color={SEMANTIC_COLORS.dim}>\n Press Enter to submit \u00B7 Shift+Enter for new line\n </Text>\n </Box>\n </Box>\n )\n}\n\n// Loading spinner component\ninterface LoadingSpinnerProps {\n text?: string\n}\n\nfunction LoadingSpinner({ text }: LoadingSpinnerProps) {\n const theme = getTheme()\n const [frame, setFrame] = useState(0)\n\n useEffect(() => {\n const interval = setInterval(() => {\n setFrame(prev => (prev + 1) % UI_ICONS.loading.length)\n }, 100)\n return () => clearInterval(interval)\n }, [])\n\n return (\n <Box>\n <Text color={theme.primary}>{UI_ICONS.loading[frame]}</Text>\n {text && <Text color={theme.secondary}> {text}</Text>}\n </Box>\n )\n}\n\n// Complete agents UI with comprehensive state management\ninterface AgentsUIProps {\n onExit: (message?: string) => void\n}\n\nfunction AgentsUI({ onExit }: AgentsUIProps) {\n // Phase-based navigation (TabbedListView for main/agent-actions/edit-actions)\n const [phase, setPhase] = useState<AgentPhase>({ type: 'main' })\n const [activeTab, setActiveTab] = useState('all')\n const [searchQuery, setSearchQuery] = useState('')\n const [statusOverlay, setStatusOverlay] = useState<StatusOverlay | null>(null)\n\n // Legacy modeState for creation wizard steps (they still use setModeState)\n const [modeState, setModeState] = useState<ModeState>({\n mode: 'list-agents',\n location: 'all' as AgentLocation,\n })\n\n const [agents, setAgents] = useState<AgentConfig[]>([])\n const [changes, setChanges] = useState<string[]>([])\n const [refreshKey, setRefreshKey] = useState(0)\n const [loading, setLoading] = useState(true)\n const [tools, setTools] = useState<Tool[]>([])\n\n // Creation state using reducer for complex flow management\n const [createState, setCreateState] = useReducer(\n (state: CreateState, action: any) => {\n switch (action.type) {\n case 'RESET':\n return {\n location: null,\n agentType: '',\n method: null,\n generationPrompt: '',\n whenToUse: '',\n selectedTools: [],\n selectedModel: null,\n selectedColor: null,\n systemPrompt: '',\n isGenerating: false,\n wasGenerated: false,\n isAIGenerated: false,\n error: null,\n warnings: [],\n agentTypeCursor: 0,\n whenToUseCursor: 0,\n promptCursor: 0,\n generationPromptCursor: 0,\n }\n case 'SET_LOCATION':\n return { ...state, location: action.value }\n case 'SET_METHOD':\n return { ...state, method: action.value }\n case 'SET_AGENT_TYPE':\n return { ...state, agentType: action.value, error: null }\n case 'SET_GENERATION_PROMPT':\n return { ...state, generationPrompt: action.value }\n case 'SET_WHEN_TO_USE':\n return { ...state, whenToUse: action.value, error: null }\n case 'SET_SELECTED_TOOLS':\n return { ...state, selectedTools: action.value }\n case 'SET_SELECTED_MODEL':\n return { ...state, selectedModel: action.value }\n case 'SET_SELECTED_COLOR':\n return { ...state, selectedColor: action.value }\n case 'SET_SYSTEM_PROMPT':\n return { ...state, systemPrompt: action.value }\n case 'SET_IS_GENERATING':\n return { ...state, isGenerating: action.value }\n case 'SET_WAS_GENERATED':\n return { ...state, wasGenerated: action.value }\n case 'SET_IS_AI_GENERATED':\n return { ...state, isAIGenerated: action.value }\n case 'SET_ERROR':\n return { ...state, error: action.value }\n case 'SET_WARNINGS':\n return { ...state, warnings: action.value }\n case 'SET_CURSOR':\n return { ...state, [action.field]: action.value }\n default:\n return state\n }\n },\n {\n location: null,\n agentType: '',\n method: null,\n generationPrompt: '',\n whenToUse: '',\n selectedTools: [],\n selectedModel: null,\n selectedColor: null,\n systemPrompt: '',\n isGenerating: false,\n wasGenerated: false,\n isAIGenerated: false,\n error: null,\n warnings: [],\n agentTypeCursor: 0,\n whenToUseCursor: 0,\n promptCursor: 0,\n generationPromptCursor: 0,\n },\n )\n\n // Load agents and tools dynamically\n const loadAgents = useCallback(async () => {\n setLoading(true)\n clearAgentCache()\n\n const abortController = new AbortController()\n\n try {\n const result = await getActiveAgents()\n\n if (abortController.signal.aborted) {\n return undefined\n }\n\n setAgents(result)\n\n // Load available tools dynamically from tool registry\n const availableTools: Tool[] = []\n\n // Core built-in tools\n let coreTools = [\n { name: 'Read', description: 'Read files from filesystem' },\n { name: 'Write', description: 'Write files to filesystem' },\n { name: 'Edit', description: 'Edit existing files' },\n { name: 'MultiEdit', description: 'Make multiple edits to files' },\n { name: 'NotebookEdit', description: 'Edit Jupyter notebooks' },\n { name: 'Bash', description: 'Execute bash commands' },\n { name: 'Glob', description: 'Find files matching patterns' },\n { name: 'Grep', description: 'Search file contents' },\n { name: 'LS', description: 'List directory contents' },\n { name: 'WebFetch', description: 'Fetch web content' },\n { name: 'WebSearch', description: 'Search the web' },\n { name: 'TodoWrite', description: 'Manage task lists' },\n ]\n // Hide agent orchestration/self-control tools for subagent configs\n coreTools = coreTools.filter(\n t => t.name !== 'Agent' && t.name !== 'ExitPlanMode',\n )\n\n availableTools.push(...coreTools)\n\n // Try to load MCP tools dynamically\n try {\n const mcpTools = await getMCPTools()\n if (Array.isArray(mcpTools) && mcpTools.length > 0) {\n availableTools.push(...mcpTools)\n }\n } catch (error) {\n console.warn('Failed to load MCP tools:', error)\n }\n\n if (!abortController.signal.aborted) {\n setTools(availableTools)\n }\n } catch (error) {\n if (!abortController.signal.aborted) {\n console.error('Failed to load agents:', error)\n }\n } finally {\n if (!abortController.signal.aborted) {\n setLoading(false)\n }\n }\n\n return () => abortController.abort()\n }, [])\n\n useEffect(() => {\n let cleanup: (() => void) | undefined\n\n const load = async () => {\n cleanup = await loadAgents()\n }\n\n load()\n\n return () => {\n if (cleanup) {\n cleanup()\n }\n }\n }, [refreshKey, loadAgents])\n\n // Reload agents when returning to main phase\n useEffect(() => {\n if (phase.type === 'main') {\n setSearchQuery('')\n }\n }, [phase])\n\n // Build active agent map for override detection\n const activeMap = useMemo(() => {\n const map = new Map<string, AgentConfig>()\n agents.forEach(a => map.set(a.agentType, a))\n return map\n }, [agents])\n\n const checkOverride = useCallback(\n (agent: AgentConfig) => {\n const active = activeMap.get(agent.agentType)\n const isOverridden = !!(active && active.location !== agent.location)\n return {\n isOverridden,\n overriddenBy: isOverridden ? active.location : null,\n }\n },\n [activeMap],\n )\n\n // Compute tabs/items/title based on current phase\n const { tabs, items, title, footerHint, searchEnabled } = useMemo(() => {\n switch (phase.type) {\n case 'main': {\n const allAgents = agents\n const customAgents = allAgents.filter(a => a.location !== 'built-in')\n\n const mainTabs: TabDefinition[] = [\n { id: 'all', label: 'All', badge: customAgents.length },\n {\n id: 'plugin',\n label: 'Plugin',\n badge: customAgents.filter(a => a.location === 'plugin').length,\n },\n {\n id: 'user',\n label: 'Personal',\n badge: customAgents.filter(a => a.location === 'user').length,\n },\n {\n id: 'project',\n label: 'Project',\n badge: customAgents.filter(a => a.location === 'project').length,\n },\n ]\n\n let mainItems: ListItem[] = []\n\n // Add \"Create new agent\" item at top\n mainItems.push({\n id: 'create-new',\n label: '+ Create new agent',\n description: 'Create a new specialized agent',\n })\n\n // Filter agents by tab\n const displayAgents =\n activeTab === 'all'\n ? customAgents\n : customAgents.filter(a => a.location === activeTab)\n\n for (const agent of displayAgents) {\n const { isOverridden, overriddenBy } = checkOverride(agent)\n const agentModel = (agent as any).model || null\n const modelDisplay = getDisplayModelName(agentModel)\n\n const locationLabel =\n agent.location === 'plugin'\n ? 'Plugin'\n : agent.location === 'user'\n ? 'Personal'\n : agent.location === 'project'\n ? 'Project'\n : agent.location\n\n mainItems.push({\n id: `${agent.agentType}-${agent.location}`,\n label: agent.agentType,\n description: agent.whenToUse || agent.description || '',\n category: locationLabel,\n metadata: modelDisplay,\n status: isOverridden ? 'disabled' : 'enabled',\n data: agent,\n })\n }\n\n return {\n tabs: mainTabs,\n items: mainItems,\n title: 'Agents',\n footerHint:\n '\u2191\u2193 Navigate \u00B7 Enter Select \u00B7 Tab/\u2190\u2192 Switch \u00B7 / Search \u00B7 Esc Close',\n searchEnabled: true,\n }\n }\n\n case 'agent-actions': {\n const agent = phase.agent\n const isBuiltIn = agent.location === 'built-in'\n\n const actionItems: ListItem[] = [\n {\n id: 'view',\n label: 'View details',\n description: 'Show agent configuration',\n },\n ]\n\n if (!isBuiltIn) {\n actionItems.push({\n id: 'edit',\n label: 'Edit agent',\n description: 'Modify agent settings',\n })\n actionItems.push({\n id: 'delete',\n label: 'Delete agent',\n description: 'Remove this agent',\n })\n }\n\n actionItems.push({\n id: 'back',\n label: 'Back',\n description: 'Return to agent list',\n })\n\n return {\n tabs: [{ id: 'actions', label: 'Actions' }] as TabDefinition[],\n items: actionItems,\n title: agent.agentType,\n footerHint: '\u2191\u2193 Navigate \u00B7 Enter Select \u00B7 Esc Back',\n searchEnabled: false,\n }\n }\n\n case 'edit-actions': {\n const agent = phase.agent\n\n const editItems: ListItem[] = [\n {\n id: 'open-editor',\n label: 'Open in editor',\n description: 'Edit the agent file directly',\n },\n {\n id: 'edit-tools',\n label: 'Edit tools',\n description: 'Change available tools',\n },\n {\n id: 'edit-model',\n label: 'Edit model',\n description: 'Change the model',\n },\n {\n id: 'edit-color',\n label: 'Edit color',\n description: 'Change the color tag',\n },\n {\n id: 'back',\n label: 'Back',\n description: 'Return to agent actions',\n },\n ]\n\n return {\n tabs: [{ id: 'edit', label: 'Edit' }] as TabDefinition[],\n items: editItems,\n title: `Edit: ${agent.agentType}`,\n footerHint: '\u2191\u2193 Navigate \u00B7 Enter Select \u00B7 Esc Back',\n searchEnabled: false,\n }\n }\n\n default:\n return {\n tabs: [{ id: 'all', label: 'All' }] as TabDefinition[],\n items: [] as ListItem[],\n title: 'Agents',\n footerHint: '',\n searchEnabled: false,\n }\n }\n }, [phase, activeTab, agents, checkOverride])\n\n // Handle tab change\n const handleTabChange = useCallback((tabId: string) => {\n setActiveTab(tabId)\n setSearchQuery('')\n }, [])\n\n // Handle status overlay dismiss\n const handleStatusDismiss = useCallback(() => {\n setStatusOverlay(null)\n setPhase({ type: 'main' })\n }, [])\n\n // Handle back navigation\n const handleBack = useCallback(() => {\n if (statusOverlay && statusOverlay.type !== 'loading') {\n handleStatusDismiss()\n return\n }\n switch (phase.type) {\n case 'main': {\n const changesSummary =\n changes.length > 0\n ? `Agent changes:\\n${changes.join('\\n')}`\n : undefined\n onExit(changesSummary)\n break\n }\n case 'agent-actions':\n setPhase({ type: 'main' })\n break\n case 'edit-actions':\n setPhase({ type: 'agent-actions', agent: phase.agent })\n break\n default:\n setPhase({ type: 'main' })\n break\n }\n }, [phase, statusOverlay, changes, onExit, handleStatusDismiss])\n\n // Handle close\n const handleClose = useCallback(() => {\n if (statusOverlay && statusOverlay.type !== 'loading') {\n handleStatusDismiss()\n return\n }\n if (phase.type === 'main') {\n const changesSummary =\n changes.length > 0 ? `Agent changes:\\n${changes.join('\\n')}` : undefined\n onExit(changesSummary)\n } else {\n setPhase({ type: 'main' })\n setSearchQuery('')\n }\n }, [phase, statusOverlay, changes, onExit, handleStatusDismiss])\n\n // Handle item selection\n const handleSelect = useCallback(\n async (item: ListItem) => {\n switch (phase.type) {\n case 'main': {\n if (item.id === 'create-new') {\n setCreateState({ type: 'RESET' })\n setModeState({ mode: 'create-location' })\n setPhase({ type: 'create', step: { mode: 'create-location' } })\n return\n }\n const agent = item.data as AgentConfig\n if (agent) {\n setPhase({ type: 'agent-actions', agent })\n }\n break\n }\n\n case 'agent-actions': {\n const agent = phase.agent\n if (item.id === 'back') {\n setPhase({ type: 'main' })\n return\n }\n if (item.id === 'view') {\n try {\n viewInPager(agent)\n // Refresh agent data in case anything changed externally\n setRefreshKey(prev => prev + 1)\n } catch (err) {\n setStatusOverlay({\n type: 'error',\n message: `Failed to open pager: ${err instanceof Error ? err.message : String(err)}`,\n })\n }\n } else if (item.id === 'edit') {\n setPhase({ type: 'edit-actions', agent })\n } else if (item.id === 'delete') {\n setPhase({ type: 'delete-confirm', agent })\n }\n break\n }\n\n case 'edit-actions': {\n const agent = phase.agent\n if (item.id === 'back') {\n setPhase({ type: 'agent-actions', agent })\n return\n }\n if (item.id === 'open-editor') {\n try {\n const filePath = getAgentFilePath(agent)\n openInEditor(filePath) // sync \u2014 blocks until editor exits\n // Reload agents in case the file was modified\n clearAgentCache()\n const reloaded = await getActiveAgents()\n setAgents(reloaded)\n const updated = reloaded.find(\n a => a.agentType === agent.agentType,\n )\n if (updated) {\n setPhase({ type: 'edit-actions', agent: updated })\n }\n setStatusOverlay({\n type: 'success',\n message: 'Editor closed',\n })\n } catch (err) {\n setStatusOverlay({\n type: 'error',\n message: `Failed to open editor: ${err instanceof Error ? err.message : String(err)}`,\n })\n }\n } else if (item.id === 'edit-tools') {\n setPhase({ type: 'edit-tools', agent })\n } else if (item.id === 'edit-model') {\n setPhase({ type: 'edit-model', agent })\n } else if (item.id === 'edit-color') {\n setPhase({ type: 'edit-color', agent })\n }\n break\n }\n }\n },\n [phase],\n )\n\n // Callbacks for child components that return to phase navigation\n const handleAgentCreated = useCallback((message: string) => {\n setChanges(prev => [...prev, message])\n setRefreshKey(prev => prev + 1)\n setPhase({ type: 'main' })\n }, [])\n\n const handleAgentDeleted = useCallback((message: string) => {\n setChanges(prev => [...prev, message])\n setRefreshKey(prev => prev + 1)\n setPhase({ type: 'main' })\n }, [])\n\n const handleAgentUpdated = useCallback(\n (message: string, updated: AgentConfig) => {\n setChanges(prev => [...prev, message])\n setRefreshKey(prev => prev + 1)\n setPhase({ type: 'agent-actions', agent: updated })\n },\n [],\n )\n\n // Bridge: creation wizard uses setModeState; intercept transitions back to list\n const wizardSetModeState = useCallback((state: ModeState) => {\n if (state.mode === 'list-agents') {\n setPhase({ type: 'main' })\n return\n }\n setModeState(state)\n }, [])\n\n // Render custom phases (creation wizard, view, edit steps, delete confirm)\n if (phase.type === 'create') {\n // Route based on modeState which the wizard steps use\n switch (modeState.mode) {\n case 'create-location':\n return (\n <LocationSelect\n createState={createState}\n setCreateState={setCreateState}\n setModeState={wizardSetModeState}\n />\n )\n case 'create-method':\n return (\n <MethodSelect\n createState={createState}\n setCreateState={setCreateState}\n setModeState={wizardSetModeState}\n />\n )\n case 'create-generate':\n return (\n <GenerateStep\n createState={createState}\n setCreateState={setCreateState}\n setModeState={wizardSetModeState}\n existingAgents={agents}\n />\n )\n case 'create-type':\n return (\n <TypeStep\n createState={createState}\n setCreateState={setCreateState}\n setModeState={wizardSetModeState}\n existingAgents={agents}\n />\n )\n case 'create-description':\n return (\n <DescriptionStep\n createState={createState}\n setCreateState={setCreateState}\n setModeState={wizardSetModeState}\n />\n )\n case 'create-tools':\n return (\n <ToolsStep\n createState={createState}\n setCreateState={setCreateState}\n setModeState={wizardSetModeState}\n tools={tools}\n />\n )\n case 'create-model':\n return (\n <ModelStep\n createState={createState}\n setCreateState={setCreateState}\n setModeState={wizardSetModeState}\n />\n )\n case 'create-color':\n return (\n <ColorStep\n createState={createState}\n setCreateState={setCreateState}\n setModeState={wizardSetModeState}\n />\n )\n case 'create-prompt':\n return (\n <PromptStep\n createState={createState}\n setCreateState={setCreateState}\n setModeState={wizardSetModeState}\n />\n )\n case 'create-confirm':\n return (\n <ConfirmStep\n createState={createState}\n setCreateState={setCreateState}\n setModeState={wizardSetModeState}\n tools={tools}\n onAgentCreated={handleAgentCreated}\n />\n )\n default:\n // Fallback: wizard navigated to list, return to main\n setPhase({ type: 'main' })\n return null\n }\n }\n\n if (phase.type === 'edit-tools') {\n return (\n <EditToolsStep\n agent={phase.agent}\n tools={tools}\n setModeState={(state: ModeState) => {\n clearScreen()\n setPhase({ type: 'edit-actions', agent: phase.agent })\n }}\n onAgentUpdated={handleAgentUpdated}\n />\n )\n }\n\n if (phase.type === 'edit-model') {\n return (\n <EditModelStep\n agent={phase.agent}\n setModeState={(state: ModeState) => {\n clearScreen()\n setPhase({ type: 'edit-actions', agent: phase.agent })\n }}\n onAgentUpdated={handleAgentUpdated}\n />\n )\n }\n\n if (phase.type === 'edit-color') {\n return (\n <EditColorStep\n agent={phase.agent}\n setModeState={(state: ModeState) => {\n clearScreen()\n setPhase({ type: 'edit-actions', agent: phase.agent })\n }}\n onAgentUpdated={handleAgentUpdated}\n />\n )\n }\n\n if (phase.type === 'delete-confirm') {\n return (\n <DeleteConfirm\n agent={phase.agent}\n setModeState={(state: ModeState) => {\n clearScreen()\n setPhase({ type: 'agent-actions', agent: phase.agent })\n }}\n onAgentDeleted={handleAgentDeleted}\n />\n )\n }\n\n // TabbedListView phases: main, agent-actions, edit-actions\n const currentTab =\n phase.type === 'main'\n ? activeTab\n : phase.type === 'agent-actions'\n ? 'actions'\n : 'edit'\n\n return (\n <TabbedListView\n title={title}\n tabs={tabs}\n activeTab={currentTab}\n onTabChange={handleTabChange}\n items={items}\n searchEnabled={searchEnabled}\n searchQuery={searchQuery}\n onSearchChange={setSearchQuery}\n onSelect={handleSelect}\n onClose={handleClose}\n onBack={handleBack}\n statusOverlay={statusOverlay}\n footerHint={footerHint}\n groupByCategory={phase.type === 'main' && activeTab === 'all'}\n isLoading={loading}\n loadingText=\"Loading agents...\"\n emptyText={\n phase.type === 'main'\n ? 'No agents found. Select \"+ Create new agent\" to get started.'\n : 'No items'\n }\n statusDismissHint=\"Enter Continue \u00B7 Esc Back\"\n />\n )\n}\n\n// (AgentListView, AgentMenu, EditMenu removed \u2014 replaced by TabbedListView phases in AgentsUI)\n\n// Common interface for creation step props\ninterface StepProps {\n createState: CreateState\n setCreateState: React.Dispatch<any>\n setModeState: (state: ModeState) => void\n}\n\n// Step 3: AI Generation\ninterface GenerateStepProps extends StepProps {\n existingAgents: AgentConfig[]\n}\n\nfunction GenerateStep({\n createState,\n setCreateState,\n setModeState,\n existingAgents,\n}: GenerateStepProps) {\n const handleSubmit = async () => {\n if (createState.generationPrompt.trim()) {\n setCreateState({ type: 'SET_IS_GENERATING', value: true })\n setCreateState({ type: 'SET_ERROR', value: null })\n\n try {\n const generated = await generateAgentWithClaude(\n createState.generationPrompt,\n )\n\n // Validate the generated identifier doesn't conflict\n const validation = validateAgentType(\n generated.identifier,\n existingAgents,\n )\n let finalIdentifier = generated.identifier\n\n if (!validation.isValid) {\n // Add a suffix to make it unique\n let counter = 1\n while (true) {\n const testId = `${generated.identifier}-${counter}`\n const testValidation = validateAgentType(testId, existingAgents)\n if (testValidation.isValid) {\n finalIdentifier = testId\n break\n }\n counter++\n if (counter > 10) {\n finalIdentifier = `custom-agent-${Date.now()}`\n break\n }\n }\n }\n\n setCreateState({ type: 'SET_AGENT_TYPE', value: finalIdentifier })\n setCreateState({ type: 'SET_WHEN_TO_USE', value: generated.whenToUse })\n setCreateState({\n type: 'SET_SYSTEM_PROMPT',\n value: generated.systemPrompt,\n })\n setCreateState({ type: 'SET_WAS_GENERATED', value: true })\n setCreateState({ type: 'SET_IS_GENERATING', value: false })\n setModeState({ mode: 'create-tools', location: createState.location })\n } catch (error) {\n console.error('Generation failed:', error)\n setCreateState({\n type: 'SET_ERROR',\n value:\n 'Failed to generate agent. Please try again or use manual configuration.',\n })\n setCreateState({ type: 'SET_IS_GENERATING', value: false })\n }\n }\n }\n\n return (\n <Box flexDirection=\"column\">\n <Header\n title=\"\u2728 New Agent\"\n subtitle=\"What should it do?\"\n step={2}\n totalSteps={8}\n >\n <Box marginTop={1}>\n {createState.isGenerating ? (\n <Box flexDirection=\"column\">\n <Text color={SEMANTIC_COLORS.dim}>\n {createState.generationPrompt}\n </Text>\n <Box marginTop={1}>\n <LoadingSpinner text=\"Generating agent configuration...\" />\n </Box>\n </Box>\n ) : (\n <MultilineTextInput\n value={createState.generationPrompt}\n onChange={value =>\n setCreateState({ type: 'SET_GENERATION_PROMPT', value })\n }\n placeholder=\"An expert that reviews pull requests for best practices, security issues, and suggests improvements...\"\n onSubmit={handleSubmit}\n error={createState.error}\n rows={3}\n />\n )}\n </Box>\n </Header>\n <InstructionBar />\n </Box>\n )\n}\n\n// Step 4: Manual type input (for manual method)\ninterface TypeStepProps extends StepProps {\n existingAgents: AgentConfig[]\n}\n\nfunction TypeStep({\n createState,\n setCreateState,\n setModeState,\n existingAgents,\n}: TypeStepProps) {\n const handleSubmit = () => {\n const validation = validateAgentType(createState.agentType, existingAgents)\n if (validation.isValid) {\n setModeState({ mode: 'create-prompt', location: createState.location })\n } else {\n setCreateState({ type: 'SET_ERROR', value: validation.errors[0] })\n }\n }\n\n return (\n <Box flexDirection=\"column\">\n <Header\n title=\"Create new agent\"\n subtitle=\"Enter agent identifier\"\n step={3}\n totalSteps={8}\n >\n <Box marginTop={1}>\n <InkTextInput\n value={createState.agentType}\n onChange={value =>\n setCreateState({ type: 'SET_AGENT_TYPE', value })\n }\n placeholder=\"e.g. code-reviewer, tech-lead\"\n onSubmit={handleSubmit}\n />\n {createState.error && (\n <Box marginTop={1}>\n <Text color=\"red\">\u26A0 {createState.error}</Text>\n </Box>\n )}\n </Box>\n </Header>\n <InstructionBar />\n </Box>\n )\n}\n\n// Step 5: Description input\nfunction DescriptionStep({\n createState,\n setCreateState,\n setModeState,\n}: StepProps) {\n const handleSubmit = () => {\n if (createState.whenToUse.trim()) {\n setModeState({ mode: 'create-tools', location: createState.location })\n }\n }\n\n return (\n <Box flexDirection=\"column\">\n <Header\n title=\"Create new agent\"\n subtitle=\"Describe when to use this agent\"\n step={5}\n totalSteps={8}\n >\n <Box marginTop={1}>\n <MultilineTextInput\n value={createState.whenToUse}\n onChange={value =>\n setCreateState({ type: 'SET_WHEN_TO_USE', value })\n }\n placeholder=\"Use this agent when you need to review code for best practices, security issues...\"\n onSubmit={handleSubmit}\n error={createState.error}\n rows={4}\n />\n </Box>\n </Header>\n <InstructionBar />\n </Box>\n )\n}\n\n// Step 6: Tools selection\ninterface ToolsStepProps extends StepProps {\n tools: Tool[]\n}\n\nfunction ToolsStep({\n createState,\n setCreateState,\n setModeState,\n tools,\n}: ToolsStepProps) {\n const [selectedIndex, setSelectedIndex] = useState(0)\n // Default to all tools selected initially\n const initialSelection =\n createState.selectedTools.length > 0\n ? new Set(createState.selectedTools)\n : new Set(tools.map(t => t.name)) // Select all tools by default\n const [selectedTools, setSelectedTools] =\n useState<Set<string>>(initialSelection)\n const [showAdvanced, setShowAdvanced] = useState(false)\n const [selectedCategory, setSelectedCategory] = useState<\n keyof typeof TOOL_CATEGORIES | 'mcp' | 'all'\n >('all')\n\n // Categorize tools\n const categorizedTools = useMemo(() => {\n const categories: Record<string, Tool[]> = {\n read: [],\n edit: [],\n execution: [],\n web: [],\n mcp: [],\n other: [],\n }\n\n tools.forEach(tool => {\n let categorized = false\n\n // Check MCP tools first\n if (tool.name.startsWith('mcp__')) {\n categories.mcp.push(tool)\n categorized = true\n } else {\n // Check built-in categories\n for (const [category, toolNames] of Object.entries(TOOL_CATEGORIES)) {\n if (Array.isArray(toolNames) && toolNames.includes(tool.name)) {\n categories[category as keyof typeof categories]?.push(tool)\n categorized = true\n break\n }\n }\n }\n\n if (!categorized) {\n categories.other.push(tool)\n }\n })\n\n return categories\n }, [tools])\n\n const displayTools = useMemo(() => {\n if (selectedCategory === 'all') {\n return tools\n }\n return categorizedTools[selectedCategory] || []\n }, [selectedCategory, tools, categorizedTools])\n\n const allSelected = selectedTools.size === tools.length && tools.length > 0\n const categoryOptions = [\n { id: 'all', label: `All (${tools.length})` },\n { id: 'read', label: `Read (${categorizedTools.read.length})` },\n { id: 'edit', label: `Edit (${categorizedTools.edit.length})` },\n {\n id: 'execution',\n label: `Execution (${categorizedTools.execution.length})`,\n },\n { id: 'web', label: `Web (${categorizedTools.web.length})` },\n { id: 'mcp', label: `MCP (${categorizedTools.mcp.length})` },\n { id: 'other', label: `Other (${categorizedTools.other.length})` },\n ].filter(cat => cat.id === 'all' || categorizedTools[cat.id]?.length > 0)\n\n // Calculate category selections\n const readSelected = categorizedTools.read.every(tool =>\n selectedTools.has(tool.name),\n )\n const editSelected = categorizedTools.edit.every(tool =>\n selectedTools.has(tool.name),\n )\n const execSelected = categorizedTools.execution.every(tool =>\n selectedTools.has(tool.name),\n )\n const webSelected = categorizedTools.web.every(tool =>\n selectedTools.has(tool.name),\n )\n\n const options: Array<{\n id: string\n label: string\n isContinue?: boolean\n isAll?: boolean\n isTool?: boolean\n isCategory?: boolean\n isAdvancedToggle?: boolean\n isSeparator?: boolean\n }> = [\n { id: 'continue', label: 'Save', isContinue: true },\n {\n id: 'separator1',\n label: '\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 isSeparator: true,\n },\n {\n id: 'all',\n label: `${allSelected ? UI_ICONS.checkboxOn : UI_ICONS.checkboxOff} All tools`,\n isAll: true,\n },\n {\n id: 'read',\n label: `${readSelected ? UI_ICONS.checkboxOn : UI_ICONS.checkboxOff} Read-only tools`,\n isCategory: true,\n },\n {\n id: 'edit',\n label: `${editSelected ? UI_ICONS.checkboxOn : UI_ICONS.checkboxOff} Edit tools`,\n isCategory: true,\n },\n {\n id: 'execution',\n label: `${execSelected ? UI_ICONS.checkboxOn : UI_ICONS.checkboxOff} Execution tools`,\n isCategory: true,\n },\n {\n id: 'separator2',\n label: '\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 isSeparator: true,\n },\n {\n id: 'advanced',\n label: `[ ${showAdvanced ? 'Hide' : 'Show'} advanced options ]`,\n isAdvancedToggle: true,\n },\n ...(showAdvanced\n ? displayTools.map(tool => ({\n id: tool.name,\n label: `${selectedTools.has(tool.name) ? UI_ICONS.checkboxOn : UI_ICONS.checkboxOff} ${tool.name}`,\n isTool: true,\n }))\n : []),\n ]\n\n const handleSelect = () => {\n const option = options[selectedIndex] as any // Type assertion for union type\n if (!option) return\n if (option.isSeparator) return\n\n if (option.isContinue) {\n const result = allSelected ? ['*'] : Array.from(selectedTools)\n setCreateState({ type: 'SET_SELECTED_TOOLS', value: result })\n setModeState({ mode: 'create-model', location: createState.location })\n } else if (option.isAdvancedToggle) {\n setShowAdvanced(!showAdvanced)\n } else if (option.isAll) {\n if (allSelected) {\n setSelectedTools(new Set())\n } else {\n setSelectedTools(new Set(tools.map(t => t.name)))\n }\n } else if (option.isCategory) {\n const categoryName = option.id as keyof typeof categorizedTools\n const categoryTools = categorizedTools[categoryName] || []\n const newSelected = new Set(selectedTools)\n\n const categorySelected = categoryTools.every(tool =>\n selectedTools.has(tool.name),\n )\n if (categorySelected) {\n // Unselect all tools in this category\n categoryTools.forEach(tool => newSelected.delete(tool.name))\n } else {\n // Select all tools in this category\n categoryTools.forEach(tool => newSelected.add(tool.name))\n }\n setSelectedTools(newSelected)\n } else if (option.isTool) {\n const newSelected = new Set(selectedTools)\n if (newSelected.has(option.id)) {\n newSelected.delete(option.id)\n } else {\n newSelected.add(option.id)\n }\n setSelectedTools(newSelected)\n }\n }\n\n useInput((input, key) => {\n if (key.return) {\n handleSelect()\n } else if (key.upArrow) {\n setSelectedIndex(prev => {\n let newIndex = prev > 0 ? prev - 1 : options.length - 1\n // Skip separators when going up\n while (options[newIndex] && (options[newIndex] as any).isSeparator) {\n newIndex = newIndex > 0 ? newIndex - 1 : options.length - 1\n }\n return newIndex\n })\n } else if (key.downArrow) {\n setSelectedIndex(prev => {\n let newIndex = prev < options.length - 1 ? prev + 1 : 0\n // Skip separators when going down\n while (options[newIndex] && (options[newIndex] as any).isSeparator) {\n newIndex = newIndex < options.length - 1 ? newIndex + 1 : 0\n }\n return newIndex\n })\n }\n })\n\n return (\n <Box flexDirection=\"column\">\n <Header title=\"\uD83D\uDD27 Tool Permissions\" subtitle=\"\" step={3} totalSteps={5}>\n <Box flexDirection=\"column\" marginTop={1}>\n {options.map((option, idx) => {\n const isSelected = idx === selectedIndex\n const isContinue = option.isContinue\n const isAdvancedToggle = option.isAdvancedToggle\n const isSeparator = option.isSeparator\n\n return (\n <Box key={option.id}>\n <Text\n color={\n isSelected && !isSeparator\n ? 'cyan'\n : isSeparator\n ? SEMANTIC_COLORS.dim\n : undefined\n }\n bold={isContinue}\n >\n {isSeparator\n ? option.label\n : `${isSelected ? `${UI_ICONS.pointer} ` : ' '}${isContinue || isAdvancedToggle ? `${option.label}` : option.label}`}\n </Text>\n {option.isTool &&\n isSelected &&\n tools.find(t => t.name === option.id)?.description && (\n <Box marginLeft={4}>\n <Text color={SEMANTIC_COLORS.dim}>\n {tools.find(t => t.name === option.id)?.description}\n </Text>\n </Box>\n )}\n </Box>\n )\n })}\n\n <Box marginTop={1}>\n <Text color={SEMANTIC_COLORS.dim}>\n {allSelected\n ? 'All tools selected'\n : `${selectedTools.size} of ${tools.length} tools selected`}\n </Text>\n {selectedCategory !== 'all' && (\n <Text color={SEMANTIC_COLORS.dim}>\n Filtering: {selectedCategory} tools\n </Text>\n )}\n </Box>\n </Box>\n </Header>\n <InstructionBar instructions=\"\u2191\u2193 Navigate \u2022 Enter Toggle \u2022 Esc Back\" />\n </Box>\n )\n}\n\n// Step 6: Model selection (clean design like /models)\nfunction ModelStep({ createState, setCreateState, setModeState }: StepProps) {\n const theme = getTheme()\n const manager = getModelManager()\n const profiles = manager.getActiveModelProfiles()\n\n // Group models by provider\n const groupedModels = profiles.reduce((acc: any, profile: any) => {\n const provider = profile.provider || 'Default'\n if (!acc[provider]) acc[provider] = []\n acc[provider].push(profile)\n return acc\n }, {})\n\n // Flatten with inherit option\n const modelOptions = [\n {\n id: null,\n name: '\u25C8 Inherit from parent',\n provider: 'System',\n modelName: 'default',\n },\n ...Object.entries(groupedModels).flatMap(([provider, models]: any) =>\n models.map((p: any) => ({\n id: p.modelName,\n name: p.name,\n provider: provider,\n modelName: p.modelName,\n })),\n ),\n ]\n\n const [selectedIndex, setSelectedIndex] = useState(() => {\n const idx = modelOptions.findIndex(m => m.id === createState.selectedModel)\n return idx >= 0 ? idx : 0\n })\n\n const handleSelect = (modelId: string | null) => {\n setCreateState({ type: 'SET_SELECTED_MODEL', value: modelId })\n setModeState({ mode: 'create-color', location: createState.location })\n }\n\n useInput((input, key) => {\n if (key.return) {\n handleSelect(modelOptions[selectedIndex].id)\n } else if (key.upArrow) {\n setSelectedIndex(prev => (prev > 0 ? prev - 1 : modelOptions.length - 1))\n } else if (key.downArrow) {\n setSelectedIndex(prev => (prev < modelOptions.length - 1 ? prev + 1 : 0))\n }\n })\n\n return (\n <Box flexDirection=\"column\">\n <Header title=\"\uD83E\uDD16 Select Model\" subtitle=\"\" step={4} totalSteps={5}>\n <Box marginTop={1} flexDirection=\"column\">\n {modelOptions.map((model, index) => {\n const isSelected = index === selectedIndex\n const isInherit = model.id === null\n\n return (\n <Box key={model.id || 'inherit'} marginBottom={0}>\n <Box flexDirection=\"row\" gap={1}>\n <Text color={isSelected ? theme.primary : undefined}>\n {isSelected ? UI_ICONS.pointer : ' '}\n </Text>\n <Box flexDirection=\"column\" flexGrow={1}>\n <Box flexDirection=\"row\" gap={1}>\n <Text\n bold={isInherit}\n color={isSelected ? theme.primary : undefined}\n >\n {model.name}\n </Text>\n {!isInherit && (\n <Text color={SEMANTIC_COLORS.dim}>\n {model.provider} \u2022 {model.modelName}\n </Text>\n )}\n </Box>\n </Box>\n </Box>\n </Box>\n )\n })}\n </Box>\n </Header>\n <InstructionBar instructions=\"\u2191\u2193 Navigate \u2022 Enter Select\" />\n </Box>\n )\n}\n\n// Step 7: Color selection (using hex colors for display)\nfunction ColorStep({ createState, setCreateState, setModeState }: StepProps) {\n const theme = getTheme()\n const [selectedIndex, setSelectedIndex] = useState(0)\n\n // Color options without red/green due to display issues\n const colors = [\n { label: 'Default', value: null, displayColor: null },\n { label: 'Yellow', value: 'yellow', displayColor: 'yellow' },\n { label: 'Blue', value: 'blue', displayColor: 'blue' },\n { label: 'Magenta', value: 'magenta', displayColor: 'magenta' },\n { label: 'Cyan', value: 'cyan', displayColor: 'cyan' },\n { label: 'Gray', value: 'gray', displayColor: 'gray' },\n { label: 'White', value: 'white', displayColor: 'white' },\n ]\n\n const handleSelect = (value: string | null) => {\n setCreateState({ type: 'SET_SELECTED_COLOR', value: value })\n setModeState({ mode: 'create-confirm', location: createState.location })\n }\n\n useInput((input, key) => {\n if (key.return) {\n handleSelect(colors[selectedIndex].value)\n } else if (key.upArrow) {\n setSelectedIndex(prev => (prev > 0 ? prev - 1 : colors.length - 1))\n } else if (key.downArrow) {\n setSelectedIndex(prev => (prev < colors.length - 1 ? prev + 1 : 0))\n }\n })\n\n return (\n <Box flexDirection=\"column\">\n <Header title=\"\uD83C\uDFA8 Color Theme\" subtitle=\"\" step={5} totalSteps={5}>\n <Box marginTop={1} flexDirection=\"column\">\n <Box marginBottom={1}>\n <Text color={SEMANTIC_COLORS.dim}>\n Choose how your agent appears in the list:\n </Text>\n </Box>\n {colors.map((color, idx) => {\n const isSelected = idx === selectedIndex\n return (\n <Box key={idx} flexDirection=\"row\">\n <Text color={isSelected ? theme.primary : undefined}>\n {isSelected ? '\u276F ' : ' '}\n </Text>\n <Box minWidth={12}>\n <Text\n bold={isSelected}\n color={color.displayColor || undefined}\n >\n {color.label}\n </Text>\n </Box>\n </Box>\n )\n })}\n <Box marginTop={1} paddingLeft={2}>\n <Text>Preview: </Text>\n <Text bold color={colors[selectedIndex].displayColor || undefined}>\n {createState.agentType || 'your-agent'}\n </Text>\n </Box>\n </Box>\n </Header>\n <InstructionBar instructions=\"\u2191\u2193 Navigate \u2022 Enter Select\" />\n </Box>\n )\n}\n\n// Step 8: System prompt\nfunction PromptStep({ createState, setCreateState, setModeState }: StepProps) {\n const handleSubmit = () => {\n if (createState.systemPrompt.trim()) {\n setModeState({\n mode: 'create-description',\n location: createState.location,\n })\n }\n }\n\n return (\n <Box flexDirection=\"column\">\n <Header\n title=\"Create new agent\"\n subtitle=\"System prompt\"\n step={4}\n totalSteps={8}\n >\n <Box marginTop={1}>\n <MultilineTextInput\n value={createState.systemPrompt}\n onChange={value =>\n setCreateState({ type: 'SET_SYSTEM_PROMPT', value })\n }\n placeholder=\"You are a helpful assistant that specializes in...\"\n onSubmit={handleSubmit}\n error={createState.error}\n rows={5}\n />\n </Box>\n </Header>\n <InstructionBar />\n </Box>\n )\n}\n\n// Step 9: Confirmation\ninterface ConfirmStepProps extends StepProps {\n tools: Tool[]\n onAgentCreated: (message: string) => void\n}\n\nfunction ConfirmStep({\n createState,\n setCreateState,\n setModeState,\n tools,\n onAgentCreated,\n}: ConfirmStepProps) {\n const [isCreating, setIsCreating] = useState(false)\n const theme = getTheme()\n\n const handleConfirm = async () => {\n setIsCreating(true)\n try {\n await saveAgent(\n createState.location!,\n createState.agentType,\n createState.whenToUse,\n createState.selectedTools,\n createState.systemPrompt,\n createState.selectedModel,\n createState.selectedColor || undefined,\n )\n onAgentCreated(`Created agent: ${createState.agentType}`)\n } catch (error) {\n setCreateState({ type: 'SET_ERROR', value: (error as Error).message })\n setIsCreating(false)\n }\n }\n\n const validation = validateAgentConfig(createState)\n const toolNames = createState.selectedTools.includes('*')\n ? 'All tools'\n : createState.selectedTools.length > 0\n ? createState.selectedTools.join(', ')\n : 'No tools'\n\n const handleEditInEditor = async () => {\n const filePath =\n createState.location === 'project'\n ? path.join(\n process.cwd(),\n '.minto',\n 'agents',\n `${createState.agentType}.md`,\n )\n : path.join(\n os.homedir(),\n '.minto',\n 'agents',\n `${createState.agentType}.md`,\n )\n\n try {\n // First, save the agent file\n await saveAgent(\n createState.location!,\n createState.agentType,\n createState.whenToUse,\n createState.selectedTools,\n createState.systemPrompt,\n createState.selectedModel,\n createState.selectedColor || undefined,\n )\n\n // Then open it in editor\n const command =\n process.platform === 'win32'\n ? 'start'\n : process.platform === 'darwin'\n ? 'open'\n : 'xdg-open'\n await execAsync(`${command} \"${filePath}\"`)\n onAgentCreated(`Created agent: ${createState.agentType}`)\n } catch (error) {\n setCreateState({ type: 'SET_ERROR', value: (error as Error).message })\n }\n }\n\n useInput((input, key) => {\n if (isCreating) return\n\n if ((key.return || input === 's') && !isCreating) {\n handleConfirm()\n } else if (input === 'e') {\n handleEditInEditor()\n } else if (key.escape) {\n setModeState({ mode: 'create-color', location: createState.location! })\n }\n })\n\n return (\n <Box flexDirection=\"column\">\n <Header title=\"\u2705 Review & Create\" subtitle=\"\">\n <Box flexDirection=\"column\" marginTop={1}>\n <Box marginBottom={1}>\n <Text bold color={theme.primary}>\n \uD83D\uDCCB Configuration\n </Text>\n </Box>\n\n <Box flexDirection=\"column\" gap={0}>\n <Text>\n \u2022 <Text bold>Agent ID:</Text> {createState.agentType}\n </Text>\n <Text>\n \u2022 <Text bold>Location:</Text>{' '}\n {createState.location === 'project' ? 'Project' : 'Personal'}\n </Text>\n <Text>\n \u2022 <Text bold>Tools:</Text>{' '}\n {toolNames.length > 50\n ? toolNames.slice(0, 50) + '...'\n : toolNames}\n </Text>\n <Text>\n \u2022 <Text bold>Model:</Text>{' '}\n {getDisplayModelName(createState.selectedModel)}\n </Text>\n {createState.selectedColor && (\n <Text>\n \u2022 <Text bold>Color:</Text>{' '}\n <Text color={createState.selectedColor}>\n {createState.selectedColor}\n </Text>\n </Text>\n )}\n </Box>\n\n <Box marginTop={1} marginBottom={1}>\n <Text bold color={theme.primary}>\n \uD83D\uDCDD Purpose\n </Text>\n </Box>\n <Box paddingLeft={1}>\n <Text>{createState.whenToUse}</Text>\n </Box>\n\n {validation.warnings.length > 0 && (\n <Box marginTop={1}>\n <Text>\n <Text bold>Warnings:</Text>\n </Text>\n {validation.warnings.map((warning, idx) => (\n <Fragment key={idx}>\n <Text color={theme.warning}> \u2022 {warning}</Text>\n </Fragment>\n ))}\n </Box>\n )}\n\n {createState.error && (\n <Box marginTop={1}>\n <Text color={theme.error}>\u2717 {createState.error}</Text>\n </Box>\n )}\n\n <Box marginTop={2}>\n {isCreating ? <LoadingSpinner text=\"Creating agent...\" /> : null}\n </Box>\n </Box>\n </Header>\n <InstructionBar instructions=\"Enter Save \u2022 E Edit \u2022 Esc Back\" />\n </Box>\n )\n}\n\n// Step 1: Location selection\ninterface LocationSelectProps {\n createState: CreateState\n setCreateState: React.Dispatch<any>\n setModeState: (state: ModeState) => void\n}\n\nfunction LocationSelect({\n createState,\n setCreateState,\n setModeState,\n}: LocationSelectProps) {\n const theme = getTheme()\n const [selectedIndex, setSelectedIndex] = useState(0)\n\n const options = [\n { label: '\uD83D\uDCC1 Project', value: 'project', desc: '.minto/agents/' },\n { label: '\uD83C\uDFE0 Personal', value: 'user', desc: '~/.minto/agents/' },\n ]\n\n const handleChange = (value: string) => {\n setCreateState({ type: 'SET_LOCATION', value: value as AgentLocation })\n setCreateState({ type: 'SET_METHOD', value: 'generate' }) // Always use generate method\n setModeState({ mode: 'create-generate', location: value as AgentLocation })\n }\n\n const handleCancel = () => {\n setModeState({ mode: 'list-agents', location: 'all' as AgentLocation })\n }\n\n useInput((input, key) => {\n if (key.escape) {\n handleCancel()\n } else if (key.return) {\n handleChange(options[selectedIndex].value)\n } else if (key.upArrow) {\n setSelectedIndex(prev => (prev > 0 ? prev - 1 : options.length - 1))\n } else if (key.downArrow) {\n setSelectedIndex(prev => (prev < options.length - 1 ? prev + 1 : 0))\n }\n })\n\n return (\n <Box flexDirection=\"column\">\n <Header title=\"\uD83D\uDCE6 Save Location\" subtitle=\"\" step={1} totalSteps={5}>\n <Box marginTop={1} flexDirection=\"column\">\n {options.map((opt, idx) => (\n <Box key={opt.value} flexDirection=\"column\" marginBottom={1}>\n <Text color={idx === selectedIndex ? theme.primary : undefined}>\n {idx === selectedIndex ? '\u276F ' : ' '}\n {opt.label}\n </Text>\n <Box marginLeft={3}>\n <Text color={SEMANTIC_COLORS.dim}>{opt.desc}</Text>\n </Box>\n </Box>\n ))}\n </Box>\n </Header>\n <InstructionBar instructions=\"\u2191\u2193 Navigate \u2022 Enter Select\" />\n </Box>\n )\n}\n\n// Step 2: Method selection\ninterface MethodSelectProps {\n createState: CreateState\n setCreateState: React.Dispatch<any>\n setModeState: (state: ModeState) => void\n}\n\nfunction MethodSelect({\n createState,\n setCreateState,\n setModeState,\n}: MethodSelectProps) {\n const [selectedIndex, setSelectedIndex] = useState(0)\n\n const options = [\n { label: 'Generate with Claude (recommended)', value: 'generate' },\n { label: 'Manual configuration', value: 'manual' },\n ]\n\n const handleChange = (value: string) => {\n setCreateState({\n type: 'SET_METHOD',\n value: value as 'generate' | 'manual',\n })\n if (value === 'generate') {\n setCreateState({ type: 'SET_IS_AI_GENERATED', value: true })\n setModeState({ mode: 'create-generate', location: createState.location })\n } else {\n setCreateState({ type: 'SET_IS_AI_GENERATED', value: false })\n setModeState({ mode: 'create-type', location: createState.location })\n }\n }\n\n const handleCancel = () => {\n setModeState({ mode: 'create-location' })\n }\n\n useInput((input, key) => {\n if (key.escape) {\n handleCancel()\n } else if (key.return) {\n handleChange(options[selectedIndex].value)\n } else if (key.upArrow) {\n setSelectedIndex(prev => (prev > 0 ? prev - 1 : options.length - 1))\n } else if (key.downArrow) {\n setSelectedIndex(prev => (prev < options.length - 1 ? prev + 1 : 0))\n }\n })\n\n return (\n <Box flexDirection=\"column\">\n <Header\n title=\"Create new agent\"\n subtitle=\"Creation method\"\n step={2}\n totalSteps={9}\n >\n <Box marginTop={1}>\n <SelectList\n options={options}\n selectedIndex={selectedIndex}\n onChange={handleChange}\n onCancel={handleCancel}\n />\n </Box>\n </Header>\n <InstructionBar />\n </Box>\n )\n}\n\n// (AgentMenu + EditMenu removed \u2014 replaced by TabbedListView phases in AgentsUI)\n\n// Edit tools step\ninterface EditToolsStepProps {\n agent: AgentConfig\n tools: Tool[]\n setModeState: (state: ModeState) => void\n onAgentUpdated: (message: string, updated: AgentConfig) => void\n}\n\nfunction EditToolsStep({\n agent,\n tools,\n setModeState,\n onAgentUpdated,\n}: EditToolsStepProps) {\n const [selectedIndex, setSelectedIndex] = useState(0)\n\n // Initialize selected tools based on agent.tools\n const initialTools = Array.isArray(agent.tools)\n ? agent.tools\n : agent.tools === '*'\n ? tools.map(t => t.name)\n : []\n const [selectedTools, setSelectedTools] = useState<Set<string>>(\n new Set(initialTools),\n )\n const [showAdvanced, setShowAdvanced] = useState(false)\n const [isUpdating, setIsUpdating] = useState(false)\n const [error, setError] = useState<string | null>(null)\n\n // Categorize tools\n const categorizedTools = useMemo(() => {\n const categories: Record<string, Tool[]> = {\n read: [],\n edit: [],\n execution: [],\n web: [],\n other: [],\n }\n\n tools.forEach(tool => {\n let categorized = false\n\n // Check built-in categories\n for (const [category, toolNames] of Object.entries(TOOL_CATEGORIES)) {\n if (Array.isArray(toolNames) && toolNames.includes(tool.name)) {\n categories[category as keyof typeof categories]?.push(tool)\n categorized = true\n break\n }\n }\n\n if (!categorized) {\n categories.other.push(tool)\n }\n })\n\n return categories\n }, [tools])\n\n const allSelected = selectedTools.size === tools.length && tools.length > 0\n const readSelected =\n categorizedTools.read.every(tool => selectedTools.has(tool.name)) &&\n categorizedTools.read.length > 0\n const editSelected =\n categorizedTools.edit.every(tool => selectedTools.has(tool.name)) &&\n categorizedTools.edit.length > 0\n const execSelected =\n categorizedTools.execution.every(tool => selectedTools.has(tool.name)) &&\n categorizedTools.execution.length > 0\n\n const options = [\n { id: 'continue', label: 'Save', isContinue: true },\n {\n id: 'separator1',\n label: '\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 isSeparator: true,\n },\n {\n id: 'all',\n label: `${allSelected ? UI_ICONS.checkboxOn : UI_ICONS.checkboxOff} All tools`,\n isAll: true,\n },\n {\n id: 'read',\n label: `${readSelected ? UI_ICONS.checkboxOn : UI_ICONS.checkboxOff} Read-only tools`,\n isCategory: true,\n },\n {\n id: 'edit',\n label: `${editSelected ? UI_ICONS.checkboxOn : UI_ICONS.checkboxOff} Edit tools`,\n isCategory: true,\n },\n {\n id: 'execution',\n label: `${execSelected ? UI_ICONS.checkboxOn : UI_ICONS.checkboxOff} Execution tools`,\n isCategory: true,\n },\n {\n id: 'separator2',\n label: '\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 isSeparator: true,\n },\n {\n id: 'advanced',\n label: `[ ${showAdvanced ? 'Hide' : 'Show'} advanced options ]`,\n isAdvancedToggle: true,\n },\n ...(showAdvanced\n ? tools.map(tool => ({\n id: tool.name,\n label: `${selectedTools.has(tool.name) ? UI_ICONS.checkboxOn : UI_ICONS.checkboxOff} ${tool.name}`,\n isTool: true,\n }))\n : []),\n ]\n\n const handleSave = async () => {\n setIsUpdating(true)\n try {\n // Type-safe tools conversion for updateAgent\n const toolsArray: string[] | '*' = allSelected\n ? '*'\n : Array.from(selectedTools)\n await updateAgent(\n agent,\n agent.whenToUse,\n toolsArray,\n agent.systemPrompt,\n agent.color,\n (agent as any).model,\n )\n\n // Clear cache and reload fresh agent data from file system\n clearAgentCache()\n const freshAgents = await getActiveAgents()\n const updatedAgent = freshAgents.find(\n a => a.agentType === agent.agentType,\n )\n\n if (updatedAgent) {\n onAgentUpdated(\n `Updated tools for agent: ${agent.agentType}`,\n updatedAgent,\n )\n setModeState({ mode: 'edit-agent', selectedAgent: updatedAgent })\n } else {\n console.error('Failed to find updated agent after save')\n // Fallback to manual update\n const fallbackAgent: AgentConfig = {\n ...agent,\n tools:\n toolsArray.length === 1 && toolsArray[0] === '*' ? '*' : toolsArray,\n }\n onAgentUpdated(\n `Updated tools for agent: ${agent.agentType}`,\n fallbackAgent,\n )\n setModeState({ mode: 'edit-agent', selectedAgent: fallbackAgent })\n }\n } catch (err) {\n console.error('Failed to update agent tools:', err)\n setError(\n `Failed to update tools: ${err instanceof Error ? err.message : String(err)}`,\n )\n } finally {\n setIsUpdating(false)\n }\n }\n\n const handleSelect = () => {\n setError(null) // Clear previous error on new action\n const option = options[selectedIndex] as any // Type assertion for union type\n if (!option) return\n if (option.isSeparator) return\n\n if (option.isContinue) {\n handleSave()\n } else if (option.isAdvancedToggle) {\n setShowAdvanced(!showAdvanced)\n } else if (option.isAll) {\n if (allSelected) {\n setSelectedTools(new Set())\n } else {\n setSelectedTools(new Set(tools.map(t => t.name)))\n }\n } else if (option.isCategory) {\n const categoryName = option.id as keyof typeof categorizedTools\n const categoryTools = categorizedTools[categoryName] || []\n const newSelected = new Set(selectedTools)\n\n const categorySelected = categoryTools.every(tool =>\n selectedTools.has(tool.name),\n )\n if (categorySelected) {\n categoryTools.forEach(tool => newSelected.delete(tool.name))\n } else {\n categoryTools.forEach(tool => newSelected.add(tool.name))\n }\n setSelectedTools(newSelected)\n } else if (option.isTool) {\n const newSelected = new Set(selectedTools)\n if (newSelected.has(option.id)) {\n newSelected.delete(option.id)\n } else {\n newSelected.add(option.id)\n }\n setSelectedTools(newSelected)\n }\n }\n\n useInput((input, key) => {\n if (key.escape) {\n setModeState({ mode: 'edit-agent', selectedAgent: agent })\n } else if (key.return && !isUpdating) {\n handleSelect()\n } else if (key.upArrow) {\n setSelectedIndex(prev => {\n let newIndex = prev > 0 ? prev - 1 : options.length - 1\n // Skip separators when going up\n while (options[newIndex] && (options[newIndex] as any).isSeparator) {\n newIndex = newIndex > 0 ? newIndex - 1 : options.length - 1\n }\n return newIndex\n })\n } else if (key.downArrow) {\n setSelectedIndex(prev => {\n let newIndex = prev < options.length - 1 ? prev + 1 : 0\n // Skip separators when going down\n while (options[newIndex] && (options[newIndex] as any).isSeparator) {\n newIndex = newIndex < options.length - 1 ? newIndex + 1 : 0\n }\n return newIndex\n })\n }\n })\n\n if (isUpdating) {\n return (\n <Box flexDirection=\"column\">\n <Header title={`Edit agent: ${agent.agentType}`}>\n <Box marginTop={1}>\n <LoadingSpinner text=\"Updating agent tools...\" />\n </Box>\n </Header>\n <InstructionBar />\n </Box>\n )\n }\n\n return (\n <Box flexDirection=\"column\">\n <Header title={`Edit agent: ${agent.agentType}`}>\n {error && (\n <Box marginTop={1}>\n <Text color=\"red\">\u2717 {error}</Text>\n </Box>\n )}\n <Box flexDirection=\"column\" marginTop={1}>\n {options.map((option, idx) => {\n const isSelected = idx === selectedIndex\n const isContinue = 'isContinue' in option && option.isContinue\n const isAdvancedToggle = (option as any).isAdvancedToggle\n const isSeparator = (option as any).isSeparator\n\n return (\n <Box key={option.id}>\n <Text\n color={\n isSelected && !isSeparator\n ? 'cyan'\n : isSeparator\n ? SEMANTIC_COLORS.dim\n : undefined\n }\n bold={isContinue}\n >\n {isSeparator\n ? option.label\n : `${isSelected ? `${UI_ICONS.pointer} ` : ' '}${isContinue || isAdvancedToggle ? option.label : option.label}`}\n </Text>\n {(option as any).isTool &&\n isSelected &&\n tools.find(t => t.name === option.id)?.description && (\n <Box marginLeft={4}>\n <Text color={SEMANTIC_COLORS.dim}>\n {tools.find(t => t.name === option.id)?.description}\n </Text>\n </Box>\n )}\n </Box>\n )\n })}\n\n <Box marginTop={1}>\n <Text color={SEMANTIC_COLORS.dim}>\n {allSelected\n ? 'All tools selected'\n : `${selectedTools.size} of ${tools.length} tools selected`}\n </Text>\n </Box>\n </Box>\n </Header>\n <InstructionBar instructions=\"Enter toggle selection \u00B7 \u2191\u2193 navigate \u00B7 Esc back\" />\n </Box>\n )\n}\n\n// Edit model step\ninterface EditModelStepProps {\n agent: AgentConfig\n setModeState: (state: ModeState) => void\n onAgentUpdated: (message: string, updated: AgentConfig) => void\n}\n\nfunction EditModelStep({\n agent,\n setModeState,\n onAgentUpdated,\n}: EditModelStepProps) {\n const manager = getModelManager()\n const profiles = manager.getActiveModelProfiles()\n const currentModel = (agent as any).model || null\n\n // Build model options array\n const modelOptions = [\n {\n id: null,\n name: 'Inherit from parent',\n description: 'Use the model from task configuration',\n },\n ...profiles.map((p: any) => ({\n id: p.modelName,\n name: p.name,\n description: `${p.provider || 'provider'} \u00B7 ${p.modelName}`,\n })),\n ]\n\n // Find the index of current model\n const defaultIndex = modelOptions.findIndex(m => m.id === currentModel)\n const [selectedIndex, setSelectedIndex] = useState(\n defaultIndex >= 0 ? defaultIndex : 0,\n )\n const [isUpdating, setIsUpdating] = useState(false)\n\n const handleSave = async (modelId: string | null) => {\n setIsUpdating(true)\n try {\n const modelValue = modelId === null ? undefined : modelId\n await updateAgent(\n agent,\n agent.whenToUse,\n agent.tools,\n agent.systemPrompt,\n agent.color,\n modelValue,\n )\n\n // Clear cache and reload fresh agent data from file system\n clearAgentCache()\n const freshAgents = await getActiveAgents()\n const updatedAgent = freshAgents.find(\n a => a.agentType === agent.agentType,\n )\n\n if (updatedAgent) {\n onAgentUpdated(\n `Updated model for agent: ${agent.agentType}`,\n updatedAgent,\n )\n setModeState({ mode: 'edit-agent', selectedAgent: updatedAgent })\n } else {\n console.error('Failed to find updated agent after save')\n // Fallback to manual update\n const fallbackAgent: AgentConfig = { ...agent }\n if (modelValue) {\n ;(fallbackAgent as any).model = modelValue\n } else {\n delete (fallbackAgent as any).model\n }\n onAgentUpdated(\n `Updated model for agent: ${agent.agentType}`,\n fallbackAgent,\n )\n setModeState({ mode: 'edit-agent', selectedAgent: fallbackAgent })\n }\n } catch (error) {\n console.error('Failed to update agent model:', error)\n } finally {\n setIsUpdating(false)\n }\n }\n\n useInput((input, key) => {\n if (key.escape) {\n setModeState({ mode: 'edit-agent', selectedAgent: agent })\n } else if (key.return && !isUpdating) {\n handleSave(modelOptions[selectedIndex].id)\n } else if (key.upArrow) {\n setSelectedIndex(prev => (prev > 0 ? prev - 1 : modelOptions.length - 1))\n } else if (key.downArrow) {\n setSelectedIndex(prev => (prev < modelOptions.length - 1 ? prev + 1 : 0))\n }\n })\n\n if (isUpdating) {\n return (\n <Box flexDirection=\"column\">\n <Header title={`Edit agent: ${agent.agentType}`}>\n <Box marginTop={1}>\n <LoadingSpinner text=\"Updating agent model...\" />\n </Box>\n </Header>\n <InstructionBar />\n </Box>\n )\n }\n\n return (\n <Box flexDirection=\"column\">\n <Header\n title={`Edit agent: ${agent.agentType}`}\n subtitle=\"Model determines the agent's reasoning capabilities and speed.\"\n >\n <Box marginTop={2}>\n <SelectList\n options={modelOptions.map((m, i) => ({\n label: `${i + 1}. ${m.name}${m.description ? `\\n${m.description}` : ''}`,\n value: m.id,\n }))}\n selectedIndex={selectedIndex}\n onChange={val => handleSave(val)}\n numbered={false}\n />\n </Box>\n </Header>\n <InstructionBar instructions=\"\u2191\u2193 navigate \u00B7 Enter select \u00B7 Esc back\" />\n </Box>\n )\n}\n\n// Edit color step\ninterface EditColorStepProps {\n agent: AgentConfig\n setModeState: (state: ModeState) => void\n onAgentUpdated: (message: string, updated: AgentConfig) => void\n}\n\nfunction EditColorStep({\n agent,\n setModeState,\n onAgentUpdated,\n}: EditColorStepProps) {\n const currentColor = agent.color || null\n\n // Define color options (removed red/green due to display issues)\n const colors = [\n { label: 'Automatic color', value: null },\n { label: 'Yellow', value: 'yellow' },\n { label: 'Blue', value: 'blue' },\n { label: 'Magenta', value: 'magenta' },\n { label: 'Cyan', value: 'cyan' },\n { label: 'Gray', value: 'gray' },\n { label: 'White', value: 'white' },\n ]\n\n // Find current color index\n const defaultIndex = colors.findIndex(color => color.value === currentColor)\n const [selectedIndex, setSelectedIndex] = useState(\n defaultIndex >= 0 ? defaultIndex : 0,\n )\n const [isUpdating, setIsUpdating] = useState(false)\n const [error, setError] = useState<string | null>(null)\n\n const handleSave = async (color: string | null) => {\n setError(null)\n setIsUpdating(true)\n try {\n const colorValue = color === null ? undefined : color\n await updateAgent(\n agent,\n agent.whenToUse,\n agent.tools,\n agent.systemPrompt,\n colorValue,\n (agent as any).model,\n )\n\n // Clear cache and reload fresh agent data from file system\n clearAgentCache()\n const freshAgents = await getActiveAgents()\n const updatedAgent = freshAgents.find(\n a => a.agentType === agent.agentType,\n )\n\n if (updatedAgent) {\n onAgentUpdated(\n `Updated color for agent: ${agent.agentType}`,\n updatedAgent,\n )\n setModeState({ mode: 'edit-agent', selectedAgent: updatedAgent })\n } else {\n console.error('Failed to find updated agent after save')\n // Fallback to manual update\n const fallbackAgent: AgentConfig = {\n ...agent,\n ...(colorValue ? { color: colorValue } : { color: undefined }),\n }\n onAgentUpdated(\n `Updated color for agent: ${agent.agentType}`,\n fallbackAgent,\n )\n setModeState({ mode: 'edit-agent', selectedAgent: fallbackAgent })\n }\n } catch (err) {\n console.error('Failed to update agent color:', err)\n setError(\n `Failed to update color: ${err instanceof Error ? err.message : String(err)}`,\n )\n } finally {\n setIsUpdating(false)\n }\n }\n\n useInput((input, key) => {\n if (key.escape) {\n setModeState({ mode: 'edit-agent', selectedAgent: agent })\n } else if (key.return && !isUpdating) {\n setError(null)\n handleSave(colors[selectedIndex].value)\n } else if (key.upArrow) {\n setSelectedIndex(prev => (prev > 0 ? prev - 1 : colors.length - 1))\n } else if (key.downArrow) {\n setSelectedIndex(prev => (prev < colors.length - 1 ? prev + 1 : 0))\n }\n })\n\n if (isUpdating) {\n return (\n <Box flexDirection=\"column\">\n <Header title={`Edit agent: ${agent.agentType}`}>\n <Box marginTop={1}>\n <LoadingSpinner text=\"Updating agent color...\" />\n </Box>\n </Header>\n <InstructionBar />\n </Box>\n )\n }\n\n const selectedColor = colors[selectedIndex]\n const previewColor = selectedColor.value || undefined\n\n return (\n <Box flexDirection=\"column\">\n <Header\n title={`Edit agent: ${agent.agentType}`}\n subtitle=\"Choose background color\"\n >\n {error && (\n <Box marginTop={1}>\n <Text color=\"red\">\u2717 {error}</Text>\n </Box>\n )}\n <Box flexDirection=\"column\" marginTop={1}>\n {colors.map((color, index) => {\n const isSelected = index === selectedIndex\n const isCurrent = color.value === currentColor\n\n return (\n <Box key={color.value || 'automatic'}>\n <Text color={isSelected ? 'cyan' : undefined}>\n {isSelected ? '\u276F ' : ' '}\n </Text>\n <Text color={color.value || undefined}>\u25CF</Text>\n <Text>\n {' '}\n {color.label}\n {isCurrent && <Text color=\"green\"> \u2714</Text>}\n </Text>\n </Box>\n )\n })}\n\n <Box marginTop={2}>\n <Text>Preview: </Text>\n <Text color={previewColor}>{agent.agentType}</Text>\n </Box>\n </Box>\n </Header>\n <InstructionBar instructions=\"\u2191\u2193 navigate \u00B7 Enter select \u00B7 Esc back\" />\n </Box>\n )\n}\n\n// Edit agent component\ninterface EditAgentProps {\n agent: AgentConfig\n tools: Tool[]\n setModeState: (state: ModeState) => void\n onAgentUpdated: (message: string) => void\n}\n\nfunction EditAgent({\n agent,\n tools,\n setModeState,\n onAgentUpdated,\n}: EditAgentProps) {\n const theme = getTheme()\n const [currentStep, setCurrentStep] = useState<\n 'description' | 'tools' | 'prompt' | 'confirm'\n >('description')\n const [isUpdating, setIsUpdating] = useState(false)\n\n // \u7F16\u8F91\u72B6\u6001\n const [editedDescription, setEditedDescription] = useState(agent.whenToUse)\n const [editedTools, setEditedTools] = useState<string[]>(\n Array.isArray(agent.tools) ? agent.tools : agent.tools === '*' ? ['*'] : [],\n )\n const [editedPrompt, setEditedPrompt] = useState(agent.systemPrompt)\n const [error, setError] = useState<string | null>(null)\n\n const handleSave = async () => {\n setIsUpdating(true)\n try {\n await updateAgent(\n agent,\n editedDescription,\n editedTools,\n editedPrompt,\n agent.color,\n )\n clearAgentCache()\n onAgentUpdated(`Updated agent: ${agent.agentType}`)\n } catch (error) {\n setError((error as Error).message)\n setIsUpdating(false)\n }\n }\n\n const renderStepContent = () => {\n switch (currentStep) {\n case 'description':\n return (\n <Box flexDirection=\"column\">\n <Text bold>Edit Description:</Text>\n <Box marginTop={1}>\n <MultilineTextInput\n value={editedDescription}\n onChange={setEditedDescription}\n placeholder=\"Describe when to use this agent...\"\n onSubmit={() => setCurrentStep('tools')}\n error={error}\n rows={4}\n />\n </Box>\n </Box>\n )\n\n case 'tools':\n return (\n <Box flexDirection=\"column\">\n <Text bold>Edit Tools:</Text>\n <Box marginTop={1}>\n <ToolsStep\n createState={\n {\n selectedTools: editedTools,\n } as CreateState\n }\n setCreateState={action => {\n if (action.type === 'SET_SELECTED_TOOLS') {\n setEditedTools(action.value)\n setCurrentStep('prompt')\n }\n }}\n setModeState={() => {}}\n tools={tools}\n />\n </Box>\n </Box>\n )\n\n case 'prompt':\n return (\n <Box flexDirection=\"column\">\n <Text bold>Edit System Prompt:</Text>\n <Box marginTop={1}>\n <MultilineTextInput\n value={editedPrompt}\n onChange={setEditedPrompt}\n placeholder=\"System prompt for the agent...\"\n onSubmit={() => setCurrentStep('confirm')}\n error={error}\n rows={5}\n />\n </Box>\n </Box>\n )\n\n case 'confirm':\n const validation = validateAgentConfig({\n agentType: agent.agentType,\n whenToUse: editedDescription,\n systemPrompt: editedPrompt,\n selectedTools: editedTools,\n })\n\n return (\n <Box flexDirection=\"column\">\n <Text bold>Confirm Changes:</Text>\n <Box flexDirection=\"column\" marginTop={1}>\n <Text>\n <Text bold>Agent:</Text> {agent.agentType}\n </Text>\n <Text>\n <Text bold>Description:</Text> {editedDescription}\n </Text>\n <Text>\n <Text bold>Tools:</Text>{' '}\n {editedTools.includes('*')\n ? 'All tools'\n : editedTools.join(', ')}\n </Text>\n <Text>\n <Text bold>System Prompt:</Text> {editedPrompt.slice(0, 100)}\n {editedPrompt.length > 100 ? '...' : ''}\n </Text>\n\n {validation.warnings.length > 0 && (\n <Box marginTop={1}>\n {validation.warnings.map((warning, idx) => (\n <Fragment key={idx}>\n <Text color={theme.warning}>\u26A0 {warning}</Text>\n </Fragment>\n ))}\n </Box>\n )}\n\n {error && (\n <Box marginTop={1}>\n <Text color={theme.error}>\u2717 {error}</Text>\n </Box>\n )}\n\n <Box marginTop={2}>\n {isUpdating ? (\n <LoadingSpinner text=\"Updating agent...\" />\n ) : (\n <Text>Press Enter to save changes</Text>\n )}\n </Box>\n </Box>\n </Box>\n )\n }\n }\n\n useInput((input, key) => {\n if (key.escape) {\n if (currentStep === 'description') {\n setModeState({ mode: 'agent-menu', selectedAgent: agent })\n } else {\n // \u8FD4\u56DE\u4E0A\u4E00\u6B65\n const steps: Array<typeof currentStep> = [\n 'description',\n 'tools',\n 'prompt',\n 'confirm',\n ]\n const currentIndex = steps.indexOf(currentStep)\n if (currentIndex > 0) {\n setCurrentStep(steps[currentIndex - 1])\n }\n }\n return\n }\n\n if (key.return && currentStep === 'confirm' && !isUpdating) {\n handleSave()\n }\n })\n\n return (\n <Box flexDirection=\"column\">\n <Header\n title={`Edit Agent: ${agent.agentType}`}\n subtitle={`Step ${['description', 'tools', 'prompt', 'confirm'].indexOf(currentStep) + 1}/4`}\n >\n <Box marginTop={1}>{renderStepContent()}</Box>\n </Header>\n <InstructionBar\n instructions={\n currentStep === 'confirm'\n ? 'Press Enter to save \u00B7 Esc to go back'\n : 'Enter to continue \u00B7 Esc to go back'\n }\n />\n </Box>\n )\n}\n\n// Delete confirmation\ninterface DeleteConfirmProps {\n agent: AgentConfig\n setModeState: (state: ModeState) => void\n onAgentDeleted: (message: string) => void\n}\n\nfunction DeleteConfirm({\n agent,\n setModeState,\n onAgentDeleted,\n}: DeleteConfirmProps) {\n const [isDeleting, setIsDeleting] = useState(false)\n const [selected, setSelected] = useState(false) // false = No, true = Yes\n const [error, setError] = useState<string | null>(null)\n\n const handleConfirm = async () => {\n if (selected) {\n setIsDeleting(true)\n setError(null)\n try {\n await deleteAgent(agent)\n clearAgentCache()\n onAgentDeleted(`Deleted agent: ${agent.agentType}`)\n } catch (err) {\n console.error('Failed to delete agent:', err)\n setIsDeleting(false)\n setError(\n `Failed to delete agent: ${err instanceof Error ? err.message : String(err)}`,\n )\n }\n } else {\n setModeState({ mode: 'agent-menu', selectedAgent: agent })\n }\n }\n\n useInput((input, key) => {\n if (key.return) {\n handleConfirm()\n } else if (key.leftArrow || key.rightArrow || key.tab) {\n setSelected(!selected)\n }\n })\n\n if (isDeleting) {\n return (\n <Box flexDirection=\"column\">\n <Header title=\"Delete agent\" subtitle=\"Deleting...\">\n <Box marginTop={1}>\n <LoadingSpinner text=\"Deleting agent...\" />\n </Box>\n </Header>\n <InstructionBar />\n </Box>\n )\n }\n\n return (\n <Box flexDirection=\"column\">\n <Header title=\"Delete agent\" subtitle={`Delete \"${agent.agentType}\"?`}>\n {error && (\n <Box marginTop={1}>\n <Text color=\"red\">\u2717 {error}</Text>\n </Box>\n )}\n <Box marginTop={1}>\n <Text>\n This action cannot be undone. The agent file will be permanently\n deleted.\n </Text>\n <Box marginTop={2} gap={3}>\n <Text color={!selected ? 'cyan' : undefined}>\n {!selected ? `${UI_ICONS.pointer} ` : ' '}No\n </Text>\n <Text color={selected ? 'red' : undefined}>\n {selected ? `${UI_ICONS.pointer} ` : ' '}Yes, delete\n </Text>\n </Box>\n </Box>\n </Header>\n <InstructionBar />\n </Box>\n )\n}\n\nexport default {\n name: 'agents',\n description: 'Manage agent configurations',\n type: 'local-jsx' as const,\n isEnabled: true,\n isHidden: false,\n hidePromptInput: true,\n\n async call(onExit: (message?: string) => void) {\n return <AgentsUI onExit={onExit} />\n },\n\n userFacingName() {\n return 'agents'\n },\n}\n"],
5
- "mappings": "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",
6
- "names": ["error"]
7
- }
@@ -1,58 +0,0 @@
1
- import { AGENT_LOCATIONS } from "./types.js";
2
- const UI_ICONS = {
3
- pointer: "\u276F",
4
- checkboxOn: "\u2611",
5
- checkboxOff: "\u2610",
6
- warning: "\u26A0",
7
- separator: "\u2500",
8
- loading: "\u25D0\u25D1\u25D2\u25D3"
9
- };
10
- const FOLDER_CONFIG = {
11
- FOLDER_NAME: ".minto",
12
- AGENTS_DIR: "agents"
13
- };
14
- const TOOL_CATEGORIES = {
15
- read: ["Read", "Glob", "Grep", "LS"],
16
- edit: ["Edit", "MultiEdit", "Write", "NotebookEdit"],
17
- execution: ["Bash", "TaskOutput", "TaskStop"],
18
- web: ["WebFetch", "WebSearch"],
19
- other: ["TodoWrite", "ExitPlanMode", "Agent"]
20
- };
21
- const AGENT_COLORS = [
22
- { name: "Default", value: null, color: void 0 },
23
- { name: "Blue", value: "blue", color: "blue" },
24
- { name: "Green", value: "green", color: "green" },
25
- { name: "Yellow", value: "yellow", color: "yellow" },
26
- { name: "Red", value: "red", color: "red" },
27
- { name: "Magenta", value: "magenta", color: "magenta" },
28
- { name: "Cyan", value: "cyan", color: "cyan" }
29
- ];
30
- const INITIAL_CREATE_STATE = {
31
- location: null,
32
- agentType: "",
33
- method: null,
34
- generationPrompt: "",
35
- whenToUse: "",
36
- selectedTools: [],
37
- selectedModel: null,
38
- selectedColor: null,
39
- systemPrompt: "",
40
- isGenerating: false,
41
- wasGenerated: false,
42
- isAIGenerated: false,
43
- error: null,
44
- warnings: [],
45
- agentTypeCursor: 0,
46
- whenToUseCursor: 0,
47
- promptCursor: 0,
48
- generationPromptCursor: 0
49
- };
50
- export {
51
- AGENT_COLORS,
52
- AGENT_LOCATIONS,
53
- FOLDER_CONFIG,
54
- INITIAL_CREATE_STATE,
55
- TOOL_CATEGORIES,
56
- UI_ICONS
57
- };
58
- //# sourceMappingURL=constants.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/commands/agents/constants.ts"],
4
- "sourcesContent": ["/**\n * Constants for the agents command\n */\nimport { AGENT_LOCATIONS } from './types'\n\n// Re-export for convenience\nexport { AGENT_LOCATIONS }\n\nexport const UI_ICONS = {\n pointer: '\u276F',\n checkboxOn: '\u2611',\n checkboxOff: '\u2610',\n warning: '\u26A0',\n separator: '\u2500',\n loading: '\u25D0\u25D1\u25D2\u25D3',\n} as const\n\nexport const FOLDER_CONFIG = {\n FOLDER_NAME: '.minto',\n AGENTS_DIR: 'agents',\n} as const\n\n// Tool categories for sophisticated selection\nexport const TOOL_CATEGORIES = {\n read: ['Read', 'Glob', 'Grep', 'LS'],\n edit: ['Edit', 'MultiEdit', 'Write', 'NotebookEdit'],\n execution: ['Bash', 'TaskOutput', 'TaskStop'],\n web: ['WebFetch', 'WebSearch'],\n other: ['TodoWrite', 'ExitPlanMode', 'Agent'],\n} as const\n\n// Agent color options\nexport const AGENT_COLORS = [\n { name: 'Default', value: null, color: undefined },\n { name: 'Blue', value: 'blue', color: 'blue' },\n { name: 'Green', value: 'green', color: 'green' },\n { name: 'Yellow', value: 'yellow', color: 'yellow' },\n { name: 'Red', value: 'red', color: 'red' },\n { name: 'Magenta', value: 'magenta', color: 'magenta' },\n { name: 'Cyan', value: 'cyan', color: 'cyan' },\n] as const\n\nexport const INITIAL_CREATE_STATE = {\n location: null,\n agentType: '',\n method: null,\n generationPrompt: '',\n whenToUse: '',\n selectedTools: [],\n selectedModel: null,\n selectedColor: null,\n systemPrompt: '',\n isGenerating: false,\n wasGenerated: false,\n isAIGenerated: false,\n error: null,\n warnings: [],\n agentTypeCursor: 0,\n whenToUseCursor: 0,\n promptCursor: 0,\n generationPromptCursor: 0,\n} as const\n"],
5
- "mappings": "AAGA,SAAS,uBAAuB;AAKzB,MAAM,WAAW;AAAA,EACtB,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,SAAS;AAAA,EACT,WAAW;AAAA,EACX,SAAS;AACX;AAEO,MAAM,gBAAgB;AAAA,EAC3B,aAAa;AAAA,EACb,YAAY;AACd;AAGO,MAAM,kBAAkB;AAAA,EAC7B,MAAM,CAAC,QAAQ,QAAQ,QAAQ,IAAI;AAAA,EACnC,MAAM,CAAC,QAAQ,aAAa,SAAS,cAAc;AAAA,EACnD,WAAW,CAAC,QAAQ,cAAc,UAAU;AAAA,EAC5C,KAAK,CAAC,YAAY,WAAW;AAAA,EAC7B,OAAO,CAAC,aAAa,gBAAgB,OAAO;AAC9C;AAGO,MAAM,eAAe;AAAA,EAC1B,EAAE,MAAM,WAAW,OAAO,MAAM,OAAO,OAAU;AAAA,EACjD,EAAE,MAAM,QAAQ,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC7C,EAAE,MAAM,SAAS,OAAO,SAAS,OAAO,QAAQ;AAAA,EAChD,EAAE,MAAM,UAAU,OAAO,UAAU,OAAO,SAAS;AAAA,EACnD,EAAE,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM;AAAA,EAC1C,EAAE,MAAM,WAAW,OAAO,WAAW,OAAO,UAAU;AAAA,EACtD,EAAE,MAAM,QAAQ,OAAO,QAAQ,OAAO,OAAO;AAC/C;AAEO,MAAM,uBAAuB;AAAA,EAClC,UAAU;AAAA,EACV,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,kBAAkB;AAAA,EAClB,WAAW;AAAA,EACX,eAAe,CAAC;AAAA,EAChB,eAAe;AAAA,EACf,eAAe;AAAA,EACf,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAAA,EACd,eAAe;AAAA,EACf,OAAO;AAAA,EACP,UAAU,CAAC;AAAA,EACX,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,wBAAwB;AAC1B;",
6
- "names": []
7
- }
@@ -1,37 +0,0 @@
1
- import { default as default2 } from "./AgentsCommand.js";
2
- import {
3
- AGENT_LOCATIONS,
4
- UI_ICONS,
5
- FOLDER_CONFIG,
6
- TOOL_CATEGORIES,
7
- AGENT_COLORS,
8
- INITIAL_CREATE_STATE
9
- } from "./constants.js";
10
- import {
11
- getAgentDirectory,
12
- getAgentFilePath,
13
- ensureDirectoryExists,
14
- generateAgentFileContent,
15
- saveAgent,
16
- deleteAgent,
17
- openInEditor,
18
- updateAgent
19
- } from "./utils/index.js";
20
- export {
21
- AGENT_COLORS,
22
- AGENT_LOCATIONS,
23
- FOLDER_CONFIG,
24
- INITIAL_CREATE_STATE,
25
- TOOL_CATEGORIES,
26
- UI_ICONS,
27
- default2 as default,
28
- deleteAgent,
29
- ensureDirectoryExists,
30
- generateAgentFileContent,
31
- getAgentDirectory,
32
- getAgentFilePath,
33
- openInEditor,
34
- saveAgent,
35
- updateAgent
36
- };
37
- //# sourceMappingURL=index.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/commands/agents/index.tsx"],
4
- "sourcesContent": ["/**\n * Agents Command Module\n *\n * This module provides an interactive interface for managing AI agents.\n * The component is being incrementally refactored into smaller, focused modules.\n *\n * Structure:\n * - AgentsCommand.tsx - Main command component (being refactored)\n * - types.ts - Type definitions\n * - constants.ts - Configuration constants\n * - utils/ - Utility functions\n * - components/ - Shared UI components (to be extracted)\n */\n\n// Re-export the default export for backward compatibility\nexport { default } from './AgentsCommand'\n\n// Export types for external use\nexport type {\n AgentLocation,\n ModeType,\n ModeState,\n CreateState,\n Tool,\n GeneratedAgent,\n} from './types'\n\n// Export constants\nexport {\n AGENT_LOCATIONS,\n UI_ICONS,\n FOLDER_CONFIG,\n TOOL_CATEGORIES,\n AGENT_COLORS,\n INITIAL_CREATE_STATE,\n} from './constants'\n\n// Export utilities\nexport {\n getAgentDirectory,\n getAgentFilePath,\n ensureDirectoryExists,\n generateAgentFileContent,\n saveAgent,\n deleteAgent,\n openInEditor,\n updateAgent,\n} from './utils'\n"],
5
- "mappings": "AAeA,SAAS,WAAAA,gBAAe;AAaxB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;",
6
- "names": ["default"]
7
- }
@@ -1,11 +0,0 @@
1
- const AGENT_LOCATIONS = {
2
- USER: "user",
3
- PROJECT: "project",
4
- PLUGIN: "plugin",
5
- BUILT_IN: "built-in",
6
- ALL: "all"
7
- };
8
- export {
9
- AGENT_LOCATIONS
10
- };
11
- //# sourceMappingURL=types.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/commands/agents/types.ts"],
4
- "sourcesContent": ["/**\n * Type definitions for the agents command\n */\nimport type { AgentConfig } from '@utils/agentLoader'\n\nexport const AGENT_LOCATIONS = {\n USER: 'user',\n PROJECT: 'project',\n PLUGIN: 'plugin',\n BUILT_IN: 'built-in',\n ALL: 'all',\n} as const\n\nexport type AgentLocation =\n (typeof AGENT_LOCATIONS)[keyof typeof AGENT_LOCATIONS]\n\nexport type ModeType =\n | 'list-agents'\n | 'create-location'\n | 'create-method'\n | 'create-generate'\n | 'create-type'\n | 'create-description'\n | 'create-tools'\n | 'create-model'\n | 'create-color'\n | 'create-prompt'\n | 'create-confirm'\n | 'agent-menu'\n | 'view-agent'\n | 'edit-agent'\n | 'edit-tools'\n | 'edit-model'\n | 'edit-color'\n | 'delete-confirm'\n\nexport type ModeState = {\n mode: ModeType\n location?: AgentLocation\n selectedAgent?: AgentConfig\n previousMode?: ModeState\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any\n}\n\nexport type CreateState = {\n location: AgentLocation | null\n agentType: string\n method: 'generate' | 'manual' | null\n generationPrompt: string\n whenToUse: string\n selectedTools: string[]\n selectedModel: string | null\n selectedColor: string | null\n systemPrompt: string\n isGenerating: boolean\n wasGenerated: boolean\n isAIGenerated: boolean\n error: string | null\n warnings: string[]\n agentTypeCursor: number\n whenToUseCursor: number\n promptCursor: number\n generationPromptCursor: number\n}\n\nexport type Tool = {\n name: string\n description?: string | (() => Promise<string>)\n}\n\nexport type GeneratedAgent = {\n identifier: string\n whenToUse: string\n systemPrompt: string\n suggestedTools?: string[]\n suggestedModel?: string\n}\n"],
5
- "mappings": "AAKO,MAAM,kBAAkB;AAAA,EAC7B,MAAM;AAAA,EACN,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,KAAK;AACP;",
6
- "names": []
7
- }