@bian-womp/spark-graph 0.3.88 → 0.3.89

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