@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,129 @@
|
|
|
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.MemoryImportModifier = void 0;
|
|
37
|
+
const base_1 = require("../base");
|
|
38
|
+
const fs = __importStar(require("fs"));
|
|
39
|
+
const path = __importStar(require("path"));
|
|
40
|
+
class MemoryImportModifier extends base_1.BaseMessageModifier {
|
|
41
|
+
constructor(options = {}) {
|
|
42
|
+
super();
|
|
43
|
+
this.options = {
|
|
44
|
+
enableMemoryImport: options.enableMemoryImport !== false,
|
|
45
|
+
maxFileSize: options.maxFileSize || 1024 * 1024, // 1MB
|
|
46
|
+
allowedExtensions: options.allowedExtensions || ['.md', '.txt', '.json', '.yml', '.yaml', '.xml'],
|
|
47
|
+
basePath: options.basePath || process.cwd(),
|
|
48
|
+
maxImports: options.maxImports || 10
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
async modify(originalRequest, createdMessage) {
|
|
52
|
+
try {
|
|
53
|
+
if (!this.options.enableMemoryImport) {
|
|
54
|
+
return createdMessage;
|
|
55
|
+
}
|
|
56
|
+
// Get the user message content to process
|
|
57
|
+
const userMessage = createdMessage.message.messages.find(msg => msg.role === 'user');
|
|
58
|
+
if (!userMessage || typeof userMessage.content !== 'string') {
|
|
59
|
+
return createdMessage;
|
|
60
|
+
}
|
|
61
|
+
// Look for @path/to/file patterns (memory import syntax)
|
|
62
|
+
const memoryImportPattern = /@([^\s@]+(?:\.[a-zA-Z0-9]+)?)/g;
|
|
63
|
+
let content = userMessage.content;
|
|
64
|
+
const processedImports = [];
|
|
65
|
+
let match;
|
|
66
|
+
let importCount = 0;
|
|
67
|
+
while ((match = memoryImportPattern.exec(userMessage.content)) !== null && importCount < this.options.maxImports) {
|
|
68
|
+
const filePath = match[1];
|
|
69
|
+
const fullPath = path.isAbsolute(filePath) ? filePath : path.join(this.options.basePath, filePath);
|
|
70
|
+
try {
|
|
71
|
+
// Check if file exists and is allowed
|
|
72
|
+
const stats = await fs.promises.stat(fullPath);
|
|
73
|
+
if (!stats.isFile()) {
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
if (stats.size > this.options.maxFileSize) {
|
|
77
|
+
content = content.replace(match[0], `[File too large: ${filePath}]`);
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
const ext = path.extname(filePath);
|
|
81
|
+
if (!this.options.allowedExtensions.includes(ext)) {
|
|
82
|
+
content = content.replace(match[0], `[Unsupported file type: ${filePath}]`);
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
// Read and import the file content
|
|
86
|
+
const fileContent = await fs.promises.readFile(fullPath, 'utf-8');
|
|
87
|
+
const importedContent = `--- Content from ${filePath} ---\n${fileContent}\n--- End of ${filePath} ---`;
|
|
88
|
+
content = content.replace(match[0], importedContent);
|
|
89
|
+
processedImports.push(filePath);
|
|
90
|
+
importCount++;
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
// Replace with error message if file can't be read
|
|
94
|
+
content = content.replace(match[0], `[Error reading ${filePath}: ${error instanceof Error ? error.message : 'unknown error'}]`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
if (processedImports.length === 0) {
|
|
98
|
+
return createdMessage;
|
|
99
|
+
}
|
|
100
|
+
// Update the user message with processed content
|
|
101
|
+
const messages = createdMessage.message.messages.map(msg => {
|
|
102
|
+
if (msg.role === 'user' && msg === userMessage) {
|
|
103
|
+
return {
|
|
104
|
+
...msg,
|
|
105
|
+
content
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
return msg;
|
|
109
|
+
});
|
|
110
|
+
return Promise.resolve({
|
|
111
|
+
message: {
|
|
112
|
+
...createdMessage.message,
|
|
113
|
+
messages
|
|
114
|
+
},
|
|
115
|
+
metadata: {
|
|
116
|
+
...createdMessage.metadata,
|
|
117
|
+
memoryImportsProcessed: true,
|
|
118
|
+
importedFiles: processedImports,
|
|
119
|
+
totalImports: processedImports.length
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
console.error('Error in MemoryImportModifier:', error);
|
|
125
|
+
return createdMessage;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
exports.MemoryImportModifier = MemoryImportModifier;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ProcessedMessage } from "@codebolt/types/agent";
|
|
2
|
+
import { BaseMessageModifier } from "../base";
|
|
3
|
+
import { FlatUserMessage } from "@codebolt/types/sdk";
|
|
4
|
+
/**
|
|
5
|
+
* Message modifier that reads files and folders mentioned in the user message
|
|
6
|
+
* Uses mentionedFiles and mentionedFolders from FlatUserMessage
|
|
7
|
+
*/
|
|
8
|
+
export declare class MentionedFilesModifier extends BaseMessageModifier {
|
|
9
|
+
constructor();
|
|
10
|
+
modify(originalRequest: FlatUserMessage, createdMessage: ProcessedMessage): Promise<ProcessedMessage>;
|
|
11
|
+
/**
|
|
12
|
+
* Resolves and reads a file, handling both files and directories
|
|
13
|
+
*/
|
|
14
|
+
private resolveAndReadFile;
|
|
15
|
+
/**
|
|
16
|
+
* Formats file content for inclusion in the message
|
|
17
|
+
*/
|
|
18
|
+
private formatFileContent;
|
|
19
|
+
/**
|
|
20
|
+
* Updates the user message with file content
|
|
21
|
+
*/
|
|
22
|
+
private updateUserMessage;
|
|
23
|
+
}
|
|
@@ -0,0 +1,207 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.MentionedFilesModifier = void 0;
|
|
40
|
+
const base_1 = require("../base");
|
|
41
|
+
const fs = __importStar(require("node:fs/promises"));
|
|
42
|
+
const path = __importStar(require("node:path"));
|
|
43
|
+
const codeboltjs_1 = __importDefault(require("@codebolt/codeboltjs"));
|
|
44
|
+
/**
|
|
45
|
+
* Message modifier that reads files and folders mentioned in the user message
|
|
46
|
+
* Uses mentionedFiles and mentionedFolders from FlatUserMessage
|
|
47
|
+
*/
|
|
48
|
+
class MentionedFilesModifier extends base_1.BaseMessageModifier {
|
|
49
|
+
constructor() {
|
|
50
|
+
super();
|
|
51
|
+
}
|
|
52
|
+
async modify(originalRequest, createdMessage) {
|
|
53
|
+
try {
|
|
54
|
+
const mentionedFiles = originalRequest.mentionedFiles || [];
|
|
55
|
+
const mentionedFolders = originalRequest.mentionedFolders || [];
|
|
56
|
+
const allMentionedPaths = [...mentionedFiles, ...mentionedFolders];
|
|
57
|
+
if (allMentionedPaths.length === 0) {
|
|
58
|
+
return createdMessage;
|
|
59
|
+
}
|
|
60
|
+
// Read all mentioned files and folders
|
|
61
|
+
const fileResults = [];
|
|
62
|
+
for (const mentionedPath of allMentionedPaths) {
|
|
63
|
+
try {
|
|
64
|
+
const result = await this.resolveAndReadFile(mentionedPath);
|
|
65
|
+
if (result) {
|
|
66
|
+
fileResults.push(result);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
fileResults.push({
|
|
71
|
+
path: mentionedPath,
|
|
72
|
+
content: '',
|
|
73
|
+
error: error instanceof Error ? error.message : 'Unknown error'
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if (fileResults.length === 0) {
|
|
78
|
+
return createdMessage;
|
|
79
|
+
}
|
|
80
|
+
// Add file content to the user message
|
|
81
|
+
const fileContentText = this.formatFileContent(fileResults);
|
|
82
|
+
const updatedMessages = this.updateUserMessage(createdMessage.message.messages || [], fileContentText);
|
|
83
|
+
return {
|
|
84
|
+
message: {
|
|
85
|
+
...createdMessage.message,
|
|
86
|
+
messages: updatedMessages
|
|
87
|
+
},
|
|
88
|
+
metadata: {
|
|
89
|
+
...createdMessage.metadata,
|
|
90
|
+
mentionedFilesAdded: true,
|
|
91
|
+
resolvedFiles: fileResults.map(f => f.path)
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
console.error('Error in MentionedFilesModifier:', error);
|
|
97
|
+
return createdMessage;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Resolves and reads a file, handling both files and directories
|
|
102
|
+
*/
|
|
103
|
+
async resolveAndReadFile(pathName) {
|
|
104
|
+
try {
|
|
105
|
+
// pathName is already a full absolute path
|
|
106
|
+
const absolutePath = pathName;
|
|
107
|
+
// Get project path for security check and relative path display
|
|
108
|
+
let projectPath;
|
|
109
|
+
try {
|
|
110
|
+
const { projectPath: path } = await codeboltjs_1.default.project.getProjectPath();
|
|
111
|
+
projectPath = path || process.cwd();
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
projectPath = process.cwd();
|
|
115
|
+
}
|
|
116
|
+
// Check if path is within project (basic security check)
|
|
117
|
+
const relativePath = path.relative(projectPath, absolutePath);
|
|
118
|
+
if (relativePath.startsWith('..')) {
|
|
119
|
+
throw new Error(`Path ${pathName} is outside project directory`);
|
|
120
|
+
}
|
|
121
|
+
const stats = await fs.stat(absolutePath);
|
|
122
|
+
if (stats.isDirectory()) {
|
|
123
|
+
// For directories, list contents
|
|
124
|
+
const files = await fs.readdir(absolutePath);
|
|
125
|
+
const fileList = files.join('\n');
|
|
126
|
+
return {
|
|
127
|
+
path: relativePath || path.basename(pathName),
|
|
128
|
+
content: `Directory contents:\n${fileList}`
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
else if (stats.isFile()) {
|
|
132
|
+
// Check file size (limit to reasonable size)
|
|
133
|
+
const maxFileSize = 1024 * 1024; // 1MB
|
|
134
|
+
if (stats.size > maxFileSize) {
|
|
135
|
+
return {
|
|
136
|
+
path: relativePath || path.basename(pathName),
|
|
137
|
+
content: `File too large (${stats.size} bytes). Maximum allowed: ${maxFileSize} bytes.`
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
// Read file content
|
|
141
|
+
const content = await fs.readFile(absolutePath, 'utf-8');
|
|
142
|
+
return {
|
|
143
|
+
path: relativePath || path.basename(pathName),
|
|
144
|
+
content
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
catch (error) {
|
|
149
|
+
if (error instanceof Error && 'code' in error && error.code === 'ENOENT') {
|
|
150
|
+
// File not found
|
|
151
|
+
return {
|
|
152
|
+
path: pathName,
|
|
153
|
+
content: '',
|
|
154
|
+
error: `File not found: ${pathName}`
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
throw error;
|
|
158
|
+
}
|
|
159
|
+
return null;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Formats file content for inclusion in the message
|
|
163
|
+
*/
|
|
164
|
+
formatFileContent(fileResults) {
|
|
165
|
+
const contentParts = [];
|
|
166
|
+
contentParts.push('\n--- Content from mentioned files ---');
|
|
167
|
+
for (const result of fileResults) {
|
|
168
|
+
if (result.error) {
|
|
169
|
+
contentParts.push(`\nError reading ${result.path}: ${result.error}`);
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
contentParts.push(`\nContent from ${result.path}:`);
|
|
173
|
+
contentParts.push(result.content);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return contentParts.join('\n');
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Updates the user message with file content
|
|
180
|
+
*/
|
|
181
|
+
updateUserMessage(messages, fileContent) {
|
|
182
|
+
const updatedMessages = [...messages];
|
|
183
|
+
// Find the last user message and append file content
|
|
184
|
+
for (let i = updatedMessages.length - 1; i >= 0; i--) {
|
|
185
|
+
if (updatedMessages[i].role === 'user') {
|
|
186
|
+
const currentContent = updatedMessages[i].content;
|
|
187
|
+
if (Array.isArray(currentContent)) {
|
|
188
|
+
// If content is array, add file content as new text element
|
|
189
|
+
updatedMessages[i] = {
|
|
190
|
+
...updatedMessages[i],
|
|
191
|
+
content: [...currentContent, { type: 'text', text: fileContent }]
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
// If content is string, append file content
|
|
196
|
+
updatedMessages[i] = {
|
|
197
|
+
...updatedMessages[i],
|
|
198
|
+
content: (currentContent || '') + fileContent
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
break;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return updatedMessages;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
exports.MentionedFilesModifier = MentionedFilesModifier;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ProcessedMessage } from "@codebolt/types/agent";
|
|
2
|
+
import { BaseMessageModifier } from "../base";
|
|
3
|
+
import { FlatUserMessage } from "@codebolt/types/sdk";
|
|
4
|
+
export declare class SimpleMessageModifier extends BaseMessageModifier {
|
|
5
|
+
constructor();
|
|
6
|
+
modify(originalRequest: FlatUserMessage, createdMessage: ProcessedMessage, context?: Record<string, unknown>): Promise<ProcessedMessage>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SimpleMessageModifier = void 0;
|
|
4
|
+
const base_1 = require("../base");
|
|
5
|
+
class SimpleMessageModifier extends base_1.BaseMessageModifier {
|
|
6
|
+
constructor() {
|
|
7
|
+
super();
|
|
8
|
+
}
|
|
9
|
+
modify(originalRequest, createdMessage, context) {
|
|
10
|
+
const contextMessage = {
|
|
11
|
+
role: 'user',
|
|
12
|
+
content: "hi"
|
|
13
|
+
};
|
|
14
|
+
return Promise.resolve({
|
|
15
|
+
message: {
|
|
16
|
+
...createdMessage.message,
|
|
17
|
+
messages: [...createdMessage.message.messages, contextMessage]
|
|
18
|
+
},
|
|
19
|
+
metadata: {
|
|
20
|
+
...createdMessage.metadata,
|
|
21
|
+
userMessageAdded: true
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.SimpleMessageModifier = SimpleMessageModifier;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ProcessedMessage } from "@codebolt/types/agent";
|
|
2
|
+
import { BaseMessageModifier } from "../base";
|
|
3
|
+
import { FlatUserMessage } from "@codebolt/types/sdk";
|
|
4
|
+
export interface ToolInjectionOptions {
|
|
5
|
+
toolsLocation?: 'Tool' | 'SystemMessage' | 'InsidePrompt';
|
|
6
|
+
includeToolDescriptions?: boolean;
|
|
7
|
+
maxToolsInMessage?: number;
|
|
8
|
+
giveToolExamples?: boolean;
|
|
9
|
+
maxToolExamples?: number;
|
|
10
|
+
}
|
|
11
|
+
export declare class ToolInjectionModifier extends BaseMessageModifier {
|
|
12
|
+
private readonly options;
|
|
13
|
+
constructor(options?: ToolInjectionOptions);
|
|
14
|
+
modify(originalRequest: FlatUserMessage, createdMessage: ProcessedMessage): Promise<ProcessedMessage>;
|
|
15
|
+
private addToolsInsidePrompt;
|
|
16
|
+
private addToolsAsSystemMessage;
|
|
17
|
+
private addToolsAsToolCalls;
|
|
18
|
+
private generateToolsInfo;
|
|
19
|
+
private generateToolExample;
|
|
20
|
+
}
|
|
@@ -0,0 +1,152 @@
|
|
|
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.ToolInjectionModifier = void 0;
|
|
7
|
+
const base_1 = require("../base");
|
|
8
|
+
const codeboltjs_1 = __importDefault(require("@codebolt/codeboltjs"));
|
|
9
|
+
class ToolInjectionModifier extends base_1.BaseMessageModifier {
|
|
10
|
+
constructor(options = {}) {
|
|
11
|
+
super();
|
|
12
|
+
this.options = {
|
|
13
|
+
toolsLocation: options.toolsLocation || 'Tool',
|
|
14
|
+
includeToolDescriptions: options.includeToolDescriptions !== false,
|
|
15
|
+
maxToolsInMessage: options.maxToolsInMessage || 30,
|
|
16
|
+
giveToolExamples: options.giveToolExamples || false,
|
|
17
|
+
maxToolExamples: options.maxToolExamples || 2
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
async modify(originalRequest, createdMessage) {
|
|
21
|
+
try {
|
|
22
|
+
const toolsResponse = await codeboltjs_1.default.mcp.listMcpFromServers(['codebolt']);
|
|
23
|
+
const tools = (toolsResponse === null || toolsResponse === void 0 ? void 0 : toolsResponse.data) || [];
|
|
24
|
+
if (tools.length === 0) {
|
|
25
|
+
return createdMessage;
|
|
26
|
+
}
|
|
27
|
+
switch (this.options.toolsLocation) {
|
|
28
|
+
case 'InsidePrompt':
|
|
29
|
+
//@ts-ignore
|
|
30
|
+
return this.addToolsInsidePrompt(createdMessage, tools);
|
|
31
|
+
//@ts-ignore
|
|
32
|
+
case 'SystemMessage':
|
|
33
|
+
//@ts-ignore
|
|
34
|
+
return this.addToolsAsSystemMessage(createdMessage, tools);
|
|
35
|
+
case 'Tool':
|
|
36
|
+
//@ts-ignore
|
|
37
|
+
return this.addToolsAsToolCalls(createdMessage, tools);
|
|
38
|
+
default:
|
|
39
|
+
//@ts-ignore
|
|
40
|
+
return this.addToolsAsToolCalls(createdMessage, tools);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
console.error('Error in ToolInjectionModifier:', error);
|
|
45
|
+
return createdMessage;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
addToolsInsidePrompt(createdMessage, tools) {
|
|
49
|
+
const toolsInfo = this.generateToolsInfo(tools);
|
|
50
|
+
// Modify the last user message to include tools information
|
|
51
|
+
const modifiedMessages = createdMessage.message.messages.map((message, index) => {
|
|
52
|
+
if (message.role === 'user' && index === createdMessage.message.messages.length - 1) {
|
|
53
|
+
return {
|
|
54
|
+
...message,
|
|
55
|
+
content: `${message.content}\n\n--- Available Tools ---\n${toolsInfo}`
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
return message;
|
|
59
|
+
});
|
|
60
|
+
return {
|
|
61
|
+
message: {
|
|
62
|
+
...createdMessage.message,
|
|
63
|
+
messages: modifiedMessages
|
|
64
|
+
},
|
|
65
|
+
metadata: {
|
|
66
|
+
...createdMessage.metadata,
|
|
67
|
+
toolsInjected: true,
|
|
68
|
+
toolsLocation: 'InsidePrompt',
|
|
69
|
+
toolsCount: tools.length
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
addToolsAsSystemMessage(createdMessage, tools) {
|
|
74
|
+
const toolsInfo = this.generateToolsInfo(tools);
|
|
75
|
+
const toolsMessage = {
|
|
76
|
+
role: 'system',
|
|
77
|
+
content: `Available Tools:\n${toolsInfo}`
|
|
78
|
+
};
|
|
79
|
+
return {
|
|
80
|
+
message: {
|
|
81
|
+
...createdMessage.message,
|
|
82
|
+
messages: [toolsMessage, ...createdMessage.message.messages]
|
|
83
|
+
},
|
|
84
|
+
metadata: {
|
|
85
|
+
...createdMessage.metadata,
|
|
86
|
+
toolsInjected: true,
|
|
87
|
+
toolsLocation: 'SystemMessage',
|
|
88
|
+
toolsCount: tools.length
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
addToolsAsToolCalls(createdMessage, tools) {
|
|
93
|
+
return {
|
|
94
|
+
message: {
|
|
95
|
+
...createdMessage.message,
|
|
96
|
+
tools,
|
|
97
|
+
tool_choice: 'auto'
|
|
98
|
+
},
|
|
99
|
+
metadata: {
|
|
100
|
+
...createdMessage.metadata,
|
|
101
|
+
toolsInjected: true,
|
|
102
|
+
toolsLocation: 'Tool',
|
|
103
|
+
toolsCount: tools.length
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
generateToolsInfo(tools) {
|
|
108
|
+
const toolsInfo = [];
|
|
109
|
+
tools.slice(0, this.options.maxToolsInMessage).forEach((tool, index) => {
|
|
110
|
+
let toolInfo = `${index + 1}. **${tool.function.name}**`;
|
|
111
|
+
if (this.options.includeToolDescriptions && tool.function.description) {
|
|
112
|
+
toolInfo += `\n Description: ${tool.function.description}`;
|
|
113
|
+
}
|
|
114
|
+
if (tool.function.parameters) {
|
|
115
|
+
const params = typeof tool.function.parameters === 'object'
|
|
116
|
+
? Object.keys(tool.function.parameters).join(', ')
|
|
117
|
+
: String(tool.function.parameters);
|
|
118
|
+
toolInfo += `\n Parameters: ${params}`;
|
|
119
|
+
}
|
|
120
|
+
if (this.options.giveToolExamples && index < this.options.maxToolExamples) {
|
|
121
|
+
const example = this.generateToolExample(tool);
|
|
122
|
+
if (example) {
|
|
123
|
+
toolInfo += `\n Example: ${example}`;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
toolsInfo.push(toolInfo);
|
|
127
|
+
});
|
|
128
|
+
return toolsInfo.join('\n\n');
|
|
129
|
+
}
|
|
130
|
+
generateToolExample(tool) {
|
|
131
|
+
// Generate simple examples based on tool name
|
|
132
|
+
const toolName = tool.function.name.toLowerCase();
|
|
133
|
+
if (toolName.includes('read') && toolName.includes('file')) {
|
|
134
|
+
return `${tool.function.name}({ filePath: "example.txt" })`;
|
|
135
|
+
}
|
|
136
|
+
if (toolName.includes('write') && toolName.includes('file')) {
|
|
137
|
+
return `${tool.function.name}({ filePath: "output.txt", content: "Hello World" })`;
|
|
138
|
+
}
|
|
139
|
+
if (toolName.includes('delete') && toolName.includes('file')) {
|
|
140
|
+
return `${tool.function.name}({ filePath: "temp.txt" })`;
|
|
141
|
+
}
|
|
142
|
+
if (toolName.includes('move') && toolName.includes('file')) {
|
|
143
|
+
return `${tool.function.name}({ sourcePath: "old.txt", destinationPath: "new.txt" })`;
|
|
144
|
+
}
|
|
145
|
+
if (toolName.includes('copy') && toolName.includes('file')) {
|
|
146
|
+
return `${tool.function.name}({ sourcePath: "source.txt", destinationPath: "copy.txt" })`;
|
|
147
|
+
}
|
|
148
|
+
// Generic example
|
|
149
|
+
return `${tool.function.name}({ /* parameters */ })`;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
exports.ToolInjectionModifier = ToolInjectionModifier;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ProcessedMessage } from "@codebolt/types/agent";
|
|
2
|
+
import { BaseMessageModifier } from "../base";
|
|
3
|
+
import { FlatUserMessage } from "@codebolt/types/sdk";
|
|
4
|
+
export interface WorkingDirectoryMessageModifierOptions {
|
|
5
|
+
showFolderStructureSummary?: boolean;
|
|
6
|
+
listFiles?: boolean;
|
|
7
|
+
listFilesDepth?: number;
|
|
8
|
+
listFilesLimit?: number;
|
|
9
|
+
listFilesIgnoreFromGitignore?: boolean;
|
|
10
|
+
listFilesIgnore?: string[];
|
|
11
|
+
maxItems?: number;
|
|
12
|
+
showFullDirectoryContext?: boolean;
|
|
13
|
+
[key: string]: unknown;
|
|
14
|
+
}
|
|
15
|
+
export declare class WorkingDirectoryMessageModifier extends BaseMessageModifier {
|
|
16
|
+
private readonly showFolderStructureSummary;
|
|
17
|
+
private readonly listFiles;
|
|
18
|
+
private readonly listFilesDepth;
|
|
19
|
+
private readonly listFilesLimit;
|
|
20
|
+
private readonly listFilesIgnoreFromGitignore;
|
|
21
|
+
private readonly listFilesIgnore;
|
|
22
|
+
private readonly maxItems;
|
|
23
|
+
private readonly showFullDirectoryContext;
|
|
24
|
+
private readonly defaultIgnoredFolders;
|
|
25
|
+
private readonly truncationIndicator;
|
|
26
|
+
constructor(options?: WorkingDirectoryMessageModifierOptions);
|
|
27
|
+
modify(originalRequest: FlatUserMessage, createdMessage: ProcessedMessage): Promise<ProcessedMessage>;
|
|
28
|
+
private generateFolderStructureSummary;
|
|
29
|
+
private generateFilesList;
|
|
30
|
+
private collectDirectories;
|
|
31
|
+
private collectFiles;
|
|
32
|
+
private shouldIgnore;
|
|
33
|
+
private getDirectoryContextString;
|
|
34
|
+
private getFolderStructure;
|
|
35
|
+
private readFullStructure;
|
|
36
|
+
private formatStructure;
|
|
37
|
+
private isTruncated;
|
|
38
|
+
}
|