@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,368 @@
1
+ /**
2
+ * WorkflowAdapter - Abstracts SvelteFlow internals for external systems
3
+ *
4
+ * This adapter provides a clean interface for working with workflows without
5
+ * needing to understand SvelteFlow's internal structure. It handles:
6
+ * - Converting between standard workflow format and SvelteFlow format
7
+ * - CRUD operations on workflows, nodes, and edges
8
+ * - Validation and error checking
9
+ * - Import/export functionality
10
+ *
11
+ * The adapter is designed to be used by:
12
+ * - Backend systems that need to process workflows
13
+ * - External applications that want to integrate with FlowDrop
14
+ * - Systems that need to generate or modify workflows programmatically
15
+ */
16
+ import { v4 as uuidv4 } from 'uuid';
17
+ /**
18
+ * Generate a unique node ID based on node type and existing nodes
19
+ * Format: <node_type>.<number>
20
+ * Example: boolean_gateway.1, calculator.2
21
+ */
22
+ function generateStandardNodeId(nodeTypeId, existingNodes) {
23
+ // Count how many nodes of this type already exist
24
+ const existingNodeIds = existingNodes
25
+ .filter((node) => node.data?.metadata?.id === nodeTypeId)
26
+ .map((node) => node.id);
27
+ // Extract the numbers from existing IDs with the same prefix
28
+ const existingNumbers = existingNodeIds
29
+ .map((id) => {
30
+ const match = id.match(new RegExp(`^${nodeTypeId}\\.(\\d+)$`));
31
+ return match ? parseInt(match[1], 10) : 0;
32
+ })
33
+ .filter((num) => num > 0);
34
+ // Find the next available number (highest + 1)
35
+ const nextNumber = existingNumbers.length > 0 ? Math.max(...existingNumbers) + 1 : 1;
36
+ return `${nodeTypeId}.${nextNumber}`;
37
+ }
38
+ /**
39
+ * Workflow Adapter Class
40
+ * Provides a clean API for workflow operations without exposing SvelteFlow internals
41
+ */
42
+ export class WorkflowAdapter {
43
+ nodeTypes = [];
44
+ constructor(nodeTypes = []) {
45
+ this.nodeTypes = nodeTypes;
46
+ }
47
+ /**
48
+ * Create a new workflow
49
+ */
50
+ createWorkflow(name, description) {
51
+ return {
52
+ id: uuidv4(),
53
+ name,
54
+ description,
55
+ nodes: [],
56
+ edges: [],
57
+ metadata: {
58
+ version: '1.0.0',
59
+ createdAt: new Date().toISOString(),
60
+ updatedAt: new Date().toISOString()
61
+ }
62
+ };
63
+ }
64
+ /**
65
+ * Add a node to a workflow
66
+ */
67
+ addNode(workflow, nodeType, position, config) {
68
+ const metadata = this.nodeTypes.find((nt) => nt.id === nodeType);
69
+ if (!metadata) {
70
+ throw new Error(`Node type '${nodeType}' not found`);
71
+ }
72
+ // Generate node ID based on node type and existing nodes
73
+ const nodeId = generateStandardNodeId(nodeType, workflow.nodes);
74
+ const node = {
75
+ id: nodeId,
76
+ type: nodeType,
77
+ position,
78
+ data: {
79
+ label: metadata.name,
80
+ config: config || {},
81
+ metadata
82
+ }
83
+ };
84
+ workflow.nodes.push(node);
85
+ workflow.metadata.updatedAt = new Date().toISOString();
86
+ return node;
87
+ }
88
+ /**
89
+ * Remove a node from a workflow
90
+ */
91
+ removeNode(workflow, nodeId) {
92
+ const nodeIndex = workflow.nodes.findIndex((n) => n.id === nodeId);
93
+ if (nodeIndex === -1)
94
+ return false;
95
+ workflow.nodes.splice(nodeIndex, 1);
96
+ // Remove associated edges
97
+ workflow.edges = workflow.edges.filter((edge) => edge.source !== nodeId && edge.target !== nodeId);
98
+ workflow.metadata.updatedAt = new Date().toISOString();
99
+ return true;
100
+ }
101
+ /**
102
+ * Update node position
103
+ */
104
+ updateNodePosition(workflow, nodeId, position) {
105
+ const node = workflow.nodes.find((n) => n.id === nodeId);
106
+ if (!node)
107
+ return false;
108
+ node.position = position;
109
+ workflow.metadata.updatedAt = new Date().toISOString();
110
+ return true;
111
+ }
112
+ /**
113
+ * Update node configuration
114
+ */
115
+ updateNodeConfig(workflow, nodeId, config) {
116
+ const node = workflow.nodes.find((n) => n.id === nodeId);
117
+ if (!node)
118
+ return false;
119
+ node.data.config = { ...node.data.config, ...config };
120
+ workflow.metadata.updatedAt = new Date().toISOString();
121
+ return true;
122
+ }
123
+ /**
124
+ * Add an edge between nodes
125
+ */
126
+ addEdge(workflow, sourceNodeId, targetNodeId, sourceHandle, targetHandle) {
127
+ const edge = {
128
+ id: uuidv4(),
129
+ source: sourceNodeId,
130
+ target: targetNodeId,
131
+ sourceHandle,
132
+ targetHandle
133
+ };
134
+ workflow.edges.push(edge);
135
+ workflow.metadata.updatedAt = new Date().toISOString();
136
+ return edge;
137
+ }
138
+ /**
139
+ * Remove an edge from a workflow
140
+ */
141
+ removeEdge(workflow, edgeId) {
142
+ const edgeIndex = workflow.edges.findIndex((e) => e.id === edgeId);
143
+ if (edgeIndex === -1)
144
+ return false;
145
+ workflow.edges.splice(edgeIndex, 1);
146
+ workflow.metadata.updatedAt = new Date().toISOString();
147
+ return true;
148
+ }
149
+ /**
150
+ * Get all nodes of a specific type
151
+ */
152
+ getNodesByType(workflow, nodeType) {
153
+ return workflow.nodes.filter((node) => node.type === nodeType);
154
+ }
155
+ /**
156
+ * Get all edges connected to a node
157
+ */
158
+ getNodeEdges(workflow, nodeId) {
159
+ return workflow.edges.filter((edge) => edge.source === nodeId || edge.target === nodeId);
160
+ }
161
+ /**
162
+ * Get connected nodes (both incoming and outgoing)
163
+ */
164
+ getConnectedNodes(workflow, nodeId) {
165
+ const connectedNodeIds = new Set();
166
+ workflow.edges.forEach((edge) => {
167
+ if (edge.source === nodeId) {
168
+ connectedNodeIds.add(edge.target);
169
+ }
170
+ else if (edge.target === nodeId) {
171
+ connectedNodeIds.add(edge.source);
172
+ }
173
+ });
174
+ return workflow.nodes.filter((node) => connectedNodeIds.has(node.id));
175
+ }
176
+ /**
177
+ * Validate workflow structure
178
+ */
179
+ validateWorkflow(workflow) {
180
+ const errors = [];
181
+ const warnings = [];
182
+ // Check for empty workflow
183
+ if (workflow.nodes.length === 0) {
184
+ warnings.push('Workflow has no nodes');
185
+ }
186
+ // Check for orphaned edges
187
+ const nodeIds = new Set(workflow.nodes.map((n) => n.id));
188
+ workflow.edges.forEach((edge) => {
189
+ if (!nodeIds.has(edge.source)) {
190
+ errors.push(`Edge ${edge.id} references non-existent source node ${edge.source}`);
191
+ }
192
+ if (!nodeIds.has(edge.target)) {
193
+ errors.push(`Edge ${edge.id} references non-existent target node ${edge.target}`);
194
+ }
195
+ });
196
+ // Check for self-connections
197
+ workflow.edges.forEach((edge) => {
198
+ if (edge.source === edge.target) {
199
+ errors.push(`Node ${edge.source} cannot connect to itself`);
200
+ }
201
+ });
202
+ // Check for duplicate node IDs
203
+ const nodeIdCounts = new Map();
204
+ workflow.nodes.forEach((node) => {
205
+ nodeIdCounts.set(node.id, (nodeIdCounts.get(node.id) || 0) + 1);
206
+ });
207
+ nodeIdCounts.forEach((count, id) => {
208
+ if (count > 1) {
209
+ errors.push(`Duplicate node ID: ${id}`);
210
+ }
211
+ });
212
+ // Check for duplicate edge IDs
213
+ const edgeIdCounts = new Map();
214
+ workflow.edges.forEach((edge) => {
215
+ edgeIdCounts.set(edge.id, (edgeIdCounts.get(edge.id) || 0) + 1);
216
+ });
217
+ edgeIdCounts.forEach((count, id) => {
218
+ if (count > 1) {
219
+ errors.push(`Duplicate edge ID: ${id}`);
220
+ }
221
+ });
222
+ return {
223
+ valid: errors.length === 0,
224
+ errors,
225
+ warnings
226
+ };
227
+ }
228
+ /**
229
+ * Export workflow to JSON
230
+ */
231
+ exportWorkflow(workflow) {
232
+ return JSON.stringify(workflow, null, 2);
233
+ }
234
+ /**
235
+ * Import workflow from JSON
236
+ */
237
+ importWorkflow(json) {
238
+ try {
239
+ const workflow = JSON.parse(json);
240
+ // Validate the imported workflow
241
+ const validation = this.validateWorkflow(workflow);
242
+ if (!validation.valid) {
243
+ throw new Error(`Invalid workflow: ${validation.errors.join(', ')}`);
244
+ }
245
+ // Update metadata
246
+ workflow.metadata = {
247
+ version: workflow.metadata?.version || '1.0.0',
248
+ createdAt: workflow.metadata?.createdAt || new Date().toISOString(),
249
+ updatedAt: new Date().toISOString(),
250
+ author: workflow.metadata?.author,
251
+ tags: workflow.metadata?.tags
252
+ };
253
+ return workflow;
254
+ }
255
+ catch (error) {
256
+ throw new Error(`Failed to import workflow: ${error instanceof Error ? error.message : 'Unknown error'}`);
257
+ }
258
+ }
259
+ /**
260
+ * Convert SvelteFlow workflow to standard format
261
+ */
262
+ fromSvelteFlow(svelteFlowWorkflow) {
263
+ return {
264
+ id: svelteFlowWorkflow.id,
265
+ name: svelteFlowWorkflow.name,
266
+ description: svelteFlowWorkflow.description,
267
+ nodes: svelteFlowWorkflow.nodes.map((node) => ({
268
+ id: node.id,
269
+ type: node.data.metadata.id,
270
+ position: node.position,
271
+ data: {
272
+ label: node.data.label,
273
+ config: node.data.config,
274
+ metadata: node.data.metadata
275
+ }
276
+ })),
277
+ edges: svelteFlowWorkflow.edges.map((edge) => ({
278
+ id: edge.id,
279
+ source: edge.source,
280
+ target: edge.target,
281
+ sourceHandle: edge.sourceHandle,
282
+ targetHandle: edge.targetHandle
283
+ })),
284
+ metadata: svelteFlowWorkflow.metadata
285
+ };
286
+ }
287
+ /**
288
+ * Convert standard workflow to SvelteFlow format
289
+ */
290
+ toSvelteFlow(workflow) {
291
+ return {
292
+ id: workflow.id,
293
+ name: workflow.name,
294
+ description: workflow.description,
295
+ nodes: workflow.nodes.map((node) => ({
296
+ id: node.id,
297
+ type: 'workflowNode',
298
+ position: node.position,
299
+ deletable: true,
300
+ data: {
301
+ label: node.data.label,
302
+ config: node.data.config,
303
+ metadata: node.data.metadata,
304
+ nodeId: node.id
305
+ }
306
+ })),
307
+ edges: workflow.edges.map((edge) => ({
308
+ id: edge.id,
309
+ source: edge.source,
310
+ target: edge.target,
311
+ sourceHandle: edge.sourceHandle,
312
+ targetHandle: edge.targetHandle
313
+ })),
314
+ metadata: workflow.metadata
315
+ };
316
+ }
317
+ /**
318
+ * Get workflow statistics
319
+ */
320
+ getWorkflowStats(workflow) {
321
+ const nodeTypeCounts = new Map();
322
+ workflow.nodes.forEach((node) => {
323
+ nodeTypeCounts.set(node.type, (nodeTypeCounts.get(node.type) || 0) + 1);
324
+ });
325
+ return {
326
+ totalNodes: workflow.nodes.length,
327
+ totalEdges: workflow.edges.length,
328
+ nodeTypeCounts: Object.fromEntries(nodeTypeCounts),
329
+ lastModified: workflow.metadata?.updatedAt
330
+ };
331
+ }
332
+ /**
333
+ * Clone a workflow
334
+ */
335
+ cloneWorkflow(workflow, newName) {
336
+ const cloned = JSON.parse(JSON.stringify(workflow));
337
+ // Generate new IDs for all nodes and edges
338
+ const idMapping = new Map();
339
+ // Count nodes by type to generate proper sequential IDs
340
+ const nodeTypeCounts = new Map();
341
+ cloned.nodes.forEach((node) => {
342
+ const oldId = node.id;
343
+ const nodeTypeId = node.data.metadata.id;
344
+ // Get the current count for this node type
345
+ const currentCount = nodeTypeCounts.get(nodeTypeId) || 0;
346
+ const newCount = currentCount + 1;
347
+ nodeTypeCounts.set(nodeTypeId, newCount);
348
+ // Generate new ID with the sequential number
349
+ node.id = `${nodeTypeId}.${newCount}`;
350
+ idMapping.set(oldId, node.id);
351
+ });
352
+ cloned.edges.forEach((edge) => {
353
+ edge.id = uuidv4();
354
+ edge.source = idMapping.get(edge.source) || edge.source;
355
+ edge.target = idMapping.get(edge.target) || edge.target;
356
+ });
357
+ cloned.id = uuidv4();
358
+ cloned.name = newName || `${workflow.name} (Copy)`;
359
+ cloned.metadata = {
360
+ version: cloned.metadata?.version || '1.0.0',
361
+ createdAt: new Date().toISOString(),
362
+ updatedAt: new Date().toISOString(),
363
+ author: cloned.metadata?.author,
364
+ tags: cloned.metadata?.tags
365
+ };
366
+ return cloned;
367
+ }
368
+ }
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Agent Spec Adapter — Bidirectional conversion between FlowDrop and Agent Spec
3
+ *
4
+ * Converts between FlowDrop's StandardWorkflow format and Oracle's Open Agent Spec
5
+ * JSON format. Handles the key structural differences:
6
+ * - Unified edges (FlowDrop) ↔ control-flow + data-flow edges (Agent Spec)
7
+ * - Node IDs (FlowDrop) ↔ node names (Agent Spec)
8
+ * - Visual positions (FlowDrop) ↔ no positions (Agent Spec)
9
+ *
10
+ * @see https://github.com/oracle/agent-spec
11
+ */
12
+ import type { AgentSpecFlow } from '../../types/agentspec.js';
13
+ import type { StandardWorkflow } from '../WorkflowAdapter.js';
14
+ export declare class AgentSpecAdapter {
15
+ /**
16
+ * Convert a FlowDrop StandardWorkflow to an Agent Spec Flow.
17
+ *
18
+ * Handles:
19
+ * - Node conversion with config → node attributes
20
+ * - Edge splitting into control-flow and data-flow
21
+ * - Position preservation in metadata
22
+ * - Gateway branch → from_branch mapping
23
+ */
24
+ toAgentSpec(workflow: StandardWorkflow): AgentSpecFlow;
25
+ /**
26
+ * Export a FlowDrop StandardWorkflow as Agent Spec JSON string.
27
+ */
28
+ exportJSON(workflow: StandardWorkflow): string;
29
+ /**
30
+ * Convert an Agent Spec Flow to a FlowDrop StandardWorkflow.
31
+ *
32
+ * Handles:
33
+ * - Auto-layout (Agent Spec has no positions)
34
+ * - Edge merging (control-flow + data-flow → unified edges)
35
+ * - Node type mapping via registry
36
+ * - Component type preservation in extensions
37
+ */
38
+ fromAgentSpec(agentSpecFlow: AgentSpecFlow): StandardWorkflow;
39
+ /**
40
+ * Import an Agent Spec flow from a JSON string.
41
+ */
42
+ importJSON(json: string): StandardWorkflow;
43
+ /**
44
+ * Resolve a stable name for a FlowDrop node in Agent Spec.
45
+ * Uses the node's config instanceTitle, label, or falls back to ID.
46
+ */
47
+ private resolveNodeName;
48
+ /**
49
+ * Convert a FlowDrop StandardNode to an Agent Spec node.
50
+ */
51
+ private convertNodeToAgentSpec;
52
+ /**
53
+ * Add Agent Spec type-specific attributes from FlowDrop config.
54
+ */
55
+ private addNodeSpecificAttributes;
56
+ /**
57
+ * Resolve Agent Spec component type from a FlowDrop node.
58
+ */
59
+ private resolveComponentType;
60
+ /**
61
+ * Convert an Agent Spec node to a FlowDrop StandardNode.
62
+ *
63
+ * Uses lightweight component type defaults for trigger ports and visual styling.
64
+ * Does NOT depend on the full node type registry — works with any component_type,
65
+ * including custom/unknown types (falls back to sensible defaults).
66
+ */
67
+ private convertNodeFromAgentSpec;
68
+ /**
69
+ * Extract FlowDrop config values from Agent Spec node-specific attributes.
70
+ */
71
+ private extractConfigFromAgentSpec;
72
+ /**
73
+ * Get the data type of a source port from a FlowDrop node.
74
+ */
75
+ private getSourcePortDataType;
76
+ /**
77
+ * Convert a FlowDrop trigger edge to an Agent Spec ControlFlowEdge.
78
+ */
79
+ private convertToControlFlowEdge;
80
+ /**
81
+ * Convert a FlowDrop data edge to an Agent Spec DataFlowEdge.
82
+ */
83
+ private convertToDataFlowEdge;
84
+ /**
85
+ * Convert an Agent Spec ControlFlowEdge to a FlowDrop edge.
86
+ */
87
+ private convertFromControlFlowEdge;
88
+ /**
89
+ * Convert an Agent Spec DataFlowEdge to a FlowDrop edge.
90
+ */
91
+ private convertFromDataFlowEdge;
92
+ /**
93
+ * Find the start node name from converted Agent Spec nodes.
94
+ */
95
+ private findStartNodeName;
96
+ }