@machina.ai/cell-cli 1.0.13-rc9 → 1.0.17-rc1
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 +7 -6
- package/dist/src/config/config.d.ts +5 -2
- package/dist/src/config/config.js +57 -39
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/extension.d.ts +1 -0
- package/dist/src/config/extension.js +4 -0
- package/dist/src/config/extension.js.map +1 -1
- package/dist/src/config/settings.d.ts +17 -1
- package/dist/src/config/settings.js +88 -23
- package/dist/src/config/settings.js.map +1 -1
- package/dist/src/gemini.d.ts +3 -0
- package/dist/src/gemini.js +53 -32
- 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 +2 -2
- package/dist/src/generated/git-commit.js.map +1 -1
- package/dist/src/nonInteractiveCli.js +15 -40
- 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.js +9 -0
- package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
- package/dist/src/services/CommandService.d.ts +8 -4
- package/dist/src/services/CommandService.js +24 -8
- package/dist/src/services/CommandService.js.map +1 -1
- package/dist/src/services/FileCommandLoader.d.ts +15 -3
- package/dist/src/services/FileCommandLoader.js +113 -38
- package/dist/src/services/FileCommandLoader.js.map +1 -1
- 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/ui/App.js +105 -52
- 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/chatCommand.js +45 -2
- package/dist/src/ui/commands/chatCommand.js.map +1 -1
- package/dist/src/ui/commands/directoryCommand.d.ts +8 -0
- package/dist/src/ui/commands/directoryCommand.js +136 -0
- package/dist/src/ui/commands/directoryCommand.js.map +1 -0
- package/dist/src/ui/commands/helpCommand.js +7 -6
- package/dist/src/ui/commands/helpCommand.js.map +1 -1
- package/dist/src/ui/commands/ideCommand.js +113 -111
- package/dist/src/ui/commands/ideCommand.js.map +1 -1
- package/dist/src/ui/commands/initCommand.d.ts +7 -0
- package/dist/src/ui/commands/initCommand.js +76 -0
- package/dist/src/ui/commands/initCommand.js.map +1 -0
- package/dist/src/ui/commands/mcpCommand.js +240 -26
- package/dist/src/ui/commands/mcpCommand.js.map +1 -1
- package/dist/src/ui/commands/memoryCommand.js +9 -4
- package/dist/src/ui/commands/memoryCommand.js.map +1 -1
- package/dist/src/ui/commands/setupGithubCommand.d.ts +7 -0
- package/dist/src/ui/commands/setupGithubCommand.js +48 -0
- package/dist/src/ui/commands/setupGithubCommand.js.map +1 -0
- package/dist/src/ui/commands/types.d.ts +30 -3
- package/dist/src/ui/commands/types.js +1 -0
- 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/AsciiArt.d.ts +2 -2
- package/dist/src/ui/components/AsciiArt.js +2 -2
- package/dist/src/ui/components/ContextSummaryDisplay.d.ts +2 -2
- package/dist/src/ui/components/ContextSummaryDisplay.js +12 -12
- package/dist/src/ui/components/ContextSummaryDisplay.js.map +1 -1
- package/dist/src/ui/components/DebugProfiler.d.ts +6 -0
- package/dist/src/ui/components/DebugProfiler.js +26 -0
- package/dist/src/ui/components/DebugProfiler.js.map +1 -0
- package/dist/src/ui/components/Footer.d.ts +1 -0
- package/dist/src/ui/components/Footer.js +4 -3
- 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.js +2 -2
- package/dist/src/ui/components/Help.js.map +1 -1
- package/dist/src/ui/components/HistoryItemDisplay.d.ts +2 -0
- package/dist/src/ui/components/HistoryItemDisplay.js +2 -1
- package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
- package/dist/src/ui/components/IDEContextDetailDisplay.d.ts +12 -0
- package/dist/src/ui/components/IDEContextDetailDisplay.js +12 -0
- package/dist/src/ui/components/IDEContextDetailDisplay.js.map +1 -0
- package/dist/src/ui/components/InputPrompt.d.ts +2 -0
- package/dist/src/ui/components/InputPrompt.js +92 -102
- package/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/dist/src/ui/components/PrepareLabel.d.ts +15 -0
- package/dist/src/ui/components/PrepareLabel.js +16 -0
- package/dist/src/ui/components/PrepareLabel.js.map +1 -0
- 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/SuggestionsDisplay.d.ts +1 -0
- package/dist/src/ui/components/SuggestionsDisplay.js +3 -3
- package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
- package/dist/src/ui/components/ThemeDialog.js +10 -5
- 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.js +12 -11
- package/dist/src/ui/components/messages/DiffRenderer.js.map +1 -1
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js +19 -7
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
- package/dist/src/ui/components/messages/UserMessage.js +4 -1
- package/dist/src/ui/components/messages/UserMessage.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 +420 -79
- 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/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/editors/editorSettingsManager.js +6 -13
- package/dist/src/ui/editors/editorSettingsManager.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.js +67 -50
- package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/shellCommandProcessor.d.ts +1 -0
- package/dist/src/ui/hooks/shellCommandProcessor.js +139 -196
- package/dist/src/ui/hooks/shellCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.d.ts +7 -3
- package/dist/src/ui/hooks/slashCommandProcessor.js +203 -120
- package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/useCommandCompletion.d.ts +24 -0
- package/dist/src/ui/hooks/useCommandCompletion.js +453 -0
- package/dist/src/ui/hooks/useCommandCompletion.js.map +1 -0
- package/dist/src/ui/hooks/useCompletion.d.ts +5 -3
- package/dist/src/ui/hooks/useCompletion.js +7 -312
- 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/useGeminiStream.d.ts +1 -1
- package/dist/src/ui/hooks/useGeminiStream.js +6 -5
- 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/usePhraseCycler.js +1 -0
- package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
- package/dist/src/ui/hooks/useReactToolScheduler.js +0 -1
- package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
- package/dist/src/ui/hooks/useReverseSearchCompletion.d.ts +19 -0
- package/dist/src/ui/hooks/useReverseSearchCompletion.js +54 -0
- package/dist/src/ui/hooks/useReverseSearchCompletion.js.map +1 -0
- package/dist/src/ui/hooks/useShellHistory.d.ts +4 -2
- package/dist/src/ui/hooks/useShellHistory.js +30 -7
- package/dist/src/ui/hooks/useShellHistory.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 +2 -0
- 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/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 +2 -0
- package/dist/src/ui/themes/googlecode.js.map +1 -1
- package/dist/src/ui/themes/no-color.js +2 -0
- package/dist/src/ui/themes/no-color.js.map +1 -1
- package/dist/src/ui/themes/shades-of-purple.js +2 -0
- package/dist/src/ui/themes/shades-of-purple.js.map +1 -1
- package/dist/src/ui/themes/theme-manager.js +10 -1
- package/dist/src/ui/themes/theme-manager.js.map +1 -1
- package/dist/src/ui/themes/theme.d.ts +3 -0
- package/dist/src/ui/themes/theme.js +28 -3
- package/dist/src/ui/themes/theme.js.map +1 -1
- package/dist/src/ui/themes/xcode.js +2 -0
- package/dist/src/ui/themes/xcode.js.map +1 -1
- package/dist/src/ui/types.d.ts +10 -1
- package/dist/src/ui/types.js +1 -0
- package/dist/src/ui/types.js.map +1 -1
- package/dist/src/ui/utils/CodeColorizer.d.ts +1 -0
- package/dist/src/ui/utils/CodeColorizer.js +17 -5
- package/dist/src/ui/utils/CodeColorizer.js.map +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.d.ts +7 -1
- package/dist/src/ui/utils/updateCheck.js +46 -8
- 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/gitUtils.d.ts +10 -0
- package/dist/src/utils/gitUtils.js +24 -0
- package/dist/src/utils/gitUtils.js.map +1 -0
- package/dist/src/utils/handleAutoUpdate.d.ts +11 -0
- package/dist/src/utils/handleAutoUpdate.js +101 -0
- package/dist/src/utils/handleAutoUpdate.js.map +1 -0
- package/dist/src/utils/installationInfo.d.ts +23 -0
- package/dist/src/utils/installationInfo.js +154 -0
- package/dist/src/utils/installationInfo.js.map +1 -0
- package/dist/src/utils/resolvePath.d.ts +6 -0
- package/dist/src/utils/resolvePath.js +21 -0
- package/dist/src/utils/resolvePath.js.map +1 -0
- package/dist/src/utils/sandbox-macos-permissive-closed.sb +6 -0
- package/dist/src/utils/sandbox-macos-permissive-open.sb +6 -0
- package/dist/src/utils/sandbox-macos-permissive-proxied.sb +6 -0
- package/dist/src/utils/sandbox-macos-restrictive-closed.sb +6 -0
- package/dist/src/utils/sandbox-macos-restrictive-open.sb +6 -0
- package/dist/src/utils/sandbox-macos-restrictive-proxied.sb +6 -0
- package/dist/src/utils/sandbox.d.ts +2 -2
- package/dist/src/utils/sandbox.js +39 -11
- package/dist/src/utils/sandbox.js.map +1 -1
- package/dist/src/utils/spawnWrapper.d.ts +7 -0
- package/dist/src/utils/spawnWrapper.js +8 -0
- package/dist/src/utils/spawnWrapper.js.map +1 -0
- package/dist/src/utils/updateEventEmitter.d.ts +11 -0
- package/dist/src/utils/updateEventEmitter.js +12 -0
- package/dist/src/utils/updateEventEmitter.js.map +1 -0
- package/dist/src/validateNonInterActiveAuth.d.ts +7 -0
- package/dist/src/validateNonInterActiveAuth.js +37 -0
- package/dist/src/validateNonInterActiveAuth.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -6
package/dist/src/gemini.d.ts
CHANGED
|
@@ -3,4 +3,7 @@
|
|
|
3
3
|
* Copyright 2025 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { DnsResolutionOrder } from './config/settings.js';
|
|
7
|
+
export declare function validateDnsResolutionOrder(order: string | undefined): DnsResolutionOrder;
|
|
8
|
+
export declare function setupUnhandledRejectionHandler(): void;
|
|
6
9
|
export declare function main(): Promise<void>;
|
package/dist/src/gemini.js
CHANGED
|
@@ -12,9 +12,10 @@ import { readStdin } from './utils/readStdin.js';
|
|
|
12
12
|
import { basename } from 'node:path';
|
|
13
13
|
import v8 from 'node:v8';
|
|
14
14
|
import os from 'node:os';
|
|
15
|
+
import dns from 'node:dns';
|
|
15
16
|
import { spawn } from 'node:child_process';
|
|
16
17
|
import { start_sandbox } from './utils/sandbox.js';
|
|
17
|
-
import { loadSettings,
|
|
18
|
+
import { loadSettings, SettingScope, } from './config/settings.js';
|
|
18
19
|
import { themeManager } from './ui/themes/theme-manager.js';
|
|
19
20
|
import { getStartupWarnings } from './utils/startupWarnings.js';
|
|
20
21
|
import { getUserStartupWarnings } from './utils/userStartupWarnings.js';
|
|
@@ -26,6 +27,22 @@ import { ApprovalMode, EditTool, ShellTool, WriteFileTool, sessionId, logUserPro
|
|
|
26
27
|
import { validateAuthMethod } from './config/auth.js';
|
|
27
28
|
import { setMaxSizedBoxDebugging } from './ui/components/shared/MaxSizedBox.js';
|
|
28
29
|
import { startProxy } from '@machina.ai/api-proxy';
|
|
30
|
+
import { validateNonInteractiveAuth } from './validateNonInterActiveAuth.js';
|
|
31
|
+
import { checkForUpdates } from './ui/utils/updateCheck.js';
|
|
32
|
+
import { handleAutoUpdate } from './utils/handleAutoUpdate.js';
|
|
33
|
+
import { appEvents, AppEvent } from './utils/events.js';
|
|
34
|
+
export function validateDnsResolutionOrder(order) {
|
|
35
|
+
const defaultValue = 'ipv4first';
|
|
36
|
+
if (order === undefined) {
|
|
37
|
+
return defaultValue;
|
|
38
|
+
}
|
|
39
|
+
if (order === 'ipv4first' || order === 'verbatim') {
|
|
40
|
+
return order;
|
|
41
|
+
}
|
|
42
|
+
// We don't want to throw here, just warn and use the default.
|
|
43
|
+
console.warn(`Invalid value for dnsResolutionOrder in settings: "${order}". Using default "${defaultValue}".`);
|
|
44
|
+
return defaultValue;
|
|
45
|
+
}
|
|
29
46
|
function getNodeMemoryArgs(config) {
|
|
30
47
|
const totalMemoryMB = os.totalmem() / (1024 * 1024);
|
|
31
48
|
const heapStats = v8.getHeapStatistics();
|
|
@@ -57,7 +74,27 @@ async function relaunchWithAdditionalArgs(additionalArgs) {
|
|
|
57
74
|
process.exit(0);
|
|
58
75
|
}
|
|
59
76
|
import { runAcpPeer } from './acp/acpPeer.js';
|
|
77
|
+
export function setupUnhandledRejectionHandler() {
|
|
78
|
+
let unhandledRejectionOccurred = false;
|
|
79
|
+
process.on('unhandledRejection', (reason, _promise) => {
|
|
80
|
+
const errorMessage = `=========================================
|
|
81
|
+
This is an unexpected error. Please file a bug report using the /bug tool.
|
|
82
|
+
CRITICAL: Unhandled Promise Rejection!
|
|
83
|
+
=========================================
|
|
84
|
+
Reason: ${reason}${reason instanceof Error && reason.stack
|
|
85
|
+
? `
|
|
86
|
+
Stack trace:
|
|
87
|
+
${reason.stack}`
|
|
88
|
+
: ''}`;
|
|
89
|
+
appEvents.emit(AppEvent.LogError, errorMessage);
|
|
90
|
+
if (!unhandledRejectionOccurred) {
|
|
91
|
+
unhandledRejectionOccurred = true;
|
|
92
|
+
appEvents.emit(AppEvent.OpenDebugConsole);
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
}
|
|
60
96
|
export async function main() {
|
|
97
|
+
setupUnhandledRejectionHandler();
|
|
61
98
|
const workspaceRoot = process.cwd();
|
|
62
99
|
const settings = loadSettings(workspaceRoot);
|
|
63
100
|
await cleanupCheckpoints();
|
|
@@ -75,6 +112,7 @@ export async function main() {
|
|
|
75
112
|
const argv = await parseArguments();
|
|
76
113
|
const extensions = loadExtensions(workspaceRoot);
|
|
77
114
|
const config = await loadCliConfig(settings.merged, extensions, sessionId, argv);
|
|
115
|
+
dns.setDefaultResultOrder(validateDnsResolutionOrder(settings.merged.dnsResolutionOrder));
|
|
78
116
|
if (argv.promptInteractive && !process.stdin.isTTY) {
|
|
79
117
|
console.error('Error: The --prompt-interactive flag is not supported when piping input from stdin.');
|
|
80
118
|
process.exit(1);
|
|
@@ -114,7 +152,8 @@ export async function main() {
|
|
|
114
152
|
: [];
|
|
115
153
|
const sandboxConfig = config.getSandbox();
|
|
116
154
|
if (sandboxConfig) {
|
|
117
|
-
if (settings.merged.selectedAuthType
|
|
155
|
+
if (settings.merged.selectedAuthType &&
|
|
156
|
+
!settings.merged.useExternalAuth) {
|
|
118
157
|
// Validate authentication here because the sandbox will interfere with the Oauth2 web redirect.
|
|
119
158
|
try {
|
|
120
159
|
const err = validateAuthMethod(settings.merged.selectedAuthType);
|
|
@@ -128,7 +167,7 @@ export async function main() {
|
|
|
128
167
|
process.exit(1);
|
|
129
168
|
}
|
|
130
169
|
}
|
|
131
|
-
await start_sandbox(sandboxConfig, memoryArgs);
|
|
170
|
+
await start_sandbox(sandboxConfig, memoryArgs, config);
|
|
132
171
|
process.exit(0);
|
|
133
172
|
}
|
|
134
173
|
else {
|
|
@@ -159,6 +198,16 @@ export async function main() {
|
|
|
159
198
|
const version = await getCliVersion();
|
|
160
199
|
setWindowTitle(basename(workspaceRoot), settings);
|
|
161
200
|
const instance = render(_jsx(React.StrictMode, { children: _jsx(AppWrapper, { config: config, settings: settings, startupWarnings: startupWarnings, version: version }) }), { exitOnCtrlC: false });
|
|
201
|
+
checkForUpdates()
|
|
202
|
+
.then((info) => {
|
|
203
|
+
handleAutoUpdate(info, settings, config.getProjectRoot());
|
|
204
|
+
})
|
|
205
|
+
.catch((err) => {
|
|
206
|
+
// Silently ignore update check errors.
|
|
207
|
+
if (config.getDebugMode()) {
|
|
208
|
+
console.error('Update check failed:', err);
|
|
209
|
+
}
|
|
210
|
+
});
|
|
162
211
|
registerCleanup(() => instance.unmount());
|
|
163
212
|
return;
|
|
164
213
|
}
|
|
@@ -196,20 +245,6 @@ function setWindowTitle(title, settings) {
|
|
|
196
245
|
});
|
|
197
246
|
}
|
|
198
247
|
}
|
|
199
|
-
// --- Global Unhandled Rejection Handler ---
|
|
200
|
-
process.on('unhandledRejection', (reason, _promise) => {
|
|
201
|
-
// Log other unexpected unhandled rejections as critical errors
|
|
202
|
-
console.error('=========================================');
|
|
203
|
-
console.error('CRITICAL: Unhandled Promise Rejection!');
|
|
204
|
-
console.error('=========================================');
|
|
205
|
-
console.error('Reason:', reason);
|
|
206
|
-
console.error('Stack trace may follow:');
|
|
207
|
-
if (!(reason instanceof Error)) {
|
|
208
|
-
console.error(reason);
|
|
209
|
-
}
|
|
210
|
-
// Exit for genuinely unhandled errors
|
|
211
|
-
process.exit(1);
|
|
212
|
-
});
|
|
213
248
|
async function loadNonInteractiveConfig(config, extensions, settings, argv) {
|
|
214
249
|
let finalConfig = config;
|
|
215
250
|
if (config.getApprovalMode() !== ApprovalMode.YOLO) {
|
|
@@ -230,20 +265,6 @@ async function loadNonInteractiveConfig(config, extensions, settings, argv) {
|
|
|
230
265
|
finalConfig = await loadCliConfig(nonInteractiveSettings, extensions, config.getSessionId(), argv);
|
|
231
266
|
await finalConfig.initialize();
|
|
232
267
|
}
|
|
233
|
-
return await
|
|
234
|
-
}
|
|
235
|
-
async function validateNonInterActiveAuth(selectedAuthType, nonInteractiveConfig) {
|
|
236
|
-
if (!selectedAuthType) {
|
|
237
|
-
console.error(`Please set an Auth method in your ${USER_SETTINGS_PATH} before running`);
|
|
238
|
-
process.exit(1);
|
|
239
|
-
}
|
|
240
|
-
selectedAuthType = selectedAuthType || AuthType.KEYCLOAK;
|
|
241
|
-
const err = validateAuthMethod(selectedAuthType);
|
|
242
|
-
if (err != null) {
|
|
243
|
-
console.error(err);
|
|
244
|
-
process.exit(1);
|
|
245
|
-
}
|
|
246
|
-
await nonInteractiveConfig.refreshAuth(selectedAuthType);
|
|
247
|
-
return nonInteractiveConfig;
|
|
268
|
+
return await validateNonInteractiveAuth(settings.merged.selectedAuthType, settings.merged.useExternalAuth, finalConfig);
|
|
248
269
|
}
|
|
249
270
|
//# 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,
|
|
1
|
+
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/gemini.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright 2025 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
// This file is auto-generated by the build script (scripts/
|
|
6
|
+
// This file is auto-generated by the build script (scripts/generate-git-commit-info.js)
|
|
7
7
|
// Do not edit this file manually.
|
|
8
|
-
export const GIT_COMMIT_INFO = '
|
|
8
|
+
export const GIT_COMMIT_INFO = '10d7e6b3';
|
|
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,
|
|
1
|
+
{"version":3,"file":"git-commit.js","sourceRoot":"","sources":["../../../src/generated/git-commit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,wFAAwF;AACxF,kCAAkC;AAClC,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CAAC"}
|
|
@@ -3,27 +3,8 @@
|
|
|
3
3
|
* Copyright 2025 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { executeToolCall, shutdownTelemetry, isTelemetrySdkInitialized, } from '@machina.ai/cell-cli-core';
|
|
6
|
+
import { executeToolCall, shutdownTelemetry, isTelemetrySdkInitialized, GeminiEventType, ToolErrorType, } from '@machina.ai/cell-cli-core';
|
|
7
7
|
import { parseAndFormatApiError } from './ui/utils/errorParsing.js';
|
|
8
|
-
function getResponseText(response) {
|
|
9
|
-
if (response.candidates && response.candidates.length > 0) {
|
|
10
|
-
const candidate = response.candidates[0];
|
|
11
|
-
if (candidate.content &&
|
|
12
|
-
candidate.content.parts &&
|
|
13
|
-
candidate.content.parts.length > 0) {
|
|
14
|
-
// We are running in headless mode so we don't need to return thoughts to STDOUT.
|
|
15
|
-
const thoughtPart = candidate.content.parts[0];
|
|
16
|
-
if (thoughtPart?.thought) {
|
|
17
|
-
return null;
|
|
18
|
-
}
|
|
19
|
-
return candidate.content.parts
|
|
20
|
-
.filter((part) => part.text)
|
|
21
|
-
.map((part) => part.text)
|
|
22
|
-
.join('');
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
return null;
|
|
26
|
-
}
|
|
27
8
|
export async function runNonInteractive(config, input, prompt_id) {
|
|
28
9
|
await config.initialize();
|
|
29
10
|
// Handle EPIPE errors when the output is piped to a command that closes early.
|
|
@@ -35,39 +16,35 @@ export async function runNonInteractive(config, input, prompt_id) {
|
|
|
35
16
|
});
|
|
36
17
|
const geminiClient = config.getGeminiClient();
|
|
37
18
|
const toolRegistry = await config.getToolRegistry();
|
|
38
|
-
const chat = await geminiClient.getChat();
|
|
39
19
|
const abortController = new AbortController();
|
|
40
20
|
let currentMessages = [{ role: 'user', parts: [{ text: input }] }];
|
|
41
21
|
let turnCount = 0;
|
|
42
22
|
try {
|
|
43
23
|
while (true) {
|
|
44
24
|
turnCount++;
|
|
45
|
-
if (config.getMaxSessionTurns()
|
|
25
|
+
if (config.getMaxSessionTurns() >= 0 &&
|
|
46
26
|
turnCount > config.getMaxSessionTurns()) {
|
|
47
27
|
console.error('\n Reached max session turns for this session. Increase the number of turns by specifying maxSessionTurns in settings.json.');
|
|
48
28
|
return;
|
|
49
29
|
}
|
|
50
30
|
const functionCalls = [];
|
|
51
|
-
const responseStream =
|
|
52
|
-
|
|
53
|
-
config: {
|
|
54
|
-
abortSignal: abortController.signal,
|
|
55
|
-
tools: [
|
|
56
|
-
{ functionDeclarations: toolRegistry.getFunctionDeclarations() },
|
|
57
|
-
],
|
|
58
|
-
},
|
|
59
|
-
}, prompt_id);
|
|
60
|
-
for await (const resp of responseStream) {
|
|
31
|
+
const responseStream = geminiClient.sendMessageStream(currentMessages[0]?.parts || [], abortController.signal, prompt_id);
|
|
32
|
+
for await (const event of responseStream) {
|
|
61
33
|
if (abortController.signal.aborted) {
|
|
62
34
|
console.error('Operation cancelled.');
|
|
63
35
|
return;
|
|
64
36
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
process.stdout.write(textPart);
|
|
37
|
+
if (event.type === GeminiEventType.Content) {
|
|
38
|
+
process.stdout.write(event.value);
|
|
68
39
|
}
|
|
69
|
-
if (
|
|
70
|
-
|
|
40
|
+
else if (event.type === GeminiEventType.ToolCallRequest) {
|
|
41
|
+
const toolCallRequest = event.value;
|
|
42
|
+
const fc = {
|
|
43
|
+
name: toolCallRequest.name,
|
|
44
|
+
args: toolCallRequest.args,
|
|
45
|
+
id: toolCallRequest.callId,
|
|
46
|
+
};
|
|
47
|
+
functionCalls.push(fc);
|
|
71
48
|
}
|
|
72
49
|
}
|
|
73
50
|
if (functionCalls.length > 0) {
|
|
@@ -83,11 +60,9 @@ export async function runNonInteractive(config, input, prompt_id) {
|
|
|
83
60
|
};
|
|
84
61
|
const toolResponse = await executeToolCall(config, requestInfo, toolRegistry, abortController.signal);
|
|
85
62
|
if (toolResponse.error) {
|
|
86
|
-
const isToolNotFound = toolResponse.error.message.includes('not found in registry');
|
|
87
63
|
console.error(`Error executing tool ${fc.name}: ${toolResponse.resultDisplay || toolResponse.error.message}`);
|
|
88
|
-
if (
|
|
64
|
+
if (toolResponse.errorType === ToolErrorType.UNHANDLED_EXCEPTION)
|
|
89
65
|
process.exit(1);
|
|
90
|
-
}
|
|
91
66
|
}
|
|
92
67
|
if (toolResponse.responseParts) {
|
|
93
68
|
const parts = Array.isArray(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"}
|
|
@@ -12,10 +12,12 @@ import { compressCommand } from '../ui/commands/compressCommand.js';
|
|
|
12
12
|
import { copyCommand } from '../ui/commands/copyCommand.js';
|
|
13
13
|
import { corgiCommand } from '../ui/commands/corgiCommand.js';
|
|
14
14
|
import { docsCommand } from '../ui/commands/docsCommand.js';
|
|
15
|
+
import { directoryCommand } from '../ui/commands/directoryCommand.js';
|
|
15
16
|
import { editorCommand } from '../ui/commands/editorCommand.js';
|
|
16
17
|
import { extensionsCommand } from '../ui/commands/extensionsCommand.js';
|
|
17
18
|
import { helpCommand } from '../ui/commands/helpCommand.js';
|
|
18
19
|
import { ideCommand } from '../ui/commands/ideCommand.js';
|
|
20
|
+
import { initCommand } from '../ui/commands/initCommand.js';
|
|
19
21
|
import { mcpCommand } from '../ui/commands/mcpCommand.js';
|
|
20
22
|
import { memoryCommand } from '../ui/commands/memoryCommand.js';
|
|
21
23
|
import { privacyCommand } from '../ui/commands/privacyCommand.js';
|
|
@@ -24,6 +26,9 @@ import { restoreCommand } from '../ui/commands/restoreCommand.js';
|
|
|
24
26
|
import { statsCommand } from '../ui/commands/statsCommand.js';
|
|
25
27
|
import { themeCommand } from '../ui/commands/themeCommand.js';
|
|
26
28
|
import { toolsCommand } from '../ui/commands/toolsCommand.js';
|
|
29
|
+
import { vimCommand } from '../ui/commands/vimCommand.js';
|
|
30
|
+
import { setupGithubCommand } from '../ui/commands/setupGithubCommand.js';
|
|
31
|
+
import { isGitHubRepository } from '../utils/gitUtils.js';
|
|
27
32
|
/**
|
|
28
33
|
* Loads the core, hard-coded slash commands that are an integral part
|
|
29
34
|
* of the Gemini CLI application.
|
|
@@ -51,10 +56,12 @@ export class BuiltinCommandLoader {
|
|
|
51
56
|
copyCommand,
|
|
52
57
|
corgiCommand,
|
|
53
58
|
docsCommand,
|
|
59
|
+
directoryCommand,
|
|
54
60
|
editorCommand,
|
|
55
61
|
extensionsCommand,
|
|
56
62
|
helpCommand,
|
|
57
63
|
ideCommand(this.config),
|
|
64
|
+
initCommand,
|
|
58
65
|
mcpCommand,
|
|
59
66
|
memoryCommand,
|
|
60
67
|
privacyCommand,
|
|
@@ -63,6 +70,8 @@ export class BuiltinCommandLoader {
|
|
|
63
70
|
statsCommand,
|
|
64
71
|
themeCommand,
|
|
65
72
|
toolsCommand,
|
|
73
|
+
vimCommand,
|
|
74
|
+
...(isGitHubRepository() ? [setupGithubCommand] : []),
|
|
66
75
|
];
|
|
67
76
|
return allDefinitions.filter((cmd) => cmd !== null);
|
|
68
77
|
}
|
|
@@ -1 +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;
|
|
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,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,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,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,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;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,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,gBAAgB;YAChB,aAAa;YACb,iBAAiB;YACjB,WAAW;YACX,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;YACvB,WAAW;YACX,UAAU;YACV,aAAa;YACb,cAAc;YACd,WAAW;YACX,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;YAC3B,YAAY;YACZ,YAAY;YACZ,YAAY;YACZ,UAAU;YACV,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACtD,CAAC;QAEF,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAuB,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;IAC3E,CAAC;CACF"}
|
|
@@ -28,13 +28,17 @@ export declare class CommandService {
|
|
|
28
28
|
*
|
|
29
29
|
* This factory method orchestrates the entire command loading process. It
|
|
30
30
|
* runs all provided loaders in parallel, aggregates their results, handles
|
|
31
|
-
* name conflicts
|
|
31
|
+
* name conflicts for extension commands by renaming them, and then returns a
|
|
32
32
|
* fully constructed `CommandService` instance.
|
|
33
33
|
*
|
|
34
|
+
* Conflict resolution:
|
|
35
|
+
* - Extension commands that conflict with existing commands are renamed to
|
|
36
|
+
* `extensionName.commandName`
|
|
37
|
+
* - Non-extension commands (built-in, user, project) override earlier commands
|
|
38
|
+
* with the same name based on loader order
|
|
39
|
+
*
|
|
34
40
|
* @param loaders An array of objects that conform to the `ICommandLoader`
|
|
35
|
-
* interface.
|
|
36
|
-
* provide a command with the same name, the command from the loader that
|
|
37
|
-
* appears later in the array will take precedence.
|
|
41
|
+
* interface. Built-in commands should come first, followed by FileCommandLoader.
|
|
38
42
|
* @param signal An AbortSignal to cancel the loading process.
|
|
39
43
|
* @returns A promise that resolves to a new, fully initialized `CommandService` instance.
|
|
40
44
|
*/
|
|
@@ -28,13 +28,17 @@ export class CommandService {
|
|
|
28
28
|
*
|
|
29
29
|
* This factory method orchestrates the entire command loading process. It
|
|
30
30
|
* runs all provided loaders in parallel, aggregates their results, handles
|
|
31
|
-
* name conflicts
|
|
31
|
+
* name conflicts for extension commands by renaming them, and then returns a
|
|
32
32
|
* fully constructed `CommandService` instance.
|
|
33
33
|
*
|
|
34
|
+
* Conflict resolution:
|
|
35
|
+
* - Extension commands that conflict with existing commands are renamed to
|
|
36
|
+
* `extensionName.commandName`
|
|
37
|
+
* - Non-extension commands (built-in, user, project) override earlier commands
|
|
38
|
+
* with the same name based on loader order
|
|
39
|
+
*
|
|
34
40
|
* @param loaders An array of objects that conform to the `ICommandLoader`
|
|
35
|
-
* interface.
|
|
36
|
-
* provide a command with the same name, the command from the loader that
|
|
37
|
-
* appears later in the array will take precedence.
|
|
41
|
+
* interface. Built-in commands should come first, followed by FileCommandLoader.
|
|
38
42
|
* @param signal An AbortSignal to cancel the loading process.
|
|
39
43
|
* @returns A promise that resolves to a new, fully initialized `CommandService` instance.
|
|
40
44
|
*/
|
|
@@ -49,12 +53,24 @@ export class CommandService {
|
|
|
49
53
|
console.debug('A command loader failed:', result.reason);
|
|
50
54
|
}
|
|
51
55
|
}
|
|
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
56
|
const commandMap = new Map();
|
|
56
57
|
for (const cmd of allCommands) {
|
|
57
|
-
|
|
58
|
+
let finalName = cmd.name;
|
|
59
|
+
// Extension commands get renamed if they conflict with existing commands
|
|
60
|
+
if (cmd.extensionName && commandMap.has(cmd.name)) {
|
|
61
|
+
let renamedName = `${cmd.extensionName}.${cmd.name}`;
|
|
62
|
+
let suffix = 1;
|
|
63
|
+
// Keep trying until we find a name that doesn't conflict
|
|
64
|
+
while (commandMap.has(renamedName)) {
|
|
65
|
+
renamedName = `${cmd.extensionName}.${cmd.name}${suffix}`;
|
|
66
|
+
suffix++;
|
|
67
|
+
}
|
|
68
|
+
finalName = renamedName;
|
|
69
|
+
}
|
|
70
|
+
commandMap.set(finalName, {
|
|
71
|
+
...cmd,
|
|
72
|
+
name: finalName,
|
|
73
|
+
});
|
|
58
74
|
}
|
|
59
75
|
const finalCommands = Object.freeze(Array.from(commandMap.values()));
|
|
60
76
|
return new CommandService(finalCommands);
|
|
@@ -1 +1 @@
|
|
|
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
|
|
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;;;;;;;;;;;;;;;;;;OAkBG;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,MAAM,UAAU,GAAG,IAAI,GAAG,EAAwB,CAAC;QACnD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,IAAI,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC;YAEzB,yEAAyE;YACzE,IAAI,GAAG,CAAC,aAAa,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClD,IAAI,WAAW,GAAG,GAAG,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACrD,IAAI,MAAM,GAAG,CAAC,CAAC;gBAEf,yDAAyD;gBACzD,OAAO,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;oBACnC,WAAW,GAAG,GAAG,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC;oBAC1D,MAAM,EAAE,CAAC;gBACX,CAAC;gBAED,SAAS,GAAG,WAAW,CAAC;YAC1B,CAAC;YAED,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE;gBACxB,GAAG,GAAG;gBACN,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC;QACL,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"}
|
|
@@ -21,16 +21,28 @@ export declare class FileCommandLoader implements ICommandLoader {
|
|
|
21
21
|
private readonly projectRoot;
|
|
22
22
|
constructor(config: Config | null);
|
|
23
23
|
/**
|
|
24
|
-
* Loads all commands
|
|
25
|
-
* commands
|
|
24
|
+
* Loads all commands from user, project, and extension directories.
|
|
25
|
+
* Returns commands in order: user → project → extensions (alphabetically).
|
|
26
|
+
*
|
|
27
|
+
* Order is important for conflict resolution in CommandService:
|
|
28
|
+
* - User/project commands (without extensionName) use "last wins" strategy
|
|
29
|
+
* - Extension commands (with extensionName) get renamed if conflicts exist
|
|
30
|
+
*
|
|
26
31
|
* @param signal An AbortSignal to cancel the loading process.
|
|
27
|
-
* @returns A promise that resolves to an array of loaded SlashCommands.
|
|
32
|
+
* @returns A promise that resolves to an array of all loaded SlashCommands.
|
|
28
33
|
*/
|
|
29
34
|
loadCommands(signal: AbortSignal): Promise<SlashCommand[]>;
|
|
35
|
+
/**
|
|
36
|
+
* Get all command directories in order for loading.
|
|
37
|
+
* User commands → Project commands → Extension commands
|
|
38
|
+
* This order ensures extension commands can detect all conflicts.
|
|
39
|
+
*/
|
|
40
|
+
private getCommandDirectories;
|
|
30
41
|
/**
|
|
31
42
|
* Parses a single .toml file and transforms it into a SlashCommand object.
|
|
32
43
|
* @param filePath The absolute path to the .toml file.
|
|
33
44
|
* @param baseDir The root command directory for name calculation.
|
|
45
|
+
* @param extensionName Optional extension name to prefix commands with.
|
|
34
46
|
* @returns A promise resolving to a SlashCommand, or null if the file is invalid.
|
|
35
47
|
*/
|
|
36
48
|
private parseAndAdaptFile;
|