@decaf-ts/integrations 0.10.4 → 0.10.8
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/dist/integrations.cjs +1 -1
- package/docker/minio-compose.yml +9 -7
- package/jest.config.cjs +2 -0
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs +7 -4
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +1 -1
- package/lib/cjs/graph/engine/catalog/GraphBuiltInRegistrations.cjs +12 -73
- package/lib/cjs/graph/engine/catalog/GraphBuiltInRegistrations.cjs.map +1 -1
- package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs +5 -1
- package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs.map +1 -1
- package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs +66 -1
- package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs.map +1 -1
- package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs +16 -0
- package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs.map +1 -1
- package/lib/cjs/graph/engine/execution/index.cjs +0 -4
- package/lib/cjs/graph/engine/execution/index.cjs.map +1 -1
- package/lib/cjs/graph/engine/index.cjs +0 -7
- package/lib/cjs/graph/engine/index.cjs.map +1 -1
- package/lib/cjs/graph/engine/loops/index.cjs +0 -3
- package/lib/cjs/graph/engine/loops/index.cjs.map +1 -1
- package/lib/cjs/graph/engine/validation/GraphLooseNodeValidation.cjs +36 -0
- package/lib/cjs/graph/engine/validation/GraphLooseNodeValidation.cjs.map +1 -0
- package/lib/cjs/graph/engine/validation/GraphParameterValidator.cjs +36 -3
- package/lib/cjs/graph/engine/validation/GraphParameterValidator.cjs.map +1 -1
- package/lib/cjs/graph/engine/validation/GraphWorkflowDocumentValidator.cjs +32 -1
- package/lib/cjs/graph/engine/validation/GraphWorkflowDocumentValidator.cjs.map +1 -1
- package/lib/cjs/graph/engine/validation/index.cjs +1 -0
- package/lib/cjs/graph/engine/validation/index.cjs.map +1 -1
- package/lib/cjs/graph/nodes/agents/agent.cjs +118 -0
- package/lib/cjs/graph/nodes/agents/agent.cjs.map +1 -0
- package/lib/cjs/graph/nodes/base.cjs +61 -0
- package/lib/cjs/graph/nodes/base.cjs.map +1 -0
- package/lib/cjs/graph/nodes/boundary/input-value.cjs +59 -0
- package/lib/cjs/graph/nodes/boundary/input-value.cjs.map +1 -0
- package/lib/cjs/graph/nodes/flow-control/break.cjs +71 -0
- package/lib/cjs/graph/nodes/flow-control/break.cjs.map +1 -0
- package/lib/cjs/graph/nodes/flow-control/error-boundary.cjs +72 -0
- package/lib/cjs/graph/nodes/flow-control/error-boundary.cjs.map +1 -0
- package/lib/cjs/graph/nodes/flow-control/human-approval.cjs +80 -0
- package/lib/cjs/graph/nodes/flow-control/human-approval.cjs.map +1 -0
- package/lib/cjs/graph/nodes/flow-control/if.cjs +82 -0
- package/lib/cjs/graph/nodes/flow-control/if.cjs.map +1 -0
- package/lib/cjs/graph/nodes/flow-control/parallel.cjs +69 -0
- package/lib/cjs/graph/nodes/flow-control/parallel.cjs.map +1 -0
- package/lib/cjs/graph/nodes/flow-control/switch.cjs +190 -0
- package/lib/cjs/graph/nodes/flow-control/switch.cjs.map +1 -0
- package/lib/cjs/graph/nodes/index.cjs +162 -0
- package/lib/cjs/graph/nodes/index.cjs.map +1 -0
- package/lib/cjs/graph/nodes/loops/foreach.cjs +189 -0
- package/lib/cjs/graph/nodes/loops/foreach.cjs.map +1 -0
- package/lib/cjs/graph/nodes/loops/loop-metadata.cjs +48 -0
- package/lib/cjs/graph/nodes/loops/loop-metadata.cjs.map +1 -0
- package/lib/cjs/graph/nodes/loops/until.cjs +136 -0
- package/lib/cjs/graph/nodes/loops/until.cjs.map +1 -0
- package/lib/cjs/graph/nodes/loops/while.cjs +133 -0
- package/lib/cjs/graph/nodes/loops/while.cjs.map +1 -0
- package/lib/cjs/graph/nodes/manifests.cjs +342 -0
- package/lib/cjs/graph/nodes/manifests.cjs.map +1 -0
- package/lib/cjs/graph/nodes/triggers/chat.cjs +82 -0
- package/lib/cjs/graph/nodes/triggers/chat.cjs.map +1 -0
- package/lib/cjs/graph/nodes/triggers/event.cjs +63 -0
- package/lib/cjs/graph/nodes/triggers/event.cjs.map +1 -0
- package/lib/cjs/graph/nodes/triggers/form.cjs +64 -0
- package/lib/cjs/graph/nodes/triggers/form.cjs.map +1 -0
- package/lib/cjs/graph/nodes/triggers/manual.cjs +65 -0
- package/lib/cjs/graph/nodes/triggers/manual.cjs.map +1 -0
- package/lib/cjs/graph/nodes/triggers/schedule.cjs +65 -0
- package/lib/cjs/graph/nodes/triggers/schedule.cjs.map +1 -0
- package/lib/cjs/graph/nodes/triggers/webhook.cjs +67 -0
- package/lib/cjs/graph/nodes/triggers/webhook.cjs.map +1 -0
- package/lib/cjs/graph/nodes/utility/code.cjs +139 -0
- package/lib/cjs/graph/nodes/utility/code.cjs.map +1 -0
- package/lib/cjs/graph/nodes/utility/delay.cjs +66 -0
- package/lib/cjs/graph/nodes/utility/delay.cjs.map +1 -0
- package/lib/cjs/graph/nodes/utility/log.cjs +70 -0
- package/lib/cjs/graph/nodes/utility/log.cjs.map +1 -0
- package/lib/cjs/graph/nodes/utility/map.cjs +69 -0
- package/lib/cjs/graph/nodes/utility/map.cjs.map +1 -0
- package/lib/cjs/graph/nodes/utility/merge.cjs +67 -0
- package/lib/cjs/graph/nodes/utility/merge.cjs.map +1 -0
- package/lib/cjs/graph/nodes/utility/return.cjs +69 -0
- package/lib/cjs/graph/nodes/utility/return.cjs.map +1 -0
- package/lib/cjs/graph/nodes/utility/utility-log.cjs +77 -0
- package/lib/cjs/graph/nodes/utility/utility-log.cjs.map +1 -0
- package/lib/cjs/index.cjs +3 -3
- package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs +8 -4
- package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs.map +1 -1
- package/lib/cjs/nest/graph/GraphWorkflowBoundaryValidation.cjs +2 -0
- package/lib/cjs/nest/graph/GraphWorkflowBoundaryValidation.cjs.map +1 -1
- package/lib/cjs/nest/graph/GraphWorkflowService.cjs +1 -13
- package/lib/cjs/nest/graph/GraphWorkflowService.cjs.map +1 -1
- package/lib/esm/blob/s3/S3BlobStoreService.js +7 -4
- package/lib/esm/blob/s3/S3BlobStoreService.js.map +1 -1
- package/lib/esm/graph/engine/catalog/GraphBuiltInRegistrations.js +11 -72
- package/lib/esm/graph/engine/catalog/GraphBuiltInRegistrations.js.map +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionContext.js +5 -1
- package/lib/esm/graph/engine/execution/GraphExecutionContext.js.map +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionEngine.js +66 -1
- package/lib/esm/graph/engine/execution/GraphExecutionEngine.js.map +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionFrame.js +16 -0
- package/lib/esm/graph/engine/execution/GraphExecutionFrame.js.map +1 -1
- package/lib/esm/graph/engine/execution/index.js +0 -4
- package/lib/esm/graph/engine/execution/index.js.map +1 -1
- package/lib/esm/graph/engine/index.js +0 -7
- package/lib/esm/graph/engine/index.js.map +1 -1
- package/lib/esm/graph/engine/loops/index.js +0 -3
- package/lib/esm/graph/engine/loops/index.js.map +1 -1
- package/lib/esm/graph/engine/validation/GraphLooseNodeValidation.js +32 -0
- package/lib/esm/graph/engine/validation/GraphLooseNodeValidation.js.map +1 -0
- package/lib/esm/graph/engine/validation/GraphParameterValidator.js +36 -3
- package/lib/esm/graph/engine/validation/GraphParameterValidator.js.map +1 -1
- package/lib/esm/graph/engine/validation/GraphWorkflowDocumentValidator.js +32 -1
- package/lib/esm/graph/engine/validation/GraphWorkflowDocumentValidator.js.map +1 -1
- package/lib/esm/graph/engine/validation/index.js +1 -0
- package/lib/esm/graph/engine/validation/index.js.map +1 -1
- package/lib/esm/graph/nodes/agents/agent.js +109 -0
- package/lib/esm/graph/nodes/agents/agent.js.map +1 -0
- package/lib/esm/graph/nodes/base.js +56 -0
- package/lib/esm/graph/nodes/base.js.map +1 -0
- package/lib/esm/graph/nodes/boundary/input-value.js +50 -0
- package/lib/esm/graph/nodes/boundary/input-value.js.map +1 -0
- package/lib/esm/graph/nodes/flow-control/break.js +62 -0
- package/lib/esm/graph/nodes/flow-control/break.js.map +1 -0
- package/lib/esm/graph/nodes/flow-control/error-boundary.js +63 -0
- package/lib/esm/graph/nodes/flow-control/error-boundary.js.map +1 -0
- package/lib/esm/graph/nodes/flow-control/human-approval.js +71 -0
- package/lib/esm/graph/nodes/flow-control/human-approval.js.map +1 -0
- package/lib/esm/graph/nodes/flow-control/if.js +73 -0
- package/lib/esm/graph/nodes/flow-control/if.js.map +1 -0
- package/lib/esm/graph/nodes/flow-control/parallel.js +60 -0
- package/lib/esm/graph/nodes/flow-control/parallel.js.map +1 -0
- package/lib/esm/graph/nodes/flow-control/switch.js +181 -0
- package/lib/esm/graph/nodes/flow-control/switch.js.map +1 -0
- package/lib/esm/graph/nodes/index.js +144 -0
- package/lib/esm/graph/nodes/index.js.map +1 -0
- package/lib/esm/graph/nodes/loops/foreach.js +180 -0
- package/lib/esm/graph/nodes/loops/foreach.js.map +1 -0
- package/lib/esm/graph/nodes/loops/loop-metadata.js +44 -0
- package/lib/esm/graph/nodes/loops/loop-metadata.js.map +1 -0
- package/lib/esm/graph/nodes/loops/until.js +127 -0
- package/lib/esm/graph/nodes/loops/until.js.map +1 -0
- package/lib/esm/graph/nodes/loops/while.js +124 -0
- package/lib/esm/graph/nodes/loops/while.js.map +1 -0
- package/lib/esm/graph/nodes/manifests.js +338 -0
- package/lib/esm/graph/nodes/manifests.js.map +1 -0
- package/lib/esm/graph/nodes/triggers/chat.js +73 -0
- package/lib/esm/graph/nodes/triggers/chat.js.map +1 -0
- package/lib/esm/graph/nodes/triggers/event.js +54 -0
- package/lib/esm/graph/nodes/triggers/event.js.map +1 -0
- package/lib/esm/graph/nodes/triggers/form.js +55 -0
- package/lib/esm/graph/nodes/triggers/form.js.map +1 -0
- package/lib/esm/graph/nodes/triggers/manual.js +56 -0
- package/lib/esm/graph/nodes/triggers/manual.js.map +1 -0
- package/lib/esm/graph/nodes/triggers/schedule.js +56 -0
- package/lib/esm/graph/nodes/triggers/schedule.js.map +1 -0
- package/lib/esm/graph/nodes/triggers/webhook.js +58 -0
- package/lib/esm/graph/nodes/triggers/webhook.js.map +1 -0
- package/lib/esm/graph/nodes/utility/code.js +130 -0
- package/lib/esm/graph/nodes/utility/code.js.map +1 -0
- package/lib/esm/graph/nodes/utility/delay.js +57 -0
- package/lib/esm/graph/nodes/utility/delay.js.map +1 -0
- package/lib/esm/graph/nodes/utility/log.js +61 -0
- package/lib/esm/graph/nodes/utility/log.js.map +1 -0
- package/lib/esm/graph/nodes/utility/map.js +60 -0
- package/lib/esm/graph/nodes/utility/map.js.map +1 -0
- package/lib/esm/graph/nodes/utility/merge.js +58 -0
- package/lib/esm/graph/nodes/utility/merge.js.map +1 -0
- package/lib/esm/graph/nodes/utility/return.js +60 -0
- package/lib/esm/graph/nodes/utility/return.js.map +1 -0
- package/lib/esm/graph/nodes/utility/utility-log.js +68 -0
- package/lib/esm/graph/nodes/utility/utility-log.js.map +1 -0
- package/lib/esm/index.js +3 -3
- package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js +8 -4
- package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js.map +1 -1
- package/lib/esm/nest/graph/GraphWorkflowBoundaryValidation.js +2 -0
- package/lib/esm/nest/graph/GraphWorkflowBoundaryValidation.js.map +1 -1
- package/lib/esm/nest/graph/GraphWorkflowService.js +2 -14
- package/lib/esm/nest/graph/GraphWorkflowService.js.map +1 -1
- package/lib/types/graph/engine/catalog/GraphBuiltInRegistrations.d.cts +4 -7
- package/lib/types/graph/engine/catalog/GraphBuiltInRegistrations.d.mts +4 -7
- package/lib/types/graph/engine/execution/GraphExecutionContext.d.cts +6 -1
- package/lib/types/graph/engine/execution/GraphExecutionContext.d.mts +6 -1
- package/lib/types/graph/engine/execution/GraphExecutionEngine.d.cts +27 -0
- package/lib/types/graph/engine/execution/GraphExecutionEngine.d.mts +27 -0
- package/lib/types/graph/engine/execution/GraphExecutionFrame.d.cts +12 -0
- package/lib/types/graph/engine/execution/GraphExecutionFrame.d.mts +12 -0
- package/lib/types/graph/engine/execution/index.d.cts +0 -4
- package/lib/types/graph/engine/execution/index.d.mts +0 -4
- package/lib/types/graph/engine/index.d.cts +0 -7
- package/lib/types/graph/engine/index.d.mts +0 -7
- package/lib/types/graph/engine/loops/index.d.cts +0 -3
- package/lib/types/graph/engine/loops/index.d.mts +0 -3
- package/lib/types/graph/engine/validation/GraphLooseNodeValidation.d.cts +21 -0
- package/lib/types/graph/engine/validation/GraphLooseNodeValidation.d.mts +21 -0
- package/lib/types/graph/engine/validation/GraphParameterValidator.d.cts +25 -1
- package/lib/types/graph/engine/validation/GraphParameterValidator.d.mts +25 -1
- package/lib/types/graph/engine/validation/index.d.cts +1 -0
- package/lib/types/graph/engine/validation/index.d.mts +1 -0
- package/lib/types/graph/nodes/agents/agent.d.cts +31 -0
- package/lib/types/graph/nodes/agents/agent.d.mts +31 -0
- package/lib/types/graph/nodes/base.d.cts +58 -0
- package/lib/types/graph/nodes/base.d.mts +58 -0
- package/lib/types/graph/nodes/boundary/input-value.d.cts +6 -0
- package/lib/types/graph/nodes/boundary/input-value.d.mts +6 -0
- package/lib/types/graph/nodes/flow-control/break.d.cts +8 -0
- package/lib/types/graph/nodes/flow-control/break.d.mts +8 -0
- package/lib/types/graph/nodes/flow-control/error-boundary.d.cts +8 -0
- package/lib/types/graph/nodes/flow-control/error-boundary.d.mts +8 -0
- package/lib/types/graph/nodes/flow-control/human-approval.d.cts +8 -0
- package/lib/types/graph/nodes/flow-control/human-approval.d.mts +8 -0
- package/lib/types/graph/nodes/flow-control/if.d.cts +8 -0
- package/lib/types/graph/nodes/flow-control/if.d.mts +8 -0
- package/lib/types/graph/nodes/flow-control/parallel.d.cts +7 -0
- package/lib/types/graph/nodes/flow-control/parallel.d.mts +7 -0
- package/lib/types/graph/nodes/flow-control/switch.d.cts +23 -0
- package/lib/types/graph/nodes/flow-control/switch.d.mts +23 -0
- package/lib/types/graph/nodes/index.d.cts +93 -0
- package/lib/types/graph/nodes/index.d.mts +93 -0
- package/lib/types/graph/nodes/loops/foreach.d.cts +11 -0
- package/lib/types/graph/nodes/loops/foreach.d.mts +11 -0
- package/lib/types/graph/nodes/loops/loop-metadata.d.cts +20 -0
- package/lib/types/graph/nodes/loops/loop-metadata.d.mts +20 -0
- package/lib/types/graph/nodes/loops/until.d.cts +8 -0
- package/lib/types/graph/nodes/loops/until.d.mts +8 -0
- package/lib/types/graph/nodes/loops/while.d.cts +8 -0
- package/lib/types/graph/nodes/loops/while.d.mts +8 -0
- package/lib/types/graph/nodes/manifests.d.cts +62 -0
- package/lib/types/graph/nodes/manifests.d.mts +62 -0
- package/lib/types/graph/nodes/triggers/chat.d.cts +8 -0
- package/lib/types/graph/nodes/triggers/chat.d.mts +8 -0
- package/lib/types/graph/nodes/triggers/event.d.cts +6 -0
- package/lib/types/graph/nodes/triggers/event.d.mts +6 -0
- package/lib/types/graph/nodes/triggers/form.d.cts +6 -0
- package/lib/types/graph/nodes/triggers/form.d.mts +6 -0
- package/lib/types/graph/nodes/triggers/manual.d.cts +6 -0
- package/lib/types/graph/nodes/triggers/manual.d.mts +6 -0
- package/lib/types/graph/nodes/triggers/schedule.d.cts +6 -0
- package/lib/types/graph/nodes/triggers/schedule.d.mts +6 -0
- package/lib/types/graph/nodes/triggers/webhook.d.cts +6 -0
- package/lib/types/graph/nodes/triggers/webhook.d.mts +6 -0
- package/lib/types/graph/nodes/utility/code.d.cts +36 -0
- package/lib/types/graph/nodes/utility/code.d.mts +36 -0
- package/lib/types/graph/nodes/utility/delay.d.cts +7 -0
- package/lib/types/graph/nodes/utility/delay.d.mts +7 -0
- package/lib/types/graph/nodes/utility/log.d.cts +8 -0
- package/lib/types/graph/nodes/utility/log.d.mts +8 -0
- package/lib/types/graph/nodes/utility/map.d.cts +7 -0
- package/lib/types/graph/nodes/utility/map.d.mts +7 -0
- package/lib/types/graph/nodes/utility/merge.d.cts +7 -0
- package/lib/types/graph/nodes/utility/merge.d.mts +7 -0
- package/lib/types/graph/nodes/utility/return.d.cts +7 -0
- package/lib/types/graph/nodes/utility/return.d.mts +7 -0
- package/lib/types/graph/nodes/utility/utility-log.d.cts +10 -0
- package/lib/types/graph/nodes/utility/utility-log.d.mts +10 -0
- package/lib/types/index.d.cts +2 -2
- package/lib/types/index.d.mts +2 -2
- package/lib/types/nest/graph/GraphExecutorRegistryFactory.d.cts +5 -3
- package/lib/types/nest/graph/GraphExecutorRegistryFactory.d.mts +5 -3
- package/package.json +1 -1
- package/lib/cjs/graph/engine/execution/BreakGraphNodeExecutor.cjs +0 -24
- package/lib/cjs/graph/engine/execution/BreakGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/CodeGraphNodeExecutor.cjs +0 -103
- package/lib/cjs/graph/engine/execution/CodeGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/LogGraphNodeExecutor.cjs +0 -47
- package/lib/cjs/graph/engine/execution/LogGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs +0 -121
- package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs +0 -146
- package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs +0 -102
- package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs +0 -103
- package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs.map +0 -1
- package/lib/esm/graph/engine/execution/BreakGraphNodeExecutor.js +0 -19
- package/lib/esm/graph/engine/execution/BreakGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/engine/execution/CodeGraphNodeExecutor.js +0 -98
- package/lib/esm/graph/engine/execution/CodeGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/engine/execution/LogGraphNodeExecutor.js +0 -42
- package/lib/esm/graph/engine/execution/LogGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js +0 -116
- package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js +0 -141
- package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js +0 -97
- package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js +0 -98
- package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js.map +0 -1
- package/lib/types/graph/engine/execution/BreakGraphNodeExecutor.d.cts +0 -22
- package/lib/types/graph/engine/execution/BreakGraphNodeExecutor.d.mts +0 -22
- package/lib/types/graph/engine/execution/CodeGraphNodeExecutor.d.cts +0 -65
- package/lib/types/graph/engine/execution/CodeGraphNodeExecutor.d.mts +0 -65
- package/lib/types/graph/engine/execution/LogGraphNodeExecutor.d.cts +0 -25
- package/lib/types/graph/engine/execution/LogGraphNodeExecutor.d.mts +0 -25
- package/lib/types/graph/engine/execution/SwitchGraphNodeExecutor.d.cts +0 -43
- package/lib/types/graph/engine/execution/SwitchGraphNodeExecutor.d.mts +0 -43
- package/lib/types/graph/engine/loops/ForeachGraphNodeExecutor.d.cts +0 -35
- package/lib/types/graph/engine/loops/ForeachGraphNodeExecutor.d.mts +0 -35
- package/lib/types/graph/engine/loops/UntilGraphNodeExecutor.d.cts +0 -22
- package/lib/types/graph/engine/loops/UntilGraphNodeExecutor.d.mts +0 -22
- package/lib/types/graph/engine/loops/WhileGraphNodeExecutor.d.cts +0 -26
- package/lib/types/graph/engine/loops/WhileGraphNodeExecutor.d.mts +0 -26
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ForeachGraphNodeExecutor = void 0;
|
|
4
|
-
const constants_js_1 = require("./../constants.cjs");
|
|
5
|
-
const graph_1 = require("@decaf-ts/ui-decorators/graph");
|
|
6
|
-
const GraphBreakSignal_js_1 = require("./../errors/GraphBreakSignal.cjs");
|
|
7
|
-
const GraphInputError_js_1 = require("./../errors/GraphInputError.cjs");
|
|
8
|
-
const GraphLoopLimitError_js_1 = require("./../errors/GraphLoopLimitError.cjs");
|
|
9
|
-
/**
|
|
10
|
-
* Executor for `core.loop.foreach` nodes.
|
|
11
|
-
*
|
|
12
|
-
* Expects input:
|
|
13
|
-
* - `items`: array of values to iterate over
|
|
14
|
-
* - `slice?`: optional slice size (overrides `metadata.loop.slice`); default `1`
|
|
15
|
-
* - `state?`: optional initial state
|
|
16
|
-
*
|
|
17
|
-
* Produces output:
|
|
18
|
-
* - `results`: array of body outputs (in item order). When `slice > 1`, one
|
|
19
|
-
* entry per slice (the body receives a slice array on the item port).
|
|
20
|
-
* - `completed`: alias for `results` — the flow after the loop ends (the
|
|
21
|
-
* collected results array).
|
|
22
|
-
* - `iterations`: number of iterations executed
|
|
23
|
-
* - `broken`: `true` when the loop was terminated early by a Break node
|
|
24
|
-
* - `state?`: final state
|
|
25
|
-
*/
|
|
26
|
-
class ForeachGraphNodeExecutor {
|
|
27
|
-
constructor(engine) {
|
|
28
|
-
this.engine = engine;
|
|
29
|
-
}
|
|
30
|
-
async execute(request, context) {
|
|
31
|
-
const metadata = this.extractMetadata(context);
|
|
32
|
-
const input = request.inputs;
|
|
33
|
-
const items = input.items;
|
|
34
|
-
const maxIterations = metadata.maxIterations ?? constants_js_1.GRAPH_DEFAULT_MAX_FOREACH_ITERATIONS;
|
|
35
|
-
if (!Array.isArray(items)) {
|
|
36
|
-
throw new GraphInputError_js_1.GraphInputError("foreach input 'items' must be an array");
|
|
37
|
-
}
|
|
38
|
-
const sliceRaw = Number(input.slice ?? metadata.slice ?? 1);
|
|
39
|
-
const slice = Number.isFinite(sliceRaw) && sliceRaw > 0 ? Math.floor(sliceRaw) : 1;
|
|
40
|
-
const iterations = slice > 1 ? Math.ceil(items.length / slice) : items.length;
|
|
41
|
-
if (iterations > maxIterations) {
|
|
42
|
-
throw new GraphLoopLimitError_js_1.GraphLoopLimitError(`foreach exceeded max iterations (${iterations} > ${maxIterations})`);
|
|
43
|
-
}
|
|
44
|
-
const itemPort = metadata.itemPort ?? "item";
|
|
45
|
-
const resultPort = metadata.resultPort ?? "result";
|
|
46
|
-
const statePort = metadata.statePort ?? "state";
|
|
47
|
-
const bodyWorkflow = metadata.body;
|
|
48
|
-
const results = [];
|
|
49
|
-
let state = input.state;
|
|
50
|
-
let broken = false;
|
|
51
|
-
await context.emit({ type: graph_1.GraphExecutionEventType.LOOP_STARTED });
|
|
52
|
-
for (let i = 0; i < iterations; i++) {
|
|
53
|
-
await context.emit({
|
|
54
|
-
type: graph_1.GraphExecutionEventType.LOOP_ITERATION_STARTED,
|
|
55
|
-
iteration: i,
|
|
56
|
-
});
|
|
57
|
-
const sliceItems = slice > 1 ? items.slice(i * slice, i * slice + slice) : items[i];
|
|
58
|
-
const childInputs = {
|
|
59
|
-
[itemPort]: sliceItems,
|
|
60
|
-
index: i,
|
|
61
|
-
};
|
|
62
|
-
if (slice > 1)
|
|
63
|
-
childInputs["slice"] = sliceItems;
|
|
64
|
-
if (state !== undefined)
|
|
65
|
-
childInputs[statePort] = state;
|
|
66
|
-
try {
|
|
67
|
-
const childResult = await this.engine.execute(bodyWorkflow, childInputs, {
|
|
68
|
-
parentRunId: context.runId,
|
|
69
|
-
path: [...context.path, `iteration:${i}`],
|
|
70
|
-
metadata: { item: sliceItems, index: i, slice },
|
|
71
|
-
});
|
|
72
|
-
results.push(childResult.outputs[resultPort]);
|
|
73
|
-
if (childResult.outputs[statePort] !== undefined) {
|
|
74
|
-
state = childResult.outputs[statePort];
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
catch (err) {
|
|
78
|
-
if (err instanceof GraphBreakSignal_js_1.GraphBreakSignal) {
|
|
79
|
-
const carried = err.details?.value;
|
|
80
|
-
if (carried !== undefined)
|
|
81
|
-
results.push(carried);
|
|
82
|
-
broken = true;
|
|
83
|
-
await context.emit({
|
|
84
|
-
type: graph_1.GraphExecutionEventType.LOOP_ITERATION_COMPLETED,
|
|
85
|
-
iteration: i,
|
|
86
|
-
metadata: { broken: true },
|
|
87
|
-
});
|
|
88
|
-
break;
|
|
89
|
-
}
|
|
90
|
-
throw err;
|
|
91
|
-
}
|
|
92
|
-
await context.emit({
|
|
93
|
-
type: graph_1.GraphExecutionEventType.LOOP_ITERATION_COMPLETED,
|
|
94
|
-
iteration: i,
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
await context.emit({
|
|
98
|
-
type: graph_1.GraphExecutionEventType.LOOP_COMPLETED,
|
|
99
|
-
metadata: { broken },
|
|
100
|
-
});
|
|
101
|
-
const output = {
|
|
102
|
-
results,
|
|
103
|
-
completed: results,
|
|
104
|
-
iterations: results.length,
|
|
105
|
-
broken,
|
|
106
|
-
};
|
|
107
|
-
if (state !== undefined)
|
|
108
|
-
output[statePort] = state;
|
|
109
|
-
return output;
|
|
110
|
-
}
|
|
111
|
-
extractMetadata(context) {
|
|
112
|
-
const instance = context.node;
|
|
113
|
-
const parameters = (instance.parameters ?? {});
|
|
114
|
-
const loop = instance.loop;
|
|
115
|
-
const fallback = context.metadata?.["loop"];
|
|
116
|
-
if (!loop?.body && !fallback?.["body"]) {
|
|
117
|
-
throw new GraphInputError_js_1.GraphInputError("foreach node is missing loop configuration (instance.loop.body)");
|
|
118
|
-
}
|
|
119
|
-
const body = (loop?.body ?? fallback?.["body"]);
|
|
120
|
-
const number = (key) => {
|
|
121
|
-
const raw = parameters[key] ?? loop?.[key] ?? fallback?.[key];
|
|
122
|
-
const value = Number(raw);
|
|
123
|
-
return raw !== undefined && Number.isFinite(value) ? value : undefined;
|
|
124
|
-
};
|
|
125
|
-
const string = (key) => {
|
|
126
|
-
const raw = parameters[key] ?? fallback?.[key];
|
|
127
|
-
return typeof raw === "string" ? raw : undefined;
|
|
128
|
-
};
|
|
129
|
-
return {
|
|
130
|
-
body,
|
|
131
|
-
maxIterations: number("maxIterations"),
|
|
132
|
-
timeoutMs: number("timeoutMs"),
|
|
133
|
-
concurrency: number("concurrency"),
|
|
134
|
-
condition: (parameters["condition"] ?? fallback?.["condition"]),
|
|
135
|
-
inputPort: string("inputPort"),
|
|
136
|
-
outputPort: string("outputPort"),
|
|
137
|
-
itemPort: string("itemPort"),
|
|
138
|
-
resultPort: string("resultPort"),
|
|
139
|
-
statePort: string("statePort"),
|
|
140
|
-
slice: number("slice"),
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
exports.ForeachGraphNodeExecutor = ForeachGraphNodeExecutor;
|
|
145
|
-
//# sourceMappingURL=ForeachGraphNodeExecutor.js.map
|
|
146
|
-
//# sourceMappingURL=ForeachGraphNodeExecutor.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"graph/engine/loops/ForeachGraphNodeExecutor.cjs","sourceRoot":"","sources":["graph/engine/loops/ForeachGraphNodeExecutor.js"],"names":[],"mappings":"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"}
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UntilGraphNodeExecutor = void 0;
|
|
4
|
-
const constants_js_1 = require("./../constants.cjs");
|
|
5
|
-
const graph_1 = require("@decaf-ts/ui-decorators/graph");
|
|
6
|
-
const GraphInputError_js_1 = require("./../errors/GraphInputError.cjs");
|
|
7
|
-
const GraphLoopLimitError_js_1 = require("./../errors/GraphLoopLimitError.cjs");
|
|
8
|
-
const GraphConditionEvaluator_js_1 = require("./GraphConditionEvaluator.cjs");
|
|
9
|
-
/**
|
|
10
|
-
* Executor for `core.loop.until` nodes.
|
|
11
|
-
*
|
|
12
|
-
* Executes the body at least once, then checks the condition. Repeats until
|
|
13
|
-
* the condition evaluates to true.
|
|
14
|
-
*/
|
|
15
|
-
class UntilGraphNodeExecutor {
|
|
16
|
-
constructor(engine) {
|
|
17
|
-
this.engine = engine;
|
|
18
|
-
this.evaluator = new GraphConditionEvaluator_js_1.GraphConditionEvaluator();
|
|
19
|
-
}
|
|
20
|
-
async execute(request, context) {
|
|
21
|
-
const metadata = this.extractMetadata(context);
|
|
22
|
-
const input = request.inputs;
|
|
23
|
-
const maxIterations = metadata.maxIterations ?? constants_js_1.GRAPH_DEFAULT_MAX_LOOP_ITERATIONS;
|
|
24
|
-
const condition = metadata.condition;
|
|
25
|
-
if (!condition) {
|
|
26
|
-
throw new GraphInputError_js_1.GraphInputError("until node is missing a condition");
|
|
27
|
-
}
|
|
28
|
-
const statePort = metadata.statePort ?? "state";
|
|
29
|
-
const bodyWorkflow = metadata.body;
|
|
30
|
-
let state = input.state;
|
|
31
|
-
let iteration = 0;
|
|
32
|
-
await context.emit({ type: graph_1.GraphExecutionEventType.LOOP_STARTED });
|
|
33
|
-
let shouldStop = false;
|
|
34
|
-
do {
|
|
35
|
-
if (iteration >= maxIterations) {
|
|
36
|
-
await context.emit({
|
|
37
|
-
type: graph_1.GraphExecutionEventType.LOOP_LIMIT_REACHED,
|
|
38
|
-
iteration,
|
|
39
|
-
});
|
|
40
|
-
throw new GraphLoopLimitError_js_1.GraphLoopLimitError(`until loop exceeded max iterations (${maxIterations})`);
|
|
41
|
-
}
|
|
42
|
-
await context.emit({
|
|
43
|
-
type: graph_1.GraphExecutionEventType.LOOP_ITERATION_STARTED,
|
|
44
|
-
iteration,
|
|
45
|
-
});
|
|
46
|
-
const childResult = await this.engine.execute(bodyWorkflow, { [statePort]: state, iteration }, {
|
|
47
|
-
parentRunId: context.runId,
|
|
48
|
-
path: [...context.path, `iteration:${iteration}`],
|
|
49
|
-
});
|
|
50
|
-
state = childResult.outputs[statePort];
|
|
51
|
-
await context.emit({
|
|
52
|
-
type: graph_1.GraphExecutionEventType.LOOP_ITERATION_COMPLETED,
|
|
53
|
-
iteration,
|
|
54
|
-
});
|
|
55
|
-
const conditionResult = this.evaluator.evaluate(condition, state);
|
|
56
|
-
await context.emit({
|
|
57
|
-
type: graph_1.GraphExecutionEventType.LOOP_CONDITION_EVALUATED,
|
|
58
|
-
iteration,
|
|
59
|
-
payload: { result: conditionResult },
|
|
60
|
-
});
|
|
61
|
-
iteration++;
|
|
62
|
-
shouldStop = conditionResult;
|
|
63
|
-
} while (!shouldStop);
|
|
64
|
-
await context.emit({ type: graph_1.GraphExecutionEventType.LOOP_COMPLETED });
|
|
65
|
-
return { [statePort]: state, iterations: iteration };
|
|
66
|
-
}
|
|
67
|
-
extractMetadata(context) {
|
|
68
|
-
const instance = context.node;
|
|
69
|
-
const parameters = (instance.parameters ?? {});
|
|
70
|
-
const loop = instance.loop;
|
|
71
|
-
const fallback = context.metadata?.["loop"];
|
|
72
|
-
if (!loop?.body && !fallback?.["body"]) {
|
|
73
|
-
throw new GraphInputError_js_1.GraphInputError("until node is missing loop configuration (instance.loop.body)");
|
|
74
|
-
}
|
|
75
|
-
const body = (loop?.body ?? fallback?.["body"]);
|
|
76
|
-
const number = (key) => {
|
|
77
|
-
const raw = parameters[key] ?? loop?.[key] ?? fallback?.[key];
|
|
78
|
-
const value = Number(raw);
|
|
79
|
-
return raw !== undefined && Number.isFinite(value) ? value : undefined;
|
|
80
|
-
};
|
|
81
|
-
const string = (key) => {
|
|
82
|
-
const raw = parameters[key] ?? fallback?.[key];
|
|
83
|
-
return typeof raw === "string" ? raw : undefined;
|
|
84
|
-
};
|
|
85
|
-
return {
|
|
86
|
-
body,
|
|
87
|
-
maxIterations: number("maxIterations"),
|
|
88
|
-
timeoutMs: number("timeoutMs"),
|
|
89
|
-
concurrency: number("concurrency"),
|
|
90
|
-
condition: (parameters["condition"] ?? fallback?.["condition"]),
|
|
91
|
-
inputPort: string("inputPort"),
|
|
92
|
-
outputPort: string("outputPort"),
|
|
93
|
-
itemPort: string("itemPort"),
|
|
94
|
-
resultPort: string("resultPort"),
|
|
95
|
-
statePort: string("statePort"),
|
|
96
|
-
slice: number("slice"),
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
exports.UntilGraphNodeExecutor = UntilGraphNodeExecutor;
|
|
101
|
-
//# sourceMappingURL=UntilGraphNodeExecutor.js.map
|
|
102
|
-
//# sourceMappingURL=UntilGraphNodeExecutor.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"graph/engine/loops/UntilGraphNodeExecutor.cjs","sourceRoot":"","sources":["graph/engine/loops/UntilGraphNodeExecutor.js"],"names":[],"mappings":"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"}
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WhileGraphNodeExecutor = void 0;
|
|
4
|
-
const constants_js_1 = require("./../constants.cjs");
|
|
5
|
-
const graph_1 = require("@decaf-ts/ui-decorators/graph");
|
|
6
|
-
const GraphInputError_js_1 = require("./../errors/GraphInputError.cjs");
|
|
7
|
-
const GraphLoopLimitError_js_1 = require("./../errors/GraphLoopLimitError.cjs");
|
|
8
|
-
const GraphConditionEvaluator_js_1 = require("./GraphConditionEvaluator.cjs");
|
|
9
|
-
/**
|
|
10
|
-
* Executor for `core.loop.while` nodes.
|
|
11
|
-
*
|
|
12
|
-
* Expects input:
|
|
13
|
-
* - `state`: initial state
|
|
14
|
-
*
|
|
15
|
-
* Produces output:
|
|
16
|
-
* - `state`: final state
|
|
17
|
-
* - `iterations`: number of iterations executed
|
|
18
|
-
*/
|
|
19
|
-
class WhileGraphNodeExecutor {
|
|
20
|
-
constructor(engine) {
|
|
21
|
-
this.engine = engine;
|
|
22
|
-
this.evaluator = new GraphConditionEvaluator_js_1.GraphConditionEvaluator();
|
|
23
|
-
}
|
|
24
|
-
async execute(request, context) {
|
|
25
|
-
const metadata = this.extractMetadata(context);
|
|
26
|
-
const input = request.inputs;
|
|
27
|
-
const maxIterations = metadata.maxIterations ?? constants_js_1.GRAPH_DEFAULT_MAX_LOOP_ITERATIONS;
|
|
28
|
-
const condition = metadata.condition;
|
|
29
|
-
if (!condition) {
|
|
30
|
-
throw new GraphInputError_js_1.GraphInputError("while node is missing a condition");
|
|
31
|
-
}
|
|
32
|
-
const statePort = metadata.statePort ?? "state";
|
|
33
|
-
const bodyWorkflow = metadata.body;
|
|
34
|
-
let state = input.state;
|
|
35
|
-
let iteration = 0;
|
|
36
|
-
await context.emit({ type: graph_1.GraphExecutionEventType.LOOP_STARTED });
|
|
37
|
-
while (this.evaluator.evaluate(condition, state)) {
|
|
38
|
-
if (iteration >= maxIterations) {
|
|
39
|
-
await context.emit({
|
|
40
|
-
type: graph_1.GraphExecutionEventType.LOOP_LIMIT_REACHED,
|
|
41
|
-
iteration,
|
|
42
|
-
});
|
|
43
|
-
throw new GraphLoopLimitError_js_1.GraphLoopLimitError(`while loop exceeded max iterations (${maxIterations})`);
|
|
44
|
-
}
|
|
45
|
-
await context.emit({
|
|
46
|
-
type: graph_1.GraphExecutionEventType.LOOP_CONDITION_EVALUATED,
|
|
47
|
-
iteration,
|
|
48
|
-
payload: { result: true },
|
|
49
|
-
});
|
|
50
|
-
await context.emit({
|
|
51
|
-
type: graph_1.GraphExecutionEventType.LOOP_ITERATION_STARTED,
|
|
52
|
-
iteration,
|
|
53
|
-
});
|
|
54
|
-
const childResult = await this.engine.execute(bodyWorkflow, { [statePort]: state, iteration }, {
|
|
55
|
-
parentRunId: context.runId,
|
|
56
|
-
path: [...context.path, `iteration:${iteration}`],
|
|
57
|
-
});
|
|
58
|
-
state = childResult.outputs[statePort];
|
|
59
|
-
await context.emit({
|
|
60
|
-
type: graph_1.GraphExecutionEventType.LOOP_ITERATION_COMPLETED,
|
|
61
|
-
iteration,
|
|
62
|
-
});
|
|
63
|
-
iteration++;
|
|
64
|
-
}
|
|
65
|
-
await context.emit({ type: graph_1.GraphExecutionEventType.LOOP_COMPLETED });
|
|
66
|
-
return { [statePort]: state, iterations: iteration };
|
|
67
|
-
}
|
|
68
|
-
extractMetadata(context) {
|
|
69
|
-
const instance = context.node;
|
|
70
|
-
const parameters = (instance.parameters ?? {});
|
|
71
|
-
const loop = instance.loop;
|
|
72
|
-
const fallback = context.metadata?.["loop"];
|
|
73
|
-
if (!loop?.body && !fallback?.["body"]) {
|
|
74
|
-
throw new GraphInputError_js_1.GraphInputError("while node is missing loop configuration (instance.loop.body)");
|
|
75
|
-
}
|
|
76
|
-
const body = (loop?.body ?? fallback?.["body"]);
|
|
77
|
-
const number = (key) => {
|
|
78
|
-
const raw = parameters[key] ?? loop?.[key] ?? fallback?.[key];
|
|
79
|
-
const value = Number(raw);
|
|
80
|
-
return raw !== undefined && Number.isFinite(value) ? value : undefined;
|
|
81
|
-
};
|
|
82
|
-
const string = (key) => {
|
|
83
|
-
const raw = parameters[key] ?? fallback?.[key];
|
|
84
|
-
return typeof raw === "string" ? raw : undefined;
|
|
85
|
-
};
|
|
86
|
-
return {
|
|
87
|
-
body,
|
|
88
|
-
maxIterations: number("maxIterations"),
|
|
89
|
-
timeoutMs: number("timeoutMs"),
|
|
90
|
-
concurrency: number("concurrency"),
|
|
91
|
-
condition: (parameters["condition"] ?? fallback?.["condition"]),
|
|
92
|
-
inputPort: string("inputPort"),
|
|
93
|
-
outputPort: string("outputPort"),
|
|
94
|
-
itemPort: string("itemPort"),
|
|
95
|
-
resultPort: string("resultPort"),
|
|
96
|
-
statePort: string("statePort"),
|
|
97
|
-
slice: number("slice"),
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
exports.WhileGraphNodeExecutor = WhileGraphNodeExecutor;
|
|
102
|
-
//# sourceMappingURL=WhileGraphNodeExecutor.js.map
|
|
103
|
-
//# sourceMappingURL=WhileGraphNodeExecutor.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"graph/engine/loops/WhileGraphNodeExecutor.cjs","sourceRoot":"","sources":["graph/engine/loops/WhileGraphNodeExecutor.js"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { GraphBreakSignal } from "./../errors/GraphBreakSignal.js";
|
|
2
|
-
/**
|
|
3
|
-
* Executor for `core.flow.break` nodes.
|
|
4
|
-
*
|
|
5
|
-
* Reads the optional `value` input port and throws a {@link GraphBreakSignal}
|
|
6
|
-
* carrying it. The enclosing loop executor (`core.loop.foreach`,
|
|
7
|
-
* `core.loop.while`, `core.loop.until`) catches the signal, stops iterating,
|
|
8
|
-
* and returns the results collected so far (plus the carried value as the
|
|
9
|
-
* final partial result).
|
|
10
|
-
*/
|
|
11
|
-
export class BreakGraphNodeExecutor {
|
|
12
|
-
async execute(request,
|
|
13
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
14
|
-
_context) {
|
|
15
|
-
const value = request.inputs["value"];
|
|
16
|
-
throw new GraphBreakSignal(value);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=BreakGraphNodeExecutor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BreakGraphNodeExecutor.js","sourceRoot":"","sources":["../../../../../src/graph/engine/execution/BreakGraphNodeExecutor.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,gBAAgB,EAAE,wCAAmC;AAE9D;;;;;;;;GAQG;AACH,MAAM,OAAO,sBAAsB;IACjC,KAAK,CAAC,OAAO,CACX,OAAkC;IAClC,6DAA6D;IAC7D,QAA+B;QAE/B,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;CACF"}
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import { GraphExecutionError } from "./../errors/GraphExecutionError.js";
|
|
2
|
-
import { GraphInputError } from "./../errors/GraphInputError.js";
|
|
3
|
-
/**
|
|
4
|
-
* Reads the Code node metadata from the canonical node instance (DECAF-50):
|
|
5
|
-
* configuration lives in the instance `parameters` with `metadata` as the
|
|
6
|
-
* legacy fallback (the §4.18 transition compiler mirrors legacy
|
|
7
|
-
* `graph.metadata` bags into instance metadata).
|
|
8
|
-
*/
|
|
9
|
-
function readCodeMetadata(context) {
|
|
10
|
-
const parameters = context.node.parameters;
|
|
11
|
-
const metadata = context.node.metadata;
|
|
12
|
-
const source = { ...(metadata ?? {}), ...parameters };
|
|
13
|
-
return source;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Executor for `core.flow.code` nodes.
|
|
17
|
-
*
|
|
18
|
-
* The Code Node runs user-authored JS/TS in a restricted sandbox. The engine
|
|
19
|
-
* does not implement the sandbox directly (§22.4); instead it delegates to the
|
|
20
|
-
* pluggable {@link CodeSandboxEvaluator} registered on the engine config. When
|
|
21
|
-
* no evaluator is registered, the executor throws
|
|
22
|
-
* `GRAPH_CODE_SANDBOX_NOT_CONFIGURED`.
|
|
23
|
-
*
|
|
24
|
-
* The code is read from the `code` input port (spliced from
|
|
25
|
-
* {@link CodeInputSchema}). The language is hardcoded to `"javascript"` for
|
|
26
|
-
* now (the `language` field on `CodeInputSchema` has no `@input` so it is not
|
|
27
|
-
* a port and not wired). The timeout is read from `graph.metadata.timeoutMs`.
|
|
28
|
-
*
|
|
29
|
-
* The sandbox context exposes:
|
|
30
|
-
* - `$input` — the full input values object (all resolved port values).
|
|
31
|
-
* - `$vars` — workflow variables (sourced from `context.metadata.vars`).
|
|
32
|
-
* - `$item` / `$index` — current loop item and index.
|
|
33
|
-
* - `$node` — outputs of upstream nodes.
|
|
34
|
-
* - `$output` — the current draft output.
|
|
35
|
-
*
|
|
36
|
-
* The evaluator's return value is forwarded verbatim on the `result` output
|
|
37
|
-
* port.
|
|
38
|
-
*/
|
|
39
|
-
export class CodeGraphNodeExecutor {
|
|
40
|
-
/**
|
|
41
|
-
* @param engine - The graph execution engine (or any object exposing the
|
|
42
|
-
* optional `codeSandboxEvaluator`). This mirrors the pattern used by
|
|
43
|
-
* {@link SwitchGraphNodeExecutor} for code conditions.
|
|
44
|
-
*/
|
|
45
|
-
constructor(engine) {
|
|
46
|
-
this.engine = engine;
|
|
47
|
-
}
|
|
48
|
-
async execute(request, context) {
|
|
49
|
-
const meta = readCodeMetadata(context);
|
|
50
|
-
const input = request.inputs;
|
|
51
|
-
const code = input["code"] ?? meta.defaultCode;
|
|
52
|
-
if (!code || typeof code !== "string" || code.trim().length === 0) {
|
|
53
|
-
throw new GraphInputError("Code node has no code to execute (input.code is empty)", { input });
|
|
54
|
-
}
|
|
55
|
-
const evaluator = this.engine?.codeSandboxEvaluator;
|
|
56
|
-
if (!evaluator) {
|
|
57
|
-
throw new GraphExecutionError("Code node execution requires a CodeSandboxEvaluator to be registered in GraphExecutionEngineConfig.codeSandboxEvaluator", "GRAPH_CODE_SANDBOX_NOT_CONFIGURED", { code });
|
|
58
|
-
}
|
|
59
|
-
const sandboxContext = this.buildSandboxContext(input, context);
|
|
60
|
-
await context.log("Executing code node", {
|
|
61
|
-
language: "javascript",
|
|
62
|
-
length: code.length,
|
|
63
|
-
timeoutMs: meta.timeoutMs,
|
|
64
|
-
});
|
|
65
|
-
const result = await evaluator.evaluate(sandboxContext);
|
|
66
|
-
await context.log("Code node executed", { hasResult: result !== undefined });
|
|
67
|
-
return { result };
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Builds the {@link CodeSandboxContext} from the executor input and the
|
|
71
|
-
* graph execution context.
|
|
72
|
-
*
|
|
73
|
-
* The `$input` value is the full input values object so the code can access
|
|
74
|
-
* every resolved port value (including `code` itself via `$input.code`).
|
|
75
|
-
*
|
|
76
|
-
* The `$vars`, `$item`, `$index`, `$node`, and `$output` values are sourced
|
|
77
|
-
* from `context.metadata` — the engine (or a wrapping loop executor) may
|
|
78
|
-
* populate these when the Code node runs inside a loop body or a workflow
|
|
79
|
-
* with variables.
|
|
80
|
-
*/
|
|
81
|
-
buildSandboxContext(input, context) {
|
|
82
|
-
const md = context.metadata;
|
|
83
|
-
const meta = readCodeMetadata(context);
|
|
84
|
-
const code = input["code"] ?? meta.defaultCode ?? "";
|
|
85
|
-
return {
|
|
86
|
-
code,
|
|
87
|
-
language: "javascript",
|
|
88
|
-
input: input,
|
|
89
|
-
vars: md?.vars ?? undefined,
|
|
90
|
-
item: md?.item,
|
|
91
|
-
index: md?.index,
|
|
92
|
-
nodes: md?.nodes ??
|
|
93
|
-
undefined,
|
|
94
|
-
logger: context.logger,
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
//# sourceMappingURL=CodeGraphNodeExecutor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CodeGraphNodeExecutor.js","sourceRoot":"","sources":["../../../../../src/graph/engine/execution/CodeGraphNodeExecutor.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,mBAAmB,EAAE,2CAAsC;AACpE,OAAO,EAAE,eAAe,EAAE,uCAAkC;AAW5D;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,OAA8B;IACtD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,UAAqC,CAAC;IACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,QAA+C,CAAC;IAC9E,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC;IACtD,OAAO,MAA0B,CAAC;AACpC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,OAAO,qBAAqB;IAChC;;;;OAIG;IACH,YACmB,MAAwD;QAAxD,WAAM,GAAN,MAAM,CAAkD;IACxE,CAAC;IAEJ,KAAK,CAAC,OAAO,CACX,OAAkC,EAClC,OAA8B;QAE9B,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,MAAM,IAAI,GAAI,KAAK,CAAC,MAAM,CAAwB,IAAI,IAAI,CAAC,WAAW,CAAC;QAEvE,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,eAAe,CACvB,wDAAwD,EACxD,EAAE,KAAK,EAAE,CACV,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,oBAAoB,CAAC;QACpD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,mBAAmB,CAC3B,yHAAyH,EACzH,mCAAmC,EACnC,EAAE,IAAI,EAAE,CACT,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAEhE,MAAM,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE;YACvC,QAAQ,EAAE,YAAY;YACtB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAExD,MAAM,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,EAAE,SAAS,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC,CAAC;QAE7E,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED;;;;;;;;;;;OAWG;IACK,mBAAmB,CACzB,KAA2B,EAC3B,OAA8B;QAE9B,MAAM,EAAE,GAAG,OAAO,CAAC,QAA+C,CAAC;QACnE,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,IAAI,GAAI,KAAK,CAAC,MAAM,CAAwB,IAAI,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;QAE7E,OAAO;YACL,IAAI;YACJ,QAAQ,EAAE,YAAY;YACtB,KAAK,EAAE,KAAgC;YACvC,IAAI,EAAG,EAAE,EAAE,IAA4C,IAAI,SAAS;YACpE,IAAI,EAAE,EAAE,EAAE,IAAI;YACd,KAAK,EAAE,EAAE,EAAE,KAA2B;YACtC,KAAK,EACF,EAAE,EAAE,KAA6D;gBAClE,SAAS;YACX,MAAM,EAAE,OAAO,CAAC,MAA8C;SAC/D,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Resolves the log level for a Log node execution.
|
|
3
|
-
*
|
|
4
|
-
* The level is read from the canonical node instance configuration
|
|
5
|
-
* (`parameters.level`, with instance `metadata.level` as the legacy
|
|
6
|
-
* fallback); defaults to `info` when unset.
|
|
7
|
-
*/
|
|
8
|
-
function logLevelOf(context) {
|
|
9
|
-
const parameters = context.node.parameters;
|
|
10
|
-
const metadata = context.node.metadata;
|
|
11
|
-
const candidate = (parameters.level ?? metadata?.["level"]);
|
|
12
|
-
return candidate || "info";
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Executor for `core.utility.log` / `core.flow.log` nodes.
|
|
16
|
-
*
|
|
17
|
-
* Reads the `value` input port, logs it through `context.logger` at the
|
|
18
|
-
* configured level, and returns it unchanged on the `logged` output port.
|
|
19
|
-
*/
|
|
20
|
-
export class LogGraphNodeExecutor {
|
|
21
|
-
/**
|
|
22
|
-
* Logs the `value` input through the run's `ctx.logger` and forwards it
|
|
23
|
-
* unchanged on the `logged` output port.
|
|
24
|
-
*
|
|
25
|
-
* The level is read from the node's UI config (`node.props.level`, see
|
|
26
|
-
* {@link logLevelOf}) and defaults to `info`. The emitted log line carries
|
|
27
|
-
* the DECAF-48 run attributes and streams over `graph.run.log` through the
|
|
28
|
-
* shared `ctx.logger` path (DECAF-48 Req-1).
|
|
29
|
-
*
|
|
30
|
-
* @param request - The node execution request (expects the `value` input).
|
|
31
|
-
* @param context - The run-scoped execution context exposing `ctx.logger`.
|
|
32
|
-
* @returns The node's output values keyed by port name (the `logged` port).
|
|
33
|
-
*/
|
|
34
|
-
async execute(request, context) {
|
|
35
|
-
const value = request.inputs["value"];
|
|
36
|
-
const level = logLevelOf(context);
|
|
37
|
-
const logger = context.logger;
|
|
38
|
-
logger[level]("Log node", { value });
|
|
39
|
-
return { logged: value };
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=LogGraphNodeExecutor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LogGraphNodeExecutor.js","sourceRoot":"","sources":["../../../../../src/graph/engine/execution/LogGraphNodeExecutor.ts"],"names":[],"mappings":"AAgBA;;;;;;GAMG;AACH,SAAS,UAAU,CAAC,OAA8B;IAChD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,UAAqC,CAAC;IACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,QAA+C,CAAC;IAC9E,MAAM,SAAS,GAAG,CAAC,UAAU,CAAC,KAAK,IAAI,QAAQ,EAAE,CAAC,OAAO,CAAC,CAE7C,CAAC;IACd,OAAQ,SAA0B,IAAI,MAAM,CAAC;AAC/C,CAAC;AAED;;;;;GAKG;AACH,MAAM,OAAO,oBAAoB;IAC/B;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,OAAO,CACX,OAAkC,EAClC,OAA8B;QAE9B,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,OAAO,CAAC,MAGtB,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACrC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC3B,CAAC;CACF"}
|