@bian-womp/spark-workbench 0.3.88 → 0.3.90

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,18 @@
1
+ import type { Viewport } from "@bian-womp/spark-protocol";
2
+ export interface WorkbenchUIState {
3
+ positions?: Record<string, {
4
+ x: number;
5
+ y: number;
6
+ }>;
7
+ selection?: {
8
+ nodes: string[];
9
+ edges: string[];
10
+ };
11
+ nodeNames?: Record<string, string>;
12
+ viewport?: Viewport;
13
+ sizes?: Record<string, {
14
+ width: number;
15
+ height: number;
16
+ }>;
17
+ }
18
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/misc/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAE1D,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC3D"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/misc/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import { type Registry } from "@bian-womp/spark-graph";
2
+ export declare function formatDataUrlAsLabel(dataUrl: string): string;
3
+ export declare function resolveOutputDisplay(raw: unknown, declared: string | string[] | undefined): {
4
+ typeId?: string;
5
+ value: unknown;
6
+ };
7
+ export declare function formatDeclaredTypeSignature(declared: string | string[] | undefined): string | undefined;
8
+ /**
9
+ * Formats a handle ID for display in the UI.
10
+ * For handles with format "prefix:middle:suffix:extra" (4 parts), displays only the middle part.
11
+ * Otherwise returns the handle ID as-is.
12
+ */
13
+ export declare function prettyHandle(id: string): string;
14
+ export declare function preformatValueForDisplay(typeId: string | undefined, value: unknown, registry?: Registry): string | undefined;
15
+ export declare function summarizeDeep(value: unknown): unknown;
16
+ //# sourceMappingURL=value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value.d.ts","sourceRoot":"","sources":["../../../src/misc/value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,QAAQ,EAA6B,MAAM,wBAAwB,CAAC;AAE3F,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAW5D;AAED,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,GACtC;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAcrC;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAGvG;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAS/C;AAGD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,KAAK,EAAE,OAAO,EACd,QAAQ,CAAC,EAAE,QAAQ,GAClB,MAAM,GAAG,SAAS,CAyBpB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CA6BrD"}
@@ -0,0 +1,114 @@
1
+ import { isTyped, unwrapTypeId, unwrapValue } from "@bian-womp/spark-graph";
2
+ export function formatDataUrlAsLabel(dataUrl) {
3
+ try {
4
+ const semi = dataUrl.indexOf(";");
5
+ const comma = dataUrl.indexOf(",");
6
+ const mime = dataUrl.slice(5, semi > 0 ? semi : undefined).toUpperCase();
7
+ const b64 = comma >= 0 ? dataUrl.slice(comma + 1) : "";
8
+ const bytes = Math.floor((b64.length * 3) / 4);
9
+ return `${mime} Data (${bytes} bytes)`;
10
+ }
11
+ catch {
12
+ return dataUrl.length > 64 ? dataUrl.slice(0, 64) + "…" : dataUrl;
13
+ }
14
+ }
15
+ export function resolveOutputDisplay(raw, declared) {
16
+ if (isTyped(raw)) {
17
+ return {
18
+ typeId: unwrapTypeId(raw),
19
+ value: unwrapValue(raw),
20
+ };
21
+ }
22
+ let typeId = undefined;
23
+ if (Array.isArray(declared)) {
24
+ typeId = declared.length === 1 ? declared[0] : undefined;
25
+ }
26
+ else if (typeof declared === "string") {
27
+ typeId = declared.includes("|") ? undefined : declared;
28
+ }
29
+ return { typeId, value: raw };
30
+ }
31
+ export function formatDeclaredTypeSignature(declared) {
32
+ if (Array.isArray(declared))
33
+ return declared.join(" | ");
34
+ return declared;
35
+ }
36
+ /**
37
+ * Formats a handle ID for display in the UI.
38
+ * For handles with format "prefix:middle:suffix:extra" (4 parts), displays only the middle part.
39
+ * Otherwise returns the handle ID as-is.
40
+ */
41
+ export function prettyHandle(id) {
42
+ try {
43
+ const parts = String(id).split(":");
44
+ // If there are exactly 3 colons (4 parts), display only the second part
45
+ if (parts.length >= 3)
46
+ return parts[1] || id;
47
+ return id;
48
+ }
49
+ catch {
50
+ return id;
51
+ }
52
+ }
53
+ // Pre-format common structures for display; return undefined to defer to caller
54
+ export function preformatValueForDisplay(typeId, value, registry) {
55
+ if (value === undefined || value === null)
56
+ return "";
57
+ // Unwrap typed outputs
58
+ if (isTyped(value)) {
59
+ return preformatValueForDisplay(unwrapTypeId(value), unwrapValue(value), registry);
60
+ }
61
+ // Enums
62
+ if (typeId && typeId.startsWith("enum:") && registry) {
63
+ const n = Number(value);
64
+ const label = registry.enums.get(typeId)?.valueToLabel.get(n);
65
+ if (label)
66
+ return label;
67
+ }
68
+ // Use deep summarization for strings, arrays and nested objects to avoid huge HTML payloads
69
+ const summarized = summarizeDeep(value);
70
+ if (typeof summarized === "string")
71
+ return summarized;
72
+ // Resource-like objects with url/title (after summarization)
73
+ if (summarized && typeof summarized === "object") {
74
+ const urlMaybe = summarized.url;
75
+ if (typeof urlMaybe === "string") {
76
+ const title = summarized.title || "";
77
+ const shortUrl = urlMaybe.length > 32 ? urlMaybe.slice(0, 32) + "…" : urlMaybe;
78
+ return title ? `${title} (${shortUrl})` : shortUrl;
79
+ }
80
+ }
81
+ return undefined;
82
+ }
83
+ export function summarizeDeep(value) {
84
+ // Strings: summarize data URLs and trim extremely long strings
85
+ if (typeof value === "string") {
86
+ if (value.startsWith("data:"))
87
+ return formatDataUrlAsLabel(value);
88
+ return value.length > 512 ? value.slice(0, 512) + "…" : value;
89
+ }
90
+ // Typed output wrapper
91
+ if (isTyped(value)) {
92
+ return summarizeDeep(unwrapValue(value));
93
+ }
94
+ // Arrays
95
+ if (Array.isArray(value)) {
96
+ return value.map((v) => summarizeDeep(v));
97
+ }
98
+ // Objects
99
+ if (value && typeof value === "object") {
100
+ const obj = value;
101
+ const out = {};
102
+ for (const [k, v] of Object.entries(obj)) {
103
+ // Special-case any 'url' field
104
+ if (typeof v === "string" && k.toLowerCase() === "url" && v.startsWith("data:")) {
105
+ out[k] = formatDataUrlAsLabel(v);
106
+ continue;
107
+ }
108
+ out[k] = summarizeDeep(v);
109
+ }
110
+ return out;
111
+ }
112
+ return value;
113
+ }
114
+ //# sourceMappingURL=value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value.js","sourceRoot":"","sources":["../../../src/misc/value.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { Viewport } from "@bian-womp/spark-protocol";
2
+ export declare function isValidViewport(viewport: unknown): viewport is Viewport;
3
+ export declare function excludeViewportFromUIState<T extends {
4
+ viewport?: unknown;
5
+ }>(uiState: T | null | undefined): Omit<T, "viewport">;
6
+ //# sourceMappingURL=viewport-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewport-utils.d.ts","sourceRoot":"","sources":["../../../src/misc/viewport-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAE1D,wBAAgB,eAAe,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,QAAQ,CAWvE;AAED,wBAAgB,0BAA0B,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,EACzE,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,GAC5B,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAMrB"}
@@ -0,0 +1,18 @@
1
+ export function isValidViewport(viewport) {
2
+ return (viewport !== null &&
3
+ typeof viewport === "object" &&
4
+ "x" in viewport &&
5
+ "y" in viewport &&
6
+ "zoom" in viewport &&
7
+ typeof viewport.x === "number" &&
8
+ typeof viewport.y === "number" &&
9
+ typeof viewport.zoom === "number");
10
+ }
11
+ export function excludeViewportFromUIState(uiState) {
12
+ if (!uiState) {
13
+ return {};
14
+ }
15
+ const { viewport: _ignoredViewport, ...rest } = uiState;
16
+ return rest;
17
+ }
18
+ //# sourceMappingURL=viewport-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewport-utils.js","sourceRoot":"","sources":["../../../src/misc/viewport-utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe,CAAC,QAAiB;IAC/C,OAAO,CACL,QAAQ,KAAK,IAAI;QACjB,OAAO,QAAQ,KAAK,QAAQ;QAC5B,GAAG,IAAI,QAAQ;QACf,GAAG,IAAI,QAAQ;QACf,MAAM,IAAI,QAAQ;QAClB,OAAQ,QAA2B,CAAC,CAAC,KAAK,QAAQ;QAClD,OAAQ,QAA2B,CAAC,CAAC,KAAK,QAAQ;QAClD,OAAQ,QAA8B,CAAC,IAAI,KAAK,QAAQ,CACzD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,OAA6B;IAE7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAyB,CAAC;IACnC,CAAC;IACD,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IACxD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,61 @@
1
+ import type { RuntimeSnapshotFull, GraphDefinition, RunMode, RunnerOptions, RuntimeHistoryInfo } from "@bian-womp/spark-protocol";
2
+ import { Engine, Registry, GraphRuntime } from "@bian-womp/spark-graph";
3
+ import { IGraphRunner, RunnerEventName, type RunnerEventListener, ExecutionBackend, RunnerEventMap } from "./IGraphRunner";
4
+ export declare abstract class AbstractGraphRunner implements IGraphRunner {
5
+ protected backend: ExecutionBackend;
6
+ readonly runnerId: string;
7
+ protected registry: Registry;
8
+ protected runtime?: GraphRuntime;
9
+ protected engine?: Engine;
10
+ private listeners;
11
+ protected stagedInputs: Record<string, Record<string, unknown>>;
12
+ constructor(backend: ExecutionBackend, registry?: Registry);
13
+ abstract launch(def: GraphDefinition, opts: RunnerOptions): void;
14
+ abstract build(def: GraphDefinition): void;
15
+ abstract update(def: GraphDefinition, options?: {
16
+ dry?: boolean;
17
+ }): void | Promise<void>;
18
+ abstract computeNode(nodeId: string): Promise<void>;
19
+ abstract getInputs(def: GraphDefinition): Record<string, Record<string, unknown>>;
20
+ abstract getOutputs(def: GraphDefinition): Record<string, Record<string, unknown>>;
21
+ abstract setEnvironment(env: Record<string, unknown>, opts?: {
22
+ merge?: boolean;
23
+ dry?: boolean;
24
+ }): void | Promise<void>;
25
+ abstract getEnvironment(): Record<string, unknown> | undefined;
26
+ abstract setInputs(nodeId: string, inputs: Record<string, unknown>, options?: {
27
+ dry?: boolean;
28
+ }): void | Promise<void>;
29
+ abstract copyOutputs(fromNodeId: string, toNodeId: string, options?: {
30
+ dry?: boolean;
31
+ }): void | Promise<void>;
32
+ abstract runFromHere(nodeId: string): Promise<void>;
33
+ abstract cancelNodeRuns(nodeIds: string[]): void | Promise<void>;
34
+ abstract triggerExternal(nodeId: string, event: unknown, options?: {
35
+ dry?: boolean;
36
+ }): void;
37
+ abstract snapshotFull(): Promise<RuntimeSnapshotFull>;
38
+ abstract applySnapshotFull(payload: RuntimeSnapshotFull, options?: {
39
+ skipBuild?: boolean;
40
+ dry?: boolean;
41
+ }): Promise<void>;
42
+ abstract setExtData(data: Record<string, unknown>): Promise<void>;
43
+ abstract updateExtData(updates: Array<{
44
+ path: string;
45
+ value: unknown;
46
+ }>): Promise<boolean>;
47
+ protected abstract createAndLaunchEngine(opts?: RunnerOptions): Promise<void>;
48
+ abstract pause(): Promise<void>;
49
+ abstract resume(): Promise<void>;
50
+ whenIdle(): Promise<void>;
51
+ setRunMode(runMode: RunMode): void;
52
+ getInputDefaults(def: GraphDefinition): Record<string, Record<string, unknown>>;
53
+ on<K extends RunnerEventName>(event: K, handler: RunnerEventListener<K>): () => void;
54
+ protected emit<K extends RunnerEventName>(event: K, payload: RunnerEventMap[K]): void;
55
+ dispose(): void | Promise<void>;
56
+ isRunning(): boolean;
57
+ undo(): Promise<boolean>;
58
+ redo(): Promise<boolean>;
59
+ commit(_reason?: string): Promise<RuntimeHistoryInfo | undefined>;
60
+ }
61
+ //# sourceMappingURL=AbstractGraphRunner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractGraphRunner.d.ts","sourceRoot":"","sources":["../../../src/runtime/AbstractGraphRunner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ import { createSimpleGraphRegistry } from "@bian-womp/spark-graph";
2
+ export class AbstractGraphRunner {
3
+ constructor(backend, registry) {
4
+ this.backend = backend;
5
+ this.listeners = new Map();
6
+ this.stagedInputs = {};
7
+ this.runnerId = "";
8
+ this.registry = registry ?? createSimpleGraphRegistry();
9
+ }
10
+ async whenIdle() {
11
+ await this.engine?.whenIdle();
12
+ }
13
+ setRunMode(runMode) {
14
+ if (this.engine) {
15
+ this.engine.setRunMode(runMode);
16
+ this.emit("status", { running: true, runMode });
17
+ }
18
+ }
19
+ getInputDefaults(def) {
20
+ const out = {};
21
+ for (const n of def.nodes) {
22
+ const dynDefaults = n.resolvedHandles?.inputDefaults ?? {};
23
+ if (Object.keys(dynDefaults).length > 0) {
24
+ out[n.nodeId] = dynDefaults;
25
+ }
26
+ }
27
+ return out;
28
+ }
29
+ on(event, handler) {
30
+ if (!this.listeners.has(event))
31
+ this.listeners.set(event, new Set());
32
+ const set = this.listeners.get(event);
33
+ set.add(handler);
34
+ return () => set.delete(handler);
35
+ }
36
+ emit(event, payload) {
37
+ const set = this.listeners.get(event);
38
+ if (set)
39
+ for (const h of Array.from(set))
40
+ h(payload);
41
+ }
42
+ dispose() {
43
+ this.engine?.dispose();
44
+ this.engine = undefined;
45
+ this.runtime?.dispose();
46
+ this.runtime = undefined;
47
+ }
48
+ isRunning() {
49
+ return !!this.engine;
50
+ }
51
+ // Optional undo/redo support
52
+ async undo() {
53
+ return false;
54
+ }
55
+ async redo() {
56
+ return false;
57
+ }
58
+ // Optional commit support
59
+ async commit(_reason) {
60
+ return undefined;
61
+ }
62
+ }
63
+ //# sourceMappingURL=AbstractGraphRunner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractGraphRunner.js","sourceRoot":"","sources":["../../../src/runtime/AbstractGraphRunner.ts"],"names":[],"mappings":"AAOA,OAAO,EAAkC,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AASnG,MAAM,OAAgB,mBAAmB;IAQvC,YACY,OAAyB,EACnC,QAAmB;QADT,YAAO,GAAP,OAAO,CAAkB;QAJ7B,cAAS,GAAG,IAAI,GAAG,EAA8D,CAAC;QAChF,iBAAY,GAA4C,EAAE,CAAC;QAMnE,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,yBAAyB,EAAE,CAAC;IAC1D,CAAC;IAkDD,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;IAChC,CAAC;IAED,UAAU,CAAC,OAAgB;QACzB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,GAAoB;QACnC,MAAM,GAAG,GAA4C,EAAE,CAAC;QACxD,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YAC1B,MAAM,WAAW,GAAG,CAAC,CAAC,eAAe,EAAE,aAAa,IAAI,EAAE,CAAC;YAC3D,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC;YAC9B,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,EAAE,CAA4B,KAAQ,EAAE,OAA+B;QACrE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACrE,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAiC,CAAC;QACtE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjB,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAES,IAAI,CAA4B,KAAQ,EAAE,OAA0B;QAC5E,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,GAAG;YAAE,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,OAAO;QACL,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;IAC3B,CAAC;IAED,SAAS;QACP,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,6BAA6B;IAC7B,KAAK,CAAC,IAAI;QACR,OAAO,KAAK,CAAC;IACf,CAAC;IACD,KAAK,CAAC,IAAI;QACR,OAAO,KAAK,CAAC;IACf,CAAC;IAED,0BAA0B;IAC1B,KAAK,CAAC,MAAM,CAAC,OAAgB;QAC3B,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
@@ -0,0 +1,100 @@
1
+ import type { GraphDefinition, RuntimeSnapshotFull, RunMode, RunnerOptions, RuntimeHistoryInfo, Viewport } from "@bian-womp/spark-protocol";
2
+ import { EngineEventName, Registry, type RuntimeEventMap } from "@bian-womp/spark-graph";
3
+ import { HttpPollingTransport, WebSocketTransport, TransportConnectOptions } from "@bian-womp/spark-remote";
4
+ export type RemoteExecutionBackend = {
5
+ kind: "remote-http";
6
+ baseUrl: string;
7
+ connectOptions?: TransportConnectOptions;
8
+ onCustomEvent?: (event: any) => void;
9
+ } | {
10
+ kind: "remote-ws";
11
+ url: string;
12
+ connectOptions?: TransportConnectOptions;
13
+ onCustomEvent?: (event: any) => void;
14
+ };
15
+ export type ExecutionBackend = {
16
+ kind: "local";
17
+ } | RemoteExecutionBackend;
18
+ export type ExecutionBackendKind = ExecutionBackend["kind"];
19
+ export type RemoteExecutionBackendKind = Exclude<ExecutionBackendKind, "local">;
20
+ export type RunnerEventListener<K extends RunnerEventName> = (e: RunnerEventMap[K]) => void;
21
+ export type RunnerEventName = EngineEventName | "status" | "transport" | "registry" | "viewport";
22
+ export type RemoteTransport = HttpPollingTransport | WebSocketTransport;
23
+ export interface RunnerStatus {
24
+ running: boolean;
25
+ runMode?: RunMode;
26
+ }
27
+ export type TransportState = "local" | "connecting" | "connected" | "disconnected" | "retrying";
28
+ export interface TransportStatus {
29
+ state: TransportState;
30
+ kind?: RemoteExecutionBackendKind;
31
+ runnerId?: string;
32
+ }
33
+ export interface RunnerEventMap extends RuntimeEventMap {
34
+ status: RunnerStatus;
35
+ transport: TransportStatus;
36
+ registry: Registry;
37
+ viewport: {
38
+ viewport: Viewport;
39
+ };
40
+ }
41
+ export interface IGraphRunner {
42
+ readonly runnerId: string;
43
+ build(def: GraphDefinition): void;
44
+ update(def: GraphDefinition, options?: {
45
+ dry?: boolean;
46
+ }): void | Promise<void>;
47
+ computeNode(nodeId: string): Promise<void>;
48
+ /**
49
+ * Run this node and all downstream nodes in execution order.
50
+ * Implemented only for pull/manual mode; callers should ensure the
51
+ * runner is in manual RunMode before calling.
52
+ */
53
+ runFromHere(nodeId: string): Promise<void>;
54
+ /**
55
+ * Cancel active runs for one or more nodes.
56
+ * This will abort any currently executing nodes and cancel their downstream execution.
57
+ */
58
+ cancelNodeRuns(nodeIds: string[]): void | Promise<void>;
59
+ getOutputs(def: GraphDefinition): Record<string, Record<string, unknown>>;
60
+ getInputs(def: GraphDefinition): Record<string, Record<string, unknown>>;
61
+ getInputDefaults(def: GraphDefinition): Record<string, Record<string, unknown>>;
62
+ launch(def: GraphDefinition, opts: RunnerOptions): void;
63
+ setInputs(nodeId: string, inputs: Record<string, unknown>, options?: {
64
+ dry?: boolean;
65
+ }): void | Promise<void>;
66
+ copyOutputs(fromNodeId: string, toNodeId: string, options?: {
67
+ dry?: boolean;
68
+ }): void | Promise<void>;
69
+ triggerExternal(nodeId: string, event: unknown, options?: {
70
+ dry?: boolean;
71
+ }): void | Promise<void>;
72
+ coerce?(from: string, to: string, value: unknown): Promise<unknown>;
73
+ on<K extends RunnerEventName>(event: K, handler: RunnerEventListener<K>): () => void;
74
+ whenIdle(): Promise<void>;
75
+ setRunMode(runMode: RunMode): void | Promise<void>;
76
+ dispose(): void | Promise<void>;
77
+ isRunning(): boolean;
78
+ snapshotFull: () => Promise<RuntimeSnapshotFull>;
79
+ applySnapshotFull: (payload: RuntimeSnapshotFull, options?: {
80
+ skipBuild?: boolean;
81
+ dry?: boolean;
82
+ }) => Promise<void>;
83
+ setEnvironment: (env: Record<string, unknown>, opts?: {
84
+ merge?: boolean;
85
+ dry?: boolean;
86
+ }) => void | Promise<void>;
87
+ getEnvironment: () => Record<string, unknown> | undefined;
88
+ setExtData: (data: Record<string, unknown>) => Promise<void>;
89
+ updateExtData: (updates: Array<{
90
+ path: string;
91
+ value: unknown;
92
+ }>) => Promise<boolean>;
93
+ setViewport?: (viewport: Viewport) => Promise<void>;
94
+ undo: () => Promise<boolean>;
95
+ redo: () => Promise<boolean>;
96
+ commit: (reason?: string) => Promise<RuntimeHistoryInfo | undefined>;
97
+ pause: () => Promise<void>;
98
+ resume: () => Promise<void>;
99
+ }
100
+ //# sourceMappingURL=IGraphRunner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IGraphRunner.d.ts","sourceRoot":"","sources":["../../../src/runtime/IGraphRunner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IGraphRunner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IGraphRunner.js","sourceRoot":"","sources":["../../../src/runtime/IGraphRunner.ts"],"names":[],"mappings":""}
@@ -0,0 +1,60 @@
1
+ import { Registry, LocalEngine } from "@bian-womp/spark-graph";
2
+ import type { GraphDefinition, RuntimeSnapshotFull, RunnerOptions, ConverterConfig } from "@bian-womp/spark-protocol";
3
+ import { AbstractGraphRunner } from "./AbstractGraphRunner";
4
+ export declare class LocalGraphRunner extends AbstractGraphRunner {
5
+ readonly runnerId: string;
6
+ protected engine?: LocalEngine;
7
+ private extData;
8
+ constructor(registry?: Registry);
9
+ build(def: GraphDefinition, opts?: {
10
+ startPaused?: boolean;
11
+ }): void;
12
+ update(def: GraphDefinition, options?: {
13
+ dry?: boolean;
14
+ }): void;
15
+ launch(def: GraphDefinition, opts: RunnerOptions): void;
16
+ protected createAndLaunchEngine(opts?: RunnerOptions): Promise<void>;
17
+ computeNode(nodeId: string): Promise<void>;
18
+ runFromHere(nodeId: string): Promise<void>;
19
+ cancelNodeRuns(nodeIds: string[]): void;
20
+ getOutputs(def: GraphDefinition): Record<string, Record<string, unknown>>;
21
+ getInputs(def: GraphDefinition): Record<string, Record<string, unknown>>;
22
+ triggerExternal(nodeId: string, event: unknown, options?: {
23
+ dry?: boolean;
24
+ }): void;
25
+ setInputs(nodeId: string, inputs: Record<string, unknown>, options?: {
26
+ dry?: boolean;
27
+ }): void;
28
+ copyOutputs(fromNodeId: string, toNodeId: string, options?: {
29
+ dry?: boolean;
30
+ }): void;
31
+ setEnvironment: (env: Record<string, unknown>, opts?: {
32
+ merge?: boolean;
33
+ dry?: boolean;
34
+ }) => void;
35
+ getEnvironment: () => Record<string, unknown> | undefined;
36
+ setExtData(data: Record<string, unknown>): Promise<void>;
37
+ updateExtData(updates: Array<{
38
+ path: string;
39
+ value: unknown;
40
+ }>): Promise<boolean>;
41
+ snapshotFull(): Promise<{
42
+ def: any;
43
+ environment: Record<string, unknown>;
44
+ inputs: Record<string, Record<string, unknown>>;
45
+ outputs: Record<string, Record<string, unknown>>;
46
+ extData: Record<string, unknown>;
47
+ }>;
48
+ applySnapshotFull(payload: RuntimeSnapshotFull, options?: {
49
+ skipBuild?: boolean;
50
+ dry?: boolean;
51
+ }): Promise<void>;
52
+ convertSnapshot(converterConfig: ConverterConfig, options?: {
53
+ dry?: boolean;
54
+ }): Promise<RuntimeSnapshotFull>;
55
+ pause(): Promise<void>;
56
+ resume(): Promise<void>;
57
+ private hydrate;
58
+ dispose(): void;
59
+ }
60
+ //# sourceMappingURL=LocalGraphRunner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalGraphRunner.d.ts","sourceRoot":"","sources":["../../../src/runtime/LocalGraphRunner.ts"],"names":[],"mappings":"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"}