@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.
- package/README.md +157 -66
- package/dist/{agent.js → builderpattern/agent.js} +2 -2
- package/dist/{followupquestionbuilder.d.ts → builderpattern/followupquestionbuilder.d.ts} +1 -1
- package/dist/{followupquestionbuilder.js → builderpattern/followupquestionbuilder.js} +1 -1
- package/dist/{index.d.ts → builderpattern/index.d.ts} +3 -3
- package/dist/{llmoutputhandler.d.ts → builderpattern/llmoutputhandler.d.ts} +1 -1
- package/dist/{llmoutputhandler.js → builderpattern/llmoutputhandler.js} +7 -7
- package/dist/{promptbuilder.d.ts → builderpattern/promptbuilder.d.ts} +3 -3
- package/dist/{taskInstruction.d.ts → builderpattern/taskInstruction.d.ts} +2 -2
- package/dist/{usermessage.d.ts → builderpattern/usermessage.d.ts} +9 -4
- package/dist/composablepattern/agent.d.ts +169 -0
- package/dist/composablepattern/agent.js +598 -0
- package/dist/composablepattern/codebolt-storage.d.ts +67 -0
- package/dist/composablepattern/codebolt-storage.js +320 -0
- package/dist/composablepattern/document.d.ts +149 -0
- package/dist/composablepattern/document.js +372 -0
- package/dist/composablepattern/examples/codebolt-integration-example.d.ts +12 -0
- package/dist/composablepattern/examples/codebolt-integration-example.js +218 -0
- package/dist/composablepattern/examples/codebolt-storage-example.d.ts +40 -0
- package/dist/composablepattern/examples/codebolt-storage-example.js +223 -0
- package/dist/composablepattern/examples/custom-steps-example.d.ts +20 -0
- package/dist/composablepattern/examples/custom-steps-example.js +455 -0
- package/dist/composablepattern/examples/document-agent.d.ts +17 -0
- package/dist/composablepattern/examples/document-agent.js +107 -0
- package/dist/composablepattern/examples/simple-codebolt-integration.d.ts +8 -0
- package/dist/composablepattern/examples/simple-codebolt-integration.js +164 -0
- package/dist/composablepattern/examples/weather-agent.d.ts +18 -0
- package/dist/composablepattern/examples/weather-agent.js +86 -0
- package/dist/composablepattern/examples/workflow-example.d.ts +12 -0
- package/dist/composablepattern/examples/workflow-example.js +463 -0
- package/dist/composablepattern/index.d.ts +63 -0
- package/dist/composablepattern/index.js +115 -0
- package/dist/composablepattern/memory.d.ts +89 -0
- package/dist/composablepattern/memory.js +141 -0
- package/dist/composablepattern/tool.d.ts +84 -0
- package/dist/composablepattern/tool.js +260 -0
- package/dist/composablepattern/types.d.ts +194 -0
- package/dist/composablepattern/types.js +6 -0
- package/dist/composablepattern/user-context.d.ts +214 -0
- package/dist/composablepattern/user-context.js +275 -0
- package/dist/composablepattern/workflow.d.ts +388 -0
- package/dist/composablepattern/workflow.js +562 -0
- package/dist/local-tools/fileTools.d.ts +26 -0
- package/dist/local-tools/fileTools.js +162 -0
- package/dist/processor/agent/agentStep.d.ts +49 -0
- package/dist/processor/agent/agentStep.js +241 -0
- package/dist/processor/agent/toolExecutor.d.ts +19 -0
- package/dist/processor/agent/toolExecutor.js +90 -0
- package/dist/processor/index.d.ts +7 -0
- package/dist/processor/index.js +36 -0
- package/dist/processor/messageModifiers/baseMessageModifier.d.ts +20 -0
- package/dist/processor/messageModifiers/baseMessageModifier.js +55 -0
- package/dist/processor/processors/baseProcessor.d.ts +14 -0
- package/dist/processor/processors/baseProcessor.js +29 -0
- package/dist/processor/tools/baseTool.d.ts +10 -0
- package/dist/processor/tools/baseTool.js +20 -0
- package/dist/processor/tools/toolList.d.ts +9 -0
- package/dist/processor/tools/toolList.js +22 -0
- package/dist/processor/types/interfaces.d.ts +117 -0
- package/dist/processor/types/interfaces.js +2 -0
- package/dist/processor-pieces/additionalModifiers/argumentProcessorModifier.d.ts +13 -0
- package/dist/processor-pieces/additionalModifiers/argumentProcessorModifier.js +68 -0
- package/dist/processor-pieces/additionalModifiers/atFileProcessorModifier.d.ts +15 -0
- package/dist/processor-pieces/additionalModifiers/atFileProcessorModifier.js +212 -0
- package/dist/processor-pieces/additionalModifiers/chatCompressionModifier.d.ts +19 -0
- package/dist/processor-pieces/additionalModifiers/chatCompressionModifier.js +110 -0
- package/dist/processor-pieces/additionalModifiers/chatRecordingModifier.d.ts +23 -0
- package/dist/processor-pieces/additionalModifiers/chatRecordingModifier.js +173 -0
- package/dist/processor-pieces/additionalModifiers/coreSystemPromptModifier.d.ts +14 -0
- package/dist/processor-pieces/additionalModifiers/coreSystemPromptModifier.js +93 -0
- package/dist/processor-pieces/additionalModifiers/directoryContextModifier.d.ts +30 -0
- package/dist/processor-pieces/additionalModifiers/directoryContextModifier.js +330 -0
- package/dist/processor-pieces/additionalModifiers/environmentContextModifier.d.ts +26 -0
- package/dist/processor-pieces/additionalModifiers/environmentContextModifier.js +269 -0
- package/dist/processor-pieces/additionalModifiers/fallbackHandlerModifier.d.ts +38 -0
- package/dist/processor-pieces/additionalModifiers/fallbackHandlerModifier.js +217 -0
- package/dist/processor-pieces/additionalModifiers/ideContextModifier.d.ts +34 -0
- package/dist/processor-pieces/additionalModifiers/ideContextModifier.js +147 -0
- package/dist/processor-pieces/additionalModifiers/index.d.ts +12 -0
- package/dist/processor-pieces/additionalModifiers/index.js +28 -0
- package/dist/processor-pieces/additionalModifiers/loopDetectionModifier.d.ts +29 -0
- package/dist/processor-pieces/additionalModifiers/loopDetectionModifier.js +155 -0
- package/dist/processor-pieces/additionalModifiers/memoryImportModifier.d.ts +15 -0
- package/dist/processor-pieces/additionalModifiers/memoryImportModifier.js +129 -0
- package/dist/processor-pieces/additionalModifiers/shellProcessorModifier.d.ts +25 -0
- package/dist/processor-pieces/additionalModifiers/shellProcessorModifier.js +169 -0
- package/dist/processor-pieces/additionalModifiers/toolInjectionModifier.d.ts +20 -0
- package/dist/processor-pieces/additionalModifiers/toolInjectionModifier.js +152 -0
- package/dist/processor-pieces/base/baseMessageModifier.d.ts +12 -0
- package/dist/processor-pieces/base/baseMessageModifier.js +15 -0
- package/dist/processor-pieces/base/basePostInferenceProcessor.d.ts +13 -0
- package/dist/processor-pieces/base/basePostInferenceProcessor.js +18 -0
- package/dist/processor-pieces/base/basePostToolCallProcessor.d.ts +15 -0
- package/dist/processor-pieces/base/basePostToolCallProcessor.js +25 -0
- package/dist/processor-pieces/base/basePreInferenceProcessor.d.ts +12 -0
- package/dist/processor-pieces/base/basePreInferenceProcessor.js +17 -0
- package/dist/processor-pieces/base/basePreToolCallProcessor.d.ts +18 -0
- package/dist/processor-pieces/base/basePreToolCallProcessor.js +66 -0
- package/dist/processor-pieces/base/index.d.ts +9 -0
- package/dist/processor-pieces/base/index.js +18 -0
- package/dist/processor-pieces/index.d.ts +1 -0
- package/dist/processor-pieces/index.js +59 -0
- package/dist/processor-pieces/messageModifiers/addCurrentDirectoryRootFilesModifier.d.ts +7 -0
- package/dist/processor-pieces/messageModifiers/addCurrentDirectoryRootFilesModifier.js +93 -0
- package/dist/processor-pieces/messageModifiers/addToolsListMessageModifier.d.ts +31 -0
- package/dist/processor-pieces/messageModifiers/addToolsListMessageModifier.js +145 -0
- package/dist/processor-pieces/messageModifiers/advancedSystemInstructionMessageModifier.d.ts +9 -0
- package/dist/processor-pieces/messageModifiers/advancedSystemInstructionMessageModifier.js +77 -0
- package/dist/processor-pieces/messageModifiers/argumentProcessorModifier.d.ts +13 -0
- package/dist/processor-pieces/messageModifiers/argumentProcessorModifier.js +68 -0
- package/dist/processor-pieces/messageModifiers/atFileProcessorModifier.d.ts +25 -0
- package/dist/processor-pieces/messageModifiers/atFileProcessorModifier.js +453 -0
- package/dist/processor-pieces/messageModifiers/baseContextMessageModifier.d.ts +7 -0
- package/dist/processor-pieces/messageModifiers/baseContextMessageModifier.js +67 -0
- package/dist/processor-pieces/messageModifiers/baseSystemInstructionMessageModifier.d.ts +9 -0
- package/dist/processor-pieces/messageModifiers/baseSystemInstructionMessageModifier.js +90 -0
- package/dist/processor-pieces/messageModifiers/chatCompressionModifier.d.ts +19 -0
- package/dist/processor-pieces/messageModifiers/chatCompressionModifier.js +110 -0
- package/dist/processor-pieces/messageModifiers/chatHistoryMessageModifier.d.ts +18 -0
- package/dist/processor-pieces/messageModifiers/chatHistoryMessageModifier.example.d.ts +20 -0
- package/dist/processor-pieces/messageModifiers/chatHistoryMessageModifier.example.js +124 -0
- package/dist/processor-pieces/messageModifiers/chatHistoryMessageModifier.js +104 -0
- package/dist/processor-pieces/messageModifiers/chatRecordingModifier.d.ts +23 -0
- package/dist/processor-pieces/messageModifiers/chatRecordingModifier.js +173 -0
- package/dist/processor-pieces/messageModifiers/coreSystemPromptModifier.d.ts +14 -0
- package/dist/processor-pieces/messageModifiers/coreSystemPromptModifier.js +130 -0
- package/dist/processor-pieces/messageModifiers/directoryContextModifier.d.ts +36 -0
- package/dist/processor-pieces/messageModifiers/directoryContextModifier.js +418 -0
- package/dist/processor-pieces/messageModifiers/environmentContext.d.ts +41 -0
- package/dist/processor-pieces/messageModifiers/environmentContext.js +355 -0
- package/dist/processor-pieces/messageModifiers/environmentContextModifier.d.ts +26 -0
- package/dist/processor-pieces/messageModifiers/environmentContextModifier.js +260 -0
- package/dist/processor-pieces/messageModifiers/handleUrlMessageModifier.d.ts +13 -0
- package/dist/processor-pieces/messageModifiers/handleUrlMessageModifier.js +59 -0
- package/dist/processor-pieces/messageModifiers/ideContextModifier.d.ts +34 -0
- package/dist/processor-pieces/messageModifiers/ideContextModifier.js +157 -0
- package/dist/processor-pieces/messageModifiers/imageAttachmentMessageModifier.d.ts +19 -0
- package/dist/processor-pieces/messageModifiers/imageAttachmentMessageModifier.js +221 -0
- package/dist/processor-pieces/messageModifiers/index.d.ts +11 -0
- package/dist/processor-pieces/messageModifiers/index.js +26 -0
- package/dist/processor-pieces/messageModifiers/memoryImportModifier.d.ts +15 -0
- package/dist/processor-pieces/messageModifiers/memoryImportModifier.js +129 -0
- package/dist/processor-pieces/messageModifiers/mentionedFilesModifier.d.ts +23 -0
- package/dist/processor-pieces/messageModifiers/mentionedFilesModifier.js +207 -0
- package/dist/processor-pieces/messageModifiers/simpleMessageModifier.d.ts +7 -0
- package/dist/processor-pieces/messageModifiers/simpleMessageModifier.js +26 -0
- package/dist/processor-pieces/messageModifiers/toolInjectionModifier.d.ts +20 -0
- package/dist/processor-pieces/messageModifiers/toolInjectionModifier.js +152 -0
- package/dist/processor-pieces/messageModifiers/workingDirectoryMessageModifier.d.ts +38 -0
- package/dist/processor-pieces/messageModifiers/workingDirectoryMessageModifier.js +392 -0
- package/dist/processor-pieces/postInference/llmOutputValidityProcessor.d.ts +1 -0
- package/dist/processor-pieces/postInference/llmOutputValidityProcessor.js +2 -0
- package/dist/processor-pieces/postInferenceProcessors/checkForNoToolCall.d.ts +7 -0
- package/dist/processor-pieces/postInferenceProcessors/checkForNoToolCall.js +24 -0
- package/dist/processor-pieces/postInferenceProcessors/loopDetectionModifier.d.ts +29 -0
- package/dist/processor-pieces/postInferenceProcessors/loopDetectionModifier.js +174 -0
- package/dist/processor-pieces/postToolCall/advancedLoopDetectionProcessor.d.ts +41 -0
- package/dist/processor-pieces/postToolCall/advancedLoopDetectionProcessor.js +197 -0
- package/dist/processor-pieces/postToolCall/chatCompressionProcessor.d.ts +26 -0
- package/dist/processor-pieces/postToolCall/chatCompressionProcessor.js +90 -0
- package/dist/processor-pieces/postToolCall/chatRecordingProcessor.d.ts +81 -0
- package/dist/processor-pieces/postToolCall/chatRecordingProcessor.js +329 -0
- package/dist/processor-pieces/postToolCall/contextManagementProcessor.d.ts +40 -0
- package/dist/processor-pieces/postToolCall/contextManagementProcessor.js +272 -0
- package/dist/processor-pieces/postToolCall/conversationCompactorProcessor.d.ts +49 -0
- package/dist/processor-pieces/postToolCall/conversationCompactorProcessor.js +291 -0
- package/dist/processor-pieces/postToolCall/conversationContinuityProcessor.d.ts +49 -0
- package/dist/processor-pieces/postToolCall/conversationContinuityProcessor.js +293 -0
- package/dist/processor-pieces/postToolCall/followUpConversationProcessor.d.ts +47 -0
- package/dist/processor-pieces/postToolCall/followUpConversationProcessor.js +249 -0
- package/dist/processor-pieces/postToolCall/loopDetectionProcessor.d.ts +30 -0
- package/dist/processor-pieces/postToolCall/loopDetectionProcessor.js +137 -0
- package/dist/processor-pieces/postToolCall/responseValidationProcessor.d.ts +30 -0
- package/dist/processor-pieces/postToolCall/responseValidationProcessor.js +228 -0
- package/dist/processor-pieces/postToolCall/telemetryProcessor.d.ts +99 -0
- package/dist/processor-pieces/postToolCall/telemetryProcessor.js +278 -0
- package/dist/processor-pieces/postToolCall/tokenManagementProcessor.d.ts +37 -0
- package/dist/processor-pieces/postToolCall/tokenManagementProcessor.js +178 -0
- package/dist/processor-pieces/postToolCall/toolExecutionProcessor.d.ts +43 -0
- package/dist/processor-pieces/postToolCall/toolExecutionProcessor.js +207 -0
- package/dist/processor-pieces/postToolCallProcessors/index.d.ts +1 -0
- package/dist/processor-pieces/postToolCallProcessors/index.js +2 -0
- package/dist/processor-pieces/postToolCallProcessors/shellProcessorModifier.d.ts +25 -0
- package/dist/processor-pieces/postToolCallProcessors/shellProcessorModifier.js +225 -0
- package/dist/processor-pieces/preInference/conversationCompactorProcessor.d.ts +52 -0
- package/dist/processor-pieces/preInference/conversationCompactorProcessor.js +264 -0
- package/dist/processor-pieces/preInference/conversationContinuityProcessor.d.ts +49 -0
- package/dist/processor-pieces/preInference/conversationContinuityProcessor.js +293 -0
- package/dist/processor-pieces/preInferenceProcessors/chatCompressionModifier.d.ts +35 -0
- package/dist/processor-pieces/preInferenceProcessors/chatCompressionModifier.js +255 -0
- package/dist/processor-pieces/preInferenceProcessors/conversationCompaction.d.ts +7 -0
- package/dist/processor-pieces/preInferenceProcessors/conversationCompaction.js +31 -0
- package/dist/processor-pieces/preInferenceProcessors/index.d.ts +1 -0
- package/dist/processor-pieces/preInferenceProcessors/index.js +2 -0
- package/dist/processor-pieces/preToolCall/index.d.ts +9 -0
- package/dist/processor-pieces/preToolCall/index.js +18 -0
- package/dist/processor-pieces/preToolCall/localToolInterceptorProcessor.d.ts +58 -0
- package/dist/processor-pieces/preToolCall/localToolInterceptorProcessor.js +444 -0
- package/dist/processor-pieces/preToolCall/toolParameterModifierProcessor.d.ts +44 -0
- package/dist/processor-pieces/preToolCall/toolParameterModifierProcessor.js +367 -0
- package/dist/processor-pieces/preToolCall/toolValidationProcessor.d.ts +58 -0
- package/dist/processor-pieces/preToolCall/toolValidationProcessor.js +391 -0
- package/dist/processor-pieces/pretoolCallProcessors/index.d.ts +1 -0
- package/dist/processor-pieces/pretoolCallProcessors/index.js +2 -0
- package/dist/processor-pieces/processors/advancedLoopDetectionProcessor.d.ts +41 -0
- package/dist/processor-pieces/processors/advancedLoopDetectionProcessor.js +197 -0
- package/dist/processor-pieces/processors/chatCompressionProcessor.d.ts +26 -0
- package/dist/processor-pieces/processors/chatCompressionProcessor.js +90 -0
- package/dist/processor-pieces/processors/chatRecordingProcessor.d.ts +81 -0
- package/dist/processor-pieces/processors/chatRecordingProcessor.js +329 -0
- package/dist/processor-pieces/processors/contextManagementProcessor.d.ts +40 -0
- package/dist/processor-pieces/processors/contextManagementProcessor.js +305 -0
- package/dist/processor-pieces/processors/loopDetectionProcessor.d.ts +30 -0
- package/dist/processor-pieces/processors/loopDetectionProcessor.js +137 -0
- package/dist/processor-pieces/processors/responseValidationProcessor.d.ts +30 -0
- package/dist/processor-pieces/processors/responseValidationProcessor.js +228 -0
- package/dist/processor-pieces/processors/telemetryProcessor.d.ts +99 -0
- package/dist/processor-pieces/processors/telemetryProcessor.js +311 -0
- package/dist/processor-pieces/processors/tokenManagementProcessor.d.ts +37 -0
- package/dist/processor-pieces/processors/tokenManagementProcessor.js +178 -0
- package/dist/processor-pieces/processors/toolExecutionProcessor.d.ts +43 -0
- package/dist/processor-pieces/processors/toolExecutionProcessor.js +207 -0
- package/dist/processor-pieces/tools/fileTools.d.ts +26 -0
- package/dist/processor-pieces/tools/fileTools.js +162 -0
- package/dist/processor-pieces/utils/messageModifierHelper.d.ts +4 -0
- package/dist/processor-pieces/utils/messageModifierHelper.js +58 -0
- package/dist/types/commonTypes.d.ts +4 -0
- package/dist/types/processorTypes.d.ts +67 -0
- package/dist/types/processorTypes.js +58 -0
- package/dist/unified/agent/agent.d.ts +17 -0
- package/dist/unified/agent/agent.js +79 -0
- package/dist/unified/agent/team.d.ts +2 -0
- package/dist/unified/agent/team.js +6 -0
- package/dist/unified/agent/tool.d.ts +99 -0
- package/dist/unified/agent/tool.js +440 -0
- package/dist/unified/agent/tools.d.ts +44 -0
- package/dist/unified/agent/tools.js +487 -0
- package/dist/unified/agent/workflow.d.ts +24 -0
- package/dist/unified/agent/workflow.js +275 -0
- package/dist/unified/agent/workflowControls.d.ts +11 -0
- package/dist/unified/agent/workflowControls.js +20 -0
- package/dist/unified/agent/workflowSteps.d.ts +63 -0
- package/dist/unified/agent/workflowSteps.js +284 -0
- package/dist/unified/base/agentStep.d.ts +32 -0
- package/dist/unified/base/agentStep.js +96 -0
- package/dist/unified/base/create/createInitialPromptGenerators.d.ts +5 -0
- package/dist/unified/base/create/createInitialPromptGenerators.js +17 -0
- package/dist/unified/base/index.d.ts +5 -0
- package/dist/unified/base/index.js +13 -0
- package/dist/unified/base/initialPromptGenerator.d.ts +48 -0
- package/dist/unified/base/initialPromptGenerator.js +118 -0
- package/dist/unified/base/responseExecutor.d.ts +36 -0
- package/dist/unified/base/responseExecutor.js +283 -0
- package/dist/unified/examples/agentExample.d.ts +46 -0
- package/dist/unified/examples/agentExample.js +464 -0
- package/dist/unified/examples/documentationPatternExample.d.ts +10 -0
- package/dist/unified/examples/documentationPatternExample.js +385 -0
- package/dist/unified/examples/followUpProcessorsExample.d.ts +45 -0
- package/dist/unified/examples/followUpProcessorsExample.js +311 -0
- package/dist/unified/examples/orchestratorExample.d.ts +16 -0
- package/dist/unified/examples/orchestratorExample.js +415 -0
- package/dist/unified/examples/preToolCallProcessorsExample.d.ts +36 -0
- package/dist/unified/examples/preToolCallProcessorsExample.js +458 -0
- package/dist/unified/examples/workflowExample.d.ts +12 -0
- package/dist/unified/examples/workflowExample.js +497 -0
- package/dist/unified/index.d.ts +18 -0
- package/dist/unified/index.js +42 -0
- package/dist/unified/orchestrator/orchestrator.d.ts +260 -0
- package/dist/unified/orchestrator/orchestrator.js +519 -0
- package/dist/unified/team/team.d.ts +1 -0
- package/dist/unified/team/team.js +2 -0
- package/dist/unified/types/libTypes.d.ts +378 -0
- package/dist/unified/types/libTypes.js +6 -0
- package/dist/unified/types/types.d.ts +212 -0
- package/dist/unified/types/types.js +43 -0
- package/dist/unified/utils/utils.d.ts +40 -0
- package/dist/unified/utils/utils.js +219 -0
- package/package.json +35 -13
- /package/dist/{agent.d.ts → builderpattern/agent.d.ts} +0 -0
- /package/dist/{index.js → builderpattern/index.js} +0 -0
- /package/dist/{promptbuilder.js → builderpattern/promptbuilder.js} +0 -0
- /package/dist/{systemprompt.d.ts → builderpattern/systemprompt.d.ts} +0 -0
- /package/dist/{systemprompt.js → builderpattern/systemprompt.js} +0 -0
- /package/dist/{taskInstruction.js → builderpattern/taskInstruction.js} +0 -0
- /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;
|