@codebolt/agent 1.2.1 → 2.2.2
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/builderpattern/agent.d.ts +86 -0
- package/dist/builderpattern/agent.js +324 -0
- package/dist/builderpattern/followupquestionbuilder.d.ts +75 -0
- package/dist/builderpattern/followupquestionbuilder.js +197 -0
- package/dist/builderpattern/index.d.ts +14 -0
- package/dist/builderpattern/index.js +23 -0
- package/dist/builderpattern/llmoutputhandler.d.ts +102 -0
- package/dist/builderpattern/llmoutputhandler.js +452 -0
- package/dist/builderpattern/promptbuilder.d.ts +382 -0
- package/dist/builderpattern/promptbuilder.js +805 -0
- package/dist/builderpattern/systemprompt.d.ts +20 -0
- package/dist/builderpattern/systemprompt.js +48 -0
- package/dist/builderpattern/taskInstruction.d.ts +37 -0
- package/dist/builderpattern/taskInstruction.js +57 -0
- package/dist/builderpattern/usermessage.d.ts +70 -0
- package/dist/builderpattern/usermessage.js +123 -0
- 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 +405 -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/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 +94 -0
- package/dist/processor/types/interfaces.js +2 -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/addToolsListMessageModifier.d.ts +22 -0
- package/dist/processor-pieces/messageModifiers/addToolsListMessageModifier.js +144 -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 +15 -0
- package/dist/processor-pieces/messageModifiers/baseContextMessageModifier.js +75 -0
- package/dist/processor-pieces/messageModifiers/baseSystemInstructionMessageModifier.d.ts +11 -0
- package/dist/processor-pieces/messageModifiers/baseSystemInstructionMessageModifier.js +46 -0
- package/dist/processor-pieces/messageModifiers/chatHistoryMessageModifier.d.ts +18 -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/environmentContextModifier.d.ts +26 -0
- package/dist/processor-pieces/messageModifiers/environmentContextModifier.js +260 -0
- package/dist/processor-pieces/messageModifiers/handleUrlMessageModifier.d.ts +12 -0
- package/dist/processor-pieces/messageModifiers/handleUrlMessageModifier.js +60 -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 +18 -0
- package/dist/processor-pieces/messageModifiers/imageAttachmentMessageModifier.js +222 -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/toolInjectionModifier.d.ts +20 -0
- package/dist/processor-pieces/messageModifiers/toolInjectionModifier.js +152 -0
- package/dist/processor-pieces/messageModifiers/workingDirectoryMessageModifier.d.ts +22 -0
- package/dist/processor-pieces/messageModifiers/workingDirectoryMessageModifier.js +194 -0
- package/dist/processor-pieces/postInferenceProcessors/loopDetectionModifier.d.ts +29 -0
- package/dist/processor-pieces/postInferenceProcessors/loopDetectionModifier.js +174 -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/preInferenceProcessors/chatCompressionModifier.d.ts +35 -0
- package/dist/processor-pieces/preInferenceProcessors/chatCompressionModifier.js +255 -0
- package/dist/processor-pieces/preInferenceProcessors/index.d.ts +1 -0
- package/dist/processor-pieces/preInferenceProcessors/index.js +2 -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/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/index.d.ts +18 -0
- package/dist/unified/index.js +42 -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 +29 -7
|
@@ -0,0 +1,222 @@
|
|
|
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.ImageAttachmentMessageModifier = void 0;
|
|
37
|
+
const processor_1 = require("../../processor");
|
|
38
|
+
const fs = __importStar(require("fs/promises"));
|
|
39
|
+
const path = __importStar(require("path"));
|
|
40
|
+
class ImageAttachmentMessageModifier extends processor_1.BaseMessageModifier {
|
|
41
|
+
constructor(options = {}) {
|
|
42
|
+
super({ context: options });
|
|
43
|
+
this.passImageAs = options.passImageAs || 'URL';
|
|
44
|
+
this.supportedFormats = options.supportedFormats || ['.png', '.jpg', '.jpeg', '.gif', '.webp', '.bmp'];
|
|
45
|
+
this.maxImageSize = options.maxImageSize || 10 * 1024 * 1024; // 10MB default
|
|
46
|
+
}
|
|
47
|
+
async modify(input) {
|
|
48
|
+
try {
|
|
49
|
+
const { originalRequest, createdMessage, context } = input;
|
|
50
|
+
// Extract image references from the request
|
|
51
|
+
const imageReferences = this.extractImageReferences(originalRequest);
|
|
52
|
+
if (imageReferences.length === 0) {
|
|
53
|
+
return createdMessage;
|
|
54
|
+
}
|
|
55
|
+
const processedImages = [];
|
|
56
|
+
for (const imageRef of imageReferences) {
|
|
57
|
+
try {
|
|
58
|
+
const processedImage = await this.processImage(imageRef);
|
|
59
|
+
if (processedImage) {
|
|
60
|
+
processedImages.push(processedImage);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
console.error(`Error processing image ${imageRef}:`, error);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
if (processedImages.length === 0) {
|
|
68
|
+
return createdMessage;
|
|
69
|
+
}
|
|
70
|
+
// Add image context message
|
|
71
|
+
const imageContextMessage = {
|
|
72
|
+
role: 'system',
|
|
73
|
+
content: `Images attached to this conversation (${this.passImageAs} format):\n${processedImages.map((img, idx) => `${idx + 1}. ${img.description || img.reference}`).join('\n')}`,
|
|
74
|
+
name: 'image-attachments'
|
|
75
|
+
};
|
|
76
|
+
// Modify user messages to include image references
|
|
77
|
+
const modifiedMessages = createdMessage.messages.map(message => {
|
|
78
|
+
if (message.role === 'user') {
|
|
79
|
+
return {
|
|
80
|
+
...message,
|
|
81
|
+
attachments: processedImages
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
return message;
|
|
85
|
+
});
|
|
86
|
+
return {
|
|
87
|
+
messages: [imageContextMessage, ...modifiedMessages],
|
|
88
|
+
metadata: {
|
|
89
|
+
...createdMessage.metadata,
|
|
90
|
+
imagesAttached: processedImages.length,
|
|
91
|
+
imageFormat: this.passImageAs,
|
|
92
|
+
processedImages
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
console.error('Error in ImageAttachmentMessageModifier:', error);
|
|
98
|
+
throw error;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
extractImageReferences(request) {
|
|
102
|
+
const imageRefs = [];
|
|
103
|
+
if (typeof request === 'string') {
|
|
104
|
+
// Look for image file paths or URLs
|
|
105
|
+
const imageRegex = /(?:\.png|\.jpg|\.jpeg|\.gif|\.webp|\.bmp|https?:\/\/[^\s]+\.(?:png|jpg|jpeg|gif|webp|bmp))/gi;
|
|
106
|
+
const matches = request.match(imageRegex);
|
|
107
|
+
if (matches) {
|
|
108
|
+
imageRefs.push(...matches);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
if (typeof request === 'object' && request !== null) {
|
|
112
|
+
// Look for image properties in the request object
|
|
113
|
+
const searchForImages = (obj) => {
|
|
114
|
+
if (Array.isArray(obj)) {
|
|
115
|
+
obj.forEach(searchForImages);
|
|
116
|
+
}
|
|
117
|
+
else if (typeof obj === 'object' && obj !== null) {
|
|
118
|
+
Object.values(obj).forEach(value => {
|
|
119
|
+
if (typeof value === 'string' && this.isImagePath(value)) {
|
|
120
|
+
imageRefs.push(value);
|
|
121
|
+
}
|
|
122
|
+
else if (typeof value === 'object') {
|
|
123
|
+
searchForImages(value);
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
searchForImages(request);
|
|
129
|
+
}
|
|
130
|
+
return [...new Set(imageRefs)]; // Remove duplicates
|
|
131
|
+
}
|
|
132
|
+
isImagePath(str) {
|
|
133
|
+
const ext = path.extname(str).toLowerCase();
|
|
134
|
+
return this.supportedFormats.includes(ext) || /^https?:\/\/[^\s]+\.(?:png|jpg|jpeg|gif|webp|bmp)/i.test(str);
|
|
135
|
+
}
|
|
136
|
+
async processImage(imageRef) {
|
|
137
|
+
try {
|
|
138
|
+
if (imageRef.startsWith('http')) {
|
|
139
|
+
// URL image
|
|
140
|
+
return this.processUrlImage(imageRef);
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
// Local file path
|
|
144
|
+
return this.processLocalImage(imageRef);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
console.error(`Error processing image ${imageRef}:`, error);
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
async processUrlImage(url) {
|
|
153
|
+
switch (this.passImageAs) {
|
|
154
|
+
case 'URL':
|
|
155
|
+
return {
|
|
156
|
+
type: 'url',
|
|
157
|
+
reference: url,
|
|
158
|
+
description: `Image from URL: ${url}`
|
|
159
|
+
};
|
|
160
|
+
case 'Base64':
|
|
161
|
+
// In a real implementation, you would fetch and convert to base64
|
|
162
|
+
return {
|
|
163
|
+
type: 'base64',
|
|
164
|
+
reference: url,
|
|
165
|
+
description: `Image from URL (would be converted to base64): ${url}`,
|
|
166
|
+
note: 'Base64 conversion not implemented for URLs in this demo'
|
|
167
|
+
};
|
|
168
|
+
case 'Path':
|
|
169
|
+
return {
|
|
170
|
+
type: 'path',
|
|
171
|
+
reference: url,
|
|
172
|
+
description: `Image URL: ${url}`
|
|
173
|
+
};
|
|
174
|
+
default:
|
|
175
|
+
return null;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
async processLocalImage(filePath) {
|
|
179
|
+
try {
|
|
180
|
+
// Check if file exists and get stats
|
|
181
|
+
const stats = await fs.stat(filePath);
|
|
182
|
+
if (stats.size > this.maxImageSize) {
|
|
183
|
+
console.warn(`Image ${filePath} is too large (${stats.size} bytes)`);
|
|
184
|
+
return null;
|
|
185
|
+
}
|
|
186
|
+
switch (this.passImageAs) {
|
|
187
|
+
case 'Path':
|
|
188
|
+
return {
|
|
189
|
+
type: 'path',
|
|
190
|
+
reference: filePath,
|
|
191
|
+
description: `Local image: ${path.basename(filePath)}`,
|
|
192
|
+
size: stats.size
|
|
193
|
+
};
|
|
194
|
+
case 'Base64':
|
|
195
|
+
const imageBuffer = await fs.readFile(filePath);
|
|
196
|
+
const base64 = imageBuffer.toString('base64');
|
|
197
|
+
const ext = path.extname(filePath).substring(1);
|
|
198
|
+
return {
|
|
199
|
+
type: 'base64',
|
|
200
|
+
reference: `data:image/${ext};base64,${base64}`,
|
|
201
|
+
description: `Local image (base64): ${path.basename(filePath)}`,
|
|
202
|
+
size: stats.size
|
|
203
|
+
};
|
|
204
|
+
case 'URL':
|
|
205
|
+
// Convert local path to file:// URL
|
|
206
|
+
return {
|
|
207
|
+
type: 'url',
|
|
208
|
+
reference: `file://${path.resolve(filePath)}`,
|
|
209
|
+
description: `Local image (file URL): ${path.basename(filePath)}`,
|
|
210
|
+
size: stats.size
|
|
211
|
+
};
|
|
212
|
+
default:
|
|
213
|
+
return null;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
catch (error) {
|
|
217
|
+
console.error(`Error processing local image ${filePath}:`, error);
|
|
218
|
+
return null;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
exports.ImageAttachmentMessageModifier = ImageAttachmentMessageModifier;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { EnvironmentContextModifier, type EnvironmentContextOptions } from './environmentContextModifier';
|
|
2
|
+
export { CoreSystemPromptModifier, type CoreSystemPromptOptions } from './coreSystemPromptModifier';
|
|
3
|
+
export { DirectoryContextModifier, type DirectoryContextOptions } from './directoryContextModifier';
|
|
4
|
+
export { IdeContextModifier, type IdeContextOptions, type FileInfo, type IdeContext } from './ideContextModifier';
|
|
5
|
+
export { AtFileProcessorModifier, type AtFileProcessorOptions } from './atFileProcessorModifier';
|
|
6
|
+
export { ArgumentProcessorModifier, type ArgumentProcessorOptions } from './argumentProcessorModifier';
|
|
7
|
+
export { MemoryImportModifier, type MemoryImportOptions } from './memoryImportModifier';
|
|
8
|
+
export { LoopDetectionModifier, type LoopDetectionOptions } from '../postInferenceProcessors/loopDetectionModifier';
|
|
9
|
+
export { ToolInjectionModifier, type ToolInjectionOptions } from './toolInjectionModifier';
|
|
10
|
+
export { ChatRecordingModifier, type ChatRecordingOptions } from './chatRecordingModifier';
|
|
11
|
+
export { ChatHistoryMessageModifier, type ChatHistoryMessageModifierOptions } from './chatHistoryMessageModifier';
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChatHistoryMessageModifier = exports.ChatRecordingModifier = exports.ToolInjectionModifier = exports.LoopDetectionModifier = exports.MemoryImportModifier = exports.ArgumentProcessorModifier = exports.AtFileProcessorModifier = exports.IdeContextModifier = exports.DirectoryContextModifier = exports.CoreSystemPromptModifier = exports.EnvironmentContextModifier = void 0;
|
|
4
|
+
// Gemini-CLI equivalent modifiers
|
|
5
|
+
var environmentContextModifier_1 = require("./environmentContextModifier");
|
|
6
|
+
Object.defineProperty(exports, "EnvironmentContextModifier", { enumerable: true, get: function () { return environmentContextModifier_1.EnvironmentContextModifier; } });
|
|
7
|
+
var coreSystemPromptModifier_1 = require("./coreSystemPromptModifier");
|
|
8
|
+
Object.defineProperty(exports, "CoreSystemPromptModifier", { enumerable: true, get: function () { return coreSystemPromptModifier_1.CoreSystemPromptModifier; } });
|
|
9
|
+
var directoryContextModifier_1 = require("./directoryContextModifier");
|
|
10
|
+
Object.defineProperty(exports, "DirectoryContextModifier", { enumerable: true, get: function () { return directoryContextModifier_1.DirectoryContextModifier; } });
|
|
11
|
+
var ideContextModifier_1 = require("./ideContextModifier");
|
|
12
|
+
Object.defineProperty(exports, "IdeContextModifier", { enumerable: true, get: function () { return ideContextModifier_1.IdeContextModifier; } });
|
|
13
|
+
var atFileProcessorModifier_1 = require("./atFileProcessorModifier");
|
|
14
|
+
Object.defineProperty(exports, "AtFileProcessorModifier", { enumerable: true, get: function () { return atFileProcessorModifier_1.AtFileProcessorModifier; } });
|
|
15
|
+
var argumentProcessorModifier_1 = require("./argumentProcessorModifier");
|
|
16
|
+
Object.defineProperty(exports, "ArgumentProcessorModifier", { enumerable: true, get: function () { return argumentProcessorModifier_1.ArgumentProcessorModifier; } });
|
|
17
|
+
var memoryImportModifier_1 = require("./memoryImportModifier");
|
|
18
|
+
Object.defineProperty(exports, "MemoryImportModifier", { enumerable: true, get: function () { return memoryImportModifier_1.MemoryImportModifier; } });
|
|
19
|
+
var loopDetectionModifier_1 = require("../postInferenceProcessors/loopDetectionModifier");
|
|
20
|
+
Object.defineProperty(exports, "LoopDetectionModifier", { enumerable: true, get: function () { return loopDetectionModifier_1.LoopDetectionModifier; } });
|
|
21
|
+
var toolInjectionModifier_1 = require("./toolInjectionModifier");
|
|
22
|
+
Object.defineProperty(exports, "ToolInjectionModifier", { enumerable: true, get: function () { return toolInjectionModifier_1.ToolInjectionModifier; } });
|
|
23
|
+
var chatRecordingModifier_1 = require("./chatRecordingModifier");
|
|
24
|
+
Object.defineProperty(exports, "ChatRecordingModifier", { enumerable: true, get: function () { return chatRecordingModifier_1.ChatRecordingModifier; } });
|
|
25
|
+
var chatHistoryMessageModifier_1 = require("./chatHistoryMessageModifier");
|
|
26
|
+
Object.defineProperty(exports, "ChatHistoryMessageModifier", { enumerable: true, get: function () { return chatHistoryMessageModifier_1.ChatHistoryMessageModifier; } });
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ProcessedMessage } from "@codebolt/types/agent";
|
|
2
|
+
import { BaseMessageModifier } from "../base";
|
|
3
|
+
import { FlatUserMessage } from "@codebolt/types/sdk";
|
|
4
|
+
export interface MemoryImportOptions {
|
|
5
|
+
enableMemoryImport?: boolean;
|
|
6
|
+
maxFileSize?: number;
|
|
7
|
+
allowedExtensions?: string[];
|
|
8
|
+
basePath?: string;
|
|
9
|
+
maxImports?: number;
|
|
10
|
+
}
|
|
11
|
+
export declare class MemoryImportModifier extends BaseMessageModifier {
|
|
12
|
+
private readonly options;
|
|
13
|
+
constructor(options?: MemoryImportOptions);
|
|
14
|
+
modify(originalRequest: FlatUserMessage, createdMessage: ProcessedMessage): Promise<ProcessedMessage>;
|
|
15
|
+
}
|
|
@@ -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,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,22 @@
|
|
|
1
|
+
import { BaseMessageModifier, MessageModifierInput, ProcessedMessage } from '../../processor';
|
|
2
|
+
export interface WorkingDirectoryMessageModifierOptions {
|
|
3
|
+
showFolderStructureSummary?: boolean;
|
|
4
|
+
listFiles?: boolean;
|
|
5
|
+
listFilesDepth?: number;
|
|
6
|
+
listFilesLimit?: number;
|
|
7
|
+
listFilesIgnoreFromGitignore?: boolean;
|
|
8
|
+
listFilesIgnore?: string[];
|
|
9
|
+
}
|
|
10
|
+
export declare class WorkingDirectoryMessageModifier extends BaseMessageModifier {
|
|
11
|
+
private readonly showFolderStructureSummary;
|
|
12
|
+
private readonly listFiles;
|
|
13
|
+
private readonly listFilesDepth;
|
|
14
|
+
private readonly listFilesLimit;
|
|
15
|
+
private readonly listFilesIgnoreFromGitignore;
|
|
16
|
+
private readonly listFilesIgnore;
|
|
17
|
+
constructor(options?: WorkingDirectoryMessageModifierOptions);
|
|
18
|
+
modify(input: MessageModifierInput): Promise<ProcessedMessage>;
|
|
19
|
+
private generateFolderStructureSummary;
|
|
20
|
+
private generateFilesList;
|
|
21
|
+
private shouldIgnore;
|
|
22
|
+
}
|