@flowdrop/flowdrop 1.5.0 → 1.6.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 +240 -294
- package/dist/components/App.svelte.d.ts +9 -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 +42 -56
- 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 +44 -74
- 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/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 +3 -3
- package/dist/stores/workflowStore.svelte.js +46 -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 +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 +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 +2 -2
- package/dist/utils/connections.js +15 -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
|
/**
|
|
@@ -119,7 +119,7 @@ export function initializePortCompatibility(portConfig) {
|
|
|
119
119
|
*/
|
|
120
120
|
export function getPortCompatibilityChecker() {
|
|
121
121
|
if (!globalCompatibilityChecker) {
|
|
122
|
-
throw new Error(
|
|
122
|
+
throw new Error('Port compatibility checker not initialized. Call initializePortCompatibility() first.');
|
|
123
123
|
}
|
|
124
124
|
return globalCompatibilityChecker;
|
|
125
125
|
}
|
|
@@ -155,7 +155,7 @@ export function getPossibleConnections(sourceNode, targetNodes, nodeTypes) {
|
|
|
155
155
|
targetNodeId: targetNode.id,
|
|
156
156
|
targetPortId: targetPort.id,
|
|
157
157
|
targetPort,
|
|
158
|
-
compatible
|
|
158
|
+
compatible
|
|
159
159
|
});
|
|
160
160
|
}
|
|
161
161
|
}
|
|
@@ -170,36 +170,36 @@ export function validateConnection(sourceNodeId, sourcePortId, targetNodeId, tar
|
|
|
170
170
|
const sourceNode = nodes.find((n) => n.id === sourceNodeId);
|
|
171
171
|
const targetNode = nodes.find((n) => n.id === targetNodeId);
|
|
172
172
|
if (!sourceNode) {
|
|
173
|
-
return { valid: false, error:
|
|
173
|
+
return { valid: false, error: 'Source node not found' };
|
|
174
174
|
}
|
|
175
175
|
if (!targetNode) {
|
|
176
|
-
return { valid: false, error:
|
|
176
|
+
return { valid: false, error: 'Target node not found' };
|
|
177
177
|
}
|
|
178
178
|
// Check for self-connection
|
|
179
179
|
if (sourceNodeId === targetNodeId) {
|
|
180
|
-
return { valid: false, error:
|
|
180
|
+
return { valid: false, error: 'Cannot connect node to itself' };
|
|
181
181
|
}
|
|
182
182
|
// Get node metadata
|
|
183
183
|
const sourceMetadata = nodeTypes.find((nt) => nt.id === sourceNode.data.metadata.id);
|
|
184
184
|
const targetMetadata = nodeTypes.find((nt) => nt.id === targetNode.data.metadata.id);
|
|
185
185
|
if (!sourceMetadata || !targetMetadata) {
|
|
186
|
-
return { valid: false, error:
|
|
186
|
+
return { valid: false, error: 'Node metadata not found' };
|
|
187
187
|
}
|
|
188
188
|
// Find ports
|
|
189
189
|
const sourcePort = sourceMetadata.outputs.find((p) => p.id === sourcePortId);
|
|
190
190
|
const targetPort = targetMetadata.inputs.find((p) => p.id === targetPortId);
|
|
191
191
|
if (!sourcePort) {
|
|
192
|
-
return { valid: false, error:
|
|
192
|
+
return { valid: false, error: 'Source port not found' };
|
|
193
193
|
}
|
|
194
194
|
if (!targetPort) {
|
|
195
|
-
return { valid: false, error:
|
|
195
|
+
return { valid: false, error: 'Target port not found' };
|
|
196
196
|
}
|
|
197
197
|
// Check data type compatibility using the global checker
|
|
198
198
|
const checker = getPortCompatibilityChecker();
|
|
199
199
|
if (!checker.areDataTypesCompatible(sourcePort.dataType, targetPort.dataType)) {
|
|
200
200
|
return {
|
|
201
201
|
valid: false,
|
|
202
|
-
error: `Incompatible data types: ${sourcePort.dataType} cannot connect to ${targetPort.dataType}
|
|
202
|
+
error: `Incompatible data types: ${sourcePort.dataType} cannot connect to ${targetPort.dataType}`
|
|
203
203
|
};
|
|
204
204
|
}
|
|
205
205
|
return { valid: true };
|
|
@@ -232,9 +232,9 @@ export function getConnectionSuggestions(nodeId, nodes, nodeTypes) {
|
|
|
232
232
|
nodeName: otherNode.data.label,
|
|
233
233
|
portId: output.id,
|
|
234
234
|
portName: output.name,
|
|
235
|
-
portType:
|
|
235
|
+
portType: 'output',
|
|
236
236
|
dataType: output.dataType,
|
|
237
|
-
compatible
|
|
237
|
+
compatible
|
|
238
238
|
});
|
|
239
239
|
}
|
|
240
240
|
}
|
|
@@ -247,9 +247,9 @@ export function getConnectionSuggestions(nodeId, nodes, nodeTypes) {
|
|
|
247
247
|
nodeName: otherNode.data.label,
|
|
248
248
|
portId: input.id,
|
|
249
249
|
portName: input.name,
|
|
250
|
-
portType:
|
|
250
|
+
portType: 'input',
|
|
251
251
|
dataType: input.dataType,
|
|
252
|
-
compatible
|
|
252
|
+
compatible
|
|
253
253
|
});
|
|
254
254
|
}
|
|
255
255
|
}
|
|
@@ -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.
|
package/dist/utils/logger.js
CHANGED
|
@@ -25,9 +25,9 @@ const LOG_PRIORITY = {
|
|
|
25
25
|
info: 1,
|
|
26
26
|
warn: 2,
|
|
27
27
|
error: 3,
|
|
28
|
-
none: 4
|
|
28
|
+
none: 4
|
|
29
29
|
};
|
|
30
|
-
let currentLevel =
|
|
30
|
+
let currentLevel = 'none';
|
|
31
31
|
/**
|
|
32
32
|
* Set the minimum log level for FlowDrop library output.
|
|
33
33
|
* Messages below this level are silently discarded.
|
|
@@ -54,19 +54,19 @@ function shouldLog(level) {
|
|
|
54
54
|
*/
|
|
55
55
|
export const logger = {
|
|
56
56
|
debug(message, ...args) {
|
|
57
|
-
if (shouldLog(
|
|
57
|
+
if (shouldLog('debug'))
|
|
58
58
|
console.debug(`[FlowDrop] ${message}`, ...args);
|
|
59
59
|
},
|
|
60
60
|
info(message, ...args) {
|
|
61
|
-
if (shouldLog(
|
|
61
|
+
if (shouldLog('info'))
|
|
62
62
|
console.info(`[FlowDrop] ${message}`, ...args);
|
|
63
63
|
},
|
|
64
64
|
warn(message, ...args) {
|
|
65
|
-
if (shouldLog(
|
|
65
|
+
if (shouldLog('warn'))
|
|
66
66
|
console.warn(`[FlowDrop] ${message}`, ...args);
|
|
67
67
|
},
|
|
68
68
|
error(message, ...args) {
|
|
69
|
-
if (shouldLog(
|
|
69
|
+
if (shouldLog('error'))
|
|
70
70
|
console.error(`[FlowDrop] ${message}`, ...args);
|
|
71
|
-
}
|
|
71
|
+
}
|
|
72
72
|
};
|