@flowdrop/flowdrop 1.5.0 → 1.7.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 +46 -47
- package/dist/adapters/WorkflowAdapter.d.ts +1 -1
- package/dist/adapters/WorkflowAdapter.js +26 -26
- package/dist/adapters/agentspec/AgentSpecAdapter.d.ts +2 -2
- package/dist/adapters/agentspec/AgentSpecAdapter.js +122 -133
- 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 +7 -9
- 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 +20 -22
- package/dist/api/enhanced-client.d.ts +3 -3
- package/dist/api/enhanced-client.js +72 -73
- package/dist/chat/commandClassifier.js +6 -6
- package/dist/chat/index.d.ts +5 -5
- package/dist/chat/index.js +4 -4
- package/dist/chat/responseParser.d.ts +6 -6
- package/dist/chat/responseParser.js +28 -24
- package/dist/commands/batch.d.ts +1 -1
- package/dist/commands/batch.js +5 -7
- package/dist/commands/executor.d.ts +2 -2
- package/dist/commands/executor.js +320 -231
- package/dist/commands/index.d.ts +6 -6
- package/dist/commands/index.js +5 -5
- package/dist/commands/parser.d.ts +1 -1
- package/dist/commands/parser.js +91 -74
- package/dist/commands/positioner.d.ts +2 -2
- package/dist/commands/positioner.js +1 -1
- package/dist/commands/storeIntegration.svelte.d.ts +2 -2
- package/dist/commands/storeIntegration.svelte.js +5 -5
- package/dist/commands/types.d.ts +42 -42
- package/dist/commands/types.js +2 -2
- package/dist/components/App.svelte +280 -303
- package/dist/components/App.svelte.d.ts +11 -9
- package/dist/components/CanvasBanner.stories.svelte +10 -16
- package/dist/components/CanvasBanner.stories.svelte.d.ts +1 -1
- package/dist/components/CanvasBanner.svelte +2 -2
- package/dist/components/CanvasBanner.svelte.d.ts +1 -1
- package/dist/components/CanvasController.svelte +3 -4
- package/dist/components/ConfigForm.svelte +118 -256
- package/dist/components/ConfigForm.svelte.d.ts +2 -2
- package/dist/components/ConfigMappingRow.svelte +7 -9
- package/dist/components/ConfigMappingRow.svelte.d.ts +1 -1
- package/dist/components/ConfigModal.svelte +3 -3
- package/dist/components/ConfigModal.svelte.d.ts +1 -1
- package/dist/components/ConfigPanel.stories.svelte +19 -19
- package/dist/components/ConfigPanel.stories.svelte.d.ts +1 -1
- package/dist/components/ConfigPanel.svelte +9 -20
- package/dist/components/ConfigPanel.svelte.d.ts +1 -1
- package/dist/components/ConnectionLine.svelte +4 -4
- package/dist/components/EdgeRefresher.svelte +1 -1
- package/dist/components/FlowDropEdge.stories.svelte +110 -110
- package/dist/components/FlowDropEdge.svelte +9 -9
- package/dist/components/FlowDropEdge.svelte.d.ts +1 -1
- package/dist/components/FlowDropZone.svelte +6 -9
- package/dist/components/FlowDropZone.svelte.d.ts +1 -1
- package/dist/components/LoadingSpinner.stories.svelte +13 -13
- package/dist/components/LoadingSpinner.stories.svelte.d.ts +1 -1
- package/dist/components/LoadingSpinner.svelte +3 -3
- package/dist/components/LoadingSpinner.svelte.d.ts +1 -1
- package/dist/components/Logo.stories.svelte +4 -4
- package/dist/components/Logo.stories.svelte.d.ts +1 -1
- package/dist/components/Logo.svelte +3 -9
- package/dist/components/LogsSidebar.svelte +41 -48
- package/dist/components/LogsSidebar.svelte.d.ts +1 -1
- package/dist/components/MarkdownDisplay.stories.svelte +10 -14
- package/dist/components/MarkdownDisplay.stories.svelte.d.ts +1 -1
- package/dist/components/MarkdownDisplay.svelte +4 -6
- package/dist/components/Navbar.stories.svelte +19 -19
- package/dist/components/Navbar.stories.svelte.d.ts +1 -1
- package/dist/components/Navbar.svelte +28 -49
- package/dist/components/Navbar.svelte.d.ts +2 -2
- package/dist/components/NodeSidebar.svelte +42 -88
- package/dist/components/NodeSidebar.svelte.d.ts +1 -1
- package/dist/components/NodeStatusOverlay.stories.svelte +19 -31
- package/dist/components/NodeStatusOverlay.stories.svelte.d.ts +1 -1
- package/dist/components/NodeStatusOverlay.svelte +40 -55
- package/dist/components/NodeStatusOverlay.svelte.d.ts +3 -3
- package/dist/components/NodeSwapPicker.svelte +20 -64
- package/dist/components/NodeSwapPicker.svelte.d.ts +1 -1
- package/dist/components/PipelineStatus.svelte +63 -89
- package/dist/components/PipelineStatus.svelte.d.ts +4 -4
- package/dist/components/PortCoordinateTracker.svelte +5 -7
- package/dist/components/PortCoordinateTracker.svelte.d.ts +1 -1
- package/dist/components/PortMappingRow.svelte +20 -24
- package/dist/components/PortMappingRow.svelte.d.ts +2 -2
- package/dist/components/ReadOnlyDetails.svelte +1 -1
- package/dist/components/SchemaForm.stories.svelte +53 -53
- package/dist/components/SchemaForm.stories.svelte.d.ts +1 -1
- package/dist/components/SchemaForm.svelte +24 -51
- package/dist/components/SchemaForm.svelte.d.ts +2 -2
- package/dist/components/SettingsModal.svelte +6 -9
- package/dist/components/SettingsModal.svelte.d.ts +1 -1
- package/dist/components/SettingsPanel.svelte +138 -158
- package/dist/components/SettingsPanel.svelte.d.ts +1 -1
- package/dist/components/StatusIcon.stories.svelte +16 -29
- package/dist/components/StatusIcon.stories.svelte.d.ts +1 -1
- package/dist/components/StatusIcon.svelte +19 -19
- package/dist/components/StatusIcon.svelte.d.ts +2 -2
- package/dist/components/StatusLabel.stories.svelte +8 -8
- package/dist/components/StatusLabel.stories.svelte.d.ts +1 -1
- package/dist/components/SwapMappingEditor.svelte +35 -56
- package/dist/components/SwapMappingEditor.svelte.d.ts +2 -2
- package/dist/components/ThemeToggle.stories.svelte +10 -10
- package/dist/components/ThemeToggle.stories.svelte.d.ts +1 -1
- package/dist/components/ThemeToggle.svelte +22 -33
- package/dist/components/ThemeToggle.svelte.d.ts +1 -1
- package/dist/components/UniversalNode.svelte +29 -41
- package/dist/components/UniversalNode.svelte.d.ts +3 -3
- package/dist/components/WorkflowEditor.svelte +113 -168
- package/dist/components/WorkflowEditor.svelte.d.ts +4 -4
- package/dist/components/chat/AIChatPanel.svelte +272 -133
- package/dist/components/chat/AIChatPanel.svelte.d.ts +3 -3
- package/dist/components/chat/CommandPreview.svelte +74 -24
- package/dist/components/chat/CommandPreview.svelte.d.ts +1 -1
- package/dist/components/console/CommandConsole.stories.svelte +71 -53
- package/dist/components/console/CommandConsole.stories.svelte.d.ts +1 -1
- package/dist/components/console/CommandConsole.svelte +39 -35
- package/dist/components/console/CommandConsole.svelte.d.ts +2 -2
- package/dist/components/console/ConsoleAutocomplete.svelte +6 -3
- package/dist/components/console/ConsoleInput.svelte +148 -89
- package/dist/components/console/ConsoleInput.svelte.d.ts +1 -1
- package/dist/components/console/ConsoleOutput.svelte +5 -10
- package/dist/components/console/ConsoleOutput.svelte.d.ts +1 -1
- package/dist/components/console/formatters.d.ts +1 -1
- package/dist/components/console/formatters.js +27 -29
- package/dist/components/form/FormArray.svelte +75 -132
- package/dist/components/form/FormArray.svelte.d.ts +1 -1
- package/dist/components/form/FormAutocomplete.svelte +65 -108
- package/dist/components/form/FormAutocomplete.svelte.d.ts +1 -1
- package/dist/components/form/FormCheckboxGroup.stories.svelte +13 -16
- package/dist/components/form/FormCheckboxGroup.stories.svelte.d.ts +1 -1
- package/dist/components/form/FormCheckboxGroup.svelte +2 -2
- package/dist/components/form/FormCodeEditor.svelte +46 -59
- package/dist/components/form/FormField.svelte +79 -90
- package/dist/components/form/FormField.svelte.d.ts +2 -2
- package/dist/components/form/FormFieldLight.svelte +72 -88
- package/dist/components/form/FormFieldLight.svelte.d.ts +1 -1
- package/dist/components/form/FormFieldWrapper.stories.svelte +14 -14
- package/dist/components/form/FormFieldWrapper.stories.svelte.d.ts +1 -1
- package/dist/components/form/FormFieldWrapper.svelte +2 -9
- package/dist/components/form/FormFieldWrapper.svelte.d.ts +1 -1
- package/dist/components/form/FormFieldset.svelte +3 -3
- package/dist/components/form/FormFieldset.svelte.d.ts +2 -2
- package/dist/components/form/FormMarkdownEditor.svelte +123 -156
- package/dist/components/form/FormNumberField.stories.svelte +18 -18
- package/dist/components/form/FormNumberField.stories.svelte.d.ts +1 -1
- package/dist/components/form/FormNumberField.svelte +6 -6
- package/dist/components/form/FormRangeField.stories.svelte +13 -13
- package/dist/components/form/FormRangeField.stories.svelte.d.ts +1 -1
- package/dist/components/form/FormRangeField.svelte +4 -12
- package/dist/components/form/FormSelect.stories.svelte +21 -21
- package/dist/components/form/FormSelect.stories.svelte.d.ts +1 -1
- package/dist/components/form/FormSelect.svelte +5 -5
- package/dist/components/form/FormSelect.svelte.d.ts +1 -1
- package/dist/components/form/FormTemplateEditor.svelte +126 -175
- package/dist/components/form/FormTemplateEditor.svelte.d.ts +1 -1
- package/dist/components/form/FormTextField.stories.svelte +17 -23
- package/dist/components/form/FormTextField.stories.svelte.d.ts +1 -1
- package/dist/components/form/FormTextField.svelte +4 -4
- package/dist/components/form/FormTextarea.stories.svelte +18 -21
- package/dist/components/form/FormTextarea.stories.svelte.d.ts +1 -1
- package/dist/components/form/FormTextarea.svelte +4 -4
- package/dist/components/form/FormToggle.stories.svelte +13 -16
- package/dist/components/form/FormToggle.stories.svelte.d.ts +1 -1
- package/dist/components/form/FormToggle.svelte +3 -3
- package/dist/components/form/FormUISchemaRenderer.svelte +12 -19
- 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 +55 -64
- package/dist/components/form/types.d.ts +6 -6
- package/dist/components/form/types.js +4 -9
- package/dist/components/icons/AlertCircleIcon.svelte +1 -6
- package/dist/components/icons/CogIcon.svelte +1 -6
- package/dist/components/interrupt/ChoicePrompt.stories.svelte +27 -27
- package/dist/components/interrupt/ChoicePrompt.stories.svelte.d.ts +1 -1
- package/dist/components/interrupt/ChoicePrompt.svelte +17 -41
- package/dist/components/interrupt/ChoicePrompt.svelte.d.ts +1 -1
- package/dist/components/interrupt/ConfirmationPrompt.stories.svelte +17 -17
- package/dist/components/interrupt/ConfirmationPrompt.stories.svelte.d.ts +1 -1
- package/dist/components/interrupt/ConfirmationPrompt.svelte +10 -16
- package/dist/components/interrupt/ConfirmationPrompt.svelte.d.ts +1 -1
- package/dist/components/interrupt/FormPrompt.svelte +10 -15
- package/dist/components/interrupt/FormPrompt.svelte.d.ts +1 -1
- package/dist/components/interrupt/InterruptBubble.svelte +87 -121
- package/dist/components/interrupt/InterruptBubble.svelte.d.ts +2 -2
- package/dist/components/interrupt/ReviewPrompt.stories.svelte +37 -37
- package/dist/components/interrupt/ReviewPrompt.stories.svelte.d.ts +1 -1
- package/dist/components/interrupt/ReviewPrompt.svelte +55 -75
- package/dist/components/interrupt/ReviewPrompt.svelte.d.ts +1 -1
- package/dist/components/interrupt/TextInputPrompt.stories.svelte +16 -17
- package/dist/components/interrupt/TextInputPrompt.stories.svelte.d.ts +1 -1
- package/dist/components/interrupt/TextInputPrompt.svelte +13 -18
- package/dist/components/interrupt/TextInputPrompt.svelte.d.ts +1 -1
- package/dist/components/interrupt/index.d.ts +6 -6
- package/dist/components/interrupt/index.js +6 -6
- package/dist/components/layouts/MainLayout.svelte +46 -84
- package/dist/components/layouts/MainLayout.svelte.d.ts +6 -6
- package/dist/components/nodes/GatewayNode.stories.svelte +64 -65
- package/dist/components/nodes/GatewayNode.svelte +37 -70
- package/dist/components/nodes/GatewayNode.svelte.d.ts +3 -3
- package/dist/components/nodes/IdeaNode.stories.svelte +25 -26
- package/dist/components/nodes/IdeaNode.svelte +22 -36
- package/dist/components/nodes/IdeaNode.svelte.d.ts +1 -1
- package/dist/components/nodes/NotesNode.stories.svelte +37 -38
- package/dist/components/nodes/NotesNode.svelte +28 -39
- package/dist/components/nodes/NotesNode.svelte.d.ts +1 -1
- package/dist/components/nodes/SimpleNode.stories.svelte +137 -138
- package/dist/components/nodes/SimpleNode.svelte +51 -81
- package/dist/components/nodes/SimpleNode.svelte.d.ts +1 -1
- package/dist/components/nodes/SquareNode.stories.svelte +75 -75
- package/dist/components/nodes/SquareNode.svelte +42 -68
- package/dist/components/nodes/SquareNode.svelte.d.ts +1 -1
- package/dist/components/nodes/TerminalNode.stories.svelte +10 -10
- package/dist/components/nodes/TerminalNode.svelte +74 -112
- package/dist/components/nodes/TerminalNode.svelte.d.ts +1 -1
- package/dist/components/nodes/ToolNode.stories.svelte +115 -116
- package/dist/components/nodes/ToolNode.svelte +31 -64
- package/dist/components/nodes/ToolNode.svelte.d.ts +1 -1
- package/dist/components/nodes/WorkflowNode.stories.svelte +84 -89
- package/dist/components/nodes/WorkflowNode.svelte +50 -103
- package/dist/components/nodes/WorkflowNode.svelte.d.ts +3 -3
- package/dist/components/playground/ChatPanel.svelte +47 -103
- package/dist/components/playground/ExecutionLogs.svelte +45 -68
- package/dist/components/playground/InputCollector.svelte +32 -51
- package/dist/components/playground/MessageBubble.stories.svelte +25 -25
- package/dist/components/playground/MessageBubble.stories.svelte.d.ts +1 -1
- package/dist/components/playground/MessageBubble.svelte +54 -70
- package/dist/components/playground/MessageBubble.svelte.d.ts +1 -1
- package/dist/components/playground/Playground.svelte +60 -91
- package/dist/components/playground/Playground.svelte.d.ts +3 -3
- package/dist/components/playground/PlaygroundModal.svelte +8 -12
- package/dist/components/playground/PlaygroundModal.svelte.d.ts +3 -3
- package/dist/components/playground/SessionManager.svelte +34 -40
- 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 +68 -68
- package/dist/config/runtimeConfig.d.ts +2 -2
- package/dist/config/runtimeConfig.js +8 -8
- package/dist/core/index.d.ts +68 -68
- package/dist/core/index.js +38 -38
- package/dist/display/index.d.ts +2 -2
- package/dist/display/index.js +2 -2
- package/dist/editor/index.d.ts +64 -64
- package/dist/editor/index.js +54 -54
- 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 +9 -11
- 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 +32 -34
- package/dist/helpers/workflowEditorHelper.d.ts +6 -6
- package/dist/helpers/workflowEditorHelper.js +64 -68
- 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 +1 -1
- package/dist/mocks/app-navigation.js +2 -2
- package/dist/mocks/app-stores.js +3 -3
- 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 +9 -11
- 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/schemas/v1/workflow.schema.json +5 -0
- package/dist/services/agentSpecExecutionService.d.ts +3 -3
- package/dist/services/agentSpecExecutionService.js +55 -56
- 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 +34 -41
- 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/chatService.d.ts +1 -1
- package/dist/services/chatService.js +18 -18
- 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 +39 -41
- package/dist/services/globalSave.d.ts +2 -2
- package/dist/services/globalSave.js +38 -41
- package/dist/services/historyService.d.ts +1 -1
- package/dist/services/historyService.js +10 -10
- package/dist/services/interruptService.d.ts +1 -1
- package/dist/services/interruptService.js +29 -35
- package/dist/services/nodeExecutionService.d.ts +1 -1
- package/dist/services/nodeExecutionService.js +44 -45
- 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 +19 -25
- 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 +1 -1
- package/dist/skins/default.js +1 -1
- package/dist/skins/index.d.ts +3 -3
- package/dist/skins/index.js +7 -7
- package/dist/skins/slate.d.ts +1 -1
- package/dist/skins/slate.js +69 -69
- 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 +34 -34
- 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 +18 -21
- package/dist/stores/portCoordinateStore.svelte.d.ts +2 -2
- package/dist/stores/portCoordinateStore.svelte.js +10 -13
- package/dist/stores/settingsStore.svelte.d.ts +2 -2
- package/dist/stores/settingsStore.svelte.js +57 -62
- package/dist/stores/workflowStore.svelte.d.ts +4 -3
- package/dist/stores/workflowStore.svelte.js +47 -47
- package/dist/stories/CanvasDecorator.svelte +7 -10
- package/dist/stories/CanvasDecorator.svelte.d.ts +2 -2
- package/dist/stories/EdgeDecorator.svelte +28 -31
- package/dist/stories/EdgeDecorator.svelte.d.ts +1 -1
- package/dist/stories/NodeDecorator.svelte +14 -20
- package/dist/stories/NodeDecorator.svelte.d.ts +1 -1
- package/dist/stories/utils.d.ts +2 -2
- package/dist/stories/utils.js +89 -93
- package/dist/styles/base.css +16 -50
- package/dist/styles/tokens.css +10 -28
- package/dist/svelte-app.d.ts +10 -10
- package/dist/svelte-app.js +39 -39
- package/dist/themes/default.d.ts +1 -1
- package/dist/themes/default.js +4 -4
- package/dist/themes/index.d.ts +3 -3
- package/dist/themes/index.js +11 -11
- package/dist/themes/minimal.d.ts +1 -1
- package/dist/themes/minimal.js +5 -5
- 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/chat.d.ts +2 -2
- package/dist/types/config.d.ts +6 -6
- package/dist/types/events.d.ts +3 -3
- package/dist/types/events.js +2 -2
- package/dist/types/index.d.ts +34 -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 +7 -5
- package/dist/types/settings.js +19 -24
- package/dist/types/skin.d.ts +1 -1
- package/dist/types/theme.d.ts +2 -2
- 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 +95 -97
- package/dist/utils/config.d.ts +2 -2
- package/dist/utils/config.js +48 -48
- package/dist/utils/connections.d.ts +6 -2
- package/dist/utils/connections.js +21 -15
- package/dist/utils/edgeStyling.d.ts +2 -2
- package/dist/utils/edgeStyling.js +36 -39
- 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/nodeIds.d.ts +1 -1
- package/dist/utils/nodeIds.js +1 -1
- package/dist/utils/nodeStatus.d.ts +1 -1
- package/dist/utils/nodeStatus.js +48 -48
- package/dist/utils/nodeSwap.d.ts +9 -9
- package/dist/utils/nodeSwap.js +52 -58
- package/dist/utils/nodeTypes.d.ts +1 -1
- package/dist/utils/nodeTypes.js +20 -21
- package/dist/utils/nodeWrapper.d.ts +7 -7
- package/dist/utils/nodeWrapper.js +19 -21
- package/dist/utils/performanceUtils.d.ts +1 -1
- package/dist/utils/performanceUtils.js +1 -2
- package/dist/utils/portUtils.d.ts +2 -2
- package/dist/utils/portUtils.js +1 -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 +8 -8
- package/package.json +7 -11
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Loopback port name constant
|
|
6
6
|
* This is the standard input port name used for loop iteration triggers
|
|
7
7
|
*/
|
|
8
|
-
const LOOPBACK_PORT_NAME =
|
|
8
|
+
const LOOPBACK_PORT_NAME = 'loop_back';
|
|
9
9
|
/**
|
|
10
10
|
* Determines if an edge is a loopback edge.
|
|
11
11
|
* Loopback edges target the special `loop_back` input port on ForEach nodes.
|
|
@@ -21,7 +21,7 @@ const LOOPBACK_PORT_NAME = "loop_back";
|
|
|
21
21
|
* ```
|
|
22
22
|
*/
|
|
23
23
|
export function isLoopbackEdge(edge) {
|
|
24
|
-
const targetHandle = edge.targetHandle ??
|
|
24
|
+
const targetHandle = edge.targetHandle ?? '';
|
|
25
25
|
return targetHandle.includes(`-input-${LOOPBACK_PORT_NAME}`);
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
@@ -114,12 +114,18 @@ let globalCompatibilityChecker = null;
|
|
|
114
114
|
export function initializePortCompatibility(portConfig) {
|
|
115
115
|
globalCompatibilityChecker = new PortCompatibilityChecker(portConfig);
|
|
116
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* Returns true if the port compatibility checker has been initialized.
|
|
119
|
+
*/
|
|
120
|
+
export function isPortCompatibilityInitialized() {
|
|
121
|
+
return globalCompatibilityChecker !== null;
|
|
122
|
+
}
|
|
117
123
|
/**
|
|
118
124
|
* Get the global port compatibility checker
|
|
119
125
|
*/
|
|
120
126
|
export function getPortCompatibilityChecker() {
|
|
121
127
|
if (!globalCompatibilityChecker) {
|
|
122
|
-
throw new Error(
|
|
128
|
+
throw new Error('Port compatibility checker not initialized. Call initializePortCompatibility() first.');
|
|
123
129
|
}
|
|
124
130
|
return globalCompatibilityChecker;
|
|
125
131
|
}
|
|
@@ -155,7 +161,7 @@ export function getPossibleConnections(sourceNode, targetNodes, nodeTypes) {
|
|
|
155
161
|
targetNodeId: targetNode.id,
|
|
156
162
|
targetPortId: targetPort.id,
|
|
157
163
|
targetPort,
|
|
158
|
-
compatible
|
|
164
|
+
compatible
|
|
159
165
|
});
|
|
160
166
|
}
|
|
161
167
|
}
|
|
@@ -170,36 +176,36 @@ export function validateConnection(sourceNodeId, sourcePortId, targetNodeId, tar
|
|
|
170
176
|
const sourceNode = nodes.find((n) => n.id === sourceNodeId);
|
|
171
177
|
const targetNode = nodes.find((n) => n.id === targetNodeId);
|
|
172
178
|
if (!sourceNode) {
|
|
173
|
-
return { valid: false, error:
|
|
179
|
+
return { valid: false, error: 'Source node not found' };
|
|
174
180
|
}
|
|
175
181
|
if (!targetNode) {
|
|
176
|
-
return { valid: false, error:
|
|
182
|
+
return { valid: false, error: 'Target node not found' };
|
|
177
183
|
}
|
|
178
184
|
// Check for self-connection
|
|
179
185
|
if (sourceNodeId === targetNodeId) {
|
|
180
|
-
return { valid: false, error:
|
|
186
|
+
return { valid: false, error: 'Cannot connect node to itself' };
|
|
181
187
|
}
|
|
182
188
|
// Get node metadata
|
|
183
189
|
const sourceMetadata = nodeTypes.find((nt) => nt.id === sourceNode.data.metadata.id);
|
|
184
190
|
const targetMetadata = nodeTypes.find((nt) => nt.id === targetNode.data.metadata.id);
|
|
185
191
|
if (!sourceMetadata || !targetMetadata) {
|
|
186
|
-
return { valid: false, error:
|
|
192
|
+
return { valid: false, error: 'Node metadata not found' };
|
|
187
193
|
}
|
|
188
194
|
// Find ports
|
|
189
195
|
const sourcePort = sourceMetadata.outputs.find((p) => p.id === sourcePortId);
|
|
190
196
|
const targetPort = targetMetadata.inputs.find((p) => p.id === targetPortId);
|
|
191
197
|
if (!sourcePort) {
|
|
192
|
-
return { valid: false, error:
|
|
198
|
+
return { valid: false, error: 'Source port not found' };
|
|
193
199
|
}
|
|
194
200
|
if (!targetPort) {
|
|
195
|
-
return { valid: false, error:
|
|
201
|
+
return { valid: false, error: 'Target port not found' };
|
|
196
202
|
}
|
|
197
203
|
// Check data type compatibility using the global checker
|
|
198
204
|
const checker = getPortCompatibilityChecker();
|
|
199
205
|
if (!checker.areDataTypesCompatible(sourcePort.dataType, targetPort.dataType)) {
|
|
200
206
|
return {
|
|
201
207
|
valid: false,
|
|
202
|
-
error: `Incompatible data types: ${sourcePort.dataType} cannot connect to ${targetPort.dataType}
|
|
208
|
+
error: `Incompatible data types: ${sourcePort.dataType} cannot connect to ${targetPort.dataType}`
|
|
203
209
|
};
|
|
204
210
|
}
|
|
205
211
|
return { valid: true };
|
|
@@ -232,9 +238,9 @@ export function getConnectionSuggestions(nodeId, nodes, nodeTypes) {
|
|
|
232
238
|
nodeName: otherNode.data.label,
|
|
233
239
|
portId: output.id,
|
|
234
240
|
portName: output.name,
|
|
235
|
-
portType:
|
|
241
|
+
portType: 'output',
|
|
236
242
|
dataType: output.dataType,
|
|
237
|
-
compatible
|
|
243
|
+
compatible
|
|
238
244
|
});
|
|
239
245
|
}
|
|
240
246
|
}
|
|
@@ -247,9 +253,9 @@ export function getConnectionSuggestions(nodeId, nodes, nodeTypes) {
|
|
|
247
253
|
nodeName: otherNode.data.label,
|
|
248
254
|
portId: input.id,
|
|
249
255
|
portName: input.name,
|
|
250
|
-
portType:
|
|
256
|
+
portType: 'input',
|
|
251
257
|
dataType: input.dataType,
|
|
252
|
-
compatible
|
|
258
|
+
compatible
|
|
253
259
|
});
|
|
254
260
|
}
|
|
255
261
|
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* visual styling to workflow edges based on source port data types.
|
|
6
6
|
* Used by both the visual editor and the command DSL system.
|
|
7
7
|
*/
|
|
8
|
-
import type { WorkflowNode as WorkflowNodeType, WorkflowEdge, EdgeCategory } from
|
|
8
|
+
import type { WorkflowNode as WorkflowNodeType, WorkflowEdge, EdgeCategory } from '../types/index.js';
|
|
9
9
|
/**
|
|
10
10
|
* Check if a port ID matches a dynamic branch in a Gateway node.
|
|
11
11
|
* Gateway nodes store branches in config.branches array.
|
|
@@ -15,7 +15,7 @@ export declare function isGatewayBranch(node: WorkflowNodeType, portId: string):
|
|
|
15
15
|
* Get the data type of a port from a node's metadata.
|
|
16
16
|
* Also handles dynamic ports like Gateway branches.
|
|
17
17
|
*/
|
|
18
|
-
export declare function getPortDataType(node: WorkflowNodeType, portId: string, portType:
|
|
18
|
+
export declare function getPortDataType(node: WorkflowNodeType, portId: string, portType: 'input' | 'output'): string | null;
|
|
19
19
|
/**
|
|
20
20
|
* Determine the edge category based on source port data type.
|
|
21
21
|
* Note: This does not check for loopback edges — use getEdgeCategoryWithLoopback() for that.
|
|
@@ -5,17 +5,17 @@
|
|
|
5
5
|
* visual styling to workflow edges based on source port data types.
|
|
6
6
|
* Used by both the visual editor and the command DSL system.
|
|
7
7
|
*/
|
|
8
|
-
import { MarkerType } from
|
|
9
|
-
import { extractPortId } from
|
|
10
|
-
import { isLoopbackEdge } from
|
|
11
|
-
import { EDGE_MARKER_SIZES } from
|
|
8
|
+
import { MarkerType } from '@xyflow/svelte';
|
|
9
|
+
import { extractPortId } from '../utils/handleIds.js';
|
|
10
|
+
import { isLoopbackEdge } from '../utils/connections.js';
|
|
11
|
+
import { EDGE_MARKER_SIZES } from '../config/constants.js';
|
|
12
12
|
/**
|
|
13
13
|
* Check if a port ID matches a dynamic branch in a Gateway node.
|
|
14
14
|
* Gateway nodes store branches in config.branches array.
|
|
15
15
|
*/
|
|
16
16
|
export function isGatewayBranch(node, portId) {
|
|
17
17
|
const nodeType = node.data?.metadata?.type || node.type;
|
|
18
|
-
if (nodeType !==
|
|
18
|
+
if (nodeType !== 'gateway') {
|
|
19
19
|
return false;
|
|
20
20
|
}
|
|
21
21
|
const branches = node.data?.config?.branches;
|
|
@@ -30,9 +30,7 @@ export function isGatewayBranch(node, portId) {
|
|
|
30
30
|
*/
|
|
31
31
|
export function getPortDataType(node, portId, portType) {
|
|
32
32
|
// First, check static ports in metadata
|
|
33
|
-
const ports = portType ===
|
|
34
|
-
? node.data?.metadata?.outputs
|
|
35
|
-
: node.data?.metadata?.inputs;
|
|
33
|
+
const ports = portType === 'output' ? node.data?.metadata?.outputs : node.data?.metadata?.inputs;
|
|
36
34
|
if (ports && Array.isArray(ports)) {
|
|
37
35
|
const port = ports.find((p) => p.id === portId);
|
|
38
36
|
if (port?.dataType) {
|
|
@@ -40,7 +38,7 @@ export function getPortDataType(node, portId, portType) {
|
|
|
40
38
|
}
|
|
41
39
|
}
|
|
42
40
|
// Check dynamic ports from config (dynamicInputs/dynamicOutputs)
|
|
43
|
-
const dynamicKey = portType ===
|
|
41
|
+
const dynamicKey = portType === 'output' ? 'dynamicOutputs' : 'dynamicInputs';
|
|
44
42
|
const dynamicPorts = node.data?.config?.[dynamicKey];
|
|
45
43
|
if (dynamicPorts && Array.isArray(dynamicPorts)) {
|
|
46
44
|
const dynamicPort = dynamicPorts.find((p) => p.name === portId);
|
|
@@ -50,8 +48,8 @@ export function getPortDataType(node, portId, portType) {
|
|
|
50
48
|
}
|
|
51
49
|
// For output ports, also check dynamic Gateway branches
|
|
52
50
|
// Gateway branches are always trigger type (control flow)
|
|
53
|
-
if (portType ===
|
|
54
|
-
return
|
|
51
|
+
if (portType === 'output' && isGatewayBranch(node, portId)) {
|
|
52
|
+
return 'trigger';
|
|
55
53
|
}
|
|
56
54
|
return null;
|
|
57
55
|
}
|
|
@@ -60,13 +58,13 @@ export function getPortDataType(node, portId, portType) {
|
|
|
60
58
|
* Note: This does not check for loopback edges — use getEdgeCategoryWithLoopback() for that.
|
|
61
59
|
*/
|
|
62
60
|
export function getEdgeCategory(sourcePortDataType) {
|
|
63
|
-
if (sourcePortDataType ===
|
|
64
|
-
return
|
|
61
|
+
if (sourcePortDataType === 'trigger') {
|
|
62
|
+
return 'trigger';
|
|
65
63
|
}
|
|
66
|
-
if (sourcePortDataType ===
|
|
67
|
-
return
|
|
64
|
+
if (sourcePortDataType === 'tool') {
|
|
65
|
+
return 'tool';
|
|
68
66
|
}
|
|
69
|
-
return
|
|
67
|
+
return 'data';
|
|
70
68
|
}
|
|
71
69
|
/**
|
|
72
70
|
* Determine the full edge category including loopback detection.
|
|
@@ -74,7 +72,7 @@ export function getEdgeCategory(sourcePortDataType) {
|
|
|
74
72
|
*/
|
|
75
73
|
export function getEdgeCategoryWithLoopback(edge, sourcePortDataType) {
|
|
76
74
|
if (isLoopbackEdge(edge)) {
|
|
77
|
-
return
|
|
75
|
+
return 'loopback';
|
|
78
76
|
}
|
|
79
77
|
return getEdgeCategory(sourcePortDataType);
|
|
80
78
|
}
|
|
@@ -91,50 +89,49 @@ export function applyConnectionStyling(edge, sourceNode, targetNode) {
|
|
|
91
89
|
const sourcePortId = extractPortId(edge.sourceHandle);
|
|
92
90
|
// Get the source port's data type
|
|
93
91
|
const sourcePortDataType = sourcePortId
|
|
94
|
-
? getPortDataType(sourceNode, sourcePortId,
|
|
92
|
+
? getPortDataType(sourceNode, sourcePortId, 'output')
|
|
95
93
|
: null;
|
|
96
94
|
// Determine edge category (loopback takes precedence)
|
|
97
95
|
const edgeCategory = getEdgeCategoryWithLoopback(edge, sourcePortDataType);
|
|
98
96
|
// Apply styling based on edge category
|
|
99
97
|
// Marker colors use CSS custom properties so they respond to theme changes automatically
|
|
100
98
|
switch (edgeCategory) {
|
|
101
|
-
case
|
|
99
|
+
case 'loopback':
|
|
102
100
|
edge.style =
|
|
103
|
-
|
|
104
|
-
edge.class =
|
|
101
|
+
'stroke: var(--fd-edge-loopback); stroke-dasharray: var(--fd-edge-loopback-dasharray); stroke-width: var(--fd-edge-loopback-width); opacity: var(--fd-edge-loopback-opacity);';
|
|
102
|
+
edge.class = 'flowdrop--edge--loopback';
|
|
105
103
|
edge.markerEnd = {
|
|
106
104
|
type: MarkerType.ArrowClosed,
|
|
107
105
|
...EDGE_MARKER_SIZES.loopback,
|
|
108
|
-
color:
|
|
106
|
+
color: 'var(--fd-edge-loopback)'
|
|
109
107
|
};
|
|
110
108
|
break;
|
|
111
|
-
case
|
|
112
|
-
edge.style =
|
|
113
|
-
|
|
114
|
-
edge.class = "flowdrop--edge--trigger";
|
|
109
|
+
case 'trigger':
|
|
110
|
+
edge.style = 'stroke: var(--fd-edge-trigger); stroke-width: var(--fd-edge-trigger-width);';
|
|
111
|
+
edge.class = 'flowdrop--edge--trigger';
|
|
115
112
|
edge.markerEnd = {
|
|
116
113
|
type: MarkerType.ArrowClosed,
|
|
117
114
|
...EDGE_MARKER_SIZES.trigger,
|
|
118
|
-
color:
|
|
115
|
+
color: 'var(--fd-edge-trigger)'
|
|
119
116
|
};
|
|
120
117
|
break;
|
|
121
|
-
case
|
|
122
|
-
edge.style =
|
|
123
|
-
edge.class =
|
|
118
|
+
case 'tool':
|
|
119
|
+
edge.style = 'stroke: var(--fd-edge-tool); stroke-dasharray: 5 3;';
|
|
120
|
+
edge.class = 'flowdrop--edge--tool';
|
|
124
121
|
edge.markerEnd = {
|
|
125
122
|
type: MarkerType.ArrowClosed,
|
|
126
123
|
...EDGE_MARKER_SIZES.tool,
|
|
127
|
-
color:
|
|
124
|
+
color: 'var(--fd-edge-tool)'
|
|
128
125
|
};
|
|
129
126
|
break;
|
|
130
|
-
case
|
|
127
|
+
case 'data':
|
|
131
128
|
default:
|
|
132
|
-
edge.style =
|
|
133
|
-
edge.class =
|
|
129
|
+
edge.style = 'stroke: var(--fd-edge-data);';
|
|
130
|
+
edge.class = 'flowdrop--edge--data';
|
|
134
131
|
edge.markerEnd = {
|
|
135
132
|
type: MarkerType.ArrowClosed,
|
|
136
133
|
...EDGE_MARKER_SIZES.data,
|
|
137
|
-
color:
|
|
134
|
+
color: 'var(--fd-edge-data)'
|
|
138
135
|
};
|
|
139
136
|
break;
|
|
140
137
|
}
|
|
@@ -144,10 +141,10 @@ export function applyConnectionStyling(edge, sourceNode, targetNode) {
|
|
|
144
141
|
metadata: {
|
|
145
142
|
...(edge.data?.metadata || {}),
|
|
146
143
|
edgeType: edgeCategory,
|
|
147
|
-
sourcePortDataType: sourcePortDataType ?? undefined
|
|
144
|
+
sourcePortDataType: sourcePortDataType ?? undefined
|
|
148
145
|
},
|
|
149
146
|
targetNodeType: targetNode.type,
|
|
150
|
-
targetCategory: targetNode.data.metadata.category
|
|
147
|
+
targetCategory: targetNode.data.metadata.category
|
|
151
148
|
};
|
|
152
149
|
}
|
|
153
150
|
/**
|
|
@@ -165,8 +162,8 @@ export function updateEdgeStyles(edges, nodes) {
|
|
|
165
162
|
...updatedEdge.data,
|
|
166
163
|
metadata: {
|
|
167
164
|
...(updatedEdge.data?.metadata || {}),
|
|
168
|
-
edgeType:
|
|
169
|
-
}
|
|
165
|
+
edgeType: 'data'
|
|
166
|
+
}
|
|
170
167
|
};
|
|
171
168
|
return updatedEdge;
|
|
172
169
|
}
|
package/dist/utils/errors.js
CHANGED
|
@@ -21,7 +21,7 @@ export function normalizeError(error) {
|
|
|
21
21
|
if (error instanceof Error) {
|
|
22
22
|
return error;
|
|
23
23
|
}
|
|
24
|
-
if (typeof error ===
|
|
24
|
+
if (typeof error === 'string') {
|
|
25
25
|
return new Error(error);
|
|
26
26
|
}
|
|
27
27
|
return new Error(String(error));
|
|
@@ -33,11 +33,11 @@ export function normalizeError(error) {
|
|
|
33
33
|
* @param fallback - Fallback message if error has no useful info
|
|
34
34
|
* @returns A string message
|
|
35
35
|
*/
|
|
36
|
-
export function getErrorMessage(error, fallback =
|
|
36
|
+
export function getErrorMessage(error, fallback = 'Unknown error') {
|
|
37
37
|
if (error instanceof Error) {
|
|
38
38
|
return error.message;
|
|
39
39
|
}
|
|
40
|
-
if (typeof error ===
|
|
40
|
+
if (typeof error === 'string') {
|
|
41
41
|
return error;
|
|
42
42
|
}
|
|
43
43
|
return fallback;
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
*/
|
|
24
24
|
export async function buildFetchHeaders(authProvider) {
|
|
25
25
|
const headers = {
|
|
26
|
-
Accept:
|
|
27
|
-
|
|
26
|
+
Accept: 'application/json',
|
|
27
|
+
'Content-Type': 'application/json'
|
|
28
28
|
};
|
|
29
29
|
if (authProvider) {
|
|
30
30
|
const authHeaders = await authProvider.getAuthHeaders();
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* @param portId - The port identifier
|
|
15
15
|
* @returns A composite handle ID string
|
|
16
16
|
*/
|
|
17
|
-
export declare function buildHandleId(nodeId: string, direction:
|
|
17
|
+
export declare function buildHandleId(nodeId: string, direction: 'input' | 'output', portId: string): string;
|
|
18
18
|
/**
|
|
19
19
|
* Extract the port ID from a composite handle ID.
|
|
20
20
|
*
|
|
@@ -32,4 +32,4 @@ export declare function extractPortId(handleId: string | undefined): string | nu
|
|
|
32
32
|
* @param handleId - The handle ID string
|
|
33
33
|
* @returns 'input', 'output', or null if not found
|
|
34
34
|
*/
|
|
35
|
-
export declare function extractDirection(handleId: string | undefined):
|
|
35
|
+
export declare function extractDirection(handleId: string | undefined): 'input' | 'output' | null;
|
package/dist/utils/handleIds.js
CHANGED
|
@@ -30,13 +30,13 @@ export function buildHandleId(nodeId, direction, portId) {
|
|
|
30
30
|
export function extractPortId(handleId) {
|
|
31
31
|
if (!handleId)
|
|
32
32
|
return null;
|
|
33
|
-
const outputMatch = handleId.lastIndexOf(
|
|
33
|
+
const outputMatch = handleId.lastIndexOf('-output-');
|
|
34
34
|
if (outputMatch !== -1) {
|
|
35
|
-
return handleId.substring(outputMatch +
|
|
35
|
+
return handleId.substring(outputMatch + '-output-'.length);
|
|
36
36
|
}
|
|
37
|
-
const inputMatch = handleId.lastIndexOf(
|
|
37
|
+
const inputMatch = handleId.lastIndexOf('-input-');
|
|
38
38
|
if (inputMatch !== -1) {
|
|
39
|
-
return handleId.substring(inputMatch +
|
|
39
|
+
return handleId.substring(inputMatch + '-input-'.length);
|
|
40
40
|
}
|
|
41
41
|
// Short format: the handleId IS the port ID
|
|
42
42
|
return handleId;
|
|
@@ -50,9 +50,9 @@ export function extractPortId(handleId) {
|
|
|
50
50
|
export function extractDirection(handleId) {
|
|
51
51
|
if (!handleId)
|
|
52
52
|
return null;
|
|
53
|
-
if (handleId.includes(
|
|
54
|
-
return
|
|
55
|
-
if (handleId.includes(
|
|
56
|
-
return
|
|
53
|
+
if (handleId.includes('-output-'))
|
|
54
|
+
return 'output';
|
|
55
|
+
if (handleId.includes('-input-'))
|
|
56
|
+
return 'input';
|
|
57
57
|
return null;
|
|
58
58
|
}
|
|
@@ -28,4 +28,4 @@ export interface HandlePosition {
|
|
|
28
28
|
* getCircleHandlePosition(0, 2, 'left') // { left: ~4.8, top: ~18 }
|
|
29
29
|
* getCircleHandlePosition(1, 2, 'left') // { left: ~4.8, top: ~54 }
|
|
30
30
|
*/
|
|
31
|
-
export declare function getCircleHandlePosition(index: number, count: number, side:
|
|
31
|
+
export declare function getCircleHandlePosition(index: number, count: number, side: 'left' | 'right', radius?: number, arcSpan?: number): HandlePosition;
|
|
@@ -25,11 +25,11 @@
|
|
|
25
25
|
* getCircleHandlePosition(1, 2, 'left') // { left: ~4.8, top: ~54 }
|
|
26
26
|
*/
|
|
27
27
|
export function getCircleHandlePosition(index, count, side, radius = 40, arcSpan = (Math.PI * 5) / 6) {
|
|
28
|
-
const centerAngle = side ===
|
|
28
|
+
const centerAngle = side === 'left' ? Math.PI : 0; // 180° for left, 0° for right
|
|
29
29
|
const angle = centerAngle - arcSpan / 2 + (arcSpan * (index + 1)) / (count + 1);
|
|
30
30
|
const centerOffset = radius; // center of the circle (assuming square bounding box)
|
|
31
31
|
return {
|
|
32
32
|
left: centerOffset + radius * Math.cos(angle),
|
|
33
|
-
top: centerOffset + radius * Math.sin(angle)
|
|
33
|
+
top: centerOffset + radius * Math.sin(angle)
|
|
34
34
|
};
|
|
35
35
|
}
|
package/dist/utils/icons.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Centralized icon management for FlowDrop
|
|
3
3
|
* Ensures consistent icon usage across all components
|
|
4
4
|
*/
|
|
5
|
-
import type { NodeCategory } from
|
|
5
|
+
import type { NodeCategory } from '../types/index.js';
|
|
6
6
|
/**
|
|
7
7
|
* Default icons for different contexts
|
|
8
8
|
*/
|
package/dist/utils/icons.js
CHANGED
|
@@ -2,80 +2,80 @@
|
|
|
2
2
|
* Centralized icon management for FlowDrop
|
|
3
3
|
* Ensures consistent icon usage across all components
|
|
4
4
|
*/
|
|
5
|
-
import { getCategoryIcon as getCategoryIconFromStore } from
|
|
5
|
+
import { getCategoryIcon as getCategoryIconFromStore } from '../stores/categoriesStore.svelte.js';
|
|
6
6
|
/**
|
|
7
7
|
* Default icons for different contexts
|
|
8
8
|
*/
|
|
9
9
|
export const DEFAULT_ICONS = {
|
|
10
10
|
// Node fallback icons
|
|
11
|
-
NODE:
|
|
12
|
-
CATEGORY:
|
|
11
|
+
NODE: 'mdi:cube',
|
|
12
|
+
CATEGORY: 'mdi:folder',
|
|
13
13
|
// UI action icons
|
|
14
|
-
ADD:
|
|
15
|
-
REMOVE:
|
|
16
|
-
EDIT:
|
|
17
|
-
SAVE:
|
|
18
|
-
LOAD:
|
|
19
|
-
EXPORT:
|
|
20
|
-
IMPORT:
|
|
21
|
-
SEARCH:
|
|
22
|
-
CLOSE:
|
|
23
|
-
SETTINGS:
|
|
24
|
-
HELP:
|
|
14
|
+
ADD: 'mdi:plus',
|
|
15
|
+
REMOVE: 'mdi:minus',
|
|
16
|
+
EDIT: 'mdi:pencil',
|
|
17
|
+
SAVE: 'mdi:content-save',
|
|
18
|
+
LOAD: 'mdi:folder-open',
|
|
19
|
+
EXPORT: 'mdi:download',
|
|
20
|
+
IMPORT: 'mdi:upload',
|
|
21
|
+
SEARCH: 'mdi:magnify',
|
|
22
|
+
CLOSE: 'mdi:close',
|
|
23
|
+
SETTINGS: 'mdi:cog',
|
|
24
|
+
HELP: 'mdi:help-circle',
|
|
25
25
|
// Status icons
|
|
26
|
-
SUCCESS:
|
|
27
|
-
ERROR:
|
|
28
|
-
WARNING:
|
|
29
|
-
INFO:
|
|
30
|
-
LOADING:
|
|
26
|
+
SUCCESS: 'mdi:check-circle',
|
|
27
|
+
ERROR: 'mdi:alert-circle',
|
|
28
|
+
WARNING: 'mdi:alert',
|
|
29
|
+
INFO: 'mdi:information',
|
|
30
|
+
LOADING: 'mdi:loading',
|
|
31
31
|
// Navigation icons
|
|
32
|
-
HOME:
|
|
33
|
-
BACK:
|
|
34
|
-
FORWARD:
|
|
35
|
-
UP:
|
|
36
|
-
DOWN:
|
|
32
|
+
HOME: 'mdi:home',
|
|
33
|
+
BACK: 'mdi:arrow-left',
|
|
34
|
+
FORWARD: 'mdi:arrow-right',
|
|
35
|
+
UP: 'mdi:arrow-up',
|
|
36
|
+
DOWN: 'mdi:arrow-down',
|
|
37
37
|
// Workflow icons
|
|
38
|
-
WORKFLOW:
|
|
39
|
-
NODE_ADD:
|
|
40
|
-
NODE_DELETE:
|
|
41
|
-
CONNECTION:
|
|
38
|
+
WORKFLOW: 'mdi:graph',
|
|
39
|
+
NODE_ADD: 'mdi:plus-circle',
|
|
40
|
+
NODE_DELETE: 'mdi:minus-circle',
|
|
41
|
+
CONNECTION: 'mdi:connection',
|
|
42
42
|
// Data icons
|
|
43
|
-
DATA:
|
|
44
|
-
FILE:
|
|
45
|
-
TEXT:
|
|
46
|
-
JSON:
|
|
43
|
+
DATA: 'mdi:database',
|
|
44
|
+
FILE: 'mdi:file',
|
|
45
|
+
TEXT: 'mdi:text',
|
|
46
|
+
JSON: 'mdi:code-json',
|
|
47
47
|
// Model and processing icons
|
|
48
|
-
MODEL:
|
|
49
|
-
BRAIN:
|
|
50
|
-
VECTOR:
|
|
51
|
-
ROBOT:
|
|
48
|
+
MODEL: 'mdi:chip',
|
|
49
|
+
BRAIN: 'mdi:brain',
|
|
50
|
+
VECTOR: 'mdi:vector-point',
|
|
51
|
+
ROBOT: 'mdi:robot',
|
|
52
52
|
// Tool icons
|
|
53
|
-
TOOL:
|
|
54
|
-
CALCULATOR:
|
|
55
|
-
CLOCK:
|
|
53
|
+
TOOL: 'mdi:wrench',
|
|
54
|
+
CALCULATOR: 'mdi:calculator',
|
|
55
|
+
CLOCK: 'mdi:clock',
|
|
56
56
|
// Communication icons
|
|
57
|
-
CHAT:
|
|
58
|
-
MESSAGE:
|
|
59
|
-
EMAIL:
|
|
60
|
-
WEBHOOK:
|
|
57
|
+
CHAT: 'mdi:chat',
|
|
58
|
+
MESSAGE: 'mdi:message',
|
|
59
|
+
EMAIL: 'mdi:email',
|
|
60
|
+
WEBHOOK: 'mdi:webhook',
|
|
61
61
|
// Storage icons
|
|
62
|
-
STORAGE:
|
|
63
|
-
MEMORY:
|
|
64
|
-
CACHE:
|
|
62
|
+
STORAGE: 'mdi:database',
|
|
63
|
+
MEMORY: 'mdi:memory',
|
|
64
|
+
CACHE: 'mdi:cached',
|
|
65
65
|
// Processing icons
|
|
66
|
-
PROCESS:
|
|
67
|
-
FILTER:
|
|
68
|
-
SORT:
|
|
69
|
-
TRANSFORM:
|
|
66
|
+
PROCESS: 'mdi:cog',
|
|
67
|
+
FILTER: 'mdi:filter',
|
|
68
|
+
SORT: 'mdi:sort',
|
|
69
|
+
TRANSFORM: 'mdi:transform',
|
|
70
70
|
// Logic icons
|
|
71
|
-
LOGIC:
|
|
72
|
-
CONDITION:
|
|
73
|
-
LOOP:
|
|
71
|
+
LOGIC: 'mdi:git-branch',
|
|
72
|
+
CONDITION: 'mdi:source-fork',
|
|
73
|
+
LOOP: 'mdi:loop',
|
|
74
74
|
// Integration icons
|
|
75
|
-
API:
|
|
76
|
-
LINK:
|
|
77
|
-
PLUGIN:
|
|
78
|
-
BUNDLE:
|
|
75
|
+
API: 'mdi:api',
|
|
76
|
+
LINK: 'mdi:link',
|
|
77
|
+
PLUGIN: 'mdi:puzzle',
|
|
78
|
+
BUNDLE: 'mdi:package-variant'
|
|
79
79
|
};
|
|
80
80
|
/**
|
|
81
81
|
* Category-specific icons for built-in categories.
|
|
@@ -83,23 +83,23 @@ export const DEFAULT_ICONS = {
|
|
|
83
83
|
* These serve as static defaults; the categories store provides dynamic overrides.
|
|
84
84
|
*/
|
|
85
85
|
export const CATEGORY_ICONS = {
|
|
86
|
-
triggers:
|
|
87
|
-
inputs:
|
|
88
|
-
outputs:
|
|
89
|
-
prompts:
|
|
90
|
-
models:
|
|
91
|
-
processing:
|
|
92
|
-
logic:
|
|
93
|
-
data:
|
|
94
|
-
helpers:
|
|
95
|
-
tools:
|
|
96
|
-
|
|
97
|
-
embeddings:
|
|
98
|
-
memories:
|
|
99
|
-
agents:
|
|
100
|
-
ai:
|
|
101
|
-
interrupts:
|
|
102
|
-
bundles:
|
|
86
|
+
triggers: 'mdi:lightning-bolt',
|
|
87
|
+
inputs: 'mdi:arrow-down-circle',
|
|
88
|
+
outputs: 'mdi:arrow-up-circle',
|
|
89
|
+
prompts: 'mdi:message-text',
|
|
90
|
+
models: 'mdi:robot',
|
|
91
|
+
processing: 'mdi:cog',
|
|
92
|
+
logic: 'mdi:source-branch',
|
|
93
|
+
data: 'mdi:database',
|
|
94
|
+
helpers: 'mdi:help-circle',
|
|
95
|
+
tools: 'mdi:wrench',
|
|
96
|
+
'vector stores': 'mdi:vector-square',
|
|
97
|
+
embeddings: 'mdi:vector-polygon',
|
|
98
|
+
memories: 'mdi:brain',
|
|
99
|
+
agents: 'mdi:account-cog',
|
|
100
|
+
ai: 'mdi:shimmer',
|
|
101
|
+
interrupts: 'mdi:hand-back-left',
|
|
102
|
+
bundles: 'mdi:package-variant'
|
|
103
103
|
};
|
|
104
104
|
/**
|
|
105
105
|
* Get the appropriate icon for a node
|
package/dist/utils/logger.d.ts
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* ```
|
|
22
22
|
*/
|
|
23
23
|
/** Log severity levels. `'none'` disables all output. */
|
|
24
|
-
export type LogLevel =
|
|
24
|
+
export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'none';
|
|
25
25
|
/**
|
|
26
26
|
* Set the minimum log level for FlowDrop library output.
|
|
27
27
|
* Messages below this level are silently discarded.
|