@google/gemini-cli-core 0.1.13 → 0.1.14
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 +22 -1
- package/dist/google-gemini-cli-core-0.1.13.tgz +0 -0
- package/dist/src/code_assist/codeAssist.js +2 -2
- package/dist/src/code_assist/codeAssist.js.map +1 -1
- package/dist/src/code_assist/oauth2.js +9 -2
- package/dist/src/code_assist/oauth2.js.map +1 -1
- package/dist/src/code_assist/oauth2.test.js +92 -0
- package/dist/src/code_assist/oauth2.test.js.map +1 -1
- package/dist/src/code_assist/server.d.ts +4 -6
- package/dist/src/code_assist/server.js +4 -69
- package/dist/src/code_assist/server.js.map +1 -1
- package/dist/src/code_assist/setup.d.ts +6 -1
- package/dist/src/code_assist/setup.js +4 -1
- package/dist/src/code_assist/setup.js.map +1 -1
- package/dist/src/code_assist/setup.test.js +4 -1
- package/dist/src/code_assist/setup.test.js.map +1 -1
- package/dist/src/code_assist/types.d.ts +2 -2
- package/dist/src/config/config.d.ts +25 -7
- package/dist/src/config/config.js +46 -16
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +1 -23
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/flashFallback.test.js +1 -1
- package/dist/src/config/flashFallback.test.js.map +1 -1
- package/dist/src/core/client.d.ts +5 -2
- package/dist/src/core/client.js +39 -17
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +51 -0
- package/dist/src/core/client.test.js.map +1 -1
- package/dist/src/core/contentGenerator.d.ts +1 -1
- package/dist/src/core/contentGenerator.js +1 -1
- package/dist/src/core/contentGenerator.js.map +1 -1
- package/dist/src/core/geminiChat.d.ts +4 -3
- package/dist/src/core/geminiChat.js +8 -11
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/geminiRequest.js +2 -37
- package/dist/src/core/geminiRequest.js.map +1 -1
- package/dist/src/core/logger.js +6 -0
- package/dist/src/core/logger.js.map +1 -1
- package/dist/src/core/logger.test.js +1 -1
- package/dist/src/core/logger.test.js.map +1 -1
- package/dist/src/core/nonInteractiveToolExecutor.test.js +5 -5
- package/dist/src/core/prompts.js +42 -18
- package/dist/src/core/prompts.js.map +1 -1
- package/dist/src/core/prompts.test.js +121 -4
- package/dist/src/core/prompts.test.js.map +1 -1
- package/dist/src/core/turn.d.ts +7 -2
- package/dist/src/core/turn.js +9 -0
- package/dist/src/core/turn.js.map +1 -1
- package/dist/src/core/turn.test.js +129 -0
- package/dist/src/core/turn.test.js.map +1 -1
- package/dist/src/ide/ide-client.d.ts +28 -0
- package/dist/src/ide/ide-client.js +79 -0
- package/dist/src/ide/ide-client.js.map +1 -0
- package/dist/src/ide/ideContext.d.ts +174 -0
- package/dist/src/{services → ide}/ideContext.js +28 -25
- package/dist/src/ide/ideContext.js.map +1 -0
- package/dist/src/{services → ide}/ideContext.test.js +39 -39
- package/dist/src/ide/ideContext.test.js.map +1 -0
- package/dist/src/index.d.ts +3 -1
- package/dist/src/index.js +4 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/google-auth-provider.d.ts +23 -0
- package/dist/src/mcp/google-auth-provider.js +63 -0
- package/dist/src/mcp/google-auth-provider.js.map +1 -0
- package/dist/src/mcp/google-auth-provider.test.js +54 -0
- package/dist/src/mcp/google-auth-provider.test.js.map +1 -0
- package/dist/src/services/loopDetectionService.d.ts +48 -5
- package/dist/src/services/loopDetectionService.js +124 -38
- package/dist/src/services/loopDetectionService.js.map +1 -1
- package/dist/src/services/loopDetectionService.test.js +39 -112
- package/dist/src/services/loopDetectionService.test.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +2 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +17 -2
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
- package/dist/src/telemetry/constants.d.ts +1 -0
- package/dist/src/telemetry/constants.js +1 -0
- package/dist/src/telemetry/constants.js.map +1 -1
- package/dist/src/telemetry/file-exporters.d.ts +28 -0
- package/dist/src/telemetry/file-exporters.js +62 -0
- package/dist/src/telemetry/file-exporters.js.map +1 -0
- package/dist/src/telemetry/loggers.d.ts +2 -1
- package/dist/src/telemetry/loggers.js +17 -1
- package/dist/src/telemetry/loggers.js.map +1 -1
- package/dist/src/telemetry/sdk.js +17 -6
- package/dist/src/telemetry/sdk.js.map +1 -1
- package/dist/src/telemetry/types.d.ts +9 -2
- package/dist/src/telemetry/types.js +13 -1
- package/dist/src/telemetry/types.js.map +1 -1
- package/dist/src/tools/edit.js +10 -4
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/edit.test.js +12 -0
- package/dist/src/tools/edit.test.js.map +1 -1
- package/dist/src/tools/grep.test.js +1 -1
- package/dist/src/tools/grep.test.js.map +1 -1
- package/dist/src/tools/ls.d.ts +5 -2
- package/dist/src/tools/ls.js +39 -10
- package/dist/src/tools/ls.js.map +1 -1
- package/dist/src/tools/mcp-client.d.ts +5 -1
- package/dist/src/tools/mcp-client.js +414 -28
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-client.test.js +46 -6
- package/dist/src/tools/mcp-client.test.js.map +1 -1
- package/dist/src/tools/mcp-tool.js +1 -1
- package/dist/src/tools/mcp-tool.js.map +1 -1
- package/dist/src/tools/mcp-tool.test.js +34 -0
- package/dist/src/tools/mcp-tool.test.js.map +1 -1
- package/dist/src/tools/read-file.test.js +98 -69
- package/dist/src/tools/read-file.test.js.map +1 -1
- package/dist/src/tools/read-many-files.d.ts +5 -3
- package/dist/src/tools/read-many-files.js +62 -22
- package/dist/src/tools/read-many-files.js.map +1 -1
- package/dist/src/tools/read-many-files.test.js +5 -2
- package/dist/src/tools/read-many-files.test.js.map +1 -1
- package/dist/src/tools/shell.d.ts +2 -23
- package/dist/src/tools/shell.js +49 -136
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/shell.test.js +33 -319
- package/dist/src/tools/shell.test.js.map +1 -1
- package/dist/src/tools/tool-registry.d.ts +13 -1
- package/dist/src/tools/tool-registry.js +45 -1
- package/dist/src/tools/tool-registry.js.map +1 -1
- package/dist/src/tools/tool-registry.test.js +3 -3
- package/dist/src/tools/tool-registry.test.js.map +1 -1
- package/dist/src/utils/bfsFileSearch.d.ts +2 -0
- package/dist/src/utils/bfsFileSearch.js +4 -1
- package/dist/src/utils/bfsFileSearch.js.map +1 -1
- package/dist/src/utils/bfsFileSearch.test.js +108 -105
- package/dist/src/utils/bfsFileSearch.test.js.map +1 -1
- package/dist/src/utils/editCorrector.js +4 -4
- package/dist/src/utils/editCorrector.js.map +1 -1
- package/dist/src/utils/editCorrector.test.js +1 -1
- package/dist/src/utils/editor.js +16 -10
- package/dist/src/utils/editor.js.map +1 -1
- package/dist/src/utils/editor.test.js +128 -28
- package/dist/src/utils/editor.test.js.map +1 -1
- package/dist/src/utils/errorReporting.d.ts +1 -1
- package/dist/src/utils/errorReporting.js +2 -2
- package/dist/src/utils/errorReporting.js.map +1 -1
- package/dist/src/utils/errorReporting.test.js +44 -38
- package/dist/src/utils/errorReporting.test.js.map +1 -1
- package/dist/src/utils/fileUtils.d.ts +4 -4
- package/dist/src/utils/fileUtils.js +31 -15
- package/dist/src/utils/fileUtils.js.map +1 -1
- package/dist/src/utils/fileUtils.test.js +37 -37
- package/dist/src/utils/fileUtils.test.js.map +1 -1
- package/dist/src/utils/getFolderStructure.d.ts +3 -2
- package/dist/src/utils/getFolderStructure.js +27 -28
- package/dist/src/utils/getFolderStructure.js.map +1 -1
- package/dist/src/utils/getFolderStructure.test.js +169 -187
- package/dist/src/utils/getFolderStructure.test.js.map +1 -1
- package/dist/src/utils/gitIgnoreParser.js +4 -7
- package/dist/src/utils/gitIgnoreParser.js.map +1 -1
- package/dist/src/utils/gitIgnoreParser.test.js +70 -61
- package/dist/src/utils/gitIgnoreParser.test.js.map +1 -1
- package/dist/src/utils/memoryDiscovery.d.ts +2 -1
- package/dist/src/utils/memoryDiscovery.js +11 -5
- package/dist/src/utils/memoryDiscovery.js.map +1 -1
- package/dist/src/utils/memoryDiscovery.test.js +160 -371
- package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
- package/dist/src/utils/partUtils.d.ts +14 -0
- package/dist/src/utils/partUtils.js +65 -0
- package/dist/src/utils/partUtils.js.map +1 -0
- package/dist/src/utils/partUtils.test.d.ts +6 -0
- package/dist/src/utils/partUtils.test.js +130 -0
- package/dist/src/utils/partUtils.test.js.map +1 -0
- package/dist/src/utils/paths.d.ts +11 -0
- package/dist/src/utils/paths.js +17 -1
- package/dist/src/utils/paths.js.map +1 -1
- package/dist/src/utils/quotaErrorDetection.js +0 -2
- package/dist/src/utils/quotaErrorDetection.js.map +1 -1
- package/dist/src/utils/retry.js +1 -1
- package/dist/src/utils/retry.js.map +1 -1
- package/dist/src/utils/schemaValidator.d.ts +1 -1
- package/dist/src/utils/schemaValidator.js +6 -3
- package/dist/src/utils/schemaValidator.js.map +1 -1
- package/dist/src/utils/shell-utils.d.ts +44 -0
- package/dist/src/utils/shell-utils.js +243 -0
- package/dist/src/utils/shell-utils.js.map +1 -0
- package/dist/src/utils/shell-utils.test.d.ts +6 -0
- package/dist/src/utils/shell-utils.test.js +450 -0
- package/dist/src/utils/shell-utils.test.js.map +1 -0
- package/dist/src/utils/summarizer.js +1 -30
- package/dist/src/utils/summarizer.js.map +1 -1
- package/dist/src/utils/systemEncoding.d.ts +40 -0
- package/dist/src/utils/systemEncoding.js +149 -0
- package/dist/src/utils/systemEncoding.js.map +1 -0
- package/dist/src/utils/systemEncoding.test.d.ts +6 -0
- package/dist/src/utils/systemEncoding.test.js +368 -0
- package/dist/src/utils/systemEncoding.test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -1
- package/dist/google-gemini-cli-core-0.1.12.tgz +0 -0
- package/dist/src/core/geminiRequest.test.js +0 -72
- package/dist/src/core/geminiRequest.test.js.map +0 -1
- package/dist/src/services/ideContext.d.ts +0 -126
- package/dist/src/services/ideContext.js.map +0 -1
- package/dist/src/services/ideContext.test.js.map +0 -1
- /package/dist/src/{services → ide}/ideContext.test.d.ts +0 -0
- /package/dist/src/{core/geminiRequest.test.d.ts → mcp/google-auth-provider.test.d.ts} +0 -0
|
@@ -6,319 +6,7 @@
|
|
|
6
6
|
import { expect, describe, it, vi, beforeEach } from 'vitest';
|
|
7
7
|
import { ShellTool } from './shell.js';
|
|
8
8
|
import * as summarizer from '../utils/summarizer.js';
|
|
9
|
-
|
|
10
|
-
it('should allow a command if no restrictions are provided', async () => {
|
|
11
|
-
const config = {
|
|
12
|
-
getCoreTools: () => undefined,
|
|
13
|
-
getExcludeTools: () => undefined,
|
|
14
|
-
};
|
|
15
|
-
const shellTool = new ShellTool(config);
|
|
16
|
-
const result = shellTool.isCommandAllowed('ls -l');
|
|
17
|
-
expect(result.allowed).toBe(true);
|
|
18
|
-
});
|
|
19
|
-
it('should allow a command if it is in the allowed list', async () => {
|
|
20
|
-
const config = {
|
|
21
|
-
getCoreTools: () => ['ShellTool(ls -l)'],
|
|
22
|
-
getExcludeTools: () => undefined,
|
|
23
|
-
};
|
|
24
|
-
const shellTool = new ShellTool(config);
|
|
25
|
-
const result = shellTool.isCommandAllowed('ls -l');
|
|
26
|
-
expect(result.allowed).toBe(true);
|
|
27
|
-
});
|
|
28
|
-
it('should block a command if it is not in the allowed list', async () => {
|
|
29
|
-
const config = {
|
|
30
|
-
getCoreTools: () => ['ShellTool(ls -l)'],
|
|
31
|
-
getExcludeTools: () => undefined,
|
|
32
|
-
};
|
|
33
|
-
const shellTool = new ShellTool(config);
|
|
34
|
-
const result = shellTool.isCommandAllowed('rm -rf /');
|
|
35
|
-
expect(result.allowed).toBe(false);
|
|
36
|
-
expect(result.reason).toBe("Command 'rm -rf /' is not in the allowed commands list");
|
|
37
|
-
});
|
|
38
|
-
it('should block a command if it is in the blocked list', async () => {
|
|
39
|
-
const config = {
|
|
40
|
-
getCoreTools: () => undefined,
|
|
41
|
-
getExcludeTools: () => ['ShellTool(rm -rf /)'],
|
|
42
|
-
};
|
|
43
|
-
const shellTool = new ShellTool(config);
|
|
44
|
-
const result = shellTool.isCommandAllowed('rm -rf /');
|
|
45
|
-
expect(result.allowed).toBe(false);
|
|
46
|
-
expect(result.reason).toBe("Command 'rm -rf /' is blocked by configuration");
|
|
47
|
-
});
|
|
48
|
-
it('should allow a command if it is not in the blocked list', async () => {
|
|
49
|
-
const config = {
|
|
50
|
-
getCoreTools: () => undefined,
|
|
51
|
-
getExcludeTools: () => ['ShellTool(rm -rf /)'],
|
|
52
|
-
};
|
|
53
|
-
const shellTool = new ShellTool(config);
|
|
54
|
-
const result = shellTool.isCommandAllowed('ls -l');
|
|
55
|
-
expect(result.allowed).toBe(true);
|
|
56
|
-
});
|
|
57
|
-
it('should block a command if it is in both the allowed and blocked lists', async () => {
|
|
58
|
-
const config = {
|
|
59
|
-
getCoreTools: () => ['ShellTool(rm -rf /)'],
|
|
60
|
-
getExcludeTools: () => ['ShellTool(rm -rf /)'],
|
|
61
|
-
};
|
|
62
|
-
const shellTool = new ShellTool(config);
|
|
63
|
-
const result = shellTool.isCommandAllowed('rm -rf /');
|
|
64
|
-
expect(result.allowed).toBe(false);
|
|
65
|
-
expect(result.reason).toBe("Command 'rm -rf /' is blocked by configuration");
|
|
66
|
-
});
|
|
67
|
-
it('should allow any command when ShellTool is in coreTools without specific commands', async () => {
|
|
68
|
-
const config = {
|
|
69
|
-
getCoreTools: () => ['ShellTool'],
|
|
70
|
-
getExcludeTools: () => [],
|
|
71
|
-
};
|
|
72
|
-
const shellTool = new ShellTool(config);
|
|
73
|
-
const result = shellTool.isCommandAllowed('any command');
|
|
74
|
-
expect(result.allowed).toBe(true);
|
|
75
|
-
});
|
|
76
|
-
it('should block any command when ShellTool is in excludeTools without specific commands', async () => {
|
|
77
|
-
const config = {
|
|
78
|
-
getCoreTools: () => [],
|
|
79
|
-
getExcludeTools: () => ['ShellTool'],
|
|
80
|
-
};
|
|
81
|
-
const shellTool = new ShellTool(config);
|
|
82
|
-
const result = shellTool.isCommandAllowed('any command');
|
|
83
|
-
expect(result.allowed).toBe(false);
|
|
84
|
-
expect(result.reason).toBe('Shell tool is globally disabled in configuration');
|
|
85
|
-
});
|
|
86
|
-
it('should allow a command if it is in the allowed list using the public-facing name', async () => {
|
|
87
|
-
const config = {
|
|
88
|
-
getCoreTools: () => ['run_shell_command(ls -l)'],
|
|
89
|
-
getExcludeTools: () => undefined,
|
|
90
|
-
};
|
|
91
|
-
const shellTool = new ShellTool(config);
|
|
92
|
-
const result = shellTool.isCommandAllowed('ls -l');
|
|
93
|
-
expect(result.allowed).toBe(true);
|
|
94
|
-
});
|
|
95
|
-
it('should block a command if it is in the blocked list using the public-facing name', async () => {
|
|
96
|
-
const config = {
|
|
97
|
-
getCoreTools: () => undefined,
|
|
98
|
-
getExcludeTools: () => ['run_shell_command(rm -rf /)'],
|
|
99
|
-
};
|
|
100
|
-
const shellTool = new ShellTool(config);
|
|
101
|
-
const result = shellTool.isCommandAllowed('rm -rf /');
|
|
102
|
-
expect(result.allowed).toBe(false);
|
|
103
|
-
expect(result.reason).toBe("Command 'rm -rf /' is blocked by configuration");
|
|
104
|
-
});
|
|
105
|
-
it('should block any command when ShellTool is in excludeTools using the public-facing name', async () => {
|
|
106
|
-
const config = {
|
|
107
|
-
getCoreTools: () => [],
|
|
108
|
-
getExcludeTools: () => ['run_shell_command'],
|
|
109
|
-
};
|
|
110
|
-
const shellTool = new ShellTool(config);
|
|
111
|
-
const result = shellTool.isCommandAllowed('any command');
|
|
112
|
-
expect(result.allowed).toBe(false);
|
|
113
|
-
expect(result.reason).toBe('Shell tool is globally disabled in configuration');
|
|
114
|
-
});
|
|
115
|
-
it('should block any command if coreTools contains an empty ShellTool command list using the public-facing name', async () => {
|
|
116
|
-
const config = {
|
|
117
|
-
getCoreTools: () => ['run_shell_command()'],
|
|
118
|
-
getExcludeTools: () => [],
|
|
119
|
-
};
|
|
120
|
-
const shellTool = new ShellTool(config);
|
|
121
|
-
const result = shellTool.isCommandAllowed('any command');
|
|
122
|
-
expect(result.allowed).toBe(false);
|
|
123
|
-
expect(result.reason).toBe("Command 'any command' is not in the allowed commands list");
|
|
124
|
-
});
|
|
125
|
-
it('should block any command if coreTools contains an empty ShellTool command list', async () => {
|
|
126
|
-
const config = {
|
|
127
|
-
getCoreTools: () => ['ShellTool()'],
|
|
128
|
-
getExcludeTools: () => [],
|
|
129
|
-
};
|
|
130
|
-
const shellTool = new ShellTool(config);
|
|
131
|
-
const result = shellTool.isCommandAllowed('any command');
|
|
132
|
-
expect(result.allowed).toBe(false);
|
|
133
|
-
expect(result.reason).toBe("Command 'any command' is not in the allowed commands list");
|
|
134
|
-
});
|
|
135
|
-
it('should block a command with extra whitespace if it is in the blocked list', async () => {
|
|
136
|
-
const config = {
|
|
137
|
-
getCoreTools: () => undefined,
|
|
138
|
-
getExcludeTools: () => ['ShellTool(rm -rf /)'],
|
|
139
|
-
};
|
|
140
|
-
const shellTool = new ShellTool(config);
|
|
141
|
-
const result = shellTool.isCommandAllowed(' rm -rf / ');
|
|
142
|
-
expect(result.allowed).toBe(false);
|
|
143
|
-
expect(result.reason).toBe("Command 'rm -rf /' is blocked by configuration");
|
|
144
|
-
});
|
|
145
|
-
it('should allow any command when ShellTool is present with specific commands', async () => {
|
|
146
|
-
const config = {
|
|
147
|
-
getCoreTools: () => ['ShellTool', 'ShellTool(ls)'],
|
|
148
|
-
getExcludeTools: () => [],
|
|
149
|
-
};
|
|
150
|
-
const shellTool = new ShellTool(config);
|
|
151
|
-
const result = shellTool.isCommandAllowed('any command');
|
|
152
|
-
expect(result.allowed).toBe(true);
|
|
153
|
-
});
|
|
154
|
-
it('should block a command on the blocklist even with a wildcard allow', async () => {
|
|
155
|
-
const config = {
|
|
156
|
-
getCoreTools: () => ['ShellTool'],
|
|
157
|
-
getExcludeTools: () => ['ShellTool(rm -rf /)'],
|
|
158
|
-
};
|
|
159
|
-
const shellTool = new ShellTool(config);
|
|
160
|
-
const result = shellTool.isCommandAllowed('rm -rf /');
|
|
161
|
-
expect(result.allowed).toBe(false);
|
|
162
|
-
expect(result.reason).toBe("Command 'rm -rf /' is blocked by configuration");
|
|
163
|
-
});
|
|
164
|
-
it('should allow a command that starts with an allowed command prefix', async () => {
|
|
165
|
-
const config = {
|
|
166
|
-
getCoreTools: () => ['ShellTool(gh issue edit)'],
|
|
167
|
-
getExcludeTools: () => [],
|
|
168
|
-
};
|
|
169
|
-
const shellTool = new ShellTool(config);
|
|
170
|
-
const result = shellTool.isCommandAllowed('gh issue edit 1 --add-label "kind/feature"');
|
|
171
|
-
expect(result.allowed).toBe(true);
|
|
172
|
-
});
|
|
173
|
-
it('should allow a command that starts with an allowed command prefix using the public-facing name', async () => {
|
|
174
|
-
const config = {
|
|
175
|
-
getCoreTools: () => ['run_shell_command(gh issue edit)'],
|
|
176
|
-
getExcludeTools: () => [],
|
|
177
|
-
};
|
|
178
|
-
const shellTool = new ShellTool(config);
|
|
179
|
-
const result = shellTool.isCommandAllowed('gh issue edit 1 --add-label "kind/feature"');
|
|
180
|
-
expect(result.allowed).toBe(true);
|
|
181
|
-
});
|
|
182
|
-
it('should not allow a command that starts with an allowed command prefix but is chained with another command', async () => {
|
|
183
|
-
const config = {
|
|
184
|
-
getCoreTools: () => ['run_shell_command(gh issue edit)'],
|
|
185
|
-
getExcludeTools: () => [],
|
|
186
|
-
};
|
|
187
|
-
const shellTool = new ShellTool(config);
|
|
188
|
-
const result = shellTool.isCommandAllowed('gh issue edit&&rm -rf /');
|
|
189
|
-
expect(result.allowed).toBe(false);
|
|
190
|
-
expect(result.reason).toBe("Command 'rm -rf /' is not in the allowed commands list");
|
|
191
|
-
});
|
|
192
|
-
it('should not allow a command that is a prefix of an allowed command', async () => {
|
|
193
|
-
const config = {
|
|
194
|
-
getCoreTools: () => ['run_shell_command(gh issue edit)'],
|
|
195
|
-
getExcludeTools: () => [],
|
|
196
|
-
};
|
|
197
|
-
const shellTool = new ShellTool(config);
|
|
198
|
-
const result = shellTool.isCommandAllowed('gh issue');
|
|
199
|
-
expect(result.allowed).toBe(false);
|
|
200
|
-
expect(result.reason).toBe("Command 'gh issue' is not in the allowed commands list");
|
|
201
|
-
});
|
|
202
|
-
it('should not allow a command that is a prefix of a blocked command', async () => {
|
|
203
|
-
const config = {
|
|
204
|
-
getCoreTools: () => [],
|
|
205
|
-
getExcludeTools: () => ['run_shell_command(gh issue edit)'],
|
|
206
|
-
};
|
|
207
|
-
const shellTool = new ShellTool(config);
|
|
208
|
-
const result = shellTool.isCommandAllowed('gh issue');
|
|
209
|
-
expect(result.allowed).toBe(true);
|
|
210
|
-
});
|
|
211
|
-
it('should not allow a command that is chained with a pipe', async () => {
|
|
212
|
-
const config = {
|
|
213
|
-
getCoreTools: () => ['run_shell_command(gh issue list)'],
|
|
214
|
-
getExcludeTools: () => [],
|
|
215
|
-
};
|
|
216
|
-
const shellTool = new ShellTool(config);
|
|
217
|
-
const result = shellTool.isCommandAllowed('gh issue list | rm -rf /');
|
|
218
|
-
expect(result.allowed).toBe(false);
|
|
219
|
-
expect(result.reason).toBe("Command 'rm -rf /' is not in the allowed commands list");
|
|
220
|
-
});
|
|
221
|
-
it('should not allow a command that is chained with a semicolon', async () => {
|
|
222
|
-
const config = {
|
|
223
|
-
getCoreTools: () => ['run_shell_command(gh issue list)'],
|
|
224
|
-
getExcludeTools: () => [],
|
|
225
|
-
};
|
|
226
|
-
const shellTool = new ShellTool(config);
|
|
227
|
-
const result = shellTool.isCommandAllowed('gh issue list; rm -rf /');
|
|
228
|
-
expect(result.allowed).toBe(false);
|
|
229
|
-
expect(result.reason).toBe("Command 'rm -rf /' is not in the allowed commands list");
|
|
230
|
-
});
|
|
231
|
-
it('should block a chained command if any part is blocked', async () => {
|
|
232
|
-
const config = {
|
|
233
|
-
getCoreTools: () => ['run_shell_command(echo "hello")'],
|
|
234
|
-
getExcludeTools: () => ['run_shell_command(rm)'],
|
|
235
|
-
};
|
|
236
|
-
const shellTool = new ShellTool(config);
|
|
237
|
-
const result = shellTool.isCommandAllowed('echo "hello" && rm -rf /');
|
|
238
|
-
expect(result.allowed).toBe(false);
|
|
239
|
-
expect(result.reason).toBe("Command 'rm -rf /' is blocked by configuration");
|
|
240
|
-
});
|
|
241
|
-
it('should block a command if its prefix is on the blocklist, even if the command itself is on the allowlist', async () => {
|
|
242
|
-
const config = {
|
|
243
|
-
getCoreTools: () => ['run_shell_command(git push)'],
|
|
244
|
-
getExcludeTools: () => ['run_shell_command(git)'],
|
|
245
|
-
};
|
|
246
|
-
const shellTool = new ShellTool(config);
|
|
247
|
-
const result = shellTool.isCommandAllowed('git push');
|
|
248
|
-
expect(result.allowed).toBe(false);
|
|
249
|
-
expect(result.reason).toBe("Command 'git push' is blocked by configuration");
|
|
250
|
-
});
|
|
251
|
-
it('should be case-sensitive in its matching', async () => {
|
|
252
|
-
const config = {
|
|
253
|
-
getCoreTools: () => ['run_shell_command(echo)'],
|
|
254
|
-
getExcludeTools: () => [],
|
|
255
|
-
};
|
|
256
|
-
const shellTool = new ShellTool(config);
|
|
257
|
-
const result = shellTool.isCommandAllowed('ECHO "hello"');
|
|
258
|
-
expect(result.allowed).toBe(false);
|
|
259
|
-
expect(result.reason).toBe('Command \'ECHO "hello"\' is not in the allowed commands list');
|
|
260
|
-
});
|
|
261
|
-
it('should correctly handle commands with extra whitespace around chaining operators', async () => {
|
|
262
|
-
const config = {
|
|
263
|
-
getCoreTools: () => ['run_shell_command(ls -l)'],
|
|
264
|
-
getExcludeTools: () => ['run_shell_command(rm)'],
|
|
265
|
-
};
|
|
266
|
-
const shellTool = new ShellTool(config);
|
|
267
|
-
const result = shellTool.isCommandAllowed('ls -l ; rm -rf /');
|
|
268
|
-
expect(result.allowed).toBe(false);
|
|
269
|
-
expect(result.reason).toBe("Command 'rm -rf /' is blocked by configuration");
|
|
270
|
-
});
|
|
271
|
-
it('should allow a chained command if all parts are allowed', async () => {
|
|
272
|
-
const config = {
|
|
273
|
-
getCoreTools: () => [
|
|
274
|
-
'run_shell_command(echo)',
|
|
275
|
-
'run_shell_command(ls -l)',
|
|
276
|
-
],
|
|
277
|
-
getExcludeTools: () => [],
|
|
278
|
-
};
|
|
279
|
-
const shellTool = new ShellTool(config);
|
|
280
|
-
const result = shellTool.isCommandAllowed('echo "hello" && ls -l');
|
|
281
|
-
expect(result.allowed).toBe(true);
|
|
282
|
-
});
|
|
283
|
-
it('should allow a command with command substitution using backticks', async () => {
|
|
284
|
-
const config = {
|
|
285
|
-
getCoreTools: () => ['run_shell_command(echo)'],
|
|
286
|
-
getExcludeTools: () => [],
|
|
287
|
-
};
|
|
288
|
-
const shellTool = new ShellTool(config);
|
|
289
|
-
const result = shellTool.isCommandAllowed('echo `rm -rf /`');
|
|
290
|
-
expect(result.allowed).toBe(true);
|
|
291
|
-
});
|
|
292
|
-
it('should block a command with command substitution using $()', async () => {
|
|
293
|
-
const config = {
|
|
294
|
-
getCoreTools: () => ['run_shell_command(echo)'],
|
|
295
|
-
getExcludeTools: () => [],
|
|
296
|
-
};
|
|
297
|
-
const shellTool = new ShellTool(config);
|
|
298
|
-
const result = shellTool.isCommandAllowed('echo $(rm -rf /)');
|
|
299
|
-
expect(result.allowed).toBe(false);
|
|
300
|
-
expect(result.reason).toBe('Command substitution using $() is not allowed for security reasons');
|
|
301
|
-
});
|
|
302
|
-
it('should allow a command with I/O redirection', async () => {
|
|
303
|
-
const config = {
|
|
304
|
-
getCoreTools: () => ['run_shell_command(echo)'],
|
|
305
|
-
getExcludeTools: () => [],
|
|
306
|
-
};
|
|
307
|
-
const shellTool = new ShellTool(config);
|
|
308
|
-
const result = shellTool.isCommandAllowed('echo "hello" > file.txt');
|
|
309
|
-
expect(result.allowed).toBe(true);
|
|
310
|
-
});
|
|
311
|
-
it('should not allow a command that is chained with a double pipe', async () => {
|
|
312
|
-
const config = {
|
|
313
|
-
getCoreTools: () => ['run_shell_command(gh issue list)'],
|
|
314
|
-
getExcludeTools: () => [],
|
|
315
|
-
};
|
|
316
|
-
const shellTool = new ShellTool(config);
|
|
317
|
-
const result = shellTool.isCommandAllowed('gh issue list || rm -rf /');
|
|
318
|
-
expect(result.allowed).toBe(false);
|
|
319
|
-
expect(result.reason).toBe("Command 'rm -rf /' is not in the allowed commands list");
|
|
320
|
-
});
|
|
321
|
-
});
|
|
9
|
+
import os from 'os';
|
|
322
10
|
describe('ShellTool Bug Reproduction', () => {
|
|
323
11
|
let shellTool;
|
|
324
12
|
let config;
|
|
@@ -340,8 +28,8 @@ describe('ShellTool Bug Reproduction', () => {
|
|
|
340
28
|
.spyOn(summarizer, 'summarizeToolOutput')
|
|
341
29
|
.mockResolvedValue('summarized output');
|
|
342
30
|
const abortSignal = new AbortController().signal;
|
|
343
|
-
const result = await shellTool.execute({ command: 'echo
|
|
344
|
-
expect(result.returnDisplay).toBe('hello
|
|
31
|
+
const result = await shellTool.execute({ command: 'echo hello' }, abortSignal, () => { });
|
|
32
|
+
expect(result.returnDisplay).toBe('hello' + os.EOL);
|
|
345
33
|
expect(result.llmContent).toBe('summarized output');
|
|
346
34
|
expect(summarizeSpy).toHaveBeenCalled();
|
|
347
35
|
});
|
|
@@ -359,8 +47,8 @@ describe('ShellTool Bug Reproduction', () => {
|
|
|
359
47
|
.spyOn(summarizer, 'summarizeToolOutput')
|
|
360
48
|
.mockResolvedValue('summarized output');
|
|
361
49
|
const abortSignal = new AbortController().signal;
|
|
362
|
-
const result = await shellTool.execute({ command: 'echo
|
|
363
|
-
expect(result.returnDisplay).toBe('hello
|
|
50
|
+
const result = await shellTool.execute({ command: 'echo hello' }, abortSignal, () => { });
|
|
51
|
+
expect(result.returnDisplay).toBe('hello' + os.EOL);
|
|
364
52
|
expect(result.llmContent).not.toBe('summarized output');
|
|
365
53
|
expect(summarizeSpy).not.toHaveBeenCalled();
|
|
366
54
|
});
|
|
@@ -380,7 +68,7 @@ describe('ShellTool Bug Reproduction', () => {
|
|
|
380
68
|
.spyOn(summarizer, 'summarizeToolOutput')
|
|
381
69
|
.mockResolvedValue('summarized output');
|
|
382
70
|
const abortSignal = new AbortController().signal;
|
|
383
|
-
await shellTool.execute({ command: 'echo "hello"' }, abortSignal);
|
|
71
|
+
await shellTool.execute({ command: 'echo "hello"' }, abortSignal, () => { });
|
|
384
72
|
expect(summarizeSpy).toHaveBeenCalledWith(expect.any(String), expect.any(Object), expect.any(Object), 1000);
|
|
385
73
|
});
|
|
386
74
|
it('should use default token budget if not specified', async () => {
|
|
@@ -399,8 +87,34 @@ describe('ShellTool Bug Reproduction', () => {
|
|
|
399
87
|
.spyOn(summarizer, 'summarizeToolOutput')
|
|
400
88
|
.mockResolvedValue('summarized output');
|
|
401
89
|
const abortSignal = new AbortController().signal;
|
|
402
|
-
await shellTool.execute({ command: 'echo "hello"' }, abortSignal);
|
|
90
|
+
await shellTool.execute({ command: 'echo "hello"' }, abortSignal, () => { });
|
|
403
91
|
expect(summarizeSpy).toHaveBeenCalledWith(expect.any(String), expect.any(Object), expect.any(Object), undefined);
|
|
404
92
|
});
|
|
93
|
+
it('should pass GEMINI_CLI environment variable to executed commands', async () => {
|
|
94
|
+
config = {
|
|
95
|
+
getCoreTools: () => undefined,
|
|
96
|
+
getExcludeTools: () => undefined,
|
|
97
|
+
getDebugMode: () => false,
|
|
98
|
+
getGeminiClient: () => ({}),
|
|
99
|
+
getTargetDir: () => '.',
|
|
100
|
+
getSummarizeToolOutputConfig: () => ({}),
|
|
101
|
+
};
|
|
102
|
+
shellTool = new ShellTool(config);
|
|
103
|
+
const abortSignal = new AbortController().signal;
|
|
104
|
+
const result = await shellTool.execute({ command: 'echo "$GEMINI_CLI"' }, abortSignal, () => { });
|
|
105
|
+
expect(result.returnDisplay).toBe('1' + os.EOL);
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
describe('shouldConfirmExecute', () => {
|
|
109
|
+
it('should de-duplicate command roots before asking for confirmation', async () => {
|
|
110
|
+
const shellTool = new ShellTool({
|
|
111
|
+
getCoreTools: () => ['run_shell_command'],
|
|
112
|
+
getExcludeTools: () => [],
|
|
113
|
+
});
|
|
114
|
+
const result = (await shellTool.shouldConfirmExecute({
|
|
115
|
+
command: 'git status && git log',
|
|
116
|
+
}, new AbortController().signal));
|
|
117
|
+
expect(result.rootCommand).toEqual('git');
|
|
118
|
+
});
|
|
405
119
|
});
|
|
406
120
|
//# sourceMappingURL=shell.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.test.js","sourceRoot":"","sources":["../../../src/tools/shell.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shell.test.js","sourceRoot":"","sources":["../../../src/tools/shell.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,8 +26,20 @@ export declare class ToolRegistry {
|
|
|
26
26
|
/**
|
|
27
27
|
* Discovers tools from project (if available and configured).
|
|
28
28
|
* Can be called multiple times to update discovered tools.
|
|
29
|
+
* This will discover tools from the command line and from MCP servers.
|
|
29
30
|
*/
|
|
30
|
-
|
|
31
|
+
discoverAllTools(): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Discovers tools from project (if available and configured).
|
|
34
|
+
* Can be called multiple times to update discovered tools.
|
|
35
|
+
* This will NOT discover tools from the command line, only from MCP servers.
|
|
36
|
+
*/
|
|
37
|
+
discoverMcpTools(): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Discover or re-discover tools for a single MCP server.
|
|
40
|
+
* @param serverName - The name of the server to discover tools from.
|
|
41
|
+
*/
|
|
42
|
+
discoverToolsForServer(serverName: string): Promise<void>;
|
|
31
43
|
private discoverAndRegisterToolsFromCommand;
|
|
32
44
|
/**
|
|
33
45
|
* Retrieves the list of tool schemas (FunctionDeclaration array).
|
|
@@ -124,8 +124,9 @@ export class ToolRegistry {
|
|
|
124
124
|
/**
|
|
125
125
|
* Discovers tools from project (if available and configured).
|
|
126
126
|
* Can be called multiple times to update discovered tools.
|
|
127
|
+
* This will discover tools from the command line and from MCP servers.
|
|
127
128
|
*/
|
|
128
|
-
async
|
|
129
|
+
async discoverAllTools() {
|
|
129
130
|
// remove any previously discovered tools
|
|
130
131
|
for (const tool of this.tools.values()) {
|
|
131
132
|
if (tool instanceof DiscoveredTool || tool instanceof DiscoveredMCPTool) {
|
|
@@ -136,6 +137,38 @@ export class ToolRegistry {
|
|
|
136
137
|
// discover tools using MCP servers, if configured
|
|
137
138
|
await discoverMcpTools(this.config.getMcpServers() ?? {}, this.config.getMcpServerCommand(), this, this.config.getDebugMode());
|
|
138
139
|
}
|
|
140
|
+
/**
|
|
141
|
+
* Discovers tools from project (if available and configured).
|
|
142
|
+
* Can be called multiple times to update discovered tools.
|
|
143
|
+
* This will NOT discover tools from the command line, only from MCP servers.
|
|
144
|
+
*/
|
|
145
|
+
async discoverMcpTools() {
|
|
146
|
+
// remove any previously discovered tools
|
|
147
|
+
for (const tool of this.tools.values()) {
|
|
148
|
+
if (tool instanceof DiscoveredMCPTool) {
|
|
149
|
+
this.tools.delete(tool.name);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
// discover tools using MCP servers, if configured
|
|
153
|
+
await discoverMcpTools(this.config.getMcpServers() ?? {}, this.config.getMcpServerCommand(), this, this.config.getDebugMode());
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Discover or re-discover tools for a single MCP server.
|
|
157
|
+
* @param serverName - The name of the server to discover tools from.
|
|
158
|
+
*/
|
|
159
|
+
async discoverToolsForServer(serverName) {
|
|
160
|
+
// Remove any previously discovered tools from this server
|
|
161
|
+
for (const [name, tool] of this.tools.entries()) {
|
|
162
|
+
if (tool instanceof DiscoveredMCPTool && tool.serverName === serverName) {
|
|
163
|
+
this.tools.delete(name);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
const mcpServers = this.config.getMcpServers() ?? {};
|
|
167
|
+
const serverConfig = mcpServers[serverName];
|
|
168
|
+
if (serverConfig) {
|
|
169
|
+
await discoverMcpTools({ [serverName]: serverConfig }, undefined, this, this.config.getDebugMode());
|
|
170
|
+
}
|
|
171
|
+
}
|
|
139
172
|
async discoverAndRegisterToolsFromCommand() {
|
|
140
173
|
const discoveryCmd = this.config.getToolDiscoveryCommand();
|
|
141
174
|
if (!discoveryCmd) {
|
|
@@ -317,6 +350,17 @@ function _sanitizeParameters(schema, visited) {
|
|
|
317
350
|
}
|
|
318
351
|
}
|
|
319
352
|
}
|
|
353
|
+
// Handle enum values - Gemini API only allows enum for STRING type
|
|
354
|
+
if (schema.enum && Array.isArray(schema.enum)) {
|
|
355
|
+
if (schema.type !== Type.STRING) {
|
|
356
|
+
// If enum is present but type is not STRING, convert type to STRING
|
|
357
|
+
schema.type = Type.STRING;
|
|
358
|
+
}
|
|
359
|
+
// Filter out null and undefined values, then convert remaining values to strings for Gemini API compatibility
|
|
360
|
+
schema.enum = schema.enum
|
|
361
|
+
.filter((value) => value !== null && value !== undefined)
|
|
362
|
+
.map((value) => String(value));
|
|
363
|
+
}
|
|
320
364
|
// Vertex AI only supports 'enum' and 'date-time' for STRING format.
|
|
321
365
|
if (schema.type === Type.STRING) {
|
|
322
366
|
if (schema.format &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../../../src/tools/tool-registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../../../src/tools/tool-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -220,7 +220,7 @@ describe('ToolRegistry', () => {
|
|
|
220
220
|
}
|
|
221
221
|
return mockChildProcess;
|
|
222
222
|
});
|
|
223
|
-
await toolRegistry.
|
|
223
|
+
await toolRegistry.discoverAllTools();
|
|
224
224
|
const discoveredTool = toolRegistry.getTool('tool-with-bad-format');
|
|
225
225
|
expect(discoveredTool).toBeDefined();
|
|
226
226
|
const registeredParams = discoveredTool.schema
|
|
@@ -239,7 +239,7 @@ describe('ToolRegistry', () => {
|
|
|
239
239
|
},
|
|
240
240
|
};
|
|
241
241
|
vi.spyOn(config, 'getMcpServers').mockReturnValue(mcpServerConfigVal);
|
|
242
|
-
await toolRegistry.
|
|
242
|
+
await toolRegistry.discoverAllTools();
|
|
243
243
|
expect(mockDiscoverMcpTools).toHaveBeenCalledWith(mcpServerConfigVal, undefined, toolRegistry, false);
|
|
244
244
|
});
|
|
245
245
|
it('should discover tools using MCP servers defined in getMcpServers', async () => {
|
|
@@ -253,7 +253,7 @@ describe('ToolRegistry', () => {
|
|
|
253
253
|
},
|
|
254
254
|
};
|
|
255
255
|
vi.spyOn(config, 'getMcpServers').mockReturnValue(mcpServerConfigVal);
|
|
256
|
-
await toolRegistry.
|
|
256
|
+
await toolRegistry.discoverAllTools();
|
|
257
257
|
expect(mockDiscoverMcpTools).toHaveBeenCalledWith(mcpServerConfigVal, undefined, toolRegistry, false);
|
|
258
258
|
});
|
|
259
259
|
});
|