@google/gemini-cli-core 0.1.15 → 0.1.16
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 +32 -0
- package/dist/google-gemini-cli-core-0.1.15.tgz +0 -0
- package/dist/src/code_assist/converter.d.ts +2 -1
- package/dist/src/code_assist/converter.js +2 -1
- package/dist/src/code_assist/converter.js.map +1 -1
- package/dist/src/code_assist/converter.test.js +13 -10
- package/dist/src/code_assist/converter.test.js.map +1 -1
- package/dist/src/code_assist/server.d.ts +2 -2
- package/dist/src/code_assist/server.js +4 -4
- package/dist/src/code_assist/server.js.map +1 -1
- package/dist/src/code_assist/server.test.js +9 -9
- package/dist/src/code_assist/server.test.js.map +1 -1
- package/dist/src/code_assist/setup.js +1 -1
- package/dist/src/code_assist/setup.js.map +1 -1
- package/dist/src/code_assist/setup.test.js +2 -2
- package/dist/src/code_assist/setup.test.js.map +1 -1
- package/dist/src/config/config.d.ts +19 -7
- package/dist/src/config/config.js +37 -13
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +33 -0
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/flashFallback.test.js +23 -47
- package/dist/src/config/flashFallback.test.js.map +1 -1
- package/dist/src/config/models.d.ts +1 -0
- package/dist/src/config/models.js +1 -0
- package/dist/src/config/models.js.map +1 -1
- package/dist/src/core/client.d.ts +3 -1
- package/dist/src/core/client.js +74 -23
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +167 -21
- package/dist/src/core/client.test.js.map +1 -1
- package/dist/src/core/contentGenerator.d.ts +2 -2
- package/dist/src/core/contentGenerator.js.map +1 -1
- package/dist/src/core/coreToolScheduler.d.ts +1 -3
- package/dist/src/core/coreToolScheduler.js +25 -16
- package/dist/src/core/coreToolScheduler.js.map +1 -1
- package/dist/src/core/coreToolScheduler.test.js +76 -1
- package/dist/src/core/coreToolScheduler.test.js.map +1 -1
- package/dist/src/core/geminiChat.js +3 -2
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/geminiChat.test.js +2 -2
- package/dist/src/core/geminiChat.test.js.map +1 -1
- package/dist/src/core/logger.d.ts +1 -0
- package/dist/src/core/logger.js +22 -8
- package/dist/src/core/logger.js.map +1 -1
- package/dist/src/core/logger.test.js +60 -9
- package/dist/src/core/logger.test.js.map +1 -1
- package/dist/src/core/nonInteractiveToolExecutor.js +11 -3
- package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
- package/dist/src/core/prompts.js +1 -1
- package/dist/src/core/tokenLimits.js +1 -0
- package/dist/src/core/tokenLimits.js.map +1 -1
- package/dist/src/core/turn.d.ts +3 -0
- package/dist/src/core/turn.js +3 -0
- package/dist/src/core/turn.js.map +1 -1
- package/dist/src/ide/detect-ide.d.ts +10 -0
- package/dist/src/ide/detect-ide.js +24 -0
- package/dist/src/ide/detect-ide.js.map +1 -0
- package/dist/src/ide/ide-client.d.ts +19 -7
- package/dist/src/ide/ide-client.js +100 -36
- package/dist/src/ide/ide-client.js.map +1 -1
- package/dist/src/ide/ide-installer.d.ts +15 -0
- package/dist/src/ide/ide-installer.js +111 -0
- package/dist/src/ide/ide-installer.js.map +1 -0
- package/dist/src/ide/ide-installer.test.d.ts +6 -0
- package/dist/src/ide/ide-installer.test.js +78 -0
- package/dist/src/ide/ide-installer.test.js.map +1 -0
- package/dist/src/ide/ideContext.d.ts +212 -107
- package/dist/src/ide/ideContext.js +45 -44
- package/dist/src/ide/ideContext.js.map +1 -1
- package/dist/src/ide/ideContext.test.js +254 -100
- package/dist/src/ide/ideContext.test.js.map +1 -1
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.js +4 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/oauth-provider.js +3 -3
- package/dist/src/mcp/oauth-provider.js.map +1 -1
- package/dist/src/mcp/oauth-provider.test.js +9 -8
- package/dist/src/mcp/oauth-provider.test.js.map +1 -1
- package/dist/src/mcp/oauth-utils.js +2 -2
- package/dist/src/mcp/oauth-utils.js.map +1 -1
- package/dist/src/mcp/oauth-utils.test.js +1 -1
- package/dist/src/mcp/oauth-utils.test.js.map +1 -1
- package/dist/src/services/loopDetectionService.d.ts +3 -0
- package/dist/src/services/loopDetectionService.js +18 -0
- package/dist/src/services/loopDetectionService.js.map +1 -1
- package/dist/src/services/loopDetectionService.test.js +90 -11
- package/dist/src/services/loopDetectionService.test.js.map +1 -1
- package/dist/src/services/shellExecutionService.js +7 -4
- package/dist/src/services/shellExecutionService.js.map +1 -1
- package/dist/src/services/shellExecutionService.test.js +11 -5
- package/dist/src/services/shellExecutionService.test.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +4 -2
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +80 -34
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +6 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +19 -0
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
- package/dist/src/telemetry/constants.d.ts +2 -1
- package/dist/src/telemetry/constants.js +2 -1
- package/dist/src/telemetry/constants.js.map +1 -1
- package/dist/src/telemetry/index.d.ts +2 -2
- package/dist/src/telemetry/index.js +2 -2
- package/dist/src/telemetry/index.js.map +1 -1
- package/dist/src/telemetry/loggers.d.ts +3 -2
- package/dist/src/telemetry/loggers.js +21 -5
- package/dist/src/telemetry/loggers.js.map +1 -1
- package/dist/src/telemetry/loggers.test.circular.js +2 -0
- package/dist/src/telemetry/loggers.test.circular.js.map +1 -1
- package/dist/src/telemetry/loggers.test.js +8 -3
- package/dist/src/telemetry/loggers.test.js.map +1 -1
- package/dist/src/telemetry/telemetry.test.js +2 -0
- package/dist/src/telemetry/telemetry.test.js.map +1 -1
- package/dist/src/telemetry/types.d.ts +19 -4
- package/dist/src/telemetry/types.js +30 -4
- package/dist/src/telemetry/types.js.map +1 -1
- package/dist/src/telemetry/uiTelemetry.test.js +3 -0
- package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
- package/dist/src/test-utils/mockWorkspaceContext.d.ts +13 -0
- package/dist/src/test-utils/mockWorkspaceContext.js +24 -0
- package/dist/src/test-utils/mockWorkspaceContext.js.map +1 -0
- package/dist/src/tools/edit.js +27 -3
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/edit.test.js +104 -1
- package/dist/src/tools/edit.test.js.map +1 -1
- package/dist/src/tools/glob.js +53 -17
- package/dist/src/tools/glob.js.map +1 -1
- package/dist/src/tools/glob.test.js +25 -2
- package/dist/src/tools/glob.test.js.map +1 -1
- package/dist/src/tools/grep.d.ts +1 -1
- package/dist/src/tools/grep.js +81 -29
- package/dist/src/tools/grep.js.map +1 -1
- package/dist/src/tools/grep.test.js +72 -5
- package/dist/src/tools/grep.test.js.map +1 -1
- package/dist/src/tools/ls.js +4 -3
- package/dist/src/tools/ls.js.map +1 -1
- package/dist/src/tools/ls.test.d.ts +6 -0
- package/dist/src/tools/ls.test.js +356 -0
- package/dist/src/tools/ls.test.js.map +1 -0
- package/dist/src/tools/mcp-client.js +8 -14
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-client.test.js +34 -0
- package/dist/src/tools/mcp-client.test.js.map +1 -1
- package/dist/src/tools/memoryTool.d.ts +17 -2
- package/dist/src/tools/memoryTool.js +130 -13
- package/dist/src/tools/memoryTool.js.map +1 -1
- package/dist/src/tools/memoryTool.test.js +88 -3
- package/dist/src/tools/memoryTool.test.js.map +1 -1
- package/dist/src/tools/read-file.js +8 -6
- package/dist/src/tools/read-file.js.map +1 -1
- package/dist/src/tools/read-file.test.js +30 -2
- package/dist/src/tools/read-file.test.js.map +1 -1
- package/dist/src/tools/read-many-files.js +22 -12
- package/dist/src/tools/read-many-files.js.map +1 -1
- package/dist/src/tools/read-many-files.test.js +35 -2
- package/dist/src/tools/read-many-files.test.js.map +1 -1
- package/dist/src/tools/shell.js +8 -4
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/shell.test.js +33 -1
- package/dist/src/tools/shell.test.js.map +1 -1
- package/dist/src/tools/tool-error.d.ts +22 -0
- package/dist/src/tools/tool-error.js +27 -0
- package/dist/src/tools/tool-error.js.map +1 -0
- package/dist/src/tools/tool-registry.test.js +8 -0
- package/dist/src/tools/tool-registry.test.js.map +1 -1
- package/dist/src/tools/tools.d.ts +8 -0
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/tools/write-file.js +5 -3
- package/dist/src/tools/write-file.js.map +1 -1
- package/dist/src/tools/write-file.test.js +36 -2
- package/dist/src/tools/write-file.test.js.map +1 -1
- package/dist/src/utils/bfsFileSearch.js +51 -27
- package/dist/src/utils/bfsFileSearch.js.map +1 -1
- package/dist/src/utils/bfsFileSearch.test.js +59 -0
- package/dist/src/utils/bfsFileSearch.test.js.map +1 -1
- package/dist/src/utils/editCorrector.js +2 -2
- package/dist/src/utils/editCorrector.js.map +1 -1
- package/dist/src/utils/editor.d.ts +1 -1
- package/dist/src/utils/editor.js +9 -0
- package/dist/src/utils/editor.js.map +1 -1
- package/dist/src/utils/editor.test.js +21 -1
- package/dist/src/utils/editor.test.js.map +1 -1
- package/dist/src/utils/fileUtils.js +12 -1
- package/dist/src/utils/fileUtils.js.map +1 -1
- package/dist/src/utils/fileUtils.test.js +29 -1
- package/dist/src/utils/fileUtils.test.js.map +1 -1
- package/dist/src/utils/flashFallback.integration.test.js +8 -0
- package/dist/src/utils/flashFallback.integration.test.js.map +1 -1
- package/dist/src/utils/memoryDiscovery.d.ts +1 -1
- package/dist/src/utils/memoryDiscovery.js +54 -75
- package/dist/src/utils/memoryDiscovery.js.map +1 -1
- package/dist/src/utils/memoryDiscovery.test.js +4 -3
- package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
- package/dist/src/utils/memoryImportProcessor.d.ts +19 -12
- package/dist/src/utils/memoryImportProcessor.js +241 -82
- package/dist/src/utils/memoryImportProcessor.js.map +1 -1
- package/dist/src/utils/memoryImportProcessor.test.js +595 -50
- package/dist/src/utils/memoryImportProcessor.test.js.map +1 -1
- package/dist/src/utils/nextSpeakerChecker.js +3 -23
- package/dist/src/utils/nextSpeakerChecker.js.map +1 -1
- package/dist/src/utils/nextSpeakerChecker.test.js +2 -2
- package/dist/src/utils/nextSpeakerChecker.test.js.map +1 -1
- package/dist/src/utils/retry.d.ts +3 -0
- package/dist/src/utils/retry.js.map +1 -1
- package/dist/src/utils/retry.test.js.map +1 -1
- package/dist/src/utils/secure-browser-launcher.d.ts +23 -0
- package/dist/src/utils/secure-browser-launcher.js +164 -0
- package/dist/src/utils/secure-browser-launcher.js.map +1 -0
- package/dist/src/utils/secure-browser-launcher.test.d.ts +6 -0
- package/dist/src/utils/secure-browser-launcher.test.js +149 -0
- package/dist/src/utils/secure-browser-launcher.test.js.map +1 -0
- package/dist/src/utils/summarizer.js +2 -2
- package/dist/src/utils/summarizer.js.map +1 -1
- package/dist/src/utils/workspaceContext.d.ts +47 -0
- package/dist/src/utils/workspaceContext.js +106 -0
- package/dist/src/utils/workspaceContext.js.map +1 -0
- package/dist/src/utils/workspaceContext.test.d.ts +6 -0
- package/dist/src/utils/workspaceContext.test.js +209 -0
- package/dist/src/utils/workspaceContext.test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -1
- package/dist/google-gemini-cli-core-0.1.13.tgz +0 -0
package/dist/src/core/client.js
CHANGED
|
@@ -19,8 +19,9 @@ import { ProxyAgent, setGlobalDispatcher } from 'undici';
|
|
|
19
19
|
import { DEFAULT_GEMINI_FLASH_MODEL } from '../config/models.js';
|
|
20
20
|
import { LoopDetectionService } from '../services/loopDetectionService.js';
|
|
21
21
|
import { ideContext } from '../ide/ideContext.js';
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
22
|
+
import { logNextSpeakerCheck } from '../telemetry/loggers.js';
|
|
23
|
+
import { MalformedJsonResponseEvent, NextSpeakerCheckEvent, } from '../telemetry/types.js';
|
|
24
|
+
import { ClearcutLogger } from '../telemetry/clearcut-logger/clearcut-logger.js';
|
|
24
25
|
function isThinkingSupported(model) {
|
|
25
26
|
if (model.startsWith('gemini-2.5'))
|
|
26
27
|
return true;
|
|
@@ -77,6 +78,7 @@ export class GeminiClient {
|
|
|
77
78
|
}
|
|
78
79
|
this.embeddingModel = config.getEmbeddingModel();
|
|
79
80
|
this.loopDetector = new LoopDetectionService(config);
|
|
81
|
+
this.lastPromptId = this.config.getSessionId();
|
|
80
82
|
}
|
|
81
83
|
async initialize(contentGeneratorConfig) {
|
|
82
84
|
this.contentGenerator = await createContentGenerator(contentGeneratorConfig, this.config, this.config.getSessionId());
|
|
@@ -118,8 +120,27 @@ export class GeminiClient {
|
|
|
118
120
|
async resetChat() {
|
|
119
121
|
this.chat = await this.startChat();
|
|
120
122
|
}
|
|
123
|
+
async addDirectoryContext() {
|
|
124
|
+
if (!this.chat) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
this.getChat().addHistory({
|
|
128
|
+
role: 'user',
|
|
129
|
+
parts: [{ text: await this.getDirectoryContext() }],
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
async getDirectoryContext() {
|
|
133
|
+
const workspaceContext = this.config.getWorkspaceContext();
|
|
134
|
+
const workspaceDirectories = workspaceContext.getDirectories();
|
|
135
|
+
const folderStructures = await Promise.all(workspaceDirectories.map((dir) => getFolderStructure(dir, {
|
|
136
|
+
fileService: this.config.getFileService(),
|
|
137
|
+
})));
|
|
138
|
+
const folderStructure = folderStructures.join('\n');
|
|
139
|
+
const dirList = workspaceDirectories.map((dir) => ` - ${dir}`).join('\n');
|
|
140
|
+
const workingDirPreamble = `I'm currently working in the following directories:\n${dirList}\n Folder structures are as follows:\n${folderStructure}`;
|
|
141
|
+
return workingDirPreamble;
|
|
142
|
+
}
|
|
121
143
|
async getEnvironment() {
|
|
122
|
-
const cwd = this.config.getWorkingDir();
|
|
123
144
|
const today = new Date().toLocaleDateString(undefined, {
|
|
124
145
|
weekday: 'long',
|
|
125
146
|
year: 'numeric',
|
|
@@ -127,14 +148,28 @@ export class GeminiClient {
|
|
|
127
148
|
day: 'numeric',
|
|
128
149
|
});
|
|
129
150
|
const platform = process.platform;
|
|
130
|
-
const
|
|
151
|
+
const workspaceContext = this.config.getWorkspaceContext();
|
|
152
|
+
const workspaceDirectories = workspaceContext.getDirectories();
|
|
153
|
+
const folderStructures = await Promise.all(workspaceDirectories.map((dir) => getFolderStructure(dir, {
|
|
131
154
|
fileService: this.config.getFileService(),
|
|
132
|
-
});
|
|
155
|
+
})));
|
|
156
|
+
const folderStructure = folderStructures.join('\n');
|
|
157
|
+
let workingDirPreamble;
|
|
158
|
+
if (workspaceDirectories.length === 1) {
|
|
159
|
+
workingDirPreamble = `I'm currently working in the directory: ${workspaceDirectories[0]}`;
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
const dirList = workspaceDirectories
|
|
163
|
+
.map((dir) => ` - ${dir}`)
|
|
164
|
+
.join('\n');
|
|
165
|
+
workingDirPreamble = `I'm currently working in the following directories:\n${dirList}`;
|
|
166
|
+
}
|
|
133
167
|
const context = `
|
|
134
168
|
This is the Gemini CLI. We are setting up the context for our chat.
|
|
135
169
|
Today's date is ${today}.
|
|
136
170
|
My operating system is: ${platform}
|
|
137
|
-
|
|
171
|
+
${workingDirPreamble}
|
|
172
|
+
Here is the folder structure of the current working directories:\n
|
|
138
173
|
${folderStructure}
|
|
139
174
|
`.trim();
|
|
140
175
|
const initialParts = [{ text: context }];
|
|
@@ -232,24 +267,31 @@ export class GeminiClient {
|
|
|
232
267
|
if (compressed) {
|
|
233
268
|
yield { type: GeminiEventType.ChatCompressed, value: compressed };
|
|
234
269
|
}
|
|
235
|
-
if (this.config.getIdeMode()) {
|
|
236
|
-
const
|
|
237
|
-
|
|
270
|
+
if (this.config.getIdeModeFeature() && this.config.getIdeMode()) {
|
|
271
|
+
const ideContextState = ideContext.getIdeContext();
|
|
272
|
+
const openFiles = ideContextState?.workspaceState?.openFiles;
|
|
273
|
+
if (openFiles && openFiles.length > 0) {
|
|
238
274
|
const contextParts = [];
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
275
|
+
const firstFile = openFiles[0];
|
|
276
|
+
const activeFile = firstFile.isActive ? firstFile : undefined;
|
|
277
|
+
if (activeFile) {
|
|
278
|
+
contextParts.push(`This is the file that the user is looking at:\n- Path: ${activeFile.path}`);
|
|
279
|
+
if (activeFile.cursor) {
|
|
280
|
+
contextParts.push(`This is the cursor position in the file:\n- Cursor Position: Line ${activeFile.cursor.line}, Character ${activeFile.cursor.character}`);
|
|
243
281
|
}
|
|
244
|
-
if (
|
|
245
|
-
contextParts.push(`This is the selected text in the
|
|
282
|
+
if (activeFile.selectedText) {
|
|
283
|
+
contextParts.push(`This is the selected text in the file:\n- ${activeFile.selectedText}`);
|
|
246
284
|
}
|
|
247
285
|
}
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
286
|
+
const otherOpenFiles = activeFile ? openFiles.slice(1) : openFiles;
|
|
287
|
+
if (otherOpenFiles.length > 0) {
|
|
288
|
+
const recentFiles = otherOpenFiles
|
|
289
|
+
.map((file) => `- ${file.path}`)
|
|
251
290
|
.join('\n');
|
|
252
|
-
|
|
291
|
+
const heading = activeFile
|
|
292
|
+
? `Here are some other files the user has open, with the most recent at the top:`
|
|
293
|
+
: `Here are some files the user has open, with the most recent at the top:`;
|
|
294
|
+
contextParts.push(`${heading}\n${recentFiles}`);
|
|
253
295
|
}
|
|
254
296
|
if (contextParts.length > 0) {
|
|
255
297
|
request = [
|
|
@@ -282,8 +324,8 @@ export class GeminiClient {
|
|
|
282
324
|
return turn;
|
|
283
325
|
}
|
|
284
326
|
const nextSpeakerCheck = await checkNextSpeaker(this.getChat(), this, signal);
|
|
327
|
+
logNextSpeakerCheck(this.config, new NextSpeakerCheckEvent(prompt_id, turn.finishReason?.toString() || '', nextSpeakerCheck?.next_speaker || ''));
|
|
285
328
|
if (nextSpeakerCheck?.next_speaker === 'model') {
|
|
286
|
-
logFlashDecidedToContinue(this.config, new FlashDecidedToContinueEvent(prompt_id));
|
|
287
329
|
const nextRequest = [{ text: 'Please continue.' }];
|
|
288
330
|
// This recursive call's events will be yielded out, but the final
|
|
289
331
|
// turn object will be from the top-level call.
|
|
@@ -312,17 +354,25 @@ export class GeminiClient {
|
|
|
312
354
|
responseMimeType: 'application/json',
|
|
313
355
|
},
|
|
314
356
|
contents,
|
|
315
|
-
});
|
|
357
|
+
}, this.lastPromptId);
|
|
316
358
|
const result = await retryWithBackoff(apiCall, {
|
|
317
359
|
onPersistent429: async (authType, error) => await this.handleFlashFallback(authType, error),
|
|
318
360
|
authType: this.config.getContentGeneratorConfig()?.authType,
|
|
319
361
|
});
|
|
320
|
-
|
|
362
|
+
let text = getResponseText(result);
|
|
321
363
|
if (!text) {
|
|
322
364
|
const error = new Error('API returned an empty response for generateJson.');
|
|
323
365
|
await reportError(error, 'Error in generateJson: API returned an empty response.', contents, 'generateJson-empty-response');
|
|
324
366
|
throw error;
|
|
325
367
|
}
|
|
368
|
+
const prefix = '```json';
|
|
369
|
+
const suffix = '```';
|
|
370
|
+
if (text.startsWith(prefix) && text.endsWith(suffix)) {
|
|
371
|
+
ClearcutLogger.getInstance(this.config)?.logMalformedJsonResponseEvent(new MalformedJsonResponseEvent(modelToUse));
|
|
372
|
+
text = text
|
|
373
|
+
.substring(prefix.length, text.length - suffix.length)
|
|
374
|
+
.trim();
|
|
375
|
+
}
|
|
326
376
|
try {
|
|
327
377
|
return JSON.parse(text);
|
|
328
378
|
}
|
|
@@ -365,7 +415,7 @@ export class GeminiClient {
|
|
|
365
415
|
model: modelToUse,
|
|
366
416
|
config: requestConfig,
|
|
367
417
|
contents,
|
|
368
|
-
});
|
|
418
|
+
}, this.lastPromptId);
|
|
369
419
|
const result = await retryWithBackoff(apiCall, {
|
|
370
420
|
onPersistent429: async (authType, error) => await this.handleFlashFallback(authType, error),
|
|
371
421
|
authType: this.config.getContentGeneratorConfig()?.authType,
|
|
@@ -492,6 +542,7 @@ export class GeminiClient {
|
|
|
492
542
|
const accepted = await fallbackHandler(currentModel, fallbackModel, error);
|
|
493
543
|
if (accepted !== false && accepted !== null) {
|
|
494
544
|
this.config.setModel(fallbackModel);
|
|
545
|
+
this.config.setFallbackMode(true);
|
|
495
546
|
return fallbackModel;
|
|
496
547
|
}
|
|
497
548
|
// Check if the model was switched manually in the handler
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/core/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/core/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -168,14 +168,19 @@ describe('Gemini Client (client.ts)', () => {
|
|
|
168
168
|
setQuotaErrorOccurred: vi.fn(),
|
|
169
169
|
getNoBrowser: vi.fn().mockReturnValue(false),
|
|
170
170
|
getUsageStatisticsEnabled: vi.fn().mockReturnValue(true),
|
|
171
|
-
|
|
171
|
+
getIdeModeFeature: vi.fn().mockReturnValue(false),
|
|
172
|
+
getIdeMode: vi.fn().mockReturnValue(true),
|
|
173
|
+
getWorkspaceContext: vi.fn().mockReturnValue({
|
|
174
|
+
getDirectories: vi.fn().mockReturnValue(['/test/dir']),
|
|
175
|
+
}),
|
|
172
176
|
getGeminiClient: vi.fn(),
|
|
177
|
+
setFallbackMode: vi.fn(),
|
|
173
178
|
};
|
|
174
179
|
const MockedConfig = vi.mocked(Config, true);
|
|
175
180
|
MockedConfig.mockImplementation(() => mockConfigObject);
|
|
176
181
|
// We can instantiate the client here since Config is mocked
|
|
177
182
|
// and the constructor will use the mocked GoogleGenAI
|
|
178
|
-
client = new GeminiClient(new Config({}));
|
|
183
|
+
client = new GeminiClient(new Config({ sessionId: 'test-session-id' }));
|
|
179
184
|
mockConfigObject.getGeminiClient.mockReturnValue(client);
|
|
180
185
|
await client.initialize(contentGeneratorConfig);
|
|
181
186
|
});
|
|
@@ -287,7 +292,7 @@ describe('Gemini Client (client.ts)', () => {
|
|
|
287
292
|
topP: 1,
|
|
288
293
|
},
|
|
289
294
|
contents,
|
|
290
|
-
});
|
|
295
|
+
}, 'test-session-id');
|
|
291
296
|
});
|
|
292
297
|
});
|
|
293
298
|
describe('generateJson', () => {
|
|
@@ -313,7 +318,7 @@ describe('Gemini Client (client.ts)', () => {
|
|
|
313
318
|
responseMimeType: 'application/json',
|
|
314
319
|
},
|
|
315
320
|
contents,
|
|
316
|
-
});
|
|
321
|
+
}, 'test-session-id');
|
|
317
322
|
});
|
|
318
323
|
it('should allow overriding model and config', async () => {
|
|
319
324
|
const contents = [{ role: 'user', parts: [{ text: 'hello' }] }];
|
|
@@ -339,7 +344,7 @@ describe('Gemini Client (client.ts)', () => {
|
|
|
339
344
|
responseMimeType: 'application/json',
|
|
340
345
|
},
|
|
341
346
|
contents,
|
|
342
|
-
});
|
|
347
|
+
}, 'test-session-id');
|
|
343
348
|
});
|
|
344
349
|
});
|
|
345
350
|
describe('addHistory', () => {
|
|
@@ -519,18 +524,114 @@ describe('Gemini Client (client.ts)', () => {
|
|
|
519
524
|
});
|
|
520
525
|
});
|
|
521
526
|
describe('sendMessageStream', () => {
|
|
522
|
-
it('should include IDE context when
|
|
527
|
+
it('should include IDE context when ideModeFeature is enabled', async () => {
|
|
523
528
|
// Arrange
|
|
524
|
-
vi.mocked(ideContext.
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
529
|
+
vi.mocked(ideContext.getIdeContext).mockReturnValue({
|
|
530
|
+
workspaceState: {
|
|
531
|
+
openFiles: [
|
|
532
|
+
{
|
|
533
|
+
path: '/path/to/active/file.ts',
|
|
534
|
+
timestamp: Date.now(),
|
|
535
|
+
isActive: true,
|
|
536
|
+
selectedText: 'hello',
|
|
537
|
+
cursor: { line: 5, character: 10 },
|
|
538
|
+
},
|
|
539
|
+
{
|
|
540
|
+
path: '/path/to/recent/file1.ts',
|
|
541
|
+
timestamp: Date.now(),
|
|
542
|
+
},
|
|
543
|
+
{
|
|
544
|
+
path: '/path/to/recent/file2.ts',
|
|
545
|
+
timestamp: Date.now(),
|
|
546
|
+
},
|
|
547
|
+
],
|
|
548
|
+
},
|
|
549
|
+
});
|
|
550
|
+
vi.spyOn(client['config'], 'getIdeModeFeature').mockReturnValue(true);
|
|
551
|
+
const mockStream = (async function* () {
|
|
552
|
+
yield { type: 'content', value: 'Hello' };
|
|
553
|
+
})();
|
|
554
|
+
mockTurnRunFn.mockReturnValue(mockStream);
|
|
555
|
+
const mockChat = {
|
|
556
|
+
addHistory: vi.fn(),
|
|
557
|
+
getHistory: vi.fn().mockReturnValue([]),
|
|
558
|
+
};
|
|
559
|
+
client['chat'] = mockChat;
|
|
560
|
+
const mockGenerator = {
|
|
561
|
+
countTokens: vi.fn().mockResolvedValue({ totalTokens: 0 }),
|
|
562
|
+
generateContent: mockGenerateContentFn,
|
|
563
|
+
};
|
|
564
|
+
client['contentGenerator'] = mockGenerator;
|
|
565
|
+
const initialRequest = [{ text: 'Hi' }];
|
|
566
|
+
// Act
|
|
567
|
+
const stream = client.sendMessageStream(initialRequest, new AbortController().signal, 'prompt-id-ide');
|
|
568
|
+
for await (const _ of stream) {
|
|
569
|
+
// consume stream
|
|
570
|
+
}
|
|
571
|
+
// Assert
|
|
572
|
+
expect(ideContext.getIdeContext).toHaveBeenCalled();
|
|
573
|
+
const expectedContext = `
|
|
574
|
+
This is the file that the user is looking at:
|
|
575
|
+
- Path: /path/to/active/file.ts
|
|
576
|
+
This is the cursor position in the file:
|
|
577
|
+
- Cursor Position: Line 5, Character 10
|
|
578
|
+
This is the selected text in the file:
|
|
579
|
+
- hello
|
|
580
|
+
Here are some other files the user has open, with the most recent at the top:
|
|
581
|
+
- /path/to/recent/file1.ts
|
|
582
|
+
- /path/to/recent/file2.ts
|
|
583
|
+
`.trim();
|
|
584
|
+
const expectedRequest = [{ text: expectedContext }, ...initialRequest];
|
|
585
|
+
expect(mockTurnRunFn).toHaveBeenCalledWith(expectedRequest, expect.any(Object));
|
|
586
|
+
});
|
|
587
|
+
it('should not add context if ideModeFeature is enabled but no open files', async () => {
|
|
588
|
+
// Arrange
|
|
589
|
+
vi.mocked(ideContext.getIdeContext).mockReturnValue({
|
|
590
|
+
workspaceState: {
|
|
591
|
+
openFiles: [],
|
|
592
|
+
},
|
|
593
|
+
});
|
|
594
|
+
vi.spyOn(client['config'], 'getIdeModeFeature').mockReturnValue(true);
|
|
595
|
+
const mockStream = (async function* () {
|
|
596
|
+
yield { type: 'content', value: 'Hello' };
|
|
597
|
+
})();
|
|
598
|
+
mockTurnRunFn.mockReturnValue(mockStream);
|
|
599
|
+
const mockChat = {
|
|
600
|
+
addHistory: vi.fn(),
|
|
601
|
+
getHistory: vi.fn().mockReturnValue([]),
|
|
602
|
+
};
|
|
603
|
+
client['chat'] = mockChat;
|
|
604
|
+
const mockGenerator = {
|
|
605
|
+
countTokens: vi.fn().mockResolvedValue({ totalTokens: 0 }),
|
|
606
|
+
generateContent: mockGenerateContentFn,
|
|
607
|
+
};
|
|
608
|
+
client['contentGenerator'] = mockGenerator;
|
|
609
|
+
const initialRequest = [{ text: 'Hi' }];
|
|
610
|
+
// Act
|
|
611
|
+
const stream = client.sendMessageStream(initialRequest, new AbortController().signal, 'prompt-id-ide');
|
|
612
|
+
for await (const _ of stream) {
|
|
613
|
+
// consume stream
|
|
614
|
+
}
|
|
615
|
+
// Assert
|
|
616
|
+
expect(ideContext.getIdeContext).toHaveBeenCalled();
|
|
617
|
+
expect(mockTurnRunFn).toHaveBeenCalledWith(initialRequest, expect.any(Object));
|
|
618
|
+
});
|
|
619
|
+
it('should add context if ideModeFeature is enabled and there is one active file', async () => {
|
|
620
|
+
// Arrange
|
|
621
|
+
vi.mocked(ideContext.getIdeContext).mockReturnValue({
|
|
622
|
+
workspaceState: {
|
|
623
|
+
openFiles: [
|
|
624
|
+
{
|
|
625
|
+
path: '/path/to/active/file.ts',
|
|
626
|
+
timestamp: Date.now(),
|
|
627
|
+
isActive: true,
|
|
628
|
+
selectedText: 'hello',
|
|
629
|
+
cursor: { line: 5, character: 10 },
|
|
630
|
+
},
|
|
631
|
+
],
|
|
632
|
+
},
|
|
532
633
|
});
|
|
533
|
-
vi.spyOn(client['config'], '
|
|
634
|
+
vi.spyOn(client['config'], 'getIdeModeFeature').mockReturnValue(true);
|
|
534
635
|
const mockStream = (async function* () {
|
|
535
636
|
yield { type: 'content', value: 'Hello' };
|
|
536
637
|
})();
|
|
@@ -552,15 +653,59 @@ describe('Gemini Client (client.ts)', () => {
|
|
|
552
653
|
// consume stream
|
|
553
654
|
}
|
|
554
655
|
// Assert
|
|
555
|
-
expect(ideContext.
|
|
656
|
+
expect(ideContext.getIdeContext).toHaveBeenCalled();
|
|
556
657
|
const expectedContext = `
|
|
557
|
-
This is the file that the user
|
|
658
|
+
This is the file that the user is looking at:
|
|
558
659
|
- Path: /path/to/active/file.ts
|
|
559
660
|
This is the cursor position in the file:
|
|
560
661
|
- Cursor Position: Line 5, Character 10
|
|
561
|
-
This is the selected text in the
|
|
662
|
+
This is the selected text in the file:
|
|
562
663
|
- hello
|
|
563
|
-
|
|
664
|
+
`.trim();
|
|
665
|
+
const expectedRequest = [{ text: expectedContext }, ...initialRequest];
|
|
666
|
+
expect(mockTurnRunFn).toHaveBeenCalledWith(expectedRequest, expect.any(Object));
|
|
667
|
+
});
|
|
668
|
+
it('should add context if ideModeFeature is enabled and there are open files but no active file', async () => {
|
|
669
|
+
// Arrange
|
|
670
|
+
vi.mocked(ideContext.getIdeContext).mockReturnValue({
|
|
671
|
+
workspaceState: {
|
|
672
|
+
openFiles: [
|
|
673
|
+
{
|
|
674
|
+
path: '/path/to/recent/file1.ts',
|
|
675
|
+
timestamp: Date.now(),
|
|
676
|
+
},
|
|
677
|
+
{
|
|
678
|
+
path: '/path/to/recent/file2.ts',
|
|
679
|
+
timestamp: Date.now(),
|
|
680
|
+
},
|
|
681
|
+
],
|
|
682
|
+
},
|
|
683
|
+
});
|
|
684
|
+
vi.spyOn(client['config'], 'getIdeModeFeature').mockReturnValue(true);
|
|
685
|
+
const mockStream = (async function* () {
|
|
686
|
+
yield { type: 'content', value: 'Hello' };
|
|
687
|
+
})();
|
|
688
|
+
mockTurnRunFn.mockReturnValue(mockStream);
|
|
689
|
+
const mockChat = {
|
|
690
|
+
addHistory: vi.fn(),
|
|
691
|
+
getHistory: vi.fn().mockReturnValue([]),
|
|
692
|
+
};
|
|
693
|
+
client['chat'] = mockChat;
|
|
694
|
+
const mockGenerator = {
|
|
695
|
+
countTokens: vi.fn().mockResolvedValue({ totalTokens: 0 }),
|
|
696
|
+
generateContent: mockGenerateContentFn,
|
|
697
|
+
};
|
|
698
|
+
client['contentGenerator'] = mockGenerator;
|
|
699
|
+
const initialRequest = [{ text: 'Hi' }];
|
|
700
|
+
// Act
|
|
701
|
+
const stream = client.sendMessageStream(initialRequest, new AbortController().signal, 'prompt-id-ide');
|
|
702
|
+
for await (const _ of stream) {
|
|
703
|
+
// consume stream
|
|
704
|
+
}
|
|
705
|
+
// Assert
|
|
706
|
+
expect(ideContext.getIdeContext).toHaveBeenCalled();
|
|
707
|
+
const expectedContext = `
|
|
708
|
+
Here are some files the user has open, with the most recent at the top:
|
|
564
709
|
- /path/to/recent/file1.ts
|
|
565
710
|
- /path/to/recent/file2.ts
|
|
566
711
|
`.trim();
|
|
@@ -790,7 +935,7 @@ Here are files the user has recently opened, with the most recent at the top:
|
|
|
790
935
|
model: currentModel,
|
|
791
936
|
config: expect.any(Object),
|
|
792
937
|
contents,
|
|
793
|
-
});
|
|
938
|
+
}, 'test-session-id');
|
|
794
939
|
});
|
|
795
940
|
});
|
|
796
941
|
describe('tryCompressChat', () => {
|
|
@@ -844,7 +989,8 @@ Here are files the user has recently opened, with the most recent at the top:
|
|
|
844
989
|
const fallbackModel = DEFAULT_GEMINI_FLASH_MODEL;
|
|
845
990
|
// mock config been changed
|
|
846
991
|
const currentModel = initialModel + '-changed';
|
|
847
|
-
vi.spyOn(client['config'], 'getModel')
|
|
992
|
+
const getModelSpy = vi.spyOn(client['config'], 'getModel');
|
|
993
|
+
getModelSpy.mockReturnValue(currentModel);
|
|
848
994
|
const mockFallbackHandler = vi.fn().mockResolvedValue(true);
|
|
849
995
|
client['config'].flashFallbackHandler = mockFallbackHandler;
|
|
850
996
|
client['config'].setModel = vi.fn();
|