flowcraft 2.7.0 → 2.8.0
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/adapters/index.d.ts +1 -1
- package/dist/adapters/index.js +1 -1
- package/dist/adapters/persistent-event-bus.d.ts +1 -1
- package/dist/adapters/persistent-event-bus.js +1 -1
- package/dist/analysis.d.ts +1 -1
- package/dist/{chunk-N63S5NEG.js → chunk-26VTGQAF.js} +4 -8
- package/dist/chunk-26VTGQAF.js.map +1 -0
- package/dist/{chunk-ASJYJ3NF.js → chunk-2TSADFQX.js} +2 -2
- package/dist/{chunk-ASJYJ3NF.js.map → chunk-2TSADFQX.js.map} +1 -1
- package/dist/{chunk-K6ID3GRG.js → chunk-4JUPOFSL.js} +6 -6
- package/dist/{chunk-K6ID3GRG.js.map → chunk-4JUPOFSL.js.map} +1 -1
- package/dist/{chunk-4TVWI6Y6.js → chunk-5A24LVGQ.js} +5 -5
- package/dist/{chunk-4TVWI6Y6.js.map → chunk-5A24LVGQ.js.map} +1 -1
- package/dist/{chunk-W4IAXDO4.js → chunk-BV6MXL74.js} +12 -16
- package/dist/chunk-BV6MXL74.js.map +1 -0
- package/dist/{chunk-VDVUF25G.js → chunk-CIXL7AKH.js} +34 -32
- package/dist/chunk-CIXL7AKH.js.map +1 -0
- package/dist/{chunk-LU5SLE3P.js → chunk-E6ICIXVR.js} +4 -4
- package/dist/{chunk-LU5SLE3P.js.map → chunk-E6ICIXVR.js.map} +1 -1
- package/dist/{chunk-RF5EYEO6.js → chunk-K446NZ4E.js} +3 -3
- package/dist/{chunk-RF5EYEO6.js.map → chunk-K446NZ4E.js.map} +1 -1
- package/dist/{chunk-LWN7HOD3.js → chunk-L3MX5MTA.js} +3 -3
- package/dist/{chunk-LWN7HOD3.js.map → chunk-L3MX5MTA.js.map} +1 -1
- package/dist/{chunk-VSKDQVCG.js → chunk-L46TQXCV.js} +8 -4
- package/dist/chunk-L46TQXCV.js.map +1 -0
- package/dist/{chunk-WWGFIYKW.js → chunk-OOJEXFYY.js} +11 -11
- package/dist/chunk-OOJEXFYY.js.map +1 -0
- package/dist/{chunk-HXSK5P2X.js → chunk-PU2VTWJD.js} +23 -9
- package/dist/chunk-PU2VTWJD.js.map +1 -0
- package/dist/{chunk-TTOS7NW3.js → chunk-QA2WDZPV.js} +4 -4
- package/dist/{chunk-TTOS7NW3.js.map → chunk-QA2WDZPV.js.map} +1 -1
- package/dist/{chunk-RAZWRNAJ.js → chunk-VZ4BRDBK.js} +3 -3
- package/dist/{chunk-RAZWRNAJ.js.map → chunk-VZ4BRDBK.js.map} +1 -1
- package/dist/{chunk-AKDL2ZX7.js → chunk-X5RJOZY2.js} +17 -25
- package/dist/chunk-X5RJOZY2.js.map +1 -0
- package/dist/{chunk-H4JTZYIT.js → chunk-ZKINHLMS.js} +80 -22
- package/dist/chunk-ZKINHLMS.js.map +1 -0
- package/dist/container-factory.d.ts +1 -1
- package/dist/container-factory.js +6 -6
- package/dist/container.js +1 -1
- package/dist/context.d.ts +1 -1
- package/dist/error-mapper.d.ts +1 -1
- package/dist/evaluator.d.ts +1 -1
- package/dist/flow.d.ts +1 -3
- package/dist/flow.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +17 -17
- package/dist/linter.d.ts +1 -1
- package/dist/logger.d.ts +1 -1
- package/dist/node.d.ts +1 -1
- package/dist/nodes/batch-gather.d.ts +1 -1
- package/dist/nodes/batch-scatter.d.ts +1 -1
- package/dist/nodes/sleep.d.ts +1 -1
- package/dist/nodes/subflow.d.ts +1 -1
- package/dist/nodes/subflow.js +4 -4
- package/dist/nodes/wait.d.ts +1 -1
- package/dist/nodes/webhook.d.ts +1 -1
- package/dist/runtime/adapter.d.ts +1 -1
- package/dist/runtime/adapter.js +13 -13
- package/dist/runtime/execution-context.d.ts +1 -1
- package/dist/runtime/execution-context.js +2 -2
- package/dist/runtime/executors.d.ts +1 -1
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.js +13 -13
- package/dist/runtime/node-executor-factory.d.ts +1 -1
- package/dist/runtime/orchestrator.d.ts +1 -1
- package/dist/runtime/orchestrator.js +4 -4
- package/dist/runtime/orchestrators/replay.d.ts +1 -1
- package/dist/runtime/orchestrators/step-by-step.d.ts +1 -1
- package/dist/runtime/orchestrators/step-by-step.js +2 -2
- package/dist/runtime/orchestrators/utils.d.ts +1 -1
- package/dist/runtime/orchestrators/utils.js +1 -1
- package/dist/runtime/runtime.d.ts +1 -1
- package/dist/runtime/runtime.js +12 -12
- package/dist/runtime/scheduler.d.ts +1 -1
- package/dist/runtime/state.d.ts +1 -1
- package/dist/runtime/state.js +1 -1
- package/dist/runtime/traverser.d.ts +1 -1
- package/dist/runtime/traverser.js +2 -1
- package/dist/runtime/types.d.ts +1 -1
- package/dist/runtime/workflow-logic-handler.d.ts +1 -1
- package/dist/runtime/workflow-logic-handler.js +1 -1
- package/dist/sanitizer.d.ts +1 -1
- package/dist/serializer.d.ts +1 -1
- package/dist/testing/event-logger.d.ts +1 -1
- package/dist/testing/index.d.ts +1 -1
- package/dist/testing/index.js +18 -18
- package/dist/testing/run-with-trace.d.ts +1 -1
- package/dist/testing/run-with-trace.js +14 -14
- package/dist/testing/stepper.d.ts +1 -1
- package/dist/testing/stepper.js +6 -6
- package/dist/{types-D-dVKe4_.d.ts → types-Biip2gLh.d.ts} +12 -2
- package/dist/types.d.ts +1 -1
- package/package.json +59 -59
- package/LICENSE +0 -21
- package/dist/chunk-AKDL2ZX7.js.map +0 -1
- package/dist/chunk-H4JTZYIT.js.map +0 -1
- package/dist/chunk-HXSK5P2X.js.map +0 -1
- package/dist/chunk-N63S5NEG.js.map +0 -1
- package/dist/chunk-VDVUF25G.js.map +0 -1
- package/dist/chunk-VSKDQVCG.js.map +0 -1
- package/dist/chunk-W4IAXDO4.js.map +0 -1
- package/dist/chunk-WWGFIYKW.js.map +0 -1
|
@@ -1,21 +1,31 @@
|
|
|
1
1
|
import { analyzeBlueprint } from './chunk-ZLW4QOTS.js';
|
|
2
|
+
import { FlowcraftError } from './chunk-BCRWXTWX.js';
|
|
2
3
|
|
|
3
4
|
// src/runtime/traverser.ts
|
|
4
5
|
var GraphTraverser = class _GraphTraverser {
|
|
5
6
|
frontier = /* @__PURE__ */ new Set();
|
|
6
7
|
allPredecessors;
|
|
8
|
+
allSuccessors;
|
|
7
9
|
dynamicBlueprint;
|
|
8
10
|
completedNodes = /* @__PURE__ */ new Set();
|
|
11
|
+
nodesInLoops;
|
|
9
12
|
constructor(blueprint, isStrictMode = false) {
|
|
10
13
|
this.dynamicBlueprint = structuredClone(blueprint);
|
|
11
14
|
this.allPredecessors = /* @__PURE__ */ new Map();
|
|
15
|
+
this.allSuccessors = /* @__PURE__ */ new Map();
|
|
16
|
+
this.nodesInLoops = /* @__PURE__ */ new Map();
|
|
12
17
|
for (const node of this.dynamicBlueprint.nodes) {
|
|
13
18
|
this.allPredecessors.set(node.id, /* @__PURE__ */ new Set());
|
|
19
|
+
this.allSuccessors.set(node.id, /* @__PURE__ */ new Set());
|
|
14
20
|
}
|
|
15
21
|
for (const edge of this.dynamicBlueprint.edges) {
|
|
16
|
-
this.
|
|
22
|
+
this.getPredecessors(edge.target).add(edge.source);
|
|
23
|
+
}
|
|
24
|
+
for (const edge of this.dynamicBlueprint.edges) {
|
|
25
|
+
this.getSuccessors(edge.source).add(edge.target);
|
|
17
26
|
}
|
|
18
27
|
const analysis = analyzeBlueprint(blueprint);
|
|
28
|
+
this.filterNodesInLoops(blueprint);
|
|
19
29
|
this.frontier = new Set(analysis.startNodeIds.filter((id) => !this.isFallbackNode(id)));
|
|
20
30
|
if (this.frontier.size === 0 && analysis.cycles.length > 0 && !isStrictMode) {
|
|
21
31
|
const uniqueStartNodes = /* @__PURE__ */ new Set();
|
|
@@ -50,7 +60,7 @@ var GraphTraverser = class _GraphTraverser {
|
|
|
50
60
|
for (const node of traverser.dynamicBlueprint.nodes) {
|
|
51
61
|
if (traverser.completedNodes.has(node.id)) continue;
|
|
52
62
|
const requiredPredecessors = traverser.allPredecessors.get(node.id);
|
|
53
|
-
const joinStrategy = traverser.
|
|
63
|
+
const joinStrategy = traverser.getJoinStrategy(node.id);
|
|
54
64
|
if (!requiredPredecessors || requiredPredecessors.size === 0) {
|
|
55
65
|
traverser.frontier.add(node.id);
|
|
56
66
|
continue;
|
|
@@ -64,23 +74,36 @@ var GraphTraverser = class _GraphTraverser {
|
|
|
64
74
|
isFallbackNode(nodeId) {
|
|
65
75
|
return this.dynamicBlueprint.nodes.some((n) => n.config?.fallback === nodeId);
|
|
66
76
|
}
|
|
67
|
-
|
|
77
|
+
getJoinStrategy(nodeId) {
|
|
68
78
|
const node = this.dynamicBlueprint.nodes.find((n) => n.id === nodeId);
|
|
69
79
|
const baseJoinStrategy = node?.config?.joinStrategy || "all";
|
|
70
|
-
if (node?.uses === "loop-controller") {
|
|
71
|
-
return "any";
|
|
72
|
-
}
|
|
73
|
-
const predecessors = this.allPredecessors.get(nodeId);
|
|
74
|
-
if (predecessors) {
|
|
75
|
-
for (const predecessorId of predecessors) {
|
|
76
|
-
const predecessorNode = this.dynamicBlueprint.nodes.find((n) => n.id === predecessorId);
|
|
77
|
-
if (predecessorNode?.uses === "loop-controller") {
|
|
78
|
-
return "any";
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
80
|
return baseJoinStrategy;
|
|
83
81
|
}
|
|
82
|
+
filterNodesInLoops(blueprint) {
|
|
83
|
+
blueprint.nodes.forEach((node) => {
|
|
84
|
+
if (node.uses !== "loop-controller") return;
|
|
85
|
+
const nextInLoopId = blueprint.edges.find((e) => e.source === node.id && e.action === "continue")?.target;
|
|
86
|
+
if (!nextInLoopId) {
|
|
87
|
+
throw new FlowcraftError(
|
|
88
|
+
`Loop '${node.id}' has no continue edge to start node. Ensure edges are wired inside the loop and incoming/breaking edges point to the loop controller.`,
|
|
89
|
+
{ nodeId: node.id, blueprintId: blueprint.id }
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
const set = /* @__PURE__ */ new Set();
|
|
93
|
+
set.add(nextInLoopId);
|
|
94
|
+
this.nodesInLoops.set(node.id, this.getAllLoopSuccessors(nextInLoopId, blueprint, set));
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
getAllLoopSuccessors(nodeId, blueprint, set) {
|
|
98
|
+
this.getSuccessors(nodeId).forEach((successor) => {
|
|
99
|
+
if (set.has(successor)) return;
|
|
100
|
+
const node = this.getNode(successor, blueprint);
|
|
101
|
+
if (!node || node.uses === "loop-controller") return;
|
|
102
|
+
set.add(successor);
|
|
103
|
+
this.getAllLoopSuccessors(successor, blueprint, set);
|
|
104
|
+
});
|
|
105
|
+
return set;
|
|
106
|
+
}
|
|
84
107
|
getReadyNodes() {
|
|
85
108
|
const readyNodes = [];
|
|
86
109
|
for (const nodeId of this.frontier) {
|
|
@@ -103,28 +126,39 @@ var GraphTraverser = class _GraphTraverser {
|
|
|
103
126
|
this.dynamicBlueprint.nodes.push(dynamicNode);
|
|
104
127
|
this.allPredecessors.set(dynamicNode.id, /* @__PURE__ */ new Set([nodeId]));
|
|
105
128
|
if (gatherNodeId) {
|
|
106
|
-
this.
|
|
129
|
+
this.getPredecessors(gatherNodeId).add(dynamicNode.id);
|
|
107
130
|
}
|
|
108
131
|
this.frontier.add(dynamicNode.id);
|
|
109
132
|
}
|
|
110
133
|
}
|
|
111
134
|
for (const node of nextNodes) {
|
|
112
|
-
const joinStrategy = this.
|
|
135
|
+
const joinStrategy = this.getJoinStrategy(node.id);
|
|
113
136
|
if (joinStrategy !== "any" && this.completedNodes.has(node.id)) continue;
|
|
114
|
-
const requiredPredecessors = this.
|
|
115
|
-
if (!requiredPredecessors) continue;
|
|
137
|
+
const requiredPredecessors = this.getPredecessors(node.id);
|
|
116
138
|
const isReady = joinStrategy === "any" ? requiredPredecessors.has(nodeId) : [...requiredPredecessors].every((p) => this.completedNodes.has(p));
|
|
117
139
|
if (isReady) {
|
|
118
140
|
this.frontier.add(node.id);
|
|
141
|
+
if (node.uses === "loop-controller") {
|
|
142
|
+
this.getNodesInLoop(node.id).forEach((id) => {
|
|
143
|
+
this.resetNodeCompletion(id);
|
|
144
|
+
});
|
|
145
|
+
}
|
|
119
146
|
}
|
|
120
147
|
}
|
|
121
148
|
if (nextNodes.length === 0) {
|
|
122
149
|
for (const [potentialNextId, predecessors] of this.allPredecessors) {
|
|
123
150
|
if (predecessors.has(nodeId) && !this.completedNodes.has(potentialNextId)) {
|
|
124
|
-
const joinStrategy = this.
|
|
151
|
+
const joinStrategy = this.getJoinStrategy(potentialNextId);
|
|
125
152
|
const isReady = joinStrategy === "any" ? predecessors.has(nodeId) : [...predecessors].every((p) => this.completedNodes.has(p));
|
|
126
153
|
if (isReady) {
|
|
127
154
|
this.frontier.add(potentialNextId);
|
|
155
|
+
const node = this.getNode(potentialNextId, this.dynamicBlueprint);
|
|
156
|
+
if (!node) continue;
|
|
157
|
+
if (node.uses === "loop-controller") {
|
|
158
|
+
this.getNodesInLoop(node.id).forEach((id) => {
|
|
159
|
+
this.resetNodeCompletion(id);
|
|
160
|
+
});
|
|
161
|
+
}
|
|
128
162
|
}
|
|
129
163
|
}
|
|
130
164
|
}
|
|
@@ -149,6 +183,30 @@ var GraphTraverser = class _GraphTraverser {
|
|
|
149
183
|
getAllPredecessors() {
|
|
150
184
|
return this.allPredecessors;
|
|
151
185
|
}
|
|
186
|
+
getAllSuccessors() {
|
|
187
|
+
return this.allSuccessors;
|
|
188
|
+
}
|
|
189
|
+
getPredecessors(nodeId) {
|
|
190
|
+
const predecessors = this.allPredecessors.get(nodeId);
|
|
191
|
+
if (!predecessors) return /* @__PURE__ */ new Set();
|
|
192
|
+
return predecessors;
|
|
193
|
+
}
|
|
194
|
+
getSuccessors(nodeId) {
|
|
195
|
+
const successors = this.allSuccessors.get(nodeId);
|
|
196
|
+
if (!successors) return /* @__PURE__ */ new Set();
|
|
197
|
+
return successors;
|
|
198
|
+
}
|
|
199
|
+
getNodesInLoop(id) {
|
|
200
|
+
const loopNodes = this.nodesInLoops.get(id);
|
|
201
|
+
if (!loopNodes) return /* @__PURE__ */ new Set();
|
|
202
|
+
return loopNodes;
|
|
203
|
+
}
|
|
204
|
+
resetNodeCompletion(nodeId) {
|
|
205
|
+
this.completedNodes.delete(nodeId);
|
|
206
|
+
}
|
|
207
|
+
getNode(nodeId, blueprint) {
|
|
208
|
+
return blueprint.nodes.find((n) => n.id === nodeId);
|
|
209
|
+
}
|
|
152
210
|
addDynamicNode(_nodeId, dynamicNode, predecessorId, gatherNodeId) {
|
|
153
211
|
this.dynamicBlueprint.nodes.push(dynamicNode);
|
|
154
212
|
this.allPredecessors.set(dynamicNode.id, /* @__PURE__ */ new Set([predecessorId]));
|
|
@@ -168,5 +226,5 @@ var GraphTraverser = class _GraphTraverser {
|
|
|
168
226
|
};
|
|
169
227
|
|
|
170
228
|
export { GraphTraverser };
|
|
171
|
-
//# sourceMappingURL=chunk-
|
|
172
|
-
//# sourceMappingURL=chunk-
|
|
229
|
+
//# sourceMappingURL=chunk-ZKINHLMS.js.map
|
|
230
|
+
//# sourceMappingURL=chunk-ZKINHLMS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/runtime/traverser.ts"],"names":[],"mappings":"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","file":"chunk-ZKINHLMS.js","sourcesContent":["import { analyzeBlueprint } from '../analysis'\nimport { FlowcraftError } from '../errors'\nimport type { NodeDefinition, NodeResult, WorkflowBlueprint } from '../types'\nimport type { WorkflowState } from './state'\n\nexport interface ReadyNode {\n\tnodeId: string\n\tnodeDef: NodeDefinition\n}\n\nexport class GraphTraverser {\n\tprivate frontier = new Set<string>()\n\tprivate allPredecessors: Map<string, Set<string>>\n\tprivate allSuccessors: Map<string, Set<string>>\n\tprivate dynamicBlueprint: WorkflowBlueprint\n\tprivate completedNodes = new Set<string>()\n\tprivate nodesInLoops: Map<string, Set<string>>\n\n\tconstructor(blueprint: WorkflowBlueprint, isStrictMode: boolean = false) {\n\t\tthis.dynamicBlueprint = structuredClone(blueprint) as WorkflowBlueprint\n\t\tthis.allPredecessors = new Map<string, Set<string>>()\n\t\tthis.allSuccessors = new Map<string, Set<string>>()\n\t\tthis.nodesInLoops = new Map<string, Set<string>>()\n\t\tfor (const node of this.dynamicBlueprint.nodes) {\n\t\t\tthis.allPredecessors.set(node.id, new Set())\n\t\t\tthis.allSuccessors.set(node.id, new Set())\n\t\t}\n\t\tfor (const edge of this.dynamicBlueprint.edges) {\n\t\t\tthis.getPredecessors(edge.target).add(edge.source)\n\t\t}\n\t\tfor (const edge of this.dynamicBlueprint.edges) {\n\t\t\tthis.getSuccessors(edge.source).add(edge.target)\n\t\t}\n\t\tconst analysis = analyzeBlueprint(blueprint)\n\t\tthis.filterNodesInLoops(blueprint)\n\t\tthis.frontier = new Set(analysis.startNodeIds.filter((id) => !this.isFallbackNode(id)))\n\t\tif (this.frontier.size === 0 && analysis.cycles.length > 0 && !isStrictMode) {\n\t\t\tconst uniqueStartNodes = new Set<string>()\n\t\t\tconst cycleEntryPoints = new Set(blueprint.metadata?.cycleEntryPoints || [])\n\t\t\tfor (const cycle of analysis.cycles) {\n\t\t\t\tif (cycle.length > 0) {\n\t\t\t\t\tconst entryPoint = cycle.find((node) => cycleEntryPoints.has(node))\n\t\t\t\t\tuniqueStartNodes.add(entryPoint || cycle[0])\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.frontier = new Set(uniqueStartNodes)\n\t\t}\n\t}\n\n\t/**\n\t * Clears all nodes from the execution frontier.\n\t */\n\tpublic clearFrontier(): void {\n\t\tthis.frontier.clear()\n\t}\n\n\t/**\n\t * Creates and initializes a GraphTraverser from a saved workflow state.\n\t * This is the correct way to prepare a traverser for a `resume` operation.\n\t * @param blueprint The workflow blueprint.\n\t * @param state The workflow state being resumed.\n\t * @returns A configured GraphTraverser instance.\n\t */\n\tpublic static fromState(blueprint: WorkflowBlueprint, state: WorkflowState<any>): GraphTraverser {\n\t\tconst traverser = new GraphTraverser(blueprint)\n\n\t\t// clear auto-populated frontier from constructor\n\t\ttraverser.clearFrontier()\n\n\t\t// re-hydrate the set of completed nodes\n\t\tconst completedNodes = state.getCompletedNodes()\n\t\ttraverser.completedNodes = new Set(completedNodes)\n\n\t\tfor (const node of traverser.dynamicBlueprint.nodes) {\n\t\t\tif (traverser.completedNodes.has(node.id)) continue\n\n\t\t\tconst requiredPredecessors = traverser.allPredecessors.get(node.id)\n\t\t\tconst joinStrategy = traverser.getJoinStrategy(node.id)\n\n\t\t\t// if no predecessors and not completed, it's a start node and should be in the frontier\n\t\t\tif (!requiredPredecessors || requiredPredecessors.size === 0) {\n\t\t\t\ttraverser.frontier.add(node.id)\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tconst completedPredecessors = [...requiredPredecessors].filter((p) => traverser.completedNodes.has(p))\n\t\t\tconst isReady =\n\t\t\t\tjoinStrategy === 'any'\n\t\t\t\t\t? completedPredecessors.length > 0\n\t\t\t\t\t: completedPredecessors.length === requiredPredecessors.size\n\n\t\t\tif (isReady) traverser.frontier.add(node.id)\n\t\t}\n\n\t\treturn traverser\n\t}\n\n\tprivate isFallbackNode(nodeId: string): boolean {\n\t\treturn this.dynamicBlueprint.nodes.some((n) => n.config?.fallback === nodeId)\n\t}\n\n\tprivate getJoinStrategy(nodeId: string): 'any' | 'all' {\n\t\tconst node = this.dynamicBlueprint.nodes.find((n) => n.id === nodeId)\n\t\tconst baseJoinStrategy = node?.config?.joinStrategy || 'all'\n\t\treturn baseJoinStrategy\n\t}\n\n\tprivate filterNodesInLoops(blueprint: WorkflowBlueprint): void {\n\t\tblueprint.nodes.forEach((node) => {\n\t\t\tif (node.uses !== 'loop-controller') return\n\n\t\t\tconst nextInLoopId = blueprint.edges.find((e) => e.source === node.id && e.action === 'continue')?.target\n\t\t\tif (!nextInLoopId) {\n\t\t\t\tthrow new FlowcraftError(\n\t\t\t\t\t`Loop '${node.id}' has no continue edge to start node. ` +\n\t\t\t\t\t\t`Ensure edges are wired inside the loop and incoming/breaking edges point to the loop controller.`,\n\t\t\t\t\t{ nodeId: node.id, blueprintId: blueprint.id },\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tconst set: Set<string> = new Set()\n\t\t\tset.add(nextInLoopId)\n\t\t\tthis.nodesInLoops.set(node.id, this.getAllLoopSuccessors(nextInLoopId, blueprint, set))\n\t\t})\n\t}\n\n\tprivate getAllLoopSuccessors(nodeId: string, blueprint: WorkflowBlueprint, set: Set<string>): Set<string> {\n\t\tthis.getSuccessors(nodeId).forEach((successor) => {\n\t\t\tif (set.has(successor)) return\n\t\t\tconst node = this.getNode(successor, blueprint)\n\t\t\tif (!node || node.uses === 'loop-controller') return\n\t\t\tset.add(successor)\n\t\t\tthis.getAllLoopSuccessors(successor, blueprint, set)\n\t\t})\n\t\treturn set\n\t}\n\n\tgetReadyNodes(): ReadyNode[] {\n\t\tconst readyNodes: ReadyNode[] = []\n\t\tfor (const nodeId of this.frontier) {\n\t\t\tconst nodeDef = this.dynamicBlueprint.nodes.find((n) => n.id === nodeId)\n\t\t\tif (nodeDef) {\n\t\t\t\treadyNodes.push({ nodeId, nodeDef })\n\t\t\t}\n\t\t}\n\t\tthis.frontier.clear()\n\t\treturn readyNodes\n\t}\n\n\thasMoreWork(): boolean {\n\t\treturn this.frontier.size > 0\n\t}\n\n\tmarkNodeCompleted(nodeId: string, result: NodeResult<any, any>, nextNodes: NodeDefinition[]): void {\n\t\tthis.completedNodes.add(nodeId)\n\n\t\tif (result?.dynamicNodes && result.dynamicNodes.length > 0) {\n\t\t\tconst gatherNodeId = result.output?.gatherNodeId\n\t\t\tfor (const dynamicNode of result.dynamicNodes) {\n\t\t\t\tthis.dynamicBlueprint.nodes.push(dynamicNode)\n\t\t\t\tthis.allPredecessors.set(dynamicNode.id, new Set([nodeId]))\n\t\t\t\tif (gatherNodeId) {\n\t\t\t\t\tthis.getPredecessors(gatherNodeId).add(dynamicNode.id)\n\t\t\t\t}\n\t\t\t\tthis.frontier.add(dynamicNode.id)\n\t\t\t}\n\t\t}\n\n\t\tfor (const node of nextNodes) {\n\t\t\tconst joinStrategy = this.getJoinStrategy(node.id)\n\t\t\tif (joinStrategy !== 'any' && this.completedNodes.has(node.id)) continue\n\n\t\t\tconst requiredPredecessors = this.getPredecessors(node.id)\n\n\t\t\tconst isReady =\n\t\t\t\tjoinStrategy === 'any'\n\t\t\t\t\t? requiredPredecessors.has(nodeId)\n\t\t\t\t\t: [...requiredPredecessors].every((p) => this.completedNodes.has(p))\n\n\t\t\tif (isReady) {\n\t\t\t\tthis.frontier.add(node.id)\n\t\t\t\t// reset to uncompleted for all nodes in a loop\n\t\t\t\tif (node.uses === 'loop-controller') {\n\t\t\t\t\tthis.getNodesInLoop(node.id).forEach((id) => {\n\t\t\t\t\t\tthis.resetNodeCompletion(id)\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (nextNodes.length === 0) {\n\t\t\tfor (const [potentialNextId, predecessors] of this.allPredecessors) {\n\t\t\t\tif (predecessors.has(nodeId) && !this.completedNodes.has(potentialNextId)) {\n\t\t\t\t\tconst joinStrategy = this.getJoinStrategy(potentialNextId)\n\t\t\t\t\tconst isReady =\n\t\t\t\t\t\tjoinStrategy === 'any'\n\t\t\t\t\t\t\t? predecessors.has(nodeId)\n\t\t\t\t\t\t\t: [...predecessors].every((p) => this.completedNodes.has(p))\n\t\t\t\t\tif (isReady) {\n\t\t\t\t\t\tthis.frontier.add(potentialNextId)\n\t\t\t\t\t\tconst node = this.getNode(potentialNextId, this.dynamicBlueprint)\n\t\t\t\t\t\tif (!node) continue\n\t\t\t\t\t\t// reset to uncompleted for all nodes in a loop\n\t\t\t\t\t\tif (node.uses === 'loop-controller') {\n\t\t\t\t\t\t\tthis.getNodesInLoop(node.id).forEach((id) => {\n\t\t\t\t\t\t\t\tthis.resetNodeCompletion(id)\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tgetAllNodeIds(): Set<string> {\n\t\treturn new Set(this.dynamicBlueprint.nodes.map((n) => n.id))\n\t}\n\n\tgetFallbackNodeIds(): Set<string> {\n\t\tconst fallbackNodeIds = new Set<string>()\n\t\tfor (const node of this.dynamicBlueprint.nodes) {\n\t\t\tif (node.config?.fallback) fallbackNodeIds.add(node.config.fallback)\n\t\t}\n\t\treturn fallbackNodeIds\n\t}\n\n\tgetCompletedNodes(): Set<string> {\n\t\treturn new Set(this.completedNodes)\n\t}\n\n\tgetDynamicBlueprint(): WorkflowBlueprint {\n\t\treturn this.dynamicBlueprint\n\t}\n\n\tgetAllPredecessors(): Map<string, Set<string>> {\n\t\treturn this.allPredecessors\n\t}\n\n\tgetAllSuccessors(): Map<string, Set<string>> {\n\t\treturn this.allSuccessors\n\t}\n\n\tgetPredecessors(nodeId: string): Set<string> {\n\t\tconst predecessors = this.allPredecessors.get(nodeId)\n\t\tif (!predecessors) return new Set()\n\t\treturn predecessors\n\t}\n\n\tgetSuccessors(nodeId: string): Set<string> {\n\t\tconst successors = this.allSuccessors.get(nodeId)\n\t\tif (!successors) return new Set()\n\t\treturn successors\n\t}\n\n\tgetNodesInLoop(id: string): Set<string> {\n\t\tconst loopNodes = this.nodesInLoops.get(id)\n\t\tif (!loopNodes) return new Set()\n\t\treturn loopNodes\n\t}\n\n\tresetNodeCompletion(nodeId: string): void {\n\t\tthis.completedNodes.delete(nodeId)\n\t}\n\n\tgetNode(nodeId: string, blueprint: WorkflowBlueprint): NodeDefinition | undefined {\n\t\treturn blueprint.nodes.find((n) => n.id === nodeId)\n\t}\n\n\taddDynamicNode(_nodeId: string, dynamicNode: NodeDefinition, predecessorId: string, gatherNodeId?: string): void {\n\t\tthis.dynamicBlueprint.nodes.push(dynamicNode)\n\t\tthis.allPredecessors.set(dynamicNode.id, new Set([predecessorId]))\n\t\tif (gatherNodeId) {\n\t\t\tthis.allPredecessors.get(gatherNodeId)?.add(dynamicNode.id)\n\t\t}\n\t\tthis.frontier.add(dynamicNode.id)\n\t}\n\n\t/**\n\t * Manually adds a node ID back to the execution frontier.\n\t * Used by orchestrators that need fine-grained control over steps.\n\t * @param nodeId The ID of the node to add to the frontier.\n\t */\n\tpublic addToFrontier(nodeId: string): void {\n\t\tthis.frontier.add(nodeId)\n\t}\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DIContainer } from './container.js';
|
|
2
|
-
import { v as RuntimeDependencies, y as ILogger, D as ISerializer, x as IEvaluator, A as IEventBus, M as Middleware, o as NodeFunction, p as NodeClass, h as WorkflowBlueprint } from './types-
|
|
2
|
+
import { v as RuntimeDependencies, y as ILogger, D as ISerializer, x as IEvaluator, A as IEventBus, M as Middleware, o as NodeFunction, p as NodeClass, h as WorkflowBlueprint } from './types-Biip2gLh.js';
|
|
3
3
|
import './errors.js';
|
|
4
4
|
|
|
5
5
|
interface ContainerOptions<TDependencies extends RuntimeDependencies = RuntimeDependencies> {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export { createDefaultContainer } from './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
1
|
+
export { createDefaultContainer } from './chunk-E6ICIXVR.js';
|
|
2
|
+
import './chunk-QA2WDZPV.js';
|
|
3
|
+
import './chunk-26VTGQAF.js';
|
|
4
|
+
import './chunk-L3MX5MTA.js';
|
|
5
|
+
import './chunk-L46TQXCV.js';
|
|
6
6
|
import './chunk-4PELJWF7.js';
|
|
7
7
|
import './chunk-6RKHCJUU.js';
|
|
8
|
-
import './chunk-
|
|
8
|
+
import './chunk-OOJEXFYY.js';
|
|
9
9
|
import './chunk-ZETQCNEF.js';
|
|
10
10
|
import './chunk-BCRWXTWX.js';
|
|
11
11
|
import './chunk-PH2IYZHV.js';
|
package/dist/container.js
CHANGED
package/dist/context.d.ts
CHANGED
package/dist/error-mapper.d.ts
CHANGED
package/dist/evaluator.d.ts
CHANGED
package/dist/flow.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { o as NodeFunction, p as NodeClass, j as NodeDefinition, k as EdgeDefinition, h as WorkflowBlueprint, U as UIGraph } from './types-
|
|
1
|
+
import { o as NodeFunction, p as NodeClass, j as NodeDefinition, k as EdgeDefinition, h as WorkflowBlueprint, U as UIGraph } from './types-Biip2gLh.js';
|
|
2
2
|
import './errors.js';
|
|
3
3
|
import './container.js';
|
|
4
4
|
|
|
@@ -8,7 +8,6 @@ import './container.js';
|
|
|
8
8
|
declare class FlowBuilder<TContext extends Record<string, any> = Record<string, any>, TDependencies extends Record<string, any> = Record<string, any>> {
|
|
9
9
|
private blueprint;
|
|
10
10
|
private functionRegistry;
|
|
11
|
-
private loopControllerIds;
|
|
12
11
|
private loopDefinitions;
|
|
13
12
|
private batchDefinitions;
|
|
14
13
|
private cycleEntryPoints;
|
|
@@ -66,7 +65,6 @@ declare class FlowBuilder<TContext extends Record<string, any> = Record<string,
|
|
|
66
65
|
/** An expression that, if true, causes the loop to run again. */
|
|
67
66
|
condition: string;
|
|
68
67
|
}): this;
|
|
69
|
-
getLoopControllerId(id: string): string;
|
|
70
68
|
/**
|
|
71
69
|
* Sets the preferred entry point for a cycle in non-DAG workflows.
|
|
72
70
|
* This helps remove ambiguity when the runtime needs to choose a starting node for cycles.
|
package/dist/flow.js
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export { PropertyEvaluator, UnsafeEvaluator } from './evaluator.js';
|
|
|
9
9
|
export { FlowBuilder, createFlow } from './flow.js';
|
|
10
10
|
export { LinterIssue, LinterIssueCode, LinterResult, lintBlueprint } from './linter.js';
|
|
11
11
|
export { ConsoleLogger, NullLogger } from './logger.js';
|
|
12
|
-
export { B as BaseNode, C as ClassNodeExecutor, s as ContextImplementation, k as EdgeDefinition, e as ExecutionServices, E as ExecutionStrategy, c as FlowRuntime, z as FlowcraftEvent, F as FunctionNodeExecutor, G as GraphTraverser, u as IAsyncContext, x as IEvaluator, A as IEventBus, y as ILogger, I as IOrchestrator, f as IRuntime, D as ISerializer, t as ISyncContext, M as Middleware, p as NodeClass, l as NodeConfig, n as NodeContext, j as NodeDefinition, N as NodeExecutionResult, b as NodeExecutor, a as NodeExecutorConfig, d as NodeExecutorFactory, o as NodeFunction, q as NodeImplementation, r as NodeRegistry, m as NodeResult, P as PatchOperation, R as ReadyNode, v as RuntimeDependencies, w as RuntimeOptions, S as SourceLocation, U as UIGraph, h as WorkflowBlueprint, g as WorkflowBlueprintMetadata, H as WorkflowError, K as WorkflowResult, W as WorkflowState, J as WorkflowStatus, i as isNodeClass } from './types-
|
|
12
|
+
export { B as BaseNode, C as ClassNodeExecutor, s as ContextImplementation, k as EdgeDefinition, e as ExecutionServices, E as ExecutionStrategy, c as FlowRuntime, z as FlowcraftEvent, F as FunctionNodeExecutor, G as GraphTraverser, u as IAsyncContext, x as IEvaluator, A as IEventBus, y as ILogger, I as IOrchestrator, f as IRuntime, D as ISerializer, t as ISyncContext, M as Middleware, p as NodeClass, l as NodeConfig, n as NodeContext, j as NodeDefinition, N as NodeExecutionResult, b as NodeExecutor, a as NodeExecutorConfig, d as NodeExecutorFactory, o as NodeFunction, q as NodeImplementation, r as NodeRegistry, m as NodeResult, P as PatchOperation, R as ReadyNode, v as RuntimeDependencies, w as RuntimeOptions, S as SourceLocation, U as UIGraph, h as WorkflowBlueprint, g as WorkflowBlueprintMetadata, H as WorkflowError, K as WorkflowResult, W as WorkflowState, J as WorkflowStatus, i as isNodeClass } from './types-Biip2gLh.js';
|
|
13
13
|
export { AdapterOptions, BaseDistributedAdapter, ICoordinationStore, JobPayload } from './runtime/adapter.js';
|
|
14
14
|
export { DefaultOrchestrator } from './runtime/orchestrator.js';
|
|
15
15
|
export { ReplayOrchestrator } from './runtime/orchestrators/replay.js';
|
package/dist/index.js
CHANGED
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
import './chunk-3Y5O5EGB.js';
|
|
2
|
-
export { InMemoryEventStore, PersistentEventBusAdapter } from './chunk-ASJYJ3NF.js';
|
|
3
1
|
import './chunk-HFJXYY4E.js';
|
|
4
2
|
export { ReplayOrchestrator } from './chunk-UNORA7EM.js';
|
|
5
3
|
import './chunk-NVLZFLYM.js';
|
|
6
|
-
export { BaseDistributedAdapter } from './chunk-
|
|
7
|
-
export { FlowRuntime } from './chunk-
|
|
8
|
-
import './chunk-
|
|
4
|
+
export { BaseDistributedAdapter } from './chunk-BV6MXL74.js';
|
|
5
|
+
export { FlowRuntime } from './chunk-CIXL7AKH.js';
|
|
6
|
+
import './chunk-PU2VTWJD.js';
|
|
9
7
|
import './chunk-DL7KVYZF.js';
|
|
10
8
|
import './chunk-LM4ACVHL.js';
|
|
11
|
-
import './chunk-HNHM3FDK.js';
|
|
12
|
-
import './chunk-4TVWI6Y6.js';
|
|
13
|
-
import './chunk-IDTYHLDQ.js';
|
|
14
|
-
import './chunk-I53JB2KW.js';
|
|
15
9
|
export { ClassNodeExecutor, FunctionNodeExecutor, NodeExecutor } from './chunk-ONH7PIJZ.js';
|
|
16
|
-
|
|
10
|
+
import './chunk-3Y5O5EGB.js';
|
|
11
|
+
export { InMemoryEventStore, PersistentEventBusAdapter } from './chunk-2TSADFQX.js';
|
|
17
12
|
import './chunk-BC4G7OM6.js';
|
|
18
13
|
import './chunk-RM677CNU.js';
|
|
14
|
+
import './chunk-HNHM3FDK.js';
|
|
15
|
+
import './chunk-5A24LVGQ.js';
|
|
16
|
+
export { GraphTraverser } from './chunk-ZKINHLMS.js';
|
|
17
|
+
import './chunk-IDTYHLDQ.js';
|
|
18
|
+
import './chunk-I53JB2KW.js';
|
|
19
19
|
export { lintBlueprint } from './chunk-IKOTX22J.js';
|
|
20
20
|
export { sanitizeBlueprint } from './chunk-TKSSRS5U.js';
|
|
21
21
|
import './chunk-55J6XMHW.js';
|
|
22
22
|
export { analyzeBlueprint, checkForCycles, generateMermaid, generateMermaidForRun } from './chunk-ZLW4QOTS.js';
|
|
23
|
-
export { createDefaultContainer } from './chunk-
|
|
24
|
-
export { DefaultOrchestrator } from './chunk-
|
|
25
|
-
export { executeBatch, processResults } from './chunk-
|
|
26
|
-
import './chunk-
|
|
27
|
-
export { WorkflowState } from './chunk-
|
|
23
|
+
export { createDefaultContainer } from './chunk-E6ICIXVR.js';
|
|
24
|
+
export { DefaultOrchestrator } from './chunk-QA2WDZPV.js';
|
|
25
|
+
export { executeBatch, processResults } from './chunk-26VTGQAF.js';
|
|
26
|
+
import './chunk-L3MX5MTA.js';
|
|
27
|
+
export { WorkflowState } from './chunk-L46TQXCV.js';
|
|
28
28
|
export { ConsoleLogger, NullLogger } from './chunk-4PELJWF7.js';
|
|
29
29
|
export { JsonSerializer } from './chunk-6RKHCJUU.js';
|
|
30
|
-
export { DIContainer, ServiceTokens } from './chunk-
|
|
30
|
+
export { DIContainer, ServiceTokens } from './chunk-OOJEXFYY.js';
|
|
31
31
|
export { AsyncContextView, Context, TrackedAsyncContext } from './chunk-ZETQCNEF.js';
|
|
32
32
|
export { createErrorMapper } from './chunk-27STBUGG.js';
|
|
33
33
|
export { FlowcraftError } from './chunk-BCRWXTWX.js';
|
|
34
34
|
export { PropertyEvaluator, UnsafeEvaluator } from './chunk-PH2IYZHV.js';
|
|
35
|
-
export { FlowBuilder, createFlow } from './chunk-
|
|
35
|
+
export { FlowBuilder, createFlow } from './chunk-X5RJOZY2.js';
|
|
36
36
|
export { BaseNode, isNodeClass } from './chunk-LNK7LZER.js';
|
|
37
37
|
//# sourceMappingURL=index.js.map
|
|
38
38
|
//# sourceMappingURL=index.js.map
|
package/dist/linter.d.ts
CHANGED
package/dist/logger.d.ts
CHANGED
package/dist/node.d.ts
CHANGED
package/dist/nodes/sleep.d.ts
CHANGED
package/dist/nodes/subflow.d.ts
CHANGED
package/dist/nodes/subflow.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { SubflowNode } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { SubflowNode } from '../chunk-5A24LVGQ.js';
|
|
2
|
+
import '../chunk-ZKINHLMS.js';
|
|
3
3
|
import '../chunk-ZLW4QOTS.js';
|
|
4
|
-
import '../chunk-
|
|
5
|
-
import '../chunk-
|
|
4
|
+
import '../chunk-L3MX5MTA.js';
|
|
5
|
+
import '../chunk-L46TQXCV.js';
|
|
6
6
|
import '../chunk-ZETQCNEF.js';
|
|
7
7
|
import '../chunk-BCRWXTWX.js';
|
|
8
8
|
import '../chunk-LNK7LZER.js';
|
package/dist/nodes/wait.d.ts
CHANGED
package/dist/nodes/webhook.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { w as RuntimeOptions, A as IEventBus, c as FlowRuntime, D as ISerializer, y as ILogger, u as IAsyncContext, K as WorkflowResult, h as WorkflowBlueprint } from '../types-
|
|
1
|
+
import { w as RuntimeOptions, A as IEventBus, c as FlowRuntime, D as ISerializer, y as ILogger, u as IAsyncContext, K as WorkflowResult, h as WorkflowBlueprint } from '../types-Biip2gLh.js';
|
|
2
2
|
import '../errors.js';
|
|
3
3
|
import '../container.js';
|
|
4
4
|
|
package/dist/runtime/adapter.js
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
export { BaseDistributedAdapter } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
export { BaseDistributedAdapter } from '../chunk-BV6MXL74.js';
|
|
2
|
+
import '../chunk-CIXL7AKH.js';
|
|
3
|
+
import '../chunk-PU2VTWJD.js';
|
|
4
4
|
import '../chunk-DL7KVYZF.js';
|
|
5
5
|
import '../chunk-LM4ACVHL.js';
|
|
6
|
-
import '../chunk-HNHM3FDK.js';
|
|
7
|
-
import '../chunk-4TVWI6Y6.js';
|
|
8
|
-
import '../chunk-IDTYHLDQ.js';
|
|
9
|
-
import '../chunk-I53JB2KW.js';
|
|
10
6
|
import '../chunk-ONH7PIJZ.js';
|
|
11
|
-
import '../chunk-H4JTZYIT.js';
|
|
12
7
|
import '../chunk-BC4G7OM6.js';
|
|
13
8
|
import '../chunk-RM677CNU.js';
|
|
9
|
+
import '../chunk-HNHM3FDK.js';
|
|
10
|
+
import '../chunk-5A24LVGQ.js';
|
|
11
|
+
import '../chunk-ZKINHLMS.js';
|
|
12
|
+
import '../chunk-IDTYHLDQ.js';
|
|
13
|
+
import '../chunk-I53JB2KW.js';
|
|
14
14
|
import '../chunk-TKSSRS5U.js';
|
|
15
15
|
import '../chunk-ZLW4QOTS.js';
|
|
16
|
-
import '../chunk-
|
|
17
|
-
import '../chunk-
|
|
18
|
-
import '../chunk-
|
|
19
|
-
import '../chunk-
|
|
16
|
+
import '../chunk-QA2WDZPV.js';
|
|
17
|
+
import '../chunk-26VTGQAF.js';
|
|
18
|
+
import '../chunk-L3MX5MTA.js';
|
|
19
|
+
import '../chunk-L46TQXCV.js';
|
|
20
20
|
import '../chunk-4PELJWF7.js';
|
|
21
21
|
import '../chunk-6RKHCJUU.js';
|
|
22
|
-
import '../chunk-
|
|
22
|
+
import '../chunk-OOJEXFYY.js';
|
|
23
23
|
import '../chunk-ZETQCNEF.js';
|
|
24
24
|
import '../chunk-BCRWXTWX.js';
|
|
25
25
|
import '../chunk-PH2IYZHV.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { ExecutionContext } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { ExecutionContext } from '../chunk-L3MX5MTA.js';
|
|
2
|
+
import '../chunk-L46TQXCV.js';
|
|
3
3
|
import '../chunk-ZETQCNEF.js';
|
|
4
4
|
import '../chunk-BCRWXTWX.js';
|
|
5
5
|
//# sourceMappingURL=execution-context.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import '../errors.js';
|
|
2
|
-
export { C as ClassNodeExecutor, E as ExecutionStrategy, F as FunctionNodeExecutor, N as NodeExecutionResult, b as NodeExecutor, a as NodeExecutorConfig } from '../types-
|
|
2
|
+
export { C as ClassNodeExecutor, E as ExecutionStrategy, F as FunctionNodeExecutor, N as NodeExecutionResult, b as NodeExecutor, a as NodeExecutorConfig } from '../types-Biip2gLh.js';
|
|
3
3
|
import '../container.js';
|
package/dist/runtime/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { AdapterOptions, BaseDistributedAdapter, ICoordinationStore, JobPayload } from './adapter.js';
|
|
2
|
-
export { C as ClassNodeExecutor, e as ExecutionServices, E as ExecutionStrategy, c as FlowRuntime, F as FunctionNodeExecutor, G as GraphTraverser, I as IOrchestrator, f as IRuntime, N as NodeExecutionResult, b as NodeExecutor, a as NodeExecutorConfig, d as NodeExecutorFactory, R as ReadyNode, W as WorkflowState } from '../types-
|
|
2
|
+
export { C as ClassNodeExecutor, e as ExecutionServices, E as ExecutionStrategy, c as FlowRuntime, F as FunctionNodeExecutor, G as GraphTraverser, I as IOrchestrator, f as IRuntime, N as NodeExecutionResult, b as NodeExecutor, a as NodeExecutorConfig, d as NodeExecutorFactory, R as ReadyNode, W as WorkflowState } from '../types-Biip2gLh.js';
|
|
3
3
|
export { DefaultOrchestrator } from './orchestrator.js';
|
|
4
4
|
export { ReplayOrchestrator } from './orchestrators/replay.js';
|
|
5
5
|
export { executeBatch, processResults } from './orchestrators/utils.js';
|
package/dist/runtime/index.js
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
import '../chunk-HFJXYY4E.js';
|
|
2
2
|
export { ReplayOrchestrator } from '../chunk-UNORA7EM.js';
|
|
3
3
|
import '../chunk-NVLZFLYM.js';
|
|
4
|
-
export { BaseDistributedAdapter } from '../chunk-
|
|
5
|
-
export { FlowRuntime } from '../chunk-
|
|
6
|
-
import '../chunk-
|
|
4
|
+
export { BaseDistributedAdapter } from '../chunk-BV6MXL74.js';
|
|
5
|
+
export { FlowRuntime } from '../chunk-CIXL7AKH.js';
|
|
6
|
+
import '../chunk-PU2VTWJD.js';
|
|
7
7
|
import '../chunk-DL7KVYZF.js';
|
|
8
8
|
import '../chunk-LM4ACVHL.js';
|
|
9
|
-
import '../chunk-HNHM3FDK.js';
|
|
10
|
-
import '../chunk-4TVWI6Y6.js';
|
|
11
|
-
import '../chunk-IDTYHLDQ.js';
|
|
12
|
-
import '../chunk-I53JB2KW.js';
|
|
13
9
|
export { ClassNodeExecutor, FunctionNodeExecutor, NodeExecutor } from '../chunk-ONH7PIJZ.js';
|
|
14
|
-
export { GraphTraverser } from '../chunk-H4JTZYIT.js';
|
|
15
10
|
import '../chunk-BC4G7OM6.js';
|
|
16
11
|
import '../chunk-RM677CNU.js';
|
|
12
|
+
import '../chunk-HNHM3FDK.js';
|
|
13
|
+
import '../chunk-5A24LVGQ.js';
|
|
14
|
+
export { GraphTraverser } from '../chunk-ZKINHLMS.js';
|
|
15
|
+
import '../chunk-IDTYHLDQ.js';
|
|
16
|
+
import '../chunk-I53JB2KW.js';
|
|
17
17
|
import '../chunk-TKSSRS5U.js';
|
|
18
18
|
import '../chunk-ZLW4QOTS.js';
|
|
19
|
-
export { DefaultOrchestrator } from '../chunk-
|
|
20
|
-
export { executeBatch, processResults } from '../chunk-
|
|
21
|
-
import '../chunk-
|
|
22
|
-
export { WorkflowState } from '../chunk-
|
|
19
|
+
export { DefaultOrchestrator } from '../chunk-QA2WDZPV.js';
|
|
20
|
+
export { executeBatch, processResults } from '../chunk-26VTGQAF.js';
|
|
21
|
+
import '../chunk-L3MX5MTA.js';
|
|
22
|
+
export { WorkflowState } from '../chunk-L46TQXCV.js';
|
|
23
23
|
import '../chunk-4PELJWF7.js';
|
|
24
24
|
import '../chunk-6RKHCJUU.js';
|
|
25
|
-
import '../chunk-
|
|
25
|
+
import '../chunk-OOJEXFYY.js';
|
|
26
26
|
import '../chunk-ZETQCNEF.js';
|
|
27
27
|
import '../chunk-BCRWXTWX.js';
|
|
28
28
|
import '../chunk-PH2IYZHV.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { I as IOrchestrator, L as ExecutionContext, G as GraphTraverser, K as WorkflowResult } from '../types-
|
|
1
|
+
import { I as IOrchestrator, L as ExecutionContext, G as GraphTraverser, K as WorkflowResult } from '../types-Biip2gLh.js';
|
|
2
2
|
import '../errors.js';
|
|
3
3
|
import '../container.js';
|
|
4
4
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { DefaultOrchestrator } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
1
|
+
export { DefaultOrchestrator } from '../chunk-QA2WDZPV.js';
|
|
2
|
+
import '../chunk-26VTGQAF.js';
|
|
3
|
+
import '../chunk-L3MX5MTA.js';
|
|
4
|
+
import '../chunk-L46TQXCV.js';
|
|
5
5
|
import '../chunk-ZETQCNEF.js';
|
|
6
6
|
import '../chunk-BCRWXTWX.js';
|
|
7
7
|
//# sourceMappingURL=orchestrator.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { I as IOrchestrator, z as FlowcraftEvent, L as ExecutionContext, G as GraphTraverser, K as WorkflowResult } from '../../types-
|
|
1
|
+
import { I as IOrchestrator, z as FlowcraftEvent, L as ExecutionContext, G as GraphTraverser, K as WorkflowResult } from '../../types-Biip2gLh.js';
|
|
2
2
|
import '../../errors.js';
|
|
3
3
|
import '../../container.js';
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { I as IOrchestrator, L as ExecutionContext, G as GraphTraverser, K as WorkflowResult } from '../../types-
|
|
1
|
+
import { I as IOrchestrator, L as ExecutionContext, G as GraphTraverser, K as WorkflowResult } from '../../types-Biip2gLh.js';
|
|
2
2
|
import '../../errors.js';
|
|
3
3
|
import '../../container.js';
|
|
4
4
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { StepByStepOrchestrator } from '../../chunk-
|
|
2
|
-
import '../../chunk-
|
|
1
|
+
export { StepByStepOrchestrator } from '../../chunk-VZ4BRDBK.js';
|
|
2
|
+
import '../../chunk-26VTGQAF.js';
|
|
3
3
|
import '../../chunk-BCRWXTWX.js';
|
|
4
4
|
//# sourceMappingURL=step-by-step.js.map
|
|
5
5
|
//# sourceMappingURL=step-by-step.js.map
|