@codebolt/agent 5.0.2 → 5.0.7

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 (164) 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/types/libFunctionTypes.d.ts +13 -19
  49. package/dist/types/libFunctionTypes.js +3 -0
  50. package/dist/types/processorTypes.d.ts +8 -8
  51. package/dist/types/processorTypes.js +6 -23
  52. package/dist/unified/agent/agent.js +2 -2
  53. package/dist/unified/agent/codeboltAgent.d.ts +122 -0
  54. package/dist/unified/agent/codeboltAgent.js +210 -0
  55. package/dist/unified/base/initialPromptGenerator.js +18 -4
  56. package/dist/unified/base/responseExecutor.d.ts +3 -2
  57. package/dist/unified/base/responseExecutor.js +109 -56
  58. package/dist/unified/index.d.ts +4 -0
  59. package/dist/unified/index.js +12 -1
  60. package/dist/usermessage.d.ts +70 -0
  61. package/dist/usermessage.js +123 -0
  62. package/package.json +11 -6
  63. package/dist/local-tools/fileTools.d.ts +0 -26
  64. package/dist/local-tools/fileTools.js +0 -162
  65. package/dist/processor-pieces/additionalModifiers/argumentProcessorModifier.d.ts +0 -13
  66. package/dist/processor-pieces/additionalModifiers/argumentProcessorModifier.js +0 -68
  67. package/dist/processor-pieces/additionalModifiers/atFileProcessorModifier.d.ts +0 -15
  68. package/dist/processor-pieces/additionalModifiers/atFileProcessorModifier.js +0 -212
  69. package/dist/processor-pieces/additionalModifiers/chatCompressionModifier.d.ts +0 -19
  70. package/dist/processor-pieces/additionalModifiers/chatCompressionModifier.js +0 -110
  71. package/dist/processor-pieces/additionalModifiers/chatRecordingModifier.d.ts +0 -23
  72. package/dist/processor-pieces/additionalModifiers/chatRecordingModifier.js +0 -173
  73. package/dist/processor-pieces/additionalModifiers/coreSystemPromptModifier.d.ts +0 -14
  74. package/dist/processor-pieces/additionalModifiers/coreSystemPromptModifier.js +0 -93
  75. package/dist/processor-pieces/additionalModifiers/directoryContextModifier.d.ts +0 -30
  76. package/dist/processor-pieces/additionalModifiers/directoryContextModifier.js +0 -330
  77. package/dist/processor-pieces/additionalModifiers/environmentContextModifier.d.ts +0 -26
  78. package/dist/processor-pieces/additionalModifiers/environmentContextModifier.js +0 -269
  79. package/dist/processor-pieces/additionalModifiers/fallbackHandlerModifier.d.ts +0 -38
  80. package/dist/processor-pieces/additionalModifiers/fallbackHandlerModifier.js +0 -217
  81. package/dist/processor-pieces/additionalModifiers/ideContextModifier.d.ts +0 -34
  82. package/dist/processor-pieces/additionalModifiers/ideContextModifier.js +0 -147
  83. package/dist/processor-pieces/additionalModifiers/index.d.ts +0 -12
  84. package/dist/processor-pieces/additionalModifiers/index.js +0 -28
  85. package/dist/processor-pieces/additionalModifiers/loopDetectionModifier.d.ts +0 -29
  86. package/dist/processor-pieces/additionalModifiers/loopDetectionModifier.js +0 -155
  87. package/dist/processor-pieces/additionalModifiers/memoryImportModifier.d.ts +0 -15
  88. package/dist/processor-pieces/additionalModifiers/memoryImportModifier.js +0 -129
  89. package/dist/processor-pieces/additionalModifiers/shellProcessorModifier.d.ts +0 -25
  90. package/dist/processor-pieces/additionalModifiers/shellProcessorModifier.js +0 -169
  91. package/dist/processor-pieces/additionalModifiers/toolInjectionModifier.d.ts +0 -20
  92. package/dist/processor-pieces/additionalModifiers/toolInjectionModifier.js +0 -152
  93. package/dist/processor-pieces/messageModifiers/addCurrentDirectoryRootFilesModifier.d.ts +0 -7
  94. package/dist/processor-pieces/messageModifiers/addCurrentDirectoryRootFilesModifier.js +0 -93
  95. package/dist/processor-pieces/messageModifiers/advancedSystemInstructionMessageModifier.d.ts +0 -9
  96. package/dist/processor-pieces/messageModifiers/advancedSystemInstructionMessageModifier.js +0 -77
  97. package/dist/processor-pieces/messageModifiers/chatCompressionModifier.d.ts +0 -19
  98. package/dist/processor-pieces/messageModifiers/chatCompressionModifier.js +0 -110
  99. package/dist/processor-pieces/messageModifiers/chatHistoryMessageModifier.example.d.ts +0 -20
  100. package/dist/processor-pieces/messageModifiers/chatHistoryMessageModifier.example.js +0 -124
  101. package/dist/processor-pieces/messageModifiers/environmentContext.d.ts +0 -41
  102. package/dist/processor-pieces/messageModifiers/environmentContext.js +0 -355
  103. package/dist/processor-pieces/messageModifiers/mentionedFilesModifier.d.ts +0 -23
  104. package/dist/processor-pieces/messageModifiers/mentionedFilesModifier.js +0 -207
  105. package/dist/processor-pieces/messageModifiers/simpleMessageModifier.d.ts +0 -7
  106. package/dist/processor-pieces/messageModifiers/simpleMessageModifier.js +0 -26
  107. package/dist/processor-pieces/postInference/llmOutputValidityProcessor.d.ts +0 -1
  108. package/dist/processor-pieces/postInference/llmOutputValidityProcessor.js +0 -2
  109. package/dist/processor-pieces/postInferenceProcessors/checkForNoToolCall.d.ts +0 -7
  110. package/dist/processor-pieces/postInferenceProcessors/checkForNoToolCall.js +0 -24
  111. package/dist/processor-pieces/postToolCall/advancedLoopDetectionProcessor.d.ts +0 -41
  112. package/dist/processor-pieces/postToolCall/advancedLoopDetectionProcessor.js +0 -197
  113. package/dist/processor-pieces/postToolCall/chatCompressionProcessor.d.ts +0 -26
  114. package/dist/processor-pieces/postToolCall/chatCompressionProcessor.js +0 -90
  115. package/dist/processor-pieces/postToolCall/chatRecordingProcessor.d.ts +0 -81
  116. package/dist/processor-pieces/postToolCall/chatRecordingProcessor.js +0 -329
  117. package/dist/processor-pieces/postToolCall/contextManagementProcessor.d.ts +0 -40
  118. package/dist/processor-pieces/postToolCall/contextManagementProcessor.js +0 -272
  119. package/dist/processor-pieces/postToolCall/conversationCompactorProcessor.d.ts +0 -49
  120. package/dist/processor-pieces/postToolCall/conversationCompactorProcessor.js +0 -291
  121. package/dist/processor-pieces/postToolCall/conversationContinuityProcessor.d.ts +0 -49
  122. package/dist/processor-pieces/postToolCall/conversationContinuityProcessor.js +0 -293
  123. package/dist/processor-pieces/postToolCall/followUpConversationProcessor.d.ts +0 -47
  124. package/dist/processor-pieces/postToolCall/followUpConversationProcessor.js +0 -249
  125. package/dist/processor-pieces/postToolCall/loopDetectionProcessor.d.ts +0 -30
  126. package/dist/processor-pieces/postToolCall/loopDetectionProcessor.js +0 -137
  127. package/dist/processor-pieces/postToolCall/responseValidationProcessor.d.ts +0 -30
  128. package/dist/processor-pieces/postToolCall/responseValidationProcessor.js +0 -228
  129. package/dist/processor-pieces/postToolCall/telemetryProcessor.d.ts +0 -99
  130. package/dist/processor-pieces/postToolCall/telemetryProcessor.js +0 -278
  131. package/dist/processor-pieces/postToolCall/tokenManagementProcessor.d.ts +0 -37
  132. package/dist/processor-pieces/postToolCall/tokenManagementProcessor.js +0 -178
  133. package/dist/processor-pieces/postToolCall/toolExecutionProcessor.d.ts +0 -43
  134. package/dist/processor-pieces/postToolCall/toolExecutionProcessor.js +0 -207
  135. package/dist/processor-pieces/preInference/conversationCompactorProcessor.d.ts +0 -52
  136. package/dist/processor-pieces/preInference/conversationCompactorProcessor.js +0 -264
  137. package/dist/processor-pieces/preInference/conversationContinuityProcessor.d.ts +0 -49
  138. package/dist/processor-pieces/preInference/conversationContinuityProcessor.js +0 -293
  139. package/dist/processor-pieces/preInferenceProcessors/conversationCompaction.d.ts +0 -7
  140. package/dist/processor-pieces/preInferenceProcessors/conversationCompaction.js +0 -31
  141. package/dist/processor-pieces/preToolCall/index.d.ts +0 -9
  142. package/dist/processor-pieces/preToolCall/index.js +0 -18
  143. package/dist/processor-pieces/preToolCall/localToolInterceptorProcessor.d.ts +0 -58
  144. package/dist/processor-pieces/preToolCall/localToolInterceptorProcessor.js +0 -444
  145. package/dist/processor-pieces/preToolCall/toolParameterModifierProcessor.d.ts +0 -44
  146. package/dist/processor-pieces/preToolCall/toolParameterModifierProcessor.js +0 -367
  147. package/dist/processor-pieces/preToolCall/toolValidationProcessor.d.ts +0 -58
  148. package/dist/processor-pieces/preToolCall/toolValidationProcessor.js +0 -391
  149. package/dist/unified/agent/tool.d.ts +0 -99
  150. package/dist/unified/agent/tool.js +0 -440
  151. package/dist/unified/examples/agentExample.d.ts +0 -46
  152. package/dist/unified/examples/agentExample.js +0 -464
  153. package/dist/unified/examples/documentationPatternExample.d.ts +0 -10
  154. package/dist/unified/examples/documentationPatternExample.js +0 -385
  155. package/dist/unified/examples/followUpProcessorsExample.d.ts +0 -45
  156. package/dist/unified/examples/followUpProcessorsExample.js +0 -311
  157. package/dist/unified/examples/orchestratorExample.d.ts +0 -16
  158. package/dist/unified/examples/orchestratorExample.js +0 -415
  159. package/dist/unified/examples/preToolCallProcessorsExample.d.ts +0 -36
  160. package/dist/unified/examples/preToolCallProcessorsExample.js +0 -458
  161. package/dist/unified/examples/workflowExample.d.ts +0 -12
  162. package/dist/unified/examples/workflowExample.js +0 -497
  163. package/dist/unified/orchestrator/orchestrator.d.ts +0 -260
  164. package/dist/unified/orchestrator/orchestrator.js +0 -519
@@ -0,0 +1,197 @@
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.FollowUpPromptBuilder = void 0;
7
+ const codeboltjs_1 = __importDefault(require("@codebolt/codeboltjs"));
8
+ const { chatSummary } = codeboltjs_1.default;
9
+ /**
10
+ * Builds follow-up prompts for continuing conversations with tool results.
11
+ * Manages conversation history and summarization when conversations get too long.
12
+ */
13
+ class FollowUpPromptBuilder {
14
+ /**
15
+ * Creates a new FollowUpQuestionBuilder instance.
16
+ *
17
+ * @param codebolt - Optional codebolt API instance
18
+ */
19
+ constructor(codebolt) {
20
+ /** Previous conversation messages */
21
+ this.previousConversation = [];
22
+ /** Tool results to add to the conversation */
23
+ this.toolResults = [];
24
+ /** Available tools for the conversation */
25
+ this.tools = [];
26
+ /** Maximum conversation length before summarization */
27
+ this.maxConversationLength = 50;
28
+ /** Whether to force summarization */
29
+ this.forceSummarization = false;
30
+ this.codebolt = codebolt;
31
+ }
32
+ /**
33
+ * Adds the previous conversation to the builder.
34
+ *
35
+ * @param previousPrompt - The previous prompt object containing messages and tools
36
+ * @returns The FollowUpQuestionBuilder instance for chaining
37
+ */
38
+ addPreviousConversation(previousPrompt, llmResponse) {
39
+ this.previousConversation = [...previousPrompt.messages];
40
+ this.tools = [...previousPrompt.tools];
41
+ try {
42
+ // Resolve the response if it's a promise
43
+ const resolvedResponse = llmResponse;
44
+ if (!resolvedResponse || !resolvedResponse.completion) {
45
+ console.warn("Invalid LLM response provided");
46
+ return this;
47
+ }
48
+ const completion = resolvedResponse.completion;
49
+ let assistantMessage = null;
50
+ // Handle different response formats
51
+ if (completion.choices && completion.choices.length > 0) {
52
+ // OpenAI-style response with choices
53
+ const choice = completion.choices[0];
54
+ if (choice.message) {
55
+ assistantMessage = {
56
+ role: "assistant",
57
+ content: choice.message.content || "",
58
+ tool_calls: choice.message.tool_calls || undefined
59
+ };
60
+ }
61
+ }
62
+ else if (completion.content) {
63
+ // Direct content response
64
+ assistantMessage = {
65
+ role: "assistant",
66
+ content: completion.content
67
+ };
68
+ }
69
+ else if (completion.message) {
70
+ // Message format response
71
+ assistantMessage = {
72
+ role: "assistant",
73
+ content: completion.message.content || "",
74
+ tool_calls: completion.message.tool_calls || undefined
75
+ };
76
+ }
77
+ // Add the assistant message to conversation history
78
+ if (assistantMessage) {
79
+ this.previousConversation.push(assistantMessage);
80
+ }
81
+ else {
82
+ // Fallback for cases where no valid message is found
83
+ this.previousConversation.push({
84
+ role: "assistant",
85
+ content: "I apologize, but I was unable to provide a proper response."
86
+ });
87
+ }
88
+ }
89
+ catch (error) {
90
+ console.error("Error adding LLM response to conversation:", error);
91
+ // Add error message to conversation history
92
+ this.previousConversation.push({
93
+ role: "assistant",
94
+ content: "An error occurred while processing my response."
95
+ });
96
+ }
97
+ return this;
98
+ }
99
+ addLLMResponseToConverstaion(llmResponse) {
100
+ return this;
101
+ }
102
+ /**
103
+ * Adds tool execution results to the conversation.
104
+ *
105
+ * @param toolResults - Array of tool execution results
106
+ * @returns The FollowUpQuestionBuilder instance for chaining
107
+ */
108
+ addToolResult(toolResults) {
109
+ toolResults.forEach(toolResult => {
110
+ this.previousConversation.push(toolResult);
111
+ });
112
+ if (!toolResults.length) {
113
+ this.previousConversation.push({
114
+ role: "user",
115
+ content: [{
116
+ type: "text",
117
+ text: "If you have completed the user's task, use the attempt_completion tool. If you require additional information from the user, use the ask_followup_question tool. Otherwise, if you have not completed the task and do not need additional information, then proceed with the next step of the task. (This is an automated message, so do not respond to it conversationally.)"
118
+ }]
119
+ });
120
+ }
121
+ return this;
122
+ }
123
+ /**
124
+ * Checks if the conversation is too long and sets up summarization with custom max length.
125
+ *
126
+ * @param maxLength - Maximum number of messages before summarization
127
+ * @returns The FollowUpQuestionBuilder instance for chaining
128
+ */
129
+ checkAndSummarizeConversationIfLong(maxLength) {
130
+ this.maxConversationLength = maxLength;
131
+ this.forceSummarization = this.previousConversation.length > maxLength;
132
+ return this;
133
+ }
134
+ /**
135
+ * Performs conversation summarization if needed.
136
+ *
137
+ * @returns Promise that resolves to the summarized messages
138
+ */
139
+ async performSummarization() {
140
+ const shouldSummarize = this.forceSummarization ||
141
+ this.previousConversation.length > this.maxConversationLength;
142
+ if (!shouldSummarize) {
143
+ return this.previousConversation;
144
+ }
145
+ try {
146
+ console.log("Summarizing conversation due to length:", this.previousConversation.length);
147
+ // Convert OpenAI messages to the format expected by chatSummary
148
+ const messagesToSummarize = this.previousConversation.map(msg => ({
149
+ role: msg.role,
150
+ content: typeof msg.content === 'string' ? msg.content :
151
+ Array.isArray(msg.content) ? msg.content.map(c => c.text).join(' ') :
152
+ String(msg.content)
153
+ }));
154
+ // Use the chat summary service to summarize the conversation
155
+ const summaryResponse = await chatSummary.summarize(messagesToSummarize, Math.floor(this.maxConversationLength / 2));
156
+ if (summaryResponse.payload || summaryResponse.summary) {
157
+ const summaryText = summaryResponse.payload || summaryResponse.summary || '';
158
+ // Keep the system message if it exists, and replace the rest with summary
159
+ const systemMessage = this.previousConversation.find(msg => msg.role === 'system');
160
+ const summarizedMessages = [];
161
+ if (systemMessage) {
162
+ summarizedMessages.push(systemMessage);
163
+ }
164
+ // Add the summary as a system message
165
+ summarizedMessages.push({
166
+ role: 'system',
167
+ content: `Previous conversation summary: ${summaryText}`
168
+ });
169
+ // Keep the last few messages for context
170
+ const recentMessages = this.previousConversation.slice(-5);
171
+ summarizedMessages.push(...recentMessages);
172
+ return summarizedMessages;
173
+ }
174
+ }
175
+ catch (error) {
176
+ console.error("Error summarizing conversation:", error);
177
+ }
178
+ // If summarization fails, just return the original conversation
179
+ return this.previousConversation;
180
+ }
181
+ /**
182
+ * Builds the follow-up conversation prompt with tool results.
183
+ *
184
+ * @returns Promise that resolves to the conversation prompt object
185
+ */
186
+ async build() {
187
+ // Perform summarization if needed
188
+ let messages = this.previousConversation;
189
+ return {
190
+ messages,
191
+ tools: this.tools,
192
+ full: true,
193
+ tool_choice: "auto"
194
+ };
195
+ }
196
+ }
197
+ exports.FollowUpPromptBuilder = FollowUpPromptBuilder;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @fileoverview Main entry point for CodeBolt Agent Utils
3
+ * @description Exports all agent utilities including Agent class, message builders, and prompt utilities
4
+ */
5
+ export { Agent } from './agent';
6
+ export { UserMessage } from './usermessage';
7
+ export { SystemPrompt } from './systemprompt';
8
+ export { TaskInstruction } from './taskInstruction';
9
+ export { InitialPromptBuilder } from './promptbuilder';
10
+ export { FollowUpPromptBuilder } from './followupquestionbuilder';
11
+ export { LLMOutputHandler } from './llmoutputhandler';
12
+ export type { Message, ToolResult, ToolDetails, OpenAIMessage, OpenAITool, ConversationEntry, UserMessageContent, CodeboltAPI, ToolCall } from './types/libFunctionTypes';
13
+ export type { MCPTool, Agent as AgentType, InitialUserMessage } from './types/commonTypes';
14
+ export type { UserMessage as CLIUserMessage } from './types/socketMessageTypes';
package/dist/index.js ADDED
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Main entry point for CodeBolt Agent Utils
4
+ * @description Exports all agent utilities including Agent class, message builders, and prompt utilities
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.LLMOutputHandler = exports.FollowUpPromptBuilder = exports.InitialPromptBuilder = exports.TaskInstruction = exports.SystemPrompt = exports.UserMessage = exports.Agent = void 0;
8
+ // Core Agent functionality
9
+ var agent_1 = require("./agent");
10
+ Object.defineProperty(exports, "Agent", { enumerable: true, get: function () { return agent_1.Agent; } });
11
+ // Message and prompt builders
12
+ var usermessage_1 = require("./usermessage");
13
+ Object.defineProperty(exports, "UserMessage", { enumerable: true, get: function () { return usermessage_1.UserMessage; } });
14
+ var systemprompt_1 = require("./systemprompt");
15
+ Object.defineProperty(exports, "SystemPrompt", { enumerable: true, get: function () { return systemprompt_1.SystemPrompt; } });
16
+ var taskInstruction_1 = require("./taskInstruction");
17
+ Object.defineProperty(exports, "TaskInstruction", { enumerable: true, get: function () { return taskInstruction_1.TaskInstruction; } });
18
+ var promptbuilder_1 = require("./promptbuilder");
19
+ Object.defineProperty(exports, "InitialPromptBuilder", { enumerable: true, get: function () { return promptbuilder_1.InitialPromptBuilder; } });
20
+ var followupquestionbuilder_1 = require("./followupquestionbuilder");
21
+ Object.defineProperty(exports, "FollowUpPromptBuilder", { enumerable: true, get: function () { return followupquestionbuilder_1.FollowUpPromptBuilder; } });
22
+ var llmoutputhandler_1 = require("./llmoutputhandler");
23
+ Object.defineProperty(exports, "LLMOutputHandler", { enumerable: true, get: function () { return llmoutputhandler_1.LLMOutputHandler; } });
@@ -0,0 +1,102 @@
1
+ import type { OpenAIMessage, ToolResult, CodeboltAPI } from "./types/libFunctionTypes";
2
+ /**
3
+ * Handles LLM output processing, tool execution, and completion detection.
4
+ * This class processes LLM responses and manages the conversation flow.
5
+ */
6
+ declare class LLMOutputHandler {
7
+ /** The LLM response to process */
8
+ private llmResponse;
9
+ /** Whether the task has been completed */
10
+ private completed;
11
+ /** Tool results from execution */
12
+ private toolResults;
13
+ /** Next user message to be added to conversation */
14
+ private nextUserMessage;
15
+ /** Codebolt API instance */
16
+ private codebolt?;
17
+ /** Whether mcp have been executed */
18
+ private mcpExecuted;
19
+ /**
20
+ * Creates a new LLMOutputHandler instance.
21
+ *
22
+ * @param llmResponse - The LLM response object
23
+ * @param codebolt - Optional codebolt API instance
24
+ */
25
+ constructor(llmResponse: any, codebolt?: CodeboltAPI);
26
+ /**
27
+ * Checks if the task has been completed.
28
+ *
29
+ * @returns True if the task is completed, false otherwise
30
+ */
31
+ isCompleted(): boolean;
32
+ /**
33
+ * Gets the tool execution results.
34
+ *
35
+ * @returns Array of tool results
36
+ */
37
+ getToolResults(): ToolResult[];
38
+ /**
39
+ * Gets the next user message to be added to conversation.
40
+ *
41
+ * @returns The next user message or null
42
+ */
43
+ getNextUserMessage(): OpenAIMessage | null;
44
+ /**
45
+ * Sends the assistant's message to the user interface.
46
+ *
47
+ * @returns Promise that resolves when the message is sent
48
+ */
49
+ sendMessageToUser(): Promise<void>;
50
+ /**
51
+ * Executes all tool calls found in the LLM response.
52
+ *
53
+ * @returns Promise that resolves when all mcp are executed
54
+ */
55
+ runTools(): Promise<ToolResult[]>;
56
+ /**
57
+ * Extracts tool calls from the LLM response.
58
+ *
59
+ * @returns Array of tool calls or null if none found
60
+ */
61
+ private getToolCallsFromResponse;
62
+ /**
63
+ * Extracts tool details from a tool call object.
64
+ *
65
+ * @param tool - The tool call object from the LLM response
66
+ * @returns ToolDetails object with name, input, and ID
67
+ */
68
+ private getToolDetail;
69
+ /**
70
+ * Executes a tool with given name and input.
71
+ *
72
+ * @param toolName - The name of the tool to execute
73
+ * @param toolInput - The input parameters for the tool
74
+ * @returns Promise with tuple [userRejected, result]
75
+ */
76
+ private executeTool;
77
+ /**
78
+ * Creates a tool result object from the tool execution response.
79
+ *
80
+ * @param tool_call_id - The ID of the tool call
81
+ * @param content - The content returned by the tool
82
+ * @returns ToolResult object
83
+ */
84
+ private getToolResult;
85
+ /**
86
+ * Checks if the response has tool calls.
87
+ *
88
+ * @returns True if the response contains tool calls
89
+ */
90
+ hasToolCalls(): boolean;
91
+ /**
92
+ * Gets the assistant's message content from the response.
93
+ *
94
+ * @returns The assistant's message content or null
95
+ */
96
+ getAssistantMessage(): string | null;
97
+ /**
98
+ * Resets the handler state for reuse.
99
+ */
100
+ reset(): void;
101
+ }
102
+ export { LLMOutputHandler };