@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.
- package/LICENSE +21 -0
- package/README.md +252 -0
- package/dist/adapters/WorkflowAdapter.d.ts +167 -0
- package/dist/adapters/WorkflowAdapter.js +368 -0
- package/dist/adapters/agentspec/AgentSpecAdapter.d.ts +96 -0
- package/dist/adapters/agentspec/AgentSpecAdapter.js +626 -0
- package/dist/adapters/agentspec/agentAdapter.d.ts +59 -0
- package/dist/adapters/agentspec/agentAdapter.js +91 -0
- package/dist/adapters/agentspec/autoLayout.d.ts +34 -0
- package/dist/adapters/agentspec/autoLayout.js +127 -0
- package/dist/adapters/agentspec/componentTypeDefaults.d.ts +73 -0
- package/dist/adapters/agentspec/componentTypeDefaults.js +238 -0
- package/dist/adapters/agentspec/defaultNodeTypes.d.ts +53 -0
- package/dist/adapters/agentspec/defaultNodeTypes.js +561 -0
- package/dist/adapters/agentspec/index.d.ts +37 -0
- package/dist/adapters/agentspec/index.js +39 -0
- package/dist/adapters/agentspec/validator.d.ts +34 -0
- package/dist/adapters/agentspec/validator.js +169 -0
- package/dist/api/enhanced-client.d.ts +183 -0
- package/dist/api/enhanced-client.js +430 -0
- package/dist/components/App.svelte +981 -0
- package/dist/components/App.svelte.d.ts +54 -0
- package/dist/components/CanvasBanner.stories.svelte +29 -0
- package/dist/components/CanvasBanner.stories.svelte.d.ts +27 -0
- package/dist/components/CanvasBanner.svelte +57 -0
- package/dist/components/CanvasBanner.svelte.d.ts +8 -0
- package/dist/components/ConfigForm.svelte +1138 -0
- package/dist/components/ConfigForm.svelte.d.ts +44 -0
- package/dist/components/ConfigModal.svelte +188 -0
- package/dist/components/ConfigModal.svelte.d.ts +13 -0
- package/dist/components/ConfigPanel.stories.svelte +47 -0
- package/dist/components/ConfigPanel.stories.svelte.d.ts +27 -0
- package/dist/components/ConfigPanel.svelte +182 -0
- package/dist/components/ConfigPanel.svelte.d.ts +32 -0
- package/dist/components/ConnectionLine.svelte +32 -0
- package/dist/components/ConnectionLine.svelte.d.ts +3 -0
- package/dist/components/EdgeRefresher.svelte +41 -0
- package/dist/components/EdgeRefresher.svelte.d.ts +9 -0
- package/dist/components/FlowDropZone.svelte +83 -0
- package/dist/components/FlowDropZone.svelte.d.ts +13 -0
- package/dist/components/LoadingSpinner.stories.svelte +30 -0
- package/dist/components/LoadingSpinner.stories.svelte.d.ts +27 -0
- package/dist/components/LoadingSpinner.svelte +36 -0
- package/dist/components/LoadingSpinner.svelte.d.ts +8 -0
- package/dist/components/Logo.stories.svelte +22 -0
- package/dist/components/Logo.stories.svelte.d.ts +27 -0
- package/dist/components/Logo.svelte +102 -0
- package/dist/components/Logo.svelte.d.ts +26 -0
- package/dist/components/LogsSidebar.svelte +563 -0
- package/dist/components/LogsSidebar.svelte.d.ts +17 -0
- package/dist/components/MarkdownDisplay.stories.svelte +36 -0
- package/dist/components/MarkdownDisplay.stories.svelte.d.ts +27 -0
- package/dist/components/MarkdownDisplay.svelte +29 -0
- package/dist/components/MarkdownDisplay.svelte.d.ts +7 -0
- package/dist/components/Navbar.stories.svelte +53 -0
- package/dist/components/Navbar.stories.svelte.d.ts +27 -0
- package/dist/components/Navbar.svelte +726 -0
- package/dist/components/Navbar.svelte.d.ts +29 -0
- package/dist/components/NodeSidebar.svelte +762 -0
- package/dist/components/NodeSidebar.svelte.d.ts +9 -0
- package/dist/components/NodeStatusOverlay.stories.svelte +85 -0
- package/dist/components/NodeStatusOverlay.stories.svelte.d.ts +27 -0
- package/dist/components/NodeStatusOverlay.svelte +327 -0
- package/dist/components/NodeStatusOverlay.svelte.d.ts +11 -0
- package/dist/components/PipelineStatus.svelte +314 -0
- package/dist/components/PipelineStatus.svelte.d.ts +20 -0
- package/dist/components/PortCoordinateTracker.svelte +58 -0
- package/dist/components/PortCoordinateTracker.svelte.d.ts +12 -0
- package/dist/components/ReadOnlyDetails.svelte +170 -0
- package/dist/components/ReadOnlyDetails.svelte.d.ts +25 -0
- package/dist/components/SchemaForm.stories.svelte +116 -0
- package/dist/components/SchemaForm.stories.svelte.d.ts +27 -0
- package/dist/components/SchemaForm.svelte +536 -0
- package/dist/components/SchemaForm.svelte.d.ts +83 -0
- package/dist/components/SettingsModal.svelte +279 -0
- package/dist/components/SettingsModal.svelte.d.ts +23 -0
- package/dist/components/SettingsPanel.svelte +638 -0
- package/dist/components/SettingsPanel.svelte.d.ts +21 -0
- package/dist/components/StatusIcon.stories.svelte +60 -0
- package/dist/components/StatusIcon.stories.svelte.d.ts +27 -0
- package/dist/components/StatusIcon.svelte +119 -0
- package/dist/components/StatusIcon.svelte.d.ts +10 -0
- package/dist/components/StatusLabel.stories.svelte +17 -0
- package/dist/components/StatusLabel.stories.svelte.d.ts +27 -0
- package/dist/components/StatusLabel.svelte +33 -0
- package/dist/components/StatusLabel.svelte.d.ts +7 -0
- package/dist/components/ThemeToggle.stories.svelte +25 -0
- package/dist/components/ThemeToggle.stories.svelte.d.ts +27 -0
- package/dist/components/ThemeToggle.svelte +185 -0
- package/dist/components/ThemeToggle.svelte.d.ts +14 -0
- package/dist/components/UniversalNode.svelte +155 -0
- package/dist/components/UniversalNode.svelte.d.ts +15 -0
- package/dist/components/WorkflowEditor.svelte +1035 -0
- package/dist/components/WorkflowEditor.svelte.d.ts +23 -0
- package/dist/components/form/FormArray.svelte +1049 -0
- package/dist/components/form/FormArray.svelte.d.ts +22 -0
- package/dist/components/form/FormAutocomplete.svelte +1009 -0
- package/dist/components/form/FormAutocomplete.svelte.d.ts +25 -0
- package/dist/components/form/FormCheckboxGroup.stories.svelte +28 -0
- package/dist/components/form/FormCheckboxGroup.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormCheckboxGroup.svelte +155 -0
- package/dist/components/form/FormCheckboxGroup.svelte.d.ts +17 -0
- package/dist/components/form/FormCodeEditor.svelte +458 -0
- package/dist/components/form/FormCodeEditor.svelte.d.ts +25 -0
- package/dist/components/form/FormField.svelte +417 -0
- package/dist/components/form/FormField.svelte.d.ts +29 -0
- package/dist/components/form/FormFieldLight.svelte +425 -0
- package/dist/components/form/FormFieldLight.svelte.d.ts +18 -0
- package/dist/components/form/FormFieldWrapper.stories.svelte +53 -0
- package/dist/components/form/FormFieldWrapper.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormFieldWrapper.svelte +125 -0
- package/dist/components/form/FormFieldWrapper.svelte.d.ts +18 -0
- package/dist/components/form/FormFieldset.svelte +142 -0
- package/dist/components/form/FormFieldset.svelte.d.ts +11 -0
- package/dist/components/form/FormMarkdownEditor.svelte +752 -0
- package/dist/components/form/FormMarkdownEditor.svelte.d.ts +33 -0
- package/dist/components/form/FormNumberField.stories.svelte +36 -0
- package/dist/components/form/FormNumberField.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormNumberField.svelte +112 -0
- package/dist/components/form/FormNumberField.svelte.d.ts +25 -0
- package/dist/components/form/FormRangeField.stories.svelte +31 -0
- package/dist/components/form/FormRangeField.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormRangeField.svelte +246 -0
- package/dist/components/form/FormRangeField.svelte.d.ts +23 -0
- package/dist/components/form/FormSelect.stories.svelte +50 -0
- package/dist/components/form/FormSelect.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormSelect.svelte +129 -0
- package/dist/components/form/FormSelect.svelte.d.ts +20 -0
- package/dist/components/form/FormTemplateEditor.svelte +825 -0
- package/dist/components/form/FormTemplateEditor.svelte.d.ts +41 -0
- package/dist/components/form/FormTextField.stories.svelte +30 -0
- package/dist/components/form/FormTextField.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormTextField.svelte +91 -0
- package/dist/components/form/FormTextField.svelte.d.ts +19 -0
- package/dist/components/form/FormTextarea.stories.svelte +34 -0
- package/dist/components/form/FormTextarea.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormTextarea.svelte +97 -0
- package/dist/components/form/FormTextarea.svelte.d.ts +21 -0
- package/dist/components/form/FormToggle.stories.svelte +30 -0
- package/dist/components/form/FormToggle.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormToggle.svelte +126 -0
- package/dist/components/form/FormToggle.svelte.d.ts +19 -0
- package/dist/components/form/FormUISchemaRenderer.svelte +136 -0
- package/dist/components/form/FormUISchemaRenderer.svelte.d.ts +32 -0
- package/dist/components/form/index.d.ts +50 -0
- package/dist/components/form/index.js +54 -0
- package/dist/components/form/templateAutocomplete.d.ts +29 -0
- package/dist/components/form/templateAutocomplete.js +254 -0
- package/dist/components/form/types.d.ts +485 -0
- package/dist/components/form/types.js +73 -0
- package/dist/components/interrupt/ChoicePrompt.stories.svelte +52 -0
- package/dist/components/interrupt/ChoicePrompt.stories.svelte.d.ts +27 -0
- package/dist/components/interrupt/ChoicePrompt.svelte +401 -0
- package/dist/components/interrupt/ChoicePrompt.svelte.d.ts +23 -0
- package/dist/components/interrupt/ConfirmationPrompt.stories.svelte +71 -0
- package/dist/components/interrupt/ConfirmationPrompt.stories.svelte.d.ts +27 -0
- package/dist/components/interrupt/ConfirmationPrompt.svelte +292 -0
- package/dist/components/interrupt/ConfirmationPrompt.svelte.d.ts +25 -0
- package/dist/components/interrupt/FormPrompt.svelte +236 -0
- package/dist/components/interrupt/FormPrompt.svelte.d.ts +23 -0
- package/dist/components/interrupt/InterruptBubble.svelte +601 -0
- package/dist/components/interrupt/InterruptBubble.svelte.d.ts +16 -0
- package/dist/components/interrupt/ReviewPrompt.stories.svelte +67 -0
- package/dist/components/interrupt/ReviewPrompt.stories.svelte.d.ts +27 -0
- package/dist/components/interrupt/ReviewPrompt.svelte +861 -0
- package/dist/components/interrupt/ReviewPrompt.svelte.d.ts +23 -0
- package/dist/components/interrupt/TextInputPrompt.stories.svelte +47 -0
- package/dist/components/interrupt/TextInputPrompt.stories.svelte.d.ts +27 -0
- package/dist/components/interrupt/TextInputPrompt.svelte +346 -0
- package/dist/components/interrupt/TextInputPrompt.svelte.d.ts +23 -0
- package/dist/components/interrupt/index.d.ts +13 -0
- package/dist/components/interrupt/index.js +15 -0
- package/dist/components/layouts/MainLayout.svelte +718 -0
- package/dist/components/layouts/MainLayout.svelte.d.ts +62 -0
- package/dist/components/nodes/GatewayNode.stories.svelte +108 -0
- package/dist/components/nodes/GatewayNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/GatewayNode.svelte +591 -0
- package/dist/components/nodes/GatewayNode.svelte.d.ts +15 -0
- package/dist/components/nodes/IdeaNode.stories.svelte +52 -0
- package/dist/components/nodes/IdeaNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/IdeaNode.svelte +455 -0
- package/dist/components/nodes/IdeaNode.svelte.d.ts +24 -0
- package/dist/components/nodes/NotesNode.stories.svelte +76 -0
- package/dist/components/nodes/NotesNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/NotesNode.svelte +378 -0
- package/dist/components/nodes/NotesNode.svelte.d.ts +24 -0
- package/dist/components/nodes/SimpleNode.stories.svelte +159 -0
- package/dist/components/nodes/SimpleNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/SimpleNode.svelte +451 -0
- package/dist/components/nodes/SimpleNode.svelte.d.ts +25 -0
- package/dist/components/nodes/SquareNode.stories.svelte +82 -0
- package/dist/components/nodes/SquareNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/SquareNode.svelte +407 -0
- package/dist/components/nodes/SquareNode.svelte.d.ts +25 -0
- package/dist/components/nodes/TerminalNode.stories.svelte +25 -0
- package/dist/components/nodes/TerminalNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/TerminalNode.svelte +690 -0
- package/dist/components/nodes/TerminalNode.svelte.d.ts +25 -0
- package/dist/components/nodes/ToolNode.stories.svelte +189 -0
- package/dist/components/nodes/ToolNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/ToolNode.svelte +471 -0
- package/dist/components/nodes/ToolNode.svelte.d.ts +36 -0
- package/dist/components/nodes/WorkflowNode.stories.svelte +55 -0
- package/dist/components/nodes/WorkflowNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/WorkflowNode.svelte +571 -0
- package/dist/components/nodes/WorkflowNode.svelte.d.ts +15 -0
- package/dist/components/playground/ChatPanel.svelte +905 -0
- package/dist/components/playground/ChatPanel.svelte.d.ts +46 -0
- package/dist/components/playground/ExecutionLogs.svelte +488 -0
- package/dist/components/playground/ExecutionLogs.svelte.d.ts +14 -0
- package/dist/components/playground/InputCollector.svelte +444 -0
- package/dist/components/playground/InputCollector.svelte.d.ts +16 -0
- package/dist/components/playground/MessageBubble.stories.svelte +62 -0
- package/dist/components/playground/MessageBubble.stories.svelte.d.ts +27 -0
- package/dist/components/playground/MessageBubble.svelte +633 -0
- package/dist/components/playground/MessageBubble.svelte.d.ts +24 -0
- package/dist/components/playground/Playground.svelte +1075 -0
- package/dist/components/playground/Playground.svelte.d.ts +25 -0
- package/dist/components/playground/PlaygroundModal.svelte +220 -0
- package/dist/components/playground/PlaygroundModal.svelte.d.ts +25 -0
- package/dist/components/playground/SessionManager.svelte +538 -0
- package/dist/components/playground/SessionManager.svelte.d.ts +20 -0
- package/dist/config/agentSpecEndpoints.d.ts +70 -0
- package/dist/config/agentSpecEndpoints.js +65 -0
- package/dist/config/constants.d.ts +43 -0
- package/dist/config/constants.js +31 -0
- package/dist/config/defaultCategories.d.ts +7 -0
- package/dist/config/defaultCategories.js +126 -0
- package/dist/config/defaultPortConfig.d.ts +6 -0
- package/dist/config/defaultPortConfig.js +201 -0
- package/dist/config/endpoints.d.ts +160 -0
- package/dist/config/endpoints.js +146 -0
- package/dist/config/runtimeConfig.d.ts +47 -0
- package/dist/config/runtimeConfig.js +80 -0
- package/dist/core/index.d.ts +75 -0
- package/dist/core/index.js +92 -0
- package/dist/display/index.d.ts +29 -0
- package/dist/display/index.js +36 -0
- package/dist/editor/index.d.ts +95 -0
- package/dist/editor/index.js +138 -0
- package/dist/form/code.d.ts +101 -0
- package/dist/form/code.js +168 -0
- package/dist/form/fieldRegistry.d.ts +169 -0
- package/dist/form/fieldRegistry.js +152 -0
- package/dist/form/full.d.ts +56 -0
- package/dist/form/full.js +80 -0
- package/dist/form/index.d.ts +77 -0
- package/dist/form/index.js +91 -0
- package/dist/form/markdown.d.ts +69 -0
- package/dist/form/markdown.js +103 -0
- package/dist/helpers/nodeLayoutHelper.d.ts +14 -0
- package/dist/helpers/nodeLayoutHelper.js +19 -0
- package/dist/helpers/proximityConnect.d.ts +94 -0
- package/dist/helpers/proximityConnect.js +314 -0
- package/dist/helpers/workflowEditorHelper.d.ts +183 -0
- package/dist/helpers/workflowEditorHelper.js +595 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.js +64 -0
- package/dist/mocks/app-environment.d.ts +8 -0
- package/dist/mocks/app-environment.js +16 -0
- package/dist/mocks/app-forms.d.ts +2 -0
- package/dist/mocks/app-forms.js +22 -0
- package/dist/mocks/app-navigation.d.ts +5 -0
- package/dist/mocks/app-navigation.js +36 -0
- package/dist/mocks/app-stores.d.ts +14 -0
- package/dist/mocks/app-stores.js +26 -0
- package/dist/playground/index.d.ts +131 -0
- package/dist/playground/index.js +172 -0
- package/dist/playground/mount.d.ts +203 -0
- package/dist/playground/mount.js +235 -0
- package/dist/registry/BaseRegistry.d.ts +92 -0
- package/dist/registry/BaseRegistry.js +124 -0
- package/dist/registry/builtinFormats.d.ts +23 -0
- package/dist/registry/builtinFormats.js +70 -0
- package/dist/registry/builtinNodes.d.ts +77 -0
- package/dist/registry/builtinNodes.js +211 -0
- package/dist/registry/index.d.ts +8 -0
- package/dist/registry/index.js +12 -0
- package/dist/registry/nodeComponentRegistry.d.ts +276 -0
- package/dist/registry/nodeComponentRegistry.js +262 -0
- package/dist/registry/plugin.d.ts +215 -0
- package/dist/registry/plugin.js +249 -0
- package/dist/registry/workflowFormatRegistry.d.ts +122 -0
- package/dist/registry/workflowFormatRegistry.js +96 -0
- package/dist/schema/index.d.ts +23 -0
- package/dist/schema/index.js +23 -0
- package/dist/schemas/v1/workflow.schema.json +1078 -0
- package/dist/services/agentSpecExecutionService.d.ts +106 -0
- package/dist/services/agentSpecExecutionService.js +334 -0
- package/dist/services/api.d.ts +115 -0
- package/dist/services/api.js +214 -0
- package/dist/services/apiVariableService.d.ts +114 -0
- package/dist/services/apiVariableService.js +338 -0
- package/dist/services/autoSaveService.d.ts +112 -0
- package/dist/services/autoSaveService.js +227 -0
- package/dist/services/categoriesApi.d.ts +14 -0
- package/dist/services/categoriesApi.js +49 -0
- package/dist/services/draftStorage.d.ts +171 -0
- package/dist/services/draftStorage.js +299 -0
- package/dist/services/dynamicSchemaService.d.ts +108 -0
- package/dist/services/dynamicSchemaService.js +444 -0
- package/dist/services/globalSave.d.ts +69 -0
- package/dist/services/globalSave.js +248 -0
- package/dist/services/historyService.d.ts +208 -0
- package/dist/services/historyService.js +321 -0
- package/dist/services/interruptService.d.ts +133 -0
- package/dist/services/interruptService.js +280 -0
- package/dist/services/nodeExecutionService.d.ts +63 -0
- package/dist/services/nodeExecutionService.js +266 -0
- package/dist/services/playgroundService.d.ts +130 -0
- package/dist/services/playgroundService.js +321 -0
- package/dist/services/portConfigApi.d.ts +14 -0
- package/dist/services/portConfigApi.js +54 -0
- package/dist/services/settingsService.d.ts +92 -0
- package/dist/services/settingsService.js +196 -0
- package/dist/services/toastService.d.ts +156 -0
- package/dist/services/toastService.js +265 -0
- package/dist/services/variableService.d.ts +141 -0
- package/dist/services/variableService.js +463 -0
- package/dist/services/workflowStorage.d.ts +37 -0
- package/dist/services/workflowStorage.js +116 -0
- package/dist/settings/index.d.ts +25 -0
- package/dist/settings/index.js +33 -0
- package/dist/stores/categoriesStore.svelte.d.ts +32 -0
- package/dist/stores/categoriesStore.svelte.js +77 -0
- package/dist/stores/editorStateMachine.svelte.d.ts +42 -0
- package/dist/stores/editorStateMachine.svelte.js +132 -0
- package/dist/stores/historyStore.svelte.d.ts +136 -0
- package/dist/stores/historyStore.svelte.js +207 -0
- package/dist/stores/interruptStore.svelte.d.ts +179 -0
- package/dist/stores/interruptStore.svelte.js +346 -0
- package/dist/stores/playgroundStore.svelte.d.ts +230 -0
- package/dist/stores/playgroundStore.svelte.js +515 -0
- package/dist/stores/portCoordinateStore.svelte.d.ts +66 -0
- package/dist/stores/portCoordinateStore.svelte.js +186 -0
- package/dist/stores/settingsStore.svelte.d.ts +158 -0
- package/dist/stores/settingsStore.svelte.js +544 -0
- package/dist/stores/workflowStore.svelte.d.ts +260 -0
- package/dist/stores/workflowStore.svelte.js +649 -0
- package/dist/stories/CanvasDecorator.svelte +49 -0
- package/dist/stories/CanvasDecorator.svelte.d.ts +8 -0
- package/dist/stories/NodeDecorator.svelte +73 -0
- package/dist/stories/NodeDecorator.svelte.d.ts +8 -0
- package/dist/stories/utils.d.ts +93 -0
- package/dist/stories/utils.js +122 -0
- package/dist/styles/base.css +1300 -0
- package/dist/styles/toast.css +35 -0
- package/dist/styles/tokens.css +475 -0
- package/dist/svelte-app.d.ts +150 -0
- package/dist/svelte-app.js +295 -0
- package/dist/types/agentspec.d.ts +318 -0
- package/dist/types/agentspec.js +48 -0
- package/dist/types/auth.d.ts +263 -0
- package/dist/types/auth.js +229 -0
- package/dist/types/config.d.ts +151 -0
- package/dist/types/config.js +7 -0
- package/dist/types/events.d.ts +190 -0
- package/dist/types/events.js +30 -0
- package/dist/types/index.d.ts +1234 -0
- package/dist/types/index.js +27 -0
- package/dist/types/interrupt.d.ts +390 -0
- package/dist/types/interrupt.js +145 -0
- package/dist/types/interruptState.d.ts +211 -0
- package/dist/types/interruptState.js +308 -0
- package/dist/types/playground.d.ts +351 -0
- package/dist/types/playground.js +95 -0
- package/dist/types/settings.d.ts +189 -0
- package/dist/types/settings.js +97 -0
- package/dist/types/uischema.d.ts +144 -0
- package/dist/types/uischema.js +51 -0
- package/dist/utils/colors.d.ts +288 -0
- package/dist/utils/colors.js +548 -0
- package/dist/utils/config.d.ts +37 -0
- package/dist/utils/config.js +226 -0
- package/dist/utils/connections.d.ts +125 -0
- package/dist/utils/connections.js +414 -0
- package/dist/utils/errors.d.ts +28 -0
- package/dist/utils/errors.js +44 -0
- package/dist/utils/fetchWithAuth.d.ts +25 -0
- package/dist/utils/fetchWithAuth.js +34 -0
- package/dist/utils/handleIds.d.ts +35 -0
- package/dist/utils/handleIds.js +58 -0
- package/dist/utils/handlePositioning.d.ts +31 -0
- package/dist/utils/handlePositioning.js +35 -0
- package/dist/utils/icons.d.ts +106 -0
- package/dist/utils/icons.js +157 -0
- package/dist/utils/logger.d.ts +47 -0
- package/dist/utils/logger.js +72 -0
- package/dist/utils/nodeStatus.d.ts +53 -0
- package/dist/utils/nodeStatus.js +183 -0
- package/dist/utils/nodeTypes.d.ts +117 -0
- package/dist/utils/nodeTypes.js +244 -0
- package/dist/utils/nodeWrapper.d.ts +39 -0
- package/dist/utils/nodeWrapper.js +62 -0
- package/dist/utils/performanceUtils.d.ts +30 -0
- package/dist/utils/performanceUtils.js +108 -0
- package/dist/utils/sanitize.d.ts +19 -0
- package/dist/utils/sanitize.js +31 -0
- package/dist/utils/uischema.d.ts +52 -0
- package/dist/utils/uischema.js +88 -0
- package/dist/utils/validation.d.ts +29 -0
- package/dist/utils/validation.js +39 -0
- package/package.json +292 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Shibin Das (d34dman)
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://raw.githubusercontent.com/flowdrop-io/flowdrop/main/libs/flowdrop/static/logo.svg" alt="FlowDrop" width="120" />
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<h1 align="center">FlowDrop</h1>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<img src="https://img.shields.io/github/actions/workflow/status/flowdrop-io/flowdrop/docker-publish.yml?style=flat-square&label=Build" alt="GitHub pages build status" />
|
|
9
|
+
<a href="https://www.npmjs.com/package/@flowdrop/flowdrop"><img src="https://img.shields.io/npm/v/@flowdrop/flowdrop?style=flat-square" alt="npm" /></a>
|
|
10
|
+
<img src="https://img.shields.io/npm/unpacked-size/%40flowdrop%2Fflowdrop?style=flat-square" alt="NPM Unpacked Size" />
|
|
11
|
+
<img src="https://img.shields.io/npm/types/@flowdrop/flowdrop?style=flat-square" alt="npm type definitions" />
|
|
12
|
+
<a href="http://npmjs.com/package/@flowdrop/flowdrop"><img src="https://img.shields.io/npm/dt/@flowdrop/flowdrop.svg?maxAge=2592000&style=flat-square" alt="npm downloads" /></a>
|
|
13
|
+
</p>
|
|
14
|
+
|
|
15
|
+
<p align="center">
|
|
16
|
+
<strong>Build beautiful workflow editors in minutes, not months.</strong>
|
|
17
|
+
</p>
|
|
18
|
+
|
|
19
|
+
<p align="center">
|
|
20
|
+
An awesome workflow editor built with Svelte 5 and @xyflow/svelte.<br/>
|
|
21
|
+
You own the backend. You own the data. You own the orchestration.
|
|
22
|
+
</p>
|
|
23
|
+
|
|
24
|
+
<p align="center">
|
|
25
|
+
<a href="#quickstart">Quickstart</a> •
|
|
26
|
+
<a href="#features">Features</a> •
|
|
27
|
+
<a href="#integration">Integration</a> •
|
|
28
|
+
<a href="#documentation">Docs</a>
|
|
29
|
+
</p>
|
|
30
|
+
|
|
31
|
+
<p align="center">
|
|
32
|
+
<img src="https://raw.githubusercontent.com/flowdrop-io/flowdrop/main/libs/flowdrop/static/FlowDrop-Screenshot.jpg" alt="FlowDrop Screenshot" width="800" />
|
|
33
|
+
</p>
|
|
34
|
+
<p align="center">
|
|
35
|
+
<em>Build AI-powered workflows with drag-and-drop simplicity. Connect nodes, configure inputs/outputs, and visualize your entire pipeline.</em>
|
|
36
|
+
</p>
|
|
37
|
+
|
|
38
|
+
## Why FlowDrop?
|
|
39
|
+
|
|
40
|
+
Most workflow tools are SaaS platforms that lock you in. Your data lives on their servers. Your execution logic runs in their cloud. You pay per workflow, per user, per run.
|
|
41
|
+
|
|
42
|
+
**FlowDrop is different.**
|
|
43
|
+
|
|
44
|
+
FlowDrop is a pure visual editor. You implement the backend. You control the orchestration. Your workflows run on your infrastructure, with your security policies, at your scale.
|
|
45
|
+
|
|
46
|
+
No vendor lock-in. No data leaving your walls. No surprise bills.
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
npm install @flowdrop/flowdrop
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
> **Note:** FlowDrop supports **one editor instance per page** (module-level singleton stores). See [Architecture Notes](#architecture-notes) for details.
|
|
53
|
+
|
|
54
|
+
You get a production-ready workflow UI. You keep full control of everything else.
|
|
55
|
+
|
|
56
|
+
## Quickstart
|
|
57
|
+
|
|
58
|
+
```svelte
|
|
59
|
+
<script lang="ts">
|
|
60
|
+
import { WorkflowEditor } from '@flowdrop/flowdrop';
|
|
61
|
+
import '@flowdrop/flowdrop/styles/base.css';
|
|
62
|
+
</script>
|
|
63
|
+
|
|
64
|
+
<WorkflowEditor />
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**5 lines. One fully-functional workflow editor.**
|
|
68
|
+
|
|
69
|
+
## Features
|
|
70
|
+
|
|
71
|
+
| | |
|
|
72
|
+
| ---------------------------- | ------------------------------------------------------------------------- |
|
|
73
|
+
| 🎨 **Visual Editor Only** | Pure UI component. No hidden backend, no external dependencies |
|
|
74
|
+
| 🔐 **You Own Everything** | Your data, your servers, your orchestration logic, your security policies |
|
|
75
|
+
| 🔌 **Backend Agnostic** | Connect to any API: Drupal, Laravel, Express, FastAPI, or your own |
|
|
76
|
+
| 🧩 **7 Built-in Node Types** | From simple icons to complex gateway logic |
|
|
77
|
+
| 🎭 **Framework Flexible** | Use as Svelte component or mount into React, Vue, Angular, or vanilla JS |
|
|
78
|
+
| 🐳 **Deploy Anywhere** | Runtime config means build once, deploy everywhere |
|
|
79
|
+
|
|
80
|
+
## Architecture Notes
|
|
81
|
+
|
|
82
|
+
- **Single instance per page.** FlowDrop uses module-level singleton stores for state management. Only one FlowDrop editor instance can exist on a page at a time.
|
|
83
|
+
- **Svelte 5 required.** FlowDrop uses Svelte 5 runes (`$state`, `$derived`, `$effect`) throughout. Svelte 4 is not supported.
|
|
84
|
+
- **Modern browsers only.** The library targets ES2020+ and does not include polyfills for older browsers.
|
|
85
|
+
|
|
86
|
+
## Node Types
|
|
87
|
+
|
|
88
|
+
FlowDrop ships with 7 beautifully designed node types:
|
|
89
|
+
|
|
90
|
+
| Type | Purpose |
|
|
91
|
+
| ---------- | --------------------------------------- |
|
|
92
|
+
| `default` | Full-featured nodes with inputs/outputs |
|
|
93
|
+
| `simple` | Compact, space-efficient layout |
|
|
94
|
+
| `square` | Icon-only minimal design |
|
|
95
|
+
| `tool` | AI agent tool nodes |
|
|
96
|
+
| `gateway` | Conditional branching logic |
|
|
97
|
+
| `terminal` | Start/end workflow points |
|
|
98
|
+
| `note` | Markdown documentation blocks |
|
|
99
|
+
|
|
100
|
+
<p align="center">
|
|
101
|
+
<img src="https://raw.githubusercontent.com/flowdrop-io/flowdrop/main/libs/flowdrop/static/Node-Types.jpg" alt="FlowDrop Node Types" width="800" />
|
|
102
|
+
</p>
|
|
103
|
+
<p align="center">
|
|
104
|
+
<em>From simple triggers to complex branching logic, each node type is designed for specific workflow patterns.</em>
|
|
105
|
+
</p>
|
|
106
|
+
|
|
107
|
+
## Integration
|
|
108
|
+
|
|
109
|
+
### Svelte (Native)
|
|
110
|
+
|
|
111
|
+
```svelte
|
|
112
|
+
<script>
|
|
113
|
+
import { WorkflowEditor, NodeSidebar } from '@flowdrop/flowdrop';
|
|
114
|
+
</script>
|
|
115
|
+
|
|
116
|
+
<div class="flex h-screen">
|
|
117
|
+
<NodeSidebar {nodes} />
|
|
118
|
+
<WorkflowEditor {nodes} />
|
|
119
|
+
</div>
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Vanilla JS / React / Vue / Angular
|
|
123
|
+
|
|
124
|
+
```javascript
|
|
125
|
+
import { mountFlowDropApp, createEndpointConfig } from '@flowdrop/flowdrop';
|
|
126
|
+
|
|
127
|
+
const app = await mountFlowDropApp(document.getElementById('editor'), {
|
|
128
|
+
workflow: myWorkflow,
|
|
129
|
+
endpointConfig: createEndpointConfig('/api/flowdrop'),
|
|
130
|
+
eventHandlers: {
|
|
131
|
+
onDirtyStateChange: (isDirty) => console.log('Unsaved changes:', isDirty),
|
|
132
|
+
onAfterSave: (workflow) => console.log('Saved!', workflow)
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
// Full control over the editor
|
|
137
|
+
app.save();
|
|
138
|
+
app.getWorkflow();
|
|
139
|
+
app.destroy();
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Enterprise Integration
|
|
143
|
+
|
|
144
|
+
```javascript
|
|
145
|
+
import { mountFlowDropApp, CallbackAuthProvider } from '@flowdrop/flowdrop';
|
|
146
|
+
|
|
147
|
+
const app = await mountFlowDropApp(container, {
|
|
148
|
+
// Dynamic token refresh
|
|
149
|
+
authProvider: new CallbackAuthProvider({
|
|
150
|
+
getToken: () => authService.getAccessToken(),
|
|
151
|
+
onUnauthorized: () => authService.refreshToken()
|
|
152
|
+
}),
|
|
153
|
+
|
|
154
|
+
// Lifecycle hooks
|
|
155
|
+
eventHandlers: {
|
|
156
|
+
onBeforeUnmount: (workflow, isDirty) => {
|
|
157
|
+
if (isDirty) saveDraft(workflow);
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
|
|
161
|
+
// Auto-save, toasts, and more
|
|
162
|
+
features: {
|
|
163
|
+
autoSaveDraft: true,
|
|
164
|
+
autoSaveDraftInterval: 30000
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
## API Configuration
|
|
170
|
+
|
|
171
|
+
Connect to any backend in seconds:
|
|
172
|
+
|
|
173
|
+
```typescript
|
|
174
|
+
import { createEndpointConfig } from '@flowdrop/flowdrop';
|
|
175
|
+
|
|
176
|
+
const config = createEndpointConfig({
|
|
177
|
+
baseUrl: 'https://api.example.com',
|
|
178
|
+
endpoints: {
|
|
179
|
+
nodes: { list: '/nodes', get: '/nodes/{id}' },
|
|
180
|
+
workflows: {
|
|
181
|
+
list: '/workflows',
|
|
182
|
+
get: '/workflows/{id}',
|
|
183
|
+
create: '/workflows',
|
|
184
|
+
update: '/workflows/{id}',
|
|
185
|
+
execute: '/workflows/{id}/execute'
|
|
186
|
+
}
|
|
187
|
+
},
|
|
188
|
+
auth: { type: 'bearer', token: 'your-token' }
|
|
189
|
+
});
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
## Customization
|
|
193
|
+
|
|
194
|
+
Make it yours with CSS custom properties:
|
|
195
|
+
|
|
196
|
+
```css
|
|
197
|
+
:root {
|
|
198
|
+
--flowdrop-background-color: #0a0a0a;
|
|
199
|
+
--flowdrop-primary-color: #6366f1;
|
|
200
|
+
--flowdrop-border-color: #27272a;
|
|
201
|
+
--flowdrop-text-color: #fafafa;
|
|
202
|
+
}
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
## Deploy
|
|
206
|
+
|
|
207
|
+
### Docker (Recommended)
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
cd ../../apps/example-client-docker
|
|
211
|
+
cp env.example .env
|
|
212
|
+
docker-compose up -d
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### Node.js
|
|
216
|
+
|
|
217
|
+
```bash
|
|
218
|
+
npm run build
|
|
219
|
+
FLOWDROP_API_BASE_URL=http://your-backend/api node build
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
Runtime configuration means you build once and deploy to staging, production, or anywhere else with just environment variables.
|
|
223
|
+
|
|
224
|
+
## Documentation
|
|
225
|
+
|
|
226
|
+
| Resource | Description |
|
|
227
|
+
| ------------------------------------------------------------ | ------------------------ |
|
|
228
|
+
| [API Documentation](https://flowdrop-io.github.io/flowdrop/) | REST API specification |
|
|
229
|
+
| [Docker Guide](../../apps/example-client-docker/README.md) | Docker deployment guide |
|
|
230
|
+
| [QUICK_START.md](./QUICK_START.md) | Get running in 5 minutes |
|
|
231
|
+
| [CHANGELOG.md](./CHANGELOG.md) | Version history |
|
|
232
|
+
|
|
233
|
+
## Development
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
pnpm install # Install dependencies
|
|
237
|
+
pnpm dev # Start dev server
|
|
238
|
+
pnpm build # Build library
|
|
239
|
+
pnpm test # Run all tests
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
## Contributing
|
|
243
|
+
|
|
244
|
+
FlowDrop is stabilizing. Contributions will open soon. Star the repo to stay updated.
|
|
245
|
+
|
|
246
|
+
<p align="center">
|
|
247
|
+
<strong>FlowDrop</strong> - The visual workflow editor you own completely
|
|
248
|
+
</p>
|
|
249
|
+
|
|
250
|
+
<p align="center">
|
|
251
|
+
Built with ❤️ Svelte 5 and @xyflow/svelte
|
|
252
|
+
</p>
|
|
@@ -0,0 +1,167 @@
|
|
|
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 type { Workflow, NodeMetadata, WorkflowFormat } from '../types/index.js';
|
|
17
|
+
/**
|
|
18
|
+
* Standard workflow node interface (SvelteFlow-agnostic)
|
|
19
|
+
*/
|
|
20
|
+
export interface StandardNode {
|
|
21
|
+
id: string;
|
|
22
|
+
type: string;
|
|
23
|
+
position: {
|
|
24
|
+
x: number;
|
|
25
|
+
y: number;
|
|
26
|
+
};
|
|
27
|
+
data: {
|
|
28
|
+
label: string;
|
|
29
|
+
config: Record<string, unknown>;
|
|
30
|
+
metadata: NodeMetadata;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Standard workflow edge interface (SvelteFlow-agnostic)
|
|
35
|
+
*/
|
|
36
|
+
export interface StandardEdge {
|
|
37
|
+
id: string;
|
|
38
|
+
source: string;
|
|
39
|
+
target: string;
|
|
40
|
+
sourceHandle?: string;
|
|
41
|
+
targetHandle?: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Standard workflow interface (SvelteFlow-agnostic)
|
|
45
|
+
*/
|
|
46
|
+
export interface StandardWorkflow {
|
|
47
|
+
id: string;
|
|
48
|
+
name: string;
|
|
49
|
+
description?: string;
|
|
50
|
+
nodes: StandardNode[];
|
|
51
|
+
edges: StandardEdge[];
|
|
52
|
+
metadata?: {
|
|
53
|
+
version: string;
|
|
54
|
+
createdAt: string;
|
|
55
|
+
updatedAt: string;
|
|
56
|
+
author?: string;
|
|
57
|
+
tags?: string[];
|
|
58
|
+
format?: WorkflowFormat;
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Workflow execution result
|
|
63
|
+
*/
|
|
64
|
+
export interface WorkflowExecutionResult {
|
|
65
|
+
success: boolean;
|
|
66
|
+
data?: unknown;
|
|
67
|
+
error?: string;
|
|
68
|
+
executionTime?: number;
|
|
69
|
+
nodeResults?: Record<string, unknown>;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Workflow validation result
|
|
73
|
+
*/
|
|
74
|
+
export interface WorkflowValidationResult {
|
|
75
|
+
valid: boolean;
|
|
76
|
+
errors: string[];
|
|
77
|
+
warnings: string[];
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Workflow Adapter Class
|
|
81
|
+
* Provides a clean API for workflow operations without exposing SvelteFlow internals
|
|
82
|
+
*/
|
|
83
|
+
export declare class WorkflowAdapter {
|
|
84
|
+
private nodeTypes;
|
|
85
|
+
constructor(nodeTypes?: NodeMetadata[]);
|
|
86
|
+
/**
|
|
87
|
+
* Create a new workflow
|
|
88
|
+
*/
|
|
89
|
+
createWorkflow(name: string, description?: string): StandardWorkflow;
|
|
90
|
+
/**
|
|
91
|
+
* Add a node to a workflow
|
|
92
|
+
*/
|
|
93
|
+
addNode(workflow: StandardWorkflow, nodeType: string, position: {
|
|
94
|
+
x: number;
|
|
95
|
+
y: number;
|
|
96
|
+
}, config?: Record<string, unknown>): StandardNode;
|
|
97
|
+
/**
|
|
98
|
+
* Remove a node from a workflow
|
|
99
|
+
*/
|
|
100
|
+
removeNode(workflow: StandardWorkflow, nodeId: string): boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Update node position
|
|
103
|
+
*/
|
|
104
|
+
updateNodePosition(workflow: StandardWorkflow, nodeId: string, position: {
|
|
105
|
+
x: number;
|
|
106
|
+
y: number;
|
|
107
|
+
}): boolean;
|
|
108
|
+
/**
|
|
109
|
+
* Update node configuration
|
|
110
|
+
*/
|
|
111
|
+
updateNodeConfig(workflow: StandardWorkflow, nodeId: string, config: Record<string, unknown>): boolean;
|
|
112
|
+
/**
|
|
113
|
+
* Add an edge between nodes
|
|
114
|
+
*/
|
|
115
|
+
addEdge(workflow: StandardWorkflow, sourceNodeId: string, targetNodeId: string, sourceHandle?: string, targetHandle?: string): StandardEdge;
|
|
116
|
+
/**
|
|
117
|
+
* Remove an edge from a workflow
|
|
118
|
+
*/
|
|
119
|
+
removeEdge(workflow: StandardWorkflow, edgeId: string): boolean;
|
|
120
|
+
/**
|
|
121
|
+
* Get all nodes of a specific type
|
|
122
|
+
*/
|
|
123
|
+
getNodesByType(workflow: StandardWorkflow, nodeType: string): StandardNode[];
|
|
124
|
+
/**
|
|
125
|
+
* Get all edges connected to a node
|
|
126
|
+
*/
|
|
127
|
+
getNodeEdges(workflow: StandardWorkflow, nodeId: string): StandardEdge[];
|
|
128
|
+
/**
|
|
129
|
+
* Get connected nodes (both incoming and outgoing)
|
|
130
|
+
*/
|
|
131
|
+
getConnectedNodes(workflow: StandardWorkflow, nodeId: string): StandardNode[];
|
|
132
|
+
/**
|
|
133
|
+
* Validate workflow structure
|
|
134
|
+
*/
|
|
135
|
+
validateWorkflow(workflow: StandardWorkflow): WorkflowValidationResult;
|
|
136
|
+
/**
|
|
137
|
+
* Export workflow to JSON
|
|
138
|
+
*/
|
|
139
|
+
exportWorkflow(workflow: StandardWorkflow): string;
|
|
140
|
+
/**
|
|
141
|
+
* Import workflow from JSON
|
|
142
|
+
*/
|
|
143
|
+
importWorkflow(json: string): StandardWorkflow;
|
|
144
|
+
/**
|
|
145
|
+
* Convert SvelteFlow workflow to standard format
|
|
146
|
+
*/
|
|
147
|
+
fromSvelteFlow(svelteFlowWorkflow: Workflow): StandardWorkflow;
|
|
148
|
+
/**
|
|
149
|
+
* Convert standard workflow to SvelteFlow format
|
|
150
|
+
*/
|
|
151
|
+
toSvelteFlow(workflow: StandardWorkflow): Workflow;
|
|
152
|
+
/**
|
|
153
|
+
* Get workflow statistics
|
|
154
|
+
*/
|
|
155
|
+
getWorkflowStats(workflow: StandardWorkflow): {
|
|
156
|
+
totalNodes: number;
|
|
157
|
+
totalEdges: number;
|
|
158
|
+
nodeTypeCounts: {
|
|
159
|
+
[k: string]: number;
|
|
160
|
+
};
|
|
161
|
+
lastModified: string | undefined;
|
|
162
|
+
};
|
|
163
|
+
/**
|
|
164
|
+
* Clone a workflow
|
|
165
|
+
*/
|
|
166
|
+
cloneWorkflow(workflow: StandardWorkflow, newName?: string): StandardWorkflow;
|
|
167
|
+
}
|