@within-7/minto 0.0.5-dev.1

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 (701) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +1097 -0
  3. package/README.zh-CN.md +1097 -0
  4. package/cli.js +59 -0
  5. package/dist/Tool.js +1 -0
  6. package/dist/Tool.js.map +7 -0
  7. package/dist/commands/agents.js +2086 -0
  8. package/dist/commands/agents.js.map +7 -0
  9. package/dist/commands/approvedTools.js +36 -0
  10. package/dist/commands/approvedTools.js.map +7 -0
  11. package/dist/commands/bug.js +21 -0
  12. package/dist/commands/bug.js.map +7 -0
  13. package/dist/commands/build.js +74 -0
  14. package/dist/commands/build.js.map +7 -0
  15. package/dist/commands/clear.js +37 -0
  16. package/dist/commands/clear.js.map +7 -0
  17. package/dist/commands/compact.js +82 -0
  18. package/dist/commands/compact.js.map +7 -0
  19. package/dist/commands/compression.js +57 -0
  20. package/dist/commands/compression.js.map +7 -0
  21. package/dist/commands/config.js +20 -0
  22. package/dist/commands/config.js.map +7 -0
  23. package/dist/commands/cost.js +19 -0
  24. package/dist/commands/cost.js.map +7 -0
  25. package/dist/commands/ctx_viz.js +152 -0
  26. package/dist/commands/ctx_viz.js.map +7 -0
  27. package/dist/commands/doctor.js +25 -0
  28. package/dist/commands/doctor.js.map +7 -0
  29. package/dist/commands/help.js +20 -0
  30. package/dist/commands/help.js.map +7 -0
  31. package/dist/commands/init.js +38 -0
  32. package/dist/commands/init.js.map +7 -0
  33. package/dist/commands/listen.js +37 -0
  34. package/dist/commands/listen.js.map +7 -0
  35. package/dist/commands/login.js +37 -0
  36. package/dist/commands/login.js.map +7 -0
  37. package/dist/commands/logout.js +33 -0
  38. package/dist/commands/logout.js.map +7 -0
  39. package/dist/commands/mcp-interactive.js +267 -0
  40. package/dist/commands/mcp-interactive.js.map +7 -0
  41. package/dist/commands/mcp.js +40 -0
  42. package/dist/commands/mcp.js.map +7 -0
  43. package/dist/commands/mcp_refresh.js +40 -0
  44. package/dist/commands/mcp_refresh.js.map +7 -0
  45. package/dist/commands/model.js +41 -0
  46. package/dist/commands/model.js.map +7 -0
  47. package/dist/commands/modelstatus.js +21 -0
  48. package/dist/commands/modelstatus.js.map +7 -0
  49. package/dist/commands/onboarding.js +36 -0
  50. package/dist/commands/onboarding.js.map +7 -0
  51. package/dist/commands/plugin/AddMarketplaceForm.js +62 -0
  52. package/dist/commands/plugin/AddMarketplaceForm.js.map +7 -0
  53. package/dist/commands/plugin/ConfirmDialog.js +71 -0
  54. package/dist/commands/plugin/ConfirmDialog.js.map +7 -0
  55. package/dist/commands/plugin/ErrorView.js +33 -0
  56. package/dist/commands/plugin/ErrorView.js.map +7 -0
  57. package/dist/commands/plugin/InstalledPluginsByMarketplace.js +135 -0
  58. package/dist/commands/plugin/InstalledPluginsByMarketplace.js.map +7 -0
  59. package/dist/commands/plugin/InstalledPluginsManager.js +99 -0
  60. package/dist/commands/plugin/InstalledPluginsManager.js.map +7 -0
  61. package/dist/commands/plugin/LoadingView.js +14 -0
  62. package/dist/commands/plugin/LoadingView.js.map +7 -0
  63. package/dist/commands/plugin/MainMenu.js +57 -0
  64. package/dist/commands/plugin/MainMenu.js.map +7 -0
  65. package/dist/commands/plugin/MarketplaceManager.js +155 -0
  66. package/dist/commands/plugin/MarketplaceManager.js.map +7 -0
  67. package/dist/commands/plugin/MarketplaceSelector.js +119 -0
  68. package/dist/commands/plugin/MarketplaceSelector.js.map +7 -0
  69. package/dist/commands/plugin/PlaceholderScreen.js +16 -0
  70. package/dist/commands/plugin/PlaceholderScreen.js.map +7 -0
  71. package/dist/commands/plugin/PluginBrowser.js +180 -0
  72. package/dist/commands/plugin/PluginBrowser.js.map +7 -0
  73. package/dist/commands/plugin/PluginDetailsInstall.js +152 -0
  74. package/dist/commands/plugin/PluginDetailsInstall.js.map +7 -0
  75. package/dist/commands/plugin/PluginDetailsManage.js +200 -0
  76. package/dist/commands/plugin/PluginDetailsManage.js.map +7 -0
  77. package/dist/commands/plugin/components.js +16 -0
  78. package/dist/commands/plugin/components.js.map +7 -0
  79. package/dist/commands/plugin/example-usage.js +63 -0
  80. package/dist/commands/plugin/example-usage.js.map +7 -0
  81. package/dist/commands/plugin/types.js +1 -0
  82. package/dist/commands/plugin/types.js.map +7 -0
  83. package/dist/commands/plugin/utils.js +77 -0
  84. package/dist/commands/plugin/utils.js.map +7 -0
  85. package/dist/commands/plugin-interactive.js +446 -0
  86. package/dist/commands/plugin-interactive.js.map +7 -0
  87. package/dist/commands/plugin.js +523 -0
  88. package/dist/commands/plugin.js.map +7 -0
  89. package/dist/commands/pr_comments.js +61 -0
  90. package/dist/commands/pr_comments.js.map +7 -0
  91. package/dist/commands/quit.js +16 -0
  92. package/dist/commands/quit.js.map +7 -0
  93. package/dist/commands/refreshCommands.js +43 -0
  94. package/dist/commands/refreshCommands.js.map +7 -0
  95. package/dist/commands/release-notes.js +30 -0
  96. package/dist/commands/release-notes.js.map +7 -0
  97. package/dist/commands/resume.js +35 -0
  98. package/dist/commands/resume.js.map +7 -0
  99. package/dist/commands/review.js +51 -0
  100. package/dist/commands/review.js.map +7 -0
  101. package/dist/commands/terminalSetup.js +164 -0
  102. package/dist/commands/terminalSetup.js.map +7 -0
  103. package/dist/commands.js +104 -0
  104. package/dist/commands.js.map +7 -0
  105. package/dist/components/AgentResponseBlock.js +41 -0
  106. package/dist/components/AgentResponseBlock.js.map +7 -0
  107. package/dist/components/AgentThinkingBlock.js +40 -0
  108. package/dist/components/AgentThinkingBlock.js.map +7 -0
  109. package/dist/components/AsciiLogo.js +19 -0
  110. package/dist/components/AsciiLogo.js.map +7 -0
  111. package/dist/components/BackgroundTasksPanel.js +124 -0
  112. package/dist/components/BackgroundTasksPanel.js.map +7 -0
  113. package/dist/components/Bug.js +147 -0
  114. package/dist/components/Bug.js.map +7 -0
  115. package/dist/components/Config.js +166 -0
  116. package/dist/components/Config.js.map +7 -0
  117. package/dist/components/ConsoleOAuthFlow.js +178 -0
  118. package/dist/components/ConsoleOAuthFlow.js.map +7 -0
  119. package/dist/components/Cost.js +13 -0
  120. package/dist/components/Cost.js.map +7 -0
  121. package/dist/components/CostThresholdDialog.js +38 -0
  122. package/dist/components/CostThresholdDialog.js.map +7 -0
  123. package/dist/components/CustomSelect/option-map.js +32 -0
  124. package/dist/components/CustomSelect/option-map.js.map +7 -0
  125. package/dist/components/CustomSelect/select-option.js +34 -0
  126. package/dist/components/CustomSelect/select-option.js.map +7 -0
  127. package/dist/components/CustomSelect/select.js +64 -0
  128. package/dist/components/CustomSelect/select.js.map +7 -0
  129. package/dist/components/CustomSelect/theme.js +1 -0
  130. package/dist/components/CustomSelect/theme.js.map +7 -0
  131. package/dist/components/CustomSelect/use-select-state.js +220 -0
  132. package/dist/components/CustomSelect/use-select-state.js.map +7 -0
  133. package/dist/components/CustomSelect/use-select.js +21 -0
  134. package/dist/components/CustomSelect/use-select.js.map +7 -0
  135. package/dist/components/FallbackToolUseRejectedMessage.js +11 -0
  136. package/dist/components/FallbackToolUseRejectedMessage.js.map +7 -0
  137. package/dist/components/FileEditToolUpdatedMessage.js +32 -0
  138. package/dist/components/FileEditToolUpdatedMessage.js.map +7 -0
  139. package/dist/components/HeaderBar.js +57 -0
  140. package/dist/components/HeaderBar.js.map +7 -0
  141. package/dist/components/Help.js +46 -0
  142. package/dist/components/Help.js.map +7 -0
  143. package/dist/components/HighlightedCode.js +30 -0
  144. package/dist/components/HighlightedCode.js.map +7 -0
  145. package/dist/components/HistorySearchOverlay.js +48 -0
  146. package/dist/components/HistorySearchOverlay.js.map +7 -0
  147. package/dist/components/InteractionRoundBlock.js +56 -0
  148. package/dist/components/InteractionRoundBlock.js.map +7 -0
  149. package/dist/components/InvalidConfigDialog.js +83 -0
  150. package/dist/components/InvalidConfigDialog.js.map +7 -0
  151. package/dist/components/Link.js +18 -0
  152. package/dist/components/Link.js.map +7 -0
  153. package/dist/components/LogSelector.js +50 -0
  154. package/dist/components/LogSelector.js.map +7 -0
  155. package/dist/components/Logo.js +96 -0
  156. package/dist/components/Logo.js.map +7 -0
  157. package/dist/components/MCPServerApprovalDialog.js +79 -0
  158. package/dist/components/MCPServerApprovalDialog.js.map +7 -0
  159. package/dist/components/MCPServerDialogCopy.js +11 -0
  160. package/dist/components/MCPServerDialogCopy.js.map +7 -0
  161. package/dist/components/MCPServerMultiselectDialog.js +80 -0
  162. package/dist/components/MCPServerMultiselectDialog.js.map +7 -0
  163. package/dist/components/Message.js +146 -0
  164. package/dist/components/Message.js.map +7 -0
  165. package/dist/components/MessageResponse.js +9 -0
  166. package/dist/components/MessageResponse.js.map +7 -0
  167. package/dist/components/MessageSelector.js +125 -0
  168. package/dist/components/MessageSelector.js.map +7 -0
  169. package/dist/components/ModeIndicator.js +38 -0
  170. package/dist/components/ModeIndicator.js.map +7 -0
  171. package/dist/components/ModelConfig.js +208 -0
  172. package/dist/components/ModelConfig.js.map +7 -0
  173. package/dist/components/ModelListManager.js +140 -0
  174. package/dist/components/ModelListManager.js.map +7 -0
  175. package/dist/components/ModelSelector.js +2062 -0
  176. package/dist/components/ModelSelector.js.map +7 -0
  177. package/dist/components/ModelStatusDisplay.js +87 -0
  178. package/dist/components/ModelStatusDisplay.js.map +7 -0
  179. package/dist/components/Onboarding.js +153 -0
  180. package/dist/components/Onboarding.js.map +7 -0
  181. package/dist/components/PressEnterToContinue.js +10 -0
  182. package/dist/components/PressEnterToContinue.js.map +7 -0
  183. package/dist/components/ProjectOnboarding.js +99 -0
  184. package/dist/components/ProjectOnboarding.js.map +7 -0
  185. package/dist/components/PromptInput.js +755 -0
  186. package/dist/components/PromptInput.js.map +7 -0
  187. package/dist/components/QuitSummary.js +81 -0
  188. package/dist/components/QuitSummary.js.map +7 -0
  189. package/dist/components/SentryErrorBoundary.js +27 -0
  190. package/dist/components/SentryErrorBoundary.js.map +7 -0
  191. package/dist/components/Spinner.js +101 -0
  192. package/dist/components/Spinner.js.map +7 -0
  193. package/dist/components/SpinnerSymbol.js +78 -0
  194. package/dist/components/SpinnerSymbol.js.map +7 -0
  195. package/dist/components/StreamingBashOutput.js +70 -0
  196. package/dist/components/StreamingBashOutput.js.map +7 -0
  197. package/dist/components/StructuredDiff.js +148 -0
  198. package/dist/components/StructuredDiff.js.map +7 -0
  199. package/dist/components/SubagentBlock.js +157 -0
  200. package/dist/components/SubagentBlock.js.map +7 -0
  201. package/dist/components/SubagentManager.js +65 -0
  202. package/dist/components/SubagentManager.js.map +7 -0
  203. package/dist/components/SubagentProgress.js +109 -0
  204. package/dist/components/SubagentProgress.js.map +7 -0
  205. package/dist/components/SubagentStatusMarker.js +37 -0
  206. package/dist/components/SubagentStatusMarker.js.map +7 -0
  207. package/dist/components/TaskCard.js +170 -0
  208. package/dist/components/TaskCard.js.map +7 -0
  209. package/dist/components/TextInput.js +100 -0
  210. package/dist/components/TextInput.js.map +7 -0
  211. package/dist/components/TimelineRenderer.js +31 -0
  212. package/dist/components/TimelineRenderer.js.map +7 -0
  213. package/dist/components/TodoChangeBlock.js +29 -0
  214. package/dist/components/TodoChangeBlock.js.map +7 -0
  215. package/dist/components/TodoChangeLine.js +22 -0
  216. package/dist/components/TodoChangeLine.js.map +7 -0
  217. package/dist/components/TodoItem.js +35 -0
  218. package/dist/components/TodoItem.js.map +7 -0
  219. package/dist/components/TodoPanel.js +55 -0
  220. package/dist/components/TodoPanel.js.map +7 -0
  221. package/dist/components/TokenWarning.js +19 -0
  222. package/dist/components/TokenWarning.js.map +7 -0
  223. package/dist/components/ToolExecutionBlock.js +18 -0
  224. package/dist/components/ToolExecutionBlock.js.map +7 -0
  225. package/dist/components/ToolUseLoader.js +24 -0
  226. package/dist/components/ToolUseLoader.js.map +7 -0
  227. package/dist/components/TrustDialog.js +71 -0
  228. package/dist/components/TrustDialog.js.map +7 -0
  229. package/dist/components/UserQueryBlock.js +12 -0
  230. package/dist/components/UserQueryBlock.js.map +7 -0
  231. package/dist/components/binary-feedback/BinaryFeedback.js +50 -0
  232. package/dist/components/binary-feedback/BinaryFeedback.js.map +7 -0
  233. package/dist/components/binary-feedback/BinaryFeedbackOption.js +94 -0
  234. package/dist/components/binary-feedback/BinaryFeedbackOption.js.map +7 -0
  235. package/dist/components/binary-feedback/BinaryFeedbackView.js +139 -0
  236. package/dist/components/binary-feedback/BinaryFeedbackView.js.map +7 -0
  237. package/dist/components/binary-feedback/utils.js +108 -0
  238. package/dist/components/binary-feedback/utils.js.map +7 -0
  239. package/dist/components/messages/AssistantBashOutputMessage.js +23 -0
  240. package/dist/components/messages/AssistantBashOutputMessage.js.map +7 -0
  241. package/dist/components/messages/AssistantLocalCommandOutputMessage.js +36 -0
  242. package/dist/components/messages/AssistantLocalCommandOutputMessage.js.map +7 -0
  243. package/dist/components/messages/AssistantRedactedThinkingMessage.js +12 -0
  244. package/dist/components/messages/AssistantRedactedThinkingMessage.js.map +7 -0
  245. package/dist/components/messages/AssistantTextMessage.js +78 -0
  246. package/dist/components/messages/AssistantTextMessage.js.map +7 -0
  247. package/dist/components/messages/AssistantThinkingMessage.js +27 -0
  248. package/dist/components/messages/AssistantThinkingMessage.js.map +7 -0
  249. package/dist/components/messages/AssistantToolUseMessage.js +91 -0
  250. package/dist/components/messages/AssistantToolUseMessage.js.map +7 -0
  251. package/dist/components/messages/TaskProgressMessage.js +11 -0
  252. package/dist/components/messages/TaskProgressMessage.js.map +7 -0
  253. package/dist/components/messages/TaskToolMessage.js +39 -0
  254. package/dist/components/messages/TaskToolMessage.js.map +7 -0
  255. package/dist/components/messages/UserBashInputMessage.js +18 -0
  256. package/dist/components/messages/UserBashInputMessage.js.map +7 -0
  257. package/dist/components/messages/UserCommandMessage.js +20 -0
  258. package/dist/components/messages/UserCommandMessage.js.map +7 -0
  259. package/dist/components/messages/UserKodingInputMessage.js +18 -0
  260. package/dist/components/messages/UserKodingInputMessage.js.map +7 -0
  261. package/dist/components/messages/UserPromptMessage.js +20 -0
  262. package/dist/components/messages/UserPromptMessage.js.map +7 -0
  263. package/dist/components/messages/UserTextMessage.js +25 -0
  264. package/dist/components/messages/UserTextMessage.js.map +7 -0
  265. package/dist/components/messages/UserToolResultMessage/UserToolCanceledMessage.js +10 -0
  266. package/dist/components/messages/UserToolResultMessage/UserToolCanceledMessage.js.map +7 -0
  267. package/dist/components/messages/UserToolResultMessage/UserToolErrorMessage.js +15 -0
  268. package/dist/components/messages/UserToolResultMessage/UserToolErrorMessage.js.map +7 -0
  269. package/dist/components/messages/UserToolResultMessage/UserToolRejectMessage.js +25 -0
  270. package/dist/components/messages/UserToolResultMessage/UserToolRejectMessage.js.map +7 -0
  271. package/dist/components/messages/UserToolResultMessage/UserToolResultMessage.js +47 -0
  272. package/dist/components/messages/UserToolResultMessage/UserToolResultMessage.js.map +7 -0
  273. package/dist/components/messages/UserToolResultMessage/UserToolSuccessMessage.js +23 -0
  274. package/dist/components/messages/UserToolResultMessage/UserToolSuccessMessage.js.map +7 -0
  275. package/dist/components/messages/UserToolResultMessage/utils.js +50 -0
  276. package/dist/components/messages/UserToolResultMessage/utils.js.map +7 -0
  277. package/dist/components/permissions/BashPermissionRequest/BashPermissionRequest.js +112 -0
  278. package/dist/components/permissions/BashPermissionRequest/BashPermissionRequest.js.map +7 -0
  279. package/dist/components/permissions/FallbackPermissionRequest.js +131 -0
  280. package/dist/components/permissions/FallbackPermissionRequest.js.map +7 -0
  281. package/dist/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.js +159 -0
  282. package/dist/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.js.map +7 -0
  283. package/dist/components/permissions/FileEditPermissionRequest/FileEditToolDiff.js +58 -0
  284. package/dist/components/permissions/FileEditPermissionRequest/FileEditToolDiff.js.map +7 -0
  285. package/dist/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.js +153 -0
  286. package/dist/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.js.map +7 -0
  287. package/dist/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.js +70 -0
  288. package/dist/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.js.map +7 -0
  289. package/dist/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.js +212 -0
  290. package/dist/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.js.map +7 -0
  291. package/dist/components/permissions/PermissionRequest.js +70 -0
  292. package/dist/components/permissions/PermissionRequest.js.map +7 -0
  293. package/dist/components/permissions/PermissionRequestTitle.js +52 -0
  294. package/dist/components/permissions/PermissionRequestTitle.js.map +7 -0
  295. package/dist/components/permissions/hooks.js +23 -0
  296. package/dist/components/permissions/hooks.js.map +7 -0
  297. package/dist/components/permissions/toolUseOptions.js +46 -0
  298. package/dist/components/permissions/toolUseOptions.js.map +7 -0
  299. package/dist/components/permissions/utils.js +21 -0
  300. package/dist/components/permissions/utils.js.map +7 -0
  301. package/dist/constants/claude-asterisk-ascii-art.js +242 -0
  302. package/dist/constants/claude-asterisk-ascii-art.js.map +7 -0
  303. package/dist/constants/colors.js +126 -0
  304. package/dist/constants/colors.js.map +7 -0
  305. package/dist/constants/compressionPrompts.js +73 -0
  306. package/dist/constants/compressionPrompts.js.map +7 -0
  307. package/dist/constants/figures.js +6 -0
  308. package/dist/constants/figures.js.map +7 -0
  309. package/dist/constants/macros.js +11 -0
  310. package/dist/constants/macros.js.map +7 -0
  311. package/dist/constants/modelCapabilities.js +154 -0
  312. package/dist/constants/modelCapabilities.js.map +7 -0
  313. package/dist/constants/models.js +1034 -0
  314. package/dist/constants/models.js.map +7 -0
  315. package/dist/constants/oauth.js +18 -0
  316. package/dist/constants/oauth.js.map +7 -0
  317. package/dist/constants/product.js +26 -0
  318. package/dist/constants/product.js.map +7 -0
  319. package/dist/constants/prompts.js +168 -0
  320. package/dist/constants/prompts.js.map +7 -0
  321. package/dist/constants/releaseNotes.js +9 -0
  322. package/dist/constants/releaseNotes.js.map +7 -0
  323. package/dist/constants/symbols.js +50 -0
  324. package/dist/constants/symbols.js.map +7 -0
  325. package/dist/context/PermissionContext.js +111 -0
  326. package/dist/context/PermissionContext.js.map +7 -0
  327. package/dist/context.js +278 -0
  328. package/dist/context.js.map +7 -0
  329. package/dist/cost-tracker.js +76 -0
  330. package/dist/cost-tracker.js.map +7 -0
  331. package/dist/entrypoints/cli-wrapper.js +61 -0
  332. package/dist/entrypoints/cli-wrapper.js.map +7 -0
  333. package/dist/entrypoints/cli.js +1115 -0
  334. package/dist/entrypoints/cli.js.map +7 -0
  335. package/dist/entrypoints/mcp.js +150 -0
  336. package/dist/entrypoints/mcp.js.map +7 -0
  337. package/dist/history.js +25 -0
  338. package/dist/history.js.map +7 -0
  339. package/dist/hooks/useApiKeyVerification.js +12 -0
  340. package/dist/hooks/useApiKeyVerification.js.map +7 -0
  341. package/dist/hooks/useArrowKeyHistory.js +50 -0
  342. package/dist/hooks/useArrowKeyHistory.js.map +7 -0
  343. package/dist/hooks/useCanUseTool.js +87 -0
  344. package/dist/hooks/useCanUseTool.js.map +7 -0
  345. package/dist/hooks/useCancelRequest.js +28 -0
  346. package/dist/hooks/useCancelRequest.js.map +7 -0
  347. package/dist/hooks/useDoublePress.js +31 -0
  348. package/dist/hooks/useDoublePress.js.map +7 -0
  349. package/dist/hooks/useExitOnCtrlCD.js +26 -0
  350. package/dist/hooks/useExitOnCtrlCD.js.map +7 -0
  351. package/dist/hooks/useHistorySearch.js +62 -0
  352. package/dist/hooks/useHistorySearch.js.map +7 -0
  353. package/dist/hooks/useInterval.js +18 -0
  354. package/dist/hooks/useInterval.js.map +7 -0
  355. package/dist/hooks/useLogMessages.js +14 -0
  356. package/dist/hooks/useLogMessages.js.map +7 -0
  357. package/dist/hooks/useLogStartupTime.js +10 -0
  358. package/dist/hooks/useLogStartupTime.js.map +7 -0
  359. package/dist/hooks/useNotifyAfterTimeout.js +42 -0
  360. package/dist/hooks/useNotifyAfterTimeout.js.map +7 -0
  361. package/dist/hooks/usePermissionRequestLogging.js +23 -0
  362. package/dist/hooks/usePermissionRequestLogging.js.map +7 -0
  363. package/dist/hooks/useTerminalSize.js +38 -0
  364. package/dist/hooks/useTerminalSize.js.map +7 -0
  365. package/dist/hooks/useTextInput.js +252 -0
  366. package/dist/hooks/useTextInput.js.map +7 -0
  367. package/dist/hooks/useUnifiedCompletion.js +929 -0
  368. package/dist/hooks/useUnifiedCompletion.js.map +7 -0
  369. package/dist/index.js +5 -0
  370. package/dist/index.js.map +7 -0
  371. package/dist/messages.js +33 -0
  372. package/dist/messages.js.map +7 -0
  373. package/dist/package.json +4 -0
  374. package/dist/permissions.js +194 -0
  375. package/dist/permissions.js.map +7 -0
  376. package/dist/query.js +499 -0
  377. package/dist/query.js.map +7 -0
  378. package/dist/screens/Doctor.js +22 -0
  379. package/dist/screens/Doctor.js.map +7 -0
  380. package/dist/screens/LogList.js +55 -0
  381. package/dist/screens/LogList.js.map +7 -0
  382. package/dist/screens/REPL.js +671 -0
  383. package/dist/screens/REPL.js.map +7 -0
  384. package/dist/screens/ResumeConversation.js +56 -0
  385. package/dist/screens/ResumeConversation.js.map +7 -0
  386. package/dist/services/adapters/base.js +29 -0
  387. package/dist/services/adapters/base.js.map +7 -0
  388. package/dist/services/adapters/chatCompletions.js +69 -0
  389. package/dist/services/adapters/chatCompletions.js.map +7 -0
  390. package/dist/services/adapters/responsesAPI.js +126 -0
  391. package/dist/services/adapters/responsesAPI.js.map +7 -0
  392. package/dist/services/claude.js +1573 -0
  393. package/dist/services/claude.js.map +7 -0
  394. package/dist/services/compressionService.js +210 -0
  395. package/dist/services/compressionService.js.map +7 -0
  396. package/dist/services/customCommands.js +437 -0
  397. package/dist/services/customCommands.js.map +7 -0
  398. package/dist/services/fileFreshness.js +275 -0
  399. package/dist/services/fileFreshness.js.map +7 -0
  400. package/dist/services/gpt5ConnectionTest.js +248 -0
  401. package/dist/services/gpt5ConnectionTest.js.map +7 -0
  402. package/dist/services/hookExecutor.js +276 -0
  403. package/dist/services/hookExecutor.js.map +7 -0
  404. package/dist/services/mainAgentCompressor.js +84 -0
  405. package/dist/services/mainAgentCompressor.js.map +7 -0
  406. package/dist/services/mcpClient.js +449 -0
  407. package/dist/services/mcpClient.js.map +7 -0
  408. package/dist/services/mcpServerApproval.js +55 -0
  409. package/dist/services/mcpServerApproval.js.map +7 -0
  410. package/dist/services/mentionProcessor.js +201 -0
  411. package/dist/services/mentionProcessor.js.map +7 -0
  412. package/dist/services/modelAdapterFactory.js +47 -0
  413. package/dist/services/modelAdapterFactory.js.map +7 -0
  414. package/dist/services/notifier.js +35 -0
  415. package/dist/services/notifier.js.map +7 -0
  416. package/dist/services/oauth.js +247 -0
  417. package/dist/services/oauth.js.map +7 -0
  418. package/dist/services/openai.js +995 -0
  419. package/dist/services/openai.js.map +7 -0
  420. package/dist/services/responseStateManager.js +68 -0
  421. package/dist/services/responseStateManager.js.map +7 -0
  422. package/dist/services/sentry.js +9 -0
  423. package/dist/services/sentry.js.map +7 -0
  424. package/dist/services/subagentAbortManager.js +95 -0
  425. package/dist/services/subagentAbortManager.js.map +7 -0
  426. package/dist/services/subagentCompressor.js +146 -0
  427. package/dist/services/subagentCompressor.js.map +7 -0
  428. package/dist/services/systemReminder.js +335 -0
  429. package/dist/services/systemReminder.js.map +7 -0
  430. package/dist/services/vcr.js +133 -0
  431. package/dist/services/vcr.js.map +7 -0
  432. package/dist/tools/ArchitectTool/ArchitectTool.js +119 -0
  433. package/dist/tools/ArchitectTool/ArchitectTool.js.map +7 -0
  434. package/dist/tools/ArchitectTool/prompt.js +18 -0
  435. package/dist/tools/ArchitectTool/prompt.js.map +7 -0
  436. package/dist/tools/AskExpertModelTool/AskExpertModelTool.js +423 -0
  437. package/dist/tools/AskExpertModelTool/AskExpertModelTool.js.map +7 -0
  438. package/dist/tools/BashOutputTool/BashOutputTool.js +120 -0
  439. package/dist/tools/BashOutputTool/BashOutputTool.js.map +7 -0
  440. package/dist/tools/BashOutputTool/BashOutputToolResultMessage.js +11 -0
  441. package/dist/tools/BashOutputTool/BashOutputToolResultMessage.js.map +7 -0
  442. package/dist/tools/BashOutputTool/prompt.js +13 -0
  443. package/dist/tools/BashOutputTool/prompt.js.map +7 -0
  444. package/dist/tools/BashTool/BashTool.js +209 -0
  445. package/dist/tools/BashTool/BashTool.js.map +7 -0
  446. package/dist/tools/BashTool/BashToolResultMessage.js +21 -0
  447. package/dist/tools/BashTool/BashToolResultMessage.js.map +7 -0
  448. package/dist/tools/BashTool/OutputLine.js +30 -0
  449. package/dist/tools/BashTool/OutputLine.js.map +7 -0
  450. package/dist/tools/BashTool/prompt.js +180 -0
  451. package/dist/tools/BashTool/prompt.js.map +7 -0
  452. package/dist/tools/BashTool/utils.js +51 -0
  453. package/dist/tools/BashTool/utils.js.map +7 -0
  454. package/dist/tools/FileEditTool/FileEditTool.js +226 -0
  455. package/dist/tools/FileEditTool/FileEditTool.js.map +7 -0
  456. package/dist/tools/FileEditTool/prompt.js +54 -0
  457. package/dist/tools/FileEditTool/prompt.js.map +7 -0
  458. package/dist/tools/FileEditTool/utils.js +42 -0
  459. package/dist/tools/FileEditTool/utils.js.map +7 -0
  460. package/dist/tools/FileReadTool/FileReadTool.js +272 -0
  461. package/dist/tools/FileReadTool/FileReadTool.js.map +7 -0
  462. package/dist/tools/FileReadTool/prompt.js +10 -0
  463. package/dist/tools/FileReadTool/prompt.js.map +7 -0
  464. package/dist/tools/FileWriteTool/FileWriteTool.js +202 -0
  465. package/dist/tools/FileWriteTool/FileWriteTool.js.map +7 -0
  466. package/dist/tools/FileWriteTool/prompt.js +14 -0
  467. package/dist/tools/FileWriteTool/prompt.js.map +7 -0
  468. package/dist/tools/GlobTool/GlobTool.js +88 -0
  469. package/dist/tools/GlobTool/GlobTool.js.map +7 -0
  470. package/dist/tools/GlobTool/prompt.js +12 -0
  471. package/dist/tools/GlobTool/prompt.js.map +7 -0
  472. package/dist/tools/GrepTool/GrepTool.js +107 -0
  473. package/dist/tools/GrepTool/GrepTool.js.map +7 -0
  474. package/dist/tools/GrepTool/prompt.js +15 -0
  475. package/dist/tools/GrepTool/prompt.js.map +7 -0
  476. package/dist/tools/KillShellTool/KillShellTool.js +92 -0
  477. package/dist/tools/KillShellTool/KillShellTool.js.map +7 -0
  478. package/dist/tools/KillShellTool/KillShellToolResultMessage.js +11 -0
  479. package/dist/tools/KillShellTool/KillShellToolResultMessage.js.map +7 -0
  480. package/dist/tools/KillShellTool/prompt.js +12 -0
  481. package/dist/tools/KillShellTool/prompt.js.map +7 -0
  482. package/dist/tools/MCPTool/MCPTool.js +90 -0
  483. package/dist/tools/MCPTool/MCPTool.js.map +7 -0
  484. package/dist/tools/MCPTool/prompt.js +7 -0
  485. package/dist/tools/MCPTool/prompt.js.map +7 -0
  486. package/dist/tools/MemoryReadTool/MemoryReadTool.js +103 -0
  487. package/dist/tools/MemoryReadTool/MemoryReadTool.js.map +7 -0
  488. package/dist/tools/MemoryReadTool/prompt.js +7 -0
  489. package/dist/tools/MemoryReadTool/prompt.js.map +7 -0
  490. package/dist/tools/MemoryWriteTool/MemoryWriteTool.js +77 -0
  491. package/dist/tools/MemoryWriteTool/MemoryWriteTool.js.map +7 -0
  492. package/dist/tools/MemoryWriteTool/prompt.js +7 -0
  493. package/dist/tools/MemoryWriteTool/prompt.js.map +7 -0
  494. package/dist/tools/MultiEditTool/MultiEditTool.js +301 -0
  495. package/dist/tools/MultiEditTool/MultiEditTool.js.map +7 -0
  496. package/dist/tools/MultiEditTool/prompt.js +48 -0
  497. package/dist/tools/MultiEditTool/prompt.js.map +7 -0
  498. package/dist/tools/NotebookEditTool/NotebookEditTool.js +238 -0
  499. package/dist/tools/NotebookEditTool/NotebookEditTool.js.map +7 -0
  500. package/dist/tools/NotebookEditTool/prompt.js +7 -0
  501. package/dist/tools/NotebookEditTool/prompt.js.map +7 -0
  502. package/dist/tools/NotebookReadTool/NotebookReadTool.js +212 -0
  503. package/dist/tools/NotebookReadTool/NotebookReadTool.js.map +7 -0
  504. package/dist/tools/NotebookReadTool/prompt.js +7 -0
  505. package/dist/tools/NotebookReadTool/prompt.js.map +7 -0
  506. package/dist/tools/SkillTool/SkillTool.js +209 -0
  507. package/dist/tools/SkillTool/SkillTool.js.map +7 -0
  508. package/dist/tools/SkillTool/prompt.js +81 -0
  509. package/dist/tools/SkillTool/prompt.js.map +7 -0
  510. package/dist/tools/TaskTool/TaskTool.js +381 -0
  511. package/dist/tools/TaskTool/TaskTool.js.map +7 -0
  512. package/dist/tools/TaskTool/constants.js +5 -0
  513. package/dist/tools/TaskTool/constants.js.map +7 -0
  514. package/dist/tools/TaskTool/prompt.js +111 -0
  515. package/dist/tools/TaskTool/prompt.js.map +7 -0
  516. package/dist/tools/ThinkTool/ThinkTool.js +40 -0
  517. package/dist/tools/ThinkTool/ThinkTool.js.map +7 -0
  518. package/dist/tools/ThinkTool/prompt.js +16 -0
  519. package/dist/tools/ThinkTool/prompt.js.map +7 -0
  520. package/dist/tools/TodoWriteTool/TodoWriteTool.js +243 -0
  521. package/dist/tools/TodoWriteTool/TodoWriteTool.js.map +7 -0
  522. package/dist/tools/TodoWriteTool/prompt.js +66 -0
  523. package/dist/tools/TodoWriteTool/prompt.js.map +7 -0
  524. package/dist/tools/URLFetcherTool/URLFetcherTool.js +137 -0
  525. package/dist/tools/URLFetcherTool/URLFetcherTool.js.map +7 -0
  526. package/dist/tools/URLFetcherTool/cache.js +45 -0
  527. package/dist/tools/URLFetcherTool/cache.js.map +7 -0
  528. package/dist/tools/URLFetcherTool/htmlToMarkdown.js +42 -0
  529. package/dist/tools/URLFetcherTool/htmlToMarkdown.js.map +7 -0
  530. package/dist/tools/URLFetcherTool/prompt.js +22 -0
  531. package/dist/tools/URLFetcherTool/prompt.js.map +7 -0
  532. package/dist/tools/WebSearchTool/WebSearchTool.js +86 -0
  533. package/dist/tools/WebSearchTool/WebSearchTool.js.map +7 -0
  534. package/dist/tools/WebSearchTool/prompt.js +17 -0
  535. package/dist/tools/WebSearchTool/prompt.js.map +7 -0
  536. package/dist/tools/WebSearchTool/searchProviders.js +48 -0
  537. package/dist/tools/WebSearchTool/searchProviders.js.map +7 -0
  538. package/dist/tools/lsTool/lsTool.js +201 -0
  539. package/dist/tools/lsTool/lsTool.js.map +7 -0
  540. package/dist/tools/lsTool/prompt.js +5 -0
  541. package/dist/tools/lsTool/prompt.js.map +7 -0
  542. package/dist/tools.js +70 -0
  543. package/dist/tools.js.map +7 -0
  544. package/dist/types/PermissionMode.js +82 -0
  545. package/dist/types/PermissionMode.js.map +7 -0
  546. package/dist/types/RequestContext.js +47 -0
  547. package/dist/types/RequestContext.js.map +7 -0
  548. package/dist/types/common.d.js +1 -0
  549. package/dist/types/common.d.js.map +7 -0
  550. package/dist/types/conversation.js +1 -0
  551. package/dist/types/conversation.js.map +7 -0
  552. package/dist/types/hooks.js +38 -0
  553. package/dist/types/hooks.js.map +7 -0
  554. package/dist/types/interactionRound.js +1 -0
  555. package/dist/types/interactionRound.js.map +7 -0
  556. package/dist/types/logs.js +1 -0
  557. package/dist/types/logs.js.map +7 -0
  558. package/dist/types/marketplace.js +101 -0
  559. package/dist/types/marketplace.js.map +7 -0
  560. package/dist/types/modelCapabilities.js +1 -0
  561. package/dist/types/modelCapabilities.js.map +7 -0
  562. package/dist/types/notebook.js +1 -0
  563. package/dist/types/notebook.js.map +7 -0
  564. package/dist/types/plugin.js +83 -0
  565. package/dist/types/plugin.js.map +7 -0
  566. package/dist/types/subagent.js +1 -0
  567. package/dist/types/subagent.js.map +7 -0
  568. package/dist/utils/BackgroundShellManager.js +215 -0
  569. package/dist/utils/BackgroundShellManager.js.map +7 -0
  570. package/dist/utils/Cursor.js +315 -0
  571. package/dist/utils/Cursor.js.map +7 -0
  572. package/dist/utils/PersistentShell.js +371 -0
  573. package/dist/utils/PersistentShell.js.map +7 -0
  574. package/dist/utils/advancedFuzzyMatcher.js +206 -0
  575. package/dist/utils/advancedFuzzyMatcher.js.map +7 -0
  576. package/dist/utils/agentLoader.js +244 -0
  577. package/dist/utils/agentLoader.js.map +7 -0
  578. package/dist/utils/agentStorage.js +59 -0
  579. package/dist/utils/agentStorage.js.map +7 -0
  580. package/dist/utils/array.js +7 -0
  581. package/dist/utils/array.js.map +7 -0
  582. package/dist/utils/ask.js +77 -0
  583. package/dist/utils/ask.js.map +7 -0
  584. package/dist/utils/auth.js +11 -0
  585. package/dist/utils/auth.js.map +7 -0
  586. package/dist/utils/autoCompactCore.js +126 -0
  587. package/dist/utils/autoCompactCore.js.map +7 -0
  588. package/dist/utils/autoUpdater.js +107 -0
  589. package/dist/utils/autoUpdater.js.map +7 -0
  590. package/dist/utils/browser.js +15 -0
  591. package/dist/utils/browser.js.map +7 -0
  592. package/dist/utils/cleanup.js +54 -0
  593. package/dist/utils/cleanup.js.map +7 -0
  594. package/dist/utils/commands.js +207 -0
  595. package/dist/utils/commands.js.map +7 -0
  596. package/dist/utils/commonUnixCommands.js +687 -0
  597. package/dist/utils/commonUnixCommands.js.map +7 -0
  598. package/dist/utils/compressionMode.js +47 -0
  599. package/dist/utils/compressionMode.js.map +7 -0
  600. package/dist/utils/config.js +651 -0
  601. package/dist/utils/config.js.map +7 -0
  602. package/dist/utils/conversationRecovery.js +35 -0
  603. package/dist/utils/conversationRecovery.js.map +7 -0
  604. package/dist/utils/debugLogger.js +889 -0
  605. package/dist/utils/debugLogger.js.map +7 -0
  606. package/dist/utils/diff.js +32 -0
  607. package/dist/utils/diff.js.map +7 -0
  608. package/dist/utils/env.js +44 -0
  609. package/dist/utils/env.js.map +7 -0
  610. package/dist/utils/errors.js +23 -0
  611. package/dist/utils/errors.js.map +7 -0
  612. package/dist/utils/execFileNoThrow.js +44 -0
  613. package/dist/utils/execFileNoThrow.js.map +7 -0
  614. package/dist/utils/expertChatStorage.js +78 -0
  615. package/dist/utils/expertChatStorage.js.map +7 -0
  616. package/dist/utils/file.js +282 -0
  617. package/dist/utils/file.js.map +7 -0
  618. package/dist/utils/fileRecoveryCore.js +41 -0
  619. package/dist/utils/fileRecoveryCore.js.map +7 -0
  620. package/dist/utils/format.js +41 -0
  621. package/dist/utils/format.js.map +7 -0
  622. package/dist/utils/fuzzyMatcher.js +252 -0
  623. package/dist/utils/fuzzyMatcher.js.map +7 -0
  624. package/dist/utils/generators.js +46 -0
  625. package/dist/utils/generators.js.map +7 -0
  626. package/dist/utils/git.js +83 -0
  627. package/dist/utils/git.js.map +7 -0
  628. package/dist/utils/hookManager.js +238 -0
  629. package/dist/utils/hookManager.js.map +7 -0
  630. package/dist/utils/http.js +7 -0
  631. package/dist/utils/http.js.map +7 -0
  632. package/dist/utils/imagePaste.js +29 -0
  633. package/dist/utils/imagePaste.js.map +7 -0
  634. package/dist/utils/json.js +16 -0
  635. package/dist/utils/json.js.map +7 -0
  636. package/dist/utils/log.js +329 -0
  637. package/dist/utils/log.js.map +7 -0
  638. package/dist/utils/markdown.js +187 -0
  639. package/dist/utils/markdown.js.map +7 -0
  640. package/dist/utils/marketplaceManager.js +474 -0
  641. package/dist/utils/marketplaceManager.js.map +7 -0
  642. package/dist/utils/messageContextManager.js +195 -0
  643. package/dist/utils/messageContextManager.js.map +7 -0
  644. package/dist/utils/messages.js +650 -0
  645. package/dist/utils/messages.js.map +7 -0
  646. package/dist/utils/model.js +677 -0
  647. package/dist/utils/model.js.map +7 -0
  648. package/dist/utils/permissions/filesystem.js +80 -0
  649. package/dist/utils/permissions/filesystem.js.map +7 -0
  650. package/dist/utils/pluginInstaller.js +491 -0
  651. package/dist/utils/pluginInstaller.js.map +7 -0
  652. package/dist/utils/pluginLoader.js +582 -0
  653. package/dist/utils/pluginLoader.js.map +7 -0
  654. package/dist/utils/pluginRegistry.js +111 -0
  655. package/dist/utils/pluginRegistry.js.map +7 -0
  656. package/dist/utils/pluginValidator.js +774 -0
  657. package/dist/utils/pluginValidator.js.map +7 -0
  658. package/dist/utils/ptyCompat.js +125 -0
  659. package/dist/utils/ptyCompat.js.map +7 -0
  660. package/dist/utils/replStateMachine.js +145 -0
  661. package/dist/utils/replStateMachine.js.map +7 -0
  662. package/dist/utils/ripgrep.js +131 -0
  663. package/dist/utils/ripgrep.js.map +7 -0
  664. package/dist/utils/roundConverter.js +262 -0
  665. package/dist/utils/roundConverter.js.map +7 -0
  666. package/dist/utils/secureFile.js +483 -0
  667. package/dist/utils/secureFile.js.map +7 -0
  668. package/dist/utils/sessionState.js +22 -0
  669. package/dist/utils/sessionState.js.map +7 -0
  670. package/dist/utils/skillLoader.js +79 -0
  671. package/dist/utils/skillLoader.js.map +7 -0
  672. package/dist/utils/state.js +24 -0
  673. package/dist/utils/state.js.map +7 -0
  674. package/dist/utils/style.js +31 -0
  675. package/dist/utils/style.js.map +7 -0
  676. package/dist/utils/terminal.js +47 -0
  677. package/dist/utils/terminal.js.map +7 -0
  678. package/dist/utils/theme.js +102 -0
  679. package/dist/utils/theme.js.map +7 -0
  680. package/dist/utils/thinking.js +59 -0
  681. package/dist/utils/thinking.js.map +7 -0
  682. package/dist/utils/todoChangeCalculator.js +64 -0
  683. package/dist/utils/todoChangeCalculator.js.map +7 -0
  684. package/dist/utils/todoStorage.js +291 -0
  685. package/dist/utils/todoStorage.js.map +7 -0
  686. package/dist/utils/tokens.js +30 -0
  687. package/dist/utils/tokens.js.map +7 -0
  688. package/dist/utils/toolExecutionController.js +109 -0
  689. package/dist/utils/toolExecutionController.js.map +7 -0
  690. package/dist/utils/unaryLogging.js +6 -0
  691. package/dist/utils/unaryLogging.js.map +7 -0
  692. package/dist/utils/user.js +40 -0
  693. package/dist/utils/user.js.map +7 -0
  694. package/dist/utils/validate.js +132 -0
  695. package/dist/utils/validate.js.map +7 -0
  696. package/dist/version.js +7 -0
  697. package/dist/version.js.map +7 -0
  698. package/dist/yoga.wasm +0 -0
  699. package/package.json +113 -0
  700. package/scripts/postinstall.js +18 -0
  701. package/yoga.wasm +0 -0
@@ -0,0 +1,74 @@
1
+ import { Box, Text } from "ink";
2
+ import React, { useState, useEffect } from "react";
3
+ import { getTheme } from "../utils/theme.js";
4
+ import { execFileNoThrow } from "../utils/execFileNoThrow.js";
5
+ import Spinner from "ink-spinner";
6
+ const BuildCommand = ({ onDone }) => {
7
+ const theme = getTheme();
8
+ const [status, setStatus] = useState("building");
9
+ const [output, setOutput] = useState([]);
10
+ const [error, setError] = useState("");
11
+ useEffect(() => {
12
+ const runBuildProcess = async () => {
13
+ try {
14
+ setStatus("building");
15
+ setOutput((prev) => [...prev, "\u{1F680} Building Minto..."]);
16
+ const buildResult = await execFileNoThrow("bun", ["run", "build"]);
17
+ if (buildResult.code !== 0) {
18
+ setError(`Build failed: ${buildResult.stderr || buildResult.stdout}`);
19
+ setStatus("error");
20
+ return;
21
+ }
22
+ setOutput((prev) => [...prev, "\u2705 Build completed"]);
23
+ setStatus("linking-bun");
24
+ setOutput((prev) => [...prev, "\u{1F517} Linking with bun..."]);
25
+ const bunLinkResult = await execFileNoThrow("bun", ["link"]);
26
+ if (bunLinkResult.code !== 0) {
27
+ setError(`Bun link failed: ${bunLinkResult.stderr || bunLinkResult.stdout}`);
28
+ setStatus("error");
29
+ return;
30
+ }
31
+ setOutput((prev) => [...prev, "\u2705 Bun link completed"]);
32
+ setStatus("linking-npm");
33
+ setOutput((prev) => [...prev, "\u{1F517} Linking with npm..."]);
34
+ const npmLinkResult = await execFileNoThrow("npm", ["link"]);
35
+ if (npmLinkResult.code !== 0) {
36
+ setError(`npm link failed: ${npmLinkResult.stderr || npmLinkResult.stdout}`);
37
+ setStatus("error");
38
+ return;
39
+ }
40
+ setOutput((prev) => [...prev, "\u2705 npm link completed"]);
41
+ setStatus("success");
42
+ } catch (err) {
43
+ setError(err instanceof Error ? err.message : String(err));
44
+ setStatus("error");
45
+ }
46
+ };
47
+ runBuildProcess();
48
+ }, []);
49
+ useEffect(() => {
50
+ if (status === "success" || status === "error") {
51
+ const timer = setTimeout(() => {
52
+ onDone();
53
+ }, 2e3);
54
+ return () => clearTimeout(timer);
55
+ }
56
+ }, [status, onDone]);
57
+ return /* @__PURE__ */ React.createElement(Box, { flexDirection: "column", paddingY: 1 }, /* @__PURE__ */ React.createElement(Box, { marginBottom: 1 }, /* @__PURE__ */ React.createElement(Text, { bold: true, color: theme.primary }, "Build & Link Process")), output.map((line, i) => /* @__PURE__ */ React.createElement(Box, { key: i }, /* @__PURE__ */ React.createElement(Text, null, line))), status !== "success" && status !== "error" && /* @__PURE__ */ React.createElement(Box, { marginTop: 1 }, /* @__PURE__ */ React.createElement(Text, { color: theme.info }, /* @__PURE__ */ React.createElement(Spinner, { type: "dots" }), " ", status === "building" && "Building...", status === "linking-bun" && "Linking with bun...", status === "linking-npm" && "Linking with npm...")), status === "success" && /* @__PURE__ */ React.createElement(Box, { marginTop: 1 }, /* @__PURE__ */ React.createElement(Text, { bold: true, color: theme.success }, "\u2728 All steps completed successfully!")), status === "error" && /* @__PURE__ */ React.createElement(Box, { flexDirection: "column", marginTop: 1 }, /* @__PURE__ */ React.createElement(Text, { bold: true, color: theme.error }, "\u274C Error occurred:"), /* @__PURE__ */ React.createElement(Text, { color: theme.error }, error)), (status === "success" || status === "error") && /* @__PURE__ */ React.createElement(Box, { marginTop: 1 }, /* @__PURE__ */ React.createElement(Text, { dimColor: true }, "Closing in 2 seconds...")));
58
+ };
59
+ const build = {
60
+ name: "build",
61
+ description: "Build the project and link it for local testing (runs: bun run build && bun link && npm link)",
62
+ aliases: ["b"],
63
+ isEnabled: true,
64
+ isHidden: false,
65
+ type: "local-jsx",
66
+ userFacingName: () => "build",
67
+ async call(onDone) {
68
+ return /* @__PURE__ */ React.createElement(BuildCommand, { onDone });
69
+ }
70
+ };
71
+ export {
72
+ build
73
+ };
74
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/commands/build.tsx"],
4
+ "sourcesContent": ["import { Box, Text } from 'ink'\nimport React, { useState, useEffect } from 'react'\nimport { getTheme } from '@utils/theme'\nimport { execFileNoThrow } from '@utils/execFileNoThrow'\nimport Spinner from 'ink-spinner'\nimport type { Command } from '@commands'\n\nconst BuildCommand: React.FC<{ onDone: () => void }> = ({ onDone }) => {\n const theme = getTheme()\n const [status, setStatus] = useState<'building' | 'linking-bun' | 'linking-npm' | 'success' | 'error'>('building')\n const [output, setOutput] = useState<string[]>([])\n const [error, setError] = useState<string>('')\n\n useEffect(() => {\n const runBuildProcess = async () => {\n try {\n // Step 1: Build\n setStatus('building')\n setOutput(prev => [...prev, '\uD83D\uDE80 Building Minto...'])\n\n const buildResult = await execFileNoThrow('bun', ['run', 'build'])\n\n if (buildResult.code !== 0) {\n setError(`Build failed: ${buildResult.stderr || buildResult.stdout}`)\n setStatus('error')\n return\n }\n\n setOutput(prev => [...prev, '\u2705 Build completed'])\n\n // Step 2: Bun link\n setStatus('linking-bun')\n setOutput(prev => [...prev, '\uD83D\uDD17 Linking with bun...'])\n\n const bunLinkResult = await execFileNoThrow('bun', ['link'])\n\n if (bunLinkResult.code !== 0) {\n setError(`Bun link failed: ${bunLinkResult.stderr || bunLinkResult.stdout}`)\n setStatus('error')\n return\n }\n\n setOutput(prev => [...prev, '\u2705 Bun link completed'])\n\n // Step 3: npm link\n setStatus('linking-npm')\n setOutput(prev => [...prev, '\uD83D\uDD17 Linking with npm...'])\n\n const npmLinkResult = await execFileNoThrow('npm', ['link'])\n\n if (npmLinkResult.code !== 0) {\n setError(`npm link failed: ${npmLinkResult.stderr || npmLinkResult.stdout}`)\n setStatus('error')\n return\n }\n\n setOutput(prev => [...prev, '\u2705 npm link completed'])\n setStatus('success')\n\n } catch (err) {\n setError(err instanceof Error ? err.message : String(err))\n setStatus('error')\n }\n }\n\n runBuildProcess()\n }, [])\n\n useEffect(() => {\n if (status === 'success' || status === 'error') {\n // Auto-close after showing result\n const timer = setTimeout(() => {\n onDone()\n }, 2000)\n\n return () => clearTimeout(timer)\n }\n }, [status, onDone])\n\n return (\n <Box flexDirection=\"column\" paddingY={1}>\n <Box marginBottom={1}>\n <Text bold color={theme.primary}>\n Build & Link Process\n </Text>\n </Box>\n\n {output.map((line, i) => (\n <Box key={i}>\n <Text>{line}</Text>\n </Box>\n ))}\n\n {status !== 'success' && status !== 'error' && (\n <Box marginTop={1}>\n <Text color={theme.info}>\n <Spinner type=\"dots\" />\n {' '}\n {status === 'building' && 'Building...'}\n {status === 'linking-bun' && 'Linking with bun...'}\n {status === 'linking-npm' && 'Linking with npm...'}\n </Text>\n </Box>\n )}\n\n {status === 'success' && (\n <Box marginTop={1}>\n <Text bold color={theme.success}>\n \u2728 All steps completed successfully!\n </Text>\n </Box>\n )}\n\n {status === 'error' && (\n <Box flexDirection=\"column\" marginTop={1}>\n <Text bold color={theme.error}>\n \u274C Error occurred:\n </Text>\n <Text color={theme.error}>{error}</Text>\n </Box>\n )}\n\n {(status === 'success' || status === 'error') && (\n <Box marginTop={1}>\n <Text dimColor>\n Closing in 2 seconds...\n </Text>\n </Box>\n )}\n </Box>\n )\n}\n\nexport const build = {\n name: 'build',\n description: 'Build the project and link it for local testing (runs: bun run build && bun link && npm link)',\n aliases: ['b'],\n isEnabled: true,\n isHidden: false,\n type: 'local-jsx',\n userFacingName: () => 'build',\n async call(onDone: (result?: string) => void) {\n return <BuildCommand onDone={onDone} />\n },\n} satisfies Command\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,37 @@
1
+ import { getMessagesSetter } from "../messages.js";
2
+ import { getContext } from "../context.js";
3
+ import { getCodeStyle } from "../utils/style.js";
4
+ import { clearTerminal } from "../utils/terminal.js";
5
+ import { getOriginalCwd, setCwd } from "../utils/state.js";
6
+ import { resetReminderSession } from "../services/systemReminder.js";
7
+ import { resetFileFreshnessSession } from "../services/fileFreshness.js";
8
+ async function clearConversation(context) {
9
+ await clearTerminal();
10
+ getMessagesSetter()([]);
11
+ context.setForkConvoWithMessagesOnTheNextRender([]);
12
+ getContext.cache.clear?.();
13
+ getCodeStyle.cache.clear?.();
14
+ await setCwd(getOriginalCwd());
15
+ resetReminderSession();
16
+ resetFileFreshnessSession();
17
+ }
18
+ const clear = {
19
+ type: "local",
20
+ name: "clear",
21
+ description: "Clear conversation history and free up context",
22
+ isEnabled: true,
23
+ isHidden: false,
24
+ async call(_, context) {
25
+ clearConversation(context);
26
+ return "";
27
+ },
28
+ userFacingName() {
29
+ return "clear";
30
+ }
31
+ };
32
+ var clear_default = clear;
33
+ export {
34
+ clearConversation,
35
+ clear_default as default
36
+ };
37
+ //# sourceMappingURL=clear.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/commands/clear.ts"],
4
+ "sourcesContent": ["import { Command } from '@commands'\nimport { getMessagesSetter } from '@messages'\nimport { getContext } from '@context'\nimport { getCodeStyle } from '@utils/style'\nimport { clearTerminal } from '@utils/terminal'\nimport { getOriginalCwd, setCwd } from '@utils/state'\nimport { Message } from '@query'\nimport { resetReminderSession } from '@services/systemReminder'\nimport { resetFileFreshnessSession } from '@services/fileFreshness'\n\nexport async function clearConversation(context: {\n setForkConvoWithMessagesOnTheNextRender: (\n forkConvoWithMessages: Message[],\n ) => void\n}) {\n await clearTerminal()\n getMessagesSetter()([])\n context.setForkConvoWithMessagesOnTheNextRender([])\n getContext.cache.clear?.()\n getCodeStyle.cache.clear?.()\n await setCwd(getOriginalCwd())\n\n // Reset reminder and file freshness sessions to clean up state\n resetReminderSession()\n resetFileFreshnessSession()\n}\n\nconst clear = {\n type: 'local',\n name: 'clear',\n description: 'Clear conversation history and free up context',\n isEnabled: true,\n isHidden: false,\n async call(_, context) {\n clearConversation(context)\n return ''\n },\n userFacingName() {\n return 'clear'\n },\n} satisfies Command\n\nexport default clear\n"],
5
+ "mappings": "AACA,SAAS,yBAAyB;AAClC,SAAS,kBAAkB;AAC3B,SAAS,oBAAoB;AAC7B,SAAS,qBAAqB;AAC9B,SAAS,gBAAgB,cAAc;AAEvC,SAAS,4BAA4B;AACrC,SAAS,iCAAiC;AAE1C,eAAsB,kBAAkB,SAIrC;AACD,QAAM,cAAc;AACpB,oBAAkB,EAAE,CAAC,CAAC;AACtB,UAAQ,wCAAwC,CAAC,CAAC;AAClD,aAAW,MAAM,QAAQ;AACzB,eAAa,MAAM,QAAQ;AAC3B,QAAM,OAAO,eAAe,CAAC;AAG7B,uBAAqB;AACrB,4BAA0B;AAC5B;AAEA,MAAM,QAAQ;AAAA,EACZ,MAAM;AAAA,EACN,MAAM;AAAA,EACN,aAAa;AAAA,EACb,WAAW;AAAA,EACX,UAAU;AAAA,EACV,MAAM,KAAK,GAAG,SAAS;AACrB,sBAAkB,OAAO;AACzB,WAAO;AAAA,EACT;AAAA,EACA,iBAAiB;AACf,WAAO;AAAA,EACT;AACF;AAEA,IAAO,gBAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,82 @@
1
+ import { getContext } from "../context.js";
2
+ import { getMessagesGetter, getMessagesSetter } from "../messages.js";
3
+ import { API_ERROR_MESSAGE_PREFIX, queryLLM } from "../services/claude.js";
4
+ import {
5
+ createUserMessage,
6
+ normalizeMessagesForAPI
7
+ } from "../utils/messages.js";
8
+ import { getCodeStyle } from "../utils/style.js";
9
+ import { clearTerminal } from "../utils/terminal.js";
10
+ import { resetReminderSession } from "../services/systemReminder.js";
11
+ import { resetFileFreshnessSession } from "../services/fileFreshness.js";
12
+ import { getCompressionPrompt } from "../constants/compressionPrompts.js";
13
+ import { getCompressionMode, getCompressionModeDescription } from "../utils/compressionMode.js";
14
+ const compact = {
15
+ type: "local",
16
+ name: "compact",
17
+ description: "Clear conversation history but keep a summary in context",
18
+ isEnabled: true,
19
+ isHidden: false,
20
+ async call(_, {
21
+ options: { tools },
22
+ abortController,
23
+ setForkConvoWithMessagesOnTheNextRender
24
+ }) {
25
+ const messages = getMessagesGetter()();
26
+ const compressionMode = getCompressionMode();
27
+ const compressionPrompt = getCompressionPrompt(compressionMode);
28
+ const modeDescription = getCompressionModeDescription(compressionMode);
29
+ const summaryRequest = createUserMessage(compressionPrompt);
30
+ const summaryResponse = await queryLLM(
31
+ normalizeMessagesForAPI([...messages, summaryRequest]),
32
+ [
33
+ "You are a helpful AI assistant tasked with creating comprehensive conversation summaries that preserve all essential context for continuing development work."
34
+ ],
35
+ 0,
36
+ tools,
37
+ abortController.signal,
38
+ {
39
+ safeMode: false,
40
+ model: "main",
41
+ // 使用模型指针,让queryLLM统一解析
42
+ prependCLISysprompt: true
43
+ }
44
+ );
45
+ const content = summaryResponse.message.content;
46
+ const summary = typeof content === "string" ? content : content.length > 0 && content[0]?.type === "text" ? content[0].text : null;
47
+ if (!summary) {
48
+ throw new Error(
49
+ `Failed to generate conversation summary - response did not contain valid text content - ${summaryResponse}`
50
+ );
51
+ } else if (summary.startsWith(API_ERROR_MESSAGE_PREFIX)) {
52
+ throw new Error(summary);
53
+ }
54
+ summaryResponse.message.usage = {
55
+ input_tokens: 0,
56
+ output_tokens: summaryResponse.message.usage.output_tokens,
57
+ cache_creation_input_tokens: 0,
58
+ cache_read_input_tokens: 0
59
+ };
60
+ await clearTerminal();
61
+ getMessagesSetter()([]);
62
+ setForkConvoWithMessagesOnTheNextRender([
63
+ createUserMessage(
64
+ `Context has been compressed using ${compressionMode === "business" ? "9-section Business Consulting" : "8-section Code Development"} algorithm. Mode: ${modeDescription}. All essential information has been preserved for seamless continuation.`
65
+ ),
66
+ summaryResponse
67
+ ]);
68
+ getContext.cache.clear?.();
69
+ getCodeStyle.cache.clear?.();
70
+ resetFileFreshnessSession();
71
+ resetReminderSession();
72
+ return "";
73
+ },
74
+ userFacingName() {
75
+ return "compact";
76
+ }
77
+ };
78
+ var compact_default = compact;
79
+ export {
80
+ compact_default as default
81
+ };
82
+ //# sourceMappingURL=compact.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/commands/compact.ts"],
4
+ "sourcesContent": ["import { Command } from '@commands'\nimport { getContext } from '@context'\nimport { getMessagesGetter, getMessagesSetter } from '@messages'\nimport { API_ERROR_MESSAGE_PREFIX, queryLLM } from '@services/claude'\nimport {\n createUserMessage,\n normalizeMessagesForAPI,\n} from '@utils/messages'\nimport { getCodeStyle } from '@utils/style'\nimport { clearTerminal } from '@utils/terminal'\nimport { resetReminderSession } from '@services/systemReminder'\nimport { resetFileFreshnessSession } from '@services/fileFreshness'\nimport { getCompressionPrompt } from '@constants/compressionPrompts'\nimport { getCompressionMode, getCompressionModeDescription } from '@utils/compressionMode'\n\nconst compact = {\n type: 'local',\n name: 'compact',\n description: 'Clear conversation history but keep a summary in context',\n isEnabled: true,\n isHidden: false,\n async call(\n _,\n {\n options: { tools },\n abortController,\n setForkConvoWithMessagesOnTheNextRender,\n },\n ) {\n const messages = getMessagesGetter()()\n\n // Get the compression prompt based on current mode (business or code)\n const compressionMode = getCompressionMode()\n const compressionPrompt = getCompressionPrompt(compressionMode)\n const modeDescription = getCompressionModeDescription(compressionMode)\n\n const summaryRequest = createUserMessage(compressionPrompt)\n\n const summaryResponse = await queryLLM(\n normalizeMessagesForAPI([...messages, summaryRequest]),\n [\n 'You are a helpful AI assistant tasked with creating comprehensive conversation summaries that preserve all essential context for continuing development work.',\n ],\n 0,\n tools,\n abortController.signal,\n {\n safeMode: false,\n model: 'main', // \u4F7F\u7528\u6A21\u578B\u6307\u9488\uFF0C\u8BA9queryLLM\u7EDF\u4E00\u89E3\u6790\n prependCLISysprompt: true,\n },\n )\n\n const content = summaryResponse.message.content\n const summary =\n typeof content === 'string'\n ? content\n : content.length > 0 && content[0]?.type === 'text'\n ? content[0].text\n : null\n\n if (!summary) {\n throw new Error(\n `Failed to generate conversation summary - response did not contain valid text content - ${summaryResponse}`,\n )\n } else if (summary.startsWith(API_ERROR_MESSAGE_PREFIX)) {\n throw new Error(summary)\n }\n\n summaryResponse.message.usage = {\n input_tokens: 0,\n output_tokens: summaryResponse.message.usage.output_tokens,\n cache_creation_input_tokens: 0,\n cache_read_input_tokens: 0,\n }\n\n await clearTerminal()\n getMessagesSetter()([])\n setForkConvoWithMessagesOnTheNextRender([\n createUserMessage(\n `Context has been compressed using ${compressionMode === 'business' ? '9-section Business Consulting' : '8-section Code Development'} algorithm. Mode: ${modeDescription}. All essential information has been preserved for seamless continuation.`,\n ),\n summaryResponse,\n ])\n getContext.cache.clear?.()\n getCodeStyle.cache.clear?.()\n resetFileFreshnessSession()\n\n // Reset reminder and file freshness sessions to clean up state\n resetReminderSession()\n\n return '' // not used, just for typesafety. TODO: avoid this hack\n },\n userFacingName() {\n return 'compact'\n },\n} satisfies Command\n\nexport default compact\n"],
5
+ "mappings": "AACA,SAAS,kBAAkB;AAC3B,SAAS,mBAAmB,yBAAyB;AACrD,SAAS,0BAA0B,gBAAgB;AACnD;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,oBAAoB;AAC7B,SAAS,qBAAqB;AAC9B,SAAS,4BAA4B;AACrC,SAAS,iCAAiC;AAC1C,SAAS,4BAA4B;AACrC,SAAS,oBAAoB,qCAAqC;AAElE,MAAM,UAAU;AAAA,EACd,MAAM;AAAA,EACN,MAAM;AAAA,EACN,aAAa;AAAA,EACb,WAAW;AAAA,EACX,UAAU;AAAA,EACV,MAAM,KACJ,GACA;AAAA,IACE,SAAS,EAAE,MAAM;AAAA,IACjB;AAAA,IACA;AAAA,EACF,GACA;AACA,UAAM,WAAW,kBAAkB,EAAE;AAGrC,UAAM,kBAAkB,mBAAmB;AAC3C,UAAM,oBAAoB,qBAAqB,eAAe;AAC9D,UAAM,kBAAkB,8BAA8B,eAAe;AAErE,UAAM,iBAAiB,kBAAkB,iBAAiB;AAE1D,UAAM,kBAAkB,MAAM;AAAA,MAC5B,wBAAwB,CAAC,GAAG,UAAU,cAAc,CAAC;AAAA,MACrD;AAAA,QACE;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA,gBAAgB;AAAA,MAChB;AAAA,QACE,UAAU;AAAA,QACV,OAAO;AAAA;AAAA,QACP,qBAAqB;AAAA,MACvB;AAAA,IACF;AAEA,UAAM,UAAU,gBAAgB,QAAQ;AACxC,UAAM,UACJ,OAAO,YAAY,WACf,UACA,QAAQ,SAAS,KAAK,QAAQ,CAAC,GAAG,SAAS,SACzC,QAAQ,CAAC,EAAE,OACX;AAER,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI;AAAA,QACR,2FAA2F,eAAe;AAAA,MAC5G;AAAA,IACF,WAAW,QAAQ,WAAW,wBAAwB,GAAG;AACvD,YAAM,IAAI,MAAM,OAAO;AAAA,IACzB;AAEA,oBAAgB,QAAQ,QAAQ;AAAA,MAC9B,cAAc;AAAA,MACd,eAAe,gBAAgB,QAAQ,MAAM;AAAA,MAC7C,6BAA6B;AAAA,MAC7B,yBAAyB;AAAA,IAC3B;AAEA,UAAM,cAAc;AACpB,sBAAkB,EAAE,CAAC,CAAC;AACtB,4CAAwC;AAAA,MACtC;AAAA,QACE,qCAAqC,oBAAoB,aAAa,kCAAkC,4BAA4B,qBAAqB,eAAe;AAAA,MAC1K;AAAA,MACA;AAAA,IACF,CAAC;AACD,eAAW,MAAM,QAAQ;AACzB,iBAAa,MAAM,QAAQ;AAC3B,8BAA0B;AAG1B,yBAAqB;AAErB,WAAO;AAAA,EACT;AAAA,EACA,iBAAiB;AACf,WAAO;AAAA,EACT;AACF;AAEA,IAAO,kBAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,57 @@
1
+ import {
2
+ getCompressionMode,
3
+ setCompressionMode,
4
+ getCompressionModeDescription,
5
+ isValidCompressionMode
6
+ } from "../utils/compressionMode.js";
7
+ import { getTheme } from "../utils/theme.js";
8
+ const compression = {
9
+ type: "local",
10
+ name: "compression",
11
+ description: "Switch compression mode between business and code development",
12
+ aliases: ["compress-mode"],
13
+ isEnabled: true,
14
+ isHidden: false,
15
+ async call(args) {
16
+ const theme = getTheme();
17
+ const modeArg = args?.trim().toLowerCase();
18
+ const currentMode = getCompressionMode();
19
+ if (!modeArg) {
20
+ const description = getCompressionModeDescription(currentMode);
21
+ return `Current Compression Mode
22
+
23
+ Mode: ${currentMode}
24
+ ${description}
25
+
26
+ Use /compression business or /compression code to switch modes`;
27
+ }
28
+ if (!isValidCompressionMode(modeArg)) {
29
+ throw new Error(
30
+ `Invalid compression mode: "${modeArg}". Valid modes are: business, code`
31
+ );
32
+ }
33
+ if (modeArg === currentMode) {
34
+ throw new Error(
35
+ `Already using ${modeArg} compression mode. No change needed.`
36
+ );
37
+ }
38
+ setCompressionMode(modeArg);
39
+ const newDescription = getCompressionModeDescription(modeArg);
40
+ return `\u2713 Compression Mode Updated
41
+
42
+ Changed from: ${currentMode}
43
+ Changed to: ${modeArg}
44
+
45
+ ${newDescription}
46
+
47
+ The new compression algorithm will be used for future compressions`;
48
+ },
49
+ userFacingName() {
50
+ return "compression";
51
+ }
52
+ };
53
+ var compression_default = compression;
54
+ export {
55
+ compression_default as default
56
+ };
57
+ //# sourceMappingURL=compression.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/commands/compression.ts"],
4
+ "sourcesContent": ["import { Command } from '@commands'\nimport {\n getCompressionMode,\n setCompressionMode,\n getCompressionModeDescription,\n isValidCompressionMode,\n} from '@utils/compressionMode'\nimport { getTheme } from '@utils/theme'\n\nconst compression = {\n type: 'local',\n name: 'compression',\n description: 'Switch compression mode between business and code development',\n aliases: ['compress-mode'],\n isEnabled: true,\n isHidden: false,\n async call(args) {\n const theme = getTheme()\n const modeArg = args?.trim().toLowerCase()\n const currentMode = getCompressionMode()\n\n // If no argument provided, show current mode\n if (!modeArg) {\n const description = getCompressionModeDescription(currentMode)\n return (\n `Current Compression Mode\\n\\n` +\n `Mode: ${currentMode}\\n` +\n `${description}\\n\\n` +\n `Use /compression business or /compression code to switch modes`\n )\n }\n\n // Validate the mode argument\n if (!isValidCompressionMode(modeArg)) {\n throw new Error(\n `Invalid compression mode: \"${modeArg}\". Valid modes are: business, code`,\n )\n }\n\n // If trying to switch to the same mode\n if (modeArg === currentMode) {\n throw new Error(\n `Already using ${modeArg} compression mode. No change needed.`,\n )\n }\n\n // Switch the mode\n setCompressionMode(modeArg)\n const newDescription = getCompressionModeDescription(modeArg)\n\n return (\n `\u2713 Compression Mode Updated\\n\\n` +\n `Changed from: ${currentMode}\\n` +\n `Changed to: ${modeArg}\\n\\n` +\n `${newDescription}\\n\\n` +\n `The new compression algorithm will be used for future compressions`\n )\n },\n userFacingName() {\n return 'compression'\n },\n} satisfies Command\n\nexport default compression\n"],
5
+ "mappings": "AACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,gBAAgB;AAEzB,MAAM,cAAc;AAAA,EAClB,MAAM;AAAA,EACN,MAAM;AAAA,EACN,aAAa;AAAA,EACb,SAAS,CAAC,eAAe;AAAA,EACzB,WAAW;AAAA,EACX,UAAU;AAAA,EACV,MAAM,KAAK,MAAM;AACf,UAAM,QAAQ,SAAS;AACvB,UAAM,UAAU,MAAM,KAAK,EAAE,YAAY;AACzC,UAAM,cAAc,mBAAmB;AAGvC,QAAI,CAAC,SAAS;AACZ,YAAM,cAAc,8BAA8B,WAAW;AAC7D,aACE;AAAA;AAAA,QACS,WAAW;AAAA,EACjB,WAAW;AAAA;AAAA;AAAA,IAGlB;AAGA,QAAI,CAAC,uBAAuB,OAAO,GAAG;AACpC,YAAM,IAAI;AAAA,QACR,8BAA8B,OAAO;AAAA,MACvC;AAAA,IACF;AAGA,QAAI,YAAY,aAAa;AAC3B,YAAM,IAAI;AAAA,QACR,iBAAiB,OAAO;AAAA,MAC1B;AAAA,IACF;AAGA,uBAAmB,OAAO;AAC1B,UAAM,iBAAiB,8BAA8B,OAAO;AAE5D,WACE;AAAA;AAAA,gBACiB,WAAW;AAAA,cACb,OAAO;AAAA;AAAA,EACnB,cAAc;AAAA;AAAA;AAAA,EAGrB;AAAA,EACA,iBAAiB;AACf,WAAO;AAAA,EACT;AACF;AAEA,IAAO,sBAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,20 @@
1
+ import { Config } from "../components/Config.js";
2
+ import * as React from "react";
3
+ const config = {
4
+ type: "local-jsx",
5
+ name: "config",
6
+ description: "Open config panel",
7
+ isEnabled: true,
8
+ isHidden: false,
9
+ async call(onDone) {
10
+ return /* @__PURE__ */ React.createElement(Config, { onClose: onDone });
11
+ },
12
+ userFacingName() {
13
+ return "config";
14
+ }
15
+ };
16
+ var config_default = config;
17
+ export {
18
+ config_default as default
19
+ };
20
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/commands/config.tsx"],
4
+ "sourcesContent": ["import { Command } from '@commands'\nimport { Config } from '@components/Config'\nimport * as React from 'react'\n\nconst config = {\n type: 'local-jsx',\n name: 'config',\n description: 'Open config panel',\n isEnabled: true,\n isHidden: false,\n async call(onDone) {\n return <Config onClose={onDone} />\n },\n userFacingName() {\n return 'config'\n },\n} satisfies Command\n\nexport default config\n"],
5
+ "mappings": "AACA,SAAS,cAAc;AACvB,YAAY,WAAW;AAEvB,MAAM,SAAS;AAAA,EACb,MAAM;AAAA,EACN,MAAM;AAAA,EACN,aAAa;AAAA,EACb,WAAW;AAAA,EACX,UAAU;AAAA,EACV,MAAM,KAAK,QAAQ;AACjB,WAAO,oCAAC,UAAO,SAAS,QAAQ;AAAA,EAClC;AAAA,EACA,iBAAiB;AACf,WAAO;AAAA,EACT;AACF;AAEA,IAAO,iBAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,19 @@
1
+ import { formatTotalCost } from "../cost-tracker.js";
2
+ const cost = {
3
+ type: "local",
4
+ name: "cost",
5
+ description: "Show the total cost and duration of the current session",
6
+ isEnabled: true,
7
+ isHidden: false,
8
+ async call() {
9
+ return formatTotalCost();
10
+ },
11
+ userFacingName() {
12
+ return "cost";
13
+ }
14
+ };
15
+ var cost_default = cost;
16
+ export {
17
+ cost_default as default
18
+ };
19
+ //# sourceMappingURL=cost.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/commands/cost.ts"],
4
+ "sourcesContent": ["import type { Command } from '@commands'\nimport { formatTotalCost } from '@costTracker'\n\nconst cost = {\n type: 'local',\n name: 'cost',\n description: 'Show the total cost and duration of the current session',\n isEnabled: true,\n isHidden: false,\n async call() {\n return formatTotalCost()\n },\n userFacingName() {\n return 'cost'\n },\n} satisfies Command\n\nexport default cost\n"],
5
+ "mappings": "AACA,SAAS,uBAAuB;AAEhC,MAAM,OAAO;AAAA,EACX,MAAM;AAAA,EACN,MAAM;AAAA,EACN,aAAa;AAAA,EACb,WAAW;AAAA,EACX,UAAU;AAAA,EACV,MAAM,OAAO;AACX,WAAO,gBAAgB;AAAA,EACzB;AAAA,EACA,iBAAiB;AACf,WAAO;AAAA,EACT;AACF;AAEA,IAAO,eAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,152 @@
1
+ import Table from "cli-table3";
2
+ import { getSystemPrompt } from "../constants/prompts.js";
3
+ import { getContext } from "../context.js";
4
+ import { zodToJsonSchema } from "zod-to-json-schema";
5
+ import { getMessagesGetter } from "../messages.js";
6
+ import { PROJECT_FILE } from "../constants/product.js";
7
+ const BYTES_PER_TOKEN = 4;
8
+ function getContextSections(text) {
9
+ const sections = [];
10
+ const firstContextIndex = text.indexOf("<context");
11
+ if (firstContextIndex > 0) {
12
+ const coreSysprompt = text.slice(0, firstContextIndex).trim();
13
+ if (coreSysprompt) {
14
+ sections.push({
15
+ title: "Core Sysprompt",
16
+ content: coreSysprompt
17
+ });
18
+ }
19
+ }
20
+ let currentPos = firstContextIndex;
21
+ let nonContextContent = "";
22
+ const regex = /<context\s+name="([^"]*)">([\s\S]*?)<\/context>/g;
23
+ let match;
24
+ while ((match = regex.exec(text)) !== null) {
25
+ if (match.index > currentPos) {
26
+ nonContextContent += text.slice(currentPos, match.index);
27
+ }
28
+ const [, name = "Unnamed Section", content = ""] = match;
29
+ sections.push({
30
+ title: name === "codeStyle" ? `CodeStyle + ${PROJECT_FILE}'s` : name,
31
+ content: content.trim()
32
+ });
33
+ currentPos = match.index + match[0].length;
34
+ }
35
+ if (currentPos < text.length) {
36
+ nonContextContent += text.slice(currentPos);
37
+ }
38
+ const trimmedNonContext = nonContextContent.trim();
39
+ if (trimmedNonContext) {
40
+ sections.push({
41
+ title: "Non-contextualized Content",
42
+ content: trimmedNonContext
43
+ });
44
+ }
45
+ return sections;
46
+ }
47
+ function formatTokenCount(bytes) {
48
+ const tokens = bytes / BYTES_PER_TOKEN;
49
+ const k = tokens / 1e3;
50
+ return `${Math.round(k * 10) / 10}k`;
51
+ }
52
+ function formatByteCount(bytes) {
53
+ const kb = bytes / 1024;
54
+ return `${Math.round(kb * 10) / 10}kb`;
55
+ }
56
+ function createSummaryTable(systemText, systemSections, tools, messages) {
57
+ const table = new Table({
58
+ head: ["Component", "Tokens", "Size", "% Used"],
59
+ style: { head: ["bold"] },
60
+ chars: {
61
+ mid: "\u2500",
62
+ "left-mid": "\u251C",
63
+ "mid-mid": "\u253C",
64
+ "right-mid": "\u2524"
65
+ }
66
+ });
67
+ const messagesStr = JSON.stringify(messages);
68
+ const toolsStr = JSON.stringify(tools);
69
+ const total = systemText.length + toolsStr.length + messagesStr.length;
70
+ const getPercentage = (n) => `${Math.round(n / total * 100)}%`;
71
+ table.push([
72
+ "System prompt",
73
+ formatTokenCount(systemText.length),
74
+ formatByteCount(systemText.length),
75
+ getPercentage(systemText.length)
76
+ ]);
77
+ for (const section of systemSections) {
78
+ table.push([
79
+ ` ${section.title}`,
80
+ formatTokenCount(section.content.length),
81
+ formatByteCount(section.content.length),
82
+ getPercentage(section.content.length)
83
+ ]);
84
+ }
85
+ table.push([
86
+ "Tool definitions",
87
+ formatTokenCount(toolsStr.length),
88
+ formatByteCount(toolsStr.length),
89
+ getPercentage(toolsStr.length)
90
+ ]);
91
+ for (const tool of tools) {
92
+ table.push([
93
+ ` ${tool.name}`,
94
+ formatTokenCount(tool.description.length),
95
+ formatByteCount(tool.description.length),
96
+ getPercentage(tool.description.length)
97
+ ]);
98
+ }
99
+ table.push(
100
+ [
101
+ "Messages",
102
+ formatTokenCount(messagesStr.length),
103
+ formatByteCount(messagesStr.length),
104
+ getPercentage(messagesStr.length)
105
+ ],
106
+ ["Total", formatTokenCount(total), formatByteCount(total), "100%"]
107
+ );
108
+ return table.toString();
109
+ }
110
+ const command = {
111
+ name: "ctx-viz",
112
+ description: "Show token usage breakdown for the current conversation context",
113
+ isEnabled: true,
114
+ isHidden: false,
115
+ type: "local",
116
+ userFacingName() {
117
+ return this.name;
118
+ },
119
+ async call(_args, cmdContext) {
120
+ const [systemPromptRaw, sysContext] = await Promise.all([
121
+ getSystemPrompt(),
122
+ getContext()
123
+ ]);
124
+ const rawTools = cmdContext.options.tools;
125
+ let systemPrompt = systemPromptRaw.join("\n");
126
+ for (const [name, content] of Object.entries(sysContext)) {
127
+ systemPrompt += `
128
+ <context name="${name}">${content}</context>`;
129
+ }
130
+ const tools = rawTools.map((t) => {
131
+ const fullPrompt = t.prompt({ safeMode: false });
132
+ const schema = JSON.stringify(
133
+ "inputJSONSchema" in t && t.inputJSONSchema ? t.inputJSONSchema : zodToJsonSchema(t.inputSchema)
134
+ );
135
+ return {
136
+ name: t.name,
137
+ description: `${fullPrompt}
138
+
139
+ Schema:
140
+ ${schema}`
141
+ };
142
+ });
143
+ const messages = getMessagesGetter()();
144
+ const sections = getContextSections(systemPrompt);
145
+ return createSummaryTable(systemPrompt, sections, tools, messages);
146
+ }
147
+ };
148
+ var ctx_viz_default = command;
149
+ export {
150
+ ctx_viz_default as default
151
+ };
152
+ //# sourceMappingURL=ctx_viz.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/commands/ctx_viz.ts"],
4
+ "sourcesContent": ["import type { Command } from '@commands'\nimport type { Tool } from '@tool'\nimport Table from 'cli-table3'\nimport { getSystemPrompt } from '@constants/prompts'\nimport { getContext } from '@context'\nimport { zodToJsonSchema } from 'zod-to-json-schema'\nimport { getMessagesGetter } from '@messages'\nimport { PROJECT_FILE } from '@constants/product'\n// Quick and dirty estimate of bytes per token for rough token counts\nconst BYTES_PER_TOKEN = 4\n\ninterface Section {\n title: string\n content: string\n}\n\ninterface ToolSummary {\n name: string\n description: string\n}\n\nfunction getContextSections(text: string): Section[] {\n const sections: Section[] = []\n\n // Find first <context> tag\n const firstContextIndex = text.indexOf('<context')\n\n // Everything before first tag is Core Sysprompt\n if (firstContextIndex > 0) {\n const coreSysprompt = text.slice(0, firstContextIndex).trim()\n if (coreSysprompt) {\n sections.push({\n title: 'Core Sysprompt',\n content: coreSysprompt,\n })\n }\n }\n\n let currentPos = firstContextIndex\n let nonContextContent = ''\n\n const regex = /<context\\s+name=\"([^\"]*)\">([\\s\\S]*?)<\\/context>/g\n let match: RegExpExecArray | null\n\n while ((match = regex.exec(text)) !== null) {\n // Collect text between context tags\n if (match.index > currentPos) {\n nonContextContent += text.slice(currentPos, match.index)\n }\n\n const [, name = 'Unnamed Section', content = ''] = match\n sections.push({\n title: name === 'codeStyle' ? `CodeStyle + ${PROJECT_FILE}'s` : name,\n content: content.trim(),\n })\n\n currentPos = match.index + match[0].length\n }\n\n // Collect remaining text after last tag\n if (currentPos < text.length) {\n nonContextContent += text.slice(currentPos)\n }\n\n // Add non-contextualized content if present\n const trimmedNonContext = nonContextContent.trim()\n if (trimmedNonContext) {\n sections.push({\n title: 'Non-contextualized Content',\n content: trimmedNonContext,\n })\n }\n\n return sections\n}\n\nfunction formatTokenCount(bytes: number): string {\n const tokens = bytes / BYTES_PER_TOKEN\n const k = tokens / 1000\n return `${Math.round(k * 10) / 10}k`\n}\n\nfunction formatByteCount(bytes: number): string {\n const kb = bytes / 1024\n return `${Math.round(kb * 10) / 10}kb`\n}\n\nfunction createSummaryTable(\n systemText: string,\n systemSections: Section[],\n tools: ToolSummary[],\n messages: unknown,\n): string {\n const table = new Table({\n head: ['Component', 'Tokens', 'Size', '% Used'],\n style: { head: ['bold'] },\n chars: {\n mid: '\u2500',\n 'left-mid': '\u251C',\n 'mid-mid': '\u253C',\n 'right-mid': '\u2524',\n },\n })\n\n const messagesStr = JSON.stringify(messages)\n const toolsStr = JSON.stringify(tools)\n\n // Calculate total for percentages\n const total = systemText.length + toolsStr.length + messagesStr.length\n const getPercentage = (n: number) => `${Math.round((n / total) * 100)}%`\n\n // System prompt and its sections\n table.push([\n 'System prompt',\n formatTokenCount(systemText.length),\n formatByteCount(systemText.length),\n getPercentage(systemText.length),\n ])\n for (const section of systemSections) {\n table.push([\n ` ${section.title}`,\n formatTokenCount(section.content.length),\n formatByteCount(section.content.length),\n getPercentage(section.content.length),\n ])\n }\n\n // Tools\n table.push([\n 'Tool definitions',\n formatTokenCount(toolsStr.length),\n formatByteCount(toolsStr.length),\n getPercentage(toolsStr.length),\n ])\n for (const tool of tools) {\n table.push([\n ` ${tool.name}`,\n formatTokenCount(tool.description.length),\n formatByteCount(tool.description.length),\n getPercentage(tool.description.length),\n ])\n }\n\n // Messages and total\n table.push(\n [\n 'Messages',\n formatTokenCount(messagesStr.length),\n formatByteCount(messagesStr.length),\n getPercentage(messagesStr.length),\n ],\n ['Total', formatTokenCount(total), formatByteCount(total), '100%'],\n )\n\n return table.toString()\n}\n\nconst command: Command = {\n name: 'ctx-viz',\n description:\n 'Show token usage breakdown for the current conversation context',\n isEnabled: true,\n isHidden: false,\n type: 'local',\n\n userFacingName() {\n return this.name\n },\n\n async call(_args: string, cmdContext: { options: { tools: Tool[] } }) {\n // Get tools and system prompt with injected context\n const [systemPromptRaw, sysContext] = await Promise.all([\n getSystemPrompt(),\n getContext(),\n ])\n\n const rawTools = cmdContext.options.tools\n\n // Full system prompt with context sections injected\n let systemPrompt = systemPromptRaw.join('\\n')\n for (const [name, content] of Object.entries(sysContext)) {\n systemPrompt += `\\n<context name=\"${name}\">${content}</context>`\n }\n\n // Get full tool definitions including prompts and schemas\n const tools = rawTools.map(t => {\n // Get full prompt and schema\n const fullPrompt = t.prompt({ safeMode: false })\n const schema = JSON.stringify(\n 'inputJSONSchema' in t && t.inputJSONSchema\n ? t.inputJSONSchema\n : zodToJsonSchema(t.inputSchema),\n )\n\n return {\n name: t.name,\n description: `${fullPrompt}\\n\\nSchema:\\n${schema}`,\n }\n })\n\n // Get current messages from REPL\n const messages = getMessagesGetter()()\n\n const sections = getContextSections(systemPrompt)\n return createSummaryTable(systemPrompt, sections, tools, messages)\n },\n}\n\nexport default command\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,25 @@
1
+ import React from "react";
2
+ import { Doctor } from "../screens/Doctor.js";
3
+ import { PRODUCT_NAME } from "../constants/product.js";
4
+ const doctor = {
5
+ name: "doctor",
6
+ description: `Checks the health of your ${PRODUCT_NAME} installation`,
7
+ isEnabled: true,
8
+ isHidden: false,
9
+ userFacingName() {
10
+ return "doctor";
11
+ },
12
+ type: "local-jsx",
13
+ call(onDone) {
14
+ const element = React.createElement(Doctor, {
15
+ onDone,
16
+ doctorMode: true
17
+ });
18
+ return Promise.resolve(element);
19
+ }
20
+ };
21
+ var doctor_default = doctor;
22
+ export {
23
+ doctor_default as default
24
+ };
25
+ //# sourceMappingURL=doctor.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/commands/doctor.ts"],
4
+ "sourcesContent": ["import React from 'react'\nimport type { Command } from '@commands'\nimport { Doctor } from '@screens/Doctor'\nimport { PRODUCT_NAME } from '@constants/product'\n\nconst doctor: Command = {\n name: 'doctor',\n description: `Checks the health of your ${PRODUCT_NAME} installation`,\n isEnabled: true,\n isHidden: false,\n userFacingName() {\n return 'doctor'\n },\n type: 'local-jsx',\n call(onDone) {\n const element = React.createElement(Doctor, {\n onDone,\n doctorMode: true,\n })\n return Promise.resolve(element)\n },\n}\n\nexport default doctor\n"],
5
+ "mappings": "AAAA,OAAO,WAAW;AAElB,SAAS,cAAc;AACvB,SAAS,oBAAoB;AAE7B,MAAM,SAAkB;AAAA,EACtB,MAAM;AAAA,EACN,aAAa,6BAA6B,YAAY;AAAA,EACtD,WAAW;AAAA,EACX,UAAU;AAAA,EACV,iBAAiB;AACf,WAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,EACN,KAAK,QAAQ;AACX,UAAM,UAAU,MAAM,cAAc,QAAQ;AAAA,MAC1C;AAAA,MACA,YAAY;AAAA,IACd,CAAC;AACD,WAAO,QAAQ,QAAQ,OAAO;AAAA,EAChC;AACF;AAEA,IAAO,iBAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,20 @@
1
+ import { Help } from "../components/Help.js";
2
+ import * as React from "react";
3
+ const help = {
4
+ type: "local-jsx",
5
+ name: "help",
6
+ description: "Show help and available commands",
7
+ isEnabled: true,
8
+ isHidden: false,
9
+ async call(onDone, context) {
10
+ return /* @__PURE__ */ React.createElement(Help, { commands: context.options?.commands || [], onClose: onDone });
11
+ },
12
+ userFacingName() {
13
+ return "help";
14
+ }
15
+ };
16
+ var help_default = help;
17
+ export {
18
+ help_default as default
19
+ };
20
+ //# sourceMappingURL=help.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/commands/help.tsx"],
4
+ "sourcesContent": ["import { Command } from '@commands'\nimport { Help } from '@components/Help'\nimport * as React from 'react'\n\nconst help = {\n type: 'local-jsx',\n name: 'help',\n description: 'Show help and available commands',\n isEnabled: true,\n isHidden: false,\n async call(onDone, context) {\n return <Help commands={context.options?.commands || []} onClose={onDone} />\n },\n userFacingName() {\n return 'help'\n },\n} satisfies Command\n\nexport default help\n"],
5
+ "mappings": "AACA,SAAS,YAAY;AACrB,YAAY,WAAW;AAEvB,MAAM,OAAO;AAAA,EACX,MAAM;AAAA,EACN,MAAM;AAAA,EACN,aAAa;AAAA,EACb,WAAW;AAAA,EACX,UAAU;AAAA,EACV,MAAM,KAAK,QAAQ,SAAS;AAC1B,WAAO,oCAAC,QAAK,UAAU,QAAQ,SAAS,YAAY,CAAC,GAAG,SAAS,QAAQ;AAAA,EAC3E;AAAA,EACA,iBAAiB;AACf,WAAO;AAAA,EACT;AACF;AAEA,IAAO,eAAQ;",
6
+ "names": []
7
+ }