@bian-womp/spark-workbench 0.3.87 → 0.3.89

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.
Files changed (175) hide show
  1. package/lib/cjs/index.cjs +72 -103
  2. package/lib/cjs/index.cjs.map +1 -1
  3. package/lib/cjs/src/misc/context/WorkbenchContext.provider.d.ts.map +1 -1
  4. package/lib/esm/index.js +72 -103
  5. package/lib/esm/index.js.map +1 -1
  6. package/lib/esm/src/misc/context/WorkbenchContext.provider.d.ts.map +1 -1
  7. package/lib/src/adapters/cli/index.d.ts +22 -0
  8. package/lib/src/adapters/cli/index.d.ts.map +1 -0
  9. package/lib/src/adapters/cli/index.js +50 -0
  10. package/lib/src/adapters/cli/index.js.map +1 -0
  11. package/lib/src/core/AbstractWorkbench.d.ts +40 -0
  12. package/lib/src/core/AbstractWorkbench.d.ts.map +1 -0
  13. package/lib/src/core/AbstractWorkbench.js +15 -0
  14. package/lib/src/core/AbstractWorkbench.js.map +1 -0
  15. package/lib/src/core/InMemoryWorkbench.d.ts +304 -0
  16. package/lib/src/core/InMemoryWorkbench.d.ts.map +1 -0
  17. package/lib/src/core/InMemoryWorkbench.js +1016 -0
  18. package/lib/src/core/InMemoryWorkbench.js.map +1 -0
  19. package/lib/src/core/contracts.d.ts +172 -0
  20. package/lib/src/core/contracts.d.ts.map +1 -0
  21. package/lib/src/core/contracts.js +2 -0
  22. package/lib/src/core/contracts.js.map +1 -0
  23. package/lib/src/core/ui-extensions.d.ts +85 -0
  24. package/lib/src/core/ui-extensions.d.ts.map +1 -0
  25. package/lib/src/core/ui-extensions.js +111 -0
  26. package/lib/src/core/ui-extensions.js.map +1 -0
  27. package/lib/src/examples/cli.d.ts +2 -0
  28. package/lib/src/examples/cli.d.ts.map +1 -0
  29. package/lib/src/examples/cli.js +244 -0
  30. package/lib/src/examples/cli.js.map +1 -0
  31. package/lib/src/examples/reactflow/App.d.ts +2 -0
  32. package/lib/src/examples/reactflow/App.d.ts.map +1 -0
  33. package/lib/src/examples/reactflow/App.js +20 -0
  34. package/lib/src/examples/reactflow/App.js.map +1 -0
  35. package/lib/src/index.d.ts +30 -0
  36. package/lib/src/index.d.ts.map +1 -0
  37. package/lib/src/index.js +30 -0
  38. package/lib/src/index.js.map +1 -0
  39. package/lib/src/misc/DebugEvents.d.ts +7 -0
  40. package/lib/src/misc/DebugEvents.d.ts.map +1 -0
  41. package/lib/src/misc/DebugEvents.js +51 -0
  42. package/lib/src/misc/DebugEvents.js.map +1 -0
  43. package/lib/src/misc/DefaultEdge.d.ts +5 -0
  44. package/lib/src/misc/DefaultEdge.d.ts.map +1 -0
  45. package/lib/src/misc/DefaultEdge.js +15 -0
  46. package/lib/src/misc/DefaultEdge.js.map +1 -0
  47. package/lib/src/misc/DefaultNode.d.ts +5 -0
  48. package/lib/src/misc/DefaultNode.d.ts.map +1 -0
  49. package/lib/src/misc/DefaultNode.js +25 -0
  50. package/lib/src/misc/DefaultNode.js.map +1 -0
  51. package/lib/src/misc/DefaultNodeContent.d.ts +4 -0
  52. package/lib/src/misc/DefaultNodeContent.d.ts.map +1 -0
  53. package/lib/src/misc/DefaultNodeContent.js +58 -0
  54. package/lib/src/misc/DefaultNodeContent.js.map +1 -0
  55. package/lib/src/misc/DefaultNodeHeader.d.ts +13 -0
  56. package/lib/src/misc/DefaultNodeHeader.d.ts.map +1 -0
  57. package/lib/src/misc/DefaultNodeHeader.js +78 -0
  58. package/lib/src/misc/DefaultNodeHeader.js.map +1 -0
  59. package/lib/src/misc/Inspector.d.ts +12 -0
  60. package/lib/src/misc/Inspector.d.ts.map +1 -0
  61. package/lib/src/misc/Inspector.js +253 -0
  62. package/lib/src/misc/Inspector.js.map +1 -0
  63. package/lib/src/misc/IssueBadge.d.ts +7 -0
  64. package/lib/src/misc/IssueBadge.d.ts.map +1 -0
  65. package/lib/src/misc/IssueBadge.js +7 -0
  66. package/lib/src/misc/IssueBadge.js.map +1 -0
  67. package/lib/src/misc/KeyboardShortcutToast.d.ts +16 -0
  68. package/lib/src/misc/KeyboardShortcutToast.d.ts.map +1 -0
  69. package/lib/src/misc/KeyboardShortcutToast.js +40 -0
  70. package/lib/src/misc/KeyboardShortcutToast.js.map +1 -0
  71. package/lib/src/misc/NodeHandles.d.ts +18 -0
  72. package/lib/src/misc/NodeHandles.d.ts.map +1 -0
  73. package/lib/src/misc/NodeHandles.js +67 -0
  74. package/lib/src/misc/NodeHandles.js.map +1 -0
  75. package/lib/src/misc/SelectionActiveSync.d.ts +10 -0
  76. package/lib/src/misc/SelectionActiveSync.d.ts.map +1 -0
  77. package/lib/src/misc/SelectionActiveSync.js +21 -0
  78. package/lib/src/misc/SelectionActiveSync.js.map +1 -0
  79. package/lib/src/misc/WorkbenchCanvas.d.ts +23 -0
  80. package/lib/src/misc/WorkbenchCanvas.d.ts.map +1 -0
  81. package/lib/src/misc/WorkbenchCanvas.js +669 -0
  82. package/lib/src/misc/WorkbenchCanvas.js.map +1 -0
  83. package/lib/src/misc/WorkbenchStudio.d.ts +43 -0
  84. package/lib/src/misc/WorkbenchStudio.d.ts.map +1 -0
  85. package/lib/src/misc/WorkbenchStudio.js +463 -0
  86. package/lib/src/misc/WorkbenchStudio.js.map +1 -0
  87. package/lib/src/misc/constants.d.ts +4 -0
  88. package/lib/src/misc/constants.d.ts.map +1 -0
  89. package/lib/src/misc/constants.js +5 -0
  90. package/lib/src/misc/constants.js.map +1 -0
  91. package/lib/src/misc/context/WorkbenchContext.d.ts +133 -0
  92. package/lib/src/misc/context/WorkbenchContext.d.ts.map +1 -0
  93. package/lib/src/misc/context/WorkbenchContext.js +9 -0
  94. package/lib/src/misc/context/WorkbenchContext.js.map +1 -0
  95. package/lib/src/misc/context/WorkbenchContext.provider.d.ts +12 -0
  96. package/lib/src/misc/context/WorkbenchContext.provider.d.ts.map +1 -0
  97. package/lib/src/misc/context/WorkbenchContext.provider.js +995 -0
  98. package/lib/src/misc/context/WorkbenchContext.provider.js.map +1 -0
  99. package/lib/src/misc/context-menu/ContextMenuButton.d.ts +8 -0
  100. package/lib/src/misc/context-menu/ContextMenuButton.d.ts.map +1 -0
  101. package/lib/src/misc/context-menu/ContextMenuButton.js +10 -0
  102. package/lib/src/misc/context-menu/ContextMenuButton.js.map +1 -0
  103. package/lib/src/misc/context-menu/ContextMenuHandlers.d.ts +85 -0
  104. package/lib/src/misc/context-menu/ContextMenuHandlers.d.ts.map +1 -0
  105. package/lib/src/misc/context-menu/ContextMenuHandlers.js +2 -0
  106. package/lib/src/misc/context-menu/ContextMenuHandlers.js.map +1 -0
  107. package/lib/src/misc/context-menu/ContextMenuHelpers.d.ts +45 -0
  108. package/lib/src/misc/context-menu/ContextMenuHelpers.d.ts.map +1 -0
  109. package/lib/src/misc/context-menu/ContextMenuHelpers.js +182 -0
  110. package/lib/src/misc/context-menu/ContextMenuHelpers.js.map +1 -0
  111. package/lib/src/misc/context-menu/DefaultContextMenu.d.ts +3 -0
  112. package/lib/src/misc/context-menu/DefaultContextMenu.d.ts.map +1 -0
  113. package/lib/src/misc/context-menu/DefaultContextMenu.js +111 -0
  114. package/lib/src/misc/context-menu/DefaultContextMenu.js.map +1 -0
  115. package/lib/src/misc/context-menu/NodeContextMenu.d.ts +3 -0
  116. package/lib/src/misc/context-menu/NodeContextMenu.d.ts.map +1 -0
  117. package/lib/src/misc/context-menu/NodeContextMenu.js +51 -0
  118. package/lib/src/misc/context-menu/NodeContextMenu.js.map +1 -0
  119. package/lib/src/misc/context-menu/SelectionContextMenu.d.ts +3 -0
  120. package/lib/src/misc/context-menu/SelectionContextMenu.d.ts.map +1 -0
  121. package/lib/src/misc/context-menu/SelectionContextMenu.js +47 -0
  122. package/lib/src/misc/context-menu/SelectionContextMenu.js.map +1 -0
  123. package/lib/src/misc/hooks.d.ts +18 -0
  124. package/lib/src/misc/hooks.d.ts.map +1 -0
  125. package/lib/src/misc/hooks.js +275 -0
  126. package/lib/src/misc/hooks.js.map +1 -0
  127. package/lib/src/misc/layout.d.ts +117 -0
  128. package/lib/src/misc/layout.d.ts.map +1 -0
  129. package/lib/src/misc/layout.js +205 -0
  130. package/lib/src/misc/layout.js.map +1 -0
  131. package/lib/src/misc/load.d.ts +5 -0
  132. package/lib/src/misc/load.d.ts.map +1 -0
  133. package/lib/src/misc/load.js +106 -0
  134. package/lib/src/misc/load.js.map +1 -0
  135. package/lib/src/misc/mapping.d.ts +128 -0
  136. package/lib/src/misc/mapping.d.ts.map +1 -0
  137. package/lib/src/misc/mapping.js +270 -0
  138. package/lib/src/misc/mapping.js.map +1 -0
  139. package/lib/src/misc/merge-utils.d.ts +12 -0
  140. package/lib/src/misc/merge-utils.d.ts.map +1 -0
  141. package/lib/src/misc/merge-utils.js +51 -0
  142. package/lib/src/misc/merge-utils.js.map +1 -0
  143. package/lib/src/misc/thumbnail-utils.d.ts +53 -0
  144. package/lib/src/misc/thumbnail-utils.d.ts.map +1 -0
  145. package/lib/src/misc/thumbnail-utils.js +629 -0
  146. package/lib/src/misc/thumbnail-utils.js.map +1 -0
  147. package/lib/src/misc/types.d.ts +18 -0
  148. package/lib/src/misc/types.d.ts.map +1 -0
  149. package/lib/src/misc/types.js +2 -0
  150. package/lib/src/misc/types.js.map +1 -0
  151. package/lib/src/misc/value.d.ts +16 -0
  152. package/lib/src/misc/value.d.ts.map +1 -0
  153. package/lib/src/misc/value.js +114 -0
  154. package/lib/src/misc/value.js.map +1 -0
  155. package/lib/src/misc/viewport-utils.d.ts +6 -0
  156. package/lib/src/misc/viewport-utils.d.ts.map +1 -0
  157. package/lib/src/misc/viewport-utils.js +18 -0
  158. package/lib/src/misc/viewport-utils.js.map +1 -0
  159. package/lib/src/runtime/AbstractGraphRunner.d.ts +61 -0
  160. package/lib/src/runtime/AbstractGraphRunner.d.ts.map +1 -0
  161. package/lib/src/runtime/AbstractGraphRunner.js +63 -0
  162. package/lib/src/runtime/AbstractGraphRunner.js.map +1 -0
  163. package/lib/src/runtime/IGraphRunner.d.ts +100 -0
  164. package/lib/src/runtime/IGraphRunner.d.ts.map +1 -0
  165. package/lib/src/runtime/IGraphRunner.js +2 -0
  166. package/lib/src/runtime/IGraphRunner.js.map +1 -0
  167. package/lib/src/runtime/LocalGraphRunner.d.ts +60 -0
  168. package/lib/src/runtime/LocalGraphRunner.d.ts.map +1 -0
  169. package/lib/src/runtime/LocalGraphRunner.js +294 -0
  170. package/lib/src/runtime/LocalGraphRunner.js.map +1 -0
  171. package/lib/src/runtime/RemoteGraphRunner.d.ts +109 -0
  172. package/lib/src/runtime/RemoteGraphRunner.d.ts.map +1 -0
  173. package/lib/src/runtime/RemoteGraphRunner.js +696 -0
  174. package/lib/src/runtime/RemoteGraphRunner.js.map +1 -0
  175. package/package.json +4 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkbenchCanvas.js","sourceRoot":"","sources":["../../../src/misc/WorkbenchCanvas.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import type { GraphDefinition } from "@bian-womp/spark-protocol";
2
+ import { type TransportConnectOptions } from "@bian-womp/spark-remote";
3
+ import { WorkbenchOverrides } from "./context/WorkbenchContext";
4
+ import { InMemoryWorkbench } from "../core/InMemoryWorkbench";
5
+ import { ExecutionBackendKind, IGraphRunner } from "../runtime/IGraphRunner";
6
+ /**
7
+ * Optional backend configuration for remote runners.
8
+ * Allows extensions to pass connection options and custom event handlers.
9
+ */
10
+ export interface BackendOptions {
11
+ connectOptions?: TransportConnectOptions;
12
+ onCustomEvent?: (event: any) => void;
13
+ }
14
+ export declare function WorkbenchStudio({ example, onExampleChange, backendKind, onBackendKindChange, httpBaseUrl, onHttpBaseUrlChange, wsUrl, onWsUrlChange, debug, onDebugChange, showValues, onShowValuesChange, hideWorkbench, onHideWorkbenchChange, autoScroll, onAutoScrollChange, backendOptions, overrides, onInit, onChange, }: {
15
+ example?: string;
16
+ onExampleChange?: (v: string | undefined) => void;
17
+ backendKind: ExecutionBackendKind;
18
+ onBackendKindChange: (v: ExecutionBackendKind) => void;
19
+ httpBaseUrl: string;
20
+ onHttpBaseUrlChange?: (v: string) => void;
21
+ wsUrl: string;
22
+ onWsUrlChange?: (v: string) => void;
23
+ debug: boolean;
24
+ onDebugChange: (v: boolean) => void;
25
+ showValues: boolean;
26
+ onShowValuesChange: (v: boolean) => void;
27
+ hideWorkbench: boolean;
28
+ onHideWorkbenchChange: (v: boolean) => void;
29
+ autoScroll: boolean;
30
+ onAutoScrollChange: (v: boolean) => void;
31
+ backendOptions?: BackendOptions;
32
+ overrides?: WorkbenchOverrides;
33
+ onInit?: (args: {
34
+ wb: InMemoryWorkbench;
35
+ runner: IGraphRunner;
36
+ setInitialGraph: (def: GraphDefinition, inputs?: Record<string, Record<string, unknown>>) => Promise<void>;
37
+ }) => void;
38
+ onChange?: (args: {
39
+ def: GraphDefinition;
40
+ inputs: Record<string, Record<string, unknown>>;
41
+ }) => void;
42
+ }): import("react/jsx-runtime").JSX.Element;
43
+ //# sourceMappingURL=WorkbenchStudio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkbenchStudio.d.ts","sourceRoot":"","sources":["../../../src/misc/WorkbenchStudio.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAW,MAAM,2BAA2B,CAAC;AAgB1E,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAgBvE,OAAO,EAA0C,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAMxG,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;AA0mBD,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,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KAC5G,KAAK,IAAI,CAAC;IACX,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,eAAe,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;KAAE,KAAK,IAAI,CAAC;CACtG,2CAyFA"}
@@ -0,0 +1,463 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
3
+ import { createAsyncGraphDef, createAsyncGraphRegistry, createProgressGraphDef, createProgressGraphRegistry, createValidationGraphDef, createValidationGraphRegistry, createSimpleGraphDef, createSimpleGraphRegistry, isTyped, unwrapTypeId, unwrapValue, getInputTypeId, } from "@bian-womp/spark-graph";
4
+ import { WifiHighIcon, WifiSlashIcon, ClockClockwiseIcon, PlugsConnectedIcon, ListBulletsIcon, BugBeetleIcon, TreeStructureIcon, DownloadIcon, UploadIcon, CornersOutIcon, ImageIcon, RocketLaunchIcon, RocketIcon, } from "@phosphor-icons/react";
5
+ import { useWorkbenchContext } from "./context/WorkbenchContext";
6
+ import { preformatValueForDisplay } from "./value";
7
+ import { WorkbenchProvider } from "./context/WorkbenchContext.provider";
8
+ import { WorkbenchCanvas } from "./WorkbenchCanvas";
9
+ import { Inspector } from "./Inspector";
10
+ import { InMemoryWorkbench } from "../core/InMemoryWorkbench";
11
+ import { DefaultUIExtensionRegistry } from "../core/ui-extensions";
12
+ import { download as downloadUtil, upload as uploadUtil } from "./load";
13
+ import { downloadCanvasThumbnail } from "./thumbnail-utils";
14
+ import { RemoteGraphRunner } from "../runtime/RemoteGraphRunner";
15
+ import { LocalGraphRunner } from "../runtime/LocalGraphRunner";
16
+ function WorkbenchStudioCanvas({ autoScroll, onAutoScrollChange, example, onExampleChange, backendKind, onBackendKindChange, httpBaseUrl, onHttpBaseUrlChange, wsUrl, onWsUrlChange, debug, onDebugChange, showValues, onShowValuesChange, hideWorkbench, onHideWorkbenchChange, overrides, onInit, onChange, }) {
17
+ const { wb, registryVersion, runner, selectedNodeId, handlesMap, runAutoLayout, runMode, setRunMode, isRunning } = useWorkbenchContext();
18
+ const [transportStatus, setTransportStatus] = useState({
19
+ state: "local",
20
+ });
21
+ const selectedNode = wb.def.nodes.find((n) => n.nodeId === selectedNodeId);
22
+ const effectiveHandles = selectedNode
23
+ ? (handlesMap[selectedNode.nodeId] ?? {
24
+ inputs: {},
25
+ outputs: {},
26
+ inputDefaults: {},
27
+ })
28
+ : { inputs: {}, outputs: {}, inputDefaults: {} };
29
+ const [exampleState, setExampleState] = useState(example ?? "");
30
+ const isGraphRunning = isRunning();
31
+ // Render Start/Stop button based on transport and runner state
32
+ const renderStartStopButton = useCallback(() => {
33
+ // Check if transport is connecting/retrying
34
+ const isConnecting = transportStatus.state === "connecting" || transportStatus.state === "retrying";
35
+ // Only allow Start/Stop when transport is connected or local
36
+ // For local backend, always allow control (transport state is "local")
37
+ // For remote backends, require connection
38
+ const canControl = transportStatus.state === "connected" || transportStatus.state === "local" || backendKind === "local"; // Always allow control for local backend
39
+ if (isConnecting) {
40
+ 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..." })] }));
41
+ }
42
+ if (isGraphRunning) {
43
+ return (_jsxs("button", { className: "border rounded px-2 py-1.5 text-white border-none bg-green-500 flex items-center gap-1 cursor-default pointer-events-none", title: "Running", children: [_jsx(RocketLaunchIcon, { size: 16, weight: "fill" }), _jsx("span", { className: "font-medium ml-1", children: "Running" })] }));
44
+ }
45
+ return (_jsxs("button", { className: "border rounded px-2 py-1.5 text-red-700 border-red-600 flex items-center gap-1 disabled:text-gray-400 disabled:border-gray-300 disabled:opacity-50", onClick: (evt) => {
46
+ if (evt.shiftKey && !confirm("Invalidate and re-run graph?"))
47
+ return;
48
+ try {
49
+ runner.launch(wb.def, {
50
+ runMode,
51
+ invalidate: evt.shiftKey,
52
+ });
53
+ }
54
+ catch (err) {
55
+ const message = err instanceof Error ? err.message : String(err);
56
+ alert(message);
57
+ }
58
+ }, disabled: !canControl, title: !canControl ? "Waiting for connection" : `Start ${runMode === "manual" ? "manual" : "auto"} mode`, children: [_jsx(RocketIcon, { size: 16, weight: "fill" }), _jsx("span", { className: "font-medium ml-1", children: "Start" })] }));
59
+ }, [transportStatus, isGraphRunning, runner, runMode, wb, backendKind]);
60
+ const defaultExamples = useMemo(() => [
61
+ {
62
+ id: "simple",
63
+ label: "Simple",
64
+ load: async () => ({
65
+ registry: createSimpleGraphRegistry(),
66
+ def: createSimpleGraphDef(),
67
+ }),
68
+ },
69
+ {
70
+ id: "async",
71
+ label: "Async Chain",
72
+ load: async () => ({
73
+ registry: createAsyncGraphRegistry(),
74
+ def: createAsyncGraphDef(),
75
+ }),
76
+ },
77
+ {
78
+ id: "progress",
79
+ label: "Progress + Errors",
80
+ load: async () => ({
81
+ registry: createProgressGraphRegistry(),
82
+ def: createProgressGraphDef(),
83
+ }),
84
+ },
85
+ {
86
+ id: "validation",
87
+ label: "Validation",
88
+ load: async () => ({
89
+ registry: createValidationGraphRegistry(),
90
+ def: createValidationGraphDef(),
91
+ }),
92
+ },
93
+ ], []);
94
+ const examples = useMemo(() => {
95
+ if (overrides?.getExamples)
96
+ return overrides.getExamples(defaultExamples);
97
+ return defaultExamples;
98
+ }, [overrides, defaultExamples]);
99
+ const canvasRef = useRef(null);
100
+ const canvasContainerRef = useRef(null);
101
+ const uploadInputRef = useRef(null);
102
+ // Expose init callback with setInitialGraph helper
103
+ // Note: This runs whenever runner changes
104
+ useEffect(() => {
105
+ if (!onInit)
106
+ return;
107
+ const setInitialGraph = async (d, inputs) => {
108
+ await wb.load(d);
109
+ runner.build(wb.def);
110
+ if (inputs) {
111
+ for (const [nodeId, map] of Object.entries(inputs)) {
112
+ runner.setInputs(nodeId, map, { dry: true });
113
+ }
114
+ }
115
+ };
116
+ onInit({ wb, runner, setInitialGraph });
117
+ }, [onInit, wb, runner]);
118
+ // Expose change callback on graph/value changes
119
+ useEffect(() => {
120
+ if (!onChange)
121
+ return;
122
+ const offGraphChanged = wb.on("graphChanged", () => {
123
+ try {
124
+ const cur = wb.def;
125
+ const inputs = runner.getInputs(cur);
126
+ onChange({ def: cur, inputs });
127
+ }
128
+ catch { }
129
+ });
130
+ const offGraphUiChanged = wb.on("graphUiChanged", (evt) => {
131
+ if (!evt.commit)
132
+ return;
133
+ try {
134
+ const cur = wb.def;
135
+ const inputs = runner.getInputs(cur);
136
+ onChange({ def: cur, inputs });
137
+ }
138
+ catch { }
139
+ });
140
+ return () => {
141
+ offGraphChanged();
142
+ offGraphUiChanged();
143
+ };
144
+ }, [wb, runner, onChange]);
145
+ const applyExample = useCallback(async (key) => {
146
+ if (runner.isRunning()) {
147
+ alert(`Stop engine before switching example.`);
148
+ return;
149
+ }
150
+ const ex = examples.find((e) => e.id === key) ?? examples[0];
151
+ if (!ex)
152
+ return;
153
+ const { registry, def, inputs } = await ex.load();
154
+ // Keep registry consistent with backend:
155
+ // - For local backend, allow example to provide its own registry
156
+ // - For remote backend, registry is automatically managed by RemoteGraphRunner
157
+ if (backendKind === "local") {
158
+ if (registry) {
159
+ wb.setRegistry(registry);
160
+ }
161
+ }
162
+ else {
163
+ // For remote backends, registry is automatically fetched and updated by RemoteGraphRunner
164
+ // Do not overwrite it here - it will be synced via registry events
165
+ }
166
+ await wb.load(def);
167
+ // Build a local runtime so seeded defaults are visible pre-run
168
+ runner.build(wb.def);
169
+ // Set initial inputs if provided
170
+ if (inputs) {
171
+ for (const [nodeId, map] of Object.entries(inputs)) {
172
+ runner.setInputs(nodeId, map, { dry: true });
173
+ }
174
+ }
175
+ runAutoLayout();
176
+ setExampleState(key);
177
+ onExampleChange?.(key);
178
+ }, [runner, wb, onExampleChange, runAutoLayout, examples, backendKind]);
179
+ const download = useCallback(async () => {
180
+ try {
181
+ await downloadUtil(wb, runner);
182
+ }
183
+ catch (err) {
184
+ const message = err instanceof Error ? err.message : String(err);
185
+ alert(message);
186
+ }
187
+ }, [wb, runner]);
188
+ const onUploadPicked = useCallback(async (e) => {
189
+ try {
190
+ const file = e.target.files?.[0];
191
+ if (!file)
192
+ return;
193
+ const text = await file.text();
194
+ const parsed = JSON.parse(text);
195
+ await uploadUtil(parsed, wb, runner);
196
+ }
197
+ catch (err) {
198
+ const message = err instanceof Error ? err.message : String(err);
199
+ alert(message);
200
+ }
201
+ finally {
202
+ // reset input so same file can be picked again
203
+ if (uploadInputRef.current)
204
+ uploadInputRef.current.value = "";
205
+ }
206
+ }, [wb, runner]);
207
+ const triggerUpload = useCallback(() => {
208
+ uploadInputRef.current?.click();
209
+ }, []);
210
+ // Registry is now automatically fetched by RemoteGraphRunner on first connection
211
+ // No need for manual hydration
212
+ // Ensure initial example is loaded (and sync when example prop changes)
213
+ useEffect(() => {
214
+ if (!example)
215
+ return;
216
+ applyExample(example);
217
+ }, [example, wb]);
218
+ useEffect(() => {
219
+ const off = runner.on("transport", setTransportStatus);
220
+ return () => off();
221
+ }, [runner]);
222
+ useEffect(() => {
223
+ if (isGraphRunning)
224
+ return;
225
+ // Only auto-launch for local backend; require explicit Start for remote
226
+ if (backendKind !== "local")
227
+ return;
228
+ if (!wb.def.nodes || wb.def.nodes.length === 0)
229
+ return;
230
+ try {
231
+ runner.launch(wb.def, { runMode });
232
+ }
233
+ catch {
234
+ // ignore
235
+ }
236
+ }, [runMode, runner, isGraphRunning, wb, backendKind]);
237
+ const baseSetInput = useCallback((handle, raw) => {
238
+ if (!selectedNodeId)
239
+ return;
240
+ // If selected input is wired (has inbound edge), ignore user input to respect runtime value
241
+ const isLinked = wb.def.edges.some((e) => e.target.nodeId === selectedNodeId && e.target.handle === handle);
242
+ if (isLinked)
243
+ return;
244
+ // If raw is undefined, pass it through to delete the input value
245
+ if (raw === undefined) {
246
+ wb.setInputs(selectedNodeId, { [handle]: undefined }, { commit: true });
247
+ return;
248
+ }
249
+ const typeId = getInputTypeId(effectiveHandles.inputs, handle);
250
+ let value = raw;
251
+ const parseArray = (s, map) => {
252
+ const str = String(s).trim();
253
+ try {
254
+ const parsed = JSON.parse(str);
255
+ if (Array.isArray(parsed))
256
+ return parsed.map((x) => map(String(x)));
257
+ }
258
+ catch { }
259
+ if (!str)
260
+ return [];
261
+ return str
262
+ .split(",")
263
+ .map((t) => t.trim())
264
+ .filter((t) => t.length > 0)
265
+ .map(map);
266
+ };
267
+ switch (typeId) {
268
+ case "base.float": {
269
+ const n = Number(raw);
270
+ value = Number.isFinite(n) ? n : 0;
271
+ break;
272
+ }
273
+ case "base.float[]": {
274
+ value = parseArray(String(raw), (x) => Number(x));
275
+ break;
276
+ }
277
+ case "base.bool": {
278
+ value = raw === "true" || raw === "1" ? true : false;
279
+ break;
280
+ }
281
+ case "base.bool[]": {
282
+ value = parseArray(String(raw), (x) => /^(true|1)$/i.test(x));
283
+ break;
284
+ }
285
+ case "base.string": {
286
+ value = String(raw);
287
+ break;
288
+ }
289
+ case "base.string[]": {
290
+ value = parseArray(String(raw), (x) => String(x));
291
+ break;
292
+ }
293
+ case "base.vec3": {
294
+ const arr = parseArray(String(raw), (x) => Number(x));
295
+ value = [arr[0] ?? 0, arr[1] ?? 0, arr[2] ?? 0];
296
+ break;
297
+ }
298
+ case "base.vec3[]": {
299
+ try {
300
+ const parsed = JSON.parse(String(raw));
301
+ if (Array.isArray(parsed)) {
302
+ value = parsed.map((v) => [Number(v?.[0] ?? 0), Number(v?.[1] ?? 0), Number(v?.[2] ?? 0)]);
303
+ break;
304
+ }
305
+ }
306
+ catch { }
307
+ // fallback CSV triples: "x1,y1,z1; x2,y2,z2"
308
+ value = String(raw)
309
+ .split(";")
310
+ .map((seg) => seg.trim())
311
+ .filter(Boolean)
312
+ .map((seg) => seg.split(",").map((n) => Number(n.trim())))
313
+ .map((a) => [a[0] ?? 0, a[1] ?? 0, a[2] ?? 0]);
314
+ break;
315
+ }
316
+ default: {
317
+ // fallback to string
318
+ value = raw;
319
+ }
320
+ }
321
+ wb.setInputs(selectedNodeId, { [handle]: value }, { commit: true });
322
+ }, [selectedNodeId, wb.def.edges, effectiveHandles, wb]);
323
+ const setInput = useMemo(() => {
324
+ if (overrides?.setInput) {
325
+ return overrides.setInput(baseSetInput, {
326
+ runner,
327
+ selectedNodeId,
328
+ registry: wb.registry,
329
+ });
330
+ }
331
+ return baseSetInput;
332
+ }, [overrides, baseSetInput, runner, selectedNodeId, wb.registry, registryVersion]);
333
+ const baseToString = useCallback((typeId, value) => {
334
+ if (value === undefined || value === null)
335
+ return "";
336
+ // Normalize typed wrapper
337
+ if (isTyped(value)) {
338
+ return baseToString(unwrapTypeId(value), unwrapValue(value));
339
+ }
340
+ const pre = preformatValueForDisplay(typeId, value, wb.registry);
341
+ if (pre !== undefined)
342
+ return pre;
343
+ if (typeof value === "object" && value !== null && "url" in value && typeof value.url === "string") {
344
+ const title = "title" in value && typeof value.title === "string" ? value.title : "";
345
+ const url = String(value.url || "");
346
+ // value.ts handles data URL formatting
347
+ return title || url.slice(0, 32) + (url.length > 32 ? "…" : "");
348
+ }
349
+ if (typeId && typeId.startsWith("enum:")) {
350
+ const n = Number(value);
351
+ const label = wb.registry.enums.get(typeId)?.valueToLabel.get(n);
352
+ return label ?? String(n);
353
+ }
354
+ const round4 = (n) => Math.round(Number(n) * 10000) / 10000;
355
+ if (typeId === "base.vec3" && Array.isArray(value)) {
356
+ const a = value;
357
+ return [round4(Number(a[0] ?? 0)), round4(Number(a[1] ?? 0)), round4(Number(a[2] ?? 0))].join(",");
358
+ }
359
+ const stringifyRounded = (v) => {
360
+ try {
361
+ return JSON.stringify(v, (_k, val) => (typeof val === "number" ? round4(val) : val));
362
+ }
363
+ catch {
364
+ return String(v);
365
+ }
366
+ };
367
+ if (typeId?.endsWith("[]") || Array.isArray(value) || (typeof value === "object" && value !== null)) {
368
+ return stringifyRounded(value);
369
+ }
370
+ if (typeof value === "number") {
371
+ const rounded = Math.round(Number(value) * 10000) / 10000;
372
+ return String(rounded);
373
+ }
374
+ return String(value);
375
+ }, [wb.registry, registryVersion]);
376
+ const baseToElement = useCallback((typeId, value) => {
377
+ return _jsx("span", { className: "ml-1 opacity-60", children: baseToString(typeId, value) });
378
+ }, [baseToString]);
379
+ const toString = useMemo(() => {
380
+ if (overrides?.toString)
381
+ return overrides.toString(baseToString, { registry: wb.registry });
382
+ return baseToString;
383
+ }, [overrides, baseToString, wb.registry, registryVersion]);
384
+ // Optional: toElement (not currently consumed by core UI)
385
+ // Consumers can access it by passing through their own node renderers.
386
+ const toElement = useMemo(() => {
387
+ if (overrides?.toElement)
388
+ return overrides.toElement(baseToElement, { registry: wb.registry });
389
+ return baseToElement;
390
+ }, [overrides, baseToElement, wb.registry, registryVersion]);
391
+ 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: [isGraphRunning ? (_jsxs("span", { className: "ml-2 text-sm text-green-700", children: ["Running: ", runMode === "manual" ? "Manual" : "Auto"] })) : (_jsx("span", { className: "ml-2 text-sm text-gray-500", children: "Stopped" })), _jsxs("span", { className: "ml-2 flex items-center gap-1 text-xs", title: transportStatus.kind || undefined, children: [transportStatus.state === "local" && _jsx(PlugsConnectedIcon, { size: 14, className: "text-gray-500" }), transportStatus.state === "connecting" && (_jsx(ClockClockwiseIcon, { size: 14, className: "text-amber-600 animate-pulse" })), transportStatus.state === "connected" && _jsx(WifiHighIcon, { size: 14, className: "text-green-600" }), transportStatus.state === "disconnected" && _jsx(WifiSlashIcon, { size: 14, className: "text-red-600" }), transportStatus.state === "retrying" && (_jsx(ClockClockwiseIcon, { size: 14, className: "text-amber-700 animate-pulse" }))] }), _jsxs("select", { className: "border border-gray-300 rounded px-2 py-1", value: exampleState, onChange: (e) => applyExample(e.target.value), disabled: isGraphRunning, title: isGraphRunning ? "Stop engine before switching example" : undefined, children: [_jsx("option", { value: "", children: "Select Example\u2026" }), examples.map((ex) => (_jsx("option", { value: ex.id, children: ex.label }, ex.id)))] }), _jsxs("select", { className: "border border-gray-300 rounded px-2 py-1", value: backendKind, onChange: (e) => onBackendKindChange(e.target.value), disabled: isGraphRunning, title: isGraphRunning ? "Stop engine before switching backend" : 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" && !!onHttpBaseUrlChange && (_jsx("input", { className: "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" && !!onWsUrlChange && (_jsx("input", { className: "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: runMode, onChange: async (e) => {
392
+ const mode = e.target.value;
393
+ if (mode !== runMode) {
394
+ await setRunMode(mode);
395
+ }
396
+ }, title: "Select run mode", children: [_jsx("option", { value: "manual", children: "Manual" }), _jsx("option", { value: "auto", children: "Auto" })] }), renderStartStopButton(), _jsx("button", { className: "border border-gray-300 rounded p-1", onClick: runAutoLayout, children: _jsx(TreeStructureIcon, { size: 24 }) }), _jsx("button", { className: "border border-gray-300 rounded p-1", onClick: () => canvasRef.current?.fitView?.(), title: "Fit View", children: _jsx(CornersOutIcon, { size: 24 }) }), _jsx("button", { className: "border border-gray-300 rounded p-1", onClick: download, children: _jsx(DownloadIcon, { size: 24 }) }), _jsx("input", { ref: uploadInputRef, type: "file", accept: "application/json,.json", className: "hidden", onChange: onUploadPicked }), _jsx("button", { className: "border border-gray-300 rounded p-1", onClick: triggerUpload, children: _jsx(UploadIcon, { size: 24 }) }), _jsx("button", { className: "border border-gray-300 rounded p-1", onClick: async () => {
397
+ await downloadCanvasThumbnail(canvasContainerRef.current);
398
+ }, title: "Download Flow Thumbnail (SVG)", children: _jsx(ImageIcon, { size: 24 }) }), _jsxs("label", { className: "flex items-center gap-1", children: [_jsx("input", { type: "checkbox", checked: debug, onChange: (e) => onDebugChange(e.target.checked) }), _jsx(BugBeetleIcon, { size: 24, weight: debug ? "fill" : undefined })] }), _jsxs("label", { className: "flex items-center gap-1", children: [_jsx("input", { type: "checkbox", checked: showValues, onChange: (e) => onShowValuesChange(e.target.checked) }), _jsx(ListBulletsIcon, { size: 24, weight: showValues ? "fill" : undefined })] })] }), _jsxs("div", { className: "flex flex-1 min-h-0", children: [_jsx("div", { className: "flex-1 min-w-0", ref: canvasContainerRef, children: _jsx(WorkbenchCanvas, { ref: canvasRef, showValues: showValues, toString: toString, toElement: toElement, getDefaultNodeSize: overrides?.getDefaultNodeSize, reactFlowProps: {
399
+ minZoom: 0.1,
400
+ maxZoom: 5,
401
+ } }) }), _jsx(Inspector, { setInput: setInput, debug: debug, autoScroll: autoScroll, hideWorkbench: hideWorkbench, onAutoScrollChange: onAutoScrollChange, onHideWorkbenchChange: onHideWorkbenchChange, toString: toString, contextPanel: overrides?.contextPanel })] })] }));
402
+ }
403
+ export function WorkbenchStudio({ example, onExampleChange, backendKind, onBackendKindChange, httpBaseUrl, onHttpBaseUrlChange, wsUrl, onWsUrlChange, debug, onDebugChange, showValues, onShowValuesChange, hideWorkbench, onHideWorkbenchChange, autoScroll, onAutoScrollChange, backendOptions, overrides, onInit, onChange, }) {
404
+ const [wb] = useState(() => new InMemoryWorkbench({ ui: new DefaultUIExtensionRegistry() }));
405
+ const backendKindToUse = useMemo(() => {
406
+ if (!backendOptions)
407
+ return "local";
408
+ return backendKind;
409
+ }, [backendOptions, backendKind]);
410
+ const runner = useMemo(() => {
411
+ let newRunner;
412
+ if (backendKindToUse === "remote-http" && backendOptions) {
413
+ const backend = {
414
+ kind: "remote-http",
415
+ baseUrl: httpBaseUrl,
416
+ connectOptions: backendOptions?.connectOptions,
417
+ onCustomEvent: backendOptions?.onCustomEvent,
418
+ };
419
+ newRunner = new RemoteGraphRunner(backend);
420
+ }
421
+ else if (backendKindToUse === "remote-ws" && backendOptions) {
422
+ const backend = {
423
+ kind: "remote-ws",
424
+ url: wsUrl,
425
+ connectOptions: backendOptions?.connectOptions,
426
+ onCustomEvent: backendOptions?.onCustomEvent,
427
+ };
428
+ newRunner = new RemoteGraphRunner(backend);
429
+ }
430
+ else {
431
+ newRunner = new LocalGraphRunner();
432
+ }
433
+ return newRunner;
434
+ }, [backendKindToUse, httpBaseUrl, wsUrl, backendOptions]);
435
+ // Dispose runner when it changes or component unmounts
436
+ useEffect(() => {
437
+ return () => {
438
+ try {
439
+ runner.dispose();
440
+ }
441
+ catch (err) {
442
+ console.warn("Error disposing runner:", err);
443
+ }
444
+ };
445
+ }, [runner]);
446
+ const isGraphRunning = runner.isRunning();
447
+ // Track UI registration version to trigger nodeTypes recomputation
448
+ const [uiVersion, setUiVersion] = useState(0);
449
+ // Allow external UI registration (e.g., node renderers) with access to wb
450
+ useEffect(() => {
451
+ const baseRegisterUI = (_wb) => { };
452
+ overrides?.registerUI?.(baseRegisterUI, { wb, wbRunner: runner });
453
+ // Increment UI version to trigger nodeTypes recomputation in WorkbenchCanvas
454
+ setUiVersion((v) => v + 1);
455
+ }, [wb, runner, overrides]);
456
+ const onBackendKindChangeWithDispose = useCallback(() => (v) => {
457
+ if (isGraphRunning)
458
+ runner.dispose();
459
+ onBackendKindChange(v);
460
+ }, [isGraphRunning]);
461
+ return (_jsx(WorkbenchProvider, { wb: wb, runner: runner, overrides: overrides, uiVersion: uiVersion, children: _jsx(WorkbenchStudioCanvas, { autoScroll: autoScroll, onAutoScrollChange: onAutoScrollChange, example: example, onExampleChange: onExampleChange, backendKind: backendKindToUse, onBackendKindChange: onBackendKindChangeWithDispose, httpBaseUrl: httpBaseUrl, onHttpBaseUrlChange: onHttpBaseUrlChange, wsUrl: wsUrl, onWsUrlChange: onWsUrlChange, debug: debug, onDebugChange: onDebugChange, showValues: showValues, onShowValuesChange: onShowValuesChange, hideWorkbench: hideWorkbench, onHideWorkbenchChange: onHideWorkbenchChange, overrides: overrides, onInit: onInit, onChange: onChange }) }));
462
+ }
463
+ //# sourceMappingURL=WorkbenchStudio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkbenchStudio.js","sourceRoot":"","sources":["../../../src/misc/WorkbenchStudio.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const NODE_HEADER_HEIGHT_PX = 24;
2
+ export declare const NODE_ROW_HEIGHT_PX = 18;
3
+ export declare const HANDLE_SIZE_PX = 12;
4
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/misc/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,qBAAqB,KAAK,CAAC;AACxC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,cAAc,KAAK,CAAC"}