@bian-womp/spark-workbench 0.3.1 → 0.3.2

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 +1 @@
1
- {"version":3,"file":"WorkbenchStudio.d.ts","sourceRoot":"","sources":["../../../../src/misc/WorkbenchStudio.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,eAAe,EAGhB,MAAM,2BAA2B,CAAC;AAgBnC,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAmBvE,OAAO,EAGL,kBAAkB,EACnB,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAK9D,OAAO,EAEL,oBAAoB,EACpB,YAAY,EAGb,MAAM,yBAAyB,CAAC;AAIjC;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,cAAc,CAAC,EAAE,uBAAuB,CAAC;IACzC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CACtC;AA0tBD,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,mBAAmB,EACnB,KAAK,EACL,aAAa,EACb,KAAK,EACL,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,aAAa,EACb,qBAAqB,EACrB,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,SAAS,EACT,MAAM,EACN,QAAQ,GACT,EAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAClD,WAAW,EAAE,oBAAoB,CAAC;IAClC,mBAAmB,EAAE,CAAC,CAAC,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,aAAa,EAAE,OAAO,CAAC;IACvB,qBAAqB,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;QACd,EAAE,EAAE,iBAAiB,CAAC;QACtB,MAAM,EAAE,YAAY,CAAC;QACrB,eAAe,EAAE,CACf,GAAG,EAAE,eAAe,EACpB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAC7C,OAAO,CAAC,IAAI,CAAC,CAAC;KACpB,KAAK,IAAI,CAAC;IACX,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QAChB,GAAG,EAAE,eAAe,CAAC;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;KACjD,KAAK,IAAI,CAAC;CACZ,2CA8GA"}
1
+ {"version":3,"file":"WorkbenchStudio.d.ts","sourceRoot":"","sources":["../../../../src/misc/WorkbenchStudio.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAW,MAAM,2BAA2B,CAAC;AAgB1E,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAmBvE,OAAO,EAGL,kBAAkB,EACnB,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAK9D,OAAO,EAEL,oBAAoB,EACpB,YAAY,EAGb,MAAM,yBAAyB,CAAC;AAIjC;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,cAAc,CAAC,EAAE,uBAAuB,CAAC;IACzC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CACtC;AA6tBD,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,mBAAmB,EACnB,KAAK,EACL,aAAa,EACb,KAAK,EACL,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,aAAa,EACb,qBAAqB,EACrB,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,SAAS,EACT,MAAM,EACN,QAAQ,GACT,EAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAClD,WAAW,EAAE,oBAAoB,CAAC;IAClC,mBAAmB,EAAE,CAAC,CAAC,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,aAAa,EAAE,OAAO,CAAC;IACvB,qBAAqB,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;QACd,EAAE,EAAE,iBAAiB,CAAC;QACtB,MAAM,EAAE,YAAY,CAAC;QACrB,eAAe,EAAE,CACf,GAAG,EAAE,eAAe,EACpB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAC7C,OAAO,CAAC,IAAI,CAAC,CAAC;KACpB,KAAK,IAAI,CAAC;IACX,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QAChB,GAAG,EAAE,eAAe,CAAC;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;KACjD,KAAK,IAAI,CAAC;CACZ,2CA8GA"}
@@ -1,9 +1,9 @@
1
- import { Registry, UnifiedEngine } from "@bian-womp/spark-graph";
1
+ import { Registry, LocalEngine } from "@bian-womp/spark-graph";
2
2
  import type { GraphDefinition, RuntimeSnapshotFull, RunnerOptions } from "@bian-womp/spark-protocol";
3
3
  import { AbstractGraphRunner } from "./AbstractGraphRunner";
4
4
  export declare class LocalGraphRunner extends AbstractGraphRunner {
5
5
  readonly runnerId: string;
6
- protected engine?: UnifiedEngine;
6
+ protected engine?: LocalEngine;
7
7
  constructor(registry: Registry);
8
8
  build(def: GraphDefinition): void;
9
9
  update(def: GraphDefinition, options?: {
@@ -1 +1 @@
1
- {"version":3,"file":"LocalGraphRunner.d.ts","sourceRoot":"","sources":["../../../../src/runtime/LocalGraphRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAgB,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,aAAa,EAEd,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAK5D,qBAAa,gBAAiB,SAAQ,mBAAmB;IACvD,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAS,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;gBAErB,QAAQ,EAAE,QAAQ;IAW9B,KAAK,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI;IAOjC,MAAM,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAkB/D,MAAM,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI;cAgBvC,qBAAqB,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBpE,WAAW,CACf,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QAAE,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAAE,GAC1C,OAAO,CAAC,IAAI,CAAC;IAIV,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAMvC,UAAU,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAiBzE,SAAS,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAuBxE,eAAe,CACb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAC1B,IAAI;IAMP,SAAS,CACP,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAC1B,IAAI;IAwBP,WAAW,CACT,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAC1B,IAAI;IAMP,cAAc,QACP,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,SACrB;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,UAgBzC;IAEF,cAAc,QAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAEtD;IAEI,YAAY;;;;;;IA4BZ,iBAAiB,CACrB,OAAO,EAAE,mBAAmB,EAC5B,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE;IAUlD,OAAO,CAAC,OAAO;IAgCf,OAAO,IAAI,IAAI;CAKhB"}
1
+ {"version":3,"file":"LocalGraphRunner.d.ts","sourceRoot":"","sources":["../../../../src/runtime/LocalGraphRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAgB,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,aAAa,EAEd,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAK5D,qBAAa,gBAAiB,SAAQ,mBAAmB;IACvD,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;gBAEnB,QAAQ,EAAE,QAAQ;IAW9B,KAAK,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI;IAOjC,MAAM,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAY/D,MAAM,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI;cAgBvC,qBAAqB,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBpE,WAAW,CACf,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QAAE,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAAE,GAC1C,OAAO,CAAC,IAAI,CAAC;IAIV,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAMvC,UAAU,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAiBzE,SAAS,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAuBxE,eAAe,CACb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAC1B,IAAI;IAMP,SAAS,CACP,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAC1B,IAAI;IAwBP,WAAW,CACT,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAC1B,IAAI;IAMP,cAAc,QACP,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,SACrB;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,UAgBzC;IAEF,cAAc,QAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAEtD;IAEI,YAAY;;;;;;IA4BZ,iBAAiB,CACrB,OAAO,EAAE,mBAAmB,EAC5B,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE;IAUlD,OAAO,CAAC,OAAO;IAgCf,OAAO,IAAI,IAAI;CAKhB"}
package/lib/esm/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { generateId, createSimpleGraphRegistry, GraphBuilder, getTypedOutputValue, isTypedOutput, getInputTypeId, UnifiedEngine, getTypedOutputTypeId, isInputPrivate, offsetImportedPositions, createSimpleGraphDef, createAsyncGraphDef, createAsyncGraphRegistry, createProgressGraphDef, createProgressGraphRegistry, createValidationGraphDef, createValidationGraphRegistry } from '@bian-womp/spark-graph';
1
+ import { generateId, createSimpleGraphRegistry, GraphBuilder, getTypedOutputValue, isTypedOutput, getInputTypeId, LocalEngine, getTypedOutputTypeId, isInputPrivate, offsetImportedPositions, createSimpleGraphDef, createAsyncGraphDef, createAsyncGraphRegistry, createProgressGraphDef, createProgressGraphRegistry, createValidationGraphDef, createValidationGraphRegistry } from '@bian-womp/spark-graph';
2
2
  import lod from 'lodash';
3
3
  import { RemoteRuntimeClient } from '@bian-womp/spark-remote';
4
4
  import { Position, Handle, NodeResizer, getBezierPath, BaseEdge, useReactFlow, ReactFlowProvider, ReactFlow, Background, BackgroundVariant, MiniMap, Controls } from '@xyflow/react';
@@ -1000,9 +1000,8 @@ class LocalGraphRunner extends AbstractGraphRunner {
1000
1000
  this.setEnvironment = (env, opts) => {
1001
1001
  if (!this.runtime)
1002
1002
  return;
1003
- const wasPaused = this.runtime.isPaused();
1004
- if (opts?.dry && !wasPaused)
1005
- this.runtime.pause();
1003
+ // Use requestPause for dry mode to temporarily pause without affecting base run mode
1004
+ const releasePause = opts?.dry ? this.runtime.requestPause() : null;
1006
1005
  try {
1007
1006
  if (opts?.merge) {
1008
1007
  const current = this.runtime.getEnvironment();
@@ -1014,8 +1013,7 @@ class LocalGraphRunner extends AbstractGraphRunner {
1014
1013
  }
1015
1014
  }
1016
1015
  finally {
1017
- if (opts?.dry && !wasPaused)
1018
- this.runtime.resume();
1016
+ releasePause?.();
1019
1017
  }
1020
1018
  };
1021
1019
  this.getEnvironment = () => {
@@ -1036,20 +1034,14 @@ class LocalGraphRunner extends AbstractGraphRunner {
1036
1034
  update(def, options) {
1037
1035
  if (!this.runtime)
1038
1036
  return;
1039
- const wasPaused = this.runtime.isPaused();
1040
- // Pause runtime if dry option is set (to prevent execution) or if not paused already
1041
- if (options?.dry && !wasPaused) {
1042
- this.runtime.pause();
1043
- }
1037
+ // Use requestPause for dry mode to temporarily pause without affecting base run mode
1038
+ const releasePause = options?.dry ? this.runtime.requestPause() : null;
1044
1039
  try {
1045
1040
  this.runtime.update(def, this.registry);
1046
1041
  this.emit("invalidate", { reason: "graph-updated" });
1047
1042
  }
1048
1043
  finally {
1049
- // Resume only if we paused it due to dry option
1050
- if (options?.dry && !wasPaused) {
1051
- this.runtime.resume();
1052
- }
1044
+ releasePause?.();
1053
1045
  }
1054
1046
  }
1055
1047
  launch(def, opts) {
@@ -1072,7 +1064,7 @@ class LocalGraphRunner extends AbstractGraphRunner {
1072
1064
  if (!this.runtime)
1073
1065
  throw new Error("Runtime not built");
1074
1066
  // Use shared engine factory
1075
- this.engine = new UnifiedEngine(this.runtime, opts?.runMode);
1067
+ this.engine = new LocalEngine(this.runtime, opts?.runMode);
1076
1068
  if (!this.engine)
1077
1069
  throw new Error("Failed to create engine");
1078
1070
  this.engine.on("value", (e) => this.emit("value", e));
@@ -6223,8 +6215,11 @@ function WorkbenchStudioCanvas({ autoScroll, onAutoScrollChange, example, onExam
6223
6215
  const isConnecting = transportStatus.state === "connecting" ||
6224
6216
  transportStatus.state === "retrying";
6225
6217
  // Only allow Start/Stop when transport is connected or local
6218
+ // For local backend, always allow control (transport state is "local")
6219
+ // For remote backends, require connection
6226
6220
  const canControl = transportStatus.state === "connected" ||
6227
- transportStatus.state === "local";
6221
+ transportStatus.state === "local" ||
6222
+ backendKind === "local"; // Always allow control for local backend
6228
6223
  if (isConnecting) {
6229
6224
  return (jsxs("button", { className: "border rounded px-2 py-1.5 text-gray-500 border-gray-400 flex items-center gap-1 disabled:opacity-50", disabled: true, title: "Connecting to backend...", children: [jsx(ClockClockwiseIcon, { size: 16, className: "animate-spin" }), jsx("span", { className: "font-medium ml-1", children: "Connecting..." })] }));
6230
6225
  }
@@ -6247,7 +6242,7 @@ function WorkbenchStudioCanvas({ autoScroll, onAutoScrollChange, example, onExam
6247
6242
  }, disabled: !canControl, title: !canControl
6248
6243
  ? "Waiting for connection"
6249
6244
  : `Start ${runMode === "manual" ? "manual" : "auto"} mode`, children: [jsx(PlayIcon, { size: 16, weight: "fill" }), jsx("span", { className: "font-medium ml-1", children: "Start" })] }));
6250
- }, [transportStatus, isGraphRunning, runner, runMode, wb]);
6245
+ }, [transportStatus, isGraphRunning, runner, runMode, wb, backendKind]);
6251
6246
  const defaultExamples = useMemo(() => [
6252
6247
  {
6253
6248
  id: "simple",