@bian-womp/spark-graph 0.3.89 → 0.3.91

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 (167) hide show
  1. package/lib/cjs/index.cjs +9 -5
  2. package/lib/cjs/index.cjs.map +1 -1
  3. package/lib/cjs/src/runtime/GraphRuntime.d.ts.map +1 -1
  4. package/lib/cjs/src/runtime/components/HandleResolver.d.ts.map +1 -1
  5. package/lib/cjs/src/runtime/components/NodeExecutor.d.ts.map +1 -1
  6. package/lib/esm/index.js +9 -5
  7. package/lib/esm/index.js.map +1 -1
  8. package/lib/esm/src/runtime/GraphRuntime.d.ts.map +1 -1
  9. package/lib/esm/src/runtime/components/HandleResolver.d.ts.map +1 -1
  10. package/lib/esm/src/runtime/components/NodeExecutor.d.ts.map +1 -1
  11. package/package.json +2 -2
  12. package/lib/src/builder/GraphBuilder.d.ts +0 -43
  13. package/lib/src/builder/GraphBuilder.d.ts.map +0 -1
  14. package/lib/src/builder/GraphBuilder.js +0 -279
  15. package/lib/src/builder/GraphBuilder.js.map +0 -1
  16. package/lib/src/builder/Registry.d.ts +0 -87
  17. package/lib/src/builder/Registry.d.ts.map +0 -1
  18. package/lib/src/builder/Registry.js +0 -390
  19. package/lib/src/builder/Registry.js.map +0 -1
  20. package/lib/src/core/categories.d.ts +0 -22
  21. package/lib/src/core/categories.d.ts.map +0 -1
  22. package/lib/src/core/categories.js +0 -2
  23. package/lib/src/core/categories.js.map +0 -1
  24. package/lib/src/core/order.d.ts +0 -7
  25. package/lib/src/core/order.d.ts.map +0 -1
  26. package/lib/src/core/order.js +0 -66
  27. package/lib/src/core/order.js.map +0 -1
  28. package/lib/src/core/type-utils.d.ts +0 -29
  29. package/lib/src/core/type-utils.d.ts.map +0 -1
  30. package/lib/src/core/type-utils.js +0 -92
  31. package/lib/src/core/type-utils.js.map +0 -1
  32. package/lib/src/core/types.d.ts +0 -95
  33. package/lib/src/core/types.d.ts.map +0 -1
  34. package/lib/src/core/types.js +0 -2
  35. package/lib/src/core/types.js.map +0 -1
  36. package/lib/src/examples/arrays.d.ts +0 -5
  37. package/lib/src/examples/arrays.d.ts.map +0 -1
  38. package/lib/src/examples/arrays.js +0 -49
  39. package/lib/src/examples/arrays.js.map +0 -1
  40. package/lib/src/examples/async.d.ts +0 -5
  41. package/lib/src/examples/async.d.ts.map +0 -1
  42. package/lib/src/examples/async.js +0 -91
  43. package/lib/src/examples/async.js.map +0 -1
  44. package/lib/src/examples/progress.d.ts +0 -5
  45. package/lib/src/examples/progress.d.ts.map +0 -1
  46. package/lib/src/examples/progress.js +0 -51
  47. package/lib/src/examples/progress.js.map +0 -1
  48. package/lib/src/examples/run.d.ts +0 -2
  49. package/lib/src/examples/run.d.ts.map +0 -1
  50. package/lib/src/examples/run.js +0 -32
  51. package/lib/src/examples/run.js.map +0 -1
  52. package/lib/src/examples/runMode.d.ts +0 -2
  53. package/lib/src/examples/runMode.d.ts.map +0 -1
  54. package/lib/src/examples/runMode.js +0 -223
  55. package/lib/src/examples/runMode.js.map +0 -1
  56. package/lib/src/examples/shared.d.ts +0 -5
  57. package/lib/src/examples/shared.d.ts.map +0 -1
  58. package/lib/src/examples/shared.js +0 -47
  59. package/lib/src/examples/shared.js.map +0 -1
  60. package/lib/src/examples/simple.d.ts +0 -5
  61. package/lib/src/examples/simple.d.ts.map +0 -1
  62. package/lib/src/examples/simple.js +0 -79
  63. package/lib/src/examples/simple.js.map +0 -1
  64. package/lib/src/examples/snapshot.d.ts +0 -4
  65. package/lib/src/examples/snapshot.d.ts.map +0 -1
  66. package/lib/src/examples/snapshot.js +0 -58
  67. package/lib/src/examples/snapshot.js.map +0 -1
  68. package/lib/src/examples/validation.d.ts +0 -5
  69. package/lib/src/examples/validation.d.ts.map +0 -1
  70. package/lib/src/examples/validation.js +0 -105
  71. package/lib/src/examples/validation.js.map +0 -1
  72. package/lib/src/index.d.ts +0 -27
  73. package/lib/src/index.d.ts.map +0 -1
  74. package/lib/src/index.js +0 -19
  75. package/lib/src/index.js.map +0 -1
  76. package/lib/src/misc/base.d.ts +0 -51
  77. package/lib/src/misc/base.d.ts.map +0 -1
  78. package/lib/src/misc/base.js +0 -1091
  79. package/lib/src/misc/base.js.map +0 -1
  80. package/lib/src/misc/utils/LevelLogger.d.ts +0 -150
  81. package/lib/src/misc/utils/LevelLogger.d.ts.map +0 -1
  82. package/lib/src/misc/utils/LevelLogger.js +0 -420
  83. package/lib/src/misc/utils/LevelLogger.js.map +0 -1
  84. package/lib/src/misc/utils/LevelLogger.test.d.ts +0 -2
  85. package/lib/src/misc/utils/LevelLogger.test.d.ts.map +0 -1
  86. package/lib/src/misc/utils/LevelLogger.test.js +0 -283
  87. package/lib/src/misc/utils/LevelLogger.test.js.map +0 -1
  88. package/lib/src/misc/utils/json.d.ts +0 -34
  89. package/lib/src/misc/utils/json.d.ts.map +0 -1
  90. package/lib/src/misc/utils/json.js +0 -471
  91. package/lib/src/misc/utils/json.js.map +0 -1
  92. package/lib/src/misc/utils/merge.d.ts +0 -51
  93. package/lib/src/misc/utils/merge.d.ts.map +0 -1
  94. package/lib/src/misc/utils/merge.js +0 -591
  95. package/lib/src/misc/utils/merge.js.map +0 -1
  96. package/lib/src/misc/utils/test-logger-output.d.ts +0 -7
  97. package/lib/src/misc/utils/test-logger-output.d.ts.map +0 -1
  98. package/lib/src/misc/utils/test-logger-output.js +0 -48
  99. package/lib/src/misc/utils/test-logger-output.js.map +0 -1
  100. package/lib/src/plugins/composite.d.ts +0 -22
  101. package/lib/src/plugins/composite.d.ts.map +0 -1
  102. package/lib/src/plugins/composite.js +0 -59
  103. package/lib/src/plugins/composite.js.map +0 -1
  104. package/lib/src/plugins/compute.d.ts +0 -5
  105. package/lib/src/plugins/compute.d.ts.map +0 -1
  106. package/lib/src/plugins/compute.js +0 -39
  107. package/lib/src/plugins/compute.js.map +0 -1
  108. package/lib/src/runtime/Engine.d.ts +0 -26
  109. package/lib/src/runtime/Engine.d.ts.map +0 -1
  110. package/lib/src/runtime/Engine.js +0 -2
  111. package/lib/src/runtime/Engine.js.map +0 -1
  112. package/lib/src/runtime/GraphLifecycleApi.d.ts +0 -46
  113. package/lib/src/runtime/GraphLifecycleApi.d.ts.map +0 -1
  114. package/lib/src/runtime/GraphLifecycleApi.js +0 -2
  115. package/lib/src/runtime/GraphLifecycleApi.js.map +0 -1
  116. package/lib/src/runtime/GraphRuntime.d.ts +0 -111
  117. package/lib/src/runtime/GraphRuntime.d.ts.map +0 -1
  118. package/lib/src/runtime/GraphRuntime.js +0 -791
  119. package/lib/src/runtime/GraphRuntime.js.map +0 -1
  120. package/lib/src/runtime/LocalEngine.d.ts +0 -41
  121. package/lib/src/runtime/LocalEngine.d.ts.map +0 -1
  122. package/lib/src/runtime/LocalEngine.js +0 -89
  123. package/lib/src/runtime/LocalEngine.js.map +0 -1
  124. package/lib/src/runtime/components/EdgePropagator.d.ts +0 -93
  125. package/lib/src/runtime/components/EdgePropagator.d.ts.map +0 -1
  126. package/lib/src/runtime/components/EdgePropagator.js +0 -378
  127. package/lib/src/runtime/components/EdgePropagator.js.map +0 -1
  128. package/lib/src/runtime/components/EventEmitter.d.ts +0 -12
  129. package/lib/src/runtime/components/EventEmitter.d.ts.map +0 -1
  130. package/lib/src/runtime/components/EventEmitter.js +0 -33
  131. package/lib/src/runtime/components/EventEmitter.js.map +0 -1
  132. package/lib/src/runtime/components/Graph.d.ts +0 -208
  133. package/lib/src/runtime/components/Graph.d.ts.map +0 -1
  134. package/lib/src/runtime/components/Graph.js +0 -452
  135. package/lib/src/runtime/components/Graph.js.map +0 -1
  136. package/lib/src/runtime/components/HandleResolver.d.ts +0 -36
  137. package/lib/src/runtime/components/HandleResolver.d.ts.map +0 -1
  138. package/lib/src/runtime/components/HandleResolver.js +0 -229
  139. package/lib/src/runtime/components/HandleResolver.js.map +0 -1
  140. package/lib/src/runtime/components/NodeExecutor.d.ts +0 -116
  141. package/lib/src/runtime/components/NodeExecutor.d.ts.map +0 -1
  142. package/lib/src/runtime/components/NodeExecutor.js +0 -648
  143. package/lib/src/runtime/components/NodeExecutor.js.map +0 -1
  144. package/lib/src/runtime/components/RunContextManager.d.ts +0 -90
  145. package/lib/src/runtime/components/RunContextManager.d.ts.map +0 -1
  146. package/lib/src/runtime/components/RunContextManager.js +0 -329
  147. package/lib/src/runtime/components/RunContextManager.js.map +0 -1
  148. package/lib/src/runtime/components/RuntimeValidatorManager.d.ts +0 -31
  149. package/lib/src/runtime/components/RuntimeValidatorManager.d.ts.map +0 -1
  150. package/lib/src/runtime/components/RuntimeValidatorManager.js +0 -56
  151. package/lib/src/runtime/components/RuntimeValidatorManager.js.map +0 -1
  152. package/lib/src/runtime/components/graph-utils.d.ts +0 -33
  153. package/lib/src/runtime/components/graph-utils.d.ts.map +0 -1
  154. package/lib/src/runtime/components/graph-utils.js +0 -300
  155. package/lib/src/runtime/components/graph-utils.js.map +0 -1
  156. package/lib/src/runtime/components/interfaces.d.ts +0 -59
  157. package/lib/src/runtime/components/interfaces.d.ts.map +0 -1
  158. package/lib/src/runtime/components/interfaces.js +0 -2
  159. package/lib/src/runtime/components/interfaces.js.map +0 -1
  160. package/lib/src/runtime/components/types.d.ts +0 -57
  161. package/lib/src/runtime/components/types.d.ts.map +0 -1
  162. package/lib/src/runtime/components/types.js +0 -2
  163. package/lib/src/runtime/components/types.js.map +0 -1
  164. package/lib/src/runtime/utils.d.ts +0 -21
  165. package/lib/src/runtime/utils.d.ts.map +0 -1
  166. package/lib/src/runtime/utils.js +0 -41
  167. package/lib/src/runtime/utils.js.map +0 -1
@@ -1,378 +0,0 @@
1
- import { isTyped, unwrapTypeId } from "../../core/type-utils";
2
- import { formatNodeRef, valuesEqual } from "../utils";
3
- /**
4
- * EdgePropagator component - handles value propagation through edges
5
- */
6
- export class EdgePropagator {
7
- constructor(graph, eventEmitter, runContextManager, nodeExecutor, runtime) {
8
- this.graph = graph;
9
- this.eventEmitter = eventEmitter;
10
- this.runContextManager = runContextManager;
11
- this.nodeExecutor = nodeExecutor;
12
- this.runtime = runtime;
13
- this.arrayInputBuckets = new Map();
14
- }
15
- /**
16
- * Set source output value and emit event
17
- */
18
- setSourceOutput(srcNodeId, srcHandle, value) {
19
- if (!this.graph.hasNode(srcNodeId)) {
20
- // Node was removed (e.g., graph updated) but an async emit arrived late; ignore
21
- return false;
22
- }
23
- this.graph.updateNodeOutput(srcNodeId, srcHandle, value);
24
- return true;
25
- }
26
- /**
27
- * Find all outgoing edges from a source node handle
28
- */
29
- findOutgoingEdges(srcNodeId, srcHandle) {
30
- return this.graph.getEdgesBySource(srcNodeId, srcHandle);
31
- }
32
- /**
33
- * Propagate value to a single edge
34
- */
35
- propagateToEdge(edge, value, srcNodeId, runContextIds) {
36
- // Filter run-contexts
37
- const effectiveRunContexts = runContextIds && runContextIds.size > 0
38
- ? this.filterEffectiveRunContexts(edge, srcNodeId, runContextIds)
39
- : undefined;
40
- if (runContextIds && runContextIds.size > 0 && !(effectiveRunContexts && effectiveRunContexts.size > 0)) {
41
- return; // No valid run-contexts for this edge
42
- }
43
- // Validate union types
44
- if (!this.validateUnionType(edge, value, srcNodeId)) {
45
- return;
46
- }
47
- // Clone value per edge to isolate conversions
48
- let nextVal = structuredClone(value);
49
- // Apply conversion and propagate
50
- if (edge.convertAsync) {
51
- this.handleAsyncConversion(edge, nextVal, effectiveRunContexts);
52
- }
53
- else {
54
- this.handleSyncConversion(edge, nextVal, effectiveRunContexts);
55
- }
56
- }
57
- /**
58
- * Filter run-contexts to exclude cancelled nodes
59
- */
60
- filterEffectiveRunContexts(edge, srcNodeId, runContextIds) {
61
- const effectiveRunContexts = new Set();
62
- for (const id of runContextIds) {
63
- const ctx = this.runContextManager.getRunContext(id);
64
- if (!ctx)
65
- continue;
66
- if (ctx.cancelledNodes.has(srcNodeId))
67
- continue;
68
- if (ctx.cancelledNodes.has(edge.target.nodeId))
69
- continue;
70
- effectiveRunContexts.add(id);
71
- }
72
- return effectiveRunContexts.size > 0 ? effectiveRunContexts : undefined;
73
- }
74
- /**
75
- * Validate union type requirements
76
- */
77
- validateUnionType(edge, value, srcNodeId) {
78
- const isUnion = Array.isArray(edge.srcUnionTypes);
79
- const isTypedValue = isTyped(value);
80
- if (isUnion && !isTypedValue) {
81
- const sourceTypeId = this.graph.getNode(edge.source.nodeId)?.typeId;
82
- const targetTypeId = this.graph.getNode(edge.target.nodeId)?.typeId;
83
- const err = new Error(`Output ${srcNodeId}.${edge.source.handle} requires typed value for union output (allowed: ${edge.srcUnionTypes.join("|")})`);
84
- this.eventEmitter.emit("error", {
85
- kind: "edge-convert",
86
- edgeId: edge.id,
87
- source: { nodeId: edge.source.nodeId, handle: edge.source.handle },
88
- target: { nodeId: edge.target.nodeId, handle: edge.target.handle },
89
- sourceTypeId,
90
- targetTypeId,
91
- err,
92
- });
93
- return false;
94
- }
95
- return true;
96
- }
97
- /**
98
- * Handle synchronous conversion
99
- */
100
- handleSyncConversion(edge, value, effectiveRunContexts) {
101
- let convertedValue = value;
102
- if (edge.convert) {
103
- convertedValue = edge.convert(value);
104
- }
105
- else {
106
- const srcResolved = this.graph.getResolvedHandles(edge.source.nodeId);
107
- const dstResolved = this.graph.getResolvedHandles(edge.target.nodeId);
108
- const srcResolvedNode = srcResolved !== undefined;
109
- const dstResolvedNode = dstResolved !== undefined;
110
- const srcResolvedHandle = srcResolvedNode && srcResolved.outputs?.[edge.source.handle] !== undefined;
111
- const dstResolvedHandle = dstResolvedNode && dstResolved.inputs?.[edge.target.handle] !== undefined;
112
- const fromType = (Array.isArray(edge.srcUnionTypes) && edge.srcUnionTypes.length > 0
113
- ? edge.srcUnionTypes.join("|")
114
- : undefined) ??
115
- unwrapTypeId(value) ??
116
- (Array.isArray(edge.srcDeclared) ? edge.srcDeclared.join("|") : edge.srcDeclared) ??
117
- edge.typeId ??
118
- "unknown";
119
- const toType = Array.isArray(edge.dstDeclared) ? edge.dstDeclared.join("|") : (edge.dstDeclared ?? "unknown");
120
- console.warn(`No convert function for edge ${edge.id} [${formatNodeRef(this.graph, edge.source.nodeId)}.${edge.source.handle} -> ${formatNodeRef(this.graph, edge.target.nodeId)}.${edge.target.handle}] from:${fromType} to:${toType}`);
121
- console.warn(`Edge ${edge.id} unresolved-handle details: resolvedHandles:{srcNode:${srcResolvedNode},srcHandle:${srcResolvedHandle},dstNode:${dstResolvedNode},dstHandle:${dstResolvedHandle}}`);
122
- }
123
- this.applyToTarget(edge, convertedValue, effectiveRunContexts);
124
- }
125
- /**
126
- * Handle asynchronous conversion
127
- */
128
- handleAsyncConversion(edge, value, effectiveRunContexts) {
129
- if (!edge.convertAsync)
130
- return;
131
- // Track edge run-context IDs for pendingEdges tracking
132
- const edgeRunContextIds = effectiveRunContexts ? Array.from(effectiveRunContexts) : undefined;
133
- if (edgeRunContextIds) {
134
- for (const id of edgeRunContextIds) {
135
- this.runContextManager.startEdgeConversion(id, edge.id);
136
- }
137
- }
138
- const sourceTypeId = this.graph.getNode(edge.source.nodeId)?.typeId;
139
- const targetTypeId = this.graph.getNode(edge.target.nodeId)?.typeId;
140
- this.eventEmitter.emit("stats", {
141
- kind: "edge-start",
142
- edgeId: edge.id,
143
- typeId: edge.typeId,
144
- source: { nodeId: edge.source.nodeId, handle: edge.source.handle },
145
- target: { nodeId: edge.target.nodeId, handle: edge.target.handle },
146
- sourceTypeId,
147
- targetTypeId,
148
- });
149
- const controller = new AbortController();
150
- const startAt = Date.now();
151
- const currentStats = edge.stats;
152
- this.graph.updateEdgeStats(edge.id, {
153
- runs: currentStats.runs + 1,
154
- inFlight: true,
155
- progress: 0,
156
- });
157
- edge
158
- .convertAsync(value, controller.signal)
159
- .then((converted) => {
160
- if (!controller.signal.aborted) {
161
- this.applyToTarget(edge, converted, effectiveRunContexts);
162
- this.updateEdgeStatsOnSuccess(edge, startAt);
163
- }
164
- })
165
- .catch((err) => {
166
- if (controller.signal.aborted)
167
- return;
168
- this.handleEdgeConversionError(edge, err);
169
- })
170
- .finally(() => {
171
- this.finishEdgeConversion(edgeRunContextIds, edge.id);
172
- });
173
- }
174
- /**
175
- * Apply value to target node input
176
- */
177
- applyToTarget(edge, value, effectiveRunContexts) {
178
- const dstNode = this.graph.getNode(edge.target.nodeId);
179
- if (!dstNode)
180
- return;
181
- // Skip writing to unresolved handles
182
- if (edge.dstDeclared === undefined)
183
- return;
184
- // Handle array types
185
- const processedValue = this.processArrayInput(edge, value);
186
- // Check if value changed
187
- const prev = dstNode.inputs[edge.target.handle];
188
- const valueChanged = !valuesEqual(prev, processedValue);
189
- // Check if we should execute even if value is same:
190
- // 1. If node has rerunOnSameInput policy (from node params or registry)
191
- // 2. If input was set after last successful run (stale input detection)
192
- const registry = this.graph.getRegistry();
193
- const desc = registry?.nodes.get(dstNode.typeId);
194
- const nodeRerunPolicy = dstNode.policy?.rerunOnSameInput === true;
195
- const descRerunPolicy = desc?.policy?.rerunOnSameInput === true;
196
- const shouldRerunOnSameInput = nodeRerunPolicy || descRerunPolicy;
197
- const inputWasSetAfterLastRun = !dstNode.lastInputAt?.[edge.target.handle] ||
198
- !dstNode.lastSuccessAt ||
199
- dstNode.lastInputAt[edge.target.handle] > dstNode.lastSuccessAt;
200
- const shouldExecute = valueChanged || shouldRerunOnSameInput || inputWasSetAfterLastRun;
201
- if (!shouldExecute) {
202
- return; // No change and no reason to rerun
203
- }
204
- // Set input value
205
- if (valueChanged) {
206
- this.runtime.setTargetInput(edge, processedValue, "applyToTarget");
207
- }
208
- else {
209
- // Even if value didn't change, update timestamp if we're forcing execution
210
- const now = Date.now();
211
- this.graph.updateNodeLastInputAt(edge.target.nodeId, edge.target.handle, now);
212
- }
213
- // Schedule downstream execution
214
- this.executeDownstream(edge.target.nodeId, effectiveRunContexts);
215
- }
216
- /**
217
- * Process array input by merging values from all edges
218
- */
219
- processArrayInput(edge, value) {
220
- const dstIsArray = typeof edge.dstDeclared === "string" && edge.dstDeclared.endsWith("[]");
221
- if (!dstIsArray) {
222
- return value;
223
- }
224
- const toArray = (x) => (Array.isArray(x) ? x : x === undefined ? [] : [x]);
225
- let forNode = this.arrayInputBuckets.get(edge.target.nodeId);
226
- if (!forNode) {
227
- forNode = new Map();
228
- this.arrayInputBuckets.set(edge.target.nodeId, forNode);
229
- }
230
- let forHandle = forNode.get(edge.target.handle);
231
- if (!forHandle) {
232
- forHandle = new Map();
233
- forNode.set(edge.target.handle, forHandle);
234
- }
235
- forHandle.set(edge.id, toArray(value));
236
- // Merge all parts for this handle
237
- const targetEdges = this.graph.getEdgesByTarget(edge.target.nodeId, edge.target.handle);
238
- const merged = [];
239
- for (const ed of targetEdges) {
240
- const part = forHandle.get(ed.id);
241
- if (part && part.length)
242
- merged.push(...part);
243
- }
244
- return merged;
245
- }
246
- /**
247
- * Execute downstream if conditions are met
248
- */
249
- executeDownstream(targetNodeId, effectiveRunContexts) {
250
- // Determine if we should propagate
251
- const shouldPropagate = this.shouldPropagateExecution(effectiveRunContexts);
252
- if (shouldPropagate && this.graph.allInboundHaveValue(targetNodeId)) {
253
- this.nodeExecutor.execute(targetNodeId, {
254
- runContextIds: effectiveRunContexts,
255
- reason: "executeDownstream",
256
- });
257
- }
258
- }
259
- /**
260
- * Check if execution should propagate
261
- */
262
- shouldPropagateExecution(effectiveRunContexts) {
263
- if (!effectiveRunContexts) {
264
- // Without run-context IDs, only auto mode should schedule downstream execution.
265
- // In manual mode this path is used for value refresh/re-emits (e.g. handle updates),
266
- // and should not implicitly trigger node runs.
267
- return this.runtime.getRunMode() === "auto";
268
- }
269
- // Check propagate flag (only in run-context mode)
270
- for (const id of effectiveRunContexts) {
271
- const ctx = this.runContextManager.getRunContext(id);
272
- if (ctx && ctx.propagate) {
273
- return true;
274
- }
275
- }
276
- return false;
277
- }
278
- /**
279
- * Update edge stats on successful conversion
280
- */
281
- updateEdgeStatsOnSuccess(edge, startAt) {
282
- const duration = Date.now() - startAt;
283
- this.graph.updateEdgeStats(edge.id, {
284
- inFlight: false,
285
- lastDurationMs: duration,
286
- lastEndAt: Date.now(),
287
- lastError: undefined,
288
- });
289
- this.eventEmitter.emit("stats", {
290
- kind: "edge-done",
291
- edgeId: edge.id,
292
- typeId: edge.typeId,
293
- source: { nodeId: edge.source.nodeId, handle: edge.source.handle },
294
- target: { nodeId: edge.target.nodeId, handle: edge.target.handle },
295
- sourceTypeId: this.graph.getNode(edge.source.nodeId)?.typeId,
296
- targetTypeId: this.graph.getNode(edge.target.nodeId)?.typeId,
297
- durationMs: duration,
298
- });
299
- }
300
- /**
301
- * Handle edge conversion error
302
- */
303
- handleEdgeConversionError(edge, err) {
304
- this.graph.updateEdgeStats(edge.id, {
305
- inFlight: false,
306
- lastError: err,
307
- });
308
- this.eventEmitter.emit("error", {
309
- kind: "edge-convert",
310
- edgeId: edge.id,
311
- source: { nodeId: edge.source.nodeId, handle: edge.source.handle },
312
- target: { nodeId: edge.target.nodeId, handle: edge.target.handle },
313
- sourceTypeId: this.graph.getNode(edge.source.nodeId)?.typeId,
314
- targetTypeId: this.graph.getNode(edge.target.nodeId)?.typeId,
315
- err,
316
- });
317
- }
318
- /**
319
- * Finish edge conversion and decrement pending edges
320
- */
321
- finishEdgeConversion(edgeRunContextIds, edgeId) {
322
- if (!edgeRunContextIds)
323
- return;
324
- for (const id of edgeRunContextIds) {
325
- this.runContextManager.finishEdgeConversion(id, edgeId);
326
- }
327
- }
328
- /**
329
- * Propagate value through edges
330
- * @param runContextIds - Optional set of run-context IDs. If provided, propagation is run-context aware.
331
- * If undefined or empty, behaves like auto mode (always propagates values and execution).
332
- */
333
- propagate(srcNodeId, srcHandle, value, runContextIds) {
334
- // Set source output
335
- if (!this.setSourceOutput(srcNodeId, srcHandle, value)) {
336
- return; // Node was removed
337
- }
338
- // Find outgoing edges
339
- const outEdges = this.findOutgoingEdges(srcNodeId, srcHandle);
340
- // Process each edge
341
- for (const edge of outEdges) {
342
- this.propagateToEdge(edge, value, srcNodeId, runContextIds);
343
- }
344
- }
345
- /**
346
- * Re-emit all outputs from a node (used when graph updates)
347
- * Only re-emits outputs that are valid according to resolved handles
348
- */
349
- invalidateDownstream(nodeId) {
350
- const node = this.graph.getNode(nodeId);
351
- if (!node)
352
- return;
353
- // Get resolved handles to filter out invalid outputs
354
- const resolved = this.graph.getResolvedHandles(nodeId);
355
- const validOutputHandles = resolved?.outputs ? new Set(Object.keys(resolved.outputs)) : new Set();
356
- // Use node's activeRunContexts to propagate to new nodes that were added
357
- const activeRunContextIds = this.graph.getNodeRunContextIds(nodeId);
358
- for (const [handle, value] of Object.entries(node.outputs)) {
359
- // Only re-emit if this handle is still valid
360
- if (validOutputHandles.has(handle)) {
361
- this.propagate(nodeId, handle, value, activeRunContextIds.size > 0 ? activeRunContextIds : undefined);
362
- }
363
- }
364
- }
365
- /**
366
- * Clear array input buckets for a node (when node is deleted)
367
- */
368
- clearArrayBuckets(nodeId) {
369
- this.arrayInputBuckets.delete(nodeId);
370
- }
371
- /**
372
- * Clear all array buckets
373
- */
374
- clearAllArrayBuckets() {
375
- this.arrayInputBuckets.clear();
376
- }
377
- }
378
- //# sourceMappingURL=EdgePropagator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EdgePropagator.js","sourceRoot":"","sources":["../../../../src/runtime/components/EdgePropagator.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import type { RuntimeEventName, RuntimeEventMap, RuntimeEventListener } from "../GraphRuntime";
2
- /**
3
- * Event emitter component for GraphRuntime
4
- * Handles all event listener management and emission
5
- */
6
- export declare class EventEmitter {
7
- private listeners;
8
- on<K extends RuntimeEventName>(event: K, handler: RuntimeEventListener<K>): () => void;
9
- emit<K extends RuntimeEventName>(event: K, payload: RuntimeEventMap[K]): void;
10
- clear(): void;
11
- }
12
- //# sourceMappingURL=EventEmitter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EventEmitter.d.ts","sourceRoot":"","sources":["../../../../src/runtime/components/EventEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE/F;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAA4E;IAE7F,EAAE,CAAC,CAAC,SAAS,gBAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAOtF,IAAI,CAAC,CAAC,SAAS,gBAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI;IAY7E,KAAK,IAAI,IAAI;CAGd"}
@@ -1,33 +0,0 @@
1
- /**
2
- * Event emitter component for GraphRuntime
3
- * Handles all event listener management and emission
4
- */
5
- export class EventEmitter {
6
- constructor() {
7
- this.listeners = new Map();
8
- }
9
- on(event, handler) {
10
- if (!this.listeners.has(event))
11
- this.listeners.set(event, new Set());
12
- const set = this.listeners.get(event);
13
- set.add(handler);
14
- return () => set.delete(handler);
15
- }
16
- emit(event, payload) {
17
- const set = this.listeners.get(event);
18
- if (!set)
19
- return;
20
- for (const handler of Array.from(set)) {
21
- try {
22
- handler(payload);
23
- }
24
- catch (err) {
25
- console.error(`Error in ${event} handler:`, err);
26
- }
27
- }
28
- }
29
- clear() {
30
- this.listeners.clear();
31
- }
32
- }
33
- //# sourceMappingURL=EventEmitter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EventEmitter.js","sourceRoot":"","sources":["../../../../src/runtime/components/EventEmitter.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,OAAO,YAAY;IAAzB;QACU,cAAS,GAAG,IAAI,GAAG,EAAiE,CAAC;IAwB/F,CAAC;IAtBC,EAAE,CAA6B,KAAQ,EAAE,OAAgC;QACvE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACrE,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAiC,CAAC;QACtE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjB,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,CAA6B,KAAQ,EAAE,OAA2B;QACpE,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,OAAO,CAAC,OAAO,CAAC,CAAC;YACnB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,YAAY,KAAK,WAAW,EAAE,GAAG,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CACF"}
@@ -1,208 +0,0 @@
1
- import type { ResolvedHandles } from "@bian-womp/spark-protocol";
2
- import { Registry } from "../../builder/Registry";
3
- import { EventEmitter } from "./EventEmitter";
4
- import type { RuntimeNode, RuntimeEdge, ReadonlyRuntimeNode, ExecutionPlan } from "./types";
5
- /**
6
- * Graph component - manages nodes, edges, and handle resolution
7
- * This is the ONLY place where nodes, edges, and resolvedByNode are directly updated.
8
- */
9
- export declare class Graph {
10
- private eventEmitter;
11
- private registry?;
12
- private nodes;
13
- private edges;
14
- private resolvedByNode;
15
- constructor(eventEmitter: EventEmitter, registry?: Registry | undefined);
16
- /**
17
- * Get a node by ID (readonly to prevent accidental modifications)
18
- */
19
- getNode(nodeId: string): ReadonlyRuntimeNode<any> | undefined;
20
- /**
21
- * Get a node by ID (mutable, for internal use only)
22
- * @internal
23
- */
24
- private getNodeMutable;
25
- /**
26
- * Iterate over all nodes safely (readonly to prevent accidental modifications)
27
- */
28
- forEachNode(callback: (node: ReadonlyRuntimeNode<any>, nodeId: string) => void): void;
29
- /**
30
- * Get all node IDs
31
- */
32
- getNodeIds(): string[];
33
- /**
34
- * Check if a node exists
35
- */
36
- hasNode(nodeId: string): boolean;
37
- /**
38
- * Set a node (creates or replaces)
39
- */
40
- setNode(nodeId: string, node: RuntimeNode<any>): void;
41
- /**
42
- * Delete a node
43
- */
44
- deleteNode(nodeId: string): void;
45
- /**
46
- * Update node inputs
47
- */
48
- updateNodeInput(nodeId: string, handle: string, value: unknown, calculated?: boolean): void;
49
- /**
50
- * Update node outputs
51
- */
52
- updateNodeOutput(nodeId: string, handle: string, value: unknown): void;
53
- /**
54
- * Update node state
55
- */
56
- updateNodeState(nodeId: string, updates: Partial<RuntimeNode<any>["state"]>): void;
57
- /**
58
- * Update node params
59
- */
60
- updateNodeParams(nodeId: string, params: Record<string, unknown> | undefined): void;
61
- /**
62
- * Update node policy
63
- */
64
- updateNodePolicy(nodeId: string, policy: Partial<RuntimeNode<any>["policy"]>): void;
65
- /**
66
- * Update node stats
67
- */
68
- updateNodeStats(nodeId: string, updates: Partial<RuntimeNode<any>["stats"]>): void;
69
- /**
70
- * Increment node runSeq
71
- */
72
- incrementNodeRunSeq(nodeId: string): number;
73
- /**
74
- * Set node latestRunId
75
- */
76
- setNodeLatestRunId(nodeId: string, runId: string): void;
77
- /**
78
- * Set node lastScheduledAt
79
- */
80
- setNodeLastScheduledAt(nodeId: string, timestamp: number): void;
81
- /**
82
- * Update node lastInputAt timestamp for a handle
83
- */
84
- updateNodeLastInputAt(nodeId: string, handle: string, timestamp: number): void;
85
- /**
86
- * Set node lastSuccessAt timestamp
87
- */
88
- setNodeLastSuccessAt(nodeId: string, timestamp: number): void;
89
- /**
90
- * Add item to node queue
91
- */
92
- addToNodeQueue(nodeId: string, item: ExecutionPlan): void;
93
- /**
94
- * Remove first item from node queue
95
- */
96
- shiftNodeQueue(nodeId: string): ExecutionPlan | undefined;
97
- /**
98
- * Clear node queue
99
- */
100
- clearNodeQueue(nodeId: string): void;
101
- /**
102
- * Replace node queue
103
- */
104
- replaceNodeQueue(nodeId: string, items: ExecutionPlan[]): void;
105
- /**
106
- * Add controller to node
107
- */
108
- addNodeController(nodeId: string, controller: AbortController, runId: string): void;
109
- /**
110
- * Remove controller from node
111
- */
112
- removeNodeController(nodeId: string, controller: AbortController): void;
113
- /**
114
- * Clear all controllers from node
115
- */
116
- clearNodeControllers(nodeId: string): void;
117
- /**
118
- * Get all controllers for a node
119
- */
120
- getNodeControllers(nodeId: string): Set<AbortController>;
121
- /**
122
- * Add run context ID to node
123
- */
124
- addNodeRunContextId(nodeId: string, runContextId: string): void;
125
- /**
126
- * Add multiple run context IDs to node
127
- */
128
- addNodeRunContextIds(nodeId: string, runContextIds: Set<string>): void;
129
- /**
130
- * Remove run context ID from node
131
- */
132
- removeNodeRunContextId(nodeId: string, runContextId: string): void;
133
- /**
134
- * Clear all run context IDs from node
135
- */
136
- clearNodeRunContextIds(nodeId: string): void;
137
- /**
138
- * Get run context IDs for a node
139
- */
140
- getNodeRunContextIds(nodeId: string): Set<string>;
141
- /**
142
- * Add snapshot cancelled run ID to node
143
- */
144
- addSnapshotCancelledRunId(nodeId: string, runId: string): void;
145
- /**
146
- * Iterate over all edges safely
147
- */
148
- forEachEdge(callback: (edge: RuntimeEdge, index: number) => void): void;
149
- /**
150
- * Find edges matching a predicate
151
- */
152
- findEdges(predicate: (edge: RuntimeEdge) => boolean): RuntimeEdge[];
153
- /**
154
- * Get edges by source node and handle
155
- */
156
- getEdgesBySource(srcNodeId: string, srcHandle: string): RuntimeEdge[];
157
- /**
158
- * Get edges by target node and handle
159
- */
160
- getEdgesByTarget(targetNodeId: string, targetHandle: string): RuntimeEdge[];
161
- /**
162
- * Get inbound edges for a node
163
- */
164
- getInboundEdges(nodeId: string): RuntimeEdge[];
165
- /**
166
- * Get outbound edges for a node
167
- */
168
- getOutboundEdges(nodeId: string): RuntimeEdge[];
169
- /**
170
- * Set all edges (replaces existing)
171
- */
172
- setEdges(edges: RuntimeEdge[]): void;
173
- /**
174
- * Update an edge by ID
175
- */
176
- updateEdge(edgeId: string, updates: Partial<RuntimeEdge>): void;
177
- /**
178
- * Update edge properties (convert, convertAsync, types, etc.)
179
- */
180
- updateEdgeProperties(edgeId: string, updates: {
181
- srcDeclared?: string | string[];
182
- dstDeclared?: string | string[];
183
- srcUnionTypes?: string[] | undefined;
184
- convert?: ((value: unknown) => unknown) | undefined;
185
- convertAsync?: ((value: unknown, signal: AbortSignal) => Promise<unknown>) | undefined;
186
- }): void;
187
- /**
188
- * Update edge stats
189
- */
190
- updateEdgeStats(edgeId: string, updates: Partial<RuntimeEdge["stats"]>): void;
191
- /**
192
- * Get edge by ID
193
- */
194
- getEdge(edgeId: string): RuntimeEdge | undefined;
195
- getRegistry(): Registry | undefined;
196
- setRegistry(registry: Registry): void;
197
- getResolvedHandles(nodeId: string): ResolvedHandles | undefined;
198
- setResolvedHandles(nodeId: string, handles: ResolvedHandles): void;
199
- /**
200
- * Check if all inbound edges for a node have values
201
- */
202
- allInboundHaveValue(nodeId: string): boolean;
203
- /**
204
- * Clear all data
205
- */
206
- clear(): void;
207
- }
208
- //# sourceMappingURL=Graph.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Graph.d.ts","sourceRoot":"","sources":["../../../../src/runtime/components/Graph.ts"],"names":[],"mappings":"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"}