@codebolt/agent 5.0.2 → 5.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent.d.ts +86 -0
- package/dist/agent.js +324 -0
- package/dist/builderpattern/agent.js +2 -2
- package/dist/builderpattern/followupquestionbuilder.js +1 -1
- package/dist/builderpattern/llmoutputhandler.js +7 -7
- package/dist/builderpattern/usermessage.d.ts +1 -6
- package/dist/composablepattern/document.js +35 -2
- package/dist/followupquestionbuilder.d.ts +75 -0
- package/dist/followupquestionbuilder.js +197 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +23 -0
- package/dist/llmoutputhandler.d.ts +102 -0
- package/dist/llmoutputhandler.js +452 -0
- package/dist/processor/types/interfaces.d.ts +21 -44
- package/dist/processor-pieces/index.d.ts +3 -0
- package/dist/processor-pieces/index.js +3 -0
- package/dist/processor-pieces/messageModifiers/addToolsListMessageModifier.d.ts +5 -14
- package/dist/processor-pieces/messageModifiers/addToolsListMessageModifier.js +40 -41
- package/dist/processor-pieces/messageModifiers/baseContextMessageModifier.d.ts +13 -5
- package/dist/processor-pieces/messageModifiers/baseContextMessageModifier.js +58 -50
- package/dist/processor-pieces/messageModifiers/baseSystemInstructionMessageModifier.d.ts +8 -6
- package/dist/processor-pieces/messageModifiers/baseSystemInstructionMessageModifier.js +22 -66
- package/dist/processor-pieces/messageModifiers/handleUrlMessageModifier.d.ts +2 -3
- package/dist/processor-pieces/messageModifiers/handleUrlMessageModifier.js +2 -1
- package/dist/processor-pieces/messageModifiers/imageAttachmentMessageModifier.d.ts +2 -3
- package/dist/processor-pieces/messageModifiers/imageAttachmentMessageModifier.js +2 -1
- package/dist/processor-pieces/messageModifiers/toolInjectionModifier.js +4 -1
- package/dist/processor-pieces/messageModifiers/workingDirectoryMessageModifier.d.ts +2 -18
- package/dist/processor-pieces/messageModifiers/workingDirectoryMessageModifier.js +93 -291
- package/dist/processor-pieces/postToolCallProcessors/conversationCompactorModifier.d.ts +18 -0
- package/dist/processor-pieces/postToolCallProcessors/conversationCompactorModifier.js +41 -0
- package/dist/processor-pieces/postToolCallProcessors/index.d.ts +2 -1
- package/dist/processor-pieces/postToolCallProcessors/index.js +5 -0
- package/dist/processor-pieces/preInferenceProcessors/index.d.ts +1 -1
- package/dist/processor-pieces/preInferenceProcessors/index.js +3 -0
- package/dist/processor-pieces/pretoolCallProcessors/index.d.ts +2 -1
- package/dist/processor-pieces/pretoolCallProcessors/index.js +5 -0
- package/dist/processor-pieces/pretoolCallProcessors/toolParameterModifier.d.ts +21 -0
- package/dist/processor-pieces/pretoolCallProcessors/toolParameterModifier.js +32 -0
- package/dist/processor-pieces/pretoolCallProcessors/toolValidationModifier.d.ts +16 -0
- package/dist/processor-pieces/pretoolCallProcessors/toolValidationModifier.js +37 -0
- package/dist/promptbuilder.d.ts +382 -0
- package/dist/promptbuilder.js +805 -0
- package/dist/systemprompt.d.ts +20 -0
- package/dist/systemprompt.js +48 -0
- package/dist/taskInstruction.d.ts +37 -0
- package/dist/taskInstruction.js +57 -0
- package/dist/types/libFunctionTypes.d.ts +13 -19
- package/dist/types/libFunctionTypes.js +3 -0
- package/dist/types/processorTypes.d.ts +8 -8
- package/dist/types/processorTypes.js +6 -23
- package/dist/unified/agent/agent.js +2 -2
- package/dist/unified/agent/codeboltAgent.d.ts +122 -0
- package/dist/unified/agent/codeboltAgent.js +210 -0
- package/dist/unified/base/initialPromptGenerator.js +18 -4
- package/dist/unified/base/responseExecutor.d.ts +3 -2
- package/dist/unified/base/responseExecutor.js +109 -56
- package/dist/unified/index.d.ts +4 -0
- package/dist/unified/index.js +12 -1
- package/dist/usermessage.d.ts +70 -0
- package/dist/usermessage.js +123 -0
- package/package.json +11 -6
- package/dist/local-tools/fileTools.d.ts +0 -26
- package/dist/local-tools/fileTools.js +0 -162
- package/dist/processor-pieces/additionalModifiers/argumentProcessorModifier.d.ts +0 -13
- package/dist/processor-pieces/additionalModifiers/argumentProcessorModifier.js +0 -68
- package/dist/processor-pieces/additionalModifiers/atFileProcessorModifier.d.ts +0 -15
- package/dist/processor-pieces/additionalModifiers/atFileProcessorModifier.js +0 -212
- package/dist/processor-pieces/additionalModifiers/chatCompressionModifier.d.ts +0 -19
- package/dist/processor-pieces/additionalModifiers/chatCompressionModifier.js +0 -110
- package/dist/processor-pieces/additionalModifiers/chatRecordingModifier.d.ts +0 -23
- package/dist/processor-pieces/additionalModifiers/chatRecordingModifier.js +0 -173
- package/dist/processor-pieces/additionalModifiers/coreSystemPromptModifier.d.ts +0 -14
- package/dist/processor-pieces/additionalModifiers/coreSystemPromptModifier.js +0 -93
- package/dist/processor-pieces/additionalModifiers/directoryContextModifier.d.ts +0 -30
- package/dist/processor-pieces/additionalModifiers/directoryContextModifier.js +0 -330
- package/dist/processor-pieces/additionalModifiers/environmentContextModifier.d.ts +0 -26
- package/dist/processor-pieces/additionalModifiers/environmentContextModifier.js +0 -269
- package/dist/processor-pieces/additionalModifiers/fallbackHandlerModifier.d.ts +0 -38
- package/dist/processor-pieces/additionalModifiers/fallbackHandlerModifier.js +0 -217
- package/dist/processor-pieces/additionalModifiers/ideContextModifier.d.ts +0 -34
- package/dist/processor-pieces/additionalModifiers/ideContextModifier.js +0 -147
- package/dist/processor-pieces/additionalModifiers/index.d.ts +0 -12
- package/dist/processor-pieces/additionalModifiers/index.js +0 -28
- package/dist/processor-pieces/additionalModifiers/loopDetectionModifier.d.ts +0 -29
- package/dist/processor-pieces/additionalModifiers/loopDetectionModifier.js +0 -155
- package/dist/processor-pieces/additionalModifiers/memoryImportModifier.d.ts +0 -15
- package/dist/processor-pieces/additionalModifiers/memoryImportModifier.js +0 -129
- package/dist/processor-pieces/additionalModifiers/shellProcessorModifier.d.ts +0 -25
- package/dist/processor-pieces/additionalModifiers/shellProcessorModifier.js +0 -169
- package/dist/processor-pieces/additionalModifiers/toolInjectionModifier.d.ts +0 -20
- package/dist/processor-pieces/additionalModifiers/toolInjectionModifier.js +0 -152
- package/dist/processor-pieces/messageModifiers/addCurrentDirectoryRootFilesModifier.d.ts +0 -7
- package/dist/processor-pieces/messageModifiers/addCurrentDirectoryRootFilesModifier.js +0 -93
- package/dist/processor-pieces/messageModifiers/advancedSystemInstructionMessageModifier.d.ts +0 -9
- package/dist/processor-pieces/messageModifiers/advancedSystemInstructionMessageModifier.js +0 -77
- package/dist/processor-pieces/messageModifiers/chatCompressionModifier.d.ts +0 -19
- package/dist/processor-pieces/messageModifiers/chatCompressionModifier.js +0 -110
- package/dist/processor-pieces/messageModifiers/chatHistoryMessageModifier.example.d.ts +0 -20
- package/dist/processor-pieces/messageModifiers/chatHistoryMessageModifier.example.js +0 -124
- package/dist/processor-pieces/messageModifiers/environmentContext.d.ts +0 -41
- package/dist/processor-pieces/messageModifiers/environmentContext.js +0 -355
- package/dist/processor-pieces/messageModifiers/mentionedFilesModifier.d.ts +0 -23
- package/dist/processor-pieces/messageModifiers/mentionedFilesModifier.js +0 -207
- package/dist/processor-pieces/messageModifiers/simpleMessageModifier.d.ts +0 -7
- package/dist/processor-pieces/messageModifiers/simpleMessageModifier.js +0 -26
- package/dist/processor-pieces/postInference/llmOutputValidityProcessor.d.ts +0 -1
- package/dist/processor-pieces/postInference/llmOutputValidityProcessor.js +0 -2
- package/dist/processor-pieces/postInferenceProcessors/checkForNoToolCall.d.ts +0 -7
- package/dist/processor-pieces/postInferenceProcessors/checkForNoToolCall.js +0 -24
- package/dist/processor-pieces/postToolCall/advancedLoopDetectionProcessor.d.ts +0 -41
- package/dist/processor-pieces/postToolCall/advancedLoopDetectionProcessor.js +0 -197
- package/dist/processor-pieces/postToolCall/chatCompressionProcessor.d.ts +0 -26
- package/dist/processor-pieces/postToolCall/chatCompressionProcessor.js +0 -90
- package/dist/processor-pieces/postToolCall/chatRecordingProcessor.d.ts +0 -81
- package/dist/processor-pieces/postToolCall/chatRecordingProcessor.js +0 -329
- package/dist/processor-pieces/postToolCall/contextManagementProcessor.d.ts +0 -40
- package/dist/processor-pieces/postToolCall/contextManagementProcessor.js +0 -272
- package/dist/processor-pieces/postToolCall/conversationCompactorProcessor.d.ts +0 -49
- package/dist/processor-pieces/postToolCall/conversationCompactorProcessor.js +0 -291
- package/dist/processor-pieces/postToolCall/conversationContinuityProcessor.d.ts +0 -49
- package/dist/processor-pieces/postToolCall/conversationContinuityProcessor.js +0 -293
- package/dist/processor-pieces/postToolCall/followUpConversationProcessor.d.ts +0 -47
- package/dist/processor-pieces/postToolCall/followUpConversationProcessor.js +0 -249
- package/dist/processor-pieces/postToolCall/loopDetectionProcessor.d.ts +0 -30
- package/dist/processor-pieces/postToolCall/loopDetectionProcessor.js +0 -137
- package/dist/processor-pieces/postToolCall/responseValidationProcessor.d.ts +0 -30
- package/dist/processor-pieces/postToolCall/responseValidationProcessor.js +0 -228
- package/dist/processor-pieces/postToolCall/telemetryProcessor.d.ts +0 -99
- package/dist/processor-pieces/postToolCall/telemetryProcessor.js +0 -278
- package/dist/processor-pieces/postToolCall/tokenManagementProcessor.d.ts +0 -37
- package/dist/processor-pieces/postToolCall/tokenManagementProcessor.js +0 -178
- package/dist/processor-pieces/postToolCall/toolExecutionProcessor.d.ts +0 -43
- package/dist/processor-pieces/postToolCall/toolExecutionProcessor.js +0 -207
- package/dist/processor-pieces/preInference/conversationCompactorProcessor.d.ts +0 -52
- package/dist/processor-pieces/preInference/conversationCompactorProcessor.js +0 -264
- package/dist/processor-pieces/preInference/conversationContinuityProcessor.d.ts +0 -49
- package/dist/processor-pieces/preInference/conversationContinuityProcessor.js +0 -293
- package/dist/processor-pieces/preInferenceProcessors/conversationCompaction.d.ts +0 -7
- package/dist/processor-pieces/preInferenceProcessors/conversationCompaction.js +0 -31
- package/dist/processor-pieces/preToolCall/index.d.ts +0 -9
- package/dist/processor-pieces/preToolCall/index.js +0 -18
- package/dist/processor-pieces/preToolCall/localToolInterceptorProcessor.d.ts +0 -58
- package/dist/processor-pieces/preToolCall/localToolInterceptorProcessor.js +0 -444
- package/dist/processor-pieces/preToolCall/toolParameterModifierProcessor.d.ts +0 -44
- package/dist/processor-pieces/preToolCall/toolParameterModifierProcessor.js +0 -367
- package/dist/processor-pieces/preToolCall/toolValidationProcessor.d.ts +0 -58
- package/dist/processor-pieces/preToolCall/toolValidationProcessor.js +0 -391
- package/dist/unified/agent/tool.d.ts +0 -99
- package/dist/unified/agent/tool.js +0 -440
- package/dist/unified/examples/agentExample.d.ts +0 -46
- package/dist/unified/examples/agentExample.js +0 -464
- package/dist/unified/examples/documentationPatternExample.d.ts +0 -10
- package/dist/unified/examples/documentationPatternExample.js +0 -385
- package/dist/unified/examples/followUpProcessorsExample.d.ts +0 -45
- package/dist/unified/examples/followUpProcessorsExample.js +0 -311
- package/dist/unified/examples/orchestratorExample.d.ts +0 -16
- package/dist/unified/examples/orchestratorExample.js +0 -415
- package/dist/unified/examples/preToolCallProcessorsExample.d.ts +0 -36
- package/dist/unified/examples/preToolCallProcessorsExample.js +0 -458
- package/dist/unified/examples/workflowExample.d.ts +0 -12
- package/dist/unified/examples/workflowExample.js +0 -497
- package/dist/unified/orchestrator/orchestrator.d.ts +0 -260
- package/dist/unified/orchestrator/orchestrator.js +0 -519
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.InitialPromptGenerator = void 0;
|
|
4
7
|
exports.createUnifiedMessageProcessor = createUnifiedMessageProcessor;
|
|
5
8
|
const types_1 = require("../types/types");
|
|
9
|
+
const codeboltjs_1 = __importDefault(require("@codebolt/codeboltjs"));
|
|
6
10
|
/**
|
|
7
11
|
* Initial prompt generator that combines message modifiers with unified processing
|
|
8
12
|
*/
|
|
@@ -50,10 +54,20 @@ class InitialPromptGenerator {
|
|
|
50
54
|
// Continue with other modifiers
|
|
51
55
|
}
|
|
52
56
|
}
|
|
53
|
-
createdMessage.message.messages.
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
+
const lastMessage = createdMessage.message.messages[createdMessage.message.messages.length - 1];
|
|
58
|
+
if (!lastMessage || lastMessage.role !== 'system') {
|
|
59
|
+
createdMessage.message.messages.push({
|
|
60
|
+
role: 'assistant',
|
|
61
|
+
content: "Got it. Thanks for the context!"
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
let { todos } = await codeboltjs_1.default.todo.getAllIncompleteTodos();
|
|
65
|
+
if (todos && todos.length == 0) {
|
|
66
|
+
createdMessage.message.messages.push({
|
|
67
|
+
role: 'user',
|
|
68
|
+
content: "<system-reminder>\nThis is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware. If you are working on tasks that would benefit from a todo list please use the TodoWrite tool to create one. If not, please feel free to ignore. Again do not mention this message to the user.\n</system-reminder>"
|
|
69
|
+
});
|
|
70
|
+
}
|
|
57
71
|
createdMessage.message.messages.push({
|
|
58
72
|
role: 'user',
|
|
59
73
|
content: content.trim()
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { AgentResponseExecutor, PostToolCallProcessor, PreToolCallProcessor, ResponseInput, ResponseOutput } from '@codebolt/types/agent';
|
|
2
2
|
export declare class ResponseExecutor implements AgentResponseExecutor {
|
|
3
|
-
private
|
|
3
|
+
private preToolCallProcessors;
|
|
4
4
|
private postToolCallProcessors;
|
|
5
5
|
private completed;
|
|
6
|
+
private finalMessage;
|
|
6
7
|
constructor(options: {
|
|
7
|
-
|
|
8
|
+
preToolCallProcessors: PreToolCallProcessor[];
|
|
8
9
|
postToolCallProcessors: PostToolCallProcessor[];
|
|
9
10
|
});
|
|
10
11
|
executeResponse(input: ResponseInput): Promise<ResponseOutput>;
|
|
@@ -7,15 +7,16 @@ exports.ResponseExecutor = void 0;
|
|
|
7
7
|
const codeboltjs_1 = __importDefault(require("@codebolt/codeboltjs"));
|
|
8
8
|
class ResponseExecutor {
|
|
9
9
|
constructor(options) {
|
|
10
|
-
this.
|
|
10
|
+
this.preToolCallProcessors = [];
|
|
11
11
|
this.postToolCallProcessors = [];
|
|
12
12
|
this.completed = false;
|
|
13
|
-
this.
|
|
13
|
+
this.finalMessage = undefined;
|
|
14
|
+
this.preToolCallProcessors = options.preToolCallProcessors;
|
|
14
15
|
this.postToolCallProcessors = options.postToolCallProcessors;
|
|
15
16
|
}
|
|
16
17
|
async executeResponse(input) {
|
|
17
18
|
let nextMessage = input.nextMessage;
|
|
18
|
-
for (const preToolCallProcessor of this.
|
|
19
|
+
for (const preToolCallProcessor of this.preToolCallProcessors) {
|
|
19
20
|
try {
|
|
20
21
|
// TODO: Extract required properties from input for PreToolCallProcessorInput
|
|
21
22
|
let { nextPrompt, shouldExit } = await preToolCallProcessor.modify({ llmMessageSent: input.actualMessageSentToLLM, rawLLMResponseMessage: input.rawLLMOutput, nextPrompt: input.nextMessage });
|
|
@@ -81,7 +82,8 @@ class ResponseExecutor {
|
|
|
81
82
|
return {
|
|
82
83
|
completed: this.completed,
|
|
83
84
|
nextMessage: nextMessage,
|
|
84
|
-
toolResults: toolResults
|
|
85
|
+
toolResults: toolResults,
|
|
86
|
+
finalMessage: this.finalMessage
|
|
85
87
|
};
|
|
86
88
|
}
|
|
87
89
|
/**
|
|
@@ -107,9 +109,11 @@ class ResponseExecutor {
|
|
|
107
109
|
var _a, _b;
|
|
108
110
|
try {
|
|
109
111
|
let fallBackMessages = [];
|
|
112
|
+
let lastMessageContent;
|
|
110
113
|
for (const contentBlock of llmResponse.choices || []) {
|
|
111
114
|
if (contentBlock.message) {
|
|
112
115
|
if (contentBlock.message.content != null) {
|
|
116
|
+
lastMessageContent = contentBlock.message.content;
|
|
113
117
|
await codeboltjs_1.default.chat.sendMessage(contentBlock.message.content, {});
|
|
114
118
|
}
|
|
115
119
|
}
|
|
@@ -120,77 +124,111 @@ class ResponseExecutor {
|
|
|
120
124
|
let userRejectedToolUse = false;
|
|
121
125
|
const contentBlock = (_a = llmResponse.choices) === null || _a === void 0 ? void 0 : _a[0];
|
|
122
126
|
if (contentBlock && ((_b = contentBlock.message) === null || _b === void 0 ? void 0 : _b.tool_calls)) {
|
|
127
|
+
const toolsToExecute = [];
|
|
128
|
+
// First pass: Parse all tools and identify "attempt_completion"
|
|
123
129
|
for (const tool of contentBlock.message.tool_calls) {
|
|
130
|
+
const { toolInput, toolName, toolUseId } = this.getToolDetail(tool);
|
|
131
|
+
if (toolName.includes("attempt_completion")) {
|
|
132
|
+
taskCompletedBlock = tool;
|
|
133
|
+
this.completed = true;
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
toolsToExecute.push({
|
|
137
|
+
tool,
|
|
138
|
+
toolInput,
|
|
139
|
+
toolName,
|
|
140
|
+
toolUseId,
|
|
141
|
+
waitForPrevious: (toolInput === null || toolInput === void 0 ? void 0 : toolInput.waitForPreviousTools) === true
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
// Second pass: Execute tools sequentially (one by one)
|
|
146
|
+
for (const item of toolsToExecute) {
|
|
124
147
|
try {
|
|
125
|
-
const { toolInput, toolName, toolUseId } = this.getToolDetail(tool);
|
|
126
148
|
if (!userRejectedToolUse) {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
149
|
+
let [serverName] = item.toolName.replace('--', ':').split(':');
|
|
150
|
+
// codebolt.chat.sendMessage(`tool call ${serverName} ${item.toolName} ${item.toolInput}`, {});
|
|
151
|
+
if (serverName == 'subagent') {
|
|
152
|
+
const agentResponse = await codeboltjs_1.default.agent.startAgent(item.toolName.replace("subagent--", ''), item.toolInput.task);
|
|
153
|
+
const [didUserReject, result] = [false, "tool result is successful"];
|
|
154
|
+
let toolResult = this.parseToolResult(item.toolUseId, result);
|
|
155
|
+
// Handle side effects (fallback messages)
|
|
156
|
+
if (toolResult.userMessage) {
|
|
157
|
+
fallBackMessages.push({
|
|
158
|
+
role: "user",
|
|
159
|
+
content: toolResult.userMessage.toString()
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
if (didUserReject) {
|
|
163
|
+
userRejectedToolUse = true;
|
|
164
|
+
}
|
|
165
|
+
toolResults.push({
|
|
166
|
+
role: "tool",
|
|
167
|
+
tool_call_id: toolResult.tool_call_id,
|
|
168
|
+
content: toolResult.content,
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
else if (item.toolName == "codebolt--thread_management") {
|
|
172
|
+
codeboltjs_1.default.chat.sendMessage(JSON.stringify({
|
|
173
|
+
title: item.toolInput.title || item.toolInput.task || 'Background Thread',
|
|
174
|
+
description: item.toolInput.description || item.toolInput.task || '',
|
|
175
|
+
userMessage: item.toolInput.task || item.toolInput.userMessage || '',
|
|
176
|
+
selectedAgent: item.toolInput.selectedAgent,
|
|
177
|
+
isGrouped: item.toolInput.isGrouped,
|
|
178
|
+
groupId: item.toolInput.groupId,
|
|
179
|
+
}));
|
|
180
|
+
const response = await codeboltjs_1.default.thread.createThreadInBackground({
|
|
181
|
+
title: item.toolInput.title || item.toolInput.task || 'Background Thread',
|
|
182
|
+
description: item.toolInput.description || item.toolInput.task || '',
|
|
183
|
+
userMessage: item.toolInput.task || item.toolInput.userMessage || '',
|
|
184
|
+
selectedAgent: item.toolInput.selectedAgent,
|
|
185
|
+
isGrouped: item.toolInput.isGrouped,
|
|
186
|
+
groupId: item.toolInput.groupId,
|
|
187
|
+
});
|
|
188
|
+
toolResults.push({
|
|
189
|
+
role: "tool",
|
|
190
|
+
tool_call_id: item.toolUseId,
|
|
191
|
+
content: JSON.stringify(response),
|
|
192
|
+
});
|
|
130
193
|
}
|
|
131
194
|
else {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
role: "tool",
|
|
139
|
-
tool_call_id: toolResult.tool_call_id,
|
|
140
|
-
content: toolResult.content,
|
|
195
|
+
const [didUserReject, result] = await this.executeTool(item.toolName, item.toolInput);
|
|
196
|
+
let toolResult = this.parseToolResult(item.toolUseId, result);
|
|
197
|
+
if (toolResult.userMessage) {
|
|
198
|
+
fallBackMessages.push({
|
|
199
|
+
role: "user",
|
|
200
|
+
content: toolResult.userMessage.toString()
|
|
141
201
|
});
|
|
142
|
-
if (toolResult.userMessage) {
|
|
143
|
-
fallBackMessages.push({
|
|
144
|
-
role: "user",
|
|
145
|
-
content: toolResult.userMessage.toString()
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
if (didUserReject) {
|
|
149
|
-
userRejectedToolUse = true;
|
|
150
|
-
}
|
|
151
202
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
const [didUserReject, result] = await this.executeTool(toolName, toolInput);
|
|
155
|
-
// console.log("Tool result: ", result);
|
|
156
|
-
// toolResults.push(this.parseToolResult(toolUseId, result));
|
|
157
|
-
let toolResult = this.parseToolResult(toolUseId, result);
|
|
158
|
-
toolResults.push({
|
|
159
|
-
role: "tool",
|
|
160
|
-
tool_call_id: toolResult.tool_call_id,
|
|
161
|
-
content: toolResult.content,
|
|
162
|
-
});
|
|
163
|
-
if (toolResult.userMessage) {
|
|
164
|
-
fallBackMessages.push({
|
|
165
|
-
role: "user",
|
|
166
|
-
content: toolResult.userMessage.toString()
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
if (didUserReject) {
|
|
170
|
-
userRejectedToolUse = true;
|
|
171
|
-
}
|
|
203
|
+
if (didUserReject) {
|
|
204
|
+
userRejectedToolUse = true;
|
|
172
205
|
}
|
|
206
|
+
toolResults.push({
|
|
207
|
+
role: "tool",
|
|
208
|
+
tool_call_id: toolResult.tool_call_id,
|
|
209
|
+
content: toolResult.content,
|
|
210
|
+
});
|
|
173
211
|
}
|
|
174
212
|
}
|
|
175
213
|
else {
|
|
176
|
-
let toolResult = this.parseToolResult(toolUseId, "Skipping tool execution due to previous tool user rejection.");
|
|
177
|
-
toolResults.push({
|
|
178
|
-
role: "tool",
|
|
179
|
-
tool_call_id: toolResult.tool_call_id,
|
|
180
|
-
content: toolResult.content,
|
|
181
|
-
});
|
|
214
|
+
let toolResult = this.parseToolResult(item.toolUseId, "Skipping tool execution due to previous tool user rejection.");
|
|
182
215
|
if (toolResult.userMessage) {
|
|
183
216
|
fallBackMessages.push({
|
|
184
217
|
role: "user",
|
|
185
218
|
content: toolResult.userMessage.toString()
|
|
186
219
|
});
|
|
187
220
|
}
|
|
221
|
+
toolResults.push({
|
|
222
|
+
role: "tool",
|
|
223
|
+
tool_call_id: toolResult.tool_call_id,
|
|
224
|
+
content: toolResult.content,
|
|
225
|
+
});
|
|
188
226
|
}
|
|
189
227
|
}
|
|
190
228
|
catch (error) {
|
|
191
229
|
toolResults.push({
|
|
192
230
|
role: "tool",
|
|
193
|
-
tool_call_id: tool.id,
|
|
231
|
+
tool_call_id: item.tool.id,
|
|
194
232
|
content: String(error),
|
|
195
233
|
});
|
|
196
234
|
}
|
|
@@ -198,9 +236,18 @@ class ResponseExecutor {
|
|
|
198
236
|
}
|
|
199
237
|
else {
|
|
200
238
|
this.completed = true;
|
|
239
|
+
// Set final message from agent's last text response when completing without tool calls
|
|
240
|
+
if (lastMessageContent) {
|
|
241
|
+
this.finalMessage = lastMessageContent;
|
|
242
|
+
}
|
|
201
243
|
}
|
|
202
244
|
if (taskCompletedBlock) {
|
|
203
|
-
|
|
245
|
+
const completionArgs = JSON.parse(taskCompletedBlock.function.arguments || "{}");
|
|
246
|
+
// Capture the final message from attempt_completion
|
|
247
|
+
if (completionArgs.result) {
|
|
248
|
+
this.finalMessage = completionArgs.result;
|
|
249
|
+
}
|
|
250
|
+
let [_, result] = await this.executeTool(taskCompletedBlock.function.name, completionArgs);
|
|
204
251
|
if (result === "") {
|
|
205
252
|
// this.completed = true;
|
|
206
253
|
result = "The user is satisfied with the result.";
|
|
@@ -241,6 +288,12 @@ class ResponseExecutor {
|
|
|
241
288
|
// console.log("Toolbox name: ", toolboxName, "Actual tool name: ", actualToolName);
|
|
242
289
|
const { data } = await codeboltjs_1.default.mcp.executeTool(toolboxName, actualToolName, toolInput);
|
|
243
290
|
// console.log("Tool result: ", data);
|
|
291
|
+
// Handle the case where data is an array [didUserReject, content]
|
|
292
|
+
if (Array.isArray(data) && data.length >= 2) {
|
|
293
|
+
const [didUserReject, content] = data;
|
|
294
|
+
return [Boolean(didUserReject), content];
|
|
295
|
+
}
|
|
296
|
+
// If data is not in the expected array format, return it as-is
|
|
244
297
|
return [false, data];
|
|
245
298
|
}
|
|
246
299
|
/**
|
|
@@ -271,13 +324,13 @@ class ResponseExecutor {
|
|
|
271
324
|
};
|
|
272
325
|
}
|
|
273
326
|
setPreToolCallProcessors(processors) {
|
|
274
|
-
this.
|
|
327
|
+
this.preToolCallProcessors = processors;
|
|
275
328
|
}
|
|
276
329
|
setPostToolCallProcessors(processors) {
|
|
277
330
|
this.postToolCallProcessors = processors;
|
|
278
331
|
}
|
|
279
332
|
getPreToolCallProcessors() {
|
|
280
|
-
return this.
|
|
333
|
+
return this.preToolCallProcessors;
|
|
281
334
|
}
|
|
282
335
|
getPostToolCallProcessors() {
|
|
283
336
|
return this.postToolCallProcessors;
|
package/dist/unified/index.d.ts
CHANGED
|
@@ -14,5 +14,9 @@ export { createDefaultMessageProcessor } from './base/create/createInitialPrompt
|
|
|
14
14
|
export { InitialPromptGenerator } from './base/initialPromptGenerator';
|
|
15
15
|
export { AgentStep } from './base/agentStep';
|
|
16
16
|
export { ResponseExecutor } from './base/responseExecutor';
|
|
17
|
+
export { Agent } from './agent/agent';
|
|
18
|
+
export { CodeboltAgent, createCodeboltAgent, type CodeboltAgentConfig } from './agent/codeboltAgent';
|
|
19
|
+
export { Tool, createTool } from './agent/tools';
|
|
20
|
+
export { Workflow } from './agent/workflow';
|
|
17
21
|
export { type OpenAIMessage, type OpenAITool, type ToolResult, type CodeboltAPI, type AgentExecutionResult, type StreamChunk, type StreamCallback } from './types/libTypes';
|
|
18
22
|
export { type LLMConfig } from './types/libTypes';
|
package/dist/unified/index.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* The framework is designed to be modular, extensible, and easy to use.
|
|
11
11
|
*/
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.ResponseExecutor = exports.AgentStep = exports.InitialPromptGenerator = exports.createDefaultMessageProcessor = exports.UnifiedToolExecutionError = exports.UnifiedResponseExecutionError = exports.UnifiedStepExecutionError = exports.UnifiedMessageProcessingError = exports.UnifiedAgentError = void 0;
|
|
13
|
+
exports.Workflow = exports.createTool = exports.Tool = exports.createCodeboltAgent = exports.CodeboltAgent = exports.Agent = exports.ResponseExecutor = exports.AgentStep = exports.InitialPromptGenerator = exports.createDefaultMessageProcessor = exports.UnifiedToolExecutionError = exports.UnifiedResponseExecutionError = exports.UnifiedStepExecutionError = exports.UnifiedMessageProcessingError = exports.UnifiedAgentError = void 0;
|
|
14
14
|
// Error types
|
|
15
15
|
var types_1 = require("./types/types");
|
|
16
16
|
Object.defineProperty(exports, "UnifiedAgentError", { enumerable: true, get: function () { return types_1.UnifiedAgentError; } });
|
|
@@ -27,6 +27,17 @@ var agentStep_1 = require("./base/agentStep");
|
|
|
27
27
|
Object.defineProperty(exports, "AgentStep", { enumerable: true, get: function () { return agentStep_1.AgentStep; } });
|
|
28
28
|
var responseExecutor_1 = require("./base/responseExecutor");
|
|
29
29
|
Object.defineProperty(exports, "ResponseExecutor", { enumerable: true, get: function () { return responseExecutor_1.ResponseExecutor; } });
|
|
30
|
+
// Agent framework components
|
|
31
|
+
var agent_1 = require("./agent/agent");
|
|
32
|
+
Object.defineProperty(exports, "Agent", { enumerable: true, get: function () { return agent_1.Agent; } });
|
|
33
|
+
var codeboltAgent_1 = require("./agent/codeboltAgent");
|
|
34
|
+
Object.defineProperty(exports, "CodeboltAgent", { enumerable: true, get: function () { return codeboltAgent_1.CodeboltAgent; } });
|
|
35
|
+
Object.defineProperty(exports, "createCodeboltAgent", { enumerable: true, get: function () { return codeboltAgent_1.createCodeboltAgent; } });
|
|
36
|
+
var tools_1 = require("./agent/tools");
|
|
37
|
+
Object.defineProperty(exports, "Tool", { enumerable: true, get: function () { return tools_1.Tool; } });
|
|
38
|
+
Object.defineProperty(exports, "createTool", { enumerable: true, get: function () { return tools_1.createTool; } });
|
|
39
|
+
var workflow_1 = require("./agent/workflow");
|
|
40
|
+
Object.defineProperty(exports, "Workflow", { enumerable: true, get: function () { return workflow_1.Workflow; } });
|
|
30
41
|
// Workflow step factories
|
|
31
42
|
// Orchestrator system
|
|
32
43
|
// export {
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { UserMessageContent } from "./types/libFunctionTypes";
|
|
2
|
+
import type { Agent } from "./types/commonTypes";
|
|
3
|
+
import type { Message } from "./types/InternalTypes";
|
|
4
|
+
/**
|
|
5
|
+
* Class that processes and manages user messages.
|
|
6
|
+
* Handles converting messages to prompts and extracting mentioned entities.
|
|
7
|
+
*/
|
|
8
|
+
declare class UserMessage {
|
|
9
|
+
/** The message content and metadata */
|
|
10
|
+
message: Message;
|
|
11
|
+
/** Whether to override the default prompt generation */
|
|
12
|
+
promptOverride: boolean;
|
|
13
|
+
/** Array of content blocks for the user message */
|
|
14
|
+
userMessages: UserMessageContent[];
|
|
15
|
+
/** List of MCP tools mentioned in the message */
|
|
16
|
+
mentionedMCPs: {
|
|
17
|
+
toolbox: string;
|
|
18
|
+
toolName: string;
|
|
19
|
+
}[];
|
|
20
|
+
/**
|
|
21
|
+
* Creates a new UserMessage instance.
|
|
22
|
+
*
|
|
23
|
+
* @param message - The message content and metadata
|
|
24
|
+
* @param promptOverride - Whether to override default prompt generation
|
|
25
|
+
*/
|
|
26
|
+
constructor(message: Message, promptOverride?: boolean);
|
|
27
|
+
/**
|
|
28
|
+
* Gets files mentioned in the message.
|
|
29
|
+
* Currently a placeholder for implementation.
|
|
30
|
+
*/
|
|
31
|
+
getFiles(): void;
|
|
32
|
+
/**
|
|
33
|
+
* Converts the user message to a prompt format.
|
|
34
|
+
*
|
|
35
|
+
* @param bAttachFiles - Whether to attach file contents
|
|
36
|
+
* @param bAttachImages - Whether to attach images
|
|
37
|
+
* @param bAttachEnvironment - Whether to attach environment details
|
|
38
|
+
* @returns Promise with an array of content blocks for the prompt
|
|
39
|
+
*/
|
|
40
|
+
toPrompt(bAttachFiles?: boolean, bAttachImages?: boolean, bAttachEnvironment?: boolean, supportRemix?: boolean): Promise<UserMessageContent[]>;
|
|
41
|
+
/**
|
|
42
|
+
* Gets agents mentioned in the message.
|
|
43
|
+
*
|
|
44
|
+
* @returns Array of agent objects
|
|
45
|
+
*/
|
|
46
|
+
getMentionedAgents(): Agent[];
|
|
47
|
+
/**
|
|
48
|
+
* Gets MCP tools mentioned in the message.
|
|
49
|
+
*
|
|
50
|
+
* @returns Array of MCP tool names
|
|
51
|
+
*/
|
|
52
|
+
getMentionedMcps(): {
|
|
53
|
+
toolbox: string;
|
|
54
|
+
toolName: string;
|
|
55
|
+
}[];
|
|
56
|
+
/**
|
|
57
|
+
* Gets MCP tools in a format suitable for the LLM.
|
|
58
|
+
*
|
|
59
|
+
* @returns Promise with an array of MCP tools
|
|
60
|
+
*/
|
|
61
|
+
getMentionedMcpsTools(): Promise<any[] | undefined>;
|
|
62
|
+
/**
|
|
63
|
+
* Gets environment details for the current working directory.
|
|
64
|
+
*
|
|
65
|
+
* @param cwd - The current working directory path
|
|
66
|
+
* @returns Promise with a string containing environment details
|
|
67
|
+
*/
|
|
68
|
+
private getEnvironmentDetail;
|
|
69
|
+
}
|
|
70
|
+
export { UserMessage };
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.UserMessage = void 0;
|
|
7
|
+
const codeboltjs_1 = __importDefault(require("@codebolt/codeboltjs"));
|
|
8
|
+
const { fs: cbfs, project, mcp } = codeboltjs_1.default;
|
|
9
|
+
// All interfaces moved to appropriate type files
|
|
10
|
+
/**
|
|
11
|
+
* Class that processes and manages user messages.
|
|
12
|
+
* Handles converting messages to prompts and extracting mentioned entities.
|
|
13
|
+
*/
|
|
14
|
+
class UserMessage {
|
|
15
|
+
/**
|
|
16
|
+
* Creates a new UserMessage instance.
|
|
17
|
+
*
|
|
18
|
+
* @param message - The message content and metadata
|
|
19
|
+
* @param promptOverride - Whether to override default prompt generation
|
|
20
|
+
*/
|
|
21
|
+
constructor(message, promptOverride = false) {
|
|
22
|
+
/**
|
|
23
|
+
* Gets environment details for the current working directory.
|
|
24
|
+
*
|
|
25
|
+
* @param cwd - The current working directory path
|
|
26
|
+
* @returns Promise with a string containing environment details
|
|
27
|
+
*/
|
|
28
|
+
this.getEnvironmentDetail = async (cwd) => {
|
|
29
|
+
let details = "";
|
|
30
|
+
const { success, result } = await cbfs.listFile(cwd, true);
|
|
31
|
+
details += `\n\n# Current Working Directory (${cwd}) Files\n${result}
|
|
32
|
+
? "\n(Note: Only top-level contents shown for Desktop by default. Use list_files to explore further if necessary.)"
|
|
33
|
+
: ""
|
|
34
|
+
}`;
|
|
35
|
+
return `<environment_details>\n${details.trim()}\n</environment_details>`;
|
|
36
|
+
};
|
|
37
|
+
this.message = message;
|
|
38
|
+
this.promptOverride = promptOverride;
|
|
39
|
+
this.userMessages = [];
|
|
40
|
+
this.mentionedMCPs = message.mentionedMCPs || [];
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Gets files mentioned in the message.
|
|
44
|
+
* Currently a placeholder for implementation.
|
|
45
|
+
*/
|
|
46
|
+
getFiles() {
|
|
47
|
+
// Implementation to be added
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Converts the user message to a prompt format.
|
|
51
|
+
*
|
|
52
|
+
* @param bAttachFiles - Whether to attach file contents
|
|
53
|
+
* @param bAttachImages - Whether to attach images
|
|
54
|
+
* @param bAttachEnvironment - Whether to attach environment details
|
|
55
|
+
* @returns Promise with an array of content blocks for the prompt
|
|
56
|
+
*/
|
|
57
|
+
async toPrompt(bAttachFiles = true, bAttachImages = true, bAttachEnvironment = true, supportRemix = true) {
|
|
58
|
+
var _a;
|
|
59
|
+
if (bAttachFiles) {
|
|
60
|
+
if (this.promptOverride) {
|
|
61
|
+
// Use a rendering engine
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
let finalPrompt = `
|
|
65
|
+
The user has sent the following query:
|
|
66
|
+
<user_query> ${this.message.userMessage} </user_query>.
|
|
67
|
+
`;
|
|
68
|
+
if ((_a = this.message.mentionedFiles) === null || _a === void 0 ? void 0 : _a.length) {
|
|
69
|
+
finalPrompt += `The Attached files are:`;
|
|
70
|
+
for (const file of this.message.mentionedFiles) {
|
|
71
|
+
let filedata = await cbfs.readFile(file);
|
|
72
|
+
finalPrompt += `File Name: ${file}, File Path: ${file}, Filedata: ${filedata}`;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
this.userMessages.push({ type: "text", text: finalPrompt });
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
if (bAttachEnvironment) {
|
|
79
|
+
let { projectPath } = await project.getProjectPath();
|
|
80
|
+
if (projectPath) {
|
|
81
|
+
const environmentDetail = await this.getEnvironmentDetail(projectPath);
|
|
82
|
+
this.userMessages.push({ type: "text", text: environmentDetail });
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
if (supportRemix) {
|
|
86
|
+
if (this.message.remixPrompt)
|
|
87
|
+
this.userMessages.push({ type: "text", text: this.message.remixPrompt });
|
|
88
|
+
}
|
|
89
|
+
return this.userMessages;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Gets agents mentioned in the message.
|
|
93
|
+
*
|
|
94
|
+
* @returns Array of agent objects
|
|
95
|
+
*/
|
|
96
|
+
getMentionedAgents() {
|
|
97
|
+
//TODO : get config in tool format if neede
|
|
98
|
+
return this.message.mentionedAgents || [];
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Gets MCP tools mentioned in the message.
|
|
102
|
+
*
|
|
103
|
+
* @returns Array of MCP tool names
|
|
104
|
+
*/
|
|
105
|
+
getMentionedMcps() {
|
|
106
|
+
return this.message.mentionedMCPs || [];
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Gets MCP tools in a format suitable for the LLM.
|
|
110
|
+
*
|
|
111
|
+
* @returns Promise with an array of MCP tools
|
|
112
|
+
*/
|
|
113
|
+
async getMentionedMcpsTools() {
|
|
114
|
+
if (this.mentionedMCPs.length > 0) {
|
|
115
|
+
const { data } = await mcp.getTools(this.mentionedMCPs);
|
|
116
|
+
return data;
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
return [];
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
exports.UserMessage = UserMessage;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codebolt/agent",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.7",
|
|
4
4
|
"description": "CodeBolt Agent utilities for building and managing AI agents",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -30,19 +30,21 @@
|
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"js-yaml": "^4.1.0",
|
|
32
32
|
"zod": "^3.22.4",
|
|
33
|
-
"@codebolt/types": "
|
|
33
|
+
"@codebolt/types": "5.0.7"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
|
-
"@codebolt/codeboltjs": "5.0.
|
|
36
|
+
"@codebolt/codeboltjs": "5.0.7"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@types/js-yaml": "^4.0.9",
|
|
40
40
|
"@types/node": "^20.14.2",
|
|
41
41
|
"@types/uri-templates": "^0.1.34",
|
|
42
42
|
"@types/ws": "^8.5.10",
|
|
43
|
+
"typedoc": "0.28.16",
|
|
44
|
+
"typedoc-plugin-markdown": "4.9.0",
|
|
43
45
|
"typescript": "^5.4.5",
|
|
44
|
-
"@codebolt/
|
|
45
|
-
"@codebolt/
|
|
46
|
+
"@codebolt/types": "5.0.7",
|
|
47
|
+
"@codebolt/codeboltjs": "5.0.7"
|
|
46
48
|
},
|
|
47
49
|
"exports": {
|
|
48
50
|
"./builder": {
|
|
@@ -71,6 +73,9 @@
|
|
|
71
73
|
"clean": "rm -rf dist",
|
|
72
74
|
"dev": "tsc --watch",
|
|
73
75
|
"test": "echo \"No tests yet, but build passes\" && exit 0",
|
|
74
|
-
"lint:test": "eslint src/**/*.ts && tsc --noEmit"
|
|
76
|
+
"lint:test": "eslint src/**/*.ts && tsc --noEmit",
|
|
77
|
+
"docs": "node script/gen-docusaurus-agent-types.js",
|
|
78
|
+
"docs:clean": "node script/gen-docusaurus-agent-types.js --clean",
|
|
79
|
+
"docs:watch": "node script/gen-docusaurus-agent-types.js --watch"
|
|
75
80
|
}
|
|
76
81
|
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { BaseTool } from '../processor';
|
|
2
|
-
export declare class FileReadTool extends BaseTool {
|
|
3
|
-
constructor();
|
|
4
|
-
execute(params: any, abortSignal?: AbortSignal): Promise<string>;
|
|
5
|
-
protected validateParameters(params: any): boolean;
|
|
6
|
-
}
|
|
7
|
-
export declare class FileWriteTool extends BaseTool {
|
|
8
|
-
constructor();
|
|
9
|
-
execute(params: any, abortSignal?: AbortSignal): Promise<string>;
|
|
10
|
-
protected validateParameters(params: any): boolean;
|
|
11
|
-
}
|
|
12
|
-
export declare class FileDeleteTool extends BaseTool {
|
|
13
|
-
constructor();
|
|
14
|
-
execute(params: any, abortSignal?: AbortSignal): Promise<string>;
|
|
15
|
-
protected validateParameters(params: any): boolean;
|
|
16
|
-
}
|
|
17
|
-
export declare class FileMoveTool extends BaseTool {
|
|
18
|
-
constructor();
|
|
19
|
-
execute(params: any, abortSignal?: AbortSignal): Promise<string>;
|
|
20
|
-
protected validateParameters(params: any): boolean;
|
|
21
|
-
}
|
|
22
|
-
export declare class FileCopyTool extends BaseTool {
|
|
23
|
-
constructor();
|
|
24
|
-
execute(params: any, abortSignal?: AbortSignal): Promise<string>;
|
|
25
|
-
protected validateParameters(params: any): boolean;
|
|
26
|
-
}
|