@umsai/ums-code 0.0.14-v2 → 0.1.4-v2
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/package.json +16 -11
- package/dist/src/commands/extensions/disable.d.ts +2 -3
- package/dist/src/commands/extensions/disable.js +20 -6
- package/dist/src/commands/extensions/disable.js.map +1 -1
- package/dist/src/commands/extensions/enable.d.ts +2 -3
- package/dist/src/commands/extensions/enable.js +21 -10
- package/dist/src/commands/extensions/enable.js.map +1 -1
- package/dist/src/commands/extensions/examples/context/QWEN.md +8 -0
- package/dist/src/commands/extensions/examples/context/qwen-extension.json +4 -0
- package/dist/src/commands/extensions/examples/custom-commands/commands/fs/grep-code.toml +6 -0
- package/dist/src/commands/extensions/examples/custom-commands/qwen-extension.json +4 -0
- package/dist/src/commands/extensions/examples/exclude-tools/qwen-extension.json +5 -0
- package/dist/src/commands/extensions/examples/mcp-server/example.ts +60 -0
- package/dist/src/commands/extensions/examples/mcp-server/package.json +18 -0
- package/dist/src/commands/extensions/examples/mcp-server/qwen-extension.json +11 -0
- package/dist/src/commands/extensions/examples/mcp-server/tsconfig.json +13 -0
- package/dist/src/commands/extensions/install.d.ts +3 -2
- package/dist/src/commands/extensions/install.js +47 -17
- package/dist/src/commands/extensions/install.js.map +1 -1
- package/dist/src/commands/extensions/install.test.js +86 -9
- package/dist/src/commands/extensions/install.test.js.map +1 -1
- package/dist/src/commands/extensions/link.d.ts +12 -0
- package/dist/src/commands/extensions/link.js +37 -0
- package/dist/src/commands/extensions/link.js.map +1 -0
- package/dist/src/commands/extensions/list.js +1 -1
- package/dist/src/commands/extensions/list.js.map +1 -1
- package/dist/src/commands/extensions/new.d.ts +7 -0
- package/dist/src/commands/extensions/new.js +90 -0
- package/dist/src/commands/extensions/new.js.map +1 -0
- package/dist/src/commands/extensions/new.test.js +59 -0
- package/dist/src/commands/extensions/new.test.js.map +1 -0
- package/dist/src/commands/extensions/uninstall.js +1 -1
- package/dist/src/commands/extensions/uninstall.js.map +1 -1
- package/dist/src/commands/extensions/uninstall.test.js +2 -2
- package/dist/src/commands/extensions/uninstall.test.js.map +1 -1
- package/dist/src/commands/extensions/update.d.ts +2 -1
- package/dist/src/commands/extensions/update.js +80 -14
- package/dist/src/commands/extensions/update.js.map +1 -1
- package/dist/src/commands/extensions.js +4 -0
- package/dist/src/commands/extensions.js.map +1 -1
- package/dist/src/commands/mcp/add.js +6 -1
- package/dist/src/commands/mcp/add.js.map +1 -1
- package/dist/src/commands/mcp/list.js +4 -3
- package/dist/src/commands/mcp/list.js.map +1 -1
- package/dist/src/commands/mcp/remove.js +1 -1
- package/dist/src/commands/mcp/remove.js.map +1 -1
- package/dist/src/config/auth.d.ts +2 -4
- package/dist/src/config/auth.js +10 -36
- package/dist/src/config/auth.js.map +1 -1
- package/dist/src/config/auth.test.js +12 -32
- package/dist/src/config/auth.test.js.map +1 -1
- package/dist/src/config/config.d.ts +7 -2
- package/dist/src/config/config.js +183 -124
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/extension.d.ts +41 -18
- package/dist/src/config/extension.js +352 -195
- package/dist/src/config/extension.js.map +1 -1
- package/dist/src/config/extensions/extensionEnablement.d.ts +47 -0
- package/dist/src/config/extensions/extensionEnablement.js +189 -0
- package/dist/src/config/extensions/extensionEnablement.js.map +1 -0
- package/dist/src/config/extensions/extensionEnablement.test.js +333 -0
- package/dist/src/config/extensions/extensionEnablement.test.js.map +1 -0
- package/dist/src/config/extensions/github.d.ts +30 -0
- package/dist/src/config/extensions/github.js +322 -0
- package/dist/src/config/extensions/github.js.map +1 -0
- package/dist/src/{ui/components/ModelSelectionDialog.test.d.ts → config/extensions/github.test.d.ts} +1 -1
- package/dist/src/config/extensions/github.test.js +334 -0
- package/dist/src/config/extensions/github.test.js.map +1 -0
- package/dist/src/config/extensions/update.d.ts +19 -0
- package/dist/src/config/extensions/update.js +113 -0
- package/dist/src/config/extensions/update.js.map +1 -0
- package/dist/src/config/extensions/update.test.d.ts +6 -0
- package/dist/src/config/extensions/update.test.js +342 -0
- package/dist/src/config/extensions/update.test.js.map +1 -0
- package/dist/src/config/extensions/variableSchema.d.ts +8 -0
- package/dist/src/config/extensions/variableSchema.js +4 -0
- package/dist/src/config/extensions/variableSchema.js.map +1 -1
- package/dist/src/config/keyBindings.d.ts +5 -1
- package/dist/src/config/keyBindings.js +14 -25
- package/dist/src/config/keyBindings.js.map +1 -1
- package/dist/src/config/settings.d.ts +10 -5
- package/dist/src/config/settings.js +218 -275
- package/dist/src/config/settings.js.map +1 -1
- package/dist/src/config/settingsSchema.d.ts +358 -140
- package/dist/src/config/settingsSchema.js +347 -136
- package/dist/src/config/settingsSchema.js.map +1 -1
- package/dist/src/config/settingsSchema.test.js +64 -57
- package/dist/src/config/settingsSchema.test.js.map +1 -1
- package/dist/src/config/trustedFolders.d.ts +24 -5
- package/dist/src/config/trustedFolders.js +98 -48
- package/dist/src/config/trustedFolders.js.map +1 -1
- package/dist/src/config/trustedFolders.test.js +196 -20
- package/dist/src/config/trustedFolders.test.js.map +1 -1
- package/dist/src/core/auth.d.ts +13 -0
- package/dist/src/core/auth.js +27 -0
- package/dist/src/core/auth.js.map +1 -0
- package/dist/src/core/initializer.d.ts +21 -0
- package/dist/src/core/initializer.js +33 -0
- package/dist/src/core/initializer.js.map +1 -0
- package/dist/src/core/theme.d.ts +12 -0
- package/dist/src/core/theme.js +20 -0
- package/dist/src/core/theme.js.map +1 -0
- package/dist/src/gemini.d.ts +3 -2
- package/dist/src/gemini.js +167 -138
- package/dist/src/gemini.js.map +1 -1
- package/dist/src/gemini.test.js +190 -47
- package/dist/src/gemini.test.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/generated/git-commit.js.map +1 -1
- package/dist/src/nonInteractiveCli.d.ts +2 -1
- package/dist/src/nonInteractiveCli.js +101 -72
- package/dist/src/nonInteractiveCli.js.map +1 -1
- package/dist/src/nonInteractiveCliCommands.d.ts +17 -0
- package/dist/src/nonInteractiveCliCommands.js +79 -0
- package/dist/src/nonInteractiveCliCommands.js.map +1 -0
- package/dist/src/services/BuiltinCommandLoader.js +3 -3
- package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
- package/dist/src/services/BuiltinCommandLoader.test.js +53 -19
- package/dist/src/services/BuiltinCommandLoader.test.js.map +1 -1
- package/dist/src/services/FileCommandLoader.d.ts +2 -0
- package/dist/src/services/FileCommandLoader.js +7 -0
- package/dist/src/services/FileCommandLoader.js.map +1 -1
- package/dist/src/services/McpPromptLoader.js +43 -8
- package/dist/src/services/McpPromptLoader.js.map +1 -1
- package/dist/src/services/McpPromptLoader.test.js +228 -1
- package/dist/src/services/McpPromptLoader.test.js.map +1 -1
- package/dist/src/services/prompt-processors/shellProcessor.js +8 -1
- package/dist/src/services/prompt-processors/shellProcessor.js.map +1 -1
- package/dist/src/test-utils/createExtension.d.ts +15 -0
- package/dist/src/test-utils/createExtension.js +25 -0
- package/dist/src/test-utils/createExtension.js.map +1 -0
- package/dist/src/test-utils/mockCommandContext.js +2 -0
- package/dist/src/test-utils/mockCommandContext.js.map +1 -1
- package/dist/src/test-utils/render.d.ts +5 -1
- package/dist/src/test-utils/render.js +5 -1
- package/dist/src/test-utils/render.js.map +1 -1
- package/dist/src/ui/App.d.ts +1 -10
- package/dist/src/ui/App.js +26 -833
- package/dist/src/ui/App.js.map +1 -1
- package/dist/src/ui/AppContainer.d.ts +17 -0
- package/dist/src/ui/AppContainer.js +1069 -0
- package/dist/src/ui/AppContainer.js.map +1 -0
- package/dist/src/ui/AppContainer.test.d.ts +6 -0
- package/dist/src/ui/AppContainer.test.js +831 -0
- package/dist/src/ui/AppContainer.test.js.map +1 -0
- package/dist/src/ui/IdeIntegrationNudge.d.ts +2 -2
- package/dist/src/ui/IdeIntegrationNudge.js +6 -8
- package/dist/src/ui/IdeIntegrationNudge.js.map +1 -1
- package/dist/src/ui/{components → auth}/AuthDialog.d.ts +5 -1
- package/dist/src/ui/{components → auth}/AuthDialog.js +26 -29
- package/dist/src/ui/auth/AuthDialog.js.map +1 -0
- package/dist/src/ui/auth/AuthDialog.test.d.ts +6 -0
- package/dist/src/ui/{components → auth}/AuthDialog.test.js +92 -10
- package/dist/src/ui/auth/AuthDialog.test.js.map +1 -0
- package/dist/src/ui/{components → auth}/AuthInProgress.js +2 -2
- package/dist/src/ui/auth/AuthInProgress.js.map +1 -0
- package/dist/src/ui/auth/useAuth.d.ts +24 -0
- package/dist/src/ui/auth/useAuth.js +108 -0
- package/dist/src/ui/auth/useAuth.js.map +1 -0
- package/dist/src/ui/commands/aboutCommand.js +9 -3
- package/dist/src/ui/commands/aboutCommand.js.map +1 -1
- package/dist/src/ui/commands/bugCommand.js +19 -5
- package/dist/src/ui/commands/bugCommand.js.map +1 -1
- package/dist/src/ui/commands/chatCommand.d.ts +2 -0
- package/dist/src/ui/commands/chatCommand.js +95 -5
- package/dist/src/ui/commands/chatCommand.js.map +1 -1
- package/dist/src/ui/commands/clearCommand.js +1 -1
- package/dist/src/ui/commands/clearCommand.js.map +1 -1
- package/dist/src/ui/commands/corgiCommand.js +1 -0
- package/dist/src/ui/commands/corgiCommand.js.map +1 -1
- package/dist/src/ui/commands/directoryCommand.js +1 -1
- package/dist/src/ui/commands/directoryCommand.js.map +1 -1
- package/dist/src/ui/commands/extensionsCommand.js +92 -15
- package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
- package/dist/src/ui/commands/ideCommand.d.ts +1 -2
- package/dist/src/ui/commands/ideCommand.js +19 -10
- package/dist/src/ui/commands/ideCommand.js.map +1 -1
- package/dist/src/ui/commands/mcpCommand.js +88 -263
- package/dist/src/ui/commands/mcpCommand.js.map +1 -1
- package/dist/src/ui/commands/memoryCommand.js +1 -1
- package/dist/src/ui/commands/memoryCommand.js.map +1 -1
- package/dist/src/ui/commands/modelCommand.js +1 -16
- package/dist/src/ui/commands/modelCommand.js.map +1 -1
- package/dist/src/ui/commands/modelCommand.test.js +10 -11
- package/dist/src/ui/commands/modelCommand.test.js.map +1 -1
- package/dist/src/ui/commands/{privacyCommand.d.ts → permissionsCommand.d.ts} +1 -1
- package/dist/src/ui/commands/{privacyCommand.js → permissionsCommand.js} +5 -5
- package/dist/src/ui/commands/permissionsCommand.js.map +1 -0
- package/dist/src/ui/commands/permissionsCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/permissionsCommand.test.js +30 -0
- package/dist/src/ui/commands/permissionsCommand.test.js.map +1 -0
- package/dist/src/ui/commands/summaryCommand.js +1 -1
- package/dist/src/ui/commands/summaryCommand.js.map +1 -1
- package/dist/src/ui/commands/toolsCommand.js +10 -24
- package/dist/src/ui/commands/toolsCommand.js.map +1 -1
- package/dist/src/ui/commands/types.d.ts +8 -3
- package/dist/src/ui/commands/types.js +0 -1
- package/dist/src/ui/commands/types.js.map +1 -1
- package/dist/src/ui/components/AboutBox.js +2 -2
- package/dist/src/ui/components/AboutBox.js.map +1 -1
- package/dist/src/ui/components/AnsiOutput.d.ts +13 -0
- package/dist/src/ui/components/AnsiOutput.js +12 -0
- package/dist/src/ui/components/AnsiOutput.js.map +1 -0
- package/dist/src/ui/components/AnsiOutput.test.d.ts +6 -0
- package/dist/src/ui/components/AnsiOutput.test.js +97 -0
- package/dist/src/ui/components/AnsiOutput.test.js.map +1 -0
- package/dist/src/ui/components/AppHeader.d.ts +10 -0
- package/dist/src/ui/components/AppHeader.js +19 -0
- package/dist/src/ui/components/AppHeader.js.map +1 -0
- package/dist/src/ui/components/AutoAcceptIndicator.js +5 -5
- package/dist/src/ui/components/AutoAcceptIndicator.js.map +1 -1
- package/dist/src/ui/components/Composer.d.ts +6 -0
- package/dist/src/ui/components/Composer.js +54 -0
- package/dist/src/ui/components/Composer.js.map +1 -0
- package/dist/src/ui/components/Composer.test.d.ts +6 -0
- package/dist/src/ui/components/Composer.test.js +337 -0
- package/dist/src/ui/components/Composer.test.js.map +1 -0
- package/dist/src/ui/components/ConfigInitDisplay.d.ts +6 -0
- package/dist/src/ui/components/ConfigInitDisplay.js +38 -0
- package/dist/src/ui/components/ConfigInitDisplay.js.map +1 -0
- package/dist/src/ui/components/ConsentPrompt.d.ts +13 -0
- package/dist/src/ui/components/ConsentPrompt.js +19 -0
- package/dist/src/ui/components/ConsentPrompt.js.map +1 -0
- package/dist/src/ui/components/ConsentPrompt.test.d.ts +6 -0
- package/dist/src/ui/components/ConsentPrompt.test.js +67 -0
- package/dist/src/ui/components/ConsentPrompt.test.js.map +1 -0
- package/dist/src/ui/components/ConsoleSummaryDisplay.js +2 -2
- package/dist/src/ui/components/ConsoleSummaryDisplay.js.map +1 -1
- package/dist/src/ui/components/ContextSummaryDisplay.js +3 -3
- package/dist/src/ui/components/ContextSummaryDisplay.js.map +1 -1
- package/dist/src/ui/components/ContextUsageDisplay.d.ts +4 -1
- package/dist/src/ui/components/ContextUsageDisplay.js +27 -5
- package/dist/src/ui/components/ContextUsageDisplay.js.map +1 -1
- package/dist/src/ui/components/DebugProfiler.js +2 -2
- package/dist/src/ui/components/DebugProfiler.js.map +1 -1
- package/dist/src/ui/components/DetailedMessagesDisplay.js +7 -7
- package/dist/src/ui/components/DetailedMessagesDisplay.js.map +1 -1
- package/dist/src/ui/components/DialogManager.d.ts +12 -0
- package/dist/src/ui/components/DialogManager.js +130 -0
- package/dist/src/ui/components/DialogManager.js.map +1 -0
- package/dist/src/ui/components/EditorSettingsDialog.js +16 -7
- package/dist/src/ui/components/EditorSettingsDialog.js.map +1 -1
- package/dist/src/ui/components/ExitWarning.d.ts +7 -0
- package/dist/src/ui/components/ExitWarning.js +9 -0
- package/dist/src/ui/components/ExitWarning.js.map +1 -0
- package/dist/src/ui/components/FolderTrustDialog.js +22 -9
- package/dist/src/ui/components/FolderTrustDialog.js.map +1 -1
- package/dist/src/ui/components/FolderTrustDialog.test.js +37 -12
- package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
- package/dist/src/ui/components/Footer.d.ts +1 -17
- package/dist/src/ui/components/Footer.js +33 -11
- package/dist/src/ui/components/Footer.js.map +1 -1
- package/dist/src/ui/components/GeminiRespondingSpinner.d.ts +5 -0
- package/dist/src/ui/components/GeminiRespondingSpinner.js +7 -2
- package/dist/src/ui/components/GeminiRespondingSpinner.js.map +1 -1
- package/dist/src/ui/components/Header.js +2 -2
- package/dist/src/ui/components/Header.js.map +1 -1
- package/dist/src/ui/components/Help.d.ts +1 -1
- package/dist/src/ui/components/Help.js +9 -6
- package/dist/src/ui/components/Help.js.map +1 -1
- package/dist/src/ui/components/Help.test.d.ts +6 -0
- package/dist/src/ui/components/Help.test.js +57 -0
- package/dist/src/ui/components/Help.test.js.map +1 -0
- package/dist/src/ui/components/HistoryItemDisplay.d.ts +5 -4
- package/dist/src/ui/components/HistoryItemDisplay.js +13 -4
- package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
- package/dist/src/ui/components/HistoryItemDisplay.test.js +90 -9
- package/dist/src/ui/components/HistoryItemDisplay.test.js.map +1 -1
- package/dist/src/ui/components/IdeTrustChangeDialog.d.ts +11 -0
- package/dist/src/ui/components/IdeTrustChangeDialog.js +32 -0
- package/dist/src/ui/components/IdeTrustChangeDialog.js.map +1 -0
- package/dist/src/ui/components/IdeTrustChangeDialog.test.d.ts +6 -0
- package/dist/src/ui/components/IdeTrustChangeDialog.test.js +57 -0
- package/dist/src/ui/components/IdeTrustChangeDialog.test.js.map +1 -0
- package/dist/src/ui/components/InputPrompt.d.ts +9 -0
- package/dist/src/ui/components/InputPrompt.js +192 -46
- package/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/dist/src/ui/components/LoadingIndicator.js +2 -2
- package/dist/src/ui/components/LoadingIndicator.js.map +1 -1
- package/dist/src/ui/components/LoadingIndicator.test.js +4 -0
- package/dist/src/ui/components/LoadingIndicator.test.js.map +1 -1
- package/dist/src/ui/components/LoopDetectionConfirmation.d.ts +13 -0
- package/dist/src/ui/components/LoopDetectionConfirmation.js +37 -0
- package/dist/src/ui/components/LoopDetectionConfirmation.js.map +1 -0
- package/dist/src/ui/components/LoopDetectionConfirmation.test.d.ts +6 -0
- package/dist/src/ui/components/LoopDetectionConfirmation.test.js +28 -0
- package/dist/src/ui/components/LoopDetectionConfirmation.test.js.map +1 -0
- package/dist/src/ui/components/MainContent.d.ts +6 -0
- package/dist/src/ui/components/MainContent.js +28 -0
- package/dist/src/ui/components/MainContent.js.map +1 -0
- package/dist/src/ui/components/MemoryUsageDisplay.js +6 -4
- package/dist/src/ui/components/MemoryUsageDisplay.js.map +1 -1
- package/dist/src/ui/components/ModelDialog.d.ts +11 -0
- package/dist/src/ui/components/ModelDialog.js +42 -0
- package/dist/src/ui/components/ModelDialog.js.map +1 -0
- package/dist/src/ui/components/ModelDialog.test.d.ts +6 -0
- package/dist/src/ui/components/ModelDialog.test.js +158 -0
- package/dist/src/ui/components/ModelDialog.test.js.map +1 -0
- package/dist/src/ui/components/ModelStatsDisplay.js +7 -7
- package/dist/src/ui/components/ModelStatsDisplay.js.map +1 -1
- package/dist/src/ui/components/ModelSwitchDialog.d.ts +3 -1
- package/dist/src/ui/components/ModelSwitchDialog.js +11 -7
- package/dist/src/ui/components/ModelSwitchDialog.js.map +1 -1
- package/dist/src/ui/components/ModelSwitchDialog.test.js +14 -10
- package/dist/src/ui/components/ModelSwitchDialog.test.js.map +1 -1
- package/dist/src/ui/components/Notifications.d.ts +6 -0
- package/dist/src/ui/components/Notifications.js +23 -0
- package/dist/src/ui/components/Notifications.js.map +1 -0
- package/dist/src/ui/components/OpenAIKeyPrompt.js +63 -39
- package/dist/src/ui/components/OpenAIKeyPrompt.js.map +1 -1
- package/dist/src/ui/components/OpenAIKeyPrompt.test.js +8 -1
- package/dist/src/ui/components/OpenAIKeyPrompt.test.js.map +1 -1
- package/dist/src/ui/components/PermissionsModifyTrustDialog.d.ts +13 -0
- package/dist/src/ui/components/PermissionsModifyTrustDialog.js +48 -0
- package/dist/src/ui/components/PermissionsModifyTrustDialog.js.map +1 -0
- package/dist/src/ui/components/PermissionsModifyTrustDialog.test.d.ts +6 -0
- package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js +154 -0
- package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js.map +1 -0
- package/dist/src/ui/components/PrepareLabel.d.ts +5 -5
- package/dist/src/ui/components/PrepareLabel.js +67 -11
- package/dist/src/ui/components/PrepareLabel.js.map +1 -1
- package/dist/src/ui/components/PrepareLabel.test.d.ts +6 -0
- package/dist/src/ui/components/PrepareLabel.test.js +71 -0
- package/dist/src/ui/components/PrepareLabel.test.js.map +1 -0
- package/dist/src/ui/components/ProQuotaDialog.d.ts +13 -0
- package/dist/src/ui/components/ProQuotaDialog.js +23 -0
- package/dist/src/ui/components/ProQuotaDialog.js.map +1 -0
- package/dist/src/ui/components/ProQuotaDialog.test.d.ts +6 -0
- package/dist/src/ui/components/ProQuotaDialog.test.js +58 -0
- package/dist/src/ui/components/ProQuotaDialog.test.js.map +1 -0
- package/dist/src/ui/components/QueuedMessageDisplay.d.ts +9 -0
- package/dist/src/ui/components/QueuedMessageDisplay.js +20 -0
- package/dist/src/ui/components/QueuedMessageDisplay.js.map +1 -0
- package/dist/src/ui/components/QueuedMessageDisplay.test.d.ts +6 -0
- package/dist/src/ui/components/QueuedMessageDisplay.test.js +56 -0
- package/dist/src/ui/components/QueuedMessageDisplay.test.js.map +1 -0
- package/dist/src/ui/components/QuitConfirmationDialog.js +4 -0
- package/dist/src/ui/components/QuitConfirmationDialog.js.map +1 -1
- package/dist/src/ui/components/QuittingDisplay.d.ts +6 -0
- package/dist/src/ui/components/QuittingDisplay.js +20 -0
- package/dist/src/ui/components/QuittingDisplay.js.map +1 -0
- package/dist/src/ui/components/QwenOAuthProgress.js +7 -6
- package/dist/src/ui/components/QwenOAuthProgress.js.map +1 -1
- package/dist/src/ui/components/QwenOAuthProgress.test.js +84 -13
- package/dist/src/ui/components/QwenOAuthProgress.test.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.d.ts +2 -1
- package/dist/src/ui/components/SettingsDialog.js +97 -23
- package/dist/src/ui/components/SettingsDialog.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.test.js +474 -84
- package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
- package/dist/src/ui/components/ShellConfirmationDialog.js +5 -2
- package/dist/src/ui/components/ShellConfirmationDialog.js.map +1 -1
- package/dist/src/ui/components/ShellInputPrompt.d.ts +11 -0
- package/dist/src/ui/components/ShellInputPrompt.js +36 -0
- package/dist/src/ui/components/ShellInputPrompt.js.map +1 -0
- package/dist/src/ui/components/ShellModeIndicator.js +2 -2
- package/dist/src/ui/components/ShellModeIndicator.js.map +1 -1
- package/dist/src/ui/components/ShowMoreLines.js +2 -2
- package/dist/src/ui/components/ShowMoreLines.js.map +1 -1
- package/dist/src/ui/components/StatsDisplay.js +6 -6
- package/dist/src/ui/components/StatsDisplay.js.map +1 -1
- package/dist/src/ui/components/SuggestionsDisplay.d.ts +7 -2
- package/dist/src/ui/components/SuggestionsDisplay.js +17 -17
- package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
- package/dist/src/ui/components/ThemeDialog.js +14 -29
- package/dist/src/ui/components/ThemeDialog.js.map +1 -1
- package/dist/src/ui/components/ThemeDialog.test.d.ts +6 -0
- package/dist/src/ui/components/ThemeDialog.test.js +75 -0
- package/dist/src/ui/components/ThemeDialog.test.js.map +1 -0
- package/dist/src/ui/components/Tips.js +2 -2
- package/dist/src/ui/components/Tips.js.map +1 -1
- package/dist/src/ui/components/ToolStatsDisplay.js +4 -4
- package/dist/src/ui/components/ToolStatsDisplay.js.map +1 -1
- package/dist/src/ui/components/UpdateNotification.js +2 -2
- package/dist/src/ui/components/UpdateNotification.js.map +1 -1
- package/dist/src/ui/components/WelcomeBackDialog.js +2 -0
- package/dist/src/ui/components/WelcomeBackDialog.js.map +1 -1
- package/dist/src/ui/components/WorkspaceMigrationDialog.js +14 -11
- package/dist/src/ui/components/WorkspaceMigrationDialog.js.map +1 -1
- package/dist/src/ui/components/messages/CompressionMessage.d.ts +1 -2
- package/dist/src/ui/components/messages/CompressionMessage.js +37 -8
- package/dist/src/ui/components/messages/CompressionMessage.js.map +1 -1
- package/dist/src/ui/components/messages/CompressionMessage.test.d.ts +6 -0
- package/dist/src/ui/components/messages/CompressionMessage.test.js +160 -0
- package/dist/src/ui/components/messages/CompressionMessage.test.js.map +1 -0
- package/dist/src/ui/components/messages/DiffRenderer.d.ts +2 -1
- package/dist/src/ui/components/messages/DiffRenderer.js +14 -22
- package/dist/src/ui/components/messages/DiffRenderer.js.map +1 -1
- package/dist/src/ui/components/messages/ErrorMessage.js +2 -2
- package/dist/src/ui/components/messages/ErrorMessage.js.map +1 -1
- package/dist/src/ui/components/messages/GeminiMessage.js +2 -2
- package/dist/src/ui/components/messages/GeminiMessage.js.map +1 -1
- package/dist/src/ui/components/messages/InfoMessage.js +2 -2
- package/dist/src/ui/components/messages/InfoMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js +56 -21
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js +36 -8
- package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolGroupMessage.d.ts +3 -2
- package/dist/src/ui/components/messages/ToolGroupMessage.js +18 -10
- package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolGroupMessage.test.js +17 -15
- package/dist/src/ui/components/messages/ToolGroupMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolMessage.d.ts +3 -1
- package/dist/src/ui/components/messages/ToolMessage.js +53 -11
- package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolMessage.test.js +34 -1
- package/dist/src/ui/components/messages/ToolMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/UserMessage.js +3 -4
- package/dist/src/ui/components/messages/UserMessage.js.map +1 -1
- package/dist/src/ui/components/messages/UserShellMessage.js +2 -2
- package/dist/src/ui/components/messages/UserShellMessage.js.map +1 -1
- package/dist/src/ui/components/messages/WarningMessage.d.ts +11 -0
- package/dist/src/ui/components/messages/WarningMessage.js +10 -0
- package/dist/src/ui/components/messages/WarningMessage.js.map +1 -0
- package/dist/src/ui/components/shared/BaseSelectionList.d.ts +38 -0
- package/dist/src/ui/components/shared/BaseSelectionList.js +72 -0
- package/dist/src/ui/components/shared/BaseSelectionList.js.map +1 -0
- package/dist/src/ui/components/shared/BaseSelectionList.test.d.ts +6 -0
- package/dist/src/ui/components/shared/BaseSelectionList.test.js +376 -0
- package/dist/src/ui/components/shared/BaseSelectionList.test.js.map +1 -0
- package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.d.ts +35 -0
- package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.js +13 -0
- package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.js.map +1 -0
- package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.test.d.ts +6 -0
- package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.test.js +79 -0
- package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.test.js.map +1 -0
- package/dist/src/ui/components/shared/EnumSelector.d.ts +18 -0
- package/dist/src/ui/components/shared/EnumSelector.js +44 -0
- package/dist/src/ui/components/shared/EnumSelector.js.map +1 -0
- package/dist/src/ui/components/shared/EnumSelector.test.d.ts +6 -0
- package/dist/src/ui/components/shared/EnumSelector.test.js +70 -0
- package/dist/src/ui/components/shared/EnumSelector.test.js.map +1 -0
- package/dist/src/ui/components/shared/MaxSizedBox.js +2 -2
- package/dist/src/ui/components/shared/MaxSizedBox.js.map +1 -1
- package/dist/src/ui/components/shared/RadioButtonSelect.d.ts +2 -3
- package/dist/src/ui/components/shared/RadioButtonSelect.js +10 -105
- package/dist/src/ui/components/shared/RadioButtonSelect.js.map +1 -1
- package/dist/src/ui/components/shared/RadioButtonSelect.test.js +115 -92
- package/dist/src/ui/components/shared/RadioButtonSelect.test.js.map +1 -1
- package/dist/src/ui/components/shared/ScopeSelector.d.ts +19 -0
- package/dist/src/ui/components/shared/ScopeSelector.js +14 -0
- package/dist/src/ui/components/shared/ScopeSelector.js.map +1 -0
- package/dist/src/ui/components/shared/text-buffer.d.ts +25 -2
- package/dist/src/ui/components/shared/text-buffer.js +296 -187
- package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
- package/dist/src/ui/components/subagents/create/AgentCreationWizard.js +2 -3
- package/dist/src/ui/components/subagents/create/AgentCreationWizard.js.map +1 -1
- package/dist/src/ui/components/subagents/create/ColorSelector.js +3 -2
- package/dist/src/ui/components/subagents/create/ColorSelector.js.map +1 -1
- package/dist/src/ui/components/subagents/create/CreationSummary.js +6 -5
- package/dist/src/ui/components/subagents/create/CreationSummary.js.map +1 -1
- package/dist/src/ui/components/subagents/create/DescriptionInput.js +2 -3
- package/dist/src/ui/components/subagents/create/DescriptionInput.js.map +1 -1
- package/dist/src/ui/components/subagents/create/GenerationMethodSelector.js +1 -0
- package/dist/src/ui/components/subagents/create/GenerationMethodSelector.js.map +1 -1
- package/dist/src/ui/components/subagents/create/LocationSelector.js +1 -0
- package/dist/src/ui/components/subagents/create/LocationSelector.js.map +1 -1
- package/dist/src/ui/components/subagents/create/TextEntryStep.js +2 -2
- package/dist/src/ui/components/subagents/create/TextEntryStep.js.map +1 -1
- package/dist/src/ui/components/subagents/create/ToolSelector.js +4 -3
- package/dist/src/ui/components/subagents/create/ToolSelector.js.map +1 -1
- package/dist/src/ui/components/subagents/manage/ActionSelectionStep.js +4 -4
- package/dist/src/ui/components/subagents/manage/ActionSelectionStep.js.map +1 -1
- package/dist/src/ui/components/subagents/manage/AgentEditStep.js +1 -0
- package/dist/src/ui/components/subagents/manage/AgentEditStep.js.map +1 -1
- package/dist/src/ui/components/subagents/manage/AgentSelectionStep.js +1 -2
- package/dist/src/ui/components/subagents/manage/AgentSelectionStep.js.map +1 -1
- package/dist/src/ui/components/subagents/manage/AgentsManagerDialog.js +1 -2
- package/dist/src/ui/components/subagents/manage/AgentsManagerDialog.js.map +1 -1
- package/dist/src/ui/components/subagents/runtime/AgentExecutionDisplay.js +9 -10
- package/dist/src/ui/components/subagents/runtime/AgentExecutionDisplay.js.map +1 -1
- package/dist/src/ui/components/ums/UMSKeyPrompt.d.ts +2 -2
- package/dist/src/ui/components/ums/UMSKeyPrompt.js +66 -64
- package/dist/src/ui/components/ums/UMSKeyPrompt.js.map +1 -1
- package/dist/src/ui/components/views/ExtensionsList.d.ts +6 -0
- package/dist/src/ui/components/views/ExtensionsList.js +47 -0
- package/dist/src/ui/components/views/ExtensionsList.js.map +1 -0
- package/dist/src/ui/components/views/ExtensionsList.test.d.ts +6 -0
- package/dist/src/ui/components/views/ExtensionsList.test.js +97 -0
- package/dist/src/ui/components/views/ExtensionsList.test.js.map +1 -0
- package/dist/src/ui/components/views/McpStatus.d.ts +27 -0
- package/dist/src/ui/components/views/McpStatus.js +77 -0
- package/dist/src/ui/components/views/McpStatus.js.map +1 -0
- package/dist/src/ui/components/views/McpStatus.test.d.ts +6 -0
- package/dist/src/ui/components/views/McpStatus.test.js +117 -0
- package/dist/src/ui/components/views/McpStatus.test.js.map +1 -0
- package/dist/src/ui/components/views/ToolsList.d.ts +14 -0
- package/dist/src/ui/components/views/ToolsList.js +7 -0
- package/dist/src/ui/components/views/ToolsList.js.map +1 -0
- package/dist/src/ui/components/views/ToolsList.test.d.ts +6 -0
- package/dist/src/ui/components/views/ToolsList.test.js +45 -0
- package/dist/src/ui/components/views/ToolsList.test.js.map +1 -0
- package/dist/src/ui/constants.d.ts +1 -0
- package/dist/src/ui/constants.js +1 -0
- package/dist/src/ui/constants.js.map +1 -1
- package/dist/src/ui/contexts/AppContext.d.ts +11 -0
- package/dist/src/ui/contexts/AppContext.js +15 -0
- package/dist/src/ui/contexts/AppContext.js.map +1 -0
- package/dist/src/ui/contexts/ConfigContext.d.ts +9 -0
- package/dist/src/ui/contexts/ConfigContext.js +16 -0
- package/dist/src/ui/contexts/ConfigContext.js.map +1 -0
- package/dist/src/ui/contexts/KeypressContext.d.ts +3 -0
- package/dist/src/ui/contexts/KeypressContext.js +309 -44
- package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
- package/dist/src/ui/contexts/KeypressContext.test.js +288 -2
- package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
- package/dist/src/ui/contexts/SessionContext.d.ts +6 -0
- package/dist/src/ui/contexts/SessionContext.js +107 -5
- package/dist/src/ui/contexts/SessionContext.js.map +1 -1
- package/dist/src/ui/contexts/ShellFocusContext.d.ts +7 -0
- package/dist/src/ui/contexts/ShellFocusContext.js +9 -0
- package/dist/src/ui/contexts/ShellFocusContext.js.map +1 -0
- package/dist/src/ui/contexts/UIActionsContext.d.ts +45 -0
- package/dist/src/ui/contexts/UIActionsContext.js +21 -0
- package/dist/src/ui/contexts/UIActionsContext.js.map +1 -0
- package/dist/src/ui/contexts/UIStateContext.d.ts +117 -0
- package/dist/src/ui/contexts/UIStateContext.js +17 -0
- package/dist/src/ui/contexts/UIStateContext.js.map +1 -0
- package/dist/src/ui/hooks/atCommandProcessor.js +12 -12
- package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.test.js +21 -19
- package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
- package/dist/src/ui/hooks/keyToAnsi.d.ts +15 -0
- package/dist/src/ui/hooks/keyToAnsi.js +67 -0
- package/dist/src/ui/hooks/keyToAnsi.js.map +1 -0
- package/dist/src/ui/hooks/shellCommandProcessor.d.ts +2 -1
- package/dist/src/ui/hooks/shellCommandProcessor.js +65 -15
- package/dist/src/ui/hooks/shellCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/shellCommandProcessor.test.js +196 -17
- package/dist/src/ui/hooks/shellCommandProcessor.test.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.d.ts +20 -3
- package/dist/src/ui/hooks/slashCommandProcessor.js +48 -90
- package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/useAtCompletion.js +1 -1
- package/dist/src/ui/hooks/useAtCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useAutoAcceptIndicator.d.ts +3 -2
- package/dist/src/ui/hooks/useAutoAcceptIndicator.js +20 -18
- package/dist/src/ui/hooks/useAutoAcceptIndicator.js.map +1 -1
- package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js +43 -0
- package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js.map +1 -1
- package/dist/src/ui/hooks/useDialogClose.d.ts +0 -2
- package/dist/src/ui/hooks/useDialogClose.js +0 -14
- package/dist/src/ui/hooks/useDialogClose.js.map +1 -1
- package/dist/src/ui/hooks/useEditorSettings.js +1 -1
- package/dist/src/ui/hooks/useEditorSettings.js.map +1 -1
- package/dist/src/ui/hooks/useEditorSettings.test.js +4 -4
- package/dist/src/ui/hooks/useEditorSettings.test.js.map +1 -1
- package/dist/src/ui/hooks/useExtensionUpdates.d.ts +21 -0
- package/dist/src/ui/hooks/useExtensionUpdates.js +116 -0
- package/dist/src/ui/hooks/useExtensionUpdates.js.map +1 -0
- package/dist/src/ui/hooks/useExtensionUpdates.test.d.ts +6 -0
- package/dist/src/ui/hooks/useExtensionUpdates.test.js +243 -0
- package/dist/src/ui/hooks/useExtensionUpdates.test.js.map +1 -0
- package/dist/src/ui/hooks/useFocus.js +10 -0
- package/dist/src/ui/hooks/useFocus.js.map +1 -1
- package/dist/src/ui/hooks/useFolderTrust.js +6 -10
- package/dist/src/ui/hooks/useFolderTrust.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.d.ts +14 -3
- package/dist/src/ui/hooks/useGeminiStream.js +184 -83
- package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
- package/dist/src/ui/hooks/useGitBranchName.js +15 -18
- package/dist/src/ui/hooks/useGitBranchName.js.map +1 -1
- package/dist/src/ui/hooks/useGitBranchName.test.js +49 -53
- package/dist/src/ui/hooks/useGitBranchName.test.js.map +1 -1
- package/dist/src/ui/hooks/useIdeTrustListener.d.ts +16 -0
- package/dist/src/ui/hooks/useIdeTrustListener.js +65 -0
- package/dist/src/ui/hooks/useIdeTrustListener.js.map +1 -0
- package/dist/src/ui/hooks/useIdeTrustListener.test.d.ts +6 -0
- package/dist/src/ui/hooks/useIdeTrustListener.test.js +183 -0
- package/dist/src/ui/hooks/useIdeTrustListener.test.js.map +1 -0
- package/dist/src/ui/hooks/useInputHistoryStore.d.ts +19 -0
- package/dist/src/ui/hooks/useInputHistoryStore.js +81 -0
- package/dist/src/ui/hooks/useInputHistoryStore.js.map +1 -0
- package/dist/src/ui/hooks/useInputHistoryStore.test.d.ts +6 -0
- package/dist/src/ui/hooks/useInputHistoryStore.test.js +234 -0
- package/dist/src/ui/hooks/useInputHistoryStore.test.js.map +1 -0
- package/dist/src/ui/hooks/useLoadingIndicator.d.ts +1 -1
- package/dist/src/ui/hooks/useLoadingIndicator.js +2 -2
- package/dist/src/ui/hooks/useLoadingIndicator.js.map +1 -1
- package/dist/src/ui/hooks/useLoadingIndicator.test.js +2 -2
- package/dist/src/ui/hooks/useLoadingIndicator.test.js.map +1 -1
- package/dist/src/ui/hooks/useMemoryMonitor.d.ts +13 -0
- package/dist/src/ui/hooks/useMemoryMonitor.js +28 -0
- package/dist/src/ui/hooks/useMemoryMonitor.js.map +1 -0
- package/dist/src/ui/hooks/useMemoryMonitor.test.d.ts +6 -0
- package/dist/src/ui/hooks/useMemoryMonitor.test.js +57 -0
- package/dist/src/ui/hooks/useMemoryMonitor.test.js.map +1 -0
- package/dist/src/ui/hooks/useMessageQueue.d.ts +2 -1
- package/dist/src/ui/hooks/useMessageQueue.js +5 -3
- package/dist/src/ui/hooks/useMessageQueue.js.map +1 -1
- package/dist/src/ui/hooks/useMessageQueue.test.js +9 -0
- package/dist/src/ui/hooks/useMessageQueue.test.js.map +1 -1
- package/dist/src/ui/hooks/useModelCommand.d.ts +12 -0
- package/dist/src/ui/hooks/useModelCommand.js +21 -0
- package/dist/src/ui/hooks/useModelCommand.js.map +1 -0
- package/dist/src/ui/hooks/useModelCommand.test.d.ts +6 -0
- package/dist/src/ui/hooks/useModelCommand.test.js +35 -0
- package/dist/src/ui/hooks/useModelCommand.test.js.map +1 -0
- package/dist/src/ui/hooks/usePermissionsModifyTrust.d.ts +17 -0
- package/dist/src/ui/hooks/usePermissionsModifyTrust.js +78 -0
- package/dist/src/ui/hooks/usePermissionsModifyTrust.js.map +1 -0
- package/dist/src/ui/hooks/usePermissionsModifyTrust.test.d.ts +6 -0
- package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js +182 -0
- package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js.map +1 -0
- package/dist/src/ui/hooks/usePhraseCycler.d.ts +1 -1
- package/dist/src/ui/hooks/usePhraseCycler.js +11 -8
- package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
- package/dist/src/ui/hooks/useQuotaAndFallback.d.ts +21 -0
- package/dist/src/ui/hooks/useQuotaAndFallback.js +122 -0
- package/dist/src/ui/hooks/useQuotaAndFallback.js.map +1 -0
- package/dist/src/ui/hooks/useQuotaAndFallback.test.d.ts +6 -0
- package/dist/src/ui/hooks/useQuotaAndFallback.test.js +269 -0
- package/dist/src/ui/hooks/useQuotaAndFallback.test.js.map +1 -0
- package/dist/src/ui/hooks/useReactToolScheduler.d.ts +3 -2
- package/dist/src/ui/hooks/useReactToolScheduler.js +23 -17
- package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
- package/dist/src/ui/hooks/useReverseSearchCompletion.d.ts +1 -1
- package/dist/src/ui/hooks/useReverseSearchCompletion.js +67 -20
- package/dist/src/ui/hooks/useReverseSearchCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useSelectionList.d.ts +34 -0
- package/dist/src/ui/hooks/useSelectionList.js +245 -0
- package/dist/src/ui/hooks/useSelectionList.js.map +1 -0
- package/dist/src/ui/hooks/useSelectionList.test.d.ts +6 -0
- package/dist/src/ui/hooks/useSelectionList.test.js +701 -0
- package/dist/src/ui/hooks/useSelectionList.test.js.map +1 -0
- package/dist/src/ui/hooks/useSlashCompletion.d.ts +1 -1
- package/dist/src/ui/hooks/useSlashCompletion.js +281 -67
- package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useSlashCompletion.test.d.ts +4 -1
- package/dist/src/ui/hooks/useSlashCompletion.test.js +390 -65
- package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -1
- package/dist/src/ui/hooks/useStateAndRef.d.ts +1 -1
- package/dist/src/ui/hooks/useStateAndRef.js +2 -2
- package/dist/src/ui/hooks/useStateAndRef.js.map +1 -1
- package/dist/src/ui/hooks/useThemeCommand.d.ts +1 -1
- package/dist/src/ui/hooks/useThemeCommand.js +3 -14
- package/dist/src/ui/hooks/useThemeCommand.js.map +1 -1
- package/dist/src/ui/hooks/useToolScheduler.test.js +64 -291
- package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
- package/dist/src/ui/hooks/useVisionAutoSwitch.d.ts +1 -1
- package/dist/src/ui/hooks/useVisionAutoSwitch.js +36 -6
- package/dist/src/ui/hooks/useVisionAutoSwitch.js.map +1 -1
- package/dist/src/ui/hooks/useVisionAutoSwitch.test.js +3 -3
- package/dist/src/ui/hooks/useVisionAutoSwitch.test.js.map +1 -1
- package/dist/src/ui/hooks/useWelcomeBack.js +2 -2
- package/dist/src/ui/hooks/useWelcomeBack.js.map +1 -1
- package/dist/src/ui/hooks/useWorkspaceMigration.js +2 -1
- package/dist/src/ui/hooks/useWorkspaceMigration.js.map +1 -1
- package/dist/src/ui/keyMatchers.test.js +17 -0
- package/dist/src/ui/keyMatchers.test.js.map +1 -1
- package/dist/src/ui/layouts/DefaultAppLayout.d.ts +9 -0
- package/dist/src/ui/layouts/DefaultAppLayout.js +13 -0
- package/dist/src/ui/layouts/DefaultAppLayout.js.map +1 -0
- package/dist/src/ui/layouts/ScreenReaderAppLayout.d.ts +7 -0
- package/dist/src/ui/layouts/ScreenReaderAppLayout.js +14 -0
- package/dist/src/ui/layouts/ScreenReaderAppLayout.js.map +1 -0
- package/dist/src/ui/models/availableModels.d.ts +11 -5
- package/dist/src/ui/models/availableModels.js +89 -3
- package/dist/src/ui/models/availableModels.js.map +1 -1
- package/dist/src/ui/noninteractive/nonInteractiveUi.d.ts +12 -0
- package/dist/src/ui/noninteractive/nonInteractiveUi.js +28 -0
- package/dist/src/ui/noninteractive/nonInteractiveUi.js.map +1 -0
- package/dist/src/ui/state/extensions.d.ts +42 -0
- package/dist/src/ui/state/extensions.js +62 -0
- package/dist/src/ui/state/extensions.js.map +1 -0
- package/dist/src/ui/themes/ayu.js +1 -1
- package/dist/src/ui/themes/dracula.js +2 -2
- package/dist/src/ui/themes/github-dark.js +1 -1
- package/dist/src/ui/themes/theme.js +19 -19
- package/dist/src/ui/themes/theme.js.map +1 -1
- package/dist/src/ui/types.d.ts +79 -3
- package/dist/src/ui/types.js +14 -0
- package/dist/src/ui/types.js.map +1 -1
- package/dist/src/ui/utils/CodeColorizer.js +3 -2
- package/dist/src/ui/utils/CodeColorizer.js.map +1 -1
- package/dist/src/ui/utils/InlineMarkdownRenderer.js +7 -7
- package/dist/src/ui/utils/InlineMarkdownRenderer.js.map +1 -1
- package/dist/src/ui/utils/MarkdownDisplay.js +11 -11
- package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
- package/dist/src/ui/utils/MarkdownDisplay.test.js +95 -87
- package/dist/src/ui/utils/MarkdownDisplay.test.js.map +1 -1
- package/dist/src/ui/utils/TableRenderer.js +4 -4
- package/dist/src/ui/utils/TableRenderer.js.map +1 -1
- package/dist/src/ui/utils/clipboardUtils.js +5 -6
- package/dist/src/ui/utils/clipboardUtils.js.map +1 -1
- package/dist/src/ui/utils/displayUtils.d.ts +1 -0
- package/dist/src/ui/utils/displayUtils.js +7 -4
- package/dist/src/ui/utils/displayUtils.js.map +1 -1
- package/dist/src/ui/utils/displayUtils.test.js +37 -18
- package/dist/src/ui/utils/displayUtils.test.js.map +1 -1
- package/dist/src/ui/utils/highlight.d.ts +11 -0
- package/dist/src/ui/utils/highlight.js +78 -0
- package/dist/src/ui/utils/highlight.js.map +1 -0
- package/dist/src/ui/utils/highlight.test.d.ts +6 -0
- package/dist/src/ui/utils/highlight.test.js +120 -0
- package/dist/src/ui/utils/highlight.test.js.map +1 -0
- package/dist/src/ui/utils/kittyProtocolDetector.js +39 -29
- package/dist/src/ui/utils/kittyProtocolDetector.js.map +1 -1
- package/dist/src/ui/utils/platformConstants.d.ts +24 -1
- package/dist/src/ui/utils/platformConstants.js +26 -1
- package/dist/src/ui/utils/platformConstants.js.map +1 -1
- package/dist/src/ui/utils/textUtils.d.ts +10 -0
- package/dist/src/ui/utils/textUtils.js +108 -3
- package/dist/src/ui/utils/textUtils.js.map +1 -1
- package/dist/src/ui/utils/textUtils.test.d.ts +6 -0
- package/dist/src/ui/utils/textUtils.test.js +132 -0
- package/dist/src/ui/utils/textUtils.test.js.map +1 -0
- package/dist/src/ui/utils/updateCheck.d.ts +1 -0
- package/dist/src/ui/utils/updateCheck.js +53 -2
- package/dist/src/ui/utils/updateCheck.js.map +1 -1
- package/dist/src/utils/commands.d.ts +20 -0
- package/dist/src/utils/commands.js +53 -0
- package/dist/src/utils/commands.js.map +1 -0
- package/dist/src/utils/commands.test.d.ts +6 -0
- package/dist/src/utils/commands.test.js +115 -0
- package/dist/src/utils/commands.test.js.map +1 -0
- package/dist/src/utils/commentJson.d.ts +9 -0
- package/dist/src/utils/commentJson.js +48 -0
- package/dist/src/utils/commentJson.js.map +1 -0
- package/dist/src/utils/commentJson.test.d.ts +6 -0
- package/dist/src/utils/commentJson.test.js +146 -0
- package/dist/src/utils/commentJson.test.js.map +1 -0
- package/dist/src/utils/deepMerge.d.ts +9 -0
- package/dist/src/utils/deepMerge.js +58 -0
- package/dist/src/utils/deepMerge.js.map +1 -0
- package/dist/src/utils/deepMerge.test.d.ts +6 -0
- package/dist/src/utils/deepMerge.test.js +143 -0
- package/dist/src/utils/deepMerge.test.js.map +1 -0
- package/dist/src/utils/envVarResolver.d.ts +39 -0
- package/dist/src/utils/envVarResolver.js +97 -0
- package/dist/src/utils/envVarResolver.js.map +1 -0
- package/dist/src/utils/envVarResolver.test.d.ts +6 -0
- package/dist/src/utils/envVarResolver.test.js +221 -0
- package/dist/src/utils/envVarResolver.test.js.map +1 -0
- package/dist/src/utils/errors.d.ts +21 -0
- package/dist/src/utils/errors.js +93 -0
- package/dist/src/utils/errors.js.map +1 -1
- package/dist/src/utils/errors.test.d.ts +6 -0
- package/dist/src/utils/errors.test.js +303 -0
- package/dist/src/utils/errors.test.js.map +1 -0
- package/dist/src/utils/events.d.ts +2 -1
- package/dist/src/utils/events.js +1 -0
- package/dist/src/utils/events.js.map +1 -1
- package/dist/src/utils/handleAutoUpdate.js +6 -3
- package/dist/src/utils/handleAutoUpdate.js.map +1 -1
- package/dist/src/utils/math.d.ts +13 -0
- package/dist/src/utils/math.js +14 -0
- package/dist/src/utils/math.js.map +1 -0
- package/dist/src/utils/processUtils.d.ts +13 -0
- package/dist/src/utils/processUtils.js +18 -0
- package/dist/src/utils/processUtils.js.map +1 -0
- package/dist/src/utils/processUtils.test.d.ts +6 -0
- package/dist/src/utils/processUtils.test.js +20 -0
- package/dist/src/utils/processUtils.test.js.map +1 -0
- package/dist/src/utils/relaunch.d.ts +7 -0
- package/dist/src/utils/relaunch.js +57 -0
- package/dist/src/utils/relaunch.js.map +1 -0
- package/dist/src/utils/relaunch.test.d.ts +6 -0
- package/dist/src/utils/relaunch.test.js +273 -0
- package/dist/src/utils/relaunch.test.js.map +1 -0
- package/dist/src/utils/sandbox.d.ts +1 -1
- package/dist/src/utils/sandbox.js +42 -17
- package/dist/src/utils/sandbox.js.map +1 -1
- package/dist/src/utils/settingsUtils.d.ts +16 -6
- package/dist/src/utils/settingsUtils.js +35 -25
- package/dist/src/utils/settingsUtils.js.map +1 -1
- package/dist/src/utils/settingsUtils.test.js +455 -158
- package/dist/src/utils/settingsUtils.test.js.map +1 -1
- package/dist/src/utils/startupWarnings.js +1 -1
- package/dist/src/utils/startupWarnings.js.map +1 -1
- package/dist/src/utils/userStartupWarnings.d.ts +7 -1
- package/dist/src/utils/userStartupWarnings.js +21 -6
- package/dist/src/utils/userStartupWarnings.js.map +1 -1
- package/dist/src/utils/userStartupWarnings.test.js +26 -5
- package/dist/src/utils/userStartupWarnings.test.js.map +1 -1
- package/dist/src/utils/windowTitle.d.ts +12 -0
- package/dist/src/utils/windowTitle.js +19 -0
- package/dist/src/utils/windowTitle.js.map +1 -0
- package/dist/src/utils/windowTitle.test.d.ts +6 -0
- package/dist/src/utils/windowTitle.test.js +49 -0
- package/dist/src/utils/windowTitle.test.js.map +1 -0
- package/dist/src/validateNonInterActiveAuth.d.ts +4 -2
- package/dist/src/validateNonInterActiveAuth.js +36 -21
- package/dist/src/validateNonInterActiveAuth.js.map +1 -1
- package/dist/src/zed-integration/fileSystemService.d.ts +1 -0
- package/dist/src/zed-integration/fileSystemService.js +3 -0
- package/dist/src/zed-integration/fileSystemService.js.map +1 -1
- package/dist/src/zed-integration/schema.d.ts +282 -282
- package/dist/src/zed-integration/zedIntegration.d.ts +8 -1
- package/dist/src/zed-integration/zedIntegration.js +34 -30
- package/dist/src/zed-integration/zedIntegration.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +16 -11
- package/dist/src/ui/commands/privacyCommand.js.map +0 -1
- package/dist/src/ui/components/AuthDialog.js.map +0 -1
- package/dist/src/ui/components/AuthDialog.test.js.map +0 -1
- package/dist/src/ui/components/AuthInProgress.js.map +0 -1
- package/dist/src/ui/components/ModelSelectionDialog.d.ts +0 -14
- package/dist/src/ui/components/ModelSelectionDialog.js +0 -26
- package/dist/src/ui/components/ModelSelectionDialog.js.map +0 -1
- package/dist/src/ui/components/ModelSelectionDialog.test.js +0 -124
- package/dist/src/ui/components/ModelSelectionDialog.test.js.map +0 -1
- package/dist/src/ui/hooks/useAuthCommand.d.ts +0 -14
- package/dist/src/ui/hooks/useAuthCommand.js +0 -66
- package/dist/src/ui/hooks/useAuthCommand.js.map +0 -1
- package/dist/src/ui/hooks/usePrivacySettings.d.ts +0 -16
- package/dist/src/ui/hooks/usePrivacySettings.js +0 -119
- package/dist/src/ui/hooks/usePrivacySettings.js.map +0 -1
- package/dist/src/ui/hooks/usePrivacySettings.test.js +0 -154
- package/dist/src/ui/hooks/usePrivacySettings.test.js.map +0 -1
- package/dist/src/ui/privacy/CloudFreePrivacyNotice.d.ts +0 -12
- package/dist/src/ui/privacy/CloudFreePrivacyNotice.js +0 -41
- package/dist/src/ui/privacy/CloudFreePrivacyNotice.js.map +0 -1
- package/dist/src/ui/privacy/CloudPaidPrivacyNotice.d.ts +0 -10
- package/dist/src/ui/privacy/CloudPaidPrivacyNotice.js +0 -18
- package/dist/src/ui/privacy/CloudPaidPrivacyNotice.js.map +0 -1
- package/dist/src/ui/privacy/GeminiPrivacyNotice.d.ts +0 -10
- package/dist/src/ui/privacy/GeminiPrivacyNotice.js +0 -18
- package/dist/src/ui/privacy/GeminiPrivacyNotice.js.map +0 -1
- package/dist/src/ui/privacy/PrivacyNotice.d.ts +0 -12
- package/dist/src/ui/privacy/PrivacyNotice.js +0 -25
- package/dist/src/ui/privacy/PrivacyNotice.js.map +0 -1
- /package/dist/src/{ui/components/AuthDialog.test.d.ts → commands/extensions/new.test.d.ts} +0 -0
- /package/dist/src/{ui/hooks/usePrivacySettings.test.d.ts → config/extensions/extensionEnablement.test.d.ts} +0 -0
- /package/dist/src/ui/{components → auth}/AuthInProgress.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/config/auth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/config/auth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE9D,MAAM,UAAU,kBAAkB,CAAC,UAAkB;IACnD,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;IAChC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEjC,IAAI,UAAU,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC;QACvC,MAAM,SAAS,GACb,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC;QAC1E,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,4GAA4G,CAAC;QACtH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY;IACZ,IAAI,UAAU,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YAChC,OAAO,0CAA0C,CAAC;QACpD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,UAAU,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC;QACvC,uEAAuE;QACvE,4CAA4C;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,+BAA+B,CAAC;AACzC,CAAC;AAED,YAAY;AACZ,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAc,EAAQ,EAAE;IACnD,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAe,EAAQ,EAAE;IACrD,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAa,EAAQ,EAAE;IACjD,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAe,EAAQ,EAAE;IACrD,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC;AACxC,CAAC,CAAC"}
|
|
@@ -8,47 +8,27 @@ import { vi } from 'vitest';
|
|
|
8
8
|
import { validateAuthMethod } from './auth.js';
|
|
9
9
|
vi.mock('./settings.js', () => ({
|
|
10
10
|
loadEnvironment: vi.fn(),
|
|
11
|
+
loadSettings: vi.fn().mockReturnValue({
|
|
12
|
+
merged: vi.fn().mockReturnValue({}),
|
|
13
|
+
}),
|
|
11
14
|
}));
|
|
12
15
|
describe('validateAuthMethod', () => {
|
|
13
|
-
const originalEnv = process.env;
|
|
14
16
|
beforeEach(() => {
|
|
15
17
|
vi.resetModules();
|
|
16
|
-
process.env = {};
|
|
17
18
|
});
|
|
18
19
|
afterEach(() => {
|
|
19
|
-
|
|
20
|
+
vi.unstubAllEnvs();
|
|
20
21
|
});
|
|
21
|
-
it('should return null for
|
|
22
|
-
|
|
22
|
+
it('should return null for USE_OPENAI', () => {
|
|
23
|
+
process.env['OPENAI_API_KEY'] = 'fake-key';
|
|
24
|
+
expect(validateAuthMethod(AuthType.USE_OPENAI)).toBeNull();
|
|
23
25
|
});
|
|
24
|
-
it('should return
|
|
25
|
-
|
|
26
|
+
it('should return an error message for USE_OPENAI if OPENAI_API_KEY is not set', () => {
|
|
27
|
+
delete process.env['OPENAI_API_KEY'];
|
|
28
|
+
expect(validateAuthMethod(AuthType.USE_OPENAI)).toBe('OPENAI_API_KEY environment variable not found. You can enter it interactively or add it to your .env file.');
|
|
26
29
|
});
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
process.env['GEMINI_API_KEY'] = 'test-key';
|
|
30
|
-
expect(validateAuthMethod(AuthType.USE_GEMINI)).toBeNull();
|
|
31
|
-
});
|
|
32
|
-
it('should return an error message if GEMINI_API_KEY is not set', () => {
|
|
33
|
-
expect(validateAuthMethod(AuthType.USE_GEMINI)).toBe('GEMINI_API_KEY environment variable not found. Add that to your environment and try again (no reload needed if using .env)!');
|
|
34
|
-
});
|
|
35
|
-
});
|
|
36
|
-
describe('USE_VERTEX_AI', () => {
|
|
37
|
-
it('should return null if GOOGLE_CLOUD_PROJECT and GOOGLE_CLOUD_LOCATION are set', () => {
|
|
38
|
-
process.env['GOOGLE_CLOUD_PROJECT'] = 'test-project';
|
|
39
|
-
process.env['GOOGLE_CLOUD_LOCATION'] = 'test-location';
|
|
40
|
-
expect(validateAuthMethod(AuthType.USE_VERTEX_AI)).toBeNull();
|
|
41
|
-
});
|
|
42
|
-
it('should return null if GOOGLE_API_KEY is set', () => {
|
|
43
|
-
process.env['GOOGLE_API_KEY'] = 'test-api-key';
|
|
44
|
-
expect(validateAuthMethod(AuthType.USE_VERTEX_AI)).toBeNull();
|
|
45
|
-
});
|
|
46
|
-
it('should return an error message if no required environment variables are set', () => {
|
|
47
|
-
expect(validateAuthMethod(AuthType.USE_VERTEX_AI)).toBe('When using Vertex AI, you must specify either:\n' +
|
|
48
|
-
'• GOOGLE_CLOUD_PROJECT and GOOGLE_CLOUD_LOCATION environment variables.\n' +
|
|
49
|
-
'• GOOGLE_API_KEY environment variable (if using express mode).\n' +
|
|
50
|
-
'Update your environment and try again (no reload needed if using .env)!');
|
|
51
|
-
});
|
|
30
|
+
it('should return null for QWEN_OAUTH', () => {
|
|
31
|
+
expect(validateAuthMethod(AuthType.QWEN_OAUTH)).toBeNull();
|
|
52
32
|
});
|
|
53
33
|
it('should return an error message for an invalid auth method', () => {
|
|
54
34
|
expect(validateAuthMethod('invalid-method')).toBe('Invalid auth method selected.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.test.js","sourceRoot":"","sources":["../../../src/config/auth.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9B,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"auth.test.js","sourceRoot":"","sources":["../../../src/config/auth.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9B,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE;IACxB,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;QACpC,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;KACpC,CAAC;CACH,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,YAAY,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,UAAU,CAAC;QAC3C,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;QACpF,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACrC,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAClD,4GAA4G,CAC7G,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAC/C,+BAA+B,CAChC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -7,7 +7,9 @@ import type { FileFilteringOptions } from '@umsai/ums-code-core';
|
|
|
7
7
|
import { Config, FileDiscoveryService } from '@umsai/ums-code-core';
|
|
8
8
|
import type { Settings } from './settings.js';
|
|
9
9
|
import type { Extension } from './extension.js';
|
|
10
|
+
import type { ExtensionEnablementManager } from './extensions/extensionEnablement.js';
|
|
10
11
|
export interface CliArgs {
|
|
12
|
+
query: string | undefined;
|
|
11
13
|
model: string | undefined;
|
|
12
14
|
sandbox: boolean | string | undefined;
|
|
13
15
|
sandboxImage: string | undefined;
|
|
@@ -38,10 +40,13 @@ export interface CliArgs {
|
|
|
38
40
|
tavilyApiKey: string | undefined;
|
|
39
41
|
screenReader: boolean | undefined;
|
|
40
42
|
vlmSwitchMode: string | undefined;
|
|
43
|
+
useSmartEdit: boolean | undefined;
|
|
44
|
+
outputFormat: string | undefined;
|
|
41
45
|
}
|
|
42
46
|
export declare function parseArguments(settings: Settings): Promise<CliArgs>;
|
|
43
|
-
export declare function loadHierarchicalGeminiMemory(currentWorkingDirectory: string, includeDirectoriesToReadGemini: readonly string[] | undefined, debugMode: boolean, fileService: FileDiscoveryService, settings: Settings, extensionContextFilePaths
|
|
47
|
+
export declare function loadHierarchicalGeminiMemory(currentWorkingDirectory: string, includeDirectoriesToReadGemini: readonly string[] | undefined, debugMode: boolean, fileService: FileDiscoveryService, settings: Settings, extensionContextFilePaths: string[] | undefined, folderTrust: boolean, memoryImportFormat?: 'flat' | 'tree', fileFilteringOptions?: FileFilteringOptions): Promise<{
|
|
44
48
|
memoryContent: string;
|
|
45
49
|
fileCount: number;
|
|
46
50
|
}>;
|
|
47
|
-
export declare function
|
|
51
|
+
export declare function isDebugMode(argv: CliArgs): boolean;
|
|
52
|
+
export declare function loadCliConfig(settings: Settings, extensions: Extension[], extensionEnablementManager: ExtensionEnablementManager, sessionId: string, argv: CliArgs, cwd?: string): Promise<Config>;
|
|
@@ -3,19 +3,19 @@
|
|
|
3
3
|
* Copyright 2025 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import { extensionsCommand } from '../commands/extensions.js';
|
|
7
|
+
import { ApprovalMode, Config, DEFAULT_QWEN_EMBEDDING_MODEL, DEFAULT_MEMORY_FILE_FILTERING_OPTIONS, EditTool, FileDiscoveryService, getCurrentGeminiMdFilename, loadServerHierarchicalMemory, setGeminiMdFilename as setServerGeminiMdFilename, ShellTool, WriteFileTool, resolveTelemetrySettings, FatalConfigError, } from '@umsai/ums-code-core';
|
|
8
|
+
import yargs, {} from 'yargs';
|
|
9
|
+
import { hideBin } from 'yargs/helpers';
|
|
7
10
|
import * as fs from 'node:fs';
|
|
8
|
-
import { homedir } from 'node:os';
|
|
9
11
|
import * as path from 'node:path';
|
|
10
|
-
import
|
|
11
|
-
import { hideBin } from 'yargs/helpers';
|
|
12
|
-
import yargs from 'yargs/yargs';
|
|
13
|
-
import { extensionsCommand } from '../commands/extensions.js';
|
|
14
|
-
import { mcpCommand } from '../commands/mcp.js';
|
|
12
|
+
import { homedir } from 'node:os';
|
|
15
13
|
import { resolvePath } from '../utils/resolvePath.js';
|
|
16
14
|
import { getCliVersion } from '../utils/version.js';
|
|
17
15
|
import { annotateActiveExtensions } from './extension.js';
|
|
18
16
|
import { loadSandboxConfig } from './sandboxConfig.js';
|
|
17
|
+
import { appEvents } from '../utils/events.js';
|
|
18
|
+
import { mcpCommand } from '../commands/mcp.js';
|
|
19
19
|
import { isWorkspaceTrusted } from './trustedFolders.js';
|
|
20
20
|
// Simple console logger for now - replace with actual logger if available
|
|
21
21
|
const logger = {
|
|
@@ -53,17 +53,62 @@ function parseApprovalModeValue(value) {
|
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
export async function parseArguments(settings) {
|
|
56
|
-
const
|
|
57
|
-
|
|
56
|
+
const rawArgv = hideBin(process.argv);
|
|
57
|
+
const yargsInstance = yargs(rawArgv)
|
|
58
58
|
.locale('en')
|
|
59
|
-
.scriptName('
|
|
60
|
-
.usage('Usage:
|
|
61
|
-
.
|
|
59
|
+
.scriptName('ums')
|
|
60
|
+
.usage('Usage: ums [options] [command]\n\nUMS Code - Launch an interactive CLI, use -p/--prompt for non-interactive mode')
|
|
61
|
+
.option('telemetry', {
|
|
62
|
+
type: 'boolean',
|
|
63
|
+
description: 'Enable telemetry? This flag specifically controls if telemetry is sent. Other --telemetry-* flags set specific values but do not enable telemetry on their own.',
|
|
64
|
+
})
|
|
65
|
+
.option('telemetry-target', {
|
|
66
|
+
type: 'string',
|
|
67
|
+
choices: ['local', 'gcp'],
|
|
68
|
+
description: 'Set the telemetry target (local or gcp). Overrides settings files.',
|
|
69
|
+
})
|
|
70
|
+
.option('telemetry-otlp-endpoint', {
|
|
71
|
+
type: 'string',
|
|
72
|
+
description: 'Set the OTLP endpoint for telemetry. Overrides environment variables and settings files.',
|
|
73
|
+
})
|
|
74
|
+
.option('telemetry-otlp-protocol', {
|
|
75
|
+
type: 'string',
|
|
76
|
+
choices: ['grpc', 'http'],
|
|
77
|
+
description: 'Set the OTLP protocol for telemetry (grpc or http). Overrides settings files.',
|
|
78
|
+
})
|
|
79
|
+
.option('telemetry-log-prompts', {
|
|
80
|
+
type: 'boolean',
|
|
81
|
+
description: 'Enable or disable logging of user prompts for telemetry. Overrides settings files.',
|
|
82
|
+
})
|
|
83
|
+
.option('telemetry-outfile', {
|
|
84
|
+
type: 'string',
|
|
85
|
+
description: 'Redirect all telemetry output to the specified file.',
|
|
86
|
+
})
|
|
87
|
+
.deprecateOption('telemetry', 'Use the "telemetry.enabled" setting in settings.json instead. This flag will be removed in a future version.')
|
|
88
|
+
.deprecateOption('telemetry-target', 'Use the "telemetry.target" setting in settings.json instead. This flag will be removed in a future version.')
|
|
89
|
+
.deprecateOption('telemetry-otlp-endpoint', 'Use the "telemetry.otlpEndpoint" setting in settings.json instead. This flag will be removed in a future version.')
|
|
90
|
+
.deprecateOption('telemetry-otlp-protocol', 'Use the "telemetry.otlpProtocol" setting in settings.json instead. This flag will be removed in a future version.')
|
|
91
|
+
.deprecateOption('telemetry-log-prompts', 'Use the "telemetry.logPrompts" setting in settings.json instead. This flag will be removed in a future version.')
|
|
92
|
+
.deprecateOption('telemetry-outfile', 'Use the "telemetry.outfile" setting in settings.json instead. This flag will be removed in a future version.')
|
|
93
|
+
.option('debug', {
|
|
94
|
+
alias: 'd',
|
|
95
|
+
type: 'boolean',
|
|
96
|
+
description: 'Run in debug mode?',
|
|
97
|
+
default: false,
|
|
98
|
+
})
|
|
99
|
+
.option('proxy', {
|
|
100
|
+
type: 'string',
|
|
101
|
+
description: 'Proxy for UMS Code, like schema://user:password@host:port',
|
|
102
|
+
})
|
|
103
|
+
.deprecateOption('proxy', 'Use the "proxy" setting in settings.json instead. This flag will be removed in a future version.')
|
|
104
|
+
.command('$0 [query..]', 'Launch UMS Code CLI', (yargsInstance) => yargsInstance
|
|
105
|
+
.positional('query', {
|
|
106
|
+
description: 'Positional prompt. Defaults to one-shot; use -i/--prompt-interactive for interactive.',
|
|
107
|
+
})
|
|
62
108
|
.option('model', {
|
|
63
109
|
alias: 'm',
|
|
64
110
|
type: 'string',
|
|
65
111
|
description: `Model`,
|
|
66
|
-
default: process.env['GEMINI_MODEL'],
|
|
67
112
|
})
|
|
68
113
|
.option('prompt', {
|
|
69
114
|
alias: 'p',
|
|
@@ -83,12 +128,6 @@ export async function parseArguments(settings) {
|
|
|
83
128
|
.option('sandbox-image', {
|
|
84
129
|
type: 'string',
|
|
85
130
|
description: 'Sandbox image URI.',
|
|
86
|
-
})
|
|
87
|
-
.option('debug', {
|
|
88
|
-
alias: 'd',
|
|
89
|
-
type: 'boolean',
|
|
90
|
-
description: 'Run in debug mode?',
|
|
91
|
-
default: false,
|
|
92
131
|
})
|
|
93
132
|
.option('all-files', {
|
|
94
133
|
alias: ['a'],
|
|
@@ -111,32 +150,6 @@ export async function parseArguments(settings) {
|
|
|
111
150
|
type: 'string',
|
|
112
151
|
choices: ['plan', 'default', 'auto-edit', 'yolo'],
|
|
113
152
|
description: 'Set the approval mode: plan (plan only), default (prompt for approval), auto-edit (auto-approve edit tools), yolo (auto-approve all tools)',
|
|
114
|
-
})
|
|
115
|
-
.option('telemetry', {
|
|
116
|
-
type: 'boolean',
|
|
117
|
-
description: 'Enable telemetry? This flag specifically controls if telemetry is sent. Other --telemetry-* flags set specific values but do not enable telemetry on their own.',
|
|
118
|
-
})
|
|
119
|
-
.option('telemetry-target', {
|
|
120
|
-
type: 'string',
|
|
121
|
-
choices: ['local', 'gcp'],
|
|
122
|
-
description: 'Set the telemetry target (local or gcp). Overrides settings files.',
|
|
123
|
-
})
|
|
124
|
-
.option('telemetry-otlp-endpoint', {
|
|
125
|
-
type: 'string',
|
|
126
|
-
description: 'Set the OTLP endpoint for telemetry. Overrides environment variables and settings files.',
|
|
127
|
-
})
|
|
128
|
-
.option('telemetry-otlp-protocol', {
|
|
129
|
-
type: 'string',
|
|
130
|
-
choices: ['grpc', 'http'],
|
|
131
|
-
description: 'Set the OTLP protocol for telemetry (grpc or http). Overrides settings files.',
|
|
132
|
-
})
|
|
133
|
-
.option('telemetry-log-prompts', {
|
|
134
|
-
type: 'boolean',
|
|
135
|
-
description: 'Enable or disable logging of user prompts for telemetry. Overrides settings files.',
|
|
136
|
-
})
|
|
137
|
-
.option('telemetry-outfile', {
|
|
138
|
-
type: 'string',
|
|
139
|
-
description: 'Redirect all telemetry output to the specified file.',
|
|
140
153
|
})
|
|
141
154
|
.option('checkpointing', {
|
|
142
155
|
alias: 'c',
|
|
@@ -152,26 +165,31 @@ export async function parseArguments(settings) {
|
|
|
152
165
|
type: 'array',
|
|
153
166
|
string: true,
|
|
154
167
|
description: 'Allowed MCP server names',
|
|
168
|
+
coerce: (mcpServerNames) =>
|
|
169
|
+
// Handle comma-separated values
|
|
170
|
+
mcpServerNames.flatMap((mcpServerName) => mcpServerName.split(',').map((m) => m.trim())),
|
|
155
171
|
})
|
|
156
172
|
.option('allowed-tools', {
|
|
157
173
|
type: 'array',
|
|
158
174
|
string: true,
|
|
159
175
|
description: 'Tools that are allowed to run without confirmation',
|
|
176
|
+
coerce: (tools) =>
|
|
177
|
+
// Handle comma-separated values
|
|
178
|
+
tools.flatMap((tool) => tool.split(',').map((t) => t.trim())),
|
|
160
179
|
})
|
|
161
180
|
.option('extensions', {
|
|
162
181
|
alias: 'e',
|
|
163
182
|
type: 'array',
|
|
164
183
|
string: true,
|
|
165
184
|
description: 'A list of extensions to use. If not provided, all extensions are used.',
|
|
185
|
+
coerce: (extensions) =>
|
|
186
|
+
// Handle comma-separated values
|
|
187
|
+
extensions.flatMap((extension) => extension.split(',').map((e) => e.trim())),
|
|
166
188
|
})
|
|
167
189
|
.option('list-extensions', {
|
|
168
190
|
alias: 'l',
|
|
169
191
|
type: 'boolean',
|
|
170
192
|
description: 'List all available extensions and exit.',
|
|
171
|
-
})
|
|
172
|
-
.option('proxy', {
|
|
173
|
-
type: 'string',
|
|
174
|
-
description: 'Proxy for qwen client, like schema://user:password@host:port',
|
|
175
193
|
})
|
|
176
194
|
.option('include-directories', {
|
|
177
195
|
type: 'array',
|
|
@@ -200,26 +218,51 @@ export async function parseArguments(settings) {
|
|
|
200
218
|
.option('screen-reader', {
|
|
201
219
|
type: 'boolean',
|
|
202
220
|
description: 'Enable screen reader mode for accessibility.',
|
|
203
|
-
default: false,
|
|
204
221
|
})
|
|
205
222
|
.option('vlm-switch-mode', {
|
|
206
223
|
type: 'string',
|
|
207
224
|
choices: ['once', 'session', 'persist'],
|
|
208
225
|
description: 'Default behavior when images are detected in input. Values: once (one-time switch), session (switch for entire session), persist (continue with current model). Overrides settings files.',
|
|
209
226
|
default: process.env['VLM_SWITCH_MODE'],
|
|
227
|
+
})
|
|
228
|
+
.option('output-format', {
|
|
229
|
+
alias: 'o',
|
|
230
|
+
type: 'string',
|
|
231
|
+
description: 'The format of the CLI output.',
|
|
232
|
+
choices: ['text', 'json'],
|
|
233
|
+
})
|
|
234
|
+
.deprecateOption('show-memory-usage', 'Use the "ui.showMemoryUsage" setting in settings.json instead. This flag will be removed in a future version.')
|
|
235
|
+
.deprecateOption('sandbox-image', 'Use the "tools.sandbox" setting in settings.json instead. This flag will be removed in a future version.')
|
|
236
|
+
.deprecateOption('checkpointing', 'Use the "general.checkpointing.enabled" setting in settings.json instead. This flag will be removed in a future version.')
|
|
237
|
+
.deprecateOption('all-files', 'Use @ includes in the application instead. This flag will be removed in a future version.')
|
|
238
|
+
.deprecateOption('prompt', 'Use the positional prompt instead. This flag will be removed in a future version.')
|
|
239
|
+
// Ensure validation flows through .fail() for clean UX
|
|
240
|
+
.fail((msg, err, yargs) => {
|
|
241
|
+
console.error(msg || err?.message || 'Unknown error');
|
|
242
|
+
yargs.showHelp();
|
|
243
|
+
process.exit(1);
|
|
210
244
|
})
|
|
211
245
|
.check((argv) => {
|
|
212
|
-
|
|
213
|
-
|
|
246
|
+
// The 'query' positional can be a string (for one arg) or string[] (for multiple).
|
|
247
|
+
// This guard safely checks if any positional argument was provided.
|
|
248
|
+
const query = argv['query'];
|
|
249
|
+
const hasPositionalQuery = Array.isArray(query)
|
|
250
|
+
? query.length > 0
|
|
251
|
+
: !!query;
|
|
252
|
+
if (argv['prompt'] && hasPositionalQuery) {
|
|
253
|
+
return 'Cannot use both a positional prompt and the --prompt (-p) flag together';
|
|
254
|
+
}
|
|
255
|
+
if (argv['prompt'] && argv['promptInteractive']) {
|
|
256
|
+
return 'Cannot use both --prompt (-p) and --prompt-interactive (-i) together';
|
|
214
257
|
}
|
|
215
|
-
if (argv
|
|
216
|
-
|
|
258
|
+
if (argv['yolo'] && argv['approvalMode']) {
|
|
259
|
+
return 'Cannot use both --yolo (-y) and --approval-mode together. Use --approval-mode=yolo instead.';
|
|
217
260
|
}
|
|
218
261
|
return true;
|
|
219
262
|
}))
|
|
220
263
|
// Register MCP subcommands
|
|
221
264
|
.command(mcpCommand);
|
|
222
|
-
if (settings?.experimental?.extensionManagement ??
|
|
265
|
+
if (settings?.experimental?.extensionManagement ?? true) {
|
|
223
266
|
yargsInstance.command(extensionsCommand);
|
|
224
267
|
}
|
|
225
268
|
yargsInstance
|
|
@@ -231,6 +274,7 @@ export async function parseArguments(settings) {
|
|
|
231
274
|
.demandCommand(0, 0); // Allow base command to run with no subcommands
|
|
232
275
|
yargsInstance.wrap(yargsInstance.terminalWidth());
|
|
233
276
|
const result = await yargsInstance.parse();
|
|
277
|
+
// If yargs handled --help/--version it will have exited; nothing to do here.
|
|
234
278
|
// Handle case where MCP subcommands are executed - they should exit the process
|
|
235
279
|
// and not return to main CLI logic
|
|
236
280
|
if (result._.length > 0 &&
|
|
@@ -238,6 +282,23 @@ export async function parseArguments(settings) {
|
|
|
238
282
|
// MCP commands handle their own execution and process exit
|
|
239
283
|
process.exit(0);
|
|
240
284
|
}
|
|
285
|
+
// Normalize query args: handle both quoted "@path file" and unquoted @path file
|
|
286
|
+
const queryArg = result.query;
|
|
287
|
+
const q = Array.isArray(queryArg)
|
|
288
|
+
? queryArg.join(' ')
|
|
289
|
+
: queryArg;
|
|
290
|
+
// Route positional args: explicit -i flag -> interactive; else -> one-shot (even for @commands)
|
|
291
|
+
if (q && !result['prompt']) {
|
|
292
|
+
const hasExplicitInteractive = result['promptInteractive'] === '' || !!result['promptInteractive'];
|
|
293
|
+
if (hasExplicitInteractive) {
|
|
294
|
+
result['promptInteractive'] = q;
|
|
295
|
+
}
|
|
296
|
+
else {
|
|
297
|
+
result['prompt'] = q;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
// Keep CliArgs.query as a string for downstream typing
|
|
301
|
+
result['query'] = q || undefined;
|
|
241
302
|
// The import format is now only controlled by settings.memoryImportFormat
|
|
242
303
|
// We no longer accept it as a CLI argument
|
|
243
304
|
return result;
|
|
@@ -245,7 +306,7 @@ export async function parseArguments(settings) {
|
|
|
245
306
|
// This function is now a thin wrapper around the server's implementation.
|
|
246
307
|
// It's kept in the CLI for now as App.tsx directly calls it for memory refresh.
|
|
247
308
|
// TODO: Consider if App.tsx should get memory via a server call or if Config should refresh itself.
|
|
248
|
-
export async function loadHierarchicalGeminiMemory(currentWorkingDirectory, includeDirectoriesToReadGemini = [], debugMode, fileService, settings, extensionContextFilePaths = [], memoryImportFormat = 'tree', fileFilteringOptions) {
|
|
309
|
+
export async function loadHierarchicalGeminiMemory(currentWorkingDirectory, includeDirectoriesToReadGemini = [], debugMode, fileService, settings, extensionContextFilePaths = [], folderTrust, memoryImportFormat = 'tree', fileFilteringOptions) {
|
|
249
310
|
// FIX: Use real, canonical paths for a reliable comparison to handle symlinks.
|
|
250
311
|
const realCwd = fs.realpathSync(path.resolve(currentWorkingDirectory));
|
|
251
312
|
const realHome = fs.realpathSync(path.resolve(homedir()));
|
|
@@ -257,32 +318,20 @@ export async function loadHierarchicalGeminiMemory(currentWorkingDirectory, incl
|
|
|
257
318
|
logger.debug(`CLI: Delegating hierarchical memory load to server for CWD: ${currentWorkingDirectory} (memoryImportFormat: ${memoryImportFormat})`);
|
|
258
319
|
}
|
|
259
320
|
// Directly call the server function with the corrected path.
|
|
260
|
-
return loadServerHierarchicalMemory(effectiveCwd, includeDirectoriesToReadGemini, debugMode, fileService, extensionContextFilePaths, memoryImportFormat, fileFilteringOptions, settings.context?.discoveryMaxDirs);
|
|
321
|
+
return loadServerHierarchicalMemory(effectiveCwd, includeDirectoriesToReadGemini, debugMode, fileService, extensionContextFilePaths, folderTrust, memoryImportFormat, fileFilteringOptions, settings.context?.discoveryMaxDirs);
|
|
261
322
|
}
|
|
262
|
-
export
|
|
263
|
-
|
|
264
|
-
[process.env['DEBUG'], process.env['DEBUG_MODE']].some((v) => v === 'true' || v === '1')
|
|
265
|
-
|
|
323
|
+
export function isDebugMode(argv) {
|
|
324
|
+
return (argv.debug ||
|
|
325
|
+
[process.env['DEBUG'], process.env['DEBUG_MODE']].some((v) => v === 'true' || v === '1'));
|
|
326
|
+
}
|
|
327
|
+
export async function loadCliConfig(settings, extensions, extensionEnablementManager, sessionId, argv, cwd = process.cwd()) {
|
|
328
|
+
const debugMode = isDebugMode(argv);
|
|
266
329
|
const memoryImportFormat = settings.context?.importFormat || 'tree';
|
|
267
330
|
const ideMode = settings.ide?.enabled ?? false;
|
|
268
|
-
const
|
|
269
|
-
const
|
|
270
|
-
const
|
|
271
|
-
const trustedFolder = isWorkspaceTrusted(settings);
|
|
272
|
-
const allExtensions = annotateActiveExtensions(extensions, argv.extensions || [], cwd);
|
|
331
|
+
const folderTrust = settings.security?.folderTrust?.enabled ?? false;
|
|
332
|
+
const trustedFolder = isWorkspaceTrusted(settings)?.isTrusted ?? true;
|
|
333
|
+
const allExtensions = annotateActiveExtensions(extensions, cwd, extensionEnablementManager);
|
|
273
334
|
const activeExtensions = extensions.filter((_, i) => allExtensions[i].isActive);
|
|
274
|
-
// Handle OpenAI API key from command line
|
|
275
|
-
if (argv.openaiApiKey) {
|
|
276
|
-
process.env['OPENAI_API_KEY'] = argv.openaiApiKey;
|
|
277
|
-
}
|
|
278
|
-
// Handle OpenAI base URL from command line
|
|
279
|
-
if (argv.openaiBaseUrl) {
|
|
280
|
-
process.env['OPENAI_BASE_URL'] = argv.openaiBaseUrl;
|
|
281
|
-
}
|
|
282
|
-
// Handle Tavily API key from command line
|
|
283
|
-
if (argv.tavilyApiKey) {
|
|
284
|
-
process.env['TAVILY_API_KEY'] = argv.tavilyApiKey;
|
|
285
|
-
}
|
|
286
335
|
// Set the context filename in the server's memoryTool module BEFORE loading memory
|
|
287
336
|
// TODO(b/343434939): This is a bit of a hack. The contextFileName should ideally be passed
|
|
288
337
|
// directly to the Config constructor in core, and have core handle setGeminiMdFilename.
|
|
@@ -306,7 +355,7 @@ export async function loadCliConfig(settings, extensions, sessionId, argv, cwd =
|
|
|
306
355
|
// Call the (now wrapper) loadHierarchicalGeminiMemory which calls the server's version
|
|
307
356
|
const { memoryContent, fileCount } = await loadHierarchicalGeminiMemory(cwd, settings.context?.loadMemoryFromIncludeDirectories
|
|
308
357
|
? includeDirectories
|
|
309
|
-
: [], debugMode, fileService, settings, extensionContextFilePaths, memoryImportFormat, fileFiltering);
|
|
358
|
+
: [], debugMode, fileService, settings, extensionContextFilePaths, trustedFolder, memoryImportFormat, fileFiltering);
|
|
310
359
|
let mcpServers = mergeMcpServers(settings, activeExtensions);
|
|
311
360
|
const question = argv.promptInteractive || argv.prompt || '';
|
|
312
361
|
// Determine approval mode with backward compatibility
|
|
@@ -317,8 +366,8 @@ export async function loadCliConfig(settings, extensions, sessionId, argv, cwd =
|
|
|
317
366
|
else if (argv.yolo) {
|
|
318
367
|
approvalMode = ApprovalMode.YOLO;
|
|
319
368
|
}
|
|
320
|
-
else if (settings.approvalMode) {
|
|
321
|
-
approvalMode = parseApprovalModeValue(settings.approvalMode);
|
|
369
|
+
else if (settings.tools?.approvalMode) {
|
|
370
|
+
approvalMode = parseApprovalModeValue(settings.tools.approvalMode);
|
|
322
371
|
}
|
|
323
372
|
else {
|
|
324
373
|
approvalMode = ApprovalMode.DEFAULT;
|
|
@@ -330,7 +379,24 @@ export async function loadCliConfig(settings, extensions, sessionId, argv, cwd =
|
|
|
330
379
|
logger.warn(`Approval mode overridden to "default" because the current folder is not trusted.`);
|
|
331
380
|
approvalMode = ApprovalMode.DEFAULT;
|
|
332
381
|
}
|
|
333
|
-
|
|
382
|
+
let telemetrySettings;
|
|
383
|
+
try {
|
|
384
|
+
telemetrySettings = await resolveTelemetrySettings({
|
|
385
|
+
argv,
|
|
386
|
+
env: process.env,
|
|
387
|
+
settings: settings.telemetry,
|
|
388
|
+
});
|
|
389
|
+
}
|
|
390
|
+
catch (err) {
|
|
391
|
+
if (err instanceof FatalConfigError) {
|
|
392
|
+
throw new FatalConfigError(`Invalid telemetry configuration: ${err.message}.`);
|
|
393
|
+
}
|
|
394
|
+
throw err;
|
|
395
|
+
}
|
|
396
|
+
// Interactive mode: explicit -i flag or (TTY + no args + no -p flag)
|
|
397
|
+
const hasQuery = !!argv.query;
|
|
398
|
+
const interactive = !!argv.promptInteractive ||
|
|
399
|
+
(process.stdin.isTTY && !hasQuery && !argv.prompt);
|
|
334
400
|
// In non-interactive mode, exclude tools that require a prompt.
|
|
335
401
|
const extraExcludes = [];
|
|
336
402
|
if (!interactive && !argv.experimentalAcp) {
|
|
@@ -368,15 +434,18 @@ export async function loadCliConfig(settings, extensions, sessionId, argv, cwd =
|
|
|
368
434
|
if (argv.allowedMcpServerNames) {
|
|
369
435
|
mcpServers = allowedMcpServers(mcpServers, argv.allowedMcpServerNames, blockedMcpServers);
|
|
370
436
|
}
|
|
437
|
+
const resolvedModel = argv.model ||
|
|
438
|
+
process.env['OPENAI_MODEL'] ||
|
|
439
|
+
process.env['QWEN_MODEL'] ||
|
|
440
|
+
settings.model?.name;
|
|
371
441
|
const sandboxConfig = await loadSandboxConfig(settings, argv);
|
|
372
|
-
const cliVersion = await getCliVersion();
|
|
373
442
|
const screenReader = argv.screenReader !== undefined
|
|
374
443
|
? argv.screenReader
|
|
375
444
|
: (settings.ui?.accessibility?.screenReader ?? false);
|
|
376
445
|
const vlmSwitchMode = argv.vlmSwitchMode || settings.experimental?.vlmSwitchMode;
|
|
377
446
|
return new Config({
|
|
378
447
|
sessionId,
|
|
379
|
-
embeddingModel:
|
|
448
|
+
embeddingModel: DEFAULT_QWEN_EMBEDDING_MODEL,
|
|
380
449
|
sandbox: sandboxConfig,
|
|
381
450
|
targetDir: cwd,
|
|
382
451
|
includeDirectories,
|
|
@@ -399,26 +468,9 @@ export async function loadCliConfig(settings, extensions, sessionId, argv, cwd =
|
|
|
399
468
|
...settings.ui?.accessibility,
|
|
400
469
|
screenReader,
|
|
401
470
|
},
|
|
402
|
-
telemetry:
|
|
403
|
-
enabled: argv.telemetry ?? settings.telemetry?.enabled,
|
|
404
|
-
target: (argv.telemetryTarget ??
|
|
405
|
-
settings.telemetry?.target),
|
|
406
|
-
otlpEndpoint: argv.telemetryOtlpEndpoint ??
|
|
407
|
-
process.env['OTEL_EXPORTER_OTLP_ENDPOINT'] ??
|
|
408
|
-
settings.telemetry?.otlpEndpoint,
|
|
409
|
-
otlpProtocol: ['grpc', 'http'].find((p) => p ===
|
|
410
|
-
(argv.telemetryOtlpProtocol ?? settings.telemetry?.otlpProtocol)),
|
|
411
|
-
logPrompts: argv.telemetryLogPrompts ?? settings.telemetry?.logPrompts,
|
|
412
|
-
outfile: argv.telemetryOutfile ?? settings.telemetry?.outfile,
|
|
413
|
-
},
|
|
471
|
+
telemetry: telemetrySettings,
|
|
414
472
|
usageStatisticsEnabled: settings.privacy?.usageStatisticsEnabled ?? true,
|
|
415
|
-
|
|
416
|
-
fileFiltering: {
|
|
417
|
-
respectGitIgnore: settings.context?.fileFiltering?.respectGitIgnore,
|
|
418
|
-
respectGeminiIgnore: settings.context?.fileFiltering?.respectGeminiIgnore,
|
|
419
|
-
enableRecursiveFileSearch: settings.context?.fileFiltering?.enableRecursiveFileSearch,
|
|
420
|
-
disableFuzzySearch: settings.context?.fileFiltering?.disableFuzzySearch,
|
|
421
|
-
},
|
|
473
|
+
fileFiltering: settings.context?.fileFiltering,
|
|
422
474
|
checkpointing: argv.checkpointing || settings.general?.checkpointing?.enabled,
|
|
423
475
|
proxy: argv.proxy ||
|
|
424
476
|
process.env['HTTPS_PROXY'] ||
|
|
@@ -428,47 +480,54 @@ export async function loadCliConfig(settings, extensions, sessionId, argv, cwd =
|
|
|
428
480
|
cwd,
|
|
429
481
|
fileDiscoveryService: fileService,
|
|
430
482
|
bugCommand: settings.advanced?.bugCommand,
|
|
431
|
-
model:
|
|
483
|
+
model: resolvedModel,
|
|
432
484
|
extensionContextFilePaths,
|
|
433
|
-
sessionTokenLimit: settings.sessionTokenLimit ?? -1,
|
|
485
|
+
sessionTokenLimit: settings.model?.sessionTokenLimit ?? -1,
|
|
434
486
|
maxSessionTurns: settings.model?.maxSessionTurns ?? -1,
|
|
435
487
|
experimentalZedIntegration: argv.experimentalAcp || false,
|
|
436
488
|
listExtensions: argv.listExtensions || false,
|
|
437
489
|
extensions: allExtensions,
|
|
438
490
|
blockedMcpServers,
|
|
439
491
|
noBrowser: !!process.env['NO_BROWSER'],
|
|
440
|
-
enableOpenAILogging: (typeof argv.openaiLogging === 'undefined'
|
|
441
|
-
? settings.enableOpenAILogging
|
|
442
|
-
: argv.openaiLogging) ?? false,
|
|
443
|
-
systemPromptMappings: (settings.systemPromptMappings ?? [
|
|
444
|
-
{
|
|
445
|
-
baseUrls: [
|
|
446
|
-
'https://dashscope.aliyuncs.com/compatible-mode/v1/',
|
|
447
|
-
'https://dashscope-intl.aliyuncs.com/compatible-mode/v1/',
|
|
448
|
-
],
|
|
449
|
-
modelNames: ['qwen3-coder-plus'],
|
|
450
|
-
template: 'SYSTEM_TEMPLATE:{"name":"qwen3_coder","params":{"is_git_repository":{RUNTIME_VARS_IS_GIT_REPO},"sandbox":"{RUNTIME_VARS_SANDBOX}"}}',
|
|
451
|
-
},
|
|
452
|
-
]),
|
|
453
492
|
authType: settings.security?.auth?.selectedType,
|
|
454
|
-
|
|
455
|
-
|
|
493
|
+
generationConfig: {
|
|
494
|
+
...(settings.model?.generationConfig || {}),
|
|
495
|
+
model: resolvedModel,
|
|
496
|
+
apiKey: argv.openaiApiKey ||
|
|
497
|
+
process.env['OPENAI_API_KEY'] ||
|
|
498
|
+
settings.security?.auth?.apiKey,
|
|
499
|
+
baseUrl: argv.openaiBaseUrl ||
|
|
500
|
+
process.env['OPENAI_BASE_URL'] ||
|
|
501
|
+
settings.security?.auth?.baseUrl,
|
|
502
|
+
enableOpenAILogging: (typeof argv.openaiLogging === 'undefined'
|
|
503
|
+
? settings.model?.enableOpenAILogging
|
|
504
|
+
: argv.openaiLogging) ?? false,
|
|
505
|
+
},
|
|
506
|
+
cliVersion: await getCliVersion(),
|
|
456
507
|
tavilyApiKey: argv.tavilyApiKey ||
|
|
457
|
-
settings.tavilyApiKey ||
|
|
508
|
+
settings.advanced?.tavilyApiKey ||
|
|
458
509
|
process.env['TAVILY_API_KEY'],
|
|
459
510
|
summarizeToolOutput: settings.model?.summarizeToolOutput,
|
|
460
511
|
ideMode,
|
|
461
512
|
chatCompression: settings.model?.chatCompression,
|
|
462
|
-
folderTrustFeature,
|
|
463
513
|
folderTrust,
|
|
464
514
|
interactive,
|
|
465
515
|
trustedFolder,
|
|
466
516
|
useRipgrep: settings.tools?.useRipgrep,
|
|
467
|
-
|
|
517
|
+
useBuiltinRipgrep: settings.tools?.useBuiltinRipgrep,
|
|
518
|
+
shouldUseNodePtyShell: settings.tools?.shell?.enableInteractiveShell,
|
|
468
519
|
skipNextSpeakerCheck: settings.model?.skipNextSpeakerCheck,
|
|
469
520
|
enablePromptCompletion: settings.general?.enablePromptCompletion ?? false,
|
|
470
|
-
skipLoopDetection: settings.skipLoopDetection ?? false,
|
|
521
|
+
skipLoopDetection: settings.model?.skipLoopDetection ?? false,
|
|
471
522
|
vlmSwitchMode,
|
|
523
|
+
truncateToolOutputThreshold: settings.tools?.truncateToolOutputThreshold,
|
|
524
|
+
truncateToolOutputLines: settings.tools?.truncateToolOutputLines,
|
|
525
|
+
enableToolOutputTruncation: settings.tools?.enableToolOutputTruncation,
|
|
526
|
+
eventEmitter: appEvents,
|
|
527
|
+
useSmartEdit: argv.useSmartEdit ?? settings.useSmartEdit,
|
|
528
|
+
output: {
|
|
529
|
+
format: (argv.outputFormat ?? settings.output?.format),
|
|
530
|
+
},
|
|
472
531
|
});
|
|
473
532
|
}
|
|
474
533
|
function allowedMcpServers(mcpServers, allowMCPServers, blockedMcpServers) {
|