@flowdrop/flowdrop 1.0.1 → 1.2.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 (385) 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 +1090 -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 +52 -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 +905 -746
  57. package/dist/components/NodeSidebar.svelte.d.ts +5 -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/services/agentSpecExecutionService.d.ts +3 -3
  258. package/dist/services/agentSpecExecutionService.js +59 -55
  259. package/dist/services/api.d.ts +2 -2
  260. package/dist/services/api.js +37 -37
  261. package/dist/services/apiVariableService.d.ts +1 -1
  262. package/dist/services/apiVariableService.js +41 -34
  263. package/dist/services/autoSaveService.js +8 -8
  264. package/dist/services/categoriesApi.d.ts +2 -2
  265. package/dist/services/categoriesApi.js +8 -8
  266. package/dist/services/draftStorage.d.ts +1 -1
  267. package/dist/services/draftStorage.js +11 -11
  268. package/dist/services/dynamicSchemaService.d.ts +1 -1
  269. package/dist/services/dynamicSchemaService.js +41 -39
  270. package/dist/services/globalSave.d.ts +2 -2
  271. package/dist/services/globalSave.js +41 -38
  272. package/dist/services/historyService.d.ts +1 -1
  273. package/dist/services/historyService.js +8 -8
  274. package/dist/services/interruptService.d.ts +1 -1
  275. package/dist/services/interruptService.js +35 -29
  276. package/dist/services/nodeExecutionService.d.ts +1 -1
  277. package/dist/services/nodeExecutionService.js +45 -44
  278. package/dist/services/playgroundService.d.ts +1 -1
  279. package/dist/services/playgroundService.js +29 -29
  280. package/dist/services/portConfigApi.d.ts +2 -2
  281. package/dist/services/portConfigApi.js +8 -8
  282. package/dist/services/settingsService.d.ts +2 -2
  283. package/dist/services/settingsService.js +25 -19
  284. package/dist/services/toastService.d.ts +4 -4
  285. package/dist/services/toastService.js +33 -33
  286. package/dist/services/variableService.d.ts +1 -1
  287. package/dist/services/variableService.js +36 -36
  288. package/dist/services/workflowStorage.d.ts +2 -2
  289. package/dist/services/workflowStorage.js +13 -13
  290. package/dist/settings/index.d.ts +7 -7
  291. package/dist/settings/index.js +6 -6
  292. package/dist/skins/default.d.ts +2 -0
  293. package/dist/skins/default.js +1 -0
  294. package/dist/skins/index.d.ts +13 -0
  295. package/dist/skins/index.js +30 -0
  296. package/dist/skins/slate.d.ts +2 -0
  297. package/dist/skins/slate.js +78 -0
  298. package/dist/stores/categoriesStore.svelte.d.ts +1 -1
  299. package/dist/stores/categoriesStore.svelte.js +5 -5
  300. package/dist/stores/editorStateMachine.svelte.d.ts +2 -2
  301. package/dist/stores/editorStateMachine.svelte.js +65 -33
  302. package/dist/stores/historyStore.svelte.d.ts +4 -4
  303. package/dist/stores/historyStore.svelte.js +4 -4
  304. package/dist/stores/interruptStore.svelte.d.ts +3 -3
  305. package/dist/stores/interruptStore.svelte.js +21 -21
  306. package/dist/stores/playgroundStore.svelte.d.ts +2 -2
  307. package/dist/stores/playgroundStore.svelte.js +25 -18
  308. package/dist/stores/portCoordinateStore.svelte.d.ts +2 -2
  309. package/dist/stores/portCoordinateStore.svelte.js +15 -8
  310. package/dist/stores/settingsStore.svelte.d.ts +2 -2
  311. package/dist/stores/settingsStore.svelte.js +62 -57
  312. package/dist/stores/workflowStore.svelte.d.ts +3 -3
  313. package/dist/stores/workflowStore.svelte.js +50 -47
  314. package/dist/stories/CanvasDecorator.svelte +35 -32
  315. package/dist/stories/CanvasDecorator.svelte.d.ts +2 -2
  316. package/dist/stories/EdgeDecorator.svelte +102 -99
  317. package/dist/stories/EdgeDecorator.svelte.d.ts +1 -1
  318. package/dist/stories/NodeDecorator.svelte +59 -53
  319. package/dist/stories/NodeDecorator.svelte.d.ts +1 -1
  320. package/dist/stories/utils.d.ts +2 -2
  321. package/dist/stories/utils.js +105 -67
  322. package/dist/styles/base.css +599 -595
  323. package/dist/styles/toast.css +14 -14
  324. package/dist/styles/tokens.css +409 -378
  325. package/dist/svelte-app.d.ts +12 -9
  326. package/dist/svelte-app.js +40 -39
  327. package/dist/themes/default.d.ts +2 -0
  328. package/dist/themes/default.js +9 -0
  329. package/dist/themes/index.d.ts +13 -0
  330. package/dist/themes/index.js +44 -0
  331. package/dist/themes/minimal.d.ts +2 -0
  332. package/dist/themes/minimal.js +11 -0
  333. package/dist/types/agentspec.d.ts +18 -18
  334. package/dist/types/agentspec.js +2 -2
  335. package/dist/types/auth.d.ts +1 -1
  336. package/dist/types/auth.js +6 -6
  337. package/dist/types/config.d.ts +6 -6
  338. package/dist/types/events.d.ts +2 -2
  339. package/dist/types/events.js +2 -2
  340. package/dist/types/index.d.ts +32 -32
  341. package/dist/types/index.js +6 -6
  342. package/dist/types/interrupt.d.ts +6 -6
  343. package/dist/types/interrupt.js +21 -21
  344. package/dist/types/interruptState.d.ts +12 -12
  345. package/dist/types/interruptState.js +66 -66
  346. package/dist/types/playground.d.ts +7 -7
  347. package/dist/types/playground.js +14 -14
  348. package/dist/types/settings.d.ts +5 -3
  349. package/dist/types/settings.js +25 -18
  350. package/dist/types/skin.d.ts +31 -0
  351. package/dist/types/skin.js +1 -0
  352. package/dist/types/theme.d.ts +35 -0
  353. package/dist/types/theme.js +1 -0
  354. package/dist/types/uischema.d.ts +4 -4
  355. package/dist/types/uischema.js +3 -3
  356. package/dist/utils/colors.d.ts +1 -1
  357. package/dist/utils/colors.js +97 -95
  358. package/dist/utils/config.d.ts +2 -2
  359. package/dist/utils/config.js +48 -48
  360. package/dist/utils/connections.d.ts +2 -2
  361. package/dist/utils/connections.js +15 -15
  362. package/dist/utils/errors.js +3 -3
  363. package/dist/utils/fetchWithAuth.d.ts +1 -1
  364. package/dist/utils/fetchWithAuth.js +2 -2
  365. package/dist/utils/handleIds.d.ts +2 -2
  366. package/dist/utils/handleIds.js +8 -8
  367. package/dist/utils/handlePositioning.d.ts +1 -1
  368. package/dist/utils/handlePositioning.js +2 -2
  369. package/dist/utils/icons.d.ts +1 -1
  370. package/dist/utils/icons.js +74 -74
  371. package/dist/utils/logger.d.ts +1 -1
  372. package/dist/utils/logger.js +7 -7
  373. package/dist/utils/nodeStatus.d.ts +1 -1
  374. package/dist/utils/nodeStatus.js +48 -48
  375. package/dist/utils/nodeTypes.d.ts +1 -1
  376. package/dist/utils/nodeTypes.js +21 -20
  377. package/dist/utils/nodeWrapper.d.ts +7 -7
  378. package/dist/utils/nodeWrapper.js +21 -19
  379. package/dist/utils/performanceUtils.d.ts +1 -1
  380. package/dist/utils/performanceUtils.js +2 -1
  381. package/dist/utils/sanitize.js +1 -1
  382. package/dist/utils/uischema.d.ts +2 -2
  383. package/dist/utils/uischema.js +8 -8
  384. package/dist/utils/validation.js +20 -8
  385. package/package.json +1 -1
@@ -6,8 +6,8 @@
6
6
  *
7
7
  * @module stores/playgroundStore
8
8
  */
9
- import { isChatInputNode, defaultIsTerminalStatus } from '../types/playground.js';
10
- import { logger } from '../utils/logger.js';
9
+ import { isChatInputNode, defaultIsTerminalStatus, } from "../types/playground.js";
10
+ import { logger } from "../utils/logger.js";
11
11
  // =========================================================================
12
12
  // Core State
13
13
  // =========================================================================
@@ -101,7 +101,7 @@ export function getLastPollTimestamp() {
101
101
  * Get current session status
102
102
  */
103
103
  export function getSessionStatus() {
104
- return _currentSession?.status ?? 'idle';
104
+ return _currentSession?.status ?? "idle";
105
105
  }
106
106
  /**
107
107
  * Get message count
@@ -113,13 +113,13 @@ export function getMessageCount() {
113
113
  * Get chat messages (excludes log messages)
114
114
  */
115
115
  export function getChatMessages() {
116
- return _messages.filter((m) => m.role !== 'log');
116
+ return _messages.filter((m) => m.role !== "log");
117
117
  }
118
118
  /**
119
119
  * Get log messages only
120
120
  */
121
121
  export function getLogMessages() {
122
- return _messages.filter((m) => m.role === 'log');
122
+ return _messages.filter((m) => m.role === "log");
123
123
  }
124
124
  /**
125
125
  * Get the latest message
@@ -145,21 +145,21 @@ export function getInputFields() {
145
145
  const nodeTypeId = node.data.metadata?.id ?? node.type;
146
146
  // Check if this is an input-type node
147
147
  // The category can be "inputs" (standard) or variations like "input"
148
- const categoryStr = String(category || '');
149
- const isInputCategory = categoryStr === 'inputs' || categoryStr === 'input';
148
+ const categoryStr = String(category || "");
149
+ const isInputCategory = categoryStr === "inputs" || categoryStr === "input";
150
150
  if (isInputCategory || isChatInputNode(nodeTypeId)) {
151
151
  // Get output ports that provide data
152
152
  const outputs = node.data.metadata?.outputs ?? [];
153
153
  outputs.forEach((output) => {
154
- if (output.type === 'output') {
154
+ if (output.type === "output") {
155
155
  // Create a field for each output
156
156
  const field = {
157
157
  nodeId: node.id,
158
158
  fieldId: output.id,
159
159
  label: node.data.label || output.name || nodeTypeId,
160
- type: output.dataType || 'string',
160
+ type: output.dataType || "string",
161
161
  defaultValue: node.data.config?.[output.id],
162
- required: output.required ?? false
162
+ required: output.required ?? false,
163
163
  };
164
164
  // Check for schema in configSchema
165
165
  const configSchema = node.data.metadata?.configSchema;
@@ -178,10 +178,10 @@ export function getInputFields() {
178
178
  nodeId: node.id,
179
179
  fieldId: key,
180
180
  label: schema.title || key,
181
- type: schema.type || 'string',
181
+ type: schema.type || "string",
182
182
  defaultValue: node.data.config?.[key] ?? schema.default,
183
183
  required: configSchema.required?.includes(key) ?? false,
184
- schema
184
+ schema,
185
185
  };
186
186
  fields.push(field);
187
187
  });
@@ -196,7 +196,7 @@ export function getInputFields() {
196
196
  */
197
197
  export function getHasChatInput() {
198
198
  const fields = getInputFields();
199
- return fields.some((field) => isChatInputNode(field.nodeId) || field.type === 'string');
199
+ return fields.some((field) => isChatInputNode(field.nodeId) || field.type === "string");
200
200
  }
201
201
  /**
202
202
  * Get session count
@@ -272,12 +272,16 @@ export const playgroundActions = {
272
272
  */
273
273
  updateSessionStatus: (status) => {
274
274
  if (_currentSession) {
275
- _currentSession = { ..._currentSession, status, updatedAt: new Date().toISOString() };
275
+ _currentSession = {
276
+ ..._currentSession,
277
+ status,
278
+ updatedAt: new Date().toISOString(),
279
+ };
276
280
  }
277
281
  // Also update in sessions list
278
282
  const session = _currentSession;
279
283
  if (session) {
280
- _sessions = _sessions.map((s) => (s.id === session.id ? { ...s, status } : s));
284
+ _sessions = _sessions.map((s) => s.id === session.id ? { ...s, status } : s);
281
285
  }
282
286
  },
283
287
  /**
@@ -340,7 +344,10 @@ export const playgroundActions = {
340
344
  const existingIds = new Set(_messages.map((m) => m.id));
341
345
  const uniqueNewMessages = newMessages.filter((m) => !existingIds.has(m.id));
342
346
  // Sort the combined messages chronologically
343
- _messages = sortMessagesChronologically([..._messages, ...uniqueNewMessages]);
347
+ _messages = sortMessagesChronologically([
348
+ ..._messages,
349
+ ...uniqueNewMessages,
350
+ ]);
344
351
  },
345
352
  /**
346
353
  * Clear all messages
@@ -406,7 +413,7 @@ export const playgroundActions = {
406
413
  _messages = [];
407
414
  _lastPollTimestamp = null;
408
415
  }
409
- }
416
+ },
410
417
  };
411
418
  // =========================================================================
412
419
  // Polling Callback Factory
@@ -510,6 +517,6 @@ export async function refreshSessionMessages(fetchMessages, isTerminalStatus) {
510
517
  callback(response);
511
518
  }
512
519
  catch (err) {
513
- logger.error('[playgroundStore] Failed to refresh messages:', err);
520
+ logger.error("[playgroundStore] Failed to refresh messages:", err);
514
521
  }
515
522
  }
@@ -12,8 +12,8 @@
12
12
  * which SvelteFlow already maintains for all node types. This avoids replicating
13
13
  * CSS positioning logic and stays automatically accurate.
14
14
  */
15
- import type { WorkflowNode as WorkflowNodeType, PortCoordinate, PortCoordinateMap } from '../types/index.js';
16
- import type { InternalNode } from '@xyflow/svelte';
15
+ import type { WorkflowNode as WorkflowNodeType, PortCoordinate, PortCoordinateMap } from "../types/index.js";
16
+ import type { InternalNode } from "@xyflow/svelte";
17
17
  /**
18
18
  * Rebuild coordinates for ALL nodes from SvelteFlow internals.
19
19
  * Call on initial workflow load (after render) and after bulk changes.
@@ -12,8 +12,8 @@
12
12
  * which SvelteFlow already maintains for all node types. This avoids replicating
13
13
  * CSS positioning logic and stays automatically accurate.
14
14
  */
15
- import { SvelteMap } from 'svelte/reactivity';
16
- import { ProximityConnectHelper } from '../helpers/proximityConnect.js';
15
+ import { SvelteMap } from "svelte/reactivity";
16
+ import { ProximityConnectHelper } from "../helpers/proximityConnect.js";
17
17
  /** Reactive state holding all port absolute coordinates, keyed by handleId */
18
18
  let coordinates = $state(new SvelteMap());
19
19
  /**
@@ -27,11 +27,15 @@ function parseHandleId(handleId) {
27
27
  // Match the last occurrence of -input- or -output- to handle nodeIds with hyphens
28
28
  const inputMatch = handleId.match(/^(.+)-input-(.+)$/);
29
29
  if (inputMatch) {
30
- return { nodeId: inputMatch[1], direction: 'input', portId: inputMatch[2] };
30
+ return { nodeId: inputMatch[1], direction: "input", portId: inputMatch[2] };
31
31
  }
32
32
  const outputMatch = handleId.match(/^(.+)-output-(.+)$/);
33
33
  if (outputMatch) {
34
- return { nodeId: outputMatch[1], direction: 'output', portId: outputMatch[2] };
34
+ return {
35
+ nodeId: outputMatch[1],
36
+ direction: "output",
37
+ portId: outputMatch[2],
38
+ };
35
39
  }
36
40
  return null;
37
41
  }
@@ -41,11 +45,11 @@ function parseHandleId(handleId) {
41
45
  */
42
46
  function buildPortDataTypeLookup(node) {
43
47
  const lookup = new Map();
44
- const inputs = ProximityConnectHelper.getAllPorts(node, 'input');
48
+ const inputs = ProximityConnectHelper.getAllPorts(node, "input");
45
49
  for (const port of inputs) {
46
50
  lookup.set(`input-${port.id}`, port.dataType);
47
51
  }
48
- const outputs = ProximityConnectHelper.getAllPorts(node, 'output');
52
+ const outputs = ProximityConnectHelper.getAllPorts(node, "output");
49
53
  for (const port of outputs) {
50
54
  lookup.set(`output-${port.id}`, port.dataType);
51
55
  }
@@ -65,7 +69,10 @@ function computeNodePortCoordinates(node, internalNode) {
65
69
  const posAbs = internalNode.internals.positionAbsolute;
66
70
  const dataTypeLookup = buildPortDataTypeLookup(node);
67
71
  const result = [];
68
- const allHandles = [...(handleBounds.source ?? []), ...(handleBounds.target ?? [])];
72
+ const allHandles = [
73
+ ...(handleBounds.source ?? []),
74
+ ...(handleBounds.target ?? []),
75
+ ];
69
76
  for (const handle of allHandles) {
70
77
  if (!handle.id)
71
78
  continue;
@@ -82,7 +89,7 @@ function computeNodePortCoordinates(node, internalNode) {
82
89
  handleId: handle.id,
83
90
  nodeId: parsed.nodeId,
84
91
  direction: parsed.direction,
85
- dataType
92
+ dataType,
86
93
  });
87
94
  }
88
95
  return result;
@@ -9,8 +9,8 @@
9
9
  *
10
10
  * @module stores/settingsStore
11
11
  */
12
- import type { FlowDropSettings, ThemeSettings, EditorSettings, UISettings, BehaviorSettings, ApiSettings, PartialSettings, SyncStatus, ResolvedTheme, ThemePreference, SettingsChangeCallback, SettingsCategory } from '../types/settings.js';
13
- export type { ThemePreference, ResolvedTheme } from '../types/settings.js';
12
+ import type { FlowDropSettings, ThemeSettings, EditorSettings, UISettings, BehaviorSettings, ApiSettings, PartialSettings, SyncStatus, ResolvedTheme, ThemePreference, SettingsChangeCallback, SettingsCategory } from "../types/settings.js";
13
+ export type { ThemePreference, ResolvedTheme } from "../types/settings.js";
14
14
  /**
15
15
  * Get current settings (replaces settingsStore derived store)
16
16
  */
@@ -9,8 +9,8 @@
9
9
  *
10
10
  * @module stores/settingsStore
11
11
  */
12
- import { DEFAULT_SETTINGS, SETTINGS_STORAGE_KEY } from '../types/settings.js';
13
- import { logger } from '../utils/logger.js';
12
+ import { DEFAULT_SETTINGS, SETTINGS_STORAGE_KEY } from "../types/settings.js";
13
+ import { logger } from "../utils/logger.js";
14
14
  // =========================================================================
15
15
  // Internal State
16
16
  // =========================================================================
@@ -32,7 +32,7 @@ const changeListeners = new Set();
32
32
  * @returns Saved settings or null if not found/invalid
33
33
  */
34
34
  function loadFromStorage() {
35
- if (typeof window === 'undefined') {
35
+ if (typeof window === "undefined") {
36
36
  return null;
37
37
  }
38
38
  try {
@@ -44,7 +44,7 @@ function loadFromStorage() {
44
44
  }
45
45
  }
46
46
  catch (error) {
47
- logger.warn('Failed to load settings from localStorage:', error);
47
+ logger.warn("Failed to load settings from localStorage:", error);
48
48
  }
49
49
  return null;
50
50
  }
@@ -54,14 +54,14 @@ function loadFromStorage() {
54
54
  * @param settings - Settings to persist
55
55
  */
56
56
  function saveToStorage(settings) {
57
- if (typeof window === 'undefined') {
57
+ if (typeof window === "undefined") {
58
58
  return;
59
59
  }
60
60
  try {
61
61
  localStorage.setItem(SETTINGS_STORAGE_KEY, JSON.stringify(settings));
62
62
  }
63
63
  catch (error) {
64
- logger.warn('Failed to save settings to localStorage:', error);
64
+ logger.warn("Failed to save settings to localStorage:", error);
65
65
  }
66
66
  }
67
67
  // =========================================================================
@@ -80,7 +80,7 @@ function deepMergeSettings(target, source) {
80
80
  editor: { ...target.editor },
81
81
  ui: { ...target.ui },
82
82
  behavior: { ...target.behavior },
83
- api: { ...target.api }
83
+ api: { ...target.api },
84
84
  };
85
85
  // Merge theme settings
86
86
  if (source.theme) {
@@ -117,15 +117,15 @@ const initialSettings = loadFromStorage() ?? DEFAULT_SETTINGS;
117
117
  let storeState = $state({
118
118
  settings: initialSettings,
119
119
  initialized: true,
120
- syncStatus: 'idle',
120
+ syncStatus: "idle",
121
121
  lastSyncedAt: null,
122
- syncError: null
122
+ syncError: null,
123
123
  });
124
124
  /**
125
125
  * System theme preference using $state rune
126
126
  * Updates when system preference changes
127
127
  */
128
- let systemThemeState = $state(typeof window !== 'undefined' ? getSystemTheme() : 'light');
128
+ let systemThemeState = $state(typeof window !== "undefined" ? getSystemTheme() : "light");
129
129
  // =========================================================================
130
130
  // Getter Functions (replacing derived stores)
131
131
  // =========================================================================
@@ -142,7 +142,7 @@ export function getSyncStatus() {
142
142
  return {
143
143
  status: storeState.syncStatus,
144
144
  lastSyncedAt: storeState.lastSyncedAt,
145
- error: storeState.syncError
145
+ error: storeState.syncError,
146
146
  };
147
147
  }
148
148
  /**
@@ -187,7 +187,7 @@ export function getTheme() {
187
187
  * (replaces resolvedTheme derived store)
188
188
  */
189
189
  export function getResolvedTheme() {
190
- if (storeState.settings.theme.preference === 'auto') {
190
+ if (storeState.settings.theme.preference === "auto") {
191
191
  return systemThemeState;
192
192
  }
193
193
  return storeState.settings.theme.preference;
@@ -205,10 +205,12 @@ export function getSystemThemeState() {
205
205
  * Get the system's color scheme preference
206
206
  */
207
207
  function getSystemTheme() {
208
- if (typeof window === 'undefined') {
209
- return 'light';
208
+ if (typeof window === "undefined") {
209
+ return "light";
210
210
  }
211
- return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
211
+ return window.matchMedia("(prefers-color-scheme: dark)").matches
212
+ ? "dark"
213
+ : "light";
212
214
  }
213
215
  /**
214
216
  * Initialize the system theme change listener.
@@ -217,16 +219,16 @@ function getSystemTheme() {
217
219
  * @returns Cleanup function that removes the listener
218
220
  */
219
221
  export function initThemeListener() {
220
- if (typeof window === 'undefined') {
222
+ if (typeof window === "undefined") {
221
223
  return () => { };
222
224
  }
223
- const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
225
+ const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
224
226
  const handleSystemThemeChange = (event) => {
225
- systemThemeState = event.matches ? 'dark' : 'light';
227
+ systemThemeState = event.matches ? "dark" : "light";
226
228
  };
227
- mediaQuery.addEventListener('change', handleSystemThemeChange);
229
+ mediaQuery.addEventListener("change", handleSystemThemeChange);
228
230
  return () => {
229
- mediaQuery.removeEventListener('change', handleSystemThemeChange);
231
+ mediaQuery.removeEventListener("change", handleSystemThemeChange);
230
232
  };
231
233
  }
232
234
  // =========================================================================
@@ -240,14 +242,14 @@ function notifyChange(category, key, previousValue, newValue) {
240
242
  category,
241
243
  key,
242
244
  previousValue,
243
- newValue
245
+ newValue,
244
246
  };
245
247
  changeListeners.forEach((listener) => {
246
248
  try {
247
249
  listener(event);
248
250
  }
249
251
  catch (error) {
250
- logger.error('Settings change listener error:', error);
252
+ logger.error("Settings change listener error:", error);
251
253
  }
252
254
  });
253
255
  }
@@ -270,7 +272,7 @@ export function updateSettings(partial) {
270
272
  // Notify listeners for each changed category
271
273
  for (const category of Object.keys(partial)) {
272
274
  const partialCategory = partial[category];
273
- if (partialCategory && typeof partialCategory === 'object') {
275
+ if (partialCategory && typeof partialCategory === "object") {
274
276
  for (const key of Object.keys(partialCategory)) {
275
277
  const prevCat = getCategoryAsRecord(previousSettings, category);
276
278
  const newCat = getCategoryAsRecord(newSettings, category);
@@ -282,7 +284,7 @@ export function updateSettings(partial) {
282
284
  }
283
285
  storeState = {
284
286
  ...storeState,
285
- settings: newSettings
287
+ settings: newSettings,
286
288
  };
287
289
  }
288
290
  /**
@@ -294,7 +296,8 @@ export function resetSettings(categories) {
294
296
  if (categories && categories.length > 0) {
295
297
  const partial = {};
296
298
  for (const category of categories) {
297
- partial[category] = DEFAULT_SETTINGS[category];
299
+ partial[category] =
300
+ DEFAULT_SETTINGS[category];
298
301
  }
299
302
  updateSettings(partial);
300
303
  }
@@ -302,7 +305,7 @@ export function resetSettings(categories) {
302
305
  saveToStorage(DEFAULT_SETTINGS);
303
306
  storeState = {
304
307
  ...storeState,
305
- settings: DEFAULT_SETTINGS
308
+ settings: DEFAULT_SETTINGS,
306
309
  };
307
310
  }
308
311
  }
@@ -324,11 +327,11 @@ export function setTheme(newTheme) {
324
327
  export function toggleTheme() {
325
328
  const currentTheme = getTheme();
326
329
  const currentResolved = getResolvedTheme();
327
- if (currentTheme === 'auto') {
328
- setTheme(currentResolved === 'dark' ? 'light' : 'dark');
330
+ if (currentTheme === "auto") {
331
+ setTheme(currentResolved === "dark" ? "light" : "dark");
329
332
  }
330
333
  else {
331
- setTheme(currentTheme === 'dark' ? 'light' : 'dark');
334
+ setTheme(currentTheme === "dark" ? "light" : "dark");
332
335
  }
333
336
  }
334
337
  /**
@@ -337,14 +340,14 @@ export function toggleTheme() {
337
340
  export function cycleTheme() {
338
341
  const currentTheme = getTheme();
339
342
  switch (currentTheme) {
340
- case 'light':
341
- setTheme('dark');
343
+ case "light":
344
+ setTheme("dark");
342
345
  break;
343
- case 'dark':
344
- setTheme('auto');
346
+ case "dark":
347
+ setTheme("auto");
345
348
  break;
346
- case 'auto':
347
- setTheme('light');
349
+ case "auto":
350
+ setTheme("light");
348
351
  break;
349
352
  }
350
353
  }
@@ -354,10 +357,10 @@ export function cycleTheme() {
354
357
  * @param resolved - The resolved theme to apply
355
358
  */
356
359
  function applyTheme(resolved) {
357
- if (typeof document === 'undefined') {
360
+ if (typeof document === "undefined") {
358
361
  return;
359
362
  }
360
- document.documentElement.setAttribute('data-theme', resolved);
363
+ document.documentElement.setAttribute("data-theme", resolved);
361
364
  }
362
365
  /**
363
366
  * Stored cleanup function for the theme effect.
@@ -406,10 +409,10 @@ export function initializeTheme() {
406
409
  * @returns true if running in browser and theme is applied
407
410
  */
408
411
  export function isThemeInitialized() {
409
- if (typeof document === 'undefined') {
412
+ if (typeof document === "undefined") {
410
413
  return false;
411
414
  }
412
- return document.documentElement.hasAttribute('data-theme');
415
+ return document.documentElement.hasAttribute("data-theme");
413
416
  }
414
417
  // =========================================================================
415
418
  // API Sync Functions
@@ -429,30 +432,30 @@ export function setSettingsService(service) {
429
432
  */
430
433
  export async function syncSettingsToApi() {
431
434
  if (!settingsService) {
432
- logger.warn('Settings service not configured for API sync');
435
+ logger.warn("Settings service not configured for API sync");
433
436
  return;
434
437
  }
435
438
  storeState = {
436
439
  ...storeState,
437
- syncStatus: 'syncing',
438
- syncError: null
440
+ syncStatus: "syncing",
441
+ syncError: null,
439
442
  };
440
443
  try {
441
444
  const currentSettings = getSettings();
442
445
  await settingsService.savePreferences(currentSettings);
443
446
  storeState = {
444
447
  ...storeState,
445
- syncStatus: 'synced',
448
+ syncStatus: "synced",
446
449
  lastSyncedAt: Date.now(),
447
- syncError: null
450
+ syncError: null,
448
451
  };
449
452
  }
450
453
  catch (error) {
451
- const errorMessage = error instanceof Error ? error.message : 'Failed to sync settings';
454
+ const errorMessage = error instanceof Error ? error.message : "Failed to sync settings";
452
455
  storeState = {
453
456
  ...storeState,
454
- syncStatus: 'error',
455
- syncError: errorMessage
457
+ syncStatus: "error",
458
+ syncError: errorMessage,
456
459
  };
457
460
  throw error;
458
461
  }
@@ -464,13 +467,13 @@ export async function syncSettingsToApi() {
464
467
  */
465
468
  export async function loadSettingsFromApi() {
466
469
  if (!settingsService) {
467
- logger.warn('Settings service not configured for API sync');
470
+ logger.warn("Settings service not configured for API sync");
468
471
  return;
469
472
  }
470
473
  storeState = {
471
474
  ...storeState,
472
- syncStatus: 'syncing',
473
- syncError: null
475
+ syncStatus: "syncing",
476
+ syncError: null,
474
477
  };
475
478
  try {
476
479
  const apiSettingsData = await settingsService.getPreferences();
@@ -478,19 +481,21 @@ export async function loadSettingsFromApi() {
478
481
  storeState = {
479
482
  ...storeState,
480
483
  settings: mergedSettings,
481
- syncStatus: 'synced',
484
+ syncStatus: "synced",
482
485
  lastSyncedAt: Date.now(),
483
- syncError: null
486
+ syncError: null,
484
487
  };
485
488
  // Also persist to localStorage
486
489
  saveToStorage(mergedSettings);
487
490
  }
488
491
  catch (error) {
489
- const errorMessage = error instanceof Error ? error.message : 'Failed to load settings from API';
492
+ const errorMessage = error instanceof Error
493
+ ? error.message
494
+ : "Failed to load settings from API";
490
495
  storeState = {
491
496
  ...storeState,
492
- syncStatus: 'error',
493
- syncError: errorMessage
497
+ syncStatus: "error",
498
+ syncError: errorMessage,
494
499
  };
495
500
  throw error;
496
501
  }
@@ -525,7 +530,7 @@ export async function initializeSettings(options) {
525
530
  const withDefaults = deepMergeSettings(currentSettings, options.defaults);
526
531
  storeState = {
527
532
  ...storeState,
528
- settings: withDefaults
533
+ settings: withDefaults,
529
534
  };
530
535
  saveToStorage(withDefaults);
531
536
  }
@@ -538,7 +543,7 @@ export async function initializeSettings(options) {
538
543
  }
539
544
  catch {
540
545
  // Silently fail - local settings are still available
541
- logger.warn('Failed to sync settings from API on initialization');
546
+ logger.warn("Failed to sync settings from API on initialization");
542
547
  }
543
548
  }
544
549
  }
@@ -10,9 +10,9 @@
10
10
  *
11
11
  * @module stores/workflowStore
12
12
  */
13
- import type { Workflow, WorkflowNode, WorkflowEdge } from '../types';
14
- import type { WorkflowChangeType } from '../types/events.js';
15
- type WorkflowMetadata = NonNullable<Workflow['metadata']>;
13
+ import type { Workflow, WorkflowNode, WorkflowEdge } from "../types";
14
+ import type { WorkflowChangeType } from "../types/events.js";
15
+ type WorkflowMetadata = NonNullable<Workflow["metadata"]>;
16
16
  /**
17
17
  * Get the current workflow store value reactively
18
18
  *