@codebolt/agent 1.2.1 → 2.2.3

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 (285) hide show
  1. package/README.md +157 -66
  2. package/dist/{agent.js → builderpattern/agent.js} +2 -2
  3. package/dist/{followupquestionbuilder.d.ts → builderpattern/followupquestionbuilder.d.ts} +1 -1
  4. package/dist/{followupquestionbuilder.js → builderpattern/followupquestionbuilder.js} +1 -1
  5. package/dist/{index.d.ts → builderpattern/index.d.ts} +3 -3
  6. package/dist/{llmoutputhandler.d.ts → builderpattern/llmoutputhandler.d.ts} +1 -1
  7. package/dist/{llmoutputhandler.js → builderpattern/llmoutputhandler.js} +7 -7
  8. package/dist/{promptbuilder.d.ts → builderpattern/promptbuilder.d.ts} +3 -3
  9. package/dist/{taskInstruction.d.ts → builderpattern/taskInstruction.d.ts} +2 -2
  10. package/dist/{usermessage.d.ts → builderpattern/usermessage.d.ts} +9 -4
  11. package/dist/composablepattern/agent.d.ts +169 -0
  12. package/dist/composablepattern/agent.js +598 -0
  13. package/dist/composablepattern/codebolt-storage.d.ts +67 -0
  14. package/dist/composablepattern/codebolt-storage.js +320 -0
  15. package/dist/composablepattern/document.d.ts +149 -0
  16. package/dist/composablepattern/document.js +372 -0
  17. package/dist/composablepattern/examples/codebolt-integration-example.d.ts +12 -0
  18. package/dist/composablepattern/examples/codebolt-integration-example.js +218 -0
  19. package/dist/composablepattern/examples/codebolt-storage-example.d.ts +40 -0
  20. package/dist/composablepattern/examples/codebolt-storage-example.js +223 -0
  21. package/dist/composablepattern/examples/custom-steps-example.d.ts +20 -0
  22. package/dist/composablepattern/examples/custom-steps-example.js +455 -0
  23. package/dist/composablepattern/examples/document-agent.d.ts +17 -0
  24. package/dist/composablepattern/examples/document-agent.js +107 -0
  25. package/dist/composablepattern/examples/simple-codebolt-integration.d.ts +8 -0
  26. package/dist/composablepattern/examples/simple-codebolt-integration.js +164 -0
  27. package/dist/composablepattern/examples/weather-agent.d.ts +18 -0
  28. package/dist/composablepattern/examples/weather-agent.js +86 -0
  29. package/dist/composablepattern/examples/workflow-example.d.ts +12 -0
  30. package/dist/composablepattern/examples/workflow-example.js +463 -0
  31. package/dist/composablepattern/index.d.ts +63 -0
  32. package/dist/composablepattern/index.js +115 -0
  33. package/dist/composablepattern/memory.d.ts +89 -0
  34. package/dist/composablepattern/memory.js +141 -0
  35. package/dist/composablepattern/tool.d.ts +84 -0
  36. package/dist/composablepattern/tool.js +260 -0
  37. package/dist/composablepattern/types.d.ts +194 -0
  38. package/dist/composablepattern/types.js +6 -0
  39. package/dist/composablepattern/user-context.d.ts +214 -0
  40. package/dist/composablepattern/user-context.js +275 -0
  41. package/dist/composablepattern/workflow.d.ts +388 -0
  42. package/dist/composablepattern/workflow.js +562 -0
  43. package/dist/local-tools/fileTools.d.ts +26 -0
  44. package/dist/local-tools/fileTools.js +162 -0
  45. package/dist/processor/agent/agentStep.d.ts +49 -0
  46. package/dist/processor/agent/agentStep.js +241 -0
  47. package/dist/processor/agent/toolExecutor.d.ts +19 -0
  48. package/dist/processor/agent/toolExecutor.js +90 -0
  49. package/dist/processor/index.d.ts +7 -0
  50. package/dist/processor/index.js +36 -0
  51. package/dist/processor/messageModifiers/baseMessageModifier.d.ts +20 -0
  52. package/dist/processor/messageModifiers/baseMessageModifier.js +55 -0
  53. package/dist/processor/processors/baseProcessor.d.ts +14 -0
  54. package/dist/processor/processors/baseProcessor.js +29 -0
  55. package/dist/processor/tools/baseTool.d.ts +10 -0
  56. package/dist/processor/tools/baseTool.js +20 -0
  57. package/dist/processor/tools/toolList.d.ts +9 -0
  58. package/dist/processor/tools/toolList.js +22 -0
  59. package/dist/processor/types/interfaces.d.ts +117 -0
  60. package/dist/processor/types/interfaces.js +2 -0
  61. package/dist/processor-pieces/additionalModifiers/argumentProcessorModifier.d.ts +13 -0
  62. package/dist/processor-pieces/additionalModifiers/argumentProcessorModifier.js +68 -0
  63. package/dist/processor-pieces/additionalModifiers/atFileProcessorModifier.d.ts +15 -0
  64. package/dist/processor-pieces/additionalModifiers/atFileProcessorModifier.js +212 -0
  65. package/dist/processor-pieces/additionalModifiers/chatCompressionModifier.d.ts +19 -0
  66. package/dist/processor-pieces/additionalModifiers/chatCompressionModifier.js +110 -0
  67. package/dist/processor-pieces/additionalModifiers/chatRecordingModifier.d.ts +23 -0
  68. package/dist/processor-pieces/additionalModifiers/chatRecordingModifier.js +173 -0
  69. package/dist/processor-pieces/additionalModifiers/coreSystemPromptModifier.d.ts +14 -0
  70. package/dist/processor-pieces/additionalModifiers/coreSystemPromptModifier.js +93 -0
  71. package/dist/processor-pieces/additionalModifiers/directoryContextModifier.d.ts +30 -0
  72. package/dist/processor-pieces/additionalModifiers/directoryContextModifier.js +330 -0
  73. package/dist/processor-pieces/additionalModifiers/environmentContextModifier.d.ts +26 -0
  74. package/dist/processor-pieces/additionalModifiers/environmentContextModifier.js +269 -0
  75. package/dist/processor-pieces/additionalModifiers/fallbackHandlerModifier.d.ts +38 -0
  76. package/dist/processor-pieces/additionalModifiers/fallbackHandlerModifier.js +217 -0
  77. package/dist/processor-pieces/additionalModifiers/ideContextModifier.d.ts +34 -0
  78. package/dist/processor-pieces/additionalModifiers/ideContextModifier.js +147 -0
  79. package/dist/processor-pieces/additionalModifiers/index.d.ts +12 -0
  80. package/dist/processor-pieces/additionalModifiers/index.js +28 -0
  81. package/dist/processor-pieces/additionalModifiers/loopDetectionModifier.d.ts +29 -0
  82. package/dist/processor-pieces/additionalModifiers/loopDetectionModifier.js +155 -0
  83. package/dist/processor-pieces/additionalModifiers/memoryImportModifier.d.ts +15 -0
  84. package/dist/processor-pieces/additionalModifiers/memoryImportModifier.js +129 -0
  85. package/dist/processor-pieces/additionalModifiers/shellProcessorModifier.d.ts +25 -0
  86. package/dist/processor-pieces/additionalModifiers/shellProcessorModifier.js +169 -0
  87. package/dist/processor-pieces/additionalModifiers/toolInjectionModifier.d.ts +20 -0
  88. package/dist/processor-pieces/additionalModifiers/toolInjectionModifier.js +152 -0
  89. package/dist/processor-pieces/base/baseMessageModifier.d.ts +12 -0
  90. package/dist/processor-pieces/base/baseMessageModifier.js +15 -0
  91. package/dist/processor-pieces/base/basePostInferenceProcessor.d.ts +13 -0
  92. package/dist/processor-pieces/base/basePostInferenceProcessor.js +18 -0
  93. package/dist/processor-pieces/base/basePostToolCallProcessor.d.ts +15 -0
  94. package/dist/processor-pieces/base/basePostToolCallProcessor.js +25 -0
  95. package/dist/processor-pieces/base/basePreInferenceProcessor.d.ts +12 -0
  96. package/dist/processor-pieces/base/basePreInferenceProcessor.js +17 -0
  97. package/dist/processor-pieces/base/basePreToolCallProcessor.d.ts +18 -0
  98. package/dist/processor-pieces/base/basePreToolCallProcessor.js +66 -0
  99. package/dist/processor-pieces/base/index.d.ts +9 -0
  100. package/dist/processor-pieces/base/index.js +18 -0
  101. package/dist/processor-pieces/index.d.ts +1 -0
  102. package/dist/processor-pieces/index.js +59 -0
  103. package/dist/processor-pieces/messageModifiers/addCurrentDirectoryRootFilesModifier.d.ts +7 -0
  104. package/dist/processor-pieces/messageModifiers/addCurrentDirectoryRootFilesModifier.js +93 -0
  105. package/dist/processor-pieces/messageModifiers/addToolsListMessageModifier.d.ts +31 -0
  106. package/dist/processor-pieces/messageModifiers/addToolsListMessageModifier.js +145 -0
  107. package/dist/processor-pieces/messageModifiers/advancedSystemInstructionMessageModifier.d.ts +9 -0
  108. package/dist/processor-pieces/messageModifiers/advancedSystemInstructionMessageModifier.js +77 -0
  109. package/dist/processor-pieces/messageModifiers/argumentProcessorModifier.d.ts +13 -0
  110. package/dist/processor-pieces/messageModifiers/argumentProcessorModifier.js +68 -0
  111. package/dist/processor-pieces/messageModifiers/atFileProcessorModifier.d.ts +25 -0
  112. package/dist/processor-pieces/messageModifiers/atFileProcessorModifier.js +453 -0
  113. package/dist/processor-pieces/messageModifiers/baseContextMessageModifier.d.ts +7 -0
  114. package/dist/processor-pieces/messageModifiers/baseContextMessageModifier.js +67 -0
  115. package/dist/processor-pieces/messageModifiers/baseSystemInstructionMessageModifier.d.ts +9 -0
  116. package/dist/processor-pieces/messageModifiers/baseSystemInstructionMessageModifier.js +90 -0
  117. package/dist/processor-pieces/messageModifiers/chatCompressionModifier.d.ts +19 -0
  118. package/dist/processor-pieces/messageModifiers/chatCompressionModifier.js +110 -0
  119. package/dist/processor-pieces/messageModifiers/chatHistoryMessageModifier.d.ts +18 -0
  120. package/dist/processor-pieces/messageModifiers/chatHistoryMessageModifier.example.d.ts +20 -0
  121. package/dist/processor-pieces/messageModifiers/chatHistoryMessageModifier.example.js +124 -0
  122. package/dist/processor-pieces/messageModifiers/chatHistoryMessageModifier.js +104 -0
  123. package/dist/processor-pieces/messageModifiers/chatRecordingModifier.d.ts +23 -0
  124. package/dist/processor-pieces/messageModifiers/chatRecordingModifier.js +173 -0
  125. package/dist/processor-pieces/messageModifiers/coreSystemPromptModifier.d.ts +14 -0
  126. package/dist/processor-pieces/messageModifiers/coreSystemPromptModifier.js +130 -0
  127. package/dist/processor-pieces/messageModifiers/directoryContextModifier.d.ts +36 -0
  128. package/dist/processor-pieces/messageModifiers/directoryContextModifier.js +418 -0
  129. package/dist/processor-pieces/messageModifiers/environmentContext.d.ts +41 -0
  130. package/dist/processor-pieces/messageModifiers/environmentContext.js +355 -0
  131. package/dist/processor-pieces/messageModifiers/environmentContextModifier.d.ts +26 -0
  132. package/dist/processor-pieces/messageModifiers/environmentContextModifier.js +260 -0
  133. package/dist/processor-pieces/messageModifiers/handleUrlMessageModifier.d.ts +13 -0
  134. package/dist/processor-pieces/messageModifiers/handleUrlMessageModifier.js +59 -0
  135. package/dist/processor-pieces/messageModifiers/ideContextModifier.d.ts +34 -0
  136. package/dist/processor-pieces/messageModifiers/ideContextModifier.js +157 -0
  137. package/dist/processor-pieces/messageModifiers/imageAttachmentMessageModifier.d.ts +19 -0
  138. package/dist/processor-pieces/messageModifiers/imageAttachmentMessageModifier.js +221 -0
  139. package/dist/processor-pieces/messageModifiers/index.d.ts +11 -0
  140. package/dist/processor-pieces/messageModifiers/index.js +26 -0
  141. package/dist/processor-pieces/messageModifiers/memoryImportModifier.d.ts +15 -0
  142. package/dist/processor-pieces/messageModifiers/memoryImportModifier.js +129 -0
  143. package/dist/processor-pieces/messageModifiers/mentionedFilesModifier.d.ts +23 -0
  144. package/dist/processor-pieces/messageModifiers/mentionedFilesModifier.js +207 -0
  145. package/dist/processor-pieces/messageModifiers/simpleMessageModifier.d.ts +7 -0
  146. package/dist/processor-pieces/messageModifiers/simpleMessageModifier.js +26 -0
  147. package/dist/processor-pieces/messageModifiers/toolInjectionModifier.d.ts +20 -0
  148. package/dist/processor-pieces/messageModifiers/toolInjectionModifier.js +152 -0
  149. package/dist/processor-pieces/messageModifiers/workingDirectoryMessageModifier.d.ts +38 -0
  150. package/dist/processor-pieces/messageModifiers/workingDirectoryMessageModifier.js +392 -0
  151. package/dist/processor-pieces/postInference/llmOutputValidityProcessor.d.ts +1 -0
  152. package/dist/processor-pieces/postInference/llmOutputValidityProcessor.js +2 -0
  153. package/dist/processor-pieces/postInferenceProcessors/checkForNoToolCall.d.ts +7 -0
  154. package/dist/processor-pieces/postInferenceProcessors/checkForNoToolCall.js +24 -0
  155. package/dist/processor-pieces/postInferenceProcessors/loopDetectionModifier.d.ts +29 -0
  156. package/dist/processor-pieces/postInferenceProcessors/loopDetectionModifier.js +174 -0
  157. package/dist/processor-pieces/postToolCall/advancedLoopDetectionProcessor.d.ts +41 -0
  158. package/dist/processor-pieces/postToolCall/advancedLoopDetectionProcessor.js +197 -0
  159. package/dist/processor-pieces/postToolCall/chatCompressionProcessor.d.ts +26 -0
  160. package/dist/processor-pieces/postToolCall/chatCompressionProcessor.js +90 -0
  161. package/dist/processor-pieces/postToolCall/chatRecordingProcessor.d.ts +81 -0
  162. package/dist/processor-pieces/postToolCall/chatRecordingProcessor.js +329 -0
  163. package/dist/processor-pieces/postToolCall/contextManagementProcessor.d.ts +40 -0
  164. package/dist/processor-pieces/postToolCall/contextManagementProcessor.js +272 -0
  165. package/dist/processor-pieces/postToolCall/conversationCompactorProcessor.d.ts +49 -0
  166. package/dist/processor-pieces/postToolCall/conversationCompactorProcessor.js +291 -0
  167. package/dist/processor-pieces/postToolCall/conversationContinuityProcessor.d.ts +49 -0
  168. package/dist/processor-pieces/postToolCall/conversationContinuityProcessor.js +293 -0
  169. package/dist/processor-pieces/postToolCall/followUpConversationProcessor.d.ts +47 -0
  170. package/dist/processor-pieces/postToolCall/followUpConversationProcessor.js +249 -0
  171. package/dist/processor-pieces/postToolCall/loopDetectionProcessor.d.ts +30 -0
  172. package/dist/processor-pieces/postToolCall/loopDetectionProcessor.js +137 -0
  173. package/dist/processor-pieces/postToolCall/responseValidationProcessor.d.ts +30 -0
  174. package/dist/processor-pieces/postToolCall/responseValidationProcessor.js +228 -0
  175. package/dist/processor-pieces/postToolCall/telemetryProcessor.d.ts +99 -0
  176. package/dist/processor-pieces/postToolCall/telemetryProcessor.js +278 -0
  177. package/dist/processor-pieces/postToolCall/tokenManagementProcessor.d.ts +37 -0
  178. package/dist/processor-pieces/postToolCall/tokenManagementProcessor.js +178 -0
  179. package/dist/processor-pieces/postToolCall/toolExecutionProcessor.d.ts +43 -0
  180. package/dist/processor-pieces/postToolCall/toolExecutionProcessor.js +207 -0
  181. package/dist/processor-pieces/postToolCallProcessors/index.d.ts +1 -0
  182. package/dist/processor-pieces/postToolCallProcessors/index.js +2 -0
  183. package/dist/processor-pieces/postToolCallProcessors/shellProcessorModifier.d.ts +25 -0
  184. package/dist/processor-pieces/postToolCallProcessors/shellProcessorModifier.js +225 -0
  185. package/dist/processor-pieces/preInference/conversationCompactorProcessor.d.ts +52 -0
  186. package/dist/processor-pieces/preInference/conversationCompactorProcessor.js +264 -0
  187. package/dist/processor-pieces/preInference/conversationContinuityProcessor.d.ts +49 -0
  188. package/dist/processor-pieces/preInference/conversationContinuityProcessor.js +293 -0
  189. package/dist/processor-pieces/preInferenceProcessors/chatCompressionModifier.d.ts +35 -0
  190. package/dist/processor-pieces/preInferenceProcessors/chatCompressionModifier.js +255 -0
  191. package/dist/processor-pieces/preInferenceProcessors/conversationCompaction.d.ts +7 -0
  192. package/dist/processor-pieces/preInferenceProcessors/conversationCompaction.js +31 -0
  193. package/dist/processor-pieces/preInferenceProcessors/index.d.ts +1 -0
  194. package/dist/processor-pieces/preInferenceProcessors/index.js +2 -0
  195. package/dist/processor-pieces/preToolCall/index.d.ts +9 -0
  196. package/dist/processor-pieces/preToolCall/index.js +18 -0
  197. package/dist/processor-pieces/preToolCall/localToolInterceptorProcessor.d.ts +58 -0
  198. package/dist/processor-pieces/preToolCall/localToolInterceptorProcessor.js +444 -0
  199. package/dist/processor-pieces/preToolCall/toolParameterModifierProcessor.d.ts +44 -0
  200. package/dist/processor-pieces/preToolCall/toolParameterModifierProcessor.js +367 -0
  201. package/dist/processor-pieces/preToolCall/toolValidationProcessor.d.ts +58 -0
  202. package/dist/processor-pieces/preToolCall/toolValidationProcessor.js +391 -0
  203. package/dist/processor-pieces/pretoolCallProcessors/index.d.ts +1 -0
  204. package/dist/processor-pieces/pretoolCallProcessors/index.js +2 -0
  205. package/dist/processor-pieces/processors/advancedLoopDetectionProcessor.d.ts +41 -0
  206. package/dist/processor-pieces/processors/advancedLoopDetectionProcessor.js +197 -0
  207. package/dist/processor-pieces/processors/chatCompressionProcessor.d.ts +26 -0
  208. package/dist/processor-pieces/processors/chatCompressionProcessor.js +90 -0
  209. package/dist/processor-pieces/processors/chatRecordingProcessor.d.ts +81 -0
  210. package/dist/processor-pieces/processors/chatRecordingProcessor.js +329 -0
  211. package/dist/processor-pieces/processors/contextManagementProcessor.d.ts +40 -0
  212. package/dist/processor-pieces/processors/contextManagementProcessor.js +305 -0
  213. package/dist/processor-pieces/processors/loopDetectionProcessor.d.ts +30 -0
  214. package/dist/processor-pieces/processors/loopDetectionProcessor.js +137 -0
  215. package/dist/processor-pieces/processors/responseValidationProcessor.d.ts +30 -0
  216. package/dist/processor-pieces/processors/responseValidationProcessor.js +228 -0
  217. package/dist/processor-pieces/processors/telemetryProcessor.d.ts +99 -0
  218. package/dist/processor-pieces/processors/telemetryProcessor.js +311 -0
  219. package/dist/processor-pieces/processors/tokenManagementProcessor.d.ts +37 -0
  220. package/dist/processor-pieces/processors/tokenManagementProcessor.js +178 -0
  221. package/dist/processor-pieces/processors/toolExecutionProcessor.d.ts +43 -0
  222. package/dist/processor-pieces/processors/toolExecutionProcessor.js +207 -0
  223. package/dist/processor-pieces/tools/fileTools.d.ts +26 -0
  224. package/dist/processor-pieces/tools/fileTools.js +162 -0
  225. package/dist/processor-pieces/utils/messageModifierHelper.d.ts +4 -0
  226. package/dist/processor-pieces/utils/messageModifierHelper.js +58 -0
  227. package/dist/types/commonTypes.d.ts +4 -0
  228. package/dist/types/processorTypes.d.ts +67 -0
  229. package/dist/types/processorTypes.js +58 -0
  230. package/dist/unified/agent/agent.d.ts +17 -0
  231. package/dist/unified/agent/agent.js +79 -0
  232. package/dist/unified/agent/team.d.ts +2 -0
  233. package/dist/unified/agent/team.js +6 -0
  234. package/dist/unified/agent/tool.d.ts +99 -0
  235. package/dist/unified/agent/tool.js +440 -0
  236. package/dist/unified/agent/tools.d.ts +44 -0
  237. package/dist/unified/agent/tools.js +487 -0
  238. package/dist/unified/agent/workflow.d.ts +24 -0
  239. package/dist/unified/agent/workflow.js +275 -0
  240. package/dist/unified/agent/workflowControls.d.ts +11 -0
  241. package/dist/unified/agent/workflowControls.js +20 -0
  242. package/dist/unified/agent/workflowSteps.d.ts +63 -0
  243. package/dist/unified/agent/workflowSteps.js +284 -0
  244. package/dist/unified/base/agentStep.d.ts +32 -0
  245. package/dist/unified/base/agentStep.js +96 -0
  246. package/dist/unified/base/create/createInitialPromptGenerators.d.ts +5 -0
  247. package/dist/unified/base/create/createInitialPromptGenerators.js +17 -0
  248. package/dist/unified/base/index.d.ts +5 -0
  249. package/dist/unified/base/index.js +13 -0
  250. package/dist/unified/base/initialPromptGenerator.d.ts +48 -0
  251. package/dist/unified/base/initialPromptGenerator.js +118 -0
  252. package/dist/unified/base/responseExecutor.d.ts +36 -0
  253. package/dist/unified/base/responseExecutor.js +283 -0
  254. package/dist/unified/examples/agentExample.d.ts +46 -0
  255. package/dist/unified/examples/agentExample.js +464 -0
  256. package/dist/unified/examples/documentationPatternExample.d.ts +10 -0
  257. package/dist/unified/examples/documentationPatternExample.js +385 -0
  258. package/dist/unified/examples/followUpProcessorsExample.d.ts +45 -0
  259. package/dist/unified/examples/followUpProcessorsExample.js +311 -0
  260. package/dist/unified/examples/orchestratorExample.d.ts +16 -0
  261. package/dist/unified/examples/orchestratorExample.js +415 -0
  262. package/dist/unified/examples/preToolCallProcessorsExample.d.ts +36 -0
  263. package/dist/unified/examples/preToolCallProcessorsExample.js +458 -0
  264. package/dist/unified/examples/workflowExample.d.ts +12 -0
  265. package/dist/unified/examples/workflowExample.js +497 -0
  266. package/dist/unified/index.d.ts +18 -0
  267. package/dist/unified/index.js +42 -0
  268. package/dist/unified/orchestrator/orchestrator.d.ts +260 -0
  269. package/dist/unified/orchestrator/orchestrator.js +519 -0
  270. package/dist/unified/team/team.d.ts +1 -0
  271. package/dist/unified/team/team.js +2 -0
  272. package/dist/unified/types/libTypes.d.ts +378 -0
  273. package/dist/unified/types/libTypes.js +6 -0
  274. package/dist/unified/types/types.d.ts +212 -0
  275. package/dist/unified/types/types.js +43 -0
  276. package/dist/unified/utils/utils.d.ts +40 -0
  277. package/dist/unified/utils/utils.js +219 -0
  278. package/package.json +35 -13
  279. /package/dist/{agent.d.ts → builderpattern/agent.d.ts} +0 -0
  280. /package/dist/{index.js → builderpattern/index.js} +0 -0
  281. /package/dist/{promptbuilder.js → builderpattern/promptbuilder.js} +0 -0
  282. /package/dist/{systemprompt.d.ts → builderpattern/systemprompt.d.ts} +0 -0
  283. /package/dist/{systemprompt.js → builderpattern/systemprompt.js} +0 -0
  284. /package/dist/{taskInstruction.js → builderpattern/taskInstruction.js} +0 -0
  285. /package/dist/{usermessage.js → builderpattern/usermessage.js} +0 -0
@@ -0,0 +1,255 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChatCompressionModifier = exports.CompressionStatus = void 0;
4
+ const base_1 = require("../base");
5
+ /**
6
+ * Threshold for compression token count as a fraction of the model's token limit.
7
+ * If the chat history exceeds this threshold, it will be compressed.
8
+ */
9
+ const COMPRESSION_TOKEN_THRESHOLD = 0.7;
10
+ /**
11
+ * The fraction of the latest chat history to keep. A value of 0.3
12
+ * means that only the last 30% of the chat history will be kept after compression.
13
+ */
14
+ const COMPRESSION_PRESERVE_THRESHOLD = 0.3;
15
+ var CompressionStatus;
16
+ (function (CompressionStatus) {
17
+ /** The compression was successful */
18
+ CompressionStatus[CompressionStatus["COMPRESSED"] = 1] = "COMPRESSED";
19
+ /** The compression failed due to the compression inflating the token count */
20
+ CompressionStatus[CompressionStatus["COMPRESSION_FAILED_INFLATED_TOKEN_COUNT"] = 2] = "COMPRESSION_FAILED_INFLATED_TOKEN_COUNT";
21
+ /** The compression failed due to an error counting tokens */
22
+ CompressionStatus[CompressionStatus["COMPRESSION_FAILED_TOKEN_COUNT_ERROR"] = 3] = "COMPRESSION_FAILED_TOKEN_COUNT_ERROR";
23
+ /** The compression was not necessary and no action was taken */
24
+ CompressionStatus[CompressionStatus["NOOP"] = 4] = "NOOP";
25
+ })(CompressionStatus || (exports.CompressionStatus = CompressionStatus = {}));
26
+ /**
27
+ * Returns the index of the content after the fraction of the total characters in the history.
28
+ */
29
+ function findIndexAfterFraction(history, fraction) {
30
+ if (fraction <= 0 || fraction >= 1) {
31
+ throw new Error('Fraction must be between 0 and 1');
32
+ }
33
+ const contentLengths = history.map((content) => JSON.stringify(content).length);
34
+ const totalCharacters = contentLengths.reduce((sum, length) => sum + length, 0);
35
+ const targetCharacters = totalCharacters * fraction;
36
+ let charactersSoFar = 0;
37
+ for (let i = 0; i < contentLengths.length; i++) {
38
+ charactersSoFar += contentLengths[i];
39
+ if (charactersSoFar >= targetCharacters) {
40
+ return i;
41
+ }
42
+ }
43
+ return contentLengths.length;
44
+ }
45
+ function isFunctionResponse(message) {
46
+ // Check if message has function response content
47
+ if (typeof message.content === 'object' && message.content !== null) {
48
+ return 'functionResponse' in message.content;
49
+ }
50
+ return false;
51
+ }
52
+ // Mock token limit for different models (should be replaced with actual implementation)
53
+ function tokenLimit(model) {
54
+ // Default token limits for common models
55
+ if (model.includes('gemini-pro'))
56
+ return 30720;
57
+ if (model.includes('gemini-flash'))
58
+ return 1048576;
59
+ if (model.includes('gpt-4'))
60
+ return 8192;
61
+ if (model.includes('gpt-3.5'))
62
+ return 4096;
63
+ return 8192; // Default fallback
64
+ }
65
+ class ChatCompressionModifier extends base_1.BasePreInferenceProcessor {
66
+ constructor(options = {}) {
67
+ super();
68
+ this.hasFailedCompressionAttempt = false;
69
+ this.options = {
70
+ contextPercentageThreshold: options.contextPercentageThreshold || COMPRESSION_TOKEN_THRESHOLD,
71
+ enableCompression: options.enableCompression !== false,
72
+ force: options.force || false
73
+ };
74
+ }
75
+ async modify(originalRequest, createdMessage) {
76
+ try {
77
+ const compressionResult = await this.tryCompressChat(createdMessage.message.messages, this.options.force || false);
78
+ if (compressionResult.compressionStatus === CompressionStatus.COMPRESSED) {
79
+ return {
80
+ message: {
81
+ ...createdMessage.message,
82
+ messages: compressionResult.compressedMessages || createdMessage.message.messages
83
+ },
84
+ metadata: {
85
+ ...createdMessage.metadata,
86
+ chatCompressed: true,
87
+ originalTokenCount: compressionResult.originalTokenCount,
88
+ newTokenCount: compressionResult.newTokenCount,
89
+ compressionStatus: compressionResult.compressionStatus
90
+ }
91
+ };
92
+ }
93
+ return {
94
+ ...createdMessage,
95
+ metadata: {
96
+ ...createdMessage.metadata,
97
+ compressionStatus: compressionResult.compressionStatus,
98
+ originalTokenCount: compressionResult.originalTokenCount,
99
+ newTokenCount: compressionResult.newTokenCount
100
+ }
101
+ };
102
+ }
103
+ catch (error) {
104
+ console.error('Error in ChatCompressionModifier:', error);
105
+ this.hasFailedCompressionAttempt = true;
106
+ return createdMessage;
107
+ }
108
+ }
109
+ async tryCompressChat(messages, force = false) {
110
+ var _a;
111
+ const curatedHistory = messages;
112
+ // Regardless of `force`, don't do anything if the history is empty.
113
+ if (curatedHistory.length === 0 ||
114
+ (this.hasFailedCompressionAttempt && !force)) {
115
+ return {
116
+ originalTokenCount: 0,
117
+ newTokenCount: 0,
118
+ compressionStatus: CompressionStatus.NOOP,
119
+ };
120
+ }
121
+ // Mock model - should be replaced with actual model detection
122
+ const model = "gemini-pro";
123
+ const originalTokenCount = await this.countTokens(model, curatedHistory);
124
+ if (originalTokenCount === undefined) {
125
+ console.warn(`Could not determine token count for model ${model}.`);
126
+ this.hasFailedCompressionAttempt = !force && true;
127
+ return {
128
+ originalTokenCount: 0,
129
+ newTokenCount: 0,
130
+ compressionStatus: CompressionStatus.COMPRESSION_FAILED_TOKEN_COUNT_ERROR,
131
+ };
132
+ }
133
+ const contextPercentageThreshold = this.options.contextPercentageThreshold;
134
+ // Don't compress if not forced and we are under the limit.
135
+ if (!force) {
136
+ const threshold = contextPercentageThreshold !== null && contextPercentageThreshold !== void 0 ? contextPercentageThreshold : COMPRESSION_TOKEN_THRESHOLD;
137
+ if (originalTokenCount < threshold * tokenLimit(model)) {
138
+ return {
139
+ originalTokenCount,
140
+ newTokenCount: originalTokenCount,
141
+ compressionStatus: CompressionStatus.NOOP,
142
+ };
143
+ }
144
+ }
145
+ let compressBeforeIndex = findIndexAfterFraction(curatedHistory, 1 - COMPRESSION_PRESERVE_THRESHOLD);
146
+ // Find the first user message after the index. This is the start of the next turn.
147
+ while (compressBeforeIndex < curatedHistory.length &&
148
+ (((_a = curatedHistory[compressBeforeIndex]) === null || _a === void 0 ? void 0 : _a.role) === 'assistant' ||
149
+ isFunctionResponse(curatedHistory[compressBeforeIndex]))) {
150
+ compressBeforeIndex++;
151
+ }
152
+ const historyToCompress = curatedHistory.slice(0, compressBeforeIndex);
153
+ const historyToKeep = curatedHistory.slice(compressBeforeIndex);
154
+ // Generate AI summary using the compression prompt
155
+ const summary = await this.generateCompressionSummary(historyToCompress);
156
+ const compressedMessages = [
157
+ {
158
+ role: 'user',
159
+ content: summary
160
+ },
161
+ {
162
+ role: 'assistant',
163
+ content: 'Got it. Thanks for the additional context!'
164
+ },
165
+ ...historyToKeep,
166
+ ];
167
+ const newTokenCount = await this.countTokens(model, compressedMessages);
168
+ if (newTokenCount === undefined) {
169
+ console.warn('Could not determine compressed history token count.');
170
+ this.hasFailedCompressionAttempt = !force && true;
171
+ return {
172
+ originalTokenCount,
173
+ newTokenCount: originalTokenCount,
174
+ compressionStatus: CompressionStatus.COMPRESSION_FAILED_TOKEN_COUNT_ERROR,
175
+ };
176
+ }
177
+ if (newTokenCount > originalTokenCount) {
178
+ this.hasFailedCompressionAttempt = !force && true;
179
+ return {
180
+ originalTokenCount,
181
+ newTokenCount,
182
+ compressionStatus: CompressionStatus.COMPRESSION_FAILED_INFLATED_TOKEN_COUNT,
183
+ };
184
+ }
185
+ return {
186
+ originalTokenCount,
187
+ newTokenCount,
188
+ compressionStatus: CompressionStatus.COMPRESSED,
189
+ compressedMessages,
190
+ };
191
+ }
192
+ async countTokens(model, messages) {
193
+ // Mock token counting - should be replaced with actual API call
194
+ // Rough approximation: 4 characters per token
195
+ const totalCharacters = messages.reduce((sum, msg) => {
196
+ return sum + (typeof msg.content === 'string' ? msg.content.length : JSON.stringify(msg.content).length);
197
+ }, 0);
198
+ return Math.ceil(totalCharacters / 4);
199
+ }
200
+ async generateCompressionSummary(messages) {
201
+ // This should use the actual compression prompt and LLM call
202
+ // For now, using a simplified version similar to the original
203
+ const compressionPrompt = `You are tasked with creating a concise summary of a conversation history to preserve context while reducing token usage.
204
+
205
+ Please analyze the conversation and create a state snapshot that captures:
206
+ 1. Key topics discussed
207
+ 2. Important decisions made
208
+ 3. Current context and progress
209
+ 4. Any ongoing tasks or issues
210
+
211
+ Format your response as a clear, structured summary that maintains the essential information needed to continue the conversation effectively.`;
212
+ // Mock LLM call - should be replaced with actual LLM integration
213
+ const summaryParts = [];
214
+ let userQuestions = [];
215
+ let assistantResponses = [];
216
+ for (const message of messages) {
217
+ const content = typeof message.content === 'string' ? message.content : JSON.stringify(message.content);
218
+ if (message.role === 'user') {
219
+ if (content.length > 20) {
220
+ userQuestions.push(content.substring(0, 150) + (content.length > 150 ? '...' : ''));
221
+ }
222
+ }
223
+ else if (message.role === 'assistant') {
224
+ if (content.length > 20) {
225
+ assistantResponses.push(content.substring(0, 150) + (content.length > 150 ? '...' : ''));
226
+ }
227
+ }
228
+ }
229
+ summaryParts.push('<state_snapshot>');
230
+ summaryParts.push('This is a compressed summary of the previous conversation:');
231
+ summaryParts.push('');
232
+ if (userQuestions.length > 0) {
233
+ summaryParts.push('Key user requests and questions:');
234
+ userQuestions.slice(0, 5).forEach((q, i) => {
235
+ summaryParts.push(`${i + 1}. ${q}`);
236
+ });
237
+ summaryParts.push('');
238
+ }
239
+ if (assistantResponses.length > 0) {
240
+ summaryParts.push('Key assistant responses and actions:');
241
+ assistantResponses.slice(0, 5).forEach((r, i) => {
242
+ summaryParts.push(`${i + 1}. ${r}`);
243
+ });
244
+ summaryParts.push('');
245
+ }
246
+ summaryParts.push(`Total messages compressed: ${messages.length}`);
247
+ summaryParts.push('</state_snapshot>');
248
+ return summaryParts.join('\n');
249
+ }
250
+ resetCompressionState() {
251
+ this.hasFailedCompressionAttempt = false;
252
+ }
253
+ }
254
+ exports.ChatCompressionModifier = ChatCompressionModifier;
255
+ ////
@@ -0,0 +1,7 @@
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
+ }
@@ -0,0 +1,31 @@
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;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,9 @@
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';
@@ -0,0 +1,18 @@
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; } });
@@ -0,0 +1,58 @@
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
+ }