@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,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Base Pre-Tool Call Processor Class
|
|
4
|
+
* Abstract base class for all pre-tool call processors
|
|
5
|
+
* These are called before the Tool Call
|
|
6
|
+
* Used to check if the Tool Call is proper and handle Local Tool Interceptor
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.BasePreToolCallProcessor = void 0;
|
|
10
|
+
class BasePreToolCallProcessor {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.context = {};
|
|
13
|
+
// this.context = options.context || {};
|
|
14
|
+
}
|
|
15
|
+
// Optional tool interceptor method
|
|
16
|
+
async interceptTool(_toolName, _toolInput) {
|
|
17
|
+
return false; // Default: don't intercept
|
|
18
|
+
}
|
|
19
|
+
setContext(key, value) {
|
|
20
|
+
this.context[key] = value;
|
|
21
|
+
}
|
|
22
|
+
getContext(key) {
|
|
23
|
+
return this.context[key];
|
|
24
|
+
}
|
|
25
|
+
clearContext() {
|
|
26
|
+
this.context = {};
|
|
27
|
+
}
|
|
28
|
+
// Helper method to create intercepted tool result
|
|
29
|
+
createInterceptedTool(toolName, originalInput, result, reason) {
|
|
30
|
+
return {
|
|
31
|
+
toolName,
|
|
32
|
+
originalInput,
|
|
33
|
+
result,
|
|
34
|
+
intercepted: true,
|
|
35
|
+
reason,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
// Helper method to validate tool call
|
|
39
|
+
validateToolCall(toolCall, validationRules) {
|
|
40
|
+
const errors = [];
|
|
41
|
+
const warnings = [];
|
|
42
|
+
const toolName = toolCall.function.name;
|
|
43
|
+
const relevantRules = validationRules.filter(rule => rule.toolName === toolName);
|
|
44
|
+
for (const rule of relevantRules) {
|
|
45
|
+
try {
|
|
46
|
+
if (!rule.validator(toolCall.function.arguments)) {
|
|
47
|
+
errors.push(rule.errorMessage);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
warnings.push(`Validation rule for '${toolName}' failed to execute: ${error}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return {
|
|
55
|
+
isValid: errors.length === 0,
|
|
56
|
+
toolName,
|
|
57
|
+
errors,
|
|
58
|
+
warnings,
|
|
59
|
+
metadata: {
|
|
60
|
+
timestamp: new Date().toISOString(),
|
|
61
|
+
processor: this.constructor.name
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.BasePreToolCallProcessor = BasePreToolCallProcessor;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base Processor Classes Index
|
|
3
|
+
* Exports all base processor classes for processor-pieces
|
|
4
|
+
*/
|
|
5
|
+
export { BaseMessageModifier } from './baseMessageModifier';
|
|
6
|
+
export { BasePreInferenceProcessor } from './basePreInferenceProcessor';
|
|
7
|
+
export { BasePostInferenceProcessor } from './basePostInferenceProcessor';
|
|
8
|
+
export { BasePreToolCallProcessor } from './basePreToolCallProcessor';
|
|
9
|
+
export { BasePostToolCallProcessor } from './basePostToolCallProcessor';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Base Processor Classes Index
|
|
4
|
+
* Exports all base processor classes for processor-pieces
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.BasePostToolCallProcessor = exports.BasePreToolCallProcessor = exports.BasePostInferenceProcessor = exports.BasePreInferenceProcessor = exports.BaseMessageModifier = void 0;
|
|
8
|
+
// Base processor classes
|
|
9
|
+
var baseMessageModifier_1 = require("./baseMessageModifier");
|
|
10
|
+
Object.defineProperty(exports, "BaseMessageModifier", { enumerable: true, get: function () { return baseMessageModifier_1.BaseMessageModifier; } });
|
|
11
|
+
var basePreInferenceProcessor_1 = require("./basePreInferenceProcessor");
|
|
12
|
+
Object.defineProperty(exports, "BasePreInferenceProcessor", { enumerable: true, get: function () { return basePreInferenceProcessor_1.BasePreInferenceProcessor; } });
|
|
13
|
+
var basePostInferenceProcessor_1 = require("./basePostInferenceProcessor");
|
|
14
|
+
Object.defineProperty(exports, "BasePostInferenceProcessor", { enumerable: true, get: function () { return basePostInferenceProcessor_1.BasePostInferenceProcessor; } });
|
|
15
|
+
var basePreToolCallProcessor_1 = require("./basePreToolCallProcessor");
|
|
16
|
+
Object.defineProperty(exports, "BasePreToolCallProcessor", { enumerable: true, get: function () { return basePreToolCallProcessor_1.BasePreToolCallProcessor; } });
|
|
17
|
+
var basePostToolCallProcessor_1 = require("./basePostToolCallProcessor");
|
|
18
|
+
Object.defineProperty(exports, "BasePostToolCallProcessor", { enumerable: true, get: function () { return basePostToolCallProcessor_1.BasePostToolCallProcessor; } });
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './messageModifiers';
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// // Reusable processors
|
|
3
|
+
// export { ChatCompressionProcessor } from './postToolCall/chatCompressionProcessor';
|
|
4
|
+
// export { LoopDetectionProcessor } from './postToolCall/loopDetectionProcessor';
|
|
5
|
+
// export { ContextManagementProcessor } from './postToolCall/contextManagementProcessor';
|
|
6
|
+
// export { AdvancedLoopDetectionProcessor } from './postToolCall/advancedLoopDetectionProcessor';
|
|
7
|
+
// export { TokenManagementProcessor } from './postToolCall/tokenManagementProcessor';
|
|
8
|
+
// export { ResponseValidationProcessor } from './postToolCall/responseValidationProcessor';
|
|
9
|
+
// export { ChatRecordingProcessor } from './postToolCall/chatRecordingProcessor';
|
|
10
|
+
// export { TelemetryProcessor } from './postToolCall/telemetryProcessor';
|
|
11
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
12
|
+
if (k2 === undefined) k2 = k;
|
|
13
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
14
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
15
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
16
|
+
}
|
|
17
|
+
Object.defineProperty(o, k2, desc);
|
|
18
|
+
}) : (function(o, m, k, k2) {
|
|
19
|
+
if (k2 === undefined) k2 = k;
|
|
20
|
+
o[k2] = m[k];
|
|
21
|
+
}));
|
|
22
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
23
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
// // Follow-up conversation processors
|
|
27
|
+
// export { ConversationCompactorProcessor } from './postToolCall/conversationCompactorProcessor';
|
|
28
|
+
// export { FollowUpConversationProcessor } from './postToolCall/followUpConversationProcessor';
|
|
29
|
+
// export { ConversationContinuityProcessor } from './postToolCall/conversationContinuityProcessor';
|
|
30
|
+
// // Pre-tool call processors
|
|
31
|
+
// export {
|
|
32
|
+
// LocalToolInterceptorProcessor,
|
|
33
|
+
// ToolValidationProcessor,
|
|
34
|
+
// ToolParameterModifierProcessor,
|
|
35
|
+
// type LocalToolInterceptorInfo,
|
|
36
|
+
// type LocalToolInterceptorProcessorOptions,
|
|
37
|
+
// type LocalToolHandler,
|
|
38
|
+
// type ToolValidationInfo,
|
|
39
|
+
// type ToolValidationProcessorOptions,
|
|
40
|
+
// type ToolParameterModificationInfo,
|
|
41
|
+
// type ParameterTransformation,
|
|
42
|
+
// type ToolParameterModifierProcessorOptions
|
|
43
|
+
// } from './preToolCall';
|
|
44
|
+
// // Reusable message modifiers
|
|
45
|
+
// export { HandleUrlMessageModifier } from './messageModifiers/handleUrlMessageModifier';
|
|
46
|
+
// export { BaseContextMessageModifier } from './messageModifiers/baseContextMessageModifier';
|
|
47
|
+
// export { WorkingDirectoryMessageModifier } from './messageModifiers/workingDirectoryMessageModifier';
|
|
48
|
+
// export { BaseSystemInstructionMessageModifier } from './messageModifiers/baseSystemInstructionMessageModifier';
|
|
49
|
+
// export { ImageAttachmentMessageModifier } from './messageModifiers/imageAttachmentMessageModifier';
|
|
50
|
+
// export { AddToolsListMessageModifier } from './messageModifiers/addToolsListMessageModifier';
|
|
51
|
+
// // Reusable tools
|
|
52
|
+
// export {
|
|
53
|
+
// FileReadTool,
|
|
54
|
+
// FileWriteTool,
|
|
55
|
+
// FileDeleteTool,
|
|
56
|
+
// FileMoveTool,
|
|
57
|
+
// FileCopyTool
|
|
58
|
+
// } from './tools/fileTools';
|
|
59
|
+
__exportStar(require("./messageModifiers"), exports);
|
|
@@ -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 AddCurrentDirectoryRootFilesModifier extends BaseMessageModifier {
|
|
5
|
+
constructor();
|
|
6
|
+
modify(originalRequest: FlatUserMessage, createdMessage: ProcessedMessage, context?: Record<string, unknown>): Promise<ProcessedMessage>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
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.AddCurrentDirectoryRootFilesModifier = void 0;
|
|
37
|
+
const base_1 = require("../base");
|
|
38
|
+
const fs = __importStar(require("fs"));
|
|
39
|
+
class AddCurrentDirectoryRootFilesModifier extends base_1.BaseMessageModifier {
|
|
40
|
+
constructor() {
|
|
41
|
+
super();
|
|
42
|
+
}
|
|
43
|
+
async modify(originalRequest, createdMessage, context) {
|
|
44
|
+
try {
|
|
45
|
+
// Use current working directory
|
|
46
|
+
const currentPath = process.cwd();
|
|
47
|
+
// Read directory contents
|
|
48
|
+
const files = await fs.promises.readdir(currentPath, { withFileTypes: true });
|
|
49
|
+
// Format files list with type indicators
|
|
50
|
+
const filesList = files
|
|
51
|
+
.map(file => {
|
|
52
|
+
return ` ${file.name}`;
|
|
53
|
+
})
|
|
54
|
+
.join('\n');
|
|
55
|
+
const filesContent = filesList || 'No files found';
|
|
56
|
+
// Find system message and append files list to it
|
|
57
|
+
const messages = [...createdMessage.message.messages];
|
|
58
|
+
const systemMessageIndex = messages.findIndex(message => message.role === 'system');
|
|
59
|
+
if (systemMessageIndex !== -1) {
|
|
60
|
+
// Update existing system message
|
|
61
|
+
messages[systemMessageIndex] = {
|
|
62
|
+
...messages[systemMessageIndex],
|
|
63
|
+
content: `${messages[systemMessageIndex].content}\n\nCurrent directory root files:\n\n${filesContent}`
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
// Add new system message if none exists
|
|
68
|
+
messages.unshift({
|
|
69
|
+
role: 'system',
|
|
70
|
+
content: `Current directory root files:\n\n${filesContent}`
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
// Return updated message
|
|
74
|
+
return {
|
|
75
|
+
message: {
|
|
76
|
+
...createdMessage.message,
|
|
77
|
+
messages
|
|
78
|
+
},
|
|
79
|
+
metadata: {
|
|
80
|
+
...createdMessage.metadata,
|
|
81
|
+
currentDirectoryFilesAdded: true,
|
|
82
|
+
currentDirectoryPath: currentPath
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
console.error('Error in AddCurrentDirectoryRootFilesModifier:', error);
|
|
88
|
+
// Return original message if there's an error
|
|
89
|
+
return createdMessage;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
exports.AddCurrentDirectoryRootFilesModifier = AddCurrentDirectoryRootFilesModifier;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ProcessedMessage } from "@codebolt/types/agent";
|
|
2
|
+
import { BaseMessageModifier } from "../base";
|
|
3
|
+
import { FlatUserMessage, Tool } from "@codebolt/types/sdk";
|
|
4
|
+
export interface ToolList {
|
|
5
|
+
getAllTools(): Tool[];
|
|
6
|
+
addTool?(tool: Tool): void;
|
|
7
|
+
removeTool?(toolName: string): void;
|
|
8
|
+
getTool?(toolName: string): Tool | undefined;
|
|
9
|
+
getToolNames?(): string[];
|
|
10
|
+
}
|
|
11
|
+
export interface AddToolsListMessageModifierOptions {
|
|
12
|
+
toolsList?: ToolList;
|
|
13
|
+
addToolsLocation?: 'InsidePrompt' | 'Tool' | 'SystemMessage';
|
|
14
|
+
giveToolExamples?: boolean;
|
|
15
|
+
maxToolExamples?: number;
|
|
16
|
+
includeToolDescriptions?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export declare class AddToolsListMessageModifier extends BaseMessageModifier {
|
|
19
|
+
private readonly toolsList?;
|
|
20
|
+
private readonly addToolsLocation;
|
|
21
|
+
private readonly giveToolExamples;
|
|
22
|
+
private readonly maxToolExamples;
|
|
23
|
+
private readonly includeToolDescriptions;
|
|
24
|
+
constructor(options?: AddToolsListMessageModifierOptions);
|
|
25
|
+
modify(originalRequest: FlatUserMessage, createdMessage: ProcessedMessage): Promise<ProcessedMessage>;
|
|
26
|
+
private addToolsInsidePrompt;
|
|
27
|
+
private addToolsAsSystemMessage;
|
|
28
|
+
private addToolsAsToolCalls;
|
|
29
|
+
private generateToolsInfo;
|
|
30
|
+
private generateToolExample;
|
|
31
|
+
}
|
|
@@ -0,0 +1,145 @@
|
|
|
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.AddToolsListMessageModifier = void 0;
|
|
7
|
+
const base_1 = require("../base");
|
|
8
|
+
const codeboltjs_1 = __importDefault(require("@codebolt/codeboltjs"));
|
|
9
|
+
class AddToolsListMessageModifier extends base_1.BaseMessageModifier {
|
|
10
|
+
constructor(options = {}) {
|
|
11
|
+
super({ context: options });
|
|
12
|
+
this.toolsList = options.toolsList;
|
|
13
|
+
this.addToolsLocation = options.addToolsLocation || 'SystemMessage';
|
|
14
|
+
this.giveToolExamples = options.giveToolExamples || false;
|
|
15
|
+
this.maxToolExamples = options.maxToolExamples || 2;
|
|
16
|
+
this.includeToolDescriptions = options.includeToolDescriptions !== false; // default true
|
|
17
|
+
}
|
|
18
|
+
async modify(originalRequest, createdMessage) {
|
|
19
|
+
try {
|
|
20
|
+
const toolsResponse = await codeboltjs_1.default.mcp.listMcpFromServers(['codebolt']);
|
|
21
|
+
const tools = (toolsResponse === null || toolsResponse === void 0 ? void 0 : toolsResponse.data) || [];
|
|
22
|
+
if (tools.length === 0) {
|
|
23
|
+
return createdMessage;
|
|
24
|
+
}
|
|
25
|
+
switch (this.addToolsLocation) {
|
|
26
|
+
case 'InsidePrompt':
|
|
27
|
+
return this.addToolsInsidePrompt(createdMessage, tools);
|
|
28
|
+
case 'SystemMessage':
|
|
29
|
+
return this.addToolsAsSystemMessage(createdMessage, tools);
|
|
30
|
+
case 'Tool':
|
|
31
|
+
return this.addToolsAsToolCalls(createdMessage, tools);
|
|
32
|
+
default:
|
|
33
|
+
return this.addToolsAsToolCalls(createdMessage, tools);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
console.error('Error in AddToolsListMessageModifier:', error);
|
|
38
|
+
throw error;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
addToolsInsidePrompt(createdMessage, tools) {
|
|
42
|
+
const toolsInfo = this.generateToolsInfo(tools);
|
|
43
|
+
// Modify the last user message to include tools information
|
|
44
|
+
const modifiedMessages = createdMessage.message.messages.map((message, index) => {
|
|
45
|
+
if (message.role === 'user' && index === createdMessage.message.messages.length - 1) {
|
|
46
|
+
return {
|
|
47
|
+
...message,
|
|
48
|
+
content: `${message.content}\n\n--- Available Tools ---\n${toolsInfo}`
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
return message;
|
|
52
|
+
});
|
|
53
|
+
return {
|
|
54
|
+
message: {
|
|
55
|
+
...createdMessage.message,
|
|
56
|
+
messages: modifiedMessages
|
|
57
|
+
},
|
|
58
|
+
metadata: {
|
|
59
|
+
...createdMessage.metadata,
|
|
60
|
+
toolsListAdded: true,
|
|
61
|
+
toolsLocation: 'InsidePrompt',
|
|
62
|
+
toolsCount: tools.length
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
addToolsAsSystemMessage(createdMessage, tools) {
|
|
67
|
+
const toolsInfo = this.generateToolsInfo(tools);
|
|
68
|
+
const toolsMessage = {
|
|
69
|
+
role: 'system',
|
|
70
|
+
content: `Available Tools:\n${toolsInfo}`
|
|
71
|
+
};
|
|
72
|
+
return {
|
|
73
|
+
message: {
|
|
74
|
+
...createdMessage.message,
|
|
75
|
+
messages: [toolsMessage, ...createdMessage.message.messages]
|
|
76
|
+
},
|
|
77
|
+
metadata: {
|
|
78
|
+
...createdMessage.metadata,
|
|
79
|
+
toolsListAdded: true,
|
|
80
|
+
toolsLocation: 'SystemMessage',
|
|
81
|
+
toolsCount: tools.length
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
addToolsAsToolCalls(createdMessage, tools) {
|
|
86
|
+
return {
|
|
87
|
+
message: {
|
|
88
|
+
...createdMessage.message,
|
|
89
|
+
tools,
|
|
90
|
+
tool_choice: 'auto'
|
|
91
|
+
},
|
|
92
|
+
metadata: {
|
|
93
|
+
...createdMessage.metadata,
|
|
94
|
+
toolsListAdded: true,
|
|
95
|
+
toolsLocation: 'Tool',
|
|
96
|
+
toolsCount: tools.length
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
generateToolsInfo(tools) {
|
|
101
|
+
const toolsInfo = [];
|
|
102
|
+
tools.forEach((tool, index) => {
|
|
103
|
+
let toolInfo = `${index + 1}. **${tool.function.name}**`;
|
|
104
|
+
if (this.includeToolDescriptions && tool.function.description) {
|
|
105
|
+
toolInfo += `\n Description: ${tool.function.description}`;
|
|
106
|
+
}
|
|
107
|
+
if (tool.function.parameters) {
|
|
108
|
+
const params = typeof tool.function.parameters === 'object'
|
|
109
|
+
? Object.keys(tool.function.parameters).join(', ')
|
|
110
|
+
: String(tool.function.parameters);
|
|
111
|
+
toolInfo += `\n Parameters: ${params}`;
|
|
112
|
+
}
|
|
113
|
+
if (this.giveToolExamples && index < this.maxToolExamples) {
|
|
114
|
+
const example = this.generateToolExample(tool);
|
|
115
|
+
if (example) {
|
|
116
|
+
toolInfo += `\n Example: ${example}`;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
toolsInfo.push(toolInfo);
|
|
120
|
+
});
|
|
121
|
+
return toolsInfo.join('\n\n');
|
|
122
|
+
}
|
|
123
|
+
generateToolExample(tool) {
|
|
124
|
+
// Generate simple examples based on tool name
|
|
125
|
+
const toolName = tool.function.name.toLowerCase();
|
|
126
|
+
if (toolName.includes('read') && toolName.includes('file')) {
|
|
127
|
+
return `${tool.function.name}({ filePath: "example.txt" })`;
|
|
128
|
+
}
|
|
129
|
+
if (toolName.includes('write') && toolName.includes('file')) {
|
|
130
|
+
return `${tool.function.name}({ filePath: "output.txt", content: "Hello World" })`;
|
|
131
|
+
}
|
|
132
|
+
if (toolName.includes('delete') && toolName.includes('file')) {
|
|
133
|
+
return `${tool.function.name}({ filePath: "temp.txt" })`;
|
|
134
|
+
}
|
|
135
|
+
if (toolName.includes('move') && toolName.includes('file')) {
|
|
136
|
+
return `${tool.function.name}({ sourcePath: "old.txt", destinationPath: "new.txt" })`;
|
|
137
|
+
}
|
|
138
|
+
if (toolName.includes('copy') && toolName.includes('file')) {
|
|
139
|
+
return `${tool.function.name}({ sourcePath: "source.txt", destinationPath: "copy.txt" })`;
|
|
140
|
+
}
|
|
141
|
+
// Generic example
|
|
142
|
+
return `${tool.function.name}({ /* parameters */ })`;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
exports.AddToolsListMessageModifier = AddToolsListMessageModifier;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ProcessedMessage } from "@codebolt/types/agent";
|
|
2
|
+
import { BaseMessageModifier } from "../base";
|
|
3
|
+
import { FlatUserMessage } from "@codebolt/types/sdk";
|
|
4
|
+
export declare class AdvancedSystemInstructionMessageModifier extends BaseMessageModifier {
|
|
5
|
+
private readonly systemInstruction;
|
|
6
|
+
constructor(systemInstruction?: string);
|
|
7
|
+
modify(originalRequest: FlatUserMessage, createdMessage: ProcessedMessage): Promise<ProcessedMessage>;
|
|
8
|
+
private getAdvancedSystemPrompt;
|
|
9
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AdvancedSystemInstructionMessageModifier = void 0;
|
|
4
|
+
const base_1 = require("../base");
|
|
5
|
+
class AdvancedSystemInstructionMessageModifier extends base_1.BaseMessageModifier {
|
|
6
|
+
constructor(systemInstruction) {
|
|
7
|
+
super();
|
|
8
|
+
this.systemInstruction = systemInstruction || this.getAdvancedSystemPrompt();
|
|
9
|
+
}
|
|
10
|
+
async modify(originalRequest, createdMessage) {
|
|
11
|
+
try {
|
|
12
|
+
const systemMessage = {
|
|
13
|
+
role: 'system',
|
|
14
|
+
content: this.systemInstruction
|
|
15
|
+
};
|
|
16
|
+
const messages = [...(createdMessage.message.messages || [])];
|
|
17
|
+
const existingSystemIndex = messages.findIndex(msg => msg.role === 'system');
|
|
18
|
+
if (existingSystemIndex !== -1) {
|
|
19
|
+
messages[existingSystemIndex] = systemMessage;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
messages.unshift(systemMessage);
|
|
23
|
+
}
|
|
24
|
+
return {
|
|
25
|
+
message: {
|
|
26
|
+
...createdMessage.message,
|
|
27
|
+
messages
|
|
28
|
+
},
|
|
29
|
+
metadata: {
|
|
30
|
+
...createdMessage.metadata
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
console.error('Error in AdvancedSystemInstructionMessageModifier:', error);
|
|
36
|
+
throw error;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
getAdvancedSystemPrompt() {
|
|
40
|
+
const advancedPrompt = `
|
|
41
|
+
You are an advanced AI software engineering assistant with expertise in multiple programming languages, frameworks, and best practices. Your primary goal is to assist users efficiently and safely while adhering to the following guidelines:
|
|
42
|
+
|
|
43
|
+
1. Code Quality and Best Practices:
|
|
44
|
+
- Write clean, efficient, and maintainable code
|
|
45
|
+
- Follow SOLID principles and design patterns when appropriate
|
|
46
|
+
- Implement proper error handling and logging
|
|
47
|
+
- Write unit tests for new functionality
|
|
48
|
+
- Ensure code is secure and follows cybersecurity best practices
|
|
49
|
+
|
|
50
|
+
2. Project-Specific Considerations:
|
|
51
|
+
- Analyze and adhere to existing project structure, naming conventions, and coding style
|
|
52
|
+
- Use established libraries and frameworks within the project
|
|
53
|
+
- Consider scalability and performance implications of changes
|
|
54
|
+
- Maintain backward compatibility unless explicitly instructed otherwise
|
|
55
|
+
|
|
56
|
+
3. Communication and Collaboration:
|
|
57
|
+
- Provide clear, concise explanations for your decisions and implementations
|
|
58
|
+
- Ask clarifying questions when requirements are ambiguous
|
|
59
|
+
- Suggest improvements or alternatives when appropriate
|
|
60
|
+
- Break down complex tasks into manageable steps
|
|
61
|
+
|
|
62
|
+
4. Continuous Learning and Adaptation:
|
|
63
|
+
- Stay updated on latest industry trends and best practices
|
|
64
|
+
- Adapt your approach based on user feedback and project requirements
|
|
65
|
+
- Recommend modern tools and techniques when beneficial to the project
|
|
66
|
+
|
|
67
|
+
5. Ethical Considerations:
|
|
68
|
+
- Respect intellectual property rights and licensing
|
|
69
|
+
- Avoid implementing features that could be used maliciously
|
|
70
|
+
- Promote inclusive and accessible code practices
|
|
71
|
+
|
|
72
|
+
Remember to use the provided tools effectively, always prioritize user safety and project integrity, and strive for excellence in every task you undertake.
|
|
73
|
+
`.trim();
|
|
74
|
+
return advancedPrompt;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.AdvancedSystemInstructionMessageModifier = AdvancedSystemInstructionMessageModifier;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ProcessedMessage } from "@codebolt/types/agent";
|
|
2
|
+
import { BaseMessageModifier } from "../base";
|
|
3
|
+
import { FlatUserMessage } from "@codebolt/types/sdk";
|
|
4
|
+
export interface ArgumentProcessorOptions {
|
|
5
|
+
appendRawInvocation?: boolean;
|
|
6
|
+
argumentSeparator?: string;
|
|
7
|
+
includeCommandName?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare class ArgumentProcessorModifier extends BaseMessageModifier {
|
|
10
|
+
private readonly options;
|
|
11
|
+
constructor(options?: ArgumentProcessorOptions);
|
|
12
|
+
modify(originalRequest: FlatUserMessage, createdMessage: ProcessedMessage): Promise<ProcessedMessage>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ArgumentProcessorModifier = void 0;
|
|
4
|
+
const base_1 = require("../base");
|
|
5
|
+
class ArgumentProcessorModifier extends base_1.BaseMessageModifier {
|
|
6
|
+
constructor(options = {}) {
|
|
7
|
+
super();
|
|
8
|
+
this.options = {
|
|
9
|
+
appendRawInvocation: options.appendRawInvocation !== false,
|
|
10
|
+
argumentSeparator: options.argumentSeparator || ' ',
|
|
11
|
+
includeCommandName: options.includeCommandName || false
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
modify(originalRequest, createdMessage) {
|
|
15
|
+
var _a;
|
|
16
|
+
try {
|
|
17
|
+
// Get arguments from metadata
|
|
18
|
+
const invocation = (_a = createdMessage.metadata) === null || _a === void 0 ? void 0 : _a.invocation;
|
|
19
|
+
if (!(invocation === null || invocation === void 0 ? void 0 : invocation.args)) {
|
|
20
|
+
return Promise.resolve(createdMessage);
|
|
21
|
+
}
|
|
22
|
+
// Find the user message to append arguments to
|
|
23
|
+
const userMessage = createdMessage.message.messages.find(msg => msg.role === 'user');
|
|
24
|
+
if (!userMessage || typeof userMessage.content !== 'string') {
|
|
25
|
+
return Promise.resolve(createdMessage);
|
|
26
|
+
}
|
|
27
|
+
let appendContent = '';
|
|
28
|
+
if (this.options.appendRawInvocation && invocation.raw) {
|
|
29
|
+
// Append the full raw command invocation
|
|
30
|
+
appendContent = `\n\nFull command: ${invocation.raw}`;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
// Append just the arguments
|
|
34
|
+
let argsToAppend = invocation.args;
|
|
35
|
+
if (this.options.includeCommandName && invocation.name) {
|
|
36
|
+
argsToAppend = `${invocation.name}${this.options.argumentSeparator}${argsToAppend}`;
|
|
37
|
+
}
|
|
38
|
+
appendContent = `\n\nArguments: ${argsToAppend}`;
|
|
39
|
+
}
|
|
40
|
+
// Update the user message with appended arguments
|
|
41
|
+
const updatedMessages = createdMessage.message.messages.map(msg => {
|
|
42
|
+
if (msg.role === 'user' && typeof msg.content === 'string' && msg === userMessage) {
|
|
43
|
+
return {
|
|
44
|
+
...msg,
|
|
45
|
+
content: msg.content + appendContent
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
return msg;
|
|
49
|
+
});
|
|
50
|
+
return Promise.resolve({
|
|
51
|
+
message: {
|
|
52
|
+
...createdMessage.message,
|
|
53
|
+
messages: updatedMessages
|
|
54
|
+
},
|
|
55
|
+
metadata: {
|
|
56
|
+
...createdMessage.metadata,
|
|
57
|
+
argumentsProcessed: true,
|
|
58
|
+
argumentsAppended: appendContent.trim()
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
console.error('Error in ArgumentProcessorModifier:', error);
|
|
64
|
+
return Promise.resolve(createdMessage);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
exports.ArgumentProcessorModifier = ArgumentProcessorModifier;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ProcessedMessage } from "@codebolt/types/agent";
|
|
2
|
+
import { BaseMessageModifier } from "../base";
|
|
3
|
+
import { FlatUserMessage } from "@codebolt/types/sdk";
|
|
4
|
+
export interface AtFileProcessorOptions {
|
|
5
|
+
maxFileSize?: number;
|
|
6
|
+
allowedExtensions?: string[];
|
|
7
|
+
enableRecursiveSearch?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare class AtFileProcessorModifier extends BaseMessageModifier {
|
|
10
|
+
private readonly options;
|
|
11
|
+
constructor(options?: AtFileProcessorOptions);
|
|
12
|
+
modify(originalRequest: FlatUserMessage, createdMessage: ProcessedMessage): Promise<ProcessedMessage>;
|
|
13
|
+
private processMentionedPaths;
|
|
14
|
+
private buildContentParts;
|
|
15
|
+
private resolvePath;
|
|
16
|
+
private globSearch;
|
|
17
|
+
private findFiles;
|
|
18
|
+
private readManyFiles;
|
|
19
|
+
private readFileContent;
|
|
20
|
+
private getFilesInFolder;
|
|
21
|
+
private getFolderStructure;
|
|
22
|
+
private findLastUserMessage;
|
|
23
|
+
private getProjectPath;
|
|
24
|
+
private isNodeError;
|
|
25
|
+
}
|