@qwen-code/qwen-code 0.0.2 → 0.0.4-nightly.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/package.json +6 -4
- package/dist/qwen-code-qwen-code-0.0.3.tgz +0 -0
- package/dist/src/acp/acp.d.ts +208 -0
- package/dist/src/acp/acp.js +193 -0
- package/dist/src/acp/acp.js.map +1 -0
- package/dist/src/acp/acpPeer.d.ts +8 -0
- package/dist/src/acp/acpPeer.js +537 -0
- package/dist/src/acp/acpPeer.js.map +1 -0
- package/dist/src/config/config.d.ts +5 -2
- package/dist/src/config/config.js +70 -28
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/extension.d.ts +2 -2
- package/dist/src/config/extension.js +21 -16
- package/dist/src/config/extension.js.map +1 -1
- package/dist/src/config/settings.d.ts +22 -15
- package/dist/src/config/settings.js +25 -10
- package/dist/src/config/settings.js.map +1 -1
- package/dist/src/gemini.d.ts +1 -0
- package/dist/src/gemini.js +31 -49
- package/dist/src/gemini.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +1 -1
- package/dist/src/generated/git-commit.js +1 -1
- package/dist/src/generated/git-commit.js.map +1 -1
- package/dist/src/nonInteractiveCli.js +0 -67
- package/dist/src/nonInteractiveCli.js.map +1 -1
- package/dist/src/patches/is-in-ci.d.ts +7 -0
- package/dist/src/patches/is-in-ci.js +15 -0
- package/dist/src/patches/is-in-ci.js.map +1 -0
- package/dist/src/services/BuiltinCommandLoader.d.ts +24 -0
- package/dist/src/services/BuiltinCommandLoader.js +72 -0
- package/dist/src/services/BuiltinCommandLoader.js.map +1 -0
- package/dist/src/services/CommandService.d.ts +43 -5
- package/dist/src/services/CommandService.js +61 -25
- package/dist/src/services/CommandService.js.map +1 -1
- package/dist/src/services/FileCommandLoader.d.ts +37 -0
- package/dist/src/services/FileCommandLoader.js +179 -0
- package/dist/src/services/FileCommandLoader.js.map +1 -0
- package/dist/src/services/McpPromptLoader.d.ts +25 -0
- package/dist/src/services/McpPromptLoader.js +192 -0
- package/dist/src/services/McpPromptLoader.js.map +1 -0
- package/dist/src/services/prompt-processors/argumentProcessor.d.ts +21 -0
- package/dist/src/services/prompt-processors/argumentProcessor.js +28 -0
- package/dist/src/services/prompt-processors/argumentProcessor.js.map +1 -0
- package/dist/src/services/prompt-processors/shellProcessor.d.ts +32 -0
- package/dist/src/services/prompt-processors/shellProcessor.js +77 -0
- package/dist/src/services/prompt-processors/shellProcessor.js.map +1 -0
- package/dist/src/services/prompt-processors/types.d.ts +38 -0
- package/dist/src/services/prompt-processors/types.js +14 -0
- package/dist/src/services/prompt-processors/types.js.map +1 -0
- package/dist/src/services/types.d.ts +22 -0
- package/dist/src/services/types.js +7 -0
- package/dist/src/services/types.js.map +1 -0
- package/dist/src/ui/App.js +130 -101
- package/dist/src/ui/App.js.map +1 -1
- package/dist/src/ui/colors.js +6 -0
- package/dist/src/ui/colors.js.map +1 -1
- package/dist/src/ui/commands/aboutCommand.js +2 -0
- package/dist/src/ui/commands/aboutCommand.js.map +1 -1
- package/dist/src/ui/commands/authCommand.js +2 -0
- package/dist/src/ui/commands/authCommand.js.map +1 -1
- package/dist/src/ui/commands/bugCommand.d.ts +7 -0
- package/dist/src/ui/commands/bugCommand.js +63 -0
- package/dist/src/ui/commands/bugCommand.js.map +1 -0
- package/dist/src/ui/commands/chatCommand.d.ts +7 -0
- package/dist/src/ui/commands/chatCommand.js +179 -0
- package/dist/src/ui/commands/chatCommand.js.map +1 -0
- package/dist/src/ui/commands/clearCommand.js +14 -2
- package/dist/src/ui/commands/clearCommand.js.map +1 -1
- package/dist/src/ui/commands/compressCommand.d.ts +7 -0
- package/dist/src/ui/commands/compressCommand.js +64 -0
- package/dist/src/ui/commands/compressCommand.js.map +1 -0
- package/dist/src/ui/commands/copyCommand.d.ts +7 -0
- package/dist/src/ui/commands/copyCommand.js +59 -0
- package/dist/src/ui/commands/copyCommand.js.map +1 -0
- package/dist/src/ui/commands/corgiCommand.d.ts +7 -0
- package/dist/src/ui/commands/corgiCommand.js +15 -0
- package/dist/src/ui/commands/corgiCommand.js.map +1 -0
- package/dist/src/ui/commands/docsCommand.d.ts +7 -0
- package/dist/src/ui/commands/docsCommand.js +31 -0
- package/dist/src/ui/commands/docsCommand.js.map +1 -0
- package/dist/src/ui/commands/editorCommand.d.ts +7 -0
- package/dist/src/ui/commands/editorCommand.js +16 -0
- package/dist/src/ui/commands/editorCommand.js.map +1 -0
- package/dist/src/ui/commands/extensionsCommand.d.ts +7 -0
- package/dist/src/ui/commands/extensionsCommand.js +31 -0
- package/dist/src/ui/commands/extensionsCommand.js.map +1 -0
- package/dist/src/ui/commands/helpCommand.js +4 -2
- package/dist/src/ui/commands/helpCommand.js.map +1 -1
- package/dist/src/ui/commands/ideCommand.d.ts +8 -0
- package/dist/src/ui/commands/ideCommand.js +121 -0
- package/dist/src/ui/commands/ideCommand.js.map +1 -0
- package/dist/src/ui/commands/mcpCommand.d.ts +7 -0
- package/dist/src/ui/commands/mcpCommand.js +425 -0
- package/dist/src/ui/commands/mcpCommand.js.map +1 -0
- package/dist/src/ui/commands/memoryCommand.js +11 -4
- package/dist/src/ui/commands/memoryCommand.js.map +1 -1
- package/dist/src/ui/commands/privacyCommand.js +2 -0
- package/dist/src/ui/commands/privacyCommand.js.map +1 -1
- package/dist/src/ui/commands/quitCommand.d.ts +7 -0
- package/dist/src/ui/commands/quitCommand.js +34 -0
- package/dist/src/ui/commands/quitCommand.js.map +1 -0
- package/dist/src/ui/commands/restoreCommand.d.ts +8 -0
- package/dist/src/ui/commands/restoreCommand.js +128 -0
- package/dist/src/ui/commands/restoreCommand.js.map +1 -0
- package/dist/src/ui/commands/statsCommand.d.ts +7 -0
- package/dist/src/ui/commands/statsCommand.js +54 -0
- package/dist/src/ui/commands/statsCommand.js.map +1 -0
- package/dist/src/ui/commands/themeCommand.js +2 -0
- package/dist/src/ui/commands/themeCommand.js.map +1 -1
- package/dist/src/ui/commands/toolsCommand.d.ts +7 -0
- package/dist/src/ui/commands/toolsCommand.js +56 -0
- package/dist/src/ui/commands/toolsCommand.js.map +1 -0
- package/dist/src/ui/commands/types.d.ts +76 -4
- package/dist/src/ui/commands/types.js +6 -1
- package/dist/src/ui/commands/types.js.map +1 -1
- package/dist/src/ui/commands/vimCommand.d.ts +7 -0
- package/dist/src/ui/commands/vimCommand.js +23 -0
- package/dist/src/ui/commands/vimCommand.js.map +1 -0
- package/dist/src/ui/components/AuthDialog.js +0 -1
- package/dist/src/ui/components/AuthDialog.js.map +1 -1
- package/dist/src/ui/components/ContextSummaryDisplay.d.ts +6 -1
- package/dist/src/ui/components/ContextSummaryDisplay.js +46 -19
- package/dist/src/ui/components/ContextSummaryDisplay.js.map +1 -1
- package/dist/src/ui/components/Footer.d.ts +1 -0
- package/dist/src/ui/components/Footer.js +2 -2
- package/dist/src/ui/components/Footer.js.map +1 -1
- package/dist/src/ui/components/Header.js +1 -1
- 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/IDEContextDetailDisplay.d.ts +11 -0
- package/dist/src/ui/components/IDEContextDetailDisplay.js +19 -0
- package/dist/src/ui/components/IDEContextDetailDisplay.js.map +1 -0
- package/dist/src/ui/components/InputPrompt.d.ts +3 -1
- package/dist/src/ui/components/InputPrompt.js +86 -123
- package/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/dist/src/ui/components/ShellConfirmationDialog.d.ts +15 -0
- package/dist/src/ui/components/ShellConfirmationDialog.js +44 -0
- package/dist/src/ui/components/ShellConfirmationDialog.js.map +1 -0
- package/dist/src/ui/components/ThemeDialog.js +51 -25
- package/dist/src/ui/components/ThemeDialog.js.map +1 -1
- package/dist/src/ui/components/Tips.js +1 -1
- package/dist/src/ui/components/Tips.js.map +1 -1
- package/dist/src/ui/components/messages/DiffRenderer.d.ts +1 -0
- package/dist/src/ui/components/messages/DiffRenderer.js +12 -11
- package/dist/src/ui/components/messages/DiffRenderer.js.map +1 -1
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js +5 -4
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolGroupMessage.js +3 -1
- package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
- package/dist/src/ui/components/shared/MaxSizedBox.js +69 -2
- package/dist/src/ui/components/shared/MaxSizedBox.js.map +1 -1
- package/dist/src/ui/components/shared/RadioButtonSelect.d.ts +3 -1
- package/dist/src/ui/components/shared/RadioButtonSelect.js +69 -50
- package/dist/src/ui/components/shared/RadioButtonSelect.js.map +1 -1
- package/dist/src/ui/components/shared/text-buffer.d.ts +273 -3
- package/dist/src/ui/components/shared/text-buffer.js +426 -80
- package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
- package/dist/src/ui/components/shared/vim-buffer-actions.d.ts +72 -0
- package/dist/src/ui/components/shared/vim-buffer-actions.js +565 -0
- package/dist/src/ui/components/shared/vim-buffer-actions.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/VimModeContext.d.ts +19 -0
- package/dist/src/ui/contexts/VimModeContext.js +48 -0
- package/dist/src/ui/contexts/VimModeContext.js.map +1 -0
- package/dist/src/ui/hooks/atCommandProcessor.js +54 -15
- package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/shellCommandProcessor.d.ts +2 -1
- package/dist/src/ui/hooks/shellCommandProcessor.js +154 -177
- package/dist/src/ui/hooks/shellCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.d.ts +9 -12
- package/dist/src/ui/hooks/slashCommandProcessor.js +203 -880
- package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/useAuthCommand.js +2 -1
- package/dist/src/ui/hooks/useAuthCommand.js.map +1 -1
- package/dist/src/ui/hooks/useCompletion.d.ts +4 -1
- package/dist/src/ui/hooks/useCompletion.js +137 -24
- package/dist/src/ui/hooks/useCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useConsoleMessages.js +53 -37
- package/dist/src/ui/hooks/useConsoleMessages.js.map +1 -1
- package/dist/src/ui/hooks/useFocus.d.ts +6 -0
- package/dist/src/ui/hooks/useFocus.js +41 -0
- package/dist/src/ui/hooks/useFocus.js.map +1 -0
- package/dist/src/ui/hooks/useGeminiStream.js +57 -11
- package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
- package/dist/src/ui/hooks/useInputHistory.d.ts +1 -1
- package/dist/src/ui/hooks/useKeypress.js +5 -2
- package/dist/src/ui/hooks/useKeypress.js.map +1 -1
- package/dist/src/ui/hooks/usePrivacySettings.js +5 -5
- package/dist/src/ui/hooks/usePrivacySettings.js.map +1 -1
- package/dist/src/ui/hooks/useShellHistory.d.ts +3 -2
- package/dist/src/ui/hooks/useShellHistory.js.map +1 -1
- package/dist/src/ui/hooks/useThemeCommand.js +24 -23
- package/dist/src/ui/hooks/useThemeCommand.js.map +1 -1
- package/dist/src/ui/hooks/vim.d.ts +28 -0
- package/dist/src/ui/hooks/vim.js +630 -0
- package/dist/src/ui/hooks/vim.js.map +1 -0
- package/dist/src/ui/themes/ansi-light.js +3 -1
- package/dist/src/ui/themes/ansi-light.js.map +1 -1
- package/dist/src/ui/themes/ansi.js +2 -0
- package/dist/src/ui/themes/ansi.js.map +1 -1
- package/dist/src/ui/themes/atom-one-dark.js +2 -0
- package/dist/src/ui/themes/atom-one-dark.js.map +1 -1
- package/dist/src/ui/themes/ayu-light.js +3 -1
- package/dist/src/ui/themes/ayu-light.js.map +1 -1
- package/dist/src/ui/themes/ayu.js +3 -1
- package/dist/src/ui/themes/ayu.js.map +1 -1
- package/dist/src/ui/themes/color-utils.d.ts +21 -0
- package/dist/src/ui/themes/color-utils.js +221 -0
- package/dist/src/ui/themes/color-utils.js.map +1 -0
- package/dist/src/ui/themes/dracula.js +2 -0
- package/dist/src/ui/themes/dracula.js.map +1 -1
- package/dist/src/ui/themes/github-dark.js +2 -0
- package/dist/src/ui/themes/github-dark.js.map +1 -1
- package/dist/src/ui/themes/github-light.js +2 -0
- package/dist/src/ui/themes/github-light.js.map +1 -1
- package/dist/src/ui/themes/googlecode.js +3 -1
- package/dist/src/ui/themes/googlecode.js.map +1 -1
- package/dist/src/ui/themes/no-color.js +3 -1
- package/dist/src/ui/themes/no-color.js.map +1 -1
- package/dist/src/ui/themes/qwen-dark.js +2 -0
- package/dist/src/ui/themes/qwen-dark.js.map +1 -1
- package/dist/src/ui/themes/qwen-light.js +2 -0
- package/dist/src/ui/themes/qwen-light.js.map +1 -1
- package/dist/src/ui/themes/shades-of-purple.d.ts +1 -1
- package/dist/src/ui/themes/shades-of-purple.js +3 -1
- package/dist/src/ui/themes/shades-of-purple.js.map +1 -1
- package/dist/src/ui/themes/theme-manager.d.ts +31 -6
- package/dist/src/ui/themes/theme-manager.js +114 -37
- package/dist/src/ui/themes/theme-manager.js.map +1 -1
- package/dist/src/ui/themes/theme.d.ts +23 -3
- package/dist/src/ui/themes/theme.js +244 -182
- package/dist/src/ui/themes/theme.js.map +1 -1
- package/dist/src/ui/themes/xcode.js +3 -1
- package/dist/src/ui/themes/xcode.js.map +1 -1
- package/dist/src/ui/types.d.ts +9 -1
- package/dist/src/ui/utils/CodeColorizer.d.ts +3 -1
- package/dist/src/ui/utils/CodeColorizer.js +23 -11
- package/dist/src/ui/utils/CodeColorizer.js.map +1 -1
- package/dist/src/ui/utils/commandUtils.d.ts +1 -0
- package/dist/src/ui/utils/commandUtils.js +47 -0
- package/dist/src/ui/utils/commandUtils.js.map +1 -1
- package/dist/src/ui/utils/errorParsing.js.map +1 -1
- package/dist/src/ui/utils/markdownUtilities.js +1 -1
- package/dist/src/ui/utils/textUtils.d.ts +0 -8
- package/dist/src/ui/utils/textUtils.js +0 -22
- package/dist/src/ui/utils/textUtils.js.map +1 -1
- package/dist/src/ui/utils/updateCheck.js +5 -1
- package/dist/src/ui/utils/updateCheck.js.map +1 -1
- package/dist/src/utils/events.d.ts +11 -0
- package/dist/src/utils/events.js +13 -0
- package/dist/src/utils/events.js.map +1 -0
- package/dist/src/utils/sandbox.js +7 -3
- package/dist/src/utils/sandbox.js.map +1 -1
- package/dist/src/utils/userStartupWarnings.js +16 -10
- package/dist/src/utils/userStartupWarnings.js.map +1 -1
- package/dist/src/validateNonInterActiveAuth.d.ts +7 -0
- package/dist/src/validateNonInterActiveAuth.js +38 -0
- package/dist/src/validateNonInterActiveAuth.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -5
package/dist/src/gemini.js
CHANGED
|
@@ -14,7 +14,7 @@ import v8 from 'node:v8';
|
|
|
14
14
|
import os from 'node:os';
|
|
15
15
|
import { spawn } from 'node:child_process';
|
|
16
16
|
import { start_sandbox } from './utils/sandbox.js';
|
|
17
|
-
import { loadSettings,
|
|
17
|
+
import { loadSettings, SettingScope, } from './config/settings.js';
|
|
18
18
|
import { themeManager } from './ui/themes/theme-manager.js';
|
|
19
19
|
import { getStartupWarnings } from './utils/startupWarnings.js';
|
|
20
20
|
import { getUserStartupWarnings } from './utils/userStartupWarnings.js';
|
|
@@ -25,6 +25,8 @@ import { getCliVersion } from './utils/version.js';
|
|
|
25
25
|
import { ApprovalMode, EditTool, ShellTool, WriteFileTool, sessionId, logUserPrompt, AuthType, getOauthClient, } from '@qwen-code/qwen-code-core';
|
|
26
26
|
import { validateAuthMethod } from './config/auth.js';
|
|
27
27
|
import { setMaxSizedBoxDebugging } from './ui/components/shared/MaxSizedBox.js';
|
|
28
|
+
import { validateNonInteractiveAuth } from './validateNonInterActiveAuth.js';
|
|
29
|
+
import { appEvents, AppEvent } from './utils/events.js';
|
|
28
30
|
function getNodeMemoryArgs(config) {
|
|
29
31
|
const totalMemoryMB = os.totalmem() / (1024 * 1024);
|
|
30
32
|
const heapStats = v8.getHeapStatistics();
|
|
@@ -55,7 +57,28 @@ async function relaunchWithAdditionalArgs(additionalArgs) {
|
|
|
55
57
|
await new Promise((resolve) => child.on('close', resolve));
|
|
56
58
|
process.exit(0);
|
|
57
59
|
}
|
|
60
|
+
import { runAcpPeer } from './acp/acpPeer.js';
|
|
61
|
+
export function setupUnhandledRejectionHandler() {
|
|
62
|
+
let unhandledRejectionOccurred = false;
|
|
63
|
+
process.on('unhandledRejection', (reason, _promise) => {
|
|
64
|
+
const errorMessage = `=========================================
|
|
65
|
+
This is an unexpected error. Please file a bug report using the /bug tool.
|
|
66
|
+
CRITICAL: Unhandled Promise Rejection!
|
|
67
|
+
=========================================
|
|
68
|
+
Reason: ${reason}${reason instanceof Error && reason.stack
|
|
69
|
+
? `
|
|
70
|
+
Stack trace:
|
|
71
|
+
${reason.stack}`
|
|
72
|
+
: ''}`;
|
|
73
|
+
appEvents.emit(AppEvent.LogError, errorMessage);
|
|
74
|
+
if (!unhandledRejectionOccurred) {
|
|
75
|
+
unhandledRejectionOccurred = true;
|
|
76
|
+
appEvents.emit(AppEvent.OpenDebugConsole);
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
}
|
|
58
80
|
export async function main() {
|
|
81
|
+
setupUnhandledRejectionHandler();
|
|
59
82
|
const workspaceRoot = process.cwd();
|
|
60
83
|
const settings = loadSettings(workspaceRoot);
|
|
61
84
|
await cleanupCheckpoints();
|
|
@@ -92,6 +115,8 @@ export async function main() {
|
|
|
92
115
|
}
|
|
93
116
|
setMaxSizedBoxDebugging(config.getDebugMode());
|
|
94
117
|
await config.initialize();
|
|
118
|
+
// Load custom themes from settings
|
|
119
|
+
themeManager.loadCustomThemes(settings.merged.customThemes);
|
|
95
120
|
if (settings.merged.theme) {
|
|
96
121
|
if (!themeManager.setActiveTheme(settings.merged.theme)) {
|
|
97
122
|
// If the theme is not found during initial load, log a warning and continue.
|
|
@@ -133,10 +158,13 @@ export async function main() {
|
|
|
133
158
|
}
|
|
134
159
|
}
|
|
135
160
|
if (settings.merged.selectedAuthType === AuthType.LOGIN_WITH_GOOGLE &&
|
|
136
|
-
config.
|
|
161
|
+
config.isBrowserLaunchSuppressed()) {
|
|
137
162
|
// Do oauth before app renders to make copying the link possible.
|
|
138
163
|
await getOauthClient(settings.merged.selectedAuthType, config);
|
|
139
164
|
}
|
|
165
|
+
if (config.getExperimentalAcp()) {
|
|
166
|
+
return runAcpPeer(config, settings);
|
|
167
|
+
}
|
|
140
168
|
let input = config.getQuestion();
|
|
141
169
|
const startupWarnings = [
|
|
142
170
|
...(await getStartupWarnings()),
|
|
@@ -185,20 +213,6 @@ function setWindowTitle(title, settings) {
|
|
|
185
213
|
});
|
|
186
214
|
}
|
|
187
215
|
}
|
|
188
|
-
// --- Global Unhandled Rejection Handler ---
|
|
189
|
-
process.on('unhandledRejection', (reason, _promise) => {
|
|
190
|
-
// Log other unexpected unhandled rejections as critical errors
|
|
191
|
-
console.error('=========================================');
|
|
192
|
-
console.error('CRITICAL: Unhandled Promise Rejection!');
|
|
193
|
-
console.error('=========================================');
|
|
194
|
-
console.error('Reason:', reason);
|
|
195
|
-
console.error('Stack trace may follow:');
|
|
196
|
-
if (!(reason instanceof Error)) {
|
|
197
|
-
console.error(reason);
|
|
198
|
-
}
|
|
199
|
-
// Exit for genuinely unhandled errors
|
|
200
|
-
process.exit(1);
|
|
201
|
-
});
|
|
202
216
|
async function loadNonInteractiveConfig(config, extensions, settings, argv) {
|
|
203
217
|
let finalConfig = config;
|
|
204
218
|
if (config.getApprovalMode() !== ApprovalMode.YOLO) {
|
|
@@ -219,38 +233,6 @@ async function loadNonInteractiveConfig(config, extensions, settings, argv) {
|
|
|
219
233
|
finalConfig = await loadCliConfig(nonInteractiveSettings, extensions, config.getSessionId(), argv);
|
|
220
234
|
await finalConfig.initialize();
|
|
221
235
|
}
|
|
222
|
-
return await
|
|
223
|
-
}
|
|
224
|
-
async function validateNonInterActiveAuth(selectedAuthType, nonInteractiveConfig) {
|
|
225
|
-
// making a special case for the cli. many headless environments might not have a settings.json set
|
|
226
|
-
// so if GEMINI_API_KEY or OPENAI_API_KEY is set, we'll use that. However since the oauth things are interactive anyway, we'll
|
|
227
|
-
// still expect that exists
|
|
228
|
-
if (!selectedAuthType &&
|
|
229
|
-
!process.env.GEMINI_API_KEY &&
|
|
230
|
-
!process.env.OPENAI_API_KEY) {
|
|
231
|
-
console.error(`Please set an Auth method in your ${USER_SETTINGS_PATH} OR specify GEMINI_API_KEY or OPENAI_API_KEY env variable before running`);
|
|
232
|
-
process.exit(1);
|
|
233
|
-
}
|
|
234
|
-
// Determine auth type based on available environment variables
|
|
235
|
-
if (!selectedAuthType) {
|
|
236
|
-
if (process.env.OPENAI_API_KEY) {
|
|
237
|
-
selectedAuthType = AuthType.USE_OPENAI;
|
|
238
|
-
}
|
|
239
|
-
else if (process.env.GEMINI_API_KEY) {
|
|
240
|
-
selectedAuthType = AuthType.USE_GEMINI;
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
// This should never happen due to the check above, but TypeScript needs assurance
|
|
244
|
-
if (!selectedAuthType) {
|
|
245
|
-
console.error('No valid authentication method found');
|
|
246
|
-
process.exit(1);
|
|
247
|
-
}
|
|
248
|
-
const err = validateAuthMethod(selectedAuthType);
|
|
249
|
-
if (err != null) {
|
|
250
|
-
console.error(err);
|
|
251
|
-
process.exit(1);
|
|
252
|
-
}
|
|
253
|
-
await nonInteractiveConfig.refreshAuth(selectedAuthType);
|
|
254
|
-
return nonInteractiveConfig;
|
|
236
|
+
return await validateNonInteractiveAuth(settings.merged.selectedAuthType, finalConfig);
|
|
255
237
|
}
|
|
256
238
|
//# sourceMappingURL=gemini.js.map
|
package/dist/src/gemini.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/gemini.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAW,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAEL,YAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/gemini.tsx"],"names":[],"mappings":"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"}
|
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
*/
|
|
6
6
|
// This file is auto-generated by the build script (scripts/build.js)
|
|
7
7
|
// Do not edit this file manually.
|
|
8
|
-
export const GIT_COMMIT_INFO = '
|
|
8
|
+
export const GIT_COMMIT_INFO = 'dbc0eb43 (local modifications)';
|
|
9
9
|
//# sourceMappingURL=git-commit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-commit.js","sourceRoot":"","sources":["../../../src/generated/git-commit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,qEAAqE;AACrE,kCAAkC;AAClC,MAAM,CAAC,MAAM,eAAe,GAAG
|
|
1
|
+
{"version":3,"file":"git-commit.js","sourceRoot":"","sources":["../../../src/generated/git-commit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,qEAAqE;AACrE,kCAAkC;AAClC,MAAM,CAAC,MAAM,eAAe,GAAG,gCAAgC,CAAC"}
|
|
@@ -24,62 +24,6 @@ function getResponseText(response) {
|
|
|
24
24
|
}
|
|
25
25
|
return null;
|
|
26
26
|
}
|
|
27
|
-
// Helper function to format tool call arguments for display
|
|
28
|
-
function formatToolArgs(args) {
|
|
29
|
-
if (!args || Object.keys(args).length === 0) {
|
|
30
|
-
return '(no arguments)';
|
|
31
|
-
}
|
|
32
|
-
const formattedArgs = Object.entries(args)
|
|
33
|
-
.map(([key, value]) => {
|
|
34
|
-
if (typeof value === 'string') {
|
|
35
|
-
return `${key}: "${value}"`;
|
|
36
|
-
}
|
|
37
|
-
else if (typeof value === 'object' && value !== null) {
|
|
38
|
-
return `${key}: ${JSON.stringify(value)}`;
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
return `${key}: ${value}`;
|
|
42
|
-
}
|
|
43
|
-
})
|
|
44
|
-
.join(', ');
|
|
45
|
-
return `(${formattedArgs})`;
|
|
46
|
-
}
|
|
47
|
-
// Helper function to display tool call information
|
|
48
|
-
function displayToolCallInfo(toolName, args, status, resultDisplay, errorMessage) {
|
|
49
|
-
const timestamp = new Date().toLocaleTimeString();
|
|
50
|
-
const argsStr = formatToolArgs(args);
|
|
51
|
-
switch (status) {
|
|
52
|
-
case 'start':
|
|
53
|
-
process.stdout.write(`\n[${timestamp}] 🔧 Executing tool: ${toolName} ${argsStr}\n`);
|
|
54
|
-
break;
|
|
55
|
-
case 'success':
|
|
56
|
-
if (resultDisplay) {
|
|
57
|
-
if (typeof resultDisplay === 'string' && resultDisplay.trim()) {
|
|
58
|
-
process.stdout.write(`[${timestamp}] ✅ Tool ${toolName} completed successfully\n`);
|
|
59
|
-
process.stdout.write(`📋 Result:\n${resultDisplay}\n`);
|
|
60
|
-
}
|
|
61
|
-
else if (typeof resultDisplay === 'object' &&
|
|
62
|
-
'fileDiff' in resultDisplay) {
|
|
63
|
-
process.stdout.write(`[${timestamp}] ✅ Tool ${toolName} completed successfully\n`);
|
|
64
|
-
process.stdout.write(`📋 File: ${resultDisplay.fileName}\n`);
|
|
65
|
-
process.stdout.write(`📋 Diff:\n${resultDisplay.fileDiff}\n`);
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
process.stdout.write(`[${timestamp}] ✅ Tool ${toolName} completed successfully (no output)\n`);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
process.stdout.write(`[${timestamp}] ✅ Tool ${toolName} completed successfully (no output)\n`);
|
|
73
|
-
}
|
|
74
|
-
break;
|
|
75
|
-
case 'error':
|
|
76
|
-
process.stdout.write(`[${timestamp}] ❌ Tool ${toolName} failed: ${errorMessage}\n`);
|
|
77
|
-
break;
|
|
78
|
-
default:
|
|
79
|
-
process.stdout.write(`[${timestamp}] ⚠️ Tool ${toolName} reported unknown status: ${status}\n`);
|
|
80
|
-
break;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
27
|
export async function runNonInteractive(config, input, prompt_id) {
|
|
84
28
|
await config.initialize();
|
|
85
29
|
// Handle EPIPE errors when the output is piped to a command that closes early.
|
|
@@ -137,25 +81,14 @@ export async function runNonInteractive(config, input, prompt_id) {
|
|
|
137
81
|
isClientInitiated: false,
|
|
138
82
|
prompt_id,
|
|
139
83
|
};
|
|
140
|
-
//Display tool call start information
|
|
141
|
-
displayToolCallInfo(fc.name, fc.args ?? {}, 'start');
|
|
142
84
|
const toolResponse = await executeToolCall(config, requestInfo, toolRegistry, abortController.signal);
|
|
143
85
|
if (toolResponse.error) {
|
|
144
|
-
// Display tool call error information
|
|
145
|
-
const errorMessage = typeof toolResponse.resultDisplay === 'string'
|
|
146
|
-
? toolResponse.resultDisplay
|
|
147
|
-
: toolResponse.error?.message;
|
|
148
|
-
displayToolCallInfo(fc.name, fc.args ?? {}, 'error', undefined, errorMessage);
|
|
149
86
|
const isToolNotFound = toolResponse.error.message.includes('not found in registry');
|
|
150
87
|
console.error(`Error executing tool ${fc.name}: ${toolResponse.resultDisplay || toolResponse.error.message}`);
|
|
151
88
|
if (!isToolNotFound) {
|
|
152
89
|
process.exit(1);
|
|
153
90
|
}
|
|
154
91
|
}
|
|
155
|
-
else {
|
|
156
|
-
// Display tool call success information
|
|
157
|
-
displayToolCallInfo(fc.name, fc.args ?? {}, 'success', toolResponse.resultDisplay);
|
|
158
|
-
}
|
|
159
92
|
if (toolResponse.responseParts) {
|
|
160
93
|
const parts = Array.isArray(toolResponse.responseParts)
|
|
161
94
|
? toolResponse.responseParts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nonInteractiveCli.js","sourceRoot":"","sources":["../../src/nonInteractiveCli.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAGL,eAAe,EAEf,iBAAiB,EACjB,yBAAyB,
|
|
1
|
+
{"version":3,"file":"nonInteractiveCli.js","sourceRoot":"","sources":["../../src/nonInteractiveCli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
// This is a replacement for the `is-in-ci` package that always returns false.
|
|
7
|
+
// We are doing this to avoid the issue where `ink` does not render the UI
|
|
8
|
+
// when it detects that it is running in a CI environment.
|
|
9
|
+
// This is safe because `ink` (and thus `is-in-ci`) is only used in the
|
|
10
|
+
// interactive code path of the CLI.
|
|
11
|
+
// See issue #1563 for more details.
|
|
12
|
+
const isInCi = false;
|
|
13
|
+
// eslint-disable-next-line import/no-default-export
|
|
14
|
+
export default isInCi;
|
|
15
|
+
//# sourceMappingURL=is-in-ci.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-in-ci.js","sourceRoot":"","sources":["../../../src/patches/is-in-ci.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,8EAA8E;AAC9E,0EAA0E;AAC1E,0DAA0D;AAC1D,uEAAuE;AACvE,oCAAoC;AACpC,oCAAoC;AAEpC,MAAM,MAAM,GAAG,KAAK,CAAC;AAErB,oDAAoD;AACpD,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { ICommandLoader } from './types.js';
|
|
7
|
+
import { SlashCommand } from '../ui/commands/types.js';
|
|
8
|
+
import { Config } from '@qwen-code/qwen-code-core';
|
|
9
|
+
/**
|
|
10
|
+
* Loads the core, hard-coded slash commands that are an integral part
|
|
11
|
+
* of the Gemini CLI application.
|
|
12
|
+
*/
|
|
13
|
+
export declare class BuiltinCommandLoader implements ICommandLoader {
|
|
14
|
+
private config;
|
|
15
|
+
constructor(config: Config | null);
|
|
16
|
+
/**
|
|
17
|
+
* Gathers all raw built-in command definitions, injects dependencies where
|
|
18
|
+
* needed (e.g., config) and filters out any that are not available.
|
|
19
|
+
*
|
|
20
|
+
* @param _signal An AbortSignal (unused for this synchronous loader).
|
|
21
|
+
* @returns A promise that resolves to an array of `SlashCommand` objects.
|
|
22
|
+
*/
|
|
23
|
+
loadCommands(_signal: AbortSignal): Promise<SlashCommand[]>;
|
|
24
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { aboutCommand } from '../ui/commands/aboutCommand.js';
|
|
7
|
+
import { authCommand } from '../ui/commands/authCommand.js';
|
|
8
|
+
import { bugCommand } from '../ui/commands/bugCommand.js';
|
|
9
|
+
import { chatCommand } from '../ui/commands/chatCommand.js';
|
|
10
|
+
import { clearCommand } from '../ui/commands/clearCommand.js';
|
|
11
|
+
import { compressCommand } from '../ui/commands/compressCommand.js';
|
|
12
|
+
import { copyCommand } from '../ui/commands/copyCommand.js';
|
|
13
|
+
import { corgiCommand } from '../ui/commands/corgiCommand.js';
|
|
14
|
+
import { docsCommand } from '../ui/commands/docsCommand.js';
|
|
15
|
+
import { editorCommand } from '../ui/commands/editorCommand.js';
|
|
16
|
+
import { extensionsCommand } from '../ui/commands/extensionsCommand.js';
|
|
17
|
+
import { helpCommand } from '../ui/commands/helpCommand.js';
|
|
18
|
+
import { ideCommand } from '../ui/commands/ideCommand.js';
|
|
19
|
+
import { mcpCommand } from '../ui/commands/mcpCommand.js';
|
|
20
|
+
import { memoryCommand } from '../ui/commands/memoryCommand.js';
|
|
21
|
+
import { privacyCommand } from '../ui/commands/privacyCommand.js';
|
|
22
|
+
import { quitCommand } from '../ui/commands/quitCommand.js';
|
|
23
|
+
import { restoreCommand } from '../ui/commands/restoreCommand.js';
|
|
24
|
+
import { statsCommand } from '../ui/commands/statsCommand.js';
|
|
25
|
+
import { themeCommand } from '../ui/commands/themeCommand.js';
|
|
26
|
+
import { toolsCommand } from '../ui/commands/toolsCommand.js';
|
|
27
|
+
import { vimCommand } from '../ui/commands/vimCommand.js';
|
|
28
|
+
/**
|
|
29
|
+
* Loads the core, hard-coded slash commands that are an integral part
|
|
30
|
+
* of the Gemini CLI application.
|
|
31
|
+
*/
|
|
32
|
+
export class BuiltinCommandLoader {
|
|
33
|
+
config;
|
|
34
|
+
constructor(config) {
|
|
35
|
+
this.config = config;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Gathers all raw built-in command definitions, injects dependencies where
|
|
39
|
+
* needed (e.g., config) and filters out any that are not available.
|
|
40
|
+
*
|
|
41
|
+
* @param _signal An AbortSignal (unused for this synchronous loader).
|
|
42
|
+
* @returns A promise that resolves to an array of `SlashCommand` objects.
|
|
43
|
+
*/
|
|
44
|
+
async loadCommands(_signal) {
|
|
45
|
+
const allDefinitions = [
|
|
46
|
+
aboutCommand,
|
|
47
|
+
authCommand,
|
|
48
|
+
bugCommand,
|
|
49
|
+
chatCommand,
|
|
50
|
+
clearCommand,
|
|
51
|
+
compressCommand,
|
|
52
|
+
copyCommand,
|
|
53
|
+
corgiCommand,
|
|
54
|
+
docsCommand,
|
|
55
|
+
editorCommand,
|
|
56
|
+
extensionsCommand,
|
|
57
|
+
helpCommand,
|
|
58
|
+
ideCommand(this.config),
|
|
59
|
+
memoryCommand,
|
|
60
|
+
privacyCommand,
|
|
61
|
+
mcpCommand,
|
|
62
|
+
quitCommand,
|
|
63
|
+
restoreCommand(this.config),
|
|
64
|
+
statsCommand,
|
|
65
|
+
themeCommand,
|
|
66
|
+
toolsCommand,
|
|
67
|
+
vimCommand,
|
|
68
|
+
];
|
|
69
|
+
return allDefinitions.filter((cmd) => cmd !== null);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=BuiltinCommandLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuiltinCommandLoader.js","sourceRoot":"","sources":["../../../src/services/BuiltinCommandLoader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D;;;GAGG;AACH,MAAM,OAAO,oBAAoB;IACX;IAApB,YAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAE7C;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,CAAC,OAAoB;QACrC,MAAM,cAAc,GAA+B;YACjD,YAAY;YACZ,WAAW;YACX,UAAU;YACV,WAAW;YACX,YAAY;YACZ,eAAe;YACf,WAAW;YACX,YAAY;YACZ,WAAW;YACX,aAAa;YACb,iBAAiB;YACjB,WAAW;YACX,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;YACvB,aAAa;YACb,cAAc;YACd,UAAU;YACV,WAAW;YACX,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;YAC3B,YAAY;YACZ,YAAY;YACZ,YAAY;YACZ,UAAU;SACX,CAAC;QAEF,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAuB,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;IAC3E,CAAC;CACF"}
|
|
@@ -4,10 +4,48 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { SlashCommand } from '../ui/commands/types.js';
|
|
7
|
+
import { ICommandLoader } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Orchestrates the discovery and loading of all slash commands for the CLI.
|
|
10
|
+
*
|
|
11
|
+
* This service operates on a provider-based loader pattern. It is initialized
|
|
12
|
+
* with an array of `ICommandLoader` instances, each responsible for fetching
|
|
13
|
+
* commands from a specific source (e.g., built-in code, local files).
|
|
14
|
+
*
|
|
15
|
+
* The CommandService is responsible for invoking these loaders, aggregating their
|
|
16
|
+
* results, and resolving any name conflicts. This architecture allows the command
|
|
17
|
+
* system to be extended with new sources without modifying the service itself.
|
|
18
|
+
*/
|
|
7
19
|
export declare class CommandService {
|
|
8
|
-
private
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
20
|
+
private readonly commands;
|
|
21
|
+
/**
|
|
22
|
+
* Private constructor to enforce the use of the async factory.
|
|
23
|
+
* @param commands A readonly array of the fully loaded and de-duplicated commands.
|
|
24
|
+
*/
|
|
25
|
+
private constructor();
|
|
26
|
+
/**
|
|
27
|
+
* Asynchronously creates and initializes a new CommandService instance.
|
|
28
|
+
*
|
|
29
|
+
* This factory method orchestrates the entire command loading process. It
|
|
30
|
+
* runs all provided loaders in parallel, aggregates their results, handles
|
|
31
|
+
* name conflicts by letting the last-loaded command win, and then returns a
|
|
32
|
+
* fully constructed `CommandService` instance.
|
|
33
|
+
*
|
|
34
|
+
* @param loaders An array of objects that conform to the `ICommandLoader`
|
|
35
|
+
* interface. The order of loaders is significant: if multiple loaders
|
|
36
|
+
* provide a command with the same name, the command from the loader that
|
|
37
|
+
* appears later in the array will take precedence.
|
|
38
|
+
* @param signal An AbortSignal to cancel the loading process.
|
|
39
|
+
* @returns A promise that resolves to a new, fully initialized `CommandService` instance.
|
|
40
|
+
*/
|
|
41
|
+
static create(loaders: ICommandLoader[], signal: AbortSignal): Promise<CommandService>;
|
|
42
|
+
/**
|
|
43
|
+
* Retrieves the currently loaded and de-duplicated list of slash commands.
|
|
44
|
+
*
|
|
45
|
+
* This method is a safe accessor for the service's state. It returns a
|
|
46
|
+
* readonly array, preventing consumers from modifying the service's internal state.
|
|
47
|
+
*
|
|
48
|
+
* @returns A readonly, unified array of available `SlashCommand` objects.
|
|
49
|
+
*/
|
|
50
|
+
getCommands(): readonly SlashCommand[];
|
|
13
51
|
}
|
|
@@ -3,34 +3,70 @@
|
|
|
3
3
|
* Copyright 2025 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
helpCommand,
|
|
18
|
-
memoryCommand,
|
|
19
|
-
privacyCommand,
|
|
20
|
-
themeCommand,
|
|
21
|
-
];
|
|
6
|
+
/**
|
|
7
|
+
* Orchestrates the discovery and loading of all slash commands for the CLI.
|
|
8
|
+
*
|
|
9
|
+
* This service operates on a provider-based loader pattern. It is initialized
|
|
10
|
+
* with an array of `ICommandLoader` instances, each responsible for fetching
|
|
11
|
+
* commands from a specific source (e.g., built-in code, local files).
|
|
12
|
+
*
|
|
13
|
+
* The CommandService is responsible for invoking these loaders, aggregating their
|
|
14
|
+
* results, and resolving any name conflicts. This architecture allows the command
|
|
15
|
+
* system to be extended with new sources without modifying the service itself.
|
|
16
|
+
*/
|
|
22
17
|
export class CommandService {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
18
|
+
commands;
|
|
19
|
+
/**
|
|
20
|
+
* Private constructor to enforce the use of the async factory.
|
|
21
|
+
* @param commands A readonly array of the fully loaded and de-duplicated commands.
|
|
22
|
+
*/
|
|
23
|
+
constructor(commands) {
|
|
24
|
+
this.commands = commands;
|
|
28
25
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
26
|
+
/**
|
|
27
|
+
* Asynchronously creates and initializes a new CommandService instance.
|
|
28
|
+
*
|
|
29
|
+
* This factory method orchestrates the entire command loading process. It
|
|
30
|
+
* runs all provided loaders in parallel, aggregates their results, handles
|
|
31
|
+
* name conflicts by letting the last-loaded command win, and then returns a
|
|
32
|
+
* fully constructed `CommandService` instance.
|
|
33
|
+
*
|
|
34
|
+
* @param loaders An array of objects that conform to the `ICommandLoader`
|
|
35
|
+
* interface. The order of loaders is significant: if multiple loaders
|
|
36
|
+
* provide a command with the same name, the command from the loader that
|
|
37
|
+
* appears later in the array will take precedence.
|
|
38
|
+
* @param signal An AbortSignal to cancel the loading process.
|
|
39
|
+
* @returns A promise that resolves to a new, fully initialized `CommandService` instance.
|
|
40
|
+
*/
|
|
41
|
+
static async create(loaders, signal) {
|
|
42
|
+
const results = await Promise.allSettled(loaders.map((loader) => loader.loadCommands(signal)));
|
|
43
|
+
const allCommands = [];
|
|
44
|
+
for (const result of results) {
|
|
45
|
+
if (result.status === 'fulfilled') {
|
|
46
|
+
allCommands.push(...result.value);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
console.debug('A command loader failed:', result.reason);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
// De-duplicate commands using a Map. The last one found with a given name wins.
|
|
53
|
+
// This creates a natural override system based on the order of the loaders
|
|
54
|
+
// passed to the constructor.
|
|
55
|
+
const commandMap = new Map();
|
|
56
|
+
for (const cmd of allCommands) {
|
|
57
|
+
commandMap.set(cmd.name, cmd);
|
|
58
|
+
}
|
|
59
|
+
const finalCommands = Object.freeze(Array.from(commandMap.values()));
|
|
60
|
+
return new CommandService(finalCommands);
|
|
33
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Retrieves the currently loaded and de-duplicated list of slash commands.
|
|
64
|
+
*
|
|
65
|
+
* This method is a safe accessor for the service's state. It returns a
|
|
66
|
+
* readonly array, preventing consumers from modifying the service's internal state.
|
|
67
|
+
*
|
|
68
|
+
* @returns A readonly, unified array of available `SlashCommand` objects.
|
|
69
|
+
*/
|
|
34
70
|
getCommands() {
|
|
35
71
|
return this.commands;
|
|
36
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandService.js","sourceRoot":"","sources":["../../../src/services/CommandService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"CommandService.js","sourceRoot":"","sources":["../../../src/services/CommandService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;;;;;;;;;GAUG;AACH,MAAM,OAAO,cAAc;IAKY;IAJrC;;;OAGG;IACH,YAAqC,QAAiC;QAAjC,aAAQ,GAAR,QAAQ,CAAyB;IAAG,CAAC;IAE1E;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,OAAyB,EACzB,MAAmB;QAEnB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CACrD,CAAC;QAEF,MAAM,WAAW,GAAmB,EAAE,CAAC;QACvC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBAClC,WAAW,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QAED,gFAAgF;QAChF,2EAA2E;QAC3E,6BAA6B;QAC7B,MAAM,UAAU,GAAG,IAAI,GAAG,EAAwB,CAAC;QACnD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrE,OAAO,IAAI,cAAc,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;;OAOG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF"}
|