@flowdrop/flowdrop 1.5.0 → 1.7.0

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 (435) hide show
  1. package/README.md +46 -47
  2. package/dist/adapters/WorkflowAdapter.d.ts +1 -1
  3. package/dist/adapters/WorkflowAdapter.js +26 -26
  4. package/dist/adapters/agentspec/AgentSpecAdapter.d.ts +2 -2
  5. package/dist/adapters/agentspec/AgentSpecAdapter.js +122 -133
  6. package/dist/adapters/agentspec/agentAdapter.d.ts +2 -2
  7. package/dist/adapters/agentspec/agentAdapter.js +10 -10
  8. package/dist/adapters/agentspec/autoLayout.d.ts +1 -1
  9. package/dist/adapters/agentspec/autoLayout.js +7 -9
  10. package/dist/adapters/agentspec/componentTypeDefaults.d.ts +1 -1
  11. package/dist/adapters/agentspec/componentTypeDefaults.js +120 -120
  12. package/dist/adapters/agentspec/defaultNodeTypes.d.ts +2 -2
  13. package/dist/adapters/agentspec/defaultNodeTypes.js +307 -307
  14. package/dist/adapters/agentspec/index.d.ts +10 -10
  15. package/dist/adapters/agentspec/index.js +6 -6
  16. package/dist/adapters/agentspec/validator.d.ts +2 -2
  17. package/dist/adapters/agentspec/validator.js +20 -22
  18. package/dist/api/enhanced-client.d.ts +3 -3
  19. package/dist/api/enhanced-client.js +72 -73
  20. package/dist/chat/commandClassifier.js +6 -6
  21. package/dist/chat/index.d.ts +5 -5
  22. package/dist/chat/index.js +4 -4
  23. package/dist/chat/responseParser.d.ts +6 -6
  24. package/dist/chat/responseParser.js +28 -24
  25. package/dist/commands/batch.d.ts +1 -1
  26. package/dist/commands/batch.js +5 -7
  27. package/dist/commands/executor.d.ts +2 -2
  28. package/dist/commands/executor.js +320 -231
  29. package/dist/commands/index.d.ts +6 -6
  30. package/dist/commands/index.js +5 -5
  31. package/dist/commands/parser.d.ts +1 -1
  32. package/dist/commands/parser.js +91 -74
  33. package/dist/commands/positioner.d.ts +2 -2
  34. package/dist/commands/positioner.js +1 -1
  35. package/dist/commands/storeIntegration.svelte.d.ts +2 -2
  36. package/dist/commands/storeIntegration.svelte.js +5 -5
  37. package/dist/commands/types.d.ts +42 -42
  38. package/dist/commands/types.js +2 -2
  39. package/dist/components/App.svelte +280 -303
  40. package/dist/components/App.svelte.d.ts +11 -9
  41. package/dist/components/CanvasBanner.stories.svelte +10 -16
  42. package/dist/components/CanvasBanner.stories.svelte.d.ts +1 -1
  43. package/dist/components/CanvasBanner.svelte +2 -2
  44. package/dist/components/CanvasBanner.svelte.d.ts +1 -1
  45. package/dist/components/CanvasController.svelte +3 -4
  46. package/dist/components/ConfigForm.svelte +118 -256
  47. package/dist/components/ConfigForm.svelte.d.ts +2 -2
  48. package/dist/components/ConfigMappingRow.svelte +7 -9
  49. package/dist/components/ConfigMappingRow.svelte.d.ts +1 -1
  50. package/dist/components/ConfigModal.svelte +3 -3
  51. package/dist/components/ConfigModal.svelte.d.ts +1 -1
  52. package/dist/components/ConfigPanel.stories.svelte +19 -19
  53. package/dist/components/ConfigPanel.stories.svelte.d.ts +1 -1
  54. package/dist/components/ConfigPanel.svelte +9 -20
  55. package/dist/components/ConfigPanel.svelte.d.ts +1 -1
  56. package/dist/components/ConnectionLine.svelte +4 -4
  57. package/dist/components/EdgeRefresher.svelte +1 -1
  58. package/dist/components/FlowDropEdge.stories.svelte +110 -110
  59. package/dist/components/FlowDropEdge.svelte +9 -9
  60. package/dist/components/FlowDropEdge.svelte.d.ts +1 -1
  61. package/dist/components/FlowDropZone.svelte +6 -9
  62. package/dist/components/FlowDropZone.svelte.d.ts +1 -1
  63. package/dist/components/LoadingSpinner.stories.svelte +13 -13
  64. package/dist/components/LoadingSpinner.stories.svelte.d.ts +1 -1
  65. package/dist/components/LoadingSpinner.svelte +3 -3
  66. package/dist/components/LoadingSpinner.svelte.d.ts +1 -1
  67. package/dist/components/Logo.stories.svelte +4 -4
  68. package/dist/components/Logo.stories.svelte.d.ts +1 -1
  69. package/dist/components/Logo.svelte +3 -9
  70. package/dist/components/LogsSidebar.svelte +41 -48
  71. package/dist/components/LogsSidebar.svelte.d.ts +1 -1
  72. package/dist/components/MarkdownDisplay.stories.svelte +10 -14
  73. package/dist/components/MarkdownDisplay.stories.svelte.d.ts +1 -1
  74. package/dist/components/MarkdownDisplay.svelte +4 -6
  75. package/dist/components/Navbar.stories.svelte +19 -19
  76. package/dist/components/Navbar.stories.svelte.d.ts +1 -1
  77. package/dist/components/Navbar.svelte +28 -49
  78. package/dist/components/Navbar.svelte.d.ts +2 -2
  79. package/dist/components/NodeSidebar.svelte +42 -88
  80. package/dist/components/NodeSidebar.svelte.d.ts +1 -1
  81. package/dist/components/NodeStatusOverlay.stories.svelte +19 -31
  82. package/dist/components/NodeStatusOverlay.stories.svelte.d.ts +1 -1
  83. package/dist/components/NodeStatusOverlay.svelte +40 -55
  84. package/dist/components/NodeStatusOverlay.svelte.d.ts +3 -3
  85. package/dist/components/NodeSwapPicker.svelte +20 -64
  86. package/dist/components/NodeSwapPicker.svelte.d.ts +1 -1
  87. package/dist/components/PipelineStatus.svelte +63 -89
  88. package/dist/components/PipelineStatus.svelte.d.ts +4 -4
  89. package/dist/components/PortCoordinateTracker.svelte +5 -7
  90. package/dist/components/PortCoordinateTracker.svelte.d.ts +1 -1
  91. package/dist/components/PortMappingRow.svelte +20 -24
  92. package/dist/components/PortMappingRow.svelte.d.ts +2 -2
  93. package/dist/components/ReadOnlyDetails.svelte +1 -1
  94. package/dist/components/SchemaForm.stories.svelte +53 -53
  95. package/dist/components/SchemaForm.stories.svelte.d.ts +1 -1
  96. package/dist/components/SchemaForm.svelte +24 -51
  97. package/dist/components/SchemaForm.svelte.d.ts +2 -2
  98. package/dist/components/SettingsModal.svelte +6 -9
  99. package/dist/components/SettingsModal.svelte.d.ts +1 -1
  100. package/dist/components/SettingsPanel.svelte +138 -158
  101. package/dist/components/SettingsPanel.svelte.d.ts +1 -1
  102. package/dist/components/StatusIcon.stories.svelte +16 -29
  103. package/dist/components/StatusIcon.stories.svelte.d.ts +1 -1
  104. package/dist/components/StatusIcon.svelte +19 -19
  105. package/dist/components/StatusIcon.svelte.d.ts +2 -2
  106. package/dist/components/StatusLabel.stories.svelte +8 -8
  107. package/dist/components/StatusLabel.stories.svelte.d.ts +1 -1
  108. package/dist/components/SwapMappingEditor.svelte +35 -56
  109. package/dist/components/SwapMappingEditor.svelte.d.ts +2 -2
  110. package/dist/components/ThemeToggle.stories.svelte +10 -10
  111. package/dist/components/ThemeToggle.stories.svelte.d.ts +1 -1
  112. package/dist/components/ThemeToggle.svelte +22 -33
  113. package/dist/components/ThemeToggle.svelte.d.ts +1 -1
  114. package/dist/components/UniversalNode.svelte +29 -41
  115. package/dist/components/UniversalNode.svelte.d.ts +3 -3
  116. package/dist/components/WorkflowEditor.svelte +113 -168
  117. package/dist/components/WorkflowEditor.svelte.d.ts +4 -4
  118. package/dist/components/chat/AIChatPanel.svelte +272 -133
  119. package/dist/components/chat/AIChatPanel.svelte.d.ts +3 -3
  120. package/dist/components/chat/CommandPreview.svelte +74 -24
  121. package/dist/components/chat/CommandPreview.svelte.d.ts +1 -1
  122. package/dist/components/console/CommandConsole.stories.svelte +71 -53
  123. package/dist/components/console/CommandConsole.stories.svelte.d.ts +1 -1
  124. package/dist/components/console/CommandConsole.svelte +39 -35
  125. package/dist/components/console/CommandConsole.svelte.d.ts +2 -2
  126. package/dist/components/console/ConsoleAutocomplete.svelte +6 -3
  127. package/dist/components/console/ConsoleInput.svelte +148 -89
  128. package/dist/components/console/ConsoleInput.svelte.d.ts +1 -1
  129. package/dist/components/console/ConsoleOutput.svelte +5 -10
  130. package/dist/components/console/ConsoleOutput.svelte.d.ts +1 -1
  131. package/dist/components/console/formatters.d.ts +1 -1
  132. package/dist/components/console/formatters.js +27 -29
  133. package/dist/components/form/FormArray.svelte +75 -132
  134. package/dist/components/form/FormArray.svelte.d.ts +1 -1
  135. package/dist/components/form/FormAutocomplete.svelte +65 -108
  136. package/dist/components/form/FormAutocomplete.svelte.d.ts +1 -1
  137. package/dist/components/form/FormCheckboxGroup.stories.svelte +13 -16
  138. package/dist/components/form/FormCheckboxGroup.stories.svelte.d.ts +1 -1
  139. package/dist/components/form/FormCheckboxGroup.svelte +2 -2
  140. package/dist/components/form/FormCodeEditor.svelte +46 -59
  141. package/dist/components/form/FormField.svelte +79 -90
  142. package/dist/components/form/FormField.svelte.d.ts +2 -2
  143. package/dist/components/form/FormFieldLight.svelte +72 -88
  144. package/dist/components/form/FormFieldLight.svelte.d.ts +1 -1
  145. package/dist/components/form/FormFieldWrapper.stories.svelte +14 -14
  146. package/dist/components/form/FormFieldWrapper.stories.svelte.d.ts +1 -1
  147. package/dist/components/form/FormFieldWrapper.svelte +2 -9
  148. package/dist/components/form/FormFieldWrapper.svelte.d.ts +1 -1
  149. package/dist/components/form/FormFieldset.svelte +3 -3
  150. package/dist/components/form/FormFieldset.svelte.d.ts +2 -2
  151. package/dist/components/form/FormMarkdownEditor.svelte +123 -156
  152. package/dist/components/form/FormNumberField.stories.svelte +18 -18
  153. package/dist/components/form/FormNumberField.stories.svelte.d.ts +1 -1
  154. package/dist/components/form/FormNumberField.svelte +6 -6
  155. package/dist/components/form/FormRangeField.stories.svelte +13 -13
  156. package/dist/components/form/FormRangeField.stories.svelte.d.ts +1 -1
  157. package/dist/components/form/FormRangeField.svelte +4 -12
  158. package/dist/components/form/FormSelect.stories.svelte +21 -21
  159. package/dist/components/form/FormSelect.stories.svelte.d.ts +1 -1
  160. package/dist/components/form/FormSelect.svelte +5 -5
  161. package/dist/components/form/FormSelect.svelte.d.ts +1 -1
  162. package/dist/components/form/FormTemplateEditor.svelte +126 -175
  163. package/dist/components/form/FormTemplateEditor.svelte.d.ts +1 -1
  164. package/dist/components/form/FormTextField.stories.svelte +17 -23
  165. package/dist/components/form/FormTextField.stories.svelte.d.ts +1 -1
  166. package/dist/components/form/FormTextField.svelte +4 -4
  167. package/dist/components/form/FormTextarea.stories.svelte +18 -21
  168. package/dist/components/form/FormTextarea.stories.svelte.d.ts +1 -1
  169. package/dist/components/form/FormTextarea.svelte +4 -4
  170. package/dist/components/form/FormToggle.stories.svelte +13 -16
  171. package/dist/components/form/FormToggle.stories.svelte.d.ts +1 -1
  172. package/dist/components/form/FormToggle.svelte +3 -3
  173. package/dist/components/form/FormUISchemaRenderer.svelte +12 -19
  174. package/dist/components/form/FormUISchemaRenderer.svelte.d.ts +3 -3
  175. package/dist/components/form/index.d.ts +19 -19
  176. package/dist/components/form/index.js +18 -18
  177. package/dist/components/form/templateAutocomplete.d.ts +2 -2
  178. package/dist/components/form/templateAutocomplete.js +55 -64
  179. package/dist/components/form/types.d.ts +6 -6
  180. package/dist/components/form/types.js +4 -9
  181. package/dist/components/icons/AlertCircleIcon.svelte +1 -6
  182. package/dist/components/icons/CogIcon.svelte +1 -6
  183. package/dist/components/interrupt/ChoicePrompt.stories.svelte +27 -27
  184. package/dist/components/interrupt/ChoicePrompt.stories.svelte.d.ts +1 -1
  185. package/dist/components/interrupt/ChoicePrompt.svelte +17 -41
  186. package/dist/components/interrupt/ChoicePrompt.svelte.d.ts +1 -1
  187. package/dist/components/interrupt/ConfirmationPrompt.stories.svelte +17 -17
  188. package/dist/components/interrupt/ConfirmationPrompt.stories.svelte.d.ts +1 -1
  189. package/dist/components/interrupt/ConfirmationPrompt.svelte +10 -16
  190. package/dist/components/interrupt/ConfirmationPrompt.svelte.d.ts +1 -1
  191. package/dist/components/interrupt/FormPrompt.svelte +10 -15
  192. package/dist/components/interrupt/FormPrompt.svelte.d.ts +1 -1
  193. package/dist/components/interrupt/InterruptBubble.svelte +87 -121
  194. package/dist/components/interrupt/InterruptBubble.svelte.d.ts +2 -2
  195. package/dist/components/interrupt/ReviewPrompt.stories.svelte +37 -37
  196. package/dist/components/interrupt/ReviewPrompt.stories.svelte.d.ts +1 -1
  197. package/dist/components/interrupt/ReviewPrompt.svelte +55 -75
  198. package/dist/components/interrupt/ReviewPrompt.svelte.d.ts +1 -1
  199. package/dist/components/interrupt/TextInputPrompt.stories.svelte +16 -17
  200. package/dist/components/interrupt/TextInputPrompt.stories.svelte.d.ts +1 -1
  201. package/dist/components/interrupt/TextInputPrompt.svelte +13 -18
  202. package/dist/components/interrupt/TextInputPrompt.svelte.d.ts +1 -1
  203. package/dist/components/interrupt/index.d.ts +6 -6
  204. package/dist/components/interrupt/index.js +6 -6
  205. package/dist/components/layouts/MainLayout.svelte +46 -84
  206. package/dist/components/layouts/MainLayout.svelte.d.ts +6 -6
  207. package/dist/components/nodes/GatewayNode.stories.svelte +64 -65
  208. package/dist/components/nodes/GatewayNode.svelte +37 -70
  209. package/dist/components/nodes/GatewayNode.svelte.d.ts +3 -3
  210. package/dist/components/nodes/IdeaNode.stories.svelte +25 -26
  211. package/dist/components/nodes/IdeaNode.svelte +22 -36
  212. package/dist/components/nodes/IdeaNode.svelte.d.ts +1 -1
  213. package/dist/components/nodes/NotesNode.stories.svelte +37 -38
  214. package/dist/components/nodes/NotesNode.svelte +28 -39
  215. package/dist/components/nodes/NotesNode.svelte.d.ts +1 -1
  216. package/dist/components/nodes/SimpleNode.stories.svelte +137 -138
  217. package/dist/components/nodes/SimpleNode.svelte +51 -81
  218. package/dist/components/nodes/SimpleNode.svelte.d.ts +1 -1
  219. package/dist/components/nodes/SquareNode.stories.svelte +75 -75
  220. package/dist/components/nodes/SquareNode.svelte +42 -68
  221. package/dist/components/nodes/SquareNode.svelte.d.ts +1 -1
  222. package/dist/components/nodes/TerminalNode.stories.svelte +10 -10
  223. package/dist/components/nodes/TerminalNode.svelte +74 -112
  224. package/dist/components/nodes/TerminalNode.svelte.d.ts +1 -1
  225. package/dist/components/nodes/ToolNode.stories.svelte +115 -116
  226. package/dist/components/nodes/ToolNode.svelte +31 -64
  227. package/dist/components/nodes/ToolNode.svelte.d.ts +1 -1
  228. package/dist/components/nodes/WorkflowNode.stories.svelte +84 -89
  229. package/dist/components/nodes/WorkflowNode.svelte +50 -103
  230. package/dist/components/nodes/WorkflowNode.svelte.d.ts +3 -3
  231. package/dist/components/playground/ChatPanel.svelte +47 -103
  232. package/dist/components/playground/ExecutionLogs.svelte +45 -68
  233. package/dist/components/playground/InputCollector.svelte +32 -51
  234. package/dist/components/playground/MessageBubble.stories.svelte +25 -25
  235. package/dist/components/playground/MessageBubble.stories.svelte.d.ts +1 -1
  236. package/dist/components/playground/MessageBubble.svelte +54 -70
  237. package/dist/components/playground/MessageBubble.svelte.d.ts +1 -1
  238. package/dist/components/playground/Playground.svelte +60 -91
  239. package/dist/components/playground/Playground.svelte.d.ts +3 -3
  240. package/dist/components/playground/PlaygroundModal.svelte +8 -12
  241. package/dist/components/playground/PlaygroundModal.svelte.d.ts +3 -3
  242. package/dist/components/playground/SessionManager.svelte +34 -40
  243. package/dist/components/playground/SessionManager.svelte.d.ts +1 -1
  244. package/dist/config/agentSpecEndpoints.d.ts +1 -1
  245. package/dist/config/agentSpecEndpoints.js +20 -20
  246. package/dist/config/constants.js +2 -2
  247. package/dist/config/defaultCategories.d.ts +1 -1
  248. package/dist/config/defaultCategories.js +86 -86
  249. package/dist/config/defaultPortConfig.d.ts +1 -1
  250. package/dist/config/defaultPortConfig.js +144 -144
  251. package/dist/config/endpoints.d.ts +4 -4
  252. package/dist/config/endpoints.js +68 -68
  253. package/dist/config/runtimeConfig.d.ts +2 -2
  254. package/dist/config/runtimeConfig.js +8 -8
  255. package/dist/core/index.d.ts +68 -68
  256. package/dist/core/index.js +38 -38
  257. package/dist/display/index.d.ts +2 -2
  258. package/dist/display/index.js +2 -2
  259. package/dist/editor/index.d.ts +64 -64
  260. package/dist/editor/index.js +54 -54
  261. package/dist/form/code.d.ts +5 -5
  262. package/dist/form/code.js +14 -14
  263. package/dist/form/fieldRegistry.d.ts +3 -3
  264. package/dist/form/fieldRegistry.js +9 -11
  265. package/dist/form/full.d.ts +8 -8
  266. package/dist/form/full.js +9 -9
  267. package/dist/form/index.d.ts +18 -18
  268. package/dist/form/index.js +16 -16
  269. package/dist/form/markdown.d.ts +4 -4
  270. package/dist/form/markdown.js +8 -8
  271. package/dist/helpers/proximityConnect.d.ts +3 -3
  272. package/dist/helpers/proximityConnect.js +32 -34
  273. package/dist/helpers/workflowEditorHelper.d.ts +6 -6
  274. package/dist/helpers/workflowEditorHelper.js +64 -68
  275. package/dist/index.d.ts +6 -6
  276. package/dist/index.js +6 -6
  277. package/dist/mocks/app-environment.js +2 -2
  278. package/dist/mocks/app-forms.js +1 -1
  279. package/dist/mocks/app-navigation.js +2 -2
  280. package/dist/mocks/app-stores.js +3 -3
  281. package/dist/playground/index.d.ts +19 -19
  282. package/dist/playground/index.js +16 -16
  283. package/dist/playground/mount.d.ts +3 -3
  284. package/dist/playground/mount.js +24 -24
  285. package/dist/registry/builtinFormats.js +13 -13
  286. package/dist/registry/builtinNodes.d.ts +2 -2
  287. package/dist/registry/builtinNodes.js +77 -77
  288. package/dist/registry/index.d.ts +4 -4
  289. package/dist/registry/index.js +4 -4
  290. package/dist/registry/nodeComponentRegistry.d.ts +8 -8
  291. package/dist/registry/nodeComponentRegistry.js +9 -11
  292. package/dist/registry/plugin.d.ts +2 -2
  293. package/dist/registry/plugin.js +11 -11
  294. package/dist/registry/workflowFormatRegistry.d.ts +3 -3
  295. package/dist/registry/workflowFormatRegistry.js +2 -2
  296. package/dist/schema/index.d.ts +1 -1
  297. package/dist/schema/index.js +2 -2
  298. package/dist/schemas/v1/workflow.schema.json +5 -0
  299. package/dist/services/agentSpecExecutionService.d.ts +3 -3
  300. package/dist/services/agentSpecExecutionService.js +55 -56
  301. package/dist/services/api.d.ts +2 -2
  302. package/dist/services/api.js +37 -37
  303. package/dist/services/apiVariableService.d.ts +1 -1
  304. package/dist/services/apiVariableService.js +34 -41
  305. package/dist/services/autoSaveService.js +8 -8
  306. package/dist/services/categoriesApi.d.ts +2 -2
  307. package/dist/services/categoriesApi.js +8 -8
  308. package/dist/services/chatService.d.ts +1 -1
  309. package/dist/services/chatService.js +18 -18
  310. package/dist/services/draftStorage.d.ts +1 -1
  311. package/dist/services/draftStorage.js +11 -11
  312. package/dist/services/dynamicSchemaService.d.ts +1 -1
  313. package/dist/services/dynamicSchemaService.js +39 -41
  314. package/dist/services/globalSave.d.ts +2 -2
  315. package/dist/services/globalSave.js +38 -41
  316. package/dist/services/historyService.d.ts +1 -1
  317. package/dist/services/historyService.js +10 -10
  318. package/dist/services/interruptService.d.ts +1 -1
  319. package/dist/services/interruptService.js +29 -35
  320. package/dist/services/nodeExecutionService.d.ts +1 -1
  321. package/dist/services/nodeExecutionService.js +44 -45
  322. package/dist/services/playgroundService.d.ts +1 -1
  323. package/dist/services/playgroundService.js +29 -29
  324. package/dist/services/portConfigApi.d.ts +2 -2
  325. package/dist/services/portConfigApi.js +8 -8
  326. package/dist/services/settingsService.d.ts +2 -2
  327. package/dist/services/settingsService.js +19 -25
  328. package/dist/services/toastService.d.ts +4 -4
  329. package/dist/services/toastService.js +33 -33
  330. package/dist/services/variableService.d.ts +1 -1
  331. package/dist/services/variableService.js +36 -36
  332. package/dist/services/workflowStorage.d.ts +2 -2
  333. package/dist/services/workflowStorage.js +13 -13
  334. package/dist/settings/index.d.ts +7 -7
  335. package/dist/settings/index.js +6 -6
  336. package/dist/skins/default.d.ts +1 -1
  337. package/dist/skins/default.js +1 -1
  338. package/dist/skins/index.d.ts +3 -3
  339. package/dist/skins/index.js +7 -7
  340. package/dist/skins/slate.d.ts +1 -1
  341. package/dist/skins/slate.js +69 -69
  342. package/dist/stores/categoriesStore.svelte.d.ts +1 -1
  343. package/dist/stores/categoriesStore.svelte.js +5 -5
  344. package/dist/stores/editorStateMachine.svelte.d.ts +2 -2
  345. package/dist/stores/editorStateMachine.svelte.js +34 -34
  346. package/dist/stores/historyStore.svelte.d.ts +4 -4
  347. package/dist/stores/historyStore.svelte.js +4 -4
  348. package/dist/stores/interruptStore.svelte.d.ts +3 -3
  349. package/dist/stores/interruptStore.svelte.js +21 -21
  350. package/dist/stores/playgroundStore.svelte.d.ts +2 -2
  351. package/dist/stores/playgroundStore.svelte.js +18 -21
  352. package/dist/stores/portCoordinateStore.svelte.d.ts +2 -2
  353. package/dist/stores/portCoordinateStore.svelte.js +10 -13
  354. package/dist/stores/settingsStore.svelte.d.ts +2 -2
  355. package/dist/stores/settingsStore.svelte.js +57 -62
  356. package/dist/stores/workflowStore.svelte.d.ts +4 -3
  357. package/dist/stores/workflowStore.svelte.js +47 -47
  358. package/dist/stories/CanvasDecorator.svelte +7 -10
  359. package/dist/stories/CanvasDecorator.svelte.d.ts +2 -2
  360. package/dist/stories/EdgeDecorator.svelte +28 -31
  361. package/dist/stories/EdgeDecorator.svelte.d.ts +1 -1
  362. package/dist/stories/NodeDecorator.svelte +14 -20
  363. package/dist/stories/NodeDecorator.svelte.d.ts +1 -1
  364. package/dist/stories/utils.d.ts +2 -2
  365. package/dist/stories/utils.js +89 -93
  366. package/dist/styles/base.css +16 -50
  367. package/dist/styles/tokens.css +10 -28
  368. package/dist/svelte-app.d.ts +10 -10
  369. package/dist/svelte-app.js +39 -39
  370. package/dist/themes/default.d.ts +1 -1
  371. package/dist/themes/default.js +4 -4
  372. package/dist/themes/index.d.ts +3 -3
  373. package/dist/themes/index.js +11 -11
  374. package/dist/themes/minimal.d.ts +1 -1
  375. package/dist/themes/minimal.js +5 -5
  376. package/dist/types/agentspec.d.ts +18 -18
  377. package/dist/types/agentspec.js +2 -2
  378. package/dist/types/auth.d.ts +1 -1
  379. package/dist/types/auth.js +6 -6
  380. package/dist/types/chat.d.ts +2 -2
  381. package/dist/types/config.d.ts +6 -6
  382. package/dist/types/events.d.ts +3 -3
  383. package/dist/types/events.js +2 -2
  384. package/dist/types/index.d.ts +34 -32
  385. package/dist/types/index.js +6 -6
  386. package/dist/types/interrupt.d.ts +6 -6
  387. package/dist/types/interrupt.js +21 -21
  388. package/dist/types/interruptState.d.ts +12 -12
  389. package/dist/types/interruptState.js +66 -66
  390. package/dist/types/playground.d.ts +7 -7
  391. package/dist/types/playground.js +14 -14
  392. package/dist/types/settings.d.ts +7 -5
  393. package/dist/types/settings.js +19 -24
  394. package/dist/types/skin.d.ts +1 -1
  395. package/dist/types/theme.d.ts +2 -2
  396. package/dist/types/uischema.d.ts +4 -4
  397. package/dist/types/uischema.js +3 -3
  398. package/dist/utils/colors.d.ts +1 -1
  399. package/dist/utils/colors.js +95 -97
  400. package/dist/utils/config.d.ts +2 -2
  401. package/dist/utils/config.js +48 -48
  402. package/dist/utils/connections.d.ts +6 -2
  403. package/dist/utils/connections.js +21 -15
  404. package/dist/utils/edgeStyling.d.ts +2 -2
  405. package/dist/utils/edgeStyling.js +36 -39
  406. package/dist/utils/errors.js +3 -3
  407. package/dist/utils/fetchWithAuth.d.ts +1 -1
  408. package/dist/utils/fetchWithAuth.js +2 -2
  409. package/dist/utils/handleIds.d.ts +2 -2
  410. package/dist/utils/handleIds.js +8 -8
  411. package/dist/utils/handlePositioning.d.ts +1 -1
  412. package/dist/utils/handlePositioning.js +2 -2
  413. package/dist/utils/icons.d.ts +1 -1
  414. package/dist/utils/icons.js +74 -74
  415. package/dist/utils/logger.d.ts +1 -1
  416. package/dist/utils/logger.js +7 -7
  417. package/dist/utils/nodeIds.d.ts +1 -1
  418. package/dist/utils/nodeIds.js +1 -1
  419. package/dist/utils/nodeStatus.d.ts +1 -1
  420. package/dist/utils/nodeStatus.js +48 -48
  421. package/dist/utils/nodeSwap.d.ts +9 -9
  422. package/dist/utils/nodeSwap.js +52 -58
  423. package/dist/utils/nodeTypes.d.ts +1 -1
  424. package/dist/utils/nodeTypes.js +20 -21
  425. package/dist/utils/nodeWrapper.d.ts +7 -7
  426. package/dist/utils/nodeWrapper.js +19 -21
  427. package/dist/utils/performanceUtils.d.ts +1 -1
  428. package/dist/utils/performanceUtils.js +1 -2
  429. package/dist/utils/portUtils.d.ts +2 -2
  430. package/dist/utils/portUtils.js +1 -1
  431. package/dist/utils/sanitize.js +1 -1
  432. package/dist/utils/uischema.d.ts +2 -2
  433. package/dist/utils/uischema.js +8 -8
  434. package/dist/utils/validation.js +8 -8
  435. package/package.json +7 -11
@@ -5,36 +5,36 @@
5
5
  * When a node is dragged near another node, this helper finds the best
6
6
  * compatible port pair and creates a preview/permanent edge.
7
7
  */
8
- import { dynamicPortToNodePort } from "../types/index.js";
9
- import { getPortCompatibilityChecker } from "../utils/connections.js";
10
- import { v4 as uuidv4 } from "uuid";
8
+ import { dynamicPortToNodePort } from '../types/index.js';
9
+ import { getPortCompatibilityChecker } from '../utils/connections.js';
10
+ import { v4 as uuidv4 } from 'uuid';
11
11
  /** CSS class applied to proximity preview edges */
12
- const PROXIMITY_EDGE_CLASS = "flowdrop--edge--proximity-preview";
12
+ const PROXIMITY_EDGE_CLASS = 'flowdrop--edge--proximity-preview';
13
13
  export class ProximityConnectHelper {
14
14
  /**
15
15
  * Get ALL ports (static + dynamic + gateway branches) for a node.
16
16
  */
17
17
  static getAllPorts(node, direction) {
18
18
  // Static ports from metadata
19
- const staticPorts = direction === "output"
19
+ const staticPorts = direction === 'output'
20
20
  ? (node.data?.metadata?.outputs ?? [])
21
21
  : (node.data?.metadata?.inputs ?? []);
22
22
  // Dynamic ports from config
23
- const dynamicKey = direction === "output" ? "dynamicOutputs" : "dynamicInputs";
23
+ const dynamicKey = direction === 'output' ? 'dynamicOutputs' : 'dynamicInputs';
24
24
  const rawDynamic = node.data?.config?.[dynamicKey] ?? [];
25
25
  const dynamicPorts = rawDynamic.map((p) => dynamicPortToNodePort(p, direction));
26
26
  // Gateway branches (output only, dataType = 'trigger')
27
- if (direction === "output") {
27
+ if (direction === 'output') {
28
28
  const branches = node.data?.config?.branches;
29
29
  const nodeType = node.data?.metadata?.type || node.type;
30
- if (nodeType === "gateway" && branches?.length) {
30
+ if (nodeType === 'gateway' && branches?.length) {
31
31
  const branchPorts = branches
32
32
  .filter((b) => !staticPorts.some((sp) => sp.id === b.name))
33
33
  .map((b) => ({
34
34
  id: b.name,
35
35
  name: b.name,
36
- type: "output",
37
- dataType: "trigger",
36
+ type: 'output',
37
+ dataType: 'trigger'
38
38
  }));
39
39
  return [...staticPorts, ...dynamicPorts, ...branchPorts];
40
40
  }
@@ -88,10 +88,10 @@ export class ProximityConnectHelper {
88
88
  }
89
89
  if (!closestNode)
90
90
  return [];
91
- const draggedOutputs = this.getAllPorts(draggedNode, "output");
92
- const draggedInputs = this.getAllPorts(draggedNode, "input");
93
- const nearbyInputs = this.getAllPorts(closestNode, "input");
94
- const nearbyOutputs = this.getAllPorts(closestNode, "output");
91
+ const draggedOutputs = this.getAllPorts(draggedNode, 'output');
92
+ const draggedInputs = this.getAllPorts(draggedNode, 'input');
93
+ const nearbyInputs = this.getAllPorts(closestNode, 'input');
94
+ const nearbyOutputs = this.getAllPorts(closestNode, 'output');
95
95
  // Collect all compatible pairs, then pick the best one
96
96
  let exactMatch = null;
97
97
  let compatibleMatch = null;
@@ -100,8 +100,8 @@ export class ProximityConnectHelper {
100
100
  for (const inPort of nearbyInputs) {
101
101
  if (!checker.areDataTypesCompatible(outPort.dataType, inPort.dataType))
102
102
  continue;
103
- const sourceHandle = this.buildHandleId(draggedNode.id, "output", outPort.id);
104
- const targetHandle = this.buildHandleId(closestNode.id, "input", inPort.id);
103
+ const sourceHandle = this.buildHandleId(draggedNode.id, 'output', outPort.id);
104
+ const targetHandle = this.buildHandleId(closestNode.id, 'input', inPort.id);
105
105
  const edgeKey = `${draggedNode.id}:${sourceHandle}->${closestNode.id}:${targetHandle}`;
106
106
  if (existingEdgeSet.has(edgeKey))
107
107
  continue;
@@ -112,7 +112,7 @@ export class ProximityConnectHelper {
112
112
  sourceHandle,
113
113
  targetHandle,
114
114
  sourcePortDataType: outPort.dataType,
115
- targetPortDataType: inPort.dataType,
115
+ targetPortDataType: inPort.dataType
116
116
  };
117
117
  if (outPort.dataType === inPort.dataType) {
118
118
  if (!exactMatch)
@@ -135,8 +135,8 @@ export class ProximityConnectHelper {
135
135
  for (const inPort of draggedInputs) {
136
136
  if (!checker.areDataTypesCompatible(outPort.dataType, inPort.dataType))
137
137
  continue;
138
- const sourceHandle = this.buildHandleId(closestNode.id, "output", outPort.id);
139
- const targetHandle = this.buildHandleId(draggedNode.id, "input", inPort.id);
138
+ const sourceHandle = this.buildHandleId(closestNode.id, 'output', outPort.id);
139
+ const targetHandle = this.buildHandleId(draggedNode.id, 'input', inPort.id);
140
140
  const edgeKey = `${closestNode.id}:${sourceHandle}->${draggedNode.id}:${targetHandle}`;
141
141
  if (existingEdgeSet.has(edgeKey))
142
142
  continue;
@@ -147,7 +147,7 @@ export class ProximityConnectHelper {
147
147
  sourceHandle,
148
148
  targetHandle,
149
149
  sourcePortDataType: outPort.dataType,
150
- targetPortDataType: inPort.dataType,
150
+ targetPortDataType: inPort.dataType
151
151
  };
152
152
  if (outPort.dataType === inPort.dataType) {
153
153
  if (!exactMatch)
@@ -193,13 +193,13 @@ export class ProximityConnectHelper {
193
193
  const otherOutputsByType = new Map();
194
194
  for (const coord of portCoordinates.values()) {
195
195
  if (coord.nodeId === draggedNodeId) {
196
- if (coord.direction === "output")
196
+ if (coord.direction === 'output')
197
197
  draggedOutputs.push(coord);
198
198
  else
199
199
  draggedInputs.push(coord);
200
200
  }
201
201
  else {
202
- const groupMap = coord.direction === "input" ? otherInputsByType : otherOutputsByType;
202
+ const groupMap = coord.direction === 'input' ? otherInputsByType : otherOutputsByType;
203
203
  let group = groupMap.get(coord.dataType);
204
204
  if (!group) {
205
205
  group = [];
@@ -224,8 +224,7 @@ export class ProximityConnectHelper {
224
224
  return;
225
225
  const isExact = sourceCoord.dataType === targetCoord.dataType;
226
226
  // Prefer exact match, then closest distance
227
- if ((isExact && !bestIsExact) ||
228
- (isExact === bestIsExact && dist < bestDistance)) {
227
+ if ((isExact && !bestIsExact) || (isExact === bestIsExact && dist < bestDistance)) {
229
228
  bestCandidate = {
230
229
  id: `proximity-${uuidv4()}`,
231
230
  source: sourceCoord.nodeId,
@@ -233,7 +232,7 @@ export class ProximityConnectHelper {
233
232
  sourceHandle: sourceCoord.handleId,
234
233
  targetHandle: targetCoord.handleId,
235
234
  sourcePortDataType: sourceCoord.dataType,
236
- targetPortDataType: targetCoord.dataType,
235
+ targetPortDataType: targetCoord.dataType
237
236
  };
238
237
  bestDistance = dist;
239
238
  bestIsExact = isExact;
@@ -281,17 +280,17 @@ export class ProximityConnectHelper {
281
280
  sourceHandle: c.sourceHandle,
282
281
  targetHandle: c.targetHandle,
283
282
  class: PROXIMITY_EDGE_CLASS,
284
- style: "stroke-dasharray: 5 5; opacity: 0.6;",
283
+ style: 'stroke-dasharray: 5 5; opacity: 0.6;',
285
284
  animated: true,
286
285
  selectable: false,
287
286
  deletable: false,
288
287
  data: {
289
288
  metadata: {
290
- edgeType: "data",
289
+ edgeType: 'data',
291
290
  sourcePortDataType: c.sourcePortDataType,
292
- isProximityPreview: true,
293
- },
294
- },
291
+ isProximityPreview: true
292
+ }
293
+ }
295
294
  }));
296
295
  }
297
296
  /**
@@ -303,16 +302,15 @@ export class ProximityConnectHelper {
303
302
  source: c.source,
304
303
  target: c.target,
305
304
  sourceHandle: c.sourceHandle,
306
- targetHandle: c.targetHandle,
305
+ targetHandle: c.targetHandle
307
306
  }));
308
307
  }
309
308
  /**
310
309
  * Check if an edge is a temporary proximity preview edge.
311
310
  */
312
311
  static isProximityPreviewEdge(edge) {
313
- return (edge.id.startsWith("proximity-") ||
314
- edge.data?.metadata?.isProximityPreview ===
315
- true);
312
+ return (edge.id.startsWith('proximity-') ||
313
+ edge.data?.metadata?.isProximityPreview === true);
316
314
  }
317
315
  /**
318
316
  * Remove all proximity preview edges from an edge array.
@@ -2,9 +2,9 @@
2
2
  * Workflow Editor Helper
3
3
  * Contains business logic for workflow operations
4
4
  */
5
- import type { WorkflowNode as WorkflowNodeType, NodeMetadata, Workflow, WorkflowEdge, NodeExecutionInfo } from "../types/index.js";
6
- import type { EndpointConfig } from "../config/endpoints.js";
7
- export { generateNodeId, extractConfigDefaults } from "../utils/nodeIds.js";
5
+ import type { WorkflowNode as WorkflowNodeType, NodeMetadata, Workflow, WorkflowEdge, NodeExecutionInfo } from '../types/index.js';
6
+ import type { EndpointConfig } from '../config/endpoints.js';
7
+ export { generateNodeId, extractConfigDefaults } from '../utils/nodeIds.js';
8
8
  /**
9
9
  * Edge category type for styling purposes
10
10
  * - trigger: For control flow connections (dataType: "trigger")
@@ -12,7 +12,7 @@ export { generateNodeId, extractConfigDefaults } from "../utils/nodeIds.js";
12
12
  * - loopback: Dashed gray line for loop iteration connections (targets loop_back port)
13
13
  * - data: Normal gray line for all other data connections
14
14
  */
15
- export type EdgeCategory = "trigger" | "tool" | "loopback" | "data";
15
+ export type EdgeCategory = 'trigger' | 'tool' | 'loopback' | 'data';
16
16
  /**
17
17
  * Edge styling configuration based on source port data type.
18
18
  * Delegates to standalone functions in utils/edgeStyling.ts.
@@ -20,7 +20,7 @@ export type EdgeCategory = "trigger" | "tool" | "loopback" | "data";
20
20
  export declare class EdgeStylingHelper {
21
21
  static extractPortIdFromHandle(handleId: string | undefined): string | null;
22
22
  static isGatewayBranch(node: WorkflowNodeType, portId: string): boolean;
23
- static getPortDataType(node: WorkflowNodeType, portId: string, portType: "input" | "output"): string | null;
23
+ static getPortDataType(node: WorkflowNodeType, portId: string, portType: 'input' | 'output'): string | null;
24
24
  static getEdgeCategory(sourcePortDataType: string | null): EdgeCategory;
25
25
  static getEdgeCategoryWithLoopback(edge: WorkflowEdge, sourcePortDataType: string | null): EdgeCategory;
26
26
  static applyConnectionStyling(edge: WorkflowEdge, sourceNode: WorkflowNodeType, targetNode: WorkflowNodeType): void;
@@ -53,7 +53,7 @@ export declare class WorkflowOperationsHelper {
53
53
  /**
54
54
  * Generate workflow metadata for updates
55
55
  */
56
- static generateMetadata(existingMetadata?: Workflow["metadata"]): Workflow["metadata"];
56
+ static generateMetadata(existingMetadata?: Workflow['metadata']): Workflow['metadata'];
57
57
  /**
58
58
  * Update workflow with new nodes/edges and generate new metadata
59
59
  */
@@ -2,19 +2,19 @@
2
2
  * Workflow Editor Helper
3
3
  * Contains business logic for workflow operations
4
4
  */
5
- import { hasCycles, hasInvalidCycles, } from "../utils/connections.js";
6
- import { workflowApi, nodeApi, setEndpointConfig } from "../services/api.js";
7
- import { v4 as uuidv4 } from "uuid";
8
- import { workflowActions } from "../stores/workflowStore.svelte.js";
9
- import { nodeExecutionService } from "../services/nodeExecutionService.js";
10
- import { WorkflowAdapter } from "../adapters/WorkflowAdapter.js";
11
- import { AgentSpecAdapter } from "../adapters/agentspec/AgentSpecAdapter.js";
12
- import { validateForAgentSpecExport } from "../adapters/agentspec/validator.js";
13
- import { extractPortId } from "../utils/handleIds.js";
14
- import { logger } from "../utils/logger.js";
15
- import { generateNodeId, extractConfigDefaults } from "../utils/nodeIds.js";
16
- import { applyConnectionStyling as applyConnectionStylingUtil, updateEdgeStyles as updateEdgeStylesUtil, isGatewayBranch as isGatewayBranchUtil, getPortDataType as getPortDataTypeUtil, getEdgeCategory as getEdgeCategoryUtil, getEdgeCategoryWithLoopback as getEdgeCategoryWithLoopbackUtil, } from "../utils/edgeStyling.js";
17
- export { generateNodeId, extractConfigDefaults } from "../utils/nodeIds.js";
5
+ import { hasCycles, hasInvalidCycles } from '../utils/connections.js';
6
+ import { workflowApi, nodeApi, setEndpointConfig } from '../services/api.js';
7
+ import { v4 as uuidv4 } from 'uuid';
8
+ import { workflowActions } from '../stores/workflowStore.svelte.js';
9
+ import { nodeExecutionService } from '../services/nodeExecutionService.js';
10
+ import { WorkflowAdapter } from '../adapters/WorkflowAdapter.js';
11
+ import { AgentSpecAdapter } from '../adapters/agentspec/AgentSpecAdapter.js';
12
+ import { validateForAgentSpecExport } from '../adapters/agentspec/validator.js';
13
+ import { extractPortId } from '../utils/handleIds.js';
14
+ import { logger } from '../utils/logger.js';
15
+ import { generateNodeId, extractConfigDefaults } from '../utils/nodeIds.js';
16
+ import { applyConnectionStyling as applyConnectionStylingUtil, updateEdgeStyles as updateEdgeStylesUtil, isGatewayBranch as isGatewayBranchUtil, getPortDataType as getPortDataTypeUtil, getEdgeCategory as getEdgeCategoryUtil, getEdgeCategoryWithLoopback as getEdgeCategoryWithLoopbackUtil } from '../utils/edgeStyling.js';
17
+ export { generateNodeId, extractConfigDefaults } from '../utils/nodeIds.js';
18
18
  /**
19
19
  * Edge styling configuration based on source port data type.
20
20
  * Delegates to standalone functions in utils/edgeStyling.ts.
@@ -60,33 +60,29 @@ export class NodeOperationsHelper {
60
60
  return fetchedNodes;
61
61
  }
62
62
  catch (error) {
63
- logger.error("Failed to load nodes from API:", error);
63
+ logger.error('Failed to load nodes from API:', error);
64
64
  // Use fallback sample nodes
65
65
  return [
66
66
  {
67
- id: "text-input",
68
- name: "Text Input",
69
- category: "inputs",
70
- description: "Simple text input field",
71
- version: "1.0.0",
72
- icon: "mdi:text-box",
67
+ id: 'text-input',
68
+ name: 'Text Input',
69
+ category: 'inputs',
70
+ description: 'Simple text input field',
71
+ version: '1.0.0',
72
+ icon: 'mdi:text-box',
73
73
  inputs: [],
74
- outputs: [
75
- { id: "text", name: "text", type: "output", dataType: "string" },
76
- ],
74
+ outputs: [{ id: 'text', name: 'text', type: 'output', dataType: 'string' }]
77
75
  },
78
76
  {
79
- id: "text-output",
80
- name: "Text Output",
81
- category: "outputs",
82
- description: "Display text output",
83
- version: "1.0.0",
84
- icon: "mdi:text-box-outline",
85
- inputs: [
86
- { id: "text", name: "text", type: "input", dataType: "string" },
87
- ],
88
- outputs: [],
89
- },
77
+ id: 'text-output',
78
+ name: 'Text Output',
79
+ category: 'outputs',
80
+ description: 'Display text output',
81
+ version: '1.0.0',
82
+ icon: 'mdi:text-box-outline',
83
+ inputs: [{ id: 'text', name: 'text', type: 'input', dataType: 'string' }],
84
+ outputs: []
85
+ }
90
86
  ];
91
87
  }
92
88
  }
@@ -105,7 +101,7 @@ export class NodeOperationsHelper {
105
101
  return executionInfo;
106
102
  }
107
103
  catch (error) {
108
- logger.error("Failed to load node execution info:", error);
104
+ logger.error('Failed to load node execution info:', error);
109
105
  return {};
110
106
  }
111
107
  }
@@ -118,7 +114,7 @@ export class NodeOperationsHelper {
118
114
  // Handle both old format (with type: "node") and new format (direct NodeMetadata)
119
115
  let nodeType;
120
116
  let nodeData;
121
- if (parsedData.type === "node") {
117
+ if (parsedData.type === 'node') {
122
118
  // Old format from sidebar
123
119
  nodeType = parsedData.nodeData.metadata;
124
120
  nodeData = parsedData.nodeData;
@@ -129,7 +125,7 @@ export class NodeOperationsHelper {
129
125
  nodeData = {
130
126
  label: nodeType.name,
131
127
  config: extractConfigDefaults(nodeType.configSchema),
132
- metadata: nodeType,
128
+ metadata: nodeType
133
129
  };
134
130
  }
135
131
  // Generate node ID based on node type and existing nodes
@@ -138,18 +134,18 @@ export class NodeOperationsHelper {
138
134
  // UniversalNode component handles internal switching based on metadata and config
139
135
  const newNode = {
140
136
  id: newNodeId,
141
- type: "universalNode",
137
+ type: 'universalNode',
142
138
  position, // Use the position calculated from the drop event
143
139
  deletable: true,
144
140
  data: {
145
141
  ...nodeData,
146
- nodeId: newNodeId, // Use the same ID
147
- },
142
+ nodeId: newNodeId // Use the same ID
143
+ }
148
144
  };
149
145
  return newNode;
150
146
  }
151
147
  catch (error) {
152
- logger.error("Error parsing node data:", error);
148
+ logger.error('Error parsing node data:', error);
153
149
  return null;
154
150
  }
155
151
  }
@@ -164,12 +160,12 @@ export class WorkflowOperationsHelper {
164
160
  static generateMetadata(existingMetadata) {
165
161
  const now = new Date().toISOString();
166
162
  return {
167
- version: "1.0.0",
163
+ version: '1.0.0',
168
164
  createdAt: now,
169
165
  ...(existingMetadata ?? {}),
170
166
  updatedAt: now,
171
167
  versionId: `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,
172
- updateNumber: (existingMetadata?.updateNumber || 0) + 1,
168
+ updateNumber: (existingMetadata?.updateNumber || 0) + 1
173
169
  };
174
170
  }
175
171
  /**
@@ -180,7 +176,7 @@ export class WorkflowOperationsHelper {
180
176
  ...workflow,
181
177
  nodes,
182
178
  edges,
183
- metadata: this.generateMetadata(workflow.metadata),
179
+ metadata: this.generateMetadata(workflow.metadata)
184
180
  };
185
181
  }
186
182
  /**
@@ -191,7 +187,7 @@ export class WorkflowOperationsHelper {
191
187
  ...workflow,
192
188
  nodes: [],
193
189
  edges: [],
194
- metadata: this.generateMetadata(workflow.metadata),
190
+ metadata: this.generateMetadata(workflow.metadata)
195
191
  };
196
192
  }
197
193
  /**
@@ -203,10 +199,10 @@ export class WorkflowOperationsHelper {
203
199
  nodes: workflow.nodes.map((node) => node.id === nodeId
204
200
  ? {
205
201
  ...node,
206
- data: { ...node.data, config: { ...newConfig } },
202
+ data: { ...node.data, config: { ...newConfig } }
207
203
  }
208
204
  : node),
209
- metadata: this.generateMetadata(workflow.metadata),
205
+ metadata: this.generateMetadata(workflow.metadata)
210
206
  };
211
207
  }
212
208
  /**
@@ -216,7 +212,7 @@ export class WorkflowOperationsHelper {
216
212
  return {
217
213
  ...workflow,
218
214
  nodes: [...workflow.nodes, node],
219
- metadata: this.generateMetadata(workflow.metadata),
215
+ metadata: this.generateMetadata(workflow.metadata)
220
216
  };
221
217
  }
222
218
  /**
@@ -224,7 +220,7 @@ export class WorkflowOperationsHelper {
224
220
  */
225
221
  static async saveWorkflow(workflow) {
226
222
  if (!workflow) {
227
- logger.warn("No workflow data available to save");
223
+ logger.warn('No workflow data available to save');
228
224
  return null;
229
225
  }
230
226
  try {
@@ -240,14 +236,14 @@ export class WorkflowOperationsHelper {
240
236
  }
241
237
  const workflowToSave = {
242
238
  id: workflowId,
243
- name: workflow.name || "Untitled Workflow",
239
+ name: workflow.name || 'Untitled Workflow',
244
240
  nodes: workflow.nodes || [],
245
241
  edges: workflow.edges || [],
246
242
  metadata: {
247
- version: "1.0.0",
243
+ version: '1.0.0',
248
244
  createdAt: workflow.metadata?.createdAt || new Date().toISOString(),
249
- updatedAt: new Date().toISOString(),
250
- },
245
+ updatedAt: new Date().toISOString()
246
+ }
251
247
  };
252
248
  const savedWorkflow = await workflowApi.saveWorkflow(workflowToSave);
253
249
  // Update the workflow ID if it changed (new workflow)
@@ -258,14 +254,14 @@ export class WorkflowOperationsHelper {
258
254
  name: workflowToSave.name,
259
255
  metadata: {
260
256
  ...workflowToSave.metadata,
261
- ...savedWorkflow.metadata,
262
- },
257
+ ...savedWorkflow.metadata
258
+ }
263
259
  });
264
260
  }
265
261
  return savedWorkflow;
266
262
  }
267
263
  catch (error) {
268
- logger.error("Failed to save workflow:", error);
264
+ logger.error('Failed to save workflow:', error);
269
265
  throw error;
270
266
  }
271
267
  }
@@ -274,26 +270,26 @@ export class WorkflowOperationsHelper {
274
270
  */
275
271
  static exportWorkflow(workflow) {
276
272
  if (!workflow) {
277
- logger.warn("No workflow data available to export");
273
+ logger.warn('No workflow data available to export');
278
274
  return;
279
275
  }
280
276
  // Use the same ID logic as saveWorkflow
281
277
  const workflowId = workflow.id || uuidv4();
282
278
  const workflowToExport = {
283
279
  id: workflowId,
284
- name: workflow.name || "Untitled Workflow",
280
+ name: workflow.name || 'Untitled Workflow',
285
281
  nodes: workflow.nodes || [],
286
282
  edges: workflow.edges || [],
287
283
  metadata: {
288
- version: "1.0.0",
284
+ version: '1.0.0',
289
285
  createdAt: workflow.metadata?.createdAt || new Date().toISOString(),
290
- updatedAt: new Date().toISOString(),
291
- },
286
+ updatedAt: new Date().toISOString()
287
+ }
292
288
  };
293
289
  const dataStr = JSON.stringify(workflowToExport, null, 2);
294
- const dataBlob = new Blob([dataStr], { type: "application/json" });
290
+ const dataBlob = new Blob([dataStr], { type: 'application/json' });
295
291
  const url = URL.createObjectURL(dataBlob);
296
- const link = document.createElement("a");
292
+ const link = document.createElement('a');
297
293
  link.href = url;
298
294
  link.download = `${workflowToExport.name}.json`;
299
295
  link.click();
@@ -312,8 +308,8 @@ export class WorkflowOperationsHelper {
312
308
  if (!workflow) {
313
309
  return {
314
310
  valid: false,
315
- errors: ["No workflow data available to export"],
316
- warnings: [],
311
+ errors: ['No workflow data available to export'],
312
+ warnings: []
317
313
  };
318
314
  }
319
315
  // Convert to StandardWorkflow first
@@ -328,11 +324,11 @@ export class WorkflowOperationsHelper {
328
324
  const agentSpecAdapter = new AgentSpecAdapter();
329
325
  const agentSpecJson = agentSpecAdapter.exportJSON(standardWorkflow);
330
326
  // Trigger download
331
- const dataBlob = new Blob([agentSpecJson], { type: "application/json" });
327
+ const dataBlob = new Blob([agentSpecJson], { type: 'application/json' });
332
328
  const url = URL.createObjectURL(dataBlob);
333
- const link = document.createElement("a");
329
+ const link = document.createElement('a');
334
330
  link.href = url;
335
- link.download = `${workflow.name || "workflow"}-agentspec.json`;
331
+ link.download = `${workflow.name || 'workflow'}-agentspec.json`;
336
332
  link.click();
337
333
  URL.revokeObjectURL(url);
338
334
  return validation;
package/dist/index.d.ts CHANGED
@@ -29,9 +29,9 @@
29
29
  *
30
30
  * @module flowdrop
31
31
  */
32
- export * from "./core/index.js";
33
- export * from "./form/index.js";
34
- export * from "./display/index.js";
35
- export * from "./playground/index.js";
36
- export * from "./editor/index.js";
37
- export * from "./settings/index.js";
32
+ export * from './core/index.js';
33
+ export * from './form/index.js';
34
+ export * from './display/index.js';
35
+ export * from './playground/index.js';
36
+ export * from './editor/index.js';
37
+ export * from './settings/index.js';
package/dist/index.js CHANGED
@@ -39,26 +39,26 @@
39
39
  // ============================================================================
40
40
  // Core Exports (Types & Utilities - No Heavy Dependencies)
41
41
  // ============================================================================
42
- export * from "./core/index.js";
42
+ export * from './core/index.js';
43
43
  // ============================================================================
44
44
  // Form Exports
45
45
  // ============================================================================
46
- export * from "./form/index.js";
46
+ export * from './form/index.js';
47
47
  // Note: Heavy form fields (code, markdown) are NOT auto-registered.
48
48
  // Users must import from form/code or form/markdown and register explicitly.
49
49
  // ============================================================================
50
50
  // Display Exports
51
51
  // ============================================================================
52
- export * from "./display/index.js";
52
+ export * from './display/index.js';
53
53
  // ============================================================================
54
54
  // Playground Exports
55
55
  // ============================================================================
56
- export * from "./playground/index.js";
56
+ export * from './playground/index.js';
57
57
  // ============================================================================
58
58
  // Editor Exports (includes @xyflow/svelte and auto-registers builtin nodes)
59
59
  // ============================================================================
60
- export * from "./editor/index.js";
60
+ export * from './editor/index.js';
61
61
  // ============================================================================
62
62
  // Settings Exports (stores, services, components, types)
63
63
  // ============================================================================
64
- export * from "./settings/index.js";
64
+ export * from './settings/index.js';
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  // Mock browser check
7
- export const browser = typeof window !== "undefined";
7
+ export const browser = typeof window !== 'undefined';
8
8
 
9
9
  // Mock dev check
10
10
  export const dev = false;
@@ -13,4 +13,4 @@ export const dev = false;
13
13
  export const building = false;
14
14
 
15
15
  // Mock version
16
- export const version = "1.0.0";
16
+ export const version = '1.0.0';
@@ -10,7 +10,7 @@ export const enhance = (form, options = {}) => {
10
10
  event.preventDefault();
11
11
  // Basic form handling for library context
12
12
  if (options.onResult) {
13
- options.onResult({ type: "success" });
13
+ options.onResult({ type: 'success' });
14
14
  }
15
15
  };
16
16
  };
@@ -3,12 +3,12 @@
3
3
  * Provides minimal implementations for SvelteKit navigation in library context
4
4
  */
5
5
 
6
- import { logger } from "../utils/logger.js";
6
+ import { logger } from '../utils/logger.js';
7
7
 
8
8
  // Mock goto function
9
9
  export const goto = async () => {
10
10
  // No-op for library context
11
- logger.warn("Navigation not available in library context");
11
+ logger.warn('Navigation not available in library context');
12
12
  };
13
13
 
14
14
  // Mock invalidate function
@@ -3,17 +3,17 @@
3
3
  * Provides minimal implementations for SvelteKit stores in library context
4
4
  */
5
5
 
6
- import { writable } from "svelte/store";
6
+ import { writable } from 'svelte/store';
7
7
 
8
8
  // Mock page store
9
9
  export const page = writable({
10
- url: new URL("http://localhost:3000"),
10
+ url: new URL('http://localhost:3000'),
11
11
  params: {},
12
12
  route: { id: null },
13
13
  status: 200,
14
14
  error: null,
15
15
  data: {},
16
- form: null,
16
+ form: null
17
17
  });
18
18
 
19
19
  // Mock navigating store