@bian-womp/spark-graph 0.3.73 → 0.3.74
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/index.cjs +154 -81
- package/lib/cjs/index.cjs.map +1 -1
- package/lib/cjs/src/runtime/GraphRuntime.d.ts.map +1 -1
- package/lib/cjs/src/runtime/components/NodeExecutor.d.ts.map +1 -1
- package/lib/cjs/src/runtime/components/RunContextManager.d.ts +6 -0
- package/lib/cjs/src/runtime/components/RunContextManager.d.ts.map +1 -1
- package/lib/esm/index.js +154 -81
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/src/runtime/GraphRuntime.d.ts.map +1 -1
- package/lib/esm/src/runtime/components/NodeExecutor.d.ts.map +1 -1
- package/lib/esm/src/runtime/components/RunContextManager.d.ts +6 -0
- package/lib/esm/src/runtime/components/RunContextManager.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GraphRuntime.d.ts","sourceRoot":"","sources":["../../../../src/runtime/GraphRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,YAAY,EAEZ,eAAe,EAGf,OAAO,EACR,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAS/C,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAe,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjF,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,gBAAgB,IAAI,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AAE/F,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,YAAY,GAAG,OAAO,GAAG,OAAO,CAAC;AAE1E,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,YAAY,CAAC;IACpB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,EAAE,YAAY,CAAC;CACrB;AAGD,qBAAa,YAAa,YAAW,QAAQ,EAAE,aAAa,EAAE,eAAe;IAE3E,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,uBAAuB,CAA0B;IAGzD,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,cAAc,CAA+C;IACrE,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,oBAAoB,CAA6B;IACzD,OAAO,CAAC,yBAAyB,CAA8B;;IA0B/D,MAAM,CAAC,MAAM,CACX,GAAG,EAAE,eAAe,EACpB,QAAQ,EAAE,QAAQ,EAClB,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GACtE,YAAY;IAmFf,EAAE,CAAC,CAAC,SAAS,gBAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAItF;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,kBAAkB;
|
|
1
|
+
{"version":3,"file":"GraphRuntime.d.ts","sourceRoot":"","sources":["../../../../src/runtime/GraphRuntime.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeExecutor.d.ts","sourceRoot":"","sources":["../../../../../src/runtime/components/NodeExecutor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAiB,MAAM,SAAS,CAAC;AAC3D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAKzF;;GAEG;AACH,qBAAa,YAAa,YAAW,aAAa;IAK9C,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,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAT1B,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,cAAc,CAA+C;gBAGlD,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,iBAAiB,EAAE,iBAAiB,EACpC,cAAc,EAAE,eAAe,EAC/B,cAAc,EAAE,eAAe,EAC/B,OAAO,EAAE,QAAQ,EAClC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAKvC,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI1D,iBAAiB,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI;IAIhF;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAM3D;;OAEG;IACH,sBAAsB,CACpB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,WAAW,EACxB,aAAa,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,EACjC,OAAO,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;QACvD,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;KACtC,GACA,gBAAgB,CAAC,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"NodeExecutor.d.ts","sourceRoot":"","sources":["../../../../../src/runtime/components/NodeExecutor.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ export interface RunContext {
|
|
|
5
5
|
id: RunContextId;
|
|
6
6
|
startNodes: Set<string>;
|
|
7
7
|
cancelledNodes: Set<string>;
|
|
8
|
+
pendingScheduling: number;
|
|
8
9
|
pendingNodes: number;
|
|
9
10
|
pendingEdges: number;
|
|
10
11
|
pendingResolvers: number;
|
|
@@ -46,6 +47,11 @@ export declare class RunContextManager {
|
|
|
46
47
|
* Check if there are any active run-contexts
|
|
47
48
|
*/
|
|
48
49
|
hasActiveRunContexts(): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Release one scheduling hold from a run-context.
|
|
52
|
+
* Must be called once by the creator when scheduling decisions are complete.
|
|
53
|
+
*/
|
|
54
|
+
releaseScheduling(id: RunContextId): void;
|
|
49
55
|
/**
|
|
50
56
|
* Increment queued work count for a run-context.
|
|
51
57
|
* Used by asyncConcurrency: "queue" to keep contexts alive while work is queued.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunContextManager.d.ts","sourceRoot":"","sources":["../../../../../src/runtime/components/RunContextManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGrC,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,YAAY,CAAC;IACjB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAM1B,OAAO,CAAC,QAAQ,CAAC,KAAK;IALxB,OAAO,CAAC,WAAW,CAAuC;IAC1D,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;gBAGlB,KAAK,EAAE,KAAK,EAC7B,QAAQ,CAAC,EAAE,QAAQ;IAMrB;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAIrC;;OAEG;IACH,gBAAgB,CACd,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;QACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,GACA,YAAY;
|
|
1
|
+
{"version":3,"file":"RunContextManager.d.ts","sourceRoot":"","sources":["../../../../../src/runtime/components/RunContextManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGrC,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,YAAY,CAAC;IACjB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAM1B,OAAO,CAAC,QAAQ,CAAC,KAAK;IALxB,OAAO,CAAC,WAAW,CAAuC;IAC1D,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;gBAGlB,KAAK,EAAE,KAAK,EAC7B,QAAQ,CAAC,EAAE,QAAQ;IAMrB;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAIrC;;OAEG;IACH,gBAAgB,CACd,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;QACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,GACA,YAAY;IAyBf;;OAEG;IACH,aAAa,CAAC,EAAE,EAAE,YAAY,GAAG,UAAU,GAAG,SAAS;IAIvD;;OAEG;IACH,iBAAiB,IAAI,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC;IAIlD;;OAEG;IACH,oBAAoB,IAAI,OAAO;IAI/B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI;IAuBzC;;;OAGG;IACH,eAAe,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAiBvD;;;OAGG;IACH,eAAe,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAkBvD,YAAY,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAiBpD,aAAa,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAkBrD,mBAAmB,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAiB3D,oBAAoB,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAkB5D,qBAAqB,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAiB7D,sBAAsB,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAkB9D;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAiClC;;;;;;OAMG;IACH,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,GAAG,IAAI;IA0CzE;;OAEG;IACH,UAAU,IAAI,IAAI;IAWlB;;OAEG;IACH,KAAK,IAAI,IAAI;CAKd"}
|
package/lib/esm/index.js
CHANGED
|
@@ -1682,6 +1682,7 @@ class RunContextManager {
|
|
|
1682
1682
|
id,
|
|
1683
1683
|
startNodes: new Set([startNodeId]),
|
|
1684
1684
|
cancelledNodes: new Set(),
|
|
1685
|
+
pendingScheduling: 1,
|
|
1685
1686
|
pendingNodes: 0,
|
|
1686
1687
|
pendingEdges: 0,
|
|
1687
1688
|
pendingResolvers: 0,
|
|
@@ -1717,6 +1718,33 @@ class RunContextManager {
|
|
|
1717
1718
|
hasActiveRunContexts() {
|
|
1718
1719
|
return this.runContexts.size > 0;
|
|
1719
1720
|
}
|
|
1721
|
+
/**
|
|
1722
|
+
* Release one scheduling hold from a run-context.
|
|
1723
|
+
* Must be called once by the creator when scheduling decisions are complete.
|
|
1724
|
+
*/
|
|
1725
|
+
releaseScheduling(id) {
|
|
1726
|
+
const ctx = this.runContexts.get(id);
|
|
1727
|
+
if (!ctx) {
|
|
1728
|
+
this.logger.debug("release-scheduling-context-not-found", {
|
|
1729
|
+
runContextId: id,
|
|
1730
|
+
});
|
|
1731
|
+
return;
|
|
1732
|
+
}
|
|
1733
|
+
if (ctx.pendingScheduling > 0) {
|
|
1734
|
+
ctx.pendingScheduling--;
|
|
1735
|
+
}
|
|
1736
|
+
else {
|
|
1737
|
+
this.logger.warn("release-scheduling-underflow", {
|
|
1738
|
+
runContextId: id,
|
|
1739
|
+
pendingScheduling: ctx.pendingScheduling,
|
|
1740
|
+
});
|
|
1741
|
+
}
|
|
1742
|
+
this.logger.debug("release-scheduling", {
|
|
1743
|
+
runContextId: id,
|
|
1744
|
+
pendingScheduling: ctx.pendingScheduling,
|
|
1745
|
+
});
|
|
1746
|
+
this.finishRunContextIfPossible(id);
|
|
1747
|
+
}
|
|
1720
1748
|
/**
|
|
1721
1749
|
* Increment queued work count for a run-context.
|
|
1722
1750
|
* Used by asyncConcurrency: "queue" to keep contexts alive while work is queued.
|
|
@@ -1868,7 +1896,11 @@ class RunContextManager {
|
|
|
1868
1896
|
});
|
|
1869
1897
|
return;
|
|
1870
1898
|
}
|
|
1871
|
-
if (ctx.
|
|
1899
|
+
if (ctx.pendingScheduling > 0 ||
|
|
1900
|
+
ctx.pendingNodes > 0 ||
|
|
1901
|
+
ctx.pendingEdges > 0 ||
|
|
1902
|
+
ctx.pendingResolvers > 0 ||
|
|
1903
|
+
ctx.pendingQueued > 0) {
|
|
1872
1904
|
return; // Still has pending work
|
|
1873
1905
|
}
|
|
1874
1906
|
this.logger.info("finish-run-context", {
|
|
@@ -2978,13 +3010,22 @@ class NodeExecutor {
|
|
|
2978
3010
|
execute: (opts) => {
|
|
2979
3011
|
if (this.graph.allInboundHaveValue(nodeId)) {
|
|
2980
3012
|
let runContextIdsToUse = this.runtime.getRunMode() === "auto" ? undefined : runContextIds;
|
|
3013
|
+
let runContextIdToRelease;
|
|
2981
3014
|
if (this.runtime.getRunMode() === "manual" && (!runContextIds || runContextIds.size === 0)) {
|
|
2982
|
-
|
|
3015
|
+
runContextIdToRelease = this.runContextManager.createRunContext(nodeId, opts);
|
|
3016
|
+
runContextIdsToUse = new Set([runContextIdToRelease]);
|
|
3017
|
+
}
|
|
3018
|
+
try {
|
|
3019
|
+
this.execute(nodeId, {
|
|
3020
|
+
runContextIds: runContextIdsToUse,
|
|
3021
|
+
reason: opts?.reason ?? "executeFromContext",
|
|
3022
|
+
});
|
|
3023
|
+
}
|
|
3024
|
+
finally {
|
|
3025
|
+
if (runContextIdToRelease) {
|
|
3026
|
+
this.runContextManager.releaseScheduling(runContextIdToRelease);
|
|
3027
|
+
}
|
|
2983
3028
|
}
|
|
2984
|
-
this.execute(nodeId, {
|
|
2985
|
-
runContextIds: runContextIdsToUse,
|
|
2986
|
-
reason: opts?.reason ?? "executeFromContext",
|
|
2987
|
-
});
|
|
2988
3029
|
}
|
|
2989
3030
|
},
|
|
2990
3031
|
getInput: (handle) => inputs[handle],
|
|
@@ -3010,6 +3051,7 @@ class NodeExecutor {
|
|
|
3010
3051
|
*/
|
|
3011
3052
|
execute(nodeId, opts) {
|
|
3012
3053
|
let { runContextIds, canSkipHandleResolution, reason = "" } = opts ?? {};
|
|
3054
|
+
let autoCreatedRunContextId;
|
|
3013
3055
|
const node = this.graph.getNode(nodeId);
|
|
3014
3056
|
if (!node)
|
|
3015
3057
|
return;
|
|
@@ -3022,81 +3064,89 @@ class NodeExecutor {
|
|
|
3022
3064
|
if (runMode === "manual" && (!runContextIds || runContextIds.size === 0)) {
|
|
3023
3065
|
// If autoRun is true, auto-generate a run context (similar to createExecutionContext pattern)
|
|
3024
3066
|
if (node.policy?.autoRun === true) {
|
|
3025
|
-
|
|
3067
|
+
autoCreatedRunContextId = this.runContextManager.createRunContext(nodeId, { propagate: false });
|
|
3068
|
+
runContextIds = new Set([autoCreatedRunContextId]);
|
|
3026
3069
|
}
|
|
3027
3070
|
else {
|
|
3028
3071
|
console.trace(`NodeExecutor.execute[${formatNodeRef(this.graph, nodeId)}:${reason}]: no runContextIds provided in manual mode, skipping execution`);
|
|
3029
3072
|
return;
|
|
3030
3073
|
}
|
|
3031
3074
|
}
|
|
3032
|
-
|
|
3033
|
-
|
|
3034
|
-
|
|
3035
|
-
|
|
3036
|
-
// Early validation for auto-mode paused state
|
|
3037
|
-
if (this.runtime.isPaused())
|
|
3038
|
-
return;
|
|
3039
|
-
// Check runtime validators (check current state, not just graph definition)
|
|
3040
|
-
const runtimeValidationError = this.runtime.hasRuntimeValidationBlock(nodeId);
|
|
3041
|
-
if (runtimeValidationError) {
|
|
3042
|
-
this.eventEmitter.emit("error", {
|
|
3043
|
-
kind: "system",
|
|
3044
|
-
message: runtimeValidationError.message,
|
|
3045
|
-
code: runtimeValidationError.code || "RUNTIME_VALIDATION_BLOCKED",
|
|
3046
|
-
details: {
|
|
3047
|
-
nodeId,
|
|
3048
|
-
nodeTypeId: node?.typeId,
|
|
3049
|
-
...runtimeValidationError.details,
|
|
3050
|
-
},
|
|
3051
|
-
});
|
|
3052
|
-
return;
|
|
3053
|
-
}
|
|
3054
|
-
// Attach run-context IDs if provided - do this BEFORE checking for pending resolution
|
|
3055
|
-
// so that handle resolution can track these run contexts
|
|
3056
|
-
if (runContextIds) {
|
|
3057
|
-
this.graph.addNodeRunContextIds(nodeId, runContextIds);
|
|
3058
|
-
}
|
|
3059
|
-
if (!canSkipHandleResolution && !this.handleResolver.getPendingResolution(nodeId)) {
|
|
3060
|
-
this.handleResolver.scheduleRecomputeHandles(nodeId);
|
|
3061
|
-
}
|
|
3062
|
-
// Check if handles are being resolved - wait for resolution before executing
|
|
3063
|
-
// Do this AFTER setting up run contexts so handle resolution can track them
|
|
3064
|
-
const pendingResolution = this.handleResolver.getPendingResolution(nodeId);
|
|
3065
|
-
if (pendingResolution) {
|
|
3066
|
-
if (runContextIds && runContextIds.size > 0) {
|
|
3067
|
-
for (const id of runContextIds) {
|
|
3068
|
-
this.runContextManager.startHandleResolution(id, nodeId);
|
|
3069
|
-
}
|
|
3075
|
+
try {
|
|
3076
|
+
if (runMode === "auto" && runContextIds && runContextIds.size > 0) {
|
|
3077
|
+
console.trace(`NodeExecutor.execute[${formatNodeRef(this.graph, nodeId)}:${reason}]: runContextIds provided in auto mode, ignoring`);
|
|
3078
|
+
runContextIds = undefined;
|
|
3070
3079
|
}
|
|
3071
|
-
//
|
|
3072
|
-
|
|
3073
|
-
|
|
3074
|
-
|
|
3075
|
-
|
|
3076
|
-
|
|
3077
|
-
|
|
3078
|
-
|
|
3079
|
-
|
|
3080
|
-
|
|
3081
|
-
|
|
3080
|
+
// Early validation for auto-mode paused state
|
|
3081
|
+
if (this.runtime.isPaused())
|
|
3082
|
+
return;
|
|
3083
|
+
// Check runtime validators (check current state, not just graph definition)
|
|
3084
|
+
const runtimeValidationError = this.runtime.hasRuntimeValidationBlock(nodeId);
|
|
3085
|
+
if (runtimeValidationError) {
|
|
3086
|
+
this.eventEmitter.emit("error", {
|
|
3087
|
+
kind: "system",
|
|
3088
|
+
message: runtimeValidationError.message,
|
|
3089
|
+
code: runtimeValidationError.code || "RUNTIME_VALIDATION_BLOCKED",
|
|
3090
|
+
details: {
|
|
3091
|
+
nodeId,
|
|
3092
|
+
nodeTypeId: node?.typeId,
|
|
3093
|
+
...runtimeValidationError.details,
|
|
3094
|
+
},
|
|
3095
|
+
});
|
|
3096
|
+
return;
|
|
3097
|
+
}
|
|
3098
|
+
// Attach run-context IDs if provided - do this BEFORE checking for pending resolution
|
|
3099
|
+
// so that handle resolution can track these run contexts
|
|
3100
|
+
if (runContextIds) {
|
|
3101
|
+
this.graph.addNodeRunContextIds(nodeId, runContextIds);
|
|
3102
|
+
}
|
|
3103
|
+
if (!canSkipHandleResolution && !this.handleResolver.getPendingResolution(nodeId)) {
|
|
3104
|
+
this.handleResolver.scheduleRecomputeHandles(nodeId);
|
|
3105
|
+
}
|
|
3106
|
+
// Check if handles are being resolved - wait for resolution before executing
|
|
3107
|
+
// Do this AFTER setting up run contexts so handle resolution can track them
|
|
3108
|
+
const pendingResolution = this.handleResolver.getPendingResolution(nodeId);
|
|
3109
|
+
if (pendingResolution) {
|
|
3082
3110
|
if (runContextIds && runContextIds.size > 0) {
|
|
3083
3111
|
for (const id of runContextIds) {
|
|
3084
|
-
this.runContextManager.
|
|
3112
|
+
this.runContextManager.startHandleResolution(id, nodeId);
|
|
3085
3113
|
}
|
|
3086
3114
|
}
|
|
3087
|
-
|
|
3088
|
-
|
|
3115
|
+
// Wait for resolution to complete, then re-execute
|
|
3116
|
+
pendingResolution.then(() => {
|
|
3117
|
+
// Re-check node still exists and conditions
|
|
3118
|
+
const nodeAfter = this.graph.getNode(nodeId);
|
|
3119
|
+
if (nodeAfter) {
|
|
3120
|
+
this.execute(nodeId, {
|
|
3121
|
+
runContextIds,
|
|
3122
|
+
canSkipHandleResolution: true,
|
|
3123
|
+
reason: opts?.reason,
|
|
3124
|
+
});
|
|
3125
|
+
}
|
|
3126
|
+
if (runContextIds && runContextIds.size > 0) {
|
|
3127
|
+
for (const id of runContextIds) {
|
|
3128
|
+
this.runContextManager.finishHandleResolution(id, nodeId);
|
|
3129
|
+
}
|
|
3130
|
+
}
|
|
3131
|
+
});
|
|
3132
|
+
return;
|
|
3133
|
+
}
|
|
3134
|
+
// Handle debouncing
|
|
3135
|
+
const now = Date.now();
|
|
3136
|
+
if (this.shouldDebounce(nodeId, now)) {
|
|
3137
|
+
this.handleDebouncedSchedule(nodeId, now, runContextIds, reason);
|
|
3138
|
+
return;
|
|
3139
|
+
}
|
|
3140
|
+
// Prepare execution plan
|
|
3141
|
+
const executionPlan = this.prepareExecutionPlan(nodeId, runContextIds, now, reason);
|
|
3142
|
+
// Route to appropriate concurrency handler
|
|
3143
|
+
this.routeToConcurrencyHandler(nodeId, executionPlan);
|
|
3089
3144
|
}
|
|
3090
|
-
|
|
3091
|
-
|
|
3092
|
-
|
|
3093
|
-
|
|
3094
|
-
return;
|
|
3145
|
+
finally {
|
|
3146
|
+
if (autoCreatedRunContextId) {
|
|
3147
|
+
this.runContextManager.releaseScheduling(autoCreatedRunContextId);
|
|
3148
|
+
}
|
|
3095
3149
|
}
|
|
3096
|
-
// Prepare execution plan
|
|
3097
|
-
const executionPlan = this.prepareExecutionPlan(nodeId, runContextIds, now, reason);
|
|
3098
|
-
// Route to appropriate concurrency handler
|
|
3099
|
-
this.routeToConcurrencyHandler(nodeId, executionPlan);
|
|
3100
3150
|
}
|
|
3101
3151
|
/**
|
|
3102
3152
|
* Check if execution should be debounced
|
|
@@ -3714,16 +3764,26 @@ class GraphRuntime {
|
|
|
3714
3764
|
executeNodeAutoRun(nodeId, opts) {
|
|
3715
3765
|
const node = this.graph.getNode(nodeId);
|
|
3716
3766
|
const shouldAutoRun = this.runMode === "auto" || node?.policy?.autoRun === true;
|
|
3767
|
+
const canExecute = this.graph.allInboundHaveValue(nodeId);
|
|
3768
|
+
if (!shouldAutoRun || !canExecute)
|
|
3769
|
+
return;
|
|
3717
3770
|
let runContextIdsToUse = undefined;
|
|
3771
|
+
let runContextIdToRelease;
|
|
3718
3772
|
if (this.runMode === "manual") {
|
|
3719
|
-
|
|
3773
|
+
runContextIdToRelease = this.runContextManager.createRunContext(nodeId, { propagate: false });
|
|
3774
|
+
runContextIdsToUse = new Set([runContextIdToRelease]);
|
|
3720
3775
|
}
|
|
3721
|
-
|
|
3776
|
+
try {
|
|
3722
3777
|
this.execute(nodeId, {
|
|
3723
3778
|
runContextIds: runContextIdsToUse,
|
|
3724
3779
|
reason: opts?.reason ?? "executeNodeAutoRun",
|
|
3725
3780
|
});
|
|
3726
3781
|
}
|
|
3782
|
+
finally {
|
|
3783
|
+
if (runContextIdToRelease) {
|
|
3784
|
+
this.runContextManager.releaseScheduling(runContextIdToRelease);
|
|
3785
|
+
}
|
|
3786
|
+
}
|
|
3727
3787
|
}
|
|
3728
3788
|
setInputs(nodeId, inputs) {
|
|
3729
3789
|
const node = this.graph.getNode(nodeId);
|
|
@@ -3808,8 +3868,9 @@ class GraphRuntime {
|
|
|
3808
3868
|
});
|
|
3809
3869
|
if (this.runMode === "auto" && invalidate) {
|
|
3810
3870
|
for (const nodeId of this.graph.getNodeIds()) {
|
|
3811
|
-
if (this.graph.allInboundHaveValue(nodeId))
|
|
3871
|
+
if (this.graph.allInboundHaveValue(nodeId)) {
|
|
3812
3872
|
this.execute(nodeId, { reason: "launch" });
|
|
3873
|
+
}
|
|
3813
3874
|
}
|
|
3814
3875
|
}
|
|
3815
3876
|
if (startPaused) {
|
|
@@ -3956,10 +4017,15 @@ class GraphRuntime {
|
|
|
3956
4017
|
...opts,
|
|
3957
4018
|
});
|
|
3958
4019
|
this.graph.addNodeRunContextId(startNodeId, id);
|
|
3959
|
-
|
|
3960
|
-
|
|
3961
|
-
|
|
3962
|
-
|
|
4020
|
+
try {
|
|
4021
|
+
this.execute(startNodeId, {
|
|
4022
|
+
runContextIds: new Set([id]),
|
|
4023
|
+
reason: opts?.reason ?? "runFromHereContext",
|
|
4024
|
+
});
|
|
4025
|
+
}
|
|
4026
|
+
finally {
|
|
4027
|
+
this.runContextManager.releaseScheduling(id);
|
|
4028
|
+
}
|
|
3963
4029
|
});
|
|
3964
4030
|
}
|
|
3965
4031
|
setRunMode(runMode) {
|
|
@@ -4280,14 +4346,21 @@ class GraphRuntime {
|
|
|
4280
4346
|
const val = this.getOutput(nodeId, handle);
|
|
4281
4347
|
if (val !== undefined) {
|
|
4282
4348
|
let runContextIdsToUse = undefined;
|
|
4349
|
+
let runContextIdToRelease;
|
|
4283
4350
|
if (this.runMode === "manual") {
|
|
4284
|
-
|
|
4285
|
-
|
|
4286
|
-
|
|
4287
|
-
|
|
4288
|
-
|
|
4351
|
+
runContextIdToRelease = this.runContextManager.createRunContext(nodeId, {
|
|
4352
|
+
propagate: false,
|
|
4353
|
+
});
|
|
4354
|
+
runContextIdsToUse = new Set([runContextIdToRelease]);
|
|
4355
|
+
}
|
|
4356
|
+
try {
|
|
4357
|
+
this.propagate(nodeId, handle, val, runContextIdsToUse);
|
|
4358
|
+
}
|
|
4359
|
+
finally {
|
|
4360
|
+
if (runContextIdToRelease) {
|
|
4361
|
+
this.runContextManager.releaseScheduling(runContextIdToRelease);
|
|
4362
|
+
}
|
|
4289
4363
|
}
|
|
4290
|
-
this.propagate(nodeId, handle, val, runContextIdsToUse);
|
|
4291
4364
|
}
|
|
4292
4365
|
}
|
|
4293
4366
|
}
|