@google/gemini-cli-core 0.1.14 → 0.1.15
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/google-gemini-cli-core-0.1.13.tgz +0 -0
- package/dist/src/code_assist/oauth2.test.js +14 -14
- package/dist/src/code_assist/oauth2.test.js.map +1 -1
- package/dist/src/config/config.d.ts +3 -0
- package/dist/src/config/config.js +6 -0
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/ide/ide-client.js +11 -2
- package/dist/src/ide/ide-client.js.map +1 -1
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.js +7 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/oauth-provider.d.ts +5 -1
- package/dist/src/mcp/oauth-provider.js +36 -11
- package/dist/src/mcp/oauth-provider.js.map +1 -1
- package/dist/src/mcp/oauth-provider.test.js +2 -2
- package/dist/src/mcp/oauth-provider.test.js.map +1 -1
- package/dist/src/mcp/oauth-token-storage.d.ts +3 -1
- package/dist/src/mcp/oauth-token-storage.js +3 -1
- package/dist/src/mcp/oauth-token-storage.js.map +1 -1
- package/dist/src/prompts/mcp-prompts.d.ts +8 -0
- package/dist/src/prompts/mcp-prompts.js +13 -0
- package/dist/src/prompts/mcp-prompts.js.map +1 -0
- package/dist/src/prompts/prompt-registry.d.ts +26 -0
- package/dist/src/prompts/prompt-registry.js +47 -0
- package/dist/src/prompts/prompt-registry.js.map +1 -0
- package/dist/src/services/fileDiscoveryService.test.js +101 -60
- package/dist/src/services/fileDiscoveryService.test.js.map +1 -1
- package/dist/src/services/gitService.test.js +67 -86
- package/dist/src/services/gitService.test.js.map +1 -1
- package/dist/src/services/shellExecutionService.d.ts +70 -0
- package/dist/src/services/shellExecutionService.js +152 -0
- package/dist/src/services/shellExecutionService.js.map +1 -0
- package/dist/src/services/shellExecutionService.test.d.ts +6 -0
- package/dist/src/services/shellExecutionService.test.js +258 -0
- package/dist/src/services/shellExecutionService.test.js.map +1 -0
- package/dist/src/tools/glob.test.js +7 -4
- package/dist/src/tools/glob.test.js.map +1 -1
- package/dist/src/tools/grep.test.js +4 -4
- package/dist/src/tools/grep.test.js.map +1 -1
- package/dist/src/tools/mcp-client.d.ts +26 -2
- package/dist/src/tools/mcp-client.js +64 -10
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-client.test.js +53 -1
- package/dist/src/tools/mcp-client.test.js.map +1 -1
- package/dist/src/tools/modifiable-tool.test.js +51 -62
- package/dist/src/tools/modifiable-tool.test.js.map +1 -1
- package/dist/src/tools/shell.d.ts +1 -0
- package/dist/src/tools/shell.js +137 -181
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/shell.test.js +249 -101
- package/dist/src/tools/shell.test.js.map +1 -1
- package/dist/src/tools/tool-registry.js +3 -3
- package/dist/src/tools/tool-registry.js.map +1 -1
- package/dist/src/tools/tool-registry.test.js +2 -2
- package/dist/src/tools/tool-registry.test.js.map +1 -1
- package/dist/src/utils/formatters.d.ts +6 -0
- package/dist/src/utils/formatters.js +16 -0
- package/dist/src/utils/formatters.js.map +1 -0
- package/dist/src/utils/shell-utils.d.ts +37 -3
- package/dist/src/utils/shell-utils.js +110 -47
- package/dist/src/utils/shell-utils.js.map +1 -1
- package/dist/src/utils/shell-utils.test.js +146 -396
- package/dist/src/utils/shell-utils.test.js.map +1 -1
- package/dist/src/utils/textUtils.d.ts +13 -0
- package/dist/src/utils/textUtils.js +28 -0
- package/dist/src/utils/textUtils.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -31,12 +31,46 @@ export declare function stripShellWrapper(command: string): string;
|
|
|
31
31
|
* @returns true if command substitution would be executed by bash
|
|
32
32
|
*/
|
|
33
33
|
export declare function detectCommandSubstitution(command: string): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Checks a shell command against security policies and allowlists.
|
|
36
|
+
*
|
|
37
|
+
* This function operates in one of two modes depending on the presence of
|
|
38
|
+
* the `sessionAllowlist` parameter:
|
|
39
|
+
*
|
|
40
|
+
* 1. **"Default Deny" Mode (sessionAllowlist is provided):** This is the
|
|
41
|
+
* strictest mode, used for user-defined scripts like custom commands.
|
|
42
|
+
* A command is only permitted if it is found on the global `coreTools`
|
|
43
|
+
* allowlist OR the provided `sessionAllowlist`. It must not be on the
|
|
44
|
+
* global `excludeTools` blocklist.
|
|
45
|
+
*
|
|
46
|
+
* 2. **"Default Allow" Mode (sessionAllowlist is NOT provided):** This mode
|
|
47
|
+
* is used for direct tool invocations (e.g., by the model). If a strict
|
|
48
|
+
* global `coreTools` allowlist exists, commands must be on it. Otherwise,
|
|
49
|
+
* any command is permitted as long as it is not on the `excludeTools`
|
|
50
|
+
* blocklist.
|
|
51
|
+
*
|
|
52
|
+
* @param command The shell command string to validate.
|
|
53
|
+
* @param config The application configuration.
|
|
54
|
+
* @param sessionAllowlist A session-level list of approved commands. Its
|
|
55
|
+
* presence activates "Default Deny" mode.
|
|
56
|
+
* @returns An object detailing which commands are not allowed.
|
|
57
|
+
*/
|
|
58
|
+
export declare function checkCommandPermissions(command: string, config: Config, sessionAllowlist?: Set<string>): {
|
|
59
|
+
allAllowed: boolean;
|
|
60
|
+
disallowedCommands: string[];
|
|
61
|
+
blockReason?: string;
|
|
62
|
+
isHardDenial?: boolean;
|
|
63
|
+
};
|
|
34
64
|
/**
|
|
35
65
|
* Determines whether a given shell command is allowed to execute based on
|
|
36
66
|
* the tool's configuration including allowlists and blocklists.
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
67
|
+
*
|
|
68
|
+
* This function operates in "default allow" mode. It is a wrapper around
|
|
69
|
+
* `checkCommandPermissions`.
|
|
70
|
+
*
|
|
71
|
+
* @param command The shell command string to validate.
|
|
72
|
+
* @param config The application configuration.
|
|
73
|
+
* @returns An object with 'allowed' boolean and optional 'reason' string if not allowed.
|
|
40
74
|
*/
|
|
41
75
|
export declare function isCommandAllowed(command: string, config: Config): {
|
|
42
76
|
allowed: boolean;
|
|
@@ -157,41 +157,47 @@ export function detectCommandSubstitution(command) {
|
|
|
157
157
|
return false;
|
|
158
158
|
}
|
|
159
159
|
/**
|
|
160
|
-
*
|
|
161
|
-
*
|
|
162
|
-
*
|
|
163
|
-
*
|
|
164
|
-
*
|
|
160
|
+
* Checks a shell command against security policies and allowlists.
|
|
161
|
+
*
|
|
162
|
+
* This function operates in one of two modes depending on the presence of
|
|
163
|
+
* the `sessionAllowlist` parameter:
|
|
164
|
+
*
|
|
165
|
+
* 1. **"Default Deny" Mode (sessionAllowlist is provided):** This is the
|
|
166
|
+
* strictest mode, used for user-defined scripts like custom commands.
|
|
167
|
+
* A command is only permitted if it is found on the global `coreTools`
|
|
168
|
+
* allowlist OR the provided `sessionAllowlist`. It must not be on the
|
|
169
|
+
* global `excludeTools` blocklist.
|
|
170
|
+
*
|
|
171
|
+
* 2. **"Default Allow" Mode (sessionAllowlist is NOT provided):** This mode
|
|
172
|
+
* is used for direct tool invocations (e.g., by the model). If a strict
|
|
173
|
+
* global `coreTools` allowlist exists, commands must be on it. Otherwise,
|
|
174
|
+
* any command is permitted as long as it is not on the `excludeTools`
|
|
175
|
+
* blocklist.
|
|
176
|
+
*
|
|
177
|
+
* @param command The shell command string to validate.
|
|
178
|
+
* @param config The application configuration.
|
|
179
|
+
* @param sessionAllowlist A session-level list of approved commands. Its
|
|
180
|
+
* presence activates "Default Deny" mode.
|
|
181
|
+
* @returns An object detailing which commands are not allowed.
|
|
165
182
|
*/
|
|
166
|
-
export function
|
|
167
|
-
//
|
|
168
|
-
|
|
169
|
-
const hasCommandSubstitution = detectCommandSubstitution(command);
|
|
170
|
-
if (hasCommandSubstitution) {
|
|
183
|
+
export function checkCommandPermissions(command, config, sessionAllowlist) {
|
|
184
|
+
// Disallow command substitution for security.
|
|
185
|
+
if (detectCommandSubstitution(command)) {
|
|
171
186
|
return {
|
|
172
|
-
|
|
173
|
-
|
|
187
|
+
allAllowed: false,
|
|
188
|
+
disallowedCommands: [command],
|
|
189
|
+
blockReason: 'Command substitution using $(), <(), or >() is not allowed for security reasons',
|
|
190
|
+
isHardDenial: true,
|
|
174
191
|
};
|
|
175
192
|
}
|
|
176
193
|
const SHELL_TOOL_NAMES = ['run_shell_command', 'ShellTool'];
|
|
177
194
|
const normalize = (cmd) => cmd.trim().replace(/\s+/g, ' ');
|
|
178
|
-
/**
|
|
179
|
-
* Checks if a command string starts with a given prefix, ensuring it's a
|
|
180
|
-
* whole word match (i.e., followed by a space or it's an exact match).
|
|
181
|
-
* e.g., `isPrefixedBy('npm install', 'npm')` -> true
|
|
182
|
-
* e.g., `isPrefixedBy('npm', 'npm')` -> true
|
|
183
|
-
* e.g., `isPrefixedBy('npminstall', 'npm')` -> false
|
|
184
|
-
*/
|
|
185
195
|
const isPrefixedBy = (cmd, prefix) => {
|
|
186
196
|
if (!cmd.startsWith(prefix)) {
|
|
187
197
|
return false;
|
|
188
198
|
}
|
|
189
199
|
return cmd.length === prefix.length || cmd[prefix.length] === ' ';
|
|
190
200
|
};
|
|
191
|
-
/**
|
|
192
|
-
* Extracts and normalizes shell commands from a list of tool strings.
|
|
193
|
-
* e.g., 'ShellTool("ls -l")' becomes 'ls -l'
|
|
194
|
-
*/
|
|
195
201
|
const extractCommands = (tools) => tools.flatMap((tool) => {
|
|
196
202
|
for (const toolName of SHELL_TOOL_NAMES) {
|
|
197
203
|
if (tool.startsWith(`${toolName}(`) && tool.endsWith(')')) {
|
|
@@ -202,42 +208,99 @@ export function isCommandAllowed(command, config) {
|
|
|
202
208
|
});
|
|
203
209
|
const coreTools = config.getCoreTools() || [];
|
|
204
210
|
const excludeTools = config.getExcludeTools() || [];
|
|
205
|
-
|
|
211
|
+
const commandsToValidate = splitCommands(command).map(normalize);
|
|
212
|
+
// 1. Blocklist Check (Highest Priority)
|
|
206
213
|
if (SHELL_TOOL_NAMES.some((name) => excludeTools.includes(name))) {
|
|
207
214
|
return {
|
|
208
|
-
|
|
209
|
-
|
|
215
|
+
allAllowed: false,
|
|
216
|
+
disallowedCommands: commandsToValidate,
|
|
217
|
+
blockReason: 'Shell tool is globally disabled in configuration',
|
|
218
|
+
isHardDenial: true,
|
|
210
219
|
};
|
|
211
220
|
}
|
|
212
|
-
const blockedCommands =
|
|
213
|
-
const allowedCommands = new Set(extractCommands(coreTools));
|
|
214
|
-
const hasSpecificAllowedCommands = allowedCommands.size > 0;
|
|
215
|
-
const isWildcardAllowed = SHELL_TOOL_NAMES.some((name) => coreTools.includes(name));
|
|
216
|
-
const commandsToValidate = splitCommands(command).map(normalize);
|
|
217
|
-
const blockedCommandsArr = [...blockedCommands];
|
|
221
|
+
const blockedCommands = extractCommands(excludeTools);
|
|
218
222
|
for (const cmd of commandsToValidate) {
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
223
|
+
if (blockedCommands.some((blocked) => isPrefixedBy(cmd, blocked))) {
|
|
224
|
+
return {
|
|
225
|
+
allAllowed: false,
|
|
226
|
+
disallowedCommands: [cmd],
|
|
227
|
+
blockReason: `Command '${cmd}' is blocked by configuration`,
|
|
228
|
+
isHardDenial: true,
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
const globallyAllowedCommands = extractCommands(coreTools);
|
|
233
|
+
const isWildcardAllowed = SHELL_TOOL_NAMES.some((name) => coreTools.includes(name));
|
|
234
|
+
// If there's a global wildcard, all commands are allowed at this point
|
|
235
|
+
// because they have already passed the blocklist check.
|
|
236
|
+
if (isWildcardAllowed) {
|
|
237
|
+
return { allAllowed: true, disallowedCommands: [] };
|
|
238
|
+
}
|
|
239
|
+
if (sessionAllowlist) {
|
|
240
|
+
// "DEFAULT DENY" MODE: A session allowlist is provided.
|
|
241
|
+
// All commands must be in either the session or global allowlist.
|
|
242
|
+
const disallowedCommands = [];
|
|
243
|
+
for (const cmd of commandsToValidate) {
|
|
244
|
+
const isSessionAllowed = [...sessionAllowlist].some((allowed) => isPrefixedBy(cmd, normalize(allowed)));
|
|
245
|
+
if (isSessionAllowed)
|
|
246
|
+
continue;
|
|
247
|
+
const isGloballyAllowed = globallyAllowedCommands.some((allowed) => isPrefixedBy(cmd, allowed));
|
|
248
|
+
if (isGloballyAllowed)
|
|
249
|
+
continue;
|
|
250
|
+
disallowedCommands.push(cmd);
|
|
251
|
+
}
|
|
252
|
+
if (disallowedCommands.length > 0) {
|
|
222
253
|
return {
|
|
223
|
-
|
|
224
|
-
|
|
254
|
+
allAllowed: false,
|
|
255
|
+
disallowedCommands,
|
|
256
|
+
blockReason: `Command(s) not on the global or session allowlist.`,
|
|
257
|
+
isHardDenial: false, // This is a soft denial; confirmation is possible.
|
|
225
258
|
};
|
|
226
259
|
}
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
260
|
+
}
|
|
261
|
+
else {
|
|
262
|
+
// "DEFAULT ALLOW" MODE: No session allowlist.
|
|
263
|
+
const hasSpecificAllowedCommands = globallyAllowedCommands.length > 0;
|
|
264
|
+
if (hasSpecificAllowedCommands) {
|
|
265
|
+
const disallowedCommands = [];
|
|
266
|
+
for (const cmd of commandsToValidate) {
|
|
267
|
+
const isGloballyAllowed = globallyAllowedCommands.some((allowed) => isPrefixedBy(cmd, allowed));
|
|
268
|
+
if (!isGloballyAllowed) {
|
|
269
|
+
disallowedCommands.push(cmd);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
if (disallowedCommands.length > 0) {
|
|
233
273
|
return {
|
|
234
|
-
|
|
235
|
-
|
|
274
|
+
allAllowed: false,
|
|
275
|
+
disallowedCommands,
|
|
276
|
+
blockReason: `Command(s) not in the allowed commands list.`,
|
|
277
|
+
isHardDenial: false, // This is a soft denial.
|
|
236
278
|
};
|
|
237
279
|
}
|
|
238
280
|
}
|
|
281
|
+
// If no specific global allowlist exists, and it passed the blocklist,
|
|
282
|
+
// the command is allowed by default.
|
|
283
|
+
}
|
|
284
|
+
// If all checks for the current mode pass, the command is allowed.
|
|
285
|
+
return { allAllowed: true, disallowedCommands: [] };
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Determines whether a given shell command is allowed to execute based on
|
|
289
|
+
* the tool's configuration including allowlists and blocklists.
|
|
290
|
+
*
|
|
291
|
+
* This function operates in "default allow" mode. It is a wrapper around
|
|
292
|
+
* `checkCommandPermissions`.
|
|
293
|
+
*
|
|
294
|
+
* @param command The shell command string to validate.
|
|
295
|
+
* @param config The application configuration.
|
|
296
|
+
* @returns An object with 'allowed' boolean and optional 'reason' string if not allowed.
|
|
297
|
+
*/
|
|
298
|
+
export function isCommandAllowed(command, config) {
|
|
299
|
+
// By not providing a sessionAllowlist, we invoke "default allow" behavior.
|
|
300
|
+
const { allAllowed, blockReason } = checkCommandPermissions(command, config);
|
|
301
|
+
if (allAllowed) {
|
|
302
|
+
return { allowed: true };
|
|
239
303
|
}
|
|
240
|
-
|
|
241
|
-
return { allowed: true };
|
|
304
|
+
return { allowed: false, reason: blockReason };
|
|
242
305
|
}
|
|
243
306
|
//# sourceMappingURL=shell-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell-utils.js","sourceRoot":"","sources":["../../../src/utils/shell-utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"shell-utils.js","sourceRoot":"","sources":["../../../src/utils/shell-utils.ts"],"names":[],"mappings":"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"}
|