@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.
Files changed (48) hide show
  1. package/README.md +118 -153
  2. package/dist/index.d.ts +2 -0
  3. package/dist/index.js +41 -0
  4. package/dist/processor-pieces/messageModifiers/chatHistoryMessageModifier.js +2 -4
  5. package/dist/processor-pieces/messageModifiers/contextAssemblyModifier.d.ts +81 -0
  6. package/dist/processor-pieces/messageModifiers/contextAssemblyModifier.js +316 -0
  7. package/dist/processor-pieces/messageModifiers/coreSystemPromptModifier.js +2 -19
  8. package/dist/processor-pieces/messageModifiers/directoryContextModifier.js +2 -6
  9. package/dist/processor-pieces/messageModifiers/environmentContextModifier.js +2 -7
  10. package/dist/processor-pieces/messageModifiers/ideContextModifier.js +2 -21
  11. package/dist/processor-pieces/messageModifiers/index.d.ts +3 -0
  12. package/dist/processor-pieces/messageModifiers/index.js +7 -1
  13. package/dist/processor-pieces/messageModifiers/toolInjectionModifier.js +2 -1
  14. package/dist/processor-pieces/postToolCallProcessors/conversationCompactorModifier.d.ts +34 -5
  15. package/dist/processor-pieces/postToolCallProcessors/conversationCompactorModifier.js +374 -89
  16. package/dist/processor-pieces/preInferenceProcessors/chatCompressionModifier.d.ts +3 -0
  17. package/dist/processor-pieces/preInferenceProcessors/chatCompressionModifier.js +50 -27
  18. package/dist/unified/agent/agent.d.ts +10 -0
  19. package/dist/unified/agent/agent.js +198 -10
  20. package/dist/unified/agent/codeboltAgent.d.ts +19 -100
  21. package/dist/unified/agent/codeboltAgent.js +209 -109
  22. package/dist/unified/base/agentStep.js +17 -17
  23. package/dist/unified/base/initialPromptGenerator.js +13 -31
  24. package/dist/unified/base/promptContext.d.ts +13 -0
  25. package/dist/unified/base/promptContext.js +213 -0
  26. package/dist/unified/base/responseExecutor.d.ts +7 -19
  27. package/dist/unified/base/responseExecutor.js +280 -259
  28. package/dist/unified/index.d.ts +9 -0
  29. package/dist/unified/index.js +20 -13
  30. package/dist/unified/services/CompressionCoordinator.d.ts +67 -0
  31. package/dist/unified/services/CompressionCoordinator.js +214 -0
  32. package/dist/unified/services/compaction/autoCompact.d.ts +52 -0
  33. package/dist/unified/services/compaction/autoCompact.js +294 -0
  34. package/dist/unified/services/compaction/compactionOrchestrator.d.ts +78 -0
  35. package/dist/unified/services/compaction/compactionOrchestrator.js +230 -0
  36. package/dist/unified/services/compaction/contextCollapse.d.ts +63 -0
  37. package/dist/unified/services/compaction/contextCollapse.js +291 -0
  38. package/dist/unified/services/compaction/microCompact.d.ts +34 -0
  39. package/dist/unified/services/compaction/microCompact.js +195 -0
  40. package/dist/unified/services/compaction/postCompactCleanup.d.ts +15 -0
  41. package/dist/unified/services/compaction/postCompactCleanup.js +37 -0
  42. package/dist/unified/services/compaction/reactiveCompact.d.ts +65 -0
  43. package/dist/unified/services/compaction/reactiveCompact.js +301 -0
  44. package/dist/unified/services/compaction/snipCompact.d.ts +31 -0
  45. package/dist/unified/services/compaction/snipCompact.js +124 -0
  46. package/dist/unified/services/compaction/types.d.ts +66 -0
  47. package/dist/unified/services/compaction/types.js +39 -0
  48. 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
- * Extract tool details from tool call
17
- */
18
- private getToolDetail;
15
+ private parseToolCall;
16
+ private extractLastMessageContent;
17
+ private getToolCalls;
19
18
  private executeTools;
20
- /**
21
- * Executes a tool with given name and input.
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
  }