@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.
- package/LICENSE +201 -0
- package/README.md +1097 -0
- package/README.zh-CN.md +1097 -0
- package/cli.js +59 -0
- package/dist/Tool.js +1 -0
- package/dist/Tool.js.map +7 -0
- package/dist/commands/agents.js +2086 -0
- package/dist/commands/agents.js.map +7 -0
- package/dist/commands/approvedTools.js +36 -0
- package/dist/commands/approvedTools.js.map +7 -0
- package/dist/commands/bug.js +21 -0
- package/dist/commands/bug.js.map +7 -0
- package/dist/commands/build.js +74 -0
- package/dist/commands/build.js.map +7 -0
- package/dist/commands/clear.js +37 -0
- package/dist/commands/clear.js.map +7 -0
- package/dist/commands/compact.js +82 -0
- package/dist/commands/compact.js.map +7 -0
- package/dist/commands/compression.js +57 -0
- package/dist/commands/compression.js.map +7 -0
- package/dist/commands/config.js +20 -0
- package/dist/commands/config.js.map +7 -0
- package/dist/commands/cost.js +19 -0
- package/dist/commands/cost.js.map +7 -0
- package/dist/commands/ctx_viz.js +152 -0
- package/dist/commands/ctx_viz.js.map +7 -0
- package/dist/commands/doctor.js +25 -0
- package/dist/commands/doctor.js.map +7 -0
- package/dist/commands/help.js +20 -0
- package/dist/commands/help.js.map +7 -0
- package/dist/commands/init.js +38 -0
- package/dist/commands/init.js.map +7 -0
- package/dist/commands/listen.js +37 -0
- package/dist/commands/listen.js.map +7 -0
- package/dist/commands/login.js +37 -0
- package/dist/commands/login.js.map +7 -0
- package/dist/commands/logout.js +33 -0
- package/dist/commands/logout.js.map +7 -0
- package/dist/commands/mcp-interactive.js +267 -0
- package/dist/commands/mcp-interactive.js.map +7 -0
- package/dist/commands/mcp.js +40 -0
- package/dist/commands/mcp.js.map +7 -0
- package/dist/commands/mcp_refresh.js +40 -0
- package/dist/commands/mcp_refresh.js.map +7 -0
- package/dist/commands/model.js +41 -0
- package/dist/commands/model.js.map +7 -0
- package/dist/commands/modelstatus.js +21 -0
- package/dist/commands/modelstatus.js.map +7 -0
- package/dist/commands/onboarding.js +36 -0
- package/dist/commands/onboarding.js.map +7 -0
- package/dist/commands/plugin/AddMarketplaceForm.js +62 -0
- package/dist/commands/plugin/AddMarketplaceForm.js.map +7 -0
- package/dist/commands/plugin/ConfirmDialog.js +71 -0
- package/dist/commands/plugin/ConfirmDialog.js.map +7 -0
- package/dist/commands/plugin/ErrorView.js +33 -0
- package/dist/commands/plugin/ErrorView.js.map +7 -0
- package/dist/commands/plugin/InstalledPluginsByMarketplace.js +135 -0
- package/dist/commands/plugin/InstalledPluginsByMarketplace.js.map +7 -0
- package/dist/commands/plugin/InstalledPluginsManager.js +99 -0
- package/dist/commands/plugin/InstalledPluginsManager.js.map +7 -0
- package/dist/commands/plugin/LoadingView.js +14 -0
- package/dist/commands/plugin/LoadingView.js.map +7 -0
- package/dist/commands/plugin/MainMenu.js +57 -0
- package/dist/commands/plugin/MainMenu.js.map +7 -0
- package/dist/commands/plugin/MarketplaceManager.js +155 -0
- package/dist/commands/plugin/MarketplaceManager.js.map +7 -0
- package/dist/commands/plugin/MarketplaceSelector.js +119 -0
- package/dist/commands/plugin/MarketplaceSelector.js.map +7 -0
- package/dist/commands/plugin/PlaceholderScreen.js +16 -0
- package/dist/commands/plugin/PlaceholderScreen.js.map +7 -0
- package/dist/commands/plugin/PluginBrowser.js +180 -0
- package/dist/commands/plugin/PluginBrowser.js.map +7 -0
- package/dist/commands/plugin/PluginDetailsInstall.js +152 -0
- package/dist/commands/plugin/PluginDetailsInstall.js.map +7 -0
- package/dist/commands/plugin/PluginDetailsManage.js +200 -0
- package/dist/commands/plugin/PluginDetailsManage.js.map +7 -0
- package/dist/commands/plugin/components.js +16 -0
- package/dist/commands/plugin/components.js.map +7 -0
- package/dist/commands/plugin/example-usage.js +63 -0
- package/dist/commands/plugin/example-usage.js.map +7 -0
- package/dist/commands/plugin/types.js +1 -0
- package/dist/commands/plugin/types.js.map +7 -0
- package/dist/commands/plugin/utils.js +77 -0
- package/dist/commands/plugin/utils.js.map +7 -0
- package/dist/commands/plugin-interactive.js +446 -0
- package/dist/commands/plugin-interactive.js.map +7 -0
- package/dist/commands/plugin.js +523 -0
- package/dist/commands/plugin.js.map +7 -0
- package/dist/commands/pr_comments.js +61 -0
- package/dist/commands/pr_comments.js.map +7 -0
- package/dist/commands/quit.js +16 -0
- package/dist/commands/quit.js.map +7 -0
- package/dist/commands/refreshCommands.js +43 -0
- package/dist/commands/refreshCommands.js.map +7 -0
- package/dist/commands/release-notes.js +30 -0
- package/dist/commands/release-notes.js.map +7 -0
- package/dist/commands/resume.js +35 -0
- package/dist/commands/resume.js.map +7 -0
- package/dist/commands/review.js +51 -0
- package/dist/commands/review.js.map +7 -0
- package/dist/commands/terminalSetup.js +164 -0
- package/dist/commands/terminalSetup.js.map +7 -0
- package/dist/commands.js +104 -0
- package/dist/commands.js.map +7 -0
- package/dist/components/AgentResponseBlock.js +41 -0
- package/dist/components/AgentResponseBlock.js.map +7 -0
- package/dist/components/AgentThinkingBlock.js +40 -0
- package/dist/components/AgentThinkingBlock.js.map +7 -0
- package/dist/components/AsciiLogo.js +19 -0
- package/dist/components/AsciiLogo.js.map +7 -0
- package/dist/components/BackgroundTasksPanel.js +124 -0
- package/dist/components/BackgroundTasksPanel.js.map +7 -0
- package/dist/components/Bug.js +147 -0
- package/dist/components/Bug.js.map +7 -0
- package/dist/components/Config.js +166 -0
- package/dist/components/Config.js.map +7 -0
- package/dist/components/ConsoleOAuthFlow.js +178 -0
- package/dist/components/ConsoleOAuthFlow.js.map +7 -0
- package/dist/components/Cost.js +13 -0
- package/dist/components/Cost.js.map +7 -0
- package/dist/components/CostThresholdDialog.js +38 -0
- package/dist/components/CostThresholdDialog.js.map +7 -0
- package/dist/components/CustomSelect/option-map.js +32 -0
- package/dist/components/CustomSelect/option-map.js.map +7 -0
- package/dist/components/CustomSelect/select-option.js +34 -0
- package/dist/components/CustomSelect/select-option.js.map +7 -0
- package/dist/components/CustomSelect/select.js +64 -0
- package/dist/components/CustomSelect/select.js.map +7 -0
- package/dist/components/CustomSelect/theme.js +1 -0
- package/dist/components/CustomSelect/theme.js.map +7 -0
- package/dist/components/CustomSelect/use-select-state.js +220 -0
- package/dist/components/CustomSelect/use-select-state.js.map +7 -0
- package/dist/components/CustomSelect/use-select.js +21 -0
- package/dist/components/CustomSelect/use-select.js.map +7 -0
- package/dist/components/FallbackToolUseRejectedMessage.js +11 -0
- package/dist/components/FallbackToolUseRejectedMessage.js.map +7 -0
- package/dist/components/FileEditToolUpdatedMessage.js +32 -0
- package/dist/components/FileEditToolUpdatedMessage.js.map +7 -0
- package/dist/components/HeaderBar.js +57 -0
- package/dist/components/HeaderBar.js.map +7 -0
- package/dist/components/Help.js +46 -0
- package/dist/components/Help.js.map +7 -0
- package/dist/components/HighlightedCode.js +30 -0
- package/dist/components/HighlightedCode.js.map +7 -0
- package/dist/components/HistorySearchOverlay.js +48 -0
- package/dist/components/HistorySearchOverlay.js.map +7 -0
- package/dist/components/InteractionRoundBlock.js +56 -0
- package/dist/components/InteractionRoundBlock.js.map +7 -0
- package/dist/components/InvalidConfigDialog.js +83 -0
- package/dist/components/InvalidConfigDialog.js.map +7 -0
- package/dist/components/Link.js +18 -0
- package/dist/components/Link.js.map +7 -0
- package/dist/components/LogSelector.js +50 -0
- package/dist/components/LogSelector.js.map +7 -0
- package/dist/components/Logo.js +96 -0
- package/dist/components/Logo.js.map +7 -0
- package/dist/components/MCPServerApprovalDialog.js +79 -0
- package/dist/components/MCPServerApprovalDialog.js.map +7 -0
- package/dist/components/MCPServerDialogCopy.js +11 -0
- package/dist/components/MCPServerDialogCopy.js.map +7 -0
- package/dist/components/MCPServerMultiselectDialog.js +80 -0
- package/dist/components/MCPServerMultiselectDialog.js.map +7 -0
- package/dist/components/Message.js +146 -0
- package/dist/components/Message.js.map +7 -0
- package/dist/components/MessageResponse.js +9 -0
- package/dist/components/MessageResponse.js.map +7 -0
- package/dist/components/MessageSelector.js +125 -0
- package/dist/components/MessageSelector.js.map +7 -0
- package/dist/components/ModeIndicator.js +38 -0
- package/dist/components/ModeIndicator.js.map +7 -0
- package/dist/components/ModelConfig.js +208 -0
- package/dist/components/ModelConfig.js.map +7 -0
- package/dist/components/ModelListManager.js +140 -0
- package/dist/components/ModelListManager.js.map +7 -0
- package/dist/components/ModelSelector.js +2062 -0
- package/dist/components/ModelSelector.js.map +7 -0
- package/dist/components/ModelStatusDisplay.js +87 -0
- package/dist/components/ModelStatusDisplay.js.map +7 -0
- package/dist/components/Onboarding.js +153 -0
- package/dist/components/Onboarding.js.map +7 -0
- package/dist/components/PressEnterToContinue.js +10 -0
- package/dist/components/PressEnterToContinue.js.map +7 -0
- package/dist/components/ProjectOnboarding.js +99 -0
- package/dist/components/ProjectOnboarding.js.map +7 -0
- package/dist/components/PromptInput.js +755 -0
- package/dist/components/PromptInput.js.map +7 -0
- package/dist/components/QuitSummary.js +81 -0
- package/dist/components/QuitSummary.js.map +7 -0
- package/dist/components/SentryErrorBoundary.js +27 -0
- package/dist/components/SentryErrorBoundary.js.map +7 -0
- package/dist/components/Spinner.js +101 -0
- package/dist/components/Spinner.js.map +7 -0
- package/dist/components/SpinnerSymbol.js +78 -0
- package/dist/components/SpinnerSymbol.js.map +7 -0
- package/dist/components/StreamingBashOutput.js +70 -0
- package/dist/components/StreamingBashOutput.js.map +7 -0
- package/dist/components/StructuredDiff.js +148 -0
- package/dist/components/StructuredDiff.js.map +7 -0
- package/dist/components/SubagentBlock.js +157 -0
- package/dist/components/SubagentBlock.js.map +7 -0
- package/dist/components/SubagentManager.js +65 -0
- package/dist/components/SubagentManager.js.map +7 -0
- package/dist/components/SubagentProgress.js +109 -0
- package/dist/components/SubagentProgress.js.map +7 -0
- package/dist/components/SubagentStatusMarker.js +37 -0
- package/dist/components/SubagentStatusMarker.js.map +7 -0
- package/dist/components/TaskCard.js +170 -0
- package/dist/components/TaskCard.js.map +7 -0
- package/dist/components/TextInput.js +100 -0
- package/dist/components/TextInput.js.map +7 -0
- package/dist/components/TimelineRenderer.js +31 -0
- package/dist/components/TimelineRenderer.js.map +7 -0
- package/dist/components/TodoChangeBlock.js +29 -0
- package/dist/components/TodoChangeBlock.js.map +7 -0
- package/dist/components/TodoChangeLine.js +22 -0
- package/dist/components/TodoChangeLine.js.map +7 -0
- package/dist/components/TodoItem.js +35 -0
- package/dist/components/TodoItem.js.map +7 -0
- package/dist/components/TodoPanel.js +55 -0
- package/dist/components/TodoPanel.js.map +7 -0
- package/dist/components/TokenWarning.js +19 -0
- package/dist/components/TokenWarning.js.map +7 -0
- package/dist/components/ToolExecutionBlock.js +18 -0
- package/dist/components/ToolExecutionBlock.js.map +7 -0
- package/dist/components/ToolUseLoader.js +24 -0
- package/dist/components/ToolUseLoader.js.map +7 -0
- package/dist/components/TrustDialog.js +71 -0
- package/dist/components/TrustDialog.js.map +7 -0
- package/dist/components/UserQueryBlock.js +12 -0
- package/dist/components/UserQueryBlock.js.map +7 -0
- package/dist/components/binary-feedback/BinaryFeedback.js +50 -0
- package/dist/components/binary-feedback/BinaryFeedback.js.map +7 -0
- package/dist/components/binary-feedback/BinaryFeedbackOption.js +94 -0
- package/dist/components/binary-feedback/BinaryFeedbackOption.js.map +7 -0
- package/dist/components/binary-feedback/BinaryFeedbackView.js +139 -0
- package/dist/components/binary-feedback/BinaryFeedbackView.js.map +7 -0
- package/dist/components/binary-feedback/utils.js +108 -0
- package/dist/components/binary-feedback/utils.js.map +7 -0
- package/dist/components/messages/AssistantBashOutputMessage.js +23 -0
- package/dist/components/messages/AssistantBashOutputMessage.js.map +7 -0
- package/dist/components/messages/AssistantLocalCommandOutputMessage.js +36 -0
- package/dist/components/messages/AssistantLocalCommandOutputMessage.js.map +7 -0
- package/dist/components/messages/AssistantRedactedThinkingMessage.js +12 -0
- package/dist/components/messages/AssistantRedactedThinkingMessage.js.map +7 -0
- package/dist/components/messages/AssistantTextMessage.js +78 -0
- package/dist/components/messages/AssistantTextMessage.js.map +7 -0
- package/dist/components/messages/AssistantThinkingMessage.js +27 -0
- package/dist/components/messages/AssistantThinkingMessage.js.map +7 -0
- package/dist/components/messages/AssistantToolUseMessage.js +91 -0
- package/dist/components/messages/AssistantToolUseMessage.js.map +7 -0
- package/dist/components/messages/TaskProgressMessage.js +11 -0
- package/dist/components/messages/TaskProgressMessage.js.map +7 -0
- package/dist/components/messages/TaskToolMessage.js +39 -0
- package/dist/components/messages/TaskToolMessage.js.map +7 -0
- package/dist/components/messages/UserBashInputMessage.js +18 -0
- package/dist/components/messages/UserBashInputMessage.js.map +7 -0
- package/dist/components/messages/UserCommandMessage.js +20 -0
- package/dist/components/messages/UserCommandMessage.js.map +7 -0
- package/dist/components/messages/UserKodingInputMessage.js +18 -0
- package/dist/components/messages/UserKodingInputMessage.js.map +7 -0
- package/dist/components/messages/UserPromptMessage.js +20 -0
- package/dist/components/messages/UserPromptMessage.js.map +7 -0
- package/dist/components/messages/UserTextMessage.js +25 -0
- package/dist/components/messages/UserTextMessage.js.map +7 -0
- package/dist/components/messages/UserToolResultMessage/UserToolCanceledMessage.js +10 -0
- package/dist/components/messages/UserToolResultMessage/UserToolCanceledMessage.js.map +7 -0
- package/dist/components/messages/UserToolResultMessage/UserToolErrorMessage.js +15 -0
- package/dist/components/messages/UserToolResultMessage/UserToolErrorMessage.js.map +7 -0
- package/dist/components/messages/UserToolResultMessage/UserToolRejectMessage.js +25 -0
- package/dist/components/messages/UserToolResultMessage/UserToolRejectMessage.js.map +7 -0
- package/dist/components/messages/UserToolResultMessage/UserToolResultMessage.js +47 -0
- package/dist/components/messages/UserToolResultMessage/UserToolResultMessage.js.map +7 -0
- package/dist/components/messages/UserToolResultMessage/UserToolSuccessMessage.js +23 -0
- package/dist/components/messages/UserToolResultMessage/UserToolSuccessMessage.js.map +7 -0
- package/dist/components/messages/UserToolResultMessage/utils.js +50 -0
- package/dist/components/messages/UserToolResultMessage/utils.js.map +7 -0
- package/dist/components/permissions/BashPermissionRequest/BashPermissionRequest.js +112 -0
- package/dist/components/permissions/BashPermissionRequest/BashPermissionRequest.js.map +7 -0
- package/dist/components/permissions/FallbackPermissionRequest.js +131 -0
- package/dist/components/permissions/FallbackPermissionRequest.js.map +7 -0
- package/dist/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.js +159 -0
- package/dist/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.js.map +7 -0
- package/dist/components/permissions/FileEditPermissionRequest/FileEditToolDiff.js +58 -0
- package/dist/components/permissions/FileEditPermissionRequest/FileEditToolDiff.js.map +7 -0
- package/dist/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.js +153 -0
- package/dist/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.js.map +7 -0
- package/dist/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.js +70 -0
- package/dist/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.js.map +7 -0
- package/dist/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.js +212 -0
- package/dist/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.js.map +7 -0
- package/dist/components/permissions/PermissionRequest.js +70 -0
- package/dist/components/permissions/PermissionRequest.js.map +7 -0
- package/dist/components/permissions/PermissionRequestTitle.js +52 -0
- package/dist/components/permissions/PermissionRequestTitle.js.map +7 -0
- package/dist/components/permissions/hooks.js +23 -0
- package/dist/components/permissions/hooks.js.map +7 -0
- package/dist/components/permissions/toolUseOptions.js +46 -0
- package/dist/components/permissions/toolUseOptions.js.map +7 -0
- package/dist/components/permissions/utils.js +21 -0
- package/dist/components/permissions/utils.js.map +7 -0
- package/dist/constants/claude-asterisk-ascii-art.js +242 -0
- package/dist/constants/claude-asterisk-ascii-art.js.map +7 -0
- package/dist/constants/colors.js +126 -0
- package/dist/constants/colors.js.map +7 -0
- package/dist/constants/compressionPrompts.js +73 -0
- package/dist/constants/compressionPrompts.js.map +7 -0
- package/dist/constants/figures.js +6 -0
- package/dist/constants/figures.js.map +7 -0
- package/dist/constants/macros.js +11 -0
- package/dist/constants/macros.js.map +7 -0
- package/dist/constants/modelCapabilities.js +154 -0
- package/dist/constants/modelCapabilities.js.map +7 -0
- package/dist/constants/models.js +1034 -0
- package/dist/constants/models.js.map +7 -0
- package/dist/constants/oauth.js +18 -0
- package/dist/constants/oauth.js.map +7 -0
- package/dist/constants/product.js +26 -0
- package/dist/constants/product.js.map +7 -0
- package/dist/constants/prompts.js +168 -0
- package/dist/constants/prompts.js.map +7 -0
- package/dist/constants/releaseNotes.js +9 -0
- package/dist/constants/releaseNotes.js.map +7 -0
- package/dist/constants/symbols.js +50 -0
- package/dist/constants/symbols.js.map +7 -0
- package/dist/context/PermissionContext.js +111 -0
- package/dist/context/PermissionContext.js.map +7 -0
- package/dist/context.js +278 -0
- package/dist/context.js.map +7 -0
- package/dist/cost-tracker.js +76 -0
- package/dist/cost-tracker.js.map +7 -0
- package/dist/entrypoints/cli-wrapper.js +61 -0
- package/dist/entrypoints/cli-wrapper.js.map +7 -0
- package/dist/entrypoints/cli.js +1115 -0
- package/dist/entrypoints/cli.js.map +7 -0
- package/dist/entrypoints/mcp.js +150 -0
- package/dist/entrypoints/mcp.js.map +7 -0
- package/dist/history.js +25 -0
- package/dist/history.js.map +7 -0
- package/dist/hooks/useApiKeyVerification.js +12 -0
- package/dist/hooks/useApiKeyVerification.js.map +7 -0
- package/dist/hooks/useArrowKeyHistory.js +50 -0
- package/dist/hooks/useArrowKeyHistory.js.map +7 -0
- package/dist/hooks/useCanUseTool.js +87 -0
- package/dist/hooks/useCanUseTool.js.map +7 -0
- package/dist/hooks/useCancelRequest.js +28 -0
- package/dist/hooks/useCancelRequest.js.map +7 -0
- package/dist/hooks/useDoublePress.js +31 -0
- package/dist/hooks/useDoublePress.js.map +7 -0
- package/dist/hooks/useExitOnCtrlCD.js +26 -0
- package/dist/hooks/useExitOnCtrlCD.js.map +7 -0
- package/dist/hooks/useHistorySearch.js +62 -0
- package/dist/hooks/useHistorySearch.js.map +7 -0
- package/dist/hooks/useInterval.js +18 -0
- package/dist/hooks/useInterval.js.map +7 -0
- package/dist/hooks/useLogMessages.js +14 -0
- package/dist/hooks/useLogMessages.js.map +7 -0
- package/dist/hooks/useLogStartupTime.js +10 -0
- package/dist/hooks/useLogStartupTime.js.map +7 -0
- package/dist/hooks/useNotifyAfterTimeout.js +42 -0
- package/dist/hooks/useNotifyAfterTimeout.js.map +7 -0
- package/dist/hooks/usePermissionRequestLogging.js +23 -0
- package/dist/hooks/usePermissionRequestLogging.js.map +7 -0
- package/dist/hooks/useTerminalSize.js +38 -0
- package/dist/hooks/useTerminalSize.js.map +7 -0
- package/dist/hooks/useTextInput.js +252 -0
- package/dist/hooks/useTextInput.js.map +7 -0
- package/dist/hooks/useUnifiedCompletion.js +929 -0
- package/dist/hooks/useUnifiedCompletion.js.map +7 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +7 -0
- package/dist/messages.js +33 -0
- package/dist/messages.js.map +7 -0
- package/dist/package.json +4 -0
- package/dist/permissions.js +194 -0
- package/dist/permissions.js.map +7 -0
- package/dist/query.js +499 -0
- package/dist/query.js.map +7 -0
- package/dist/screens/Doctor.js +22 -0
- package/dist/screens/Doctor.js.map +7 -0
- package/dist/screens/LogList.js +55 -0
- package/dist/screens/LogList.js.map +7 -0
- package/dist/screens/REPL.js +671 -0
- package/dist/screens/REPL.js.map +7 -0
- package/dist/screens/ResumeConversation.js +56 -0
- package/dist/screens/ResumeConversation.js.map +7 -0
- package/dist/services/adapters/base.js +29 -0
- package/dist/services/adapters/base.js.map +7 -0
- package/dist/services/adapters/chatCompletions.js +69 -0
- package/dist/services/adapters/chatCompletions.js.map +7 -0
- package/dist/services/adapters/responsesAPI.js +126 -0
- package/dist/services/adapters/responsesAPI.js.map +7 -0
- package/dist/services/claude.js +1573 -0
- package/dist/services/claude.js.map +7 -0
- package/dist/services/compressionService.js +210 -0
- package/dist/services/compressionService.js.map +7 -0
- package/dist/services/customCommands.js +437 -0
- package/dist/services/customCommands.js.map +7 -0
- package/dist/services/fileFreshness.js +275 -0
- package/dist/services/fileFreshness.js.map +7 -0
- package/dist/services/gpt5ConnectionTest.js +248 -0
- package/dist/services/gpt5ConnectionTest.js.map +7 -0
- package/dist/services/hookExecutor.js +276 -0
- package/dist/services/hookExecutor.js.map +7 -0
- package/dist/services/mainAgentCompressor.js +84 -0
- package/dist/services/mainAgentCompressor.js.map +7 -0
- package/dist/services/mcpClient.js +449 -0
- package/dist/services/mcpClient.js.map +7 -0
- package/dist/services/mcpServerApproval.js +55 -0
- package/dist/services/mcpServerApproval.js.map +7 -0
- package/dist/services/mentionProcessor.js +201 -0
- package/dist/services/mentionProcessor.js.map +7 -0
- package/dist/services/modelAdapterFactory.js +47 -0
- package/dist/services/modelAdapterFactory.js.map +7 -0
- package/dist/services/notifier.js +35 -0
- package/dist/services/notifier.js.map +7 -0
- package/dist/services/oauth.js +247 -0
- package/dist/services/oauth.js.map +7 -0
- package/dist/services/openai.js +995 -0
- package/dist/services/openai.js.map +7 -0
- package/dist/services/responseStateManager.js +68 -0
- package/dist/services/responseStateManager.js.map +7 -0
- package/dist/services/sentry.js +9 -0
- package/dist/services/sentry.js.map +7 -0
- package/dist/services/subagentAbortManager.js +95 -0
- package/dist/services/subagentAbortManager.js.map +7 -0
- package/dist/services/subagentCompressor.js +146 -0
- package/dist/services/subagentCompressor.js.map +7 -0
- package/dist/services/systemReminder.js +335 -0
- package/dist/services/systemReminder.js.map +7 -0
- package/dist/services/vcr.js +133 -0
- package/dist/services/vcr.js.map +7 -0
- package/dist/tools/ArchitectTool/ArchitectTool.js +119 -0
- package/dist/tools/ArchitectTool/ArchitectTool.js.map +7 -0
- package/dist/tools/ArchitectTool/prompt.js +18 -0
- package/dist/tools/ArchitectTool/prompt.js.map +7 -0
- package/dist/tools/AskExpertModelTool/AskExpertModelTool.js +423 -0
- package/dist/tools/AskExpertModelTool/AskExpertModelTool.js.map +7 -0
- package/dist/tools/BashOutputTool/BashOutputTool.js +120 -0
- package/dist/tools/BashOutputTool/BashOutputTool.js.map +7 -0
- package/dist/tools/BashOutputTool/BashOutputToolResultMessage.js +11 -0
- package/dist/tools/BashOutputTool/BashOutputToolResultMessage.js.map +7 -0
- package/dist/tools/BashOutputTool/prompt.js +13 -0
- package/dist/tools/BashOutputTool/prompt.js.map +7 -0
- package/dist/tools/BashTool/BashTool.js +209 -0
- package/dist/tools/BashTool/BashTool.js.map +7 -0
- package/dist/tools/BashTool/BashToolResultMessage.js +21 -0
- package/dist/tools/BashTool/BashToolResultMessage.js.map +7 -0
- package/dist/tools/BashTool/OutputLine.js +30 -0
- package/dist/tools/BashTool/OutputLine.js.map +7 -0
- package/dist/tools/BashTool/prompt.js +180 -0
- package/dist/tools/BashTool/prompt.js.map +7 -0
- package/dist/tools/BashTool/utils.js +51 -0
- package/dist/tools/BashTool/utils.js.map +7 -0
- package/dist/tools/FileEditTool/FileEditTool.js +226 -0
- package/dist/tools/FileEditTool/FileEditTool.js.map +7 -0
- package/dist/tools/FileEditTool/prompt.js +54 -0
- package/dist/tools/FileEditTool/prompt.js.map +7 -0
- package/dist/tools/FileEditTool/utils.js +42 -0
- package/dist/tools/FileEditTool/utils.js.map +7 -0
- package/dist/tools/FileReadTool/FileReadTool.js +272 -0
- package/dist/tools/FileReadTool/FileReadTool.js.map +7 -0
- package/dist/tools/FileReadTool/prompt.js +10 -0
- package/dist/tools/FileReadTool/prompt.js.map +7 -0
- package/dist/tools/FileWriteTool/FileWriteTool.js +202 -0
- package/dist/tools/FileWriteTool/FileWriteTool.js.map +7 -0
- package/dist/tools/FileWriteTool/prompt.js +14 -0
- package/dist/tools/FileWriteTool/prompt.js.map +7 -0
- package/dist/tools/GlobTool/GlobTool.js +88 -0
- package/dist/tools/GlobTool/GlobTool.js.map +7 -0
- package/dist/tools/GlobTool/prompt.js +12 -0
- package/dist/tools/GlobTool/prompt.js.map +7 -0
- package/dist/tools/GrepTool/GrepTool.js +107 -0
- package/dist/tools/GrepTool/GrepTool.js.map +7 -0
- package/dist/tools/GrepTool/prompt.js +15 -0
- package/dist/tools/GrepTool/prompt.js.map +7 -0
- package/dist/tools/KillShellTool/KillShellTool.js +92 -0
- package/dist/tools/KillShellTool/KillShellTool.js.map +7 -0
- package/dist/tools/KillShellTool/KillShellToolResultMessage.js +11 -0
- package/dist/tools/KillShellTool/KillShellToolResultMessage.js.map +7 -0
- package/dist/tools/KillShellTool/prompt.js +12 -0
- package/dist/tools/KillShellTool/prompt.js.map +7 -0
- package/dist/tools/MCPTool/MCPTool.js +90 -0
- package/dist/tools/MCPTool/MCPTool.js.map +7 -0
- package/dist/tools/MCPTool/prompt.js +7 -0
- package/dist/tools/MCPTool/prompt.js.map +7 -0
- package/dist/tools/MemoryReadTool/MemoryReadTool.js +103 -0
- package/dist/tools/MemoryReadTool/MemoryReadTool.js.map +7 -0
- package/dist/tools/MemoryReadTool/prompt.js +7 -0
- package/dist/tools/MemoryReadTool/prompt.js.map +7 -0
- package/dist/tools/MemoryWriteTool/MemoryWriteTool.js +77 -0
- package/dist/tools/MemoryWriteTool/MemoryWriteTool.js.map +7 -0
- package/dist/tools/MemoryWriteTool/prompt.js +7 -0
- package/dist/tools/MemoryWriteTool/prompt.js.map +7 -0
- package/dist/tools/MultiEditTool/MultiEditTool.js +301 -0
- package/dist/tools/MultiEditTool/MultiEditTool.js.map +7 -0
- package/dist/tools/MultiEditTool/prompt.js +48 -0
- package/dist/tools/MultiEditTool/prompt.js.map +7 -0
- package/dist/tools/NotebookEditTool/NotebookEditTool.js +238 -0
- package/dist/tools/NotebookEditTool/NotebookEditTool.js.map +7 -0
- package/dist/tools/NotebookEditTool/prompt.js +7 -0
- package/dist/tools/NotebookEditTool/prompt.js.map +7 -0
- package/dist/tools/NotebookReadTool/NotebookReadTool.js +212 -0
- package/dist/tools/NotebookReadTool/NotebookReadTool.js.map +7 -0
- package/dist/tools/NotebookReadTool/prompt.js +7 -0
- package/dist/tools/NotebookReadTool/prompt.js.map +7 -0
- package/dist/tools/SkillTool/SkillTool.js +209 -0
- package/dist/tools/SkillTool/SkillTool.js.map +7 -0
- package/dist/tools/SkillTool/prompt.js +81 -0
- package/dist/tools/SkillTool/prompt.js.map +7 -0
- package/dist/tools/TaskTool/TaskTool.js +381 -0
- package/dist/tools/TaskTool/TaskTool.js.map +7 -0
- package/dist/tools/TaskTool/constants.js +5 -0
- package/dist/tools/TaskTool/constants.js.map +7 -0
- package/dist/tools/TaskTool/prompt.js +111 -0
- package/dist/tools/TaskTool/prompt.js.map +7 -0
- package/dist/tools/ThinkTool/ThinkTool.js +40 -0
- package/dist/tools/ThinkTool/ThinkTool.js.map +7 -0
- package/dist/tools/ThinkTool/prompt.js +16 -0
- package/dist/tools/ThinkTool/prompt.js.map +7 -0
- package/dist/tools/TodoWriteTool/TodoWriteTool.js +243 -0
- package/dist/tools/TodoWriteTool/TodoWriteTool.js.map +7 -0
- package/dist/tools/TodoWriteTool/prompt.js +66 -0
- package/dist/tools/TodoWriteTool/prompt.js.map +7 -0
- package/dist/tools/URLFetcherTool/URLFetcherTool.js +137 -0
- package/dist/tools/URLFetcherTool/URLFetcherTool.js.map +7 -0
- package/dist/tools/URLFetcherTool/cache.js +45 -0
- package/dist/tools/URLFetcherTool/cache.js.map +7 -0
- package/dist/tools/URLFetcherTool/htmlToMarkdown.js +42 -0
- package/dist/tools/URLFetcherTool/htmlToMarkdown.js.map +7 -0
- package/dist/tools/URLFetcherTool/prompt.js +22 -0
- package/dist/tools/URLFetcherTool/prompt.js.map +7 -0
- package/dist/tools/WebSearchTool/WebSearchTool.js +86 -0
- package/dist/tools/WebSearchTool/WebSearchTool.js.map +7 -0
- package/dist/tools/WebSearchTool/prompt.js +17 -0
- package/dist/tools/WebSearchTool/prompt.js.map +7 -0
- package/dist/tools/WebSearchTool/searchProviders.js +48 -0
- package/dist/tools/WebSearchTool/searchProviders.js.map +7 -0
- package/dist/tools/lsTool/lsTool.js +201 -0
- package/dist/tools/lsTool/lsTool.js.map +7 -0
- package/dist/tools/lsTool/prompt.js +5 -0
- package/dist/tools/lsTool/prompt.js.map +7 -0
- package/dist/tools.js +70 -0
- package/dist/tools.js.map +7 -0
- package/dist/types/PermissionMode.js +82 -0
- package/dist/types/PermissionMode.js.map +7 -0
- package/dist/types/RequestContext.js +47 -0
- package/dist/types/RequestContext.js.map +7 -0
- package/dist/types/common.d.js +1 -0
- package/dist/types/common.d.js.map +7 -0
- package/dist/types/conversation.js +1 -0
- package/dist/types/conversation.js.map +7 -0
- package/dist/types/hooks.js +38 -0
- package/dist/types/hooks.js.map +7 -0
- package/dist/types/interactionRound.js +1 -0
- package/dist/types/interactionRound.js.map +7 -0
- package/dist/types/logs.js +1 -0
- package/dist/types/logs.js.map +7 -0
- package/dist/types/marketplace.js +101 -0
- package/dist/types/marketplace.js.map +7 -0
- package/dist/types/modelCapabilities.js +1 -0
- package/dist/types/modelCapabilities.js.map +7 -0
- package/dist/types/notebook.js +1 -0
- package/dist/types/notebook.js.map +7 -0
- package/dist/types/plugin.js +83 -0
- package/dist/types/plugin.js.map +7 -0
- package/dist/types/subagent.js +1 -0
- package/dist/types/subagent.js.map +7 -0
- package/dist/utils/BackgroundShellManager.js +215 -0
- package/dist/utils/BackgroundShellManager.js.map +7 -0
- package/dist/utils/Cursor.js +315 -0
- package/dist/utils/Cursor.js.map +7 -0
- package/dist/utils/PersistentShell.js +371 -0
- package/dist/utils/PersistentShell.js.map +7 -0
- package/dist/utils/advancedFuzzyMatcher.js +206 -0
- package/dist/utils/advancedFuzzyMatcher.js.map +7 -0
- package/dist/utils/agentLoader.js +244 -0
- package/dist/utils/agentLoader.js.map +7 -0
- package/dist/utils/agentStorage.js +59 -0
- package/dist/utils/agentStorage.js.map +7 -0
- package/dist/utils/array.js +7 -0
- package/dist/utils/array.js.map +7 -0
- package/dist/utils/ask.js +77 -0
- package/dist/utils/ask.js.map +7 -0
- package/dist/utils/auth.js +11 -0
- package/dist/utils/auth.js.map +7 -0
- package/dist/utils/autoCompactCore.js +126 -0
- package/dist/utils/autoCompactCore.js.map +7 -0
- package/dist/utils/autoUpdater.js +107 -0
- package/dist/utils/autoUpdater.js.map +7 -0
- package/dist/utils/browser.js +15 -0
- package/dist/utils/browser.js.map +7 -0
- package/dist/utils/cleanup.js +54 -0
- package/dist/utils/cleanup.js.map +7 -0
- package/dist/utils/commands.js +207 -0
- package/dist/utils/commands.js.map +7 -0
- package/dist/utils/commonUnixCommands.js +687 -0
- package/dist/utils/commonUnixCommands.js.map +7 -0
- package/dist/utils/compressionMode.js +47 -0
- package/dist/utils/compressionMode.js.map +7 -0
- package/dist/utils/config.js +651 -0
- package/dist/utils/config.js.map +7 -0
- package/dist/utils/conversationRecovery.js +35 -0
- package/dist/utils/conversationRecovery.js.map +7 -0
- package/dist/utils/debugLogger.js +889 -0
- package/dist/utils/debugLogger.js.map +7 -0
- package/dist/utils/diff.js +32 -0
- package/dist/utils/diff.js.map +7 -0
- package/dist/utils/env.js +44 -0
- package/dist/utils/env.js.map +7 -0
- package/dist/utils/errors.js +23 -0
- package/dist/utils/errors.js.map +7 -0
- package/dist/utils/execFileNoThrow.js +44 -0
- package/dist/utils/execFileNoThrow.js.map +7 -0
- package/dist/utils/expertChatStorage.js +78 -0
- package/dist/utils/expertChatStorage.js.map +7 -0
- package/dist/utils/file.js +282 -0
- package/dist/utils/file.js.map +7 -0
- package/dist/utils/fileRecoveryCore.js +41 -0
- package/dist/utils/fileRecoveryCore.js.map +7 -0
- package/dist/utils/format.js +41 -0
- package/dist/utils/format.js.map +7 -0
- package/dist/utils/fuzzyMatcher.js +252 -0
- package/dist/utils/fuzzyMatcher.js.map +7 -0
- package/dist/utils/generators.js +46 -0
- package/dist/utils/generators.js.map +7 -0
- package/dist/utils/git.js +83 -0
- package/dist/utils/git.js.map +7 -0
- package/dist/utils/hookManager.js +238 -0
- package/dist/utils/hookManager.js.map +7 -0
- package/dist/utils/http.js +7 -0
- package/dist/utils/http.js.map +7 -0
- package/dist/utils/imagePaste.js +29 -0
- package/dist/utils/imagePaste.js.map +7 -0
- package/dist/utils/json.js +16 -0
- package/dist/utils/json.js.map +7 -0
- package/dist/utils/log.js +329 -0
- package/dist/utils/log.js.map +7 -0
- package/dist/utils/markdown.js +187 -0
- package/dist/utils/markdown.js.map +7 -0
- package/dist/utils/marketplaceManager.js +474 -0
- package/dist/utils/marketplaceManager.js.map +7 -0
- package/dist/utils/messageContextManager.js +195 -0
- package/dist/utils/messageContextManager.js.map +7 -0
- package/dist/utils/messages.js +650 -0
- package/dist/utils/messages.js.map +7 -0
- package/dist/utils/model.js +677 -0
- package/dist/utils/model.js.map +7 -0
- package/dist/utils/permissions/filesystem.js +80 -0
- package/dist/utils/permissions/filesystem.js.map +7 -0
- package/dist/utils/pluginInstaller.js +491 -0
- package/dist/utils/pluginInstaller.js.map +7 -0
- package/dist/utils/pluginLoader.js +582 -0
- package/dist/utils/pluginLoader.js.map +7 -0
- package/dist/utils/pluginRegistry.js +111 -0
- package/dist/utils/pluginRegistry.js.map +7 -0
- package/dist/utils/pluginValidator.js +774 -0
- package/dist/utils/pluginValidator.js.map +7 -0
- package/dist/utils/ptyCompat.js +125 -0
- package/dist/utils/ptyCompat.js.map +7 -0
- package/dist/utils/replStateMachine.js +145 -0
- package/dist/utils/replStateMachine.js.map +7 -0
- package/dist/utils/ripgrep.js +131 -0
- package/dist/utils/ripgrep.js.map +7 -0
- package/dist/utils/roundConverter.js +262 -0
- package/dist/utils/roundConverter.js.map +7 -0
- package/dist/utils/secureFile.js +483 -0
- package/dist/utils/secureFile.js.map +7 -0
- package/dist/utils/sessionState.js +22 -0
- package/dist/utils/sessionState.js.map +7 -0
- package/dist/utils/skillLoader.js +79 -0
- package/dist/utils/skillLoader.js.map +7 -0
- package/dist/utils/state.js +24 -0
- package/dist/utils/state.js.map +7 -0
- package/dist/utils/style.js +31 -0
- package/dist/utils/style.js.map +7 -0
- package/dist/utils/terminal.js +47 -0
- package/dist/utils/terminal.js.map +7 -0
- package/dist/utils/theme.js +102 -0
- package/dist/utils/theme.js.map +7 -0
- package/dist/utils/thinking.js +59 -0
- package/dist/utils/thinking.js.map +7 -0
- package/dist/utils/todoChangeCalculator.js +64 -0
- package/dist/utils/todoChangeCalculator.js.map +7 -0
- package/dist/utils/todoStorage.js +291 -0
- package/dist/utils/todoStorage.js.map +7 -0
- package/dist/utils/tokens.js +30 -0
- package/dist/utils/tokens.js.map +7 -0
- package/dist/utils/toolExecutionController.js +109 -0
- package/dist/utils/toolExecutionController.js.map +7 -0
- package/dist/utils/unaryLogging.js +6 -0
- package/dist/utils/unaryLogging.js.map +7 -0
- package/dist/utils/user.js +40 -0
- package/dist/utils/user.js.map +7 -0
- package/dist/utils/validate.js +132 -0
- package/dist/utils/validate.js.map +7 -0
- package/dist/version.js +7 -0
- package/dist/version.js.map +7 -0
- package/dist/yoga.wasm +0 -0
- package/package.json +113 -0
- package/scripts/postinstall.js +18 -0
- 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
|
+
}
|