@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,106 @@
1
+ /**
2
+ * Agent Spec Execution Service
3
+ *
4
+ * Connects FlowDrop to Agent Spec runtimes (WayFlow/PyAgentSpec) for
5
+ * workflow execution, status tracking, and result retrieval.
6
+ *
7
+ * Follows the same singleton pattern as NodeExecutionService.
8
+ */
9
+ import type { NodeExecutionInfo } from '../types/index.js';
10
+ import type { StandardWorkflow } from '../adapters/WorkflowAdapter.js';
11
+ import type { AgentSpecEndpointConfig } from '../config/agentSpecEndpoints.js';
12
+ /** Result returned when starting an execution */
13
+ export interface AgentSpecExecutionHandle {
14
+ /** Unique execution ID from the runtime */
15
+ executionId: string;
16
+ /** Stop polling and clean up */
17
+ stop: () => void;
18
+ }
19
+ /**
20
+ * Service for executing FlowDrop workflows on Agent Spec runtimes.
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * const service = AgentSpecExecutionService.getInstance();
25
+ * service.configure(myRuntimeConfig);
26
+ *
27
+ * // Check runtime availability
28
+ * const healthy = await service.checkHealth();
29
+ *
30
+ * // Execute a workflow
31
+ * const handle = await service.executeWorkflow(workflow, inputs, {
32
+ * onNodeUpdate: (nodeId, info) => updateNodeVisual(nodeId, info),
33
+ * onComplete: (results) => showResults(results),
34
+ * onError: (error) => showError(error)
35
+ * });
36
+ *
37
+ * // Cancel if needed
38
+ * await service.cancelExecution(handle.executionId);
39
+ * ```
40
+ */
41
+ export declare class AgentSpecExecutionService {
42
+ private static instance;
43
+ private config;
44
+ private adapter;
45
+ private activeExecutions;
46
+ private constructor();
47
+ static getInstance(): AgentSpecExecutionService;
48
+ /**
49
+ * Configure the runtime connection.
50
+ */
51
+ configure(config: AgentSpecEndpointConfig): void;
52
+ /**
53
+ * Check if the service has been configured with a runtime.
54
+ */
55
+ isConfigured(): boolean;
56
+ /**
57
+ * Check runtime health.
58
+ */
59
+ checkHealth(): Promise<boolean>;
60
+ /**
61
+ * Execute a FlowDrop workflow on the Agent Spec runtime.
62
+ *
63
+ * 1. Converts StandardWorkflow → AgentSpecFlow using the adapter
64
+ * 2. POSTs the flow JSON to the runtime
65
+ * 3. Starts polling for execution status
66
+ * 4. Maps runtime node statuses to FlowDrop's NodeExecutionInfo
67
+ */
68
+ executeWorkflow(workflow: StandardWorkflow, inputs?: Record<string, unknown>, callbacks?: {
69
+ onNodeUpdate?: (nodeId: string, info: NodeExecutionInfo) => void;
70
+ onComplete?: (results: Record<string, unknown>) => void;
71
+ onError?: (error: Error) => void;
72
+ }, pollingIntervalMs?: number): Promise<AgentSpecExecutionHandle>;
73
+ /**
74
+ * Get current execution status.
75
+ */
76
+ getExecutionStatus(executionId: string): Promise<Record<string, NodeExecutionInfo> | null>;
77
+ /**
78
+ * Cancel a running execution.
79
+ */
80
+ cancelExecution(executionId: string): Promise<void>;
81
+ /**
82
+ * Get execution results.
83
+ */
84
+ getResults(executionId: string): Promise<Record<string, unknown> | null>;
85
+ /**
86
+ * Validate a workflow against the runtime.
87
+ */
88
+ validateOnRuntime(workflow: StandardWorkflow): Promise<{
89
+ valid: boolean;
90
+ errors?: string[];
91
+ }>;
92
+ /**
93
+ * Clean up all active executions.
94
+ */
95
+ destroy(): void;
96
+ private ensureConfigured;
97
+ /** Get the config, throwing if not configured */
98
+ private getConfig;
99
+ private startPolling;
100
+ private stopPolling;
101
+ private mapRuntimeStatusToNodeInfo;
102
+ private mapSingleNodeStatus;
103
+ private mapToFlowDropStatus;
104
+ }
105
+ /** Singleton instance */
106
+ export declare const agentSpecExecutionService: AgentSpecExecutionService;
@@ -0,0 +1,334 @@
1
+ /**
2
+ * Agent Spec Execution Service
3
+ *
4
+ * Connects FlowDrop to Agent Spec runtimes (WayFlow/PyAgentSpec) for
5
+ * workflow execution, status tracking, and result retrieval.
6
+ *
7
+ * Follows the same singleton pattern as NodeExecutionService.
8
+ */
9
+ import { buildAgentSpecUrl, getAgentSpecAuthHeaders } from '../config/agentSpecEndpoints.js';
10
+ import { AgentSpecAdapter } from '../adapters/agentspec/AgentSpecAdapter.js';
11
+ import { logger } from '../utils/logger.js';
12
+ /**
13
+ * Service for executing FlowDrop workflows on Agent Spec runtimes.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * const service = AgentSpecExecutionService.getInstance();
18
+ * service.configure(myRuntimeConfig);
19
+ *
20
+ * // Check runtime availability
21
+ * const healthy = await service.checkHealth();
22
+ *
23
+ * // Execute a workflow
24
+ * const handle = await service.executeWorkflow(workflow, inputs, {
25
+ * onNodeUpdate: (nodeId, info) => updateNodeVisual(nodeId, info),
26
+ * onComplete: (results) => showResults(results),
27
+ * onError: (error) => showError(error)
28
+ * });
29
+ *
30
+ * // Cancel if needed
31
+ * await service.cancelExecution(handle.executionId);
32
+ * ```
33
+ */
34
+ export class AgentSpecExecutionService {
35
+ static instance;
36
+ config = null;
37
+ adapter;
38
+ activeExecutions = new Map();
39
+ constructor() {
40
+ this.adapter = new AgentSpecAdapter();
41
+ }
42
+ static getInstance() {
43
+ if (!AgentSpecExecutionService.instance) {
44
+ AgentSpecExecutionService.instance = new AgentSpecExecutionService();
45
+ }
46
+ return AgentSpecExecutionService.instance;
47
+ }
48
+ /**
49
+ * Configure the runtime connection.
50
+ */
51
+ configure(config) {
52
+ this.config = config;
53
+ }
54
+ /**
55
+ * Check if the service has been configured with a runtime.
56
+ */
57
+ isConfigured() {
58
+ return this.config !== null;
59
+ }
60
+ /**
61
+ * Check runtime health.
62
+ */
63
+ async checkHealth() {
64
+ if (!this.config)
65
+ return false;
66
+ try {
67
+ const url = buildAgentSpecUrl(this.config, this.config.endpoints.health);
68
+ const response = await fetch(url, {
69
+ headers: getAgentSpecAuthHeaders(this.config),
70
+ signal: AbortSignal.timeout(5000)
71
+ });
72
+ return response.ok;
73
+ }
74
+ catch {
75
+ return false;
76
+ }
77
+ }
78
+ /**
79
+ * Execute a FlowDrop workflow on the Agent Spec runtime.
80
+ *
81
+ * 1. Converts StandardWorkflow → AgentSpecFlow using the adapter
82
+ * 2. POSTs the flow JSON to the runtime
83
+ * 3. Starts polling for execution status
84
+ * 4. Maps runtime node statuses to FlowDrop's NodeExecutionInfo
85
+ */
86
+ async executeWorkflow(workflow, inputs, callbacks, pollingIntervalMs = 2000) {
87
+ this.ensureConfigured();
88
+ // Convert to Agent Spec format
89
+ const agentSpecFlow = this.adapter.toAgentSpec(workflow);
90
+ // POST to runtime
91
+ const url = buildAgentSpecUrl(this.getConfig(), this.getConfig().endpoints.execute);
92
+ const response = await fetch(url, {
93
+ method: 'POST',
94
+ headers: getAgentSpecAuthHeaders(this.getConfig()),
95
+ body: JSON.stringify({
96
+ flow: agentSpecFlow,
97
+ inputs: inputs || {}
98
+ }),
99
+ signal: AbortSignal.timeout(this.getConfig().timeout || 60000)
100
+ });
101
+ if (!response.ok) {
102
+ const errorText = await response.text().catch(() => 'Unknown error');
103
+ throw new Error(`Agent Spec runtime error (${response.status}): ${errorText}`);
104
+ }
105
+ const result = await response.json();
106
+ const executionId = result.execution_id || result.id;
107
+ if (!executionId) {
108
+ throw new Error('Runtime did not return an execution ID');
109
+ }
110
+ // Track execution
111
+ const state = {
112
+ id: executionId,
113
+ status: 'running',
114
+ startedAt: new Date().toISOString(),
115
+ nodeStatuses: {}
116
+ };
117
+ this.activeExecutions.set(executionId, state);
118
+ // Build node name → FlowDrop node ID mapping for status updates
119
+ const nameToNodeId = new Map();
120
+ for (const node of workflow.nodes) {
121
+ const label = node.data.label || node.id;
122
+ nameToNodeId.set(label, node.id);
123
+ }
124
+ // Start polling
125
+ const stop = () => this.stopPolling(executionId);
126
+ if (callbacks) {
127
+ this.startPolling(executionId, nameToNodeId, callbacks.onNodeUpdate, callbacks.onComplete, callbacks.onError, pollingIntervalMs);
128
+ }
129
+ return { executionId, stop };
130
+ }
131
+ /**
132
+ * Get current execution status.
133
+ */
134
+ async getExecutionStatus(executionId) {
135
+ this.ensureConfigured();
136
+ try {
137
+ const url = buildAgentSpecUrl(this.getConfig(), this.getConfig().endpoints.status, {
138
+ id: executionId
139
+ });
140
+ const response = await fetch(url, {
141
+ headers: getAgentSpecAuthHeaders(this.getConfig())
142
+ });
143
+ if (!response.ok)
144
+ return null;
145
+ const data = await response.json();
146
+ return this.mapRuntimeStatusToNodeInfo(data);
147
+ }
148
+ catch {
149
+ return null;
150
+ }
151
+ }
152
+ /**
153
+ * Cancel a running execution.
154
+ */
155
+ async cancelExecution(executionId) {
156
+ this.ensureConfigured();
157
+ this.stopPolling(executionId);
158
+ const url = buildAgentSpecUrl(this.getConfig(), this.getConfig().endpoints.cancel, {
159
+ id: executionId
160
+ });
161
+ await fetch(url, {
162
+ method: 'POST',
163
+ headers: getAgentSpecAuthHeaders(this.getConfig())
164
+ });
165
+ const state = this.activeExecutions.get(executionId);
166
+ if (state) {
167
+ state.status = 'cancelled';
168
+ }
169
+ }
170
+ /**
171
+ * Get execution results.
172
+ */
173
+ async getResults(executionId) {
174
+ this.ensureConfigured();
175
+ try {
176
+ const url = buildAgentSpecUrl(this.getConfig(), this.getConfig().endpoints.results, {
177
+ id: executionId
178
+ });
179
+ const response = await fetch(url, {
180
+ headers: getAgentSpecAuthHeaders(this.getConfig())
181
+ });
182
+ if (!response.ok)
183
+ return null;
184
+ return await response.json();
185
+ }
186
+ catch {
187
+ return null;
188
+ }
189
+ }
190
+ /**
191
+ * Validate a workflow against the runtime.
192
+ */
193
+ async validateOnRuntime(workflow) {
194
+ this.ensureConfigured();
195
+ const agentSpecFlow = this.adapter.toAgentSpec(workflow);
196
+ const url = buildAgentSpecUrl(this.getConfig(), this.getConfig().endpoints.validate);
197
+ const response = await fetch(url, {
198
+ method: 'POST',
199
+ headers: getAgentSpecAuthHeaders(this.getConfig()),
200
+ body: JSON.stringify(agentSpecFlow)
201
+ });
202
+ if (!response.ok) {
203
+ return { valid: false, errors: [`Runtime validation failed: ${response.status}`] };
204
+ }
205
+ return await response.json();
206
+ }
207
+ /**
208
+ * Clean up all active executions.
209
+ */
210
+ destroy() {
211
+ for (const [id] of this.activeExecutions) {
212
+ this.stopPolling(id);
213
+ }
214
+ this.activeExecutions.clear();
215
+ }
216
+ // ========================================================================
217
+ // Private
218
+ // ========================================================================
219
+ ensureConfigured() {
220
+ if (!this.config) {
221
+ throw new Error('AgentSpecExecutionService not configured. Call configure() with runtime endpoint config first.');
222
+ }
223
+ }
224
+ /** Get the config, throwing if not configured */
225
+ getConfig() {
226
+ this.ensureConfigured();
227
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
228
+ return this.config;
229
+ }
230
+ startPolling(executionId, nameToNodeId, onNodeUpdate, onComplete, onError, intervalMs = 2000) {
231
+ const state = this.activeExecutions.get(executionId);
232
+ if (!state)
233
+ return;
234
+ const poll = async () => {
235
+ try {
236
+ const url = buildAgentSpecUrl(this.getConfig(), this.getConfig().endpoints.status, {
237
+ id: executionId
238
+ });
239
+ const response = await fetch(url, {
240
+ headers: getAgentSpecAuthHeaders(this.getConfig())
241
+ });
242
+ if (!response.ok) {
243
+ throw new Error(`Status check failed: ${response.status}`);
244
+ }
245
+ const data = await response.json();
246
+ const executionStatus = data.status || data.execution_status;
247
+ // Map node statuses
248
+ const nodeStatuses = data.node_statuses || data.nodes || {};
249
+ for (const [nodeName, status] of Object.entries(nodeStatuses)) {
250
+ const nodeId = nameToNodeId.get(nodeName) || nodeName;
251
+ const info = this.mapSingleNodeStatus(status);
252
+ state.nodeStatuses[nodeId] = info;
253
+ onNodeUpdate?.(nodeId, info);
254
+ }
255
+ // Check if execution is done
256
+ if (executionStatus === 'completed' || executionStatus === 'success') {
257
+ state.status = 'completed';
258
+ this.stopPolling(executionId);
259
+ const results = await this.getResults(executionId);
260
+ onComplete?.(results || {});
261
+ }
262
+ else if (executionStatus === 'failed' || executionStatus === 'error') {
263
+ state.status = 'failed';
264
+ this.stopPolling(executionId);
265
+ const errorMsg = data.error || data.message || 'Execution failed';
266
+ onError?.(new Error(errorMsg));
267
+ }
268
+ else if (executionStatus === 'cancelled') {
269
+ state.status = 'cancelled';
270
+ this.stopPolling(executionId);
271
+ }
272
+ }
273
+ catch (error) {
274
+ // Don't stop polling on transient errors — let it retry
275
+ logger.error('[AgentSpecExecution] Polling error:', error);
276
+ }
277
+ };
278
+ // Initial poll immediately, then at interval
279
+ poll();
280
+ state.pollingInterval = setInterval(poll, intervalMs);
281
+ }
282
+ stopPolling(executionId) {
283
+ const state = this.activeExecutions.get(executionId);
284
+ if (state?.pollingInterval) {
285
+ clearInterval(state.pollingInterval);
286
+ state.pollingInterval = undefined;
287
+ }
288
+ }
289
+ mapRuntimeStatusToNodeInfo(data) {
290
+ const result = {};
291
+ const nodeStatuses = (data.node_statuses || data.nodes || {});
292
+ for (const [nodeName, status] of Object.entries(nodeStatuses)) {
293
+ result[nodeName] = this.mapSingleNodeStatus(status);
294
+ }
295
+ return result;
296
+ }
297
+ mapSingleNodeStatus(status) {
298
+ const runtimeStatus = (status.status || status.state || 'idle');
299
+ return {
300
+ status: this.mapToFlowDropStatus(runtimeStatus),
301
+ executionCount: status.execution_count || 0,
302
+ isExecuting: runtimeStatus === 'running' || runtimeStatus === 'executing',
303
+ lastExecuted: status.started_at,
304
+ lastExecutionDuration: status.duration_ms,
305
+ lastError: status.error
306
+ };
307
+ }
308
+ mapToFlowDropStatus(runtimeStatus) {
309
+ switch (runtimeStatus) {
310
+ case 'running':
311
+ case 'executing':
312
+ return 'running';
313
+ case 'completed':
314
+ case 'success':
315
+ case 'done':
316
+ return 'completed';
317
+ case 'failed':
318
+ case 'error':
319
+ return 'failed';
320
+ case 'cancelled':
321
+ case 'canceled':
322
+ return 'cancelled';
323
+ case 'pending':
324
+ case 'queued':
325
+ return 'pending';
326
+ case 'skipped':
327
+ return 'skipped';
328
+ default:
329
+ return 'idle';
330
+ }
331
+ }
332
+ }
333
+ /** Singleton instance */
334
+ export const agentSpecExecutionService = AgentSpecExecutionService.getInstance();
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Client-side API service for FlowDrop
3
+ * Provides methods to interact with the backend APIs using configurable endpoints
4
+ */
5
+ import type { NodeMetadata, Workflow } from '../types/index.js';
6
+ import type { EndpointConfig } from '../config/endpoints.js';
7
+ /**
8
+ * Set the endpoint configuration at runtime
9
+ */
10
+ export declare function setEndpointConfig(config: EndpointConfig): void;
11
+ /**
12
+ * Get the current endpoint configuration
13
+ */
14
+ export declare function getEndpointConfig(): EndpointConfig | null;
15
+ /**
16
+ * Node API methods
17
+ */
18
+ export declare const nodeApi: {
19
+ /**
20
+ * Get all node types with optional filtering
21
+ */
22
+ getNodes(options?: {
23
+ category?: string;
24
+ search?: string;
25
+ limit?: number;
26
+ offset?: number;
27
+ }): Promise<NodeMetadata[]>;
28
+ /**
29
+ * Get a specific node type by ID
30
+ */
31
+ getNode(id: string): Promise<NodeMetadata>;
32
+ };
33
+ /**
34
+ * Workflow API methods
35
+ */
36
+ export declare const workflowApi: {
37
+ /**
38
+ * Get all workflows with optional filtering
39
+ */
40
+ getWorkflows(options?: {
41
+ search?: string;
42
+ limit?: number;
43
+ offset?: number;
44
+ }): Promise<Workflow[]>;
45
+ /**
46
+ * Get a specific workflow by ID
47
+ */
48
+ getWorkflow(id: string): Promise<Workflow>;
49
+ /**
50
+ * Create a new workflow
51
+ */
52
+ createWorkflow(workflow: Omit<Workflow, "id">): Promise<Workflow>;
53
+ /**
54
+ * Update an existing workflow
55
+ */
56
+ updateWorkflow(id: string, workflow: Partial<Workflow>): Promise<Workflow>;
57
+ /**
58
+ * Delete a workflow
59
+ */
60
+ deleteWorkflow(id: string): Promise<void>;
61
+ /**
62
+ * Save workflow (create or update)
63
+ */
64
+ saveWorkflow(workflow: Workflow): Promise<Workflow>;
65
+ };
66
+ /**
67
+ * Export the API service
68
+ */
69
+ export declare const api: {
70
+ nodes: {
71
+ /**
72
+ * Get all node types with optional filtering
73
+ */
74
+ getNodes(options?: {
75
+ category?: string;
76
+ search?: string;
77
+ limit?: number;
78
+ offset?: number;
79
+ }): Promise<NodeMetadata[]>;
80
+ /**
81
+ * Get a specific node type by ID
82
+ */
83
+ getNode(id: string): Promise<NodeMetadata>;
84
+ };
85
+ workflows: {
86
+ /**
87
+ * Get all workflows with optional filtering
88
+ */
89
+ getWorkflows(options?: {
90
+ search?: string;
91
+ limit?: number;
92
+ offset?: number;
93
+ }): Promise<Workflow[]>;
94
+ /**
95
+ * Get a specific workflow by ID
96
+ */
97
+ getWorkflow(id: string): Promise<Workflow>;
98
+ /**
99
+ * Create a new workflow
100
+ */
101
+ createWorkflow(workflow: Omit<Workflow, "id">): Promise<Workflow>;
102
+ /**
103
+ * Update an existing workflow
104
+ */
105
+ updateWorkflow(id: string, workflow: Partial<Workflow>): Promise<Workflow>;
106
+ /**
107
+ * Delete a workflow
108
+ */
109
+ deleteWorkflow(id: string): Promise<void>;
110
+ /**
111
+ * Save workflow (create or update)
112
+ */
113
+ saveWorkflow(workflow: Workflow): Promise<Workflow>;
114
+ };
115
+ };