@flowdrop/flowdrop 1.5.0 → 1.6.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 (434) 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 +240 -294
  40. package/dist/components/App.svelte.d.ts +9 -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 +42 -56
  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 +44 -74
  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/services/agentSpecExecutionService.d.ts +3 -3
  299. package/dist/services/agentSpecExecutionService.js +55 -56
  300. package/dist/services/api.d.ts +2 -2
  301. package/dist/services/api.js +37 -37
  302. package/dist/services/apiVariableService.d.ts +1 -1
  303. package/dist/services/apiVariableService.js +34 -41
  304. package/dist/services/autoSaveService.js +8 -8
  305. package/dist/services/categoriesApi.d.ts +2 -2
  306. package/dist/services/categoriesApi.js +8 -8
  307. package/dist/services/chatService.d.ts +1 -1
  308. package/dist/services/chatService.js +18 -18
  309. package/dist/services/draftStorage.d.ts +1 -1
  310. package/dist/services/draftStorage.js +11 -11
  311. package/dist/services/dynamicSchemaService.d.ts +1 -1
  312. package/dist/services/dynamicSchemaService.js +39 -41
  313. package/dist/services/globalSave.d.ts +2 -2
  314. package/dist/services/globalSave.js +38 -41
  315. package/dist/services/historyService.d.ts +1 -1
  316. package/dist/services/historyService.js +10 -10
  317. package/dist/services/interruptService.d.ts +1 -1
  318. package/dist/services/interruptService.js +29 -35
  319. package/dist/services/nodeExecutionService.d.ts +1 -1
  320. package/dist/services/nodeExecutionService.js +44 -45
  321. package/dist/services/playgroundService.d.ts +1 -1
  322. package/dist/services/playgroundService.js +29 -29
  323. package/dist/services/portConfigApi.d.ts +2 -2
  324. package/dist/services/portConfigApi.js +8 -8
  325. package/dist/services/settingsService.d.ts +2 -2
  326. package/dist/services/settingsService.js +19 -25
  327. package/dist/services/toastService.d.ts +4 -4
  328. package/dist/services/toastService.js +33 -33
  329. package/dist/services/variableService.d.ts +1 -1
  330. package/dist/services/variableService.js +36 -36
  331. package/dist/services/workflowStorage.d.ts +2 -2
  332. package/dist/services/workflowStorage.js +13 -13
  333. package/dist/settings/index.d.ts +7 -7
  334. package/dist/settings/index.js +6 -6
  335. package/dist/skins/default.d.ts +1 -1
  336. package/dist/skins/default.js +1 -1
  337. package/dist/skins/index.d.ts +3 -3
  338. package/dist/skins/index.js +7 -7
  339. package/dist/skins/slate.d.ts +1 -1
  340. package/dist/skins/slate.js +69 -69
  341. package/dist/stores/categoriesStore.svelte.d.ts +1 -1
  342. package/dist/stores/categoriesStore.svelte.js +5 -5
  343. package/dist/stores/editorStateMachine.svelte.d.ts +2 -2
  344. package/dist/stores/editorStateMachine.svelte.js +34 -34
  345. package/dist/stores/historyStore.svelte.d.ts +4 -4
  346. package/dist/stores/historyStore.svelte.js +4 -4
  347. package/dist/stores/interruptStore.svelte.d.ts +3 -3
  348. package/dist/stores/interruptStore.svelte.js +21 -21
  349. package/dist/stores/playgroundStore.svelte.d.ts +2 -2
  350. package/dist/stores/playgroundStore.svelte.js +18 -21
  351. package/dist/stores/portCoordinateStore.svelte.d.ts +2 -2
  352. package/dist/stores/portCoordinateStore.svelte.js +10 -13
  353. package/dist/stores/settingsStore.svelte.d.ts +2 -2
  354. package/dist/stores/settingsStore.svelte.js +57 -62
  355. package/dist/stores/workflowStore.svelte.d.ts +3 -3
  356. package/dist/stores/workflowStore.svelte.js +46 -47
  357. package/dist/stories/CanvasDecorator.svelte +7 -10
  358. package/dist/stories/CanvasDecorator.svelte.d.ts +2 -2
  359. package/dist/stories/EdgeDecorator.svelte +28 -31
  360. package/dist/stories/EdgeDecorator.svelte.d.ts +1 -1
  361. package/dist/stories/NodeDecorator.svelte +14 -20
  362. package/dist/stories/NodeDecorator.svelte.d.ts +1 -1
  363. package/dist/stories/utils.d.ts +2 -2
  364. package/dist/stories/utils.js +89 -93
  365. package/dist/styles/base.css +16 -50
  366. package/dist/styles/tokens.css +10 -28
  367. package/dist/svelte-app.d.ts +10 -10
  368. package/dist/svelte-app.js +39 -39
  369. package/dist/themes/default.d.ts +1 -1
  370. package/dist/themes/default.js +4 -4
  371. package/dist/themes/index.d.ts +3 -3
  372. package/dist/themes/index.js +11 -11
  373. package/dist/themes/minimal.d.ts +1 -1
  374. package/dist/themes/minimal.js +5 -5
  375. package/dist/types/agentspec.d.ts +18 -18
  376. package/dist/types/agentspec.js +2 -2
  377. package/dist/types/auth.d.ts +1 -1
  378. package/dist/types/auth.js +6 -6
  379. package/dist/types/chat.d.ts +2 -2
  380. package/dist/types/config.d.ts +6 -6
  381. package/dist/types/events.d.ts +3 -3
  382. package/dist/types/events.js +2 -2
  383. package/dist/types/index.d.ts +32 -32
  384. package/dist/types/index.js +6 -6
  385. package/dist/types/interrupt.d.ts +6 -6
  386. package/dist/types/interrupt.js +21 -21
  387. package/dist/types/interruptState.d.ts +12 -12
  388. package/dist/types/interruptState.js +66 -66
  389. package/dist/types/playground.d.ts +7 -7
  390. package/dist/types/playground.js +14 -14
  391. package/dist/types/settings.d.ts +7 -5
  392. package/dist/types/settings.js +19 -24
  393. package/dist/types/skin.d.ts +1 -1
  394. package/dist/types/theme.d.ts +2 -2
  395. package/dist/types/uischema.d.ts +4 -4
  396. package/dist/types/uischema.js +3 -3
  397. package/dist/utils/colors.d.ts +1 -1
  398. package/dist/utils/colors.js +95 -97
  399. package/dist/utils/config.d.ts +2 -2
  400. package/dist/utils/config.js +48 -48
  401. package/dist/utils/connections.d.ts +2 -2
  402. package/dist/utils/connections.js +15 -15
  403. package/dist/utils/edgeStyling.d.ts +2 -2
  404. package/dist/utils/edgeStyling.js +36 -39
  405. package/dist/utils/errors.js +3 -3
  406. package/dist/utils/fetchWithAuth.d.ts +1 -1
  407. package/dist/utils/fetchWithAuth.js +2 -2
  408. package/dist/utils/handleIds.d.ts +2 -2
  409. package/dist/utils/handleIds.js +8 -8
  410. package/dist/utils/handlePositioning.d.ts +1 -1
  411. package/dist/utils/handlePositioning.js +2 -2
  412. package/dist/utils/icons.d.ts +1 -1
  413. package/dist/utils/icons.js +74 -74
  414. package/dist/utils/logger.d.ts +1 -1
  415. package/dist/utils/logger.js +7 -7
  416. package/dist/utils/nodeIds.d.ts +1 -1
  417. package/dist/utils/nodeIds.js +1 -1
  418. package/dist/utils/nodeStatus.d.ts +1 -1
  419. package/dist/utils/nodeStatus.js +48 -48
  420. package/dist/utils/nodeSwap.d.ts +9 -9
  421. package/dist/utils/nodeSwap.js +52 -58
  422. package/dist/utils/nodeTypes.d.ts +1 -1
  423. package/dist/utils/nodeTypes.js +20 -21
  424. package/dist/utils/nodeWrapper.d.ts +7 -7
  425. package/dist/utils/nodeWrapper.js +19 -21
  426. package/dist/utils/performanceUtils.d.ts +1 -1
  427. package/dist/utils/performanceUtils.js +1 -2
  428. package/dist/utils/portUtils.d.ts +2 -2
  429. package/dist/utils/portUtils.js +1 -1
  430. package/dist/utils/sanitize.js +1 -1
  431. package/dist/utils/uischema.d.ts +2 -2
  432. package/dist/utils/uischema.js +8 -8
  433. package/dist/utils/validation.js +8 -8
  434. package/package.json +7 -11
@@ -3,65 +3,65 @@
3
3
  * Ensures consistent category colors across sidebar and canvas
4
4
  * Uses BEM syntax for CSS classes
5
5
  */
6
- import { getPortCompatibilityChecker } from "./connections.js";
7
- import { getCategoryColor as getCategoryColorFromStore } from "../stores/categoriesStore.svelte.js";
8
- import { logger } from "./logger.js";
6
+ import { getPortCompatibilityChecker } from './connections.js';
7
+ import { getCategoryColor as getCategoryColorFromStore } from '../stores/categoriesStore.svelte.js';
8
+ import { logger } from './logger.js';
9
9
  /**
10
10
  * Category color mapping to design tokens (CSS variables)
11
11
  * Uses --fd-node-* tokens from tokens.css
12
12
  * These serve as static defaults; the categories store provides dynamic overrides.
13
13
  */
14
14
  export const CATEGORY_COLOR_TOKENS = {
15
- triggers: "var(--fd-node-cyan)",
16
- inputs: "var(--fd-node-emerald)",
17
- outputs: "var(--fd-node-blue)",
18
- prompts: "var(--fd-node-amber)",
19
- models: "var(--fd-node-indigo)",
20
- processing: "var(--fd-node-teal)",
21
- logic: "var(--fd-node-purple)",
22
- data: "var(--fd-node-orange)",
23
- helpers: "var(--fd-node-slate)",
24
- tools: "var(--fd-node-amber)",
25
- "vector stores": "var(--fd-node-emerald)",
26
- embeddings: "var(--fd-node-indigo)",
27
- memories: "var(--fd-node-blue)",
28
- agents: "var(--fd-node-teal)",
29
- ai: "var(--fd-node-purple)",
30
- interrupts: "var(--fd-node-red)",
31
- bundles: "var(--fd-node-slate)",
15
+ triggers: 'var(--fd-node-cyan)',
16
+ inputs: 'var(--fd-node-emerald)',
17
+ outputs: 'var(--fd-node-blue)',
18
+ prompts: 'var(--fd-node-amber)',
19
+ models: 'var(--fd-node-indigo)',
20
+ processing: 'var(--fd-node-teal)',
21
+ logic: 'var(--fd-node-purple)',
22
+ data: 'var(--fd-node-orange)',
23
+ helpers: 'var(--fd-node-slate)',
24
+ tools: 'var(--fd-node-amber)',
25
+ 'vector stores': 'var(--fd-node-emerald)',
26
+ embeddings: 'var(--fd-node-indigo)',
27
+ memories: 'var(--fd-node-blue)',
28
+ agents: 'var(--fd-node-teal)',
29
+ ai: 'var(--fd-node-purple)',
30
+ interrupts: 'var(--fd-node-red)',
31
+ bundles: 'var(--fd-node-slate)'
32
32
  };
33
33
  /**
34
34
  * Default data type colors for fallback when port configuration is not available
35
35
  * Uses --fd-node-* tokens from tokens.css
36
36
  */
37
37
  const DEFAULT_DATA_TYPE_COLORS = {
38
- string: "var(--fd-node-emerald)",
39
- text: "var(--fd-node-emerald)",
40
- number: "var(--fd-node-blue)",
41
- integer: "var(--fd-node-blue)",
42
- float: "var(--fd-node-blue)",
43
- boolean: "var(--fd-node-purple)",
44
- array: "var(--fd-node-amber)",
45
- list: "var(--fd-node-amber)",
46
- object: "var(--fd-node-orange)",
47
- json: "var(--fd-node-orange)",
48
- mixed: "var(--fd-node-orange)",
49
- file: "var(--fd-node-red)",
50
- document: "var(--fd-node-red)",
51
- image: "var(--fd-node-pink)",
52
- picture: "var(--fd-node-pink)",
53
- audio: "var(--fd-node-indigo)",
54
- sound: "var(--fd-node-indigo)",
55
- video: "var(--fd-node-teal)",
56
- movie: "var(--fd-node-teal)",
57
- url: "var(--fd-node-cyan)",
58
- email: "var(--fd-node-cyan)",
59
- date: "var(--fd-node-lime)",
60
- datetime: "var(--fd-node-lime)",
61
- time: "var(--fd-node-lime)",
62
- tool: "var(--fd-node-amber)",
63
- trigger: "var(--fd-edge-trigger)",
64
- branch: "var(--fd-node-purple)",
38
+ string: 'var(--fd-node-emerald)',
39
+ text: 'var(--fd-node-emerald)',
40
+ number: 'var(--fd-node-blue)',
41
+ integer: 'var(--fd-node-blue)',
42
+ float: 'var(--fd-node-blue)',
43
+ boolean: 'var(--fd-node-purple)',
44
+ array: 'var(--fd-node-amber)',
45
+ list: 'var(--fd-node-amber)',
46
+ object: 'var(--fd-node-orange)',
47
+ json: 'var(--fd-node-orange)',
48
+ mixed: 'var(--fd-node-orange)',
49
+ file: 'var(--fd-node-red)',
50
+ document: 'var(--fd-node-red)',
51
+ image: 'var(--fd-node-pink)',
52
+ picture: 'var(--fd-node-pink)',
53
+ audio: 'var(--fd-node-indigo)',
54
+ sound: 'var(--fd-node-indigo)',
55
+ video: 'var(--fd-node-teal)',
56
+ movie: 'var(--fd-node-teal)',
57
+ url: 'var(--fd-node-cyan)',
58
+ email: 'var(--fd-node-cyan)',
59
+ date: 'var(--fd-node-lime)',
60
+ datetime: 'var(--fd-node-lime)',
61
+ time: 'var(--fd-node-lime)',
62
+ tool: 'var(--fd-node-amber)',
63
+ trigger: 'var(--fd-edge-trigger)',
64
+ branch: 'var(--fd-node-purple)'
65
65
  };
66
66
  /**
67
67
  * Get the design token for a category color.
@@ -85,7 +85,7 @@ export function getDataTypeColorToken(dataType) {
85
85
  catch {
86
86
  // Fallback to static color mapping if port checker not initialized
87
87
  }
88
- return (DEFAULT_DATA_TYPE_COLORS[dataType.toLowerCase()] || "var(--fd-node-slate)");
88
+ return DEFAULT_DATA_TYPE_COLORS[dataType.toLowerCase()] || 'var(--fd-node-slate)';
89
89
  }
90
90
  /**
91
91
  * Get data type configuration from port config
@@ -96,7 +96,7 @@ export function getDataTypeConfig(dataType) {
96
96
  return checker.getDataTypeConfig(dataType);
97
97
  }
98
98
  catch (error) {
99
- logger.warn("Port compatibility checker not initialized:", error);
99
+ logger.warn('Port compatibility checker not initialized:', error);
100
100
  return undefined;
101
101
  }
102
102
  }
@@ -109,7 +109,7 @@ export function getAvailableDataTypes() {
109
109
  return checker.getEnabledDataTypes();
110
110
  }
111
111
  catch (error) {
112
- logger.warn("Port compatibility checker not initialized:", error);
112
+ logger.warn('Port compatibility checker not initialized:', error);
113
113
  return [];
114
114
  }
115
115
  }
@@ -117,10 +117,10 @@ export function getAvailableDataTypes() {
117
117
  * Default colors for fallback cases
118
118
  */
119
119
  export const DEFAULT_COLORS = {
120
- background: "flowdrop-color--base-light",
121
- accent: "flowdrop-color--neutral",
122
- text: "flowdrop-color--base-text",
123
- border: "flowdrop-color--base-border",
120
+ background: 'flowdrop-color--base-light',
121
+ accent: 'flowdrop-color--neutral',
122
+ text: 'flowdrop-color--base-text',
123
+ border: 'flowdrop-color--base-border'
124
124
  };
125
125
  /**
126
126
  * Get category colors
@@ -174,33 +174,33 @@ export function getNodeColors(category, isError = false, isProcessing = false, i
174
174
  const baseColor = getCategoryColors(category);
175
175
  if (isError) {
176
176
  return {
177
- background: "var(--fd-error-muted)",
178
- accent: "var(--fd-error)",
179
- text: "var(--fd-error-hover)",
180
- border: "var(--fd-error)",
177
+ background: 'var(--fd-error-muted)',
178
+ accent: 'var(--fd-error)',
179
+ text: 'var(--fd-error-hover)',
180
+ border: 'var(--fd-error)'
181
181
  };
182
182
  }
183
183
  if (isProcessing) {
184
184
  return {
185
- background: "var(--fd-info-muted)",
186
- accent: "var(--fd-info)",
187
- text: "var(--fd-primary-hover)",
188
- border: "var(--fd-primary)",
185
+ background: 'var(--fd-info-muted)',
186
+ accent: 'var(--fd-info)',
187
+ text: 'var(--fd-primary-hover)',
188
+ border: 'var(--fd-primary)'
189
189
  };
190
190
  }
191
191
  if (isSelected) {
192
192
  return {
193
- background: "var(--fd-accent-muted)",
194
- accent: "var(--fd-accent)",
195
- text: "var(--fd-accent-hover)",
196
- border: "var(--fd-accent)",
193
+ background: 'var(--fd-accent-muted)',
194
+ accent: 'var(--fd-accent)',
195
+ text: 'var(--fd-accent-hover)',
196
+ border: 'var(--fd-accent)'
197
197
  };
198
198
  }
199
199
  return {
200
200
  background: baseColor,
201
201
  accent: baseColor,
202
- text: "var(--fd-foreground)",
203
- border: baseColor,
202
+ text: 'var(--fd-foreground)',
203
+ border: baseColor
204
204
  };
205
205
  }
206
206
  /**
@@ -262,7 +262,7 @@ export function getDataTypeColor(dataType) {
262
262
  */
263
263
  export function parseDataTypeDisplay(dataType) {
264
264
  // Check if it's a typed array (ends with [])
265
- const isArray = dataType.endsWith("[]");
265
+ const isArray = dataType.endsWith('[]');
266
266
  if (isArray) {
267
267
  const elementType = dataType.slice(0, -2); // Remove []
268
268
  const config = getDataTypeConfig(dataType);
@@ -270,7 +270,7 @@ export function parseDataTypeDisplay(dataType) {
270
270
  baseType: dataType,
271
271
  isArray: true,
272
272
  displayName: config?.name || `${elementType}[]`,
273
- elementType: elementType,
273
+ elementType: elementType
274
274
  };
275
275
  }
276
276
  else {
@@ -278,7 +278,7 @@ export function parseDataTypeDisplay(dataType) {
278
278
  return {
279
279
  baseType: dataType,
280
280
  isArray: false,
281
- displayName: config?.name || dataType,
281
+ displayName: config?.name || dataType
282
282
  };
283
283
  }
284
284
  }
@@ -297,7 +297,7 @@ export function getDataTypeDisplayText(dataType) {
297
297
  * @returns True if it's an array type
298
298
  */
299
299
  export function isArrayDataType(dataType) {
300
- return dataType.endsWith("[]") || dataType === "array" || dataType === "list";
300
+ return dataType.endsWith('[]') || dataType === 'array' || dataType === 'list';
301
301
  }
302
302
  /**
303
303
  * Get the element type from an array data type
@@ -305,7 +305,7 @@ export function isArrayDataType(dataType) {
305
305
  * @returns The element type (e.g., "string") or null if not an array
306
306
  */
307
307
  export function getArrayElementType(arrayDataType) {
308
- if (arrayDataType.endsWith("[]")) {
308
+ if (arrayDataType.endsWith('[]')) {
309
309
  return arrayDataType.slice(0, -2);
310
310
  }
311
311
  return null;
@@ -316,7 +316,7 @@ export function getArrayElementType(arrayDataType) {
316
316
  * @returns Object with r, g, b values (0-255) or null if invalid
317
317
  */
318
318
  export function hexToRgb(hex) {
319
- const cleanHex = hex.replace(/^#/, "");
319
+ const cleanHex = hex.replace(/^#/, '');
320
320
  if (!/^[0-9A-Fa-f]{6}$/.test(cleanHex)) {
321
321
  return null;
322
322
  }
@@ -336,9 +336,7 @@ export function hexToRgb(hex) {
336
336
  export function getRelativeLuminance(r, g, b) {
337
337
  const toLinear = (value) => {
338
338
  const srgb = value / 255;
339
- return srgb <= 0.03928
340
- ? srgb / 12.92
341
- : Math.pow((srgb + 0.055) / 1.055, 2.4);
339
+ return srgb <= 0.03928 ? srgb / 12.92 : Math.pow((srgb + 0.055) / 1.055, 2.4);
342
340
  };
343
341
  return 0.2126 * toLinear(r) + 0.7152 * toLinear(g) + 0.0722 * toLinear(b);
344
342
  }
@@ -363,25 +361,25 @@ export function isLightColor(hex) {
363
361
  * @returns CSS color value for text that provides good contrast
364
362
  */
365
363
  export function getContrastTextColor(backgroundColor) {
366
- return isLightColor(backgroundColor) ? "#18181b" : "#ffffff";
364
+ return isLightColor(backgroundColor) ? '#18181b' : '#ffffff';
367
365
  }
368
366
  /**
369
367
  * Mapping of CSS variable tokens to their resolved hex values
370
368
  * Used for contrast calculations when working with design tokens
371
369
  */
372
370
  const TOKEN_TO_HEX = {
373
- "var(--fd-node-cyan)": "#06b6d4",
374
- "var(--fd-node-emerald)": "#10b981",
375
- "var(--fd-node-blue)": "#3b82f6",
376
- "var(--fd-node-amber)": "#f59e0b",
377
- "var(--fd-node-indigo)": "#6366f1",
378
- "var(--fd-node-teal)": "#14b8a6",
379
- "var(--fd-node-purple)": "#8b5cf6",
380
- "var(--fd-node-orange)": "#f97316",
381
- "var(--fd-node-slate)": "#64748b",
382
- "var(--fd-node-red)": "#ef4444",
383
- "var(--fd-node-pink)": "#ec4899",
384
- "var(--fd-node-lime)": "#84cc16",
371
+ 'var(--fd-node-cyan)': '#06b6d4',
372
+ 'var(--fd-node-emerald)': '#10b981',
373
+ 'var(--fd-node-blue)': '#3b82f6',
374
+ 'var(--fd-node-amber)': '#f59e0b',
375
+ 'var(--fd-node-indigo)': '#6366f1',
376
+ 'var(--fd-node-teal)': '#14b8a6',
377
+ 'var(--fd-node-purple)': '#8b5cf6',
378
+ 'var(--fd-node-orange)': '#f97316',
379
+ 'var(--fd-node-slate)': '#64748b',
380
+ 'var(--fd-node-red)': '#ef4444',
381
+ 'var(--fd-node-pink)': '#ec4899',
382
+ 'var(--fd-node-lime)': '#84cc16'
385
383
  };
386
384
  /**
387
385
  * Resolve a CSS variable token to its hex value
@@ -440,7 +438,7 @@ export function getPortBorderColor(dataType) {
440
438
  export function rgbToHex(r, g, b) {
441
439
  const toHex = (value) => {
442
440
  const clamped = Math.max(0, Math.min(255, Math.round(value)));
443
- return clamped.toString(16).padStart(2, "0");
441
+ return clamped.toString(16).padStart(2, '0');
444
442
  };
445
443
  return `#${toHex(r)}${toHex(g)}${toHex(b)}`;
446
444
  }
@@ -453,7 +451,7 @@ export function rgbToHex(r, g, b) {
453
451
  export function getLightTint(hex) {
454
452
  const rgb = hexToRgb(hex);
455
453
  if (!rgb) {
456
- return "#fffbeb"; // Fallback to amber-50
454
+ return '#fffbeb'; // Fallback to amber-50
457
455
  }
458
456
  // Mix with white at 95% to create a very light tint
459
457
  const mixRatio = 0.95;
@@ -472,7 +470,7 @@ export function getLightTint(hex) {
472
470
  export function getDarkTint(hex, opacity = 0.15) {
473
471
  const rgb = hexToRgb(hex);
474
472
  if (!rgb) {
475
- return "#2a2518"; // Fallback dark amber tint
473
+ return '#2a2518'; // Fallback dark amber tint
476
474
  }
477
475
  // Mix with dark background (#1a1a1e) to create a subtle dark tint
478
476
  const darkBg = { r: 26, g: 26, b: 30 };
@@ -490,7 +488,7 @@ export function getDarkTint(hex, opacity = 0.15) {
490
488
  export function getBorderTint(hex) {
491
489
  const rgb = hexToRgb(hex);
492
490
  if (!rgb) {
493
- return "#fcd34d"; // Fallback to amber-300
491
+ return '#fcd34d'; // Fallback to amber-300
494
492
  }
495
493
  // Mix with white at 60% to create a medium-light tint
496
494
  const mixRatio = 0.6;
@@ -508,7 +506,7 @@ export function getBorderTint(hex) {
508
506
  export function getDarkBorderTint(hex) {
509
507
  const rgb = hexToRgb(hex);
510
508
  if (!rgb) {
511
- return "#5c4a1e"; // Fallback dark amber border
509
+ return '#5c4a1e'; // Fallback dark amber border
512
510
  }
513
511
  // Mix with dark background to create a muted but visible border
514
512
  const darkBg = { r: 26, g: 26, b: 30 };
@@ -530,7 +528,7 @@ export function getColorVariants(baseColor) {
530
528
  light: getLightTint(baseColor),
531
529
  border: getBorderTint(baseColor),
532
530
  darkLight: getDarkTint(baseColor),
533
- darkBorder: getDarkBorderTint(baseColor),
531
+ darkBorder: getDarkBorderTint(baseColor)
534
532
  };
535
533
  }
536
534
  /**
@@ -545,6 +543,6 @@ export function getThemeAwareColorVariants(baseColor, isDarkMode) {
545
543
  return {
546
544
  base: variants.base,
547
545
  background: isDarkMode ? variants.darkLight : variants.light,
548
- border: isDarkMode ? variants.darkBorder : variants.border,
546
+ border: isDarkMode ? variants.darkBorder : variants.border
549
547
  };
550
548
  }
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Configuration utilities for FlowDrop Editor
3
3
  */
4
- import type { WorkflowEditorConfig, EditorFeatures, UIConfig, APIConfig, ExecutionConfig, StorageConfig } from "../types/config.js";
5
- import type { EndpointConfig } from "../config/endpoints.js";
4
+ import type { WorkflowEditorConfig, EditorFeatures, UIConfig, APIConfig, ExecutionConfig, StorageConfig } from '../types/config.js';
5
+ import type { EndpointConfig } from '../config/endpoints.js';
6
6
  /**
7
7
  * Create default editor features configuration
8
8
  */
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Configuration utilities for FlowDrop Editor
3
3
  */
4
- import { createEndpointConfig } from "../config/endpoints.js";
4
+ import { createEndpointConfig } from '../config/endpoints.js';
5
5
  /**
6
6
  * Create default editor features configuration
7
7
  */
@@ -18,7 +18,7 @@ export function createDefaultFeatures() {
18
18
  nodeValidation: true,
19
19
  collaboration: false,
20
20
  templates: false,
21
- importExport: false,
21
+ importExport: false
22
22
  };
23
23
  }
24
24
  /**
@@ -37,16 +37,16 @@ export function createDefaultUIConfig() {
37
37
  zoom: {
38
38
  min: 0.1,
39
39
  max: 2,
40
- default: 1,
40
+ default: 1
41
41
  },
42
42
  colors: {
43
- primary: "#3b82f6",
44
- secondary: "#64748b",
45
- accent: "#f59e0b",
46
- background: "#ffffff",
47
- text: "#1f2937",
43
+ primary: '#3b82f6',
44
+ secondary: '#64748b',
45
+ accent: '#f59e0b',
46
+ background: '#ffffff',
47
+ text: '#1f2937'
48
48
  },
49
- cssClasses: {},
49
+ cssClasses: {}
50
50
  };
51
51
  }
52
52
  /**
@@ -54,19 +54,19 @@ export function createDefaultUIConfig() {
54
54
  */
55
55
  export function createDefaultAPIConfig() {
56
56
  return {
57
- endpoints: createEndpointConfig("/api/flowdrop"),
57
+ endpoints: createEndpointConfig('/api/flowdrop'),
58
58
  timeout: 30000,
59
59
  retry: {
60
60
  enabled: true,
61
61
  maxAttempts: 3,
62
- delay: 1000,
62
+ delay: 1000
63
63
  },
64
64
  auth: {
65
- type: "none",
65
+ type: 'none'
66
66
  },
67
67
  headers: {
68
- "Content-Type": "application/json",
69
- },
68
+ 'Content-Type': 'application/json'
69
+ }
70
70
  };
71
71
  }
72
72
  /**
@@ -81,8 +81,8 @@ export function createDefaultExecutionConfig() {
81
81
  autoSaveState: true,
82
82
  caching: {
83
83
  enabled: true,
84
- ttl: 3600,
85
- },
84
+ ttl: 3600
85
+ }
86
86
  };
87
87
  }
88
88
  /**
@@ -90,10 +90,10 @@ export function createDefaultExecutionConfig() {
90
90
  */
91
91
  export function createDefaultStorageConfig() {
92
92
  return {
93
- type: "api",
93
+ type: 'api',
94
94
  autoSaveInterval: 5000,
95
95
  maxUndoSteps: 50,
96
- keyPrefix: "flowdrop_",
96
+ keyPrefix: 'flowdrop_'
97
97
  };
98
98
  }
99
99
  /**
@@ -101,20 +101,20 @@ export function createDefaultStorageConfig() {
101
101
  */
102
102
  export function createDefaultConfig(endpointConfig) {
103
103
  return {
104
- theme: "auto",
104
+ theme: 'auto',
105
105
  features: createDefaultFeatures(),
106
106
  ui: createDefaultUIConfig(),
107
107
  api: {
108
108
  ...createDefaultAPIConfig(),
109
- endpoints: endpointConfig || createEndpointConfig("/api/flowdrop"),
109
+ endpoints: endpointConfig || createEndpointConfig('/api/flowdrop')
110
110
  },
111
111
  ports: {
112
112
  dataTypes: [],
113
113
  compatibilityRules: [],
114
- defaultDataType: "mixed",
114
+ defaultDataType: 'mixed'
115
115
  },
116
116
  execution: createDefaultExecutionConfig(),
117
- storage: createDefaultStorageConfig(),
117
+ storage: createDefaultStorageConfig()
118
118
  };
119
119
  }
120
120
  /**
@@ -126,56 +126,56 @@ export function mergeConfig(userConfig, defaultConfig) {
126
126
  ...userConfig,
127
127
  features: {
128
128
  ...defaultConfig.features,
129
- ...userConfig.features,
129
+ ...userConfig.features
130
130
  },
131
131
  ui: {
132
132
  ...defaultConfig.ui,
133
133
  ...userConfig.ui,
134
134
  zoom: {
135
135
  ...defaultConfig.ui.zoom,
136
- ...userConfig.ui?.zoom,
136
+ ...userConfig.ui?.zoom
137
137
  },
138
138
  colors: {
139
139
  ...defaultConfig.ui.colors,
140
- ...userConfig.ui?.colors,
140
+ ...userConfig.ui?.colors
141
141
  },
142
142
  cssClasses: {
143
143
  ...defaultConfig.ui.cssClasses,
144
- ...userConfig.ui?.cssClasses,
145
- },
144
+ ...userConfig.ui?.cssClasses
145
+ }
146
146
  },
147
147
  api: {
148
148
  ...defaultConfig.api,
149
149
  ...userConfig.api,
150
150
  retry: {
151
151
  ...defaultConfig.api.retry,
152
- ...userConfig.api?.retry,
152
+ ...userConfig.api?.retry
153
153
  },
154
154
  auth: {
155
155
  ...defaultConfig.api.auth,
156
- ...userConfig.api?.auth,
156
+ ...userConfig.api?.auth
157
157
  },
158
158
  headers: {
159
159
  ...defaultConfig.api.headers,
160
- ...userConfig.api?.headers,
160
+ ...userConfig.api?.headers
161
161
  },
162
162
  endpoints: {
163
163
  ...defaultConfig.api.endpoints,
164
- ...userConfig.api?.endpoints,
165
- },
164
+ ...userConfig.api?.endpoints
165
+ }
166
166
  },
167
167
  execution: {
168
168
  ...defaultConfig.execution,
169
169
  ...userConfig.execution,
170
170
  caching: {
171
171
  ...defaultConfig.execution.caching,
172
- ...userConfig.execution?.caching,
173
- },
172
+ ...userConfig.execution?.caching
173
+ }
174
174
  },
175
175
  storage: {
176
176
  ...defaultConfig.storage,
177
- ...userConfig.storage,
178
- },
177
+ ...userConfig.storage
178
+ }
179
179
  };
180
180
  }
181
181
  /**
@@ -184,43 +184,43 @@ export function mergeConfig(userConfig, defaultConfig) {
184
184
  export function validateConfig(config) {
185
185
  const errors = [];
186
186
  if (!config.features) {
187
- errors.push("features configuration is required");
187
+ errors.push('features configuration is required');
188
188
  }
189
189
  if (!config.ui) {
190
- errors.push("ui configuration is required");
190
+ errors.push('ui configuration is required');
191
191
  }
192
192
  if (!config.api) {
193
- errors.push("api configuration is required");
193
+ errors.push('api configuration is required');
194
194
  }
195
195
  if (!config.execution) {
196
- errors.push("execution configuration is required");
196
+ errors.push('execution configuration is required');
197
197
  }
198
198
  if (!config.storage) {
199
- errors.push("storage configuration is required");
199
+ errors.push('storage configuration is required');
200
200
  }
201
201
  // Validate API configuration
202
202
  if (config.api.timeout <= 0) {
203
- errors.push("API timeout must be greater than 0");
203
+ errors.push('API timeout must be greater than 0');
204
204
  }
205
205
  if (config.api.retry.maxAttempts < 0) {
206
- errors.push("Retry max attempts must be non-negative");
206
+ errors.push('Retry max attempts must be non-negative');
207
207
  }
208
208
  // Validate execution configuration
209
209
  if (config.execution.timeout <= 0) {
210
- errors.push("Execution timeout must be greater than 0");
210
+ errors.push('Execution timeout must be greater than 0');
211
211
  }
212
212
  if (config.execution.maxConcurrent <= 0) {
213
- errors.push("Max concurrent executions must be greater than 0");
213
+ errors.push('Max concurrent executions must be greater than 0');
214
214
  }
215
215
  // Validate UI configuration
216
216
  if (config.ui.gridSize <= 0) {
217
- errors.push("Grid size must be greater than 0");
217
+ errors.push('Grid size must be greater than 0');
218
218
  }
219
219
  if (config.ui.nodeSpacing <= 0) {
220
- errors.push("Node spacing must be greater than 0");
220
+ errors.push('Node spacing must be greater than 0');
221
221
  }
222
222
  if (config.ui.zoom.min >= config.ui.zoom.max) {
223
- errors.push("Zoom min must be less than zoom max");
223
+ errors.push('Zoom min must be less than zoom max');
224
224
  }
225
225
  return errors;
226
226
  }
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Connection validation utilities for FlowDrop
3
3
  */
4
- import type { NodeMetadata, NodePort, NodeDataType, WorkflowNode, WorkflowEdge, PortConfig, PortDataTypeConfig } from "../types/index.js";
4
+ import type { NodeMetadata, NodePort, NodeDataType, WorkflowNode, WorkflowEdge, PortConfig, PortDataTypeConfig } from '../types/index.js';
5
5
  /**
6
6
  * Determines if an edge is a loopback edge.
7
7
  * Loopback edges target the special `loop_back` input port on ForEach nodes.
@@ -88,7 +88,7 @@ export declare function getConnectionSuggestions(nodeId: string, nodes: Workflow
88
88
  nodeName: string;
89
89
  portId: string;
90
90
  portName: string;
91
- portType: "input" | "output";
91
+ portType: 'input' | 'output';
92
92
  dataType: NodeDataType;
93
93
  compatible: boolean;
94
94
  }>;