@google/gemini-cli 0.1.10-dev.14 → 0.1.10
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 +16 -2
- package/dist/google-gemini-cli-0.1.9.tgz +0 -0
- package/dist/package.json +7 -7
- package/dist/src/config/auth.js +6 -5
- package/dist/src/config/auth.js.map +1 -1
- package/dist/src/config/config.d.ts +0 -1
- package/dist/src/config/config.js +62 -50
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/extension.d.ts +1 -0
- package/dist/src/config/extension.js +34 -6
- package/dist/src/config/extension.js.map +1 -1
- package/dist/src/config/sandboxConfig.d.ts +1 -1
- package/dist/src/config/sandboxConfig.js +1 -1
- package/dist/src/config/sandboxConfig.js.map +1 -1
- package/dist/src/config/settings.d.ts +7 -2
- package/dist/src/config/settings.js +101 -3
- package/dist/src/config/settings.js.map +1 -1
- package/dist/src/gemini.js +30 -21
- 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/nonInteractiveCli.d.ts +1 -1
- package/dist/src/nonInteractiveCli.js +4 -2
- package/dist/src/nonInteractiveCli.js.map +1 -1
- package/dist/src/services/CommandService.d.ts +13 -0
- package/dist/src/services/CommandService.js +30 -0
- package/dist/src/services/CommandService.js.map +1 -0
- package/dist/src/ui/App.js +71 -12
- package/dist/src/ui/App.js.map +1 -1
- package/dist/src/ui/commands/clearCommand.d.ts +7 -0
- package/dist/src/ui/commands/clearCommand.js +15 -0
- package/dist/src/ui/commands/clearCommand.js.map +1 -0
- package/dist/src/ui/commands/helpCommand.d.ts +7 -0
- package/dist/src/ui/commands/helpCommand.js +18 -0
- package/dist/src/ui/commands/helpCommand.js.map +1 -0
- package/dist/src/ui/commands/memoryCommand.d.ts +7 -0
- package/dist/src/ui/commands/memoryCommand.js +81 -0
- package/dist/src/ui/commands/memoryCommand.js.map +1 -0
- package/dist/src/ui/commands/types.d.ts +63 -0
- package/dist/src/{gemini.test.d.ts → ui/commands/types.js} +1 -0
- package/dist/src/ui/commands/types.js.map +1 -0
- package/dist/src/ui/components/AuthDialog.js +36 -8
- package/dist/src/ui/components/AuthDialog.js.map +1 -1
- package/dist/src/ui/components/Help.d.ts +1 -1
- package/dist/src/ui/components/Help.js +3 -2
- package/dist/src/ui/components/Help.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.d.ts +2 -1
- package/dist/src/ui/components/InputPrompt.js +106 -157
- package/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/dist/src/ui/components/LoadingIndicator.js +2 -1
- package/dist/src/ui/components/LoadingIndicator.js.map +1 -1
- package/dist/src/ui/components/ThemeDialog.js +10 -9
- package/dist/src/ui/components/ThemeDialog.js.map +1 -1
- package/dist/src/ui/components/messages/CompressionMessage.js +1 -1
- package/dist/src/ui/components/shared/MaxSizedBox.js +1 -1
- package/dist/src/ui/components/shared/MaxSizedBox.js.map +1 -1
- package/dist/src/ui/components/shared/text-buffer.d.ts +72 -16
- package/dist/src/ui/components/shared/text-buffer.js +564 -676
- package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
- package/dist/src/ui/contexts/SessionContext.d.ts +4 -1
- package/dist/src/ui/contexts/SessionContext.js +12 -2
- package/dist/src/ui/contexts/SessionContext.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.js +5 -7
- package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.d.ts +6 -10
- package/dist/src/ui/hooks/slashCommandProcessor.js +217 -121
- package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/useCompletion.d.ts +2 -2
- package/dist/src/ui/hooks/useCompletion.js +106 -56
- package/dist/src/ui/hooks/useCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.d.ts +3 -3
- package/dist/src/ui/hooks/useGeminiStream.js +45 -28
- package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
- package/dist/src/ui/themes/ansi.js +1 -1
- package/dist/src/ui/themes/ansi.js.map +1 -1
- package/dist/src/ui/types.d.ts +10 -0
- package/dist/src/ui/utils/InlineMarkdownRenderer.d.ts +16 -0
- package/dist/src/ui/utils/InlineMarkdownRenderer.js +104 -0
- package/dist/src/ui/utils/InlineMarkdownRenderer.js.map +1 -0
- package/dist/src/ui/utils/MarkdownDisplay.js +1 -80
- package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
- package/dist/src/ui/utils/TableRenderer.js +50 -32
- package/dist/src/ui/utils/TableRenderer.js.map +1 -1
- package/dist/src/ui/utils/errorParsing.d.ts +2 -10
- package/dist/src/ui/utils/errorParsing.js +34 -23
- package/dist/src/ui/utils/errorParsing.js.map +1 -1
- package/dist/src/utils/sandbox-macos-permissive-proxied.sb +1 -1
- package/dist/src/utils/sandbox-macos-restrictive-proxied.sb +1 -1
- package/dist/src/utils/userStartupWarnings.d.ts +6 -0
- package/dist/src/utils/userStartupWarnings.js +33 -0
- package/dist/src/utils/userStartupWarnings.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -8
- package/dist/src/gemini.test.js +0 -122
- package/dist/src/gemini.test.js.map +0 -1
- package/dist/src/ui/App.test.d.ts +0 -6
- package/dist/src/ui/App.test.js +0 -299
- package/dist/src/ui/App.test.js.map +0 -1
- package/dist/src/ui/components/AuthDialog.test.d.ts +0 -6
- package/dist/src/ui/components/AuthDialog.test.js +0 -69
- package/dist/src/ui/components/AuthDialog.test.js.map +0 -1
- package/dist/src/ui/components/HistoryItemDisplay.test.d.ts +0 -6
- package/dist/src/ui/components/HistoryItemDisplay.test.js +0 -81
- package/dist/src/ui/components/HistoryItemDisplay.test.js.map +0 -1
- package/dist/src/ui/components/InputPrompt.test.d.ts +0 -6
- package/dist/src/ui/components/InputPrompt.test.js +0 -154
- package/dist/src/ui/components/InputPrompt.test.js.map +0 -1
- package/dist/src/ui/components/LoadingIndicator.test.d.ts +0 -6
- package/dist/src/ui/components/LoadingIndicator.test.js +0 -141
- package/dist/src/ui/components/LoadingIndicator.test.js.map +0 -1
- package/dist/src/ui/components/ModelStatsDisplay.test.d.ts +0 -6
- package/dist/src/ui/components/ModelStatsDisplay.test.js +0 -217
- package/dist/src/ui/components/ModelStatsDisplay.test.js.map +0 -1
- package/dist/src/ui/components/SessionSummaryDisplay.test.d.ts +0 -6
- package/dist/src/ui/components/SessionSummaryDisplay.test.js +0 -60
- package/dist/src/ui/components/SessionSummaryDisplay.test.js.map +0 -1
- package/dist/src/ui/components/StatsDisplay.test.d.ts +0 -6
- package/dist/src/ui/components/StatsDisplay.test.js +0 -275
- package/dist/src/ui/components/StatsDisplay.test.js.map +0 -1
- package/dist/src/ui/components/ToolStatsDisplay.test.d.ts +0 -6
- package/dist/src/ui/components/ToolStatsDisplay.test.js +0 -160
- package/dist/src/ui/components/ToolStatsDisplay.test.js.map +0 -1
- package/dist/src/ui/components/messages/DiffRenderer.test.d.ts +0 -6
- package/dist/src/ui/components/messages/DiffRenderer.test.js +0 -239
- package/dist/src/ui/components/messages/DiffRenderer.test.js.map +0 -1
- package/dist/src/ui/components/messages/ToolConfirmationMessage.test.d.ts +0 -6
- package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js +0 -37
- package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js.map +0 -1
- package/dist/src/ui/components/messages/ToolMessage.test.d.ts +0 -6
- package/dist/src/ui/components/messages/ToolMessage.test.js +0 -116
- package/dist/src/ui/components/messages/ToolMessage.test.js.map +0 -1
- package/dist/src/ui/components/shared/MaxSizedBox.test.d.ts +0 -6
- package/dist/src/ui/components/shared/MaxSizedBox.test.js +0 -134
- package/dist/src/ui/components/shared/MaxSizedBox.test.js.map +0 -1
- package/dist/src/ui/contexts/SessionContext.test.d.ts +0 -6
- package/dist/src/ui/contexts/SessionContext.test.js +0 -96
- package/dist/src/ui/contexts/SessionContext.test.js.map +0 -1
- package/dist/src/ui/hooks/useGeminiStream.test.d.ts +0 -6
- package/dist/src/ui/hooks/useGeminiStream.test.js +0 -775
- package/dist/src/ui/hooks/useGeminiStream.test.js.map +0 -1
- package/dist/src/ui/utils/MarkdownDisplay.test.d.ts +0 -6
- package/dist/src/ui/utils/MarkdownDisplay.test.js +0 -176
- package/dist/src/ui/utils/MarkdownDisplay.test.js.map +0 -1
|
@@ -5,26 +5,42 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import * as fs from 'fs';
|
|
7
7
|
import * as path from 'path';
|
|
8
|
-
import { homedir } from 'os';
|
|
9
|
-
import
|
|
8
|
+
import { homedir, platform } from 'os';
|
|
9
|
+
import * as dotenv from 'dotenv';
|
|
10
|
+
import { GEMINI_CONFIG_DIR as GEMINI_DIR, getErrorMessage, } from '@google/gemini-cli-core';
|
|
10
11
|
import stripJsonComments from 'strip-json-comments';
|
|
11
12
|
import { DefaultLight } from '../ui/themes/default-light.js';
|
|
12
13
|
import { DefaultDark } from '../ui/themes/default.js';
|
|
13
14
|
export const SETTINGS_DIRECTORY_NAME = '.gemini';
|
|
14
15
|
export const USER_SETTINGS_DIR = path.join(homedir(), SETTINGS_DIRECTORY_NAME);
|
|
15
16
|
export const USER_SETTINGS_PATH = path.join(USER_SETTINGS_DIR, 'settings.json');
|
|
17
|
+
function getSystemSettingsPath() {
|
|
18
|
+
if (platform() === 'darwin') {
|
|
19
|
+
return '/Library/Application Support/GeminiCli/settings.json';
|
|
20
|
+
}
|
|
21
|
+
else if (platform() === 'win32') {
|
|
22
|
+
return 'C:\\ProgramData\\gemini-cli\\settings.json';
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
return '/etc/gemini-cli/settings.json';
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export const SYSTEM_SETTINGS_PATH = getSystemSettingsPath();
|
|
16
29
|
export var SettingScope;
|
|
17
30
|
(function (SettingScope) {
|
|
18
31
|
SettingScope["User"] = "User";
|
|
19
32
|
SettingScope["Workspace"] = "Workspace";
|
|
33
|
+
SettingScope["System"] = "System";
|
|
20
34
|
})(SettingScope || (SettingScope = {}));
|
|
21
35
|
export class LoadedSettings {
|
|
22
|
-
constructor(user, workspace, errors) {
|
|
36
|
+
constructor(system, user, workspace, errors) {
|
|
37
|
+
this.system = system;
|
|
23
38
|
this.user = user;
|
|
24
39
|
this.workspace = workspace;
|
|
25
40
|
this.errors = errors;
|
|
26
41
|
this._merged = this.computeMergedSettings();
|
|
27
42
|
}
|
|
43
|
+
system;
|
|
28
44
|
user;
|
|
29
45
|
workspace;
|
|
30
46
|
errors;
|
|
@@ -36,6 +52,7 @@ export class LoadedSettings {
|
|
|
36
52
|
return {
|
|
37
53
|
...this.user.settings,
|
|
38
54
|
...this.workspace.settings,
|
|
55
|
+
...this.system.settings,
|
|
39
56
|
};
|
|
40
57
|
}
|
|
41
58
|
forScope(scope) {
|
|
@@ -44,6 +61,8 @@ export class LoadedSettings {
|
|
|
44
61
|
return this.user;
|
|
45
62
|
case SettingScope.Workspace:
|
|
46
63
|
return this.workspace;
|
|
64
|
+
case SettingScope.System:
|
|
65
|
+
return this.system;
|
|
47
66
|
default:
|
|
48
67
|
throw new Error(`Invalid scope: ${scope}`);
|
|
49
68
|
}
|
|
@@ -90,14 +109,90 @@ function resolveEnvVarsInObject(obj) {
|
|
|
90
109
|
}
|
|
91
110
|
return obj;
|
|
92
111
|
}
|
|
112
|
+
function findEnvFile(startDir) {
|
|
113
|
+
let currentDir = path.resolve(startDir);
|
|
114
|
+
while (true) {
|
|
115
|
+
// prefer gemini-specific .env under GEMINI_DIR
|
|
116
|
+
const geminiEnvPath = path.join(currentDir, GEMINI_DIR, '.env');
|
|
117
|
+
if (fs.existsSync(geminiEnvPath)) {
|
|
118
|
+
return geminiEnvPath;
|
|
119
|
+
}
|
|
120
|
+
const envPath = path.join(currentDir, '.env');
|
|
121
|
+
if (fs.existsSync(envPath)) {
|
|
122
|
+
return envPath;
|
|
123
|
+
}
|
|
124
|
+
const parentDir = path.dirname(currentDir);
|
|
125
|
+
if (parentDir === currentDir || !parentDir) {
|
|
126
|
+
// check .env under home as fallback, again preferring gemini-specific .env
|
|
127
|
+
const homeGeminiEnvPath = path.join(homedir(), GEMINI_DIR, '.env');
|
|
128
|
+
if (fs.existsSync(homeGeminiEnvPath)) {
|
|
129
|
+
return homeGeminiEnvPath;
|
|
130
|
+
}
|
|
131
|
+
const homeEnvPath = path.join(homedir(), '.env');
|
|
132
|
+
if (fs.existsSync(homeEnvPath)) {
|
|
133
|
+
return homeEnvPath;
|
|
134
|
+
}
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
137
|
+
currentDir = parentDir;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
export function setUpCloudShellEnvironment(envFilePath) {
|
|
141
|
+
// Special handling for GOOGLE_CLOUD_PROJECT in Cloud Shell:
|
|
142
|
+
// Because GOOGLE_CLOUD_PROJECT in Cloud Shell tracks the project
|
|
143
|
+
// set by the user using "gcloud config set project" we do not want to
|
|
144
|
+
// use its value. So, unless the user overrides GOOGLE_CLOUD_PROJECT in
|
|
145
|
+
// one of the .env files, we set the Cloud Shell-specific default here.
|
|
146
|
+
if (envFilePath && fs.existsSync(envFilePath)) {
|
|
147
|
+
const envFileContent = fs.readFileSync(envFilePath);
|
|
148
|
+
const parsedEnv = dotenv.parse(envFileContent);
|
|
149
|
+
if (parsedEnv.GOOGLE_CLOUD_PROJECT) {
|
|
150
|
+
// .env file takes precedence in Cloud Shell
|
|
151
|
+
process.env.GOOGLE_CLOUD_PROJECT = parsedEnv.GOOGLE_CLOUD_PROJECT;
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
// If not in .env, set to default and override global
|
|
155
|
+
process.env.GOOGLE_CLOUD_PROJECT = 'cloudshell-gca';
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
// If no .env file, set to default and override global
|
|
160
|
+
process.env.GOOGLE_CLOUD_PROJECT = 'cloudshell-gca';
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
export function loadEnvironment() {
|
|
164
|
+
const envFilePath = findEnvFile(process.cwd());
|
|
165
|
+
if (process.env.CLOUD_SHELL === 'true') {
|
|
166
|
+
setUpCloudShellEnvironment(envFilePath);
|
|
167
|
+
}
|
|
168
|
+
if (envFilePath) {
|
|
169
|
+
dotenv.config({ path: envFilePath, quiet: true });
|
|
170
|
+
}
|
|
171
|
+
}
|
|
93
172
|
/**
|
|
94
173
|
* Loads settings from user and workspace directories.
|
|
95
174
|
* Project settings override user settings.
|
|
96
175
|
*/
|
|
97
176
|
export function loadSettings(workspaceDir) {
|
|
177
|
+
loadEnvironment();
|
|
178
|
+
let systemSettings = {};
|
|
98
179
|
let userSettings = {};
|
|
99
180
|
let workspaceSettings = {};
|
|
100
181
|
const settingsErrors = [];
|
|
182
|
+
// Load system settings
|
|
183
|
+
try {
|
|
184
|
+
if (fs.existsSync(SYSTEM_SETTINGS_PATH)) {
|
|
185
|
+
const systemContent = fs.readFileSync(SYSTEM_SETTINGS_PATH, 'utf-8');
|
|
186
|
+
const parsedSystemSettings = JSON.parse(stripJsonComments(systemContent));
|
|
187
|
+
systemSettings = resolveEnvVarsInObject(parsedSystemSettings);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
catch (error) {
|
|
191
|
+
settingsErrors.push({
|
|
192
|
+
message: getErrorMessage(error),
|
|
193
|
+
path: SYSTEM_SETTINGS_PATH,
|
|
194
|
+
});
|
|
195
|
+
}
|
|
101
196
|
// Load user settings
|
|
102
197
|
try {
|
|
103
198
|
if (fs.existsSync(USER_SETTINGS_PATH)) {
|
|
@@ -142,6 +237,9 @@ export function loadSettings(workspaceDir) {
|
|
|
142
237
|
});
|
|
143
238
|
}
|
|
144
239
|
return new LoadedSettings({
|
|
240
|
+
path: SYSTEM_SETTINGS_PATH,
|
|
241
|
+
settings: systemSettings,
|
|
242
|
+
}, {
|
|
145
243
|
path: USER_SETTINGS_PATH,
|
|
146
244
|
settings: userSettings,
|
|
147
245
|
}, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/config/settings.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/config/settings.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAEL,iBAAiB,IAAI,UAAU,EAC/B,eAAe,GAIhB,MAAM,yBAAyB,CAAC;AACjC,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAS,CAAC;AACjD,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,uBAAuB,CAAC,CAAC;AAC/E,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;AAEhF,SAAS,qBAAqB;IAC5B,IAAI,QAAQ,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,sDAAsD,CAAC;IAChE,CAAC;SAAM,IAAI,QAAQ,EAAE,KAAK,OAAO,EAAE,CAAC;QAClC,OAAO,4CAA4C,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,OAAO,+BAA+B,CAAC;IACzC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,qBAAqB,EAAE,CAAC;AAE5D,MAAM,CAAN,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,uCAAuB,CAAA;IACvB,iCAAiB,CAAA;AACnB,CAAC,EAJW,YAAY,KAAZ,YAAY,QAIvB;AAoDD,MAAM,OAAO,cAAc;IACzB,YACE,MAAoB,EACpB,IAAkB,EAClB,SAAuB,EACvB,MAAuB;QAEvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC9C,CAAC;IAEQ,MAAM,CAAe;IACrB,IAAI,CAAe;IACnB,SAAS,CAAe;IACxB,MAAM,CAAkB;IAEzB,OAAO,CAAW;IAE1B,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEO,qBAAqB;QAC3B,OAAO;YACL,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ;YACrB,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ;YAC1B,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ;SACxB,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,KAAmB;QAC1B,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,YAAY,CAAC,IAAI;gBACpB,OAAO,IAAI,CAAC,IAAI,CAAC;YACnB,KAAK,YAAY,CAAC,SAAS;gBACzB,OAAO,IAAI,CAAC,SAAS,CAAC;YACxB,KAAK,YAAY,CAAC,MAAM;gBACtB,OAAO,IAAI,CAAC,MAAM,CAAC;YACrB;gBACE,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,QAAQ,CACN,KAAmB,EACnB,GAAmB,EACnB,KAA2D;QAE3D,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC1C,2EAA2E;QAC3E,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC5C,YAAY,CAAC,YAAY,CAAC,CAAC;IAC7B,CAAC;CACF;AAED,SAAS,sBAAsB,CAAC,KAAa;IAC3C,MAAM,WAAW,GAAG,wBAAwB,CAAC,CAAC,gCAAgC;IAC9E,OAAO,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;QAC9D,MAAM,OAAO,GAAG,QAAQ,IAAI,QAAQ,CAAC;QACrC,IAAI,OAAO,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YACvE,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;QAC/B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB,CAAI,GAAM;IACvC,IACE,GAAG,KAAK,IAAI;QACZ,GAAG,KAAK,SAAS;QACjB,OAAO,GAAG,KAAK,SAAS;QACxB,OAAO,GAAG,KAAK,QAAQ,EACvB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,sBAAsB,CAAC,GAAG,CAAiB,CAAC;IACrD,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAiB,CAAC;IACzE,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,EAAE,GAAG,GAAG,EAAO,CAAC;QAC/B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;gBACtD,MAAM,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB;IACnC,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxC,OAAO,IAAI,EAAE,CAAC;QACZ,+CAA+C;QAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAChE,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACjC,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,SAAS,KAAK,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC;YAC3C,2EAA2E;YAC3E,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;YACnE,IAAI,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACrC,OAAO,iBAAiB,CAAC;YAC3B,CAAC;YACD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;YACjD,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC/B,OAAO,WAAW,CAAC;YACrB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,UAAU,GAAG,SAAS,CAAC;IACzB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,WAA0B;IACnE,4DAA4D;IAC5D,iEAAiE;IACjE,sEAAsE;IACtE,uEAAuE;IACvE,uEAAuE;IACvE,IAAI,WAAW,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9C,MAAM,cAAc,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC/C,IAAI,SAAS,CAAC,oBAAoB,EAAE,CAAC;YACnC,4CAA4C;YAC5C,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,SAAS,CAAC,oBAAoB,CAAC;QACpE,CAAC;aAAM,CAAC;YACN,qDAAqD;YACrD,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,gBAAgB,CAAC;QACtD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,sDAAsD;QACtD,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,gBAAgB,CAAC;IACtD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAE/C,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;QACvC,0BAA0B,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,YAAoB;IAC/C,eAAe,EAAE,CAAC;IAClB,IAAI,cAAc,GAAa,EAAE,CAAC;IAClC,IAAI,YAAY,GAAa,EAAE,CAAC;IAChC,IAAI,iBAAiB,GAAa,EAAE,CAAC;IACrC,MAAM,cAAc,GAAoB,EAAE,CAAC;IAE3C,uBAAuB;IACvB,IAAI,CAAC;QACH,IAAI,EAAE,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACxC,MAAM,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;YACrE,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CACrC,iBAAiB,CAAC,aAAa,CAAC,CACrB,CAAC;YACd,cAAc,GAAG,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,cAAc,CAAC,IAAI,CAAC;YAClB,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC;YAC/B,IAAI,EAAE,oBAAoB;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB;IACrB,IAAI,CAAC;QACH,IAAI,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACtC,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;YACjE,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CACnC,iBAAiB,CAAC,WAAW,CAAC,CACnB,CAAC;YACd,YAAY,GAAG,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;YAC1D,6BAA6B;YAC7B,IAAI,YAAY,CAAC,KAAK,IAAI,YAAY,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBACtD,YAAY,CAAC,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC;YACzC,CAAC;iBAAM,IAAI,YAAY,CAAC,KAAK,IAAI,YAAY,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACjE,YAAY,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,cAAc,CAAC,IAAI,CAAC;YAClB,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC;YAC/B,IAAI,EAAE,kBAAkB;SACzB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,qBAAqB,GAAG,IAAI,CAAC,IAAI,CACrC,YAAY,EACZ,uBAAuB,EACvB,eAAe,CAChB,CAAC;IAEF,0BAA0B;IAC1B,IAAI,CAAC;QACH,IAAI,EAAE,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACzC,MAAM,cAAc,GAAG,EAAE,CAAC,YAAY,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;YACvE,MAAM,uBAAuB,GAAG,IAAI,CAAC,KAAK,CACxC,iBAAiB,CAAC,cAAc,CAAC,CACtB,CAAC;YACd,iBAAiB,GAAG,sBAAsB,CAAC,uBAAuB,CAAC,CAAC;YACpE,IAAI,iBAAiB,CAAC,KAAK,IAAI,iBAAiB,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAChE,iBAAiB,CAAC,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC;YAC9C,CAAC;iBAAM,IACL,iBAAiB,CAAC,KAAK;gBACvB,iBAAiB,CAAC,KAAK,KAAK,QAAQ,EACpC,CAAC;gBACD,iBAAiB,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC;YAC7C,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,cAAc,CAAC,IAAI,CAAC;YAClB,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC;YAC/B,IAAI,EAAE,qBAAqB;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,IAAI,cAAc,CACvB;QACE,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,cAAc;KACzB,EACD;QACE,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,YAAY;KACvB,EACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,iBAAiB;KAC5B,EACD,cAAc,CACf,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,YAA0B;IACrD,IAAI,CAAC;QACH,8BAA8B;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,EAAE,CAAC,aAAa,CACd,YAAY,CAAC,IAAI,EACjB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAC9C,OAAO,CACR,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC"}
|
package/dist/src/gemini.js
CHANGED
|
@@ -14,9 +14,10 @@ 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, USER_SETTINGS_PATH, SettingScope, } from './config/settings.js';
|
|
18
18
|
import { themeManager } from './ui/themes/theme-manager.js';
|
|
19
19
|
import { getStartupWarnings } from './utils/startupWarnings.js';
|
|
20
|
+
import { getUserStartupWarnings } from './utils/userStartupWarnings.js';
|
|
20
21
|
import { runNonInteractive } from './nonInteractiveCli.js';
|
|
21
22
|
import { loadExtensions } from './config/extension.js';
|
|
22
23
|
import { cleanupCheckpoints } from './utils/cleanup.js';
|
|
@@ -70,22 +71,21 @@ export async function main() {
|
|
|
70
71
|
}
|
|
71
72
|
const extensions = loadExtensions(workspaceRoot);
|
|
72
73
|
const config = await loadCliConfig(settings.merged, extensions, sessionId);
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}
|
|
78
|
-
setMaxSizedBoxDebugging(config.getDebugMode());
|
|
79
|
-
// Initialize centralized FileDiscoveryService
|
|
80
|
-
config.getFileService();
|
|
81
|
-
if (config.getCheckpointingEnabled()) {
|
|
82
|
-
try {
|
|
83
|
-
await config.getGitService();
|
|
74
|
+
if (config.getListExtensions()) {
|
|
75
|
+
console.log('Installed extensions:');
|
|
76
|
+
for (const extension of extensions) {
|
|
77
|
+
console.log(`- ${extension.config.name}`);
|
|
84
78
|
}
|
|
85
|
-
|
|
86
|
-
|
|
79
|
+
process.exit(0);
|
|
80
|
+
}
|
|
81
|
+
// Set a default auth type if one isn't set.
|
|
82
|
+
if (!settings.merged.selectedAuthType) {
|
|
83
|
+
if (process.env.CLOUD_SHELL === 'true') {
|
|
84
|
+
settings.setValue(SettingScope.User, 'selectedAuthType', AuthType.CLOUD_SHELL);
|
|
87
85
|
}
|
|
88
86
|
}
|
|
87
|
+
setMaxSizedBoxDebugging(config.getDebugMode());
|
|
88
|
+
await config.initialize();
|
|
89
89
|
if (settings.merged.theme) {
|
|
90
90
|
if (!themeManager.setActiveTheme(settings.merged.theme)) {
|
|
91
91
|
// If the theme is not found during initial load, log a warning and continue.
|
|
@@ -93,11 +93,11 @@ export async function main() {
|
|
|
93
93
|
console.warn(`Warning: Theme "${settings.merged.theme}" not found.`);
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
|
-
const memoryArgs = settings.merged.autoConfigureMaxOldSpaceSize
|
|
97
|
-
? getNodeMemoryArgs(config)
|
|
98
|
-
: [];
|
|
99
96
|
// hop into sandbox if we are outside and sandboxing is enabled
|
|
100
97
|
if (!process.env.SANDBOX) {
|
|
98
|
+
const memoryArgs = settings.merged.autoConfigureMaxOldSpaceSize
|
|
99
|
+
? getNodeMemoryArgs(config)
|
|
100
|
+
: [];
|
|
101
101
|
const sandboxConfig = config.getSandbox();
|
|
102
102
|
if (sandboxConfig) {
|
|
103
103
|
if (settings.merged.selectedAuthType) {
|
|
@@ -127,7 +127,10 @@ export async function main() {
|
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
129
|
let input = config.getQuestion();
|
|
130
|
-
const startupWarnings =
|
|
130
|
+
const startupWarnings = [
|
|
131
|
+
...(await getStartupWarnings()),
|
|
132
|
+
...(await getUserStartupWarnings(workspaceRoot)),
|
|
133
|
+
];
|
|
131
134
|
// Render UI, passing necessary config values. Check that there is no command line question.
|
|
132
135
|
if (process.stdin.isTTY && input?.length === 0) {
|
|
133
136
|
setWindowTitle(basename(workspaceRoot), settings);
|
|
@@ -136,27 +139,32 @@ export async function main() {
|
|
|
136
139
|
}
|
|
137
140
|
// If not a TTY, read from stdin
|
|
138
141
|
// This is for cases where the user pipes input directly into the command
|
|
139
|
-
if (!process.stdin.isTTY) {
|
|
142
|
+
if (!process.stdin.isTTY && !input) {
|
|
140
143
|
input += await readStdin();
|
|
141
144
|
}
|
|
142
145
|
if (!input) {
|
|
143
146
|
console.error('No input provided via stdin.');
|
|
144
147
|
process.exit(1);
|
|
145
148
|
}
|
|
149
|
+
const prompt_id = Math.random().toString(16).slice(2);
|
|
146
150
|
logUserPrompt(config, {
|
|
147
151
|
'event.name': 'user_prompt',
|
|
148
152
|
'event.timestamp': new Date().toISOString(),
|
|
149
153
|
prompt: input,
|
|
154
|
+
prompt_id,
|
|
150
155
|
prompt_length: input.length,
|
|
151
156
|
});
|
|
152
157
|
// Non-interactive mode handled by runNonInteractive
|
|
153
158
|
const nonInteractiveConfig = await loadNonInteractiveConfig(config, extensions, settings);
|
|
154
|
-
await runNonInteractive(nonInteractiveConfig, input);
|
|
159
|
+
await runNonInteractive(nonInteractiveConfig, input, prompt_id);
|
|
155
160
|
process.exit(0);
|
|
156
161
|
}
|
|
157
162
|
function setWindowTitle(title, settings) {
|
|
158
163
|
if (!settings.merged.hideWindowTitle) {
|
|
159
|
-
process.
|
|
164
|
+
const windowTitle = (process.env.CLI_TITLE || `Gemini - ${title}`).replace(
|
|
165
|
+
// eslint-disable-next-line no-control-regex
|
|
166
|
+
/[\x00-\x1F\x7F]/g, '');
|
|
167
|
+
process.stdout.write(`\x1b]2;${windowTitle}\x07`);
|
|
160
168
|
process.on('exit', () => {
|
|
161
169
|
process.stdout.write(`\x1b]2;\x07`);
|
|
162
170
|
});
|
|
@@ -194,6 +202,7 @@ async function loadNonInteractiveConfig(config, extensions, settings) {
|
|
|
194
202
|
excludeTools: newExcludeTools,
|
|
195
203
|
};
|
|
196
204
|
finalConfig = await loadCliConfig(nonInteractiveSettings, extensions, config.getSessionId());
|
|
205
|
+
await finalConfig.initialize();
|
|
197
206
|
}
|
|
198
207
|
return await validateNonInterActiveAuth(settings.merged.selectedAuthType, finalConfig);
|
|
199
208
|
}
|
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,MAAM,oBAAoB,CAAC;AACnD,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 = 'da50a1ee (local modifications)';
|
|
9
9
|
//# sourceMappingURL=git-commit.js.map
|
|
@@ -4,4 +4,4 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { Config } from '@google/gemini-cli-core';
|
|
7
|
-
export declare function runNonInteractive(config: Config, input: string): Promise<void>;
|
|
7
|
+
export declare function runNonInteractive(config: Config, input: string, prompt_id: string): Promise<void>;
|
|
@@ -24,7 +24,8 @@ function getResponseText(response) {
|
|
|
24
24
|
}
|
|
25
25
|
return null;
|
|
26
26
|
}
|
|
27
|
-
export async function runNonInteractive(config, input) {
|
|
27
|
+
export async function runNonInteractive(config, input, prompt_id) {
|
|
28
|
+
await config.initialize();
|
|
28
29
|
// Handle EPIPE errors when the output is piped to a command that closes early.
|
|
29
30
|
process.stdout.on('error', (err) => {
|
|
30
31
|
if (err.code === 'EPIPE') {
|
|
@@ -48,7 +49,7 @@ export async function runNonInteractive(config, input) {
|
|
|
48
49
|
{ functionDeclarations: toolRegistry.getFunctionDeclarations() },
|
|
49
50
|
],
|
|
50
51
|
},
|
|
51
|
-
});
|
|
52
|
+
}, prompt_id);
|
|
52
53
|
for await (const resp of responseStream) {
|
|
53
54
|
if (abortController.signal.aborted) {
|
|
54
55
|
console.error('Operation cancelled.');
|
|
@@ -71,6 +72,7 @@ export async function runNonInteractive(config, input) {
|
|
|
71
72
|
name: fc.name,
|
|
72
73
|
args: (fc.args ?? {}),
|
|
73
74
|
isClientInitiated: false,
|
|
75
|
+
prompt_id,
|
|
74
76
|
};
|
|
75
77
|
const toolResponse = await executeToolCall(config, requestInfo, toolRegistry, abortController.signal);
|
|
76
78
|
if (toolResponse.error) {
|
|
@@ -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,GAC1B,MAAM,yBAAyB,CAAC;AAQjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,SAAS,eAAe,CAAC,QAAiC;IACxD,IAAI,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACzC,IACE,SAAS,CAAC,OAAO;YACjB,SAAS,CAAC,OAAO,CAAC,KAAK;YACvB,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAClC,CAAC;YACD,iFAAiF;YACjF,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/C,IAAI,WAAW,EAAE,OAAO,EAAE,CAAC;gBACzB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,SAAS,CAAC,OAAO,CAAC,KAAK;iBAC3B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;iBAC3B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;iBACxB,IAAI,CAAC,EAAE,CAAC,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAc,EACd,KAAa;
|
|
1
|
+
{"version":3,"file":"nonInteractiveCli.js","sourceRoot":"","sources":["../../src/nonInteractiveCli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { SlashCommand } from '../ui/commands/types.js';
|
|
7
|
+
export declare class CommandService {
|
|
8
|
+
private commandLoader;
|
|
9
|
+
private commands;
|
|
10
|
+
constructor(commandLoader?: () => Promise<SlashCommand[]>);
|
|
11
|
+
loadCommands(): Promise<void>;
|
|
12
|
+
getCommands(): SlashCommand[];
|
|
13
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { memoryCommand } from '../ui/commands/memoryCommand.js';
|
|
7
|
+
import { helpCommand } from '../ui/commands/helpCommand.js';
|
|
8
|
+
import { clearCommand } from '../ui/commands/clearCommand.js';
|
|
9
|
+
const loadBuiltInCommands = async () => [
|
|
10
|
+
clearCommand,
|
|
11
|
+
helpCommand,
|
|
12
|
+
memoryCommand,
|
|
13
|
+
];
|
|
14
|
+
export class CommandService {
|
|
15
|
+
commandLoader;
|
|
16
|
+
commands = [];
|
|
17
|
+
constructor(commandLoader = loadBuiltInCommands) {
|
|
18
|
+
this.commandLoader = commandLoader;
|
|
19
|
+
// The constructor can be used for dependency injection in the future.
|
|
20
|
+
}
|
|
21
|
+
async loadCommands() {
|
|
22
|
+
// For now, we only load the built-in commands.
|
|
23
|
+
// File-based and remote commands will be added later.
|
|
24
|
+
this.commands = await this.commandLoader();
|
|
25
|
+
}
|
|
26
|
+
getCommands() {
|
|
27
|
+
return this.commands;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=CommandService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandService.js","sourceRoot":"","sources":["../../../src/services/CommandService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,MAAM,mBAAmB,GAAG,KAAK,IAA6B,EAAE,CAAC;IAC/D,YAAY;IACZ,WAAW;IACX,aAAa;CACd,CAAC;AAEF,MAAM,OAAO,cAAc;IAIf;IAHF,QAAQ,GAAmB,EAAE,CAAC;IAEtC,YACU,gBAA+C,mBAAmB;QAAlE,kBAAa,GAAb,aAAa,CAAqD;QAE1E,sEAAsE;IACxE,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,+CAA+C;QAC/C,sDAAsD;QACtD,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;IAC7C,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF"}
|
package/dist/src/ui/App.js
CHANGED
|
@@ -46,6 +46,7 @@ import { useBracketedPaste } from './hooks/useBracketedPaste.js';
|
|
|
46
46
|
import { useTextBuffer } from './components/shared/text-buffer.js';
|
|
47
47
|
import * as fs from 'fs';
|
|
48
48
|
import { UpdateNotification } from './components/UpdateNotification.js';
|
|
49
|
+
import { isProQuotaExceededError, isGenericQuotaExceededError, UserTierId, } from '@google/gemini-cli-core';
|
|
49
50
|
import { checkForUpdates } from './utils/updateCheck.js';
|
|
50
51
|
import ansiEscapes from 'ansi-escapes';
|
|
51
52
|
import { OverflowProvider } from './contexts/OverflowContext.js';
|
|
@@ -88,6 +89,7 @@ const App = ({ config, settings, startupWarnings = [] }) => {
|
|
|
88
89
|
const ctrlDTimerRef = useRef(null);
|
|
89
90
|
const [constrainHeight, setConstrainHeight] = useState(true);
|
|
90
91
|
const [showPrivacyNotice, setShowPrivacyNotice] = useState(false);
|
|
92
|
+
const [modelSwitchedFromQuotaError, setModelSwitchedFromQuotaError] = useState(false);
|
|
91
93
|
const openPrivacyNotice = useCallback(() => {
|
|
92
94
|
setShowPrivacyNotice(true);
|
|
93
95
|
}, []);
|
|
@@ -149,20 +151,73 @@ const App = ({ config, settings, startupWarnings = [] }) => {
|
|
|
149
151
|
}, [config, currentModel]);
|
|
150
152
|
// Set up Flash fallback handler
|
|
151
153
|
useEffect(() => {
|
|
152
|
-
const flashFallbackHandler = async (currentModel, fallbackModel) => {
|
|
154
|
+
const flashFallbackHandler = async (currentModel, fallbackModel, error) => {
|
|
155
|
+
let message;
|
|
156
|
+
// For quota errors, assume FREE tier (safe default) - only show upgrade messaging to free tier users
|
|
157
|
+
// TODO: Get actual user tier from config when available
|
|
158
|
+
const userTier = undefined; // Defaults to FREE tier behavior
|
|
159
|
+
const isPaidTier = userTier === UserTierId.LEGACY || userTier === UserTierId.STANDARD;
|
|
160
|
+
// Check if this is a Pro quota exceeded error
|
|
161
|
+
if (error && isProQuotaExceededError(error)) {
|
|
162
|
+
if (isPaidTier) {
|
|
163
|
+
message = `⚡ You have reached your daily ${currentModel} quota limit.
|
|
164
|
+
⚡ Automatically switching from ${currentModel} to ${fallbackModel} for the remainder of this session.
|
|
165
|
+
⚡ To continue accessing the ${currentModel} model today, consider using /auth to switch to using a paid API key from AI Studio at https://aistudio.google.com/apikey`;
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
message = `⚡ You have reached your daily ${currentModel} quota limit.
|
|
169
|
+
⚡ Automatically switching from ${currentModel} to ${fallbackModel} for the remainder of this session.
|
|
170
|
+
⚡ To increase your limits, upgrade to a Gemini Code Assist Standard or Enterprise plan with higher limits at https://goo.gle/set-up-gemini-code-assist
|
|
171
|
+
⚡ Or you can utilize a Gemini API Key. See: https://goo.gle/gemini-cli-docs-auth#gemini-api-key
|
|
172
|
+
⚡ You can switch authentication methods by typing /auth`;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
else if (error && isGenericQuotaExceededError(error)) {
|
|
176
|
+
if (isPaidTier) {
|
|
177
|
+
message = `⚡ You have reached your daily quota limit.
|
|
178
|
+
⚡ Automatically switching from ${currentModel} to ${fallbackModel} for the remainder of this session.
|
|
179
|
+
⚡ To continue accessing the ${currentModel} model today, consider using /auth to switch to using a paid API key from AI Studio at https://aistudio.google.com/apikey`;
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
message = `⚡ You have reached your daily quota limit.
|
|
183
|
+
⚡ Automatically switching from ${currentModel} to ${fallbackModel} for the remainder of this session.
|
|
184
|
+
⚡ To increase your limits, upgrade to a Gemini Code Assist Standard or Enterprise plan with higher limits at https://goo.gle/set-up-gemini-code-assist
|
|
185
|
+
⚡ Or you can utilize a Gemini API Key. See: https://goo.gle/gemini-cli-docs-auth#gemini-api-key
|
|
186
|
+
⚡ You can switch authentication methods by typing /auth`;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
if (isPaidTier) {
|
|
191
|
+
// Default fallback message for other cases (like consecutive 429s)
|
|
192
|
+
message = `⚡ Automatically switching from ${currentModel} to ${fallbackModel} for faster responses for the remainder of this session.
|
|
193
|
+
⚡ Possible reasons for this are that you have received multiple consecutive capacity errors or you have reached your daily ${currentModel} quota limit
|
|
194
|
+
⚡ To continue accessing the ${currentModel} model today, consider using /auth to switch to using a paid API key from AI Studio at https://aistudio.google.com/apikey`;
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
// Default fallback message for other cases (like consecutive 429s)
|
|
198
|
+
message = `⚡ Automatically switching from ${currentModel} to ${fallbackModel} for faster responses for the remainder of this session.
|
|
199
|
+
⚡ Possible reasons for this are that you have received multiple consecutive capacity errors or you have reached your daily ${currentModel} quota limit
|
|
200
|
+
⚡ To increase your limits, upgrade to a Gemini Code Assist Standard or Enterprise plan with higher limits at https://goo.gle/set-up-gemini-code-assist
|
|
201
|
+
⚡ Or you can utilize a Gemini API Key. See: https://goo.gle/gemini-cli-docs-auth#gemini-api-key
|
|
202
|
+
⚡ You can switch authentication methods by typing /auth`;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
153
205
|
// Add message to UI history
|
|
154
206
|
addItem({
|
|
155
207
|
type: MessageType.INFO,
|
|
156
|
-
text:
|
|
157
|
-
⚡ To avoid this you can either upgrade to Standard tier. See: https://goo.gle/set-up-gemini-code-assist
|
|
158
|
-
⚡ Or you can utilize a Gemini API Key. See: https://goo.gle/gemini-cli-docs-auth#gemini-api-key
|
|
159
|
-
⚡ You can switch authentication methods by typing /auth`,
|
|
208
|
+
text: message,
|
|
160
209
|
}, Date.now());
|
|
161
|
-
|
|
210
|
+
// Set the flag to prevent tool continuation
|
|
211
|
+
setModelSwitchedFromQuotaError(true);
|
|
212
|
+
// Set global quota error flag to prevent Flash model calls
|
|
213
|
+
config.setQuotaErrorOccurred(true);
|
|
214
|
+
// Switch model for future use but return false to stop current retry
|
|
215
|
+
config.setModel(fallbackModel);
|
|
216
|
+
return false; // Don't continue with current prompt
|
|
162
217
|
};
|
|
163
218
|
config.setFlashFallbackHandler(flashFallbackHandler);
|
|
164
219
|
}, [config, addItem]);
|
|
165
|
-
const { handleSlashCommand, slashCommands, pendingHistoryItems: pendingSlashCommandHistoryItems, } = useSlashCommandProcessor(config, settings, history, addItem, clearItems, loadHistory, refreshStatic, setShowHelp, setDebugMessage, openThemeDialog, openAuthDialog, openEditorDialog,
|
|
220
|
+
const { handleSlashCommand, slashCommands, pendingHistoryItems: pendingSlashCommandHistoryItems, commandContext, } = useSlashCommandProcessor(config, settings, history, addItem, clearItems, loadHistory, refreshStatic, setShowHelp, setDebugMessage, openThemeDialog, openAuthDialog, openEditorDialog, toggleCorgiMode, showToolDescriptions, setQuittingMessages, openPrivacyNotice);
|
|
166
221
|
const pendingHistoryItems = [...pendingSlashCommandHistoryItems];
|
|
167
222
|
const { rows: terminalHeight, columns: terminalWidth } = useTerminalSize();
|
|
168
223
|
const isInitialMount = useRef(true);
|
|
@@ -184,6 +239,7 @@ const App = ({ config, settings, startupWarnings = [] }) => {
|
|
|
184
239
|
stdin,
|
|
185
240
|
setRawMode,
|
|
186
241
|
isValidPath,
|
|
242
|
+
shellModeActive,
|
|
187
243
|
});
|
|
188
244
|
const handleExit = useCallback((pressedOnce, setPressedOnce, timerRef) => {
|
|
189
245
|
if (pressedOnce) {
|
|
@@ -191,10 +247,11 @@ const App = ({ config, settings, startupWarnings = [] }) => {
|
|
|
191
247
|
clearTimeout(timerRef.current);
|
|
192
248
|
}
|
|
193
249
|
const quitCommand = slashCommands.find((cmd) => cmd.name === 'quit' || cmd.altName === 'exit');
|
|
194
|
-
if (quitCommand) {
|
|
195
|
-
quitCommand.action(
|
|
250
|
+
if (quitCommand && quitCommand.action) {
|
|
251
|
+
quitCommand.action(commandContext, '');
|
|
196
252
|
}
|
|
197
253
|
else {
|
|
254
|
+
// This is unlikely to be needed but added for an additional fallback.
|
|
198
255
|
process.exit(0);
|
|
199
256
|
}
|
|
200
257
|
}
|
|
@@ -205,7 +262,9 @@ const App = ({ config, settings, startupWarnings = [] }) => {
|
|
|
205
262
|
timerRef.current = null;
|
|
206
263
|
}, CTRL_EXIT_PROMPT_DURATION_MS);
|
|
207
264
|
}
|
|
208
|
-
},
|
|
265
|
+
},
|
|
266
|
+
// Add commandContext to the dependency array here!
|
|
267
|
+
[slashCommands, commandContext]);
|
|
209
268
|
useInput((input, key) => {
|
|
210
269
|
let enteringConstrainHeightMode = false;
|
|
211
270
|
if (!constrainHeight) {
|
|
@@ -263,7 +322,7 @@ const App = ({ config, settings, startupWarnings = [] }) => {
|
|
|
263
322
|
setAuthError('reauth required');
|
|
264
323
|
openAuthDialog();
|
|
265
324
|
}, [openAuthDialog, setAuthError]);
|
|
266
|
-
const { streamingState, submitQuery, initError, pendingHistoryItems: pendingGeminiHistoryItems, thought, } = useGeminiStream(config.getGeminiClient(), history, addItem, setShowHelp, config, setDebugMessage, handleSlashCommand, shellModeActive, getPreferredEditor, onAuthError, performMemoryRefresh);
|
|
325
|
+
const { streamingState, submitQuery, initError, pendingHistoryItems: pendingGeminiHistoryItems, thought, } = useGeminiStream(config.getGeminiClient(), history, addItem, setShowHelp, config, setDebugMessage, handleSlashCommand, shellModeActive, getPreferredEditor, onAuthError, performMemoryRefresh, modelSwitchedFromQuotaError, setModelSwitchedFromQuotaError);
|
|
267
326
|
pendingHistoryItems.push(...pendingGeminiHistoryItems);
|
|
268
327
|
const { elapsedTime, currentLoadingPhrase } = useLoadingIndicator(streamingState);
|
|
269
328
|
const showAutoAcceptIndicator = useAutoAcceptIndicator({ config });
|
|
@@ -382,6 +441,6 @@ const App = ({ config, settings, startupWarnings = [] }) => {
|
|
|
382
441
|
: thought, currentLoadingPhrase: config.getAccessibility()?.disableLoadingPhrases
|
|
383
442
|
? undefined
|
|
384
443
|
: currentLoadingPhrase, elapsedTime: elapsedTime }), _jsxs(Box, { marginTop: 1, display: "flex", justifyContent: "space-between", width: "100%", children: [_jsxs(Box, { children: [process.env.GEMINI_SYSTEM_MD && (_jsx(Text, { color: Colors.AccentRed, children: "|\u2310\u25A0_\u25A0| " })), ctrlCPressedOnce ? (_jsx(Text, { color: Colors.AccentYellow, children: "Press Ctrl+C again to exit." })) : ctrlDPressedOnce ? (_jsx(Text, { color: Colors.AccentYellow, children: "Press Ctrl+D again to exit." })) : (_jsx(ContextSummaryDisplay, { geminiMdFileCount: geminiMdFileCount, contextFileNames: contextFileNames, mcpServers: config.getMcpServers(), showToolDescriptions: showToolDescriptions }))] }), _jsxs(Box, { children: [showAutoAcceptIndicator !== ApprovalMode.DEFAULT &&
|
|
385
|
-
!shellModeActive && (_jsx(AutoAcceptIndicator, { approvalMode: showAutoAcceptIndicator })), shellModeActive && _jsx(ShellModeIndicator, {})] })] }), showErrorDetails && (
|
|
444
|
+
!shellModeActive && (_jsx(AutoAcceptIndicator, { approvalMode: showAutoAcceptIndicator })), shellModeActive && _jsx(ShellModeIndicator, {})] })] }), showErrorDetails && (_jsx(OverflowProvider, { children: _jsxs(Box, { flexDirection: "column", children: [_jsx(DetailedMessagesDisplay, { messages: filteredConsoleMessages, maxHeight: constrainHeight ? debugConsoleMaxHeight : undefined, width: inputWidth }), _jsx(ShowMoreLines, { constrainHeight: constrainHeight })] }) })), isInputActive && (_jsx(InputPrompt, { buffer: buffer, inputWidth: inputWidth, suggestionsWidth: suggestionsWidth, onSubmit: handleFinalSubmit, userMessages: userMessages, onClearScreen: handleClearScreen, config: config, slashCommands: slashCommands, commandContext: commandContext, shellModeActive: shellModeActive, setShellModeActive: setShellModeActive }))] })), initError && streamingState !== StreamingState.Responding && (_jsx(Box, { borderStyle: "round", borderColor: Colors.AccentRed, paddingX: 1, marginBottom: 1, children: history.find((item) => item.type === 'error' && item.text?.includes(initError))?.text ? (_jsx(Text, { color: Colors.AccentRed, children: history.find((item) => item.type === 'error' && item.text?.includes(initError))?.text })) : (_jsxs(_Fragment, { children: [_jsxs(Text, { color: Colors.AccentRed, children: ["Initialization Error: ", initError] }), _jsxs(Text, { color: Colors.AccentRed, children: [' ', "Please check API key and configuration."] })] })) })), _jsx(Footer, { model: currentModel, targetDir: config.getTargetDir(), debugMode: config.getDebugMode(), branchName: branchName, debugMessage: debugMessage, corgiMode: corgiMode, errorCount: errorCount, showErrorDetails: showErrorDetails, showMemoryUsage: config.getDebugMode() || config.getShowMemoryUsage(), promptTokenCount: sessionStats.lastPromptTokenCount })] })] }) }));
|
|
386
445
|
};
|
|
387
446
|
//# sourceMappingURL=App.js.map
|