@flowdrop/flowdrop 1.0.1 → 1.1.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 (386) hide show
  1. package/README.md +50 -50
  2. package/dist/adapters/WorkflowAdapter.d.ts +1 -1
  3. package/dist/adapters/WorkflowAdapter.js +25 -25
  4. package/dist/adapters/agentspec/AgentSpecAdapter.d.ts +2 -2
  5. package/dist/adapters/agentspec/AgentSpecAdapter.js +133 -122
  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 +2 -2
  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 +22 -20
  18. package/dist/api/enhanced-client.d.ts +3 -3
  19. package/dist/api/enhanced-client.js +73 -72
  20. package/dist/components/App.svelte +1081 -961
  21. package/dist/components/App.svelte.d.ts +9 -6
  22. package/dist/components/CanvasBanner.stories.svelte +23 -20
  23. package/dist/components/CanvasBanner.stories.svelte.d.ts +1 -1
  24. package/dist/components/CanvasBanner.svelte +46 -46
  25. package/dist/components/ConfigForm.svelte +1164 -1065
  26. package/dist/components/ConfigForm.svelte.d.ts +2 -2
  27. package/dist/components/ConfigModal.svelte +180 -180
  28. package/dist/components/ConfigModal.svelte.d.ts +1 -1
  29. package/dist/components/ConfigPanel.stories.svelte +35 -35
  30. package/dist/components/ConfigPanel.stories.svelte.d.ts +1 -1
  31. package/dist/components/ConfigPanel.svelte +178 -167
  32. package/dist/components/ConfigPanel.svelte.d.ts +1 -1
  33. package/dist/components/ConnectionLine.svelte +25 -25
  34. package/dist/components/EdgeRefresher.svelte +26 -26
  35. package/dist/components/FlowDropEdge.stories.svelte +179 -143
  36. package/dist/components/FlowDropEdge.svelte +147 -147
  37. package/dist/components/FlowDropEdge.svelte.d.ts +1 -1
  38. package/dist/components/FlowDropZone.svelte +63 -60
  39. package/dist/components/FlowDropZone.svelte.d.ts +1 -1
  40. package/dist/components/LoadingSpinner.stories.svelte +19 -19
  41. package/dist/components/LoadingSpinner.stories.svelte.d.ts +1 -1
  42. package/dist/components/LoadingSpinner.svelte +21 -21
  43. package/dist/components/LoadingSpinner.svelte.d.ts +1 -1
  44. package/dist/components/Logo.stories.svelte +13 -13
  45. package/dist/components/Logo.stories.svelte.d.ts +1 -1
  46. package/dist/components/Logo.svelte +101 -95
  47. package/dist/components/LogsSidebar.svelte +553 -546
  48. package/dist/components/LogsSidebar.svelte.d.ts +1 -1
  49. package/dist/components/MarkdownDisplay.stories.svelte +29 -23
  50. package/dist/components/MarkdownDisplay.stories.svelte.d.ts +1 -1
  51. package/dist/components/MarkdownDisplay.svelte +16 -14
  52. package/dist/components/Navbar.stories.svelte +43 -38
  53. package/dist/components/Navbar.stories.svelte.d.ts +1 -1
  54. package/dist/components/Navbar.svelte +760 -706
  55. package/dist/components/Navbar.svelte.d.ts +1 -1
  56. package/dist/components/NodeSidebar.svelte +900 -746
  57. package/dist/components/NodeSidebar.svelte.d.ts +3 -1
  58. package/dist/components/NodeStatusOverlay.stories.svelte +82 -70
  59. package/dist/components/NodeStatusOverlay.stories.svelte.d.ts +1 -1
  60. package/dist/components/NodeStatusOverlay.svelte +295 -280
  61. package/dist/components/NodeStatusOverlay.svelte.d.ts +3 -3
  62. package/dist/components/PipelineStatus.svelte +326 -300
  63. package/dist/components/PipelineStatus.svelte.d.ts +4 -4
  64. package/dist/components/PortCoordinateTracker.svelte +49 -47
  65. package/dist/components/PortCoordinateTracker.svelte.d.ts +1 -1
  66. package/dist/components/ReadOnlyDetails.svelte +156 -156
  67. package/dist/components/SchemaForm.stories.svelte +106 -98
  68. package/dist/components/SchemaForm.stories.svelte.d.ts +1 -1
  69. package/dist/components/SchemaForm.svelte +490 -463
  70. package/dist/components/SchemaForm.svelte.d.ts +2 -2
  71. package/dist/components/SettingsModal.svelte +226 -223
  72. package/dist/components/SettingsModal.svelte.d.ts +1 -1
  73. package/dist/components/SettingsPanel.svelte +637 -601
  74. package/dist/components/SettingsPanel.svelte.d.ts +1 -1
  75. package/dist/components/StatusIcon.stories.svelte +62 -49
  76. package/dist/components/StatusIcon.stories.svelte.d.ts +1 -1
  77. package/dist/components/StatusIcon.svelte +87 -87
  78. package/dist/components/StatusIcon.svelte.d.ts +2 -2
  79. package/dist/components/StatusLabel.stories.svelte +12 -12
  80. package/dist/components/StatusLabel.stories.svelte.d.ts +1 -1
  81. package/dist/components/StatusLabel.svelte +19 -19
  82. package/dist/components/ThemeToggle.stories.svelte +16 -16
  83. package/dist/components/ThemeToggle.stories.svelte.d.ts +1 -1
  84. package/dist/components/ThemeToggle.svelte +180 -169
  85. package/dist/components/ThemeToggle.svelte.d.ts +1 -1
  86. package/dist/components/UniversalNode.svelte +150 -138
  87. package/dist/components/UniversalNode.svelte.d.ts +3 -3
  88. package/dist/components/WorkflowEditor.svelte +1069 -1014
  89. package/dist/components/WorkflowEditor.svelte.d.ts +4 -4
  90. package/dist/components/form/FormArray.svelte +1034 -973
  91. package/dist/components/form/FormArray.svelte.d.ts +1 -1
  92. package/dist/components/form/FormAutocomplete.svelte +1021 -978
  93. package/dist/components/form/FormAutocomplete.svelte.d.ts +1 -1
  94. package/dist/components/form/FormCheckboxGroup.stories.svelte +23 -20
  95. package/dist/components/form/FormCheckboxGroup.stories.svelte.d.ts +1 -1
  96. package/dist/components/form/FormCheckboxGroup.svelte +136 -136
  97. package/dist/components/form/FormCodeEditor.svelte +452 -434
  98. package/dist/components/form/FormField.svelte +366 -355
  99. package/dist/components/form/FormField.svelte.d.ts +2 -2
  100. package/dist/components/form/FormFieldLight.svelte +400 -384
  101. package/dist/components/form/FormFieldLight.svelte.d.ts +1 -1
  102. package/dist/components/form/FormFieldWrapper.stories.svelte +42 -42
  103. package/dist/components/form/FormFieldWrapper.stories.svelte.d.ts +1 -1
  104. package/dist/components/form/FormFieldWrapper.svelte +100 -93
  105. package/dist/components/form/FormFieldWrapper.svelte.d.ts +1 -1
  106. package/dist/components/form/FormFieldset.svelte +108 -108
  107. package/dist/components/form/FormFieldset.svelte.d.ts +2 -2
  108. package/dist/components/form/FormMarkdownEditor.svelte +758 -725
  109. package/dist/components/form/FormNumberField.stories.svelte +25 -25
  110. package/dist/components/form/FormNumberField.stories.svelte.d.ts +1 -1
  111. package/dist/components/form/FormNumberField.svelte +88 -88
  112. package/dist/components/form/FormRangeField.stories.svelte +20 -20
  113. package/dist/components/form/FormRangeField.stories.svelte.d.ts +1 -1
  114. package/dist/components/form/FormRangeField.svelte +234 -226
  115. package/dist/components/form/FormSelect.stories.svelte +38 -38
  116. package/dist/components/form/FormSelect.stories.svelte.d.ts +1 -1
  117. package/dist/components/form/FormSelect.svelte +101 -101
  118. package/dist/components/form/FormSelect.svelte.d.ts +1 -1
  119. package/dist/components/form/FormTemplateEditor.svelte +847 -798
  120. package/dist/components/form/FormTemplateEditor.svelte.d.ts +1 -1
  121. package/dist/components/form/FormTextField.stories.svelte +29 -23
  122. package/dist/components/form/FormTextField.stories.svelte.d.ts +1 -1
  123. package/dist/components/form/FormTextField.svelte +68 -68
  124. package/dist/components/form/FormTextarea.stories.svelte +28 -25
  125. package/dist/components/form/FormTextarea.stories.svelte.d.ts +1 -1
  126. package/dist/components/form/FormTextarea.svelte +74 -74
  127. package/dist/components/form/FormToggle.stories.svelte +23 -20
  128. package/dist/components/form/FormToggle.stories.svelte.d.ts +1 -1
  129. package/dist/components/form/FormToggle.svelte +98 -98
  130. package/dist/components/form/FormUISchemaRenderer.svelte +120 -113
  131. package/dist/components/form/FormUISchemaRenderer.svelte.d.ts +3 -3
  132. package/dist/components/form/index.d.ts +19 -19
  133. package/dist/components/form/index.js +18 -18
  134. package/dist/components/form/templateAutocomplete.d.ts +2 -2
  135. package/dist/components/form/templateAutocomplete.js +64 -55
  136. package/dist/components/form/types.d.ts +6 -6
  137. package/dist/components/form/types.js +9 -4
  138. package/dist/components/icons/AlertCircleIcon.svelte +11 -0
  139. package/dist/components/icons/AlertCircleIcon.svelte.d.ts +26 -0
  140. package/dist/components/icons/CogIcon.svelte +11 -0
  141. package/dist/components/icons/CogIcon.svelte.d.ts +26 -0
  142. package/dist/components/interrupt/ChoicePrompt.stories.svelte +54 -38
  143. package/dist/components/interrupt/ChoicePrompt.stories.svelte.d.ts +1 -1
  144. package/dist/components/interrupt/ChoicePrompt.svelte +407 -383
  145. package/dist/components/interrupt/ChoicePrompt.svelte.d.ts +1 -1
  146. package/dist/components/interrupt/ConfirmationPrompt.stories.svelte +48 -48
  147. package/dist/components/interrupt/ConfirmationPrompt.stories.svelte.d.ts +1 -1
  148. package/dist/components/interrupt/ConfirmationPrompt.svelte +280 -274
  149. package/dist/components/interrupt/ConfirmationPrompt.svelte.d.ts +1 -1
  150. package/dist/components/interrupt/FormPrompt.svelte +223 -218
  151. package/dist/components/interrupt/FormPrompt.svelte.d.ts +1 -1
  152. package/dist/components/interrupt/InterruptBubble.svelte +617 -583
  153. package/dist/components/interrupt/InterruptBubble.svelte.d.ts +2 -2
  154. package/dist/components/interrupt/ReviewPrompt.stories.svelte +66 -56
  155. package/dist/components/interrupt/ReviewPrompt.stories.svelte.d.ts +1 -1
  156. package/dist/components/interrupt/ReviewPrompt.svelte +861 -841
  157. package/dist/components/interrupt/ReviewPrompt.svelte.d.ts +1 -1
  158. package/dist/components/interrupt/TextInputPrompt.stories.svelte +38 -33
  159. package/dist/components/interrupt/TextInputPrompt.stories.svelte.d.ts +1 -1
  160. package/dist/components/interrupt/TextInputPrompt.svelte +333 -328
  161. package/dist/components/interrupt/TextInputPrompt.svelte.d.ts +1 -1
  162. package/dist/components/interrupt/index.d.ts +5 -5
  163. package/dist/components/interrupt/index.js +5 -5
  164. package/dist/components/layouts/MainLayout.svelte +724 -691
  165. package/dist/components/layouts/MainLayout.svelte.d.ts +6 -6
  166. package/dist/components/nodes/GatewayNode.stories.svelte +100 -99
  167. package/dist/components/nodes/GatewayNode.svelte +605 -571
  168. package/dist/components/nodes/GatewayNode.svelte.d.ts +3 -3
  169. package/dist/components/nodes/IdeaNode.stories.svelte +44 -43
  170. package/dist/components/nodes/IdeaNode.svelte +451 -437
  171. package/dist/components/nodes/IdeaNode.svelte.d.ts +1 -1
  172. package/dist/components/nodes/NotesNode.stories.svelte +65 -64
  173. package/dist/components/nodes/NotesNode.svelte +380 -369
  174. package/dist/components/nodes/NotesNode.svelte.d.ts +1 -1
  175. package/dist/components/nodes/SimpleNode.stories.svelte +145 -144
  176. package/dist/components/nodes/SimpleNode.svelte +486 -424
  177. package/dist/components/nodes/SimpleNode.svelte.d.ts +1 -1
  178. package/dist/components/nodes/SquareNode.stories.svelte +73 -73
  179. package/dist/components/nodes/SquareNode.svelte +439 -380
  180. package/dist/components/nodes/SquareNode.svelte.d.ts +1 -1
  181. package/dist/components/nodes/TerminalNode.stories.svelte +13 -13
  182. package/dist/components/nodes/TerminalNode.svelte +709 -670
  183. package/dist/components/nodes/TerminalNode.svelte.d.ts +1 -1
  184. package/dist/components/nodes/ToolNode.stories.svelte +181 -180
  185. package/dist/components/nodes/ToolNode.svelte +505 -447
  186. package/dist/components/nodes/ToolNode.svelte.d.ts +1 -1
  187. package/dist/components/nodes/WorkflowNode.stories.svelte +70 -46
  188. package/dist/components/nodes/WorkflowNode.svelte +621 -551
  189. package/dist/components/nodes/WorkflowNode.svelte.d.ts +3 -3
  190. package/dist/components/playground/ChatPanel.svelte +945 -889
  191. package/dist/components/playground/ExecutionLogs.svelte +495 -472
  192. package/dist/components/playground/InputCollector.svelte +449 -428
  193. package/dist/components/playground/MessageBubble.stories.svelte +47 -47
  194. package/dist/components/playground/MessageBubble.stories.svelte.d.ts +1 -1
  195. package/dist/components/playground/MessageBubble.svelte +626 -610
  196. package/dist/components/playground/MessageBubble.svelte.d.ts +1 -1
  197. package/dist/components/playground/Playground.svelte +1088 -1057
  198. package/dist/components/playground/Playground.svelte.d.ts +3 -3
  199. package/dist/components/playground/PlaygroundModal.svelte +208 -204
  200. package/dist/components/playground/PlaygroundModal.svelte.d.ts +3 -3
  201. package/dist/components/playground/SessionManager.svelte +527 -521
  202. package/dist/components/playground/SessionManager.svelte.d.ts +1 -1
  203. package/dist/config/agentSpecEndpoints.d.ts +1 -1
  204. package/dist/config/agentSpecEndpoints.js +20 -20
  205. package/dist/config/constants.js +2 -2
  206. package/dist/config/defaultCategories.d.ts +1 -1
  207. package/dist/config/defaultCategories.js +86 -86
  208. package/dist/config/defaultPortConfig.d.ts +1 -1
  209. package/dist/config/defaultPortConfig.js +144 -144
  210. package/dist/config/endpoints.d.ts +4 -4
  211. package/dist/config/endpoints.js +65 -65
  212. package/dist/config/runtimeConfig.d.ts +2 -2
  213. package/dist/config/runtimeConfig.js +8 -8
  214. package/dist/core/index.d.ts +63 -59
  215. package/dist/core/index.js +35 -33
  216. package/dist/display/index.d.ts +2 -2
  217. package/dist/display/index.js +2 -2
  218. package/dist/editor/index.d.ts +62 -62
  219. package/dist/editor/index.js +53 -53
  220. package/dist/form/code.d.ts +5 -5
  221. package/dist/form/code.js +14 -14
  222. package/dist/form/fieldRegistry.d.ts +3 -3
  223. package/dist/form/fieldRegistry.js +11 -9
  224. package/dist/form/full.d.ts +8 -8
  225. package/dist/form/full.js +9 -9
  226. package/dist/form/index.d.ts +18 -18
  227. package/dist/form/index.js +16 -16
  228. package/dist/form/markdown.d.ts +4 -4
  229. package/dist/form/markdown.js +8 -8
  230. package/dist/helpers/proximityConnect.d.ts +3 -3
  231. package/dist/helpers/proximityConnect.js +34 -32
  232. package/dist/helpers/workflowEditorHelper.d.ts +5 -5
  233. package/dist/helpers/workflowEditorHelper.js +108 -96
  234. package/dist/index.d.ts +6 -6
  235. package/dist/index.js +6 -6
  236. package/dist/mocks/app-environment.js +2 -2
  237. package/dist/mocks/app-forms.js +9 -9
  238. package/dist/mocks/app-navigation.js +11 -11
  239. package/dist/mocks/app-stores.js +8 -8
  240. package/dist/playground/index.d.ts +19 -19
  241. package/dist/playground/index.js +16 -16
  242. package/dist/playground/mount.d.ts +3 -3
  243. package/dist/playground/mount.js +24 -24
  244. package/dist/registry/builtinFormats.js +13 -13
  245. package/dist/registry/builtinNodes.d.ts +2 -2
  246. package/dist/registry/builtinNodes.js +77 -77
  247. package/dist/registry/index.d.ts +4 -4
  248. package/dist/registry/index.js +4 -4
  249. package/dist/registry/nodeComponentRegistry.d.ts +8 -8
  250. package/dist/registry/nodeComponentRegistry.js +11 -9
  251. package/dist/registry/plugin.d.ts +2 -2
  252. package/dist/registry/plugin.js +11 -11
  253. package/dist/registry/workflowFormatRegistry.d.ts +3 -3
  254. package/dist/registry/workflowFormatRegistry.js +2 -2
  255. package/dist/schema/index.d.ts +1 -1
  256. package/dist/schema/index.js +2 -2
  257. package/dist/schemas/v1/workflow.schema.json +22 -107
  258. package/dist/services/agentSpecExecutionService.d.ts +3 -3
  259. package/dist/services/agentSpecExecutionService.js +59 -55
  260. package/dist/services/api.d.ts +2 -2
  261. package/dist/services/api.js +37 -37
  262. package/dist/services/apiVariableService.d.ts +1 -1
  263. package/dist/services/apiVariableService.js +41 -34
  264. package/dist/services/autoSaveService.js +8 -8
  265. package/dist/services/categoriesApi.d.ts +2 -2
  266. package/dist/services/categoriesApi.js +8 -8
  267. package/dist/services/draftStorage.d.ts +1 -1
  268. package/dist/services/draftStorage.js +11 -11
  269. package/dist/services/dynamicSchemaService.d.ts +1 -1
  270. package/dist/services/dynamicSchemaService.js +41 -39
  271. package/dist/services/globalSave.d.ts +2 -2
  272. package/dist/services/globalSave.js +41 -38
  273. package/dist/services/historyService.d.ts +1 -1
  274. package/dist/services/historyService.js +8 -8
  275. package/dist/services/interruptService.d.ts +1 -1
  276. package/dist/services/interruptService.js +35 -29
  277. package/dist/services/nodeExecutionService.d.ts +1 -1
  278. package/dist/services/nodeExecutionService.js +45 -44
  279. package/dist/services/playgroundService.d.ts +1 -1
  280. package/dist/services/playgroundService.js +29 -29
  281. package/dist/services/portConfigApi.d.ts +2 -2
  282. package/dist/services/portConfigApi.js +8 -8
  283. package/dist/services/settingsService.d.ts +2 -2
  284. package/dist/services/settingsService.js +25 -19
  285. package/dist/services/toastService.d.ts +4 -4
  286. package/dist/services/toastService.js +33 -33
  287. package/dist/services/variableService.d.ts +1 -1
  288. package/dist/services/variableService.js +36 -36
  289. package/dist/services/workflowStorage.d.ts +2 -2
  290. package/dist/services/workflowStorage.js +13 -13
  291. package/dist/settings/index.d.ts +7 -7
  292. package/dist/settings/index.js +6 -6
  293. package/dist/skins/default.d.ts +2 -0
  294. package/dist/skins/default.js +1 -0
  295. package/dist/skins/index.d.ts +13 -0
  296. package/dist/skins/index.js +30 -0
  297. package/dist/skins/slate.d.ts +2 -0
  298. package/dist/skins/slate.js +78 -0
  299. package/dist/stores/categoriesStore.svelte.d.ts +1 -1
  300. package/dist/stores/categoriesStore.svelte.js +5 -5
  301. package/dist/stores/editorStateMachine.svelte.d.ts +2 -2
  302. package/dist/stores/editorStateMachine.svelte.js +65 -33
  303. package/dist/stores/historyStore.svelte.d.ts +4 -4
  304. package/dist/stores/historyStore.svelte.js +4 -4
  305. package/dist/stores/interruptStore.svelte.d.ts +3 -3
  306. package/dist/stores/interruptStore.svelte.js +21 -21
  307. package/dist/stores/playgroundStore.svelte.d.ts +2 -2
  308. package/dist/stores/playgroundStore.svelte.js +25 -18
  309. package/dist/stores/portCoordinateStore.svelte.d.ts +2 -2
  310. package/dist/stores/portCoordinateStore.svelte.js +15 -8
  311. package/dist/stores/settingsStore.svelte.d.ts +2 -2
  312. package/dist/stores/settingsStore.svelte.js +62 -57
  313. package/dist/stores/workflowStore.svelte.d.ts +3 -3
  314. package/dist/stores/workflowStore.svelte.js +50 -47
  315. package/dist/stories/CanvasDecorator.svelte +35 -32
  316. package/dist/stories/CanvasDecorator.svelte.d.ts +2 -2
  317. package/dist/stories/EdgeDecorator.svelte +102 -99
  318. package/dist/stories/EdgeDecorator.svelte.d.ts +1 -1
  319. package/dist/stories/NodeDecorator.svelte +59 -53
  320. package/dist/stories/NodeDecorator.svelte.d.ts +1 -1
  321. package/dist/stories/utils.d.ts +2 -2
  322. package/dist/stories/utils.js +105 -67
  323. package/dist/styles/base.css +599 -595
  324. package/dist/styles/toast.css +14 -14
  325. package/dist/styles/tokens.css +409 -378
  326. package/dist/svelte-app.d.ts +9 -9
  327. package/dist/svelte-app.js +39 -39
  328. package/dist/themes/default.d.ts +2 -0
  329. package/dist/themes/default.js +9 -0
  330. package/dist/themes/index.d.ts +13 -0
  331. package/dist/themes/index.js +44 -0
  332. package/dist/themes/minimal.d.ts +2 -0
  333. package/dist/themes/minimal.js +11 -0
  334. package/dist/types/agentspec.d.ts +18 -18
  335. package/dist/types/agentspec.js +2 -2
  336. package/dist/types/auth.d.ts +1 -1
  337. package/dist/types/auth.js +6 -6
  338. package/dist/types/config.d.ts +6 -6
  339. package/dist/types/events.d.ts +2 -2
  340. package/dist/types/events.js +2 -2
  341. package/dist/types/index.d.ts +32 -32
  342. package/dist/types/index.js +6 -6
  343. package/dist/types/interrupt.d.ts +6 -6
  344. package/dist/types/interrupt.js +21 -21
  345. package/dist/types/interruptState.d.ts +12 -12
  346. package/dist/types/interruptState.js +66 -66
  347. package/dist/types/playground.d.ts +7 -7
  348. package/dist/types/playground.js +14 -14
  349. package/dist/types/settings.d.ts +5 -3
  350. package/dist/types/settings.js +25 -18
  351. package/dist/types/skin.d.ts +31 -0
  352. package/dist/types/skin.js +1 -0
  353. package/dist/types/theme.d.ts +35 -0
  354. package/dist/types/theme.js +1 -0
  355. package/dist/types/uischema.d.ts +4 -4
  356. package/dist/types/uischema.js +3 -3
  357. package/dist/utils/colors.d.ts +1 -1
  358. package/dist/utils/colors.js +97 -95
  359. package/dist/utils/config.d.ts +2 -2
  360. package/dist/utils/config.js +48 -48
  361. package/dist/utils/connections.d.ts +2 -2
  362. package/dist/utils/connections.js +15 -15
  363. package/dist/utils/errors.js +3 -3
  364. package/dist/utils/fetchWithAuth.d.ts +1 -1
  365. package/dist/utils/fetchWithAuth.js +2 -2
  366. package/dist/utils/handleIds.d.ts +2 -2
  367. package/dist/utils/handleIds.js +8 -8
  368. package/dist/utils/handlePositioning.d.ts +1 -1
  369. package/dist/utils/handlePositioning.js +2 -2
  370. package/dist/utils/icons.d.ts +1 -1
  371. package/dist/utils/icons.js +74 -74
  372. package/dist/utils/logger.d.ts +1 -1
  373. package/dist/utils/logger.js +7 -7
  374. package/dist/utils/nodeStatus.d.ts +1 -1
  375. package/dist/utils/nodeStatus.js +48 -48
  376. package/dist/utils/nodeTypes.d.ts +1 -1
  377. package/dist/utils/nodeTypes.js +21 -20
  378. package/dist/utils/nodeWrapper.d.ts +7 -7
  379. package/dist/utils/nodeWrapper.js +21 -19
  380. package/dist/utils/performanceUtils.d.ts +1 -1
  381. package/dist/utils/performanceUtils.js +2 -1
  382. package/dist/utils/sanitize.js +1 -1
  383. package/dist/utils/uischema.d.ts +2 -2
  384. package/dist/utils/uischema.js +8 -8
  385. package/dist/utils/validation.js +20 -8
  386. package/package.json +1 -1
@@ -35,17 +35,17 @@
35
35
  * Type guard: checks if element is a Control
36
36
  */
37
37
  export function isUISchemaControl(element) {
38
- return element.type === 'Control';
38
+ return element.type === "Control";
39
39
  }
40
40
  /**
41
41
  * Type guard: checks if element is a VerticalLayout
42
42
  */
43
43
  export function isUISchemaVerticalLayout(element) {
44
- return element.type === 'VerticalLayout';
44
+ return element.type === "VerticalLayout";
45
45
  }
46
46
  /**
47
47
  * Type guard: checks if element is a Group
48
48
  */
49
49
  export function isUISchemaGroup(element) {
50
- return element.type === 'Group';
50
+ return element.type === "Group";
51
51
  }
@@ -3,7 +3,7 @@
3
3
  * Ensures consistent category colors across sidebar and canvas
4
4
  * Uses BEM syntax for CSS classes
5
5
  */
6
- import type { NodeCategory, PortDataTypeConfig } from '../types/index.js';
6
+ import type { NodeCategory, PortDataTypeConfig } from "../types/index.js";
7
7
  /**
8
8
  * Category color mapping to design tokens (CSS variables)
9
9
  * Uses --fd-node-* tokens from tokens.css
@@ -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,7 +336,9 @@ 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 ? srgb / 12.92 : Math.pow((srgb + 0.055) / 1.055, 2.4);
339
+ return srgb <= 0.03928
340
+ ? srgb / 12.92
341
+ : Math.pow((srgb + 0.055) / 1.055, 2.4);
340
342
  };
341
343
  return 0.2126 * toLinear(r) + 0.7152 * toLinear(g) + 0.0722 * toLinear(b);
342
344
  }
@@ -361,25 +363,25 @@ export function isLightColor(hex) {
361
363
  * @returns CSS color value for text that provides good contrast
362
364
  */
363
365
  export function getContrastTextColor(backgroundColor) {
364
- return isLightColor(backgroundColor) ? '#18181b' : '#ffffff';
366
+ return isLightColor(backgroundColor) ? "#18181b" : "#ffffff";
365
367
  }
366
368
  /**
367
369
  * Mapping of CSS variable tokens to their resolved hex values
368
370
  * Used for contrast calculations when working with design tokens
369
371
  */
370
372
  const TOKEN_TO_HEX = {
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'
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",
383
385
  };
384
386
  /**
385
387
  * Resolve a CSS variable token to its hex value
@@ -438,7 +440,7 @@ export function getPortBorderColor(dataType) {
438
440
  export function rgbToHex(r, g, b) {
439
441
  const toHex = (value) => {
440
442
  const clamped = Math.max(0, Math.min(255, Math.round(value)));
441
- return clamped.toString(16).padStart(2, '0');
443
+ return clamped.toString(16).padStart(2, "0");
442
444
  };
443
445
  return `#${toHex(r)}${toHex(g)}${toHex(b)}`;
444
446
  }
@@ -451,7 +453,7 @@ export function rgbToHex(r, g, b) {
451
453
  export function getLightTint(hex) {
452
454
  const rgb = hexToRgb(hex);
453
455
  if (!rgb) {
454
- return '#fffbeb'; // Fallback to amber-50
456
+ return "#fffbeb"; // Fallback to amber-50
455
457
  }
456
458
  // Mix with white at 95% to create a very light tint
457
459
  const mixRatio = 0.95;
@@ -470,7 +472,7 @@ export function getLightTint(hex) {
470
472
  export function getDarkTint(hex, opacity = 0.15) {
471
473
  const rgb = hexToRgb(hex);
472
474
  if (!rgb) {
473
- return '#2a2518'; // Fallback dark amber tint
475
+ return "#2a2518"; // Fallback dark amber tint
474
476
  }
475
477
  // Mix with dark background (#1a1a1e) to create a subtle dark tint
476
478
  const darkBg = { r: 26, g: 26, b: 30 };
@@ -488,7 +490,7 @@ export function getDarkTint(hex, opacity = 0.15) {
488
490
  export function getBorderTint(hex) {
489
491
  const rgb = hexToRgb(hex);
490
492
  if (!rgb) {
491
- return '#fcd34d'; // Fallback to amber-300
493
+ return "#fcd34d"; // Fallback to amber-300
492
494
  }
493
495
  // Mix with white at 60% to create a medium-light tint
494
496
  const mixRatio = 0.6;
@@ -506,7 +508,7 @@ export function getBorderTint(hex) {
506
508
  export function getDarkBorderTint(hex) {
507
509
  const rgb = hexToRgb(hex);
508
510
  if (!rgb) {
509
- return '#5c4a1e'; // Fallback dark amber border
511
+ return "#5c4a1e"; // Fallback dark amber border
510
512
  }
511
513
  // Mix with dark background to create a muted but visible border
512
514
  const darkBg = { r: 26, g: 26, b: 30 };
@@ -528,7 +530,7 @@ export function getColorVariants(baseColor) {
528
530
  light: getLightTint(baseColor),
529
531
  border: getBorderTint(baseColor),
530
532
  darkLight: getDarkTint(baseColor),
531
- darkBorder: getDarkBorderTint(baseColor)
533
+ darkBorder: getDarkBorderTint(baseColor),
532
534
  };
533
535
  }
534
536
  /**
@@ -543,6 +545,6 @@ export function getThemeAwareColorVariants(baseColor, isDarkMode) {
543
545
  return {
544
546
  base: variants.base,
545
547
  background: isDarkMode ? variants.darkLight : variants.light,
546
- border: isDarkMode ? variants.darkBorder : variants.border
548
+ border: isDarkMode ? variants.darkBorder : variants.border,
547
549
  };
548
550
  }
@@ -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
  }>;