@google/gemini-cli-core 0.1.22 → 0.2.0-preview.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/code_assist/oauth2.d.ts +1 -0
- package/dist/src/code_assist/oauth2.js +7 -2
- package/dist/src/code_assist/oauth2.js.map +1 -1
- package/dist/src/code_assist/oauth2.test.js +49 -1
- package/dist/src/code_assist/oauth2.test.js.map +1 -1
- package/dist/src/config/config.d.ts +19 -2
- package/dist/src/config/config.js +29 -4
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/core/client.js +5 -2
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +2 -1
- package/dist/src/core/client.test.js.map +1 -1
- package/dist/src/core/coreToolScheduler.d.ts +2 -1
- package/dist/src/core/coreToolScheduler.js +20 -2
- package/dist/src/core/coreToolScheduler.js.map +1 -1
- package/dist/src/core/coreToolScheduler.test.js +190 -12
- package/dist/src/core/coreToolScheduler.test.js.map +1 -1
- package/dist/src/core/geminiChat.js +1 -1
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/loggingContentGenerator.d.ts +1 -5
- package/dist/src/core/loggingContentGenerator.js +4 -6
- package/dist/src/core/loggingContentGenerator.js.map +1 -1
- package/dist/src/core/nonInteractiveToolExecutor.d.ts +2 -2
- package/dist/src/core/nonInteractiveToolExecutor.js +10 -2
- package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
- package/dist/src/core/nonInteractiveToolExecutor.test.js +17 -11
- package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
- package/dist/src/core/subagent.js +5 -5
- package/dist/src/core/subagent.js.map +1 -1
- package/dist/src/core/subagent.test.js +3 -3
- package/dist/src/core/subagent.test.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/generated/git-commit.js.map +1 -1
- package/dist/src/ide/ide-client.d.ts +4 -0
- package/dist/src/ide/ide-client.js +36 -2
- package/dist/src/ide/ide-client.js.map +1 -1
- package/dist/src/ide/ide-installer.js +17 -4
- package/dist/src/ide/ide-installer.js.map +1 -1
- package/dist/src/ide/ide-installer.test.js +6 -4
- package/dist/src/ide/ide-installer.test.js.map +1 -1
- package/dist/src/ide/process-utils.d.ts +10 -5
- package/dist/src/ide/process-utils.js +113 -30
- package/dist/src/ide/process-utils.js.map +1 -1
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.js +3 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/services/chatRecordingService.d.ts +150 -0
- package/dist/src/services/chatRecordingService.js +318 -0
- package/dist/src/services/chatRecordingService.js.map +1 -0
- package/dist/src/services/chatRecordingService.test.d.ts +6 -0
- package/dist/src/services/chatRecordingService.test.js +288 -0
- package/dist/src/services/chatRecordingService.test.js.map +1 -0
- package/dist/src/services/fileSystemService.d.ts +31 -0
- package/dist/src/services/fileSystemService.js +18 -0
- package/dist/src/services/fileSystemService.js.map +1 -0
- package/dist/src/services/fileSystemService.test.d.ts +6 -0
- package/dist/src/services/fileSystemService.test.js +41 -0
- package/dist/src/services/fileSystemService.test.js.map +1 -0
- package/dist/src/services/shellExecutionService.d.ts +8 -10
- package/dist/src/services/shellExecutionService.js +289 -133
- package/dist/src/services/shellExecutionService.js.map +1 -1
- package/dist/src/services/shellExecutionService.test.js +275 -41
- package/dist/src/services/shellExecutionService.test.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +10 -3
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +57 -103
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +13 -4
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.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 +2 -0
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
- package/dist/src/telemetry/loggers.js +2 -2
- package/dist/src/telemetry/loggers.js.map +1 -1
- package/dist/src/telemetry/loggers.test.js +10 -5
- package/dist/src/telemetry/loggers.test.js.map +1 -1
- package/dist/src/telemetry/metrics.d.ts +1 -1
- package/dist/src/telemetry/metrics.js +2 -1
- package/dist/src/telemetry/metrics.js.map +1 -1
- package/dist/src/telemetry/sdk.js +3 -3
- package/dist/src/telemetry/sdk.js.map +1 -1
- package/dist/src/telemetry/types.d.ts +1 -0
- package/dist/src/telemetry/types.js +6 -0
- package/dist/src/telemetry/types.js.map +1 -1
- package/dist/src/telemetry/uiTelemetry.d.ts +4 -0
- package/dist/src/telemetry/uiTelemetry.js +14 -1
- package/dist/src/telemetry/uiTelemetry.js.map +1 -1
- package/dist/src/telemetry/uiTelemetry.test.js +45 -9
- package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
- package/dist/src/test-utils/tools.d.ts +8 -2
- package/dist/src/test-utils/tools.js +2 -3
- package/dist/src/test-utils/tools.js.map +1 -1
- package/dist/src/tools/edit.d.ts +1 -1
- package/dist/src/tools/edit.js +15 -9
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/edit.test.js +11 -1
- package/dist/src/tools/edit.test.js.map +1 -1
- package/dist/src/tools/glob.d.ts +1 -1
- package/dist/src/tools/glob.js +8 -8
- package/dist/src/tools/glob.js.map +1 -1
- package/dist/src/tools/glob.test.js +20 -0
- 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 +1 -6
- package/dist/src/tools/grep.js.map +1 -1
- package/dist/src/tools/ls.d.ts +1 -1
- package/dist/src/tools/ls.js +1 -6
- package/dist/src/tools/ls.js.map +1 -1
- package/dist/src/tools/mcp-client-manager.d.ts +38 -0
- package/dist/src/tools/mcp-client-manager.js +74 -0
- package/dist/src/tools/mcp-client-manager.js.map +1 -0
- package/dist/src/tools/mcp-client-manager.test.d.ts +6 -0
- package/dist/src/tools/mcp-client-manager.test.js +39 -0
- package/dist/src/tools/mcp-client-manager.test.js.map +1 -0
- package/dist/src/tools/mcp-client.d.ts +43 -0
- package/dist/src/tools/mcp-client.js +117 -1
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-client.test.js +58 -302
- package/dist/src/tools/mcp-client.test.js.map +1 -1
- package/dist/src/tools/mcp-tool.test.js +17 -17
- package/dist/src/tools/mcp-tool.test.js.map +1 -1
- package/dist/src/tools/memoryTool.d.ts +1 -1
- package/dist/src/tools/memoryTool.js +1 -6
- package/dist/src/tools/memoryTool.js.map +1 -1
- package/dist/src/tools/read-file.d.ts +1 -1
- package/dist/src/tools/read-file.js +5 -7
- package/dist/src/tools/read-file.js.map +1 -1
- package/dist/src/tools/read-file.test.js +8 -0
- package/dist/src/tools/read-file.test.js.map +1 -1
- package/dist/src/tools/read-many-files.d.ts +0 -1
- package/dist/src/tools/read-many-files.js +16 -11
- package/dist/src/tools/read-many-files.js.map +1 -1
- package/dist/src/tools/read-many-files.test.js +34 -0
- package/dist/src/tools/read-many-files.test.js.map +1 -1
- package/dist/src/tools/shell.d.ts +1 -1
- package/dist/src/tools/shell.js +10 -24
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/shell.test.js +11 -19
- package/dist/src/tools/shell.test.js.map +1 -1
- package/dist/src/tools/tool-registry.d.ts +5 -0
- package/dist/src/tools/tool-registry.js +13 -4
- package/dist/src/tools/tool-registry.js.map +1 -1
- package/dist/src/tools/tool-registry.test.js +9 -21
- package/dist/src/tools/tool-registry.test.js.map +1 -1
- package/dist/src/tools/tools.d.ts +3 -1
- package/dist/src/tools/tools.js +12 -0
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/tools/web-fetch.d.ts +1 -1
- package/dist/src/tools/web-fetch.js +1 -6
- 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 +1 -6
- package/dist/src/tools/web-search.js.map +1 -1
- package/dist/src/tools/write-file.d.ts +1 -1
- package/dist/src/tools/write-file.js +7 -8
- package/dist/src/tools/write-file.js.map +1 -1
- package/dist/src/tools/write-file.test.js +25 -38
- package/dist/src/tools/write-file.test.js.map +1 -1
- package/dist/src/utils/environmentContext.js +2 -2
- package/dist/src/utils/environmentContext.js.map +1 -1
- package/dist/src/utils/environmentContext.test.js +3 -2
- package/dist/src/utils/environmentContext.test.js.map +1 -1
- package/dist/src/utils/fileUtils.d.ts +2 -1
- package/dist/src/utils/fileUtils.js +3 -3
- package/dist/src/utils/fileUtils.js.map +1 -1
- package/dist/src/utils/fileUtils.test.js +18 -17
- package/dist/src/utils/fileUtils.test.js.map +1 -1
- package/dist/src/utils/getPty.d.ts +19 -0
- package/dist/src/utils/getPty.js +23 -0
- package/dist/src/utils/getPty.js.map +1 -0
- package/dist/src/utils/user_account.js +58 -48
- package/dist/src/utils/user_account.js.map +1 -1
- package/dist/src/utils/user_account.test.js +76 -9
- package/dist/src/utils/user_account.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +20 -10
|
@@ -12,13 +12,15 @@ import { mcpToTool } from '@google/genai';
|
|
|
12
12
|
import { spawn } from 'node:child_process';
|
|
13
13
|
import fs from 'node:fs';
|
|
14
14
|
import { MockTool } from '../test-utils/tools.js';
|
|
15
|
+
import { McpClientManager } from './mcp-client-manager.js';
|
|
15
16
|
vi.mock('node:fs');
|
|
16
|
-
// Use vi.hoisted to define the mock function so it can be used in the vi.mock factory
|
|
17
|
-
const mockDiscoverMcpTools = vi.hoisted(() => vi.fn());
|
|
18
17
|
// Mock ./mcp-client.js to control its behavior within tool-registry tests
|
|
19
|
-
vi.mock('./mcp-client.js', () =>
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
vi.mock('./mcp-client.js', async () => {
|
|
19
|
+
const originalModule = await vi.importActual('./mcp-client.js');
|
|
20
|
+
return {
|
|
21
|
+
...originalModule,
|
|
22
|
+
};
|
|
23
|
+
});
|
|
22
24
|
// Mock node:child_process
|
|
23
25
|
vi.mock('node:child_process', async () => {
|
|
24
26
|
const actual = await vi.importActual('node:child_process');
|
|
@@ -112,7 +114,6 @@ describe('ToolRegistry', () => {
|
|
|
112
114
|
clear: vi.fn(),
|
|
113
115
|
removePromptsByServer: vi.fn(),
|
|
114
116
|
});
|
|
115
|
-
mockDiscoverMcpTools.mockReset().mockResolvedValue(undefined);
|
|
116
117
|
});
|
|
117
118
|
afterEach(() => {
|
|
118
119
|
vi.restoreAllMocks();
|
|
@@ -229,6 +230,7 @@ describe('ToolRegistry', () => {
|
|
|
229
230
|
});
|
|
230
231
|
});
|
|
231
232
|
it('should discover tools using MCP servers defined in getMcpServers', async () => {
|
|
233
|
+
const discoverSpy = vi.spyOn(McpClientManager.prototype, 'discoverAllMcpTools');
|
|
232
234
|
mockConfigGetToolDiscoveryCommand.mockReturnValue(undefined);
|
|
233
235
|
vi.spyOn(config, 'getMcpServerCommand').mockReturnValue(undefined);
|
|
234
236
|
const mcpServerConfigVal = {
|
|
@@ -240,21 +242,7 @@ describe('ToolRegistry', () => {
|
|
|
240
242
|
};
|
|
241
243
|
vi.spyOn(config, 'getMcpServers').mockReturnValue(mcpServerConfigVal);
|
|
242
244
|
await toolRegistry.discoverAllTools();
|
|
243
|
-
expect(
|
|
244
|
-
});
|
|
245
|
-
it('should discover tools using MCP servers defined in getMcpServers', async () => {
|
|
246
|
-
mockConfigGetToolDiscoveryCommand.mockReturnValue(undefined);
|
|
247
|
-
vi.spyOn(config, 'getMcpServerCommand').mockReturnValue(undefined);
|
|
248
|
-
const mcpServerConfigVal = {
|
|
249
|
-
'my-mcp-server': {
|
|
250
|
-
command: 'mcp-server-cmd',
|
|
251
|
-
args: ['--port', '1234'],
|
|
252
|
-
trust: true,
|
|
253
|
-
},
|
|
254
|
-
};
|
|
255
|
-
vi.spyOn(config, 'getMcpServers').mockReturnValue(mcpServerConfigVal);
|
|
256
|
-
await toolRegistry.discoverAllTools();
|
|
257
|
-
expect(mockDiscoverMcpTools).toHaveBeenCalledWith(mcpServerConfigVal, undefined, toolRegistry, config.getPromptRegistry(), false, expect.any(Object));
|
|
245
|
+
expect(discoverSpy).toHaveBeenCalled();
|
|
258
246
|
});
|
|
259
247
|
});
|
|
260
248
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-registry.test.js","sourceRoot":"","sources":["../../../src/tools/tool-registry.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,uDAAuD;AACvD,OAAO,EACL,QAAQ,EACR,EAAE,EACF,MAAM,EACN,EAAE,EACF,UAAU,EACV,SAAS,GAEV,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,MAAM,EAAoB,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAkB,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAqC,SAAS,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAEnB,
|
|
1
|
+
{"version":3,"file":"tool-registry.test.js","sourceRoot":"","sources":["../../../src/tools/tool-registry.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -113,7 +113,7 @@ export declare abstract class DeclarativeTool<TParams extends object, TResult ex
|
|
|
113
113
|
* @param params The raw parameters from the model.
|
|
114
114
|
* @returns An error message string if invalid, null otherwise.
|
|
115
115
|
*/
|
|
116
|
-
|
|
116
|
+
validateToolParams(_params: TParams): string | null;
|
|
117
117
|
/**
|
|
118
118
|
* The core of the new pattern. It validates parameters and, if successful,
|
|
119
119
|
* returns a `ToolInvocation` object that encapsulates the logic for the
|
|
@@ -154,6 +154,8 @@ export declare abstract class DeclarativeTool<TParams extends object, TResult ex
|
|
|
154
154
|
*/
|
|
155
155
|
export declare abstract class BaseDeclarativeTool<TParams extends object, TResult extends ToolResult> extends DeclarativeTool<TParams, TResult> {
|
|
156
156
|
build(params: TParams): ToolInvocation<TParams, TResult>;
|
|
157
|
+
validateToolParams(params: TParams): string | null;
|
|
158
|
+
protected validateToolParamValues(_params: TParams): string | null;
|
|
157
159
|
protected abstract createInvocation(params: TParams): ToolInvocation<TParams, TResult>;
|
|
158
160
|
}
|
|
159
161
|
/**
|
package/dist/src/tools/tools.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { ToolErrorType } from './tool-error.js';
|
|
7
|
+
import { SchemaValidator } from '../utils/schemaValidator.js';
|
|
7
8
|
/**
|
|
8
9
|
* A convenience base class for ToolInvocation.
|
|
9
10
|
*/
|
|
@@ -136,6 +137,17 @@ export class BaseDeclarativeTool extends DeclarativeTool {
|
|
|
136
137
|
}
|
|
137
138
|
return this.createInvocation(params);
|
|
138
139
|
}
|
|
140
|
+
validateToolParams(params) {
|
|
141
|
+
const errors = SchemaValidator.validate(this.schema.parametersJsonSchema, params);
|
|
142
|
+
if (errors) {
|
|
143
|
+
return errors;
|
|
144
|
+
}
|
|
145
|
+
return this.validateToolParamValues(params);
|
|
146
|
+
}
|
|
147
|
+
validateToolParamValues(_params) {
|
|
148
|
+
// Base implementation can be extended by subclasses.
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
139
151
|
}
|
|
140
152
|
/**
|
|
141
153
|
* Detects cycles in a JSON schemas due to `$ref`s.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/tools/tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/tools/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,6 @@ export declare class WebFetchTool extends BaseDeclarativeTool<WebFetchToolParams
|
|
|
21
21
|
private readonly config;
|
|
22
22
|
static readonly Name: string;
|
|
23
23
|
constructor(config: Config);
|
|
24
|
-
protected
|
|
24
|
+
protected validateToolParamValues(params: WebFetchToolParams): string | null;
|
|
25
25
|
protected createInvocation(params: WebFetchToolParams): ToolInvocation<WebFetchToolParams, ToolResult>;
|
|
26
26
|
}
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
* Copyright 2025 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { SchemaValidator } from '../utils/schemaValidator.js';
|
|
7
6
|
import { BaseDeclarativeTool, BaseToolInvocation, Kind, ToolConfirmationOutcome, } from './tools.js';
|
|
8
7
|
import { getErrorMessage } from '../utils/errors.js';
|
|
9
8
|
import { ApprovalMode } from '../config/config.js';
|
|
@@ -224,11 +223,7 @@ export class WebFetchTool extends BaseDeclarativeTool {
|
|
|
224
223
|
setGlobalDispatcher(new ProxyAgent(proxy));
|
|
225
224
|
}
|
|
226
225
|
}
|
|
227
|
-
|
|
228
|
-
const errors = SchemaValidator.validate(this.schema.parametersJsonSchema, params);
|
|
229
|
-
if (errors) {
|
|
230
|
-
return errors;
|
|
231
|
-
}
|
|
226
|
+
validateToolParamValues(params) {
|
|
232
227
|
if (!params.prompt || params.prompt.trim() === '') {
|
|
233
228
|
return "The 'prompt' parameter cannot be empty and must contain URL(s) and instructions.";
|
|
234
229
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-fetch.js","sourceRoot":"","sources":["../../../src/tools/web-fetch.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"web-fetch.js","sourceRoot":"","sources":["../../../src/tools/web-fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,7 +42,7 @@ export declare class WebSearchTool extends BaseDeclarativeTool<WebSearchToolPara
|
|
|
42
42
|
* @param params The parameters to validate
|
|
43
43
|
* @returns An error message string if validation fails, null if valid
|
|
44
44
|
*/
|
|
45
|
-
protected
|
|
45
|
+
protected validateToolParamValues(params: WebSearchToolParams): string | null;
|
|
46
46
|
protected createInvocation(params: WebSearchToolParams): ToolInvocation<WebSearchToolParams, WebSearchToolResult>;
|
|
47
47
|
}
|
|
48
48
|
export {};
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { BaseDeclarativeTool, BaseToolInvocation, Kind, } from './tools.js';
|
|
7
|
-
import { SchemaValidator } from '../utils/schemaValidator.js';
|
|
8
7
|
import { getErrorMessage } from '../utils/errors.js';
|
|
9
8
|
import { getResponseText } from '../utils/generateContentResponseUtilities.js';
|
|
10
9
|
class WebSearchToolInvocation extends BaseToolInvocation {
|
|
@@ -104,11 +103,7 @@ export class WebSearchTool extends BaseDeclarativeTool {
|
|
|
104
103
|
* @param params The parameters to validate
|
|
105
104
|
* @returns An error message string if validation fails, null if valid
|
|
106
105
|
*/
|
|
107
|
-
|
|
108
|
-
const errors = SchemaValidator.validate(this.schema.parametersJsonSchema, params);
|
|
109
|
-
if (errors) {
|
|
110
|
-
return errors;
|
|
111
|
-
}
|
|
106
|
+
validateToolParamValues(params) {
|
|
112
107
|
if (!params.query || params.query.trim() === '') {
|
|
113
108
|
return "The 'query' parameter cannot be empty.";
|
|
114
109
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-search.js","sourceRoot":"","sources":["../../../src/tools/web-search.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,IAAI,GAGL,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"web-search.js","sourceRoot":"","sources":["../../../src/tools/web-search.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,7 +44,7 @@ export declare class WriteFileTool extends BaseDeclarativeTool<WriteFileToolPara
|
|
|
44
44
|
private readonly config;
|
|
45
45
|
static readonly Name: string;
|
|
46
46
|
constructor(config: Config);
|
|
47
|
-
protected
|
|
47
|
+
protected validateToolParamValues(params: WriteFileToolParams): string | null;
|
|
48
48
|
protected createInvocation(params: WriteFileToolParams): ToolInvocation<WriteFileToolParams, ToolResult>;
|
|
49
49
|
getModifyContext(abortSignal: AbortSignal): ModifyContext<WriteFileToolParams>;
|
|
50
50
|
}
|
|
@@ -9,7 +9,6 @@ import * as Diff from 'diff';
|
|
|
9
9
|
import { ApprovalMode } from '../config/config.js';
|
|
10
10
|
import { BaseDeclarativeTool, BaseToolInvocation, Kind, ToolConfirmationOutcome, } from './tools.js';
|
|
11
11
|
import { ToolErrorType } from './tool-error.js';
|
|
12
|
-
import { SchemaValidator } from '../utils/schemaValidator.js';
|
|
13
12
|
import { makeRelative, shortenPath } from '../utils/paths.js';
|
|
14
13
|
import { getErrorMessage, isNodeError } from '../utils/errors.js';
|
|
15
14
|
import { ensureCorrectEdit, ensureCorrectFileContent, } from '../utils/editCorrector.js';
|
|
@@ -22,7 +21,9 @@ export async function getCorrectedFileContent(config, filePath, proposedContent,
|
|
|
22
21
|
let fileExists = false;
|
|
23
22
|
let correctedContent = proposedContent;
|
|
24
23
|
try {
|
|
25
|
-
originalContent =
|
|
24
|
+
originalContent = await config
|
|
25
|
+
.getFileSystemService()
|
|
26
|
+
.readTextFile(filePath);
|
|
26
27
|
fileExists = true; // File exists and was read
|
|
27
28
|
}
|
|
28
29
|
catch (err) {
|
|
@@ -144,7 +145,9 @@ class WriteFileToolInvocation extends BaseToolInvocation {
|
|
|
144
145
|
if (!fs.existsSync(dirName)) {
|
|
145
146
|
fs.mkdirSync(dirName, { recursive: true });
|
|
146
147
|
}
|
|
147
|
-
|
|
148
|
+
await this.config
|
|
149
|
+
.getFileSystemService()
|
|
150
|
+
.writeTextFile(file_path, fileContent);
|
|
148
151
|
// Generate diff for display result
|
|
149
152
|
const fileName = path.basename(file_path);
|
|
150
153
|
// If there was a readError, originalContent in correctedContentResult is '',
|
|
@@ -252,11 +255,7 @@ export class WriteFileTool extends BaseDeclarativeTool {
|
|
|
252
255
|
});
|
|
253
256
|
this.config = config;
|
|
254
257
|
}
|
|
255
|
-
|
|
256
|
-
const errors = SchemaValidator.validate(this.schema.parametersJsonSchema, params);
|
|
257
|
-
if (errors) {
|
|
258
|
-
return errors;
|
|
259
|
-
}
|
|
258
|
+
validateToolParamValues(params) {
|
|
260
259
|
const filePath = params.file_path;
|
|
261
260
|
if (!filePath) {
|
|
262
261
|
return `Missing or empty "file_path"`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-file.js","sourceRoot":"","sources":["../../../src/tools/write-file.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"write-file.js","sourceRoot":"","sources":["../../../src/tools/write-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ import os from 'os';
|
|
|
14
14
|
import { GeminiClient } from '../core/client.js';
|
|
15
15
|
import { ensureCorrectEdit, ensureCorrectFileContent, } from '../utils/editCorrector.js';
|
|
16
16
|
import { createMockWorkspaceContext } from '../test-utils/mockWorkspaceContext.js';
|
|
17
|
+
import { StandardFileSystemService } from '../services/fileSystemService.js';
|
|
17
18
|
const rootDir = path.resolve(os.tmpdir(), 'gemini-cli-test-root');
|
|
18
19
|
// --- MOCKS ---
|
|
19
20
|
vi.mock('../core/client.js');
|
|
@@ -25,11 +26,13 @@ const mockEnsureCorrectFileContent = vi.fn();
|
|
|
25
26
|
vi.mocked(ensureCorrectEdit).mockImplementation(mockEnsureCorrectEdit);
|
|
26
27
|
vi.mocked(ensureCorrectFileContent).mockImplementation(mockEnsureCorrectFileContent);
|
|
27
28
|
// Mock Config
|
|
29
|
+
const fsService = new StandardFileSystemService();
|
|
28
30
|
const mockConfigInternal = {
|
|
29
31
|
getTargetDir: () => rootDir,
|
|
30
32
|
getApprovalMode: vi.fn(() => ApprovalMode.DEFAULT),
|
|
31
33
|
setApprovalMode: vi.fn(),
|
|
32
34
|
getGeminiClient: vi.fn(), // Initialize as a plain mock function
|
|
35
|
+
getFileSystemService: () => fsService,
|
|
33
36
|
getIdeClient: vi.fn(),
|
|
34
37
|
getIdeMode: vi.fn(() => false),
|
|
35
38
|
getWorkspaceContext: () => createMockWorkspaceContext(rootDir),
|
|
@@ -215,12 +218,9 @@ describe('WriteFileTool', () => {
|
|
|
215
218
|
const abortSignal = new AbortController().signal;
|
|
216
219
|
fs.writeFileSync(filePath, 'content', { mode: 0o000 });
|
|
217
220
|
const readError = new Error('Permission denied');
|
|
218
|
-
|
|
219
|
-
vi.spyOn(fs, 'readFileSync').mockImplementationOnce(() => {
|
|
220
|
-
throw readError;
|
|
221
|
-
});
|
|
221
|
+
vi.spyOn(fsService, 'readTextFile').mockImplementationOnce(() => Promise.reject(readError));
|
|
222
222
|
const result = await getCorrectedFileContent(mockConfig, filePath, proposedContent, abortSignal);
|
|
223
|
-
expect(
|
|
223
|
+
expect(fsService.readTextFile).toHaveBeenCalledWith(filePath);
|
|
224
224
|
expect(mockEnsureCorrectEdit).not.toHaveBeenCalled();
|
|
225
225
|
expect(mockEnsureCorrectFileContent).not.toHaveBeenCalled();
|
|
226
226
|
expect(result.correctedContent).toBe(proposedContent);
|
|
@@ -230,7 +230,6 @@ describe('WriteFileTool', () => {
|
|
|
230
230
|
message: 'Permission denied',
|
|
231
231
|
code: undefined,
|
|
232
232
|
});
|
|
233
|
-
vi.spyOn(fs, 'readFileSync').mockImplementation(originalReadFileSync);
|
|
234
233
|
fs.chmodSync(filePath, 0o600);
|
|
235
234
|
});
|
|
236
235
|
});
|
|
@@ -241,14 +240,10 @@ describe('WriteFileTool', () => {
|
|
|
241
240
|
const params = { file_path: filePath, content: 'test content' };
|
|
242
241
|
fs.writeFileSync(filePath, 'original', { mode: 0o000 });
|
|
243
242
|
const readError = new Error('Simulated read error for confirmation');
|
|
244
|
-
|
|
245
|
-
vi.spyOn(fs, 'readFileSync').mockImplementationOnce(() => {
|
|
246
|
-
throw readError;
|
|
247
|
-
});
|
|
243
|
+
vi.spyOn(fsService, 'readTextFile').mockImplementationOnce(() => Promise.reject(readError));
|
|
248
244
|
const invocation = tool.build(params);
|
|
249
245
|
const confirmation = await invocation.shouldConfirmExecute(abortSignal);
|
|
250
246
|
expect(confirmation).toBe(false);
|
|
251
|
-
vi.spyOn(fs, 'readFileSync').mockImplementation(originalReadFileSync);
|
|
252
247
|
fs.chmodSync(filePath, 0o600);
|
|
253
248
|
});
|
|
254
249
|
it('should request confirmation with diff for a new file (with corrected content)', async () => {
|
|
@@ -304,20 +299,18 @@ describe('WriteFileTool', () => {
|
|
|
304
299
|
const filePath = path.join(rootDir, 'execute_error_file.txt');
|
|
305
300
|
const params = { file_path: filePath, content: 'test content' };
|
|
306
301
|
fs.writeFileSync(filePath, 'original', { mode: 0o000 });
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
throw readError;
|
|
302
|
+
vi.spyOn(fsService, 'readTextFile').mockImplementationOnce(() => {
|
|
303
|
+
const readError = new Error('Simulated read error for execute');
|
|
304
|
+
return Promise.reject(readError);
|
|
311
305
|
});
|
|
312
306
|
const invocation = tool.build(params);
|
|
313
307
|
const result = await invocation.execute(abortSignal);
|
|
314
|
-
expect(result.llmContent).toContain('Error checking existing file
|
|
308
|
+
expect(result.llmContent).toContain('Error checking existing file');
|
|
315
309
|
expect(result.returnDisplay).toMatch(/Error checking existing file: Simulated read error for execute/);
|
|
316
310
|
expect(result.error).toEqual({
|
|
317
311
|
message: 'Error checking existing file: Simulated read error for execute',
|
|
318
312
|
type: ToolErrorType.FILE_WRITE_FAILURE,
|
|
319
313
|
});
|
|
320
|
-
vi.spyOn(fs, 'readFileSync').mockImplementation(originalReadFileSync);
|
|
321
314
|
fs.chmodSync(filePath, 0o600);
|
|
322
315
|
});
|
|
323
316
|
it('should write a new file with corrected content and return diff', async () => {
|
|
@@ -337,7 +330,8 @@ describe('WriteFileTool', () => {
|
|
|
337
330
|
expect(mockEnsureCorrectFileContent).toHaveBeenCalledWith(proposedContent, mockGeminiClientInstance, abortSignal);
|
|
338
331
|
expect(result.llmContent).toMatch(/Successfully created and wrote to new file/);
|
|
339
332
|
expect(fs.existsSync(filePath)).toBe(true);
|
|
340
|
-
|
|
333
|
+
const writtenContent = await fsService.readTextFile(filePath);
|
|
334
|
+
expect(writtenContent).toBe(correctedContent);
|
|
341
335
|
const display = result.returnDisplay;
|
|
342
336
|
expect(display.fileName).toBe('execute_new_corrected_file.txt');
|
|
343
337
|
expect(display.fileDiff).toMatch(/--- execute_new_corrected_file.txt\tOriginal/);
|
|
@@ -373,7 +367,8 @@ describe('WriteFileTool', () => {
|
|
|
373
367
|
file_path: filePath,
|
|
374
368
|
}, mockGeminiClientInstance, abortSignal);
|
|
375
369
|
expect(result.llmContent).toMatch(/Successfully overwrote file/);
|
|
376
|
-
|
|
370
|
+
const writtenContent = await fsService.readTextFile(filePath);
|
|
371
|
+
expect(writtenContent).toBe(correctedProposedContent);
|
|
377
372
|
const display = result.returnDisplay;
|
|
378
373
|
expect(display.fileName).toBe('execute_existing_corrected_file.txt');
|
|
379
374
|
expect(display.fileDiff).toMatch(initialContent.replace(/[.*+?^${}()|[\\]\\]/g, '\\$&'));
|
|
@@ -459,12 +454,11 @@ describe('WriteFileTool', () => {
|
|
|
459
454
|
it('should return PERMISSION_DENIED error when write fails with EACCES', async () => {
|
|
460
455
|
const filePath = path.join(rootDir, 'permission_denied_file.txt');
|
|
461
456
|
const content = 'test content';
|
|
462
|
-
// Mock
|
|
463
|
-
|
|
464
|
-
vi.spyOn(fs, 'writeFileSync').mockImplementationOnce(() => {
|
|
457
|
+
// Mock FileSystemService writeTextFile to throw EACCES error
|
|
458
|
+
vi.spyOn(fsService, 'writeTextFile').mockImplementationOnce(() => {
|
|
465
459
|
const error = new Error('Permission denied');
|
|
466
460
|
error.code = 'EACCES';
|
|
467
|
-
|
|
461
|
+
return Promise.reject(error);
|
|
468
462
|
});
|
|
469
463
|
const params = { file_path: filePath, content };
|
|
470
464
|
const invocation = tool.build(params);
|
|
@@ -472,17 +466,15 @@ describe('WriteFileTool', () => {
|
|
|
472
466
|
expect(result.error?.type).toBe(ToolErrorType.PERMISSION_DENIED);
|
|
473
467
|
expect(result.llmContent).toContain(`Permission denied writing to file: ${filePath} (EACCES)`);
|
|
474
468
|
expect(result.returnDisplay).toContain(`Permission denied writing to file: ${filePath} (EACCES)`);
|
|
475
|
-
vi.spyOn(fs, 'writeFileSync').mockImplementation(originalWriteFileSync);
|
|
476
469
|
});
|
|
477
470
|
it('should return NO_SPACE_LEFT error when write fails with ENOSPC', async () => {
|
|
478
471
|
const filePath = path.join(rootDir, 'no_space_file.txt');
|
|
479
472
|
const content = 'test content';
|
|
480
|
-
// Mock
|
|
481
|
-
|
|
482
|
-
vi.spyOn(fs, 'writeFileSync').mockImplementationOnce(() => {
|
|
473
|
+
// Mock FileSystemService writeTextFile to throw ENOSPC error
|
|
474
|
+
vi.spyOn(fsService, 'writeTextFile').mockImplementationOnce(() => {
|
|
483
475
|
const error = new Error('No space left on device');
|
|
484
476
|
error.code = 'ENOSPC';
|
|
485
|
-
|
|
477
|
+
return Promise.reject(error);
|
|
486
478
|
});
|
|
487
479
|
const params = { file_path: filePath, content };
|
|
488
480
|
const invocation = tool.build(params);
|
|
@@ -490,7 +482,6 @@ describe('WriteFileTool', () => {
|
|
|
490
482
|
expect(result.error?.type).toBe(ToolErrorType.NO_SPACE_LEFT);
|
|
491
483
|
expect(result.llmContent).toContain(`No space left on device: ${filePath} (ENOSPC)`);
|
|
492
484
|
expect(result.returnDisplay).toContain(`No space left on device: ${filePath} (ENOSPC)`);
|
|
493
|
-
vi.spyOn(fs, 'writeFileSync').mockImplementation(originalWriteFileSync);
|
|
494
485
|
});
|
|
495
486
|
it('should return TARGET_IS_DIRECTORY error when write fails with EISDIR', async () => {
|
|
496
487
|
const dirPath = path.join(rootDir, 'test_directory');
|
|
@@ -503,12 +494,11 @@ describe('WriteFileTool', () => {
|
|
|
503
494
|
}
|
|
504
495
|
return originalExistsSync(path);
|
|
505
496
|
});
|
|
506
|
-
// Mock
|
|
507
|
-
|
|
508
|
-
vi.spyOn(fs, 'writeFileSync').mockImplementationOnce(() => {
|
|
497
|
+
// Mock FileSystemService writeTextFile to throw EISDIR error
|
|
498
|
+
vi.spyOn(fsService, 'writeTextFile').mockImplementationOnce(() => {
|
|
509
499
|
const error = new Error('Is a directory');
|
|
510
500
|
error.code = 'EISDIR';
|
|
511
|
-
|
|
501
|
+
return Promise.reject(error);
|
|
512
502
|
});
|
|
513
503
|
const params = { file_path: dirPath, content };
|
|
514
504
|
const invocation = tool.build(params);
|
|
@@ -517,17 +507,14 @@ describe('WriteFileTool', () => {
|
|
|
517
507
|
expect(result.llmContent).toContain(`Target is a directory, not a file: ${dirPath} (EISDIR)`);
|
|
518
508
|
expect(result.returnDisplay).toContain(`Target is a directory, not a file: ${dirPath} (EISDIR)`);
|
|
519
509
|
vi.spyOn(fs, 'existsSync').mockImplementation(originalExistsSync);
|
|
520
|
-
vi.spyOn(fs, 'writeFileSync').mockImplementation(originalWriteFileSync);
|
|
521
510
|
});
|
|
522
511
|
it('should return FILE_WRITE_FAILURE for generic write errors', async () => {
|
|
523
512
|
const filePath = path.join(rootDir, 'generic_error_file.txt');
|
|
524
513
|
const content = 'test content';
|
|
525
514
|
// Ensure fs.existsSync is not mocked for this test
|
|
526
515
|
vi.restoreAllMocks();
|
|
527
|
-
// Mock
|
|
528
|
-
vi.spyOn(
|
|
529
|
-
throw new Error('Generic write error');
|
|
530
|
-
});
|
|
516
|
+
// Mock FileSystemService writeTextFile to throw generic error
|
|
517
|
+
vi.spyOn(fsService, 'writeTextFile').mockImplementationOnce(() => Promise.reject(new Error('Generic write error')));
|
|
531
518
|
const params = { file_path: filePath, content };
|
|
532
519
|
const invocation = tool.build(params);
|
|
533
520
|
const result = await invocation.execute(abortSignal);
|