@bian-womp/spark-workbench 0.1.13 → 0.1.14

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.
@@ -1,6 +1,15 @@
1
- import { Registry } from "@bian-womp/spark-graph";
1
+ import { Registry, GraphDefinition } from "@bian-womp/spark-graph";
2
2
  import { AbstractWorkbench } from "../core/AbstractWorkbench";
3
- import { GraphRunner } from "../runtime/GraphRunner";
3
+ import { EngineKind, GraphRunner } from "../runtime/GraphRunner";
4
+ type ExampleDescriptor = {
5
+ id: string;
6
+ label: string;
7
+ load: () => Promise<{
8
+ registry?: Registry;
9
+ def: GraphDefinition;
10
+ }>;
11
+ defaultEngine?: EngineKind;
12
+ };
4
13
  type WorkbenchOverrides = {
5
14
  toString?: (baseToString: (typeId?: string, value?: unknown) => string, ctx: {
6
15
  registry: Registry;
@@ -16,6 +25,7 @@ type WorkbenchOverrides = {
16
25
  registerUI?: (baseRegisterUI: (wb: AbstractWorkbench) => void, ctx: {
17
26
  wb: AbstractWorkbench;
18
27
  }) => void;
28
+ getExamples?: (defaults: ExampleDescriptor[]) => ExampleDescriptor[];
19
29
  };
20
30
  export declare function WorkbenchStudio({ engine, onEngineChange, example, onExampleChange, backendKind, onBackendKindChange, httpBaseUrl, onHttpBaseUrlChange, wsUrl, onWsUrlChange, debug, onDebugChange, showValues, onShowValuesChange, hideWorkbench, onHideWorkbenchChange, autoScroll, onAutoScrollChange, overrides, }: {
21
31
  engine?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"WorkbenchStudio.d.ts","sourceRoot":"","sources":["../../../../src/misc/WorkbenchStudio.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkbenchStudio.d.ts","sourceRoot":"","sources":["../../../../src/misc/WorkbenchStudio.tsx"],"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,2CA2ZA"}
1
+ {"version":3,"file":"WorkbenchContext.provider.d.ts","sourceRoot":"","sources":["../../../../../src/misc/context/WorkbenchContext.provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAKzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAmB,MAAM,2BAA2B,CAAC;AAgBzE,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,2CA0ZA"}
@@ -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,4 +1,4 @@
1
- import { GraphBuilder, StepEngine, HybridEngine, PullEngine, BatchedEngine, PushEngine, createSimpleGraphRegistry, createSimpleGraphDef, createValidationGraphRegistry, createValidationGraphDef, createProgressGraphRegistry, createProgressGraphDef, createAsyncGraphRegistry, createAsyncGraphDef, Registry } from '@bian-womp/spark-graph';
1
+ import { GraphBuilder, StepEngine, HybridEngine, PullEngine, BatchedEngine, PushEngine, createSimpleGraphRegistry, createSimpleGraphDef, createAsyncGraphDef, createAsyncGraphRegistry, createProgressGraphDef, createProgressGraphRegistry, createValidationGraphDef, createValidationGraphRegistry, Registry } from '@bian-womp/spark-graph';
2
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';
@@ -406,6 +406,31 @@ class GraphRunner {
406
406
  await rc.runner.build(def);
407
407
  // Signal UI after remote build as well
408
408
  this.emit("invalidate", { reason: "graph-built" });
409
+ // Hydrate current remote inputs/outputs (including defaults) into cache
410
+ try {
411
+ const snap = await rc.runner.snapshot();
412
+ for (const [nodeId, map] of Object.entries(snap.inputs || {})) {
413
+ for (const [handle, value] of Object.entries(map || {})) {
414
+ rc.valueCache.set(`${nodeId}.${handle}`, {
415
+ io: "input",
416
+ value,
417
+ });
418
+ this.emit("value", { nodeId, handle, value, io: "input" });
419
+ }
420
+ }
421
+ for (const [nodeId, map] of Object.entries(snap.outputs || {})) {
422
+ for (const [handle, value] of Object.entries(map || {})) {
423
+ rc.valueCache.set(`${nodeId}.${handle}`, {
424
+ io: "output",
425
+ value,
426
+ });
427
+ this.emit("value", { nodeId, handle, value, io: "output" });
428
+ }
429
+ }
430
+ }
431
+ catch {
432
+ console.error("Failed to hydrate remote inputs/outputs");
433
+ }
409
434
  const eng = rc.runner.getEngine();
410
435
  if (!rc.listenersBound) {
411
436
  eng.on("value", (e) => {
@@ -450,32 +475,13 @@ class GraphRunner {
450
475
  Object.assign(this.stagedInputs[nodeId], inputs);
451
476
  // Local running: pause, set all inputs, resume, schedule a single recompute
452
477
  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
- }
478
+ this.engine.setInputs(nodeId, inputs);
466
479
  }
467
480
  // 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
- }
481
+ else if (this.engine &&
482
+ this.backend.kind !== "local" &&
483
+ this.engine instanceof RemoteEngine) {
484
+ this.engine.setInputs(nodeId, inputs);
479
485
  }
480
486
  // Not running: emit value events so UI reflects staged values
481
487
  else if (!this.engine) {
@@ -550,7 +556,7 @@ class GraphRunner {
550
556
  for (const n of def.nodes) {
551
557
  const staged = this.stagedInputs[n.nodeId] ?? {};
552
558
  const runtimeInputs = this.runtime
553
- ? this.runtime.__unsafe_getNodeData?.(n.nodeId)?.inputs ?? {}
559
+ ? this.runtime.getNodeData?.(n.nodeId)?.inputs ?? {}
554
560
  : {};
555
561
  if (this.isRunning()) {
556
562
  out[n.nodeId] = runtimeInputs;
@@ -875,7 +881,7 @@ function getNodeBorderClassNames(args) {
875
881
  const status = args.status || {};
876
882
  const issues = args.validation?.issues ?? [];
877
883
  const hasError = !!status.lastError;
878
- const hasValidationError = issues.some((i) => i?.level === "error");
884
+ const hasValidationError = issues.some((i) => i.level === "error");
879
885
  const hasValidationWarning = !hasValidationError && issues.length > 0;
880
886
  const isRunning = !!status.activeRuns;
881
887
  const isInvalid = !!status.invalidated && !isRunning && !hasError;
@@ -977,7 +983,8 @@ function WorkbenchProvider({ wb, runner, registry, setRegistry, children, }) {
977
983
  const add = (source, type) => (payload) => setEvents((prev) => {
978
984
  if (source === "workbench" &&
979
985
  (type === "graphChanged" || type === "graphUiChanged")) {
980
- const changeType = payload?.change?.type;
986
+ const changeType = payload
987
+ .change?.type;
981
988
  if (changeType === "moveNode" || changeType === "moveNodes")
982
989
  return prev;
983
990
  }
@@ -1734,6 +1741,45 @@ function WorkbenchStudioCanvas({ setRegistry, autoScroll, onAutoScrollChange, ex
1734
1741
  ? registry.nodes.get(selectedNode.typeId)
1735
1742
  : undefined;
1736
1743
  const [exampleState, setExampleState] = useState(example ?? "simple");
1744
+ const defaultExamples = useMemo(() => [
1745
+ {
1746
+ id: "simple",
1747
+ label: "Simple",
1748
+ load: async () => ({
1749
+ registry: createSimpleGraphRegistry(),
1750
+ def: createSimpleGraphDef(),
1751
+ }),
1752
+ },
1753
+ {
1754
+ id: "async",
1755
+ label: "Async Chain",
1756
+ load: async () => ({
1757
+ registry: createAsyncGraphRegistry(),
1758
+ def: createAsyncGraphDef(),
1759
+ }),
1760
+ },
1761
+ {
1762
+ id: "progress",
1763
+ label: "Progress + Errors",
1764
+ load: async () => ({
1765
+ registry: createProgressGraphRegistry(),
1766
+ def: createProgressGraphDef(),
1767
+ }),
1768
+ },
1769
+ {
1770
+ id: "validation",
1771
+ label: "Validation",
1772
+ load: async () => ({
1773
+ registry: createValidationGraphRegistry(),
1774
+ def: createValidationGraphDef(),
1775
+ }),
1776
+ },
1777
+ ], []);
1778
+ const examples = useMemo(() => {
1779
+ if (overrides?.getExamples)
1780
+ return overrides.getExamples(defaultExamples);
1781
+ return defaultExamples;
1782
+ }, [overrides, defaultExamples]);
1737
1783
  const lastAutoLaunched = useRef(undefined);
1738
1784
  const autoLayoutRan = useRef(false);
1739
1785
  const applyExample = useCallback(async (key) => {
@@ -1741,46 +1787,21 @@ function WorkbenchStudioCanvas({ setRegistry, autoScroll, onAutoScrollChange, ex
1741
1787
  alert(`Stop engine before switching example.`);
1742
1788
  return;
1743
1789
  }
1744
- switch (key) {
1745
- case "simple": {
1746
- const r = createSimpleGraphRegistry();
1747
- setRegistry(r);
1748
- wb.setRegistry(r);
1749
- await wb.load(createSimpleGraphDef());
1750
- break;
1751
- }
1752
- case "async": {
1753
- const r = createAsyncGraphRegistry();
1754
- setRegistry(r);
1755
- wb.setRegistry(r);
1756
- await wb.load(createAsyncGraphDef());
1757
- break;
1758
- }
1759
- case "progress": {
1760
- const r = createProgressGraphRegistry();
1761
- setRegistry(r);
1762
- wb.setRegistry(r);
1763
- await wb.load(createProgressGraphDef());
1764
- break;
1765
- }
1766
- case "validation": {
1767
- const r = createValidationGraphRegistry();
1768
- setRegistry(r);
1769
- wb.setRegistry(r);
1770
- await wb.load(createValidationGraphDef());
1771
- break;
1772
- }
1773
- default: {
1774
- const r = createSimpleGraphRegistry();
1775
- setRegistry(r);
1776
- wb.setRegistry(r);
1777
- await wb.load(createSimpleGraphDef());
1778
- }
1790
+ const ex = examples.find((e) => e.id === key) ?? examples[0];
1791
+ if (!ex)
1792
+ return;
1793
+ const { registry: r, def } = await ex.load();
1794
+ if (r) {
1795
+ setRegistry(r);
1796
+ wb.setRegistry(r);
1779
1797
  }
1798
+ await wb.load(def);
1799
+ // Build a local runtime so seeded defaults are visible pre-run
1800
+ runner.build(wb.export());
1780
1801
  runAutoLayout();
1781
1802
  setExampleState(key);
1782
1803
  onExampleChange?.(key);
1783
- }, [runner, wb, onExampleChange, runAutoLayout]);
1804
+ }, [runner, wb, onExampleChange, runAutoLayout, examples, setRegistry]);
1784
1805
  const hydrateFromBackend = useCallback(async (kind, base) => {
1785
1806
  try {
1786
1807
  const transport = kind === "remote-http"
@@ -2031,9 +2052,9 @@ function WorkbenchStudioCanvas({ setRegistry, autoScroll, onAutoScrollChange, ex
2031
2052
  return overrides.toElement(baseToElement, { registry });
2032
2053
  return baseToElement;
2033
2054
  }, [overrides, baseToElement, registry]);
2034
- return (jsxs("div", { className: "w-full h-screen flex flex-col", children: [jsxs("div", { className: "p-2 border-b border-gray-300 flex gap-2 items-center", children: [runner.isRunning() ? (jsxs("span", { className: "ml-2 text-sm text-green-700", children: ["Running: ", runner.getRunningEngine()] })) : (jsx("span", { className: "ml-2 text-sm text-gray-500", children: "Stopped" })), jsx("label", { className: "ml-2 text-sm", children: "Example:" }), jsxs("select", { className: "border border-gray-300 rounded px-2 py-1", value: exampleState, onChange: (e) => applyExample(e.target.value), disabled: runner.isRunning(), title: runner.isRunning()
2055
+ return (jsxs("div", { className: "w-full h-screen flex flex-col", children: [jsxs("div", { className: "p-2 border-b border-gray-300 flex gap-2 items-center", children: [runner.isRunning() ? (jsxs("span", { className: "ml-2 text-sm text-green-700", children: ["Running: ", runner.getRunningEngine()] })) : (jsx("span", { className: "ml-2 text-sm text-gray-500", children: "Stopped" })), jsx("label", { className: "ml-2 text-sm", children: "Example:" }), jsx("select", { className: "border border-gray-300 rounded px-2 py-1", value: exampleState, onChange: (e) => applyExample(e.target.value), disabled: runner.isRunning(), title: runner.isRunning()
2035
2056
  ? "Stop engine before switching example"
2036
- : undefined, children: [jsx("option", { value: "simple", children: "Simple" }), jsx("option", { value: "async", children: "Async Chain" }), jsx("option", { value: "progress", children: "Progress + Errors" }), jsx("option", { value: "validation", children: "Validation" })] }), jsx("label", { className: "ml-2 text-sm", children: "Backend:" }), jsxs("select", { className: "border border-gray-300 rounded px-2 py-1", value: backendKind, onChange: (e) => onBackendKindChange(e.target.value), disabled: runner.isRunning(), title: runner.isRunning()
2057
+ : undefined, children: examples.map((ex) => (jsx("option", { value: ex.id, children: ex.label }, ex.id))) }), jsx("label", { className: "ml-2 text-sm", children: "Backend:" }), jsxs("select", { className: "border border-gray-300 rounded px-2 py-1", value: backendKind, onChange: (e) => onBackendKindChange(e.target.value), disabled: runner.isRunning(), title: runner.isRunning()
2037
2058
  ? "Stop engine before switching backend"
2038
2059
  : undefined, children: [jsx("option", { value: "local", children: "Local" }), jsx("option", { value: "remote-http", children: "Remote (HTTP)" }), jsx("option", { value: "remote-ws", children: "Remote (WebSocket)" })] }), backendKind === "remote-http" && (jsx("input", { className: "ml-2 border border-gray-300 rounded px-2 py-1 w-72", placeholder: "http://127.0.0.1:18080", value: httpBaseUrl, onChange: (e) => onHttpBaseUrlChange(e.target.value) })), backendKind === "remote-ws" && (jsx("input", { className: "ml-2 border border-gray-300 rounded px-2 py-1 w-72", placeholder: "ws://127.0.0.1:18081", value: wsUrl, onChange: (e) => onWsUrlChange(e.target.value) })), jsxs("select", { className: "border border-gray-300 rounded px-2 py-1", value: runner.getRunningEngine() ?? engine ?? "", onChange: (e) => {
2039
2060
  const kind = e.target.value || undefined;