@google/gemini-cli-core 0.1.9-nightly.250708.a4097ae6 → 0.1.9-rc.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/README.md +3 -17
- package/dist/google-gemini-cli-core-0.1.9-rc.0.tgz +0 -0
- package/dist/src/code_assist/codeAssist.d.ts +1 -1
- package/dist/src/code_assist/codeAssist.js +4 -5
- package/dist/src/code_assist/codeAssist.js.map +1 -1
- package/dist/src/code_assist/converter.d.ts +1 -2
- package/dist/src/code_assist/converter.js +3 -4
- package/dist/src/code_assist/converter.js.map +1 -1
- package/dist/src/code_assist/converter.test.js +0 -24
- package/dist/src/code_assist/converter.test.js.map +1 -1
- package/dist/src/code_assist/oauth2.d.ts +2 -3
- package/dist/src/code_assist/oauth2.js +25 -56
- package/dist/src/code_assist/oauth2.js.map +1 -1
- package/dist/src/code_assist/oauth2.test.js +7 -83
- package/dist/src/code_assist/oauth2.test.js.map +1 -1
- package/dist/src/code_assist/server.d.ts +1 -2
- package/dist/src/code_assist/server.js +4 -5
- package/dist/src/code_assist/server.js.map +1 -1
- package/dist/src/config/config.d.ts +2 -9
- package/dist/src/config/config.js +56 -68
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +0 -25
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/core/client.d.ts +1 -1
- package/dist/src/core/client.js +11 -13
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +3 -169
- package/dist/src/core/client.test.js.map +1 -1
- package/dist/src/core/contentGenerator.d.ts +5 -4
- package/dist/src/core/contentGenerator.js +7 -10
- package/dist/src/core/contentGenerator.js.map +1 -1
- package/dist/src/core/coreToolScheduler.d.ts +2 -9
- package/dist/src/core/coreToolScheduler.js +2 -28
- package/dist/src/core/coreToolScheduler.js.map +1 -1
- package/dist/src/core/coreToolScheduler.test.js +0 -78
- package/dist/src/core/coreToolScheduler.test.js.map +1 -1
- package/dist/src/core/logger.d.ts +4 -3
- package/dist/src/core/logger.js +11 -7
- package/dist/src/core/logger.js.map +1 -1
- package/dist/src/core/logger.test.js +15 -6
- package/dist/src/core/logger.test.js.map +1 -1
- package/dist/src/services/fileDiscoveryService.d.ts +0 -4
- package/dist/src/services/fileDiscoveryService.js +0 -13
- package/dist/src/services/fileDiscoveryService.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +11 -34
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
- package/dist/src/tools/edit.d.ts +2 -1
- package/dist/src/tools/edit.js +4 -2
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/edit.test.js +9 -7
- package/dist/src/tools/edit.test.js.map +1 -1
- package/dist/src/tools/glob.d.ts +1 -5
- package/dist/src/tools/glob.js +1 -5
- package/dist/src/tools/glob.js.map +1 -1
- package/dist/src/tools/mcp-client.d.ts +2 -0
- package/dist/src/tools/mcp-client.js +21 -27
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-client.test.js +4 -85
- package/dist/src/tools/mcp-client.test.js.map +1 -1
- package/dist/src/tools/shell.d.ts +1 -20
- package/dist/src/tools/shell.js +10 -45
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/shell.test.js +65 -85
- package/dist/src/tools/shell.test.js.map +1 -1
- package/dist/src/tools/tool-registry.d.ts +2 -16
- package/dist/src/tools/tool-registry.js +19 -150
- package/dist/src/tools/tool-registry.js.map +1 -1
- package/dist/src/tools/tool-registry.test.js +73 -184
- package/dist/src/tools/tool-registry.test.js.map +1 -1
- package/dist/src/tools/tools.d.ts +1 -4
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/tools/web-search.d.ts +1 -6
- package/dist/src/tools/web-search.js +2 -7
- package/dist/src/tools/web-search.js.map +1 -1
- package/dist/src/tools/write-file.d.ts +1 -7
- package/dist/src/tools/write-file.js +5 -10
- 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 +2 -106
- package/dist/src/utils/editCorrector.js.map +1 -1
- package/dist/src/utils/editCorrector.test.js +19 -65
- 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 +0 -17
- package/dist/src/utils/fileUtils.js.map +1 -1
- package/dist/src/utils/fileUtils.test.js +0 -17
- package/dist/src/utils/fileUtils.test.js.map +1 -1
- package/dist/src/utils/messageInspectors.d.ts +0 -1
- package/dist/src/utils/messageInspectors.js +0 -5
- 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/user_id.d.ts +1 -1
- package/dist/src/utils/user_id.js +5 -5
- package/dist/src/utils/user_id.js.map +1 -1
- package/dist/src/utils/user_id.test.js +11 -15
- package/dist/src/utils/user_id.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +12 -10
- package/dist/google-gemini-cli-core-0.1.9.tgz +0 -0
|
@@ -16,27 +16,8 @@ export declare class ShellTool extends BaseTool<ShellToolParams, ToolResult> {
|
|
|
16
16
|
private whitelist;
|
|
17
17
|
constructor(config: Config);
|
|
18
18
|
getDescription(params: ShellToolParams): string;
|
|
19
|
-
/**
|
|
20
|
-
* Extracts the root command from a given shell command string.
|
|
21
|
-
* This is used to identify the base command for permission checks.
|
|
22
|
-
*
|
|
23
|
-
* @param command The shell command string to parse
|
|
24
|
-
* @returns The root command name, or undefined if it cannot be determined
|
|
25
|
-
* @example getCommandRoot("ls -la /tmp") returns "ls"
|
|
26
|
-
* @example getCommandRoot("git status && npm test") returns "git"
|
|
27
|
-
*/
|
|
28
19
|
getCommandRoot(command: string): string | undefined;
|
|
29
|
-
|
|
30
|
-
* Determines whether a given shell command is allowed to execute based on
|
|
31
|
-
* the tool's configuration including allowlists and blocklists.
|
|
32
|
-
*
|
|
33
|
-
* @param command The shell command string to validate
|
|
34
|
-
* @returns An object with 'allowed' boolean and optional 'reason' string if not allowed
|
|
35
|
-
*/
|
|
36
|
-
isCommandAllowed(command: string): {
|
|
37
|
-
allowed: boolean;
|
|
38
|
-
reason?: string;
|
|
39
|
-
};
|
|
20
|
+
isCommandAllowed(command: string): boolean;
|
|
40
21
|
validateToolParams(params: ShellToolParams): string | null;
|
|
41
22
|
shouldConfirmExecute(params: ShellToolParams, _abortSignal: AbortSignal): Promise<ToolCallConfirmationDetails | false>;
|
|
42
23
|
execute(params: ShellToolParams, abortSignal: AbortSignal, updateOutput?: (chunk: string) => void): Promise<ToolResult>;
|
package/dist/src/tools/shell.js
CHANGED
|
@@ -64,15 +64,6 @@ Process Group PGID: Process group started or \`(none)\``, {
|
|
|
64
64
|
}
|
|
65
65
|
return description;
|
|
66
66
|
}
|
|
67
|
-
/**
|
|
68
|
-
* Extracts the root command from a given shell command string.
|
|
69
|
-
* This is used to identify the base command for permission checks.
|
|
70
|
-
*
|
|
71
|
-
* @param command The shell command string to parse
|
|
72
|
-
* @returns The root command name, or undefined if it cannot be determined
|
|
73
|
-
* @example getCommandRoot("ls -la /tmp") returns "ls"
|
|
74
|
-
* @example getCommandRoot("git status && npm test") returns "git"
|
|
75
|
-
*/
|
|
76
67
|
getCommandRoot(command) {
|
|
77
68
|
return command
|
|
78
69
|
.trim() // remove leading and trailing whitespace
|
|
@@ -81,20 +72,10 @@ Process Group PGID: Process group started or \`(none)\``, {
|
|
|
81
72
|
?.split(/[/\\]/) // split on any path separators (or return undefined if previous line was undefined)
|
|
82
73
|
.pop(); // take last part and return command root (or undefined if previous line was empty)
|
|
83
74
|
}
|
|
84
|
-
/**
|
|
85
|
-
* Determines whether a given shell command is allowed to execute based on
|
|
86
|
-
* the tool's configuration including allowlists and blocklists.
|
|
87
|
-
*
|
|
88
|
-
* @param command The shell command string to validate
|
|
89
|
-
* @returns An object with 'allowed' boolean and optional 'reason' string if not allowed
|
|
90
|
-
*/
|
|
91
75
|
isCommandAllowed(command) {
|
|
92
76
|
// 0. Disallow command substitution
|
|
93
|
-
if (command.includes('$(')) {
|
|
94
|
-
return
|
|
95
|
-
allowed: false,
|
|
96
|
-
reason: 'Command substitution using $() is not allowed for security reasons',
|
|
97
|
-
};
|
|
77
|
+
if (command.includes('$(') || command.includes('`')) {
|
|
78
|
+
return false;
|
|
98
79
|
}
|
|
99
80
|
const SHELL_TOOL_NAMES = [ShellTool.name, ShellTool.Name];
|
|
100
81
|
const normalize = (cmd) => cmd.trim().replace(/\s+/g, ' ');
|
|
@@ -127,50 +108,34 @@ Process Group PGID: Process group started or \`(none)\``, {
|
|
|
127
108
|
const excludeTools = this.config.getExcludeTools() || [];
|
|
128
109
|
// 1. Check if the shell tool is globally disabled.
|
|
129
110
|
if (SHELL_TOOL_NAMES.some((name) => excludeTools.includes(name))) {
|
|
130
|
-
return
|
|
131
|
-
allowed: false,
|
|
132
|
-
reason: 'Shell tool is globally disabled in configuration',
|
|
133
|
-
};
|
|
111
|
+
return false;
|
|
134
112
|
}
|
|
135
113
|
const blockedCommands = new Set(extractCommands(excludeTools));
|
|
136
114
|
const allowedCommands = new Set(extractCommands(coreTools));
|
|
137
115
|
const hasSpecificAllowedCommands = allowedCommands.size > 0;
|
|
138
116
|
const isWildcardAllowed = SHELL_TOOL_NAMES.some((name) => coreTools.includes(name));
|
|
139
117
|
const commandsToValidate = command.split(/&&|\|\||\||;/).map(normalize);
|
|
140
|
-
const blockedCommandsArr = [...blockedCommands];
|
|
141
118
|
for (const cmd of commandsToValidate) {
|
|
142
119
|
// 2. Check if the command is on the blocklist.
|
|
143
|
-
const isBlocked =
|
|
120
|
+
const isBlocked = [...blockedCommands].some((blocked) => isPrefixedBy(cmd, blocked));
|
|
144
121
|
if (isBlocked) {
|
|
145
|
-
return
|
|
146
|
-
allowed: false,
|
|
147
|
-
reason: `Command '${cmd}' is blocked by configuration`,
|
|
148
|
-
};
|
|
122
|
+
return false;
|
|
149
123
|
}
|
|
150
124
|
// 3. If in strict allow-list mode, check if the command is permitted.
|
|
151
125
|
const isStrictAllowlist = hasSpecificAllowedCommands && !isWildcardAllowed;
|
|
152
|
-
const allowedCommandsArr = [...allowedCommands];
|
|
153
126
|
if (isStrictAllowlist) {
|
|
154
|
-
const isAllowed =
|
|
127
|
+
const isAllowed = [...allowedCommands].some((allowed) => isPrefixedBy(cmd, allowed));
|
|
155
128
|
if (!isAllowed) {
|
|
156
|
-
return
|
|
157
|
-
allowed: false,
|
|
158
|
-
reason: `Command '${cmd}' is not in the allowed commands list`,
|
|
159
|
-
};
|
|
129
|
+
return false;
|
|
160
130
|
}
|
|
161
131
|
}
|
|
162
132
|
}
|
|
163
133
|
// 4. If all checks pass, the command is allowed.
|
|
164
|
-
return
|
|
134
|
+
return true;
|
|
165
135
|
}
|
|
166
136
|
validateToolParams(params) {
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
if (!commandCheck.reason) {
|
|
170
|
-
console.error('Unexpected: isCommandAllowed returned false without a reason');
|
|
171
|
-
return `Command is not allowed: ${params.command}`;
|
|
172
|
-
}
|
|
173
|
-
return commandCheck.reason;
|
|
137
|
+
if (!this.isCommandAllowed(params.command)) {
|
|
138
|
+
return `Command is not allowed: ${params.command}`;
|
|
174
139
|
}
|
|
175
140
|
if (!SchemaValidator.validate(this.parameterSchema, params)) {
|
|
176
141
|
return `Parameters failed schema validation.`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../src/tools/shell.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EACL,QAAQ,EAIR,uBAAuB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,SAAS,MAAM,YAAY,CAAC;AAOnC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,MAAM,yBAAyB,GAAG,IAAI,CAAC;AAEvC,MAAM,OAAO,SAAU,SAAQ,QAAqC;IAIrC;IAH7B,MAAM,CAAC,IAAI,GAAW,mBAAmB,CAAC;IAClC,SAAS,GAAgB,IAAI,GAAG,EAAE,CAAC;IAE3C,YAA6B,MAAc;QACzC,KAAK,CACH,SAAS,CAAC,IAAI,EACd,OAAO,EACP;;;;;;;;;;;;wDAYkD,EAClD;YACE,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,sDAAsD;iBACpE;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,0JAA0J;iBAC7J;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,uJAAuJ;iBAC1J;aACF;YACD,QAAQ,EAAE,CAAC,SAAS,CAAC;SACtB,EACD,KAAK,EAAE,yBAAyB;QAChC,IAAI,CACL,CAAC;QAvCyB,WAAM,GAAN,MAAM,CAAQ;IAwC3C,CAAC;IAED,cAAc,CAAC,MAAuB;QACpC,IAAI,WAAW,GAAG,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QACtC,iCAAiC;QACjC,2EAA2E;QAC3E,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,WAAW,IAAI,QAAQ,MAAM,CAAC,SAAS,GAAG,CAAC;QAC7C,CAAC;QACD,uEAAuE;QACvE,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,WAAW,IAAI,KAAK,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC;QAChE,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;;;;;;OAQG;IACH,cAAc,CAAC,OAAe;QAC5B,OAAO,OAAO;aACX,IAAI,EAAE,CAAC,yCAAyC;aAChD,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,gCAAgC;aACvD,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,iFAAiF;YACvG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,oFAAoF;aACpG,GAAG,EAAE,CAAC,CAAC,mFAAmF;IAC/F,CAAC;IAED;;;;;;OAMG;IACH,gBAAgB,CAAC,OAAe;QAC9B,mCAAmC;QACnC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EACJ,oEAAoE;aACvE,CAAC;QACJ,CAAC;QAED,MAAM,gBAAgB,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QAE1D,MAAM,SAAS,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAE3E;;;;;;WAMG;QACH,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,MAAc,EAAW,EAAE;YAC5D,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5B,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC;QACpE,CAAC,CAAC;QAEF;;;WAGG;QACH,MAAM,eAAe,GAAG,CAAC,KAAe,EAAY,EAAE,CACpD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;gBACxC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,QAAQ,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC1D,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;QAEL,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC;QACnD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;QAEzD,mDAAmD;QACnD,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACjE,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,kDAAkD;aAC3D,CAAC;QACJ,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC;QAC/D,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;QAE5D,MAAM,0BAA0B,GAAG,eAAe,CAAC,IAAI,GAAG,CAAC,CAAC;QAC5D,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACvD,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CACzB,CAAC;QAEF,MAAM,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAExE,MAAM,kBAAkB,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC;QAEhD,KAAK,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;YACrC,+CAA+C;YAC/C,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CACpD,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAC3B,CAAC;YACF,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,YAAY,GAAG,+BAA+B;iBACvD,CAAC;YACJ,CAAC;YAED,sEAAsE;YACtE,MAAM,iBAAiB,GACrB,0BAA0B,IAAI,CAAC,iBAAiB,CAAC;YACnD,MAAM,kBAAkB,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC;YAChD,IAAI,iBAAiB,EAAE,CAAC;gBACtB,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CACpD,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAC3B,CAAC;gBACF,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,MAAM,EAAE,YAAY,GAAG,uCAAuC;qBAC/D,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,iDAAiD;QACjD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,kBAAkB,CAAC,MAAuB;QACxC,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3D,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;gBACzB,OAAO,CAAC,KAAK,CACX,8DAA8D,CAC/D,CAAC;gBACF,OAAO,2BAA2B,MAAM,CAAC,OAAO,EAAE,CAAC;YACrD,CAAC;YACD,OAAO,YAAY,CAAC,MAAM,CAAC;QAC7B,CAAC;QACD,IACE,CAAC,eAAe,CAAC,QAAQ,CACvB,IAAI,CAAC,eAA0C,EAC/C,MAAM,CACP,EACD,CAAC;YACD,OAAO,sCAAsC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3B,OAAO,0BAA0B,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,OAAO,iEAAiE,CAAC;QAC3E,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtC,OAAO,+EAA+E,CAAC;YACzF,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAC5B,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,EAC1B,MAAM,CAAC,SAAS,CACjB,CAAC;YACF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC9B,OAAO,uBAAuB,CAAC;YACjC,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,MAAuB,EACvB,YAAyB;QAEzB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;YACpC,OAAO,KAAK,CAAC,CAAC,wDAAwD;QACxE,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAE,CAAC,CAAC,2CAA2C;QACrG,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YACpC,OAAO,KAAK,CAAC,CAAC,mCAAmC;QACnD,CAAC;QACD,MAAM,mBAAmB,GAAmC;YAC1D,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,uBAAuB;YAC9B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,WAAW;YACX,SAAS,EAAE,KAAK,EAAE,OAAgC,EAAE,EAAE;gBACpD,IAAI,OAAO,KAAK,uBAAuB,CAAC,aAAa,EAAE,CAAC;oBACtD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;SACF,CAAC;QACF,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,OAAO,CACX,MAAuB,EACvB,WAAwB,EACxB,YAAsC;QAEtC,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO;gBACL,UAAU,EAAE;oBACV,qBAAqB,MAAM,CAAC,OAAO,EAAE;oBACrC,WAAW,eAAe,EAAE;iBAC7B,CAAC,IAAI,CAAC,IAAI,CAAC;gBACZ,aAAa,EAAE,UAAU,eAAe,EAAE;aAC3C,CAAC;QACJ,CAAC;QAED,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACxB,OAAO;gBACL,UAAU,EAAE,sDAAsD;gBAClE,aAAa,EAAE,4BAA4B;aAC5C,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC;QAC5C,MAAM,YAAY,GAAG,eAAe,MAAM;aACvC,WAAW,CAAC,CAAC,CAAC;aACd,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;QACzB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC,CAAC;QAE1D,qEAAqE;QACrE,MAAM,OAAO,GAAG,SAAS;YACvB,CAAC,CAAC,MAAM,CAAC,OAAO;YAChB,CAAC,CAAC,CAAC,GAAG,EAAE;gBACJ,uEAAuE;gBACvE,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAAE,OAAO,IAAI,GAAG,CAAC;gBAC3C,OAAO,KAAK,OAAO,8BAA8B,YAAY,sBAAsB,CAAC;YACtF,CAAC,CAAC,EAAE,CAAC;QAET,0EAA0E;QAC1E,MAAM,KAAK,GAAG,SAAS;YACrB,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;gBAChC,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;gBACjC,oFAAoF;gBACpF,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;aACtE,CAAC;YACJ,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;gBAC7B,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;gBACjC,QAAQ,EAAE,IAAI,EAAE,iEAAiE;gBACjF,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;aACtE,CAAC,CAAC;QAEP,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEhC,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE;YACnC,MAAM,IAAI,GAAG,CAAC;YACd,IACE,YAAY;gBACZ,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,GAAG,yBAAyB,EACvD,CAAC;gBACD,YAAY,CAAC,MAAM,CAAC,CAAC;gBACrB,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC9B,CAAC;QACH,CAAC,CAAC;QAEF,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACvC,yDAAyD;YACzD,mEAAmE;YACnE,kFAAkF;YAClF,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACvC,MAAM,IAAI,GAAG,CAAC;gBACd,YAAY,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACvC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACvC,MAAM,IAAI,GAAG,CAAC;gBACd,YAAY,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,KAAK,GAAiB,IAAI,CAAC;QAC/B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;YAC/B,KAAK,GAAG,GAAG,CAAC;YACZ,sDAAsD;YACtD,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,GAAkB,IAAI,CAAC;QAC/B,IAAI,aAAa,GAA0B,IAAI,CAAC;QAChD,MAAM,WAAW,GAAG,CAClB,KAAoB,EACpB,OAA8B,EAC9B,EAAE;YACF,MAAM,GAAG,IAAI,CAAC;YACd,IAAI,GAAG,KAAK,CAAC;YACb,aAAa,GAAG,OAAO,CAAC;QAC1B,CAAC,CAAC;QACF,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAE9B,MAAM,YAAY,GAAG,KAAK,IAAI,EAAE;YAC9B,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBACzB,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,EAAE,CAAC;oBAC9B,qDAAqD;oBACrD,KAAK,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;gBAChE,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC;wBACH,kDAAkD;wBAClD,8CAA8C;wBAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;wBACpC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;wBACzD,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;4BACzB,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;wBACtC,CAAC;oBACH,CAAC;oBAAC,OAAO,EAAE,EAAE,CAAC;wBACZ,kEAAkE;wBAClE,IAAI,CAAC;4BACH,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;gCACd,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BACxB,CAAC;wBACH,CAAC;wBAAC,OAAO,EAAE,EAAE,CAAC;4BACZ,OAAO,CAAC,KAAK,CAAC,gCAAgC,KAAK,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC;wBACpE,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QACF,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAEpD,6BAA6B;QAC7B,IAAI,CAAC;YACH,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAC5D,CAAC;gBAAS,CAAC;YACT,WAAW,CAAC,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACzD,CAAC;QAED,8DAA8D;QAC9D,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,EAAE,CAAC;YAC9B,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAChC,MAAM,UAAU,GAAG,EAAE;qBAClB,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC;qBAClC,KAAK,CAAC,IAAI,CAAC;qBACX,MAAM,CAAC,OAAO,CAAC,CAAC;gBACnB,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;oBAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wBACxB,OAAO,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;oBAClC,CAAC;oBACD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;oBACzB,mCAAmC;oBACnC,IAAI,GAAG,KAAK,KAAK,CAAC,GAAG,EAAE,CAAC;wBACtB,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC3B,CAAC;gBACH,CAAC;gBACD,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;oBACzB,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACxB,UAAU,GAAG,yDAAyD,CAAC;YACvE,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;gBAClB,UAAU,IAAI,yEAAyE,MAAM,EAAE,CAAC;YAClG,CAAC;iBAAM,CAAC;gBACN,UAAU,IAAI,+CAA+C,CAAC;YAChE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,UAAU,GAAG;gBACX,YAAY,MAAM,CAAC,OAAO,EAAE;gBAC5B,cAAc,MAAM,CAAC,SAAS,IAAI,QAAQ,EAAE;gBAC5C,WAAW,MAAM,IAAI,SAAS,EAAE;gBAChC,WAAW,MAAM,IAAI,SAAS,EAAE;gBAChC,UAAU,KAAK,IAAI,QAAQ,EAAE;gBAC7B,cAAc,IAAI,IAAI,QAAQ,EAAE;gBAChC,WAAW,aAAa,IAAI,QAAQ,EAAE;gBACtC,oBAAoB,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;gBAClF,uBAAuB,KAAK,CAAC,GAAG,IAAI,QAAQ,EAAE;aAC/C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,CAAC;QAED,IAAI,oBAAoB,GAAG,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC;YAC/B,oBAAoB,GAAG,UAAU,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;gBAClB,oBAAoB,GAAG,MAAM,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACN,iFAAiF;gBACjF,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;oBACxB,oBAAoB,GAAG,4BAA4B,CAAC;gBACtD,CAAC;qBAAM,IAAI,aAAa,EAAE,CAAC;oBACzB,oBAAoB,GAAG,iCAAiC,aAAa,EAAE,CAAC;gBAC1E,CAAC;qBAAM,IAAI,KAAK,EAAE,CAAC;oBACjB,qEAAqE;oBACrE,oBAAoB,GAAG,mBAAmB,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrE,CAAC;qBAAM,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACvC,oBAAoB,GAAG,6BAA6B,IAAI,EAAE,CAAC;gBAC7D,CAAC;gBACD,4EAA4E;gBAC5E,yDAAyD;YAC3D,CAAC;QACH,CAAC;QAED,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,oBAAoB,EAAE,CAAC;IAC7D,CAAC"}
|
|
1
|
+
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../src/tools/shell.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,8 +12,8 @@ describe('ShellTool', () => {
|
|
|
12
12
|
getExcludeTools: () => undefined,
|
|
13
13
|
};
|
|
14
14
|
const shellTool = new ShellTool(config);
|
|
15
|
-
const
|
|
16
|
-
expect(
|
|
15
|
+
const isAllowed = shellTool.isCommandAllowed('ls -l');
|
|
16
|
+
expect(isAllowed).toBe(true);
|
|
17
17
|
});
|
|
18
18
|
it('should allow a command if it is in the allowed list', async () => {
|
|
19
19
|
const config = {
|
|
@@ -21,8 +21,8 @@ describe('ShellTool', () => {
|
|
|
21
21
|
getExcludeTools: () => undefined,
|
|
22
22
|
};
|
|
23
23
|
const shellTool = new ShellTool(config);
|
|
24
|
-
const
|
|
25
|
-
expect(
|
|
24
|
+
const isAllowed = shellTool.isCommandAllowed('ls -l');
|
|
25
|
+
expect(isAllowed).toBe(true);
|
|
26
26
|
});
|
|
27
27
|
it('should block a command if it is not in the allowed list', async () => {
|
|
28
28
|
const config = {
|
|
@@ -30,9 +30,8 @@ describe('ShellTool', () => {
|
|
|
30
30
|
getExcludeTools: () => undefined,
|
|
31
31
|
};
|
|
32
32
|
const shellTool = new ShellTool(config);
|
|
33
|
-
const
|
|
34
|
-
expect(
|
|
35
|
-
expect(result.reason).toBe("Command 'rm -rf /' is not in the allowed commands list");
|
|
33
|
+
const isAllowed = shellTool.isCommandAllowed('rm -rf /');
|
|
34
|
+
expect(isAllowed).toBe(false);
|
|
36
35
|
});
|
|
37
36
|
it('should block a command if it is in the blocked list', async () => {
|
|
38
37
|
const config = {
|
|
@@ -40,9 +39,8 @@ describe('ShellTool', () => {
|
|
|
40
39
|
getExcludeTools: () => ['ShellTool(rm -rf /)'],
|
|
41
40
|
};
|
|
42
41
|
const shellTool = new ShellTool(config);
|
|
43
|
-
const
|
|
44
|
-
expect(
|
|
45
|
-
expect(result.reason).toBe("Command 'rm -rf /' is blocked by configuration");
|
|
42
|
+
const isAllowed = shellTool.isCommandAllowed('rm -rf /');
|
|
43
|
+
expect(isAllowed).toBe(false);
|
|
46
44
|
});
|
|
47
45
|
it('should allow a command if it is not in the blocked list', async () => {
|
|
48
46
|
const config = {
|
|
@@ -50,8 +48,8 @@ describe('ShellTool', () => {
|
|
|
50
48
|
getExcludeTools: () => ['ShellTool(rm -rf /)'],
|
|
51
49
|
};
|
|
52
50
|
const shellTool = new ShellTool(config);
|
|
53
|
-
const
|
|
54
|
-
expect(
|
|
51
|
+
const isAllowed = shellTool.isCommandAllowed('ls -l');
|
|
52
|
+
expect(isAllowed).toBe(true);
|
|
55
53
|
});
|
|
56
54
|
it('should block a command if it is in both the allowed and blocked lists', async () => {
|
|
57
55
|
const config = {
|
|
@@ -59,9 +57,8 @@ describe('ShellTool', () => {
|
|
|
59
57
|
getExcludeTools: () => ['ShellTool(rm -rf /)'],
|
|
60
58
|
};
|
|
61
59
|
const shellTool = new ShellTool(config);
|
|
62
|
-
const
|
|
63
|
-
expect(
|
|
64
|
-
expect(result.reason).toBe("Command 'rm -rf /' is blocked by configuration");
|
|
60
|
+
const isAllowed = shellTool.isCommandAllowed('rm -rf /');
|
|
61
|
+
expect(isAllowed).toBe(false);
|
|
65
62
|
});
|
|
66
63
|
it('should allow any command when ShellTool is in coreTools without specific commands', async () => {
|
|
67
64
|
const config = {
|
|
@@ -69,8 +66,8 @@ describe('ShellTool', () => {
|
|
|
69
66
|
getExcludeTools: () => [],
|
|
70
67
|
};
|
|
71
68
|
const shellTool = new ShellTool(config);
|
|
72
|
-
const
|
|
73
|
-
expect(
|
|
69
|
+
const isAllowed = shellTool.isCommandAllowed('any command');
|
|
70
|
+
expect(isAllowed).toBe(true);
|
|
74
71
|
});
|
|
75
72
|
it('should block any command when ShellTool is in excludeTools without specific commands', async () => {
|
|
76
73
|
const config = {
|
|
@@ -78,9 +75,8 @@ describe('ShellTool', () => {
|
|
|
78
75
|
getExcludeTools: () => ['ShellTool'],
|
|
79
76
|
};
|
|
80
77
|
const shellTool = new ShellTool(config);
|
|
81
|
-
const
|
|
82
|
-
expect(
|
|
83
|
-
expect(result.reason).toBe('Shell tool is globally disabled in configuration');
|
|
78
|
+
const isAllowed = shellTool.isCommandAllowed('any command');
|
|
79
|
+
expect(isAllowed).toBe(false);
|
|
84
80
|
});
|
|
85
81
|
it('should allow a command if it is in the allowed list using the public-facing name', async () => {
|
|
86
82
|
const config = {
|
|
@@ -88,8 +84,8 @@ describe('ShellTool', () => {
|
|
|
88
84
|
getExcludeTools: () => undefined,
|
|
89
85
|
};
|
|
90
86
|
const shellTool = new ShellTool(config);
|
|
91
|
-
const
|
|
92
|
-
expect(
|
|
87
|
+
const isAllowed = shellTool.isCommandAllowed('ls -l');
|
|
88
|
+
expect(isAllowed).toBe(true);
|
|
93
89
|
});
|
|
94
90
|
it('should block a command if it is in the blocked list using the public-facing name', async () => {
|
|
95
91
|
const config = {
|
|
@@ -97,9 +93,8 @@ describe('ShellTool', () => {
|
|
|
97
93
|
getExcludeTools: () => ['run_shell_command(rm -rf /)'],
|
|
98
94
|
};
|
|
99
95
|
const shellTool = new ShellTool(config);
|
|
100
|
-
const
|
|
101
|
-
expect(
|
|
102
|
-
expect(result.reason).toBe("Command 'rm -rf /' is blocked by configuration");
|
|
96
|
+
const isAllowed = shellTool.isCommandAllowed('rm -rf /');
|
|
97
|
+
expect(isAllowed).toBe(false);
|
|
103
98
|
});
|
|
104
99
|
it('should block any command when ShellTool is in excludeTools using the public-facing name', async () => {
|
|
105
100
|
const config = {
|
|
@@ -107,9 +102,8 @@ describe('ShellTool', () => {
|
|
|
107
102
|
getExcludeTools: () => ['run_shell_command'],
|
|
108
103
|
};
|
|
109
104
|
const shellTool = new ShellTool(config);
|
|
110
|
-
const
|
|
111
|
-
expect(
|
|
112
|
-
expect(result.reason).toBe('Shell tool is globally disabled in configuration');
|
|
105
|
+
const isAllowed = shellTool.isCommandAllowed('any command');
|
|
106
|
+
expect(isAllowed).toBe(false);
|
|
113
107
|
});
|
|
114
108
|
it('should block any command if coreTools contains an empty ShellTool command list using the public-facing name', async () => {
|
|
115
109
|
const config = {
|
|
@@ -117,9 +111,8 @@ describe('ShellTool', () => {
|
|
|
117
111
|
getExcludeTools: () => [],
|
|
118
112
|
};
|
|
119
113
|
const shellTool = new ShellTool(config);
|
|
120
|
-
const
|
|
121
|
-
expect(
|
|
122
|
-
expect(result.reason).toBe("Command 'any command' is not in the allowed commands list");
|
|
114
|
+
const isAllowed = shellTool.isCommandAllowed('any command');
|
|
115
|
+
expect(isAllowed).toBe(false);
|
|
123
116
|
});
|
|
124
117
|
it('should block any command if coreTools contains an empty ShellTool command list', async () => {
|
|
125
118
|
const config = {
|
|
@@ -127,9 +120,8 @@ describe('ShellTool', () => {
|
|
|
127
120
|
getExcludeTools: () => [],
|
|
128
121
|
};
|
|
129
122
|
const shellTool = new ShellTool(config);
|
|
130
|
-
const
|
|
131
|
-
expect(
|
|
132
|
-
expect(result.reason).toBe("Command 'any command' is not in the allowed commands list");
|
|
123
|
+
const isAllowed = shellTool.isCommandAllowed('any command');
|
|
124
|
+
expect(isAllowed).toBe(false);
|
|
133
125
|
});
|
|
134
126
|
it('should block a command with extra whitespace if it is in the blocked list', async () => {
|
|
135
127
|
const config = {
|
|
@@ -137,9 +129,8 @@ describe('ShellTool', () => {
|
|
|
137
129
|
getExcludeTools: () => ['ShellTool(rm -rf /)'],
|
|
138
130
|
};
|
|
139
131
|
const shellTool = new ShellTool(config);
|
|
140
|
-
const
|
|
141
|
-
expect(
|
|
142
|
-
expect(result.reason).toBe("Command 'rm -rf /' is blocked by configuration");
|
|
132
|
+
const isAllowed = shellTool.isCommandAllowed(' rm -rf / ');
|
|
133
|
+
expect(isAllowed).toBe(false);
|
|
143
134
|
});
|
|
144
135
|
it('should allow any command when ShellTool is present with specific commands', async () => {
|
|
145
136
|
const config = {
|
|
@@ -147,8 +138,8 @@ describe('ShellTool', () => {
|
|
|
147
138
|
getExcludeTools: () => [],
|
|
148
139
|
};
|
|
149
140
|
const shellTool = new ShellTool(config);
|
|
150
|
-
const
|
|
151
|
-
expect(
|
|
141
|
+
const isAllowed = shellTool.isCommandAllowed('any command');
|
|
142
|
+
expect(isAllowed).toBe(true);
|
|
152
143
|
});
|
|
153
144
|
it('should block a command on the blocklist even with a wildcard allow', async () => {
|
|
154
145
|
const config = {
|
|
@@ -156,9 +147,8 @@ describe('ShellTool', () => {
|
|
|
156
147
|
getExcludeTools: () => ['ShellTool(rm -rf /)'],
|
|
157
148
|
};
|
|
158
149
|
const shellTool = new ShellTool(config);
|
|
159
|
-
const
|
|
160
|
-
expect(
|
|
161
|
-
expect(result.reason).toBe("Command 'rm -rf /' is blocked by configuration");
|
|
150
|
+
const isAllowed = shellTool.isCommandAllowed('rm -rf /');
|
|
151
|
+
expect(isAllowed).toBe(false);
|
|
162
152
|
});
|
|
163
153
|
it('should allow a command that starts with an allowed command prefix', async () => {
|
|
164
154
|
const config = {
|
|
@@ -166,8 +156,8 @@ describe('ShellTool', () => {
|
|
|
166
156
|
getExcludeTools: () => [],
|
|
167
157
|
};
|
|
168
158
|
const shellTool = new ShellTool(config);
|
|
169
|
-
const
|
|
170
|
-
expect(
|
|
159
|
+
const isAllowed = shellTool.isCommandAllowed('gh issue edit 1 --add-label "kind/feature"');
|
|
160
|
+
expect(isAllowed).toBe(true);
|
|
171
161
|
});
|
|
172
162
|
it('should allow a command that starts with an allowed command prefix using the public-facing name', async () => {
|
|
173
163
|
const config = {
|
|
@@ -175,8 +165,8 @@ describe('ShellTool', () => {
|
|
|
175
165
|
getExcludeTools: () => [],
|
|
176
166
|
};
|
|
177
167
|
const shellTool = new ShellTool(config);
|
|
178
|
-
const
|
|
179
|
-
expect(
|
|
168
|
+
const isAllowed = shellTool.isCommandAllowed('gh issue edit 1 --add-label "kind/feature"');
|
|
169
|
+
expect(isAllowed).toBe(true);
|
|
180
170
|
});
|
|
181
171
|
it('should not allow a command that starts with an allowed command prefix but is chained with another command', async () => {
|
|
182
172
|
const config = {
|
|
@@ -184,9 +174,8 @@ describe('ShellTool', () => {
|
|
|
184
174
|
getExcludeTools: () => [],
|
|
185
175
|
};
|
|
186
176
|
const shellTool = new ShellTool(config);
|
|
187
|
-
const
|
|
188
|
-
expect(
|
|
189
|
-
expect(result.reason).toBe("Command 'rm -rf /' is not in the allowed commands list");
|
|
177
|
+
const isAllowed = shellTool.isCommandAllowed('gh issue edit&&rm -rf /');
|
|
178
|
+
expect(isAllowed).toBe(false);
|
|
190
179
|
});
|
|
191
180
|
it('should not allow a command that is a prefix of an allowed command', async () => {
|
|
192
181
|
const config = {
|
|
@@ -194,9 +183,8 @@ describe('ShellTool', () => {
|
|
|
194
183
|
getExcludeTools: () => [],
|
|
195
184
|
};
|
|
196
185
|
const shellTool = new ShellTool(config);
|
|
197
|
-
const
|
|
198
|
-
expect(
|
|
199
|
-
expect(result.reason).toBe("Command 'gh issue' is not in the allowed commands list");
|
|
186
|
+
const isAllowed = shellTool.isCommandAllowed('gh issue');
|
|
187
|
+
expect(isAllowed).toBe(false);
|
|
200
188
|
});
|
|
201
189
|
it('should not allow a command that is a prefix of a blocked command', async () => {
|
|
202
190
|
const config = {
|
|
@@ -204,8 +192,8 @@ describe('ShellTool', () => {
|
|
|
204
192
|
getExcludeTools: () => ['run_shell_command(gh issue edit)'],
|
|
205
193
|
};
|
|
206
194
|
const shellTool = new ShellTool(config);
|
|
207
|
-
const
|
|
208
|
-
expect(
|
|
195
|
+
const isAllowed = shellTool.isCommandAllowed('gh issue');
|
|
196
|
+
expect(isAllowed).toBe(true);
|
|
209
197
|
});
|
|
210
198
|
it('should not allow a command that is chained with a pipe', async () => {
|
|
211
199
|
const config = {
|
|
@@ -213,9 +201,8 @@ describe('ShellTool', () => {
|
|
|
213
201
|
getExcludeTools: () => [],
|
|
214
202
|
};
|
|
215
203
|
const shellTool = new ShellTool(config);
|
|
216
|
-
const
|
|
217
|
-
expect(
|
|
218
|
-
expect(result.reason).toBe("Command 'rm -rf /' is not in the allowed commands list");
|
|
204
|
+
const isAllowed = shellTool.isCommandAllowed('gh issue list | rm -rf /');
|
|
205
|
+
expect(isAllowed).toBe(false);
|
|
219
206
|
});
|
|
220
207
|
it('should not allow a command that is chained with a semicolon', async () => {
|
|
221
208
|
const config = {
|
|
@@ -223,9 +210,8 @@ describe('ShellTool', () => {
|
|
|
223
210
|
getExcludeTools: () => [],
|
|
224
211
|
};
|
|
225
212
|
const shellTool = new ShellTool(config);
|
|
226
|
-
const
|
|
227
|
-
expect(
|
|
228
|
-
expect(result.reason).toBe("Command 'rm -rf /' is not in the allowed commands list");
|
|
213
|
+
const isAllowed = shellTool.isCommandAllowed('gh issue list; rm -rf /');
|
|
214
|
+
expect(isAllowed).toBe(false);
|
|
229
215
|
});
|
|
230
216
|
it('should block a chained command if any part is blocked', async () => {
|
|
231
217
|
const config = {
|
|
@@ -233,9 +219,8 @@ describe('ShellTool', () => {
|
|
|
233
219
|
getExcludeTools: () => ['run_shell_command(rm)'],
|
|
234
220
|
};
|
|
235
221
|
const shellTool = new ShellTool(config);
|
|
236
|
-
const
|
|
237
|
-
expect(
|
|
238
|
-
expect(result.reason).toBe("Command 'rm -rf /' is blocked by configuration");
|
|
222
|
+
const isAllowed = shellTool.isCommandAllowed('echo "hello" && rm -rf /');
|
|
223
|
+
expect(isAllowed).toBe(false);
|
|
239
224
|
});
|
|
240
225
|
it('should block a command if its prefix is on the blocklist, even if the command itself is on the allowlist', async () => {
|
|
241
226
|
const config = {
|
|
@@ -243,9 +228,8 @@ describe('ShellTool', () => {
|
|
|
243
228
|
getExcludeTools: () => ['run_shell_command(git)'],
|
|
244
229
|
};
|
|
245
230
|
const shellTool = new ShellTool(config);
|
|
246
|
-
const
|
|
247
|
-
expect(
|
|
248
|
-
expect(result.reason).toBe("Command 'git push' is blocked by configuration");
|
|
231
|
+
const isAllowed = shellTool.isCommandAllowed('git push');
|
|
232
|
+
expect(isAllowed).toBe(false);
|
|
249
233
|
});
|
|
250
234
|
it('should be case-sensitive in its matching', async () => {
|
|
251
235
|
const config = {
|
|
@@ -253,9 +237,8 @@ describe('ShellTool', () => {
|
|
|
253
237
|
getExcludeTools: () => [],
|
|
254
238
|
};
|
|
255
239
|
const shellTool = new ShellTool(config);
|
|
256
|
-
const
|
|
257
|
-
expect(
|
|
258
|
-
expect(result.reason).toBe('Command \'ECHO "hello"\' is not in the allowed commands list');
|
|
240
|
+
const isAllowed = shellTool.isCommandAllowed('ECHO "hello"');
|
|
241
|
+
expect(isAllowed).toBe(false);
|
|
259
242
|
});
|
|
260
243
|
it('should correctly handle commands with extra whitespace around chaining operators', async () => {
|
|
261
244
|
const config = {
|
|
@@ -263,9 +246,8 @@ describe('ShellTool', () => {
|
|
|
263
246
|
getExcludeTools: () => ['run_shell_command(rm)'],
|
|
264
247
|
};
|
|
265
248
|
const shellTool = new ShellTool(config);
|
|
266
|
-
const
|
|
267
|
-
expect(
|
|
268
|
-
expect(result.reason).toBe("Command 'rm -rf /' is blocked by configuration");
|
|
249
|
+
const isAllowed = shellTool.isCommandAllowed('ls -l ; rm -rf /');
|
|
250
|
+
expect(isAllowed).toBe(false);
|
|
269
251
|
});
|
|
270
252
|
it('should allow a chained command if all parts are allowed', async () => {
|
|
271
253
|
const config = {
|
|
@@ -276,17 +258,17 @@ describe('ShellTool', () => {
|
|
|
276
258
|
getExcludeTools: () => [],
|
|
277
259
|
};
|
|
278
260
|
const shellTool = new ShellTool(config);
|
|
279
|
-
const
|
|
280
|
-
expect(
|
|
261
|
+
const isAllowed = shellTool.isCommandAllowed('echo "hello" && ls -l');
|
|
262
|
+
expect(isAllowed).toBe(true);
|
|
281
263
|
});
|
|
282
|
-
it('should
|
|
264
|
+
it('should block a command with command substitution using backticks', async () => {
|
|
283
265
|
const config = {
|
|
284
266
|
getCoreTools: () => ['run_shell_command(echo)'],
|
|
285
267
|
getExcludeTools: () => [],
|
|
286
268
|
};
|
|
287
269
|
const shellTool = new ShellTool(config);
|
|
288
|
-
const
|
|
289
|
-
expect(
|
|
270
|
+
const isAllowed = shellTool.isCommandAllowed('echo `rm -rf /`');
|
|
271
|
+
expect(isAllowed).toBe(false);
|
|
290
272
|
});
|
|
291
273
|
it('should block a command with command substitution using $()', async () => {
|
|
292
274
|
const config = {
|
|
@@ -294,9 +276,8 @@ describe('ShellTool', () => {
|
|
|
294
276
|
getExcludeTools: () => [],
|
|
295
277
|
};
|
|
296
278
|
const shellTool = new ShellTool(config);
|
|
297
|
-
const
|
|
298
|
-
expect(
|
|
299
|
-
expect(result.reason).toBe('Command substitution using $() is not allowed for security reasons');
|
|
279
|
+
const isAllowed = shellTool.isCommandAllowed('echo $(rm -rf /)');
|
|
280
|
+
expect(isAllowed).toBe(false);
|
|
300
281
|
});
|
|
301
282
|
it('should allow a command with I/O redirection', async () => {
|
|
302
283
|
const config = {
|
|
@@ -304,8 +285,8 @@ describe('ShellTool', () => {
|
|
|
304
285
|
getExcludeTools: () => [],
|
|
305
286
|
};
|
|
306
287
|
const shellTool = new ShellTool(config);
|
|
307
|
-
const
|
|
308
|
-
expect(
|
|
288
|
+
const isAllowed = shellTool.isCommandAllowed('echo "hello" > file.txt');
|
|
289
|
+
expect(isAllowed).toBe(true);
|
|
309
290
|
});
|
|
310
291
|
it('should not allow a command that is chained with a double pipe', async () => {
|
|
311
292
|
const config = {
|
|
@@ -313,9 +294,8 @@ describe('ShellTool', () => {
|
|
|
313
294
|
getExcludeTools: () => [],
|
|
314
295
|
};
|
|
315
296
|
const shellTool = new ShellTool(config);
|
|
316
|
-
const
|
|
317
|
-
expect(
|
|
318
|
-
expect(result.reason).toBe("Command 'rm -rf /' is not in the allowed commands list");
|
|
297
|
+
const isAllowed = shellTool.isCommandAllowed('gh issue list || rm -rf /');
|
|
298
|
+
expect(isAllowed).toBe(false);
|
|
319
299
|
});
|
|
320
300
|
});
|
|
321
301
|
//# 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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"}
|