@bian-womp/spark-graph 0.3.45 → 0.3.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/lib/cjs/index.cjs +14 -15
  2. package/lib/cjs/index.cjs.map +1 -1
  3. package/lib/cjs/src/core/types.d.ts +2 -1
  4. package/lib/cjs/src/core/types.d.ts.map +1 -1
  5. package/lib/cjs/src/runtime/GraphRuntime.d.ts +1 -1
  6. package/lib/cjs/src/runtime/GraphRuntime.d.ts.map +1 -1
  7. package/lib/cjs/src/runtime/components/NodeExecutor.d.ts.map +1 -1
  8. package/lib/cjs/src/runtime/components/RunContextManager.d.ts +2 -1
  9. package/lib/cjs/src/runtime/components/RunContextManager.d.ts.map +1 -1
  10. package/lib/esm/index.js +14 -15
  11. package/lib/esm/index.js.map +1 -1
  12. package/lib/esm/src/core/types.d.ts +2 -1
  13. package/lib/esm/src/core/types.d.ts.map +1 -1
  14. package/lib/esm/src/runtime/GraphRuntime.d.ts +1 -1
  15. package/lib/esm/src/runtime/GraphRuntime.d.ts.map +1 -1
  16. package/lib/esm/src/runtime/components/NodeExecutor.d.ts.map +1 -1
  17. package/lib/esm/src/runtime/components/RunContextManager.d.ts +2 -1
  18. package/lib/esm/src/runtime/components/RunContextManager.d.ts.map +1 -1
  19. package/lib/src/builder/GraphBuilder.d.ts +43 -0
  20. package/lib/src/builder/GraphBuilder.d.ts.map +1 -0
  21. package/lib/src/builder/GraphBuilder.js +284 -0
  22. package/lib/src/builder/GraphBuilder.js.map +1 -0
  23. package/lib/src/builder/Registry.d.ts +93 -0
  24. package/lib/src/builder/Registry.d.ts.map +1 -0
  25. package/lib/src/builder/Registry.js +393 -0
  26. package/lib/src/builder/Registry.js.map +1 -0
  27. package/lib/src/core/categories.d.ts +22 -0
  28. package/lib/src/core/categories.d.ts.map +1 -0
  29. package/lib/src/core/categories.js +2 -0
  30. package/lib/src/core/categories.js.map +1 -0
  31. package/lib/src/core/order.d.ts +7 -0
  32. package/lib/src/core/order.d.ts.map +1 -0
  33. package/lib/src/core/order.js +66 -0
  34. package/lib/src/core/order.js.map +1 -0
  35. package/lib/src/core/type-utils.d.ts +29 -0
  36. package/lib/src/core/type-utils.d.ts.map +1 -0
  37. package/lib/src/core/type-utils.js +97 -0
  38. package/lib/src/core/type-utils.js.map +1 -0
  39. package/lib/src/core/types.d.ts +92 -0
  40. package/lib/src/core/types.d.ts.map +1 -0
  41. package/lib/src/core/types.js +2 -0
  42. package/lib/src/core/types.js.map +1 -0
  43. package/lib/src/examples/arrays.d.ts +5 -0
  44. package/lib/src/examples/arrays.d.ts.map +1 -0
  45. package/lib/src/examples/arrays.js +49 -0
  46. package/lib/src/examples/arrays.js.map +1 -0
  47. package/lib/src/examples/async.d.ts +5 -0
  48. package/lib/src/examples/async.d.ts.map +1 -0
  49. package/lib/src/examples/async.js +91 -0
  50. package/lib/src/examples/async.js.map +1 -0
  51. package/lib/src/examples/progress.d.ts +5 -0
  52. package/lib/src/examples/progress.d.ts.map +1 -0
  53. package/lib/src/examples/progress.js +51 -0
  54. package/lib/src/examples/progress.js.map +1 -0
  55. package/lib/src/examples/run.d.ts +2 -0
  56. package/lib/src/examples/run.d.ts.map +1 -0
  57. package/lib/src/examples/run.js +32 -0
  58. package/lib/src/examples/run.js.map +1 -0
  59. package/lib/src/examples/runMode.d.ts +2 -0
  60. package/lib/src/examples/runMode.d.ts.map +1 -0
  61. package/lib/src/examples/runMode.js +223 -0
  62. package/lib/src/examples/runMode.js.map +1 -0
  63. package/lib/src/examples/shared.d.ts +5 -0
  64. package/lib/src/examples/shared.d.ts.map +1 -0
  65. package/lib/src/examples/shared.js +49 -0
  66. package/lib/src/examples/shared.js.map +1 -0
  67. package/lib/src/examples/simple.d.ts +5 -0
  68. package/lib/src/examples/simple.d.ts.map +1 -0
  69. package/lib/src/examples/simple.js +79 -0
  70. package/lib/src/examples/simple.js.map +1 -0
  71. package/lib/src/examples/snapshot.d.ts +4 -0
  72. package/lib/src/examples/snapshot.d.ts.map +1 -0
  73. package/lib/src/examples/snapshot.js +58 -0
  74. package/lib/src/examples/snapshot.js.map +1 -0
  75. package/lib/src/examples/validation.d.ts +5 -0
  76. package/lib/src/examples/validation.d.ts.map +1 -0
  77. package/lib/src/examples/validation.js +105 -0
  78. package/lib/src/examples/validation.js.map +1 -0
  79. package/lib/src/index.d.ts +27 -0
  80. package/lib/src/index.d.ts.map +1 -0
  81. package/lib/src/index.js +19 -0
  82. package/lib/src/index.js.map +1 -0
  83. package/lib/src/misc/base.d.ts +51 -0
  84. package/lib/src/misc/base.d.ts.map +1 -0
  85. package/lib/src/misc/base.js +1122 -0
  86. package/lib/src/misc/base.js.map +1 -0
  87. package/lib/src/misc/utils/json.d.ts +22 -0
  88. package/lib/src/misc/utils/json.d.ts.map +1 -0
  89. package/lib/src/misc/utils/json.js +239 -0
  90. package/lib/src/misc/utils/json.js.map +1 -0
  91. package/lib/src/misc/utils/merge.d.ts +51 -0
  92. package/lib/src/misc/utils/merge.d.ts.map +1 -0
  93. package/lib/src/misc/utils/merge.js +600 -0
  94. package/lib/src/misc/utils/merge.js.map +1 -0
  95. package/lib/src/plugins/composite.d.ts +22 -0
  96. package/lib/src/plugins/composite.d.ts.map +1 -0
  97. package/lib/src/plugins/composite.js +59 -0
  98. package/lib/src/plugins/composite.js.map +1 -0
  99. package/lib/src/plugins/compute.d.ts +5 -0
  100. package/lib/src/plugins/compute.d.ts.map +1 -0
  101. package/lib/src/plugins/compute.js +39 -0
  102. package/lib/src/plugins/compute.js.map +1 -0
  103. package/lib/src/runtime/Engine.d.ts +28 -0
  104. package/lib/src/runtime/Engine.d.ts.map +1 -0
  105. package/lib/src/runtime/Engine.js +2 -0
  106. package/lib/src/runtime/Engine.js.map +1 -0
  107. package/lib/src/runtime/GraphLifecycleApi.d.ts +46 -0
  108. package/lib/src/runtime/GraphLifecycleApi.d.ts.map +1 -0
  109. package/lib/src/runtime/GraphLifecycleApi.js +2 -0
  110. package/lib/src/runtime/GraphLifecycleApi.js.map +1 -0
  111. package/lib/src/runtime/GraphRuntime.d.ts +94 -0
  112. package/lib/src/runtime/GraphRuntime.d.ts.map +1 -0
  113. package/lib/src/runtime/GraphRuntime.js +729 -0
  114. package/lib/src/runtime/GraphRuntime.js.map +1 -0
  115. package/lib/src/runtime/LocalEngine.d.ts +45 -0
  116. package/lib/src/runtime/LocalEngine.d.ts.map +1 -0
  117. package/lib/src/runtime/LocalEngine.js +89 -0
  118. package/lib/src/runtime/LocalEngine.js.map +1 -0
  119. package/lib/src/runtime/components/EdgePropagator.d.ts +101 -0
  120. package/lib/src/runtime/components/EdgePropagator.d.ts.map +1 -0
  121. package/lib/src/runtime/components/EdgePropagator.js +372 -0
  122. package/lib/src/runtime/components/EdgePropagator.js.map +1 -0
  123. package/lib/src/runtime/components/EventEmitter.d.ts +12 -0
  124. package/lib/src/runtime/components/EventEmitter.d.ts.map +1 -0
  125. package/lib/src/runtime/components/EventEmitter.js +33 -0
  126. package/lib/src/runtime/components/EventEmitter.js.map +1 -0
  127. package/lib/src/runtime/components/Graph.d.ts +211 -0
  128. package/lib/src/runtime/components/Graph.d.ts.map +1 -0
  129. package/lib/src/runtime/components/Graph.js +468 -0
  130. package/lib/src/runtime/components/Graph.js.map +1 -0
  131. package/lib/src/runtime/components/HandleResolver.d.ts +36 -0
  132. package/lib/src/runtime/components/HandleResolver.d.ts.map +1 -0
  133. package/lib/src/runtime/components/HandleResolver.js +231 -0
  134. package/lib/src/runtime/components/HandleResolver.js.map +1 -0
  135. package/lib/src/runtime/components/NodeExecutor.d.ts +110 -0
  136. package/lib/src/runtime/components/NodeExecutor.d.ts.map +1 -0
  137. package/lib/src/runtime/components/NodeExecutor.js +659 -0
  138. package/lib/src/runtime/components/NodeExecutor.js.map +1 -0
  139. package/lib/src/runtime/components/RunContextManager.d.ts +86 -0
  140. package/lib/src/runtime/components/RunContextManager.d.ts.map +1 -0
  141. package/lib/src/runtime/components/RunContextManager.js +302 -0
  142. package/lib/src/runtime/components/RunContextManager.js.map +1 -0
  143. package/lib/src/runtime/components/RuntimeValidatorManager.d.ts +31 -0
  144. package/lib/src/runtime/components/RuntimeValidatorManager.d.ts.map +1 -0
  145. package/lib/src/runtime/components/RuntimeValidatorManager.js +55 -0
  146. package/lib/src/runtime/components/RuntimeValidatorManager.js.map +1 -0
  147. package/lib/src/runtime/components/graph-utils.d.ts +33 -0
  148. package/lib/src/runtime/components/graph-utils.d.ts.map +1 -0
  149. package/lib/src/runtime/components/graph-utils.js +292 -0
  150. package/lib/src/runtime/components/graph-utils.js.map +1 -0
  151. package/lib/src/runtime/components/interfaces.d.ts +54 -0
  152. package/lib/src/runtime/components/interfaces.d.ts.map +1 -0
  153. package/lib/src/runtime/components/interfaces.js +2 -0
  154. package/lib/src/runtime/components/interfaces.js.map +1 -0
  155. package/lib/src/runtime/components/types.d.ts +55 -0
  156. package/lib/src/runtime/components/types.d.ts.map +1 -0
  157. package/lib/src/runtime/components/types.js +2 -0
  158. package/lib/src/runtime/components/types.js.map +1 -0
  159. package/lib/src/runtime/utils.d.ts +67 -0
  160. package/lib/src/runtime/utils.d.ts.map +1 -0
  161. package/lib/src/runtime/utils.js +137 -0
  162. package/lib/src/runtime/utils.js.map +1 -0
  163. package/package.json +2 -2
@@ -0,0 +1,231 @@
1
+ import { LOG_LEVEL_VALUES } from "@bian-womp/spark-protocol";
2
+ import { unwrapMaybePromise } from "../utils";
3
+ import { buildEdgeConverters, extractEdgeTypes } from "./graph-utils";
4
+ import { mergeInputHandleDescriptors } from "../../core/type-utils";
5
+ /**
6
+ * HandleResolver component - manages dynamic handle resolution
7
+ */
8
+ export class HandleResolver {
9
+ constructor(graph, eventEmitter, runContextManager, edgePropagator, registry, environment) {
10
+ this.graph = graph;
11
+ this.eventEmitter = eventEmitter;
12
+ this.runContextManager = runContextManager;
13
+ this.edgePropagator = edgePropagator;
14
+ this.registry = registry;
15
+ this.recomputeTokenByNode = new Map();
16
+ this.environment = {};
17
+ this.pendingResolutions = new Map();
18
+ this.isRecomputing = new Map();
19
+ this.environment = environment ?? {};
20
+ }
21
+ setRegistry(registry) {
22
+ this.registry = registry;
23
+ }
24
+ setEnvironment(environment) {
25
+ this.environment = environment;
26
+ }
27
+ /**
28
+ * Get the promise for pending handle resolution, or null if none
29
+ */
30
+ getPendingResolution(nodeId) {
31
+ return this.pendingResolutions.get(nodeId) || null;
32
+ }
33
+ /**
34
+ * Schedule async recomputation of handles for a node
35
+ */
36
+ scheduleRecomputeHandles(nodeId) {
37
+ // If no registry or node not found, skip
38
+ if (!this.registry)
39
+ return;
40
+ const node = this.graph.getNode(nodeId);
41
+ if (!node)
42
+ return;
43
+ // If already recomputing, increment token to mark that a new recompute is needed
44
+ // but don't schedule another concurrent execution
45
+ if (this.isRecomputing.get(nodeId)) {
46
+ const currentToken = this.recomputeTokenByNode.get(nodeId) ?? 0;
47
+ this.recomputeTokenByNode.set(nodeId, currentToken + 1);
48
+ return;
49
+ }
50
+ // Track resolver start for all active run-contexts
51
+ const activeRunContextIds = this.graph.getNodeRunContextIds(nodeId);
52
+ if (activeRunContextIds.size > 0) {
53
+ for (const runContextId of activeRunContextIds) {
54
+ this.runContextManager.startHandleResolution(runContextId, nodeId);
55
+ }
56
+ }
57
+ // Mark as recomputing
58
+ this.isRecomputing.set(nodeId, true);
59
+ // Capture initial token before starting (will be incremented in recomputeHandlesForNode)
60
+ const initialToken = this.recomputeTokenByNode.get(nodeId) ?? 0;
61
+ // Create and track the resolution promise
62
+ const resolutionPromise = new Promise((resolve) => {
63
+ setTimeout(async () => {
64
+ await this.recomputeHandlesForNode(nodeId, activeRunContextIds);
65
+ this.pendingResolutions.delete(nodeId);
66
+ this.isRecomputing.delete(nodeId);
67
+ // Check if a new recompute was requested while we were running
68
+ // (token was incremented by another scheduleRecomputeHandles call)
69
+ const finalToken = this.recomputeTokenByNode.get(nodeId) ?? 0;
70
+ // After recomputeHandlesForNode, token should be initialToken + 1
71
+ // If finalToken > initialToken + 1, a new recompute was requested
72
+ if (finalToken > initialToken + 1) {
73
+ // A new recompute was requested, schedule it now
74
+ this.scheduleRecomputeHandles(nodeId);
75
+ }
76
+ resolve();
77
+ }, 0);
78
+ });
79
+ this.pendingResolutions.set(nodeId, resolutionPromise);
80
+ }
81
+ // Update resolved handles for a single node and refresh edge converters/types that touch it
82
+ updateNodeHandles(nodeId, handles) {
83
+ if (!this.registry)
84
+ return;
85
+ const node = this.graph.getNode(nodeId);
86
+ if (!node)
87
+ return;
88
+ this.graph.setResolvedHandles(nodeId, handles);
89
+ const resolvedByNode = new Map();
90
+ this.graph.forEachResolvedHandles((handles, nodeId) => {
91
+ resolvedByNode.set(nodeId, handles);
92
+ });
93
+ const registry = this.registry; // Store for use in callback
94
+ this.graph.forEachEdge((e, _index) => {
95
+ // Only update edges that touch the changed node
96
+ const touchesChangedNode = e.source.nodeId === nodeId || e.target.nodeId === nodeId;
97
+ if (!touchesChangedNode)
98
+ return;
99
+ const srcNode = this.graph.getNode(e.source.nodeId);
100
+ const dstNode = this.graph.getNode(e.target.nodeId);
101
+ const oldDstDeclared = e.dstDeclared;
102
+ // Extract edge types using shared helper (handles both source and target updates)
103
+ const { srcDeclared, dstDeclared } = extractEdgeTypes(e.source.nodeId, e.source.handle, e.target.nodeId, e.target.handle, resolvedByNode);
104
+ // Update converters
105
+ const conv = buildEdgeConverters(srcDeclared, dstDeclared, registry, `updateNodeHandles: ${srcNode?.typeId || ""}.${e.source.nodeId}.${e.source.handle} -> ${dstNode?.typeId || ""}.${e.target.nodeId}.${e.target.handle}`);
106
+ // Update edge properties via Graph
107
+ this.graph.updateEdgeProperties(e.id, {
108
+ dstDeclared,
109
+ srcUnionTypes: Array.isArray(srcDeclared)
110
+ ? [...srcDeclared]
111
+ : undefined,
112
+ convert: conv.convert,
113
+ convertAsync: conv.convertAsync,
114
+ });
115
+ if (e.target.nodeId === nodeId &&
116
+ oldDstDeclared === undefined &&
117
+ dstDeclared !== undefined) {
118
+ const srcNode = this.graph.getNode(e.source.nodeId);
119
+ if (srcNode) {
120
+ const srcValue = srcNode.outputs[e.source.handle];
121
+ if (srcValue !== undefined) {
122
+ const activeRunContextIds = this.graph.getNodeRunContextIds(e.source.nodeId);
123
+ this.edgePropagator.propagate(e.source.nodeId, e.source.handle, srcValue, activeRunContextIds.size > 0 ? activeRunContextIds : undefined);
124
+ }
125
+ }
126
+ }
127
+ });
128
+ this.edgePropagator.invalidateDownstream(nodeId);
129
+ }
130
+ /**
131
+ * Recompute dynamic handles for a single node using current inputs/environment
132
+ */
133
+ async recomputeHandlesForNode(nodeId, activeRunContextIds) {
134
+ try {
135
+ if (!this.registry)
136
+ return;
137
+ const node = this.graph.getNode(nodeId);
138
+ if (!node)
139
+ return;
140
+ const desc = this.registry.nodes.get(node.typeId);
141
+ if (!desc)
142
+ return;
143
+ const resolveHandles = desc.resolveHandles;
144
+ if (typeof resolveHandles !== "function")
145
+ return;
146
+ const token = (this.recomputeTokenByNode.get(nodeId) ?? 0) + 1;
147
+ this.recomputeTokenByNode.set(nodeId, token);
148
+ // Log resolveHandles-start
149
+ const nodeLogLevel = node.logLevel ?? "info";
150
+ const nodeLogValue = LOG_LEVEL_VALUES[nodeLogLevel] ?? 1;
151
+ const shouldLog = nodeLogValue <= LOG_LEVEL_VALUES.debug && nodeLogLevel !== "silent";
152
+ if (shouldLog) {
153
+ console.info(`[node:${nodeId}:${node.typeId}] resolveHandles-start`);
154
+ }
155
+ let resolved;
156
+ try {
157
+ const res = resolveHandles({
158
+ nodeId,
159
+ environment: this.environment || {},
160
+ params: node.params,
161
+ inputs: node.inputs || {},
162
+ });
163
+ resolved = await unwrapMaybePromise(res);
164
+ }
165
+ catch {
166
+ // Log resolveHandles-done even on error
167
+ if (shouldLog) {
168
+ console.info(`[node:${nodeId}:${node.typeId}] resolveHandles-done (error)`);
169
+ }
170
+ return;
171
+ }
172
+ // Log resolveHandles-done
173
+ if (shouldLog) {
174
+ console.info(`[node:${nodeId}:${node.typeId}] resolveHandles-done`);
175
+ }
176
+ // If a newer recompute was scheduled, drop this result
177
+ if ((this.recomputeTokenByNode.get(nodeId) ?? 0) !== token)
178
+ return;
179
+ const before = this.graph.getResolvedHandles(nodeId);
180
+ // Re-fetch desc to ensure we have the latest (node might have been updated)
181
+ const nodeDesc = this.registry.nodes.get(node.typeId);
182
+ if (!nodeDesc)
183
+ return;
184
+ // Merge inputs properly, handling metadata
185
+ const inputs = {};
186
+ // First, add all static handles
187
+ if (nodeDesc.inputs) {
188
+ for (const [handle, staticDesc] of Object.entries(nodeDesc.inputs)) {
189
+ inputs[handle] = staticDesc;
190
+ }
191
+ }
192
+ // Then, merge dynamic handles
193
+ if (resolved?.inputs) {
194
+ for (const [handle, dynamicDesc] of Object.entries(resolved.inputs)) {
195
+ const staticDesc = nodeDesc.inputs?.[handle];
196
+ const merged = mergeInputHandleDescriptors(staticDesc, dynamicDesc);
197
+ if (merged) {
198
+ inputs[handle] = merged;
199
+ }
200
+ }
201
+ }
202
+ const outputs = { ...nodeDesc.outputs, ...resolved?.outputs };
203
+ const inputDefaults = {
204
+ ...nodeDesc.inputDefaults,
205
+ ...resolved?.inputDefaults,
206
+ };
207
+ const after = { inputs, outputs, inputDefaults };
208
+ // If we have prior handles, skip update when unchanged; for new nodes (no before),
209
+ // always write the resolved handles.
210
+ if (before && JSON.stringify(before) === JSON.stringify(after))
211
+ return;
212
+ // Call GraphRuntime's updateNodeHandles to update edges and re-propagate values
213
+ // Note: updateNodeHandles will set the resolved handles internally
214
+ this.updateNodeHandles(nodeId, after);
215
+ // Notify graph updated with the changed handles
216
+ this.eventEmitter.emit("invalidate", {
217
+ reason: "graph-updated",
218
+ resolvedHandles: { [nodeId]: after },
219
+ });
220
+ }
221
+ finally {
222
+ // Track resolver finish after successful completion
223
+ if (activeRunContextIds && activeRunContextIds.size > 0) {
224
+ for (const runContextId of activeRunContextIds) {
225
+ this.runContextManager.finishHandleResolution(runContextId, nodeId);
226
+ }
227
+ }
228
+ }
229
+ }
230
+ }
231
+ //# sourceMappingURL=HandleResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HandleResolver.js","sourceRoot":"","sources":["../../../../src/runtime/components/HandleResolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,110 @@
1
+ import type { ExecutionContext } from "../../core/types";
2
+ import type { RuntimeNode, RunContextId } from "./types";
3
+ import type { Graph } from "./Graph";
4
+ import type { EventEmitter } from "./EventEmitter";
5
+ import type { RunContextManager } from "./RunContextManager";
6
+ import { IEdgePropagator, INodeExecutor, IRuntime, IHandleResolver } from "./interfaces";
7
+ /**
8
+ * NodeExecutor component - handles node execution scheduling and lifecycle
9
+ */
10
+ export declare class NodeExecutor implements INodeExecutor {
11
+ private readonly graph;
12
+ private readonly eventEmitter;
13
+ private readonly runContextManager;
14
+ private readonly handleResolver;
15
+ private readonly edgePropagator;
16
+ private readonly runtime;
17
+ private environment;
18
+ constructor(graph: Graph, eventEmitter: EventEmitter, runContextManager: RunContextManager, handleResolver: IHandleResolver, edgePropagator: IEdgePropagator, runtime: IRuntime, environment?: Record<string, unknown>);
19
+ setEnvironment(environment: Record<string, unknown>): void;
20
+ /**
21
+ * Compute effective inputs for a node by merging real inputs with defaults
22
+ */
23
+ getEffectiveInputs(nodeId: string): Record<string, unknown>;
24
+ /**
25
+ * Create an execution context for a node
26
+ */
27
+ createExecutionContext(nodeId: string, node: RuntimeNode<any>, inputs: Record<string, unknown>, runId: string, abortSignal: AbortSignal, runContextIds?: Set<RunContextId>, options?: {
28
+ emitHandler?: (handle: string, value: unknown) => void;
29
+ reportProgress?: (p: number) => void;
30
+ }): ExecutionContext<any>;
31
+ /**
32
+ * Internal method for executing inputs changed (also used by GraphRuntime)
33
+ */
34
+ execute(nodeId: string, runContextIds?: Set<RunContextId>, canSkipHandleResolution?: boolean): void;
35
+ /**
36
+ * Check if execution should be debounced
37
+ */
38
+ private shouldDebounce;
39
+ /**
40
+ * Handle debounced scheduling by replacing the latest queued item
41
+ */
42
+ private handleDebouncedSchedule;
43
+ /**
44
+ * Prepare execution plan with all necessary information
45
+ */
46
+ private prepareExecutionPlan;
47
+ /**
48
+ * Route execution to appropriate concurrency handler
49
+ */
50
+ private routeToConcurrencyHandler;
51
+ /**
52
+ * Handle drop mode - drop execution if node is already running, otherwise start run
53
+ */
54
+ private handleDropMode;
55
+ /**
56
+ * Handle queue mode - add to queue and process sequentially
57
+ */
58
+ private handleQueueMode;
59
+ /**
60
+ * Process queued executions sequentially
61
+ */
62
+ private processQueue;
63
+ /**
64
+ * Start a node execution run
65
+ */
66
+ private startRun;
67
+ /**
68
+ * Track run-context start for pending nodes
69
+ */
70
+ private trackRunContextStart;
71
+ /**
72
+ * Decrement pendingQueued counters for plans' run-contexts.
73
+ * Used when queued work is being started, dropped, or cancelled.
74
+ */
75
+ private decrementQueuedForPlans;
76
+ /**
77
+ * Create execution controller and update node stats
78
+ */
79
+ private createExecutionController;
80
+ /**
81
+ * Apply concurrency mode (switch mode aborts other controllers)
82
+ */
83
+ private applyConcurrencyMode;
84
+ /**
85
+ * Setup timeout for execution if configured
86
+ */
87
+ private setupTimeout;
88
+ /**
89
+ * Create emit and progress handlers for execution context
90
+ */
91
+ private createEmitAndProgressHandlers;
92
+ /**
93
+ * Execute the node with retry logic and cleanup
94
+ */
95
+ private executeNode;
96
+ /**
97
+ * Cleanup after execution completes
98
+ */
99
+ private cleanupExecution;
100
+ /**
101
+ * Cancel all active runs for a node
102
+ */
103
+ cancelNodeActiveRuns(node: RuntimeNode, reason: "snapshot" | "node-deleted" | "user-cancelled"): void;
104
+ /**
105
+ * Cancel runs for multiple nodes.
106
+ * Can be called for snapshot/undo/redo operations or user-initiated cancellation.
107
+ */
108
+ cancelNodeRuns(nodeIds: string[], reason?: "snapshot" | "user-cancelled"): void;
109
+ }
110
+ //# sourceMappingURL=NodeExecutor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeExecutor.d.ts","sourceRoot":"","sources":["../../../../src/runtime/components/NodeExecutor.ts"],"names":[],"mappings":"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"}