@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,388 @@
1
+ /**
2
+ * @fileoverview Workflow system for Composable Agent Pattern
3
+ * @description Provides workflow orchestration for multi-step agent processes
4
+ */
5
+ import type { ComposableAgent } from './types';
6
+ import { z } from 'zod';
7
+ export interface WorkflowContext {
8
+ /** Shared data between workflow steps */
9
+ data: Record<string, any>;
10
+ /** Execution history */
11
+ history: WorkflowStepResult[];
12
+ /** Current step index */
13
+ currentStep: number;
14
+ /** Workflow metadata */
15
+ metadata: Record<string, any>;
16
+ }
17
+ export interface WorkflowStepResult {
18
+ /** Step ID */
19
+ stepId: string;
20
+ /** Whether step succeeded */
21
+ success: boolean;
22
+ /** Step output data */
23
+ output?: any;
24
+ /** Error message if failed */
25
+ error?: string;
26
+ /** Step execution time */
27
+ executionTime: number;
28
+ /** Step metadata */
29
+ metadata?: Record<string, any>;
30
+ }
31
+ export interface WorkflowStep {
32
+ /** Unique step identifier */
33
+ id: string;
34
+ /** Human-readable step name */
35
+ name: string;
36
+ /** Step description */
37
+ description?: string;
38
+ /** Input schema validation */
39
+ inputSchema?: z.ZodType;
40
+ /** Output schema validation */
41
+ outputSchema?: z.ZodType;
42
+ /** Step execution function */
43
+ execute: (context: WorkflowContext) => Promise<WorkflowStepResult>;
44
+ /** Condition to determine if step should run */
45
+ condition?: (context: WorkflowContext) => boolean | Promise<boolean>;
46
+ /** Steps that must complete before this step */
47
+ dependencies?: string[];
48
+ /** Whether step can run in parallel */
49
+ parallel?: boolean;
50
+ /** Retry configuration */
51
+ retry?: {
52
+ maxAttempts: number;
53
+ delay: number;
54
+ backoff?: 'linear' | 'exponential';
55
+ };
56
+ }
57
+ export interface WorkflowConfig {
58
+ /** Workflow name */
59
+ name: string;
60
+ /** Workflow description */
61
+ description?: string;
62
+ /** Workflow steps */
63
+ steps: WorkflowStep[];
64
+ /** Initial context data */
65
+ initialData?: Record<string, any>;
66
+ /** Workflow timeout in milliseconds */
67
+ timeout?: number;
68
+ /** Whether to continue on step failure */
69
+ continueOnError?: boolean;
70
+ /** Maximum parallel steps */
71
+ maxParallelSteps?: number;
72
+ }
73
+ export interface WorkflowResult {
74
+ /** Whether workflow completed successfully */
75
+ success: boolean;
76
+ /** Final context data */
77
+ data: Record<string, any>;
78
+ /** All step results */
79
+ stepResults: WorkflowStepResult[];
80
+ /** Total execution time */
81
+ executionTime: number;
82
+ /** Error message if failed */
83
+ error?: string;
84
+ /** Workflow metadata */
85
+ metadata: Record<string, any>;
86
+ }
87
+ /**
88
+ * Agent step - executes a composable agent
89
+ */
90
+ export interface AgentStepConfig {
91
+ /** Agent instance to execute */
92
+ agent: ComposableAgent;
93
+ /** Message template (can use context variables) */
94
+ messageTemplate: string;
95
+ /** Input mapping from context */
96
+ inputMapping?: Record<string, string>;
97
+ /** Output mapping to context */
98
+ outputMapping?: Record<string, string>;
99
+ }
100
+ /**
101
+ * Conditional step - executes different branches based on condition
102
+ */
103
+ export interface ConditionalStepConfig {
104
+ /** Condition function */
105
+ condition: (context: WorkflowContext) => boolean | Promise<boolean>;
106
+ /** Steps to execute if condition is true */
107
+ trueBranch: WorkflowStep[];
108
+ /** Steps to execute if condition is false */
109
+ falseBranch?: WorkflowStep[];
110
+ }
111
+ /**
112
+ * Parallel step - executes multiple steps in parallel
113
+ */
114
+ export interface ParallelStepConfig {
115
+ /** Steps to execute in parallel */
116
+ steps: WorkflowStep[];
117
+ /** Whether to wait for all steps to complete */
118
+ waitForAll?: boolean;
119
+ /** Maximum number of parallel executions */
120
+ maxConcurrency?: number;
121
+ }
122
+ /**
123
+ * Loop step - repeats steps while condition is true
124
+ */
125
+ export interface LoopStepConfig {
126
+ /** Loop condition */
127
+ condition: (context: WorkflowContext, iteration: number) => boolean | Promise<boolean>;
128
+ /** Steps to repeat */
129
+ steps: WorkflowStep[];
130
+ /** Maximum iterations */
131
+ maxIterations?: number;
132
+ /** Current iteration variable name in context */
133
+ iterationVariable?: string;
134
+ }
135
+ export declare class Workflow {
136
+ private config;
137
+ private context;
138
+ constructor(config: WorkflowConfig);
139
+ /**
140
+ * Execute the workflow
141
+ */
142
+ execute(): Promise<WorkflowResult>;
143
+ /**
144
+ * Execute a list of steps
145
+ */
146
+ private executeSteps;
147
+ /**
148
+ * Execute parallel steps
149
+ */
150
+ private executeParallelSteps;
151
+ /**
152
+ * Execute a single step with retry logic
153
+ */
154
+ private executeStep;
155
+ /**
156
+ * Calculate retry delay with backoff
157
+ */
158
+ private calculateRetryDelay;
159
+ /**
160
+ * Split array into chunks
161
+ */
162
+ private chunkArray;
163
+ /**
164
+ * Get current workflow context
165
+ */
166
+ getContext(): WorkflowContext;
167
+ /**
168
+ * Update workflow context data
169
+ */
170
+ updateContext(data: Record<string, any>): void;
171
+ }
172
+ /**
173
+ * Create an agent execution step
174
+ */
175
+ export declare function createAgentStep(config: AgentStepConfig & {
176
+ id: string;
177
+ name: string;
178
+ }): WorkflowStep;
179
+ /**
180
+ * Create a data transformation step
181
+ */
182
+ export declare function createTransformStep(config: {
183
+ id: string;
184
+ name: string;
185
+ transform: (data: any) => any | Promise<any>;
186
+ inputSchema?: z.ZodType;
187
+ outputSchema?: z.ZodType;
188
+ }): WorkflowStep;
189
+ /**
190
+ * Create a conditional branch step
191
+ */
192
+ export declare function createConditionalStep(config: ConditionalStepConfig & {
193
+ id: string;
194
+ name: string;
195
+ }): WorkflowStep;
196
+ /**
197
+ * Create a delay step
198
+ */
199
+ export declare function createDelayStep(config: {
200
+ id: string;
201
+ name: string;
202
+ delay: number;
203
+ }): WorkflowStep;
204
+ /**
205
+ * Create a simple custom step with your own logic
206
+ *
207
+ * @param config - Step configuration with custom execute function
208
+ * @returns WorkflowStep
209
+ *
210
+ * @example
211
+ * ```typescript
212
+ * const customStep = createStep({
213
+ * id: 'my-step',
214
+ * name: 'My Custom Step',
215
+ * description: 'Does something custom',
216
+ * execute: async (context) => {
217
+ * // Your custom logic here
218
+ * const result = await doSomething(context.data);
219
+ * return {
220
+ * stepId: 'my-step',
221
+ * success: true,
222
+ * output: { customResult: result },
223
+ * executionTime: 0
224
+ * };
225
+ * }
226
+ * });
227
+ * ```
228
+ */
229
+ export declare function createStep(config: {
230
+ /** Unique step identifier */
231
+ id: string;
232
+ /** Human-readable step name */
233
+ name: string;
234
+ /** Step description */
235
+ description?: string;
236
+ /** Input schema validation */
237
+ inputSchema?: z.ZodType;
238
+ /** Output schema validation */
239
+ outputSchema?: z.ZodType;
240
+ /** Step execution function */
241
+ execute: (context: WorkflowContext) => Promise<WorkflowStepResult>;
242
+ /** Condition to determine if step should run */
243
+ condition?: (context: WorkflowContext) => boolean | Promise<boolean>;
244
+ /** Steps that must complete before this step */
245
+ dependencies?: string[];
246
+ /** Whether step can run in parallel */
247
+ parallel?: boolean;
248
+ /** Retry configuration */
249
+ retry?: {
250
+ maxAttempts: number;
251
+ delay: number;
252
+ backoff?: 'linear' | 'exponential';
253
+ };
254
+ }): WorkflowStep;
255
+ /**
256
+ * Create a simple step that executes a function with the context data
257
+ *
258
+ * @param config - Step configuration with transform function
259
+ * @returns WorkflowStep
260
+ *
261
+ * @example
262
+ * ```typescript
263
+ * const mathStep = createSimpleStep({
264
+ * id: 'calculate',
265
+ * name: 'Calculate Total',
266
+ * execute: (data) => {
267
+ * const total = data.items.reduce((sum, item) => sum + item.price, 0);
268
+ * return { total, itemCount: data.items.length };
269
+ * }
270
+ * });
271
+ * ```
272
+ */
273
+ export declare function createSimpleStep(config: {
274
+ /** Unique step identifier */
275
+ id: string;
276
+ /** Human-readable step name */
277
+ name: string;
278
+ /** Step description */
279
+ description?: string;
280
+ /** Input schema validation */
281
+ inputSchema?: z.ZodType;
282
+ /** Output schema validation */
283
+ outputSchema?: z.ZodType;
284
+ /** Simple execution function that takes data and returns output */
285
+ execute: (data: any) => any | Promise<any>;
286
+ /** Condition to determine if step should run */
287
+ condition?: (context: WorkflowContext) => boolean | Promise<boolean>;
288
+ /** Steps that must complete before this step */
289
+ dependencies?: string[];
290
+ /** Whether step can run in parallel */
291
+ parallel?: boolean;
292
+ /** Retry configuration */
293
+ retry?: {
294
+ maxAttempts: number;
295
+ delay: number;
296
+ backoff?: 'linear' | 'exponential';
297
+ };
298
+ }): WorkflowStep;
299
+ /**
300
+ * Create an async step that can perform asynchronous operations
301
+ *
302
+ * @param config - Step configuration with async function
303
+ * @returns WorkflowStep
304
+ *
305
+ * @example
306
+ * ```typescript
307
+ * const apiStep = createAsyncStep({
308
+ * id: 'fetch-data',
309
+ * name: 'Fetch External Data',
310
+ * execute: async (data) => {
311
+ * const response = await fetch(`/api/data/${data.id}`);
312
+ * const result = await response.json();
313
+ * return { fetchedData: result };
314
+ * },
315
+ * retry: {
316
+ * maxAttempts: 3,
317
+ * delay: 1000,
318
+ * backoff: 'exponential'
319
+ * }
320
+ * });
321
+ * ```
322
+ */
323
+ export declare function createAsyncStep(config: {
324
+ /** Unique step identifier */
325
+ id: string;
326
+ /** Human-readable step name */
327
+ name: string;
328
+ /** Step description */
329
+ description?: string;
330
+ /** Input schema validation */
331
+ inputSchema?: z.ZodType;
332
+ /** Output schema validation */
333
+ outputSchema?: z.ZodType;
334
+ /** Async execution function */
335
+ execute: (data: any, context: WorkflowContext) => Promise<any>;
336
+ /** Condition to determine if step should run */
337
+ condition?: (context: WorkflowContext) => boolean | Promise<boolean>;
338
+ /** Steps that must complete before this step */
339
+ dependencies?: string[];
340
+ /** Whether step can run in parallel */
341
+ parallel?: boolean;
342
+ /** Retry configuration */
343
+ retry?: {
344
+ maxAttempts: number;
345
+ delay: number;
346
+ backoff?: 'linear' | 'exponential';
347
+ };
348
+ }): WorkflowStep;
349
+ /**
350
+ * Create a validation step that validates data against a schema
351
+ *
352
+ * @param config - Validation configuration
353
+ * @returns WorkflowStep
354
+ */
355
+ export declare function createValidationStep(config: {
356
+ /** Unique step identifier */
357
+ id: string;
358
+ /** Human-readable step name */
359
+ name: string;
360
+ /** Schema to validate against */
361
+ schema: z.ZodType;
362
+ /** Field to validate (defaults to entire context data) */
363
+ field?: string;
364
+ /** Whether to stop workflow on validation failure */
365
+ stopOnFailure?: boolean;
366
+ }): WorkflowStep;
367
+ /**
368
+ * Create a logging step for debugging workflows
369
+ *
370
+ * @param config - Logging configuration
371
+ * @returns WorkflowStep
372
+ */
373
+ export declare function createLoggingStep(config: {
374
+ /** Unique step identifier */
375
+ id: string;
376
+ /** Human-readable step name */
377
+ name: string;
378
+ /** Log level */
379
+ level?: 'debug' | 'info' | 'warn' | 'error';
380
+ /** Custom message template */
381
+ message?: string;
382
+ /** Fields to log */
383
+ fields?: string[];
384
+ }): WorkflowStep;
385
+ /**
386
+ * Create a workflow from configuration
387
+ */
388
+ export declare function createWorkflow(config: WorkflowConfig): Workflow;