@bian-womp/spark-workbench 0.3.88 → 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 (169) hide show
  1. package/lib/src/adapters/cli/index.d.ts +22 -0
  2. package/lib/src/adapters/cli/index.d.ts.map +1 -0
  3. package/lib/src/adapters/cli/index.js +50 -0
  4. package/lib/src/adapters/cli/index.js.map +1 -0
  5. package/lib/src/core/AbstractWorkbench.d.ts +40 -0
  6. package/lib/src/core/AbstractWorkbench.d.ts.map +1 -0
  7. package/lib/src/core/AbstractWorkbench.js +15 -0
  8. package/lib/src/core/AbstractWorkbench.js.map +1 -0
  9. package/lib/src/core/InMemoryWorkbench.d.ts +304 -0
  10. package/lib/src/core/InMemoryWorkbench.d.ts.map +1 -0
  11. package/lib/src/core/InMemoryWorkbench.js +1016 -0
  12. package/lib/src/core/InMemoryWorkbench.js.map +1 -0
  13. package/lib/src/core/contracts.d.ts +172 -0
  14. package/lib/src/core/contracts.d.ts.map +1 -0
  15. package/lib/src/core/contracts.js +2 -0
  16. package/lib/src/core/contracts.js.map +1 -0
  17. package/lib/src/core/ui-extensions.d.ts +85 -0
  18. package/lib/src/core/ui-extensions.d.ts.map +1 -0
  19. package/lib/src/core/ui-extensions.js +111 -0
  20. package/lib/src/core/ui-extensions.js.map +1 -0
  21. package/lib/src/examples/cli.d.ts +2 -0
  22. package/lib/src/examples/cli.d.ts.map +1 -0
  23. package/lib/src/examples/cli.js +244 -0
  24. package/lib/src/examples/cli.js.map +1 -0
  25. package/lib/src/examples/reactflow/App.d.ts +2 -0
  26. package/lib/src/examples/reactflow/App.d.ts.map +1 -0
  27. package/lib/src/examples/reactflow/App.js +20 -0
  28. package/lib/src/examples/reactflow/App.js.map +1 -0
  29. package/lib/src/index.d.ts +30 -0
  30. package/lib/src/index.d.ts.map +1 -0
  31. package/lib/src/index.js +30 -0
  32. package/lib/src/index.js.map +1 -0
  33. package/lib/src/misc/DebugEvents.d.ts +7 -0
  34. package/lib/src/misc/DebugEvents.d.ts.map +1 -0
  35. package/lib/src/misc/DebugEvents.js +51 -0
  36. package/lib/src/misc/DebugEvents.js.map +1 -0
  37. package/lib/src/misc/DefaultEdge.d.ts +5 -0
  38. package/lib/src/misc/DefaultEdge.d.ts.map +1 -0
  39. package/lib/src/misc/DefaultEdge.js +15 -0
  40. package/lib/src/misc/DefaultEdge.js.map +1 -0
  41. package/lib/src/misc/DefaultNode.d.ts +5 -0
  42. package/lib/src/misc/DefaultNode.d.ts.map +1 -0
  43. package/lib/src/misc/DefaultNode.js +25 -0
  44. package/lib/src/misc/DefaultNode.js.map +1 -0
  45. package/lib/src/misc/DefaultNodeContent.d.ts +4 -0
  46. package/lib/src/misc/DefaultNodeContent.d.ts.map +1 -0
  47. package/lib/src/misc/DefaultNodeContent.js +58 -0
  48. package/lib/src/misc/DefaultNodeContent.js.map +1 -0
  49. package/lib/src/misc/DefaultNodeHeader.d.ts +13 -0
  50. package/lib/src/misc/DefaultNodeHeader.d.ts.map +1 -0
  51. package/lib/src/misc/DefaultNodeHeader.js +78 -0
  52. package/lib/src/misc/DefaultNodeHeader.js.map +1 -0
  53. package/lib/src/misc/Inspector.d.ts +12 -0
  54. package/lib/src/misc/Inspector.d.ts.map +1 -0
  55. package/lib/src/misc/Inspector.js +253 -0
  56. package/lib/src/misc/Inspector.js.map +1 -0
  57. package/lib/src/misc/IssueBadge.d.ts +7 -0
  58. package/lib/src/misc/IssueBadge.d.ts.map +1 -0
  59. package/lib/src/misc/IssueBadge.js +7 -0
  60. package/lib/src/misc/IssueBadge.js.map +1 -0
  61. package/lib/src/misc/KeyboardShortcutToast.d.ts +16 -0
  62. package/lib/src/misc/KeyboardShortcutToast.d.ts.map +1 -0
  63. package/lib/src/misc/KeyboardShortcutToast.js +40 -0
  64. package/lib/src/misc/KeyboardShortcutToast.js.map +1 -0
  65. package/lib/src/misc/NodeHandles.d.ts +18 -0
  66. package/lib/src/misc/NodeHandles.d.ts.map +1 -0
  67. package/lib/src/misc/NodeHandles.js +67 -0
  68. package/lib/src/misc/NodeHandles.js.map +1 -0
  69. package/lib/src/misc/SelectionActiveSync.d.ts +10 -0
  70. package/lib/src/misc/SelectionActiveSync.d.ts.map +1 -0
  71. package/lib/src/misc/SelectionActiveSync.js +21 -0
  72. package/lib/src/misc/SelectionActiveSync.js.map +1 -0
  73. package/lib/src/misc/WorkbenchCanvas.d.ts +23 -0
  74. package/lib/src/misc/WorkbenchCanvas.d.ts.map +1 -0
  75. package/lib/src/misc/WorkbenchCanvas.js +669 -0
  76. package/lib/src/misc/WorkbenchCanvas.js.map +1 -0
  77. package/lib/src/misc/WorkbenchStudio.d.ts +43 -0
  78. package/lib/src/misc/WorkbenchStudio.d.ts.map +1 -0
  79. package/lib/src/misc/WorkbenchStudio.js +463 -0
  80. package/lib/src/misc/WorkbenchStudio.js.map +1 -0
  81. package/lib/src/misc/constants.d.ts +4 -0
  82. package/lib/src/misc/constants.d.ts.map +1 -0
  83. package/lib/src/misc/constants.js +5 -0
  84. package/lib/src/misc/constants.js.map +1 -0
  85. package/lib/src/misc/context/WorkbenchContext.d.ts +133 -0
  86. package/lib/src/misc/context/WorkbenchContext.d.ts.map +1 -0
  87. package/lib/src/misc/context/WorkbenchContext.js +9 -0
  88. package/lib/src/misc/context/WorkbenchContext.js.map +1 -0
  89. package/lib/src/misc/context/WorkbenchContext.provider.d.ts +12 -0
  90. package/lib/src/misc/context/WorkbenchContext.provider.d.ts.map +1 -0
  91. package/lib/src/misc/context/WorkbenchContext.provider.js +995 -0
  92. package/lib/src/misc/context/WorkbenchContext.provider.js.map +1 -0
  93. package/lib/src/misc/context-menu/ContextMenuButton.d.ts +8 -0
  94. package/lib/src/misc/context-menu/ContextMenuButton.d.ts.map +1 -0
  95. package/lib/src/misc/context-menu/ContextMenuButton.js +10 -0
  96. package/lib/src/misc/context-menu/ContextMenuButton.js.map +1 -0
  97. package/lib/src/misc/context-menu/ContextMenuHandlers.d.ts +85 -0
  98. package/lib/src/misc/context-menu/ContextMenuHandlers.d.ts.map +1 -0
  99. package/lib/src/misc/context-menu/ContextMenuHandlers.js +2 -0
  100. package/lib/src/misc/context-menu/ContextMenuHandlers.js.map +1 -0
  101. package/lib/src/misc/context-menu/ContextMenuHelpers.d.ts +45 -0
  102. package/lib/src/misc/context-menu/ContextMenuHelpers.d.ts.map +1 -0
  103. package/lib/src/misc/context-menu/ContextMenuHelpers.js +182 -0
  104. package/lib/src/misc/context-menu/ContextMenuHelpers.js.map +1 -0
  105. package/lib/src/misc/context-menu/DefaultContextMenu.d.ts +3 -0
  106. package/lib/src/misc/context-menu/DefaultContextMenu.d.ts.map +1 -0
  107. package/lib/src/misc/context-menu/DefaultContextMenu.js +111 -0
  108. package/lib/src/misc/context-menu/DefaultContextMenu.js.map +1 -0
  109. package/lib/src/misc/context-menu/NodeContextMenu.d.ts +3 -0
  110. package/lib/src/misc/context-menu/NodeContextMenu.d.ts.map +1 -0
  111. package/lib/src/misc/context-menu/NodeContextMenu.js +51 -0
  112. package/lib/src/misc/context-menu/NodeContextMenu.js.map +1 -0
  113. package/lib/src/misc/context-menu/SelectionContextMenu.d.ts +3 -0
  114. package/lib/src/misc/context-menu/SelectionContextMenu.d.ts.map +1 -0
  115. package/lib/src/misc/context-menu/SelectionContextMenu.js +47 -0
  116. package/lib/src/misc/context-menu/SelectionContextMenu.js.map +1 -0
  117. package/lib/src/misc/hooks.d.ts +18 -0
  118. package/lib/src/misc/hooks.d.ts.map +1 -0
  119. package/lib/src/misc/hooks.js +275 -0
  120. package/lib/src/misc/hooks.js.map +1 -0
  121. package/lib/src/misc/layout.d.ts +117 -0
  122. package/lib/src/misc/layout.d.ts.map +1 -0
  123. package/lib/src/misc/layout.js +205 -0
  124. package/lib/src/misc/layout.js.map +1 -0
  125. package/lib/src/misc/load.d.ts +5 -0
  126. package/lib/src/misc/load.d.ts.map +1 -0
  127. package/lib/src/misc/load.js +106 -0
  128. package/lib/src/misc/load.js.map +1 -0
  129. package/lib/src/misc/mapping.d.ts +128 -0
  130. package/lib/src/misc/mapping.d.ts.map +1 -0
  131. package/lib/src/misc/mapping.js +270 -0
  132. package/lib/src/misc/mapping.js.map +1 -0
  133. package/lib/src/misc/merge-utils.d.ts +12 -0
  134. package/lib/src/misc/merge-utils.d.ts.map +1 -0
  135. package/lib/src/misc/merge-utils.js +51 -0
  136. package/lib/src/misc/merge-utils.js.map +1 -0
  137. package/lib/src/misc/thumbnail-utils.d.ts +53 -0
  138. package/lib/src/misc/thumbnail-utils.d.ts.map +1 -0
  139. package/lib/src/misc/thumbnail-utils.js +629 -0
  140. package/lib/src/misc/thumbnail-utils.js.map +1 -0
  141. package/lib/src/misc/types.d.ts +18 -0
  142. package/lib/src/misc/types.d.ts.map +1 -0
  143. package/lib/src/misc/types.js +2 -0
  144. package/lib/src/misc/types.js.map +1 -0
  145. package/lib/src/misc/value.d.ts +16 -0
  146. package/lib/src/misc/value.d.ts.map +1 -0
  147. package/lib/src/misc/value.js +114 -0
  148. package/lib/src/misc/value.js.map +1 -0
  149. package/lib/src/misc/viewport-utils.d.ts +6 -0
  150. package/lib/src/misc/viewport-utils.d.ts.map +1 -0
  151. package/lib/src/misc/viewport-utils.js +18 -0
  152. package/lib/src/misc/viewport-utils.js.map +1 -0
  153. package/lib/src/runtime/AbstractGraphRunner.d.ts +61 -0
  154. package/lib/src/runtime/AbstractGraphRunner.d.ts.map +1 -0
  155. package/lib/src/runtime/AbstractGraphRunner.js +63 -0
  156. package/lib/src/runtime/AbstractGraphRunner.js.map +1 -0
  157. package/lib/src/runtime/IGraphRunner.d.ts +100 -0
  158. package/lib/src/runtime/IGraphRunner.d.ts.map +1 -0
  159. package/lib/src/runtime/IGraphRunner.js +2 -0
  160. package/lib/src/runtime/IGraphRunner.js.map +1 -0
  161. package/lib/src/runtime/LocalGraphRunner.d.ts +60 -0
  162. package/lib/src/runtime/LocalGraphRunner.d.ts.map +1 -0
  163. package/lib/src/runtime/LocalGraphRunner.js +294 -0
  164. package/lib/src/runtime/LocalGraphRunner.js.map +1 -0
  165. package/lib/src/runtime/RemoteGraphRunner.d.ts +109 -0
  166. package/lib/src/runtime/RemoteGraphRunner.d.ts.map +1 -0
  167. package/lib/src/runtime/RemoteGraphRunner.js +696 -0
  168. package/lib/src/runtime/RemoteGraphRunner.js.map +1 -0
  169. package/package.json +4 -4
@@ -0,0 +1,244 @@
1
+ import { createSimpleGraphRegistry, createSimpleGraphDef, createAsyncGraphRegistry, createAsyncGraphDef, createProgressGraphRegistry, createProgressGraphDef, generateId, } from "@bian-womp/spark-graph";
2
+ import { InMemoryWorkbench } from "../core/InMemoryWorkbench";
3
+ import { CLIWorkbench } from "../adapters/cli";
4
+ import { LocalGraphRunner } from "../runtime/LocalGraphRunner";
5
+ import { DefaultUIExtensionRegistry } from "../core/ui-extensions";
6
+ async function main() {
7
+ let registry = createSimpleGraphRegistry();
8
+ let def = createSimpleGraphDef();
9
+ const wb = new InMemoryWorkbench({
10
+ ui: new DefaultUIExtensionRegistry(),
11
+ genId: generateId,
12
+ });
13
+ const cli = new CLIWorkbench(wb);
14
+ await cli.load(def);
15
+ let runner = new LocalGraphRunner(wb.registry);
16
+ let verbose = false;
17
+ let unsubs = [];
18
+ let currentRunMode;
19
+ const setVerbose = (on) => {
20
+ for (const u of unsubs.splice(0))
21
+ try {
22
+ u();
23
+ }
24
+ catch { }
25
+ verbose = on;
26
+ if (!on)
27
+ return;
28
+ // Subscribe to workbench events
29
+ unsubs.push(wb.on("graphChanged", (e) => console.log("[wb:graphChanged]", e.change ?? "full")));
30
+ unsubs.push(wb.on("validationChanged", (r) => console.log("[wb:validationChanged]", r)));
31
+ unsubs.push(wb.on("error", (e) => console.warn("[wb:error]", e)));
32
+ unsubs.push(wb.on("selectionChanged", (e) => console.log("[wb:selectionChanged]", e)));
33
+ // Subscribe to runner events
34
+ unsubs.push(runner.on("value", (e) => console.log("[run:value]", e.io, e.nodeId + "." + e.handle, e.value)));
35
+ unsubs.push(runner.on("invalidate", (e) => console.log("[run:invalidate]", e)));
36
+ unsubs.push(runner.on("error", (e) => console.warn("[run:error]", e)));
37
+ unsubs.push(runner.on("status", (s) => console.log("[run:status]", s)));
38
+ unsubs.push(runner.on("stats", (s) => console.log("[run:stats]", s)));
39
+ };
40
+ const loadExample = async (name) => {
41
+ runner.dispose();
42
+ setVerbose(false);
43
+ if (name === "simple") {
44
+ registry = createSimpleGraphRegistry();
45
+ def = createSimpleGraphDef();
46
+ }
47
+ else if (name === "async") {
48
+ registry = createAsyncGraphRegistry();
49
+ def = createAsyncGraphDef();
50
+ }
51
+ else if (name === "progress") {
52
+ registry = createProgressGraphRegistry();
53
+ def = createProgressGraphDef();
54
+ }
55
+ else {
56
+ console.warn(`Unknown example: ${name}`);
57
+ return;
58
+ }
59
+ wb.setRegistry(registry);
60
+ await cli.load(def);
61
+ runner = new LocalGraphRunner(wb.registry);
62
+ if (verbose)
63
+ setVerbose(true);
64
+ console.log(`[example] loaded: ${name}`);
65
+ };
66
+ const help = `Commands:\n` +
67
+ ` help Show this help\n` +
68
+ ` print [detail] Print graph (add 'detail' for schemas)\n` +
69
+ ` validate Run validation\n` +
70
+ ` add-node <typeId> [nodeId] Add node\n` +
71
+ ` rm-node <nodeId> Remove node\n` +
72
+ ` connect <srcNode> <out> <dstNode> <in> <typeId> Add edge\n` +
73
+ ` disconnect <edgeId> Remove edge\n` +
74
+ ` set-param <nodeId> <key> <value> Update node params (string)\n` +
75
+ ` runMode <mode> Select runMode: auto|manual\n` +
76
+ ` start Start runner with selected runMode\n` +
77
+ ` run <runMode> Start runner immediately with runMode\n` +
78
+ ` set-input <nodeId> <handle> <value> Set input during run\n` +
79
+ ` Examples:\n` +
80
+ ` set-input n1 A 5 (number)\n` +
81
+ ` set-input n1 A [2,3] (array)\n` +
82
+ ` set-input n1 Operation 0 (operation: 0=Add, 2=Multiply)\n` +
83
+ ` compute <nodeId> Compute node (manual mode only)\n` +
84
+ ` run-from <nodeId> Run node and all downstream (manual mode only)\n` +
85
+ ` inputs Print current inputs\n` +
86
+ ` outputs Print current outputs\n` +
87
+ ` verbose <on|off> Toggle verbose event logging\n` +
88
+ ` example <simple|async|progress> Load example graph\n` +
89
+ ` stop Stop engine\n` +
90
+ ` quit Exit\n`;
91
+ console.log(help);
92
+ const readline = await import("node:readline/promises");
93
+ const rl = readline.createInterface({
94
+ input: process.stdin,
95
+ output: process.stdout,
96
+ });
97
+ while (true) {
98
+ const line = await rl.question("> ");
99
+ const [cmd, ...args] = line.trim().split(/\s+/);
100
+ try {
101
+ if (!cmd)
102
+ continue;
103
+ if (cmd === "help")
104
+ console.log(help);
105
+ else if (cmd === "print") {
106
+ const values = {
107
+ inputs: runner.getInputs(wb.def),
108
+ outputs: runner.getOutputs(wb.def),
109
+ };
110
+ console.log(cli.print({ detail: args[0] === "detail", values }));
111
+ }
112
+ else if (cmd === "validate")
113
+ console.log(wb.validate());
114
+ else if (cmd === "add-node") {
115
+ const [typeId, nodeId] = args;
116
+ wb.addNode({ typeId, nodeId });
117
+ }
118
+ else if (cmd === "rm-node") {
119
+ const [nodeId] = args;
120
+ wb.removeNode(nodeId);
121
+ }
122
+ else if (cmd === "connect") {
123
+ const [srcNode, out, dstNode, input, typeId] = args;
124
+ wb.connect({
125
+ source: { nodeId: srcNode, handle: out },
126
+ target: { nodeId: dstNode, handle: input },
127
+ typeId,
128
+ });
129
+ }
130
+ else if (cmd === "disconnect") {
131
+ const [edgeId] = args;
132
+ wb.disconnect(edgeId);
133
+ }
134
+ else if (cmd === "set-param") {
135
+ const [nodeId, key, value] = args;
136
+ wb.updateParams(nodeId, { [key]: value });
137
+ }
138
+ else if (cmd === "runMode") {
139
+ const [runMode] = args;
140
+ currentRunMode = runMode;
141
+ console.log(`[runMode] selected: ${currentRunMode}`);
142
+ }
143
+ else if (cmd === "start") {
144
+ if (!currentRunMode) {
145
+ console.warn("Select runMode first");
146
+ }
147
+ else {
148
+ runner.launch(wb.def, { runMode: currentRunMode });
149
+ }
150
+ }
151
+ else if (cmd === "run") {
152
+ const [runMode] = args;
153
+ currentRunMode = runMode;
154
+ runner.launch(wb.def, { runMode: currentRunMode });
155
+ }
156
+ else if (cmd === "set-input") {
157
+ const [nodeId, handle, valueStr] = args;
158
+ if (!nodeId || !handle || valueStr === undefined) {
159
+ console.warn("Usage: set-input <nodeId> <handle> <value>");
160
+ continue;
161
+ }
162
+ // Parse value: try JSON first (for arrays/objects), then number, then string
163
+ let value = valueStr;
164
+ // Try parsing as JSON (for arrays like [2,3] or objects)
165
+ if (valueStr.startsWith("[") || valueStr.startsWith("{")) {
166
+ try {
167
+ value = JSON.parse(valueStr);
168
+ }
169
+ catch {
170
+ // If JSON parse fails, treat as string
171
+ }
172
+ }
173
+ else {
174
+ // Try parsing as number
175
+ const num = Number(valueStr);
176
+ if (!Number.isNaN(num) && valueStr.trim() !== "") {
177
+ value = num;
178
+ }
179
+ // Otherwise keep as string
180
+ }
181
+ runner.setInputs(nodeId, { [handle]: value });
182
+ console.log(`[set-input] ${nodeId}.${handle} = ${JSON.stringify(value)}`);
183
+ }
184
+ else if (cmd === "compute") {
185
+ const [nodeId] = args;
186
+ if (!nodeId) {
187
+ console.warn("Usage: compute <nodeId>");
188
+ continue;
189
+ }
190
+ if (!runner.isRunning()) {
191
+ console.warn("Runner is not running. Use 'start' or 'run' first.");
192
+ continue;
193
+ }
194
+ console.log(`[compute] Running ${nodeId}...`);
195
+ await runner.computeNode(nodeId);
196
+ console.log(`[compute] ${nodeId} completed`);
197
+ }
198
+ else if (cmd === "run-from") {
199
+ const [nodeId] = args;
200
+ if (!nodeId) {
201
+ console.warn("Usage: run-from <nodeId>");
202
+ continue;
203
+ }
204
+ if (!runner.isRunning()) {
205
+ console.warn("Runner is not running. Use 'start' or 'run' first.");
206
+ continue;
207
+ }
208
+ console.log(`[run-from] Running ${nodeId} and downstream...`);
209
+ await runner.runFromHere(nodeId);
210
+ console.log(`[run-from] ${nodeId} and downstream completed`);
211
+ }
212
+ else if (cmd === "inputs") {
213
+ console.log(runner.getInputs(wb.def));
214
+ }
215
+ else if (cmd === "outputs") {
216
+ console.log(runner.getOutputs(wb.def));
217
+ }
218
+ else if (cmd === "verbose") {
219
+ const [arg] = args;
220
+ const on = arg === "on";
221
+ setVerbose(on);
222
+ console.log(`verbose ${on ? "on" : "off"}`);
223
+ }
224
+ else if (cmd === "example") {
225
+ const [name] = args;
226
+ await loadExample(name);
227
+ }
228
+ else if (cmd === "quit") {
229
+ runner.dispose();
230
+ setVerbose(false);
231
+ break;
232
+ }
233
+ else {
234
+ console.log("Unknown command. Type 'help'.");
235
+ }
236
+ }
237
+ catch (err) {
238
+ console.warn("Command failed:", err);
239
+ }
240
+ }
241
+ rl.close();
242
+ }
243
+ main();
244
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/examples/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export default function App(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=App.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../../src/examples/reactflow/App.tsx"],"names":[],"mappings":"AAKA,MAAM,CAAC,OAAO,UAAU,GAAG,4CAmC1B"}
@@ -0,0 +1,20 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useEffect } from "react";
3
+ import { WorkbenchStudio } from "../../misc/WorkbenchStudio";
4
+ import { useQueryParamBoolean, useQueryParamString } from "../../misc/hooks";
5
+ export default function App() {
6
+ const [example, setExample] = useQueryParamString("example", "simple");
7
+ const [debug, setDebug] = useQueryParamBoolean("debug", false);
8
+ const [showValues, setShowValues] = useQueryParamBoolean("values", false);
9
+ const [hideWorkbench, setHideWorkbench] = useQueryParamBoolean("hideWb", false);
10
+ const [autoScroll, setAutoScroll] = useQueryParamBoolean("autoScroll", true);
11
+ // Backend selection via URL params
12
+ const [backendKind, setBackendKind] = useQueryParamString("backend", "local");
13
+ const [httpBaseUrl, setHttpBaseUrl] = useQueryParamString("sparkHttp", "http://127.0.0.1:18080");
14
+ const [wsUrl, setWsUrl] = useQueryParamString("sparkWs", "ws://127.0.0.1:18081");
15
+ useEffect(() => {
16
+ document.getElementById("loading-screen")?.remove();
17
+ }, []);
18
+ return (_jsx(WorkbenchStudio, { example: example, onExampleChange: setExample, backendKind: (backendKind || "local"), onBackendKindChange: (v) => setBackendKind(v), httpBaseUrl: httpBaseUrl || "http://127.0.0.1:18080", onHttpBaseUrlChange: setHttpBaseUrl, wsUrl: wsUrl || "ws://127.0.0.1:18081", onWsUrlChange: setWsUrl, debug: debug, onDebugChange: setDebug, showValues: showValues, onShowValuesChange: setShowValues, hideWorkbench: hideWorkbench, onHideWorkbenchChange: setHideWorkbench, autoScroll: autoScroll, onAutoScrollChange: setAutoScroll }));
19
+ }
20
+ //# sourceMappingURL=App.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"App.js","sourceRoot":"","sources":["../../../../src/examples/reactflow/App.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAG7E,MAAM,CAAC,OAAO,UAAU,GAAG;IACzB,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACvE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/D,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,oBAAoB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC1E,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,oBAAoB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAChF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,oBAAoB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAC7E,mCAAmC;IACnC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC9E,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,mBAAmB,CAAC,WAAW,EAAE,wBAAwB,CAAC,CAAC;IACjG,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,mBAAmB,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;IAEjF,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IACtD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,KAAC,eAAe,IACd,OAAO,EAAE,OAAO,EAChB,eAAe,EAAE,UAAU,EAC3B,WAAW,EAAE,CAAC,WAAW,IAAI,OAAO,CAA6B,EACjE,mBAAmB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,EAC7C,WAAW,EAAE,WAAW,IAAI,wBAAwB,EACpD,mBAAmB,EAAE,cAAc,EACnC,KAAK,EAAE,KAAK,IAAI,sBAAsB,EACtC,aAAa,EAAE,QAAQ,EACvB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,QAAQ,EACvB,UAAU,EAAE,UAAU,EACtB,kBAAkB,EAAE,aAAa,EACjC,aAAa,EAAE,aAAa,EAC5B,qBAAqB,EAAE,gBAAgB,EACvC,UAAU,EAAE,UAAU,EACtB,kBAAkB,EAAE,aAAa,GACjC,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,30 @@
1
+ export * from "./core/contracts";
2
+ export * from "./core/ui-extensions";
3
+ export * from "./core/AbstractWorkbench";
4
+ export * from "./core/InMemoryWorkbench";
5
+ export * from "./adapters/cli";
6
+ export * from "./runtime/IGraphRunner";
7
+ export * from "./runtime/LocalGraphRunner";
8
+ export * from "./runtime/RemoteGraphRunner";
9
+ export * from "./misc/types";
10
+ export * from "./misc/value";
11
+ export * from "./misc/layout";
12
+ export * from "./misc/hooks";
13
+ export * from "./misc/mapping";
14
+ export * from "./misc/load";
15
+ export * from "./misc/viewport-utils";
16
+ export * from "./misc/merge-utils";
17
+ export * from "./misc/thumbnail-utils";
18
+ export * from "./misc/context/WorkbenchContext";
19
+ export * from "./misc/context/WorkbenchContext.provider";
20
+ export * from "./misc/DefaultNode";
21
+ export * from "./misc/DefaultNodeHeader";
22
+ export * from "./misc/DefaultNodeContent";
23
+ export * from "./misc/DefaultEdge";
24
+ export * from "./misc/NodeHandles";
25
+ export * from "./misc/context-menu/ContextMenuHelpers";
26
+ export * from "./misc/context-menu/ContextMenuHandlers";
27
+ export * from "./misc/Inspector";
28
+ export * from "./misc/WorkbenchCanvas";
29
+ export * from "./misc/WorkbenchStudio";
30
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,gBAAgB,CAAC;AAE/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAE5C,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAE5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,0CAA0C,CAAC;AAEzD,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,wCAAwC,CAAC;AACvD,cAAc,yCAAyC,CAAC;AAExD,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,30 @@
1
+ export * from "./core/contracts";
2
+ export * from "./core/ui-extensions";
3
+ export * from "./core/AbstractWorkbench";
4
+ export * from "./core/InMemoryWorkbench";
5
+ export * from "./adapters/cli";
6
+ export * from "./runtime/IGraphRunner";
7
+ export * from "./runtime/LocalGraphRunner";
8
+ export * from "./runtime/RemoteGraphRunner";
9
+ export * from "./misc/types";
10
+ export * from "./misc/value";
11
+ export * from "./misc/layout";
12
+ export * from "./misc/hooks";
13
+ export * from "./misc/mapping";
14
+ export * from "./misc/load";
15
+ export * from "./misc/viewport-utils";
16
+ export * from "./misc/merge-utils";
17
+ export * from "./misc/thumbnail-utils";
18
+ export * from "./misc/context/WorkbenchContext";
19
+ export * from "./misc/context/WorkbenchContext.provider";
20
+ export * from "./misc/DefaultNode";
21
+ export * from "./misc/DefaultNodeHeader";
22
+ export * from "./misc/DefaultNodeContent";
23
+ export * from "./misc/DefaultEdge";
24
+ export * from "./misc/NodeHandles";
25
+ export * from "./misc/context-menu/ContextMenuHelpers";
26
+ export * from "./misc/context-menu/ContextMenuHandlers";
27
+ export * from "./misc/Inspector";
28
+ export * from "./misc/WorkbenchCanvas";
29
+ export * from "./misc/WorkbenchStudio";
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,gBAAgB,CAAC;AAE/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAE5C,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAE5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,0CAA0C,CAAC;AAEzD,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,wCAAwC,CAAC;AACvD,cAAc,yCAAyC,CAAC;AAExD,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare function DebugEvents({ autoScroll, onAutoScrollChange, hideWorkbench, onHideWorkbenchChange, }: {
2
+ autoScroll: boolean;
3
+ onAutoScrollChange?: (v: boolean) => void;
4
+ hideWorkbench: boolean;
5
+ onHideWorkbenchChange?: (v: boolean) => void;
6
+ }): import("react/jsx-runtime").JSX.Element;
7
+ //# sourceMappingURL=DebugEvents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DebugEvents.d.ts","sourceRoot":"","sources":["../../../src/misc/DebugEvents.tsx"],"names":[],"mappings":"AAKA,wBAAgB,WAAW,CAAC,EAC1B,UAAU,EACV,kBAAkB,EAClB,aAAa,EACb,qBAAqB,GACtB,EAAE;IACD,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,aAAa,EAAE,OAAO,CAAC;IACvB,qBAAqB,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CAC9C,2CA4FA"}
@@ -0,0 +1,51 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useMemo, useRef, useState } from "react";
3
+ import { CopyIcon, TrashIcon } from "@phosphor-icons/react";
4
+ import { useWorkbenchContext } from "./context/WorkbenchContext";
5
+ import { summarizeDeep } from "./value";
6
+ export function DebugEvents({ autoScroll, onAutoScrollChange, hideWorkbench, onHideWorkbenchChange, }) {
7
+ const { events, clearEvents } = useWorkbenchContext();
8
+ const scrollRef = useRef(null);
9
+ const [copied, setCopied] = useState(false);
10
+ const rows = useMemo(() => {
11
+ const filtered = hideWorkbench ? events.filter((e) => e.source !== "workbench") : events;
12
+ return filtered.slice().reverse();
13
+ }, [events, hideWorkbench]);
14
+ useEffect(() => {
15
+ if (!autoScroll)
16
+ return;
17
+ const el = scrollRef.current;
18
+ if (!el)
19
+ return;
20
+ el.scrollTop = el.scrollHeight;
21
+ }, [rows, autoScroll]);
22
+ const renderPayload = (v) => {
23
+ try {
24
+ const summarized = summarizeDeep(v);
25
+ return JSON.stringify(summarized, null, 0);
26
+ }
27
+ catch {
28
+ return String(v);
29
+ }
30
+ };
31
+ const handleCopyLogs = async () => {
32
+ try {
33
+ const formattedEvents = rows.map((ev) => ({
34
+ no: ev.no,
35
+ at: ev.at,
36
+ source: ev.source,
37
+ type: ev.type,
38
+ payload: summarizeDeep(ev.payload),
39
+ }));
40
+ const jsonString = JSON.stringify(formattedEvents, null, 2);
41
+ await navigator.clipboard.writeText(jsonString);
42
+ setCopied(true);
43
+ setTimeout(() => setCopied(false), 2000);
44
+ }
45
+ catch (err) {
46
+ console.error("Failed to copy logs:", err);
47
+ }
48
+ };
49
+ return (_jsxs("div", { className: "flex flex-col h-full min-h-0", children: [_jsxs("div", { className: "flex items-center justify-between mb-1", children: [_jsx("div", { className: "font-semibold", children: "Events" }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs("label", { className: "flex items-center gap-1 text-xs text-gray-700", children: [_jsx("input", { type: "checkbox", checked: hideWorkbench, onChange: (e) => onHideWorkbenchChange?.(e.target.checked) }), _jsx("span", { children: "Hide workbench" })] }), _jsxs("label", { className: "flex items-center gap-1 text-xs text-gray-700", children: [_jsx("input", { type: "checkbox", checked: autoScroll, onChange: (e) => onAutoScrollChange?.(e.target.checked) }), _jsx("span", { children: "Auto scroll" })] }), _jsx("button", { onClick: handleCopyLogs, className: "p-2 border border-gray-300 rounded flex items-center justify-center", title: copied ? "Copied!" : "Copy logs as formatted JSON", children: _jsx(CopyIcon, { size: 14 }) }), _jsx("button", { onClick: clearEvents, className: "p-2 border border-gray-300 rounded flex items-center justify-center", title: "Clear all events", children: _jsx(TrashIcon, { size: 14 }) })] })] }), _jsx("div", { ref: scrollRef, className: "flex-1 overflow-auto text-[11px] leading-4 divide-y divide-gray-200", children: rows.map((ev) => (_jsxs("div", { className: "opacity-85 odd:bg-gray-50 px-2 py-1", children: [_jsxs("div", { className: "flex items-baseline gap-2", children: [_jsx("span", { className: "w-12 shrink-0 text-right text-gray-500 select-none", children: ev.no }), _jsxs("span", { className: "text-gray-500", children: [new Date(ev.at).toLocaleTimeString(), " \u00B7 ", ev.source, ":", ev.type] })] }), _jsx("pre", { className: "m-0 whitespace-pre-wrap ml-12", children: renderPayload(ev.payload) })] }, `${ev.at}:${ev.no}`))) })] }));
50
+ }
51
+ //# sourceMappingURL=DebugEvents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DebugEvents.js","sourceRoot":"","sources":["../../../src/misc/DebugEvents.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+ import { EdgeProps } from "@xyflow/react";
3
+ import type { RFEdge } from "./mapping";
4
+ export declare const DefaultEdge: React.NamedExoticComponent<EdgeProps<RFEdge>>;
5
+ //# sourceMappingURL=DefaultEdge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultEdge.d.ts","sourceRoot":"","sources":["../../../src/misc/DefaultEdge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAY,SAAS,EAAiB,MAAM,eAAe,CAAC;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,eAAO,MAAM,WAAW,+CAsBtB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import { BaseEdge, getBezierPath } from "@xyflow/react";
4
+ export const DefaultEdge = React.memo(function DefaultEdge({ id, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, style, markerEnd, data, }) {
5
+ const [edgePath] = getBezierPath({
6
+ sourceX,
7
+ sourceY,
8
+ sourcePosition,
9
+ targetX,
10
+ targetY,
11
+ targetPosition,
12
+ });
13
+ return _jsx(BaseEdge, { id: id, path: edgePath, style: style, markerEnd: markerEnd });
14
+ });
15
+ //# sourceMappingURL=DefaultEdge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultEdge.js","sourceRoot":"","sources":["../../../src/misc/DefaultEdge.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAa,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnE,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,EACzD,EAAE,EACF,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,cAAc,EACd,cAAc,EACd,KAAK,EACL,SAAS,EACT,IAAI,GACc;IAClB,MAAM,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC;QAC/B,OAAO;QACP,OAAO;QACP,cAAc;QACd,OAAO;QACP,OAAO;QACP,cAAc;KACf,CAAC,CAAC;IAEH,OAAO,KAAC,QAAQ,IAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,GAAI,CAAC;AAClF,CAAC,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+ import { type NodeProps } from "@xyflow/react";
3
+ import { type RFNode } from "./mapping";
4
+ export declare const DefaultNode: React.NamedExoticComponent<NodeProps<RFNode>>;
5
+ //# sourceMappingURL=DefaultNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultNode.d.ts","sourceRoot":"","sources":["../../../src/misc/DefaultNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiB,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,KAAK,SAAS,EAAe,MAAM,eAAe,CAAC;AAE5D,OAAO,EAA2B,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AAIjE,eAAO,MAAM,WAAW,+CA0BtB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React, { useRef } from "react";
3
+ import { NodeResizer } from "@xyflow/react";
4
+ import cx from "classnames";
5
+ import { getNodeBorderClassNames } from "./mapping";
6
+ import { DefaultNodeHeader } from "./DefaultNodeHeader";
7
+ import { DefaultNodeContent } from "./DefaultNodeContent";
8
+ export const DefaultNode = React.memo(function DefaultNode({ id, data, selected, isConnectable }) {
9
+ const nodeRef = useRef(null);
10
+ const { typeId } = data;
11
+ const status = data.status ?? { activeRuns: 0 };
12
+ const validation = data.validation ?? {
13
+ inputs: [],
14
+ outputs: [],
15
+ issues: [],
16
+ };
17
+ const containerBorder = getNodeBorderClassNames({
18
+ selected,
19
+ status,
20
+ validation,
21
+ });
22
+ return (_jsxs("div", { ref: nodeRef, className: cx("rounded-lg bg-white/50 !dark:bg-stone-900 w-full h-full relative", containerBorder), children: [_jsx(NodeResizer, { isVisible: selected, minWidth: data.initialWidth, minHeight: data.initialHeight }), _jsx(DefaultNodeHeader, { id: id, typeId: typeId, validation: validation, showId: data.showValues }), _jsx(DefaultNodeContent, { data: data, isConnectable: isConnectable })] }));
23
+ });
24
+ DefaultNode.displayName = "DefaultNode";
25
+ //# sourceMappingURL=DefaultNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultNode.js","sourceRoot":"","sources":["../../../src/misc/DefaultNode.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAkB,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,uBAAuB,EAAe,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAqB;IACjH,MAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC7C,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;IAChD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI;QACpC,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;KACX,CAAC;IAEF,MAAM,eAAe,GAAG,uBAAuB,CAAC;QAC9C,QAAQ;QACR,MAAM;QACN,UAAU;KACX,CAAC,CAAC;IAEH,OAAO,CACL,eACE,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,EAAE,CAAC,kEAAkE,EAAE,eAAe,CAAC,aAElG,KAAC,WAAW,IAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa,GAAI,EAChG,KAAC,iBAAiB,IAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,GAAI,EAC9F,KAAC,kBAAkB,IAAC,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,GAAI,IAC5D,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AACH,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type NodeProps } from "@xyflow/react";
2
+ import { type RFNode } from "./mapping";
3
+ export declare function DefaultNodeContent({ data, isConnectable }: Pick<NodeProps<RFNode>, "data" | "isConnectable">): import("react/jsx-runtime").JSX.Element;
4
+ //# sourceMappingURL=DefaultNodeContent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultNodeContent.d.ts","sourceRoot":"","sources":["../../../src/misc/DefaultNodeContent.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,eAAe,CAAC;AAK1D,OAAO,EAAsB,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AAE5D,wBAAgB,kBAAkB,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC,2CA8G5G"}
@@ -0,0 +1,58 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import cx from "classnames";
3
+ import NodeHandles from "./NodeHandles";
4
+ import { resolveOutputDisplay, prettyHandle } from "./value";
5
+ import { IssueBadge } from "./IssueBadge";
6
+ import { getHandleClassName } from "./mapping";
7
+ export function DefaultNodeContent({ data, isConnectable }) {
8
+ const { showValues, inputValues, inputDefaults, outputValues, toString } = data;
9
+ const inputEntries = data.inputHandles ?? [];
10
+ const outputEntries = data.outputHandles ?? [];
11
+ const status = data.status ?? { activeRuns: 0 };
12
+ const validation = data.validation ?? {
13
+ inputs: [],
14
+ outputs: [],
15
+ issues: [],
16
+ };
17
+ const isRunning = !!status.activeRuns;
18
+ const pct = Math.round(Math.max(0, Math.min(1, Number(status.progress) || 0)) * 100);
19
+ return (_jsxs(_Fragment, { children: [_jsx("div", { className: cx("h-px", (isRunning || pct > 0) && "bg-blue-200 dark:bg-blue-900"), children: _jsx("div", { className: cx("h-px transition-all", (isRunning || pct > 0) && "bg-blue-500"), style: { width: isRunning || pct > 0 ? `${pct}%` : 0 } }) }), _jsx(NodeHandles, { data: data, isConnectable: isConnectable, getClassName: ({ kind, id }) => getHandleClassName({
20
+ kind,
21
+ id,
22
+ validation,
23
+ inputValues,
24
+ outputValues,
25
+ inputDefaults,
26
+ inputConnected: data.inputConnected,
27
+ }), renderLabel: ({ kind, id: handleId }) => {
28
+ const entries = kind === "input" ? inputEntries : outputEntries;
29
+ const entry = entries.find((e) => e.id === handleId);
30
+ if (!entry)
31
+ return prettyHandle(handleId);
32
+ const vIssues = (kind === "input" ? validation.inputs : validation.outputs).filter((v) => v.handle === handleId);
33
+ const hasAny = vIssues.length > 0;
34
+ const hasErr = vIssues.some((v) => v.level === "error");
35
+ const title = vIssues.map((v) => `${v.code}: ${v.message}`).join("; ");
36
+ const valueText = (() => {
37
+ if (!showValues)
38
+ return undefined;
39
+ if (kind === "input") {
40
+ const value = inputValues?.[entry.id];
41
+ const isDefault = value !== undefined &&
42
+ inputDefaults?.[entry.id] !== undefined &&
43
+ JSON.stringify(value) === JSON.stringify(inputDefaults[entry.id]);
44
+ const txt = toString(entry.typeId, value);
45
+ const str = typeof txt === "string" ? txt : String(txt);
46
+ return { text: str, isDefault };
47
+ }
48
+ const resolved = resolveOutputDisplay(outputValues?.[entry.id], entry.typeId);
49
+ const txt = toString(resolved.typeId, resolved.value);
50
+ return {
51
+ text: typeof txt === "string" ? txt : String(txt),
52
+ isDefault: false,
53
+ };
54
+ })();
55
+ return (_jsxs("span", { className: `flex items-center gap-1 w-full ${valueText?.isDefault ? "text-gray-400" : ""}`, children: [kind === "output" ? (_jsxs(_Fragment, { children: [valueText !== undefined ? (_jsx("span", { className: "opacity-60 truncate pl-1", style: { flex: 1, minWidth: 0, maxWidth: "100%" }, children: valueText.text })) : (_jsx("span", { style: { flex: 1, minWidth: 0, maxWidth: "100%" } })), _jsx("span", { className: "truncate shrink-0", style: valueText !== undefined ? { maxWidth: "40%" } : {}, children: prettyHandle(handleId) })] })) : (_jsxs(_Fragment, { children: [_jsx("span", { className: "truncate shrink-0", "data-handle-id": handleId, style: valueText !== undefined ? { maxWidth: "40%" } : {}, children: prettyHandle(handleId) }), valueText !== undefined && (_jsx("span", { className: `truncate pr-1 ${valueText.isDefault ? "text-gray-400" : "opacity-60"}`, style: { flex: 1, minWidth: 0, maxWidth: "100%" }, children: valueText.text }))] })), hasAny && (_jsx(IssueBadge, { level: hasErr ? "error" : "warning", size: 12, className: "shrink-0", title: title }))] }));
56
+ } })] }));
57
+ }
58
+ //# sourceMappingURL=DefaultNodeContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultNodeContent.js","sourceRoot":"","sources":["../../../src/misc/DefaultNodeContent.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+ export declare function DefaultNodeHeader({ id, typeId, validation, right, showId, }: {
3
+ id: string;
4
+ typeId?: string;
5
+ validation: {
6
+ inputs?: any[];
7
+ outputs?: any[];
8
+ issues?: any[];
9
+ };
10
+ right?: React.ReactNode;
11
+ showId?: boolean;
12
+ }): import("react/jsx-runtime").JSX.Element;
13
+ //# sourceMappingURL=DefaultNodeHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultNodeHeader.d.ts","sourceRoot":"","sources":["../../../src/misc/DefaultNodeHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,wBAAgB,iBAAiB,CAAC,EAChC,EAAE,EACF,MAAM,EACN,UAAU,EACV,KAAK,EACL,MAAM,GACP,EAAE;IACD,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE;QAAE,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAA;KAAE,CAAC;IAChE,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,2CAkJA"}