@codebolt/agent 6.0.0 → 6.1.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 +118 -153
- package/dist/index.d.ts +2 -0
- package/dist/index.js +41 -0
- package/dist/processor-pieces/messageModifiers/chatHistoryMessageModifier.js +2 -4
- package/dist/processor-pieces/messageModifiers/contextAssemblyModifier.d.ts +81 -0
- package/dist/processor-pieces/messageModifiers/contextAssemblyModifier.js +316 -0
- package/dist/processor-pieces/messageModifiers/coreSystemPromptModifier.js +2 -19
- package/dist/processor-pieces/messageModifiers/directoryContextModifier.js +2 -6
- package/dist/processor-pieces/messageModifiers/environmentContextModifier.js +2 -7
- package/dist/processor-pieces/messageModifiers/ideContextModifier.js +2 -21
- package/dist/processor-pieces/messageModifiers/index.d.ts +3 -0
- package/dist/processor-pieces/messageModifiers/index.js +7 -1
- package/dist/processor-pieces/messageModifiers/toolInjectionModifier.js +2 -1
- package/dist/processor-pieces/postToolCallProcessors/conversationCompactorModifier.d.ts +34 -5
- package/dist/processor-pieces/postToolCallProcessors/conversationCompactorModifier.js +374 -89
- package/dist/processor-pieces/preInferenceProcessors/chatCompressionModifier.d.ts +3 -0
- package/dist/processor-pieces/preInferenceProcessors/chatCompressionModifier.js +50 -27
- package/dist/unified/agent/agent.d.ts +10 -0
- package/dist/unified/agent/agent.js +198 -10
- package/dist/unified/agent/codeboltAgent.d.ts +19 -100
- package/dist/unified/agent/codeboltAgent.js +209 -109
- package/dist/unified/base/agentStep.js +17 -17
- package/dist/unified/base/initialPromptGenerator.js +13 -31
- package/dist/unified/base/promptContext.d.ts +13 -0
- package/dist/unified/base/promptContext.js +213 -0
- package/dist/unified/base/responseExecutor.d.ts +7 -19
- package/dist/unified/base/responseExecutor.js +280 -259
- package/dist/unified/index.d.ts +9 -0
- package/dist/unified/index.js +20 -13
- package/dist/unified/services/CompressionCoordinator.d.ts +67 -0
- package/dist/unified/services/CompressionCoordinator.js +214 -0
- package/dist/unified/services/compaction/autoCompact.d.ts +52 -0
- package/dist/unified/services/compaction/autoCompact.js +294 -0
- package/dist/unified/services/compaction/compactionOrchestrator.d.ts +78 -0
- package/dist/unified/services/compaction/compactionOrchestrator.js +230 -0
- package/dist/unified/services/compaction/contextCollapse.d.ts +63 -0
- package/dist/unified/services/compaction/contextCollapse.js +291 -0
- package/dist/unified/services/compaction/microCompact.d.ts +34 -0
- package/dist/unified/services/compaction/microCompact.js +195 -0
- package/dist/unified/services/compaction/postCompactCleanup.d.ts +15 -0
- package/dist/unified/services/compaction/postCompactCleanup.js +37 -0
- package/dist/unified/services/compaction/reactiveCompact.d.ts +65 -0
- package/dist/unified/services/compaction/reactiveCompact.js +301 -0
- package/dist/unified/services/compaction/snipCompact.d.ts +31 -0
- package/dist/unified/services/compaction/snipCompact.js +124 -0
- package/dist/unified/services/compaction/types.d.ts +66 -0
- package/dist/unified/services/compaction/types.js +39 -0
- package/package.json +25 -29
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.syncProcessedMessageWithRuntimeContext = syncProcessedMessageWithRuntimeContext;
|
|
4
|
+
exports.reconcileRuntimePromptContext = reconcileRuntimePromptContext;
|
|
5
|
+
exports.setSystemPrompt = setSystemPrompt;
|
|
6
|
+
exports.appendSystemContextMessage = appendSystemContextMessage;
|
|
7
|
+
exports.appendUserContextMessage = appendUserContextMessage;
|
|
8
|
+
exports.appendTranscriptMessage = appendTranscriptMessage;
|
|
9
|
+
exports.appendTranscriptMessages = appendTranscriptMessages;
|
|
10
|
+
exports.prependTranscriptMessages = prependTranscriptMessages;
|
|
11
|
+
exports.replaceTranscriptMessages = replaceTranscriptMessages;
|
|
12
|
+
exports.getTranscriptMessages = getTranscriptMessages;
|
|
13
|
+
exports.buildInferenceParams = buildInferenceParams;
|
|
14
|
+
const RUNTIME_CONTEXT_METADATA_KEY = '__codeboltRuntimePromptContext';
|
|
15
|
+
function cloneContent(content) {
|
|
16
|
+
if (Array.isArray(content)) {
|
|
17
|
+
return [...content];
|
|
18
|
+
}
|
|
19
|
+
return content;
|
|
20
|
+
}
|
|
21
|
+
function cloneMessage(message) {
|
|
22
|
+
const clonedMessage = {
|
|
23
|
+
...message,
|
|
24
|
+
content: cloneContent(message.content),
|
|
25
|
+
};
|
|
26
|
+
if (message.tool_calls) {
|
|
27
|
+
clonedMessage.tool_calls = [...message.tool_calls];
|
|
28
|
+
}
|
|
29
|
+
return clonedMessage;
|
|
30
|
+
}
|
|
31
|
+
function cloneMessages(messages) {
|
|
32
|
+
return messages.map((message) => cloneMessage(message));
|
|
33
|
+
}
|
|
34
|
+
function buildSystemMessages(runtimeContext) {
|
|
35
|
+
const stringSections = [];
|
|
36
|
+
const nonStringSystemMessages = [];
|
|
37
|
+
if (runtimeContext.systemPrompt && runtimeContext.systemPrompt.trim().length > 0) {
|
|
38
|
+
stringSections.push(runtimeContext.systemPrompt);
|
|
39
|
+
}
|
|
40
|
+
for (const systemMessage of runtimeContext.systemContextMessages) {
|
|
41
|
+
if (typeof systemMessage.content === 'string') {
|
|
42
|
+
stringSections.push(systemMessage.content);
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
nonStringSystemMessages.push(cloneMessage(systemMessage));
|
|
46
|
+
}
|
|
47
|
+
const flattenedSystemMessages = [];
|
|
48
|
+
if (stringSections.length > 0) {
|
|
49
|
+
flattenedSystemMessages.push({
|
|
50
|
+
role: 'system',
|
|
51
|
+
content: stringSections.join('\n\n'),
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
flattenedSystemMessages.push(...nonStringSystemMessages);
|
|
55
|
+
return flattenedSystemMessages;
|
|
56
|
+
}
|
|
57
|
+
function flattenRuntimeMessages(runtimeContext) {
|
|
58
|
+
return [
|
|
59
|
+
...buildSystemMessages(runtimeContext),
|
|
60
|
+
...cloneMessages(runtimeContext.userContextMessages),
|
|
61
|
+
...cloneMessages(runtimeContext.transcriptMessages),
|
|
62
|
+
];
|
|
63
|
+
}
|
|
64
|
+
function inferRuntimeContext(prompt) {
|
|
65
|
+
var _a;
|
|
66
|
+
const messages = (_a = prompt.message.messages) !== null && _a !== void 0 ? _a : [];
|
|
67
|
+
const systemMessages = messages.filter((message) => message.role === 'system');
|
|
68
|
+
const transcriptMessages = messages.filter((message) => message.role !== 'system');
|
|
69
|
+
let systemPrompt;
|
|
70
|
+
const systemContextMessages = [];
|
|
71
|
+
if (systemMessages.length > 0) {
|
|
72
|
+
const [firstSystemMessage, ...remainingSystemMessages] = systemMessages;
|
|
73
|
+
if (firstSystemMessage && typeof firstSystemMessage.content === 'string') {
|
|
74
|
+
systemPrompt = firstSystemMessage.content;
|
|
75
|
+
}
|
|
76
|
+
else if (firstSystemMessage) {
|
|
77
|
+
systemContextMessages.push(cloneMessage(firstSystemMessage));
|
|
78
|
+
}
|
|
79
|
+
systemContextMessages.push(...cloneMessages(remainingSystemMessages));
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
systemPrompt,
|
|
83
|
+
systemContextMessages,
|
|
84
|
+
userContextMessages: [],
|
|
85
|
+
transcriptMessages: cloneMessages(transcriptMessages),
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
function getRuntimePromptContext(prompt) {
|
|
89
|
+
var _a;
|
|
90
|
+
const metadata = (_a = prompt.metadata) !== null && _a !== void 0 ? _a : {};
|
|
91
|
+
const runtimeContext = metadata[RUNTIME_CONTEXT_METADATA_KEY];
|
|
92
|
+
if (!runtimeContext) {
|
|
93
|
+
return undefined;
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
96
|
+
systemPrompt: runtimeContext.systemPrompt,
|
|
97
|
+
systemContextMessages: cloneMessages(runtimeContext.systemContextMessages),
|
|
98
|
+
userContextMessages: cloneMessages(runtimeContext.userContextMessages),
|
|
99
|
+
transcriptMessages: cloneMessages(runtimeContext.transcriptMessages),
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
function ensureRuntimePromptContext(prompt) {
|
|
103
|
+
var _a;
|
|
104
|
+
return (_a = getRuntimePromptContext(prompt)) !== null && _a !== void 0 ? _a : inferRuntimeContext(prompt);
|
|
105
|
+
}
|
|
106
|
+
function withRuntimePromptContext(prompt, runtimeContext) {
|
|
107
|
+
return {
|
|
108
|
+
...prompt,
|
|
109
|
+
message: {
|
|
110
|
+
...prompt.message,
|
|
111
|
+
messages: flattenRuntimeMessages(runtimeContext),
|
|
112
|
+
},
|
|
113
|
+
metadata: {
|
|
114
|
+
...prompt.metadata,
|
|
115
|
+
[RUNTIME_CONTEXT_METADATA_KEY]: {
|
|
116
|
+
systemPrompt: runtimeContext.systemPrompt,
|
|
117
|
+
systemContextMessages: cloneMessages(runtimeContext.systemContextMessages),
|
|
118
|
+
userContextMessages: cloneMessages(runtimeContext.userContextMessages),
|
|
119
|
+
transcriptMessages: cloneMessages(runtimeContext.transcriptMessages),
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
function syncProcessedMessageWithRuntimeContext(prompt) {
|
|
125
|
+
return withRuntimePromptContext(prompt, ensureRuntimePromptContext(prompt));
|
|
126
|
+
}
|
|
127
|
+
function reconcileRuntimePromptContext(prompt) {
|
|
128
|
+
var _a;
|
|
129
|
+
const runtimeContext = getRuntimePromptContext(prompt);
|
|
130
|
+
if (!runtimeContext) {
|
|
131
|
+
return syncProcessedMessageWithRuntimeContext(prompt);
|
|
132
|
+
}
|
|
133
|
+
const flattenedMessages = (_a = prompt.message.messages) !== null && _a !== void 0 ? _a : [];
|
|
134
|
+
const transcriptStartIndex = (runtimeContext.systemPrompt ? 1 : 0) +
|
|
135
|
+
runtimeContext.systemContextMessages.length +
|
|
136
|
+
runtimeContext.userContextMessages.length;
|
|
137
|
+
const normalizedTranscriptStartIndex = Math.min(transcriptStartIndex, flattenedMessages.length);
|
|
138
|
+
return withRuntimePromptContext(prompt, {
|
|
139
|
+
...runtimeContext,
|
|
140
|
+
transcriptMessages: cloneMessages(flattenedMessages.slice(normalizedTranscriptStartIndex)),
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
function setSystemPrompt(prompt, systemPrompt) {
|
|
144
|
+
const runtimeContext = ensureRuntimePromptContext(prompt);
|
|
145
|
+
return withRuntimePromptContext(prompt, {
|
|
146
|
+
...runtimeContext,
|
|
147
|
+
systemPrompt,
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
function appendSystemContextMessage(prompt, message) {
|
|
151
|
+
const runtimeContext = ensureRuntimePromptContext(prompt);
|
|
152
|
+
return withRuntimePromptContext(prompt, {
|
|
153
|
+
...runtimeContext,
|
|
154
|
+
systemContextMessages: [
|
|
155
|
+
...runtimeContext.systemContextMessages,
|
|
156
|
+
cloneMessage(message),
|
|
157
|
+
],
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
function appendUserContextMessage(prompt, message) {
|
|
161
|
+
const runtimeContext = ensureRuntimePromptContext(prompt);
|
|
162
|
+
return withRuntimePromptContext(prompt, {
|
|
163
|
+
...runtimeContext,
|
|
164
|
+
userContextMessages: [
|
|
165
|
+
...runtimeContext.userContextMessages,
|
|
166
|
+
cloneMessage(message),
|
|
167
|
+
],
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
function appendTranscriptMessage(prompt, message) {
|
|
171
|
+
const runtimeContext = ensureRuntimePromptContext(prompt);
|
|
172
|
+
return withRuntimePromptContext(prompt, {
|
|
173
|
+
...runtimeContext,
|
|
174
|
+
transcriptMessages: [...runtimeContext.transcriptMessages, cloneMessage(message)],
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
function appendTranscriptMessages(prompt, messages) {
|
|
178
|
+
const runtimeContext = ensureRuntimePromptContext(prompt);
|
|
179
|
+
return withRuntimePromptContext(prompt, {
|
|
180
|
+
...runtimeContext,
|
|
181
|
+
transcriptMessages: [
|
|
182
|
+
...runtimeContext.transcriptMessages,
|
|
183
|
+
...cloneMessages(messages),
|
|
184
|
+
],
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
function prependTranscriptMessages(prompt, messages) {
|
|
188
|
+
const runtimeContext = ensureRuntimePromptContext(prompt);
|
|
189
|
+
return withRuntimePromptContext(prompt, {
|
|
190
|
+
...runtimeContext,
|
|
191
|
+
transcriptMessages: [
|
|
192
|
+
...cloneMessages(messages),
|
|
193
|
+
...runtimeContext.transcriptMessages,
|
|
194
|
+
],
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
function replaceTranscriptMessages(prompt, messages) {
|
|
198
|
+
const runtimeContext = ensureRuntimePromptContext(prompt);
|
|
199
|
+
return withRuntimePromptContext(prompt, {
|
|
200
|
+
...runtimeContext,
|
|
201
|
+
transcriptMessages: cloneMessages(messages),
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
function getTranscriptMessages(prompt) {
|
|
205
|
+
return cloneMessages(ensureRuntimePromptContext(prompt).transcriptMessages);
|
|
206
|
+
}
|
|
207
|
+
function buildInferenceParams(prompt) {
|
|
208
|
+
const runtimeContext = ensureRuntimePromptContext(prompt);
|
|
209
|
+
return {
|
|
210
|
+
...prompt.message,
|
|
211
|
+
messages: flattenRuntimeMessages(runtimeContext),
|
|
212
|
+
};
|
|
213
|
+
}
|
|
@@ -5,36 +5,24 @@ export declare class ResponseExecutor implements AgentResponseExecutor {
|
|
|
5
5
|
private postToolCallProcessors;
|
|
6
6
|
private completed;
|
|
7
7
|
private finalMessage;
|
|
8
|
+
private loopDetectionService;
|
|
8
9
|
constructor(options: {
|
|
9
10
|
preToolCallProcessors: PreToolCallProcessor[];
|
|
10
11
|
postToolCallProcessors: PostToolCallProcessor[];
|
|
11
12
|
loopDetectionService?: LoopDetectionService;
|
|
12
13
|
});
|
|
13
|
-
private loopDetectionService?;
|
|
14
14
|
executeResponse(input: ResponseInput): Promise<ResponseOutput>;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
private getToolDetail;
|
|
15
|
+
private parseToolCall;
|
|
16
|
+
private extractLastMessageContent;
|
|
17
|
+
private getToolCalls;
|
|
19
18
|
private executeTools;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
*
|
|
23
|
-
* @param toolName - The name of the tool to execute
|
|
24
|
-
* @param toolInput - The input parameters for the tool
|
|
25
|
-
* @returns Promise with tuple [userRejected, result]
|
|
26
|
-
*/
|
|
19
|
+
private sendFinalMessageToChat;
|
|
20
|
+
private executeSingleToolCall;
|
|
27
21
|
private executeTool;
|
|
28
|
-
/**
|
|
29
|
-
* Creates a tool result object from the tool execution response.
|
|
30
|
-
*
|
|
31
|
-
* @param tool_call_id - The ID of the tool call
|
|
32
|
-
* @param content - The content returned by the tool
|
|
33
|
-
* @returns ToolResult object
|
|
34
|
-
*/
|
|
35
22
|
private parseToolResult;
|
|
36
23
|
setPreToolCallProcessors(processors: PreToolCallProcessor[]): void;
|
|
37
24
|
setPostToolCallProcessors(processors: PostToolCallProcessor[]): void;
|
|
38
25
|
getPreToolCallProcessors(): PreToolCallProcessor[];
|
|
39
26
|
getPostToolCallProcessors(): PostToolCallProcessor[];
|
|
27
|
+
private injectDiscoveredTools;
|
|
40
28
|
}
|