@codebolt/agent 5.0.1 → 5.0.6

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.
Files changed (160) hide show
  1. package/dist/agent.d.ts +86 -0
  2. package/dist/agent.js +324 -0
  3. package/dist/builderpattern/agent.js +2 -2
  4. package/dist/builderpattern/followupquestionbuilder.js +1 -1
  5. package/dist/builderpattern/llmoutputhandler.js +7 -7
  6. package/dist/builderpattern/usermessage.d.ts +1 -6
  7. package/dist/composablepattern/document.js +35 -2
  8. package/dist/followupquestionbuilder.d.ts +75 -0
  9. package/dist/followupquestionbuilder.js +197 -0
  10. package/dist/index.d.ts +14 -0
  11. package/dist/index.js +23 -0
  12. package/dist/llmoutputhandler.d.ts +102 -0
  13. package/dist/llmoutputhandler.js +452 -0
  14. package/dist/processor/types/interfaces.d.ts +21 -44
  15. package/dist/processor-pieces/index.d.ts +3 -0
  16. package/dist/processor-pieces/index.js +3 -0
  17. package/dist/processor-pieces/messageModifiers/addToolsListMessageModifier.d.ts +5 -14
  18. package/dist/processor-pieces/messageModifiers/addToolsListMessageModifier.js +40 -41
  19. package/dist/processor-pieces/messageModifiers/baseContextMessageModifier.d.ts +13 -5
  20. package/dist/processor-pieces/messageModifiers/baseContextMessageModifier.js +58 -50
  21. package/dist/processor-pieces/messageModifiers/baseSystemInstructionMessageModifier.d.ts +8 -6
  22. package/dist/processor-pieces/messageModifiers/baseSystemInstructionMessageModifier.js +22 -66
  23. package/dist/processor-pieces/messageModifiers/handleUrlMessageModifier.d.ts +2 -3
  24. package/dist/processor-pieces/messageModifiers/handleUrlMessageModifier.js +2 -1
  25. package/dist/processor-pieces/messageModifiers/imageAttachmentMessageModifier.d.ts +2 -3
  26. package/dist/processor-pieces/messageModifiers/imageAttachmentMessageModifier.js +2 -1
  27. package/dist/processor-pieces/messageModifiers/toolInjectionModifier.js +4 -1
  28. package/dist/processor-pieces/messageModifiers/workingDirectoryMessageModifier.d.ts +2 -18
  29. package/dist/processor-pieces/messageModifiers/workingDirectoryMessageModifier.js +93 -291
  30. package/dist/processor-pieces/postToolCallProcessors/conversationCompactorModifier.d.ts +18 -0
  31. package/dist/processor-pieces/postToolCallProcessors/conversationCompactorModifier.js +41 -0
  32. package/dist/processor-pieces/postToolCallProcessors/index.d.ts +2 -1
  33. package/dist/processor-pieces/postToolCallProcessors/index.js +5 -0
  34. package/dist/processor-pieces/preInferenceProcessors/index.d.ts +1 -1
  35. package/dist/processor-pieces/preInferenceProcessors/index.js +3 -0
  36. package/dist/processor-pieces/pretoolCallProcessors/index.d.ts +2 -1
  37. package/dist/processor-pieces/pretoolCallProcessors/index.js +5 -0
  38. package/dist/processor-pieces/pretoolCallProcessors/toolParameterModifier.d.ts +21 -0
  39. package/dist/processor-pieces/pretoolCallProcessors/toolParameterModifier.js +32 -0
  40. package/dist/processor-pieces/pretoolCallProcessors/toolValidationModifier.d.ts +16 -0
  41. package/dist/processor-pieces/pretoolCallProcessors/toolValidationModifier.js +37 -0
  42. package/dist/promptbuilder.d.ts +382 -0
  43. package/dist/promptbuilder.js +805 -0
  44. package/dist/systemprompt.d.ts +20 -0
  45. package/dist/systemprompt.js +48 -0
  46. package/dist/taskInstruction.d.ts +37 -0
  47. package/dist/taskInstruction.js +57 -0
  48. package/dist/unified/agent/agent.js +2 -2
  49. package/dist/unified/agent/codeboltAgent.d.ts +122 -0
  50. package/dist/unified/agent/codeboltAgent.js +210 -0
  51. package/dist/unified/base/initialPromptGenerator.js +18 -4
  52. package/dist/unified/base/responseExecutor.d.ts +3 -2
  53. package/dist/unified/base/responseExecutor.js +100 -56
  54. package/dist/unified/index.d.ts +4 -0
  55. package/dist/unified/index.js +12 -1
  56. package/dist/usermessage.d.ts +70 -0
  57. package/dist/usermessage.js +123 -0
  58. package/package.json +5 -5
  59. package/dist/local-tools/fileTools.d.ts +0 -26
  60. package/dist/local-tools/fileTools.js +0 -162
  61. package/dist/processor-pieces/additionalModifiers/argumentProcessorModifier.d.ts +0 -13
  62. package/dist/processor-pieces/additionalModifiers/argumentProcessorModifier.js +0 -68
  63. package/dist/processor-pieces/additionalModifiers/atFileProcessorModifier.d.ts +0 -15
  64. package/dist/processor-pieces/additionalModifiers/atFileProcessorModifier.js +0 -212
  65. package/dist/processor-pieces/additionalModifiers/chatCompressionModifier.d.ts +0 -19
  66. package/dist/processor-pieces/additionalModifiers/chatCompressionModifier.js +0 -110
  67. package/dist/processor-pieces/additionalModifiers/chatRecordingModifier.d.ts +0 -23
  68. package/dist/processor-pieces/additionalModifiers/chatRecordingModifier.js +0 -173
  69. package/dist/processor-pieces/additionalModifiers/coreSystemPromptModifier.d.ts +0 -14
  70. package/dist/processor-pieces/additionalModifiers/coreSystemPromptModifier.js +0 -93
  71. package/dist/processor-pieces/additionalModifiers/directoryContextModifier.d.ts +0 -30
  72. package/dist/processor-pieces/additionalModifiers/directoryContextModifier.js +0 -330
  73. package/dist/processor-pieces/additionalModifiers/environmentContextModifier.d.ts +0 -26
  74. package/dist/processor-pieces/additionalModifiers/environmentContextModifier.js +0 -269
  75. package/dist/processor-pieces/additionalModifiers/fallbackHandlerModifier.d.ts +0 -38
  76. package/dist/processor-pieces/additionalModifiers/fallbackHandlerModifier.js +0 -217
  77. package/dist/processor-pieces/additionalModifiers/ideContextModifier.d.ts +0 -34
  78. package/dist/processor-pieces/additionalModifiers/ideContextModifier.js +0 -147
  79. package/dist/processor-pieces/additionalModifiers/index.d.ts +0 -12
  80. package/dist/processor-pieces/additionalModifiers/index.js +0 -28
  81. package/dist/processor-pieces/additionalModifiers/loopDetectionModifier.d.ts +0 -29
  82. package/dist/processor-pieces/additionalModifiers/loopDetectionModifier.js +0 -155
  83. package/dist/processor-pieces/additionalModifiers/memoryImportModifier.d.ts +0 -15
  84. package/dist/processor-pieces/additionalModifiers/memoryImportModifier.js +0 -129
  85. package/dist/processor-pieces/additionalModifiers/shellProcessorModifier.d.ts +0 -25
  86. package/dist/processor-pieces/additionalModifiers/shellProcessorModifier.js +0 -169
  87. package/dist/processor-pieces/additionalModifiers/toolInjectionModifier.d.ts +0 -20
  88. package/dist/processor-pieces/additionalModifiers/toolInjectionModifier.js +0 -152
  89. package/dist/processor-pieces/messageModifiers/addCurrentDirectoryRootFilesModifier.d.ts +0 -7
  90. package/dist/processor-pieces/messageModifiers/addCurrentDirectoryRootFilesModifier.js +0 -93
  91. package/dist/processor-pieces/messageModifiers/advancedSystemInstructionMessageModifier.d.ts +0 -9
  92. package/dist/processor-pieces/messageModifiers/advancedSystemInstructionMessageModifier.js +0 -77
  93. package/dist/processor-pieces/messageModifiers/chatCompressionModifier.d.ts +0 -19
  94. package/dist/processor-pieces/messageModifiers/chatCompressionModifier.js +0 -110
  95. package/dist/processor-pieces/messageModifiers/chatHistoryMessageModifier.example.d.ts +0 -20
  96. package/dist/processor-pieces/messageModifiers/chatHistoryMessageModifier.example.js +0 -124
  97. package/dist/processor-pieces/messageModifiers/environmentContext.d.ts +0 -41
  98. package/dist/processor-pieces/messageModifiers/environmentContext.js +0 -355
  99. package/dist/processor-pieces/messageModifiers/mentionedFilesModifier.d.ts +0 -23
  100. package/dist/processor-pieces/messageModifiers/mentionedFilesModifier.js +0 -207
  101. package/dist/processor-pieces/messageModifiers/simpleMessageModifier.d.ts +0 -7
  102. package/dist/processor-pieces/messageModifiers/simpleMessageModifier.js +0 -26
  103. package/dist/processor-pieces/postInference/llmOutputValidityProcessor.d.ts +0 -1
  104. package/dist/processor-pieces/postInference/llmOutputValidityProcessor.js +0 -2
  105. package/dist/processor-pieces/postInferenceProcessors/checkForNoToolCall.d.ts +0 -7
  106. package/dist/processor-pieces/postInferenceProcessors/checkForNoToolCall.js +0 -24
  107. package/dist/processor-pieces/postToolCall/advancedLoopDetectionProcessor.d.ts +0 -41
  108. package/dist/processor-pieces/postToolCall/advancedLoopDetectionProcessor.js +0 -197
  109. package/dist/processor-pieces/postToolCall/chatCompressionProcessor.d.ts +0 -26
  110. package/dist/processor-pieces/postToolCall/chatCompressionProcessor.js +0 -90
  111. package/dist/processor-pieces/postToolCall/chatRecordingProcessor.d.ts +0 -81
  112. package/dist/processor-pieces/postToolCall/chatRecordingProcessor.js +0 -329
  113. package/dist/processor-pieces/postToolCall/contextManagementProcessor.d.ts +0 -40
  114. package/dist/processor-pieces/postToolCall/contextManagementProcessor.js +0 -272
  115. package/dist/processor-pieces/postToolCall/conversationCompactorProcessor.d.ts +0 -49
  116. package/dist/processor-pieces/postToolCall/conversationCompactorProcessor.js +0 -291
  117. package/dist/processor-pieces/postToolCall/conversationContinuityProcessor.d.ts +0 -49
  118. package/dist/processor-pieces/postToolCall/conversationContinuityProcessor.js +0 -293
  119. package/dist/processor-pieces/postToolCall/followUpConversationProcessor.d.ts +0 -47
  120. package/dist/processor-pieces/postToolCall/followUpConversationProcessor.js +0 -249
  121. package/dist/processor-pieces/postToolCall/loopDetectionProcessor.d.ts +0 -30
  122. package/dist/processor-pieces/postToolCall/loopDetectionProcessor.js +0 -137
  123. package/dist/processor-pieces/postToolCall/responseValidationProcessor.d.ts +0 -30
  124. package/dist/processor-pieces/postToolCall/responseValidationProcessor.js +0 -228
  125. package/dist/processor-pieces/postToolCall/telemetryProcessor.d.ts +0 -99
  126. package/dist/processor-pieces/postToolCall/telemetryProcessor.js +0 -278
  127. package/dist/processor-pieces/postToolCall/tokenManagementProcessor.d.ts +0 -37
  128. package/dist/processor-pieces/postToolCall/tokenManagementProcessor.js +0 -178
  129. package/dist/processor-pieces/postToolCall/toolExecutionProcessor.d.ts +0 -43
  130. package/dist/processor-pieces/postToolCall/toolExecutionProcessor.js +0 -207
  131. package/dist/processor-pieces/preInference/conversationCompactorProcessor.d.ts +0 -52
  132. package/dist/processor-pieces/preInference/conversationCompactorProcessor.js +0 -264
  133. package/dist/processor-pieces/preInference/conversationContinuityProcessor.d.ts +0 -49
  134. package/dist/processor-pieces/preInference/conversationContinuityProcessor.js +0 -293
  135. package/dist/processor-pieces/preInferenceProcessors/conversationCompaction.d.ts +0 -7
  136. package/dist/processor-pieces/preInferenceProcessors/conversationCompaction.js +0 -31
  137. package/dist/processor-pieces/preToolCall/index.d.ts +0 -9
  138. package/dist/processor-pieces/preToolCall/index.js +0 -18
  139. package/dist/processor-pieces/preToolCall/localToolInterceptorProcessor.d.ts +0 -58
  140. package/dist/processor-pieces/preToolCall/localToolInterceptorProcessor.js +0 -444
  141. package/dist/processor-pieces/preToolCall/toolParameterModifierProcessor.d.ts +0 -44
  142. package/dist/processor-pieces/preToolCall/toolParameterModifierProcessor.js +0 -367
  143. package/dist/processor-pieces/preToolCall/toolValidationProcessor.d.ts +0 -58
  144. package/dist/processor-pieces/preToolCall/toolValidationProcessor.js +0 -391
  145. package/dist/unified/agent/tool.d.ts +0 -99
  146. package/dist/unified/agent/tool.js +0 -440
  147. package/dist/unified/examples/agentExample.d.ts +0 -46
  148. package/dist/unified/examples/agentExample.js +0 -464
  149. package/dist/unified/examples/documentationPatternExample.d.ts +0 -10
  150. package/dist/unified/examples/documentationPatternExample.js +0 -385
  151. package/dist/unified/examples/followUpProcessorsExample.d.ts +0 -45
  152. package/dist/unified/examples/followUpProcessorsExample.js +0 -311
  153. package/dist/unified/examples/orchestratorExample.d.ts +0 -16
  154. package/dist/unified/examples/orchestratorExample.js +0 -415
  155. package/dist/unified/examples/preToolCallProcessorsExample.d.ts +0 -36
  156. package/dist/unified/examples/preToolCallProcessorsExample.js +0 -458
  157. package/dist/unified/examples/workflowExample.d.ts +0 -12
  158. package/dist/unified/examples/workflowExample.js +0 -497
  159. package/dist/unified/orchestrator/orchestrator.d.ts +0 -260
  160. package/dist/unified/orchestrator/orchestrator.js +0 -519
@@ -1,293 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ConversationContinuityProcessor = void 0;
4
- const processorTypes_1 = require("../types/processorTypes");
5
- /**
6
- * Processor that maintains conversation continuity by linking related messages,
7
- * resolving references, and detecting context gaps in follow-up conversations.
8
- */
9
- class ConversationContinuityProcessor extends processorTypes_1.BaseProcessor {
10
- constructor(options = {}) {
11
- super(options);
12
- this.enableContextLinking = options.enableContextLinking !== false;
13
- this.enableReferenceResolution = options.enableReferenceResolution !== false;
14
- this.enableGapDetection = options.enableGapDetection !== false;
15
- this.maxContextLinks = options.maxContextLinks || 5;
16
- this.contextLookbackWindow = options.contextLookbackWindow || 20;
17
- this.enableProactiveContext = options.enableProactiveContext !== false;
18
- }
19
- async processInput(input) {
20
- try {
21
- const { message, context } = input;
22
- // Only process follow-up conversations
23
- if (!(context === null || context === void 0 ? void 0 : context.followUpProcessing)) {
24
- return [this.createEvent('ContinuityProcessingSkipped', {
25
- reason: 'Not a follow-up conversation processing context'
26
- })];
27
- }
28
- const enhancedMessage = await this.enhanceConversationContinuity(message, context);
29
- const continuityInfo = this.calculateContinuityInfo(message, enhancedMessage, context);
30
- return [
31
- this.createEvent('ConversationContinuityProcessed', continuityInfo),
32
- this.createEvent('ConversationProcessed', enhancedMessage)
33
- ];
34
- }
35
- catch (error) {
36
- console.error('Error in ConversationContinuityProcessor:', error);
37
- return [this.createEvent('ConversationContinuityError', {
38
- error: error instanceof Error ? error.message : String(error),
39
- originalLength: input.message.messages.length
40
- })];
41
- }
42
- }
43
- async enhanceConversationContinuity(message, context) {
44
- let enhancedMessages = [...message.messages];
45
- let enhancementsAdded = 0;
46
- // Add context links if enabled
47
- if (this.enableContextLinking) {
48
- const contextLinks = this.addContextLinks(enhancedMessages, context);
49
- enhancedMessages.push(...contextLinks);
50
- enhancementsAdded += contextLinks.length;
51
- }
52
- // Resolve references if enabled
53
- if (this.enableReferenceResolution) {
54
- enhancedMessages = this.resolveReferences(enhancedMessages, context);
55
- }
56
- // Detect and fill conversation gaps if enabled
57
- if (this.enableGapDetection) {
58
- const gapFillers = this.detectAndFillGaps(enhancedMessages, context);
59
- enhancedMessages.push(...gapFillers);
60
- enhancementsAdded += gapFillers.length;
61
- }
62
- // Add proactive context if enabled
63
- if (this.enableProactiveContext) {
64
- const proactiveContext = this.addProactiveContext(enhancedMessages, context);
65
- enhancedMessages.push(...proactiveContext);
66
- enhancementsAdded += proactiveContext.length;
67
- }
68
- return {
69
- ...message,
70
- messages: enhancedMessages,
71
- metadata: {
72
- ...message.metadata,
73
- continuityEnhanced: true,
74
- enhancementsAdded,
75
- timestamp: new Date().toISOString()
76
- }
77
- };
78
- }
79
- addContextLinks(messages, context) {
80
- const contextLinks = [];
81
- const recentMessages = messages.slice(-this.contextLookbackWindow);
82
- // Find messages that reference previous interactions
83
- const referencingMessages = this.findReferencingMessages(recentMessages);
84
- if (referencingMessages.length > 0) {
85
- const linkMessage = {
86
- role: 'system',
87
- content: this.generateContextLinkMessage(referencingMessages, context),
88
- name: 'context-link'
89
- };
90
- contextLinks.push(linkMessage);
91
- }
92
- return contextLinks.slice(0, this.maxContextLinks);
93
- }
94
- findReferencingMessages(messages) {
95
- const referencePatterns = [
96
- /\b(this|that|it|they|them)\b/i,
97
- /\b(the (above|previous|last|earlier))\b/i,
98
- /\b(as (mentioned|discussed|shown))\b/i,
99
- /\b(from (before|earlier))\b/i,
100
- /\b(the (file|code|result|output))\b/i
101
- ];
102
- return messages.filter(message => {
103
- const content = typeof message.content === 'string'
104
- ? message.content
105
- : JSON.stringify(message.content);
106
- return referencePatterns.some(pattern => pattern.test(content));
107
- });
108
- }
109
- generateContextLinkMessage(referencingMessages, context) {
110
- const messageCount = referencingMessages.length;
111
- const toolResults = context.toolResults || [];
112
- let linkMessage = `**Context Links:** Found ${messageCount} message${messageCount > 1 ? 's' : ''} with references to previous interactions.`;
113
- if (toolResults.length > 0) {
114
- linkMessage += ` Recent tool executions: ${toolResults.length} tool${toolResults.length > 1 ? 's' : ''} executed.`;
115
- }
116
- if (context.originalHistory && context.originalHistory.length > 0) {
117
- linkMessage += ` Conversation history: ${context.originalHistory.length} previous messages available for reference.`;
118
- }
119
- return linkMessage;
120
- }
121
- resolveReferences(messages, context) {
122
- return messages.map(message => {
123
- if (message.role === 'system' || message.name === 'reference-resolution') {
124
- return message;
125
- }
126
- const resolvedContent = this.resolveMessageReferences(message.content, context);
127
- if (resolvedContent !== message.content) {
128
- return {
129
- ...message,
130
- content: resolvedContent,
131
- name: message.name || 'reference-resolved'
132
- };
133
- }
134
- return message;
135
- });
136
- }
137
- resolveMessageReferences(content, context) {
138
- if (typeof content !== 'string') {
139
- return content;
140
- }
141
- let resolvedContent = content;
142
- const toolResults = context.toolResults || [];
143
- // Resolve "the file" references
144
- if (/\bthe file\b/i.test(resolvedContent) && toolResults.length > 0) {
145
- const fileOperations = toolResults.filter((result) => result.tool_call_id && result.tool_call_id.includes('file'));
146
- if (fileOperations.length === 1) {
147
- resolvedContent = resolvedContent.replace(/\bthe file\b/gi, `the file (from recent tool execution)`);
148
- }
149
- }
150
- // Resolve "the result" references
151
- if (/\bthe result\b/i.test(resolvedContent) && toolResults.length > 0) {
152
- resolvedContent = resolvedContent.replace(/\bthe result\b/gi, `the result (from ${toolResults.length} recent tool execution${toolResults.length > 1 ? 's' : ''})`);
153
- }
154
- // Resolve "it" references in context of tool operations
155
- if (/\bit\b/i.test(resolvedContent) && toolResults.length === 1) {
156
- const toolResult = toolResults[0];
157
- if (toolResult.tool_call_id) {
158
- resolvedContent = resolvedContent.replace(/\bit\b/gi, `it (referring to the tool execution result)`);
159
- }
160
- }
161
- return resolvedContent;
162
- }
163
- detectAndFillGaps(messages, context) {
164
- const gapFillers = [];
165
- const gaps = this.detectConversationGaps(messages, context);
166
- gaps.forEach(gap => {
167
- const fillerMessage = {
168
- role: 'system',
169
- content: this.generateGapFillerMessage(gap, context),
170
- name: 'gap-filler'
171
- };
172
- gapFillers.push(fillerMessage);
173
- });
174
- return gapFillers;
175
- }
176
- detectConversationGaps(messages, context) {
177
- const gaps = [];
178
- const toolResults = context.toolResults || [];
179
- // Gap: Tool results without explanation
180
- const unexplainedToolResults = toolResults.filter((result) => {
181
- const hasExplanation = messages.some(msg => msg.role === 'assistant' &&
182
- typeof msg.content === 'string' &&
183
- msg.content.includes('result'));
184
- return !hasExplanation;
185
- });
186
- if (unexplainedToolResults.length > 0) {
187
- gaps.push({
188
- type: 'unexplained-tool-results',
189
- description: `${unexplainedToolResults.length} tool result(s) without explanation`,
190
- severity: 'medium'
191
- });
192
- }
193
- // Gap: Missing context for references
194
- const unresolvedReferences = messages.filter(msg => {
195
- const content = typeof msg.content === 'string' ? msg.content : JSON.stringify(msg.content);
196
- return /\b(this|that|it)\b/i.test(content) && msg.role === 'user';
197
- });
198
- if (unresolvedReferences.length > 2) {
199
- gaps.push({
200
- type: 'unresolved-references',
201
- description: `${unresolvedReferences.length} messages with unclear references`,
202
- severity: 'low'
203
- });
204
- }
205
- // Gap: Long silence after tool execution
206
- const lastToolIndex = messages.findLastIndex(msg => msg.role === 'tool');
207
- const lastAssistantIndex = messages.findLastIndex(msg => msg.role === 'assistant');
208
- if (lastToolIndex > lastAssistantIndex && lastToolIndex < messages.length - 1) {
209
- gaps.push({
210
- type: 'missing-tool-response',
211
- description: 'Tool execution without assistant response',
212
- severity: 'high'
213
- });
214
- }
215
- return gaps;
216
- }
217
- generateGapFillerMessage(gap, context) {
218
- switch (gap.type) {
219
- case 'unexplained-tool-results':
220
- return `**Context Note:** There are tool execution results that may need explanation or analysis. Consider reviewing the tool outputs and their implications.`;
221
- case 'unresolved-references':
222
- return `**Context Note:** Some messages contain references that might be unclear. Consider providing more specific context when referring to previous interactions.`;
223
- case 'missing-tool-response':
224
- return `**Context Note:** Recent tool execution completed but may need assistant analysis or response to continue the conversation effectively.`;
225
- default:
226
- return `**Context Note:** Potential conversation gap detected: ${gap.description}`;
227
- }
228
- }
229
- addProactiveContext(messages, context) {
230
- const proactiveMessages = [];
231
- const toolResults = context.toolResults || [];
232
- const conversationLength = messages.length;
233
- // Add proactive context for complex tool interactions
234
- if (toolResults.length > 3) {
235
- proactiveMessages.push({
236
- role: 'system',
237
- content: `**Proactive Context:** Multiple tools have been executed (${toolResults.length} total). This suggests a complex task that may benefit from step-by-step progress tracking.`,
238
- name: 'proactive-context'
239
- });
240
- }
241
- // Add proactive context for long conversations
242
- if (conversationLength > 25) {
243
- proactiveMessages.push({
244
- role: 'system',
245
- content: `**Proactive Context:** This is an extended conversation (${conversationLength} messages). Consider summarizing progress or breaking down remaining objectives.`,
246
- name: 'proactive-context'
247
- });
248
- }
249
- return proactiveMessages.slice(0, 2); // Limit proactive messages
250
- }
251
- calculateContinuityInfo(original, enhanced, context) {
252
- const originalCount = original.messages.length;
253
- const enhancedCount = enhanced.messages.length;
254
- const addedMessages = enhancedCount - originalCount;
255
- // Count different types of enhancements
256
- const contextLinks = enhanced.messages.filter(m => m.name === 'context-link').length;
257
- const referenceResolutions = enhanced.messages.filter(m => m.name === 'reference-resolved').length;
258
- const gapFillers = enhanced.messages.filter(m => m.name === 'gap-filler').length;
259
- return {
260
- contextLinksAdded: contextLinks,
261
- referenceResolutionsAdded: referenceResolutions,
262
- continuityEnhanced: addedMessages > 0,
263
- missingContextDetected: gapFillers > 0,
264
- conversationGapsFound: gapFillers
265
- };
266
- }
267
- // Public methods for configuration
268
- setContextLookbackWindow(window) {
269
- this.contextLookbackWindow = Math.max(5, Math.min(50, window));
270
- }
271
- setMaxContextLinks(max) {
272
- this.maxContextLinks = Math.max(1, Math.min(10, max));
273
- }
274
- enableContextLinkingForSession() {
275
- this.enableContextLinking = true;
276
- }
277
- disableContextLinkingForSession() {
278
- this.enableContextLinking = false;
279
- }
280
- enableReferenceResolutionForSession() {
281
- this.enableReferenceResolution = true;
282
- }
283
- disableReferenceResolutionForSession() {
284
- this.enableReferenceResolution = false;
285
- }
286
- enableGapDetectionForSession() {
287
- this.enableGapDetection = true;
288
- }
289
- disableGapDetectionForSession() {
290
- this.enableGapDetection = false;
291
- }
292
- }
293
- exports.ConversationContinuityProcessor = ConversationContinuityProcessor;
@@ -1,7 +0,0 @@
1
- import { ProcessedMessage } from "@codebolt/types/agent";
2
- import { BasePreInferenceProcessor } from "../base";
3
- import { FlatUserMessage } from "@codebolt/types/sdk";
4
- export declare class ConversationCompection extends BasePreInferenceProcessor {
5
- constructor();
6
- modify(originalRequest: FlatUserMessage, createdMessage: ProcessedMessage): Promise<ProcessedMessage>;
7
- }
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ConversationCompection = void 0;
4
- const base_1 = require("../base");
5
- class ConversationCompection extends base_1.BasePreInferenceProcessor {
6
- constructor() {
7
- super();
8
- }
9
- modify(originalRequest, createdMessage) {
10
- const updatedMessages = createdMessage.message.messages.map(message => {
11
- if (message.role === 'user') {
12
- return {
13
- ...message,
14
- content: `${message.content} user message compected`
15
- };
16
- }
17
- return message;
18
- });
19
- return Promise.resolve({
20
- message: {
21
- ...createdMessage.message,
22
- messages: updatedMessages
23
- },
24
- metadata: {
25
- ...createdMessage.metadata,
26
- chatsummerized: true
27
- }
28
- });
29
- }
30
- }
31
- exports.ConversationCompection = ConversationCompection;
@@ -1,9 +0,0 @@
1
- /**
2
- * Pre-Tool Call Processors
3
- *
4
- * These processors run before tool execution and can intercept, validate,
5
- * or modify tool calls before they are sent to the actual tool execution engine.
6
- */
7
- export { LocalToolInterceptorProcessor, type LocalToolInterceptorInfo, type LocalToolInterceptorProcessorOptions, type LocalToolHandler } from './localToolInterceptorProcessor';
8
- export { ToolValidationProcessor, type ToolValidationInfo, type ToolValidationProcessorOptions } from './toolValidationProcessor';
9
- export { ToolParameterModifierProcessor, type ToolParameterModificationInfo, type ParameterTransformation, type ToolParameterModifierProcessorOptions } from './toolParameterModifierProcessor';
@@ -1,18 +0,0 @@
1
- "use strict";
2
- /**
3
- * Pre-Tool Call Processors
4
- *
5
- * These processors run before tool execution and can intercept, validate,
6
- * or modify tool calls before they are sent to the actual tool execution engine.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.ToolParameterModifierProcessor = exports.ToolValidationProcessor = exports.LocalToolInterceptorProcessor = void 0;
10
- // Local tool interceptor
11
- var localToolInterceptorProcessor_1 = require("./localToolInterceptorProcessor");
12
- Object.defineProperty(exports, "LocalToolInterceptorProcessor", { enumerable: true, get: function () { return localToolInterceptorProcessor_1.LocalToolInterceptorProcessor; } });
13
- // Tool validation processor
14
- var toolValidationProcessor_1 = require("./toolValidationProcessor");
15
- Object.defineProperty(exports, "ToolValidationProcessor", { enumerable: true, get: function () { return toolValidationProcessor_1.ToolValidationProcessor; } });
16
- // Tool parameter modifier processor
17
- var toolParameterModifierProcessor_1 = require("./toolParameterModifierProcessor");
18
- Object.defineProperty(exports, "ToolParameterModifierProcessor", { enumerable: true, get: function () { return toolParameterModifierProcessor_1.ToolParameterModifierProcessor; } });
@@ -1,58 +0,0 @@
1
- import { BaseProcessor, ProcessorInput, ProcessorOutput } from '../../processor';
2
- export interface LocalToolInterceptorInfo {
3
- toolName: string;
4
- intercepted: boolean;
5
- executionMethod: 'local' | 'custom' | 'delegated';
6
- executionTime: number;
7
- result: string;
8
- }
9
- export interface LocalToolInterceptorProcessorOptions {
10
- localTools?: Map<string, LocalToolHandler>;
11
- enableCustomToolHandling?: boolean;
12
- enableToolDelegation?: boolean;
13
- defaultExecutionTimeout?: number;
14
- enableLogging?: boolean;
15
- }
16
- export interface LocalToolHandler {
17
- name: string;
18
- description?: string;
19
- execute: (params: any, context?: Record<string, any>) => Promise<string> | string;
20
- validate?: (params: any) => boolean;
21
- timeout?: number;
22
- }
23
- /**
24
- * Processor that intercepts specific tool calls and handles them locally
25
- * instead of sending them to external tool execution services.
26
- */
27
- export declare class LocalToolInterceptorProcessor extends BaseProcessor {
28
- private readonly localTools;
29
- private readonly enableCustomToolHandling;
30
- private readonly enableToolDelegation;
31
- private readonly defaultExecutionTimeout;
32
- private readonly enableLogging;
33
- constructor(options?: LocalToolInterceptorProcessorOptions);
34
- processInput(input: ProcessorInput): Promise<ProcessorOutput[]>;
35
- private shouldInterceptTool;
36
- private executeLocalTool;
37
- private executeToolHandler;
38
- private handleLocalPrefixTool;
39
- private handleCustomPrefixTool;
40
- private handleInternalPrefixTool;
41
- private handleLocalFileRead;
42
- private handleLocalFileWrite;
43
- private handleLocalScriptExecution;
44
- private handleDataValidation;
45
- private handleDataTransformation;
46
- private handleCalculation;
47
- private handleOutputFormatting;
48
- private getExecutionMethod;
49
- private generateUUID;
50
- private simpleHash;
51
- private toYamlLike;
52
- private toCsv;
53
- private toTable;
54
- addLocalTool(handler: LocalToolHandler): void;
55
- removeLocalTool(toolName: string): boolean;
56
- getLocalTools(): string[];
57
- hasLocalTool(toolName: string): boolean;
58
- }