@vybestack/llxprt-code-core 0.1.19-gamma → 0.1.20
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 +9 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/src/auth/anthropic-device-flow.d.ts +1 -1
- package/dist/src/auth/anthropic-device-flow.js +4 -2
- package/dist/src/auth/anthropic-device-flow.js.map +1 -1
- package/dist/src/code_assist/converter.d.ts +2 -2
- package/dist/src/code_assist/converter.js +1 -1
- package/dist/src/code_assist/converter.js.map +1 -1
- package/dist/src/code_assist/setup.js +49 -15
- package/dist/src/code_assist/setup.js.map +1 -1
- package/dist/src/config/config.d.ts +9 -6
- package/dist/src/config/config.js +28 -22
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/core/client.d.ts +8 -3
- package/dist/src/core/client.js +177 -38
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/contentGenerator.js +0 -2
- package/dist/src/core/contentGenerator.js.map +1 -1
- package/dist/src/core/coreToolScheduler.d.ts +0 -1
- package/dist/src/core/coreToolScheduler.js +0 -3
- package/dist/src/core/coreToolScheduler.js.map +1 -1
- package/dist/src/core/geminiChat.js +57 -5
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/loggingContentGenerator.d.ts +5 -0
- package/dist/src/core/loggingContentGenerator.js +9 -1
- package/dist/src/core/loggingContentGenerator.js.map +1 -1
- package/dist/src/core/nonInteractiveToolExecutor.js +158 -3
- package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
- package/dist/src/core/prompts.js +19 -2
- package/dist/src/core/prompts.js.map +1 -1
- package/dist/src/filters/EmojiFilter.d.ts +122 -0
- package/dist/src/filters/EmojiFilter.js +327 -0
- package/dist/src/filters/EmojiFilter.js.map +1 -0
- package/dist/src/ide/detect-ide.d.ts +12 -2
- package/dist/src/ide/detect-ide.js +64 -5
- package/dist/src/ide/detect-ide.js.map +1 -1
- package/dist/src/ide/ide-client.js +22 -15
- package/dist/src/ide/ide-client.js.map +1 -1
- package/dist/src/ide/ide-installer.js +1 -26
- package/dist/src/ide/ide-installer.js.map +1 -1
- package/dist/src/ide/ideContext.d.ts +6 -6
- package/dist/src/index.d.ts +4 -1
- package/dist/src/index.js +4 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/oauth-provider.d.ts +0 -1
- package/dist/src/mcp/oauth-provider.js +2 -3
- package/dist/src/mcp/oauth-provider.js.map +1 -1
- package/dist/src/prompt-config/defaults/core-defaults.d.ts +1 -1
- package/dist/src/prompt-config/defaults/core-defaults.js +205 -326
- package/dist/src/prompt-config/defaults/core-defaults.js.map +1 -1
- package/dist/src/prompt-config/defaults/core.md +1 -1
- package/dist/src/prompt-config/defaults/provider-defaults.d.ts +1 -1
- package/dist/src/prompt-config/defaults/provider-defaults.js +172 -19
- package/dist/src/prompt-config/defaults/provider-defaults.js.map +1 -1
- package/dist/src/prompt-config/defaults/providers/anthropic/core.md +81 -0
- package/dist/src/prompt-config/defaults/providers/anthropic/tools/glob.md +34 -0
- package/dist/src/prompt-config/defaults/providers/anthropic/tools/list-directory.md +11 -0
- package/dist/src/prompt-config/defaults/providers/anthropic/tools/read-file.md +14 -0
- package/dist/src/prompt-config/defaults/providers/anthropic/tools/read-many-files.md +31 -0
- package/dist/src/prompt-config/defaults/providers/anthropic/tools/replace.md +41 -0
- package/dist/src/prompt-config/defaults/providers/anthropic/tools/run-shell-command.md +32 -0
- package/dist/src/prompt-config/defaults/providers/anthropic/tools/save-memory.md +35 -0
- package/dist/src/prompt-config/defaults/providers/anthropic/tools/search-file-content.md +44 -0
- package/dist/src/prompt-config/defaults/providers/anthropic/tools/todo-write.md +45 -0
- package/dist/src/prompt-config/defaults/providers/anthropic/tools/write-file.md +11 -0
- package/dist/src/prompt-config/defaults/providers/gemini/models/gemini-2.5-flash/core.md +273 -10
- package/dist/src/prompt-config/defaults/providers/gemini/models/gemini-2.5-flash/gemini-2-5-flash/core.md +278 -0
- package/dist/src/prompt-config/defaults/tool-defaults.d.ts +1 -1
- package/dist/src/prompt-config/defaults/tool-defaults.js +184 -75
- package/dist/src/prompt-config/defaults/tool-defaults.js.map +1 -1
- package/dist/src/prompt-config/defaults/tools/read-file.md +1 -1
- package/dist/src/prompt-config/prompt-service.d.ts +1 -1
- package/dist/src/prompt-config/prompt-service.js +5 -3
- package/dist/src/prompt-config/prompt-service.js.map +1 -1
- package/dist/src/providers/BaseProvider.js +1 -1
- package/dist/src/providers/BaseProvider.js.map +1 -1
- package/dist/src/providers/LoggingProviderWrapper.js +0 -12
- package/dist/src/providers/LoggingProviderWrapper.js.map +1 -1
- package/dist/src/providers/ProviderContentGenerator.d.ts +2 -2
- package/dist/src/providers/ProviderContentGenerator.js +5 -3
- package/dist/src/providers/ProviderContentGenerator.js.map +1 -1
- package/dist/src/providers/adapters/GeminiCompatibleWrapper.js +1 -1
- package/dist/src/providers/adapters/GeminiCompatibleWrapper.js.map +1 -1
- package/dist/src/providers/anthropic/AnthropicProvider.d.ts +1 -1
- package/dist/src/providers/anthropic/AnthropicProvider.js +97 -35
- package/dist/src/providers/anthropic/AnthropicProvider.js.map +1 -1
- package/dist/src/providers/gemini/GeminiProvider.d.ts +4 -5
- package/dist/src/providers/gemini/GeminiProvider.js +21 -26
- package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
- package/dist/src/providers/openai/OpenAIProvider.js +2 -1
- package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
- package/dist/src/providers/openai/parseResponsesStream.js +6 -6
- package/dist/src/providers/openai/parseResponsesStream.js.map +1 -1
- package/dist/src/services/loopDetectionService.js +4 -5
- package/dist/src/services/loopDetectionService.js.map +1 -1
- package/dist/src/services/todo-context-tracker.d.ts +1 -1
- package/dist/src/services/todo-context-tracker.js +5 -3
- package/dist/src/services/todo-context-tracker.js.map +1 -1
- package/dist/src/settings/SettingsService.js.map +1 -1
- package/dist/src/settings/types.d.ts +16 -0
- package/dist/src/telemetry/integration.test.circular.js +2 -40
- package/dist/src/telemetry/integration.test.circular.js.map +1 -1
- package/dist/src/telemetry/loggers.js +0 -20
- package/dist/src/telemetry/loggers.js.map +1 -1
- package/dist/src/telemetry/sdk.d.ts +1 -1
- package/dist/src/telemetry/sdk.js +13 -29
- package/dist/src/telemetry/sdk.js.map +1 -1
- package/dist/src/test-utils/tools.js +2 -2
- package/dist/src/test-utils/tools.js.map +1 -1
- package/dist/src/tools/edit.js +91 -27
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/glob.js +9 -10
- package/dist/src/tools/glob.js.map +1 -1
- package/dist/src/tools/grep.js +8 -9
- package/dist/src/tools/grep.js.map +1 -1
- package/dist/src/tools/ls.d.ts +3 -22
- package/dist/src/tools/ls.js +84 -114
- package/dist/src/tools/ls.js.map +1 -1
- package/dist/src/tools/mcp-client.js +2 -2
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-tool.d.ts +6 -13
- package/dist/src/tools/mcp-tool.js +41 -31
- package/dist/src/tools/mcp-tool.js.map +1 -1
- package/dist/src/tools/memoryTool.d.ts +9 -13
- package/dist/src/tools/memoryTool.js +127 -121
- package/dist/src/tools/memoryTool.js.map +1 -1
- package/dist/src/tools/read-file.js +7 -8
- package/dist/src/tools/read-file.js.map +1 -1
- package/dist/src/tools/read-many-files.d.ts +4 -6
- package/dist/src/tools/read-many-files.js +118 -111
- package/dist/src/tools/read-many-files.js.map +1 -1
- package/dist/src/tools/shell.d.ts +7 -14
- package/dist/src/tools/shell.js +120 -117
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/todo-pause.js +2 -2
- package/dist/src/tools/todo-pause.js.map +1 -1
- package/dist/src/tools/todo-read.js +8 -8
- package/dist/src/tools/todo-read.js.map +1 -1
- package/dist/src/tools/todo-write.js +2 -2
- package/dist/src/tools/todo-write.js.map +1 -1
- package/dist/src/tools/tool-registry.d.ts +6 -15
- package/dist/src/tools/tool-registry.js +17 -74
- package/dist/src/tools/tool-registry.js.map +1 -1
- package/dist/src/tools/tools.d.ts +20 -19
- package/dist/src/tools/tools.js +21 -20
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/tools/web-fetch.d.ts +4 -7
- package/dist/src/tools/web-fetch.js +81 -83
- package/dist/src/tools/web-fetch.js.map +1 -1
- package/dist/src/tools/web-search.js +26 -9
- package/dist/src/tools/web-search.js.map +1 -1
- package/dist/src/tools/write-file.d.ts +2 -1
- package/dist/src/tools/write-file.js +89 -29
- package/dist/src/tools/write-file.js.map +1 -1
- package/dist/src/utils/editCorrector.js +8 -9
- package/dist/src/utils/editCorrector.js.map +1 -1
- package/dist/src/utils/errorParsing.d.ts +8 -0
- package/dist/src/utils/errorParsing.js +109 -0
- package/dist/src/utils/errorParsing.js.map +1 -0
- package/dist/src/utils/filesearch/fileSearch.js +1 -1
- package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
- package/dist/src/utils/filesearch/result-cache.d.ts +1 -2
- package/dist/src/utils/filesearch/result-cache.js +1 -3
- package/dist/src/utils/filesearch/result-cache.js.map +1 -1
- package/dist/src/utils/memoryImportProcessor.js +1 -1
- package/dist/src/utils/memoryImportProcessor.js.map +1 -1
- package/dist/src/utils/nextSpeakerChecker.js +3 -4
- package/dist/src/utils/nextSpeakerChecker.js.map +1 -1
- package/dist/src/utils/quotaErrorDetection.d.ts +1 -5
- package/dist/src/utils/quotaErrorDetection.js.map +1 -1
- package/dist/src/utils/schemaValidator.d.ts +1 -9
- package/dist/src/utils/schemaValidator.js +1 -109
- package/dist/src/utils/schemaValidator.js.map +1 -1
- package/package.json +2 -2
- package/dist/src/core/modelCheck.d.ts +0 -14
- package/dist/src/core/modelCheck.js +0 -62
- package/dist/src/core/modelCheck.js.map +0 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +0 -48
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +0 -577
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +0 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +0 -58
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +0 -157
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +0 -1
package/dist/src/tools/shell.js
CHANGED
|
@@ -7,113 +7,57 @@ import fs from 'fs';
|
|
|
7
7
|
import path from 'path';
|
|
8
8
|
import os from 'os';
|
|
9
9
|
import crypto from 'crypto';
|
|
10
|
-
import {
|
|
10
|
+
import { BaseDeclarativeTool, BaseToolInvocation, ToolConfirmationOutcome, Kind, } from './tools.js';
|
|
11
11
|
import { SchemaValidator } from '../utils/schemaValidator.js';
|
|
12
12
|
import { getErrorMessage } from '../utils/errors.js';
|
|
13
|
-
import {
|
|
14
|
-
import { summarizeToolOutput } from '../utils/summarizer.js';
|
|
15
|
-
import { limitOutputTokens, formatLimitedOutput, getOutputLimits, } from '../utils/toolOutputLimiter.js';
|
|
13
|
+
import { limitOutputTokens, formatLimitedOutput, } from '../utils/toolOutputLimiter.js';
|
|
16
14
|
import { ShellExecutionService, } from '../services/shellExecutionService.js';
|
|
17
15
|
import { formatMemoryUsage } from '../utils/formatters.js';
|
|
18
16
|
import { getCommandRoots, isCommandAllowed, stripShellWrapper, } from '../utils/shell-utils.js';
|
|
19
17
|
export const OUTPUT_UPDATE_INTERVAL_MS = 1000;
|
|
20
|
-
|
|
18
|
+
class ShellToolInvocation extends BaseToolInvocation {
|
|
21
19
|
config;
|
|
22
|
-
|
|
23
|
-
constructor(config) {
|
|
24
|
-
super(
|
|
25
|
-
properties: {
|
|
26
|
-
command: {
|
|
27
|
-
description: 'The shell command to execute',
|
|
28
|
-
type: Type.STRING,
|
|
29
|
-
},
|
|
30
|
-
description: {
|
|
31
|
-
description: 'Optional description of what this command does, used for confirmation prompts',
|
|
32
|
-
type: Type.STRING,
|
|
33
|
-
},
|
|
34
|
-
directory: {
|
|
35
|
-
description: 'Optional directory to execute the command in, relative to the target directory',
|
|
36
|
-
type: Type.STRING,
|
|
37
|
-
},
|
|
38
|
-
},
|
|
39
|
-
required: ['command'],
|
|
40
|
-
type: Type.OBJECT,
|
|
41
|
-
}, true);
|
|
20
|
+
allowlist;
|
|
21
|
+
constructor(config, params, allowlist) {
|
|
22
|
+
super(params);
|
|
42
23
|
this.config = config;
|
|
24
|
+
this.allowlist = allowlist;
|
|
43
25
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
if (params.description) {
|
|
53
|
-
description += ` (${params.description.replace(/\n/g, ' ')})`;
|
|
26
|
+
getDescription() {
|
|
27
|
+
let description = `${this.params.command}`;
|
|
28
|
+
// append optional [in directory]
|
|
29
|
+
// note description is needed even if validation fails due to absolute path
|
|
30
|
+
if (this.params.directory) {
|
|
31
|
+
description += ` [in ${this.params.directory}]`;
|
|
32
|
+
}
|
|
33
|
+
// append optional (description), replacing any line breaks with spaces
|
|
34
|
+
if (this.params.description) {
|
|
35
|
+
description += ` (${this.params.description.replace(/\n/g, ' ')})`;
|
|
54
36
|
}
|
|
55
37
|
return description;
|
|
56
38
|
}
|
|
57
|
-
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}
|
|
64
|
-
return commandCheck.reason;
|
|
65
|
-
}
|
|
66
|
-
const schemaValidationResult = SchemaValidator.validate(this.parameterSchema, params);
|
|
67
|
-
if (schemaValidationResult !== null) {
|
|
68
|
-
return `Parameters failed schema validation.`;
|
|
69
|
-
}
|
|
70
|
-
if (!params.command.trim()) {
|
|
71
|
-
return 'Command cannot be empty.';
|
|
39
|
+
async shouldConfirmExecute(_abortSignal) {
|
|
40
|
+
const command = stripShellWrapper(this.params.command);
|
|
41
|
+
const rootCommands = [...new Set(getCommandRoots(command))];
|
|
42
|
+
const commandsToConfirm = rootCommands.filter((command) => !this.allowlist.has(command));
|
|
43
|
+
if (commandsToConfirm.length === 0) {
|
|
44
|
+
return false; // already approved and whitelisted
|
|
72
45
|
}
|
|
73
|
-
|
|
74
|
-
return 'Could not identify command root to obtain permission from user.';
|
|
75
|
-
}
|
|
76
|
-
if (params.directory) {
|
|
77
|
-
if (path.isAbsolute(params.directory)) {
|
|
78
|
-
return 'Directory cannot be absolute. Please refer to workspace directories by their name.';
|
|
79
|
-
}
|
|
80
|
-
const workspaceDirs = this.config.getWorkspaceContext().getDirectories();
|
|
81
|
-
const matchingDirs = workspaceDirs.filter((dir) => path.basename(dir) === params.directory);
|
|
82
|
-
if (matchingDirs.length === 0) {
|
|
83
|
-
return `Directory '${params.directory}' is not a registered workspace directory.`;
|
|
84
|
-
}
|
|
85
|
-
if (matchingDirs.length > 1) {
|
|
86
|
-
return `Directory name '${params.directory}' is ambiguous as it matches multiple workspace directories.`;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
return null;
|
|
90
|
-
}
|
|
91
|
-
async shouldConfirmExecute(params) {
|
|
92
|
-
const commandRoots = getCommandRoots(params.command);
|
|
93
|
-
const uniqueRoots = [...new Set(commandRoots)];
|
|
94
|
-
const rootCommand = uniqueRoots.length === 1 ? uniqueRoots[0] : uniqueRoots.join(', ');
|
|
95
|
-
return {
|
|
46
|
+
const confirmationDetails = {
|
|
96
47
|
type: 'exec',
|
|
97
|
-
title:
|
|
98
|
-
command: this.
|
|
99
|
-
rootCommand,
|
|
100
|
-
onConfirm: async () => {
|
|
101
|
-
|
|
48
|
+
title: 'Confirm Shell Command',
|
|
49
|
+
command: this.params.command,
|
|
50
|
+
rootCommand: commandsToConfirm.join(', '),
|
|
51
|
+
onConfirm: async (outcome) => {
|
|
52
|
+
if (outcome === ToolConfirmationOutcome.ProceedAlways) {
|
|
53
|
+
commandsToConfirm.forEach((command) => this.allowlist.add(command));
|
|
54
|
+
}
|
|
102
55
|
},
|
|
103
56
|
};
|
|
57
|
+
return confirmationDetails;
|
|
104
58
|
}
|
|
105
|
-
async execute(
|
|
106
|
-
const strippedCommand = stripShellWrapper(params.command);
|
|
107
|
-
const validationError = this.validateToolParams({
|
|
108
|
-
...params,
|
|
109
|
-
command: strippedCommand,
|
|
110
|
-
});
|
|
111
|
-
if (validationError) {
|
|
112
|
-
return {
|
|
113
|
-
llmContent: validationError,
|
|
114
|
-
returnDisplay: validationError,
|
|
115
|
-
};
|
|
116
|
-
}
|
|
59
|
+
async execute(signal, updateOutput) {
|
|
60
|
+
const strippedCommand = stripShellWrapper(this.params.command);
|
|
117
61
|
if (signal.aborted) {
|
|
118
62
|
return {
|
|
119
63
|
llmContent: 'Command was cancelled by user before it could start.',
|
|
@@ -136,7 +80,7 @@ export class ShellTool extends BaseTool {
|
|
|
136
80
|
command += ';';
|
|
137
81
|
return `{ ${command} }; __code=$?; pgrep -g 0 >${tempFilePath} 2>&1; exit $__code;`;
|
|
138
82
|
})();
|
|
139
|
-
const cwd = path.resolve(this.config.getTargetDir(), params.directory || '');
|
|
83
|
+
const cwd = path.resolve(this.config.getTargetDir(), this.params.directory || '');
|
|
140
84
|
let cumulativeStdout = '';
|
|
141
85
|
let cumulativeStderr = '';
|
|
142
86
|
let lastUpdateTime = Date.now();
|
|
@@ -224,11 +168,11 @@ export class ShellTool extends BaseTool {
|
|
|
224
168
|
// Create a formatted error string for display, replacing the wrapper command
|
|
225
169
|
// with the user-facing command.
|
|
226
170
|
const finalError = result.error
|
|
227
|
-
? result.error.message.replace(commandToExecute, params.command)
|
|
171
|
+
? result.error.message.replace(commandToExecute, this.params.command)
|
|
228
172
|
: '(none)';
|
|
229
173
|
llmContent = [
|
|
230
|
-
`Command: ${params.command}`,
|
|
231
|
-
`Directory: ${params.directory || '(root)'}`,
|
|
174
|
+
`Command: ${this.params.command}`,
|
|
175
|
+
`Directory: ${this.params.directory || '(root)'}`,
|
|
232
176
|
`Stdout: ${result.stdout || '(empty)'}`,
|
|
233
177
|
`Stderr: ${result.stderr || '(empty)'}`,
|
|
234
178
|
`Error: ${finalError}`, // Use the cleaned error string.
|
|
@@ -265,34 +209,17 @@ export class ShellTool extends BaseTool {
|
|
|
265
209
|
}
|
|
266
210
|
// Apply token-based limiting first
|
|
267
211
|
const limitedResult = limitOutputTokens(llmContent, this.config, 'run_shell_command');
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
2. Use more specific commands that produce less output
|
|
273
|
-
3. Write output to a file and read specific parts with the read tool
|
|
274
|
-
4. Use the appropriate tool instead (grep for searching, ls for listing, etc.)
|
|
275
|
-
5. Break the command into smaller, more focused operations`;
|
|
212
|
+
if (limitedResult.wasTruncated) {
|
|
213
|
+
// For now, just return the truncated output without summarization
|
|
214
|
+
// since we don't have direct access to a Gemini client here
|
|
215
|
+
const formatted = formatLimitedOutput(limitedResult);
|
|
276
216
|
return {
|
|
277
|
-
llmContent:
|
|
278
|
-
returnDisplay: `## Command Output Too Large\n\n${improvedMessage}`,
|
|
279
|
-
};
|
|
280
|
-
}
|
|
281
|
-
const formatted = formatLimitedOutput(limitedResult);
|
|
282
|
-
if (limitedResult.wasTruncated && !limitedResult.content) {
|
|
283
|
-
return formatted;
|
|
284
|
-
}
|
|
285
|
-
// Then check if summarization is configured
|
|
286
|
-
const summarizeConfig = this.config.getSummarizeToolOutputConfig();
|
|
287
|
-
if (summarizeConfig && summarizeConfig[this.name]) {
|
|
288
|
-
const summary = await summarizeToolOutput(formatted.llmContent, this.config.getGeminiClient(), signal, summarizeConfig[this.name].tokenBudget);
|
|
289
|
-
return {
|
|
290
|
-
llmContent: summary,
|
|
217
|
+
llmContent: formatted.llmContent,
|
|
291
218
|
returnDisplay: returnDisplayMessage,
|
|
292
219
|
};
|
|
293
220
|
}
|
|
294
221
|
return {
|
|
295
|
-
llmContent:
|
|
222
|
+
llmContent: limitedResult.content,
|
|
296
223
|
returnDisplay: returnDisplayMessage,
|
|
297
224
|
};
|
|
298
225
|
}
|
|
@@ -303,4 +230,80 @@ export class ShellTool extends BaseTool {
|
|
|
303
230
|
}
|
|
304
231
|
}
|
|
305
232
|
}
|
|
233
|
+
export class ShellTool extends BaseDeclarativeTool {
|
|
234
|
+
config;
|
|
235
|
+
static Name = 'run_shell_command';
|
|
236
|
+
allowlist = new Set();
|
|
237
|
+
constructor(config) {
|
|
238
|
+
super(ShellTool.Name, 'Shell', `This tool executes a given shell command as \`bash -c <command>\`. Command can start background processes using \`&\`. Command is executed as a subprocess that leads its own process group. Command process group can be terminated as \`kill -- -PGID\` or signaled as \`kill -s SIGNAL -- -PGID\`.
|
|
239
|
+
|
|
240
|
+
The following information is returned:
|
|
241
|
+
|
|
242
|
+
Command: Executed command.
|
|
243
|
+
Directory: Directory (relative to project root) where command was executed, or \`(root)\`.
|
|
244
|
+
Stdout: Output on stdout stream. Can be \`(empty)\` or partial on error and for any unwaited background processes.
|
|
245
|
+
Stderr: Output on stderr stream. Can be \`(empty)\` or partial on error and for any unwaited background processes.
|
|
246
|
+
Error: Error or \`(none)\` if no error was reported for the subprocess.
|
|
247
|
+
Exit Code: Exit code or \`(none)\` if terminated by signal.
|
|
248
|
+
Signal: Signal number or \`(none)\` if no signal was received.
|
|
249
|
+
Background PIDs: List of background processes started or \`(none)\`.
|
|
250
|
+
Process Group PGID: Process group started or \`(none)\``, Kind.Execute, {
|
|
251
|
+
type: 'object',
|
|
252
|
+
properties: {
|
|
253
|
+
command: {
|
|
254
|
+
type: 'string',
|
|
255
|
+
description: 'Exact bash command to execute as `bash -c <command>`',
|
|
256
|
+
},
|
|
257
|
+
description: {
|
|
258
|
+
type: 'string',
|
|
259
|
+
description: 'Brief description of the command for the user. Be specific and concise. Ideally a single sentence. Can be up to 3 sentences for clarity. No line breaks.',
|
|
260
|
+
},
|
|
261
|
+
directory: {
|
|
262
|
+
type: 'string',
|
|
263
|
+
description: '(OPTIONAL) Directory to run the command in, if not the project root directory. Must be relative to the project root directory and must already exist.',
|
|
264
|
+
},
|
|
265
|
+
},
|
|
266
|
+
required: ['command'],
|
|
267
|
+
}, false, // output is not markdown
|
|
268
|
+
true);
|
|
269
|
+
this.config = config;
|
|
270
|
+
}
|
|
271
|
+
validateToolParams(params) {
|
|
272
|
+
const commandCheck = isCommandAllowed(params.command, this.config);
|
|
273
|
+
if (!commandCheck.allowed) {
|
|
274
|
+
if (!commandCheck.reason) {
|
|
275
|
+
console.error('Unexpected: isCommandAllowed returned false without a reason');
|
|
276
|
+
return `Command is not allowed: ${params.command}`;
|
|
277
|
+
}
|
|
278
|
+
return commandCheck.reason;
|
|
279
|
+
}
|
|
280
|
+
const errors = SchemaValidator.validate(this.schema.parametersJsonSchema, params);
|
|
281
|
+
if (errors) {
|
|
282
|
+
return errors;
|
|
283
|
+
}
|
|
284
|
+
if (!params.command.trim()) {
|
|
285
|
+
return 'Command cannot be empty.';
|
|
286
|
+
}
|
|
287
|
+
if (getCommandRoots(params.command).length === 0) {
|
|
288
|
+
return 'Could not identify command root to obtain permission from user.';
|
|
289
|
+
}
|
|
290
|
+
if (params.directory) {
|
|
291
|
+
if (path.isAbsolute(params.directory)) {
|
|
292
|
+
return 'Directory cannot be absolute. Please refer to workspace directories by their name.';
|
|
293
|
+
}
|
|
294
|
+
const workspaceDirs = this.config.getWorkspaceContext().getDirectories();
|
|
295
|
+
const matchingDirs = workspaceDirs.filter((dir) => path.basename(dir) === params.directory);
|
|
296
|
+
if (matchingDirs.length === 0) {
|
|
297
|
+
return `Directory '${params.directory}' is not a registered workspace directory.`;
|
|
298
|
+
}
|
|
299
|
+
if (matchingDirs.length > 1) {
|
|
300
|
+
return `Directory name '${params.directory}' is ambiguous as it matches multiple workspace directories.`;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
return null;
|
|
304
|
+
}
|
|
305
|
+
createInvocation(params) {
|
|
306
|
+
return new ShellToolInvocation(this.config, params, this.allowlist);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
306
309
|
//# sourceMappingURL=shell.js.map
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../src/tools/shell.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { Type } from '@google/genai';
|
|
7
|
-
import { BaseTool,
|
|
7
|
+
import { BaseTool, Kind } from './tools.js';
|
|
8
8
|
import { SchemaValidator } from '../utils/schemaValidator.js';
|
|
9
9
|
/**
|
|
10
10
|
* Tool that allows AI models to explicitly pause the continuation loop when encountering errors or blockers.
|
|
@@ -18,7 +18,7 @@ export class TodoPause extends BaseTool {
|
|
|
18
18
|
'dependencies are blocking completion, or unexpected errors occur that require human intervention. ' +
|
|
19
19
|
'DO NOT use this tool for normal task completion (use todo_write to update status instead), ' +
|
|
20
20
|
'requesting clarification (continue with your best understanding), or minor issues that can be worked around. ' +
|
|
21
|
-
'The reason should clearly explain what specific issue is preventing progress.',
|
|
21
|
+
'The reason should clearly explain what specific issue is preventing progress.', Kind.Think, {
|
|
22
22
|
type: Type.OBJECT,
|
|
23
23
|
properties: {
|
|
24
24
|
reason: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"todo-pause.js","sourceRoot":"","sources":["../../../src/tools/todo-pause.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAc,IAAI,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAM9D;;;GAGG;AACH,MAAM,OAAO,SAAU,SAAQ,QAAqC;IAClE,MAAM,CAAU,IAAI,GAAG,YAAY,CAAC;IAEpC;QACE,KAAK,CACH,SAAS,CAAC,IAAI,EACd,WAAW,EACX,4EAA4E;YAC1E,qGAAqG;YACrG,oGAAoG;YACpG,6FAA6F;YAC7F,+GAA+G;YAC/G,+EAA+E,EACjF,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"todo-pause.js","sourceRoot":"","sources":["../../../src/tools/todo-pause.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright 2025 Vybestack LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { BaseTool,
|
|
6
|
+
import { BaseTool, Kind } from './tools.js';
|
|
7
7
|
import { TodoStore } from './todo-store.js';
|
|
8
8
|
import { Type } from '@google/genai';
|
|
9
9
|
import { TodoReminderService } from '../services/todo-reminder-service.js';
|
|
@@ -11,7 +11,7 @@ export class TodoRead extends BaseTool {
|
|
|
11
11
|
static Name = 'todo_read';
|
|
12
12
|
reminderService = new TodoReminderService();
|
|
13
13
|
constructor() {
|
|
14
|
-
super(TodoRead.Name, 'TodoRead', 'Read the current todo list for the session. Returns all todos with their status, priority, and content.',
|
|
14
|
+
super(TodoRead.Name, 'TodoRead', 'Read the current todo list for the session. Returns all todos with their status, priority, and content.', Kind.Think, {
|
|
15
15
|
type: Type.OBJECT,
|
|
16
16
|
properties: {},
|
|
17
17
|
}, true, // isOutputMarkdown
|
|
@@ -70,14 +70,14 @@ export class TodoRead extends BaseTool {
|
|
|
70
70
|
}
|
|
71
71
|
formatTodos(groupedTodos, allTodos) {
|
|
72
72
|
const priorityIndicators = {
|
|
73
|
-
high: '
|
|
74
|
-
medium: '
|
|
75
|
-
low: '
|
|
73
|
+
high: '[HIGH]',
|
|
74
|
+
medium: '[MEDIUM]',
|
|
75
|
+
low: '[LOW]',
|
|
76
76
|
};
|
|
77
77
|
const statusIcons = {
|
|
78
|
-
in_progress: '
|
|
79
|
-
pending: '
|
|
80
|
-
completed: '
|
|
78
|
+
in_progress: '[IN_PROGRESS]',
|
|
79
|
+
pending: '[ ]',
|
|
80
|
+
completed: '[*]',
|
|
81
81
|
};
|
|
82
82
|
let output = '## Todo List\n\n';
|
|
83
83
|
// In Progress section
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"todo-read.js","sourceRoot":"","sources":["../../../src/tools/todo-read.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAc,IAAI,EAAE,MAAM,YAAY,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAI3E,MAAM,OAAO,QAAS,SAAQ,QAAoC;IAChE,MAAM,CAAU,IAAI,GAAG,WAAW,CAAC;IAC3B,eAAe,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAEpD;QACE,KAAK,CACH,QAAQ,CAAC,IAAI,EACb,UAAU,EACV,yGAAyG,EACzG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"todo-read.js","sourceRoot":"","sources":["../../../src/tools/todo-read.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { Type } from '@google/genai';
|
|
7
|
-
import { BaseTool,
|
|
7
|
+
import { BaseTool, Kind } from './tools.js';
|
|
8
8
|
import { TodoArraySchema } from './todo-schemas.js';
|
|
9
9
|
import { TodoStore } from './todo-store.js';
|
|
10
10
|
import { TodoReminderService } from '../services/todo-reminder-service.js';
|
|
@@ -14,7 +14,7 @@ export class TodoWrite extends BaseTool {
|
|
|
14
14
|
static Name = 'todo_write';
|
|
15
15
|
reminderService = new TodoReminderService();
|
|
16
16
|
constructor() {
|
|
17
|
-
super(TodoWrite.Name, 'TodoWrite', 'Create and manage a structured task list for the current coding session. Updates the entire todo list.',
|
|
17
|
+
super(TodoWrite.Name, 'TodoWrite', 'Create and manage a structured task list for the current coding session. Updates the entire todo list.', Kind.Think, {
|
|
18
18
|
type: Type.OBJECT,
|
|
19
19
|
properties: {
|
|
20
20
|
todos: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"todo-write.js","sourceRoot":"","sources":["../../../src/tools/todo-write.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAc,IAAI,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAQ,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAmB,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAMzE,MAAM,OAAO,SAAU,SAAQ,QAAqC;IAClE,MAAM,CAAU,IAAI,GAAG,YAAY,CAAC;IAC5B,eAAe,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAEpD;QACE,KAAK,CACH,SAAS,CAAC,IAAI,EACd,WAAW,EACX,wGAAwG,EACxG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"todo-write.js","sourceRoot":"","sources":["../../../src/tools/todo-write.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
|
|
6
|
+
import { FunctionDeclaration } from '@google/genai';
|
|
7
7
|
import { AnyDeclarativeTool, ToolResult, BaseTool } from './tools.js';
|
|
8
8
|
import { ToolContext } from './tool-context.js';
|
|
9
9
|
import { Config } from '../config/config.js';
|
|
@@ -25,6 +25,11 @@ export declare class ToolRegistry {
|
|
|
25
25
|
*/
|
|
26
26
|
registerTool(tool: AnyDeclarativeTool): void;
|
|
27
27
|
private removeDiscoveredTools;
|
|
28
|
+
/**
|
|
29
|
+
* Removes all tools from a specific MCP server.
|
|
30
|
+
* @param serverName The name of the server to remove tools from.
|
|
31
|
+
*/
|
|
32
|
+
removeMcpToolsByServer(serverName: string): void;
|
|
28
33
|
/**
|
|
29
34
|
* Discovers tools from project (if available and configured).
|
|
30
35
|
* Can be called multiple times to update discovered tools.
|
|
@@ -76,18 +81,4 @@ export declare class ToolRegistry {
|
|
|
76
81
|
*/
|
|
77
82
|
getTool(name: string, context?: ToolContext): AnyDeclarativeTool | undefined;
|
|
78
83
|
}
|
|
79
|
-
/**
|
|
80
|
-
* Sanitizes a schema object in-place to ensure compatibility with the Gemini API.
|
|
81
|
-
*
|
|
82
|
-
* NOTE: This function mutates the passed schema object.
|
|
83
|
-
*
|
|
84
|
-
* It performs the following actions:
|
|
85
|
-
* - Removes the `default` property when `anyOf` is present.
|
|
86
|
-
* - Removes unsupported `format` values from string properties, keeping only 'enum' and 'date-time'.
|
|
87
|
-
* - Recursively sanitizes nested schemas within `anyOf`, `items`, and `properties`.
|
|
88
|
-
* - Handles circular references within the schema to prevent infinite loops.
|
|
89
|
-
*
|
|
90
|
-
* @param schema The schema object to sanitize. It will be modified directly.
|
|
91
|
-
*/
|
|
92
|
-
export declare function sanitizeParameters(schema?: Schema): void;
|
|
93
84
|
export {};
|