@flowdrop/flowdrop 1.0.1 → 1.2.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/README.md +50 -50
- package/dist/adapters/WorkflowAdapter.d.ts +1 -1
- package/dist/adapters/WorkflowAdapter.js +25 -25
- package/dist/adapters/agentspec/AgentSpecAdapter.d.ts +2 -2
- package/dist/adapters/agentspec/AgentSpecAdapter.js +133 -122
- package/dist/adapters/agentspec/agentAdapter.d.ts +2 -2
- package/dist/adapters/agentspec/agentAdapter.js +10 -10
- package/dist/adapters/agentspec/autoLayout.d.ts +1 -1
- package/dist/adapters/agentspec/autoLayout.js +2 -2
- package/dist/adapters/agentspec/componentTypeDefaults.d.ts +1 -1
- package/dist/adapters/agentspec/componentTypeDefaults.js +120 -120
- package/dist/adapters/agentspec/defaultNodeTypes.d.ts +2 -2
- package/dist/adapters/agentspec/defaultNodeTypes.js +307 -307
- package/dist/adapters/agentspec/index.d.ts +10 -10
- package/dist/adapters/agentspec/index.js +6 -6
- package/dist/adapters/agentspec/validator.d.ts +2 -2
- package/dist/adapters/agentspec/validator.js +22 -20
- package/dist/api/enhanced-client.d.ts +3 -3
- package/dist/api/enhanced-client.js +73 -72
- package/dist/components/App.svelte +1090 -961
- package/dist/components/App.svelte.d.ts +9 -6
- package/dist/components/CanvasBanner.stories.svelte +23 -20
- package/dist/components/CanvasBanner.stories.svelte.d.ts +1 -1
- package/dist/components/CanvasBanner.svelte +52 -46
- package/dist/components/ConfigForm.svelte +1164 -1065
- package/dist/components/ConfigForm.svelte.d.ts +2 -2
- package/dist/components/ConfigModal.svelte +180 -180
- package/dist/components/ConfigModal.svelte.d.ts +1 -1
- package/dist/components/ConfigPanel.stories.svelte +35 -35
- package/dist/components/ConfigPanel.stories.svelte.d.ts +1 -1
- package/dist/components/ConfigPanel.svelte +178 -167
- package/dist/components/ConfigPanel.svelte.d.ts +1 -1
- package/dist/components/ConnectionLine.svelte +25 -25
- package/dist/components/EdgeRefresher.svelte +26 -26
- package/dist/components/FlowDropEdge.stories.svelte +179 -143
- package/dist/components/FlowDropEdge.svelte +147 -147
- package/dist/components/FlowDropEdge.svelte.d.ts +1 -1
- package/dist/components/FlowDropZone.svelte +63 -60
- package/dist/components/FlowDropZone.svelte.d.ts +1 -1
- package/dist/components/LoadingSpinner.stories.svelte +19 -19
- package/dist/components/LoadingSpinner.stories.svelte.d.ts +1 -1
- package/dist/components/LoadingSpinner.svelte +21 -21
- package/dist/components/LoadingSpinner.svelte.d.ts +1 -1
- package/dist/components/Logo.stories.svelte +13 -13
- package/dist/components/Logo.stories.svelte.d.ts +1 -1
- package/dist/components/Logo.svelte +101 -95
- package/dist/components/LogsSidebar.svelte +553 -546
- package/dist/components/LogsSidebar.svelte.d.ts +1 -1
- package/dist/components/MarkdownDisplay.stories.svelte +29 -23
- package/dist/components/MarkdownDisplay.stories.svelte.d.ts +1 -1
- package/dist/components/MarkdownDisplay.svelte +16 -14
- package/dist/components/Navbar.stories.svelte +43 -38
- package/dist/components/Navbar.stories.svelte.d.ts +1 -1
- package/dist/components/Navbar.svelte +760 -706
- package/dist/components/Navbar.svelte.d.ts +1 -1
- package/dist/components/NodeSidebar.svelte +905 -746
- package/dist/components/NodeSidebar.svelte.d.ts +5 -1
- package/dist/components/NodeStatusOverlay.stories.svelte +82 -70
- package/dist/components/NodeStatusOverlay.stories.svelte.d.ts +1 -1
- package/dist/components/NodeStatusOverlay.svelte +295 -280
- package/dist/components/NodeStatusOverlay.svelte.d.ts +3 -3
- package/dist/components/PipelineStatus.svelte +326 -300
- package/dist/components/PipelineStatus.svelte.d.ts +4 -4
- package/dist/components/PortCoordinateTracker.svelte +49 -47
- package/dist/components/PortCoordinateTracker.svelte.d.ts +1 -1
- package/dist/components/ReadOnlyDetails.svelte +156 -156
- package/dist/components/SchemaForm.stories.svelte +106 -98
- package/dist/components/SchemaForm.stories.svelte.d.ts +1 -1
- package/dist/components/SchemaForm.svelte +490 -463
- package/dist/components/SchemaForm.svelte.d.ts +2 -2
- package/dist/components/SettingsModal.svelte +226 -223
- package/dist/components/SettingsModal.svelte.d.ts +1 -1
- package/dist/components/SettingsPanel.svelte +637 -601
- package/dist/components/SettingsPanel.svelte.d.ts +1 -1
- package/dist/components/StatusIcon.stories.svelte +62 -49
- package/dist/components/StatusIcon.stories.svelte.d.ts +1 -1
- package/dist/components/StatusIcon.svelte +87 -87
- package/dist/components/StatusIcon.svelte.d.ts +2 -2
- package/dist/components/StatusLabel.stories.svelte +12 -12
- package/dist/components/StatusLabel.stories.svelte.d.ts +1 -1
- package/dist/components/StatusLabel.svelte +19 -19
- package/dist/components/ThemeToggle.stories.svelte +16 -16
- package/dist/components/ThemeToggle.stories.svelte.d.ts +1 -1
- package/dist/components/ThemeToggle.svelte +180 -169
- package/dist/components/ThemeToggle.svelte.d.ts +1 -1
- package/dist/components/UniversalNode.svelte +150 -138
- package/dist/components/UniversalNode.svelte.d.ts +3 -3
- package/dist/components/WorkflowEditor.svelte +1069 -1014
- package/dist/components/WorkflowEditor.svelte.d.ts +4 -4
- package/dist/components/form/FormArray.svelte +1034 -973
- package/dist/components/form/FormArray.svelte.d.ts +1 -1
- package/dist/components/form/FormAutocomplete.svelte +1021 -978
- package/dist/components/form/FormAutocomplete.svelte.d.ts +1 -1
- package/dist/components/form/FormCheckboxGroup.stories.svelte +23 -20
- package/dist/components/form/FormCheckboxGroup.stories.svelte.d.ts +1 -1
- package/dist/components/form/FormCheckboxGroup.svelte +136 -136
- package/dist/components/form/FormCodeEditor.svelte +452 -434
- package/dist/components/form/FormField.svelte +366 -355
- package/dist/components/form/FormField.svelte.d.ts +2 -2
- package/dist/components/form/FormFieldLight.svelte +400 -384
- package/dist/components/form/FormFieldLight.svelte.d.ts +1 -1
- package/dist/components/form/FormFieldWrapper.stories.svelte +42 -42
- package/dist/components/form/FormFieldWrapper.stories.svelte.d.ts +1 -1
- package/dist/components/form/FormFieldWrapper.svelte +100 -93
- package/dist/components/form/FormFieldWrapper.svelte.d.ts +1 -1
- package/dist/components/form/FormFieldset.svelte +108 -108
- package/dist/components/form/FormFieldset.svelte.d.ts +2 -2
- package/dist/components/form/FormMarkdownEditor.svelte +758 -725
- package/dist/components/form/FormNumberField.stories.svelte +25 -25
- package/dist/components/form/FormNumberField.stories.svelte.d.ts +1 -1
- package/dist/components/form/FormNumberField.svelte +88 -88
- package/dist/components/form/FormRangeField.stories.svelte +20 -20
- package/dist/components/form/FormRangeField.stories.svelte.d.ts +1 -1
- package/dist/components/form/FormRangeField.svelte +234 -226
- package/dist/components/form/FormSelect.stories.svelte +38 -38
- package/dist/components/form/FormSelect.stories.svelte.d.ts +1 -1
- package/dist/components/form/FormSelect.svelte +101 -101
- package/dist/components/form/FormSelect.svelte.d.ts +1 -1
- package/dist/components/form/FormTemplateEditor.svelte +847 -798
- package/dist/components/form/FormTemplateEditor.svelte.d.ts +1 -1
- package/dist/components/form/FormTextField.stories.svelte +29 -23
- package/dist/components/form/FormTextField.stories.svelte.d.ts +1 -1
- package/dist/components/form/FormTextField.svelte +68 -68
- package/dist/components/form/FormTextarea.stories.svelte +28 -25
- package/dist/components/form/FormTextarea.stories.svelte.d.ts +1 -1
- package/dist/components/form/FormTextarea.svelte +74 -74
- package/dist/components/form/FormToggle.stories.svelte +23 -20
- package/dist/components/form/FormToggle.stories.svelte.d.ts +1 -1
- package/dist/components/form/FormToggle.svelte +98 -98
- package/dist/components/form/FormUISchemaRenderer.svelte +120 -113
- package/dist/components/form/FormUISchemaRenderer.svelte.d.ts +3 -3
- package/dist/components/form/index.d.ts +19 -19
- package/dist/components/form/index.js +18 -18
- package/dist/components/form/templateAutocomplete.d.ts +2 -2
- package/dist/components/form/templateAutocomplete.js +64 -55
- package/dist/components/form/types.d.ts +6 -6
- package/dist/components/form/types.js +9 -4
- package/dist/components/icons/AlertCircleIcon.svelte +11 -0
- package/dist/components/icons/AlertCircleIcon.svelte.d.ts +26 -0
- package/dist/components/icons/CogIcon.svelte +11 -0
- package/dist/components/icons/CogIcon.svelte.d.ts +26 -0
- package/dist/components/interrupt/ChoicePrompt.stories.svelte +54 -38
- package/dist/components/interrupt/ChoicePrompt.stories.svelte.d.ts +1 -1
- package/dist/components/interrupt/ChoicePrompt.svelte +407 -383
- package/dist/components/interrupt/ChoicePrompt.svelte.d.ts +1 -1
- package/dist/components/interrupt/ConfirmationPrompt.stories.svelte +48 -48
- package/dist/components/interrupt/ConfirmationPrompt.stories.svelte.d.ts +1 -1
- package/dist/components/interrupt/ConfirmationPrompt.svelte +280 -274
- package/dist/components/interrupt/ConfirmationPrompt.svelte.d.ts +1 -1
- package/dist/components/interrupt/FormPrompt.svelte +223 -218
- package/dist/components/interrupt/FormPrompt.svelte.d.ts +1 -1
- package/dist/components/interrupt/InterruptBubble.svelte +617 -583
- package/dist/components/interrupt/InterruptBubble.svelte.d.ts +2 -2
- package/dist/components/interrupt/ReviewPrompt.stories.svelte +66 -56
- package/dist/components/interrupt/ReviewPrompt.stories.svelte.d.ts +1 -1
- package/dist/components/interrupt/ReviewPrompt.svelte +861 -841
- package/dist/components/interrupt/ReviewPrompt.svelte.d.ts +1 -1
- package/dist/components/interrupt/TextInputPrompt.stories.svelte +38 -33
- package/dist/components/interrupt/TextInputPrompt.stories.svelte.d.ts +1 -1
- package/dist/components/interrupt/TextInputPrompt.svelte +333 -328
- package/dist/components/interrupt/TextInputPrompt.svelte.d.ts +1 -1
- package/dist/components/interrupt/index.d.ts +5 -5
- package/dist/components/interrupt/index.js +5 -5
- package/dist/components/layouts/MainLayout.svelte +724 -691
- package/dist/components/layouts/MainLayout.svelte.d.ts +6 -6
- package/dist/components/nodes/GatewayNode.stories.svelte +100 -99
- package/dist/components/nodes/GatewayNode.svelte +605 -571
- package/dist/components/nodes/GatewayNode.svelte.d.ts +3 -3
- package/dist/components/nodes/IdeaNode.stories.svelte +44 -43
- package/dist/components/nodes/IdeaNode.svelte +451 -437
- package/dist/components/nodes/IdeaNode.svelte.d.ts +1 -1
- package/dist/components/nodes/NotesNode.stories.svelte +65 -64
- package/dist/components/nodes/NotesNode.svelte +380 -369
- package/dist/components/nodes/NotesNode.svelte.d.ts +1 -1
- package/dist/components/nodes/SimpleNode.stories.svelte +145 -144
- package/dist/components/nodes/SimpleNode.svelte +486 -424
- package/dist/components/nodes/SimpleNode.svelte.d.ts +1 -1
- package/dist/components/nodes/SquareNode.stories.svelte +73 -73
- package/dist/components/nodes/SquareNode.svelte +439 -380
- package/dist/components/nodes/SquareNode.svelte.d.ts +1 -1
- package/dist/components/nodes/TerminalNode.stories.svelte +13 -13
- package/dist/components/nodes/TerminalNode.svelte +709 -670
- package/dist/components/nodes/TerminalNode.svelte.d.ts +1 -1
- package/dist/components/nodes/ToolNode.stories.svelte +181 -180
- package/dist/components/nodes/ToolNode.svelte +505 -447
- package/dist/components/nodes/ToolNode.svelte.d.ts +1 -1
- package/dist/components/nodes/WorkflowNode.stories.svelte +70 -46
- package/dist/components/nodes/WorkflowNode.svelte +621 -551
- package/dist/components/nodes/WorkflowNode.svelte.d.ts +3 -3
- package/dist/components/playground/ChatPanel.svelte +945 -889
- package/dist/components/playground/ExecutionLogs.svelte +495 -472
- package/dist/components/playground/InputCollector.svelte +449 -428
- package/dist/components/playground/MessageBubble.stories.svelte +47 -47
- package/dist/components/playground/MessageBubble.stories.svelte.d.ts +1 -1
- package/dist/components/playground/MessageBubble.svelte +626 -610
- package/dist/components/playground/MessageBubble.svelte.d.ts +1 -1
- package/dist/components/playground/Playground.svelte +1088 -1057
- package/dist/components/playground/Playground.svelte.d.ts +3 -3
- package/dist/components/playground/PlaygroundModal.svelte +208 -204
- package/dist/components/playground/PlaygroundModal.svelte.d.ts +3 -3
- package/dist/components/playground/SessionManager.svelte +527 -521
- package/dist/components/playground/SessionManager.svelte.d.ts +1 -1
- package/dist/config/agentSpecEndpoints.d.ts +1 -1
- package/dist/config/agentSpecEndpoints.js +20 -20
- package/dist/config/constants.js +2 -2
- package/dist/config/defaultCategories.d.ts +1 -1
- package/dist/config/defaultCategories.js +86 -86
- package/dist/config/defaultPortConfig.d.ts +1 -1
- package/dist/config/defaultPortConfig.js +144 -144
- package/dist/config/endpoints.d.ts +4 -4
- package/dist/config/endpoints.js +65 -65
- package/dist/config/runtimeConfig.d.ts +2 -2
- package/dist/config/runtimeConfig.js +8 -8
- package/dist/core/index.d.ts +63 -59
- package/dist/core/index.js +35 -33
- package/dist/display/index.d.ts +2 -2
- package/dist/display/index.js +2 -2
- package/dist/editor/index.d.ts +62 -62
- package/dist/editor/index.js +53 -53
- package/dist/form/code.d.ts +5 -5
- package/dist/form/code.js +14 -14
- package/dist/form/fieldRegistry.d.ts +3 -3
- package/dist/form/fieldRegistry.js +11 -9
- package/dist/form/full.d.ts +8 -8
- package/dist/form/full.js +9 -9
- package/dist/form/index.d.ts +18 -18
- package/dist/form/index.js +16 -16
- package/dist/form/markdown.d.ts +4 -4
- package/dist/form/markdown.js +8 -8
- package/dist/helpers/proximityConnect.d.ts +3 -3
- package/dist/helpers/proximityConnect.js +34 -32
- package/dist/helpers/workflowEditorHelper.d.ts +5 -5
- package/dist/helpers/workflowEditorHelper.js +108 -96
- package/dist/index.d.ts +6 -6
- package/dist/index.js +6 -6
- package/dist/mocks/app-environment.js +2 -2
- package/dist/mocks/app-forms.js +9 -9
- package/dist/mocks/app-navigation.js +11 -11
- package/dist/mocks/app-stores.js +8 -8
- package/dist/playground/index.d.ts +19 -19
- package/dist/playground/index.js +16 -16
- package/dist/playground/mount.d.ts +3 -3
- package/dist/playground/mount.js +24 -24
- package/dist/registry/builtinFormats.js +13 -13
- package/dist/registry/builtinNodes.d.ts +2 -2
- package/dist/registry/builtinNodes.js +77 -77
- package/dist/registry/index.d.ts +4 -4
- package/dist/registry/index.js +4 -4
- package/dist/registry/nodeComponentRegistry.d.ts +8 -8
- package/dist/registry/nodeComponentRegistry.js +11 -9
- package/dist/registry/plugin.d.ts +2 -2
- package/dist/registry/plugin.js +11 -11
- package/dist/registry/workflowFormatRegistry.d.ts +3 -3
- package/dist/registry/workflowFormatRegistry.js +2 -2
- package/dist/schema/index.d.ts +1 -1
- package/dist/schema/index.js +2 -2
- package/dist/services/agentSpecExecutionService.d.ts +3 -3
- package/dist/services/agentSpecExecutionService.js +59 -55
- package/dist/services/api.d.ts +2 -2
- package/dist/services/api.js +37 -37
- package/dist/services/apiVariableService.d.ts +1 -1
- package/dist/services/apiVariableService.js +41 -34
- package/dist/services/autoSaveService.js +8 -8
- package/dist/services/categoriesApi.d.ts +2 -2
- package/dist/services/categoriesApi.js +8 -8
- package/dist/services/draftStorage.d.ts +1 -1
- package/dist/services/draftStorage.js +11 -11
- package/dist/services/dynamicSchemaService.d.ts +1 -1
- package/dist/services/dynamicSchemaService.js +41 -39
- package/dist/services/globalSave.d.ts +2 -2
- package/dist/services/globalSave.js +41 -38
- package/dist/services/historyService.d.ts +1 -1
- package/dist/services/historyService.js +8 -8
- package/dist/services/interruptService.d.ts +1 -1
- package/dist/services/interruptService.js +35 -29
- package/dist/services/nodeExecutionService.d.ts +1 -1
- package/dist/services/nodeExecutionService.js +45 -44
- package/dist/services/playgroundService.d.ts +1 -1
- package/dist/services/playgroundService.js +29 -29
- package/dist/services/portConfigApi.d.ts +2 -2
- package/dist/services/portConfigApi.js +8 -8
- package/dist/services/settingsService.d.ts +2 -2
- package/dist/services/settingsService.js +25 -19
- package/dist/services/toastService.d.ts +4 -4
- package/dist/services/toastService.js +33 -33
- package/dist/services/variableService.d.ts +1 -1
- package/dist/services/variableService.js +36 -36
- package/dist/services/workflowStorage.d.ts +2 -2
- package/dist/services/workflowStorage.js +13 -13
- package/dist/settings/index.d.ts +7 -7
- package/dist/settings/index.js +6 -6
- package/dist/skins/default.d.ts +2 -0
- package/dist/skins/default.js +1 -0
- package/dist/skins/index.d.ts +13 -0
- package/dist/skins/index.js +30 -0
- package/dist/skins/slate.d.ts +2 -0
- package/dist/skins/slate.js +78 -0
- package/dist/stores/categoriesStore.svelte.d.ts +1 -1
- package/dist/stores/categoriesStore.svelte.js +5 -5
- package/dist/stores/editorStateMachine.svelte.d.ts +2 -2
- package/dist/stores/editorStateMachine.svelte.js +65 -33
- package/dist/stores/historyStore.svelte.d.ts +4 -4
- package/dist/stores/historyStore.svelte.js +4 -4
- package/dist/stores/interruptStore.svelte.d.ts +3 -3
- package/dist/stores/interruptStore.svelte.js +21 -21
- package/dist/stores/playgroundStore.svelte.d.ts +2 -2
- package/dist/stores/playgroundStore.svelte.js +25 -18
- package/dist/stores/portCoordinateStore.svelte.d.ts +2 -2
- package/dist/stores/portCoordinateStore.svelte.js +15 -8
- package/dist/stores/settingsStore.svelte.d.ts +2 -2
- package/dist/stores/settingsStore.svelte.js +62 -57
- package/dist/stores/workflowStore.svelte.d.ts +3 -3
- package/dist/stores/workflowStore.svelte.js +50 -47
- package/dist/stories/CanvasDecorator.svelte +35 -32
- package/dist/stories/CanvasDecorator.svelte.d.ts +2 -2
- package/dist/stories/EdgeDecorator.svelte +102 -99
- package/dist/stories/EdgeDecorator.svelte.d.ts +1 -1
- package/dist/stories/NodeDecorator.svelte +59 -53
- package/dist/stories/NodeDecorator.svelte.d.ts +1 -1
- package/dist/stories/utils.d.ts +2 -2
- package/dist/stories/utils.js +105 -67
- package/dist/styles/base.css +599 -595
- package/dist/styles/toast.css +14 -14
- package/dist/styles/tokens.css +409 -378
- package/dist/svelte-app.d.ts +12 -9
- package/dist/svelte-app.js +40 -39
- package/dist/themes/default.d.ts +2 -0
- package/dist/themes/default.js +9 -0
- package/dist/themes/index.d.ts +13 -0
- package/dist/themes/index.js +44 -0
- package/dist/themes/minimal.d.ts +2 -0
- package/dist/themes/minimal.js +11 -0
- package/dist/types/agentspec.d.ts +18 -18
- package/dist/types/agentspec.js +2 -2
- package/dist/types/auth.d.ts +1 -1
- package/dist/types/auth.js +6 -6
- package/dist/types/config.d.ts +6 -6
- package/dist/types/events.d.ts +2 -2
- package/dist/types/events.js +2 -2
- package/dist/types/index.d.ts +32 -32
- package/dist/types/index.js +6 -6
- package/dist/types/interrupt.d.ts +6 -6
- package/dist/types/interrupt.js +21 -21
- package/dist/types/interruptState.d.ts +12 -12
- package/dist/types/interruptState.js +66 -66
- package/dist/types/playground.d.ts +7 -7
- package/dist/types/playground.js +14 -14
- package/dist/types/settings.d.ts +5 -3
- package/dist/types/settings.js +25 -18
- package/dist/types/skin.d.ts +31 -0
- package/dist/types/skin.js +1 -0
- package/dist/types/theme.d.ts +35 -0
- package/dist/types/theme.js +1 -0
- package/dist/types/uischema.d.ts +4 -4
- package/dist/types/uischema.js +3 -3
- package/dist/utils/colors.d.ts +1 -1
- package/dist/utils/colors.js +97 -95
- package/dist/utils/config.d.ts +2 -2
- package/dist/utils/config.js +48 -48
- package/dist/utils/connections.d.ts +2 -2
- package/dist/utils/connections.js +15 -15
- package/dist/utils/errors.js +3 -3
- package/dist/utils/fetchWithAuth.d.ts +1 -1
- package/dist/utils/fetchWithAuth.js +2 -2
- package/dist/utils/handleIds.d.ts +2 -2
- package/dist/utils/handleIds.js +8 -8
- package/dist/utils/handlePositioning.d.ts +1 -1
- package/dist/utils/handlePositioning.js +2 -2
- package/dist/utils/icons.d.ts +1 -1
- package/dist/utils/icons.js +74 -74
- package/dist/utils/logger.d.ts +1 -1
- package/dist/utils/logger.js +7 -7
- package/dist/utils/nodeStatus.d.ts +1 -1
- package/dist/utils/nodeStatus.js +48 -48
- package/dist/utils/nodeTypes.d.ts +1 -1
- package/dist/utils/nodeTypes.js +21 -20
- package/dist/utils/nodeWrapper.d.ts +7 -7
- package/dist/utils/nodeWrapper.js +21 -19
- package/dist/utils/performanceUtils.d.ts +1 -1
- package/dist/utils/performanceUtils.js +2 -1
- package/dist/utils/sanitize.js +1 -1
- package/dist/utils/uischema.d.ts +2 -2
- package/dist/utils/uischema.js +8 -8
- package/dist/utils/validation.js +20 -8
- package/package.json +1 -1
|
@@ -5,36 +5,36 @@
|
|
|
5
5
|
* When a node is dragged near another node, this helper finds the best
|
|
6
6
|
* compatible port pair and creates a preview/permanent edge.
|
|
7
7
|
*/
|
|
8
|
-
import { dynamicPortToNodePort } from
|
|
9
|
-
import { getPortCompatibilityChecker } from
|
|
10
|
-
import { v4 as uuidv4 } from
|
|
8
|
+
import { dynamicPortToNodePort } from "../types/index.js";
|
|
9
|
+
import { getPortCompatibilityChecker } from "../utils/connections.js";
|
|
10
|
+
import { v4 as uuidv4 } from "uuid";
|
|
11
11
|
/** CSS class applied to proximity preview edges */
|
|
12
|
-
const PROXIMITY_EDGE_CLASS =
|
|
12
|
+
const PROXIMITY_EDGE_CLASS = "flowdrop--edge--proximity-preview";
|
|
13
13
|
export class ProximityConnectHelper {
|
|
14
14
|
/**
|
|
15
15
|
* Get ALL ports (static + dynamic + gateway branches) for a node.
|
|
16
16
|
*/
|
|
17
17
|
static getAllPorts(node, direction) {
|
|
18
18
|
// Static ports from metadata
|
|
19
|
-
const staticPorts = direction ===
|
|
19
|
+
const staticPorts = direction === "output"
|
|
20
20
|
? (node.data?.metadata?.outputs ?? [])
|
|
21
21
|
: (node.data?.metadata?.inputs ?? []);
|
|
22
22
|
// Dynamic ports from config
|
|
23
|
-
const dynamicKey = direction ===
|
|
23
|
+
const dynamicKey = direction === "output" ? "dynamicOutputs" : "dynamicInputs";
|
|
24
24
|
const rawDynamic = node.data?.config?.[dynamicKey] ?? [];
|
|
25
25
|
const dynamicPorts = rawDynamic.map((p) => dynamicPortToNodePort(p, direction));
|
|
26
26
|
// Gateway branches (output only, dataType = 'trigger')
|
|
27
|
-
if (direction ===
|
|
27
|
+
if (direction === "output") {
|
|
28
28
|
const branches = node.data?.config?.branches;
|
|
29
29
|
const nodeType = node.data?.metadata?.type || node.type;
|
|
30
|
-
if (nodeType ===
|
|
30
|
+
if (nodeType === "gateway" && branches?.length) {
|
|
31
31
|
const branchPorts = branches
|
|
32
32
|
.filter((b) => !staticPorts.some((sp) => sp.id === b.name))
|
|
33
33
|
.map((b) => ({
|
|
34
34
|
id: b.name,
|
|
35
35
|
name: b.name,
|
|
36
|
-
type:
|
|
37
|
-
dataType:
|
|
36
|
+
type: "output",
|
|
37
|
+
dataType: "trigger",
|
|
38
38
|
}));
|
|
39
39
|
return [...staticPorts, ...dynamicPorts, ...branchPorts];
|
|
40
40
|
}
|
|
@@ -88,10 +88,10 @@ export class ProximityConnectHelper {
|
|
|
88
88
|
}
|
|
89
89
|
if (!closestNode)
|
|
90
90
|
return [];
|
|
91
|
-
const draggedOutputs = this.getAllPorts(draggedNode,
|
|
92
|
-
const draggedInputs = this.getAllPorts(draggedNode,
|
|
93
|
-
const nearbyInputs = this.getAllPorts(closestNode,
|
|
94
|
-
const nearbyOutputs = this.getAllPorts(closestNode,
|
|
91
|
+
const draggedOutputs = this.getAllPorts(draggedNode, "output");
|
|
92
|
+
const draggedInputs = this.getAllPorts(draggedNode, "input");
|
|
93
|
+
const nearbyInputs = this.getAllPorts(closestNode, "input");
|
|
94
|
+
const nearbyOutputs = this.getAllPorts(closestNode, "output");
|
|
95
95
|
// Collect all compatible pairs, then pick the best one
|
|
96
96
|
let exactMatch = null;
|
|
97
97
|
let compatibleMatch = null;
|
|
@@ -100,8 +100,8 @@ export class ProximityConnectHelper {
|
|
|
100
100
|
for (const inPort of nearbyInputs) {
|
|
101
101
|
if (!checker.areDataTypesCompatible(outPort.dataType, inPort.dataType))
|
|
102
102
|
continue;
|
|
103
|
-
const sourceHandle = this.buildHandleId(draggedNode.id,
|
|
104
|
-
const targetHandle = this.buildHandleId(closestNode.id,
|
|
103
|
+
const sourceHandle = this.buildHandleId(draggedNode.id, "output", outPort.id);
|
|
104
|
+
const targetHandle = this.buildHandleId(closestNode.id, "input", inPort.id);
|
|
105
105
|
const edgeKey = `${draggedNode.id}:${sourceHandle}->${closestNode.id}:${targetHandle}`;
|
|
106
106
|
if (existingEdgeSet.has(edgeKey))
|
|
107
107
|
continue;
|
|
@@ -112,7 +112,7 @@ export class ProximityConnectHelper {
|
|
|
112
112
|
sourceHandle,
|
|
113
113
|
targetHandle,
|
|
114
114
|
sourcePortDataType: outPort.dataType,
|
|
115
|
-
targetPortDataType: inPort.dataType
|
|
115
|
+
targetPortDataType: inPort.dataType,
|
|
116
116
|
};
|
|
117
117
|
if (outPort.dataType === inPort.dataType) {
|
|
118
118
|
if (!exactMatch)
|
|
@@ -135,8 +135,8 @@ export class ProximityConnectHelper {
|
|
|
135
135
|
for (const inPort of draggedInputs) {
|
|
136
136
|
if (!checker.areDataTypesCompatible(outPort.dataType, inPort.dataType))
|
|
137
137
|
continue;
|
|
138
|
-
const sourceHandle = this.buildHandleId(closestNode.id,
|
|
139
|
-
const targetHandle = this.buildHandleId(draggedNode.id,
|
|
138
|
+
const sourceHandle = this.buildHandleId(closestNode.id, "output", outPort.id);
|
|
139
|
+
const targetHandle = this.buildHandleId(draggedNode.id, "input", inPort.id);
|
|
140
140
|
const edgeKey = `${closestNode.id}:${sourceHandle}->${draggedNode.id}:${targetHandle}`;
|
|
141
141
|
if (existingEdgeSet.has(edgeKey))
|
|
142
142
|
continue;
|
|
@@ -147,7 +147,7 @@ export class ProximityConnectHelper {
|
|
|
147
147
|
sourceHandle,
|
|
148
148
|
targetHandle,
|
|
149
149
|
sourcePortDataType: outPort.dataType,
|
|
150
|
-
targetPortDataType: inPort.dataType
|
|
150
|
+
targetPortDataType: inPort.dataType,
|
|
151
151
|
};
|
|
152
152
|
if (outPort.dataType === inPort.dataType) {
|
|
153
153
|
if (!exactMatch)
|
|
@@ -193,13 +193,13 @@ export class ProximityConnectHelper {
|
|
|
193
193
|
const otherOutputsByType = new Map();
|
|
194
194
|
for (const coord of portCoordinates.values()) {
|
|
195
195
|
if (coord.nodeId === draggedNodeId) {
|
|
196
|
-
if (coord.direction ===
|
|
196
|
+
if (coord.direction === "output")
|
|
197
197
|
draggedOutputs.push(coord);
|
|
198
198
|
else
|
|
199
199
|
draggedInputs.push(coord);
|
|
200
200
|
}
|
|
201
201
|
else {
|
|
202
|
-
const groupMap = coord.direction ===
|
|
202
|
+
const groupMap = coord.direction === "input" ? otherInputsByType : otherOutputsByType;
|
|
203
203
|
let group = groupMap.get(coord.dataType);
|
|
204
204
|
if (!group) {
|
|
205
205
|
group = [];
|
|
@@ -224,7 +224,8 @@ export class ProximityConnectHelper {
|
|
|
224
224
|
return;
|
|
225
225
|
const isExact = sourceCoord.dataType === targetCoord.dataType;
|
|
226
226
|
// Prefer exact match, then closest distance
|
|
227
|
-
if ((isExact && !bestIsExact) ||
|
|
227
|
+
if ((isExact && !bestIsExact) ||
|
|
228
|
+
(isExact === bestIsExact && dist < bestDistance)) {
|
|
228
229
|
bestCandidate = {
|
|
229
230
|
id: `proximity-${uuidv4()}`,
|
|
230
231
|
source: sourceCoord.nodeId,
|
|
@@ -232,7 +233,7 @@ export class ProximityConnectHelper {
|
|
|
232
233
|
sourceHandle: sourceCoord.handleId,
|
|
233
234
|
targetHandle: targetCoord.handleId,
|
|
234
235
|
sourcePortDataType: sourceCoord.dataType,
|
|
235
|
-
targetPortDataType: targetCoord.dataType
|
|
236
|
+
targetPortDataType: targetCoord.dataType,
|
|
236
237
|
};
|
|
237
238
|
bestDistance = dist;
|
|
238
239
|
bestIsExact = isExact;
|
|
@@ -273,17 +274,17 @@ export class ProximityConnectHelper {
|
|
|
273
274
|
sourceHandle: c.sourceHandle,
|
|
274
275
|
targetHandle: c.targetHandle,
|
|
275
276
|
class: PROXIMITY_EDGE_CLASS,
|
|
276
|
-
style:
|
|
277
|
+
style: "stroke-dasharray: 5 5; opacity: 0.6;",
|
|
277
278
|
animated: true,
|
|
278
279
|
selectable: false,
|
|
279
280
|
deletable: false,
|
|
280
281
|
data: {
|
|
281
282
|
metadata: {
|
|
282
|
-
edgeType:
|
|
283
|
+
edgeType: "data",
|
|
283
284
|
sourcePortDataType: c.sourcePortDataType,
|
|
284
|
-
isProximityPreview: true
|
|
285
|
-
}
|
|
286
|
-
}
|
|
285
|
+
isProximityPreview: true,
|
|
286
|
+
},
|
|
287
|
+
},
|
|
287
288
|
}));
|
|
288
289
|
}
|
|
289
290
|
/**
|
|
@@ -295,15 +296,16 @@ export class ProximityConnectHelper {
|
|
|
295
296
|
source: c.source,
|
|
296
297
|
target: c.target,
|
|
297
298
|
sourceHandle: c.sourceHandle,
|
|
298
|
-
targetHandle: c.targetHandle
|
|
299
|
+
targetHandle: c.targetHandle,
|
|
299
300
|
}));
|
|
300
301
|
}
|
|
301
302
|
/**
|
|
302
303
|
* Check if an edge is a temporary proximity preview edge.
|
|
303
304
|
*/
|
|
304
305
|
static isProximityPreviewEdge(edge) {
|
|
305
|
-
return (edge.id.startsWith(
|
|
306
|
-
edge.data?.metadata?.isProximityPreview ===
|
|
306
|
+
return (edge.id.startsWith("proximity-") ||
|
|
307
|
+
edge.data?.metadata?.isProximityPreview ===
|
|
308
|
+
true);
|
|
307
309
|
}
|
|
308
310
|
/**
|
|
309
311
|
* Remove all proximity preview edges from an edge array.
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Workflow Editor Helper
|
|
3
3
|
* Contains business logic for workflow operations
|
|
4
4
|
*/
|
|
5
|
-
import type { WorkflowNode as WorkflowNodeType, NodeMetadata, Workflow, WorkflowEdge, NodeExecutionInfo } from
|
|
6
|
-
import type { EndpointConfig } from
|
|
5
|
+
import type { WorkflowNode as WorkflowNodeType, NodeMetadata, Workflow, WorkflowEdge, NodeExecutionInfo } from "../types/index.js";
|
|
6
|
+
import type { EndpointConfig } from "../config/endpoints.js";
|
|
7
7
|
/**
|
|
8
8
|
* Generate a unique node ID based on node type and existing nodes
|
|
9
9
|
* Format: <node_type>.<number>
|
|
@@ -17,7 +17,7 @@ export declare function generateNodeId(nodeTypeId: string, existingNodes: Workfl
|
|
|
17
17
|
* - loopback: Dashed gray line for loop iteration connections (targets loop_back port)
|
|
18
18
|
* - data: Normal gray line for all other data connections
|
|
19
19
|
*/
|
|
20
|
-
export type EdgeCategory =
|
|
20
|
+
export type EdgeCategory = "trigger" | "tool" | "loopback" | "data";
|
|
21
21
|
/**
|
|
22
22
|
* Edge styling configuration based on source port data type
|
|
23
23
|
*/
|
|
@@ -44,7 +44,7 @@ export declare class EdgeStylingHelper {
|
|
|
44
44
|
* @param portType - Whether to look in "inputs" or "outputs"
|
|
45
45
|
* @returns The port's dataType or null if not found
|
|
46
46
|
*/
|
|
47
|
-
static getPortDataType(node: WorkflowNodeType, portId: string, portType:
|
|
47
|
+
static getPortDataType(node: WorkflowNodeType, portId: string, portType: "input" | "output"): string | null;
|
|
48
48
|
/**
|
|
49
49
|
* Determine the edge category based on source port data type
|
|
50
50
|
* Note: This method does not check for loopback edges.
|
|
@@ -103,7 +103,7 @@ export declare class WorkflowOperationsHelper {
|
|
|
103
103
|
/**
|
|
104
104
|
* Generate workflow metadata for updates
|
|
105
105
|
*/
|
|
106
|
-
static generateMetadata(existingMetadata?: Workflow[
|
|
106
|
+
static generateMetadata(existingMetadata?: Workflow["metadata"]): Workflow["metadata"];
|
|
107
107
|
/**
|
|
108
108
|
* Update workflow with new nodes/edges and generate new metadata
|
|
109
109
|
*/
|