@vybestack/llxprt-code 0.1.14 → 0.1.16-hotfix1
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/README.md +90 -2
- package/dist/package.json +4 -5
- package/dist/src/config/config.d.ts +4 -1
- package/dist/src/config/config.js +151 -54
- 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 +13 -3
- package/dist/src/config/settings.js +84 -23
- package/dist/src/config/settings.js.map +1 -1
- package/dist/src/gemini.d.ts +3 -0
- package/dist/src/gemini.js +212 -36
- 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/integration-tests/GITHUB_ACTIONS_README.md +41 -0
- package/dist/src/integration-tests/test-utils.d.ts +68 -0
- package/dist/src/integration-tests/test-utils.js +167 -0
- package/dist/src/integration-tests/test-utils.js.map +1 -0
- package/dist/src/nonInteractiveCli.js +24 -66
- package/dist/src/nonInteractiveCli.js.map +1 -1
- package/dist/src/providers/IFileSystem.d.ts +42 -0
- package/dist/src/providers/IFileSystem.js +46 -0
- package/dist/src/providers/IFileSystem.js.map +1 -0
- package/dist/src/providers/providerConfigUtils.d.ts +0 -4
- package/dist/src/providers/providerConfigUtils.js +21 -52
- package/dist/src/providers/providerConfigUtils.js.map +1 -1
- package/dist/src/providers/providerManagerInstance.d.ts +6 -1
- package/dist/src/providers/providerManagerInstance.js +117 -82
- package/dist/src/providers/providerManagerInstance.js.map +1 -1
- package/dist/src/services/BuiltinCommandLoader.js +13 -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 +94 -42
- 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/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 +4 -0
- package/dist/src/services/prompt-processors/types.js +4 -0
- package/dist/src/services/prompt-processors/types.js.map +1 -1
- package/dist/src/ui/App.js +325 -195
- package/dist/src/ui/App.js.map +1 -1
- package/dist/src/ui/commands/aboutCommand.js +2 -5
- package/dist/src/ui/commands/aboutCommand.js.map +1 -1
- package/dist/src/ui/commands/baseurlCommand.js +54 -9
- package/dist/src/ui/commands/baseurlCommand.js.map +1 -1
- package/dist/src/ui/commands/chatCommand.js +39 -1
- package/dist/src/ui/commands/chatCommand.js.map +1 -1
- package/dist/src/ui/commands/diagnosticsCommand.d.ts +10 -0
- package/dist/src/ui/commands/diagnosticsCommand.js +122 -0
- package/dist/src/ui/commands/diagnosticsCommand.js.map +1 -0
- package/dist/src/ui/commands/directoryCommand.d.ts +8 -0
- package/dist/src/ui/commands/directoryCommand.js +116 -0
- package/dist/src/ui/commands/directoryCommand.js.map +1 -0
- package/dist/src/ui/commands/ideCommand.js +101 -105
- 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 +108 -0
- package/dist/src/ui/commands/initCommand.js.map +1 -0
- package/dist/src/ui/commands/keyCommand.js +75 -11
- package/dist/src/ui/commands/keyCommand.js.map +1 -1
- package/dist/src/ui/commands/keyfileCommand.js +54 -13
- package/dist/src/ui/commands/keyfileCommand.js.map +1 -1
- package/dist/src/ui/commands/mcpCommand.js +53 -8
- package/dist/src/ui/commands/mcpCommand.js.map +1 -1
- package/dist/src/ui/commands/memoryCommand.js +2 -1
- package/dist/src/ui/commands/memoryCommand.js.map +1 -1
- package/dist/src/ui/commands/modelCommand.js +2 -5
- package/dist/src/ui/commands/modelCommand.js.map +1 -1
- package/dist/src/ui/commands/profileCommand.d.ts +10 -0
- package/dist/src/ui/commands/profileCommand.js +592 -0
- package/dist/src/ui/commands/profileCommand.js.map +1 -0
- package/dist/src/ui/commands/providerCommand.js +46 -3
- package/dist/src/ui/commands/providerCommand.js.map +1 -1
- package/dist/src/ui/commands/setCommand.d.ts +7 -0
- package/dist/src/ui/commands/setCommand.js +431 -0
- package/dist/src/ui/commands/setCommand.js.map +1 -0
- package/dist/src/ui/commands/setupGithubCommand.d.ts +7 -0
- package/dist/src/ui/commands/setupGithubCommand.js +49 -0
- package/dist/src/ui/commands/setupGithubCommand.js.map +1 -0
- package/dist/src/ui/commands/types.d.ts +23 -4
- 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.js +0 -7
- package/dist/src/ui/commands/vimCommand.js.map +1 -1
- package/dist/src/ui/components/ContextSummaryDisplay.d.ts +3 -3
- package/dist/src/ui/components/ContextSummaryDisplay.js +8 -8
- 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 +2 -0
- package/dist/src/ui/components/Footer.js +5 -4
- 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/IDEContextDetailDisplay.d.ts +5 -4
- package/dist/src/ui/components/IDEContextDetailDisplay.js +6 -8
- package/dist/src/ui/components/IDEContextDetailDisplay.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.d.ts +2 -0
- package/dist/src/ui/components/InputPrompt.js +128 -13
- package/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/dist/src/ui/components/LoadProfileDialog.d.ts +13 -0
- package/dist/src/ui/components/LoadProfileDialog.js +57 -0
- package/dist/src/ui/components/LoadProfileDialog.js.map +1 -0
- 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/ProviderModelDialog.js +75 -28
- package/dist/src/ui/components/ProviderModelDialog.js.map +1 -1
- package/dist/src/ui/components/SecureKeyInput.d.ts +15 -0
- package/dist/src/ui/components/SecureKeyInput.js +58 -0
- package/dist/src/ui/components/SecureKeyInput.js.map +1 -0
- package/dist/src/ui/components/ShellConfirmationDialog.d.ts +15 -0
- package/dist/src/ui/components/ShellConfirmationDialog.js +45 -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/Tips.js +1 -1
- package/dist/src/ui/components/Tips.js.map +1 -1
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js +15 -4
- 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 +270 -2
- package/dist/src/ui/components/shared/text-buffer.js +410 -70
- 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/containers/SessionController.js +14 -15
- package/dist/src/ui/containers/SessionController.js.map +1 -1
- package/dist/src/ui/contexts/VimModeContext.js +2 -2
- package/dist/src/ui/contexts/VimModeContext.js.map +1 -1
- package/dist/src/ui/editors/editorSettingsManager.js +2 -0
- package/dist/src/ui/editors/editorSettingsManager.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.js +56 -48
- 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 -200
- 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 +219 -130
- package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/useAuthCommand.js +9 -0
- package/dist/src/ui/hooks/useAuthCommand.js.map +1 -1
- package/dist/src/ui/hooks/useCompletion.d.ts +5 -5
- package/dist/src/ui/hooks/useCompletion.js +7 -402
- 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.js +75 -12
- package/dist/src/ui/hooks/useGeminiStream.js.map +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/useLoadProfileDialog.d.ts +27 -0
- package/dist/src/ui/hooks/useLoadProfileDialog.js +138 -0
- package/dist/src/ui/hooks/useLoadProfileDialog.js.map +1 -0
- 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 +1 -0
- package/dist/src/ui/hooks/useShellHistory.js +30 -7
- package/dist/src/ui/hooks/useShellHistory.js.map +1 -1
- package/dist/src/ui/hooks/useSlashCompletion.d.ts +24 -0
- package/dist/src/ui/hooks/useSlashCompletion.js +451 -0
- package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -0
- 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/reducers/appReducer.d.ts +3 -2
- package/dist/src/ui/reducers/appReducer.js +1 -0
- package/dist/src/ui/reducers/appReducer.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 +1 -0
- package/dist/src/ui/themes/theme.js +19 -4
- package/dist/src/ui/themes/theme.js.map +1 -1
- package/dist/src/ui/utils/renderLoopDetector.js +3 -3
- package/dist/src/ui/utils/renderLoopDetector.js.map +1 -1
- package/dist/src/ui/utils/secureInputHandler.d.ts +46 -0
- package/dist/src/ui/utils/secureInputHandler.js +128 -0
- package/dist/src/ui/utils/secureInputHandler.js.map +1 -0
- 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 +59 -25
- 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/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 +35 -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 +2 -1
- package/dist/src/validateNonInterActiveAuth.js +31 -5
- package/dist/src/validateNonInterActiveAuth.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -5
- package/dist/src/providers/enhanceConfigWithProviders.d.ts +0 -12
- package/dist/src/providers/enhanceConfigWithProviders.js +0 -16
- package/dist/src/providers/enhanceConfigWithProviders.js.map +0 -1
@@ -8,7 +8,10 @@ import { CustomTheme } from '../ui/themes/theme.js';
|
|
8
8
|
export declare const SETTINGS_DIRECTORY_NAME = ".llxprt";
|
9
9
|
export declare const USER_SETTINGS_DIR: string;
|
10
10
|
export declare const USER_SETTINGS_PATH: string;
|
11
|
+
export declare const DEFAULT_EXCLUDED_ENV_VARS: string[];
|
11
12
|
export declare function getSystemSettingsPath(): string;
|
13
|
+
export declare function getWorkspaceSettingsPath(workspaceDir: string): string;
|
14
|
+
export type DnsResolutionOrder = 'ipv4first' | 'verbatim';
|
12
15
|
export declare enum SettingScope {
|
13
16
|
User = "User",
|
14
17
|
Workspace = "Workspace",
|
@@ -27,6 +30,8 @@ export interface Settings {
|
|
27
30
|
theme?: string;
|
28
31
|
customThemes?: Record<string, CustomTheme>;
|
29
32
|
selectedAuthType?: AuthType;
|
33
|
+
defaultProfile?: string;
|
34
|
+
useExternalAuth?: boolean;
|
30
35
|
sandbox?: boolean | string;
|
31
36
|
coreTools?: string[];
|
32
37
|
excludeTools?: string[];
|
@@ -62,10 +67,15 @@ export interface Settings {
|
|
62
67
|
openaiResponsesEnabled?: boolean;
|
63
68
|
maxSessionTurns?: number;
|
64
69
|
summarizeToolOutput?: Record<string, SummarizeToolOutputSettings>;
|
70
|
+
vimMode?: boolean;
|
71
|
+
memoryImportFormat?: 'tree' | 'flat';
|
72
|
+
ideModeFeature?: boolean;
|
65
73
|
ideMode?: boolean;
|
66
|
-
|
74
|
+
disableAutoUpdate?: boolean;
|
75
|
+
disableUpdateNag?: boolean;
|
67
76
|
memoryDiscoveryMaxDirs?: number;
|
68
|
-
|
77
|
+
excludedProjectEnvVars?: string[];
|
78
|
+
dnsResolutionOrder?: DnsResolutionOrder;
|
69
79
|
}
|
70
80
|
export interface SettingsError {
|
71
81
|
message: string;
|
@@ -91,7 +101,7 @@ export declare class LoadedSettings {
|
|
91
101
|
removeProviderKeyfile(providerName: string): void;
|
92
102
|
}
|
93
103
|
export declare function setUpCloudShellEnvironment(envFilePath: string | null): void;
|
94
|
-
export declare function loadEnvironment(): void;
|
104
|
+
export declare function loadEnvironment(settings?: Settings): void;
|
95
105
|
/**
|
96
106
|
* Loads settings from user and workspace directories.
|
97
107
|
* Project settings override user settings.
|
@@ -14,6 +14,7 @@ import { DefaultDark } from '../ui/themes/default.js';
|
|
14
14
|
export const SETTINGS_DIRECTORY_NAME = '.llxprt';
|
15
15
|
export const USER_SETTINGS_DIR = path.join(homedir(), SETTINGS_DIRECTORY_NAME);
|
16
16
|
export const USER_SETTINGS_PATH = path.join(USER_SETTINGS_DIR, 'settings.json');
|
17
|
+
export const DEFAULT_EXCLUDED_ENV_VARS = ['DEBUG', 'DEBUG_MODE'];
|
17
18
|
export function getSystemSettingsPath() {
|
18
19
|
if (process.env.GEMINI_CLI_SYSTEM_SETTINGS_PATH) {
|
19
20
|
return process.env.GEMINI_CLI_SYSTEM_SETTINGS_PATH;
|
@@ -28,6 +29,9 @@ export function getSystemSettingsPath() {
|
|
28
29
|
return '/etc/gemini-cli/settings.json';
|
29
30
|
}
|
30
31
|
}
|
32
|
+
export function getWorkspaceSettingsPath(workspaceDir) {
|
33
|
+
return path.join(workspaceDir, SETTINGS_DIRECTORY_NAME, 'settings.json');
|
34
|
+
}
|
31
35
|
export var SettingScope;
|
32
36
|
(function (SettingScope) {
|
33
37
|
SettingScope["User"] = "User";
|
@@ -189,13 +193,51 @@ export function setUpCloudShellEnvironment(envFilePath) {
|
|
189
193
|
process.env.GOOGLE_CLOUD_PROJECT = 'cloudshell-gca';
|
190
194
|
}
|
191
195
|
}
|
192
|
-
export function loadEnvironment() {
|
196
|
+
export function loadEnvironment(settings) {
|
193
197
|
const envFilePath = findEnvFile(process.cwd());
|
198
|
+
// Cloud Shell environment variable handling
|
194
199
|
if (process.env.CLOUD_SHELL === 'true') {
|
195
200
|
setUpCloudShellEnvironment(envFilePath);
|
196
201
|
}
|
202
|
+
// If no settings provided, try to load workspace settings for exclusions
|
203
|
+
let resolvedSettings = settings;
|
204
|
+
if (!resolvedSettings) {
|
205
|
+
const workspaceSettingsPath = getWorkspaceSettingsPath(process.cwd());
|
206
|
+
try {
|
207
|
+
if (fs.existsSync(workspaceSettingsPath)) {
|
208
|
+
const workspaceContent = fs.readFileSync(workspaceSettingsPath, 'utf-8');
|
209
|
+
const parsedWorkspaceSettings = JSON.parse(stripJsonComments(workspaceContent));
|
210
|
+
resolvedSettings = resolveEnvVarsInObject(parsedWorkspaceSettings);
|
211
|
+
}
|
212
|
+
}
|
213
|
+
catch (_e) {
|
214
|
+
// Ignore errors loading workspace settings
|
215
|
+
}
|
216
|
+
}
|
197
217
|
if (envFilePath) {
|
198
|
-
|
218
|
+
// Manually parse and load environment variables to handle exclusions correctly.
|
219
|
+
// This avoids modifying environment variables that were already set from the shell.
|
220
|
+
try {
|
221
|
+
const envFileContent = fs.readFileSync(envFilePath, 'utf-8');
|
222
|
+
const parsedEnv = dotenv.parse(envFileContent);
|
223
|
+
const excludedVars = resolvedSettings?.excludedProjectEnvVars || DEFAULT_EXCLUDED_ENV_VARS;
|
224
|
+
const isProjectEnvFile = !envFilePath.includes(LLXPRT_DIR);
|
225
|
+
for (const key in parsedEnv) {
|
226
|
+
if (Object.hasOwn(parsedEnv, key)) {
|
227
|
+
// If it's a project .env file, skip loading excluded variables.
|
228
|
+
if (isProjectEnvFile && excludedVars.includes(key)) {
|
229
|
+
continue;
|
230
|
+
}
|
231
|
+
// Load variable only if it's not already set in the environment.
|
232
|
+
if (!Object.hasOwn(process.env, key)) {
|
233
|
+
process.env[key] = parsedEnv[key];
|
234
|
+
}
|
235
|
+
}
|
236
|
+
}
|
237
|
+
}
|
238
|
+
catch (_e) {
|
239
|
+
// Errors are ignored to match the behavior of `dotenv.config({ quiet: true })`.
|
240
|
+
}
|
199
241
|
}
|
200
242
|
}
|
201
243
|
/**
|
@@ -203,12 +245,25 @@ export function loadEnvironment() {
|
|
203
245
|
* Project settings override user settings.
|
204
246
|
*/
|
205
247
|
export function loadSettings(workspaceDir) {
|
206
|
-
loadEnvironment();
|
207
248
|
let systemSettings = {};
|
208
249
|
let userSettings = {};
|
209
250
|
let workspaceSettings = {};
|
210
251
|
const settingsErrors = [];
|
211
252
|
const systemSettingsPath = getSystemSettingsPath();
|
253
|
+
// FIX: Resolve paths to their canonical representation to handle symlinks
|
254
|
+
const resolvedWorkspaceDir = path.resolve(workspaceDir);
|
255
|
+
const resolvedHomeDir = path.resolve(homedir());
|
256
|
+
let realWorkspaceDir = resolvedWorkspaceDir;
|
257
|
+
try {
|
258
|
+
// fs.realpathSync gets the "true" path, resolving any symlinks
|
259
|
+
realWorkspaceDir = fs.realpathSync(resolvedWorkspaceDir);
|
260
|
+
}
|
261
|
+
catch (_e) {
|
262
|
+
// This is okay. The path might not exist yet, and that's a valid state.
|
263
|
+
}
|
264
|
+
// We expect homedir to always exist and be resolvable.
|
265
|
+
const realHomeDir = fs.realpathSync(resolvedHomeDir);
|
266
|
+
const workspaceSettingsPath = getWorkspaceSettingsPath(workspaceDir);
|
212
267
|
// Load system settings
|
213
268
|
try {
|
214
269
|
if (fs.existsSync(systemSettingsPath)) {
|
@@ -244,29 +299,32 @@ export function loadSettings(workspaceDir) {
|
|
244
299
|
path: USER_SETTINGS_PATH,
|
245
300
|
});
|
246
301
|
}
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
workspaceSettings.theme
|
256
|
-
|
257
|
-
|
258
|
-
workspaceSettings.theme
|
259
|
-
|
302
|
+
// This comparison is now much more reliable.
|
303
|
+
if (realWorkspaceDir !== realHomeDir) {
|
304
|
+
// Load workspace settings
|
305
|
+
try {
|
306
|
+
if (fs.existsSync(workspaceSettingsPath)) {
|
307
|
+
const projectContent = fs.readFileSync(workspaceSettingsPath, 'utf-8');
|
308
|
+
const parsedWorkspaceSettings = JSON.parse(stripJsonComments(projectContent));
|
309
|
+
workspaceSettings = resolveEnvVarsInObject(parsedWorkspaceSettings);
|
310
|
+
if (workspaceSettings.theme && workspaceSettings.theme === 'VS') {
|
311
|
+
workspaceSettings.theme = DefaultLight.name;
|
312
|
+
}
|
313
|
+
else if (workspaceSettings.theme &&
|
314
|
+
workspaceSettings.theme === 'VS2015') {
|
315
|
+
workspaceSettings.theme = DefaultDark.name;
|
316
|
+
}
|
260
317
|
}
|
261
318
|
}
|
319
|
+
catch (error) {
|
320
|
+
settingsErrors.push({
|
321
|
+
message: getErrorMessage(error),
|
322
|
+
path: workspaceSettingsPath,
|
323
|
+
});
|
324
|
+
}
|
262
325
|
}
|
263
|
-
|
264
|
-
|
265
|
-
message: getErrorMessage(error),
|
266
|
-
path: workspaceSettingsPath,
|
267
|
-
});
|
268
|
-
}
|
269
|
-
return new LoadedSettings({
|
326
|
+
// Create LoadedSettings first
|
327
|
+
const loadedSettings = new LoadedSettings({
|
270
328
|
path: systemSettingsPath,
|
271
329
|
settings: systemSettings,
|
272
330
|
}, {
|
@@ -276,6 +334,9 @@ export function loadSettings(workspaceDir) {
|
|
276
334
|
path: workspaceSettingsPath,
|
277
335
|
settings: workspaceSettings,
|
278
336
|
}, settingsErrors);
|
337
|
+
// Load environment with merged settings
|
338
|
+
loadEnvironment(loadedSettings.merged);
|
339
|
+
return loadedSettings;
|
279
340
|
}
|
280
341
|
export function saveSettings(settingsFile) {
|
281
342
|
try {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/config/settings.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/config/settings.ts"],"names":[],"mappings":"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"}
|
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,7 +12,9 @@ import { loadCliConfig, parseArguments } from './config/config.js';
|
|
12
12
|
import { readStdin } from './utils/readStdin.js';
|
13
13
|
import { basename } from 'node:path';
|
14
14
|
import v8 from 'node:v8';
|
15
|
+
import * as fs from 'node:fs/promises';
|
15
16
|
import os from 'node:os';
|
17
|
+
import dns from 'node:dns';
|
16
18
|
import { spawn } from 'node:child_process';
|
17
19
|
import { start_sandbox } from './utils/sandbox.js';
|
18
20
|
import chalk from 'chalk';
|
@@ -30,8 +32,23 @@ AuthType, getOauthClient, } from '@vybestack/llxprt-code-core';
|
|
30
32
|
import { validateAuthMethod } from './config/auth.js';
|
31
33
|
import { setMaxSizedBoxDebugging } from './ui/components/shared/MaxSizedBox.js';
|
32
34
|
import { getProviderManager } from './providers/providerManagerInstance.js';
|
33
|
-
import { setProviderApiKey,
|
35
|
+
import { setProviderApiKey, setProviderBaseUrl, } from './providers/providerConfigUtils.js';
|
34
36
|
import { validateNonInteractiveAuth } from './validateNonInterActiveAuth.js';
|
37
|
+
import { checkForUpdates } from './ui/utils/updateCheck.js';
|
38
|
+
import { handleAutoUpdate } from './utils/handleAutoUpdate.js';
|
39
|
+
import { appEvents, AppEvent } from './utils/events.js';
|
40
|
+
export function validateDnsResolutionOrder(order) {
|
41
|
+
const defaultValue = 'ipv4first';
|
42
|
+
if (order === undefined) {
|
43
|
+
return defaultValue;
|
44
|
+
}
|
45
|
+
if (order === 'ipv4first' || order === 'verbatim') {
|
46
|
+
return order;
|
47
|
+
}
|
48
|
+
// We don't want to throw here, just warn and use the default.
|
49
|
+
console.warn(`Invalid value for dnsResolutionOrder in settings: "${order}". Using default "${defaultValue}".`);
|
50
|
+
return defaultValue;
|
51
|
+
}
|
35
52
|
function getNodeMemoryArgs(config) {
|
36
53
|
const totalMemoryMB = os.totalmem() / (1024 * 1024);
|
37
54
|
const heapStats = v8.getHeapStatistics();
|
@@ -54,7 +71,7 @@ function getNodeMemoryArgs(config) {
|
|
54
71
|
}
|
55
72
|
async function relaunchWithAdditionalArgs(additionalArgs) {
|
56
73
|
const nodeArgs = [...additionalArgs, ...process.argv.slice(1)];
|
57
|
-
const newEnv = { ...process.env,
|
74
|
+
const newEnv = { ...process.env, LLXPRT_CLI_NO_RELAUNCH: 'true' };
|
58
75
|
const child = spawn(process.execPath, nodeArgs, {
|
59
76
|
stdio: 'inherit',
|
60
77
|
env: newEnv,
|
@@ -66,7 +83,28 @@ import { runAcpPeer } from './acp/acpPeer.js';
|
|
66
83
|
import { existsSync, mkdirSync } from 'fs';
|
67
84
|
import { homedir } from 'os';
|
68
85
|
import { join } from 'path';
|
86
|
+
export function setupUnhandledRejectionHandler() {
|
87
|
+
let unhandledRejectionOccurred = false;
|
88
|
+
process.on('unhandledRejection', (reason, _promise) => {
|
89
|
+
const errorMessage = `=========================================
|
90
|
+
This is an unexpected error. Please file a bug report using the /bug tool.
|
91
|
+
CRITICAL: Unhandled Promise Rejection!
|
92
|
+
=========================================
|
93
|
+
Reason: ${reason}${reason instanceof Error && reason.stack
|
94
|
+
? `
|
95
|
+
Stack trace:
|
96
|
+
${reason.stack}`
|
97
|
+
: ''}`;
|
98
|
+
appEvents.emit(AppEvent.LogError, errorMessage);
|
99
|
+
if (!unhandledRejectionOccurred) {
|
100
|
+
unhandledRejectionOccurred = true;
|
101
|
+
appEvents.emit(AppEvent.OpenDebugConsole);
|
102
|
+
}
|
103
|
+
});
|
104
|
+
}
|
69
105
|
export async function main() {
|
106
|
+
setupUnhandledRejectionHandler();
|
107
|
+
// Create .llxprt directory if it doesn't exist
|
70
108
|
const llxprtDir = join(homedir(), '.llxprt');
|
71
109
|
if (!existsSync(llxprtDir)) {
|
72
110
|
mkdirSync(llxprtDir, { recursive: true });
|
@@ -94,6 +132,8 @@ export async function main() {
|
|
94
132
|
serverToolsProvider.setConfig) {
|
95
133
|
serverToolsProvider.setConfig(config);
|
96
134
|
}
|
135
|
+
// Set DNS resolution order (prefer IPv4 by default)
|
136
|
+
dns.setDefaultResultOrder(validateDnsResolutionOrder(settings.merged.dnsResolutionOrder));
|
97
137
|
if (argv.promptInteractive && !process.stdin.isTTY) {
|
98
138
|
console.error('Error: The --prompt-interactive flag is not supported when piping input from stdin.');
|
99
139
|
process.exit(1);
|
@@ -117,7 +157,7 @@ export async function main() {
|
|
117
157
|
await config.initialize();
|
118
158
|
// Load custom themes from settings
|
119
159
|
themeManager.loadCustomThemes(settings.merged.customThemes);
|
120
|
-
// If a provider is specified
|
160
|
+
// If a provider is specified, activate it after initialization
|
121
161
|
const configProvider = config.getProvider();
|
122
162
|
if (configProvider) {
|
123
163
|
try {
|
@@ -128,6 +168,47 @@ export async function main() {
|
|
128
168
|
if (configModel && activeProvider.setModel) {
|
129
169
|
activeProvider.setModel(configModel);
|
130
170
|
}
|
171
|
+
// Apply profile model params if loaded AND provider was NOT specified via CLI
|
172
|
+
const configWithProfile = config;
|
173
|
+
if (!argv.provider &&
|
174
|
+
configWithProfile._profileModelParams &&
|
175
|
+
activeProvider) {
|
176
|
+
if ('setModelParams' in activeProvider &&
|
177
|
+
activeProvider.setModelParams) {
|
178
|
+
activeProvider.setModelParams(configWithProfile._profileModelParams);
|
179
|
+
}
|
180
|
+
}
|
181
|
+
// Apply ephemeral settings from profile ONLY if provider was NOT specified via CLI
|
182
|
+
if (!argv.provider) {
|
183
|
+
const authKey = config.getEphemeralSetting('auth-key');
|
184
|
+
const authKeyfile = config.getEphemeralSetting('auth-keyfile');
|
185
|
+
const baseUrl = config.getEphemeralSetting('base-url');
|
186
|
+
// Only apply profile auth settings if no CLI auth args were provided
|
187
|
+
if (!argv.key && !argv.keyfile) {
|
188
|
+
if (authKey && activeProvider.setApiKey) {
|
189
|
+
activeProvider.setApiKey(authKey);
|
190
|
+
}
|
191
|
+
else if (authKeyfile && activeProvider.setApiKey) {
|
192
|
+
// Load API key from file
|
193
|
+
try {
|
194
|
+
const apiKey = (await fs.readFile(authKeyfile.replace(/^~/, os.homedir()), 'utf-8')).trim();
|
195
|
+
if (apiKey) {
|
196
|
+
activeProvider.setApiKey(apiKey);
|
197
|
+
}
|
198
|
+
}
|
199
|
+
catch (error) {
|
200
|
+
console.error(chalk.red(`Failed to load keyfile ${authKeyfile}: ${error instanceof Error ? error.message : String(error)}`));
|
201
|
+
}
|
202
|
+
}
|
203
|
+
}
|
204
|
+
// Only apply profile base URL if not overridden by CLI
|
205
|
+
if (!argv.baseurl &&
|
206
|
+
baseUrl &&
|
207
|
+
baseUrl !== 'none' &&
|
208
|
+
activeProvider.setBaseUrl) {
|
209
|
+
activeProvider.setBaseUrl(baseUrl);
|
210
|
+
}
|
211
|
+
}
|
131
212
|
// No need to set auth type when using a provider
|
132
213
|
}
|
133
214
|
catch (e) {
|
@@ -135,6 +216,50 @@ export async function main() {
|
|
135
216
|
process.exit(1);
|
136
217
|
}
|
137
218
|
}
|
219
|
+
// Apply ephemeral settings from profile if provider came from profile (not CLI)
|
220
|
+
// This handles the case where profile was loaded via --profile-load
|
221
|
+
if (!argv.provider && (argv.profileLoad || settings.merged.defaultProfile)) {
|
222
|
+
const activeProvider = providerManager.getActiveProvider();
|
223
|
+
if (activeProvider) {
|
224
|
+
// Apply ephemeral settings from profile to the provider
|
225
|
+
// BUT only if not overridden by CLI arguments
|
226
|
+
const authKey = config.getEphemeralSetting('auth-key');
|
227
|
+
const authKeyfile = config.getEphemeralSetting('auth-keyfile');
|
228
|
+
const baseUrl = config.getEphemeralSetting('base-url');
|
229
|
+
// Only apply profile auth settings if no CLI auth args were provided
|
230
|
+
if (!argv.key && !argv.keyfile) {
|
231
|
+
if (authKey && activeProvider.setApiKey) {
|
232
|
+
activeProvider.setApiKey(authKey);
|
233
|
+
}
|
234
|
+
else if (authKeyfile && activeProvider.setApiKey) {
|
235
|
+
// Load API key from file
|
236
|
+
try {
|
237
|
+
const apiKey = (await fs.readFile(authKeyfile.replace(/^~/, os.homedir()), 'utf-8')).trim();
|
238
|
+
if (apiKey) {
|
239
|
+
activeProvider.setApiKey(apiKey);
|
240
|
+
}
|
241
|
+
}
|
242
|
+
catch (error) {
|
243
|
+
console.error(chalk.red(`Failed to load keyfile ${authKeyfile}: ${error instanceof Error ? error.message : String(error)}`));
|
244
|
+
}
|
245
|
+
}
|
246
|
+
}
|
247
|
+
// Only apply profile base URL if not overridden by CLI
|
248
|
+
if (!argv.baseurl &&
|
249
|
+
baseUrl &&
|
250
|
+
baseUrl !== 'none' &&
|
251
|
+
activeProvider.setBaseUrl) {
|
252
|
+
activeProvider.setBaseUrl(baseUrl);
|
253
|
+
}
|
254
|
+
// Apply profile model params if loaded
|
255
|
+
const configWithProfile = config;
|
256
|
+
if (configWithProfile._profileModelParams &&
|
257
|
+
'setModelParams' in activeProvider &&
|
258
|
+
activeProvider.setModelParams) {
|
259
|
+
activeProvider.setModelParams(configWithProfile._profileModelParams);
|
260
|
+
}
|
261
|
+
}
|
262
|
+
}
|
138
263
|
// Process CLI-provided credentials (--key, --keyfile, --baseurl)
|
139
264
|
if (argv.key || argv.keyfile || argv.baseurl) {
|
140
265
|
// Provider-specific credentials are now handled directly
|
@@ -151,13 +276,28 @@ export async function main() {
|
|
151
276
|
}
|
152
277
|
// Handle --keyfile
|
153
278
|
if (argv.keyfile) {
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
279
|
+
try {
|
280
|
+
// Read the API key from file
|
281
|
+
const resolvedPath = argv.keyfile.replace(/^~/, os.homedir());
|
282
|
+
const apiKey = await fs.readFile(resolvedPath, 'utf-8');
|
283
|
+
const trimmedKey = apiKey.trim();
|
284
|
+
if (!trimmedKey) {
|
285
|
+
console.error(chalk.red('The specified file is empty'));
|
286
|
+
process.exit(1);
|
287
|
+
}
|
288
|
+
const result = await setProviderApiKey(providerManager, settings, trimmedKey, config);
|
289
|
+
if (!result.success) {
|
290
|
+
console.error(chalk.red(result.message));
|
291
|
+
process.exit(1);
|
292
|
+
}
|
293
|
+
const message = `API key loaded from ${resolvedPath} for provider '${providerManager.getActiveProviderName()}'`;
|
294
|
+
if (config.getDebugMode()) {
|
295
|
+
console.debug(message);
|
296
|
+
}
|
158
297
|
}
|
159
|
-
|
160
|
-
console.
|
298
|
+
catch (error) {
|
299
|
+
console.error(chalk.red(`Failed to process keyfile: ${error instanceof Error ? error.message : String(error)}`));
|
300
|
+
process.exit(1);
|
161
301
|
}
|
162
302
|
}
|
163
303
|
// Handle --baseurl
|
@@ -186,7 +326,8 @@ export async function main() {
|
|
186
326
|
: [];
|
187
327
|
const sandboxConfig = config.getSandbox();
|
188
328
|
if (sandboxConfig) {
|
189
|
-
if (settings.merged.selectedAuthType
|
329
|
+
if (settings.merged.selectedAuthType &&
|
330
|
+
!settings.merged.useExternalAuth) {
|
190
331
|
// Validate authentication here because the sandbox will interfere with the Oauth2 web redirect.
|
191
332
|
try {
|
192
333
|
const err = validateAuthMethod(settings.merged.selectedAuthType);
|
@@ -194,13 +335,23 @@ export async function main() {
|
|
194
335
|
throw new Error(err);
|
195
336
|
}
|
196
337
|
await config.refreshAuth(settings.merged.selectedAuthType);
|
338
|
+
// Apply compression settings after authentication
|
339
|
+
const merged = settings.merged;
|
340
|
+
const contextLimit = merged['context-limit'];
|
341
|
+
const compressionThreshold = merged['compression-threshold'];
|
342
|
+
if (contextLimit || compressionThreshold) {
|
343
|
+
const geminiClient = config.getGeminiClient();
|
344
|
+
if (geminiClient) {
|
345
|
+
geminiClient.setCompressionSettings(compressionThreshold, contextLimit);
|
346
|
+
}
|
347
|
+
}
|
197
348
|
}
|
198
349
|
catch (err) {
|
199
350
|
console.error('Error authenticating:', err);
|
200
351
|
process.exit(1);
|
201
352
|
}
|
202
353
|
}
|
203
|
-
await start_sandbox(sandboxConfig, memoryArgs);
|
354
|
+
await start_sandbox(sandboxConfig, memoryArgs, config);
|
204
355
|
process.exit(0);
|
205
356
|
}
|
206
357
|
else {
|
@@ -265,6 +416,16 @@ export async function main() {
|
|
265
416
|
, {
|
266
417
|
// eslint-disable-next-line react/jsx-no-bind
|
267
418
|
onError: handleError, children: _jsx(AppWrapper, { config: config, settings: settings, startupWarnings: startupWarnings, version: version }) }) }), { exitOnCtrlC: false });
|
419
|
+
checkForUpdates()
|
420
|
+
.then((info) => {
|
421
|
+
handleAutoUpdate(info, settings, config.getProjectRoot());
|
422
|
+
})
|
423
|
+
.catch((err) => {
|
424
|
+
// Silently ignore update check errors.
|
425
|
+
if (config.getDebugMode()) {
|
426
|
+
console.error('Update check failed:', err);
|
427
|
+
}
|
428
|
+
});
|
268
429
|
registerCleanup(() => instance.unmount());
|
269
430
|
return;
|
270
431
|
}
|
@@ -303,20 +464,6 @@ function setWindowTitle(title, settings) {
|
|
303
464
|
});
|
304
465
|
}
|
305
466
|
}
|
306
|
-
// --- Global Unhandled Rejection Handler ---
|
307
|
-
process.on('unhandledRejection', (reason, _promise) => {
|
308
|
-
// Log other unexpected unhandled rejections as critical errors
|
309
|
-
console.error('=========================================');
|
310
|
-
console.error('CRITICAL: Unhandled Promise Rejection!');
|
311
|
-
console.error('=========================================');
|
312
|
-
console.error('Reason:', reason);
|
313
|
-
console.error('Stack trace may follow:');
|
314
|
-
if (!(reason instanceof Error)) {
|
315
|
-
console.error(reason);
|
316
|
-
}
|
317
|
-
// Exit for genuinely unhandled errors
|
318
|
-
process.exit(1);
|
319
|
-
});
|
320
467
|
async function loadNonInteractiveConfig(config, extensions, settings, argv) {
|
321
468
|
let finalConfig = config;
|
322
469
|
if (!argv.yolo) {
|
@@ -341,13 +488,27 @@ async function loadNonInteractiveConfig(config, extensions, settings, argv) {
|
|
341
488
|
const providerManager = getProviderManager(finalConfig);
|
342
489
|
finalConfig.setProviderManager(providerManager);
|
343
490
|
// Activate provider if specified
|
344
|
-
if (argv.provider) {
|
345
|
-
|
491
|
+
if (argv.provider || finalConfig.getProvider()) {
|
492
|
+
const providerToActivate = argv.provider || finalConfig.getProvider();
|
493
|
+
if (providerToActivate) {
|
494
|
+
await providerManager.setActiveProvider(providerToActivate);
|
495
|
+
}
|
346
496
|
// Set model if specified and provider supports it
|
347
|
-
|
497
|
+
const modelToSet = argv.model || finalConfig.getModel();
|
498
|
+
if (modelToSet) {
|
348
499
|
const activeProvider = providerManager.getActiveProvider();
|
349
500
|
if (activeProvider && typeof activeProvider.setModel === 'function') {
|
350
|
-
activeProvider.setModel(
|
501
|
+
activeProvider.setModel(modelToSet);
|
502
|
+
}
|
503
|
+
}
|
504
|
+
// Apply profile model params if loaded AND provider was NOT specified via CLI
|
505
|
+
const configWithProfile = finalConfig;
|
506
|
+
if (!argv.provider && configWithProfile._profileModelParams) {
|
507
|
+
const activeProvider = providerManager.getActiveProvider();
|
508
|
+
if (activeProvider &&
|
509
|
+
'setModelParams' in activeProvider &&
|
510
|
+
activeProvider.setModelParams) {
|
511
|
+
activeProvider.setModelParams(configWithProfile._profileModelParams);
|
351
512
|
}
|
352
513
|
}
|
353
514
|
}
|
@@ -367,13 +528,28 @@ async function loadNonInteractiveConfig(config, extensions, settings, argv) {
|
|
367
528
|
}
|
368
529
|
// Handle --keyfile
|
369
530
|
if (argv.keyfile) {
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
531
|
+
try {
|
532
|
+
// Read the API key from file
|
533
|
+
const resolvedPath = argv.keyfile.replace(/^~/, os.homedir());
|
534
|
+
const apiKey = await fs.readFile(resolvedPath, 'utf-8');
|
535
|
+
const trimmedKey = apiKey.trim();
|
536
|
+
if (!trimmedKey) {
|
537
|
+
console.error(chalk.red('The specified file is empty'));
|
538
|
+
process.exit(1);
|
539
|
+
}
|
540
|
+
const result = await setProviderApiKey(providerManager, settings, trimmedKey, finalConfig);
|
541
|
+
if (!result.success) {
|
542
|
+
console.error(chalk.red(result.message));
|
543
|
+
process.exit(1);
|
544
|
+
}
|
545
|
+
const message = `API key loaded from ${resolvedPath} for provider '${providerManager.getActiveProviderName()}'`;
|
546
|
+
if (finalConfig.getDebugMode()) {
|
547
|
+
console.debug(message);
|
548
|
+
}
|
374
549
|
}
|
375
|
-
|
376
|
-
console.
|
550
|
+
catch (error) {
|
551
|
+
console.error(chalk.red(`Failed to process keyfile: ${error instanceof Error ? error.message : String(error)}`));
|
552
|
+
process.exit(1);
|
377
553
|
}
|
378
554
|
}
|
379
555
|
// Handle --baseurl
|
@@ -388,6 +564,6 @@ async function loadNonInteractiveConfig(config, extensions, settings, argv) {
|
|
388
564
|
}
|
389
565
|
}
|
390
566
|
}
|
391
|
-
return await validateNonInteractiveAuth(settings.merged.selectedAuthType, finalConfig);
|
567
|
+
return await validateNonInteractiveAuth(settings.merged.selectedAuthType, settings.merged.useExternalAuth, finalConfig, settings);
|
392
568
|
}
|
393
569
|
//# sourceMappingURL=gemini.js.map
|