@flowdrop/flowdrop 1.0.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 (403) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +252 -0
  3. package/dist/adapters/WorkflowAdapter.d.ts +167 -0
  4. package/dist/adapters/WorkflowAdapter.js +368 -0
  5. package/dist/adapters/agentspec/AgentSpecAdapter.d.ts +96 -0
  6. package/dist/adapters/agentspec/AgentSpecAdapter.js +626 -0
  7. package/dist/adapters/agentspec/agentAdapter.d.ts +59 -0
  8. package/dist/adapters/agentspec/agentAdapter.js +91 -0
  9. package/dist/adapters/agentspec/autoLayout.d.ts +34 -0
  10. package/dist/adapters/agentspec/autoLayout.js +127 -0
  11. package/dist/adapters/agentspec/componentTypeDefaults.d.ts +73 -0
  12. package/dist/adapters/agentspec/componentTypeDefaults.js +238 -0
  13. package/dist/adapters/agentspec/defaultNodeTypes.d.ts +53 -0
  14. package/dist/adapters/agentspec/defaultNodeTypes.js +561 -0
  15. package/dist/adapters/agentspec/index.d.ts +37 -0
  16. package/dist/adapters/agentspec/index.js +39 -0
  17. package/dist/adapters/agentspec/validator.d.ts +34 -0
  18. package/dist/adapters/agentspec/validator.js +169 -0
  19. package/dist/api/enhanced-client.d.ts +183 -0
  20. package/dist/api/enhanced-client.js +430 -0
  21. package/dist/components/App.svelte +981 -0
  22. package/dist/components/App.svelte.d.ts +54 -0
  23. package/dist/components/CanvasBanner.stories.svelte +29 -0
  24. package/dist/components/CanvasBanner.stories.svelte.d.ts +27 -0
  25. package/dist/components/CanvasBanner.svelte +57 -0
  26. package/dist/components/CanvasBanner.svelte.d.ts +8 -0
  27. package/dist/components/ConfigForm.svelte +1138 -0
  28. package/dist/components/ConfigForm.svelte.d.ts +44 -0
  29. package/dist/components/ConfigModal.svelte +188 -0
  30. package/dist/components/ConfigModal.svelte.d.ts +13 -0
  31. package/dist/components/ConfigPanel.stories.svelte +47 -0
  32. package/dist/components/ConfigPanel.stories.svelte.d.ts +27 -0
  33. package/dist/components/ConfigPanel.svelte +182 -0
  34. package/dist/components/ConfigPanel.svelte.d.ts +32 -0
  35. package/dist/components/ConnectionLine.svelte +32 -0
  36. package/dist/components/ConnectionLine.svelte.d.ts +3 -0
  37. package/dist/components/EdgeRefresher.svelte +41 -0
  38. package/dist/components/EdgeRefresher.svelte.d.ts +9 -0
  39. package/dist/components/FlowDropZone.svelte +83 -0
  40. package/dist/components/FlowDropZone.svelte.d.ts +13 -0
  41. package/dist/components/LoadingSpinner.stories.svelte +30 -0
  42. package/dist/components/LoadingSpinner.stories.svelte.d.ts +27 -0
  43. package/dist/components/LoadingSpinner.svelte +36 -0
  44. package/dist/components/LoadingSpinner.svelte.d.ts +8 -0
  45. package/dist/components/Logo.stories.svelte +22 -0
  46. package/dist/components/Logo.stories.svelte.d.ts +27 -0
  47. package/dist/components/Logo.svelte +102 -0
  48. package/dist/components/Logo.svelte.d.ts +26 -0
  49. package/dist/components/LogsSidebar.svelte +563 -0
  50. package/dist/components/LogsSidebar.svelte.d.ts +17 -0
  51. package/dist/components/MarkdownDisplay.stories.svelte +36 -0
  52. package/dist/components/MarkdownDisplay.stories.svelte.d.ts +27 -0
  53. package/dist/components/MarkdownDisplay.svelte +29 -0
  54. package/dist/components/MarkdownDisplay.svelte.d.ts +7 -0
  55. package/dist/components/Navbar.stories.svelte +53 -0
  56. package/dist/components/Navbar.stories.svelte.d.ts +27 -0
  57. package/dist/components/Navbar.svelte +726 -0
  58. package/dist/components/Navbar.svelte.d.ts +29 -0
  59. package/dist/components/NodeSidebar.svelte +762 -0
  60. package/dist/components/NodeSidebar.svelte.d.ts +9 -0
  61. package/dist/components/NodeStatusOverlay.stories.svelte +85 -0
  62. package/dist/components/NodeStatusOverlay.stories.svelte.d.ts +27 -0
  63. package/dist/components/NodeStatusOverlay.svelte +327 -0
  64. package/dist/components/NodeStatusOverlay.svelte.d.ts +11 -0
  65. package/dist/components/PipelineStatus.svelte +314 -0
  66. package/dist/components/PipelineStatus.svelte.d.ts +20 -0
  67. package/dist/components/PortCoordinateTracker.svelte +58 -0
  68. package/dist/components/PortCoordinateTracker.svelte.d.ts +12 -0
  69. package/dist/components/ReadOnlyDetails.svelte +170 -0
  70. package/dist/components/ReadOnlyDetails.svelte.d.ts +25 -0
  71. package/dist/components/SchemaForm.stories.svelte +116 -0
  72. package/dist/components/SchemaForm.stories.svelte.d.ts +27 -0
  73. package/dist/components/SchemaForm.svelte +536 -0
  74. package/dist/components/SchemaForm.svelte.d.ts +83 -0
  75. package/dist/components/SettingsModal.svelte +279 -0
  76. package/dist/components/SettingsModal.svelte.d.ts +23 -0
  77. package/dist/components/SettingsPanel.svelte +638 -0
  78. package/dist/components/SettingsPanel.svelte.d.ts +21 -0
  79. package/dist/components/StatusIcon.stories.svelte +60 -0
  80. package/dist/components/StatusIcon.stories.svelte.d.ts +27 -0
  81. package/dist/components/StatusIcon.svelte +119 -0
  82. package/dist/components/StatusIcon.svelte.d.ts +10 -0
  83. package/dist/components/StatusLabel.stories.svelte +17 -0
  84. package/dist/components/StatusLabel.stories.svelte.d.ts +27 -0
  85. package/dist/components/StatusLabel.svelte +33 -0
  86. package/dist/components/StatusLabel.svelte.d.ts +7 -0
  87. package/dist/components/ThemeToggle.stories.svelte +25 -0
  88. package/dist/components/ThemeToggle.stories.svelte.d.ts +27 -0
  89. package/dist/components/ThemeToggle.svelte +185 -0
  90. package/dist/components/ThemeToggle.svelte.d.ts +14 -0
  91. package/dist/components/UniversalNode.svelte +155 -0
  92. package/dist/components/UniversalNode.svelte.d.ts +15 -0
  93. package/dist/components/WorkflowEditor.svelte +1035 -0
  94. package/dist/components/WorkflowEditor.svelte.d.ts +23 -0
  95. package/dist/components/form/FormArray.svelte +1049 -0
  96. package/dist/components/form/FormArray.svelte.d.ts +22 -0
  97. package/dist/components/form/FormAutocomplete.svelte +1009 -0
  98. package/dist/components/form/FormAutocomplete.svelte.d.ts +25 -0
  99. package/dist/components/form/FormCheckboxGroup.stories.svelte +28 -0
  100. package/dist/components/form/FormCheckboxGroup.stories.svelte.d.ts +27 -0
  101. package/dist/components/form/FormCheckboxGroup.svelte +155 -0
  102. package/dist/components/form/FormCheckboxGroup.svelte.d.ts +17 -0
  103. package/dist/components/form/FormCodeEditor.svelte +458 -0
  104. package/dist/components/form/FormCodeEditor.svelte.d.ts +25 -0
  105. package/dist/components/form/FormField.svelte +417 -0
  106. package/dist/components/form/FormField.svelte.d.ts +29 -0
  107. package/dist/components/form/FormFieldLight.svelte +425 -0
  108. package/dist/components/form/FormFieldLight.svelte.d.ts +18 -0
  109. package/dist/components/form/FormFieldWrapper.stories.svelte +53 -0
  110. package/dist/components/form/FormFieldWrapper.stories.svelte.d.ts +27 -0
  111. package/dist/components/form/FormFieldWrapper.svelte +125 -0
  112. package/dist/components/form/FormFieldWrapper.svelte.d.ts +18 -0
  113. package/dist/components/form/FormFieldset.svelte +142 -0
  114. package/dist/components/form/FormFieldset.svelte.d.ts +11 -0
  115. package/dist/components/form/FormMarkdownEditor.svelte +752 -0
  116. package/dist/components/form/FormMarkdownEditor.svelte.d.ts +33 -0
  117. package/dist/components/form/FormNumberField.stories.svelte +36 -0
  118. package/dist/components/form/FormNumberField.stories.svelte.d.ts +27 -0
  119. package/dist/components/form/FormNumberField.svelte +112 -0
  120. package/dist/components/form/FormNumberField.svelte.d.ts +25 -0
  121. package/dist/components/form/FormRangeField.stories.svelte +31 -0
  122. package/dist/components/form/FormRangeField.stories.svelte.d.ts +27 -0
  123. package/dist/components/form/FormRangeField.svelte +246 -0
  124. package/dist/components/form/FormRangeField.svelte.d.ts +23 -0
  125. package/dist/components/form/FormSelect.stories.svelte +50 -0
  126. package/dist/components/form/FormSelect.stories.svelte.d.ts +27 -0
  127. package/dist/components/form/FormSelect.svelte +129 -0
  128. package/dist/components/form/FormSelect.svelte.d.ts +20 -0
  129. package/dist/components/form/FormTemplateEditor.svelte +825 -0
  130. package/dist/components/form/FormTemplateEditor.svelte.d.ts +41 -0
  131. package/dist/components/form/FormTextField.stories.svelte +30 -0
  132. package/dist/components/form/FormTextField.stories.svelte.d.ts +27 -0
  133. package/dist/components/form/FormTextField.svelte +91 -0
  134. package/dist/components/form/FormTextField.svelte.d.ts +19 -0
  135. package/dist/components/form/FormTextarea.stories.svelte +34 -0
  136. package/dist/components/form/FormTextarea.stories.svelte.d.ts +27 -0
  137. package/dist/components/form/FormTextarea.svelte +97 -0
  138. package/dist/components/form/FormTextarea.svelte.d.ts +21 -0
  139. package/dist/components/form/FormToggle.stories.svelte +30 -0
  140. package/dist/components/form/FormToggle.stories.svelte.d.ts +27 -0
  141. package/dist/components/form/FormToggle.svelte +126 -0
  142. package/dist/components/form/FormToggle.svelte.d.ts +19 -0
  143. package/dist/components/form/FormUISchemaRenderer.svelte +136 -0
  144. package/dist/components/form/FormUISchemaRenderer.svelte.d.ts +32 -0
  145. package/dist/components/form/index.d.ts +50 -0
  146. package/dist/components/form/index.js +54 -0
  147. package/dist/components/form/templateAutocomplete.d.ts +29 -0
  148. package/dist/components/form/templateAutocomplete.js +254 -0
  149. package/dist/components/form/types.d.ts +485 -0
  150. package/dist/components/form/types.js +73 -0
  151. package/dist/components/interrupt/ChoicePrompt.stories.svelte +52 -0
  152. package/dist/components/interrupt/ChoicePrompt.stories.svelte.d.ts +27 -0
  153. package/dist/components/interrupt/ChoicePrompt.svelte +401 -0
  154. package/dist/components/interrupt/ChoicePrompt.svelte.d.ts +23 -0
  155. package/dist/components/interrupt/ConfirmationPrompt.stories.svelte +71 -0
  156. package/dist/components/interrupt/ConfirmationPrompt.stories.svelte.d.ts +27 -0
  157. package/dist/components/interrupt/ConfirmationPrompt.svelte +292 -0
  158. package/dist/components/interrupt/ConfirmationPrompt.svelte.d.ts +25 -0
  159. package/dist/components/interrupt/FormPrompt.svelte +236 -0
  160. package/dist/components/interrupt/FormPrompt.svelte.d.ts +23 -0
  161. package/dist/components/interrupt/InterruptBubble.svelte +601 -0
  162. package/dist/components/interrupt/InterruptBubble.svelte.d.ts +16 -0
  163. package/dist/components/interrupt/ReviewPrompt.stories.svelte +67 -0
  164. package/dist/components/interrupt/ReviewPrompt.stories.svelte.d.ts +27 -0
  165. package/dist/components/interrupt/ReviewPrompt.svelte +861 -0
  166. package/dist/components/interrupt/ReviewPrompt.svelte.d.ts +23 -0
  167. package/dist/components/interrupt/TextInputPrompt.stories.svelte +47 -0
  168. package/dist/components/interrupt/TextInputPrompt.stories.svelte.d.ts +27 -0
  169. package/dist/components/interrupt/TextInputPrompt.svelte +346 -0
  170. package/dist/components/interrupt/TextInputPrompt.svelte.d.ts +23 -0
  171. package/dist/components/interrupt/index.d.ts +13 -0
  172. package/dist/components/interrupt/index.js +15 -0
  173. package/dist/components/layouts/MainLayout.svelte +718 -0
  174. package/dist/components/layouts/MainLayout.svelte.d.ts +62 -0
  175. package/dist/components/nodes/GatewayNode.stories.svelte +108 -0
  176. package/dist/components/nodes/GatewayNode.stories.svelte.d.ts +26 -0
  177. package/dist/components/nodes/GatewayNode.svelte +591 -0
  178. package/dist/components/nodes/GatewayNode.svelte.d.ts +15 -0
  179. package/dist/components/nodes/IdeaNode.stories.svelte +52 -0
  180. package/dist/components/nodes/IdeaNode.stories.svelte.d.ts +26 -0
  181. package/dist/components/nodes/IdeaNode.svelte +455 -0
  182. package/dist/components/nodes/IdeaNode.svelte.d.ts +24 -0
  183. package/dist/components/nodes/NotesNode.stories.svelte +76 -0
  184. package/dist/components/nodes/NotesNode.stories.svelte.d.ts +26 -0
  185. package/dist/components/nodes/NotesNode.svelte +378 -0
  186. package/dist/components/nodes/NotesNode.svelte.d.ts +24 -0
  187. package/dist/components/nodes/SimpleNode.stories.svelte +159 -0
  188. package/dist/components/nodes/SimpleNode.stories.svelte.d.ts +26 -0
  189. package/dist/components/nodes/SimpleNode.svelte +451 -0
  190. package/dist/components/nodes/SimpleNode.svelte.d.ts +25 -0
  191. package/dist/components/nodes/SquareNode.stories.svelte +82 -0
  192. package/dist/components/nodes/SquareNode.stories.svelte.d.ts +26 -0
  193. package/dist/components/nodes/SquareNode.svelte +407 -0
  194. package/dist/components/nodes/SquareNode.svelte.d.ts +25 -0
  195. package/dist/components/nodes/TerminalNode.stories.svelte +25 -0
  196. package/dist/components/nodes/TerminalNode.stories.svelte.d.ts +26 -0
  197. package/dist/components/nodes/TerminalNode.svelte +690 -0
  198. package/dist/components/nodes/TerminalNode.svelte.d.ts +25 -0
  199. package/dist/components/nodes/ToolNode.stories.svelte +189 -0
  200. package/dist/components/nodes/ToolNode.stories.svelte.d.ts +26 -0
  201. package/dist/components/nodes/ToolNode.svelte +471 -0
  202. package/dist/components/nodes/ToolNode.svelte.d.ts +36 -0
  203. package/dist/components/nodes/WorkflowNode.stories.svelte +55 -0
  204. package/dist/components/nodes/WorkflowNode.stories.svelte.d.ts +26 -0
  205. package/dist/components/nodes/WorkflowNode.svelte +571 -0
  206. package/dist/components/nodes/WorkflowNode.svelte.d.ts +15 -0
  207. package/dist/components/playground/ChatPanel.svelte +905 -0
  208. package/dist/components/playground/ChatPanel.svelte.d.ts +46 -0
  209. package/dist/components/playground/ExecutionLogs.svelte +488 -0
  210. package/dist/components/playground/ExecutionLogs.svelte.d.ts +14 -0
  211. package/dist/components/playground/InputCollector.svelte +444 -0
  212. package/dist/components/playground/InputCollector.svelte.d.ts +16 -0
  213. package/dist/components/playground/MessageBubble.stories.svelte +62 -0
  214. package/dist/components/playground/MessageBubble.stories.svelte.d.ts +27 -0
  215. package/dist/components/playground/MessageBubble.svelte +633 -0
  216. package/dist/components/playground/MessageBubble.svelte.d.ts +24 -0
  217. package/dist/components/playground/Playground.svelte +1075 -0
  218. package/dist/components/playground/Playground.svelte.d.ts +25 -0
  219. package/dist/components/playground/PlaygroundModal.svelte +220 -0
  220. package/dist/components/playground/PlaygroundModal.svelte.d.ts +25 -0
  221. package/dist/components/playground/SessionManager.svelte +538 -0
  222. package/dist/components/playground/SessionManager.svelte.d.ts +20 -0
  223. package/dist/config/agentSpecEndpoints.d.ts +70 -0
  224. package/dist/config/agentSpecEndpoints.js +65 -0
  225. package/dist/config/constants.d.ts +43 -0
  226. package/dist/config/constants.js +31 -0
  227. package/dist/config/defaultCategories.d.ts +7 -0
  228. package/dist/config/defaultCategories.js +126 -0
  229. package/dist/config/defaultPortConfig.d.ts +6 -0
  230. package/dist/config/defaultPortConfig.js +201 -0
  231. package/dist/config/endpoints.d.ts +160 -0
  232. package/dist/config/endpoints.js +146 -0
  233. package/dist/config/runtimeConfig.d.ts +47 -0
  234. package/dist/config/runtimeConfig.js +80 -0
  235. package/dist/core/index.d.ts +75 -0
  236. package/dist/core/index.js +92 -0
  237. package/dist/display/index.d.ts +29 -0
  238. package/dist/display/index.js +36 -0
  239. package/dist/editor/index.d.ts +95 -0
  240. package/dist/editor/index.js +138 -0
  241. package/dist/form/code.d.ts +101 -0
  242. package/dist/form/code.js +168 -0
  243. package/dist/form/fieldRegistry.d.ts +169 -0
  244. package/dist/form/fieldRegistry.js +152 -0
  245. package/dist/form/full.d.ts +56 -0
  246. package/dist/form/full.js +80 -0
  247. package/dist/form/index.d.ts +77 -0
  248. package/dist/form/index.js +91 -0
  249. package/dist/form/markdown.d.ts +69 -0
  250. package/dist/form/markdown.js +103 -0
  251. package/dist/helpers/nodeLayoutHelper.d.ts +14 -0
  252. package/dist/helpers/nodeLayoutHelper.js +19 -0
  253. package/dist/helpers/proximityConnect.d.ts +94 -0
  254. package/dist/helpers/proximityConnect.js +314 -0
  255. package/dist/helpers/workflowEditorHelper.d.ts +183 -0
  256. package/dist/helpers/workflowEditorHelper.js +595 -0
  257. package/dist/index.d.ts +37 -0
  258. package/dist/index.js +64 -0
  259. package/dist/mocks/app-environment.d.ts +8 -0
  260. package/dist/mocks/app-environment.js +16 -0
  261. package/dist/mocks/app-forms.d.ts +2 -0
  262. package/dist/mocks/app-forms.js +22 -0
  263. package/dist/mocks/app-navigation.d.ts +5 -0
  264. package/dist/mocks/app-navigation.js +36 -0
  265. package/dist/mocks/app-stores.d.ts +14 -0
  266. package/dist/mocks/app-stores.js +26 -0
  267. package/dist/playground/index.d.ts +131 -0
  268. package/dist/playground/index.js +172 -0
  269. package/dist/playground/mount.d.ts +203 -0
  270. package/dist/playground/mount.js +235 -0
  271. package/dist/registry/BaseRegistry.d.ts +92 -0
  272. package/dist/registry/BaseRegistry.js +124 -0
  273. package/dist/registry/builtinFormats.d.ts +23 -0
  274. package/dist/registry/builtinFormats.js +70 -0
  275. package/dist/registry/builtinNodes.d.ts +77 -0
  276. package/dist/registry/builtinNodes.js +211 -0
  277. package/dist/registry/index.d.ts +8 -0
  278. package/dist/registry/index.js +12 -0
  279. package/dist/registry/nodeComponentRegistry.d.ts +276 -0
  280. package/dist/registry/nodeComponentRegistry.js +262 -0
  281. package/dist/registry/plugin.d.ts +215 -0
  282. package/dist/registry/plugin.js +249 -0
  283. package/dist/registry/workflowFormatRegistry.d.ts +122 -0
  284. package/dist/registry/workflowFormatRegistry.js +96 -0
  285. package/dist/schema/index.d.ts +23 -0
  286. package/dist/schema/index.js +23 -0
  287. package/dist/schemas/v1/workflow.schema.json +1078 -0
  288. package/dist/services/agentSpecExecutionService.d.ts +106 -0
  289. package/dist/services/agentSpecExecutionService.js +334 -0
  290. package/dist/services/api.d.ts +115 -0
  291. package/dist/services/api.js +214 -0
  292. package/dist/services/apiVariableService.d.ts +114 -0
  293. package/dist/services/apiVariableService.js +338 -0
  294. package/dist/services/autoSaveService.d.ts +112 -0
  295. package/dist/services/autoSaveService.js +227 -0
  296. package/dist/services/categoriesApi.d.ts +14 -0
  297. package/dist/services/categoriesApi.js +49 -0
  298. package/dist/services/draftStorage.d.ts +171 -0
  299. package/dist/services/draftStorage.js +299 -0
  300. package/dist/services/dynamicSchemaService.d.ts +108 -0
  301. package/dist/services/dynamicSchemaService.js +444 -0
  302. package/dist/services/globalSave.d.ts +69 -0
  303. package/dist/services/globalSave.js +248 -0
  304. package/dist/services/historyService.d.ts +208 -0
  305. package/dist/services/historyService.js +321 -0
  306. package/dist/services/interruptService.d.ts +133 -0
  307. package/dist/services/interruptService.js +280 -0
  308. package/dist/services/nodeExecutionService.d.ts +63 -0
  309. package/dist/services/nodeExecutionService.js +266 -0
  310. package/dist/services/playgroundService.d.ts +130 -0
  311. package/dist/services/playgroundService.js +321 -0
  312. package/dist/services/portConfigApi.d.ts +14 -0
  313. package/dist/services/portConfigApi.js +54 -0
  314. package/dist/services/settingsService.d.ts +92 -0
  315. package/dist/services/settingsService.js +196 -0
  316. package/dist/services/toastService.d.ts +156 -0
  317. package/dist/services/toastService.js +265 -0
  318. package/dist/services/variableService.d.ts +141 -0
  319. package/dist/services/variableService.js +463 -0
  320. package/dist/services/workflowStorage.d.ts +37 -0
  321. package/dist/services/workflowStorage.js +116 -0
  322. package/dist/settings/index.d.ts +25 -0
  323. package/dist/settings/index.js +33 -0
  324. package/dist/stores/categoriesStore.svelte.d.ts +32 -0
  325. package/dist/stores/categoriesStore.svelte.js +77 -0
  326. package/dist/stores/editorStateMachine.svelte.d.ts +42 -0
  327. package/dist/stores/editorStateMachine.svelte.js +132 -0
  328. package/dist/stores/historyStore.svelte.d.ts +136 -0
  329. package/dist/stores/historyStore.svelte.js +207 -0
  330. package/dist/stores/interruptStore.svelte.d.ts +179 -0
  331. package/dist/stores/interruptStore.svelte.js +346 -0
  332. package/dist/stores/playgroundStore.svelte.d.ts +230 -0
  333. package/dist/stores/playgroundStore.svelte.js +515 -0
  334. package/dist/stores/portCoordinateStore.svelte.d.ts +66 -0
  335. package/dist/stores/portCoordinateStore.svelte.js +186 -0
  336. package/dist/stores/settingsStore.svelte.d.ts +158 -0
  337. package/dist/stores/settingsStore.svelte.js +544 -0
  338. package/dist/stores/workflowStore.svelte.d.ts +260 -0
  339. package/dist/stores/workflowStore.svelte.js +649 -0
  340. package/dist/stories/CanvasDecorator.svelte +49 -0
  341. package/dist/stories/CanvasDecorator.svelte.d.ts +8 -0
  342. package/dist/stories/NodeDecorator.svelte +73 -0
  343. package/dist/stories/NodeDecorator.svelte.d.ts +8 -0
  344. package/dist/stories/utils.d.ts +93 -0
  345. package/dist/stories/utils.js +122 -0
  346. package/dist/styles/base.css +1300 -0
  347. package/dist/styles/toast.css +35 -0
  348. package/dist/styles/tokens.css +475 -0
  349. package/dist/svelte-app.d.ts +150 -0
  350. package/dist/svelte-app.js +295 -0
  351. package/dist/types/agentspec.d.ts +318 -0
  352. package/dist/types/agentspec.js +48 -0
  353. package/dist/types/auth.d.ts +263 -0
  354. package/dist/types/auth.js +229 -0
  355. package/dist/types/config.d.ts +151 -0
  356. package/dist/types/config.js +7 -0
  357. package/dist/types/events.d.ts +190 -0
  358. package/dist/types/events.js +30 -0
  359. package/dist/types/index.d.ts +1234 -0
  360. package/dist/types/index.js +27 -0
  361. package/dist/types/interrupt.d.ts +390 -0
  362. package/dist/types/interrupt.js +145 -0
  363. package/dist/types/interruptState.d.ts +211 -0
  364. package/dist/types/interruptState.js +308 -0
  365. package/dist/types/playground.d.ts +351 -0
  366. package/dist/types/playground.js +95 -0
  367. package/dist/types/settings.d.ts +189 -0
  368. package/dist/types/settings.js +97 -0
  369. package/dist/types/uischema.d.ts +144 -0
  370. package/dist/types/uischema.js +51 -0
  371. package/dist/utils/colors.d.ts +288 -0
  372. package/dist/utils/colors.js +548 -0
  373. package/dist/utils/config.d.ts +37 -0
  374. package/dist/utils/config.js +226 -0
  375. package/dist/utils/connections.d.ts +125 -0
  376. package/dist/utils/connections.js +414 -0
  377. package/dist/utils/errors.d.ts +28 -0
  378. package/dist/utils/errors.js +44 -0
  379. package/dist/utils/fetchWithAuth.d.ts +25 -0
  380. package/dist/utils/fetchWithAuth.js +34 -0
  381. package/dist/utils/handleIds.d.ts +35 -0
  382. package/dist/utils/handleIds.js +58 -0
  383. package/dist/utils/handlePositioning.d.ts +31 -0
  384. package/dist/utils/handlePositioning.js +35 -0
  385. package/dist/utils/icons.d.ts +106 -0
  386. package/dist/utils/icons.js +157 -0
  387. package/dist/utils/logger.d.ts +47 -0
  388. package/dist/utils/logger.js +72 -0
  389. package/dist/utils/nodeStatus.d.ts +53 -0
  390. package/dist/utils/nodeStatus.js +183 -0
  391. package/dist/utils/nodeTypes.d.ts +117 -0
  392. package/dist/utils/nodeTypes.js +244 -0
  393. package/dist/utils/nodeWrapper.d.ts +39 -0
  394. package/dist/utils/nodeWrapper.js +62 -0
  395. package/dist/utils/performanceUtils.d.ts +30 -0
  396. package/dist/utils/performanceUtils.js +108 -0
  397. package/dist/utils/sanitize.d.ts +19 -0
  398. package/dist/utils/sanitize.js +31 -0
  399. package/dist/utils/uischema.d.ts +52 -0
  400. package/dist/utils/uischema.js +88 -0
  401. package/dist/utils/validation.d.ts +29 -0
  402. package/dist/utils/validation.js +39 -0
  403. package/package.json +292 -0
@@ -0,0 +1,299 @@
1
+ /**
2
+ * Draft Storage Service for FlowDrop
3
+ *
4
+ * Handles saving and loading workflow drafts to/from localStorage.
5
+ * Provides interval-based auto-save functionality.
6
+ *
7
+ * @module services/draftStorage
8
+ */
9
+ import { logger } from '../utils/logger.js';
10
+ /**
11
+ * Default storage key prefix
12
+ */
13
+ const STORAGE_KEY_PREFIX = 'flowdrop:draft';
14
+ /**
15
+ * Generate a storage key for a workflow
16
+ *
17
+ * If a custom key is provided, use it directly.
18
+ * Otherwise, generate based on workflow ID or use "new" for unsaved workflows.
19
+ *
20
+ * @param workflowId - The workflow ID (optional)
21
+ * @param customKey - Custom storage key provided by enterprise (optional)
22
+ * @returns The storage key to use
23
+ */
24
+ export function getDraftStorageKey(workflowId, customKey) {
25
+ if (customKey) {
26
+ return customKey;
27
+ }
28
+ if (workflowId) {
29
+ return `${STORAGE_KEY_PREFIX}:${workflowId}`;
30
+ }
31
+ return `${STORAGE_KEY_PREFIX}:new`;
32
+ }
33
+ /**
34
+ * Save a workflow draft to localStorage
35
+ *
36
+ * @param workflow - The workflow to save
37
+ * @param storageKey - The storage key to use
38
+ * @returns true if saved successfully, false otherwise
39
+ */
40
+ export function saveDraft(workflow, storageKey) {
41
+ try {
42
+ const draft = {
43
+ workflow,
44
+ metadata: {
45
+ savedAt: new Date().toISOString(),
46
+ workflowId: workflow.id,
47
+ workflowName: workflow.name
48
+ }
49
+ };
50
+ localStorage.setItem(storageKey, JSON.stringify(draft));
51
+ return true;
52
+ }
53
+ catch (error) {
54
+ // localStorage might be full or disabled
55
+ logger.warn('Failed to save draft to localStorage:', error);
56
+ return false;
57
+ }
58
+ }
59
+ /**
60
+ * Load a workflow draft from localStorage
61
+ *
62
+ * @param storageKey - The storage key to load from
63
+ * @returns The stored draft, or null if not found
64
+ */
65
+ export function loadDraft(storageKey) {
66
+ try {
67
+ const stored = localStorage.getItem(storageKey);
68
+ if (!stored) {
69
+ return null;
70
+ }
71
+ const draft = JSON.parse(stored);
72
+ // Validate the draft structure
73
+ if (!draft.workflow || !draft.metadata) {
74
+ logger.warn('Invalid draft structure in localStorage');
75
+ return null;
76
+ }
77
+ return draft;
78
+ }
79
+ catch (error) {
80
+ logger.warn('Failed to load draft from localStorage:', error);
81
+ return null;
82
+ }
83
+ }
84
+ /**
85
+ * Delete a workflow draft from localStorage
86
+ *
87
+ * @param storageKey - The storage key to delete
88
+ */
89
+ export function deleteDraft(storageKey) {
90
+ try {
91
+ localStorage.removeItem(storageKey);
92
+ }
93
+ catch (error) {
94
+ logger.warn('Failed to delete draft from localStorage:', error);
95
+ }
96
+ }
97
+ /**
98
+ * Check if a draft exists for a given storage key
99
+ *
100
+ * @param storageKey - The storage key to check
101
+ * @returns true if a draft exists
102
+ */
103
+ export function hasDraft(storageKey) {
104
+ try {
105
+ return localStorage.getItem(storageKey) !== null;
106
+ }
107
+ catch {
108
+ return false;
109
+ }
110
+ }
111
+ /**
112
+ * Get draft metadata without loading the full workflow
113
+ *
114
+ * Useful for displaying draft information without parsing the entire workflow.
115
+ *
116
+ * @param storageKey - The storage key to check
117
+ * @returns Draft metadata, or null if not found
118
+ */
119
+ export function getDraftMetadata(storageKey) {
120
+ const draft = loadDraft(storageKey);
121
+ return draft?.metadata ?? null;
122
+ }
123
+ /**
124
+ * Draft auto-save manager
125
+ *
126
+ * Handles interval-based auto-saving of workflow drafts.
127
+ * Should be instantiated per FlowDrop instance.
128
+ */
129
+ export class DraftAutoSaveManager {
130
+ /** Interval timer ID */
131
+ intervalId = null;
132
+ /** Storage key for drafts */
133
+ storageKey;
134
+ /** Auto-save interval in milliseconds */
135
+ interval;
136
+ /** Whether auto-save is enabled */
137
+ enabled;
138
+ /** Function to get current workflow */
139
+ getWorkflow;
140
+ /** Function to check if workflow is dirty */
141
+ isDirty;
142
+ /** Last saved workflow hash (for change detection) */
143
+ lastSavedHash = null;
144
+ /**
145
+ * Create a new DraftAutoSaveManager
146
+ *
147
+ * @param options - Configuration options
148
+ */
149
+ constructor(options) {
150
+ this.storageKey = options.storageKey;
151
+ this.interval = options.interval;
152
+ this.enabled = options.enabled;
153
+ this.getWorkflow = options.getWorkflow;
154
+ this.isDirty = options.isDirty;
155
+ }
156
+ /**
157
+ * Start auto-save interval
158
+ *
159
+ * Will save drafts at the configured interval if there are unsaved changes.
160
+ */
161
+ start() {
162
+ if (!this.enabled || this.intervalId) {
163
+ return;
164
+ }
165
+ this.intervalId = setInterval(() => {
166
+ this.saveIfDirty();
167
+ }, this.interval);
168
+ }
169
+ /**
170
+ * Stop auto-save interval
171
+ */
172
+ stop() {
173
+ if (this.intervalId) {
174
+ clearInterval(this.intervalId);
175
+ this.intervalId = null;
176
+ }
177
+ }
178
+ /**
179
+ * Save draft if there are unsaved changes
180
+ *
181
+ * @returns true if a draft was saved
182
+ */
183
+ saveIfDirty() {
184
+ if (!this.enabled) {
185
+ return false;
186
+ }
187
+ const workflow = this.getWorkflow();
188
+ if (!workflow) {
189
+ return false;
190
+ }
191
+ // Only save if dirty
192
+ if (!this.isDirty()) {
193
+ return false;
194
+ }
195
+ // Check if workflow has actually changed since last save
196
+ const currentHash = this.hashWorkflow(workflow);
197
+ if (currentHash === this.lastSavedHash) {
198
+ return false;
199
+ }
200
+ const saved = saveDraft(workflow, this.storageKey);
201
+ if (saved) {
202
+ this.lastSavedHash = currentHash;
203
+ }
204
+ return saved;
205
+ }
206
+ /**
207
+ * Force save the current workflow as a draft
208
+ *
209
+ * Saves regardless of dirty state.
210
+ *
211
+ * @returns true if saved successfully
212
+ */
213
+ forceSave() {
214
+ const workflow = this.getWorkflow();
215
+ if (!workflow) {
216
+ return false;
217
+ }
218
+ const saved = saveDraft(workflow, this.storageKey);
219
+ if (saved) {
220
+ this.lastSavedHash = this.hashWorkflow(workflow);
221
+ }
222
+ return saved;
223
+ }
224
+ /**
225
+ * Clear the draft from storage
226
+ */
227
+ clearDraft() {
228
+ deleteDraft(this.storageKey);
229
+ this.lastSavedHash = null;
230
+ }
231
+ /**
232
+ * Mark the current state as saved
233
+ *
234
+ * Updates the hash so the next saveIfDirty won't save unless there are new changes.
235
+ */
236
+ markAsSaved() {
237
+ const workflow = this.getWorkflow();
238
+ if (workflow) {
239
+ this.lastSavedHash = this.hashWorkflow(workflow);
240
+ }
241
+ }
242
+ /**
243
+ * Update the storage key
244
+ *
245
+ * Useful when the workflow ID changes (e.g., after first save).
246
+ *
247
+ * @param newKey - The new storage key
248
+ */
249
+ updateStorageKey(newKey) {
250
+ // If there's an existing draft with the old key, migrate it
251
+ const existingDraft = loadDraft(this.storageKey);
252
+ if (existingDraft && this.storageKey !== newKey) {
253
+ deleteDraft(this.storageKey);
254
+ saveDraft(existingDraft.workflow, newKey);
255
+ }
256
+ this.storageKey = newKey;
257
+ }
258
+ /**
259
+ * Simple hash function for change detection
260
+ *
261
+ * Not cryptographically secure, just for detecting changes.
262
+ *
263
+ * @param workflow - The workflow to hash
264
+ * @returns A simple hash string
265
+ */
266
+ hashWorkflow(workflow) {
267
+ // Use a simple stringification for change detection
268
+ // We only need nodes, edges, name, and description for change detection
269
+ const toHash = {
270
+ name: workflow.name,
271
+ description: workflow.description,
272
+ nodes: workflow.nodes.map((n) => ({
273
+ id: n.id,
274
+ position: n.position,
275
+ data: n.data
276
+ })),
277
+ edges: workflow.edges.map((e) => ({
278
+ id: e.id,
279
+ source: e.source,
280
+ target: e.target,
281
+ sourceHandle: e.sourceHandle,
282
+ targetHandle: e.targetHandle
283
+ }))
284
+ };
285
+ return JSON.stringify(toHash);
286
+ }
287
+ /**
288
+ * Check if auto-save is currently running
289
+ */
290
+ isRunning() {
291
+ return this.intervalId !== null;
292
+ }
293
+ /**
294
+ * Get the current storage key
295
+ */
296
+ getStorageKey() {
297
+ return this.storageKey;
298
+ }
299
+ }
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Dynamic Schema Service
3
+ * Handles fetching configuration schemas from REST endpoints at runtime.
4
+ * Used for nodes where the config schema cannot be determined at workflow load time.
5
+ *
6
+ * @module services/dynamicSchemaService
7
+ */
8
+ import type { ConfigSchema, DynamicSchemaEndpoint, ExternalEditLink, ConfigEditOptions, WorkflowNode } from '../types/index.js';
9
+ /**
10
+ * Result of a dynamic schema fetch operation
11
+ */
12
+ export interface DynamicSchemaResult {
13
+ /** Whether the fetch was successful */
14
+ success: boolean;
15
+ /** The fetched config schema (if successful) */
16
+ schema?: ConfigSchema;
17
+ /** Error message (if failed) */
18
+ error?: string;
19
+ /** Whether the schema was loaded from cache */
20
+ fromCache?: boolean;
21
+ }
22
+ /**
23
+ * Fetches a dynamic configuration schema from a REST endpoint.
24
+ *
25
+ * @param endpoint - The dynamic schema endpoint configuration
26
+ * @param node - The workflow node instance
27
+ * @param workflowId - Optional workflow ID for context
28
+ * @returns A promise that resolves to the schema result
29
+ *
30
+ * @example
31
+ * ```typescript
32
+ * const endpoint: DynamicSchemaEndpoint = {
33
+ * url: "/api/nodes/{nodeTypeId}/schema",
34
+ * method: "GET",
35
+ * parameterMapping: { nodeTypeId: "metadata.id" }
36
+ * };
37
+ *
38
+ * const result = await fetchDynamicSchema(endpoint, node);
39
+ * if (result.success && result.schema) {
40
+ * // Use the fetched schema
41
+ * }
42
+ * ```
43
+ */
44
+ export declare function fetchDynamicSchema(endpoint: DynamicSchemaEndpoint, node: WorkflowNode, workflowId?: string): Promise<DynamicSchemaResult>;
45
+ /**
46
+ * Resolves an external edit link URL with template variables.
47
+ *
48
+ * @param link - The external edit link configuration
49
+ * @param node - The workflow node instance
50
+ * @param workflowId - Optional workflow ID for context
51
+ * @param callbackUrl - Optional callback URL to append
52
+ * @returns The resolved URL string
53
+ *
54
+ * @example
55
+ * ```typescript
56
+ * const link: ExternalEditLink = {
57
+ * url: "https://admin.example.com/nodes/{nodeTypeId}/edit/{instanceId}",
58
+ * parameterMapping: { nodeTypeId: "metadata.id", instanceId: "id" }
59
+ * };
60
+ *
61
+ * const url = resolveExternalEditUrl(link, node, workflowId);
62
+ * // Returns "https://admin.example.com/nodes/llm-node/edit/node-1"
63
+ * ```
64
+ */
65
+ export declare function resolveExternalEditUrl(link: ExternalEditLink, node: WorkflowNode, workflowId?: string, callbackUrl?: string): string;
66
+ /**
67
+ * Gets the effective config edit options for a node.
68
+ * Merges node type defaults with instance-level overrides.
69
+ *
70
+ * @param node - The workflow node instance
71
+ * @returns The merged config edit options, or undefined if not configured
72
+ */
73
+ export declare function getEffectiveConfigEditOptions(node: WorkflowNode): ConfigEditOptions | undefined;
74
+ /**
75
+ * Clears the schema cache.
76
+ * Can optionally clear only entries matching a specific pattern.
77
+ *
78
+ * @param pattern - Optional pattern to match cache keys (e.g., node type ID)
79
+ */
80
+ export declare function clearSchemaCache(pattern?: string): void;
81
+ /**
82
+ * Invalidates a specific schema cache entry for a node.
83
+ *
84
+ * @param node - The workflow node to invalidate cache for
85
+ * @param endpoint - The dynamic schema endpoint configuration
86
+ */
87
+ export declare function invalidateSchemaCache(node: WorkflowNode, endpoint: DynamicSchemaEndpoint): void;
88
+ /**
89
+ * Checks if a node has config edit options configured.
90
+ *
91
+ * @param node - The workflow node to check
92
+ * @returns True if the node has config edit options configured
93
+ */
94
+ export declare function hasConfigEditOptions(node: WorkflowNode): boolean;
95
+ /**
96
+ * Determines if external edit should be shown for a node.
97
+ *
98
+ * @param node - The workflow node to check
99
+ * @returns True if external edit link should be shown
100
+ */
101
+ export declare function shouldShowExternalEdit(node: WorkflowNode): boolean;
102
+ /**
103
+ * Determines if dynamic schema should be used for a node.
104
+ *
105
+ * @param node - The workflow node to check
106
+ * @returns True if dynamic schema should be fetched
107
+ */
108
+ export declare function shouldUseDynamicSchema(node: WorkflowNode): boolean;