@bian-womp/spark-workbench 0.3.86 → 0.3.88
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 +76 -107
- package/lib/cjs/index.cjs.map +1 -1
- package/lib/cjs/src/misc/context/WorkbenchContext.provider.d.ts.map +1 -1
- package/lib/cjs/src/runtime/AbstractGraphRunner.d.ts +1 -3
- package/lib/cjs/src/runtime/AbstractGraphRunner.d.ts.map +1 -1
- package/lib/cjs/src/runtime/IGraphRunner.d.ts +1 -3
- package/lib/cjs/src/runtime/IGraphRunner.d.ts.map +1 -1
- package/lib/cjs/src/runtime/LocalGraphRunner.d.ts +1 -3
- package/lib/cjs/src/runtime/LocalGraphRunner.d.ts.map +1 -1
- package/lib/cjs/src/runtime/RemoteGraphRunner.d.ts +1 -3
- package/lib/cjs/src/runtime/RemoteGraphRunner.d.ts.map +1 -1
- package/lib/esm/index.js +76 -107
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/src/misc/context/WorkbenchContext.provider.d.ts.map +1 -1
- package/lib/esm/src/runtime/AbstractGraphRunner.d.ts +1 -3
- package/lib/esm/src/runtime/AbstractGraphRunner.d.ts.map +1 -1
- package/lib/esm/src/runtime/IGraphRunner.d.ts +1 -3
- package/lib/esm/src/runtime/IGraphRunner.d.ts.map +1 -1
- package/lib/esm/src/runtime/LocalGraphRunner.d.ts +1 -3
- package/lib/esm/src/runtime/LocalGraphRunner.d.ts.map +1 -1
- package/lib/esm/src/runtime/RemoteGraphRunner.d.ts +1 -3
- package/lib/esm/src/runtime/RemoteGraphRunner.d.ts.map +1 -1
- package/package.json +4 -4
package/lib/cjs/index.cjs
CHANGED
|
@@ -1357,9 +1357,9 @@ class LocalGraphRunner extends AbstractGraphRunner {
|
|
|
1357
1357
|
this.engine.setInputs(nodeId, map);
|
|
1358
1358
|
}
|
|
1359
1359
|
}
|
|
1360
|
-
async computeNode(nodeId
|
|
1360
|
+
async computeNode(nodeId) {
|
|
1361
1361
|
if (this.engine)
|
|
1362
|
-
await this.engine.computeNode(nodeId
|
|
1362
|
+
await this.engine.computeNode(nodeId);
|
|
1363
1363
|
}
|
|
1364
1364
|
async runFromHere(nodeId) {
|
|
1365
1365
|
if (this.engine)
|
|
@@ -1970,9 +1970,9 @@ class RemoteGraphRunner extends AbstractGraphRunner {
|
|
|
1970
1970
|
this.emit("status", { running: true, runMode });
|
|
1971
1971
|
}
|
|
1972
1972
|
}
|
|
1973
|
-
async computeNode(nodeId
|
|
1973
|
+
async computeNode(nodeId) {
|
|
1974
1974
|
const client = await this.ensureClient();
|
|
1975
|
-
await client.engine.computeNode(nodeId
|
|
1975
|
+
await client.engine.computeNode(nodeId);
|
|
1976
1976
|
}
|
|
1977
1977
|
async runFromHere(nodeId) {
|
|
1978
1978
|
const client = await this.ensureClient();
|
|
@@ -4475,125 +4475,94 @@ function WorkbenchProvider({ wb, runner, overrides, uiVersion, children, }) {
|
|
|
4475
4475
|
const offWbGraphUiChangedForLog = wb.on("graphUiChanged", add("workbench", "graphUiChanged"));
|
|
4476
4476
|
const offWbValidationChanged = wb.on("validationChanged", add("workbench", "validationChanged"));
|
|
4477
4477
|
// Ensure newly added nodes start as invalidated until first evaluation
|
|
4478
|
-
const
|
|
4479
|
-
|
|
4480
|
-
|
|
4481
|
-
|
|
4482
|
-
|
|
4483
|
-
|
|
4484
|
-
|
|
4485
|
-
|
|
4486
|
-
|
|
4487
|
-
|
|
4488
|
-
|
|
4489
|
-
|
|
4490
|
-
|
|
4491
|
-
|
|
4492
|
-
|
|
4493
|
-
|
|
4494
|
-
await runner.copyOutputs(change.copyOutputsFrom, change.nodeId, { dry: isDry });
|
|
4495
|
-
}
|
|
4496
|
-
}
|
|
4497
|
-
if (change.type === "setInputs") {
|
|
4498
|
-
await runner.setInputs(change.nodeId, change.inputs, { dry: isDry });
|
|
4499
|
-
}
|
|
4500
|
-
}
|
|
4501
|
-
}
|
|
4502
|
-
if (event.commit) {
|
|
4503
|
-
await saveUiRuntimeMetadata(wb, runner);
|
|
4504
|
-
const history = await runner.commit(batchReason).catch((err) => {
|
|
4505
|
-
console.error("[WorkbenchContext] Error committing batch:", err);
|
|
4506
|
-
return undefined;
|
|
4507
|
-
});
|
|
4508
|
-
if (history)
|
|
4509
|
-
wb.setHistory(history);
|
|
4510
|
-
}
|
|
4511
|
-
}
|
|
4512
|
-
catch (err) {
|
|
4513
|
-
console.error("[WorkbenchContext] Error processing batch:", err);
|
|
4514
|
-
}
|
|
4478
|
+
const GRAPH_REASON_BY_CHANGE = {
|
|
4479
|
+
addNode: "add-node",
|
|
4480
|
+
removeNode: "remove-node",
|
|
4481
|
+
connect: "connect-edge",
|
|
4482
|
+
disconnect: "disconnect-edge",
|
|
4483
|
+
updateParams: "update-node-params",
|
|
4484
|
+
updateEdgeType: "update-edge-type",
|
|
4485
|
+
setInputs: "set-inputs",
|
|
4486
|
+
updateResolvedHandles: "update-resolved-handles",
|
|
4487
|
+
};
|
|
4488
|
+
const getGraphReason = (event) => {
|
|
4489
|
+
const changeType = event.change?.type;
|
|
4490
|
+
return (changeType && GRAPH_REASON_BY_CHANGE[changeType]) || "graph-changed";
|
|
4491
|
+
};
|
|
4492
|
+
const commitGraphChange = async (shouldCommit, reason, errorPrefix) => {
|
|
4493
|
+
if (!shouldCommit)
|
|
4515
4494
|
return;
|
|
4495
|
+
await saveUiRuntimeMetadata(wb, runner);
|
|
4496
|
+
const history = await runner.commit(reason).catch((err) => {
|
|
4497
|
+
console.error(errorPrefix, err);
|
|
4498
|
+
return undefined;
|
|
4499
|
+
});
|
|
4500
|
+
if (history)
|
|
4501
|
+
wb.setHistory(history);
|
|
4502
|
+
};
|
|
4503
|
+
const applyAddNodeEffects = async (nodeId, inputs, copyOutputsFrom, dry) => {
|
|
4504
|
+
if (inputs) {
|
|
4505
|
+
await runner.setInputs(nodeId, inputs, { dry });
|
|
4516
4506
|
}
|
|
4517
|
-
|
|
4518
|
-
|
|
4519
|
-
|
|
4520
|
-
|
|
4521
|
-
|
|
4522
|
-
|
|
4523
|
-
|
|
4524
|
-
|
|
4525
|
-
|
|
4526
|
-
|
|
4527
|
-
|
|
4528
|
-
|
|
4529
|
-
|
|
4530
|
-
|
|
4531
|
-
|
|
4532
|
-
|
|
4533
|
-
else if (changeType === "updateParams") {
|
|
4534
|
-
reason = "update-node-params";
|
|
4535
|
-
}
|
|
4536
|
-
else if (changeType === "updateEdgeType") {
|
|
4537
|
-
reason = "update-edge-type";
|
|
4538
|
-
}
|
|
4539
|
-
else if (changeType === "setInputs") {
|
|
4540
|
-
reason = "set-inputs";
|
|
4507
|
+
if (copyOutputsFrom) {
|
|
4508
|
+
await runner.copyOutputs(copyOutputsFrom, nodeId, { dry });
|
|
4509
|
+
}
|
|
4510
|
+
};
|
|
4511
|
+
const applyBatchGraphChange = async (event) => {
|
|
4512
|
+
if (event.change?.type !== "batch")
|
|
4513
|
+
return;
|
|
4514
|
+
const { changes } = event.change;
|
|
4515
|
+
const dry = !!event.dry;
|
|
4516
|
+
if (!runner.isRunning())
|
|
4517
|
+
return;
|
|
4518
|
+
const hasNodeOps = changes.some((c) => c.type === "addNode" && (c.inputs || c.copyOutputsFrom));
|
|
4519
|
+
await runner.update(event.def, { dry: dry || hasNodeOps });
|
|
4520
|
+
for (const change of changes) {
|
|
4521
|
+
if (change.type === "addNode") {
|
|
4522
|
+
await applyAddNodeEffects(change.nodeId, change.inputs, change.copyOutputsFrom, dry);
|
|
4541
4523
|
}
|
|
4542
|
-
else if (
|
|
4543
|
-
|
|
4524
|
+
else if (change.type === "setInputs") {
|
|
4525
|
+
await runner.setInputs(change.nodeId, change.inputs, { dry });
|
|
4544
4526
|
}
|
|
4545
4527
|
}
|
|
4528
|
+
};
|
|
4529
|
+
const applySingleGraphChange = async (event) => {
|
|
4530
|
+
if (event.change?.type === "batch")
|
|
4531
|
+
return;
|
|
4546
4532
|
if (event.change?.type === "setInputs") {
|
|
4547
4533
|
const { nodeId, inputs } = event.change;
|
|
4548
4534
|
await runner.setInputs(nodeId, inputs, { dry: event.dry });
|
|
4549
4535
|
}
|
|
4550
|
-
if (!runner.isRunning())
|
|
4551
|
-
|
|
4552
|
-
|
|
4553
|
-
|
|
4554
|
-
|
|
4555
|
-
|
|
4556
|
-
|
|
4557
|
-
|
|
4558
|
-
wb.setHistory(history);
|
|
4536
|
+
if (!runner.isRunning())
|
|
4537
|
+
return;
|
|
4538
|
+
if (event.change?.type === "addNode") {
|
|
4539
|
+
const { nodeId, inputs, copyOutputsFrom } = event.change;
|
|
4540
|
+
if (event.dry) {
|
|
4541
|
+
await runner.update(event.def, { dry: true });
|
|
4542
|
+
await applyAddNodeEffects(nodeId, inputs, copyOutputsFrom, true);
|
|
4543
|
+
return;
|
|
4559
4544
|
}
|
|
4545
|
+
await runner.update(event.def, { dry: !!inputs });
|
|
4546
|
+
await applyAddNodeEffects(nodeId, inputs, undefined, false);
|
|
4560
4547
|
return;
|
|
4561
4548
|
}
|
|
4549
|
+
if (event.change?.type !== "setInputs" && event.change?.type !== "updateResolvedHandles") {
|
|
4550
|
+
await runner.update(event.def, { dry: event.dry });
|
|
4551
|
+
}
|
|
4552
|
+
};
|
|
4553
|
+
const offWbGraphChangedForUpdate = wb.on("graphChanged", async (event) => {
|
|
4562
4554
|
try {
|
|
4563
|
-
if (event.change?.type === "
|
|
4564
|
-
|
|
4565
|
-
|
|
4566
|
-
|
|
4567
|
-
if (inputs) {
|
|
4568
|
-
await runner.setInputs(nodeId, inputs, { dry: true });
|
|
4569
|
-
}
|
|
4570
|
-
if (copyOutputsFrom) {
|
|
4571
|
-
await runner.copyOutputs(copyOutputsFrom, nodeId, { dry: true });
|
|
4572
|
-
}
|
|
4573
|
-
}
|
|
4574
|
-
else {
|
|
4575
|
-
await runner.update(event.def, { dry: !!inputs });
|
|
4576
|
-
if (inputs) {
|
|
4577
|
-
await runner.setInputs(nodeId, inputs, { dry: false });
|
|
4578
|
-
}
|
|
4579
|
-
}
|
|
4580
|
-
}
|
|
4581
|
-
else if (event.change?.type !== "setInputs" && event.change?.type !== "updateResolvedHandles") {
|
|
4582
|
-
await runner.update(event.def, { dry: event.dry });
|
|
4583
|
-
}
|
|
4584
|
-
if (event.commit) {
|
|
4585
|
-
await saveUiRuntimeMetadata(wb, runner);
|
|
4586
|
-
const history = await runner.commit(event.reason ?? reason).catch((err) => {
|
|
4587
|
-
console.error("[WorkbenchContext] Error committing after update:", err);
|
|
4588
|
-
return undefined;
|
|
4589
|
-
});
|
|
4590
|
-
if (history) {
|
|
4591
|
-
wb.setHistory(history);
|
|
4592
|
-
}
|
|
4555
|
+
if (event.change?.type === "batch") {
|
|
4556
|
+
await applyBatchGraphChange(event);
|
|
4557
|
+
await commitGraphChange(event.commit, event.reason ?? "batch", "[WorkbenchContext] Error committing batch:");
|
|
4558
|
+
return;
|
|
4593
4559
|
}
|
|
4560
|
+
const reason = getGraphReason(event);
|
|
4561
|
+
await applySingleGraphChange(event);
|
|
4562
|
+
await commitGraphChange(event.commit, event.reason ?? reason, "[WorkbenchContext] Error committing:");
|
|
4594
4563
|
}
|
|
4595
4564
|
catch (err) {
|
|
4596
|
-
console.error("[WorkbenchContext] Error
|
|
4565
|
+
console.error("[WorkbenchContext] Error processing graph change:", err);
|
|
4597
4566
|
}
|
|
4598
4567
|
});
|
|
4599
4568
|
const offWbSetValidation = wb.on("validationChanged", (r) => setValidation(r));
|