@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,22 @@
1
+ import type { GraphDefinition } from "@bian-womp/spark-protocol";
2
+ import type { Serializer, Storage } from "../../core/contracts";
3
+ import { InMemoryWorkbench } from "../../core/InMemoryWorkbench";
4
+ export interface CLIAdapterDeps {
5
+ storage?: Storage;
6
+ serializer?: Serializer;
7
+ }
8
+ export declare class CLIWorkbench {
9
+ private wb;
10
+ private deps;
11
+ constructor(wb: InMemoryWorkbench, deps?: CLIAdapterDeps);
12
+ load(def: GraphDefinition): Promise<void>;
13
+ print(options?: {
14
+ detail?: boolean;
15
+ values?: {
16
+ inputs?: Record<string, Record<string, unknown>>;
17
+ outputs?: Record<string, Record<string, unknown>>;
18
+ };
19
+ }): string;
20
+ get actions(): InMemoryWorkbench;
21
+ }
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,qBAAa,YAAY;IAErB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,IAAI;gBADJ,EAAE,EAAE,iBAAiB,EACrB,IAAI,GAAE,cAAmB;IAG7B,IAAI,CAAC,GAAG,EAAE,eAAe;IAI/B,KAAK,CAAC,OAAO,CAAC,EAAE;QACd,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE;YACP,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;YACjD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;SACnD,CAAC;KACH;IAqCD,IAAI,OAAO,sBAEV;CACF"}
@@ -0,0 +1,50 @@
1
+ export class CLIWorkbench {
2
+ constructor(wb, deps = {}) {
3
+ this.wb = wb;
4
+ this.deps = deps;
5
+ }
6
+ async load(def) {
7
+ await this.wb.load(def);
8
+ }
9
+ print(options) {
10
+ const d = this.wb.def;
11
+ const detail = !!options?.detail;
12
+ const lines = [];
13
+ lines.push(`Nodes (${d.nodes.length})`);
14
+ for (const n of d.nodes) {
15
+ if (!detail) {
16
+ lines.push(` - ${n.nodeId}: ${n.typeId}`);
17
+ }
18
+ else {
19
+ const reg = this.wb["registry"];
20
+ const desc = reg?.nodes?.get(n.typeId);
21
+ const inputs = Object.entries(desc?.inputs ?? {})
22
+ .map(([h, t]) => `${h}:${t}`)
23
+ .join(", ");
24
+ const outputs = Object.entries(desc?.outputs ?? {})
25
+ .map(([h, t]) => `${h}:${t}`)
26
+ .join(", ");
27
+ const params = n.params ? JSON.stringify(n.params) : "{}";
28
+ lines.push(` - ${n.nodeId}: ${n.typeId}`);
29
+ lines.push(` inputs: ${inputs || "-"}`);
30
+ lines.push(` outputs: ${outputs || "-"}`);
31
+ lines.push(` params: ${params}`);
32
+ const inVals = options?.values?.inputs?.[n.nodeId];
33
+ const outVals = options?.values?.outputs?.[n.nodeId];
34
+ if (inVals && Object.keys(inVals).length > 0)
35
+ lines.push(` inputValues: ${JSON.stringify(inVals)}`);
36
+ if (outVals && Object.keys(outVals).length > 0)
37
+ lines.push(` outputValues: ${JSON.stringify(outVals)}`);
38
+ }
39
+ }
40
+ lines.push(`Edges (${d.edges.length})`);
41
+ for (const e of d.edges) {
42
+ lines.push(` - ${e.id}: ${e.source.nodeId}.${e.source.handle} -> ${e.target.nodeId}.${e.target.handle} (${e.typeId})`);
43
+ }
44
+ return lines.join("\n");
45
+ }
46
+ get actions() {
47
+ return this.wb;
48
+ }
49
+ }
50
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/adapters/cli/index.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,YAAY;IACvB,YACU,EAAqB,EACrB,OAAuB,EAAE;QADzB,OAAE,GAAF,EAAE,CAAmB;QACrB,SAAI,GAAJ,IAAI,CAAqB;IAChC,CAAC;IAEJ,KAAK,CAAC,IAAI,CAAC,GAAoB;QAC7B,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,OAML;QACC,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;QACtB,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC;QACjC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;gBAChC,MAAM,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBACvC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC;qBAC9C,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;qBAC5B,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;qBAChD,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;qBAC5B,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC1D,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC3C,KAAK,CAAC,IAAI,CAAC,kBAAkB,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC;gBAC9C,KAAK,CAAC,IAAI,CAAC,kBAAkB,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;gBAC/C,KAAK,CAAC,IAAI,CAAC,kBAAkB,MAAM,EAAE,CAAC,CAAC;gBACvC,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBACnD,MAAM,OAAO,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBACrD,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;oBAAE,KAAK,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC1G,IAAI,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC;oBAAE,KAAK,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC/G,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CACR,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,GAAG,CAC5G,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;CACF"}
@@ -0,0 +1,40 @@
1
+ import type { GraphDefinition, GraphNodeDefinition, GraphEdgeDefinition } from "@bian-womp/spark-protocol";
2
+ import type { GraphActions, GraphEvents, LayoutEngine, Storage, Serializer, WorkbenchEventName, ValidationResult, WorkbenchEventMap } from "./contracts";
3
+ import type { UIExtensionRegistry } from "./ui-extensions";
4
+ export interface WorkbenchConstructorArgs {
5
+ ui: UIExtensionRegistry;
6
+ layout?: LayoutEngine;
7
+ storage?: Storage;
8
+ serializer?: Serializer;
9
+ genId?: (prefix: string, used: Set<string>) => string;
10
+ }
11
+ export declare abstract class AbstractWorkbench implements GraphActions, GraphEvents {
12
+ protected layout?: LayoutEngine;
13
+ protected storage?: Storage;
14
+ protected serializer?: Serializer;
15
+ protected ui: UIExtensionRegistry;
16
+ protected genId: (prefix: string, used: Set<string>) => string;
17
+ abstract get def(): GraphDefinition;
18
+ constructor(args: WorkbenchConstructorArgs);
19
+ abstract load(def: GraphDefinition): Promise<void>;
20
+ abstract validate(): ValidationResult;
21
+ abstract addNode(node: Omit<GraphNodeDefinition, "nodeId"> & {
22
+ nodeId?: string;
23
+ position?: {
24
+ x: number;
25
+ y: number;
26
+ };
27
+ }, options?: {
28
+ inputs?: Record<string, unknown>;
29
+ dry?: boolean;
30
+ }): string;
31
+ abstract removeNode(nodeId: string): void;
32
+ abstract connect(edge: Omit<GraphEdgeDefinition, "id"> & {
33
+ id?: string;
34
+ }): string;
35
+ abstract disconnect(edgeId: string): void;
36
+ abstract updateParams(nodeId: string, params: Record<string, unknown>): void;
37
+ abstract on<K extends WorkbenchEventName>(event: K, handler: (e: WorkbenchEventMap[K]) => void): () => void;
38
+ getUI(): UIExtensionRegistry;
39
+ }
40
+ //# sourceMappingURL=AbstractWorkbench.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractWorkbench.d.ts","sourceRoot":"","sources":["../../../src/core/AbstractWorkbench.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAE3G,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,OAAO,EACP,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,mBAAmB,CAAC;IACxB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC;CACvD;AAED,8BAAsB,iBAAkB,YAAW,YAAY,EAAE,WAAW;IAC1E,SAAS,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAChC,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IAClC,SAAS,CAAC,EAAE,EAAE,mBAAmB,CAAC;IAClC,SAAS,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC;IAE/D,QAAQ,KAAK,GAAG,IAAI,eAAe,CAAC;gBAExB,IAAI,EAAE,wBAAwB;IAQ1C,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAClD,QAAQ,CAAC,QAAQ,IAAI,gBAAgB;IACrC,QAAQ,CAAC,OAAO,CACd,IAAI,EAAE,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,GAAG;QAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KACrC,EACD,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAC5D,MAAM;IACT,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IACzC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,GAAG;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;IACjF,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IACzC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAE5E,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAG3G,KAAK,IAAI,mBAAmB;CAG7B"}
@@ -0,0 +1,15 @@
1
+ import { generateId } from "@bian-womp/spark-graph";
2
+ export class AbstractWorkbench {
3
+ constructor(args) {
4
+ this.ui = args.ui;
5
+ this.layout = args.layout;
6
+ this.storage = args.storage;
7
+ this.serializer = args.serializer;
8
+ this.genId = args.genId || generateId;
9
+ }
10
+ // Expose UI registry to adapters (React Flow, CLI) to allow overrides
11
+ getUI() {
12
+ return this.ui;
13
+ }
14
+ }
15
+ //# sourceMappingURL=AbstractWorkbench.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractWorkbench.js","sourceRoot":"","sources":["../../../src/core/AbstractWorkbench.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAqBpD,MAAM,OAAgB,iBAAiB;IASrC,YAAY,IAA8B;QACxC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC;IACxC,CAAC;IAkBD,sEAAsE;IACtE,KAAK;QACH,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;CACF"}
@@ -0,0 +1,304 @@
1
+ import type { GraphDefinition, GraphNodeDefinition, GraphEdgeDefinition, ResolvedHandles, RuntimeMetadata, NodeRuntimeMetadata, RuntimeHistoryInfo, Viewport } from "@bian-womp/spark-protocol";
2
+ import { Registry } from "@bian-womp/spark-graph";
3
+ import { AbstractWorkbench, WorkbenchConstructorArgs } from "./AbstractWorkbench";
4
+ import type { ValidationResult, WorkbenchEventName, WorkbenchEventListener } from "./contracts";
5
+ import type { IGraphRunner } from "../runtime/IGraphRunner";
6
+ import { WorkbenchUIState } from "../misc/types";
7
+ export type CopiedGraphData = {
8
+ nodes: Array<{
9
+ typeId: string;
10
+ params?: Record<string, unknown>;
11
+ resolvedHandles?: Partial<ResolvedHandles>;
12
+ position?: {
13
+ x: number;
14
+ y: number;
15
+ };
16
+ size?: {
17
+ width: number;
18
+ height: number;
19
+ };
20
+ inputs?: Record<string, unknown>;
21
+ customData?: Record<string, unknown>;
22
+ originalNodeId: string;
23
+ }>;
24
+ edges: Array<{
25
+ sourceNodeId: string;
26
+ sourceHandle: string;
27
+ targetNodeId: string;
28
+ targetHandle: string;
29
+ typeId?: string;
30
+ }>;
31
+ bounds: {
32
+ minX: number;
33
+ minY: number;
34
+ maxX: number;
35
+ maxY: number;
36
+ };
37
+ };
38
+ export declare class InMemoryWorkbench extends AbstractWorkbench {
39
+ private _def;
40
+ private _registry;
41
+ private listeners;
42
+ private _batchChanges;
43
+ private _batchDepth;
44
+ private positions;
45
+ private sizes;
46
+ private selection;
47
+ private nodeNames;
48
+ private customData;
49
+ private runtimeState;
50
+ private viewport;
51
+ private historyState;
52
+ private copiedData;
53
+ constructor(args: WorkbenchConstructorArgs);
54
+ get def(): GraphDefinition;
55
+ get registry(): Registry;
56
+ setRegistry(registry: Registry): void;
57
+ /**
58
+ * Check if a node should auto run based on registry node description policy or node definition params policy.
59
+ * @param nodeId - The node ID to check
60
+ * @returns true if the node has autoRun enabled in either registry or params policy
61
+ */
62
+ shouldNodeAutoRun(nodeId: string): boolean;
63
+ load(def: GraphDefinition): Promise<void>;
64
+ refreshValidation(): void;
65
+ validate(): ValidationResult;
66
+ setInputs(nodeId: string, inputs: Record<string, unknown>, options?: {
67
+ dry?: boolean;
68
+ commit?: boolean;
69
+ reason?: string;
70
+ }): void;
71
+ addNode(node: Omit<GraphNodeDefinition, "nodeId"> & {
72
+ nodeId?: string;
73
+ }, options?: {
74
+ inputs?: Record<string, unknown>;
75
+ position?: {
76
+ x: number;
77
+ y: number;
78
+ };
79
+ size?: {
80
+ width: number;
81
+ height: number;
82
+ };
83
+ copyOutputsFrom?: string;
84
+ dry?: boolean;
85
+ commit?: boolean;
86
+ reason?: string;
87
+ }): string;
88
+ removeNode(nodeId: string, options?: {
89
+ commit?: boolean;
90
+ reason?: string;
91
+ }): void;
92
+ connect(edge: Omit<GraphEdgeDefinition, "id"> & {
93
+ id?: string;
94
+ }, options?: {
95
+ dry?: boolean;
96
+ commit?: boolean;
97
+ reason?: string;
98
+ }): string;
99
+ disconnect(edgeId: string, options?: {
100
+ commit?: boolean;
101
+ reason?: string;
102
+ }): void;
103
+ updateEdgeType(edgeId: string, typeId: string | undefined): void;
104
+ updateParams(nodeId: string, params: Record<string, unknown>): void;
105
+ updateResolvedHandles(nodeId: string, resolvedHandles: Partial<ResolvedHandles>, options?: {
106
+ dry?: boolean;
107
+ commit?: boolean;
108
+ reason?: string;
109
+ }): void;
110
+ setPositions(positions: Record<string, {
111
+ x: number;
112
+ y: number;
113
+ }>, options?: {
114
+ commit?: boolean;
115
+ reason?: string;
116
+ }): void;
117
+ getPositions(): Record<string, {
118
+ x: number;
119
+ y: number;
120
+ }>;
121
+ setSizes(sizes: Record<string, {
122
+ width: number;
123
+ height: number;
124
+ } | null>, options?: {
125
+ commit?: boolean;
126
+ reason?: string;
127
+ }): void;
128
+ getSizes(): Record<string, {
129
+ width: number;
130
+ height: number;
131
+ }>;
132
+ private setSelectionInternal;
133
+ setSelection(sel: {
134
+ nodes: string[];
135
+ edges: string[];
136
+ }, options?: {
137
+ commit?: boolean;
138
+ reason?: string;
139
+ }): void;
140
+ getSelection(): {
141
+ nodes: string[];
142
+ edges: string[];
143
+ };
144
+ /**
145
+ * Delete all selected nodes and edges.
146
+ */
147
+ deleteSelection(options?: {
148
+ commit?: boolean;
149
+ reason?: string;
150
+ }): void;
151
+ setViewport(viewport: Viewport): void;
152
+ getViewport(): Viewport | null;
153
+ getUIState(): WorkbenchUIState;
154
+ setUIState(ui?: WorkbenchUIState): void;
155
+ getRuntimeState(): RuntimeMetadata | null;
156
+ setRuntimeState(runtime?: RuntimeMetadata | null): void;
157
+ getHistory(): RuntimeHistoryInfo | undefined;
158
+ setHistory(history?: RuntimeHistoryInfo | undefined): void;
159
+ getNodeRuntimeMetadata(nodeId: string): NodeRuntimeMetadata | undefined;
160
+ updateNodeRuntimeMetadata(nodeId: string, updater: (current: NodeRuntimeMetadata) => NodeRuntimeMetadata): void;
161
+ on<K extends WorkbenchEventName>(event: K, handler: WorkbenchEventListener<K>): () => void;
162
+ private emit;
163
+ beginBatch(): void;
164
+ endBatch(options?: {
165
+ commit?: boolean;
166
+ reason?: string;
167
+ dry?: boolean;
168
+ }): void;
169
+ private getInboundHandleIds;
170
+ private excludeHandlesFromInputs;
171
+ /**
172
+ * Copy selected nodes and their internal edges.
173
+ * Returns data in a format suitable for pasting.
174
+ * Positions are normalized relative to the selection bounds center.
175
+ * Uses the same logic as duplicate: copies inputs without bindings and supports copyOutputsFrom.
176
+ */
177
+ copySelection(runner: IGraphRunner, getNodeSize?: (nodeId: string, typeId: string) => {
178
+ width: number;
179
+ height: number;
180
+ } | undefined): CopiedGraphData | null;
181
+ /**
182
+ * Bake an output value from a node into a new node.
183
+ * Creates a new node based on the output type's bakeTarget configuration.
184
+ * Returns the ID of the last created node (or undefined if none created).
185
+ */
186
+ bake(registry: Registry, runner: IGraphRunner, outputValue: unknown, outputTypeId: string, nodePosition: {
187
+ x: number;
188
+ y: number;
189
+ }, options?: {
190
+ commit?: boolean;
191
+ reason?: string;
192
+ }): Promise<string | undefined>;
193
+ /**
194
+ * Duplicate all selected nodes.
195
+ * Returns the list of newly created node IDs.
196
+ * Each duplicated node is offset by 24px in both x and y directions.
197
+ * Copies inputs without bindings and uses copyOutputsFrom to copy outputs.
198
+ */
199
+ duplicateSelection(runner: IGraphRunner, options?: {
200
+ commit?: boolean;
201
+ reason?: string;
202
+ }): string[];
203
+ /**
204
+ * Duplicate a node and all its incoming edges.
205
+ * Returns the ID of the newly created node.
206
+ * The duplicated node is offset by 24px in both x and y directions.
207
+ * All incoming edges are duplicated to point to the new node.
208
+ */
209
+ duplicateNode(nodeId: string, runner: IGraphRunner, options?: {
210
+ commit?: boolean;
211
+ reason?: string;
212
+ }): string | undefined;
213
+ /**
214
+ * Paste copied graph data at the specified center position.
215
+ * Returns the mapping from original node IDs to new node IDs.
216
+ * Uses copyOutputsFrom to copy outputs from original nodes (like duplicate does).
217
+ */
218
+ pasteCopiedData(data: CopiedGraphData, center: {
219
+ x: number;
220
+ y: number;
221
+ }, options?: {
222
+ commit?: boolean;
223
+ reason?: string;
224
+ }): {
225
+ nodeIdMap: Map<string, string>;
226
+ edgeIds: string[];
227
+ };
228
+ /**
229
+ * Get the currently copied graph data.
230
+ */
231
+ getCopiedData(): CopiedGraphData | null;
232
+ /**
233
+ * Set the copied graph data (used for paste functionality).
234
+ */
235
+ setCopiedData(data: CopiedGraphData | null): void;
236
+ /**
237
+ * Get the custom name for a node, if set.
238
+ */
239
+ getNodeName(nodeId: string): string | undefined;
240
+ /**
241
+ * Set a custom name for a node. Empty string or undefined removes the custom name.
242
+ * This is included in undo/redo history via extData.ui.
243
+ */
244
+ setNodeName(nodeId: string, name: string | undefined, options?: {
245
+ commit?: boolean;
246
+ reason?: string;
247
+ }): void;
248
+ /**
249
+ * Get custom data for a specific node.
250
+ */
251
+ getCustomNodeData(nodeId: string): Record<string, unknown> | undefined;
252
+ /**
253
+ * Set custom data for a specific node (supports partial updates).
254
+ */
255
+ setCustomNodeData(nodeId: string, data: Record<string, unknown> | undefined, options?: {
256
+ commit?: boolean;
257
+ reason?: string;
258
+ merge?: boolean;
259
+ }): void;
260
+ /**
261
+ * Get custom data for a specific edge.
262
+ */
263
+ getCustomEdgeData(edgeId: string): Record<string, unknown> | undefined;
264
+ /**
265
+ * Set custom data for a specific edge (supports partial updates).
266
+ */
267
+ setCustomEdgeData(edgeId: string, data: Record<string, unknown> | undefined, options?: {
268
+ commit?: boolean;
269
+ reason?: string;
270
+ merge?: boolean;
271
+ }): void;
272
+ /**
273
+ * Get custom metadata.
274
+ */
275
+ getCustomMetaData(): Record<string, unknown> | undefined;
276
+ /**
277
+ * Set custom metadata (supports partial updates).
278
+ */
279
+ setCustomMetaData(meta: Record<string, unknown> | undefined, options?: {
280
+ commit?: boolean;
281
+ reason?: string;
282
+ merge?: boolean;
283
+ }): void;
284
+ /**
285
+ * Get all custom data.
286
+ */
287
+ getCustomData(): {
288
+ nodes?: Record<string, Record<string, unknown>>;
289
+ edges?: Record<string, Record<string, unknown>>;
290
+ meta?: Record<string, unknown>;
291
+ };
292
+ /**
293
+ * Set all custom data.
294
+ */
295
+ setCustomData(custom: {
296
+ nodes?: Record<string, Record<string, unknown>>;
297
+ edges?: Record<string, Record<string, unknown>>;
298
+ meta?: Record<string, unknown>;
299
+ } | undefined, options?: {
300
+ commit?: boolean;
301
+ reason?: string;
302
+ }): void;
303
+ }
304
+ //# sourceMappingURL=InMemoryWorkbench.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InMemoryWorkbench.d.ts","sourceRoot":"","sources":["../../../src/core/InMemoryWorkbench.ts"],"names":[],"mappings":"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"}