@bian-womp/spark-graph 0.3.46 → 0.3.48

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 +20 -17
  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.map +1 -1
  6. package/lib/cjs/src/runtime/components/NodeExecutor.d.ts.map +1 -1
  7. package/lib/cjs/src/runtime/components/RunContextManager.d.ts +3 -2
  8. package/lib/cjs/src/runtime/components/RunContextManager.d.ts.map +1 -1
  9. package/lib/cjs/src/runtime/utils.d.ts.map +1 -1
  10. package/lib/esm/index.js +20 -17
  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.map +1 -1
  15. package/lib/esm/src/runtime/components/NodeExecutor.d.ts.map +1 -1
  16. package/lib/esm/src/runtime/components/RunContextManager.d.ts +3 -2
  17. package/lib/esm/src/runtime/components/RunContextManager.d.ts.map +1 -1
  18. package/lib/esm/src/runtime/utils.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,468 @@
1
+ import { unwrapTypeId } from "../../core/type-utils";
2
+ /**
3
+ * Graph component - manages nodes, edges, and handle resolution
4
+ * This is the ONLY place where nodes, edges, and resolvedByNode are directly updated.
5
+ */
6
+ export class Graph {
7
+ constructor(eventEmitter, registry) {
8
+ this.eventEmitter = eventEmitter;
9
+ this.registry = registry;
10
+ this.nodes = new Map();
11
+ this.edges = [];
12
+ this.resolvedByNode = new Map();
13
+ }
14
+ // ==================== Node Accessors ====================
15
+ /**
16
+ * Get a node by ID (readonly to prevent accidental modifications)
17
+ */
18
+ getNode(nodeId) {
19
+ return this.nodes.get(nodeId);
20
+ }
21
+ /**
22
+ * Get a node by ID (mutable, for internal use only)
23
+ * @internal
24
+ */
25
+ getNodeMutable(nodeId) {
26
+ return this.nodes.get(nodeId);
27
+ }
28
+ /**
29
+ * Iterate over all nodes safely (readonly to prevent accidental modifications)
30
+ */
31
+ forEachNode(callback) {
32
+ for (const [nodeId, node] of this.nodes.entries()) {
33
+ callback(node, nodeId);
34
+ }
35
+ }
36
+ /**
37
+ * Get all node IDs
38
+ */
39
+ getNodeIds() {
40
+ return Array.from(this.nodes.keys());
41
+ }
42
+ /**
43
+ * Check if a node exists
44
+ */
45
+ hasNode(nodeId) {
46
+ return this.nodes.has(nodeId);
47
+ }
48
+ // ==================== Node Mutators ====================
49
+ /**
50
+ * Set a node (creates or replaces)
51
+ */
52
+ setNode(nodeId, node) {
53
+ this.nodes.set(nodeId, node);
54
+ }
55
+ /**
56
+ * Delete a node
57
+ */
58
+ deleteNode(nodeId) {
59
+ this.nodes.delete(nodeId);
60
+ }
61
+ // ==================== Node Property Updates ====================
62
+ /**
63
+ * Update node inputs
64
+ */
65
+ updateNodeInput(nodeId, handle, value, calculated = true) {
66
+ const node = this.getNodeMutable(nodeId);
67
+ if (!node)
68
+ return;
69
+ if (value === undefined) {
70
+ delete node.inputs[handle];
71
+ }
72
+ else {
73
+ node.inputs[handle] = value;
74
+ }
75
+ if (calculated) {
76
+ this.updateNodeLastInputAt(nodeId, handle, Date.now());
77
+ }
78
+ this.eventEmitter.emit("value", {
79
+ nodeId,
80
+ handle,
81
+ value,
82
+ io: "input",
83
+ runtimeTypeId: unwrapTypeId(value),
84
+ });
85
+ }
86
+ /**
87
+ * Update node outputs
88
+ */
89
+ updateNodeOutput(nodeId, handle, value) {
90
+ const node = this.nodes.get(nodeId);
91
+ if (!node)
92
+ return;
93
+ if (value === undefined) {
94
+ delete node.outputs[handle];
95
+ }
96
+ else {
97
+ node.outputs[handle] = value;
98
+ }
99
+ this.eventEmitter.emit("value", {
100
+ nodeId,
101
+ handle,
102
+ value,
103
+ io: "output",
104
+ runtimeTypeId: unwrapTypeId(value),
105
+ });
106
+ }
107
+ /**
108
+ * Update node state
109
+ */
110
+ updateNodeState(nodeId, updates) {
111
+ const node = this.nodes.get(nodeId);
112
+ if (!node)
113
+ return;
114
+ Object.assign(node.state, updates);
115
+ }
116
+ /**
117
+ * Update node params
118
+ */
119
+ updateNodeParams(nodeId, params) {
120
+ const node = this.nodes.get(nodeId);
121
+ if (!node)
122
+ return;
123
+ node.params = params;
124
+ }
125
+ /**
126
+ * Update node policy
127
+ */
128
+ updateNodePolicy(nodeId, policy) {
129
+ const node = this.nodes.get(nodeId);
130
+ if (!node)
131
+ return;
132
+ node.policy = { ...node.policy, ...policy };
133
+ }
134
+ /**
135
+ * Update node stats
136
+ */
137
+ updateNodeStats(nodeId, updates) {
138
+ const node = this.nodes.get(nodeId);
139
+ if (!node)
140
+ return;
141
+ Object.assign(node.stats, updates);
142
+ }
143
+ /**
144
+ * Increment node runSeq
145
+ */
146
+ incrementNodeRunSeq(nodeId) {
147
+ const node = this.nodes.get(nodeId);
148
+ if (!node)
149
+ return 0;
150
+ node.runSeq += 1;
151
+ return node.runSeq;
152
+ }
153
+ /**
154
+ * Set node latestRunId
155
+ */
156
+ setNodeLatestRunId(nodeId, runId) {
157
+ const node = this.nodes.get(nodeId);
158
+ if (!node)
159
+ return;
160
+ node.latestRunId = runId;
161
+ }
162
+ /**
163
+ * Set node lastScheduledAt
164
+ */
165
+ setNodeLastScheduledAt(nodeId, timestamp) {
166
+ const node = this.nodes.get(nodeId);
167
+ if (!node)
168
+ return;
169
+ node.lastScheduledAt = timestamp;
170
+ }
171
+ /**
172
+ * Update node lastInputAt timestamp for a handle
173
+ */
174
+ updateNodeLastInputAt(nodeId, handle, timestamp) {
175
+ const node = this.nodes.get(nodeId);
176
+ if (!node)
177
+ return;
178
+ if (!node.lastInputAt)
179
+ node.lastInputAt = {};
180
+ node.lastInputAt[handle] = timestamp;
181
+ }
182
+ /**
183
+ * Set node lastSuccessAt timestamp
184
+ */
185
+ setNodeLastSuccessAt(nodeId, timestamp) {
186
+ const node = this.nodes.get(nodeId);
187
+ if (!node)
188
+ return;
189
+ node.lastSuccessAt = timestamp;
190
+ }
191
+ // ==================== Node Queue Operations ====================
192
+ /**
193
+ * Add item to node queue
194
+ */
195
+ addToNodeQueue(nodeId, item) {
196
+ const node = this.nodes.get(nodeId);
197
+ if (!node)
198
+ return;
199
+ node.queue.push(item);
200
+ }
201
+ /**
202
+ * Remove first item from node queue
203
+ */
204
+ shiftNodeQueue(nodeId) {
205
+ const node = this.nodes.get(nodeId);
206
+ if (!node)
207
+ return undefined;
208
+ return node.queue.shift();
209
+ }
210
+ /**
211
+ * Clear node queue
212
+ */
213
+ clearNodeQueue(nodeId) {
214
+ const node = this.nodes.get(nodeId);
215
+ if (!node)
216
+ return;
217
+ node.queue = [];
218
+ }
219
+ /**
220
+ * Replace node queue
221
+ */
222
+ replaceNodeQueue(nodeId, items) {
223
+ const node = this.nodes.get(nodeId);
224
+ if (!node)
225
+ return;
226
+ node.queue = items;
227
+ }
228
+ // ==================== Node Controller Operations ====================
229
+ /**
230
+ * Add controller to node
231
+ */
232
+ addNodeController(nodeId, controller, runId) {
233
+ const node = this.nodes.get(nodeId);
234
+ if (!node)
235
+ return;
236
+ node.activeControllers.add(controller);
237
+ node.controllerRunIds.set(controller, runId);
238
+ }
239
+ /**
240
+ * Remove controller from node
241
+ */
242
+ removeNodeController(nodeId, controller) {
243
+ const node = this.nodes.get(nodeId);
244
+ if (!node)
245
+ return;
246
+ node.activeControllers.delete(controller);
247
+ node.controllerRunIds.delete(controller);
248
+ }
249
+ /**
250
+ * Clear all controllers from node
251
+ */
252
+ clearNodeControllers(nodeId) {
253
+ const node = this.nodes.get(nodeId);
254
+ if (!node)
255
+ return;
256
+ node.activeControllers.clear();
257
+ node.controllerRunIds.clear();
258
+ }
259
+ /**
260
+ * Get all controllers for a node
261
+ */
262
+ getNodeControllers(nodeId) {
263
+ const node = this.nodes.get(nodeId);
264
+ if (!node)
265
+ return new Set();
266
+ return new Set(node.activeControllers);
267
+ }
268
+ // ==================== Node Run Context Operations ====================
269
+ /**
270
+ * Add run context ID to node
271
+ */
272
+ addNodeRunContextId(nodeId, runContextId) {
273
+ const node = this.nodes.get(nodeId);
274
+ if (!node)
275
+ return;
276
+ node.activeRunContextIds.add(runContextId);
277
+ }
278
+ /**
279
+ * Add multiple run context IDs to node
280
+ */
281
+ addNodeRunContextIds(nodeId, runContextIds) {
282
+ const node = this.nodes.get(nodeId);
283
+ if (!node)
284
+ return;
285
+ for (const id of runContextIds) {
286
+ node.activeRunContextIds.add(id);
287
+ }
288
+ }
289
+ /**
290
+ * Remove run context ID from node
291
+ */
292
+ removeNodeRunContextId(nodeId, runContextId) {
293
+ const node = this.nodes.get(nodeId);
294
+ if (!node)
295
+ return;
296
+ node.activeRunContextIds.delete(runContextId);
297
+ }
298
+ /**
299
+ * Clear all run context IDs from node
300
+ */
301
+ clearNodeRunContextIds(nodeId) {
302
+ const node = this.nodes.get(nodeId);
303
+ if (!node)
304
+ return;
305
+ node.activeRunContextIds.clear();
306
+ }
307
+ /**
308
+ * Get run context IDs for a node
309
+ */
310
+ getNodeRunContextIds(nodeId) {
311
+ const node = this.nodes.get(nodeId);
312
+ if (!node)
313
+ return new Set();
314
+ return new Set(node.activeRunContextIds);
315
+ }
316
+ // ==================== Node Snapshot Cancelled Run IDs ====================
317
+ /**
318
+ * Add snapshot cancelled run ID to node
319
+ */
320
+ addSnapshotCancelledRunId(nodeId, runId) {
321
+ const node = this.nodes.get(nodeId);
322
+ if (!node)
323
+ return;
324
+ if (!node.snapshotCancelledRunIds) {
325
+ node.snapshotCancelledRunIds = new Set();
326
+ }
327
+ node.snapshotCancelledRunIds.add(runId);
328
+ }
329
+ // ==================== Edge Accessors ====================
330
+ /**
331
+ * Iterate over all edges safely
332
+ */
333
+ forEachEdge(callback) {
334
+ this.edges.forEach(callback);
335
+ }
336
+ /**
337
+ * Find edges matching a predicate
338
+ */
339
+ findEdges(predicate) {
340
+ return this.edges.filter(predicate);
341
+ }
342
+ /**
343
+ * Get edges by source node and handle
344
+ */
345
+ getEdgesBySource(srcNodeId, srcHandle) {
346
+ return this.edges.filter((e) => e.source.nodeId === srcNodeId && e.source.handle === srcHandle);
347
+ }
348
+ /**
349
+ * Get edges by target node and handle
350
+ */
351
+ getEdgesByTarget(targetNodeId, targetHandle) {
352
+ return this.edges.filter((e) => e.target.nodeId === targetNodeId && e.target.handle === targetHandle);
353
+ }
354
+ /**
355
+ * Get inbound edges for a node
356
+ */
357
+ getInboundEdges(nodeId) {
358
+ return this.edges.filter((e) => e.target.nodeId === nodeId);
359
+ }
360
+ /**
361
+ * Get outbound edges for a node
362
+ */
363
+ getOutboundEdges(nodeId) {
364
+ return this.edges.filter((e) => e.source.nodeId === nodeId);
365
+ }
366
+ // ==================== Edge Mutators ====================
367
+ /**
368
+ * Set all edges (replaces existing)
369
+ */
370
+ setEdges(edges) {
371
+ this.edges = [...edges];
372
+ }
373
+ /**
374
+ * Update an edge by ID
375
+ */
376
+ updateEdge(edgeId, updates) {
377
+ const edge = this.edges.find((e) => e.id === edgeId);
378
+ if (!edge)
379
+ return;
380
+ Object.assign(edge, updates);
381
+ }
382
+ /**
383
+ * Update edge properties (convert, convertAsync, types, etc.)
384
+ */
385
+ updateEdgeProperties(edgeId, updates) {
386
+ const edge = this.edges.find((e) => e.id === edgeId);
387
+ if (!edge)
388
+ return;
389
+ if (updates.dstDeclared !== undefined) {
390
+ edge.dstDeclared = updates.dstDeclared;
391
+ }
392
+ if (updates.srcUnionTypes !== undefined) {
393
+ edge.srcUnionTypes = updates.srcUnionTypes;
394
+ }
395
+ if (updates.convert !== undefined) {
396
+ edge.convert = updates.convert;
397
+ }
398
+ if (updates.convertAsync !== undefined) {
399
+ edge.convertAsync = updates.convertAsync;
400
+ }
401
+ }
402
+ /**
403
+ * Update edge stats
404
+ */
405
+ updateEdgeStats(edgeId, updates) {
406
+ const edge = this.edges.find((e) => e.id === edgeId);
407
+ if (!edge)
408
+ return;
409
+ Object.assign(edge.stats, updates);
410
+ }
411
+ /**
412
+ * Get edge by ID
413
+ */
414
+ getEdge(edgeId) {
415
+ return this.edges.find((e) => e.id === edgeId);
416
+ }
417
+ // ==================== Registry Accessors ====================
418
+ getRegistry() {
419
+ return this.registry;
420
+ }
421
+ setRegistry(registry) {
422
+ this.registry = registry;
423
+ }
424
+ // ==================== Resolved Handles Accessors ====================
425
+ getResolvedHandles(nodeId) {
426
+ return this.resolvedByNode.get(nodeId);
427
+ }
428
+ setResolvedHandles(nodeId, handles) {
429
+ this.resolvedByNode.set(nodeId, handles);
430
+ }
431
+ /**
432
+ * Iterate over resolved handles safely
433
+ */
434
+ forEachResolvedHandles(callback) {
435
+ for (const [nodeId, handles] of this.resolvedByNode.entries()) {
436
+ callback(handles, nodeId);
437
+ }
438
+ }
439
+ // ==================== Utility Methods ====================
440
+ /**
441
+ * Check if all inbound edges for a node have values
442
+ */
443
+ allInboundHaveValue(nodeId) {
444
+ const node = this.nodes.get(nodeId);
445
+ if (!node)
446
+ return false;
447
+ const inbound = this.edges.filter((e) => e.target.nodeId === nodeId);
448
+ if (inbound.length === 0)
449
+ return true;
450
+ for (const e of inbound) {
451
+ if (node.resolvedHandles?.inputs?.[e.target.handle] &&
452
+ !node.inputs[e.target.handle]) {
453
+ return false;
454
+ }
455
+ }
456
+ return true;
457
+ }
458
+ // ==================== Clear Operations ====================
459
+ /**
460
+ * Clear all data
461
+ */
462
+ clear() {
463
+ this.nodes.clear();
464
+ this.edges = [];
465
+ this.resolvedByNode.clear();
466
+ }
467
+ }
468
+ //# sourceMappingURL=Graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Graph.js","sourceRoot":"","sources":["../../../../src/runtime/components/Graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { Registry } from "../../builder/Registry";
2
+ import type { EventEmitter } from "./EventEmitter";
3
+ import type { Graph } from "./Graph";
4
+ import type { RunContextManager } from "./RunContextManager";
5
+ import type { IEdgePropagator, IHandleResolver } from "./interfaces";
6
+ /**
7
+ * HandleResolver component - manages dynamic handle resolution
8
+ */
9
+ export declare class HandleResolver implements IHandleResolver {
10
+ private readonly graph;
11
+ private readonly eventEmitter;
12
+ private readonly runContextManager;
13
+ private readonly edgePropagator;
14
+ private registry?;
15
+ private recomputeTokenByNode;
16
+ private environment;
17
+ private pendingResolutions;
18
+ private isRecomputing;
19
+ constructor(graph: Graph, eventEmitter: EventEmitter, runContextManager: RunContextManager, edgePropagator: IEdgePropagator, registry?: Registry | undefined, environment?: Record<string, unknown>);
20
+ setRegistry(registry: Registry): void;
21
+ setEnvironment(environment: Record<string, unknown>): void;
22
+ /**
23
+ * Get the promise for pending handle resolution, or null if none
24
+ */
25
+ getPendingResolution(nodeId: string): Promise<void> | null;
26
+ /**
27
+ * Schedule async recomputation of handles for a node
28
+ */
29
+ scheduleRecomputeHandles(nodeId: string): void;
30
+ private updateNodeHandles;
31
+ /**
32
+ * Recompute dynamic handles for a single node using current inputs/environment
33
+ */
34
+ private recomputeHandlesForNode;
35
+ }
36
+ //# sourceMappingURL=HandleResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HandleResolver.d.ts","sourceRoot":"","sources":["../../../../src/runtime/components/HandleResolver.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAgB,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAKrE;;GAEG;AACH,qBAAa,cAAe,YAAW,eAAe;IAOlD,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC;IAVnB,OAAO,CAAC,oBAAoB,CAA6B;IACzD,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,kBAAkB,CAAoC;IAC9D,OAAO,CAAC,aAAa,CAA8B;gBAGhC,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,iBAAiB,EAAE,iBAAiB,EACpC,cAAc,EAAE,eAAe,EACxC,QAAQ,CAAC,EAAE,QAAQ,YAAA,EAC3B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAKvC,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAIrC,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI1D;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAI1D;;OAEG;IACH,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAqD9C,OAAO,CAAC,iBAAiB;IA6EzB;;OAEG;YACW,uBAAuB;CAyGtC"}