@umsai/ums-code 0.1.4-v2 → 0.3.0-v1
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 +11 -3
- package/dist/src/config/config.d.ts +6 -0
- package/dist/src/config/config.js +102 -11
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/settings.d.ts +5 -0
- package/dist/src/config/settings.js +15 -1
- package/dist/src/config/settings.js.map +1 -1
- package/dist/src/config/settingsSchema.d.ts +75 -17
- package/dist/src/config/settingsSchema.js +57 -17
- package/dist/src/config/settingsSchema.js.map +1 -1
- package/dist/src/config/webSearch.d.ts +35 -0
- package/dist/src/config/webSearch.js +87 -0
- package/dist/src/config/webSearch.js.map +1 -0
- package/dist/src/core/auth.d.ts +1 -1
- package/dist/src/core/auth.js +19 -3
- package/dist/src/core/auth.js.map +1 -1
- package/dist/src/core/initializer.js +13 -2
- package/dist/src/core/initializer.js.map +1 -1
- package/dist/src/core/theme.js +4 -1
- package/dist/src/core/theme.js.map +1 -1
- package/dist/src/gemini.d.ts +1 -1
- package/dist/src/gemini.js +53 -44
- package/dist/src/gemini.js.map +1 -1
- package/dist/src/gemini.test.js +117 -0
- 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/i18n/index.d.ts +18 -0
- package/dist/src/i18n/index.js +184 -0
- package/dist/src/i18n/index.js.map +1 -0
- package/dist/src/i18n/locales/en.js +1129 -0
- package/dist/src/i18n/locales/zh.js +1052 -0
- package/dist/src/nonInteractive/control/ControlContext.d.ts +63 -0
- package/dist/src/nonInteractive/control/ControlContext.js +31 -0
- package/dist/src/nonInteractive/control/ControlContext.js.map +1 -0
- package/dist/src/nonInteractive/control/ControlDispatcher.d.ts +86 -0
- package/dist/src/nonInteractive/control/ControlDispatcher.js +238 -0
- package/dist/src/nonInteractive/control/ControlDispatcher.js.map +1 -0
- package/dist/src/nonInteractive/control/ControlDispatcher.test.d.ts +6 -0
- package/dist/src/nonInteractive/control/ControlDispatcher.test.js +549 -0
- package/dist/src/nonInteractive/control/ControlDispatcher.test.js.map +1 -0
- package/dist/src/nonInteractive/control/ControlService.d.ts +78 -0
- package/dist/src/nonInteractive/control/ControlService.js +154 -0
- package/dist/src/nonInteractive/control/ControlService.js.map +1 -0
- package/dist/src/nonInteractive/control/controllers/baseController.d.ts +50 -0
- package/dist/src/nonInteractive/control/controllers/baseController.js +102 -0
- package/dist/src/nonInteractive/control/controllers/baseController.js.map +1 -0
- package/dist/src/nonInteractive/control/controllers/hookController.d.ts +25 -0
- package/dist/src/nonInteractive/control/controllers/hookController.js +42 -0
- package/dist/src/nonInteractive/control/controllers/hookController.js.map +1 -0
- package/dist/src/nonInteractive/control/controllers/mcpController.d.ts +42 -0
- package/dist/src/nonInteractive/control/controllers/mcpController.js +205 -0
- package/dist/src/nonInteractive/control/controllers/mcpController.js.map +1 -0
- package/dist/src/nonInteractive/control/controllers/permissionController.d.ts +78 -0
- package/dist/src/nonInteractive/control/controllers/permissionController.js +358 -0
- package/dist/src/nonInteractive/control/controllers/permissionController.js.map +1 -0
- package/dist/src/nonInteractive/control/controllers/systemController.d.ts +56 -0
- package/dist/src/nonInteractive/control/controllers/systemController.js +166 -0
- package/dist/src/nonInteractive/control/controllers/systemController.js.map +1 -0
- package/dist/src/nonInteractive/control/types/serviceAPIs.d.ts +120 -0
- package/dist/src/nonInteractive/control/types/serviceAPIs.js +7 -0
- package/dist/src/nonInteractive/control/types/serviceAPIs.js.map +1 -0
- package/dist/src/nonInteractive/io/BaseJsonOutputAdapter.d.ts +446 -0
- package/dist/src/nonInteractive/io/BaseJsonOutputAdapter.js +891 -0
- package/dist/src/nonInteractive/io/BaseJsonOutputAdapter.js.map +1 -0
- package/dist/src/nonInteractive/io/BaseJsonOutputAdapter.test.d.ts +6 -0
- package/dist/src/nonInteractive/io/BaseJsonOutputAdapter.test.js +1197 -0
- package/dist/src/nonInteractive/io/BaseJsonOutputAdapter.test.js.map +1 -0
- package/dist/src/nonInteractive/io/JsonOutputAdapter.d.ts +29 -0
- package/dist/src/nonInteractive/io/JsonOutputAdapter.js +56 -0
- package/dist/src/nonInteractive/io/JsonOutputAdapter.js.map +1 -0
- package/dist/src/nonInteractive/io/JsonOutputAdapter.test.d.ts +6 -0
- package/dist/src/nonInteractive/io/JsonOutputAdapter.test.js +624 -0
- package/dist/src/nonInteractive/io/JsonOutputAdapter.test.js.map +1 -0
- package/dist/src/nonInteractive/io/StreamJsonInputReader.d.ts +16 -0
- package/dist/src/nonInteractive/io/StreamJsonInputReader.js +54 -0
- package/dist/src/nonInteractive/io/StreamJsonInputReader.js.map +1 -0
- package/dist/src/nonInteractive/io/StreamJsonInputReader.test.d.ts +6 -0
- package/dist/src/nonInteractive/io/StreamJsonInputReader.test.js +178 -0
- package/dist/src/nonInteractive/io/StreamJsonInputReader.test.js.map +1 -0
- package/dist/src/nonInteractive/io/StreamJsonOutputAdapter.d.ts +69 -0
- package/dist/src/nonInteractive/io/StreamJsonOutputAdapter.js +185 -0
- package/dist/src/nonInteractive/io/StreamJsonOutputAdapter.js.map +1 -0
- package/dist/src/nonInteractive/io/StreamJsonOutputAdapter.test.d.ts +6 -0
- package/dist/src/nonInteractive/io/StreamJsonOutputAdapter.test.js +808 -0
- package/dist/src/nonInteractive/io/StreamJsonOutputAdapter.test.js.map +1 -0
- package/dist/src/nonInteractive/session.d.ts +23 -0
- package/dist/src/nonInteractive/session.js +549 -0
- package/dist/src/nonInteractive/session.js.map +1 -0
- package/dist/src/nonInteractive/session.test.d.ts +6 -0
- package/dist/src/nonInteractive/session.test.js +407 -0
- package/dist/src/nonInteractive/session.test.js.map +1 -0
- package/dist/src/nonInteractive/types.d.ts +344 -0
- package/dist/src/nonInteractive/types.js +78 -0
- package/dist/src/nonInteractive/types.js.map +1 -0
- package/dist/src/nonInteractiveCli.d.ts +21 -1
- package/dist/src/nonInteractiveCli.js +204 -57
- package/dist/src/nonInteractiveCli.js.map +1 -1
- package/dist/src/nonInteractiveCliCommands.d.ts +19 -1
- package/dist/src/nonInteractiveCliCommands.js +69 -4
- package/dist/src/nonInteractiveCliCommands.js.map +1 -1
- package/dist/src/services/BuiltinCommandLoader.js +2 -0
- package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
- package/dist/src/services/FileCommandLoader.js +4 -1
- package/dist/src/services/FileCommandLoader.js.map +1 -1
- package/dist/src/ui/AppContainer.js +41 -38
- package/dist/src/ui/AppContainer.js.map +1 -1
- package/dist/src/ui/auth/AuthDialog.d.ts +1 -13
- package/dist/src/ui/auth/AuthDialog.js +41 -111
- package/dist/src/ui/auth/AuthDialog.js.map +1 -1
- package/dist/src/ui/auth/AuthDialog.test.js +49 -19
- package/dist/src/ui/auth/AuthDialog.test.js.map +1 -1
- package/dist/src/ui/auth/AuthInProgress.js +2 -1
- package/dist/src/ui/auth/AuthInProgress.js.map +1 -1
- package/dist/src/ui/auth/useAuth.d.ts +9 -8
- package/dist/src/ui/auth/useAuth.js +135 -63
- package/dist/src/ui/auth/useAuth.js.map +1 -1
- package/dist/src/ui/commands/aboutCommand.js +7 -31
- package/dist/src/ui/commands/aboutCommand.js.map +1 -1
- package/dist/src/ui/commands/agentsCommand.js +10 -3
- package/dist/src/ui/commands/agentsCommand.js.map +1 -1
- package/dist/src/ui/commands/approvalModeCommand.js +8 -329
- package/dist/src/ui/commands/approvalModeCommand.js.map +1 -1
- package/dist/src/ui/commands/approvalModeCommand.test.js +19 -263
- package/dist/src/ui/commands/approvalModeCommand.test.js.map +1 -1
- package/dist/src/ui/commands/authCommand.js +4 -1
- package/dist/src/ui/commands/authCommand.js.map +1 -1
- package/dist/src/ui/commands/bugCommand.js +13 -47
- package/dist/src/ui/commands/bugCommand.js.map +1 -1
- package/dist/src/ui/commands/chatCommand.js +51 -25
- package/dist/src/ui/commands/chatCommand.js.map +1 -1
- package/dist/src/ui/commands/clearCommand.js +6 -3
- package/dist/src/ui/commands/clearCommand.js.map +1 -1
- package/dist/src/ui/commands/compressCommand.js +9 -4
- package/dist/src/ui/commands/compressCommand.js.map +1 -1
- package/dist/src/ui/commands/copyCommand.js +4 -1
- package/dist/src/ui/commands/copyCommand.js.map +1 -1
- package/dist/src/ui/commands/directoryCommand.js +30 -12
- package/dist/src/ui/commands/directoryCommand.js.map +1 -1
- package/dist/src/ui/commands/docsCommand.js +9 -3
- package/dist/src/ui/commands/docsCommand.js.map +1 -1
- package/dist/src/ui/commands/editorCommand.js +4 -1
- package/dist/src/ui/commands/editorCommand.js.map +1 -1
- package/dist/src/ui/commands/extensionsCommand.js +10 -3
- package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
- package/dist/src/ui/commands/helpCommand.js +4 -1
- package/dist/src/ui/commands/helpCommand.js.map +1 -1
- package/dist/src/ui/commands/ideCommand.js +23 -7
- package/dist/src/ui/commands/ideCommand.js.map +1 -1
- package/dist/src/ui/commands/initCommand.js +5 -3
- package/dist/src/ui/commands/initCommand.js.map +1 -1
- package/dist/src/ui/commands/languageCommand.d.ts +7 -0
- package/dist/src/ui/commands/languageCommand.js +386 -0
- package/dist/src/ui/commands/languageCommand.js.map +1 -0
- package/dist/src/ui/commands/mcpCommand.js +38 -18
- package/dist/src/ui/commands/mcpCommand.js.map +1 -1
- package/dist/src/ui/commands/memoryCommand.js +54 -25
- package/dist/src/ui/commands/memoryCommand.js.map +1 -1
- package/dist/src/ui/commands/modelCommand.js +9 -4
- package/dist/src/ui/commands/modelCommand.js.map +1 -1
- package/dist/src/ui/commands/permissionsCommand.js +4 -1
- package/dist/src/ui/commands/permissionsCommand.js.map +1 -1
- package/dist/src/ui/commands/quitCommand.js +7 -2
- package/dist/src/ui/commands/quitCommand.js.map +1 -1
- package/dist/src/ui/commands/settingsCommand.js +4 -1
- package/dist/src/ui/commands/settingsCommand.js.map +1 -1
- package/dist/src/ui/commands/setupGithubCommand.js +4 -1
- package/dist/src/ui/commands/setupGithubCommand.js.map +1 -1
- package/dist/src/ui/commands/statsCommand.js +11 -4
- package/dist/src/ui/commands/statsCommand.js.map +1 -1
- package/dist/src/ui/commands/summaryCommand.js +15 -8
- package/dist/src/ui/commands/summaryCommand.js.map +1 -1
- package/dist/src/ui/commands/terminalSetupCommand.js +9 -3
- package/dist/src/ui/commands/terminalSetupCommand.js.map +1 -1
- package/dist/src/ui/commands/themeCommand.js +4 -1
- package/dist/src/ui/commands/themeCommand.js.map +1 -1
- package/dist/src/ui/commands/toolsCommand.js +5 -2
- package/dist/src/ui/commands/toolsCommand.js.map +1 -1
- package/dist/src/ui/commands/types.d.ts +1 -1
- package/dist/src/ui/commands/types.js.map +1 -1
- package/dist/src/ui/commands/vimCommand.js +4 -1
- package/dist/src/ui/commands/vimCommand.js.map +1 -1
- package/dist/src/ui/components/AboutBox.d.ts +2 -9
- package/dist/src/ui/components/AboutBox.js +6 -2
- package/dist/src/ui/components/AboutBox.js.map +1 -1
- package/dist/src/ui/components/ApprovalModeDialog.d.ts +21 -0
- package/dist/src/ui/components/ApprovalModeDialog.js +68 -0
- package/dist/src/ui/components/ApprovalModeDialog.js.map +1 -0
- package/dist/src/ui/components/AutoAcceptIndicator.js +7 -6
- package/dist/src/ui/components/AutoAcceptIndicator.js.map +1 -1
- package/dist/src/ui/components/Composer.js +4 -3
- package/dist/src/ui/components/Composer.js.map +1 -1
- package/dist/src/ui/components/ConfigInitDisplay.js +7 -3
- package/dist/src/ui/components/ConfigInitDisplay.js.map +1 -1
- package/dist/src/ui/components/ContextSummaryDisplay.js +33 -9
- package/dist/src/ui/components/ContextSummaryDisplay.js.map +1 -1
- package/dist/src/ui/components/DialogManager.js +60 -13
- package/dist/src/ui/components/DialogManager.js.map +1 -1
- package/dist/src/ui/components/EditorSettingsDialog.js +8 -3
- package/dist/src/ui/components/EditorSettingsDialog.js.map +1 -1
- package/dist/src/ui/components/Help.js +14 -4
- package/dist/src/ui/components/Help.js.map +1 -1
- package/dist/src/ui/components/HistoryItemDisplay.js +1 -1
- package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
- package/dist/src/ui/components/HistoryItemDisplay.test.js +17 -8
- package/dist/src/ui/components/HistoryItemDisplay.test.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.js +10 -136
- package/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/dist/src/ui/components/LoadingIndicator.js +6 -1
- package/dist/src/ui/components/LoadingIndicator.js.map +1 -1
- package/dist/src/ui/components/ModelDialog.js +2 -1
- package/dist/src/ui/components/ModelDialog.js.map +1 -1
- package/dist/src/ui/components/ModelStatsDisplay.js +6 -5
- package/dist/src/ui/components/ModelStatsDisplay.js.map +1 -1
- package/dist/src/ui/components/OpenAIKeyPrompt.d.ts +19 -1
- package/dist/src/ui/components/OpenAIKeyPrompt.js +38 -6
- package/dist/src/ui/components/OpenAIKeyPrompt.js.map +1 -1
- package/dist/src/ui/components/ProQuotaDialog.js +5 -4
- package/dist/src/ui/components/ProQuotaDialog.js.map +1 -1
- package/dist/src/ui/components/QuitConfirmationDialog.js +6 -5
- package/dist/src/ui/components/QuitConfirmationDialog.js.map +1 -1
- package/dist/src/ui/components/QwenOAuthProgress.d.ts +2 -2
- package/dist/src/ui/components/QwenOAuthProgress.js +14 -7
- package/dist/src/ui/components/QwenOAuthProgress.js.map +1 -1
- package/dist/src/ui/components/QwenOAuthProgress.test.js +1 -0
- package/dist/src/ui/components/QwenOAuthProgress.test.js.map +1 -1
- package/dist/src/ui/components/SessionSummaryDisplay.js +2 -1
- package/dist/src/ui/components/SessionSummaryDisplay.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.d.ts +3 -1
- package/dist/src/ui/components/SettingsDialog.js +35 -12
- package/dist/src/ui/components/SettingsDialog.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.test.js +5 -4
- package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
- package/dist/src/ui/components/ShellConfirmationDialog.js +5 -4
- package/dist/src/ui/components/ShellConfirmationDialog.js.map +1 -1
- package/dist/src/ui/components/StatsDisplay.js +5 -4
- package/dist/src/ui/components/StatsDisplay.js.map +1 -1
- package/dist/src/ui/components/ThemeDialog.js +5 -2
- package/dist/src/ui/components/ThemeDialog.js.map +1 -1
- package/dist/src/ui/components/ToolStatsDisplay.js +3 -2
- package/dist/src/ui/components/ToolStatsDisplay.js.map +1 -1
- package/dist/src/ui/components/WelcomeBackDialog.js +13 -4
- package/dist/src/ui/components/WelcomeBackDialog.js.map +1 -1
- package/dist/src/ui/components/messages/CompressionMessage.js +10 -6
- package/dist/src/ui/components/messages/CompressionMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js +40 -29
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
- package/dist/src/ui/components/shared/BaseSelectionList.test.js +1 -1
- package/dist/src/ui/components/shared/BaseSelectionList.test.js.map +1 -1
- package/dist/src/ui/components/shared/ScopeSelector.js +3 -1
- package/dist/src/ui/components/shared/ScopeSelector.js.map +1 -1
- package/dist/src/ui/components/subagents/create/AgentCreationWizard.js +39 -26
- package/dist/src/ui/components/subagents/create/AgentCreationWizard.js.map +1 -1
- package/dist/src/ui/components/subagents/create/CreationSummary.js +20 -10
- package/dist/src/ui/components/subagents/create/CreationSummary.js.map +1 -1
- package/dist/src/ui/components/subagents/create/DescriptionInput.js +6 -3
- package/dist/src/ui/components/subagents/create/DescriptionInput.js.map +1 -1
- package/dist/src/ui/components/subagents/create/GenerationMethodSelector.js +7 -2
- package/dist/src/ui/components/subagents/create/GenerationMethodSelector.js.map +1 -1
- package/dist/src/ui/components/subagents/create/LocationSelector.js +7 -2
- package/dist/src/ui/components/subagents/create/LocationSelector.js.map +1 -1
- package/dist/src/ui/components/subagents/create/ToolSelector.js +8 -7
- package/dist/src/ui/components/subagents/create/ToolSelector.js.map +1 -1
- package/dist/src/ui/components/subagents/manage/ActionSelectionStep.js +29 -4
- package/dist/src/ui/components/subagents/manage/ActionSelectionStep.js.map +1 -1
- package/dist/src/ui/components/subagents/manage/AgentDeleteStep.js +6 -3
- package/dist/src/ui/components/subagents/manage/AgentDeleteStep.js.map +1 -1
- package/dist/src/ui/components/subagents/manage/AgentEditStep.js +14 -5
- package/dist/src/ui/components/subagents/manage/AgentEditStep.js.map +1 -1
- package/dist/src/ui/components/subagents/manage/AgentSelectionStep.js +13 -6
- package/dist/src/ui/components/subagents/manage/AgentSelectionStep.js.map +1 -1
- package/dist/src/ui/components/subagents/manage/AgentViewerStep.js +3 -2
- package/dist/src/ui/components/subagents/manage/AgentViewerStep.js.map +1 -1
- package/dist/src/ui/components/subagents/manage/AgentsManagerDialog.js +14 -13
- package/dist/src/ui/components/subagents/manage/AgentsManagerDialog.js.map +1 -1
- package/dist/src/ui/components/subagents/runtime/AgentExecutionDisplay.js +8 -8
- package/dist/src/ui/components/views/McpStatus.js +28 -15
- package/dist/src/ui/components/views/McpStatus.js.map +1 -1
- package/dist/src/ui/components/views/ToolsList.js +2 -1
- package/dist/src/ui/components/views/ToolsList.js.map +1 -1
- package/dist/src/ui/contexts/UIActionsContext.d.ts +5 -4
- package/dist/src/ui/contexts/UIActionsContext.js +1 -0
- package/dist/src/ui/contexts/UIActionsContext.js.map +1 -1
- package/dist/src/ui/contexts/UIStateContext.d.ts +5 -7
- package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
- package/dist/src/ui/editors/editorSettingsManager.js +1 -0
- package/dist/src/ui/editors/editorSettingsManager.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.test.js +2 -0
- package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.d.ts +1 -0
- package/dist/src/ui/hooks/slashCommandProcessor.js +4 -7
- package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/useApprovalModeCommand.d.ts +14 -0
- package/dist/src/ui/hooks/useApprovalModeCommand.js +33 -0
- package/dist/src/ui/hooks/useApprovalModeCommand.js.map +1 -0
- package/dist/src/ui/hooks/useAttentionNotifications.d.ts +14 -0
- package/dist/src/ui/hooks/useAttentionNotifications.js +41 -0
- package/dist/src/ui/hooks/useAttentionNotifications.js.map +1 -0
- package/dist/src/ui/hooks/useAttentionNotifications.test.d.ts +6 -0
- package/dist/src/ui/hooks/useAttentionNotifications.test.js +113 -0
- package/dist/src/ui/hooks/useAttentionNotifications.test.js.map +1 -0
- package/dist/src/ui/hooks/useCommandCompletion.d.ts +1 -4
- package/dist/src/ui/hooks/useCommandCompletion.js +1 -23
- package/dist/src/ui/hooks/useCommandCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useDialogClose.d.ts +6 -3
- package/dist/src/ui/hooks/useDialogClose.js +5 -0
- package/dist/src/ui/hooks/useDialogClose.js.map +1 -1
- package/dist/src/ui/hooks/useGitBranchName.js +6 -3
- package/dist/src/ui/hooks/useGitBranchName.js.map +1 -1
- package/dist/src/ui/hooks/useGitBranchName.test.js +39 -21
- package/dist/src/ui/hooks/useGitBranchName.test.js.map +1 -1
- package/dist/src/ui/hooks/useInitializationAuthError.d.ts +22 -0
- package/dist/src/ui/hooks/useInitializationAuthError.js +40 -0
- package/dist/src/ui/hooks/useInitializationAuthError.js.map +1 -0
- package/dist/src/ui/hooks/usePhraseCycler.js +6 -4
- package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
- package/dist/src/ui/hooks/useQwenAuth.d.ts +7 -12
- package/dist/src/ui/hooks/useQwenAuth.js +4 -8
- package/dist/src/ui/hooks/useQwenAuth.js.map +1 -1
- package/dist/src/ui/hooks/useQwenAuth.test.js +72 -98
- package/dist/src/ui/hooks/useQwenAuth.test.js.map +1 -1
- package/dist/src/ui/hooks/useThemeCommand.js +8 -3
- package/dist/src/ui/hooks/useThemeCommand.js.map +1 -1
- package/dist/src/ui/models/availableModels.js +7 -2
- package/dist/src/ui/models/availableModels.js.map +1 -1
- package/dist/src/ui/types.d.ts +32 -14
- package/dist/src/ui/types.js.map +1 -1
- package/dist/src/ui/utils/clipboardUtils.js +3 -3
- package/dist/src/ui/utils/clipboardUtils.js.map +1 -1
- package/dist/src/ui/utils/commandUtils.d.ts +16 -0
- package/dist/src/ui/utils/commandUtils.js +16 -1
- package/dist/src/ui/utils/commandUtils.js.map +1 -1
- package/dist/src/ui/utils/commandUtils.test.js +5 -2
- package/dist/src/ui/utils/commandUtils.test.js.map +1 -1
- package/dist/src/ui/utils/terminalSetup.js +45 -18
- package/dist/src/ui/utils/terminalSetup.js.map +1 -1
- package/dist/src/utils/attentionNotification.d.ts +20 -0
- package/dist/src/utils/attentionNotification.js +34 -0
- package/dist/src/utils/attentionNotification.js.map +1 -0
- package/dist/src/utils/attentionNotification.test.d.ts +6 -0
- package/dist/src/utils/attentionNotification.test.js +46 -0
- package/dist/src/utils/attentionNotification.test.js.map +1 -0
- package/dist/src/utils/dialogScopeUtils.d.ts +0 -4
- package/dist/src/utils/dialogScopeUtils.js +5 -2
- package/dist/src/utils/dialogScopeUtils.js.map +1 -1
- package/dist/src/utils/errors.d.ts +10 -2
- package/dist/src/utils/errors.js +14 -13
- package/dist/src/utils/errors.js.map +1 -1
- package/dist/src/utils/errors.test.js +91 -54
- package/dist/src/utils/errors.test.js.map +1 -1
- package/dist/src/utils/nonInteractiveHelpers.d.ts +88 -0
- package/dist/src/utils/nonInteractiveHelpers.js +470 -0
- package/dist/src/utils/nonInteractiveHelpers.js.map +1 -0
- package/dist/src/utils/nonInteractiveHelpers.test.d.ts +6 -0
- package/dist/src/utils/nonInteractiveHelpers.test.js +945 -0
- package/dist/src/utils/nonInteractiveHelpers.test.js.map +1 -0
- package/dist/src/utils/sandbox.js +1 -1
- package/dist/src/utils/sandbox.js.map +1 -1
- package/dist/src/utils/settingsUtils.js +7 -1
- package/dist/src/utils/settingsUtils.js.map +1 -1
- package/dist/src/utils/systemInfo.d.ts +66 -0
- package/dist/src/utils/systemInfo.js +125 -0
- package/dist/src/utils/systemInfo.js.map +1 -0
- package/dist/src/utils/systemInfo.test.d.ts +6 -0
- package/dist/src/utils/systemInfo.test.js +259 -0
- package/dist/src/utils/systemInfo.test.js.map +1 -0
- package/dist/src/utils/systemInfoFields.d.ts +22 -0
- package/dist/src/utils/systemInfoFields.js +96 -0
- package/dist/src/utils/systemInfoFields.js.map +1 -0
- package/dist/src/utils/userStartupWarnings.js +9 -4
- package/dist/src/utils/userStartupWarnings.js.map +1 -1
- package/dist/src/validateNonInterActiveAuth.js +27 -6
- package/dist/src/validateNonInterActiveAuth.js.map +1 -1
- package/dist/src/zed-integration/acp.js +1 -2
- package/dist/src/zed-integration/acp.js.map +1 -1
- package/dist/src/zed-integration/schema.d.ts +506 -264
- package/dist/src/zed-integration/schema.js +13 -0
- package/dist/src/zed-integration/schema.js.map +1 -1
- package/dist/src/zed-integration/zedIntegration.js +376 -32
- package/dist/src/zed-integration/zedIntegration.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +12 -4
|
@@ -9,6 +9,7 @@ import { getErrorMessage } from '../../utils/errors.js';
|
|
|
9
9
|
import { ExtensionUpdateState } from '../state/extensions.js';
|
|
10
10
|
import { MessageType } from '../types.js';
|
|
11
11
|
import { CommandKind, } from './types.js';
|
|
12
|
+
import { t } from '../../i18n/index.js';
|
|
12
13
|
async function listAction(context) {
|
|
13
14
|
context.ui.addItem({
|
|
14
15
|
type: MessageType.EXTENSIONS_LIST,
|
|
@@ -77,13 +78,17 @@ async function updateAction(context, args) {
|
|
|
77
78
|
}
|
|
78
79
|
const listExtensionsCommand = {
|
|
79
80
|
name: 'list',
|
|
80
|
-
description
|
|
81
|
+
get description() {
|
|
82
|
+
return t('List active extensions');
|
|
83
|
+
},
|
|
81
84
|
kind: CommandKind.BUILT_IN,
|
|
82
85
|
action: listAction,
|
|
83
86
|
};
|
|
84
87
|
const updateExtensionsCommand = {
|
|
85
88
|
name: 'update',
|
|
86
|
-
description
|
|
89
|
+
get description() {
|
|
90
|
+
return t('Update extensions. Usage: update <extension-names>|--all');
|
|
91
|
+
},
|
|
87
92
|
kind: CommandKind.BUILT_IN,
|
|
88
93
|
action: updateAction,
|
|
89
94
|
completion: async (context, partialArg) => {
|
|
@@ -98,7 +103,9 @@ const updateExtensionsCommand = {
|
|
|
98
103
|
};
|
|
99
104
|
export const extensionsCommand = {
|
|
100
105
|
name: 'extensions',
|
|
101
|
-
description
|
|
106
|
+
get description() {
|
|
107
|
+
return t('Manage extensions');
|
|
108
|
+
},
|
|
102
109
|
kind: CommandKind.BUILT_IN,
|
|
103
110
|
subCommands: [listExtensionsCommand, updateExtensionsCommand],
|
|
104
111
|
action: (context, args) =>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extensionsCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/extensionsCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EACL,4BAA4B,EAE5B,eAAe,EACf,2BAA2B,GAC5B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAGL,WAAW,GACZ,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"extensionsCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/extensionsCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,11 +5,14 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { CommandKind } from './types.js';
|
|
7
7
|
import { MessageType } from '../types.js';
|
|
8
|
+
import { t } from '../../i18n/index.js';
|
|
8
9
|
export const helpCommand = {
|
|
9
10
|
name: 'help',
|
|
10
11
|
altNames: ['?'],
|
|
11
12
|
kind: CommandKind.BUILT_IN,
|
|
12
|
-
description
|
|
13
|
+
get description() {
|
|
14
|
+
return t('for help on UMS Code CLI');
|
|
15
|
+
},
|
|
13
16
|
action: async (context) => {
|
|
14
17
|
const helpItem = {
|
|
15
18
|
type: MessageType.HELP,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/helpCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,WAAW,EAAwB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"helpCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/helpCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,WAAW,EAAwB,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,CAAC,EAAE,MAAM,qBAAqB,CAAC;AAExC,MAAM,CAAC,MAAM,WAAW,GAAiB;IACvC,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,CAAC,GAAG,CAAC;IACf,IAAI,EAAE,WAAW,CAAC,QAAQ;IAC1B,IAAI,WAAW;QACb,OAAO,CAAC,CAAC,0BAA0B,CAAC,CAAC;IACvC,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,QAAQ,GAAgC;YAC5C,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC;QAEF,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3C,CAAC;CACF,CAAC"}
|
|
@@ -8,6 +8,7 @@ import { QWEN_CODE_COMPANION_EXTENSION_NAME, getIdeInstaller, IDEConnectionStatu
|
|
|
8
8
|
import path from 'node:path';
|
|
9
9
|
import { CommandKind } from './types.js';
|
|
10
10
|
import { SettingScope } from '../../config/settings.js';
|
|
11
|
+
import { t } from '../../i18n/index.js';
|
|
11
12
|
function getIdeStatusMessage(ideClient) {
|
|
12
13
|
const connection = ideClient.getConnectionStatus();
|
|
13
14
|
switch (connection.status) {
|
|
@@ -103,24 +104,30 @@ export const ideCommand = async () => {
|
|
|
103
104
|
if (!currentIDE) {
|
|
104
105
|
return {
|
|
105
106
|
name: 'ide',
|
|
106
|
-
description
|
|
107
|
+
get description() {
|
|
108
|
+
return t('manage IDE integration');
|
|
109
|
+
},
|
|
107
110
|
kind: CommandKind.BUILT_IN,
|
|
108
111
|
action: () => ({
|
|
109
112
|
type: 'message',
|
|
110
113
|
messageType: 'error',
|
|
111
|
-
content:
|
|
114
|
+
content: t('IDE integration is not supported in your current environment. To use this feature, run UMS Code in one of these supported IDEs: VS Code or VS Code forks.'),
|
|
112
115
|
}),
|
|
113
116
|
};
|
|
114
117
|
}
|
|
115
118
|
const ideSlashCommand = {
|
|
116
119
|
name: 'ide',
|
|
117
|
-
description
|
|
120
|
+
get description() {
|
|
121
|
+
return t('manage IDE integration');
|
|
122
|
+
},
|
|
118
123
|
kind: CommandKind.BUILT_IN,
|
|
119
124
|
subCommands: [],
|
|
120
125
|
};
|
|
121
126
|
const statusCommand = {
|
|
122
127
|
name: 'status',
|
|
123
|
-
description
|
|
128
|
+
get description() {
|
|
129
|
+
return t('check status of IDE integration');
|
|
130
|
+
},
|
|
124
131
|
kind: CommandKind.BUILT_IN,
|
|
125
132
|
action: async () => {
|
|
126
133
|
const { messageType, content } = await getIdeStatusMessageWithFiles(ideClient);
|
|
@@ -133,7 +140,12 @@ export const ideCommand = async () => {
|
|
|
133
140
|
};
|
|
134
141
|
const installCommand = {
|
|
135
142
|
name: 'install',
|
|
136
|
-
description
|
|
143
|
+
get description() {
|
|
144
|
+
const ideName = ideClient.getDetectedIdeDisplayName() ?? 'IDE';
|
|
145
|
+
return t('install required IDE companion for {{ideName}}', {
|
|
146
|
+
ideName,
|
|
147
|
+
});
|
|
148
|
+
},
|
|
137
149
|
kind: CommandKind.BUILT_IN,
|
|
138
150
|
action: async (context) => {
|
|
139
151
|
const installer = getIdeInstaller(currentIDE);
|
|
@@ -182,7 +194,9 @@ export const ideCommand = async () => {
|
|
|
182
194
|
};
|
|
183
195
|
const enableCommand = {
|
|
184
196
|
name: 'enable',
|
|
185
|
-
description
|
|
197
|
+
get description() {
|
|
198
|
+
return t('enable IDE integration');
|
|
199
|
+
},
|
|
186
200
|
kind: CommandKind.BUILT_IN,
|
|
187
201
|
action: async (context) => {
|
|
188
202
|
context.services.settings.setValue(SettingScope.User, 'ide.enabled', true);
|
|
@@ -196,7 +210,9 @@ export const ideCommand = async () => {
|
|
|
196
210
|
};
|
|
197
211
|
const disableCommand = {
|
|
198
212
|
name: 'disable',
|
|
199
|
-
description
|
|
213
|
+
get description() {
|
|
214
|
+
return t('disable IDE integration');
|
|
215
|
+
},
|
|
200
216
|
kind: CommandKind.BUILT_IN,
|
|
201
217
|
action: async (context) => {
|
|
202
218
|
context.services.settings.setValue(SettingScope.User, 'ide.enabled', false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ideCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/ideCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEL,SAAS,EAET,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,kCAAkC,EAClC,eAAe,EACf,mBAAmB,EACnB,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,IAAI,MAAM,WAAW,CAAC;AAM7B,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"ideCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/ideCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,17 +9,19 @@ import { getCurrentGeminiMdFilename } from '@umsai/ums-code-core';
|
|
|
9
9
|
import { CommandKind } from './types.js';
|
|
10
10
|
import { Text } from 'ink';
|
|
11
11
|
import React from 'react';
|
|
12
|
-
|
|
12
|
+
import { t } from '../../i18n/index.js';
|
|
13
13
|
export const initCommand = {
|
|
14
14
|
name: 'init',
|
|
15
|
-
description
|
|
15
|
+
get description() {
|
|
16
|
+
return t('Analyzes the project and creates a tailored UMS.md file.');
|
|
17
|
+
},
|
|
16
18
|
kind: CommandKind.BUILT_IN,
|
|
17
19
|
action: async (context, _args) => {
|
|
18
20
|
if (!context.services.config) {
|
|
19
21
|
return {
|
|
20
22
|
type: 'message',
|
|
21
23
|
messageType: 'error',
|
|
22
|
-
content: 'Configuration not available.',
|
|
24
|
+
content: t('Configuration not available.'),
|
|
23
25
|
};
|
|
24
26
|
}
|
|
25
27
|
const targetDir = context.services.config.getTargetDir();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/initCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAMlC,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"initCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/initCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,386 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { CommandKind } from './types.js';
|
|
7
|
+
import { SettingScope } from '../../config/settings.js';
|
|
8
|
+
import { setLanguageAsync, getCurrentLanguage, t, } from '../../i18n/index.js';
|
|
9
|
+
import * as fs from 'node:fs';
|
|
10
|
+
import * as path from 'node:path';
|
|
11
|
+
import { Storage } from '@umsai/ums-code-core';
|
|
12
|
+
const LLM_OUTPUT_LANGUAGE_RULE_FILENAME = 'output-language.md';
|
|
13
|
+
/**
|
|
14
|
+
* Generates the LLM output language rule template based on the language name.
|
|
15
|
+
*/
|
|
16
|
+
function generateLlmOutputLanguageRule(language) {
|
|
17
|
+
return `# ⚠️ CRITICAL: ${language} Output Language Rule - HIGHEST PRIORITY ⚠️
|
|
18
|
+
|
|
19
|
+
## 🚨 MANDATORY RULE - NO EXCEPTIONS 🚨
|
|
20
|
+
|
|
21
|
+
**YOU MUST RESPOND IN ${language.toUpperCase()} FOR EVERY SINGLE OUTPUT, REGARDLESS OF THE USER'S INPUT LANGUAGE.**
|
|
22
|
+
|
|
23
|
+
This is a **NON-NEGOTIABLE** requirement. Even if the user writes in English, says "hi", asks a simple question, or explicitly requests another language, **YOU MUST ALWAYS RESPOND IN ${language.toUpperCase()}.**
|
|
24
|
+
|
|
25
|
+
## What Must Be in ${language}
|
|
26
|
+
|
|
27
|
+
**EVERYTHING** you output: conversation replies, tool call descriptions, success/error messages, generated file content (comments, documentation), and all explanatory text.
|
|
28
|
+
|
|
29
|
+
**Tool outputs**: All descriptive text from \`read_file\`, \`write_file\`, \`codebase_search\`, \`run_terminal_cmd\`, \`todo_write\`, \`web_search\`, etc. MUST be in ${language}.
|
|
30
|
+
|
|
31
|
+
## Examples
|
|
32
|
+
|
|
33
|
+
### ✅ CORRECT:
|
|
34
|
+
- User says "hi" → Respond in ${language} (e.g., "Bonjour" if ${language} is French)
|
|
35
|
+
- Tool result → "已成功读取文件 config.json" (if ${language} is Chinese)
|
|
36
|
+
- Error → "无法找到指定的文件" (if ${language} is Chinese)
|
|
37
|
+
|
|
38
|
+
### ❌ WRONG:
|
|
39
|
+
- User says "hi" → "Hello" in English
|
|
40
|
+
- Tool result → "Successfully read file" in English
|
|
41
|
+
- Error → "File not found" in English
|
|
42
|
+
|
|
43
|
+
## Notes
|
|
44
|
+
|
|
45
|
+
- Code elements (variable/function names, syntax) can remain in English
|
|
46
|
+
- Comments, documentation, and all other text MUST be in ${language}
|
|
47
|
+
|
|
48
|
+
**THIS RULE IS ACTIVE NOW. ALL OUTPUTS MUST BE IN ${language.toUpperCase()}. NO EXCEPTIONS.**
|
|
49
|
+
`;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Gets the path to the LLM output language rule file.
|
|
53
|
+
*/
|
|
54
|
+
function getLlmOutputLanguageRulePath() {
|
|
55
|
+
return path.join(Storage.getGlobalQwenDir(), LLM_OUTPUT_LANGUAGE_RULE_FILENAME);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Gets the current LLM output language from the rule file if it exists.
|
|
59
|
+
*/
|
|
60
|
+
function getCurrentLlmOutputLanguage() {
|
|
61
|
+
const filePath = getLlmOutputLanguageRulePath();
|
|
62
|
+
if (fs.existsSync(filePath)) {
|
|
63
|
+
try {
|
|
64
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
65
|
+
// Extract language name from the first line (e.g., "# Chinese Response Rules" -> "Chinese")
|
|
66
|
+
const match = content.match(/^#\s+(.+?)\s+Response Rules/i);
|
|
67
|
+
if (match) {
|
|
68
|
+
return match[1];
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
// Ignore errors
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Sets the UI language and persists it to settings.
|
|
79
|
+
*/
|
|
80
|
+
async function setUiLanguage(context, lang) {
|
|
81
|
+
const { services } = context;
|
|
82
|
+
const { settings } = services;
|
|
83
|
+
if (!services.config) {
|
|
84
|
+
return {
|
|
85
|
+
type: 'message',
|
|
86
|
+
messageType: 'error',
|
|
87
|
+
content: t('Configuration not available.'),
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
// Set language in i18n system (async to support JS translation files)
|
|
91
|
+
await setLanguageAsync(lang);
|
|
92
|
+
// Persist to settings (user scope)
|
|
93
|
+
if (settings && typeof settings.setValue === 'function') {
|
|
94
|
+
try {
|
|
95
|
+
settings.setValue(SettingScope.User, 'general.language', lang);
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
console.warn('Failed to save language setting:', error);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
// Reload commands to update their descriptions with the new language
|
|
102
|
+
context.ui.reloadCommands();
|
|
103
|
+
// Map language codes to friendly display names
|
|
104
|
+
const langDisplayNames = {
|
|
105
|
+
zh: '中文(zh-CN)',
|
|
106
|
+
en: 'English(en-US)',
|
|
107
|
+
};
|
|
108
|
+
return {
|
|
109
|
+
type: 'message',
|
|
110
|
+
messageType: 'info',
|
|
111
|
+
content: t('UI language changed to {{lang}}', {
|
|
112
|
+
lang: langDisplayNames[lang],
|
|
113
|
+
}),
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Generates the LLM output language rule file.
|
|
118
|
+
*/
|
|
119
|
+
function generateLlmOutputLanguageRuleFile(language) {
|
|
120
|
+
try {
|
|
121
|
+
const filePath = getLlmOutputLanguageRulePath();
|
|
122
|
+
const content = generateLlmOutputLanguageRule(language);
|
|
123
|
+
// Ensure directory exists
|
|
124
|
+
const dir = path.dirname(filePath);
|
|
125
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
126
|
+
// Write file (overwrite if exists)
|
|
127
|
+
fs.writeFileSync(filePath, content, 'utf-8');
|
|
128
|
+
return Promise.resolve({
|
|
129
|
+
type: 'message',
|
|
130
|
+
messageType: 'info',
|
|
131
|
+
content: [
|
|
132
|
+
t('LLM output language rule file generated at {{path}}', {
|
|
133
|
+
path: filePath,
|
|
134
|
+
}),
|
|
135
|
+
'',
|
|
136
|
+
t('Please restart the application for the changes to take effect.'),
|
|
137
|
+
].join('\n'),
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
return Promise.resolve({
|
|
142
|
+
type: 'message',
|
|
143
|
+
messageType: 'error',
|
|
144
|
+
content: t('Failed to generate LLM output language rule file: {{error}}', {
|
|
145
|
+
error: error instanceof Error ? error.message : String(error),
|
|
146
|
+
}),
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
export const languageCommand = {
|
|
151
|
+
name: 'language',
|
|
152
|
+
get description() {
|
|
153
|
+
return t('View or change the language setting');
|
|
154
|
+
},
|
|
155
|
+
kind: CommandKind.BUILT_IN,
|
|
156
|
+
action: async (context, args) => {
|
|
157
|
+
const { services } = context;
|
|
158
|
+
if (!services.config) {
|
|
159
|
+
return {
|
|
160
|
+
type: 'message',
|
|
161
|
+
messageType: 'error',
|
|
162
|
+
content: t('Configuration not available.'),
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
const trimmedArgs = args.trim();
|
|
166
|
+
// If no arguments, show current language settings and usage
|
|
167
|
+
if (!trimmedArgs) {
|
|
168
|
+
const currentUiLang = getCurrentLanguage();
|
|
169
|
+
const currentLlmLang = getCurrentLlmOutputLanguage();
|
|
170
|
+
const message = [
|
|
171
|
+
t('Current UI language: {{lang}}', { lang: currentUiLang }),
|
|
172
|
+
currentLlmLang
|
|
173
|
+
? t('Current LLM output language: {{lang}}', { lang: currentLlmLang })
|
|
174
|
+
: t('LLM output language not set'),
|
|
175
|
+
'',
|
|
176
|
+
t('Available subcommands:'),
|
|
177
|
+
` /language ui [zh-CN|en-US] - ${t('Set UI language')}`,
|
|
178
|
+
` /language output <language> - ${t('Set LLM output language')}`,
|
|
179
|
+
].join('\n');
|
|
180
|
+
return {
|
|
181
|
+
type: 'message',
|
|
182
|
+
messageType: 'info',
|
|
183
|
+
content: message,
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
// Parse subcommand
|
|
187
|
+
const parts = trimmedArgs.split(/\s+/);
|
|
188
|
+
const subcommand = parts[0].toLowerCase();
|
|
189
|
+
if (subcommand === 'ui') {
|
|
190
|
+
// Handle /language ui [zh-CN|en-US]
|
|
191
|
+
if (parts.length === 1) {
|
|
192
|
+
// Show UI language subcommand help
|
|
193
|
+
return {
|
|
194
|
+
type: 'message',
|
|
195
|
+
messageType: 'info',
|
|
196
|
+
content: [
|
|
197
|
+
t('Set UI language'),
|
|
198
|
+
'',
|
|
199
|
+
t('Usage: /language ui [zh-CN|en-US]'),
|
|
200
|
+
'',
|
|
201
|
+
t('Available options:'),
|
|
202
|
+
t(' - zh-CN: Simplified Chinese'),
|
|
203
|
+
t(' - en-US: English'),
|
|
204
|
+
'',
|
|
205
|
+
t('To request additional UI language packs, please open an issue on GitHub.'),
|
|
206
|
+
].join('\n'),
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
const langArg = parts[1].toLowerCase();
|
|
210
|
+
let targetLang = null;
|
|
211
|
+
if (langArg === 'en' || langArg === 'english' || langArg === 'en-us') {
|
|
212
|
+
targetLang = 'en';
|
|
213
|
+
}
|
|
214
|
+
else if (langArg === 'zh' ||
|
|
215
|
+
langArg === 'chinese' ||
|
|
216
|
+
langArg === '中文' ||
|
|
217
|
+
langArg === 'zh-cn') {
|
|
218
|
+
targetLang = 'zh';
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
return {
|
|
222
|
+
type: 'message',
|
|
223
|
+
messageType: 'error',
|
|
224
|
+
content: t('Invalid language. Available: en-US, zh-CN'),
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
return setUiLanguage(context, targetLang);
|
|
228
|
+
}
|
|
229
|
+
else if (subcommand === 'output') {
|
|
230
|
+
// Handle /language output <language>
|
|
231
|
+
if (parts.length === 1) {
|
|
232
|
+
return {
|
|
233
|
+
type: 'message',
|
|
234
|
+
messageType: 'info',
|
|
235
|
+
content: [
|
|
236
|
+
t('Set LLM output language'),
|
|
237
|
+
'',
|
|
238
|
+
t('Usage: /language output <language>'),
|
|
239
|
+
` ${t('Example: /language output 中文')}`,
|
|
240
|
+
].join('\n'),
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
// Join all parts after "output" as the language name
|
|
244
|
+
const language = parts.slice(1).join(' ');
|
|
245
|
+
return generateLlmOutputLanguageRuleFile(language);
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
// Backward compatibility: treat as UI language
|
|
249
|
+
const langArg = trimmedArgs.toLowerCase();
|
|
250
|
+
let targetLang = null;
|
|
251
|
+
if (langArg === 'en' || langArg === 'english' || langArg === 'en-us') {
|
|
252
|
+
targetLang = 'en';
|
|
253
|
+
}
|
|
254
|
+
else if (langArg === 'zh' ||
|
|
255
|
+
langArg === 'chinese' ||
|
|
256
|
+
langArg === '中文' ||
|
|
257
|
+
langArg === 'zh-cn') {
|
|
258
|
+
targetLang = 'zh';
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
return {
|
|
262
|
+
type: 'message',
|
|
263
|
+
messageType: 'error',
|
|
264
|
+
content: [
|
|
265
|
+
t('Invalid command. Available subcommands:'),
|
|
266
|
+
' - /language ui [zh-CN|en-US] - ' + t('Set UI language'),
|
|
267
|
+
' - /language output <language> - ' + t('Set LLM output language'),
|
|
268
|
+
].join('\n'),
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
return setUiLanguage(context, targetLang);
|
|
272
|
+
}
|
|
273
|
+
},
|
|
274
|
+
subCommands: [
|
|
275
|
+
{
|
|
276
|
+
name: 'ui',
|
|
277
|
+
get description() {
|
|
278
|
+
return t('Set UI language');
|
|
279
|
+
},
|
|
280
|
+
kind: CommandKind.BUILT_IN,
|
|
281
|
+
action: async (context, args) => {
|
|
282
|
+
const trimmedArgs = args.trim();
|
|
283
|
+
if (!trimmedArgs) {
|
|
284
|
+
return {
|
|
285
|
+
type: 'message',
|
|
286
|
+
messageType: 'info',
|
|
287
|
+
content: [
|
|
288
|
+
t('Set UI language'),
|
|
289
|
+
'',
|
|
290
|
+
t('Usage: /language ui [zh-CN|en-US]'),
|
|
291
|
+
'',
|
|
292
|
+
t('Available options:'),
|
|
293
|
+
t(' - zh-CN: Simplified Chinese'),
|
|
294
|
+
t(' - en-US: English'),
|
|
295
|
+
'',
|
|
296
|
+
t('To request additional UI language packs, please open an issue on GitHub.'),
|
|
297
|
+
].join('\n'),
|
|
298
|
+
};
|
|
299
|
+
}
|
|
300
|
+
const langArg = trimmedArgs.toLowerCase();
|
|
301
|
+
let targetLang = null;
|
|
302
|
+
if (langArg === 'en' || langArg === 'english' || langArg === 'en-us') {
|
|
303
|
+
targetLang = 'en';
|
|
304
|
+
}
|
|
305
|
+
else if (langArg === 'zh' ||
|
|
306
|
+
langArg === 'chinese' ||
|
|
307
|
+
langArg === '中文' ||
|
|
308
|
+
langArg === 'zh-cn') {
|
|
309
|
+
targetLang = 'zh';
|
|
310
|
+
}
|
|
311
|
+
else {
|
|
312
|
+
return {
|
|
313
|
+
type: 'message',
|
|
314
|
+
messageType: 'error',
|
|
315
|
+
content: t('Invalid language. Available: en-US, zh-CN'),
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
return setUiLanguage(context, targetLang);
|
|
319
|
+
},
|
|
320
|
+
subCommands: [
|
|
321
|
+
{
|
|
322
|
+
name: 'zh-CN',
|
|
323
|
+
altNames: ['zh', 'chinese', '中文'],
|
|
324
|
+
get description() {
|
|
325
|
+
return t('Set UI language to Simplified Chinese (zh-CN)');
|
|
326
|
+
},
|
|
327
|
+
kind: CommandKind.BUILT_IN,
|
|
328
|
+
action: async (context, args) => {
|
|
329
|
+
if (args.trim().length > 0) {
|
|
330
|
+
return {
|
|
331
|
+
type: 'message',
|
|
332
|
+
messageType: 'error',
|
|
333
|
+
content: t('Language subcommands do not accept additional arguments.'),
|
|
334
|
+
};
|
|
335
|
+
}
|
|
336
|
+
return setUiLanguage(context, 'zh');
|
|
337
|
+
},
|
|
338
|
+
},
|
|
339
|
+
{
|
|
340
|
+
name: 'en-US',
|
|
341
|
+
altNames: ['en', 'english'],
|
|
342
|
+
get description() {
|
|
343
|
+
return t('Set UI language to English (en-US)');
|
|
344
|
+
},
|
|
345
|
+
kind: CommandKind.BUILT_IN,
|
|
346
|
+
action: async (context, args) => {
|
|
347
|
+
if (args.trim().length > 0) {
|
|
348
|
+
return {
|
|
349
|
+
type: 'message',
|
|
350
|
+
messageType: 'error',
|
|
351
|
+
content: t('Language subcommands do not accept additional arguments.'),
|
|
352
|
+
};
|
|
353
|
+
}
|
|
354
|
+
return setUiLanguage(context, 'en');
|
|
355
|
+
},
|
|
356
|
+
},
|
|
357
|
+
],
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
name: 'output',
|
|
361
|
+
get description() {
|
|
362
|
+
return t('Set LLM output language');
|
|
363
|
+
},
|
|
364
|
+
kind: CommandKind.BUILT_IN,
|
|
365
|
+
action: async (context, args) => {
|
|
366
|
+
const trimmedArgs = args.trim();
|
|
367
|
+
if (!trimmedArgs) {
|
|
368
|
+
return {
|
|
369
|
+
type: 'message',
|
|
370
|
+
messageType: 'info',
|
|
371
|
+
content: [
|
|
372
|
+
t('Set LLM output language'),
|
|
373
|
+
'',
|
|
374
|
+
t('Usage: /language output <language>'),
|
|
375
|
+
` ${t('Example: /language output 中文')}`,
|
|
376
|
+
` ${t('Example: /language output English')}`,
|
|
377
|
+
` ${t('Example: /language output 日本語')}`,
|
|
378
|
+
].join('\n'),
|
|
379
|
+
};
|
|
380
|
+
}
|
|
381
|
+
return generateLlmOutputLanguageRuleFile(trimmedArgs);
|
|
382
|
+
},
|
|
383
|
+
},
|
|
384
|
+
],
|
|
385
|
+
};
|
|
386
|
+
//# sourceMappingURL=languageCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"languageCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/languageCommand.ts"],"names":[],"mappings":"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"}
|