@bian-womp/spark-workbench 0.1.11 → 0.1.13

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.
@@ -89,13 +89,13 @@ export type GraphPositionMap = Record<string, {
89
89
  y: number;
90
90
  }>;
91
91
  export interface NodeRunStatus {
92
- running?: boolean;
92
+ activeRuns: number;
93
93
  progress?: number;
94
94
  invalidated?: boolean;
95
95
  lastError?: unknown;
96
96
  }
97
97
  export interface EdgeRunStatus {
98
- running?: boolean;
98
+ activeRuns: number;
99
99
  lastError?: unknown;
100
100
  }
101
101
  export type DebugEvent<T = unknown> = {
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../../src/core/contracts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../../src/core/contracts.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"WorkbenchContext.provider.d.ts","sourceRoot":"","sources":["../../../../../src/misc/context/WorkbenchContext.provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AACzE,OAAO,KAAK,EACV,QAAQ,EAGT,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAmB,MAAM,2BAA2B,CAAC;AAezE,wBAAgB,iBAAiB,CAAC,EAChC,EAAE,EACF,MAAM,EACN,QAAQ,EACR,WAAW,EACX,QAAQ,GACT,EAAE;IACD,EAAE,EAAE,iBAAiB,CAAC;IACtB,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAC;IACnC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,2CA6YA"}
1
+ {"version":3,"file":"WorkbenchContext.provider.d.ts","sourceRoot":"","sources":["../../../../../src/misc/context/WorkbenchContext.provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AACzE,OAAO,KAAK,EACV,QAAQ,EAGT,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAmB,MAAM,2BAA2B,CAAC;AAezE,wBAAgB,iBAAiB,CAAC,EAChC,EAAE,EACF,MAAM,EACN,QAAQ,EACR,WAAW,EACX,QAAQ,GACT,EAAE;IACD,EAAE,EAAE,iBAAiB,CAAC;IACtB,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAC;IACnC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,2CA2ZA"}
@@ -44,6 +44,7 @@ export declare class GraphRunner {
44
44
  update(def: GraphDefinition): void;
45
45
  launch(def: GraphDefinition, opts: RunnerOptions): void;
46
46
  setInput(nodeId: string, handle: string, value: unknown): void;
47
+ setInputs(nodeId: string, inputs: Record<string, unknown>): void;
47
48
  step(): Promise<void>;
48
49
  computeNode(nodeId: string): Promise<void>;
49
50
  flush(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"GraphRunner.d.ts","sourceRoot":"","sources":["../../../../src/runtime/GraphRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GraphRunner.d.ts","sourceRoot":"","sources":["../../../../src/runtime/GraphRunner.ts"],"names":[],"mappings":"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"}
package/lib/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { GraphBuilder, StepEngine, HybridEngine, PullEngine, BatchedEngine, PushEngine, createSimpleGraphRegistry, createSimpleGraphDef, createValidationGraphRegistry, createValidationGraphDef, createProgressGraphRegistry, createProgressGraphDef, createAsyncGraphRegistry, createAsyncGraphDef, Registry } from '@bian-womp/spark-graph';
2
- import { HttpPollingTransport, WebSocketTransport, RemoteRunner } from '@bian-womp/spark-remote';
2
+ import { RemoteEngine, HttpPollingTransport, WebSocketTransport, RemoteRunner } from '@bian-womp/spark-remote';
3
3
  import React, { useCallback, useState, useEffect, useMemo, createContext, useContext, useRef } from 'react';
4
4
  import { jsx, jsxs } from 'react/jsx-runtime';
5
5
  import { XCircleIcon, WarningCircleIcon } from '@phosphor-icons/react';
@@ -341,19 +341,9 @@ class GraphRunner {
341
341
  if (!this.runtime)
342
342
  return;
343
343
  // Prevent mid-run churn while wiring changes are applied
344
- try {
345
- this.runtime.pause();
346
- }
347
- catch {
348
- console.error("Failed to pause runtime");
349
- }
344
+ this.runtime.pause();
350
345
  this.runtime.update(def, this.registry);
351
- try {
352
- this.runtime.resume();
353
- }
354
- catch {
355
- console.error("Failed to resume runtime");
356
- }
346
+ this.runtime.resume();
357
347
  this.emit("invalidate", { reason: "graph-updated" });
358
348
  return;
359
349
  }
@@ -407,9 +397,7 @@ class GraphRunner {
407
397
  this.runningKind = opts.engine;
408
398
  this.emit("status", { running: true, engine: this.runningKind });
409
399
  for (const [nodeId, map] of Object.entries(this.stagedInputs)) {
410
- for (const [handle, value] of Object.entries(map)) {
411
- this.engine.setInput(nodeId, handle, value);
412
- }
400
+ this.engine.setInputs(nodeId, map);
413
401
  }
414
402
  return;
415
403
  }
@@ -437,9 +425,7 @@ class GraphRunner {
437
425
  this.runningKind = "push";
438
426
  this.emit("status", { running: true, engine: this.runningKind });
439
427
  for (const [nodeId, map] of Object.entries(this.stagedInputs)) {
440
- for (const [handle, value] of Object.entries(map)) {
441
- this.engine.setInput(nodeId, handle, value);
442
- }
428
+ this.engine.setInputs(nodeId, map);
443
429
  }
444
430
  });
445
431
  }
@@ -455,6 +441,51 @@ class GraphRunner {
455
441
  this.emit("value", { nodeId, handle, value, io: "input" });
456
442
  }
457
443
  }
444
+ // Batch update multiple inputs on a node and trigger a single run
445
+ setInputs(nodeId, inputs) {
446
+ if (!inputs)
447
+ return;
448
+ if (!this.stagedInputs[nodeId])
449
+ this.stagedInputs[nodeId] = {};
450
+ Object.assign(this.stagedInputs[nodeId], inputs);
451
+ // Local running: pause, set all inputs, resume, schedule a single recompute
452
+ if (this.backend.kind === "local" && this.engine && this.runtime) {
453
+ this.runtime.pause();
454
+ try {
455
+ for (const [handle, value] of Object.entries(inputs)) {
456
+ this.engine.setInput(nodeId, handle, value);
457
+ }
458
+ }
459
+ finally {
460
+ this.runtime.resume();
461
+ try {
462
+ this.runtime.__unsafe_scheduleInputsChanged(nodeId);
463
+ }
464
+ catch { }
465
+ }
466
+ }
467
+ // Remote running: forward inputs individually (no batch API available)
468
+ else if (this.engine && this.backend.kind !== "local") {
469
+ // Prefer batch if supported by remote engine
470
+ if (this.engine instanceof RemoteEngine) {
471
+ this.engine.setInputs(nodeId, inputs);
472
+ }
473
+ else {
474
+ console.warn("Remote engine does not support setInputs");
475
+ for (const [handle, value] of Object.entries(inputs)) {
476
+ this.engine.setInput(nodeId, handle, value);
477
+ }
478
+ }
479
+ }
480
+ // Not running: emit value events so UI reflects staged values
481
+ else if (!this.engine) {
482
+ // Not running: emit a single synthetic value event per handle; UI will coalesce
483
+ console.warn("Remote engine does not exists");
484
+ for (const [handle, value] of Object.entries(inputs)) {
485
+ this.emit("value", { nodeId, handle, value, io: "input" });
486
+ }
487
+ }
488
+ }
458
489
  async step() {
459
490
  if (this.backend.kind !== "local")
460
491
  return; // unsupported remotely
@@ -815,7 +846,7 @@ function toReactFlow(def, positions, registry, opts) {
815
846
  })
816
847
  .map((e) => {
817
848
  const st = opts.edgeStatus?.[e.id];
818
- const isRunning = !!st?.running;
849
+ const isRunning = !!st?.activeRuns;
819
850
  const hasError = !!st?.lastError;
820
851
  const isInvalidEdge = !!opts.edgeValidation?.[e.id];
821
852
  const style = hasError || isInvalidEdge
@@ -846,7 +877,7 @@ function getNodeBorderClassNames(args) {
846
877
  const hasError = !!status.lastError;
847
878
  const hasValidationError = issues.some((i) => i?.level === "error");
848
879
  const hasValidationWarning = !hasValidationError && issues.length > 0;
849
- const isRunning = !!status.running;
880
+ const isRunning = !!status.activeRuns;
850
881
  const isInvalid = !!status.invalidated && !isRunning && !hasError;
851
882
  const borderWidth = selected ? "border-2" : "border";
852
883
  const borderStyle = isInvalid ? "border-dashed" : "border-solid";
@@ -961,7 +992,7 @@ function WorkbenchProvider({ wb, runner, registry, setRegistry, children, }) {
961
992
  const nodeId = e?.nodeId;
962
993
  setNodeStatus((s) => ({
963
994
  ...s,
964
- [nodeId]: { ...(s[nodeId] ?? {}), invalidated: true },
995
+ [nodeId]: { ...s[nodeId], invalidated: true },
965
996
  }));
966
997
  }
967
998
  return add("runner", "value")(e);
@@ -973,7 +1004,7 @@ function WorkbenchProvider({ wb, runner, registry, setRegistry, children, }) {
973
1004
  const edgeId = edgeError.edgeId;
974
1005
  setEdgeStatus((s) => ({
975
1006
  ...s,
976
- [edgeId]: { ...(s[edgeId] ?? {}), lastError: edgeError.err },
1007
+ [edgeId]: { ...s[edgeId], lastError: edgeError.err },
977
1008
  }));
978
1009
  }
979
1010
  else if (nodeError.nodeId) {
@@ -981,7 +1012,7 @@ function WorkbenchProvider({ wb, runner, registry, setRegistry, children, }) {
981
1012
  setNodeStatus((s) => ({
982
1013
  ...s,
983
1014
  [nodeId]: {
984
- ...(s[nodeId] ?? {}),
1015
+ ...s[nodeId],
985
1016
  lastError: nodeError.err,
986
1017
  },
987
1018
  }));
@@ -993,7 +1024,7 @@ function WorkbenchProvider({ wb, runner, registry, setRegistry, children, }) {
993
1024
  setNodeStatus((s) => {
994
1025
  const next = {};
995
1026
  for (const n of wb.export().nodes) {
996
- next[n.nodeId] = { ...(s[n.nodeId] ?? {}), invalidated: true };
1027
+ next[n.nodeId] = { ...s[n.nodeId], invalidated: true };
997
1028
  }
998
1029
  return next;
999
1030
  });
@@ -1005,47 +1036,61 @@ function WorkbenchProvider({ wb, runner, registry, setRegistry, children, }) {
1005
1036
  return;
1006
1037
  if (s.kind === "node-start") {
1007
1038
  const id = s.nodeId;
1008
- setNodeStatus((prev) => ({
1009
- ...prev,
1010
- [id]: {
1011
- ...(prev[id] ?? {}),
1012
- running: true,
1013
- progress: 0,
1014
- invalidated: false,
1015
- },
1016
- }));
1039
+ setNodeStatus((prev) => {
1040
+ const current = prev[id]?.activeRuns ?? 0;
1041
+ return {
1042
+ ...prev,
1043
+ [id]: {
1044
+ ...prev[id],
1045
+ activeRuns: current + 1,
1046
+ progress: 0,
1047
+ invalidated: false,
1048
+ },
1049
+ };
1050
+ });
1017
1051
  }
1018
1052
  else if (s.kind === "node-progress") {
1019
1053
  const id = s.nodeId;
1020
1054
  setNodeStatus((prev) => ({
1021
1055
  ...prev,
1022
1056
  [id]: {
1023
- ...(prev[id] ?? {}),
1024
- running: true,
1057
+ ...prev[id],
1025
1058
  progress: Number(s.progress) || 0,
1026
1059
  },
1027
1060
  }));
1028
1061
  }
1029
1062
  else if (s.kind === "node-done") {
1030
1063
  const id = s.nodeId;
1031
- setNodeStatus((prev) => ({
1032
- ...prev,
1033
- [id]: { ...(prev[id] ?? {}), running: false },
1034
- }));
1064
+ setNodeStatus((prev) => {
1065
+ const current = prev[id]?.activeRuns ?? 0;
1066
+ return {
1067
+ ...prev,
1068
+ [id]: {
1069
+ ...prev[id],
1070
+ activeRuns: current - 1,
1071
+ },
1072
+ };
1073
+ });
1035
1074
  }
1036
1075
  else if (s.kind === "edge-start") {
1037
1076
  const id = s.edgeId;
1038
- setEdgeStatus((prev) => ({
1039
- ...prev,
1040
- [id]: { ...(prev[id] ?? {}), running: true },
1041
- }));
1077
+ setEdgeStatus((prev) => {
1078
+ const current = prev[id]?.activeRuns ?? 0;
1079
+ return {
1080
+ ...prev,
1081
+ [id]: { ...prev[id], activeRuns: current + 1 },
1082
+ };
1083
+ });
1042
1084
  }
1043
1085
  else if (s.kind === "edge-done") {
1044
1086
  const id = s.edgeId;
1045
- setEdgeStatus((prev) => ({
1046
- ...prev,
1047
- [id]: { ...(prev[id] ?? {}), running: false },
1048
- }));
1087
+ setEdgeStatus((prev) => {
1088
+ const current = prev[id]?.activeRuns ?? 0;
1089
+ return {
1090
+ ...prev,
1091
+ [id]: { ...prev[id], activeRuns: current - 1 },
1092
+ };
1093
+ });
1049
1094
  }
1050
1095
  return add("runner", "stats")(s);
1051
1096
  });
@@ -1057,7 +1102,7 @@ function WorkbenchProvider({ wb, runner, registry, setRegistry, children, }) {
1057
1102
  const id = change.nodeId;
1058
1103
  setNodeStatus((s) => ({
1059
1104
  ...s,
1060
- [id]: { ...(s[id] ?? {}), invalidated: true },
1105
+ [id]: { ...s[id], invalidated: true },
1061
1106
  }));
1062
1107
  }
1063
1108
  });
@@ -1409,7 +1454,7 @@ const DefaultNode = React.memo(function DefaultNode({ id, data, selected, isConn
1409
1454
  const { typeId, showValues, inputValues, outputValues, toString } = data;
1410
1455
  const inputEntries = data.inputHandles ?? [];
1411
1456
  const outputEntries = data.outputHandles ?? [];
1412
- const status = data.status ?? {};
1457
+ const status = data.status ?? { activeRuns: 0 };
1413
1458
  const validation = data.validation ?? {
1414
1459
  inputs: [],
1415
1460
  outputs: [],
@@ -1424,7 +1469,7 @@ const DefaultNode = React.memo(function DefaultNode({ id, data, selected, isConn
1424
1469
  const hasError = !!status.lastError;
1425
1470
  const hasValidationError = validation.issues.some((i) => i.level === "error");
1426
1471
  const hasValidationWarning = !hasValidationError && validation.issues.length > 0;
1427
- const isRunning = !!status.running;
1472
+ const isRunning = !!status.activeRuns;
1428
1473
  const isInvalid = !!status.invalidated && !isRunning && !hasError;
1429
1474
  // Border color encodes severity; thickness encodes selection; style (dashed) encodes invalidated
1430
1475
  const borderWidth = selected ? "border-2" : "border";