@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
package/dist/utils/colors.js
CHANGED
|
@@ -3,65 +3,65 @@
|
|
|
3
3
|
* Ensures consistent category colors across sidebar and canvas
|
|
4
4
|
* Uses BEM syntax for CSS classes
|
|
5
5
|
*/
|
|
6
|
-
import { getPortCompatibilityChecker } from
|
|
7
|
-
import { getCategoryColor as getCategoryColorFromStore } from
|
|
8
|
-
import { logger } from
|
|
6
|
+
import { getPortCompatibilityChecker } from './connections.js';
|
|
7
|
+
import { getCategoryColor as getCategoryColorFromStore } from '../stores/categoriesStore.svelte.js';
|
|
8
|
+
import { logger } from './logger.js';
|
|
9
9
|
/**
|
|
10
10
|
* Category color mapping to design tokens (CSS variables)
|
|
11
11
|
* Uses --fd-node-* tokens from tokens.css
|
|
12
12
|
* These serve as static defaults; the categories store provides dynamic overrides.
|
|
13
13
|
*/
|
|
14
14
|
export const CATEGORY_COLOR_TOKENS = {
|
|
15
|
-
triggers:
|
|
16
|
-
inputs:
|
|
17
|
-
outputs:
|
|
18
|
-
prompts:
|
|
19
|
-
models:
|
|
20
|
-
processing:
|
|
21
|
-
logic:
|
|
22
|
-
data:
|
|
23
|
-
helpers:
|
|
24
|
-
tools:
|
|
25
|
-
|
|
26
|
-
embeddings:
|
|
27
|
-
memories:
|
|
28
|
-
agents:
|
|
29
|
-
ai:
|
|
30
|
-
interrupts:
|
|
31
|
-
bundles:
|
|
15
|
+
triggers: 'var(--fd-node-cyan)',
|
|
16
|
+
inputs: 'var(--fd-node-emerald)',
|
|
17
|
+
outputs: 'var(--fd-node-blue)',
|
|
18
|
+
prompts: 'var(--fd-node-amber)',
|
|
19
|
+
models: 'var(--fd-node-indigo)',
|
|
20
|
+
processing: 'var(--fd-node-teal)',
|
|
21
|
+
logic: 'var(--fd-node-purple)',
|
|
22
|
+
data: 'var(--fd-node-orange)',
|
|
23
|
+
helpers: 'var(--fd-node-slate)',
|
|
24
|
+
tools: 'var(--fd-node-amber)',
|
|
25
|
+
'vector stores': 'var(--fd-node-emerald)',
|
|
26
|
+
embeddings: 'var(--fd-node-indigo)',
|
|
27
|
+
memories: 'var(--fd-node-blue)',
|
|
28
|
+
agents: 'var(--fd-node-teal)',
|
|
29
|
+
ai: 'var(--fd-node-purple)',
|
|
30
|
+
interrupts: 'var(--fd-node-red)',
|
|
31
|
+
bundles: 'var(--fd-node-slate)'
|
|
32
32
|
};
|
|
33
33
|
/**
|
|
34
34
|
* Default data type colors for fallback when port configuration is not available
|
|
35
35
|
* Uses --fd-node-* tokens from tokens.css
|
|
36
36
|
*/
|
|
37
37
|
const DEFAULT_DATA_TYPE_COLORS = {
|
|
38
|
-
string:
|
|
39
|
-
text:
|
|
40
|
-
number:
|
|
41
|
-
integer:
|
|
42
|
-
float:
|
|
43
|
-
boolean:
|
|
44
|
-
array:
|
|
45
|
-
list:
|
|
46
|
-
object:
|
|
47
|
-
json:
|
|
48
|
-
mixed:
|
|
49
|
-
file:
|
|
50
|
-
document:
|
|
51
|
-
image:
|
|
52
|
-
picture:
|
|
53
|
-
audio:
|
|
54
|
-
sound:
|
|
55
|
-
video:
|
|
56
|
-
movie:
|
|
57
|
-
url:
|
|
58
|
-
email:
|
|
59
|
-
date:
|
|
60
|
-
datetime:
|
|
61
|
-
time:
|
|
62
|
-
tool:
|
|
63
|
-
trigger:
|
|
64
|
-
branch:
|
|
38
|
+
string: 'var(--fd-node-emerald)',
|
|
39
|
+
text: 'var(--fd-node-emerald)',
|
|
40
|
+
number: 'var(--fd-node-blue)',
|
|
41
|
+
integer: 'var(--fd-node-blue)',
|
|
42
|
+
float: 'var(--fd-node-blue)',
|
|
43
|
+
boolean: 'var(--fd-node-purple)',
|
|
44
|
+
array: 'var(--fd-node-amber)',
|
|
45
|
+
list: 'var(--fd-node-amber)',
|
|
46
|
+
object: 'var(--fd-node-orange)',
|
|
47
|
+
json: 'var(--fd-node-orange)',
|
|
48
|
+
mixed: 'var(--fd-node-orange)',
|
|
49
|
+
file: 'var(--fd-node-red)',
|
|
50
|
+
document: 'var(--fd-node-red)',
|
|
51
|
+
image: 'var(--fd-node-pink)',
|
|
52
|
+
picture: 'var(--fd-node-pink)',
|
|
53
|
+
audio: 'var(--fd-node-indigo)',
|
|
54
|
+
sound: 'var(--fd-node-indigo)',
|
|
55
|
+
video: 'var(--fd-node-teal)',
|
|
56
|
+
movie: 'var(--fd-node-teal)',
|
|
57
|
+
url: 'var(--fd-node-cyan)',
|
|
58
|
+
email: 'var(--fd-node-cyan)',
|
|
59
|
+
date: 'var(--fd-node-lime)',
|
|
60
|
+
datetime: 'var(--fd-node-lime)',
|
|
61
|
+
time: 'var(--fd-node-lime)',
|
|
62
|
+
tool: 'var(--fd-node-amber)',
|
|
63
|
+
trigger: 'var(--fd-edge-trigger)',
|
|
64
|
+
branch: 'var(--fd-node-purple)'
|
|
65
65
|
};
|
|
66
66
|
/**
|
|
67
67
|
* Get the design token for a category color.
|
|
@@ -85,7 +85,7 @@ export function getDataTypeColorToken(dataType) {
|
|
|
85
85
|
catch {
|
|
86
86
|
// Fallback to static color mapping if port checker not initialized
|
|
87
87
|
}
|
|
88
|
-
return
|
|
88
|
+
return DEFAULT_DATA_TYPE_COLORS[dataType.toLowerCase()] || 'var(--fd-node-slate)';
|
|
89
89
|
}
|
|
90
90
|
/**
|
|
91
91
|
* Get data type configuration from port config
|
|
@@ -96,7 +96,7 @@ export function getDataTypeConfig(dataType) {
|
|
|
96
96
|
return checker.getDataTypeConfig(dataType);
|
|
97
97
|
}
|
|
98
98
|
catch (error) {
|
|
99
|
-
logger.warn(
|
|
99
|
+
logger.warn('Port compatibility checker not initialized:', error);
|
|
100
100
|
return undefined;
|
|
101
101
|
}
|
|
102
102
|
}
|
|
@@ -109,7 +109,7 @@ export function getAvailableDataTypes() {
|
|
|
109
109
|
return checker.getEnabledDataTypes();
|
|
110
110
|
}
|
|
111
111
|
catch (error) {
|
|
112
|
-
logger.warn(
|
|
112
|
+
logger.warn('Port compatibility checker not initialized:', error);
|
|
113
113
|
return [];
|
|
114
114
|
}
|
|
115
115
|
}
|
|
@@ -117,10 +117,10 @@ export function getAvailableDataTypes() {
|
|
|
117
117
|
* Default colors for fallback cases
|
|
118
118
|
*/
|
|
119
119
|
export const DEFAULT_COLORS = {
|
|
120
|
-
background:
|
|
121
|
-
accent:
|
|
122
|
-
text:
|
|
123
|
-
border:
|
|
120
|
+
background: 'flowdrop-color--base-light',
|
|
121
|
+
accent: 'flowdrop-color--neutral',
|
|
122
|
+
text: 'flowdrop-color--base-text',
|
|
123
|
+
border: 'flowdrop-color--base-border'
|
|
124
124
|
};
|
|
125
125
|
/**
|
|
126
126
|
* Get category colors
|
|
@@ -174,33 +174,33 @@ export function getNodeColors(category, isError = false, isProcessing = false, i
|
|
|
174
174
|
const baseColor = getCategoryColors(category);
|
|
175
175
|
if (isError) {
|
|
176
176
|
return {
|
|
177
|
-
background:
|
|
178
|
-
accent:
|
|
179
|
-
text:
|
|
180
|
-
border:
|
|
177
|
+
background: 'var(--fd-error-muted)',
|
|
178
|
+
accent: 'var(--fd-error)',
|
|
179
|
+
text: 'var(--fd-error-hover)',
|
|
180
|
+
border: 'var(--fd-error)'
|
|
181
181
|
};
|
|
182
182
|
}
|
|
183
183
|
if (isProcessing) {
|
|
184
184
|
return {
|
|
185
|
-
background:
|
|
186
|
-
accent:
|
|
187
|
-
text:
|
|
188
|
-
border:
|
|
185
|
+
background: 'var(--fd-info-muted)',
|
|
186
|
+
accent: 'var(--fd-info)',
|
|
187
|
+
text: 'var(--fd-primary-hover)',
|
|
188
|
+
border: 'var(--fd-primary)'
|
|
189
189
|
};
|
|
190
190
|
}
|
|
191
191
|
if (isSelected) {
|
|
192
192
|
return {
|
|
193
|
-
background:
|
|
194
|
-
accent:
|
|
195
|
-
text:
|
|
196
|
-
border:
|
|
193
|
+
background: 'var(--fd-accent-muted)',
|
|
194
|
+
accent: 'var(--fd-accent)',
|
|
195
|
+
text: 'var(--fd-accent-hover)',
|
|
196
|
+
border: 'var(--fd-accent)'
|
|
197
197
|
};
|
|
198
198
|
}
|
|
199
199
|
return {
|
|
200
200
|
background: baseColor,
|
|
201
201
|
accent: baseColor,
|
|
202
|
-
text:
|
|
203
|
-
border: baseColor
|
|
202
|
+
text: 'var(--fd-foreground)',
|
|
203
|
+
border: baseColor
|
|
204
204
|
};
|
|
205
205
|
}
|
|
206
206
|
/**
|
|
@@ -262,7 +262,7 @@ export function getDataTypeColor(dataType) {
|
|
|
262
262
|
*/
|
|
263
263
|
export function parseDataTypeDisplay(dataType) {
|
|
264
264
|
// Check if it's a typed array (ends with [])
|
|
265
|
-
const isArray = dataType.endsWith(
|
|
265
|
+
const isArray = dataType.endsWith('[]');
|
|
266
266
|
if (isArray) {
|
|
267
267
|
const elementType = dataType.slice(0, -2); // Remove []
|
|
268
268
|
const config = getDataTypeConfig(dataType);
|
|
@@ -270,7 +270,7 @@ export function parseDataTypeDisplay(dataType) {
|
|
|
270
270
|
baseType: dataType,
|
|
271
271
|
isArray: true,
|
|
272
272
|
displayName: config?.name || `${elementType}[]`,
|
|
273
|
-
elementType: elementType
|
|
273
|
+
elementType: elementType
|
|
274
274
|
};
|
|
275
275
|
}
|
|
276
276
|
else {
|
|
@@ -278,7 +278,7 @@ export function parseDataTypeDisplay(dataType) {
|
|
|
278
278
|
return {
|
|
279
279
|
baseType: dataType,
|
|
280
280
|
isArray: false,
|
|
281
|
-
displayName: config?.name || dataType
|
|
281
|
+
displayName: config?.name || dataType
|
|
282
282
|
};
|
|
283
283
|
}
|
|
284
284
|
}
|
|
@@ -297,7 +297,7 @@ export function getDataTypeDisplayText(dataType) {
|
|
|
297
297
|
* @returns True if it's an array type
|
|
298
298
|
*/
|
|
299
299
|
export function isArrayDataType(dataType) {
|
|
300
|
-
return dataType.endsWith(
|
|
300
|
+
return dataType.endsWith('[]') || dataType === 'array' || dataType === 'list';
|
|
301
301
|
}
|
|
302
302
|
/**
|
|
303
303
|
* Get the element type from an array data type
|
|
@@ -305,7 +305,7 @@ export function isArrayDataType(dataType) {
|
|
|
305
305
|
* @returns The element type (e.g., "string") or null if not an array
|
|
306
306
|
*/
|
|
307
307
|
export function getArrayElementType(arrayDataType) {
|
|
308
|
-
if (arrayDataType.endsWith(
|
|
308
|
+
if (arrayDataType.endsWith('[]')) {
|
|
309
309
|
return arrayDataType.slice(0, -2);
|
|
310
310
|
}
|
|
311
311
|
return null;
|
|
@@ -316,7 +316,7 @@ export function getArrayElementType(arrayDataType) {
|
|
|
316
316
|
* @returns Object with r, g, b values (0-255) or null if invalid
|
|
317
317
|
*/
|
|
318
318
|
export function hexToRgb(hex) {
|
|
319
|
-
const cleanHex = hex.replace(/^#/,
|
|
319
|
+
const cleanHex = hex.replace(/^#/, '');
|
|
320
320
|
if (!/^[0-9A-Fa-f]{6}$/.test(cleanHex)) {
|
|
321
321
|
return null;
|
|
322
322
|
}
|
|
@@ -336,9 +336,7 @@ export function hexToRgb(hex) {
|
|
|
336
336
|
export function getRelativeLuminance(r, g, b) {
|
|
337
337
|
const toLinear = (value) => {
|
|
338
338
|
const srgb = value / 255;
|
|
339
|
-
return srgb <= 0.03928
|
|
340
|
-
? srgb / 12.92
|
|
341
|
-
: Math.pow((srgb + 0.055) / 1.055, 2.4);
|
|
339
|
+
return srgb <= 0.03928 ? srgb / 12.92 : Math.pow((srgb + 0.055) / 1.055, 2.4);
|
|
342
340
|
};
|
|
343
341
|
return 0.2126 * toLinear(r) + 0.7152 * toLinear(g) + 0.0722 * toLinear(b);
|
|
344
342
|
}
|
|
@@ -363,25 +361,25 @@ export function isLightColor(hex) {
|
|
|
363
361
|
* @returns CSS color value for text that provides good contrast
|
|
364
362
|
*/
|
|
365
363
|
export function getContrastTextColor(backgroundColor) {
|
|
366
|
-
return isLightColor(backgroundColor) ?
|
|
364
|
+
return isLightColor(backgroundColor) ? '#18181b' : '#ffffff';
|
|
367
365
|
}
|
|
368
366
|
/**
|
|
369
367
|
* Mapping of CSS variable tokens to their resolved hex values
|
|
370
368
|
* Used for contrast calculations when working with design tokens
|
|
371
369
|
*/
|
|
372
370
|
const TOKEN_TO_HEX = {
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
371
|
+
'var(--fd-node-cyan)': '#06b6d4',
|
|
372
|
+
'var(--fd-node-emerald)': '#10b981',
|
|
373
|
+
'var(--fd-node-blue)': '#3b82f6',
|
|
374
|
+
'var(--fd-node-amber)': '#f59e0b',
|
|
375
|
+
'var(--fd-node-indigo)': '#6366f1',
|
|
376
|
+
'var(--fd-node-teal)': '#14b8a6',
|
|
377
|
+
'var(--fd-node-purple)': '#8b5cf6',
|
|
378
|
+
'var(--fd-node-orange)': '#f97316',
|
|
379
|
+
'var(--fd-node-slate)': '#64748b',
|
|
380
|
+
'var(--fd-node-red)': '#ef4444',
|
|
381
|
+
'var(--fd-node-pink)': '#ec4899',
|
|
382
|
+
'var(--fd-node-lime)': '#84cc16'
|
|
385
383
|
};
|
|
386
384
|
/**
|
|
387
385
|
* Resolve a CSS variable token to its hex value
|
|
@@ -440,7 +438,7 @@ export function getPortBorderColor(dataType) {
|
|
|
440
438
|
export function rgbToHex(r, g, b) {
|
|
441
439
|
const toHex = (value) => {
|
|
442
440
|
const clamped = Math.max(0, Math.min(255, Math.round(value)));
|
|
443
|
-
return clamped.toString(16).padStart(2,
|
|
441
|
+
return clamped.toString(16).padStart(2, '0');
|
|
444
442
|
};
|
|
445
443
|
return `#${toHex(r)}${toHex(g)}${toHex(b)}`;
|
|
446
444
|
}
|
|
@@ -453,7 +451,7 @@ export function rgbToHex(r, g, b) {
|
|
|
453
451
|
export function getLightTint(hex) {
|
|
454
452
|
const rgb = hexToRgb(hex);
|
|
455
453
|
if (!rgb) {
|
|
456
|
-
return
|
|
454
|
+
return '#fffbeb'; // Fallback to amber-50
|
|
457
455
|
}
|
|
458
456
|
// Mix with white at 95% to create a very light tint
|
|
459
457
|
const mixRatio = 0.95;
|
|
@@ -472,7 +470,7 @@ export function getLightTint(hex) {
|
|
|
472
470
|
export function getDarkTint(hex, opacity = 0.15) {
|
|
473
471
|
const rgb = hexToRgb(hex);
|
|
474
472
|
if (!rgb) {
|
|
475
|
-
return
|
|
473
|
+
return '#2a2518'; // Fallback dark amber tint
|
|
476
474
|
}
|
|
477
475
|
// Mix with dark background (#1a1a1e) to create a subtle dark tint
|
|
478
476
|
const darkBg = { r: 26, g: 26, b: 30 };
|
|
@@ -490,7 +488,7 @@ export function getDarkTint(hex, opacity = 0.15) {
|
|
|
490
488
|
export function getBorderTint(hex) {
|
|
491
489
|
const rgb = hexToRgb(hex);
|
|
492
490
|
if (!rgb) {
|
|
493
|
-
return
|
|
491
|
+
return '#fcd34d'; // Fallback to amber-300
|
|
494
492
|
}
|
|
495
493
|
// Mix with white at 60% to create a medium-light tint
|
|
496
494
|
const mixRatio = 0.6;
|
|
@@ -508,7 +506,7 @@ export function getBorderTint(hex) {
|
|
|
508
506
|
export function getDarkBorderTint(hex) {
|
|
509
507
|
const rgb = hexToRgb(hex);
|
|
510
508
|
if (!rgb) {
|
|
511
|
-
return
|
|
509
|
+
return '#5c4a1e'; // Fallback dark amber border
|
|
512
510
|
}
|
|
513
511
|
// Mix with dark background to create a muted but visible border
|
|
514
512
|
const darkBg = { r: 26, g: 26, b: 30 };
|
|
@@ -530,7 +528,7 @@ export function getColorVariants(baseColor) {
|
|
|
530
528
|
light: getLightTint(baseColor),
|
|
531
529
|
border: getBorderTint(baseColor),
|
|
532
530
|
darkLight: getDarkTint(baseColor),
|
|
533
|
-
darkBorder: getDarkBorderTint(baseColor)
|
|
531
|
+
darkBorder: getDarkBorderTint(baseColor)
|
|
534
532
|
};
|
|
535
533
|
}
|
|
536
534
|
/**
|
|
@@ -545,6 +543,6 @@ export function getThemeAwareColorVariants(baseColor, isDarkMode) {
|
|
|
545
543
|
return {
|
|
546
544
|
base: variants.base,
|
|
547
545
|
background: isDarkMode ? variants.darkLight : variants.light,
|
|
548
|
-
border: isDarkMode ? variants.darkBorder : variants.border
|
|
546
|
+
border: isDarkMode ? variants.darkBorder : variants.border
|
|
549
547
|
};
|
|
550
548
|
}
|
package/dist/utils/config.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Configuration utilities for FlowDrop Editor
|
|
3
3
|
*/
|
|
4
|
-
import type { WorkflowEditorConfig, EditorFeatures, UIConfig, APIConfig, ExecutionConfig, StorageConfig } from
|
|
5
|
-
import type { EndpointConfig } from
|
|
4
|
+
import type { WorkflowEditorConfig, EditorFeatures, UIConfig, APIConfig, ExecutionConfig, StorageConfig } from '../types/config.js';
|
|
5
|
+
import type { EndpointConfig } from '../config/endpoints.js';
|
|
6
6
|
/**
|
|
7
7
|
* Create default editor features configuration
|
|
8
8
|
*/
|
package/dist/utils/config.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Configuration utilities for FlowDrop Editor
|
|
3
3
|
*/
|
|
4
|
-
import { createEndpointConfig } from
|
|
4
|
+
import { createEndpointConfig } from '../config/endpoints.js';
|
|
5
5
|
/**
|
|
6
6
|
* Create default editor features configuration
|
|
7
7
|
*/
|
|
@@ -18,7 +18,7 @@ export function createDefaultFeatures() {
|
|
|
18
18
|
nodeValidation: true,
|
|
19
19
|
collaboration: false,
|
|
20
20
|
templates: false,
|
|
21
|
-
importExport: false
|
|
21
|
+
importExport: false
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
24
|
/**
|
|
@@ -37,16 +37,16 @@ export function createDefaultUIConfig() {
|
|
|
37
37
|
zoom: {
|
|
38
38
|
min: 0.1,
|
|
39
39
|
max: 2,
|
|
40
|
-
default: 1
|
|
40
|
+
default: 1
|
|
41
41
|
},
|
|
42
42
|
colors: {
|
|
43
|
-
primary:
|
|
44
|
-
secondary:
|
|
45
|
-
accent:
|
|
46
|
-
background:
|
|
47
|
-
text:
|
|
43
|
+
primary: '#3b82f6',
|
|
44
|
+
secondary: '#64748b',
|
|
45
|
+
accent: '#f59e0b',
|
|
46
|
+
background: '#ffffff',
|
|
47
|
+
text: '#1f2937'
|
|
48
48
|
},
|
|
49
|
-
cssClasses: {}
|
|
49
|
+
cssClasses: {}
|
|
50
50
|
};
|
|
51
51
|
}
|
|
52
52
|
/**
|
|
@@ -54,19 +54,19 @@ export function createDefaultUIConfig() {
|
|
|
54
54
|
*/
|
|
55
55
|
export function createDefaultAPIConfig() {
|
|
56
56
|
return {
|
|
57
|
-
endpoints: createEndpointConfig(
|
|
57
|
+
endpoints: createEndpointConfig('/api/flowdrop'),
|
|
58
58
|
timeout: 30000,
|
|
59
59
|
retry: {
|
|
60
60
|
enabled: true,
|
|
61
61
|
maxAttempts: 3,
|
|
62
|
-
delay: 1000
|
|
62
|
+
delay: 1000
|
|
63
63
|
},
|
|
64
64
|
auth: {
|
|
65
|
-
type:
|
|
65
|
+
type: 'none'
|
|
66
66
|
},
|
|
67
67
|
headers: {
|
|
68
|
-
|
|
69
|
-
}
|
|
68
|
+
'Content-Type': 'application/json'
|
|
69
|
+
}
|
|
70
70
|
};
|
|
71
71
|
}
|
|
72
72
|
/**
|
|
@@ -81,8 +81,8 @@ export function createDefaultExecutionConfig() {
|
|
|
81
81
|
autoSaveState: true,
|
|
82
82
|
caching: {
|
|
83
83
|
enabled: true,
|
|
84
|
-
ttl: 3600
|
|
85
|
-
}
|
|
84
|
+
ttl: 3600
|
|
85
|
+
}
|
|
86
86
|
};
|
|
87
87
|
}
|
|
88
88
|
/**
|
|
@@ -90,10 +90,10 @@ export function createDefaultExecutionConfig() {
|
|
|
90
90
|
*/
|
|
91
91
|
export function createDefaultStorageConfig() {
|
|
92
92
|
return {
|
|
93
|
-
type:
|
|
93
|
+
type: 'api',
|
|
94
94
|
autoSaveInterval: 5000,
|
|
95
95
|
maxUndoSteps: 50,
|
|
96
|
-
keyPrefix:
|
|
96
|
+
keyPrefix: 'flowdrop_'
|
|
97
97
|
};
|
|
98
98
|
}
|
|
99
99
|
/**
|
|
@@ -101,20 +101,20 @@ export function createDefaultStorageConfig() {
|
|
|
101
101
|
*/
|
|
102
102
|
export function createDefaultConfig(endpointConfig) {
|
|
103
103
|
return {
|
|
104
|
-
theme:
|
|
104
|
+
theme: 'auto',
|
|
105
105
|
features: createDefaultFeatures(),
|
|
106
106
|
ui: createDefaultUIConfig(),
|
|
107
107
|
api: {
|
|
108
108
|
...createDefaultAPIConfig(),
|
|
109
|
-
endpoints: endpointConfig || createEndpointConfig(
|
|
109
|
+
endpoints: endpointConfig || createEndpointConfig('/api/flowdrop')
|
|
110
110
|
},
|
|
111
111
|
ports: {
|
|
112
112
|
dataTypes: [],
|
|
113
113
|
compatibilityRules: [],
|
|
114
|
-
defaultDataType:
|
|
114
|
+
defaultDataType: 'mixed'
|
|
115
115
|
},
|
|
116
116
|
execution: createDefaultExecutionConfig(),
|
|
117
|
-
storage: createDefaultStorageConfig()
|
|
117
|
+
storage: createDefaultStorageConfig()
|
|
118
118
|
};
|
|
119
119
|
}
|
|
120
120
|
/**
|
|
@@ -126,56 +126,56 @@ export function mergeConfig(userConfig, defaultConfig) {
|
|
|
126
126
|
...userConfig,
|
|
127
127
|
features: {
|
|
128
128
|
...defaultConfig.features,
|
|
129
|
-
...userConfig.features
|
|
129
|
+
...userConfig.features
|
|
130
130
|
},
|
|
131
131
|
ui: {
|
|
132
132
|
...defaultConfig.ui,
|
|
133
133
|
...userConfig.ui,
|
|
134
134
|
zoom: {
|
|
135
135
|
...defaultConfig.ui.zoom,
|
|
136
|
-
...userConfig.ui?.zoom
|
|
136
|
+
...userConfig.ui?.zoom
|
|
137
137
|
},
|
|
138
138
|
colors: {
|
|
139
139
|
...defaultConfig.ui.colors,
|
|
140
|
-
...userConfig.ui?.colors
|
|
140
|
+
...userConfig.ui?.colors
|
|
141
141
|
},
|
|
142
142
|
cssClasses: {
|
|
143
143
|
...defaultConfig.ui.cssClasses,
|
|
144
|
-
...userConfig.ui?.cssClasses
|
|
145
|
-
}
|
|
144
|
+
...userConfig.ui?.cssClasses
|
|
145
|
+
}
|
|
146
146
|
},
|
|
147
147
|
api: {
|
|
148
148
|
...defaultConfig.api,
|
|
149
149
|
...userConfig.api,
|
|
150
150
|
retry: {
|
|
151
151
|
...defaultConfig.api.retry,
|
|
152
|
-
...userConfig.api?.retry
|
|
152
|
+
...userConfig.api?.retry
|
|
153
153
|
},
|
|
154
154
|
auth: {
|
|
155
155
|
...defaultConfig.api.auth,
|
|
156
|
-
...userConfig.api?.auth
|
|
156
|
+
...userConfig.api?.auth
|
|
157
157
|
},
|
|
158
158
|
headers: {
|
|
159
159
|
...defaultConfig.api.headers,
|
|
160
|
-
...userConfig.api?.headers
|
|
160
|
+
...userConfig.api?.headers
|
|
161
161
|
},
|
|
162
162
|
endpoints: {
|
|
163
163
|
...defaultConfig.api.endpoints,
|
|
164
|
-
...userConfig.api?.endpoints
|
|
165
|
-
}
|
|
164
|
+
...userConfig.api?.endpoints
|
|
165
|
+
}
|
|
166
166
|
},
|
|
167
167
|
execution: {
|
|
168
168
|
...defaultConfig.execution,
|
|
169
169
|
...userConfig.execution,
|
|
170
170
|
caching: {
|
|
171
171
|
...defaultConfig.execution.caching,
|
|
172
|
-
...userConfig.execution?.caching
|
|
173
|
-
}
|
|
172
|
+
...userConfig.execution?.caching
|
|
173
|
+
}
|
|
174
174
|
},
|
|
175
175
|
storage: {
|
|
176
176
|
...defaultConfig.storage,
|
|
177
|
-
...userConfig.storage
|
|
178
|
-
}
|
|
177
|
+
...userConfig.storage
|
|
178
|
+
}
|
|
179
179
|
};
|
|
180
180
|
}
|
|
181
181
|
/**
|
|
@@ -184,43 +184,43 @@ export function mergeConfig(userConfig, defaultConfig) {
|
|
|
184
184
|
export function validateConfig(config) {
|
|
185
185
|
const errors = [];
|
|
186
186
|
if (!config.features) {
|
|
187
|
-
errors.push(
|
|
187
|
+
errors.push('features configuration is required');
|
|
188
188
|
}
|
|
189
189
|
if (!config.ui) {
|
|
190
|
-
errors.push(
|
|
190
|
+
errors.push('ui configuration is required');
|
|
191
191
|
}
|
|
192
192
|
if (!config.api) {
|
|
193
|
-
errors.push(
|
|
193
|
+
errors.push('api configuration is required');
|
|
194
194
|
}
|
|
195
195
|
if (!config.execution) {
|
|
196
|
-
errors.push(
|
|
196
|
+
errors.push('execution configuration is required');
|
|
197
197
|
}
|
|
198
198
|
if (!config.storage) {
|
|
199
|
-
errors.push(
|
|
199
|
+
errors.push('storage configuration is required');
|
|
200
200
|
}
|
|
201
201
|
// Validate API configuration
|
|
202
202
|
if (config.api.timeout <= 0) {
|
|
203
|
-
errors.push(
|
|
203
|
+
errors.push('API timeout must be greater than 0');
|
|
204
204
|
}
|
|
205
205
|
if (config.api.retry.maxAttempts < 0) {
|
|
206
|
-
errors.push(
|
|
206
|
+
errors.push('Retry max attempts must be non-negative');
|
|
207
207
|
}
|
|
208
208
|
// Validate execution configuration
|
|
209
209
|
if (config.execution.timeout <= 0) {
|
|
210
|
-
errors.push(
|
|
210
|
+
errors.push('Execution timeout must be greater than 0');
|
|
211
211
|
}
|
|
212
212
|
if (config.execution.maxConcurrent <= 0) {
|
|
213
|
-
errors.push(
|
|
213
|
+
errors.push('Max concurrent executions must be greater than 0');
|
|
214
214
|
}
|
|
215
215
|
// Validate UI configuration
|
|
216
216
|
if (config.ui.gridSize <= 0) {
|
|
217
|
-
errors.push(
|
|
217
|
+
errors.push('Grid size must be greater than 0');
|
|
218
218
|
}
|
|
219
219
|
if (config.ui.nodeSpacing <= 0) {
|
|
220
|
-
errors.push(
|
|
220
|
+
errors.push('Node spacing must be greater than 0');
|
|
221
221
|
}
|
|
222
222
|
if (config.ui.zoom.min >= config.ui.zoom.max) {
|
|
223
|
-
errors.push(
|
|
223
|
+
errors.push('Zoom min must be less than zoom max');
|
|
224
224
|
}
|
|
225
225
|
return errors;
|
|
226
226
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Connection validation utilities for FlowDrop
|
|
3
3
|
*/
|
|
4
|
-
import type { NodeMetadata, NodePort, NodeDataType, WorkflowNode, WorkflowEdge, PortConfig, PortDataTypeConfig } from
|
|
4
|
+
import type { NodeMetadata, NodePort, NodeDataType, WorkflowNode, WorkflowEdge, PortConfig, PortDataTypeConfig } from '../types/index.js';
|
|
5
5
|
/**
|
|
6
6
|
* Determines if an edge is a loopback edge.
|
|
7
7
|
* Loopback edges target the special `loop_back` input port on ForEach nodes.
|
|
@@ -88,7 +88,7 @@ export declare function getConnectionSuggestions(nodeId: string, nodes: Workflow
|
|
|
88
88
|
nodeName: string;
|
|
89
89
|
portId: string;
|
|
90
90
|
portName: string;
|
|
91
|
-
portType:
|
|
91
|
+
portType: 'input' | 'output';
|
|
92
92
|
dataType: NodeDataType;
|
|
93
93
|
compatible: boolean;
|
|
94
94
|
}>;
|