@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/hooks/useUnifiedCompletion.ts"],
4
- "sourcesContent": ["import { useState, useCallback, useEffect, useRef } from 'react'\nimport { useInput } from 'ink'\nimport { existsSync, statSync, readdirSync } from 'fs'\nimport { join, dirname, basename, resolve } from 'path'\nimport { getCwd } from '@utils/state'\nimport { getCommand } from '@commands'\nimport { getActiveAgents } from '@utils/agentLoader'\nimport { getModelManager } from '@utils/model'\nimport { glob } from 'glob'\nimport { matchCommands } from '@utils/fuzzyMatcher'\nimport {\n getCommonSystemCommands,\n getCommandPriority,\n getEssentialCommands,\n getMinimalFallbackCommands,\n} from '@utils/commonUnixCommands'\nimport { listMCPResources, type McpResource } from '@services/mcpClient'\nimport type { Command } from '@commands'\n\n// Unified suggestion type for all completion types\nexport interface UnifiedSuggestion {\n value: string\n displayValue: string\n type: 'command' | 'agent' | 'file' | 'ask' | 'mcp-resource'\n icon?: string\n score: number\n metadata?: any\n // Clean type system for smart matching\n isSmartMatch?: boolean // Instead of magic string checking\n originalContext?: 'mention' | 'file' | 'command' | 'mcp' // Track source context\n}\n\ninterface CompletionContext {\n type: 'command' | 'agent' | 'file' | 'mcp' | null\n prefix: string\n startPos: number\n endPos: number\n}\n\n// Terminal behavior state for preview and cycling\ninterface TerminalState {\n originalWord: string\n wordContext: { start: number; end: number } | null\n isPreviewMode: boolean\n}\n\ninterface Props {\n input: string\n cursorOffset: number\n onInputChange: (value: string) => void\n setCursorOffset: (offset: number) => void\n commands: Command[]\n onSubmit?: (value: string, isSubmittingSlashCommand?: boolean) => void\n}\n\n/**\n * Unified completion system - Linus approved\n * One hook to rule them all, no bullshit, no complexity\n */\n// Unified completion state - single source of truth\ninterface CompletionState {\n suggestions: UnifiedSuggestion[]\n selectedIndex: number\n isActive: boolean\n context: CompletionContext | null\n preview: {\n isActive: boolean\n originalInput: string\n wordRange: [number, number]\n } | null\n emptyDirMessage: string\n suppressUntil: number // timestamp for suppression\n}\n\nconst INITIAL_STATE: CompletionState = {\n suggestions: [],\n selectedIndex: 0,\n isActive: false,\n context: null,\n preview: null,\n emptyDirMessage: '',\n suppressUntil: 0,\n}\n\nexport function useUnifiedCompletion({\n input,\n cursorOffset,\n onInputChange,\n setCursorOffset,\n commands,\n onSubmit,\n}: Props) {\n // Single state for entire completion system - Linus approved\n const [state, setState] = useState<CompletionState>(INITIAL_STATE)\n\n // State update helpers - clean and simple\n const updateState = useCallback((updates: Partial<CompletionState>) => {\n setState(prev => ({ ...prev, ...updates }))\n }, [])\n\n const resetCompletion = useCallback(() => {\n setState(prev => ({\n ...prev,\n suggestions: [],\n selectedIndex: 0,\n isActive: false,\n context: null,\n preview: null,\n emptyDirMessage: '',\n }))\n }, [])\n\n const activateCompletion = useCallback(\n (suggestions: UnifiedSuggestion[], context: CompletionContext) => {\n setState(prev => ({\n ...prev,\n suggestions: suggestions, // Keep the order from generateSuggestions (already sorted with weights)\n selectedIndex: 0,\n isActive: true,\n context,\n preview: null,\n }))\n },\n [],\n )\n\n // Direct state access - no legacy wrappers needed\n const { suggestions, selectedIndex, isActive, emptyDirMessage } = state\n\n // Find common prefix among suggestions (terminal behavior)\n const findCommonPrefix = useCallback(\n (suggestions: UnifiedSuggestion[]): string => {\n if (suggestions.length === 0) return ''\n if (suggestions.length === 1) return suggestions[0].value\n\n let prefix = suggestions[0].value\n\n for (let i = 1; i < suggestions.length; i++) {\n const str = suggestions[i].value\n let j = 0\n while (j < prefix.length && j < str.length && prefix[j] === str[j]) {\n j++\n }\n prefix = prefix.slice(0, j)\n\n if (prefix.length === 0) return ''\n }\n\n return prefix\n },\n [],\n )\n\n // Clean word detection - Linus approved simplicity\n const getWordAtCursor = useCallback((): CompletionContext | null => {\n if (!input) return null\n\n // IMPORTANT: Only match the word/prefix BEFORE the cursor\n // Don't include text after cursor to avoid confusion\n let start = cursorOffset\n\n // Move start backwards to find word beginning\n // Stop at whitespace or special boundaries\n while (start > 0) {\n const char = input[start - 1]\n // Stop at whitespace\n if (/\\s/.test(char)) break\n\n // For @mentions, include @ and stop\n if (char === '@' && start < cursorOffset) {\n start--\n break\n }\n\n // For paths, be smarter about / handling\n if (char === '/') {\n // Look ahead to see what we've collected so far\n const collectedSoFar = input.slice(start, cursorOffset)\n\n // If we already have a path component, this / is part of the path\n if (collectedSoFar.includes('/') || collectedSoFar.includes('.')) {\n start--\n continue\n }\n\n // Check if this is part of a path pattern like ./ or ../ or ~/\n if (start > 1) {\n const prevChar = input[start - 2]\n if (prevChar === '.' || prevChar === '~') {\n // It's part of ./ or ../ or ~/ - keep going\n start--\n continue\n }\n }\n\n // Check if this is a standalone / at the beginning (command)\n if (start === 1 || (start > 1 && /\\s/.test(input[start - 2]))) {\n start--\n break // It's a command slash\n }\n\n // Otherwise treat as path separator\n start--\n continue\n }\n\n // Special handling for dots in paths\n if (char === '.' && start > 0) {\n // Check if this might be start of ./ or ../\n const nextChar = start < input.length ? input[start] : ''\n if (nextChar === '/' || nextChar === '.') {\n start--\n continue // Part of a path pattern\n }\n }\n\n start--\n }\n\n // The word is from start to cursor position (not beyond)\n const word = input.slice(start, cursorOffset)\n if (!word) return null\n\n // Priority-based type detection - no special cases needed\n if (word.startsWith('/')) {\n const beforeWord = input.slice(0, start).trim()\n const isCommand = beforeWord === '' && !word.includes('/', 1)\n return {\n type: isCommand ? 'command' : 'file',\n prefix: isCommand ? word.slice(1) : word,\n startPos: start,\n endPos: cursorOffset, // Use cursor position as end\n }\n }\n\n if (word.startsWith('@')) {\n const content = word.slice(1) // Remove @\n\n // Check if this looks like an email (contains @ in the middle)\n if (word.includes('@', 1)) {\n // This looks like an email, treat as regular text\n return null\n }\n\n // Trigger completion for @mentions (agents, ask-models, files)\n return {\n type: 'agent', // This will trigger mixed agent+file completion\n prefix: content,\n startPos: start,\n endPos: cursorOffset, // Use cursor position as end\n }\n }\n\n // Check for MCP resource references (mcp: prefix)\n if (word.startsWith('mcp:') || word.includes('mcp:')) {\n const mcpPrefix = word.includes('mcp:')\n ? word.slice(word.indexOf('mcp:') + 4)\n : ''\n return {\n type: 'mcp',\n prefix: mcpPrefix,\n startPos: start,\n endPos: cursorOffset,\n }\n }\n\n // Everything else defaults to file completion\n return {\n type: 'file',\n prefix: word,\n startPos: start,\n endPos: cursorOffset, // Use cursor position as end\n }\n }, [input, cursorOffset])\n\n // System commands cache - populated dynamically from $PATH\n const [systemCommands, setSystemCommands] = useState<string[]>([])\n const [isLoadingCommands, setIsLoadingCommands] = useState(false)\n\n // Dynamic command classification based on intrinsic features\n const classifyCommand = useCallback(\n (cmd: string): 'core' | 'common' | 'dev' | 'system' => {\n const lowerCmd = cmd.toLowerCase()\n let score = 0\n\n // === FEATURE 1: Name Length & Complexity ===\n // Short, simple names are usually core commands\n if (cmd.length <= 4) score += 40\n else if (cmd.length <= 6) score += 20\n else if (cmd.length <= 8) score += 10\n else if (cmd.length > 15) score -= 30 // Very long names are specialized\n\n // === FEATURE 2: Character Patterns ===\n // Simple alphabetic names are more likely core\n if (/^[a-z]+$/.test(lowerCmd)) score += 30\n\n // Mixed case, numbers, dots suggest specialized tools\n if (/[A-Z]/.test(cmd)) score -= 15\n if (/\\d/.test(cmd)) score -= 20\n if (cmd.includes('.')) score -= 25\n if (cmd.includes('-')) score -= 10\n if (cmd.includes('_')) score -= 15\n\n // === FEATURE 3: Linguistic Patterns ===\n // Single, common English words\n const commonWords = [\n 'list',\n 'copy',\n 'move',\n 'find',\n 'print',\n 'show',\n 'edit',\n 'view',\n ]\n if (commonWords.some(word => lowerCmd.includes(word.slice(0, 3))))\n score += 25\n\n // Domain-specific prefixes/suffixes\n const devPrefixes = ['git', 'npm', 'node', 'py', 'docker', 'kubectl']\n if (devPrefixes.some(prefix => lowerCmd.startsWith(prefix))) score += 15\n\n // System/daemon indicators\n const systemIndicators = [\n 'daemon',\n 'helper',\n 'responder',\n 'service',\n 'd$',\n 'ctl$',\n ]\n if (\n systemIndicators.some(indicator =>\n indicator.endsWith('$')\n ? lowerCmd.endsWith(indicator.slice(0, -1))\n : lowerCmd.includes(indicator),\n )\n )\n score -= 40\n\n // === FEATURE 4: File Extension Indicators ===\n // Commands with extensions are usually scripts/specialized tools\n if (/\\.(pl|py|sh|rb|js)$/.test(lowerCmd)) score -= 35\n\n // === FEATURE 5: Path Location Heuristics ===\n // Note: We don't have path info here, but can infer from name patterns\n // Commands that look like they belong in /usr/local/bin or specialized dirs\n const buildToolPatterns = [\n 'bindep',\n 'render',\n 'mako',\n 'webpack',\n 'babel',\n 'eslint',\n ]\n if (buildToolPatterns.some(pattern => lowerCmd.includes(pattern)))\n score -= 25\n\n // === FEATURE 6: Vowel/Consonant Patterns ===\n // Unix commands often have abbreviated names with few vowels\n const vowelRatio =\n (lowerCmd.match(/[aeiou]/g) || []).length / lowerCmd.length\n if (vowelRatio < 0.2) score += 15 // Very few vowels (like 'ls', 'cp', 'mv')\n if (vowelRatio > 0.5) score -= 10 // Too many vowels (usually full words)\n\n // === CLASSIFICATION BASED ON SCORE ===\n if (score >= 50) return 'core' // 50+: Core unix commands\n if (score >= 20) return 'common' // 20-49: Common dev tools\n if (score >= -10) return 'dev' // -10-19: Specialized dev tools\n return 'system' // <-10: System/edge commands\n },\n [],\n )\n\n // Load system commands from PATH (like real terminal)\n const loadSystemCommands = useCallback(async () => {\n if (systemCommands.length > 0 || isLoadingCommands) return // Already loaded or loading\n\n setIsLoadingCommands(true)\n try {\n const { readdirSync, statSync } = await import('fs')\n const pathDirs = (process.env.PATH || '').split(':').filter(Boolean)\n const commandSet = new Set<string>()\n\n // Get essential commands from utils\n const essentialCommands = getEssentialCommands()\n\n // Add essential commands first\n essentialCommands.forEach(cmd => commandSet.add(cmd))\n\n // Scan PATH directories for executables\n for (const dir of pathDirs) {\n try {\n if (readdirSync && statSync) {\n const entries = readdirSync(dir)\n for (const entry of entries) {\n try {\n const fullPath = `${dir}/${entry}`\n const stats = statSync(fullPath)\n // Check if it's executable (rough check)\n if (stats.isFile() && (stats.mode & 0o111) !== 0) {\n commandSet.add(entry)\n }\n } catch {\n // Skip files we can't stat\n }\n }\n }\n } catch {\n // Skip directories we can't read\n }\n }\n\n const commands = Array.from(commandSet).sort()\n setSystemCommands(commands)\n } catch (error) {\n console.warn('Failed to load system commands, using fallback:', error)\n // Use minimal fallback commands from utils if system scan fails\n setSystemCommands(getMinimalFallbackCommands())\n } finally {\n setIsLoadingCommands(false)\n }\n }, [systemCommands.length, isLoadingCommands])\n\n // Load commands on first use\n useEffect(() => {\n loadSystemCommands()\n }, [loadSystemCommands])\n\n // Generate command suggestions (slash commands)\n const generateCommandSuggestions = useCallback(\n (prefix: string): UnifiedSuggestion[] => {\n const filteredCommands = commands.filter(cmd => !cmd.isHidden)\n\n if (!prefix) {\n // Show all commands when prefix is empty (for single /)\n return filteredCommands.map(cmd => ({\n value: cmd.userFacingName(),\n displayValue: `/${cmd.userFacingName()}`,\n type: 'command' as const,\n score: 100,\n }))\n }\n\n return filteredCommands\n .filter(cmd => {\n const names = [cmd.userFacingName(), ...(cmd.aliases || [])]\n return names.some(name =>\n name.toLowerCase().startsWith(prefix.toLowerCase()),\n )\n })\n .map(cmd => ({\n value: cmd.userFacingName(),\n displayValue: `/${cmd.userFacingName()}`,\n type: 'command' as const,\n score:\n 100 -\n prefix.length +\n (cmd.userFacingName().startsWith(prefix) ? 10 : 0),\n }))\n },\n [commands],\n )\n\n // Clean Unix command scoring using fuzzy matcher\n const calculateUnixCommandScore = useCallback(\n (cmd: string, prefix: string): number => {\n const result = matchCommands([cmd], prefix)\n return result.length > 0 ? result[0].score : 0\n },\n [],\n )\n\n // Clean Unix command suggestions using fuzzy matcher with common commands boost\n const generateUnixCommandSuggestions = useCallback(\n (prefix: string): UnifiedSuggestion[] => {\n if (!prefix) return []\n\n // Loading state\n if (isLoadingCommands) {\n return [\n {\n value: 'loading...',\n displayValue: `\u23F3 Loading system commands...`,\n type: 'file' as const,\n score: 0,\n metadata: { isLoading: true },\n },\n ]\n }\n\n // IMPORTANT: Only use commands that exist on the system (intersection)\n const commonCommands = getCommonSystemCommands(systemCommands)\n\n // Deduplicate commands (in case of any duplicates)\n const uniqueCommands = Array.from(new Set(commonCommands))\n\n // Use fuzzy matcher ONLY on the unique intersection\n const matches = matchCommands(uniqueCommands, prefix)\n\n // Boost common commands\n const boostedMatches = matches\n .map(match => {\n const priority = getCommandPriority(match.command)\n return {\n ...match,\n score: match.score + priority * 0.5, // Add priority boost\n }\n })\n .sort((a, b) => b.score - a.score)\n\n // Limit results intelligently\n let results = boostedMatches.slice(0, 8)\n\n // If we have very high scores (900+), show fewer\n const perfectMatches = boostedMatches.filter(m => m.score >= 900)\n if (perfectMatches.length > 0 && perfectMatches.length <= 3) {\n results = perfectMatches\n }\n // If we have good scores (100+), prefer them\n else if (boostedMatches.length > 8) {\n const goodMatches = boostedMatches.filter(m => m.score >= 100)\n if (goodMatches.length <= 5) {\n results = goodMatches\n }\n }\n\n return results.map(item => ({\n value: item.command,\n displayValue: `$ ${item.command}`,\n type: 'command' as const,\n score: item.score,\n metadata: { isUnixCommand: true },\n }))\n },\n [systemCommands, isLoadingCommands],\n )\n\n // Agent suggestions cache\n const [agentSuggestions, setAgentSuggestions] = useState<UnifiedSuggestion[]>(\n [],\n )\n\n // Model suggestions cache\n const [modelSuggestions, setModelSuggestions] = useState<UnifiedSuggestion[]>(\n [],\n )\n\n // Load model suggestions\n useEffect(() => {\n try {\n const modelManager = getModelManager()\n const allModels = modelManager.getAllAvailableModelNames()\n\n const suggestions = allModels.map(modelId => {\n // Professional and clear description for expert model consultation\n return {\n value: `ask-${modelId}`,\n displayValue: `\uD83E\uDD9C ask-${modelId} :: Consult ${modelId} for expert opinion and specialized analysis`,\n type: 'ask' as const,\n score: 90, // Higher than agents - put ask-models on top\n metadata: { modelId },\n }\n })\n\n setModelSuggestions(suggestions)\n } catch (error) {\n console.warn('[useUnifiedCompletion] Failed to load models:', error)\n // No fallback - rely on dynamic loading only\n setModelSuggestions([])\n }\n }, [])\n\n // MCP Resource suggestions cache\n const [mcpResourceSuggestions, setMcpResourceSuggestions] = useState<\n UnifiedSuggestion[]\n >([])\n\n // Load MCP resource suggestions\n useEffect(() => {\n listMCPResources()\n .then(resources => {\n const suggestions = resources.map(resource => ({\n // Use @server:uri format for CC-compatible resource references\n value: `@${resource.serverName}:${resource.uri}`,\n displayValue: `\uD83D\uDD0C ${resource.serverName}:${resource.name} :: ${resource.description || resource.uri}`,\n type: 'mcp-resource' as const,\n score: 80,\n metadata: {\n uri: resource.uri,\n serverName: resource.serverName,\n mimeType: resource.mimeType,\n },\n }))\n setMcpResourceSuggestions(suggestions)\n })\n .catch(error => {\n // MCP resources not available - this is fine\n console.warn(\n '[useUnifiedCompletion] MCP resources not available:',\n error,\n )\n setMcpResourceSuggestions([])\n })\n }, [])\n\n // Load agent suggestions on mount\n useEffect(() => {\n getActiveAgents()\n .then(agents => {\n // agents is an array of AgentConfig, not an object\n const suggestions = agents.map(config => {\n // \uD83E\uDDE0 \u667A\u80FD\u63CF\u8FF0\u7B97\u6CD5 - \u9002\u5E94\u6027\u957F\u5EA6\u63A7\u5236\n let shortDesc = config.whenToUse\n\n // \u79FB\u9664\u5E38\u89C1\u7684\u5197\u4F59\u524D\u7F00\uFF0C\u4F46\u4FDD\u7559\u6838\u5FC3\u5185\u5BB9\n const prefixPatterns = [\n /^Use this agent when you need (assistance with: )?/i,\n /^Use PROACTIVELY (when|to) /i,\n /^Specialized in /i,\n /^Implementation specialist for /i,\n /^Design validation specialist\\.? Use PROACTIVELY to /i,\n /^Task validation specialist\\.? Use PROACTIVELY to /i,\n /^Requirements validation specialist\\.? Use PROACTIVELY to /i,\n ]\n\n for (const pattern of prefixPatterns) {\n shortDesc = shortDesc.replace(pattern, '')\n }\n\n // \uD83C\uDFAF \u7CBE\u51C6\u65AD\u53E5\u7B97\u6CD5\uFF1A\u4E2D\u82F1\u6587\u53E5\u53F7\u611F\u53F9\u53F7\u4F18\u5148 \u2192 \u9017\u53F7 \u2192 \u7701\u7565\n const findSmartBreak = (text: string, maxLength: number) => {\n if (text.length <= maxLength) return text\n\n // \u7B2C\u4E00\u4F18\u5148\u7EA7\uFF1A\u4E2D\u82F1\u6587\u53E5\u53F7\u3001\u611F\u53F9\u53F7\n const sentenceEndings = /[.!\u3002\uFF01]/\n const firstSentenceMatch = text.search(sentenceEndings)\n if (firstSentenceMatch !== -1) {\n const firstSentence = text.slice(0, firstSentenceMatch).trim()\n if (firstSentence.length >= 5) {\n return firstSentence\n }\n }\n\n // \u5982\u679C\u7B2C\u4E00\u53E5\u8FC7\u957F\uFF0C\u627E\u9017\u53F7\u65AD\u53E5\n if (text.length > maxLength) {\n const commaEndings = /[,\uFF0C]/\n const commas = []\n let match\n const regex = new RegExp(commaEndings, 'g')\n while ((match = regex.exec(text)) !== null) {\n commas.push(match.index)\n }\n\n // \u627E\u6700\u540E\u4E00\u4E2A\u5728maxLength\u5185\u7684\u9017\u53F7\n for (let i = commas.length - 1; i >= 0; i--) {\n const commaPos = commas[i]\n if (commaPos < maxLength) {\n const clause = text.slice(0, commaPos).trim()\n if (clause.length >= 5) {\n return clause\n }\n }\n }\n }\n\n // \u6700\u540E\u9009\u62E9\uFF1A\u76F4\u63A5\u7701\u7565\n return text.slice(0, maxLength) + '...'\n }\n\n shortDesc = findSmartBreak(shortDesc.trim(), 80) // \u589E\u52A0\u523080\u5B57\u7B26\u9650\u5236\n\n // \u5982\u679C\u5904\u7406\u540E\u4E3A\u7A7A\u6216\u592A\u77ED\uFF0C\u4F7F\u7528\u539F\u59CB\u63CF\u8FF0\n if (!shortDesc || shortDesc.length < 5) {\n shortDesc = findSmartBreak(config.whenToUse, 80)\n }\n\n return {\n value: `run-agent-${config.agentType}`,\n displayValue: `\uD83D\uDC64 run-agent-${config.agentType} :: ${shortDesc}`, // \u4EBA\u7C7B\u56FE\u6807 + run-agent\u524D\u7F00 + \u7B80\u6D01\u63CF\u8FF0\n type: 'agent' as const,\n score: 85, // Lower than ask-models\n metadata: config,\n }\n })\n // Agents loaded successfully\n setAgentSuggestions(suggestions)\n })\n .catch(error => {\n console.warn('[useUnifiedCompletion] Failed to load agents:', error)\n // No fallback - rely on dynamic loading only\n setAgentSuggestions([])\n })\n }, [])\n\n // Generate agent and model suggestions using fuzzy matching\n const generateMentionSuggestions = useCallback(\n (prefix: string): UnifiedSuggestion[] => {\n // Combine agent and model suggestions\n const allSuggestions = [...agentSuggestions, ...modelSuggestions]\n\n if (!prefix) {\n // Show all suggestions when prefix is empty (for single @)\n return allSuggestions.sort((a, b) => {\n // Ask models first (higher score), then agents\n if (a.type === 'ask' && b.type === 'agent') return -1\n if (a.type === 'agent' && b.type === 'ask') return 1\n return b.score - a.score\n })\n }\n\n // Use fuzzy matching for intelligent completion\n const candidates = allSuggestions.map(s => s.value)\n const matches = matchCommands(candidates, prefix)\n\n // Create result mapping with fuzzy scores\n const fuzzyResults = matches\n .map(match => {\n const suggestion = allSuggestions.find(\n s => s.value === match.command,\n )!\n return {\n ...suggestion,\n score: match.score, // Use fuzzy match score instead of simple scoring\n }\n })\n .sort((a, b) => {\n // Ask models first (for equal scores), then agents\n if (a.type === 'ask' && b.type === 'agent') return -1\n if (a.type === 'agent' && b.type === 'ask') return 1\n return b.score - a.score\n })\n\n return fuzzyResults\n },\n [agentSuggestions, modelSuggestions],\n )\n\n // Unix-style path completion - preserves user input semantics\n const generateFileSuggestions = useCallback(\n (prefix: string, isAtReference: boolean = false): UnifiedSuggestion[] => {\n try {\n const cwd = getCwd()\n\n // Parse user input preserving original format\n const userPath = prefix || '.'\n const isAbsolutePath = userPath.startsWith('/')\n const isHomePath = userPath.startsWith('~')\n\n // Resolve search directory - but keep user's path format for output\n let searchPath: string\n if (isHomePath) {\n searchPath = userPath.replace('~', process.env.HOME || '')\n } else if (isAbsolutePath) {\n searchPath = userPath\n } else {\n searchPath = resolve(cwd, userPath)\n }\n\n // Determine search directory and filename filter\n // If path ends with '/', treat it as directory navigation\n const endsWithSlash = userPath.endsWith('/')\n const searchStat = existsSync(searchPath) ? statSync(searchPath) : null\n\n let searchDir: string\n let nameFilter: string\n\n if (endsWithSlash || searchStat?.isDirectory()) {\n // User is navigating into a directory or path ends with /\n searchDir = searchPath\n nameFilter = ''\n } else {\n // User might be typing a partial filename\n searchDir = dirname(searchPath)\n nameFilter = basename(searchPath)\n }\n\n if (!existsSync(searchDir)) return []\n\n // Get directory entries with filter\n const showHidden = nameFilter.startsWith('.') || userPath.includes('/.')\n const entries = readdirSync(searchDir)\n .filter(entry => {\n // Filter hidden files unless user explicitly wants them\n if (!showHidden && entry.startsWith('.')) return false\n // Filter by name if there's a filter\n if (\n nameFilter &&\n !entry.toLowerCase().startsWith(nameFilter.toLowerCase())\n )\n return false\n return true\n })\n .sort((a, b) => {\n // Sort directories first, then files\n const aPath = join(searchDir, a)\n const bPath = join(searchDir, b)\n const aIsDir = statSync(aPath).isDirectory()\n const bIsDir = statSync(bPath).isDirectory()\n\n if (aIsDir && !bIsDir) return -1\n if (!aIsDir && bIsDir) return 1\n\n // Within same type, sort alphabetically\n return a.toLowerCase().localeCompare(b.toLowerCase())\n })\n .slice(0, 25) // Show more entries for better visibility\n\n return entries.map(entry => {\n const entryPath = join(searchDir, entry)\n const isDir = statSync(entryPath).isDirectory()\n const icon = isDir ? '\uD83D\uDCC1' : '\uD83D\uDCC4'\n\n // Unix-style path building - preserve user's original path format\n let value: string\n\n if (userPath.includes('/')) {\n // User typed path with separators - maintain structure\n if (endsWithSlash) {\n // User explicitly ended with / - they're inside the directory\n value = userPath + entry + (isDir ? '/' : '')\n } else if (searchStat?.isDirectory()) {\n // Path is a directory but doesn't end with / - add separator\n value = userPath + '/' + entry + (isDir ? '/' : '')\n } else {\n // User is completing a filename - replace basename\n const userDir = userPath.includes('/')\n ? userPath.substring(0, userPath.lastIndexOf('/'))\n : ''\n value = userDir\n ? userDir + '/' + entry + (isDir ? '/' : '')\n : entry + (isDir ? '/' : '')\n }\n } else {\n // User typed simple name - check if it's an existing directory\n if (searchStat?.isDirectory()) {\n // Existing directory - navigate into it\n value = userPath + '/' + entry + (isDir ? '/' : '')\n } else {\n // Simple completion at current level\n value = entry + (isDir ? '/' : '')\n }\n }\n\n return {\n value,\n displayValue: `${icon} ${entry}${isDir ? '/' : ''}`,\n type: 'file' as const,\n score: isDir ? 80 : 70,\n }\n })\n } catch {\n return []\n }\n },\n [],\n )\n\n // Unified smart matching - single algorithm with different weights\n const calculateMatchScore = useCallback(\n (suggestion: UnifiedSuggestion, prefix: string): number => {\n const lowerPrefix = prefix.toLowerCase()\n const value = suggestion.value.toLowerCase()\n const displayValue = suggestion.displayValue.toLowerCase()\n\n let matchFound = false\n let score = 0\n\n // Check for actual matches first\n if (value.startsWith(lowerPrefix)) {\n matchFound = true\n score = 100 // Highest priority\n } else if (value.includes(lowerPrefix)) {\n matchFound = true\n score = 95\n } else if (displayValue.includes(lowerPrefix)) {\n matchFound = true\n score = 90\n } else {\n // Word boundary matching for compound names like \"general\" -> \"run-agent-general-purpose\"\n const words = value.split(/[-_]/)\n if (words.some(word => word.startsWith(lowerPrefix))) {\n matchFound = true\n score = 93\n } else {\n // Acronym matching (last resort)\n const acronym = words.map(word => word[0]).join('')\n if (acronym.startsWith(lowerPrefix)) {\n matchFound = true\n score = 88\n }\n }\n }\n\n // Only return score if we found a match\n if (!matchFound) return 0\n\n // Type preferences (small bonus)\n if (suggestion.type === 'ask') score += 2\n if (suggestion.type === 'agent') score += 1\n\n return score\n },\n [],\n )\n\n // Generate smart mention suggestions without data pollution\n const generateSmartMentionSuggestions = useCallback(\n (\n prefix: string,\n sourceContext: 'file' | 'agent' = 'file',\n ): UnifiedSuggestion[] => {\n if (!prefix || prefix.length < 2) return []\n\n const allSuggestions = [...agentSuggestions, ...modelSuggestions]\n\n return allSuggestions\n .map(suggestion => {\n const matchScore = calculateMatchScore(suggestion, prefix)\n if (matchScore === 0) return null\n\n // Clean transformation without data pollution\n return {\n ...suggestion,\n score: matchScore,\n isSmartMatch: true,\n originalContext: sourceContext,\n // Only modify display for clarity, keep value clean\n displayValue: `\uD83C\uDFAF ${suggestion.displayValue}`,\n }\n })\n .filter(Boolean)\n .sort((a, b) => b.score - a.score)\n .slice(0, 5)\n },\n [agentSuggestions, modelSuggestions, calculateMatchScore],\n )\n\n // Generate MCP resource suggestions\n const generateMcpResourceSuggestions = useCallback(\n (prefix: string): UnifiedSuggestion[] => {\n if (mcpResourceSuggestions.length === 0) {\n // No MCP resources available\n return [\n {\n value: '',\n displayValue: '\u26A0\uFE0F No MCP resources available',\n type: 'mcp-resource' as const,\n score: 0,\n metadata: { isPlaceholder: true },\n },\n ]\n }\n\n if (!prefix) {\n // Show all MCP resources when no prefix\n return mcpResourceSuggestions\n }\n\n // Filter by prefix (match on uri, name, or server)\n const lowerPrefix = prefix.toLowerCase()\n return mcpResourceSuggestions\n .filter(s => {\n const uri = s.value.toLowerCase()\n const name = s.metadata?.uri?.toLowerCase() || ''\n const server = s.metadata?.serverName?.toLowerCase() || ''\n return (\n uri.includes(lowerPrefix) ||\n name.includes(lowerPrefix) ||\n server.includes(lowerPrefix)\n )\n })\n .map(s => ({\n ...s,\n score: s.value.toLowerCase().startsWith(lowerPrefix) ? 100 : 80,\n }))\n .sort((a, b) => b.score - a.score)\n },\n [mcpResourceSuggestions],\n )\n\n // Generate all suggestions based on context\n const generateSuggestions = useCallback(\n (context: CompletionContext): UnifiedSuggestion[] => {\n switch (context.type) {\n case 'command':\n return generateCommandSuggestions(context.prefix)\n case 'mcp':\n return generateMcpResourceSuggestions(context.prefix)\n case 'agent': {\n // @ reference: combine mentions and files with clean priority\n const mentionSuggestions = generateMentionSuggestions(context.prefix)\n const fileSuggestions = generateFileSuggestions(context.prefix, true) // isAtReference=true\n\n // Apply weights for @ context (agents/models should be prioritized but files visible)\n const weightedSuggestions = [\n ...mentionSuggestions.map(s => ({\n ...s,\n // In @ context, agents/models get high priority\n weightedScore: s.score + 150,\n })),\n ...fileSuggestions.map(s => ({\n ...s,\n // Files get lower priority but still visible\n weightedScore: s.score + 10, // Small boost to ensure visibility\n })),\n ]\n\n // Sort by weighted score - no artificial limits\n return weightedSuggestions\n .sort((a, b) => b.weightedScore - a.weightedScore)\n .map(({ weightedScore, ...suggestion }) => suggestion)\n // No limit or very generous limit (e.g., 30 items)\n }\n case 'file': {\n // For normal input, try to match everything intelligently\n const fileSuggestions = generateFileSuggestions(context.prefix, false)\n const unixSuggestions = generateUnixCommandSuggestions(context.prefix)\n\n // IMPORTANT: Also try to match agents and models WITHOUT requiring @\n // This enables smart matching for inputs like \"gp5\", \"daoqi\", etc.\n const mentionMatches = generateMentionSuggestions(context.prefix).map(\n s => ({\n ...s,\n isSmartMatch: true,\n // Show that @ will be added when selected\n displayValue: `\\u2192 ${s.displayValue}`, // Arrow to indicate it will transform\n }),\n )\n\n // Apply source-based priority weights with special handling for exact matches\n // Priority order: Exact Unix > Unix commands > agents/models > files\n const weightedSuggestions = [\n ...unixSuggestions.map(s => ({\n ...s,\n // Unix commands get boost, but exact matches get huge boost\n sourceWeight: s.score >= 10000 ? 5000 : 200, // Exact match gets massive boost\n weightedScore: s.score >= 10000 ? s.score + 5000 : s.score + 200,\n })),\n ...mentionMatches.map(s => ({\n ...s,\n // Agents/models get medium priority boost (but less to avoid overriding exact Unix)\n sourceWeight: 50,\n weightedScore: s.score + 50,\n })),\n ...fileSuggestions.map(s => ({\n ...s,\n // Files get no boost (baseline)\n sourceWeight: 0,\n weightedScore: s.score,\n })),\n ]\n\n // Sort by weighted score and deduplicate\n const seen = new Set<string>()\n const deduplicatedResults = weightedSuggestions\n .sort((a, b) => b.weightedScore - a.weightedScore)\n .filter(item => {\n // Filter out duplicates based on value\n if (seen.has(item.value)) return false\n seen.add(item.value)\n return true\n })\n .map(({ weightedScore, sourceWeight, ...suggestion }) => suggestion) // Remove weight fields\n // No limit - show all relevant matches\n\n return deduplicatedResults\n }\n default:\n return []\n }\n },\n [\n generateCommandSuggestions,\n generateMcpResourceSuggestions,\n generateMentionSuggestions,\n generateFileSuggestions,\n generateUnixCommandSuggestions,\n generateSmartMentionSuggestions,\n ],\n )\n\n // Complete with a suggestion - \u652F\u6301\u4E07\u80FD@\u5F15\u7528 + slash\u547D\u4EE4\u81EA\u52A8\u6267\u884C\n const completeWith = useCallback(\n (suggestion: UnifiedSuggestion, context: CompletionContext) => {\n let completion: string\n\n if (context.type === 'command') {\n completion = `/${suggestion.value} `\n } else if (context.type === 'mcp') {\n // MCP resource completion - add mcp: prefix and space\n completion = `mcp:${suggestion.value} `\n } else if (context.type === 'agent') {\n // \uD83D\uDE80 \u4E07\u80FD@\u5F15\u7528\uFF1A\u6839\u636E\u5EFA\u8BAE\u7C7B\u578B\u51B3\u5B9A\u8865\u5168\u683C\u5F0F\n if (suggestion.type === 'agent') {\n completion = `@${suggestion.value} ` // \u4EE3\u7406\u8865\u5168\n } else if (suggestion.type === 'ask') {\n completion = `@${suggestion.value} ` // Ask\u6A21\u578B\u8865\u5168\n } else {\n // File reference in @mention context - no space for directories to allow expansion\n const isDirectory = suggestion.value.endsWith('/')\n completion = `@${suggestion.value}${isDirectory ? '' : ' '}` // \u6587\u4EF6\u5939\u4E0D\u52A0\u7A7A\u683C\uFF0C\u6587\u4EF6\u52A0\u7A7A\u683C\n }\n } else {\n // Regular file completion OR smart mention matching\n if (suggestion.isSmartMatch) {\n // Smart mention - add @ prefix and space\n completion = `@${suggestion.value} `\n } else {\n // Regular file completion - no space for directories to allow expansion\n const isDirectory = suggestion.value.endsWith('/')\n completion = suggestion.value + (isDirectory ? '' : ' ')\n }\n }\n\n // Special handling for absolute paths in file completion\n // When completing an absolute path, we should replace the entire current word/path\n let actualEndPos: number\n\n if (\n context.type === 'file' &&\n suggestion.value.startsWith('/') &&\n !suggestion.isSmartMatch\n ) {\n // For absolute paths, find the end of the current path/word\n let end = context.startPos\n while (\n end < input.length &&\n input[end] !== ' ' &&\n input[end] !== '\\n'\n ) {\n end++\n }\n actualEndPos = end\n } else {\n // Original logic for other cases\n const currentWord = input.slice(context.startPos)\n const nextSpaceIndex = currentWord.indexOf(' ')\n actualEndPos =\n nextSpaceIndex === -1\n ? input.length\n : context.startPos + nextSpaceIndex\n }\n\n const newInput =\n input.slice(0, context.startPos) +\n completion +\n input.slice(actualEndPos)\n onInputChange(newInput)\n setCursorOffset(context.startPos + completion.length)\n\n // Don't auto-execute slash commands - let user press Enter to submit\n // This gives users a chance to add arguments or modify the command\n\n // Completion applied\n },\n [input, onInputChange, setCursorOffset, onSubmit, commands],\n )\n\n // Partial complete to common prefix\n const partialComplete = useCallback(\n (prefix: string, context: CompletionContext) => {\n const completion =\n context.type === 'command'\n ? `/${prefix}`\n : context.type === 'agent'\n ? `@${prefix}`\n : prefix\n\n const newInput =\n input.slice(0, context.startPos) +\n completion +\n input.slice(context.endPos)\n onInputChange(newInput)\n setCursorOffset(context.startPos + completion.length)\n },\n [input, onInputChange, setCursorOffset],\n )\n\n // Handle Tab key - simplified and unified\n useInput((input_str, key) => {\n if (!key.tab) return false\n if (key.shift) return false\n\n const context = getWordAtCursor()\n if (!context) return false\n\n // If menu is already showing, cycle through suggestions\n if (state.isActive && state.suggestions.length > 0) {\n const nextIndex = (state.selectedIndex + 1) % state.suggestions.length\n const nextSuggestion = state.suggestions[nextIndex]\n\n if (state.context) {\n // Calculate proper word boundaries\n const currentWord = input.slice(state.context.startPos)\n const wordEnd = currentWord.search(/\\s/)\n const actualEndPos =\n wordEnd === -1 ? input.length : state.context.startPos + wordEnd\n\n // Apply appropriate prefix based on context type and suggestion type\n let preview: string\n if (state.context.type === 'command') {\n preview = `/${nextSuggestion.value}`\n } else if (state.context.type === 'agent') {\n // For @mentions, always add @ prefix\n preview = `@${nextSuggestion.value}`\n } else if (nextSuggestion.isSmartMatch) {\n // Smart match from normal input - add @ prefix\n preview = `@${nextSuggestion.value}`\n } else {\n preview = nextSuggestion.value\n }\n\n // Apply preview\n const newInput =\n input.slice(0, state.context.startPos) +\n preview +\n input.slice(actualEndPos)\n\n onInputChange(newInput)\n setCursorOffset(state.context.startPos + preview.length)\n\n // Update state\n updateState({\n selectedIndex: nextIndex,\n preview: {\n isActive: true,\n originalInput: input,\n wordRange: [\n state.context.startPos,\n state.context.startPos + preview.length,\n ],\n },\n })\n }\n return true\n }\n\n // Generate new suggestions\n const currentSuggestions = generateSuggestions(context)\n\n if (currentSuggestions.length === 0) {\n return false // Let Tab pass through\n } else if (currentSuggestions.length === 1) {\n // Single match: complete immediately\n completeWith(currentSuggestions[0], context)\n return true\n } else {\n // Show menu and apply first suggestion\n activateCompletion(currentSuggestions, context)\n\n // Immediately apply first suggestion as preview\n const firstSuggestion = currentSuggestions[0]\n const currentWord = input.slice(context.startPos)\n const wordEnd = currentWord.search(/\\s/)\n const actualEndPos =\n wordEnd === -1 ? input.length : context.startPos + wordEnd\n\n let preview: string\n if (context.type === 'command') {\n preview = `/${firstSuggestion.value}`\n } else if (context.type === 'agent') {\n preview = `@${firstSuggestion.value}`\n } else if (firstSuggestion.isSmartMatch) {\n // Smart match from normal input - add @ prefix\n preview = `@${firstSuggestion.value}`\n } else {\n preview = firstSuggestion.value\n }\n\n const newInput =\n input.slice(0, context.startPos) + preview + input.slice(actualEndPos)\n\n onInputChange(newInput)\n setCursorOffset(context.startPos + preview.length)\n\n updateState({\n preview: {\n isActive: true,\n originalInput: input,\n wordRange: [context.startPos, context.startPos + preview.length],\n },\n })\n\n return true\n }\n })\n\n // Handle navigation keys - simplified and unified\n useInput((inputChar, key) => {\n // Enter key - confirm selection and end completion (always add space)\n if (key.return && state.isActive && state.suggestions.length > 0) {\n const selectedSuggestion = state.suggestions[state.selectedIndex]\n if (selectedSuggestion && state.context) {\n // For Enter key, always add space even for directories to indicate completion end\n let completion: string\n\n if (state.context.type === 'command') {\n completion = `/${selectedSuggestion.value} `\n } else if (state.context.type === 'agent') {\n if (selectedSuggestion.type === 'agent') {\n completion = `@${selectedSuggestion.value} `\n } else if (selectedSuggestion.type === 'ask') {\n completion = `@${selectedSuggestion.value} `\n } else {\n // File reference in @mention context - always add space on Enter\n completion = `@${selectedSuggestion.value} `\n }\n } else if (selectedSuggestion.isSmartMatch) {\n // Smart match from normal input - add @ prefix\n completion = `@${selectedSuggestion.value} `\n } else {\n // Regular file completion - always add space on Enter\n completion = selectedSuggestion.value + ' '\n }\n\n // Apply completion with forced space\n const currentWord = input.slice(state.context.startPos)\n const nextSpaceIndex = currentWord.indexOf(' ')\n const actualEndPos =\n nextSpaceIndex === -1\n ? input.length\n : state.context.startPos + nextSpaceIndex\n\n const newInput =\n input.slice(0, state.context.startPos) +\n completion +\n input.slice(actualEndPos)\n onInputChange(newInput)\n setCursorOffset(state.context.startPos + completion.length)\n }\n resetCompletion()\n return true\n }\n\n if (!state.isActive || state.suggestions.length === 0) return false\n\n // Arrow key navigation with preview\n const handleNavigation = (newIndex: number) => {\n const preview = state.suggestions[newIndex].value\n\n if (state.preview?.isActive && state.context) {\n const newInput =\n input.slice(0, state.context.startPos) +\n preview +\n input.slice(state.preview.wordRange[1])\n\n onInputChange(newInput)\n setCursorOffset(state.context.startPos + preview.length)\n\n updateState({\n selectedIndex: newIndex,\n preview: {\n ...state.preview,\n wordRange: [\n state.context.startPos,\n state.context.startPos + preview.length,\n ],\n },\n })\n } else {\n updateState({ selectedIndex: newIndex })\n }\n }\n\n if (key.downArrow) {\n const nextIndex = (state.selectedIndex + 1) % state.suggestions.length\n handleNavigation(nextIndex)\n return true\n }\n\n if (key.upArrow) {\n const nextIndex =\n state.selectedIndex === 0\n ? state.suggestions.length - 1\n : state.selectedIndex - 1\n handleNavigation(nextIndex)\n return true\n }\n\n // Space key - complete and potentially continue for directories\n if (inputChar === ' ' && state.isActive && state.suggestions.length > 0) {\n const selectedSuggestion = state.suggestions[state.selectedIndex]\n const isDirectory = selectedSuggestion.value.endsWith('/')\n\n if (!state.context) return false\n\n // Apply completion if needed\n const currentWordAtContext = input.slice(\n state.context.startPos,\n state.context.startPos + selectedSuggestion.value.length,\n )\n\n if (currentWordAtContext !== selectedSuggestion.value) {\n completeWith(selectedSuggestion, state.context)\n }\n\n resetCompletion()\n\n if (isDirectory) {\n // Continue completion for directories\n setTimeout(() => {\n const newContext = {\n ...state.context,\n prefix: selectedSuggestion.value,\n endPos: state.context.startPos + selectedSuggestion.value.length,\n }\n\n const newSuggestions = generateSuggestions(newContext)\n\n if (newSuggestions.length > 0) {\n activateCompletion(newSuggestions, newContext)\n } else {\n updateState({\n emptyDirMessage: `Directory is empty: ${selectedSuggestion.value}`,\n })\n setTimeout(() => updateState({ emptyDirMessage: '' }), 3000)\n }\n }, 50)\n }\n\n return true\n }\n\n // Right arrow key - same as space but different semantics\n if (key.rightArrow) {\n const selectedSuggestion = state.suggestions[state.selectedIndex]\n const isDirectory = selectedSuggestion.value.endsWith('/')\n\n if (!state.context) return false\n\n // Apply completion\n const currentWordAtContext = input.slice(\n state.context.startPos,\n state.context.startPos + selectedSuggestion.value.length,\n )\n\n if (currentWordAtContext !== selectedSuggestion.value) {\n completeWith(selectedSuggestion, state.context)\n }\n\n resetCompletion()\n\n if (isDirectory) {\n // Continue for directories\n setTimeout(() => {\n const newContext = {\n ...state.context,\n prefix: selectedSuggestion.value,\n endPos: state.context.startPos + selectedSuggestion.value.length,\n }\n\n const newSuggestions = generateSuggestions(newContext)\n\n if (newSuggestions.length > 0) {\n activateCompletion(newSuggestions, newContext)\n } else {\n updateState({\n emptyDirMessage: `Directory is empty: ${selectedSuggestion.value}`,\n })\n setTimeout(() => updateState({ emptyDirMessage: '' }), 3000)\n }\n }, 50)\n }\n\n return true\n }\n\n if (key.escape) {\n // Restore original text if in preview mode\n if (state.preview?.isActive && state.context) {\n onInputChange(state.preview.originalInput)\n setCursorOffset(state.context.startPos + state.context.prefix.length)\n }\n\n resetCompletion()\n return true\n }\n\n return false\n })\n\n // Handle delete/backspace keys - unified state management\n useInput((input_str, key) => {\n if (key.backspace || key.delete) {\n if (state.isActive) {\n resetCompletion()\n // Smart suppression based on input complexity\n const suppressionTime = input.length > 10 ? 200 : 100\n updateState({\n suppressUntil: Date.now() + suppressionTime,\n })\n return true\n }\n }\n return false\n })\n\n // Input tracking with ref to avoid infinite loops\n const lastInputRef = useRef('')\n\n // Smart auto-triggering with cycle prevention\n useEffect(() => {\n // Prevent infinite loops by using ref\n if (lastInputRef.current === input) return\n\n const inputLengthChange = Math.abs(\n input.length - lastInputRef.current.length,\n )\n const isHistoryNavigation =\n (inputLengthChange > 10 || // Large content change\n (inputLengthChange > 5 &&\n !input.includes(lastInputRef.current.slice(-5)))) && // Different content\n input !== lastInputRef.current\n\n // Update ref (no state update)\n lastInputRef.current = input\n\n // Skip if in preview mode or suppressed\n if (state.preview?.isActive || Date.now() < state.suppressUntil) {\n return\n }\n\n // Clear suggestions on history navigation\n if (isHistoryNavigation && state.isActive) {\n resetCompletion()\n return\n }\n\n const context = getWordAtCursor()\n\n if (context && shouldAutoTrigger(context)) {\n const newSuggestions = generateSuggestions(context)\n\n if (newSuggestions.length === 0) {\n resetCompletion()\n } else if (\n newSuggestions.length === 1 &&\n shouldAutoHideSingleMatch(newSuggestions[0], context)\n ) {\n resetCompletion() // Perfect match - hide\n } else {\n activateCompletion(newSuggestions, context)\n }\n } else if (state.context) {\n // Check if context changed significantly\n const contextChanged =\n !context ||\n state.context.type !== context.type ||\n state.context.startPos !== context.startPos ||\n !context.prefix.startsWith(state.context.prefix)\n\n if (contextChanged) {\n resetCompletion()\n }\n }\n }, [input, cursorOffset])\n\n // Smart triggering - only when it makes sense\n const shouldAutoTrigger = useCallback(\n (context: CompletionContext): boolean => {\n switch (context.type) {\n case 'command':\n // Trigger immediately for slash commands\n return true\n case 'agent':\n // Trigger immediately for agent references\n return true\n case 'mcp':\n // Trigger immediately for MCP resource references\n return true\n case 'file':\n // Be selective about file completion - avoid noise\n const prefix = context.prefix\n\n // Always trigger for clear path patterns\n if (\n prefix.startsWith('./') ||\n prefix.startsWith('../') ||\n prefix.startsWith('/') ||\n prefix.startsWith('~') ||\n prefix.includes('/')\n ) {\n return true\n }\n\n // Trigger for single dot followed by something (like .g for .gitignore)\n if (prefix.startsWith('.') && prefix.length >= 2) {\n return true\n }\n\n // Skip very short prefixes that are likely code\n return false\n default:\n return false\n }\n },\n [],\n )\n\n // Helper function to determine if single suggestion should be auto-hidden\n const shouldAutoHideSingleMatch = useCallback(\n (suggestion: UnifiedSuggestion, context: CompletionContext): boolean => {\n // Extract the actual typed input from context\n const currentInput = input.slice(context.startPos, context.endPos)\n // Check if should auto-hide single match\n\n // For files: more intelligent matching\n if (context.type === 'file') {\n // Special case: if suggestion is a directory (ends with /), don't auto-hide\n // because user might want to continue navigating into it\n if (suggestion.value.endsWith('/')) {\n // Directory suggestion, keeping visible\n return false\n }\n\n // Check exact match\n if (currentInput === suggestion.value) {\n // Exact match, hiding\n return true\n }\n\n // Check if current input is a complete file path and suggestion is just the filename\n // e.g., currentInput: \"src/tools/ThinkTool/ThinkTool.tsx\", suggestion: \"ThinkTool.tsx\"\n if (\n currentInput.endsWith('/' + suggestion.value) ||\n currentInput.endsWith(suggestion.value)\n ) {\n // Path ends with suggestion, hiding\n return true\n }\n\n return false\n }\n\n // For commands: check if /prefix exactly matches /command\n if (context.type === 'command') {\n const fullCommand = `/${suggestion.value}`\n const matches = currentInput === fullCommand\n // Check command match\n return matches\n }\n\n // For agents: check if @prefix exactly matches @agent-name\n if (context.type === 'agent') {\n const fullAgent = `@${suggestion.value}`\n const matches = currentInput === fullAgent\n // Check agent match\n return matches\n }\n\n return false\n },\n [input],\n )\n\n return {\n suggestions,\n selectedIndex,\n isActive,\n emptyDirMessage,\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["suggestions", "readdirSync", "statSync", "commands"]
7
- }
@@ -1,109 +0,0 @@
1
- import { en } from "./locales/en.js";
2
- import { zhCN } from "./locales/zh-CN.js";
3
- const translations = {
4
- en,
5
- "zh-CN": zhCN
6
- };
7
- let currentLanguage = "en";
8
- const listeners = /* @__PURE__ */ new Set();
9
- function detectSystemLanguage() {
10
- const envLang = process.env.MINTO_LANG;
11
- if (envLang) {
12
- const normalized = envLang.toLowerCase();
13
- if (normalized.startsWith("zh")) {
14
- return "zh-CN";
15
- }
16
- }
17
- return "en";
18
- }
19
- function initI18n(lang) {
20
- if (lang) {
21
- currentLanguage = lang;
22
- } else {
23
- currentLanguage = "en";
24
- }
25
- }
26
- function getLanguage() {
27
- return currentLanguage;
28
- }
29
- function setLanguage(lang) {
30
- if (translations[lang]) {
31
- currentLanguage = lang;
32
- for (const listener of listeners) {
33
- listener(lang);
34
- }
35
- } else {
36
- console.warn(`Language '${lang}' not supported, using 'en'`);
37
- currentLanguage = "en";
38
- }
39
- }
40
- function onLanguageChange(listener) {
41
- listeners.add(listener);
42
- return () => listeners.delete(listener);
43
- }
44
- function hasTranslation(key) {
45
- return !!(translations[currentLanguage]?.[key] || translations.en[key]);
46
- }
47
- function tSafe(key, params) {
48
- const translation = translations[currentLanguage]?.[key];
49
- if (!translation) {
50
- const fallback = translations.en[key];
51
- if (!fallback) {
52
- return void 0;
53
- }
54
- return interpolate(fallback, params);
55
- }
56
- return interpolate(translation, params);
57
- }
58
- function t(key, params) {
59
- const translation = translations[currentLanguage]?.[key];
60
- if (!translation) {
61
- const fallback = translations.en[key];
62
- if (!fallback) {
63
- console.warn(`Translation key not found: ${key}`);
64
- return key;
65
- }
66
- return interpolate(fallback, params);
67
- }
68
- return interpolate(translation, params);
69
- }
70
- function tLang(lang, key, params) {
71
- const translation = translations[lang]?.[key] || translations.en[key] || key;
72
- return interpolate(translation, params);
73
- }
74
- function interpolate(str, params) {
75
- if (!params) return str;
76
- return str.replace(/\{(\w+)\}/g, (match, key) => {
77
- return params[key] !== void 0 ? String(params[key]) : match;
78
- });
79
- }
80
- function isLanguageSupported(lang) {
81
- return lang in translations;
82
- }
83
- function getSupportedLanguages() {
84
- return Object.keys(translations);
85
- }
86
- function getLanguageDisplayName(lang) {
87
- const names = {
88
- en: "English",
89
- "zh-CN": "\u7B80\u4F53\u4E2D\u6587"
90
- };
91
- return names[lang] || lang;
92
- }
93
- import { LANGUAGE_NAMES } from "./types.js";
94
- export {
95
- LANGUAGE_NAMES,
96
- detectSystemLanguage,
97
- getLanguage,
98
- getLanguageDisplayName,
99
- getSupportedLanguages,
100
- hasTranslation,
101
- initI18n,
102
- isLanguageSupported,
103
- onLanguageChange,
104
- setLanguage,
105
- t,
106
- tLang,
107
- tSafe
108
- };
109
- //# sourceMappingURL=index.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/i18n/index.ts"],
4
- "sourcesContent": ["/**\n * Minto i18n System\n *\n * Lightweight internationalization system for CLI applications.\n * Supports English (default) and Simplified Chinese.\n *\n * Usage:\n * import { t, setLanguage, getLanguage } from '@i18n'\n *\n * // Get translated string\n * const label = t('ui.displayMode.minimal') // \"Minimal\" or \"\u7CBE\u7B80\"\n *\n * // Change language\n * setLanguage('zh-CN')\n *\n * // Get current language\n * const lang = getLanguage() // 'en' or 'zh-CN'\n */\n\nimport type { Language, TranslationKey, Translations } from './types'\nimport { en } from './locales/en'\nimport { zhCN } from './locales/zh-CN'\n\n// All available translations\nconst translations: Record<Language, Translations> = {\n en,\n 'zh-CN': zhCN,\n}\n\n// Current language state\nlet currentLanguage: Language = 'en'\n\n// Language change listeners\ntype LanguageChangeListener = (lang: Language) => void\nconst listeners: Set<LanguageChangeListener> = new Set()\n\n/**\n * Detect system language\n * Only checks MINTO_LANG environment variable for explicit override\n * Defaults to English - user must explicitly set language for other locales\n */\nexport function detectSystemLanguage(): Language {\n // Only check MINTO_LANG for explicit language override\n // Do NOT auto-detect from system locale (LANG, LC_ALL, etc.)\n const envLang = process.env.MINTO_LANG\n\n if (envLang) {\n const normalized = envLang.toLowerCase()\n if (normalized.startsWith('zh')) {\n return 'zh-CN'\n }\n }\n\n // Default to English\n return 'en'\n}\n\n/**\n * Initialize i18n with optional language\n * Should be called once at application startup\n */\nexport function initI18n(lang?: Language): void {\n if (lang) {\n currentLanguage = lang\n } else {\n // Will be set from config or CLI args\n // For now, default to English\n currentLanguage = 'en'\n }\n}\n\n/**\n * Get current language\n */\nexport function getLanguage(): Language {\n return currentLanguage\n}\n\n/**\n * Set current language\n */\nexport function setLanguage(lang: Language): void {\n if (translations[lang]) {\n currentLanguage = lang\n // Notify listeners\n for (const listener of listeners) {\n listener(lang)\n }\n } else {\n console.warn(`Language '${lang}' not supported, using 'en'`)\n currentLanguage = 'en'\n }\n}\n\n/**\n * Subscribe to language changes\n */\nexport function onLanguageChange(listener: LanguageChangeListener): () => void {\n listeners.add(listener)\n return () => listeners.delete(listener)\n}\n\n/**\n * Check if a translation key exists\n *\n * @param key - Translation key to check\n * @returns true if key exists in current language or fallback (English)\n */\nexport function hasTranslation(key: string): boolean {\n return !!(\n translations[currentLanguage]?.[key as TranslationKey] ||\n translations.en[key as TranslationKey]\n )\n}\n\n/**\n * Get translated string by key (silent version - no warning if key not found)\n *\n * @param key - Translation key\n * @param params - Optional interpolation parameters\n * @returns Translated string or undefined if not found\n */\nexport function tSafe(\n key: string,\n params?: Record<string, string | number>,\n): string | undefined {\n const translation = translations[currentLanguage]?.[key as TranslationKey]\n\n if (!translation) {\n const fallback = translations.en[key as TranslationKey]\n if (!fallback) {\n return undefined\n }\n return interpolate(fallback, params)\n }\n\n return interpolate(translation, params)\n}\n\n/**\n * Get translated string by key\n *\n * @param key - Translation key (e.g., 'ui.displayMode.minimal')\n * @param params - Optional interpolation parameters\n * @returns Translated string\n */\nexport function t(\n key: TranslationKey,\n params?: Record<string, string | number>,\n): string {\n const translation = translations[currentLanguage]?.[key]\n\n if (!translation) {\n // Fallback to English\n const fallback = translations.en[key]\n if (!fallback) {\n // Key not found, return the key itself\n console.warn(`Translation key not found: ${key}`)\n return key\n }\n return interpolate(fallback, params)\n }\n\n return interpolate(translation, params)\n}\n\n/**\n * Get translation for a specific language (without changing current language)\n */\nexport function tLang(\n lang: Language,\n key: TranslationKey,\n params?: Record<string, string | number>,\n): string {\n const translation = translations[lang]?.[key] || translations.en[key] || key\n return interpolate(translation, params)\n}\n\n/**\n * Interpolate parameters into translation string\n * Supports {param} syntax (single braces)\n */\nfunction interpolate(\n str: string,\n params?: Record<string, string | number>,\n): string {\n if (!params) return str\n\n return str.replace(/\\{(\\w+)\\}/g, (match, key) => {\n return params[key] !== undefined ? String(params[key]) : match\n })\n}\n\n/**\n * Check if a language is supported\n */\nexport function isLanguageSupported(lang: string): lang is Language {\n return lang in translations\n}\n\n/**\n * Get list of supported languages\n */\nexport function getSupportedLanguages(): Language[] {\n return Object.keys(translations) as Language[]\n}\n\n/**\n * Get language display name\n */\nexport function getLanguageDisplayName(lang: Language): string {\n const names: Record<Language, string> = {\n en: 'English',\n 'zh-CN': '\u7B80\u4F53\u4E2D\u6587',\n }\n return names[lang] || lang\n}\n\n// Re-export types\nexport type { Language, TranslationKey, Translations } from './types'\nexport { LANGUAGE_NAMES } from './types'\n"],
5
- "mappings": "AAoBA,SAAS,UAAU;AACnB,SAAS,YAAY;AAGrB,MAAM,eAA+C;AAAA,EACnD;AAAA,EACA,SAAS;AACX;AAGA,IAAI,kBAA4B;AAIhC,MAAM,YAAyC,oBAAI,IAAI;AAOhD,SAAS,uBAAiC;AAG/C,QAAM,UAAU,QAAQ,IAAI;AAE5B,MAAI,SAAS;AACX,UAAM,aAAa,QAAQ,YAAY;AACvC,QAAI,WAAW,WAAW,IAAI,GAAG;AAC/B,aAAO;AAAA,IACT;AAAA,EACF;AAGA,SAAO;AACT;AAMO,SAAS,SAAS,MAAuB;AAC9C,MAAI,MAAM;AACR,sBAAkB;AAAA,EACpB,OAAO;AAGL,sBAAkB;AAAA,EACpB;AACF;AAKO,SAAS,cAAwB;AACtC,SAAO;AACT;AAKO,SAAS,YAAY,MAAsB;AAChD,MAAI,aAAa,IAAI,GAAG;AACtB,sBAAkB;AAElB,eAAW,YAAY,WAAW;AAChC,eAAS,IAAI;AAAA,IACf;AAAA,EACF,OAAO;AACL,YAAQ,KAAK,aAAa,IAAI,6BAA6B;AAC3D,sBAAkB;AAAA,EACpB;AACF;AAKO,SAAS,iBAAiB,UAA8C;AAC7E,YAAU,IAAI,QAAQ;AACtB,SAAO,MAAM,UAAU,OAAO,QAAQ;AACxC;AAQO,SAAS,eAAe,KAAsB;AACnD,SAAO,CAAC,EACN,aAAa,eAAe,IAAI,GAAqB,KACrD,aAAa,GAAG,GAAqB;AAEzC;AASO,SAAS,MACd,KACA,QACoB;AACpB,QAAM,cAAc,aAAa,eAAe,IAAI,GAAqB;AAEzE,MAAI,CAAC,aAAa;AAChB,UAAM,WAAW,aAAa,GAAG,GAAqB;AACtD,QAAI,CAAC,UAAU;AACb,aAAO;AAAA,IACT;AACA,WAAO,YAAY,UAAU,MAAM;AAAA,EACrC;AAEA,SAAO,YAAY,aAAa,MAAM;AACxC;AASO,SAAS,EACd,KACA,QACQ;AACR,QAAM,cAAc,aAAa,eAAe,IAAI,GAAG;AAEvD,MAAI,CAAC,aAAa;AAEhB,UAAM,WAAW,aAAa,GAAG,GAAG;AACpC,QAAI,CAAC,UAAU;AAEb,cAAQ,KAAK,8BAA8B,GAAG,EAAE;AAChD,aAAO;AAAA,IACT;AACA,WAAO,YAAY,UAAU,MAAM;AAAA,EACrC;AAEA,SAAO,YAAY,aAAa,MAAM;AACxC;AAKO,SAAS,MACd,MACA,KACA,QACQ;AACR,QAAM,cAAc,aAAa,IAAI,IAAI,GAAG,KAAK,aAAa,GAAG,GAAG,KAAK;AACzE,SAAO,YAAY,aAAa,MAAM;AACxC;AAMA,SAAS,YACP,KACA,QACQ;AACR,MAAI,CAAC,OAAQ,QAAO;AAEpB,SAAO,IAAI,QAAQ,cAAc,CAAC,OAAO,QAAQ;AAC/C,WAAO,OAAO,GAAG,MAAM,SAAY,OAAO,OAAO,GAAG,CAAC,IAAI;AAAA,EAC3D,CAAC;AACH;AAKO,SAAS,oBAAoB,MAAgC;AAClE,SAAO,QAAQ;AACjB;AAKO,SAAS,wBAAoC;AAClD,SAAO,OAAO,KAAK,YAAY;AACjC;AAKO,SAAS,uBAAuB,MAAwB;AAC7D,QAAM,QAAkC;AAAA,IACtC,IAAI;AAAA,IACJ,SAAS;AAAA,EACX;AACA,SAAO,MAAM,IAAI,KAAK;AACxB;AAIA,SAAS,sBAAsB;",
6
- "names": []
7
- }