@codebolt/agent 1.2.1 → 2.2.3
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 +157 -66
- package/dist/{agent.js → builderpattern/agent.js} +2 -2
- package/dist/{followupquestionbuilder.d.ts → builderpattern/followupquestionbuilder.d.ts} +1 -1
- package/dist/{followupquestionbuilder.js → builderpattern/followupquestionbuilder.js} +1 -1
- package/dist/{index.d.ts → builderpattern/index.d.ts} +3 -3
- package/dist/{llmoutputhandler.d.ts → builderpattern/llmoutputhandler.d.ts} +1 -1
- package/dist/{llmoutputhandler.js → builderpattern/llmoutputhandler.js} +7 -7
- package/dist/{promptbuilder.d.ts → builderpattern/promptbuilder.d.ts} +3 -3
- package/dist/{taskInstruction.d.ts → builderpattern/taskInstruction.d.ts} +2 -2
- package/dist/{usermessage.d.ts → builderpattern/usermessage.d.ts} +9 -4
- package/dist/composablepattern/agent.d.ts +169 -0
- package/dist/composablepattern/agent.js +598 -0
- package/dist/composablepattern/codebolt-storage.d.ts +67 -0
- package/dist/composablepattern/codebolt-storage.js +320 -0
- package/dist/composablepattern/document.d.ts +149 -0
- package/dist/composablepattern/document.js +372 -0
- package/dist/composablepattern/examples/codebolt-integration-example.d.ts +12 -0
- package/dist/composablepattern/examples/codebolt-integration-example.js +218 -0
- package/dist/composablepattern/examples/codebolt-storage-example.d.ts +40 -0
- package/dist/composablepattern/examples/codebolt-storage-example.js +223 -0
- package/dist/composablepattern/examples/custom-steps-example.d.ts +20 -0
- package/dist/composablepattern/examples/custom-steps-example.js +455 -0
- package/dist/composablepattern/examples/document-agent.d.ts +17 -0
- package/dist/composablepattern/examples/document-agent.js +107 -0
- package/dist/composablepattern/examples/simple-codebolt-integration.d.ts +8 -0
- package/dist/composablepattern/examples/simple-codebolt-integration.js +164 -0
- package/dist/composablepattern/examples/weather-agent.d.ts +18 -0
- package/dist/composablepattern/examples/weather-agent.js +86 -0
- package/dist/composablepattern/examples/workflow-example.d.ts +12 -0
- package/dist/composablepattern/examples/workflow-example.js +463 -0
- package/dist/composablepattern/index.d.ts +63 -0
- package/dist/composablepattern/index.js +115 -0
- package/dist/composablepattern/memory.d.ts +89 -0
- package/dist/composablepattern/memory.js +141 -0
- package/dist/composablepattern/tool.d.ts +84 -0
- package/dist/composablepattern/tool.js +260 -0
- package/dist/composablepattern/types.d.ts +194 -0
- package/dist/composablepattern/types.js +6 -0
- package/dist/composablepattern/user-context.d.ts +214 -0
- package/dist/composablepattern/user-context.js +275 -0
- package/dist/composablepattern/workflow.d.ts +388 -0
- package/dist/composablepattern/workflow.js +562 -0
- package/dist/local-tools/fileTools.d.ts +26 -0
- package/dist/local-tools/fileTools.js +162 -0
- package/dist/processor/agent/agentStep.d.ts +49 -0
- package/dist/processor/agent/agentStep.js +241 -0
- package/dist/processor/agent/toolExecutor.d.ts +19 -0
- package/dist/processor/agent/toolExecutor.js +90 -0
- package/dist/processor/index.d.ts +7 -0
- package/dist/processor/index.js +36 -0
- package/dist/processor/messageModifiers/baseMessageModifier.d.ts +20 -0
- package/dist/processor/messageModifiers/baseMessageModifier.js +55 -0
- package/dist/processor/processors/baseProcessor.d.ts +14 -0
- package/dist/processor/processors/baseProcessor.js +29 -0
- package/dist/processor/tools/baseTool.d.ts +10 -0
- package/dist/processor/tools/baseTool.js +20 -0
- package/dist/processor/tools/toolList.d.ts +9 -0
- package/dist/processor/tools/toolList.js +22 -0
- package/dist/processor/types/interfaces.d.ts +117 -0
- package/dist/processor/types/interfaces.js +2 -0
- package/dist/processor-pieces/additionalModifiers/argumentProcessorModifier.d.ts +13 -0
- package/dist/processor-pieces/additionalModifiers/argumentProcessorModifier.js +68 -0
- package/dist/processor-pieces/additionalModifiers/atFileProcessorModifier.d.ts +15 -0
- package/dist/processor-pieces/additionalModifiers/atFileProcessorModifier.js +212 -0
- package/dist/processor-pieces/additionalModifiers/chatCompressionModifier.d.ts +19 -0
- package/dist/processor-pieces/additionalModifiers/chatCompressionModifier.js +110 -0
- package/dist/processor-pieces/additionalModifiers/chatRecordingModifier.d.ts +23 -0
- package/dist/processor-pieces/additionalModifiers/chatRecordingModifier.js +173 -0
- package/dist/processor-pieces/additionalModifiers/coreSystemPromptModifier.d.ts +14 -0
- package/dist/processor-pieces/additionalModifiers/coreSystemPromptModifier.js +93 -0
- package/dist/processor-pieces/additionalModifiers/directoryContextModifier.d.ts +30 -0
- package/dist/processor-pieces/additionalModifiers/directoryContextModifier.js +330 -0
- package/dist/processor-pieces/additionalModifiers/environmentContextModifier.d.ts +26 -0
- package/dist/processor-pieces/additionalModifiers/environmentContextModifier.js +269 -0
- package/dist/processor-pieces/additionalModifiers/fallbackHandlerModifier.d.ts +38 -0
- package/dist/processor-pieces/additionalModifiers/fallbackHandlerModifier.js +217 -0
- package/dist/processor-pieces/additionalModifiers/ideContextModifier.d.ts +34 -0
- package/dist/processor-pieces/additionalModifiers/ideContextModifier.js +147 -0
- package/dist/processor-pieces/additionalModifiers/index.d.ts +12 -0
- package/dist/processor-pieces/additionalModifiers/index.js +28 -0
- package/dist/processor-pieces/additionalModifiers/loopDetectionModifier.d.ts +29 -0
- package/dist/processor-pieces/additionalModifiers/loopDetectionModifier.js +155 -0
- package/dist/processor-pieces/additionalModifiers/memoryImportModifier.d.ts +15 -0
- package/dist/processor-pieces/additionalModifiers/memoryImportModifier.js +129 -0
- package/dist/processor-pieces/additionalModifiers/shellProcessorModifier.d.ts +25 -0
- package/dist/processor-pieces/additionalModifiers/shellProcessorModifier.js +169 -0
- package/dist/processor-pieces/additionalModifiers/toolInjectionModifier.d.ts +20 -0
- package/dist/processor-pieces/additionalModifiers/toolInjectionModifier.js +152 -0
- package/dist/processor-pieces/base/baseMessageModifier.d.ts +12 -0
- package/dist/processor-pieces/base/baseMessageModifier.js +15 -0
- package/dist/processor-pieces/base/basePostInferenceProcessor.d.ts +13 -0
- package/dist/processor-pieces/base/basePostInferenceProcessor.js +18 -0
- package/dist/processor-pieces/base/basePostToolCallProcessor.d.ts +15 -0
- package/dist/processor-pieces/base/basePostToolCallProcessor.js +25 -0
- package/dist/processor-pieces/base/basePreInferenceProcessor.d.ts +12 -0
- package/dist/processor-pieces/base/basePreInferenceProcessor.js +17 -0
- package/dist/processor-pieces/base/basePreToolCallProcessor.d.ts +18 -0
- package/dist/processor-pieces/base/basePreToolCallProcessor.js +66 -0
- package/dist/processor-pieces/base/index.d.ts +9 -0
- package/dist/processor-pieces/base/index.js +18 -0
- package/dist/processor-pieces/index.d.ts +1 -0
- package/dist/processor-pieces/index.js +59 -0
- package/dist/processor-pieces/messageModifiers/addCurrentDirectoryRootFilesModifier.d.ts +7 -0
- package/dist/processor-pieces/messageModifiers/addCurrentDirectoryRootFilesModifier.js +93 -0
- package/dist/processor-pieces/messageModifiers/addToolsListMessageModifier.d.ts +31 -0
- package/dist/processor-pieces/messageModifiers/addToolsListMessageModifier.js +145 -0
- package/dist/processor-pieces/messageModifiers/advancedSystemInstructionMessageModifier.d.ts +9 -0
- package/dist/processor-pieces/messageModifiers/advancedSystemInstructionMessageModifier.js +77 -0
- package/dist/processor-pieces/messageModifiers/argumentProcessorModifier.d.ts +13 -0
- package/dist/processor-pieces/messageModifiers/argumentProcessorModifier.js +68 -0
- package/dist/processor-pieces/messageModifiers/atFileProcessorModifier.d.ts +25 -0
- package/dist/processor-pieces/messageModifiers/atFileProcessorModifier.js +453 -0
- package/dist/processor-pieces/messageModifiers/baseContextMessageModifier.d.ts +7 -0
- package/dist/processor-pieces/messageModifiers/baseContextMessageModifier.js +67 -0
- package/dist/processor-pieces/messageModifiers/baseSystemInstructionMessageModifier.d.ts +9 -0
- package/dist/processor-pieces/messageModifiers/baseSystemInstructionMessageModifier.js +90 -0
- package/dist/processor-pieces/messageModifiers/chatCompressionModifier.d.ts +19 -0
- package/dist/processor-pieces/messageModifiers/chatCompressionModifier.js +110 -0
- package/dist/processor-pieces/messageModifiers/chatHistoryMessageModifier.d.ts +18 -0
- package/dist/processor-pieces/messageModifiers/chatHistoryMessageModifier.example.d.ts +20 -0
- package/dist/processor-pieces/messageModifiers/chatHistoryMessageModifier.example.js +124 -0
- package/dist/processor-pieces/messageModifiers/chatHistoryMessageModifier.js +104 -0
- package/dist/processor-pieces/messageModifiers/chatRecordingModifier.d.ts +23 -0
- package/dist/processor-pieces/messageModifiers/chatRecordingModifier.js +173 -0
- package/dist/processor-pieces/messageModifiers/coreSystemPromptModifier.d.ts +14 -0
- package/dist/processor-pieces/messageModifiers/coreSystemPromptModifier.js +130 -0
- package/dist/processor-pieces/messageModifiers/directoryContextModifier.d.ts +36 -0
- package/dist/processor-pieces/messageModifiers/directoryContextModifier.js +418 -0
- package/dist/processor-pieces/messageModifiers/environmentContext.d.ts +41 -0
- package/dist/processor-pieces/messageModifiers/environmentContext.js +355 -0
- package/dist/processor-pieces/messageModifiers/environmentContextModifier.d.ts +26 -0
- package/dist/processor-pieces/messageModifiers/environmentContextModifier.js +260 -0
- package/dist/processor-pieces/messageModifiers/handleUrlMessageModifier.d.ts +13 -0
- package/dist/processor-pieces/messageModifiers/handleUrlMessageModifier.js +59 -0
- package/dist/processor-pieces/messageModifiers/ideContextModifier.d.ts +34 -0
- package/dist/processor-pieces/messageModifiers/ideContextModifier.js +157 -0
- package/dist/processor-pieces/messageModifiers/imageAttachmentMessageModifier.d.ts +19 -0
- package/dist/processor-pieces/messageModifiers/imageAttachmentMessageModifier.js +221 -0
- package/dist/processor-pieces/messageModifiers/index.d.ts +11 -0
- package/dist/processor-pieces/messageModifiers/index.js +26 -0
- package/dist/processor-pieces/messageModifiers/memoryImportModifier.d.ts +15 -0
- package/dist/processor-pieces/messageModifiers/memoryImportModifier.js +129 -0
- package/dist/processor-pieces/messageModifiers/mentionedFilesModifier.d.ts +23 -0
- package/dist/processor-pieces/messageModifiers/mentionedFilesModifier.js +207 -0
- package/dist/processor-pieces/messageModifiers/simpleMessageModifier.d.ts +7 -0
- package/dist/processor-pieces/messageModifiers/simpleMessageModifier.js +26 -0
- package/dist/processor-pieces/messageModifiers/toolInjectionModifier.d.ts +20 -0
- package/dist/processor-pieces/messageModifiers/toolInjectionModifier.js +152 -0
- package/dist/processor-pieces/messageModifiers/workingDirectoryMessageModifier.d.ts +38 -0
- package/dist/processor-pieces/messageModifiers/workingDirectoryMessageModifier.js +392 -0
- package/dist/processor-pieces/postInference/llmOutputValidityProcessor.d.ts +1 -0
- package/dist/processor-pieces/postInference/llmOutputValidityProcessor.js +2 -0
- package/dist/processor-pieces/postInferenceProcessors/checkForNoToolCall.d.ts +7 -0
- package/dist/processor-pieces/postInferenceProcessors/checkForNoToolCall.js +24 -0
- package/dist/processor-pieces/postInferenceProcessors/loopDetectionModifier.d.ts +29 -0
- package/dist/processor-pieces/postInferenceProcessors/loopDetectionModifier.js +174 -0
- package/dist/processor-pieces/postToolCall/advancedLoopDetectionProcessor.d.ts +41 -0
- package/dist/processor-pieces/postToolCall/advancedLoopDetectionProcessor.js +197 -0
- package/dist/processor-pieces/postToolCall/chatCompressionProcessor.d.ts +26 -0
- package/dist/processor-pieces/postToolCall/chatCompressionProcessor.js +90 -0
- package/dist/processor-pieces/postToolCall/chatRecordingProcessor.d.ts +81 -0
- package/dist/processor-pieces/postToolCall/chatRecordingProcessor.js +329 -0
- package/dist/processor-pieces/postToolCall/contextManagementProcessor.d.ts +40 -0
- package/dist/processor-pieces/postToolCall/contextManagementProcessor.js +272 -0
- package/dist/processor-pieces/postToolCall/conversationCompactorProcessor.d.ts +49 -0
- package/dist/processor-pieces/postToolCall/conversationCompactorProcessor.js +291 -0
- package/dist/processor-pieces/postToolCall/conversationContinuityProcessor.d.ts +49 -0
- package/dist/processor-pieces/postToolCall/conversationContinuityProcessor.js +293 -0
- package/dist/processor-pieces/postToolCall/followUpConversationProcessor.d.ts +47 -0
- package/dist/processor-pieces/postToolCall/followUpConversationProcessor.js +249 -0
- package/dist/processor-pieces/postToolCall/loopDetectionProcessor.d.ts +30 -0
- package/dist/processor-pieces/postToolCall/loopDetectionProcessor.js +137 -0
- package/dist/processor-pieces/postToolCall/responseValidationProcessor.d.ts +30 -0
- package/dist/processor-pieces/postToolCall/responseValidationProcessor.js +228 -0
- package/dist/processor-pieces/postToolCall/telemetryProcessor.d.ts +99 -0
- package/dist/processor-pieces/postToolCall/telemetryProcessor.js +278 -0
- package/dist/processor-pieces/postToolCall/tokenManagementProcessor.d.ts +37 -0
- package/dist/processor-pieces/postToolCall/tokenManagementProcessor.js +178 -0
- package/dist/processor-pieces/postToolCall/toolExecutionProcessor.d.ts +43 -0
- package/dist/processor-pieces/postToolCall/toolExecutionProcessor.js +207 -0
- package/dist/processor-pieces/postToolCallProcessors/index.d.ts +1 -0
- package/dist/processor-pieces/postToolCallProcessors/index.js +2 -0
- package/dist/processor-pieces/postToolCallProcessors/shellProcessorModifier.d.ts +25 -0
- package/dist/processor-pieces/postToolCallProcessors/shellProcessorModifier.js +225 -0
- package/dist/processor-pieces/preInference/conversationCompactorProcessor.d.ts +52 -0
- package/dist/processor-pieces/preInference/conversationCompactorProcessor.js +264 -0
- package/dist/processor-pieces/preInference/conversationContinuityProcessor.d.ts +49 -0
- package/dist/processor-pieces/preInference/conversationContinuityProcessor.js +293 -0
- package/dist/processor-pieces/preInferenceProcessors/chatCompressionModifier.d.ts +35 -0
- package/dist/processor-pieces/preInferenceProcessors/chatCompressionModifier.js +255 -0
- package/dist/processor-pieces/preInferenceProcessors/conversationCompaction.d.ts +7 -0
- package/dist/processor-pieces/preInferenceProcessors/conversationCompaction.js +31 -0
- package/dist/processor-pieces/preInferenceProcessors/index.d.ts +1 -0
- package/dist/processor-pieces/preInferenceProcessors/index.js +2 -0
- package/dist/processor-pieces/preToolCall/index.d.ts +9 -0
- package/dist/processor-pieces/preToolCall/index.js +18 -0
- package/dist/processor-pieces/preToolCall/localToolInterceptorProcessor.d.ts +58 -0
- package/dist/processor-pieces/preToolCall/localToolInterceptorProcessor.js +444 -0
- package/dist/processor-pieces/preToolCall/toolParameterModifierProcessor.d.ts +44 -0
- package/dist/processor-pieces/preToolCall/toolParameterModifierProcessor.js +367 -0
- package/dist/processor-pieces/preToolCall/toolValidationProcessor.d.ts +58 -0
- package/dist/processor-pieces/preToolCall/toolValidationProcessor.js +391 -0
- package/dist/processor-pieces/pretoolCallProcessors/index.d.ts +1 -0
- package/dist/processor-pieces/pretoolCallProcessors/index.js +2 -0
- package/dist/processor-pieces/processors/advancedLoopDetectionProcessor.d.ts +41 -0
- package/dist/processor-pieces/processors/advancedLoopDetectionProcessor.js +197 -0
- package/dist/processor-pieces/processors/chatCompressionProcessor.d.ts +26 -0
- package/dist/processor-pieces/processors/chatCompressionProcessor.js +90 -0
- package/dist/processor-pieces/processors/chatRecordingProcessor.d.ts +81 -0
- package/dist/processor-pieces/processors/chatRecordingProcessor.js +329 -0
- package/dist/processor-pieces/processors/contextManagementProcessor.d.ts +40 -0
- package/dist/processor-pieces/processors/contextManagementProcessor.js +305 -0
- package/dist/processor-pieces/processors/loopDetectionProcessor.d.ts +30 -0
- package/dist/processor-pieces/processors/loopDetectionProcessor.js +137 -0
- package/dist/processor-pieces/processors/responseValidationProcessor.d.ts +30 -0
- package/dist/processor-pieces/processors/responseValidationProcessor.js +228 -0
- package/dist/processor-pieces/processors/telemetryProcessor.d.ts +99 -0
- package/dist/processor-pieces/processors/telemetryProcessor.js +311 -0
- package/dist/processor-pieces/processors/tokenManagementProcessor.d.ts +37 -0
- package/dist/processor-pieces/processors/tokenManagementProcessor.js +178 -0
- package/dist/processor-pieces/processors/toolExecutionProcessor.d.ts +43 -0
- package/dist/processor-pieces/processors/toolExecutionProcessor.js +207 -0
- package/dist/processor-pieces/tools/fileTools.d.ts +26 -0
- package/dist/processor-pieces/tools/fileTools.js +162 -0
- package/dist/processor-pieces/utils/messageModifierHelper.d.ts +4 -0
- package/dist/processor-pieces/utils/messageModifierHelper.js +58 -0
- package/dist/types/commonTypes.d.ts +4 -0
- package/dist/types/processorTypes.d.ts +67 -0
- package/dist/types/processorTypes.js +58 -0
- package/dist/unified/agent/agent.d.ts +17 -0
- package/dist/unified/agent/agent.js +79 -0
- package/dist/unified/agent/team.d.ts +2 -0
- package/dist/unified/agent/team.js +6 -0
- package/dist/unified/agent/tool.d.ts +99 -0
- package/dist/unified/agent/tool.js +440 -0
- package/dist/unified/agent/tools.d.ts +44 -0
- package/dist/unified/agent/tools.js +487 -0
- package/dist/unified/agent/workflow.d.ts +24 -0
- package/dist/unified/agent/workflow.js +275 -0
- package/dist/unified/agent/workflowControls.d.ts +11 -0
- package/dist/unified/agent/workflowControls.js +20 -0
- package/dist/unified/agent/workflowSteps.d.ts +63 -0
- package/dist/unified/agent/workflowSteps.js +284 -0
- package/dist/unified/base/agentStep.d.ts +32 -0
- package/dist/unified/base/agentStep.js +96 -0
- package/dist/unified/base/create/createInitialPromptGenerators.d.ts +5 -0
- package/dist/unified/base/create/createInitialPromptGenerators.js +17 -0
- package/dist/unified/base/index.d.ts +5 -0
- package/dist/unified/base/index.js +13 -0
- package/dist/unified/base/initialPromptGenerator.d.ts +48 -0
- package/dist/unified/base/initialPromptGenerator.js +118 -0
- package/dist/unified/base/responseExecutor.d.ts +36 -0
- package/dist/unified/base/responseExecutor.js +283 -0
- package/dist/unified/examples/agentExample.d.ts +46 -0
- package/dist/unified/examples/agentExample.js +464 -0
- package/dist/unified/examples/documentationPatternExample.d.ts +10 -0
- package/dist/unified/examples/documentationPatternExample.js +385 -0
- package/dist/unified/examples/followUpProcessorsExample.d.ts +45 -0
- package/dist/unified/examples/followUpProcessorsExample.js +311 -0
- package/dist/unified/examples/orchestratorExample.d.ts +16 -0
- package/dist/unified/examples/orchestratorExample.js +415 -0
- package/dist/unified/examples/preToolCallProcessorsExample.d.ts +36 -0
- package/dist/unified/examples/preToolCallProcessorsExample.js +458 -0
- package/dist/unified/examples/workflowExample.d.ts +12 -0
- package/dist/unified/examples/workflowExample.js +497 -0
- package/dist/unified/index.d.ts +18 -0
- package/dist/unified/index.js +42 -0
- package/dist/unified/orchestrator/orchestrator.d.ts +260 -0
- package/dist/unified/orchestrator/orchestrator.js +519 -0
- package/dist/unified/team/team.d.ts +1 -0
- package/dist/unified/team/team.js +2 -0
- package/dist/unified/types/libTypes.d.ts +378 -0
- package/dist/unified/types/libTypes.js +6 -0
- package/dist/unified/types/types.d.ts +212 -0
- package/dist/unified/types/types.js +43 -0
- package/dist/unified/utils/utils.d.ts +40 -0
- package/dist/unified/utils/utils.js +219 -0
- package/package.json +35 -13
- /package/dist/{agent.d.ts → builderpattern/agent.d.ts} +0 -0
- /package/dist/{index.js → builderpattern/index.js} +0 -0
- /package/dist/{promptbuilder.js → builderpattern/promptbuilder.js} +0 -0
- /package/dist/{systemprompt.d.ts → builderpattern/systemprompt.d.ts} +0 -0
- /package/dist/{systemprompt.js → builderpattern/systemprompt.js} +0 -0
- /package/dist/{taskInstruction.js → builderpattern/taskInstruction.js} +0 -0
- /package/dist/{usermessage.js → builderpattern/usermessage.js} +0 -0
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.FileCopyTool = exports.FileMoveTool = exports.FileDeleteTool = exports.FileWriteTool = exports.FileReadTool = void 0;
|
|
37
|
+
const processor_1 = require("../processor");
|
|
38
|
+
const fs = __importStar(require("fs/promises"));
|
|
39
|
+
const path = __importStar(require("path"));
|
|
40
|
+
class FileReadTool extends processor_1.BaseTool {
|
|
41
|
+
constructor() {
|
|
42
|
+
super('FileRead', 'Read content from a file', {
|
|
43
|
+
filePath: { type: 'string', required: true, description: 'Path to the file to read' }
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
async execute(params, abortSignal) {
|
|
47
|
+
await this.checkAbortSignal(abortSignal);
|
|
48
|
+
if (!this.validateParameters(params)) {
|
|
49
|
+
throw new Error('Invalid parameters: filePath is required');
|
|
50
|
+
}
|
|
51
|
+
const { filePath } = params;
|
|
52
|
+
const content = await fs.readFile(filePath, 'utf-8');
|
|
53
|
+
return content;
|
|
54
|
+
}
|
|
55
|
+
validateParameters(params) {
|
|
56
|
+
return params && typeof params.filePath === 'string' && params.filePath.trim() !== '';
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.FileReadTool = FileReadTool;
|
|
60
|
+
class FileWriteTool extends processor_1.BaseTool {
|
|
61
|
+
constructor() {
|
|
62
|
+
super('FileWrite', 'Write content to a file', {
|
|
63
|
+
filePath: { type: 'string', required: true, description: 'Path to the file to write' },
|
|
64
|
+
content: { type: 'string', required: true, description: 'Content to write to the file' }
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
async execute(params, abortSignal) {
|
|
68
|
+
await this.checkAbortSignal(abortSignal);
|
|
69
|
+
if (!this.validateParameters(params)) {
|
|
70
|
+
throw new Error('Invalid parameters: filePath and content are required');
|
|
71
|
+
}
|
|
72
|
+
const { filePath, content } = params;
|
|
73
|
+
// Ensure directory exists
|
|
74
|
+
const dir = path.dirname(filePath);
|
|
75
|
+
await fs.mkdir(dir, { recursive: true });
|
|
76
|
+
await fs.writeFile(filePath, content, 'utf-8');
|
|
77
|
+
return `Successfully wrote ${content.length} characters to ${filePath}`;
|
|
78
|
+
}
|
|
79
|
+
validateParameters(params) {
|
|
80
|
+
return params &&
|
|
81
|
+
typeof params.filePath === 'string' &&
|
|
82
|
+
params.filePath.trim() !== '' &&
|
|
83
|
+
typeof params.content === 'string';
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
exports.FileWriteTool = FileWriteTool;
|
|
87
|
+
class FileDeleteTool extends processor_1.BaseTool {
|
|
88
|
+
constructor() {
|
|
89
|
+
super('FileDelete', 'Delete a file', {
|
|
90
|
+
filePath: { type: 'string', required: true, description: 'Path to the file to delete' }
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
async execute(params, abortSignal) {
|
|
94
|
+
await this.checkAbortSignal(abortSignal);
|
|
95
|
+
if (!this.validateParameters(params)) {
|
|
96
|
+
throw new Error('Invalid parameters: filePath is required');
|
|
97
|
+
}
|
|
98
|
+
const { filePath } = params;
|
|
99
|
+
await fs.unlink(filePath);
|
|
100
|
+
return `Successfully deleted ${filePath}`;
|
|
101
|
+
}
|
|
102
|
+
validateParameters(params) {
|
|
103
|
+
return params && typeof params.filePath === 'string' && params.filePath.trim() !== '';
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
exports.FileDeleteTool = FileDeleteTool;
|
|
107
|
+
class FileMoveTool extends processor_1.BaseTool {
|
|
108
|
+
constructor() {
|
|
109
|
+
super('FileMove', 'Move a file from one location to another', {
|
|
110
|
+
sourcePath: { type: 'string', required: true, description: 'Source file path' },
|
|
111
|
+
destinationPath: { type: 'string', required: true, description: 'Destination file path' }
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
async execute(params, abortSignal) {
|
|
115
|
+
await this.checkAbortSignal(abortSignal);
|
|
116
|
+
if (!this.validateParameters(params)) {
|
|
117
|
+
throw new Error('Invalid parameters: sourcePath and destinationPath are required');
|
|
118
|
+
}
|
|
119
|
+
const { sourcePath, destinationPath } = params;
|
|
120
|
+
// Ensure destination directory exists
|
|
121
|
+
const dir = path.dirname(destinationPath);
|
|
122
|
+
await fs.mkdir(dir, { recursive: true });
|
|
123
|
+
await fs.rename(sourcePath, destinationPath);
|
|
124
|
+
return `Successfully moved ${sourcePath} to ${destinationPath}`;
|
|
125
|
+
}
|
|
126
|
+
validateParameters(params) {
|
|
127
|
+
return params &&
|
|
128
|
+
typeof params.sourcePath === 'string' &&
|
|
129
|
+
params.sourcePath.trim() !== '' &&
|
|
130
|
+
typeof params.destinationPath === 'string' &&
|
|
131
|
+
params.destinationPath.trim() !== '';
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
exports.FileMoveTool = FileMoveTool;
|
|
135
|
+
class FileCopyTool extends processor_1.BaseTool {
|
|
136
|
+
constructor() {
|
|
137
|
+
super('FileCopy', 'Copy a file from one location to another', {
|
|
138
|
+
sourcePath: { type: 'string', required: true, description: 'Source file path' },
|
|
139
|
+
destinationPath: { type: 'string', required: true, description: 'Destination file path' }
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
async execute(params, abortSignal) {
|
|
143
|
+
await this.checkAbortSignal(abortSignal);
|
|
144
|
+
if (!this.validateParameters(params)) {
|
|
145
|
+
throw new Error('Invalid parameters: sourcePath and destinationPath are required');
|
|
146
|
+
}
|
|
147
|
+
const { sourcePath, destinationPath } = params;
|
|
148
|
+
// Ensure destination directory exists
|
|
149
|
+
const dir = path.dirname(destinationPath);
|
|
150
|
+
await fs.mkdir(dir, { recursive: true });
|
|
151
|
+
await fs.copyFile(sourcePath, destinationPath);
|
|
152
|
+
return `Successfully copied ${sourcePath} to ${destinationPath}`;
|
|
153
|
+
}
|
|
154
|
+
validateParameters(params) {
|
|
155
|
+
return params &&
|
|
156
|
+
typeof params.sourcePath === 'string' &&
|
|
157
|
+
params.sourcePath.trim() !== '' &&
|
|
158
|
+
typeof params.destinationPath === 'string' &&
|
|
159
|
+
params.destinationPath.trim() !== '';
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
exports.FileCopyTool = FileCopyTool;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { IAgentStep, AgentStepInput, AgentStepOutput, ProcessedMessage, ToolList, ToolExecutor, Processor } from '../types/interfaces';
|
|
2
|
+
export interface AgentStepOptions {
|
|
3
|
+
inputProcessors?: Processor[];
|
|
4
|
+
outputProcessors?: Processor[];
|
|
5
|
+
toolList?: ToolList;
|
|
6
|
+
toolExecutor?: ToolExecutor;
|
|
7
|
+
maxIterations?: number;
|
|
8
|
+
}
|
|
9
|
+
export declare abstract class AgentStep implements IAgentStep {
|
|
10
|
+
protected readonly inputProcessors: Processor[];
|
|
11
|
+
protected readonly outputProcessors: Processor[];
|
|
12
|
+
protected readonly toolList?: ToolList;
|
|
13
|
+
protected readonly toolExecutor?: ToolExecutor;
|
|
14
|
+
protected readonly maxIterations: number;
|
|
15
|
+
constructor(options?: AgentStepOptions);
|
|
16
|
+
/**
|
|
17
|
+
* Single step processing with input/output processors
|
|
18
|
+
*/
|
|
19
|
+
step(message: ProcessedMessage, context?: Record<string, any>): Promise<ProcessedMessage>;
|
|
20
|
+
generateOneStep(input: AgentStepInput): Promise<AgentStepOutput>;
|
|
21
|
+
generateWithToolExecution(input: AgentStepInput): Promise<AgentStepOutput>;
|
|
22
|
+
loop(input: AgentStepInput, maxIterations?: number): Promise<AgentStepOutput>;
|
|
23
|
+
protected abstract analyzeForToolCalls(message: ProcessedMessage, tools: any[], context?: Record<string, any>): Promise<Array<{
|
|
24
|
+
tool: string;
|
|
25
|
+
parameters: any;
|
|
26
|
+
}> | null>;
|
|
27
|
+
protected abstract generateFinalResponse(message: ProcessedMessage, toolResults: any, context?: Record<string, any>): Promise<AgentStepOutput>;
|
|
28
|
+
}
|
|
29
|
+
export interface LLMConfig {
|
|
30
|
+
llmname?: string;
|
|
31
|
+
model?: string;
|
|
32
|
+
temperature?: number;
|
|
33
|
+
maxTokens?: number;
|
|
34
|
+
apiKey?: string;
|
|
35
|
+
baseUrl?: string;
|
|
36
|
+
}
|
|
37
|
+
export interface LLMAgentStepOptions extends AgentStepOptions {
|
|
38
|
+
llmconfig?: LLMConfig;
|
|
39
|
+
}
|
|
40
|
+
export declare class LLMAgentStep extends AgentStep {
|
|
41
|
+
protected readonly llmConfig: LLMConfig;
|
|
42
|
+
constructor(options?: LLMAgentStepOptions);
|
|
43
|
+
protected analyzeForToolCalls(message: ProcessedMessage, tools: any[], context?: Record<string, any>): Promise<Array<{
|
|
44
|
+
tool: string;
|
|
45
|
+
parameters: any;
|
|
46
|
+
}> | null>;
|
|
47
|
+
protected generateFinalResponse(message: ProcessedMessage, toolResults: any, context?: Record<string, any>): Promise<AgentStepOutput>;
|
|
48
|
+
private extractFilePath;
|
|
49
|
+
}
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LLMAgentStep = exports.AgentStep = void 0;
|
|
4
|
+
class AgentStep {
|
|
5
|
+
constructor(options = {}) {
|
|
6
|
+
this.inputProcessors = options.inputProcessors || [];
|
|
7
|
+
this.outputProcessors = options.outputProcessors || [];
|
|
8
|
+
this.toolList = options.toolList;
|
|
9
|
+
this.toolExecutor = options.toolExecutor;
|
|
10
|
+
this.maxIterations = options.maxIterations || 10;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Single step processing with input/output processors
|
|
14
|
+
*/
|
|
15
|
+
async step(message, context) {
|
|
16
|
+
var _a;
|
|
17
|
+
try {
|
|
18
|
+
let processedMessage = message;
|
|
19
|
+
// Apply input processors
|
|
20
|
+
for (const processor of this.inputProcessors) {
|
|
21
|
+
const results = await processor.processInput({
|
|
22
|
+
message: processedMessage,
|
|
23
|
+
context
|
|
24
|
+
});
|
|
25
|
+
// Find the processed message from results
|
|
26
|
+
const messageEvent = results.find(r => r.type === 'MessageProcessed' || r.type === 'MessageWithContext');
|
|
27
|
+
if (messageEvent && messageEvent.value) {
|
|
28
|
+
processedMessage = messageEvent.value;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
// Analyze for tool calls
|
|
32
|
+
const toolCalls = await this.analyzeForToolCalls(processedMessage, ((_a = this.toolList) === null || _a === void 0 ? void 0 : _a.getAllTools()) || [], context);
|
|
33
|
+
if (toolCalls && toolCalls.length > 0) {
|
|
34
|
+
// Execute tools if we have a tool executor
|
|
35
|
+
if (this.toolExecutor) {
|
|
36
|
+
const toolResults = await this.toolExecutor.executeTools({
|
|
37
|
+
toolCalls,
|
|
38
|
+
tools: this.toolList || { getAllTools: () => [], getTool: () => undefined, addTool: () => { }, removeTool: () => { } },
|
|
39
|
+
context
|
|
40
|
+
});
|
|
41
|
+
// Generate response with tool results
|
|
42
|
+
const stepOutput = await this.generateFinalResponse(processedMessage, toolResults, context);
|
|
43
|
+
processedMessage = stepOutput.response;
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
// Return message with tool calls for external execution
|
|
47
|
+
processedMessage = {
|
|
48
|
+
messages: [
|
|
49
|
+
...processedMessage.messages,
|
|
50
|
+
{
|
|
51
|
+
role: 'assistant',
|
|
52
|
+
content: `I need to use tools: ${toolCalls.map(t => t.tool).join(', ')}`,
|
|
53
|
+
tool_calls: toolCalls.map(t => ({
|
|
54
|
+
id: `tool-${Date.now()}`,
|
|
55
|
+
function: { name: t.tool, arguments: t.parameters }
|
|
56
|
+
}))
|
|
57
|
+
}
|
|
58
|
+
]
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
// No tool calls needed, generate final response
|
|
64
|
+
const stepOutput = await this.generateFinalResponse(processedMessage, null, context);
|
|
65
|
+
processedMessage = stepOutput.response;
|
|
66
|
+
}
|
|
67
|
+
// Apply output processors
|
|
68
|
+
for (const processor of this.outputProcessors) {
|
|
69
|
+
const results = await processor.processInput({
|
|
70
|
+
message: processedMessage,
|
|
71
|
+
context
|
|
72
|
+
});
|
|
73
|
+
// Find the processed message from results
|
|
74
|
+
const messageEvent = results.find(r => r.type === 'MessageProcessed' || r.type === 'FinalResponse');
|
|
75
|
+
if (messageEvent && messageEvent.value) {
|
|
76
|
+
processedMessage = messageEvent.value;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return processedMessage;
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
console.error('Error in AgentStep.step:', error);
|
|
83
|
+
throw error;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
async generateOneStep(input) {
|
|
87
|
+
try {
|
|
88
|
+
const { message, tools, context } = input;
|
|
89
|
+
// Analyze for tool calls
|
|
90
|
+
const toolCalls = await this.analyzeForToolCalls(message, tools, context);
|
|
91
|
+
if (toolCalls && toolCalls.length > 0) {
|
|
92
|
+
// Execute tools
|
|
93
|
+
const toolResults = await this.toolExecutor.executeTools({
|
|
94
|
+
toolCalls,
|
|
95
|
+
tools: { getAllTools: () => tools, getTool: (name) => tools.find(t => t.name === name), addTool: () => { }, removeTool: () => { } },
|
|
96
|
+
context
|
|
97
|
+
});
|
|
98
|
+
// Generate response with tool results
|
|
99
|
+
return await this.generateFinalResponse(message, toolResults, context);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
// No tool calls needed, generate final response
|
|
103
|
+
return await this.generateFinalResponse(message, null, context);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
console.error('Error in generateOneStep:', error);
|
|
108
|
+
throw error;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
async generateWithToolExecution(input) {
|
|
112
|
+
try {
|
|
113
|
+
const { message, tools, context } = input;
|
|
114
|
+
// Analyze for tool calls
|
|
115
|
+
const toolCalls = await this.analyzeForToolCalls(message, tools, context);
|
|
116
|
+
if (toolCalls && toolCalls.length > 0) {
|
|
117
|
+
// Execute tools
|
|
118
|
+
const toolResults = await this.toolExecutor.executeTools({
|
|
119
|
+
toolCalls,
|
|
120
|
+
tools: { getAllTools: () => tools, getTool: (name) => tools.find(t => t.name === name), addTool: () => { }, removeTool: () => { } },
|
|
121
|
+
context
|
|
122
|
+
});
|
|
123
|
+
// Generate response with tool results
|
|
124
|
+
return await this.generateFinalResponse(message, toolResults, context);
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
// No tool calls needed, generate final response
|
|
128
|
+
return await this.generateFinalResponse(message, null, context);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
console.error('Error in generateWithToolExecution:', error);
|
|
133
|
+
throw error;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
async loop(input, maxIterations) {
|
|
137
|
+
const maxIter = maxIterations || this.maxIterations;
|
|
138
|
+
let currentMessage = input.message;
|
|
139
|
+
let iteration = 0;
|
|
140
|
+
while (iteration < maxIter) {
|
|
141
|
+
iteration++;
|
|
142
|
+
// Generate one step
|
|
143
|
+
const stepResult = await this.generateOneStep({
|
|
144
|
+
message: currentMessage,
|
|
145
|
+
tools: input.tools,
|
|
146
|
+
context: input.context
|
|
147
|
+
});
|
|
148
|
+
// Check if finished
|
|
149
|
+
if (stepResult.finished) {
|
|
150
|
+
return stepResult;
|
|
151
|
+
}
|
|
152
|
+
// Update message for next iteration
|
|
153
|
+
currentMessage = stepResult.response;
|
|
154
|
+
}
|
|
155
|
+
// Max iterations reached
|
|
156
|
+
return await this.generateFinalResponse(currentMessage, null, input.context);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
exports.AgentStep = AgentStep;
|
|
160
|
+
class LLMAgentStep extends AgentStep {
|
|
161
|
+
constructor(options = {}) {
|
|
162
|
+
super(options);
|
|
163
|
+
this.llmConfig = options.llmconfig || { llmname: "DefaultLLM" };
|
|
164
|
+
}
|
|
165
|
+
async analyzeForToolCalls(message, tools, context) {
|
|
166
|
+
// Generic implementation that can work with any LLM
|
|
167
|
+
// In a real scenario, you would call your LLM service here
|
|
168
|
+
const lastMessage = message.messages[message.messages.length - 1];
|
|
169
|
+
const content = typeof lastMessage.content === 'string'
|
|
170
|
+
? lastMessage.content.toLowerCase()
|
|
171
|
+
: JSON.stringify(lastMessage.content).toLowerCase();
|
|
172
|
+
const toolCalls = [];
|
|
173
|
+
// Simple keyword-based tool detection (replace with actual LLM call)
|
|
174
|
+
if (content.includes('read') && content.includes('file')) {
|
|
175
|
+
const filePath = this.extractFilePath(content);
|
|
176
|
+
if (filePath) {
|
|
177
|
+
toolCalls.push({
|
|
178
|
+
tool: 'FileRead',
|
|
179
|
+
parameters: { filePath }
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
if (content.includes('write') && content.includes('file')) {
|
|
184
|
+
const filePath = this.extractFilePath(content);
|
|
185
|
+
if (filePath) {
|
|
186
|
+
toolCalls.push({
|
|
187
|
+
tool: 'FileWrite',
|
|
188
|
+
parameters: { filePath, content: 'Content to be written' }
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
if (content.includes('delete') && content.includes('file')) {
|
|
193
|
+
const filePath = this.extractFilePath(content);
|
|
194
|
+
if (filePath) {
|
|
195
|
+
toolCalls.push({
|
|
196
|
+
tool: 'FileDelete',
|
|
197
|
+
parameters: { filePath }
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
return toolCalls.length > 0 ? toolCalls : null;
|
|
202
|
+
}
|
|
203
|
+
async generateFinalResponse(message, toolResults, context) {
|
|
204
|
+
// Generic implementation that can work with any LLM
|
|
205
|
+
// In a real scenario, you would call your LLM service here
|
|
206
|
+
const lastMessage = message.messages[message.messages.length - 1];
|
|
207
|
+
let responseContent = `I've processed your request: "${lastMessage.content}". Here's my response based on the available information.`;
|
|
208
|
+
// Add tool results if available
|
|
209
|
+
if (toolResults && toolResults.results) {
|
|
210
|
+
const toolResultsText = toolResults.results
|
|
211
|
+
.map((r) => `${r.tool}: ${r.success ? 'Success' : 'Failed'}`)
|
|
212
|
+
.join(', ');
|
|
213
|
+
responseContent += `\n\nTool execution results: ${toolResultsText}`;
|
|
214
|
+
}
|
|
215
|
+
const response = {
|
|
216
|
+
messages: [
|
|
217
|
+
...message.messages,
|
|
218
|
+
{
|
|
219
|
+
role: 'assistant',
|
|
220
|
+
content: responseContent
|
|
221
|
+
}
|
|
222
|
+
],
|
|
223
|
+
metadata: {
|
|
224
|
+
...message.metadata,
|
|
225
|
+
responseGenerated: true,
|
|
226
|
+
timestamp: new Date().toISOString(),
|
|
227
|
+
model: this.llmConfig.model || this.llmConfig.llmname || 'generic-llm'
|
|
228
|
+
}
|
|
229
|
+
};
|
|
230
|
+
return {
|
|
231
|
+
response,
|
|
232
|
+
finished: true
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
extractFilePath(content) {
|
|
236
|
+
// Simple file path extraction (replace with more sophisticated parsing)
|
|
237
|
+
const filePathMatch = content.match(/['"`]([^'"`]+\.\w+)['"`]/);
|
|
238
|
+
return filePathMatch ? filePathMatch[1] : null;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
exports.LLMAgentStep = LLMAgentStep;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ToolExecutor as IToolExecutor, ToolExecutionInput, ToolExecutionOutput, ToolList } from '../types/interfaces';
|
|
2
|
+
export interface ToolExecutorOptions {
|
|
3
|
+
maxRetries?: number;
|
|
4
|
+
retryDelay?: number;
|
|
5
|
+
enableLogging?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare class ToolExecutor implements IToolExecutor {
|
|
8
|
+
private readonly toolList;
|
|
9
|
+
private readonly maxRetries;
|
|
10
|
+
private readonly retryDelay;
|
|
11
|
+
private readonly enableLogging;
|
|
12
|
+
constructor(toolList: ToolList, options?: ToolExecutorOptions);
|
|
13
|
+
executeTools(input: ToolExecutionInput): Promise<ToolExecutionOutput>;
|
|
14
|
+
private executeToolWithRetry;
|
|
15
|
+
private delay;
|
|
16
|
+
addTool(tool: any): void;
|
|
17
|
+
removeTool(toolName: string): boolean;
|
|
18
|
+
getToolNames(): string[];
|
|
19
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ToolExecutor = void 0;
|
|
4
|
+
class ToolExecutor {
|
|
5
|
+
constructor(toolList, options = {}) {
|
|
6
|
+
this.toolList = toolList;
|
|
7
|
+
this.maxRetries = options.maxRetries || 3;
|
|
8
|
+
this.retryDelay = options.retryDelay || 1000;
|
|
9
|
+
this.enableLogging = options.enableLogging !== false;
|
|
10
|
+
}
|
|
11
|
+
async executeTools(input) {
|
|
12
|
+
try {
|
|
13
|
+
const { toolCalls, tools, context } = input;
|
|
14
|
+
const results = [];
|
|
15
|
+
for (const toolCall of toolCalls) {
|
|
16
|
+
try {
|
|
17
|
+
const tool = tools.getTool(toolCall.tool);
|
|
18
|
+
if (!tool) {
|
|
19
|
+
results.push({
|
|
20
|
+
tool: toolCall.tool,
|
|
21
|
+
result: null,
|
|
22
|
+
error: `Tool '${toolCall.tool}' not found`
|
|
23
|
+
});
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
// Execute tool with retry logic
|
|
27
|
+
const result = await this.executeToolWithRetry(tool, toolCall.parameters);
|
|
28
|
+
results.push({
|
|
29
|
+
tool: toolCall.tool,
|
|
30
|
+
result,
|
|
31
|
+
error: undefined
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
results.push({
|
|
36
|
+
tool: toolCall.tool,
|
|
37
|
+
result: null,
|
|
38
|
+
error: error instanceof Error ? error.message : String(error)
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
const success = results.every(r => !r.error);
|
|
43
|
+
return {
|
|
44
|
+
results,
|
|
45
|
+
success
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
console.error('Error in ToolExecutor.executeTools:', error);
|
|
50
|
+
throw error;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
async executeToolWithRetry(tool, parameters) {
|
|
54
|
+
let lastError = null;
|
|
55
|
+
for (let attempt = 1; attempt <= this.maxRetries; attempt++) {
|
|
56
|
+
try {
|
|
57
|
+
if (this.enableLogging) {
|
|
58
|
+
console.log(`[ToolExecutor] Executing ${tool.name} (attempt ${attempt}/${this.maxRetries})`);
|
|
59
|
+
}
|
|
60
|
+
const result = await tool.execute(parameters);
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
lastError = error instanceof Error ? error : new Error(String(error));
|
|
65
|
+
if (this.enableLogging) {
|
|
66
|
+
console.warn(`[ToolExecutor] Attempt ${attempt} failed for ${tool.name}:`, lastError.message);
|
|
67
|
+
}
|
|
68
|
+
if (attempt < this.maxRetries) {
|
|
69
|
+
await this.delay(this.retryDelay);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
throw lastError || new Error(`Tool execution failed after ${this.maxRetries} attempts`);
|
|
74
|
+
}
|
|
75
|
+
delay(ms) {
|
|
76
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
77
|
+
}
|
|
78
|
+
// Helper methods for tool management
|
|
79
|
+
addTool(tool) {
|
|
80
|
+
this.toolList.addTool(tool);
|
|
81
|
+
}
|
|
82
|
+
removeTool(toolName) {
|
|
83
|
+
this.toolList.removeTool(toolName);
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
getToolNames() {
|
|
87
|
+
return this.toolList.getAllTools().map(tool => tool.name);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
exports.ToolExecutor = ToolExecutor;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './types/interfaces';
|
|
2
|
+
export { BaseProcessor } from './processors/baseProcessor';
|
|
3
|
+
export { BaseMessageModifier, RequestMessage } from './messageModifiers/baseMessageModifier';
|
|
4
|
+
export { BaseTool } from './tools/baseTool';
|
|
5
|
+
export { AgentStep, AgentStepOptions, LLMAgentStep, LLMAgentStepOptions, LLMConfig } from './agent/agentStep';
|
|
6
|
+
export { ToolExecutor, ToolExecutorOptions } from './agent/toolExecutor';
|
|
7
|
+
export { ToolList as ToolListClass } from './tools/toolList';
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.ToolListClass = exports.ToolExecutor = exports.LLMAgentStep = exports.AgentStep = exports.BaseTool = exports.RequestMessage = exports.BaseMessageModifier = exports.BaseProcessor = void 0;
|
|
18
|
+
// Core interfaces
|
|
19
|
+
__exportStar(require("./types/interfaces"), exports);
|
|
20
|
+
// Base classes
|
|
21
|
+
var baseProcessor_1 = require("./processors/baseProcessor");
|
|
22
|
+
Object.defineProperty(exports, "BaseProcessor", { enumerable: true, get: function () { return baseProcessor_1.BaseProcessor; } });
|
|
23
|
+
var baseMessageModifier_1 = require("./messageModifiers/baseMessageModifier");
|
|
24
|
+
Object.defineProperty(exports, "BaseMessageModifier", { enumerable: true, get: function () { return baseMessageModifier_1.BaseMessageModifier; } });
|
|
25
|
+
Object.defineProperty(exports, "RequestMessage", { enumerable: true, get: function () { return baseMessageModifier_1.RequestMessage; } });
|
|
26
|
+
var baseTool_1 = require("./tools/baseTool");
|
|
27
|
+
Object.defineProperty(exports, "BaseTool", { enumerable: true, get: function () { return baseTool_1.BaseTool; } });
|
|
28
|
+
// Agent components
|
|
29
|
+
var agentStep_1 = require("./agent/agentStep");
|
|
30
|
+
Object.defineProperty(exports, "AgentStep", { enumerable: true, get: function () { return agentStep_1.AgentStep; } });
|
|
31
|
+
Object.defineProperty(exports, "LLMAgentStep", { enumerable: true, get: function () { return agentStep_1.LLMAgentStep; } });
|
|
32
|
+
var toolExecutor_1 = require("./agent/toolExecutor");
|
|
33
|
+
Object.defineProperty(exports, "ToolExecutor", { enumerable: true, get: function () { return toolExecutor_1.ToolExecutor; } });
|
|
34
|
+
// Tool management
|
|
35
|
+
var toolList_1 = require("./tools/toolList");
|
|
36
|
+
Object.defineProperty(exports, "ToolListClass", { enumerable: true, get: function () { return toolList_1.ToolList; } });
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { MessageModifier, MessageModifierInput, ProcessedMessage } from '../types/interfaces';
|
|
2
|
+
export interface MessageModifierOptions {
|
|
3
|
+
context?: Record<string, any>;
|
|
4
|
+
}
|
|
5
|
+
export declare abstract class BaseMessageModifier implements MessageModifier {
|
|
6
|
+
protected context: Record<string, any>;
|
|
7
|
+
constructor(options?: MessageModifierOptions);
|
|
8
|
+
abstract modify(input: MessageModifierInput): Promise<ProcessedMessage>;
|
|
9
|
+
setContext(key: string, value: any): void;
|
|
10
|
+
getContext(key: string): any;
|
|
11
|
+
clearContext(): void;
|
|
12
|
+
}
|
|
13
|
+
export declare class RequestMessage {
|
|
14
|
+
private messageModifiers;
|
|
15
|
+
constructor(options?: {
|
|
16
|
+
messageModifiers?: MessageModifier[];
|
|
17
|
+
});
|
|
18
|
+
addModifier(modifier: MessageModifier): void;
|
|
19
|
+
modify(message: any): Promise<ProcessedMessage>;
|
|
20
|
+
}
|