@google/gemini-cli-core 0.1.10-dev.15 → 0.1.11-nightly.250713.4442e893
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -2
- package/dist/google-gemini-cli-core-0.1.11.tgz +0 -0
- package/dist/src/code_assist/codeAssist.d.ts +2 -1
- package/dist/src/code_assist/codeAssist.js +4 -3
- package/dist/src/code_assist/codeAssist.js.map +1 -1
- package/dist/src/code_assist/converter.js.map +1 -1
- package/dist/src/code_assist/oauth2.d.ts +3 -8
- package/dist/src/code_assist/oauth2.js +117 -75
- package/dist/src/code_assist/oauth2.js.map +1 -1
- package/dist/src/code_assist/oauth2.test.js +134 -34
- package/dist/src/code_assist/oauth2.test.js.map +1 -1
- package/dist/src/code_assist/server.d.ts +4 -0
- package/dist/src/code_assist/server.js +68 -2
- package/dist/src/code_assist/server.js.map +1 -1
- package/dist/src/code_assist/setup.js +1 -1
- package/dist/src/code_assist/setup.js.map +1 -1
- package/dist/src/code_assist/setup.test.d.ts +6 -0
- package/dist/src/code_assist/setup.test.js +62 -0
- package/dist/src/code_assist/setup.test.js.map +1 -0
- package/dist/src/config/config.d.ts +31 -3
- package/dist/src/config/config.js +102 -56
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +48 -23
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/core/client.d.ts +23 -6
- package/dist/src/core/client.js +88 -24
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +131 -12
- package/dist/src/core/client.test.js.map +1 -1
- package/dist/src/core/contentGenerator.d.ts +7 -5
- package/dist/src/core/contentGenerator.js +16 -15
- package/dist/src/core/contentGenerator.js.map +1 -1
- package/dist/src/core/contentGenerator.test.js +52 -5
- package/dist/src/core/contentGenerator.test.js.map +1 -1
- package/dist/src/core/coreToolScheduler.d.ts +9 -2
- package/dist/src/core/coreToolScheduler.js +52 -5
- package/dist/src/core/coreToolScheduler.js.map +1 -1
- package/dist/src/core/coreToolScheduler.test.js +80 -0
- package/dist/src/core/coreToolScheduler.test.js.map +1 -1
- package/dist/src/core/geminiChat.d.ts +2 -2
- package/dist/src/core/geminiChat.js +52 -32
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/geminiChat.test.js +4 -2
- package/dist/src/core/geminiChat.test.js.map +1 -1
- package/dist/src/core/modelCheck.js +1 -1
- package/dist/src/core/modelCheck.js.map +1 -1
- package/dist/src/core/nonInteractiveToolExecutor.js +11 -2
- package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
- package/dist/src/core/nonInteractiveToolExecutor.test.js +5 -0
- package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
- package/dist/src/core/prompts.js +9 -8
- package/dist/src/core/prompts.js.map +1 -1
- package/dist/src/core/turn.d.ts +9 -3
- package/dist/src/core/turn.js +6 -2
- package/dist/src/core/turn.js.map +1 -1
- package/dist/src/core/turn.test.js +2 -2
- package/dist/src/core/turn.test.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/services/fileDiscoveryService.d.ts +4 -0
- package/dist/src/services/fileDiscoveryService.js +13 -0
- package/dist/src/services/fileDiscoveryService.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +3 -2
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +70 -28
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +4 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +9 -0
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.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/index.d.ts +2 -2
- package/dist/src/telemetry/index.js +2 -2
- package/dist/src/telemetry/index.js.map +1 -1
- package/dist/src/telemetry/loggers.d.ts +2 -1
- package/dist/src/telemetry/loggers.js +18 -1
- package/dist/src/telemetry/loggers.js.map +1 -1
- package/dist/src/telemetry/loggers.test.js +42 -9
- package/dist/src/telemetry/loggers.test.js.map +1 -1
- package/dist/src/telemetry/types.d.ts +19 -5
- package/dist/src/telemetry/types.js +30 -4
- package/dist/src/telemetry/types.js.map +1 -1
- package/dist/src/telemetry/uiTelemetry.test.js +1 -0
- package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
- package/dist/src/tools/edit.d.ts +1 -2
- package/dist/src/tools/edit.js +11 -12
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/edit.test.js +7 -9
- package/dist/src/tools/edit.test.js.map +1 -1
- package/dist/src/tools/glob.js +9 -8
- package/dist/src/tools/glob.js.map +1 -1
- package/dist/src/tools/glob.test.js +3 -3
- package/dist/src/tools/glob.test.js.map +1 -1
- package/dist/src/tools/grep.js +8 -7
- package/dist/src/tools/grep.js.map +1 -1
- package/dist/src/tools/grep.test.js +4 -4
- package/dist/src/tools/grep.test.js.map +1 -1
- package/dist/src/tools/ls.js +9 -8
- package/dist/src/tools/ls.js.map +1 -1
- package/dist/src/tools/mcp-client.d.ts +0 -9
- package/dist/src/tools/mcp-client.js +29 -48
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-client.test.js +131 -5
- package/dist/src/tools/mcp-client.test.js.map +1 -1
- package/dist/src/tools/mcp-tool.d.ts +3 -3
- package/dist/src/tools/mcp-tool.js.map +1 -1
- package/dist/src/tools/memoryTool.js +3 -2
- package/dist/src/tools/memoryTool.js.map +1 -1
- package/dist/src/tools/read-file.js +9 -10
- package/dist/src/tools/read-file.js.map +1 -1
- package/dist/src/tools/read-file.test.js +4 -4
- package/dist/src/tools/read-file.test.js.map +1 -1
- package/dist/src/tools/read-many-files.js +25 -39
- package/dist/src/tools/read-many-files.js.map +1 -1
- package/dist/src/tools/read-many-files.test.js +25 -14
- package/dist/src/tools/read-many-files.test.js.map +1 -1
- package/dist/src/tools/shell.d.ts +5 -2
- package/dist/src/tools/shell.js +41 -18
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/shell.test.js +85 -65
- package/dist/src/tools/shell.test.js.map +1 -1
- package/dist/src/tools/tool-registry.d.ts +16 -2
- package/dist/src/tools/tool-registry.js +153 -20
- package/dist/src/tools/tool-registry.js.map +1 -1
- package/dist/src/tools/tool-registry.test.js +186 -75
- package/dist/src/tools/tool-registry.test.js.map +1 -1
- package/dist/src/tools/tools.d.ts +25 -4
- package/dist/src/tools/tools.js +8 -1
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/tools/web-fetch.js +6 -5
- package/dist/src/tools/web-fetch.js.map +1 -1
- package/dist/src/tools/web-search.d.ts +1 -1
- package/dist/src/tools/web-search.js +7 -6
- package/dist/src/tools/web-search.js.map +1 -1
- package/dist/src/tools/write-file.d.ts +0 -1
- package/dist/src/tools/write-file.js +10 -11
- package/dist/src/tools/write-file.js.map +1 -1
- package/dist/src/tools/write-file.test.js +4 -4
- package/dist/src/tools/write-file.test.js.map +1 -1
- package/dist/src/utils/editCorrector.d.ts +1 -1
- package/dist/src/utils/editCorrector.js +106 -2
- package/dist/src/utils/editCorrector.js.map +1 -1
- package/dist/src/utils/editCorrector.test.js +69 -19
- package/dist/src/utils/editCorrector.test.js.map +1 -1
- package/dist/src/utils/editor.d.ts +1 -1
- package/dist/src/utils/editor.js +1 -1
- package/dist/src/utils/fileUtils.d.ts +1 -1
- package/dist/src/utils/fileUtils.js +17 -0
- package/dist/src/utils/fileUtils.js.map +1 -1
- package/dist/src/utils/fileUtils.test.js +17 -0
- package/dist/src/utils/fileUtils.test.js.map +1 -1
- package/dist/src/utils/flashFallback.integration.test.js +1 -1
- package/dist/src/utils/flashFallback.integration.test.js.map +1 -1
- package/dist/src/utils/messageInspectors.d.ts +1 -0
- package/dist/src/utils/messageInspectors.js +5 -0
- package/dist/src/utils/messageInspectors.js.map +1 -1
- package/dist/src/utils/nextSpeakerChecker.js +1 -1
- package/dist/src/utils/nextSpeakerChecker.js.map +1 -1
- package/dist/src/utils/paths.d.ts +1 -0
- package/dist/src/utils/paths.js +1 -0
- package/dist/src/utils/paths.js.map +1 -1
- package/dist/src/utils/quotaErrorDetection.d.ts +22 -0
- package/dist/src/utils/quotaErrorDetection.js +74 -0
- package/dist/src/utils/quotaErrorDetection.js.map +1 -0
- package/dist/src/utils/retry.d.ts +1 -1
- package/dist/src/utils/retry.js +58 -2
- package/dist/src/utils/retry.js.map +1 -1
- package/dist/src/utils/retry.test.js +1 -1
- package/dist/src/utils/retry.test.js.map +1 -1
- package/dist/src/utils/schemaValidator.d.ts +10 -5
- package/dist/src/utils/schemaValidator.js +44 -32
- package/dist/src/utils/schemaValidator.js.map +1 -1
- package/dist/src/utils/summarizer.d.ts +25 -0
- package/dist/src/utils/summarizer.js +79 -0
- package/dist/src/utils/summarizer.js.map +1 -0
- package/dist/src/utils/summarizer.test.d.ts +6 -0
- package/dist/src/utils/summarizer.test.js +131 -0
- package/dist/src/utils/summarizer.test.js.map +1 -0
- package/dist/src/utils/user_account.d.ts +9 -0
- package/dist/src/utils/user_account.js +99 -0
- package/dist/src/utils/user_account.js.map +1 -0
- package/dist/src/utils/user_account.test.d.ts +6 -0
- package/dist/src/utils/user_account.test.js +153 -0
- package/dist/src/utils/user_account.test.js.map +1 -0
- package/dist/src/utils/user_id.d.ts +0 -6
- package/dist/src/utils/user_id.js +0 -21
- package/dist/src/utils/user_id.js.map +1 -1
- package/dist/src/utils/user_id.test.js +1 -22
- package/dist/src/utils/user_id.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -6
|
@@ -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 result = shellTool.isCommandAllowed('ls -l');
|
|
16
|
+
expect(result.allowed).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 result = shellTool.isCommandAllowed('ls -l');
|
|
25
|
+
expect(result.allowed).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,8 +30,9 @@ describe('ShellTool', () => {
|
|
|
30
30
|
getExcludeTools: () => undefined,
|
|
31
31
|
};
|
|
32
32
|
const shellTool = new ShellTool(config);
|
|
33
|
-
const
|
|
34
|
-
expect(
|
|
33
|
+
const result = shellTool.isCommandAllowed('rm -rf /');
|
|
34
|
+
expect(result.allowed).toBe(false);
|
|
35
|
+
expect(result.reason).toBe("Command 'rm -rf /' is not in the allowed commands list");
|
|
35
36
|
});
|
|
36
37
|
it('should block a command if it is in the blocked list', async () => {
|
|
37
38
|
const config = {
|
|
@@ -39,8 +40,9 @@ describe('ShellTool', () => {
|
|
|
39
40
|
getExcludeTools: () => ['ShellTool(rm -rf /)'],
|
|
40
41
|
};
|
|
41
42
|
const shellTool = new ShellTool(config);
|
|
42
|
-
const
|
|
43
|
-
expect(
|
|
43
|
+
const result = shellTool.isCommandAllowed('rm -rf /');
|
|
44
|
+
expect(result.allowed).toBe(false);
|
|
45
|
+
expect(result.reason).toBe("Command 'rm -rf /' is blocked by configuration");
|
|
44
46
|
});
|
|
45
47
|
it('should allow a command if it is not in the blocked list', async () => {
|
|
46
48
|
const config = {
|
|
@@ -48,8 +50,8 @@ describe('ShellTool', () => {
|
|
|
48
50
|
getExcludeTools: () => ['ShellTool(rm -rf /)'],
|
|
49
51
|
};
|
|
50
52
|
const shellTool = new ShellTool(config);
|
|
51
|
-
const
|
|
52
|
-
expect(
|
|
53
|
+
const result = shellTool.isCommandAllowed('ls -l');
|
|
54
|
+
expect(result.allowed).toBe(true);
|
|
53
55
|
});
|
|
54
56
|
it('should block a command if it is in both the allowed and blocked lists', async () => {
|
|
55
57
|
const config = {
|
|
@@ -57,8 +59,9 @@ describe('ShellTool', () => {
|
|
|
57
59
|
getExcludeTools: () => ['ShellTool(rm -rf /)'],
|
|
58
60
|
};
|
|
59
61
|
const shellTool = new ShellTool(config);
|
|
60
|
-
const
|
|
61
|
-
expect(
|
|
62
|
+
const result = shellTool.isCommandAllowed('rm -rf /');
|
|
63
|
+
expect(result.allowed).toBe(false);
|
|
64
|
+
expect(result.reason).toBe("Command 'rm -rf /' is blocked by configuration");
|
|
62
65
|
});
|
|
63
66
|
it('should allow any command when ShellTool is in coreTools without specific commands', async () => {
|
|
64
67
|
const config = {
|
|
@@ -66,8 +69,8 @@ describe('ShellTool', () => {
|
|
|
66
69
|
getExcludeTools: () => [],
|
|
67
70
|
};
|
|
68
71
|
const shellTool = new ShellTool(config);
|
|
69
|
-
const
|
|
70
|
-
expect(
|
|
72
|
+
const result = shellTool.isCommandAllowed('any command');
|
|
73
|
+
expect(result.allowed).toBe(true);
|
|
71
74
|
});
|
|
72
75
|
it('should block any command when ShellTool is in excludeTools without specific commands', async () => {
|
|
73
76
|
const config = {
|
|
@@ -75,8 +78,9 @@ describe('ShellTool', () => {
|
|
|
75
78
|
getExcludeTools: () => ['ShellTool'],
|
|
76
79
|
};
|
|
77
80
|
const shellTool = new ShellTool(config);
|
|
78
|
-
const
|
|
79
|
-
expect(
|
|
81
|
+
const result = shellTool.isCommandAllowed('any command');
|
|
82
|
+
expect(result.allowed).toBe(false);
|
|
83
|
+
expect(result.reason).toBe('Shell tool is globally disabled in configuration');
|
|
80
84
|
});
|
|
81
85
|
it('should allow a command if it is in the allowed list using the public-facing name', async () => {
|
|
82
86
|
const config = {
|
|
@@ -84,8 +88,8 @@ describe('ShellTool', () => {
|
|
|
84
88
|
getExcludeTools: () => undefined,
|
|
85
89
|
};
|
|
86
90
|
const shellTool = new ShellTool(config);
|
|
87
|
-
const
|
|
88
|
-
expect(
|
|
91
|
+
const result = shellTool.isCommandAllowed('ls -l');
|
|
92
|
+
expect(result.allowed).toBe(true);
|
|
89
93
|
});
|
|
90
94
|
it('should block a command if it is in the blocked list using the public-facing name', async () => {
|
|
91
95
|
const config = {
|
|
@@ -93,8 +97,9 @@ describe('ShellTool', () => {
|
|
|
93
97
|
getExcludeTools: () => ['run_shell_command(rm -rf /)'],
|
|
94
98
|
};
|
|
95
99
|
const shellTool = new ShellTool(config);
|
|
96
|
-
const
|
|
97
|
-
expect(
|
|
100
|
+
const result = shellTool.isCommandAllowed('rm -rf /');
|
|
101
|
+
expect(result.allowed).toBe(false);
|
|
102
|
+
expect(result.reason).toBe("Command 'rm -rf /' is blocked by configuration");
|
|
98
103
|
});
|
|
99
104
|
it('should block any command when ShellTool is in excludeTools using the public-facing name', async () => {
|
|
100
105
|
const config = {
|
|
@@ -102,8 +107,9 @@ describe('ShellTool', () => {
|
|
|
102
107
|
getExcludeTools: () => ['run_shell_command'],
|
|
103
108
|
};
|
|
104
109
|
const shellTool = new ShellTool(config);
|
|
105
|
-
const
|
|
106
|
-
expect(
|
|
110
|
+
const result = shellTool.isCommandAllowed('any command');
|
|
111
|
+
expect(result.allowed).toBe(false);
|
|
112
|
+
expect(result.reason).toBe('Shell tool is globally disabled in configuration');
|
|
107
113
|
});
|
|
108
114
|
it('should block any command if coreTools contains an empty ShellTool command list using the public-facing name', async () => {
|
|
109
115
|
const config = {
|
|
@@ -111,8 +117,9 @@ describe('ShellTool', () => {
|
|
|
111
117
|
getExcludeTools: () => [],
|
|
112
118
|
};
|
|
113
119
|
const shellTool = new ShellTool(config);
|
|
114
|
-
const
|
|
115
|
-
expect(
|
|
120
|
+
const result = shellTool.isCommandAllowed('any command');
|
|
121
|
+
expect(result.allowed).toBe(false);
|
|
122
|
+
expect(result.reason).toBe("Command 'any command' is not in the allowed commands list");
|
|
116
123
|
});
|
|
117
124
|
it('should block any command if coreTools contains an empty ShellTool command list', async () => {
|
|
118
125
|
const config = {
|
|
@@ -120,8 +127,9 @@ describe('ShellTool', () => {
|
|
|
120
127
|
getExcludeTools: () => [],
|
|
121
128
|
};
|
|
122
129
|
const shellTool = new ShellTool(config);
|
|
123
|
-
const
|
|
124
|
-
expect(
|
|
130
|
+
const result = shellTool.isCommandAllowed('any command');
|
|
131
|
+
expect(result.allowed).toBe(false);
|
|
132
|
+
expect(result.reason).toBe("Command 'any command' is not in the allowed commands list");
|
|
125
133
|
});
|
|
126
134
|
it('should block a command with extra whitespace if it is in the blocked list', async () => {
|
|
127
135
|
const config = {
|
|
@@ -129,8 +137,9 @@ describe('ShellTool', () => {
|
|
|
129
137
|
getExcludeTools: () => ['ShellTool(rm -rf /)'],
|
|
130
138
|
};
|
|
131
139
|
const shellTool = new ShellTool(config);
|
|
132
|
-
const
|
|
133
|
-
expect(
|
|
140
|
+
const result = shellTool.isCommandAllowed(' rm -rf / ');
|
|
141
|
+
expect(result.allowed).toBe(false);
|
|
142
|
+
expect(result.reason).toBe("Command 'rm -rf /' is blocked by configuration");
|
|
134
143
|
});
|
|
135
144
|
it('should allow any command when ShellTool is present with specific commands', async () => {
|
|
136
145
|
const config = {
|
|
@@ -138,8 +147,8 @@ describe('ShellTool', () => {
|
|
|
138
147
|
getExcludeTools: () => [],
|
|
139
148
|
};
|
|
140
149
|
const shellTool = new ShellTool(config);
|
|
141
|
-
const
|
|
142
|
-
expect(
|
|
150
|
+
const result = shellTool.isCommandAllowed('any command');
|
|
151
|
+
expect(result.allowed).toBe(true);
|
|
143
152
|
});
|
|
144
153
|
it('should block a command on the blocklist even with a wildcard allow', async () => {
|
|
145
154
|
const config = {
|
|
@@ -147,8 +156,9 @@ describe('ShellTool', () => {
|
|
|
147
156
|
getExcludeTools: () => ['ShellTool(rm -rf /)'],
|
|
148
157
|
};
|
|
149
158
|
const shellTool = new ShellTool(config);
|
|
150
|
-
const
|
|
151
|
-
expect(
|
|
159
|
+
const result = shellTool.isCommandAllowed('rm -rf /');
|
|
160
|
+
expect(result.allowed).toBe(false);
|
|
161
|
+
expect(result.reason).toBe("Command 'rm -rf /' is blocked by configuration");
|
|
152
162
|
});
|
|
153
163
|
it('should allow a command that starts with an allowed command prefix', async () => {
|
|
154
164
|
const config = {
|
|
@@ -156,8 +166,8 @@ describe('ShellTool', () => {
|
|
|
156
166
|
getExcludeTools: () => [],
|
|
157
167
|
};
|
|
158
168
|
const shellTool = new ShellTool(config);
|
|
159
|
-
const
|
|
160
|
-
expect(
|
|
169
|
+
const result = shellTool.isCommandAllowed('gh issue edit 1 --add-label "kind/feature"');
|
|
170
|
+
expect(result.allowed).toBe(true);
|
|
161
171
|
});
|
|
162
172
|
it('should allow a command that starts with an allowed command prefix using the public-facing name', async () => {
|
|
163
173
|
const config = {
|
|
@@ -165,8 +175,8 @@ describe('ShellTool', () => {
|
|
|
165
175
|
getExcludeTools: () => [],
|
|
166
176
|
};
|
|
167
177
|
const shellTool = new ShellTool(config);
|
|
168
|
-
const
|
|
169
|
-
expect(
|
|
178
|
+
const result = shellTool.isCommandAllowed('gh issue edit 1 --add-label "kind/feature"');
|
|
179
|
+
expect(result.allowed).toBe(true);
|
|
170
180
|
});
|
|
171
181
|
it('should not allow a command that starts with an allowed command prefix but is chained with another command', async () => {
|
|
172
182
|
const config = {
|
|
@@ -174,8 +184,9 @@ describe('ShellTool', () => {
|
|
|
174
184
|
getExcludeTools: () => [],
|
|
175
185
|
};
|
|
176
186
|
const shellTool = new ShellTool(config);
|
|
177
|
-
const
|
|
178
|
-
expect(
|
|
187
|
+
const result = shellTool.isCommandAllowed('gh issue edit&&rm -rf /');
|
|
188
|
+
expect(result.allowed).toBe(false);
|
|
189
|
+
expect(result.reason).toBe("Command 'rm -rf /' is not in the allowed commands list");
|
|
179
190
|
});
|
|
180
191
|
it('should not allow a command that is a prefix of an allowed command', async () => {
|
|
181
192
|
const config = {
|
|
@@ -183,8 +194,9 @@ describe('ShellTool', () => {
|
|
|
183
194
|
getExcludeTools: () => [],
|
|
184
195
|
};
|
|
185
196
|
const shellTool = new ShellTool(config);
|
|
186
|
-
const
|
|
187
|
-
expect(
|
|
197
|
+
const result = shellTool.isCommandAllowed('gh issue');
|
|
198
|
+
expect(result.allowed).toBe(false);
|
|
199
|
+
expect(result.reason).toBe("Command 'gh issue' is not in the allowed commands list");
|
|
188
200
|
});
|
|
189
201
|
it('should not allow a command that is a prefix of a blocked command', async () => {
|
|
190
202
|
const config = {
|
|
@@ -192,8 +204,8 @@ describe('ShellTool', () => {
|
|
|
192
204
|
getExcludeTools: () => ['run_shell_command(gh issue edit)'],
|
|
193
205
|
};
|
|
194
206
|
const shellTool = new ShellTool(config);
|
|
195
|
-
const
|
|
196
|
-
expect(
|
|
207
|
+
const result = shellTool.isCommandAllowed('gh issue');
|
|
208
|
+
expect(result.allowed).toBe(true);
|
|
197
209
|
});
|
|
198
210
|
it('should not allow a command that is chained with a pipe', async () => {
|
|
199
211
|
const config = {
|
|
@@ -201,8 +213,9 @@ describe('ShellTool', () => {
|
|
|
201
213
|
getExcludeTools: () => [],
|
|
202
214
|
};
|
|
203
215
|
const shellTool = new ShellTool(config);
|
|
204
|
-
const
|
|
205
|
-
expect(
|
|
216
|
+
const result = shellTool.isCommandAllowed('gh issue list | rm -rf /');
|
|
217
|
+
expect(result.allowed).toBe(false);
|
|
218
|
+
expect(result.reason).toBe("Command 'rm -rf /' is not in the allowed commands list");
|
|
206
219
|
});
|
|
207
220
|
it('should not allow a command that is chained with a semicolon', async () => {
|
|
208
221
|
const config = {
|
|
@@ -210,8 +223,9 @@ describe('ShellTool', () => {
|
|
|
210
223
|
getExcludeTools: () => [],
|
|
211
224
|
};
|
|
212
225
|
const shellTool = new ShellTool(config);
|
|
213
|
-
const
|
|
214
|
-
expect(
|
|
226
|
+
const result = shellTool.isCommandAllowed('gh issue list; rm -rf /');
|
|
227
|
+
expect(result.allowed).toBe(false);
|
|
228
|
+
expect(result.reason).toBe("Command 'rm -rf /' is not in the allowed commands list");
|
|
215
229
|
});
|
|
216
230
|
it('should block a chained command if any part is blocked', async () => {
|
|
217
231
|
const config = {
|
|
@@ -219,8 +233,9 @@ describe('ShellTool', () => {
|
|
|
219
233
|
getExcludeTools: () => ['run_shell_command(rm)'],
|
|
220
234
|
};
|
|
221
235
|
const shellTool = new ShellTool(config);
|
|
222
|
-
const
|
|
223
|
-
expect(
|
|
236
|
+
const result = shellTool.isCommandAllowed('echo "hello" && rm -rf /');
|
|
237
|
+
expect(result.allowed).toBe(false);
|
|
238
|
+
expect(result.reason).toBe("Command 'rm -rf /' is blocked by configuration");
|
|
224
239
|
});
|
|
225
240
|
it('should block a command if its prefix is on the blocklist, even if the command itself is on the allowlist', async () => {
|
|
226
241
|
const config = {
|
|
@@ -228,8 +243,9 @@ describe('ShellTool', () => {
|
|
|
228
243
|
getExcludeTools: () => ['run_shell_command(git)'],
|
|
229
244
|
};
|
|
230
245
|
const shellTool = new ShellTool(config);
|
|
231
|
-
const
|
|
232
|
-
expect(
|
|
246
|
+
const result = shellTool.isCommandAllowed('git push');
|
|
247
|
+
expect(result.allowed).toBe(false);
|
|
248
|
+
expect(result.reason).toBe("Command 'git push' is blocked by configuration");
|
|
233
249
|
});
|
|
234
250
|
it('should be case-sensitive in its matching', async () => {
|
|
235
251
|
const config = {
|
|
@@ -237,8 +253,9 @@ describe('ShellTool', () => {
|
|
|
237
253
|
getExcludeTools: () => [],
|
|
238
254
|
};
|
|
239
255
|
const shellTool = new ShellTool(config);
|
|
240
|
-
const
|
|
241
|
-
expect(
|
|
256
|
+
const result = shellTool.isCommandAllowed('ECHO "hello"');
|
|
257
|
+
expect(result.allowed).toBe(false);
|
|
258
|
+
expect(result.reason).toBe('Command \'ECHO "hello"\' is not in the allowed commands list');
|
|
242
259
|
});
|
|
243
260
|
it('should correctly handle commands with extra whitespace around chaining operators', async () => {
|
|
244
261
|
const config = {
|
|
@@ -246,8 +263,9 @@ describe('ShellTool', () => {
|
|
|
246
263
|
getExcludeTools: () => ['run_shell_command(rm)'],
|
|
247
264
|
};
|
|
248
265
|
const shellTool = new ShellTool(config);
|
|
249
|
-
const
|
|
250
|
-
expect(
|
|
266
|
+
const result = shellTool.isCommandAllowed('ls -l ; rm -rf /');
|
|
267
|
+
expect(result.allowed).toBe(false);
|
|
268
|
+
expect(result.reason).toBe("Command 'rm -rf /' is blocked by configuration");
|
|
251
269
|
});
|
|
252
270
|
it('should allow a chained command if all parts are allowed', async () => {
|
|
253
271
|
const config = {
|
|
@@ -258,17 +276,17 @@ describe('ShellTool', () => {
|
|
|
258
276
|
getExcludeTools: () => [],
|
|
259
277
|
};
|
|
260
278
|
const shellTool = new ShellTool(config);
|
|
261
|
-
const
|
|
262
|
-
expect(
|
|
279
|
+
const result = shellTool.isCommandAllowed('echo "hello" && ls -l');
|
|
280
|
+
expect(result.allowed).toBe(true);
|
|
263
281
|
});
|
|
264
|
-
it('should
|
|
282
|
+
it('should allow a command with command substitution using backticks', async () => {
|
|
265
283
|
const config = {
|
|
266
284
|
getCoreTools: () => ['run_shell_command(echo)'],
|
|
267
285
|
getExcludeTools: () => [],
|
|
268
286
|
};
|
|
269
287
|
const shellTool = new ShellTool(config);
|
|
270
|
-
const
|
|
271
|
-
expect(
|
|
288
|
+
const result = shellTool.isCommandAllowed('echo `rm -rf /`');
|
|
289
|
+
expect(result.allowed).toBe(true);
|
|
272
290
|
});
|
|
273
291
|
it('should block a command with command substitution using $()', async () => {
|
|
274
292
|
const config = {
|
|
@@ -276,8 +294,9 @@ describe('ShellTool', () => {
|
|
|
276
294
|
getExcludeTools: () => [],
|
|
277
295
|
};
|
|
278
296
|
const shellTool = new ShellTool(config);
|
|
279
|
-
const
|
|
280
|
-
expect(
|
|
297
|
+
const result = shellTool.isCommandAllowed('echo $(rm -rf /)');
|
|
298
|
+
expect(result.allowed).toBe(false);
|
|
299
|
+
expect(result.reason).toBe('Command substitution using $() is not allowed for security reasons');
|
|
281
300
|
});
|
|
282
301
|
it('should allow a command with I/O redirection', async () => {
|
|
283
302
|
const config = {
|
|
@@ -285,8 +304,8 @@ describe('ShellTool', () => {
|
|
|
285
304
|
getExcludeTools: () => [],
|
|
286
305
|
};
|
|
287
306
|
const shellTool = new ShellTool(config);
|
|
288
|
-
const
|
|
289
|
-
expect(
|
|
307
|
+
const result = shellTool.isCommandAllowed('echo "hello" > file.txt');
|
|
308
|
+
expect(result.allowed).toBe(true);
|
|
290
309
|
});
|
|
291
310
|
it('should not allow a command that is chained with a double pipe', async () => {
|
|
292
311
|
const config = {
|
|
@@ -294,8 +313,9 @@ describe('ShellTool', () => {
|
|
|
294
313
|
getExcludeTools: () => [],
|
|
295
314
|
};
|
|
296
315
|
const shellTool = new ShellTool(config);
|
|
297
|
-
const
|
|
298
|
-
expect(
|
|
316
|
+
const result = shellTool.isCommandAllowed('gh issue list || rm -rf /');
|
|
317
|
+
expect(result.allowed).toBe(false);
|
|
318
|
+
expect(result.reason).toBe("Command 'rm -rf /' is not in the allowed commands list");
|
|
299
319
|
});
|
|
300
320
|
});
|
|
301
321
|
//# 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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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright 2025 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { FunctionDeclaration } from '@google/genai';
|
|
6
|
+
import { FunctionDeclaration, Schema } from '@google/genai';
|
|
7
7
|
import { Tool, ToolResult, BaseTool } from './tools.js';
|
|
8
8
|
import { Config } from '../config/config.js';
|
|
9
9
|
type ToolParams = Record<string, unknown>;
|
|
@@ -17,7 +17,6 @@ export declare class DiscoveredTool extends BaseTool<ToolParams, ToolResult> {
|
|
|
17
17
|
}
|
|
18
18
|
export declare class ToolRegistry {
|
|
19
19
|
private tools;
|
|
20
|
-
private discovery;
|
|
21
20
|
private config;
|
|
22
21
|
constructor(config: Config);
|
|
23
22
|
/**
|
|
@@ -30,6 +29,7 @@ export declare class ToolRegistry {
|
|
|
30
29
|
* Can be called multiple times to update discovered tools.
|
|
31
30
|
*/
|
|
32
31
|
discoverTools(): Promise<void>;
|
|
32
|
+
private discoverAndRegisterToolsFromCommand;
|
|
33
33
|
/**
|
|
34
34
|
* Retrieves the list of tool schemas (FunctionDeclaration array).
|
|
35
35
|
* Extracts the declarations from the ToolListUnion structure.
|
|
@@ -50,4 +50,18 @@ export declare class ToolRegistry {
|
|
|
50
50
|
*/
|
|
51
51
|
getTool(name: string): Tool | undefined;
|
|
52
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Sanitizes a schema object in-place to ensure compatibility with the Gemini API.
|
|
55
|
+
*
|
|
56
|
+
* NOTE: This function mutates the passed schema object.
|
|
57
|
+
*
|
|
58
|
+
* It performs the following actions:
|
|
59
|
+
* - Removes the `default` property when `anyOf` is present.
|
|
60
|
+
* - Removes unsupported `format` values from string properties, keeping only 'enum' and 'date-time'.
|
|
61
|
+
* - Recursively sanitizes nested schemas within `anyOf`, `items`, and `properties`.
|
|
62
|
+
* - Handles circular references within the schema to prevent infinite loops.
|
|
63
|
+
*
|
|
64
|
+
* @param schema The schema object to sanitize. It will be modified directly.
|
|
65
|
+
*/
|
|
66
|
+
export declare function sanitizeParameters(schema?: Schema): void;
|
|
53
67
|
export {};
|