@within-7/minto 0.1.5 → 0.1.7
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/dist/commands/agents/AgentsCommand.js +2342 -0
- package/dist/commands/agents/AgentsCommand.js.map +7 -0
- package/dist/commands/agents/constants.js +58 -0
- package/dist/commands/agents/constants.js.map +7 -0
- package/dist/commands/agents/index.js +37 -0
- package/dist/commands/agents/index.js.map +7 -0
- package/dist/commands/agents/types.js +10 -0
- package/dist/commands/agents/types.js.map +7 -0
- package/dist/commands/agents/utils/fileOperations.js +185 -0
- package/dist/commands/agents/utils/fileOperations.js.map +7 -0
- package/dist/commands/agents/utils/index.js +21 -0
- package/dist/commands/agents/utils/index.js.map +7 -0
- package/dist/commands/bug.js +2 -2
- package/dist/commands/bug.js.map +2 -2
- package/dist/commands/compact.js +5 -5
- package/dist/commands/compact.js.map +2 -2
- package/dist/commands/ctx_viz.js +55 -22
- package/dist/commands/ctx_viz.js.map +2 -2
- package/dist/commands/mcp-interactive.js +11 -11
- package/dist/commands/mcp-interactive.js.map +2 -2
- package/dist/commands/model.js +94 -32
- package/dist/commands/model.js.map +3 -3
- package/dist/commands/plugin/AddMarketplaceForm.js +49 -21
- package/dist/commands/plugin/AddMarketplaceForm.js.map +2 -2
- package/dist/commands/plugin/ConfirmDialog.js +38 -26
- package/dist/commands/plugin/ConfirmDialog.js.map +2 -2
- package/dist/commands/plugin/InstalledPluginsByMarketplace.js +24 -8
- package/dist/commands/plugin/InstalledPluginsByMarketplace.js.map +2 -2
- package/dist/commands/plugin/InstalledPluginsManager.js +3 -1
- package/dist/commands/plugin/InstalledPluginsManager.js.map +2 -2
- package/dist/commands/plugin/MainMenu.js +16 -7
- package/dist/commands/plugin/MainMenu.js.map +2 -2
- package/dist/commands/plugin/MarketplaceManager.js +84 -39
- package/dist/commands/plugin/MarketplaceManager.js.map +2 -2
- package/dist/commands/plugin/MarketplaceSelector.js +7 -3
- package/dist/commands/plugin/MarketplaceSelector.js.map +2 -2
- package/dist/commands/plugin/PlaceholderScreen.js +16 -2
- package/dist/commands/plugin/PlaceholderScreen.js.map +2 -2
- package/dist/commands/plugin/PluginBrowser.js +4 -2
- package/dist/commands/plugin/PluginBrowser.js.map +2 -2
- package/dist/commands/plugin/PluginDetailsInstall.js +12 -6
- package/dist/commands/plugin/PluginDetailsInstall.js.map +2 -2
- package/dist/commands/plugin/PluginDetailsManage.js +14 -5
- package/dist/commands/plugin/PluginDetailsManage.js.map +2 -2
- package/dist/commands/plugin/example-usage.js.map +2 -2
- package/dist/commands/plugin/utils.js.map +2 -2
- package/dist/commands/plugin.js +226 -46
- package/dist/commands/plugin.js.map +2 -2
- package/dist/commands/refreshCommands.js +6 -3
- package/dist/commands/refreshCommands.js.map +2 -2
- package/dist/commands/resume.js +2 -1
- package/dist/commands/resume.js.map +2 -2
- package/dist/commands/setup.js +19 -5
- package/dist/commands/setup.js.map +2 -2
- package/dist/commands/terminalSetup.js +2 -2
- package/dist/commands/terminalSetup.js.map +1 -1
- package/dist/commands.js +14 -30
- package/dist/commands.js.map +2 -2
- package/dist/components/AskUserQuestionDialog/AskUserQuestionDialog.js.map +2 -2
- package/dist/components/AskUserQuestionDialog/QuestionView.js +10 -1
- package/dist/components/AskUserQuestionDialog/QuestionView.js.map +2 -2
- package/dist/components/BackgroundTasksPanel.js +5 -1
- package/dist/components/BackgroundTasksPanel.js.map +2 -2
- package/dist/components/Config.js +17 -4
- package/dist/components/Config.js.map +2 -2
- package/dist/components/ConsoleOAuthFlow.js.map +2 -2
- package/dist/components/CustomSelect/select-option.js +4 -1
- package/dist/components/CustomSelect/select-option.js.map +2 -2
- package/dist/components/Help.js +6 -8
- package/dist/components/Help.js.map +2 -2
- package/dist/components/Logo.js +1 -1
- package/dist/components/Logo.js.map +2 -2
- package/dist/components/ModelListManager.js.map +2 -2
- package/dist/components/ModelSelector/ModelSelector.js +2030 -0
- package/dist/components/ModelSelector/ModelSelector.js.map +7 -0
- package/dist/components/ModelSelector/ScreenContainer.js +27 -0
- package/dist/components/ModelSelector/ScreenContainer.js.map +7 -0
- package/dist/components/ModelSelector/constants.js +37 -0
- package/dist/components/ModelSelector/constants.js.map +7 -0
- package/dist/components/ModelSelector/hooks/index.js +5 -0
- package/dist/components/ModelSelector/hooks/index.js.map +7 -0
- package/dist/components/ModelSelector/hooks/useEscapeNavigation.js +21 -0
- package/dist/components/ModelSelector/hooks/useEscapeNavigation.js.map +7 -0
- package/dist/components/ModelSelector/index.js +17 -0
- package/dist/components/ModelSelector/index.js.map +7 -0
- package/dist/components/ModelSelector/types.js +1 -0
- package/dist/components/ModelSelector/types.js.map +7 -0
- package/dist/components/PressEnterToContinue.js +1 -1
- package/dist/components/PressEnterToContinue.js.map +2 -2
- package/dist/components/ProjectOnboarding.js +1 -1
- package/dist/components/ProjectOnboarding.js.map +2 -2
- package/dist/components/PromptInput.js +88 -37
- package/dist/components/PromptInput.js.map +2 -2
- package/dist/components/QuitSummary.js +17 -10
- package/dist/components/QuitSummary.js.map +2 -2
- package/dist/components/SentryErrorBoundary.js.map +2 -2
- package/dist/components/StreamingBashOutput.js.map +2 -2
- package/dist/components/StructuredDiff.js.map +2 -2
- package/dist/components/SubagentProgress.js.map +2 -2
- package/dist/components/TaskCard.js.map +2 -2
- package/dist/components/TextInput.js.map +1 -1
- package/dist/components/TodoItem.js.map +1 -1
- package/dist/components/binary-feedback/BinaryFeedbackOption.js +1 -3
- package/dist/components/binary-feedback/BinaryFeedbackOption.js.map +2 -2
- package/dist/components/messages/AssistantLocalCommandOutputMessage.js.map +1 -1
- package/dist/components/messages/AssistantToolUseMessage.js +3 -1
- package/dist/components/messages/AssistantToolUseMessage.js.map +2 -2
- package/dist/components/messages/TaskProgressMessage.js.map +2 -2
- package/dist/components/messages/TaskToolMessage.js.map +2 -2
- package/dist/components/messages/UserToolResultMessage/utils.js.map +2 -2
- package/dist/components/permissions/FileEditPermissionRequest/FileEditToolDiff.js.map +2 -2
- package/dist/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.js.map +2 -2
- package/dist/components/permissions/hooks.js.map +2 -2
- package/dist/constants/modelCapabilities.js +1 -1
- package/dist/constants/modelCapabilities.js.map +2 -2
- package/dist/constants/prompts.js.map +1 -1
- package/dist/constants/timing.js +34 -0
- package/dist/constants/timing.js.map +7 -0
- package/dist/entrypoints/cli.js +128 -33
- package/dist/entrypoints/cli.js.map +3 -3
- package/dist/entrypoints/mcp.js +13 -18
- package/dist/entrypoints/mcp.js.map +2 -2
- package/dist/hooks/useCanUseTool.js.map +2 -2
- package/dist/hooks/useCancelRequest.js.map +1 -1
- package/dist/hooks/useHistorySearch.js.map +2 -2
- package/dist/hooks/useLogStartupTime.js.map +2 -2
- package/dist/hooks/usePermissionRequestLogging.js.map +2 -2
- package/dist/hooks/useTextInput.js.map +1 -1
- package/dist/hooks/useUnifiedCompletion.js +493 -394
- package/dist/hooks/useUnifiedCompletion.js.map +2 -2
- package/dist/index.js.map +2 -2
- package/dist/permissions.js +4 -7
- package/dist/permissions.js.map +2 -2
- package/dist/query.js +6 -1
- package/dist/query.js.map +2 -2
- package/dist/screens/REPL.js +72 -36
- package/dist/screens/REPL.js.map +2 -2
- package/dist/screens/ResumeConversation.js +2 -1
- package/dist/screens/ResumeConversation.js.map +2 -2
- package/dist/services/adapters/base.js.map +2 -2
- package/dist/services/adapters/chatCompletions.js.map +2 -2
- package/dist/services/adapters/responsesAPI.js +3 -1
- package/dist/services/adapters/responsesAPI.js.map +2 -2
- package/dist/services/claude.js +327 -328
- package/dist/services/claude.js.map +2 -2
- package/dist/services/customCommands.js +6 -1
- package/dist/services/customCommands.js.map +2 -2
- package/dist/services/fileFreshness.js.map +2 -2
- package/dist/services/gpt5ConnectionTest.js +20 -7
- package/dist/services/gpt5ConnectionTest.js.map +2 -2
- package/dist/services/hookExecutor.js +6 -12
- package/dist/services/hookExecutor.js.map +2 -2
- package/dist/services/mcpClient.js +29 -2
- package/dist/services/mcpClient.js.map +2 -2
- package/dist/services/mentionProcessor.js +23 -10
- package/dist/services/mentionProcessor.js.map +2 -2
- package/dist/services/modelAdapterFactory.js.map +2 -2
- package/dist/services/oauth.js.map +2 -2
- package/dist/services/openai.js +109 -72
- package/dist/services/openai.js.map +3 -3
- package/dist/services/responseStateManager.js.map +2 -2
- package/dist/services/systemReminder.js.map +2 -2
- package/dist/tools/ArchitectTool/ArchitectTool.js +10 -9
- package/dist/tools/ArchitectTool/ArchitectTool.js.map +2 -2
- package/dist/tools/AskExpertModelTool/AskExpertModelTool.js +14 -8
- package/dist/tools/AskExpertModelTool/AskExpertModelTool.js.map +2 -2
- package/dist/tools/AskUserQuestionTool/AskUserQuestionTool.js +8 -1
- package/dist/tools/AskUserQuestionTool/AskUserQuestionTool.js.map +2 -2
- package/dist/tools/BashOutputTool/BashOutputTool.js.map +2 -2
- package/dist/tools/BashTool/BashTool.js.map +2 -2
- package/dist/tools/FileReadTool/FileReadTool.js +23 -4
- package/dist/tools/FileReadTool/FileReadTool.js.map +2 -2
- package/dist/tools/FileWriteTool/FileWriteTool.js.map +2 -2
- package/dist/tools/GlobTool/GlobTool.js +11 -2
- package/dist/tools/GlobTool/GlobTool.js.map +2 -2
- package/dist/tools/GrepTool/GrepTool.js +7 -5
- package/dist/tools/GrepTool/GrepTool.js.map +2 -2
- package/dist/tools/MCPTool/MCPTool.js +11 -12
- package/dist/tools/MCPTool/MCPTool.js.map +2 -2
- package/dist/tools/MultiEditTool/MultiEditTool.js +4 -1
- package/dist/tools/MultiEditTool/MultiEditTool.js.map +2 -2
- package/dist/tools/NotebookReadTool/NotebookReadTool.js +11 -5
- package/dist/tools/NotebookReadTool/NotebookReadTool.js.map +2 -2
- package/dist/tools/SkillTool/SkillTool.js +18 -6
- package/dist/tools/SkillTool/SkillTool.js.map +2 -2
- package/dist/tools/TaskTool/TaskTool.js +37 -51
- package/dist/tools/TaskTool/TaskTool.js.map +2 -2
- package/dist/tools/TaskTool/prompt.js.map +2 -2
- package/dist/tools/ThinkTool/ThinkTool.js +6 -1
- package/dist/tools/ThinkTool/ThinkTool.js.map +2 -2
- package/dist/tools/TodoWriteTool/TodoWriteTool.js +29 -5
- package/dist/tools/TodoWriteTool/TodoWriteTool.js.map +2 -2
- package/dist/tools/URLFetcherTool/URLFetcherTool.js +5 -2
- package/dist/tools/URLFetcherTool/URLFetcherTool.js.map +2 -2
- package/dist/tools/URLFetcherTool/cache.js +6 -3
- package/dist/tools/URLFetcherTool/cache.js.map +2 -2
- package/dist/tools/URLFetcherTool/htmlToMarkdown.js +3 -1
- package/dist/tools/URLFetcherTool/htmlToMarkdown.js.map +2 -2
- package/dist/tools/WebSearchTool/WebSearchTool.js +6 -1
- package/dist/tools/WebSearchTool/WebSearchTool.js.map +2 -2
- package/dist/tools/WebSearchTool/prompt.js.map +2 -2
- package/dist/tools/WebSearchTool/searchProviders.js +15 -6
- package/dist/tools/WebSearchTool/searchProviders.js.map +2 -2
- package/dist/tools.js +4 -1
- package/dist/tools.js.map +2 -2
- package/dist/types/core.js +1 -0
- package/dist/types/core.js.map +7 -0
- package/dist/types/hooks.js +1 -4
- package/dist/types/hooks.js.map +2 -2
- package/dist/types/marketplace.js +8 -2
- package/dist/types/marketplace.js.map +2 -2
- package/dist/types/plugin.js +9 -6
- package/dist/types/plugin.js.map +2 -2
- package/dist/utils/BackgroundShellManager.js +76 -10
- package/dist/utils/BackgroundShellManager.js.map +2 -2
- package/dist/utils/PersistentShell.js +7 -2
- package/dist/utils/PersistentShell.js.map +2 -2
- package/dist/utils/advancedFuzzyMatcher.js +4 -1
- package/dist/utils/advancedFuzzyMatcher.js.map +2 -2
- package/dist/utils/agentLoader.js +69 -35
- package/dist/utils/agentLoader.js.map +2 -2
- package/dist/utils/agentStorage.js.map +2 -2
- package/dist/utils/async.js +163 -0
- package/dist/utils/async.js.map +7 -0
- package/dist/utils/autoUpdater.js +8 -2
- package/dist/utils/autoUpdater.js.map +2 -2
- package/dist/utils/commands.js +23 -11
- package/dist/utils/commands.js.map +2 -2
- package/dist/utils/commonUnixCommands.js +3 -1
- package/dist/utils/commonUnixCommands.js.map +2 -2
- package/dist/utils/compressionMode.js.map +2 -2
- package/dist/utils/config.js +30 -14
- package/dist/utils/config.js.map +2 -2
- package/dist/utils/debugLogger.js.map +2 -2
- package/dist/utils/env.js.map +2 -2
- package/dist/utils/envConfig.js +82 -0
- package/dist/utils/envConfig.js.map +7 -0
- package/dist/utils/errorHandling.js +89 -0
- package/dist/utils/errorHandling.js.map +7 -0
- package/dist/utils/expertChatStorage.js.map +2 -2
- package/dist/utils/fuzzyMatcher.js +13 -7
- package/dist/utils/fuzzyMatcher.js.map +2 -2
- package/dist/utils/hookManager.js +14 -4
- package/dist/utils/hookManager.js.map +2 -2
- package/dist/utils/log.js.map +2 -2
- package/dist/utils/marketplaceManager.js +44 -9
- package/dist/utils/marketplaceManager.js.map +2 -2
- package/dist/utils/messageContextManager.js.map +1 -1
- package/dist/utils/messages.js +6 -3
- package/dist/utils/messages.js.map +2 -2
- package/dist/utils/model.js +3 -1
- package/dist/utils/model.js.map +2 -2
- package/dist/utils/pluginInstaller.js +3 -15
- package/dist/utils/pluginInstaller.js.map +2 -2
- package/dist/utils/pluginLoader.js +41 -13
- package/dist/utils/pluginLoader.js.map +2 -2
- package/dist/utils/pluginRegistry.js.map +2 -2
- package/dist/utils/pluginValidator.js +71 -49
- package/dist/utils/pluginValidator.js.map +2 -2
- package/dist/utils/ptyCompat.js.map +2 -2
- package/dist/utils/roundConverter.js.map +2 -2
- package/dist/utils/secureFile.js +43 -14
- package/dist/utils/secureFile.js.map +2 -2
- package/dist/utils/sessionState.js.map +2 -2
- package/dist/utils/skillLoader.js.map +2 -2
- package/dist/utils/teamConfig.js +7 -4
- package/dist/utils/teamConfig.js.map +2 -2
- package/dist/utils/theme.js.map +2 -2
- package/dist/utils/thinking.js.map +2 -2
- package/dist/utils/unaryLogging.js.map +2 -2
- package/dist/version.js +2 -2
- package/dist/version.js.map +1 -1
- package/package.json +5 -5
|
@@ -2,7 +2,7 @@ import * as React from "react";
|
|
|
2
2
|
import { getTheme } from "../utils/theme.js";
|
|
3
3
|
import { Text } from "ink";
|
|
4
4
|
function PressEnterToContinue() {
|
|
5
|
-
return /* @__PURE__ */ React.createElement(Text, { color: getTheme().permission }, "Press ", /* @__PURE__ */ React.createElement(Text, { bold: true }, "Enter"), " to continue\u2026");
|
|
5
|
+
return /* @__PURE__ */ React.createElement(Text, { color: getTheme().permission }, "Press ", /* @__PURE__ */ React.createElement(Text, { bold: true }, "Enter"), " or ", /* @__PURE__ */ React.createElement(Text, { bold: true }, "Esc"), " to continue\u2026");
|
|
6
6
|
}
|
|
7
7
|
export {
|
|
8
8
|
PressEnterToContinue
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/components/PressEnterToContinue.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react'\nimport { getTheme } from '@utils/theme'\nimport { Text } from 'ink'\n\nexport function PressEnterToContinue(): React.ReactNode {\n return (\n <Text color={getTheme().permission}>\n Press <Text bold>Enter</Text> to continue\u2026\n </Text>\n )\n}\n"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;AACvB,SAAS,gBAAgB;AACzB,SAAS,YAAY;AAEd,SAAS,uBAAwC;AACtD,SACE,oCAAC,QAAK,OAAO,SAAS,EAAE,cAAY,UAC5B,oCAAC,QAAK,MAAI,QAAC,OAAK,GAAO,
|
|
4
|
+
"sourcesContent": ["import * as React from 'react'\nimport { getTheme } from '@utils/theme'\nimport { Text } from 'ink'\n\nexport function PressEnterToContinue(): React.ReactNode {\n return (\n <Text color={getTheme().permission}>\n Press <Text bold>Enter</Text> or <Text bold>Esc</Text> to continue\u2026\n </Text>\n )\n}\n"],
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;AACvB,SAAS,gBAAgB;AACzB,SAAS,YAAY;AAEd,SAAS,uBAAwC;AACtD,SACE,oCAAC,QAAK,OAAO,SAAS,EAAE,cAAY,UAC5B,oCAAC,QAAK,MAAI,QAAC,OAAK,GAAO,QAAI,oCAAC,QAAK,MAAI,QAAC,KAAG,GAAO,oBACxD;AAEJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -72,7 +72,7 @@ function ProjectOnboarding({
|
|
|
72
72
|
}
|
|
73
73
|
if (showTerminalTip) {
|
|
74
74
|
items.push(
|
|
75
|
-
/* @__PURE__ */ React.createElement(React.Fragment, { key: "terminal" }, /* @__PURE__ */ React.createElement(OrderedList.Item, null, /* @__PURE__ */ React.createElement(Text, { color: theme.secondaryText }, "Run ", /* @__PURE__ */ React.createElement(Text, { color: theme.text }, "/terminal-setup"), /* @__PURE__ */ React.createElement(Text, { bold: false }, " to set up terminal integration"))))
|
|
75
|
+
/* @__PURE__ */ React.createElement(React.Fragment, { key: "terminal" }, /* @__PURE__ */ React.createElement(OrderedList.Item, null, /* @__PURE__ */ React.createElement(Text, { color: theme.secondaryText }, "Run ", /* @__PURE__ */ React.createElement(Text, { color: theme.text }, "/terminal-setup"), /* @__PURE__ */ React.createElement(Text, { bold: false }, " ", "to set up terminal integration"))))
|
|
76
76
|
);
|
|
77
77
|
}
|
|
78
78
|
items.push(
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/components/ProjectOnboarding.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react'\nimport { OrderedList } from '@inkjs/ui'\nimport { Box, Text } from 'ink'\nimport {\n getCurrentProjectConfig,\n getGlobalConfig,\n saveCurrentProjectConfig,\n saveGlobalConfig,\n} from '@utils/config'\nimport { existsSync } from 'fs'\nimport { join } from 'path'\nimport { homedir } from 'os'\nimport terminalSetup from '@commands/terminalSetup'\nimport { getTheme } from '@utils/theme'\nimport { RELEASE_NOTES } from '@constants/releaseNotes'\nimport { gt } from 'semver'\nimport { isDirEmpty } from '@utils/file'\nimport { MACRO } from '@constants/macros'\nimport { PROJECT_FILE, PRODUCT_NAME } from '@constants/product'\n\n// Function to mark onboarding as complete\nexport function markProjectOnboardingComplete(): void {\n const projectConfig = getCurrentProjectConfig()\n if (!projectConfig.hasCompletedProjectOnboarding) {\n saveCurrentProjectConfig({\n ...projectConfig,\n hasCompletedProjectOnboarding: true,\n })\n }\n}\n\nfunction markReleaseNotesSeen(): void {\n const config = getGlobalConfig()\n saveGlobalConfig({\n ...config,\n lastReleaseNotesSeen: MACRO.VERSION,\n })\n}\n\ntype Props = {\n workspaceDir: string\n}\n\nexport default function ProjectOnboarding({\n workspaceDir,\n}: Props): React.ReactNode {\n // Check if project onboarding has already been completed\n const projectConfig = getCurrentProjectConfig()\n const showOnboarding = !projectConfig.hasCompletedProjectOnboarding\n\n // Get previous version from config\n const config = getGlobalConfig()\n const previousVersion = config.lastReleaseNotesSeen\n\n // Get release notes to show\n let releaseNotesToShow: string[] = []\n if (!previousVersion || gt(MACRO.VERSION, previousVersion)) {\n releaseNotesToShow = RELEASE_NOTES[MACRO.VERSION] || []\n }\n const hasReleaseNotes = releaseNotesToShow.length > 0\n\n // Mark release notes as seen when they're displayed without onboarding\n React.useEffect(() => {\n if (hasReleaseNotes && !showOnboarding) {\n markReleaseNotesSeen()\n }\n }, [hasReleaseNotes, showOnboarding])\n\n // We only want to show either onboarding OR release notes (with preference for onboarding)\n // If there's no onboarding to show and no release notes, return null\n if (!showOnboarding && !hasReleaseNotes) {\n return null\n }\n\n // Load what we need for onboarding\n // NOTE: This whole component is statically rendered Once\n const workspaceHasProjectGuide = existsSync(join(workspaceDir, PROJECT_FILE))\n const isWorkspaceDirEmpty = isDirEmpty(workspaceDir)\n const shouldRecommendProjectGuide
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;AACvB,SAAS,mBAAmB;AAC5B,SAAS,KAAK,YAAY;AAC1B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,kBAAkB;AAC3B,SAAS,YAAY;AACrB,SAAS,eAAe;AACxB,OAAO,mBAAmB;AAC1B,SAAS,gBAAgB;AACzB,SAAS,qBAAqB;AAC9B,SAAS,UAAU;AACnB,SAAS,kBAAkB;AAC3B,SAAS,aAAa;AACtB,SAAS,cAAc,oBAAoB;AAGpC,SAAS,gCAAsC;AACpD,QAAM,gBAAgB,wBAAwB;AAC9C,MAAI,CAAC,cAAc,+BAA+B;AAChD,6BAAyB;AAAA,MACvB,GAAG;AAAA,MACH,+BAA+B;AAAA,IACjC,CAAC;AAAA,EACH;AACF;AAEA,SAAS,uBAA6B;AACpC,QAAM,SAAS,gBAAgB;AAC/B,mBAAiB;AAAA,IACf,GAAG;AAAA,IACH,sBAAsB,MAAM;AAAA,EAC9B,CAAC;AACH;AAMe,SAAR,kBAAmC;AAAA,EACxC;AACF,GAA2B;AAEzB,QAAM,gBAAgB,wBAAwB;AAC9C,QAAM,iBAAiB,CAAC,cAAc;AAGtC,QAAM,SAAS,gBAAgB;AAC/B,QAAM,kBAAkB,OAAO;AAG/B,MAAI,qBAA+B,CAAC;AACpC,MAAI,CAAC,mBAAmB,GAAG,MAAM,SAAS,eAAe,GAAG;AAC1D,yBAAqB,cAAc,MAAM,OAAO,KAAK,CAAC;AAAA,EACxD;AACA,QAAM,kBAAkB,mBAAmB,SAAS;AAGpD,QAAM,UAAU,MAAM;AACpB,QAAI,mBAAmB,CAAC,gBAAgB;AACtC,2BAAqB;AAAA,IACvB;AAAA,EACF,GAAG,CAAC,iBAAiB,cAAc,CAAC;AAIpC,MAAI,CAAC,kBAAkB,CAAC,iBAAiB;AACvC,WAAO;AAAA,EACT;AAIA,QAAM,2BAA2B,WAAW,KAAK,cAAc,YAAY,CAAC;AAC5E,QAAM,sBAAsB,WAAW,YAAY;AACnD,QAAM,
|
|
4
|
+
"sourcesContent": ["import * as React from 'react'\nimport { OrderedList } from '@inkjs/ui'\nimport { Box, Text } from 'ink'\nimport {\n getCurrentProjectConfig,\n getGlobalConfig,\n saveCurrentProjectConfig,\n saveGlobalConfig,\n} from '@utils/config'\nimport { existsSync } from 'fs'\nimport { join } from 'path'\nimport { homedir } from 'os'\nimport terminalSetup from '@commands/terminalSetup'\nimport { getTheme } from '@utils/theme'\nimport { RELEASE_NOTES } from '@constants/releaseNotes'\nimport { gt } from 'semver'\nimport { isDirEmpty } from '@utils/file'\nimport { MACRO } from '@constants/macros'\nimport { PROJECT_FILE, PRODUCT_NAME } from '@constants/product'\n\n// Function to mark onboarding as complete\nexport function markProjectOnboardingComplete(): void {\n const projectConfig = getCurrentProjectConfig()\n if (!projectConfig.hasCompletedProjectOnboarding) {\n saveCurrentProjectConfig({\n ...projectConfig,\n hasCompletedProjectOnboarding: true,\n })\n }\n}\n\nfunction markReleaseNotesSeen(): void {\n const config = getGlobalConfig()\n saveGlobalConfig({\n ...config,\n lastReleaseNotesSeen: MACRO.VERSION,\n })\n}\n\ntype Props = {\n workspaceDir: string\n}\n\nexport default function ProjectOnboarding({\n workspaceDir,\n}: Props): React.ReactNode {\n // Check if project onboarding has already been completed\n const projectConfig = getCurrentProjectConfig()\n const showOnboarding = !projectConfig.hasCompletedProjectOnboarding\n\n // Get previous version from config\n const config = getGlobalConfig()\n const previousVersion = config.lastReleaseNotesSeen\n\n // Get release notes to show\n let releaseNotesToShow: string[] = []\n if (!previousVersion || gt(MACRO.VERSION, previousVersion)) {\n releaseNotesToShow = RELEASE_NOTES[MACRO.VERSION] || []\n }\n const hasReleaseNotes = releaseNotesToShow.length > 0\n\n // Mark release notes as seen when they're displayed without onboarding\n React.useEffect(() => {\n if (hasReleaseNotes && !showOnboarding) {\n markReleaseNotesSeen()\n }\n }, [hasReleaseNotes, showOnboarding])\n\n // We only want to show either onboarding OR release notes (with preference for onboarding)\n // If there's no onboarding to show and no release notes, return null\n if (!showOnboarding && !hasReleaseNotes) {\n return null\n }\n\n // Load what we need for onboarding\n // NOTE: This whole component is statically rendered Once\n const workspaceHasProjectGuide = existsSync(join(workspaceDir, PROJECT_FILE))\n const isWorkspaceDirEmpty = isDirEmpty(workspaceDir)\n const shouldRecommendProjectGuide =\n !workspaceHasProjectGuide && !isWorkspaceDirEmpty\n const showTerminalTip =\n terminalSetup.isEnabled && !getGlobalConfig().shiftEnterKeyBindingInstalled\n\n const theme = getTheme()\n\n return (\n <Box flexDirection=\"column\" gap={1} padding={1} paddingBottom={0}>\n {showOnboarding && (\n <>\n <Text color={theme.secondaryText}>Tips for getting started:</Text>\n {/* @ts-expect-error - OrderedList children prop issue */}\n <OrderedList>\n {/* Collect all the items that should be displayed */}\n {(() => {\n const items = []\n\n if (isWorkspaceDirEmpty) {\n items.push(\n <React.Fragment key=\"workspace\">\n {/* @ts-expect-error - OrderedList.Item children prop issue */}\n <OrderedList.Item>\n <Text color={theme.secondaryText}>\n Ask {PRODUCT_NAME} to create a new app or clone a\n repository.\n </Text>\n </OrderedList.Item>\n </React.Fragment>,\n )\n }\n if (shouldRecommendProjectGuide) {\n items.push(\n <React.Fragment key=\"projectGuide\">\n {/* @ts-expect-error - OrderedList.Item children prop issue */}\n <OrderedList.Item>\n <Text color={theme.secondaryText}>\n Run <Text color={theme.text}>/init</Text> to create\n a \n {PROJECT_FILE} file with instructions for {PRODUCT_NAME}\n .\n </Text>\n </OrderedList.Item>\n </React.Fragment>,\n )\n }\n\n if (showTerminalTip) {\n items.push(\n <React.Fragment key=\"terminal\">\n {/* @ts-expect-error - OrderedList.Item children prop issue */}\n <OrderedList.Item>\n <Text color={theme.secondaryText}>\n Run <Text color={theme.text}>/terminal-setup</Text>\n <Text bold={false}>\n {' '}\n to set up terminal integration\n </Text>\n </Text>\n </OrderedList.Item>\n </React.Fragment>,\n )\n }\n\n items.push(\n <React.Fragment key=\"questions\">\n {/* @ts-expect-error - OrderedList.Item children prop issue */}\n <OrderedList.Item>\n <Text color={theme.secondaryText}>\n Ask {PRODUCT_NAME} questions about your codebase.\n </Text>\n </OrderedList.Item>\n </React.Fragment>,\n )\n\n items.push(\n <React.Fragment key=\"changes\">\n {/* @ts-expect-error - OrderedList.Item children prop issue */}\n <OrderedList.Item>\n <Text color={theme.secondaryText}>\n Ask {PRODUCT_NAME} to implement changes to your codebase.\n </Text>\n </OrderedList.Item>\n </React.Fragment>,\n )\n\n return items\n })()}\n </OrderedList>\n </>\n )}\n\n {!showOnboarding && hasReleaseNotes && (\n <Box\n borderColor={getTheme().secondaryBorder}\n flexDirection=\"column\"\n marginRight={1}\n >\n <Box flexDirection=\"column\" gap={0}>\n <Box marginBottom={1}>\n <Text>\uD83C\uDD95 What's new in v{MACRO.VERSION}:</Text>\n </Box>\n <Box flexDirection=\"column\" marginLeft={1}>\n {releaseNotesToShow.map((note, noteIndex) => (\n <React.Fragment key={noteIndex}>\n <Text color={getTheme().secondaryText}>\u2022 {note}</Text>\n </React.Fragment>\n ))}\n </Box>\n </Box>\n </Box>\n )}\n\n {workspaceDir === homedir() && (\n <Text color={getTheme().warning}>\n Note: You have launched <Text bold>anon-code</Text> in your home\n directory. For the best experience, launch it in a project directory\n instead.\n </Text>\n )}\n </Box>\n )\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -147,20 +147,27 @@ function PromptInput({
|
|
|
147
147
|
if (suggestions.length === 0) return null;
|
|
148
148
|
const hasMoreAbove = visibleSuggestions.length > 0 && visibleSuggestions[0].globalIndex > 0;
|
|
149
149
|
const hasMoreBelow = visibleSuggestions.length > 0 && visibleSuggestions[visibleSuggestions.length - 1].globalIndex < suggestions.length - 1;
|
|
150
|
-
return /* @__PURE__ */ React.createElement(React.Fragment, null, hasMoreAbove && /* @__PURE__ */ React.createElement(Box, null, /* @__PURE__ */ React.createElement(Text, { dimColor: true }, "
|
|
150
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, hasMoreAbove && /* @__PURE__ */ React.createElement(Box, null, /* @__PURE__ */ React.createElement(Text, { dimColor: true }, " ", "\u2191 ", visibleSuggestions[0].globalIndex, " more above...")), visibleSuggestions.map((suggestion) => {
|
|
151
151
|
const isSelected = suggestion.globalIndex === selectedIndex;
|
|
152
152
|
const isAgent = suggestion.type === "agent";
|
|
153
153
|
const displayColor = isSelected ? theme.suggestion : isAgent && suggestion.metadata?.color ? suggestion.metadata.color : void 0;
|
|
154
|
-
return /* @__PURE__ */ React.createElement(
|
|
155
|
-
|
|
154
|
+
return /* @__PURE__ */ React.createElement(
|
|
155
|
+
Box,
|
|
156
156
|
{
|
|
157
|
-
|
|
158
|
-
|
|
157
|
+
key: `${suggestion.type}-${suggestion.value}-${suggestion.globalIndex}`,
|
|
158
|
+
flexDirection: "row"
|
|
159
159
|
},
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
160
|
+
/* @__PURE__ */ React.createElement(
|
|
161
|
+
Text,
|
|
162
|
+
{
|
|
163
|
+
color: displayColor,
|
|
164
|
+
dimColor: !isSelected && !displayColor
|
|
165
|
+
},
|
|
166
|
+
isSelected ? "\u25C6 " : " ",
|
|
167
|
+
suggestion.displayValue
|
|
168
|
+
)
|
|
169
|
+
);
|
|
170
|
+
}), hasMoreBelow && /* @__PURE__ */ React.createElement(Box, null, /* @__PURE__ */ React.createElement(Text, { dimColor: true }, " ", "\u2193", " ", suggestions.length - visibleSuggestions[visibleSuggestions.length - 1].globalIndex - 1, " ", "more below...")));
|
|
164
171
|
}, [suggestions, selectedIndex, visibleSuggestions, theme.suggestion]);
|
|
165
172
|
const onChange = useCallback(
|
|
166
173
|
(value) => {
|
|
@@ -246,7 +253,10 @@ function PromptInput({
|
|
|
246
253
|
return;
|
|
247
254
|
}
|
|
248
255
|
} else {
|
|
249
|
-
setMessage({
|
|
256
|
+
setMessage({
|
|
257
|
+
show: true,
|
|
258
|
+
text: decision.reason || "Blocked by hook"
|
|
259
|
+
});
|
|
250
260
|
setTimeout(() => setMessage({ show: false }), 3e3);
|
|
251
261
|
return;
|
|
252
262
|
}
|
|
@@ -399,7 +409,10 @@ function PromptInput({
|
|
|
399
409
|
abortController.abort();
|
|
400
410
|
}
|
|
401
411
|
setIsLoading(false);
|
|
402
|
-
setHotkeyMessage({
|
|
412
|
+
setHotkeyMessage({
|
|
413
|
+
show: true,
|
|
414
|
+
text: "Interrupted by user (Ctrl-C)"
|
|
415
|
+
});
|
|
403
416
|
setTimeout(() => setHotkeyMessage({ show: false }), 2e3);
|
|
404
417
|
} else if (input.length > 0) {
|
|
405
418
|
onInputChange("");
|
|
@@ -426,7 +439,10 @@ function PromptInput({
|
|
|
426
439
|
setHotkeyMessage({ show: true, text: "Exiting gracefully..." });
|
|
427
440
|
setTimeout(() => exit(), 500);
|
|
428
441
|
} else {
|
|
429
|
-
setHotkeyMessage({
|
|
442
|
+
setHotkeyMessage({
|
|
443
|
+
show: true,
|
|
444
|
+
text: "Press Ctrl-D again to exit"
|
|
445
|
+
});
|
|
430
446
|
setTimeout(() => setHotkeyMessage({ show: false }), 2e3);
|
|
431
447
|
}
|
|
432
448
|
return true;
|
|
@@ -580,7 +596,10 @@ function PromptInput({
|
|
|
580
596
|
if (escCount >= 1) {
|
|
581
597
|
const success = onRollbackConversation();
|
|
582
598
|
if (success) {
|
|
583
|
-
setMessage({
|
|
599
|
+
setMessage({
|
|
600
|
+
show: true,
|
|
601
|
+
text: "Conversation rolled back (Esc Esc)"
|
|
602
|
+
});
|
|
584
603
|
setTimeout(() => setMessage({ show: false }), 2e3);
|
|
585
604
|
} else {
|
|
586
605
|
setMessage({ show: true, text: "No history to rollback" });
|
|
@@ -589,7 +608,10 @@ function PromptInput({
|
|
|
589
608
|
setEscCount(0);
|
|
590
609
|
return true;
|
|
591
610
|
} else {
|
|
592
|
-
setMessage({
|
|
611
|
+
setMessage({
|
|
612
|
+
show: true,
|
|
613
|
+
text: "Press Esc again to rollback conversation"
|
|
614
|
+
});
|
|
593
615
|
setTimeout(() => setMessage({ show: false }), 2e3);
|
|
594
616
|
return true;
|
|
595
617
|
}
|
|
@@ -619,13 +641,16 @@ function PromptInput({
|
|
|
619
641
|
},
|
|
620
642
|
{ isActive: !isBackgroundPanelOpen && !fallbackMode }
|
|
621
643
|
);
|
|
622
|
-
const handleSpecialKey = useCallback(
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
644
|
+
const handleSpecialKey = useCallback(
|
|
645
|
+
(inputChar, key) => {
|
|
646
|
+
if (key.shift && (inputChar === "M" || inputChar === "m")) {
|
|
647
|
+
handleQuickModelSwitch();
|
|
648
|
+
return true;
|
|
649
|
+
}
|
|
650
|
+
return false;
|
|
651
|
+
},
|
|
652
|
+
[handleQuickModelSwitch]
|
|
653
|
+
);
|
|
629
654
|
const textInputColumns = useTerminalSize().columns - 6;
|
|
630
655
|
const tokenUsage = useMemo(() => countTokens(messages), [messages]);
|
|
631
656
|
const modelManager = getModelManager();
|
|
@@ -647,7 +672,7 @@ function PromptInput({
|
|
|
647
672
|
currentTokens: tokenUsage
|
|
648
673
|
};
|
|
649
674
|
}, [tokenUsage, modelSwitchMessage.show, submitCount, currentModelId]);
|
|
650
|
-
return /* @__PURE__ */ React.createElement(Box, { flexDirection: "column" }, fallbackMode && /* @__PURE__ */ React.createElement(Box, { marginBottom: 1 }, /* @__PURE__ */ React.createElement(Text, { color: "yellow" }, "\u26A0\uFE0F
|
|
675
|
+
return /* @__PURE__ */ React.createElement(Box, { flexDirection: "column" }, fallbackMode && /* @__PURE__ */ React.createElement(Box, { marginBottom: 1 }, /* @__PURE__ */ React.createElement(Text, { color: "yellow" }, "\u26A0\uFE0F Limited input mode"), /* @__PURE__ */ React.createElement(Text, { dimColor: true }, " ", "(Advanced keyboard shortcuts unavailable - raw mode not supported)")), historySearch.isActive && /* @__PURE__ */ React.createElement(
|
|
651
676
|
HistorySearchOverlay,
|
|
652
677
|
{
|
|
653
678
|
searchTerm: historySearch.searchTerm,
|
|
@@ -737,7 +762,12 @@ function PromptInput({
|
|
|
737
762
|
" background task",
|
|
738
763
|
backgroundShellCount > 1 ? "s" : ""
|
|
739
764
|
))),
|
|
740
|
-
/* @__PURE__ */ React.createElement(
|
|
765
|
+
/* @__PURE__ */ React.createElement(
|
|
766
|
+
SentryErrorBoundary,
|
|
767
|
+
{
|
|
768
|
+
children: /* @__PURE__ */ React.createElement(Box, { justifyContent: "flex-end", gap: 1 }, !debug && tokenUsage < WARNING_THRESHOLD && /* @__PURE__ */ React.createElement(Text, { dimColor: true }, terminalSetup.isEnabled && isShiftEnterKeyBindingInstalled() ? "shift + \u23CE for newline" : "\\\u23CE for newline"), /* @__PURE__ */ React.createElement(TokenWarning, { tokenUsage }))
|
|
769
|
+
}
|
|
770
|
+
)
|
|
741
771
|
), suggestions.length > 0 && /* @__PURE__ */ React.createElement(
|
|
742
772
|
Box,
|
|
743
773
|
{
|
|
@@ -746,21 +776,42 @@ function PromptInput({
|
|
|
746
776
|
paddingX: 2,
|
|
747
777
|
paddingY: 0
|
|
748
778
|
},
|
|
749
|
-
/* @__PURE__ */ React.createElement(Box, { flexDirection: "column" }, renderedSuggestions, /* @__PURE__ */ React.createElement(
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
779
|
+
/* @__PURE__ */ React.createElement(Box, { flexDirection: "column" }, renderedSuggestions, /* @__PURE__ */ React.createElement(
|
|
780
|
+
Box,
|
|
781
|
+
{
|
|
782
|
+
marginTop: 1,
|
|
783
|
+
paddingX: 3,
|
|
784
|
+
borderStyle: "round",
|
|
785
|
+
borderColor: "gray"
|
|
786
|
+
},
|
|
787
|
+
/* @__PURE__ */ React.createElement(
|
|
788
|
+
Text,
|
|
789
|
+
{
|
|
790
|
+
dimColor: !emptyDirMessage,
|
|
791
|
+
color: emptyDirMessage ? "yellow" : void 0
|
|
792
|
+
},
|
|
793
|
+
emptyDirMessage || (() => {
|
|
794
|
+
const selected = suggestions[selectedIndex];
|
|
795
|
+
const positionInfo = suggestions.length > 1 ? `[${selectedIndex + 1}/${suggestions.length}] ` : "";
|
|
796
|
+
if (!selected) {
|
|
797
|
+
return `${positionInfo}\u2191\u2193 navigate \u2022 \u2192 accept \u2022 Tab cycle \u2022 Esc close`;
|
|
798
|
+
}
|
|
799
|
+
if (selected?.value.endsWith("/")) {
|
|
800
|
+
return `${positionInfo}\u2192 enter directory \u2022 \u2191\u2193 navigate \u2022 Tab cycle \u2022 Esc close`;
|
|
801
|
+
} else if (selected?.type === "agent") {
|
|
802
|
+
return `${positionInfo}\u2192 select agent \u2022 \u2191\u2193 navigate \u2022 Tab cycle \u2022 Esc close`;
|
|
803
|
+
} else {
|
|
804
|
+
return `${positionInfo}\u2192 insert reference \u2022 \u2191\u2193 navigate \u2022 Tab cycle \u2022 Esc close`;
|
|
805
|
+
}
|
|
806
|
+
})()
|
|
807
|
+
)
|
|
808
|
+
)),
|
|
809
|
+
/* @__PURE__ */ React.createElement(
|
|
810
|
+
SentryErrorBoundary,
|
|
811
|
+
{
|
|
812
|
+
children: /* @__PURE__ */ React.createElement(Box, { justifyContent: "flex-end", gap: 1 }, /* @__PURE__ */ React.createElement(TokenWarning, { tokenUsage: countTokens(messages) }))
|
|
761
813
|
}
|
|
762
|
-
|
|
763
|
-
/* @__PURE__ */ React.createElement(SentryErrorBoundary, { children: /* @__PURE__ */ React.createElement(Box, { justifyContent: "flex-end", gap: 1 }, /* @__PURE__ */ React.createElement(TokenWarning, { tokenUsage: countTokens(messages) })) })
|
|
814
|
+
)
|
|
764
815
|
));
|
|
765
816
|
}
|
|
766
817
|
var PromptInput_default = memo(PromptInput);
|