@google/gemini-cli-core 0.1.10-dev.15 → 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-core-0.1.9.tgz +0 -0
- package/dist/src/code_assist/codeAssist.js +3 -2
- package/dist/src/code_assist/codeAssist.js.map +1 -1
- package/dist/src/code_assist/converter.js.map +1 -1
- package/dist/src/code_assist/oauth2.d.ts +2 -1
- package/dist/src/code_assist/oauth2.js +28 -5
- package/dist/src/code_assist/oauth2.js.map +1 -1
- package/dist/src/code_assist/oauth2.test.js +65 -7
- package/dist/src/code_assist/oauth2.test.js.map +1 -1
- package/dist/src/code_assist/server.js +35 -2
- package/dist/src/code_assist/server.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.d.ts +6 -0
- package/dist/src/code_assist/setup.test.js +62 -0
- package/dist/src/code_assist/setup.test.js.map +1 -0
- package/dist/src/config/config.d.ts +23 -3
- package/dist/src/config/config.js +85 -56
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +25 -0
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/core/client.d.ts +20 -5
- package/dist/src/core/client.js +75 -21
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +51 -10
- package/dist/src/core/client.test.js.map +1 -1
- package/dist/src/core/contentGenerator.d.ts +3 -4
- package/dist/src/core/contentGenerator.js +14 -13
- package/dist/src/core/contentGenerator.js.map +1 -1
- package/dist/src/core/contentGenerator.test.js +49 -3
- package/dist/src/core/contentGenerator.test.js.map +1 -1
- package/dist/src/core/coreToolScheduler.d.ts +9 -2
- package/dist/src/core/coreToolScheduler.js +28 -2
- package/dist/src/core/coreToolScheduler.js.map +1 -1
- package/dist/src/core/coreToolScheduler.test.js +80 -0
- package/dist/src/core/coreToolScheduler.test.js.map +1 -1
- package/dist/src/core/geminiChat.d.ts +2 -2
- package/dist/src/core/geminiChat.js +52 -32
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/geminiChat.test.js +4 -2
- package/dist/src/core/geminiChat.test.js.map +1 -1
- package/dist/src/core/modelCheck.js +1 -1
- package/dist/src/core/modelCheck.js.map +1 -1
- package/dist/src/core/nonInteractiveToolExecutor.js +3 -0
- package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
- package/dist/src/core/nonInteractiveToolExecutor.test.js +5 -0
- package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
- package/dist/src/core/turn.d.ts +3 -1
- package/dist/src/core/turn.js +5 -2
- package/dist/src/core/turn.js.map +1 -1
- package/dist/src/core/turn.test.js +2 -2
- package/dist/src/core/turn.test.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/services/fileDiscoveryService.d.ts +4 -0
- package/dist/src/services/fileDiscoveryService.js +13 -0
- package/dist/src/services/fileDiscoveryService.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +20 -0
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +2 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +5 -0
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
- package/dist/src/telemetry/loggers.test.js +18 -5
- package/dist/src/telemetry/loggers.test.js.map +1 -1
- package/dist/src/telemetry/types.d.ts +9 -4
- package/dist/src/telemetry/types.js +14 -4
- package/dist/src/telemetry/types.js.map +1 -1
- package/dist/src/telemetry/uiTelemetry.test.js +1 -0
- package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
- package/dist/src/tools/edit.d.ts +1 -2
- package/dist/src/tools/edit.js +11 -12
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/edit.test.js +7 -9
- package/dist/src/tools/edit.test.js.map +1 -1
- package/dist/src/tools/glob.js +9 -8
- package/dist/src/tools/glob.js.map +1 -1
- package/dist/src/tools/glob.test.js +3 -3
- package/dist/src/tools/glob.test.js.map +1 -1
- package/dist/src/tools/grep.js +8 -7
- package/dist/src/tools/grep.js.map +1 -1
- package/dist/src/tools/grep.test.js +3 -3
- package/dist/src/tools/grep.test.js.map +1 -1
- package/dist/src/tools/ls.js +9 -8
- package/dist/src/tools/ls.js.map +1 -1
- package/dist/src/tools/mcp-client.d.ts +0 -9
- package/dist/src/tools/mcp-client.js +21 -37
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-client.test.js +85 -4
- package/dist/src/tools/mcp-client.test.js.map +1 -1
- package/dist/src/tools/mcp-tool.d.ts +3 -3
- package/dist/src/tools/mcp-tool.js.map +1 -1
- package/dist/src/tools/memoryTool.js +3 -2
- package/dist/src/tools/memoryTool.js.map +1 -1
- package/dist/src/tools/read-file.js +8 -8
- package/dist/src/tools/read-file.js.map +1 -1
- package/dist/src/tools/read-file.test.js +4 -4
- package/dist/src/tools/read-file.test.js.map +1 -1
- package/dist/src/tools/read-many-files.js +24 -38
- package/dist/src/tools/read-many-files.js.map +1 -1
- package/dist/src/tools/read-many-files.test.js +4 -4
- package/dist/src/tools/read-many-files.test.js.map +1 -1
- package/dist/src/tools/shell.d.ts +5 -2
- package/dist/src/tools/shell.js +38 -17
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/shell.test.js +85 -65
- package/dist/src/tools/shell.test.js.map +1 -1
- package/dist/src/tools/tool-registry.d.ts +16 -2
- package/dist/src/tools/tool-registry.js +150 -19
- package/dist/src/tools/tool-registry.js.map +1 -1
- package/dist/src/tools/tool-registry.test.js +186 -75
- package/dist/src/tools/tool-registry.test.js.map +1 -1
- package/dist/src/tools/tools.d.ts +7 -4
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/tools/web-fetch.js +6 -5
- package/dist/src/tools/web-fetch.js.map +1 -1
- package/dist/src/tools/web-search.d.ts +1 -1
- package/dist/src/tools/web-search.js +7 -6
- package/dist/src/tools/web-search.js.map +1 -1
- package/dist/src/tools/write-file.d.ts +0 -1
- package/dist/src/tools/write-file.js +10 -11
- package/dist/src/tools/write-file.js.map +1 -1
- package/dist/src/tools/write-file.test.js +4 -4
- package/dist/src/tools/write-file.test.js.map +1 -1
- package/dist/src/utils/editCorrector.d.ts +1 -1
- package/dist/src/utils/editCorrector.js +106 -2
- package/dist/src/utils/editCorrector.js.map +1 -1
- package/dist/src/utils/editCorrector.test.js +69 -19
- package/dist/src/utils/editCorrector.test.js.map +1 -1
- package/dist/src/utils/editor.d.ts +1 -1
- package/dist/src/utils/editor.js +1 -1
- package/dist/src/utils/fileUtils.d.ts +1 -1
- package/dist/src/utils/fileUtils.js +17 -0
- package/dist/src/utils/fileUtils.js.map +1 -1
- package/dist/src/utils/fileUtils.test.js +17 -0
- package/dist/src/utils/fileUtils.test.js.map +1 -1
- package/dist/src/utils/flashFallback.integration.test.js +1 -1
- package/dist/src/utils/flashFallback.integration.test.js.map +1 -1
- package/dist/src/utils/messageInspectors.d.ts +1 -0
- package/dist/src/utils/messageInspectors.js +5 -0
- package/dist/src/utils/messageInspectors.js.map +1 -1
- package/dist/src/utils/nextSpeakerChecker.js +1 -1
- package/dist/src/utils/nextSpeakerChecker.js.map +1 -1
- package/dist/src/utils/quotaErrorDetection.d.ts +22 -0
- package/dist/src/utils/quotaErrorDetection.js +74 -0
- package/dist/src/utils/quotaErrorDetection.js.map +1 -0
- package/dist/src/utils/retry.d.ts +1 -1
- package/dist/src/utils/retry.js +58 -2
- package/dist/src/utils/retry.js.map +1 -1
- package/dist/src/utils/retry.test.js +1 -1
- package/dist/src/utils/retry.test.js.map +1 -1
- package/dist/src/utils/schemaValidator.d.ts +10 -5
- package/dist/src/utils/schemaValidator.js +44 -32
- package/dist/src/utils/schemaValidator.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -6
|
@@ -21,6 +21,7 @@ import { WebSearchTool } from '../tools/web-search.js';
|
|
|
21
21
|
import { GeminiClient } from '../core/client.js';
|
|
22
22
|
import { FileDiscoveryService } from '../services/fileDiscoveryService.js';
|
|
23
23
|
import { GitService } from '../services/gitService.js';
|
|
24
|
+
import { loadServerHierarchicalMemory } from '../utils/memoryDiscovery.js';
|
|
24
25
|
import { getProjectTempDir } from '../utils/paths.js';
|
|
25
26
|
import { initializeTelemetry, DEFAULT_TELEMETRY_TARGET, DEFAULT_OTLP_ENDPOINT, StartSessionEvent, } from '../telemetry/index.js';
|
|
26
27
|
import { DEFAULT_GEMINI_EMBEDDING_MODEL, DEFAULT_GEMINI_FLASH_MODEL, } from './models.js';
|
|
@@ -43,6 +44,8 @@ export class MCPServerConfig {
|
|
|
43
44
|
timeout;
|
|
44
45
|
trust;
|
|
45
46
|
description;
|
|
47
|
+
includeTools;
|
|
48
|
+
excludeTools;
|
|
46
49
|
constructor(
|
|
47
50
|
// For stdio transport
|
|
48
51
|
command, args, env, cwd,
|
|
@@ -55,7 +58,7 @@ export class MCPServerConfig {
|
|
|
55
58
|
// Common
|
|
56
59
|
timeout, trust,
|
|
57
60
|
// Metadata
|
|
58
|
-
description) {
|
|
61
|
+
description, includeTools, excludeTools) {
|
|
59
62
|
this.command = command;
|
|
60
63
|
this.args = args;
|
|
61
64
|
this.env = env;
|
|
@@ -67,6 +70,8 @@ export class MCPServerConfig {
|
|
|
67
70
|
this.timeout = timeout;
|
|
68
71
|
this.trust = trust;
|
|
69
72
|
this.description = description;
|
|
73
|
+
this.includeTools = includeTools;
|
|
74
|
+
this.excludeTools = excludeTools;
|
|
70
75
|
}
|
|
71
76
|
}
|
|
72
77
|
export class Config {
|
|
@@ -103,7 +108,10 @@ export class Config {
|
|
|
103
108
|
model;
|
|
104
109
|
extensionContextFilePaths;
|
|
105
110
|
modelSwitchedDuringSession = false;
|
|
111
|
+
listExtensions;
|
|
112
|
+
_activeExtensions;
|
|
106
113
|
flashFallbackHandler;
|
|
114
|
+
quotaErrorOccurred = false;
|
|
107
115
|
constructor(params) {
|
|
108
116
|
this.sessionId = params.sessionId;
|
|
109
117
|
this.embeddingModel =
|
|
@@ -142,6 +150,8 @@ export class Config {
|
|
|
142
150
|
this.bugCommand = params.bugCommand;
|
|
143
151
|
this.model = params.model;
|
|
144
152
|
this.extensionContextFilePaths = params.extensionContextFilePaths ?? [];
|
|
153
|
+
this.listExtensions = params.listExtensions ?? false;
|
|
154
|
+
this._activeExtensions = params.activeExtensions ?? [];
|
|
145
155
|
if (params.contextFileName) {
|
|
146
156
|
setGeminiMdFilename(params.contextFileName);
|
|
147
157
|
}
|
|
@@ -155,23 +165,25 @@ export class Config {
|
|
|
155
165
|
console.log('Data collection is disabled.');
|
|
156
166
|
}
|
|
157
167
|
}
|
|
168
|
+
async initialize() {
|
|
169
|
+
// Initialize centralized FileDiscoveryService
|
|
170
|
+
this.getFileService();
|
|
171
|
+
if (this.getCheckpointingEnabled()) {
|
|
172
|
+
try {
|
|
173
|
+
await this.getGitService();
|
|
174
|
+
}
|
|
175
|
+
catch {
|
|
176
|
+
// For now swallow the error, later log it.
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
this.toolRegistry = await this.createToolRegistry();
|
|
180
|
+
}
|
|
158
181
|
async refreshAuth(authMethod) {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
const modelToUse = this.model; // Use the original default model
|
|
163
|
-
// Temporarily clear contentGeneratorConfig to prevent getModel() from returning
|
|
164
|
-
// the previous session's model (which might be Flash)
|
|
165
|
-
this.contentGeneratorConfig = undefined;
|
|
166
|
-
const contentConfig = await createContentGeneratorConfig(modelToUse, authMethod, this);
|
|
167
|
-
const gc = new GeminiClient(this);
|
|
168
|
-
this.geminiClient = gc;
|
|
169
|
-
this.toolRegistry = await createToolRegistry(this);
|
|
170
|
-
await gc.initialize(contentConfig);
|
|
171
|
-
this.contentGeneratorConfig = contentConfig;
|
|
182
|
+
this.contentGeneratorConfig = await createContentGeneratorConfig(this.model, authMethod);
|
|
183
|
+
this.geminiClient = new GeminiClient(this);
|
|
184
|
+
await this.geminiClient.initialize(this.contentGeneratorConfig);
|
|
172
185
|
// Reset the session flag since we're explicitly changing auth and using default model
|
|
173
186
|
this.modelSwitchedDuringSession = false;
|
|
174
|
-
// Note: In the future, we may want to reset any cached state when switching auth methods
|
|
175
187
|
}
|
|
176
188
|
getSessionId() {
|
|
177
189
|
return this.sessionId;
|
|
@@ -200,6 +212,12 @@ export class Config {
|
|
|
200
212
|
setFlashFallbackHandler(handler) {
|
|
201
213
|
this.flashFallbackHandler = handler;
|
|
202
214
|
}
|
|
215
|
+
setQuotaErrorOccurred(value) {
|
|
216
|
+
this.quotaErrorOccurred = value;
|
|
217
|
+
}
|
|
218
|
+
getQuotaErrorOccurred() {
|
|
219
|
+
return this.quotaErrorOccurred;
|
|
220
|
+
}
|
|
203
221
|
getEmbeddingModel() {
|
|
204
222
|
return this.embeddingModel;
|
|
205
223
|
}
|
|
@@ -317,6 +335,12 @@ export class Config {
|
|
|
317
335
|
getExtensionContextFilePaths() {
|
|
318
336
|
return this.extensionContextFilePaths;
|
|
319
337
|
}
|
|
338
|
+
getListExtensions() {
|
|
339
|
+
return this.listExtensions;
|
|
340
|
+
}
|
|
341
|
+
getActiveExtensions() {
|
|
342
|
+
return this._activeExtensions;
|
|
343
|
+
}
|
|
320
344
|
async getGitService() {
|
|
321
345
|
if (!this.gitService) {
|
|
322
346
|
this.gitService = new GitService(this.targetDir);
|
|
@@ -324,49 +348,54 @@ export class Config {
|
|
|
324
348
|
}
|
|
325
349
|
return this.gitService;
|
|
326
350
|
}
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
const
|
|
335
|
-
const
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
isEnabled =
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
351
|
+
async refreshMemory() {
|
|
352
|
+
const { memoryContent, fileCount } = await loadServerHierarchicalMemory(this.getWorkingDir(), this.getDebugMode(), this.getFileService(), this.getExtensionContextFilePaths());
|
|
353
|
+
this.setUserMemory(memoryContent);
|
|
354
|
+
this.setGeminiMdFileCount(fileCount);
|
|
355
|
+
return { memoryContent, fileCount };
|
|
356
|
+
}
|
|
357
|
+
async createToolRegistry() {
|
|
358
|
+
const registry = new ToolRegistry(this);
|
|
359
|
+
const targetDir = this.getTargetDir();
|
|
360
|
+
// helper to create & register core tools that are enabled
|
|
361
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
362
|
+
const registerCoreTool = (ToolClass, ...args) => {
|
|
363
|
+
const className = ToolClass.name;
|
|
364
|
+
const toolName = ToolClass.Name || className;
|
|
365
|
+
const coreTools = this.getCoreTools();
|
|
366
|
+
const excludeTools = this.getExcludeTools();
|
|
367
|
+
let isEnabled = false;
|
|
368
|
+
if (coreTools === undefined) {
|
|
369
|
+
isEnabled = true;
|
|
370
|
+
}
|
|
371
|
+
else {
|
|
372
|
+
isEnabled = coreTools.some((tool) => tool === className ||
|
|
373
|
+
tool === toolName ||
|
|
374
|
+
tool.startsWith(`${className}(`) ||
|
|
375
|
+
tool.startsWith(`${toolName}(`));
|
|
376
|
+
}
|
|
377
|
+
if (excludeTools?.includes(className) ||
|
|
378
|
+
excludeTools?.includes(toolName)) {
|
|
379
|
+
isEnabled = false;
|
|
380
|
+
}
|
|
381
|
+
if (isEnabled) {
|
|
382
|
+
registry.registerTool(new ToolClass(...args));
|
|
383
|
+
}
|
|
384
|
+
};
|
|
385
|
+
registerCoreTool(LSTool, targetDir, this);
|
|
386
|
+
registerCoreTool(ReadFileTool, targetDir, this);
|
|
387
|
+
registerCoreTool(GrepTool, targetDir);
|
|
388
|
+
registerCoreTool(GlobTool, targetDir, this);
|
|
389
|
+
registerCoreTool(EditTool, this);
|
|
390
|
+
registerCoreTool(WriteFileTool, this);
|
|
391
|
+
registerCoreTool(WebFetchTool, this);
|
|
392
|
+
registerCoreTool(ReadManyFilesTool, targetDir, this);
|
|
393
|
+
registerCoreTool(ShellTool, this);
|
|
394
|
+
registerCoreTool(MemoryTool);
|
|
395
|
+
registerCoreTool(WebSearchTool, this);
|
|
367
396
|
await registry.discoverTools();
|
|
368
397
|
return registry;
|
|
369
|
-
}
|
|
398
|
+
}
|
|
370
399
|
}
|
|
371
400
|
// Export model constants for use in CLI
|
|
372
401
|
export { DEFAULT_GEMINI_FLASH_MODEL };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ import { Config } from './config.js';
|
|
|
8
8
|
import * as path from 'path';
|
|
9
9
|
import { setGeminiMdFilename as mockSetGeminiMdFilename } from '../tools/memoryTool.js';
|
|
10
10
|
import { DEFAULT_TELEMETRY_TARGET, DEFAULT_OTLP_ENDPOINT, } from '../telemetry/index.js';
|
|
11
|
+
import { loadServerHierarchicalMemory } from '../utils/memoryDiscovery.js';
|
|
11
12
|
// Mock dependencies that might be called during Config construction or createServerConfig
|
|
12
13
|
vi.mock('../tools/tool-registry', () => {
|
|
13
14
|
const ToolRegistryMock = vi.fn();
|
|
@@ -18,6 +19,9 @@ vi.mock('../tools/tool-registry', () => {
|
|
|
18
19
|
ToolRegistryMock.prototype.getFunctionDeclarations = vi.fn(() => []);
|
|
19
20
|
return { ToolRegistry: ToolRegistryMock };
|
|
20
21
|
});
|
|
22
|
+
vi.mock('../utils/memoryDiscovery.js', () => ({
|
|
23
|
+
loadServerHierarchicalMemory: vi.fn(),
|
|
24
|
+
}));
|
|
21
25
|
// Mock individual tools if their constructors are complex or have side effects
|
|
22
26
|
vi.mock('../tools/ls');
|
|
23
27
|
vi.mock('../tools/read-file');
|
|
@@ -234,5 +238,26 @@ describe('Server Config (config.ts)', () => {
|
|
|
234
238
|
expect(config.getTelemetryOtlpEndpoint()).toBe(DEFAULT_OTLP_ENDPOINT);
|
|
235
239
|
});
|
|
236
240
|
});
|
|
241
|
+
describe('refreshMemory', () => {
|
|
242
|
+
it('should update memory and file count on successful refresh', async () => {
|
|
243
|
+
const config = new Config(baseParams);
|
|
244
|
+
const mockMemoryData = {
|
|
245
|
+
memoryContent: 'new memory content',
|
|
246
|
+
fileCount: 5,
|
|
247
|
+
};
|
|
248
|
+
loadServerHierarchicalMemory.mockResolvedValue(mockMemoryData);
|
|
249
|
+
const result = await config.refreshMemory();
|
|
250
|
+
expect(loadServerHierarchicalMemory).toHaveBeenCalledWith(config.getWorkingDir(), config.getDebugMode(), config.getFileService(), config.getExtensionContextFilePaths());
|
|
251
|
+
expect(config.getUserMemory()).toBe(mockMemoryData.memoryContent);
|
|
252
|
+
expect(config.getGeminiMdFileCount()).toBe(mockMemoryData.fileCount);
|
|
253
|
+
expect(result).toEqual(mockMemoryData);
|
|
254
|
+
});
|
|
255
|
+
it('should propagate errors from loadServerHierarchicalMemory', async () => {
|
|
256
|
+
const config = new Config(baseParams);
|
|
257
|
+
const testError = new Error('Failed to load memory');
|
|
258
|
+
loadServerHierarchicalMemory.mockRejectedValue(testError);
|
|
259
|
+
await expect(config.refreshMemory()).rejects.toThrow(testError);
|
|
260
|
+
});
|
|
261
|
+
});
|
|
237
262
|
});
|
|
238
263
|
//# sourceMappingURL=config.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../../src/config/config.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../../src/config/config.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,12 @@ import { Turn, ServerGeminiStreamEvent, ChatCompressionInfo } from './turn.js';
|
|
|
8
8
|
import { Config } from '../config/config.js';
|
|
9
9
|
import { GeminiChat } from './geminiChat.js';
|
|
10
10
|
import { ContentGenerator, ContentGeneratorConfig } from './contentGenerator.js';
|
|
11
|
+
/**
|
|
12
|
+
* Returns the index of the content after the fraction of the total characters in the history.
|
|
13
|
+
*
|
|
14
|
+
* Exported for testing purposes.
|
|
15
|
+
*/
|
|
16
|
+
export declare function findIndexAfterFraction(history: Content[], fraction: number): number;
|
|
11
17
|
export declare class GeminiClient {
|
|
12
18
|
private config;
|
|
13
19
|
private chat?;
|
|
@@ -15,22 +21,31 @@ export declare class GeminiClient {
|
|
|
15
21
|
private embeddingModel;
|
|
16
22
|
private generateContentConfig;
|
|
17
23
|
private readonly MAX_TURNS;
|
|
18
|
-
|
|
24
|
+
/**
|
|
25
|
+
* Threshold for compression token count as a fraction of the model's token limit.
|
|
26
|
+
* If the chat history exceeds this threshold, it will be compressed.
|
|
27
|
+
*/
|
|
28
|
+
private readonly COMPRESSION_TOKEN_THRESHOLD;
|
|
29
|
+
/**
|
|
30
|
+
* The fraction of the latest chat history to keep. A value of 0.3
|
|
31
|
+
* means that only the last 30% of the chat history will be kept after compression.
|
|
32
|
+
*/
|
|
33
|
+
private readonly COMPRESSION_PRESERVE_THRESHOLD;
|
|
19
34
|
constructor(config: Config);
|
|
20
35
|
initialize(contentGeneratorConfig: ContentGeneratorConfig): Promise<void>;
|
|
21
36
|
getContentGenerator(): ContentGenerator;
|
|
22
37
|
addHistory(content: Content): Promise<void>;
|
|
23
38
|
getChat(): GeminiChat;
|
|
24
|
-
getHistory():
|
|
25
|
-
setHistory(history: Content[]):
|
|
39
|
+
getHistory(): Content[];
|
|
40
|
+
setHistory(history: Content[]): void;
|
|
26
41
|
resetChat(): Promise<void>;
|
|
27
42
|
private getEnvironment;
|
|
28
43
|
private startChat;
|
|
29
|
-
sendMessageStream(request: PartListUnion, signal: AbortSignal, turns?: number): AsyncGenerator<ServerGeminiStreamEvent, Turn>;
|
|
44
|
+
sendMessageStream(request: PartListUnion, signal: AbortSignal, prompt_id: string, turns?: number, originalModel?: string): AsyncGenerator<ServerGeminiStreamEvent, Turn>;
|
|
30
45
|
generateJson(contents: Content[], schema: SchemaUnion, abortSignal: AbortSignal, model?: string, config?: GenerateContentConfig): Promise<Record<string, unknown>>;
|
|
31
46
|
generateContent(contents: Content[], generationConfig: GenerateContentConfig, abortSignal: AbortSignal): Promise<GenerateContentResponse>;
|
|
32
47
|
generateEmbedding(texts: string[]): Promise<number[][]>;
|
|
33
|
-
tryCompressChat(force?: boolean): Promise<ChatCompressionInfo | null>;
|
|
48
|
+
tryCompressChat(prompt_id: string, force?: boolean): Promise<ChatCompressionInfo | null>;
|
|
34
49
|
/**
|
|
35
50
|
* Handles fallback to Flash model when persistent 429 errors occur for OAuth users.
|
|
36
51
|
* Uses a fallback handler if provided by the config, otherwise returns null.
|
package/dist/src/core/client.js
CHANGED
|
@@ -21,6 +21,27 @@ function isThinkingSupported(model) {
|
|
|
21
21
|
return true;
|
|
22
22
|
return false;
|
|
23
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Returns the index of the content after the fraction of the total characters in the history.
|
|
26
|
+
*
|
|
27
|
+
* Exported for testing purposes.
|
|
28
|
+
*/
|
|
29
|
+
export function findIndexAfterFraction(history, fraction) {
|
|
30
|
+
if (fraction <= 0 || fraction >= 1) {
|
|
31
|
+
throw new Error('Fraction must be between 0 and 1');
|
|
32
|
+
}
|
|
33
|
+
const contentLengths = history.map((content) => JSON.stringify(content).length);
|
|
34
|
+
const totalCharacters = contentLengths.reduce((sum, length) => sum + length, 0);
|
|
35
|
+
const targetCharacters = totalCharacters * fraction;
|
|
36
|
+
let charactersSoFar = 0;
|
|
37
|
+
for (let i = 0; i < contentLengths.length; i++) {
|
|
38
|
+
charactersSoFar += contentLengths[i];
|
|
39
|
+
if (charactersSoFar >= targetCharacters) {
|
|
40
|
+
return i;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return contentLengths.length;
|
|
44
|
+
}
|
|
24
45
|
export class GeminiClient {
|
|
25
46
|
config;
|
|
26
47
|
chat;
|
|
@@ -31,7 +52,16 @@ export class GeminiClient {
|
|
|
31
52
|
topP: 1,
|
|
32
53
|
};
|
|
33
54
|
MAX_TURNS = 100;
|
|
34
|
-
|
|
55
|
+
/**
|
|
56
|
+
* Threshold for compression token count as a fraction of the model's token limit.
|
|
57
|
+
* If the chat history exceeds this threshold, it will be compressed.
|
|
58
|
+
*/
|
|
59
|
+
COMPRESSION_TOKEN_THRESHOLD = 0.7;
|
|
60
|
+
/**
|
|
61
|
+
* The fraction of the latest chat history to keep. A value of 0.3
|
|
62
|
+
* means that only the last 30% of the chat history will be kept after compression.
|
|
63
|
+
*/
|
|
64
|
+
COMPRESSION_PRESERVE_THRESHOLD = 0.3;
|
|
35
65
|
constructor(config) {
|
|
36
66
|
this.config = config;
|
|
37
67
|
if (config.getProxy()) {
|
|
@@ -58,10 +88,10 @@ export class GeminiClient {
|
|
|
58
88
|
}
|
|
59
89
|
return this.chat;
|
|
60
90
|
}
|
|
61
|
-
|
|
91
|
+
getHistory() {
|
|
62
92
|
return this.getChat().getHistory();
|
|
63
93
|
}
|
|
64
|
-
|
|
94
|
+
setHistory(history) {
|
|
65
95
|
this.getChat().setHistory(history);
|
|
66
96
|
}
|
|
67
97
|
async resetChat() {
|
|
@@ -159,33 +189,44 @@ export class GeminiClient {
|
|
|
159
189
|
throw new Error(`Failed to initialize chat: ${getErrorMessage(error)}`);
|
|
160
190
|
}
|
|
161
191
|
}
|
|
162
|
-
async *sendMessageStream(request, signal, turns = this.MAX_TURNS) {
|
|
192
|
+
async *sendMessageStream(request, signal, prompt_id, turns = this.MAX_TURNS, originalModel) {
|
|
163
193
|
// Ensure turns never exceeds MAX_TURNS to prevent infinite loops
|
|
164
194
|
const boundedTurns = Math.min(turns, this.MAX_TURNS);
|
|
165
195
|
if (!boundedTurns) {
|
|
166
|
-
return new Turn(this.getChat());
|
|
196
|
+
return new Turn(this.getChat(), prompt_id);
|
|
167
197
|
}
|
|
168
|
-
|
|
198
|
+
// Track the original model from the first call to detect model switching
|
|
199
|
+
const initialModel = originalModel || this.config.getModel();
|
|
200
|
+
const compressed = await this.tryCompressChat(prompt_id);
|
|
169
201
|
if (compressed) {
|
|
170
202
|
yield { type: GeminiEventType.ChatCompressed, value: compressed };
|
|
171
203
|
}
|
|
172
|
-
const turn = new Turn(this.getChat());
|
|
204
|
+
const turn = new Turn(this.getChat(), prompt_id);
|
|
173
205
|
const resultStream = turn.run(request, signal);
|
|
174
206
|
for await (const event of resultStream) {
|
|
175
207
|
yield event;
|
|
176
208
|
}
|
|
177
209
|
if (!turn.pendingToolCalls.length && signal && !signal.aborted) {
|
|
210
|
+
// Check if model was switched during the call (likely due to quota error)
|
|
211
|
+
const currentModel = this.config.getModel();
|
|
212
|
+
if (currentModel !== initialModel) {
|
|
213
|
+
// Model was switched (likely due to quota error fallback)
|
|
214
|
+
// Don't continue with recursive call to prevent unwanted Flash execution
|
|
215
|
+
return turn;
|
|
216
|
+
}
|
|
178
217
|
const nextSpeakerCheck = await checkNextSpeaker(this.getChat(), this, signal);
|
|
179
218
|
if (nextSpeakerCheck?.next_speaker === 'model') {
|
|
180
219
|
const nextRequest = [{ text: 'Please continue.' }];
|
|
181
220
|
// This recursive call's events will be yielded out, but the final
|
|
182
221
|
// turn object will be from the top-level call.
|
|
183
|
-
yield* this.sendMessageStream(nextRequest, signal, boundedTurns - 1);
|
|
222
|
+
yield* this.sendMessageStream(nextRequest, signal, prompt_id, boundedTurns - 1, initialModel);
|
|
184
223
|
}
|
|
185
224
|
}
|
|
186
225
|
return turn;
|
|
187
226
|
}
|
|
188
|
-
async generateJson(contents, schema, abortSignal, model
|
|
227
|
+
async generateJson(contents, schema, abortSignal, model, config = {}) {
|
|
228
|
+
// Use current model from config instead of hardcoded Flash model
|
|
229
|
+
const modelToUse = model || this.config.getModel() || DEFAULT_GEMINI_FLASH_MODEL;
|
|
189
230
|
try {
|
|
190
231
|
const userMemory = this.config.getUserMemory();
|
|
191
232
|
const systemInstruction = getCoreSystemPrompt(userMemory);
|
|
@@ -195,7 +236,7 @@ export class GeminiClient {
|
|
|
195
236
|
...config,
|
|
196
237
|
};
|
|
197
238
|
const apiCall = () => this.getContentGenerator().generateContent({
|
|
198
|
-
model,
|
|
239
|
+
model: modelToUse,
|
|
199
240
|
config: {
|
|
200
241
|
...requestConfig,
|
|
201
242
|
systemInstruction,
|
|
@@ -205,7 +246,7 @@ export class GeminiClient {
|
|
|
205
246
|
contents,
|
|
206
247
|
});
|
|
207
248
|
const result = await retryWithBackoff(apiCall, {
|
|
208
|
-
onPersistent429: async (authType) => await this.handleFlashFallback(authType),
|
|
249
|
+
onPersistent429: async (authType, error) => await this.handleFlashFallback(authType, error),
|
|
209
250
|
authType: this.config.getContentGeneratorConfig()?.authType,
|
|
210
251
|
});
|
|
211
252
|
const text = getResponseText(result);
|
|
@@ -258,7 +299,7 @@ export class GeminiClient {
|
|
|
258
299
|
contents,
|
|
259
300
|
});
|
|
260
301
|
const result = await retryWithBackoff(apiCall, {
|
|
261
|
-
onPersistent429: async (authType) => await this.handleFlashFallback(authType),
|
|
302
|
+
onPersistent429: async (authType, error) => await this.handleFlashFallback(authType, error),
|
|
262
303
|
authType: this.config.getContentGeneratorConfig()?.authType,
|
|
263
304
|
});
|
|
264
305
|
return result;
|
|
@@ -298,27 +339,35 @@ export class GeminiClient {
|
|
|
298
339
|
return values;
|
|
299
340
|
});
|
|
300
341
|
}
|
|
301
|
-
async tryCompressChat(force = false) {
|
|
342
|
+
async tryCompressChat(prompt_id, force = false) {
|
|
302
343
|
const curatedHistory = this.getChat().getHistory(true);
|
|
303
344
|
// Regardless of `force`, don't do anything if the history is empty.
|
|
304
345
|
if (curatedHistory.length === 0) {
|
|
305
346
|
return null;
|
|
306
347
|
}
|
|
307
348
|
const model = this.config.getModel();
|
|
308
|
-
|
|
349
|
+
const { totalTokens: originalTokenCount } = await this.getContentGenerator().countTokens({
|
|
309
350
|
model,
|
|
310
351
|
contents: curatedHistory,
|
|
311
352
|
});
|
|
312
353
|
if (originalTokenCount === undefined) {
|
|
313
354
|
console.warn(`Could not determine token count for model ${model}.`);
|
|
314
|
-
|
|
355
|
+
return null;
|
|
315
356
|
}
|
|
316
357
|
// Don't compress if not forced and we are under the limit.
|
|
317
358
|
if (!force &&
|
|
318
|
-
originalTokenCount <
|
|
319
|
-
this.TOKEN_THRESHOLD_FOR_SUMMARIZATION * tokenLimit(model)) {
|
|
359
|
+
originalTokenCount < this.COMPRESSION_TOKEN_THRESHOLD * tokenLimit(model)) {
|
|
320
360
|
return null;
|
|
321
361
|
}
|
|
362
|
+
let compressBeforeIndex = findIndexAfterFraction(curatedHistory, 1 - this.COMPRESSION_PRESERVE_THRESHOLD);
|
|
363
|
+
// Find the first user message after the index. This is the start of the next turn.
|
|
364
|
+
while (compressBeforeIndex < curatedHistory.length &&
|
|
365
|
+
curatedHistory[compressBeforeIndex]?.role !== 'user') {
|
|
366
|
+
compressBeforeIndex++;
|
|
367
|
+
}
|
|
368
|
+
const historyToCompress = curatedHistory.slice(0, compressBeforeIndex);
|
|
369
|
+
const historyToKeep = curatedHistory.slice(compressBeforeIndex);
|
|
370
|
+
this.getChat().setHistory(historyToCompress);
|
|
322
371
|
const { text: summary } = await this.getChat().sendMessage({
|
|
323
372
|
message: {
|
|
324
373
|
text: 'First, reason in your scratchpad. Then, generate the <state_snapshot>.',
|
|
@@ -326,7 +375,7 @@ export class GeminiClient {
|
|
|
326
375
|
config: {
|
|
327
376
|
systemInstruction: { text: getCompressionPrompt() },
|
|
328
377
|
},
|
|
329
|
-
});
|
|
378
|
+
}, prompt_id);
|
|
330
379
|
this.chat = await this.startChat([
|
|
331
380
|
{
|
|
332
381
|
role: 'user',
|
|
@@ -336,6 +385,7 @@ export class GeminiClient {
|
|
|
336
385
|
role: 'model',
|
|
337
386
|
parts: [{ text: 'Got it. Thanks for the additional context!' }],
|
|
338
387
|
},
|
|
388
|
+
...historyToKeep,
|
|
339
389
|
]);
|
|
340
390
|
const { totalTokens: newTokenCount } = await this.getContentGenerator().countTokens({
|
|
341
391
|
// model might change after calling `sendMessage`, so we get the newest value from config
|
|
@@ -355,7 +405,7 @@ export class GeminiClient {
|
|
|
355
405
|
* Handles fallback to Flash model when persistent 429 errors occur for OAuth users.
|
|
356
406
|
* Uses a fallback handler if provided by the config, otherwise returns null.
|
|
357
407
|
*/
|
|
358
|
-
async handleFlashFallback(authType) {
|
|
408
|
+
async handleFlashFallback(authType, error) {
|
|
359
409
|
// Only handle fallback for OAuth users
|
|
360
410
|
if (authType !== AuthType.LOGIN_WITH_GOOGLE) {
|
|
361
411
|
return null;
|
|
@@ -370,11 +420,15 @@ export class GeminiClient {
|
|
|
370
420
|
const fallbackHandler = this.config.flashFallbackHandler;
|
|
371
421
|
if (typeof fallbackHandler === 'function') {
|
|
372
422
|
try {
|
|
373
|
-
const accepted = await fallbackHandler(currentModel, fallbackModel);
|
|
374
|
-
if (accepted) {
|
|
423
|
+
const accepted = await fallbackHandler(currentModel, fallbackModel, error);
|
|
424
|
+
if (accepted !== false && accepted !== null) {
|
|
375
425
|
this.config.setModel(fallbackModel);
|
|
376
426
|
return fallbackModel;
|
|
377
427
|
}
|
|
428
|
+
// Check if the model was switched manually in the handler
|
|
429
|
+
if (this.config.getModel() === fallbackModel) {
|
|
430
|
+
return null; // Model was switched but don't continue with current prompt
|
|
431
|
+
}
|
|
378
432
|
}
|
|
379
433
|
catch (error) {
|
|
380
434
|
console.warn('Flash fallback handler failed:', error);
|