@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,262 @@
1
+ /**
2
+ * Node Component Registry
3
+ * Central registry for node component types that allows built-in and third-party
4
+ * components to be registered and resolved at runtime.
5
+ *
6
+ * This enables:
7
+ * - Custom node components to be registered by users
8
+ * - External libraries to contribute node types via plugins
9
+ * - Runtime switching between different node visualizations
10
+ */
11
+ import { BaseRegistry } from './BaseRegistry.js';
12
+ /**
13
+ * Central registry for node component types.
14
+ * Allows built-in and third-party components to be registered and resolved.
15
+ *
16
+ * Extends BaseRegistry for shared mechanics (subscribe, onClear, etc.).
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * // Register a custom node
21
+ * nodeComponentRegistry.register({
22
+ * type: "myCustomNode",
23
+ * displayName: "My Custom Node",
24
+ * component: MyCustomNodeComponent,
25
+ * icon: "mdi:star",
26
+ * category: "custom"
27
+ * });
28
+ *
29
+ * // Get a component
30
+ * const component = nodeComponentRegistry.getComponent("myCustomNode");
31
+ * ```
32
+ */
33
+ class NodeComponentRegistry extends BaseRegistry {
34
+ /** Default type to use when requested type is not found */
35
+ defaultType = 'workflowNode';
36
+ /** Initial default type, restored on clear() */
37
+ static INITIAL_DEFAULT_TYPE = 'workflowNode';
38
+ /**
39
+ * Register a node component type.
40
+ *
41
+ * @param registration - The component registration details
42
+ * @param overwrite - If true, allows overwriting existing registrations
43
+ * @throws Error if type already registered and overwrite is false
44
+ *
45
+ * @example
46
+ * ```typescript
47
+ * nodeComponentRegistry.register({
48
+ * type: "fancy",
49
+ * displayName: "Fancy Node",
50
+ * component: FancyNode,
51
+ * icon: "mdi:sparkles"
52
+ * });
53
+ * ```
54
+ */
55
+ /**
56
+ * Clear all registrations and reset default type.
57
+ */
58
+ clear() {
59
+ super.clear();
60
+ this.defaultType = NodeComponentRegistry.INITIAL_DEFAULT_TYPE;
61
+ }
62
+ register(registration, overwrite = false) {
63
+ if (this.items.has(registration.type) && !overwrite) {
64
+ throw new Error(`Node type "${registration.type}" is already registered. ` +
65
+ `Use overwrite: true to replace it, or use a namespaced type like "mylib:${registration.type}".`);
66
+ }
67
+ this.items.set(registration.type, registration);
68
+ this.notifyListeners();
69
+ }
70
+ /**
71
+ * Register multiple components at once.
72
+ * Useful for libraries registering multiple node types.
73
+ *
74
+ * @param registrations - Array of registrations to add
75
+ * @param overwrite - If true, allows overwriting existing registrations
76
+ */
77
+ registerAll(registrations, overwrite = false) {
78
+ for (const registration of registrations) {
79
+ this.register(registration, overwrite);
80
+ }
81
+ }
82
+ /**
83
+ * Get the component for a type, with fallback to default.
84
+ *
85
+ * @param type - The type identifier to look up
86
+ * @returns The component if found, or the default component
87
+ */
88
+ getComponent(type) {
89
+ const registration = this.items.get(type) ?? this.items.get(this.defaultType);
90
+ return registration?.component;
91
+ }
92
+ /**
93
+ * Get framework-agnostic metadata for a type, without the Svelte component.
94
+ *
95
+ * @param type - The type identifier to look up
96
+ * @returns The metadata if found, undefined otherwise
97
+ */
98
+ getMetadata(type) {
99
+ const reg = this.items.get(type);
100
+ if (!reg)
101
+ return undefined;
102
+ const { component: _, ...metadata } = reg;
103
+ return metadata;
104
+ }
105
+ /**
106
+ * Get all registered type identifiers.
107
+ *
108
+ * @returns Array of registered type strings
109
+ */
110
+ getTypes() {
111
+ return this.getKeys();
112
+ }
113
+ /**
114
+ * Get registrations filtered by criteria.
115
+ *
116
+ * @param filter - Filter options
117
+ * @returns Filtered array of registrations
118
+ *
119
+ * @example
120
+ * ```typescript
121
+ * // Get all visual nodes
122
+ * const visualNodes = nodeComponentRegistry.filter({ category: "visual" });
123
+ *
124
+ * // Get nodes from a specific library
125
+ * const libNodes = nodeComponentRegistry.filter({ source: "mylib" });
126
+ * ```
127
+ */
128
+ filter(filter) {
129
+ return this.getAll().filter((reg) => {
130
+ if (filter.category && reg.category !== filter.category) {
131
+ return false;
132
+ }
133
+ if (filter.source && reg.source !== filter.source) {
134
+ return false;
135
+ }
136
+ if (filter.predicate && !filter.predicate(reg)) {
137
+ return false;
138
+ }
139
+ return true;
140
+ });
141
+ }
142
+ /**
143
+ * Get registrations filtered by category.
144
+ *
145
+ * @param category - The category to filter by
146
+ * @returns Array of registrations in that category
147
+ */
148
+ getByCategory(category) {
149
+ return this.filter({ category });
150
+ }
151
+ /**
152
+ * Get registrations filtered by source.
153
+ *
154
+ * @param source - The source identifier to filter by (e.g., "flowdrop", "mylib")
155
+ * @returns Array of registrations from that source
156
+ */
157
+ getBySource(source) {
158
+ return this.filter({ source });
159
+ }
160
+ /**
161
+ * Set the default fallback type.
162
+ *
163
+ * @param type - The type to use as default when requested type is not found
164
+ * @throws Error if the type is not registered
165
+ */
166
+ setDefaultType(type) {
167
+ if (!this.items.has(type)) {
168
+ throw new Error(`Cannot set default to unregistered type: ${type}`);
169
+ }
170
+ this.defaultType = type;
171
+ }
172
+ /**
173
+ * Get the current default type.
174
+ *
175
+ * @returns The default type identifier
176
+ */
177
+ getDefaultType() {
178
+ return this.defaultType;
179
+ }
180
+ /**
181
+ * Get oneOf options for config forms.
182
+ * Returns array suitable for JSON Schema oneOf with const/title.
183
+ *
184
+ * @param filterFn - Optional filter function to limit which types are included
185
+ * @returns Array of oneOf items with const (type value) and title (display name)
186
+ *
187
+ * @example
188
+ * ```typescript
189
+ * const oneOf = nodeComponentRegistry.getOneOfOptions();
190
+ * // Use in configSchema: { type: "string", oneOf }
191
+ * ```
192
+ */
193
+ getOneOfOptions(filterFn) {
194
+ const registrations = filterFn ? this.getAll().filter(filterFn) : this.getAll();
195
+ return registrations.map((r) => ({
196
+ const: r.type,
197
+ title: r.displayName
198
+ }));
199
+ }
200
+ /**
201
+ * Get the status position for a node type.
202
+ *
203
+ * @param type - The node type
204
+ * @returns The status position, or default "top-right"
205
+ */
206
+ getStatusPosition(type) {
207
+ return this.items.get(type)?.statusPosition ?? 'top-right';
208
+ }
209
+ /**
210
+ * Get the status size for a node type.
211
+ *
212
+ * @param type - The node type
213
+ * @returns The status size, or default "md"
214
+ */
215
+ getStatusSize(type) {
216
+ return this.items.get(type)?.statusSize ?? 'md';
217
+ }
218
+ }
219
+ /** Singleton instance of the node component registry */
220
+ export const nodeComponentRegistry = new NodeComponentRegistry();
221
+ /**
222
+ * Helper function to create a namespaced type identifier.
223
+ * Use this to avoid conflicts when registering custom nodes.
224
+ *
225
+ * @param namespace - Your library/project namespace
226
+ * @param type - The node type name
227
+ * @returns Namespaced type string (e.g., "mylib:custom")
228
+ *
229
+ * @example
230
+ * ```typescript
231
+ * const type = createNamespacedType("mylib", "fancy");
232
+ * // Returns "mylib:fancy"
233
+ * ```
234
+ */
235
+ export function createNamespacedType(namespace, type) {
236
+ return `${namespace}:${type}`;
237
+ }
238
+ /**
239
+ * Parse a namespaced type into its components.
240
+ *
241
+ * @param namespacedType - The full namespaced type (e.g., "mylib:custom")
242
+ * @returns Object with namespace and type, or null if not namespaced
243
+ *
244
+ * @example
245
+ * ```typescript
246
+ * parseNamespacedType("mylib:fancy");
247
+ * // Returns { namespace: "mylib", type: "fancy" }
248
+ *
249
+ * parseNamespacedType("simple");
250
+ * // Returns null (not namespaced)
251
+ * ```
252
+ */
253
+ export function parseNamespacedType(namespacedType) {
254
+ const colonIndex = namespacedType.indexOf(':');
255
+ if (colonIndex === -1) {
256
+ return null;
257
+ }
258
+ return {
259
+ namespace: namespacedType.slice(0, colonIndex),
260
+ type: namespacedType.slice(colonIndex + 1)
261
+ };
262
+ }
@@ -0,0 +1,215 @@
1
+ /**
2
+ * FlowDrop Plugin System
3
+ * Provides APIs for external libraries to register custom node components.
4
+ *
5
+ * This enables a plugin ecosystem where:
6
+ * - Third-party libraries can provide custom node types
7
+ * - Custom nodes are namespaced to avoid conflicts
8
+ * - Registration is simplified with a clean API
9
+ */
10
+ import { type NodeComponentProps, type NodeComponentCategory, type StatusPosition, type StatusSize } from './nodeComponentRegistry.js';
11
+ import type { Component } from 'svelte';
12
+ /**
13
+ * Plugin configuration for external libraries.
14
+ * Use this to register multiple node types from a library.
15
+ */
16
+ export interface FlowDropPluginConfig {
17
+ /**
18
+ * Unique namespace for this plugin.
19
+ * Used to prefix all node types (e.g., "mylib" -> "mylib:nodename").
20
+ * Should be lowercase, alphanumeric with optional hyphens.
21
+ */
22
+ namespace: string;
23
+ /** Display name for the plugin (for UI/debugging purposes) */
24
+ name: string;
25
+ /** Plugin version (optional, for debugging) */
26
+ version?: string;
27
+ /** Description of what this plugin provides */
28
+ description?: string;
29
+ /** Node components to register */
30
+ nodes: PluginNodeDefinition[];
31
+ }
32
+ /**
33
+ * Simplified node definition for plugins.
34
+ * Provides a cleaner API than full NodeComponentRegistration.
35
+ */
36
+ export interface PluginNodeDefinition {
37
+ /**
38
+ * Type identifier for this node.
39
+ * Will be prefixed with the plugin namespace (e.g., "fancy" -> "mylib:fancy").
40
+ */
41
+ type: string;
42
+ /** Display name shown in UI */
43
+ displayName: string;
44
+ /** Description of what this node does */
45
+ description?: string;
46
+ /** The Svelte component to render */
47
+ component: Component<NodeComponentProps>;
48
+ /** Icon in iconify format (e.g., "mdi:star") */
49
+ icon?: string;
50
+ /** Category for organizing in UI */
51
+ category?: NodeComponentCategory;
52
+ /** Status overlay position */
53
+ statusPosition?: StatusPosition;
54
+ /** Status overlay size */
55
+ statusSize?: StatusSize;
56
+ }
57
+ /**
58
+ * Result of plugin registration.
59
+ * Contains information about what was registered and any errors.
60
+ */
61
+ export interface PluginRegistrationResult {
62
+ /** Whether all nodes were registered successfully */
63
+ success: boolean;
64
+ /** The plugin namespace */
65
+ namespace: string;
66
+ /** Array of successfully registered type identifiers (namespaced) */
67
+ registeredTypes: string[];
68
+ /** Array of error messages for failed registrations */
69
+ errors: string[];
70
+ }
71
+ /**
72
+ * Register a FlowDrop plugin with custom node components.
73
+ * All node types are automatically namespaced with the plugin namespace.
74
+ *
75
+ * @param config - Plugin configuration with namespace and node definitions
76
+ * @returns Result object with registered types and any errors
77
+ *
78
+ * @example
79
+ * ```typescript
80
+ * import { registerFlowDropPlugin } from "@flowdrop/lib";
81
+ * import FancyNode from "./FancyNode.svelte";
82
+ * import GlowNode from "./GlowNode.svelte";
83
+ *
84
+ * const result = registerFlowDropPlugin({
85
+ * namespace: "awesome",
86
+ * name: "Awesome Nodes",
87
+ * version: "1.0.0",
88
+ * nodes: [
89
+ * {
90
+ * type: "fancy",
91
+ * displayName: "Fancy Node",
92
+ * component: FancyNode,
93
+ * icon: "mdi:sparkles"
94
+ * },
95
+ * {
96
+ * type: "glow",
97
+ * displayName: "Glowing Node",
98
+ * component: GlowNode,
99
+ * icon: "mdi:lightbulb"
100
+ * }
101
+ * ]
102
+ * });
103
+ *
104
+ * // Result:
105
+ * // {
106
+ * // success: true,
107
+ * // namespace: "awesome",
108
+ * // registeredTypes: ["awesome:fancy", "awesome:glow"],
109
+ * // errors: []
110
+ * // }
111
+ * ```
112
+ */
113
+ export declare function registerFlowDropPlugin(config: FlowDropPluginConfig): PluginRegistrationResult;
114
+ /**
115
+ * Unregister all nodes from a plugin by namespace.
116
+ *
117
+ * @param namespace - The plugin namespace to unregister
118
+ * @returns Array of unregistered type identifiers
119
+ *
120
+ * @example
121
+ * ```typescript
122
+ * const removed = unregisterFlowDropPlugin("awesome");
123
+ * // Returns ["awesome:fancy", "awesome:glow"]
124
+ * ```
125
+ */
126
+ export declare function unregisterFlowDropPlugin(namespace: string): string[];
127
+ /**
128
+ * Check if a namespace is valid.
129
+ * Must be lowercase alphanumeric with optional hyphens.
130
+ *
131
+ * @param namespace - The namespace to validate
132
+ * @returns true if valid
133
+ */
134
+ export declare function isValidNamespace(namespace: string): boolean;
135
+ /**
136
+ * Get all registered plugins (unique namespaces).
137
+ *
138
+ * @returns Array of namespace strings
139
+ */
140
+ export declare function getRegisteredPlugins(): string[];
141
+ /**
142
+ * Get the count of nodes registered by a plugin.
143
+ *
144
+ * @param namespace - The plugin namespace
145
+ * @returns Number of nodes registered by this plugin
146
+ */
147
+ export declare function getPluginNodeCount(namespace: string): number;
148
+ /**
149
+ * Register a single custom node without a full plugin.
150
+ * Useful for project-specific custom nodes.
151
+ *
152
+ * @param type - Type identifier (can be namespaced or plain)
153
+ * @param displayName - Display name for UI
154
+ * @param component - Svelte component
155
+ * @param options - Additional options
156
+ *
157
+ * @example
158
+ * ```typescript
159
+ * import { registerCustomNode } from "@flowdrop/lib";
160
+ * import MyNode from "./MyNode.svelte";
161
+ *
162
+ * registerCustomNode("myproject:special", "Special Node", MyNode, {
163
+ * icon: "mdi:star",
164
+ * description: "A special node for my project"
165
+ * });
166
+ * ```
167
+ */
168
+ export declare function registerCustomNode(type: string, displayName: string, component: Component<NodeComponentProps>, options?: {
169
+ description?: string;
170
+ icon?: string;
171
+ category?: NodeComponentCategory;
172
+ source?: string;
173
+ statusPosition?: StatusPosition;
174
+ statusSize?: StatusSize;
175
+ }): void;
176
+ /**
177
+ * Create a plugin builder for a fluent API experience.
178
+ *
179
+ * @param namespace - Plugin namespace
180
+ * @param name - Plugin name
181
+ * @returns Plugin builder with chainable methods
182
+ *
183
+ * @example
184
+ * ```typescript
185
+ * import { createPlugin } from "@flowdrop/lib";
186
+ *
187
+ * createPlugin("awesome", "Awesome Nodes")
188
+ * .version("1.0.0")
189
+ * .node("fancy", "Fancy Node", FancyNode)
190
+ * .node("glow", "Glowing Node", GlowNode, { icon: "mdi:lightbulb" })
191
+ * .register();
192
+ * ```
193
+ */
194
+ export declare function createPlugin(namespace: string, name: string): {
195
+ /**
196
+ * Set plugin version
197
+ */
198
+ version(v: string): /*elided*/ any;
199
+ /**
200
+ * Set plugin description
201
+ */
202
+ description(desc: string): /*elided*/ any;
203
+ /**
204
+ * Add a node to the plugin
205
+ */
206
+ node(type: string, displayName: string, component: Component<NodeComponentProps>, options?: Partial<Omit<PluginNodeDefinition, "type" | "displayName" | "component">>): /*elided*/ any;
207
+ /**
208
+ * Register the plugin
209
+ */
210
+ register(): PluginRegistrationResult;
211
+ /**
212
+ * Get the config without registering (for testing/inspection)
213
+ */
214
+ getConfig(): FlowDropPluginConfig;
215
+ };