@flowdrop/flowdrop 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +50 -50
- package/dist/adapters/WorkflowAdapter.d.ts +1 -1
- package/dist/adapters/WorkflowAdapter.js +25 -25
- package/dist/adapters/agentspec/AgentSpecAdapter.d.ts +2 -2
- package/dist/adapters/agentspec/AgentSpecAdapter.js +133 -122
- package/dist/adapters/agentspec/agentAdapter.d.ts +2 -2
- package/dist/adapters/agentspec/agentAdapter.js +10 -10
- package/dist/adapters/agentspec/autoLayout.d.ts +1 -1
- package/dist/adapters/agentspec/autoLayout.js +2 -2
- package/dist/adapters/agentspec/componentTypeDefaults.d.ts +1 -1
- package/dist/adapters/agentspec/componentTypeDefaults.js +120 -120
- package/dist/adapters/agentspec/defaultNodeTypes.d.ts +2 -2
- package/dist/adapters/agentspec/defaultNodeTypes.js +307 -307
- package/dist/adapters/agentspec/index.d.ts +10 -10
- package/dist/adapters/agentspec/index.js +6 -6
- package/dist/adapters/agentspec/validator.d.ts +2 -2
- package/dist/adapters/agentspec/validator.js +22 -20
- package/dist/api/enhanced-client.d.ts +3 -3
- package/dist/api/enhanced-client.js +73 -72
- package/dist/components/App.svelte +1081 -961
- package/dist/components/App.svelte.d.ts +9 -6
- package/dist/components/CanvasBanner.stories.svelte +23 -20
- package/dist/components/CanvasBanner.stories.svelte.d.ts +1 -1
- package/dist/components/CanvasBanner.svelte +46 -46
- package/dist/components/ConfigForm.svelte +1164 -1065
- package/dist/components/ConfigForm.svelte.d.ts +2 -2
- package/dist/components/ConfigModal.svelte +180 -180
- package/dist/components/ConfigModal.svelte.d.ts +1 -1
- package/dist/components/ConfigPanel.stories.svelte +35 -35
- package/dist/components/ConfigPanel.stories.svelte.d.ts +1 -1
- package/dist/components/ConfigPanel.svelte +178 -167
- package/dist/components/ConfigPanel.svelte.d.ts +1 -1
- package/dist/components/ConnectionLine.svelte +25 -25
- package/dist/components/EdgeRefresher.svelte +26 -26
- package/dist/components/FlowDropEdge.stories.svelte +179 -143
- package/dist/components/FlowDropEdge.svelte +147 -147
- package/dist/components/FlowDropEdge.svelte.d.ts +1 -1
- package/dist/components/FlowDropZone.svelte +63 -60
- package/dist/components/FlowDropZone.svelte.d.ts +1 -1
- package/dist/components/LoadingSpinner.stories.svelte +19 -19
- package/dist/components/LoadingSpinner.stories.svelte.d.ts +1 -1
- package/dist/components/LoadingSpinner.svelte +21 -21
- package/dist/components/LoadingSpinner.svelte.d.ts +1 -1
- package/dist/components/Logo.stories.svelte +13 -13
- package/dist/components/Logo.stories.svelte.d.ts +1 -1
- package/dist/components/Logo.svelte +101 -95
- package/dist/components/LogsSidebar.svelte +553 -546
- package/dist/components/LogsSidebar.svelte.d.ts +1 -1
- package/dist/components/MarkdownDisplay.stories.svelte +29 -23
- package/dist/components/MarkdownDisplay.stories.svelte.d.ts +1 -1
- package/dist/components/MarkdownDisplay.svelte +16 -14
- package/dist/components/Navbar.stories.svelte +43 -38
- package/dist/components/Navbar.stories.svelte.d.ts +1 -1
- package/dist/components/Navbar.svelte +760 -706
- package/dist/components/Navbar.svelte.d.ts +1 -1
- package/dist/components/NodeSidebar.svelte +900 -746
- package/dist/components/NodeSidebar.svelte.d.ts +3 -1
- package/dist/components/NodeStatusOverlay.stories.svelte +82 -70
- package/dist/components/NodeStatusOverlay.stories.svelte.d.ts +1 -1
- package/dist/components/NodeStatusOverlay.svelte +295 -280
- package/dist/components/NodeStatusOverlay.svelte.d.ts +3 -3
- package/dist/components/PipelineStatus.svelte +326 -300
- package/dist/components/PipelineStatus.svelte.d.ts +4 -4
- package/dist/components/PortCoordinateTracker.svelte +49 -47
- package/dist/components/PortCoordinateTracker.svelte.d.ts +1 -1
- package/dist/components/ReadOnlyDetails.svelte +156 -156
- package/dist/components/SchemaForm.stories.svelte +106 -98
- package/dist/components/SchemaForm.stories.svelte.d.ts +1 -1
- package/dist/components/SchemaForm.svelte +490 -463
- package/dist/components/SchemaForm.svelte.d.ts +2 -2
- package/dist/components/SettingsModal.svelte +226 -223
- package/dist/components/SettingsModal.svelte.d.ts +1 -1
- package/dist/components/SettingsPanel.svelte +637 -601
- package/dist/components/SettingsPanel.svelte.d.ts +1 -1
- package/dist/components/StatusIcon.stories.svelte +62 -49
- package/dist/components/StatusIcon.stories.svelte.d.ts +1 -1
- package/dist/components/StatusIcon.svelte +87 -87
- package/dist/components/StatusIcon.svelte.d.ts +2 -2
- package/dist/components/StatusLabel.stories.svelte +12 -12
- package/dist/components/StatusLabel.stories.svelte.d.ts +1 -1
- package/dist/components/StatusLabel.svelte +19 -19
- package/dist/components/ThemeToggle.stories.svelte +16 -16
- package/dist/components/ThemeToggle.stories.svelte.d.ts +1 -1
- package/dist/components/ThemeToggle.svelte +180 -169
- package/dist/components/ThemeToggle.svelte.d.ts +1 -1
- package/dist/components/UniversalNode.svelte +150 -138
- package/dist/components/UniversalNode.svelte.d.ts +3 -3
- package/dist/components/WorkflowEditor.svelte +1069 -1014
- package/dist/components/WorkflowEditor.svelte.d.ts +4 -4
- package/dist/components/form/FormArray.svelte +1034 -973
- package/dist/components/form/FormArray.svelte.d.ts +1 -1
- package/dist/components/form/FormAutocomplete.svelte +1021 -978
- package/dist/components/form/FormAutocomplete.svelte.d.ts +1 -1
- package/dist/components/form/FormCheckboxGroup.stories.svelte +23 -20
- package/dist/components/form/FormCheckboxGroup.stories.svelte.d.ts +1 -1
- package/dist/components/form/FormCheckboxGroup.svelte +136 -136
- package/dist/components/form/FormCodeEditor.svelte +452 -434
- package/dist/components/form/FormField.svelte +366 -355
- package/dist/components/form/FormField.svelte.d.ts +2 -2
- package/dist/components/form/FormFieldLight.svelte +400 -384
- package/dist/components/form/FormFieldLight.svelte.d.ts +1 -1
- package/dist/components/form/FormFieldWrapper.stories.svelte +42 -42
- package/dist/components/form/FormFieldWrapper.stories.svelte.d.ts +1 -1
- package/dist/components/form/FormFieldWrapper.svelte +100 -93
- package/dist/components/form/FormFieldWrapper.svelte.d.ts +1 -1
- package/dist/components/form/FormFieldset.svelte +108 -108
- package/dist/components/form/FormFieldset.svelte.d.ts +2 -2
- package/dist/components/form/FormMarkdownEditor.svelte +758 -725
- package/dist/components/form/FormNumberField.stories.svelte +25 -25
- package/dist/components/form/FormNumberField.stories.svelte.d.ts +1 -1
- package/dist/components/form/FormNumberField.svelte +88 -88
- package/dist/components/form/FormRangeField.stories.svelte +20 -20
- package/dist/components/form/FormRangeField.stories.svelte.d.ts +1 -1
- package/dist/components/form/FormRangeField.svelte +234 -226
- package/dist/components/form/FormSelect.stories.svelte +38 -38
- package/dist/components/form/FormSelect.stories.svelte.d.ts +1 -1
- package/dist/components/form/FormSelect.svelte +101 -101
- package/dist/components/form/FormSelect.svelte.d.ts +1 -1
- package/dist/components/form/FormTemplateEditor.svelte +847 -798
- package/dist/components/form/FormTemplateEditor.svelte.d.ts +1 -1
- package/dist/components/form/FormTextField.stories.svelte +29 -23
- package/dist/components/form/FormTextField.stories.svelte.d.ts +1 -1
- package/dist/components/form/FormTextField.svelte +68 -68
- package/dist/components/form/FormTextarea.stories.svelte +28 -25
- package/dist/components/form/FormTextarea.stories.svelte.d.ts +1 -1
- package/dist/components/form/FormTextarea.svelte +74 -74
- package/dist/components/form/FormToggle.stories.svelte +23 -20
- package/dist/components/form/FormToggle.stories.svelte.d.ts +1 -1
- package/dist/components/form/FormToggle.svelte +98 -98
- package/dist/components/form/FormUISchemaRenderer.svelte +120 -113
- package/dist/components/form/FormUISchemaRenderer.svelte.d.ts +3 -3
- package/dist/components/form/index.d.ts +19 -19
- package/dist/components/form/index.js +18 -18
- package/dist/components/form/templateAutocomplete.d.ts +2 -2
- package/dist/components/form/templateAutocomplete.js +64 -55
- package/dist/components/form/types.d.ts +6 -6
- package/dist/components/form/types.js +9 -4
- package/dist/components/icons/AlertCircleIcon.svelte +11 -0
- package/dist/components/icons/AlertCircleIcon.svelte.d.ts +26 -0
- package/dist/components/icons/CogIcon.svelte +11 -0
- package/dist/components/icons/CogIcon.svelte.d.ts +26 -0
- package/dist/components/interrupt/ChoicePrompt.stories.svelte +54 -38
- package/dist/components/interrupt/ChoicePrompt.stories.svelte.d.ts +1 -1
- package/dist/components/interrupt/ChoicePrompt.svelte +407 -383
- package/dist/components/interrupt/ChoicePrompt.svelte.d.ts +1 -1
- package/dist/components/interrupt/ConfirmationPrompt.stories.svelte +48 -48
- package/dist/components/interrupt/ConfirmationPrompt.stories.svelte.d.ts +1 -1
- package/dist/components/interrupt/ConfirmationPrompt.svelte +280 -274
- package/dist/components/interrupt/ConfirmationPrompt.svelte.d.ts +1 -1
- package/dist/components/interrupt/FormPrompt.svelte +223 -218
- package/dist/components/interrupt/FormPrompt.svelte.d.ts +1 -1
- package/dist/components/interrupt/InterruptBubble.svelte +617 -583
- package/dist/components/interrupt/InterruptBubble.svelte.d.ts +2 -2
- package/dist/components/interrupt/ReviewPrompt.stories.svelte +66 -56
- package/dist/components/interrupt/ReviewPrompt.stories.svelte.d.ts +1 -1
- package/dist/components/interrupt/ReviewPrompt.svelte +861 -841
- package/dist/components/interrupt/ReviewPrompt.svelte.d.ts +1 -1
- package/dist/components/interrupt/TextInputPrompt.stories.svelte +38 -33
- package/dist/components/interrupt/TextInputPrompt.stories.svelte.d.ts +1 -1
- package/dist/components/interrupt/TextInputPrompt.svelte +333 -328
- package/dist/components/interrupt/TextInputPrompt.svelte.d.ts +1 -1
- package/dist/components/interrupt/index.d.ts +5 -5
- package/dist/components/interrupt/index.js +5 -5
- package/dist/components/layouts/MainLayout.svelte +724 -691
- package/dist/components/layouts/MainLayout.svelte.d.ts +6 -6
- package/dist/components/nodes/GatewayNode.stories.svelte +100 -99
- package/dist/components/nodes/GatewayNode.svelte +605 -571
- package/dist/components/nodes/GatewayNode.svelte.d.ts +3 -3
- package/dist/components/nodes/IdeaNode.stories.svelte +44 -43
- package/dist/components/nodes/IdeaNode.svelte +451 -437
- package/dist/components/nodes/IdeaNode.svelte.d.ts +1 -1
- package/dist/components/nodes/NotesNode.stories.svelte +65 -64
- package/dist/components/nodes/NotesNode.svelte +380 -369
- package/dist/components/nodes/NotesNode.svelte.d.ts +1 -1
- package/dist/components/nodes/SimpleNode.stories.svelte +145 -144
- package/dist/components/nodes/SimpleNode.svelte +486 -424
- package/dist/components/nodes/SimpleNode.svelte.d.ts +1 -1
- package/dist/components/nodes/SquareNode.stories.svelte +73 -73
- package/dist/components/nodes/SquareNode.svelte +439 -380
- package/dist/components/nodes/SquareNode.svelte.d.ts +1 -1
- package/dist/components/nodes/TerminalNode.stories.svelte +13 -13
- package/dist/components/nodes/TerminalNode.svelte +709 -670
- package/dist/components/nodes/TerminalNode.svelte.d.ts +1 -1
- package/dist/components/nodes/ToolNode.stories.svelte +181 -180
- package/dist/components/nodes/ToolNode.svelte +505 -447
- package/dist/components/nodes/ToolNode.svelte.d.ts +1 -1
- package/dist/components/nodes/WorkflowNode.stories.svelte +70 -46
- package/dist/components/nodes/WorkflowNode.svelte +621 -551
- package/dist/components/nodes/WorkflowNode.svelte.d.ts +3 -3
- package/dist/components/playground/ChatPanel.svelte +945 -889
- package/dist/components/playground/ExecutionLogs.svelte +495 -472
- package/dist/components/playground/InputCollector.svelte +449 -428
- package/dist/components/playground/MessageBubble.stories.svelte +47 -47
- package/dist/components/playground/MessageBubble.stories.svelte.d.ts +1 -1
- package/dist/components/playground/MessageBubble.svelte +626 -610
- package/dist/components/playground/MessageBubble.svelte.d.ts +1 -1
- package/dist/components/playground/Playground.svelte +1088 -1057
- package/dist/components/playground/Playground.svelte.d.ts +3 -3
- package/dist/components/playground/PlaygroundModal.svelte +208 -204
- package/dist/components/playground/PlaygroundModal.svelte.d.ts +3 -3
- package/dist/components/playground/SessionManager.svelte +527 -521
- package/dist/components/playground/SessionManager.svelte.d.ts +1 -1
- package/dist/config/agentSpecEndpoints.d.ts +1 -1
- package/dist/config/agentSpecEndpoints.js +20 -20
- package/dist/config/constants.js +2 -2
- package/dist/config/defaultCategories.d.ts +1 -1
- package/dist/config/defaultCategories.js +86 -86
- package/dist/config/defaultPortConfig.d.ts +1 -1
- package/dist/config/defaultPortConfig.js +144 -144
- package/dist/config/endpoints.d.ts +4 -4
- package/dist/config/endpoints.js +65 -65
- package/dist/config/runtimeConfig.d.ts +2 -2
- package/dist/config/runtimeConfig.js +8 -8
- package/dist/core/index.d.ts +63 -59
- package/dist/core/index.js +35 -33
- package/dist/display/index.d.ts +2 -2
- package/dist/display/index.js +2 -2
- package/dist/editor/index.d.ts +62 -62
- package/dist/editor/index.js +53 -53
- package/dist/form/code.d.ts +5 -5
- package/dist/form/code.js +14 -14
- package/dist/form/fieldRegistry.d.ts +3 -3
- package/dist/form/fieldRegistry.js +11 -9
- package/dist/form/full.d.ts +8 -8
- package/dist/form/full.js +9 -9
- package/dist/form/index.d.ts +18 -18
- package/dist/form/index.js +16 -16
- package/dist/form/markdown.d.ts +4 -4
- package/dist/form/markdown.js +8 -8
- package/dist/helpers/proximityConnect.d.ts +3 -3
- package/dist/helpers/proximityConnect.js +34 -32
- package/dist/helpers/workflowEditorHelper.d.ts +5 -5
- package/dist/helpers/workflowEditorHelper.js +108 -96
- package/dist/index.d.ts +6 -6
- package/dist/index.js +6 -6
- package/dist/mocks/app-environment.js +2 -2
- package/dist/mocks/app-forms.js +9 -9
- package/dist/mocks/app-navigation.js +11 -11
- package/dist/mocks/app-stores.js +8 -8
- package/dist/playground/index.d.ts +19 -19
- package/dist/playground/index.js +16 -16
- package/dist/playground/mount.d.ts +3 -3
- package/dist/playground/mount.js +24 -24
- package/dist/registry/builtinFormats.js +13 -13
- package/dist/registry/builtinNodes.d.ts +2 -2
- package/dist/registry/builtinNodes.js +77 -77
- package/dist/registry/index.d.ts +4 -4
- package/dist/registry/index.js +4 -4
- package/dist/registry/nodeComponentRegistry.d.ts +8 -8
- package/dist/registry/nodeComponentRegistry.js +11 -9
- package/dist/registry/plugin.d.ts +2 -2
- package/dist/registry/plugin.js +11 -11
- package/dist/registry/workflowFormatRegistry.d.ts +3 -3
- package/dist/registry/workflowFormatRegistry.js +2 -2
- package/dist/schema/index.d.ts +1 -1
- package/dist/schema/index.js +2 -2
- package/dist/schemas/v1/workflow.schema.json +22 -107
- package/dist/services/agentSpecExecutionService.d.ts +3 -3
- package/dist/services/agentSpecExecutionService.js +59 -55
- package/dist/services/api.d.ts +2 -2
- package/dist/services/api.js +37 -37
- package/dist/services/apiVariableService.d.ts +1 -1
- package/dist/services/apiVariableService.js +41 -34
- package/dist/services/autoSaveService.js +8 -8
- package/dist/services/categoriesApi.d.ts +2 -2
- package/dist/services/categoriesApi.js +8 -8
- package/dist/services/draftStorage.d.ts +1 -1
- package/dist/services/draftStorage.js +11 -11
- package/dist/services/dynamicSchemaService.d.ts +1 -1
- package/dist/services/dynamicSchemaService.js +41 -39
- package/dist/services/globalSave.d.ts +2 -2
- package/dist/services/globalSave.js +41 -38
- package/dist/services/historyService.d.ts +1 -1
- package/dist/services/historyService.js +8 -8
- package/dist/services/interruptService.d.ts +1 -1
- package/dist/services/interruptService.js +35 -29
- package/dist/services/nodeExecutionService.d.ts +1 -1
- package/dist/services/nodeExecutionService.js +45 -44
- package/dist/services/playgroundService.d.ts +1 -1
- package/dist/services/playgroundService.js +29 -29
- package/dist/services/portConfigApi.d.ts +2 -2
- package/dist/services/portConfigApi.js +8 -8
- package/dist/services/settingsService.d.ts +2 -2
- package/dist/services/settingsService.js +25 -19
- package/dist/services/toastService.d.ts +4 -4
- package/dist/services/toastService.js +33 -33
- package/dist/services/variableService.d.ts +1 -1
- package/dist/services/variableService.js +36 -36
- package/dist/services/workflowStorage.d.ts +2 -2
- package/dist/services/workflowStorage.js +13 -13
- package/dist/settings/index.d.ts +7 -7
- package/dist/settings/index.js +6 -6
- package/dist/skins/default.d.ts +2 -0
- package/dist/skins/default.js +1 -0
- package/dist/skins/index.d.ts +13 -0
- package/dist/skins/index.js +30 -0
- package/dist/skins/slate.d.ts +2 -0
- package/dist/skins/slate.js +78 -0
- package/dist/stores/categoriesStore.svelte.d.ts +1 -1
- package/dist/stores/categoriesStore.svelte.js +5 -5
- package/dist/stores/editorStateMachine.svelte.d.ts +2 -2
- package/dist/stores/editorStateMachine.svelte.js +65 -33
- package/dist/stores/historyStore.svelte.d.ts +4 -4
- package/dist/stores/historyStore.svelte.js +4 -4
- package/dist/stores/interruptStore.svelte.d.ts +3 -3
- package/dist/stores/interruptStore.svelte.js +21 -21
- package/dist/stores/playgroundStore.svelte.d.ts +2 -2
- package/dist/stores/playgroundStore.svelte.js +25 -18
- package/dist/stores/portCoordinateStore.svelte.d.ts +2 -2
- package/dist/stores/portCoordinateStore.svelte.js +15 -8
- package/dist/stores/settingsStore.svelte.d.ts +2 -2
- package/dist/stores/settingsStore.svelte.js +62 -57
- package/dist/stores/workflowStore.svelte.d.ts +3 -3
- package/dist/stores/workflowStore.svelte.js +50 -47
- package/dist/stories/CanvasDecorator.svelte +35 -32
- package/dist/stories/CanvasDecorator.svelte.d.ts +2 -2
- package/dist/stories/EdgeDecorator.svelte +102 -99
- package/dist/stories/EdgeDecorator.svelte.d.ts +1 -1
- package/dist/stories/NodeDecorator.svelte +59 -53
- package/dist/stories/NodeDecorator.svelte.d.ts +1 -1
- package/dist/stories/utils.d.ts +2 -2
- package/dist/stories/utils.js +105 -67
- package/dist/styles/base.css +599 -595
- package/dist/styles/toast.css +14 -14
- package/dist/styles/tokens.css +409 -378
- package/dist/svelte-app.d.ts +9 -9
- package/dist/svelte-app.js +39 -39
- package/dist/themes/default.d.ts +2 -0
- package/dist/themes/default.js +9 -0
- package/dist/themes/index.d.ts +13 -0
- package/dist/themes/index.js +44 -0
- package/dist/themes/minimal.d.ts +2 -0
- package/dist/themes/minimal.js +11 -0
- package/dist/types/agentspec.d.ts +18 -18
- package/dist/types/agentspec.js +2 -2
- package/dist/types/auth.d.ts +1 -1
- package/dist/types/auth.js +6 -6
- package/dist/types/config.d.ts +6 -6
- package/dist/types/events.d.ts +2 -2
- package/dist/types/events.js +2 -2
- package/dist/types/index.d.ts +32 -32
- package/dist/types/index.js +6 -6
- package/dist/types/interrupt.d.ts +6 -6
- package/dist/types/interrupt.js +21 -21
- package/dist/types/interruptState.d.ts +12 -12
- package/dist/types/interruptState.js +66 -66
- package/dist/types/playground.d.ts +7 -7
- package/dist/types/playground.js +14 -14
- package/dist/types/settings.d.ts +5 -3
- package/dist/types/settings.js +25 -18
- package/dist/types/skin.d.ts +31 -0
- package/dist/types/skin.js +1 -0
- package/dist/types/theme.d.ts +35 -0
- package/dist/types/theme.js +1 -0
- package/dist/types/uischema.d.ts +4 -4
- package/dist/types/uischema.js +3 -3
- package/dist/utils/colors.d.ts +1 -1
- package/dist/utils/colors.js +97 -95
- package/dist/utils/config.d.ts +2 -2
- package/dist/utils/config.js +48 -48
- package/dist/utils/connections.d.ts +2 -2
- package/dist/utils/connections.js +15 -15
- package/dist/utils/errors.js +3 -3
- package/dist/utils/fetchWithAuth.d.ts +1 -1
- package/dist/utils/fetchWithAuth.js +2 -2
- package/dist/utils/handleIds.d.ts +2 -2
- package/dist/utils/handleIds.js +8 -8
- package/dist/utils/handlePositioning.d.ts +1 -1
- package/dist/utils/handlePositioning.js +2 -2
- package/dist/utils/icons.d.ts +1 -1
- package/dist/utils/icons.js +74 -74
- package/dist/utils/logger.d.ts +1 -1
- package/dist/utils/logger.js +7 -7
- package/dist/utils/nodeStatus.d.ts +1 -1
- package/dist/utils/nodeStatus.js +48 -48
- package/dist/utils/nodeTypes.d.ts +1 -1
- package/dist/utils/nodeTypes.js +21 -20
- package/dist/utils/nodeWrapper.d.ts +7 -7
- package/dist/utils/nodeWrapper.js +21 -19
- package/dist/utils/performanceUtils.d.ts +1 -1
- package/dist/utils/performanceUtils.js +2 -1
- package/dist/utils/sanitize.js +1 -1
- package/dist/utils/uischema.d.ts +2 -2
- package/dist/utils/uischema.js +8 -8
- package/dist/utils/validation.js +20 -8
- package/package.json +1 -1
package/dist/types/uischema.js
CHANGED
|
@@ -35,17 +35,17 @@
|
|
|
35
35
|
* Type guard: checks if element is a Control
|
|
36
36
|
*/
|
|
37
37
|
export function isUISchemaControl(element) {
|
|
38
|
-
return element.type ===
|
|
38
|
+
return element.type === "Control";
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
41
41
|
* Type guard: checks if element is a VerticalLayout
|
|
42
42
|
*/
|
|
43
43
|
export function isUISchemaVerticalLayout(element) {
|
|
44
|
-
return element.type ===
|
|
44
|
+
return element.type === "VerticalLayout";
|
|
45
45
|
}
|
|
46
46
|
/**
|
|
47
47
|
* Type guard: checks if element is a Group
|
|
48
48
|
*/
|
|
49
49
|
export function isUISchemaGroup(element) {
|
|
50
|
-
return element.type ===
|
|
50
|
+
return element.type === "Group";
|
|
51
51
|
}
|
package/dist/utils/colors.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Ensures consistent category colors across sidebar and canvas
|
|
4
4
|
* Uses BEM syntax for CSS classes
|
|
5
5
|
*/
|
|
6
|
-
import type { NodeCategory, PortDataTypeConfig } from
|
|
6
|
+
import type { NodeCategory, PortDataTypeConfig } from "../types/index.js";
|
|
7
7
|
/**
|
|
8
8
|
* Category color mapping to design tokens (CSS variables)
|
|
9
9
|
* Uses --fd-node-* tokens from tokens.css
|
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 DEFAULT_DATA_TYPE_COLORS[dataType.toLowerCase()] ||
|
|
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,7 +336,9 @@ 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
|
|
339
|
+
return srgb <= 0.03928
|
|
340
|
+
? srgb / 12.92
|
|
341
|
+
: Math.pow((srgb + 0.055) / 1.055, 2.4);
|
|
340
342
|
};
|
|
341
343
|
return 0.2126 * toLinear(r) + 0.7152 * toLinear(g) + 0.0722 * toLinear(b);
|
|
342
344
|
}
|
|
@@ -361,25 +363,25 @@ export function isLightColor(hex) {
|
|
|
361
363
|
* @returns CSS color value for text that provides good contrast
|
|
362
364
|
*/
|
|
363
365
|
export function getContrastTextColor(backgroundColor) {
|
|
364
|
-
return isLightColor(backgroundColor) ?
|
|
366
|
+
return isLightColor(backgroundColor) ? "#18181b" : "#ffffff";
|
|
365
367
|
}
|
|
366
368
|
/**
|
|
367
369
|
* Mapping of CSS variable tokens to their resolved hex values
|
|
368
370
|
* Used for contrast calculations when working with design tokens
|
|
369
371
|
*/
|
|
370
372
|
const TOKEN_TO_HEX = {
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
373
|
+
"var(--fd-node-cyan)": "#06b6d4",
|
|
374
|
+
"var(--fd-node-emerald)": "#10b981",
|
|
375
|
+
"var(--fd-node-blue)": "#3b82f6",
|
|
376
|
+
"var(--fd-node-amber)": "#f59e0b",
|
|
377
|
+
"var(--fd-node-indigo)": "#6366f1",
|
|
378
|
+
"var(--fd-node-teal)": "#14b8a6",
|
|
379
|
+
"var(--fd-node-purple)": "#8b5cf6",
|
|
380
|
+
"var(--fd-node-orange)": "#f97316",
|
|
381
|
+
"var(--fd-node-slate)": "#64748b",
|
|
382
|
+
"var(--fd-node-red)": "#ef4444",
|
|
383
|
+
"var(--fd-node-pink)": "#ec4899",
|
|
384
|
+
"var(--fd-node-lime)": "#84cc16",
|
|
383
385
|
};
|
|
384
386
|
/**
|
|
385
387
|
* Resolve a CSS variable token to its hex value
|
|
@@ -438,7 +440,7 @@ export function getPortBorderColor(dataType) {
|
|
|
438
440
|
export function rgbToHex(r, g, b) {
|
|
439
441
|
const toHex = (value) => {
|
|
440
442
|
const clamped = Math.max(0, Math.min(255, Math.round(value)));
|
|
441
|
-
return clamped.toString(16).padStart(2,
|
|
443
|
+
return clamped.toString(16).padStart(2, "0");
|
|
442
444
|
};
|
|
443
445
|
return `#${toHex(r)}${toHex(g)}${toHex(b)}`;
|
|
444
446
|
}
|
|
@@ -451,7 +453,7 @@ export function rgbToHex(r, g, b) {
|
|
|
451
453
|
export function getLightTint(hex) {
|
|
452
454
|
const rgb = hexToRgb(hex);
|
|
453
455
|
if (!rgb) {
|
|
454
|
-
return
|
|
456
|
+
return "#fffbeb"; // Fallback to amber-50
|
|
455
457
|
}
|
|
456
458
|
// Mix with white at 95% to create a very light tint
|
|
457
459
|
const mixRatio = 0.95;
|
|
@@ -470,7 +472,7 @@ export function getLightTint(hex) {
|
|
|
470
472
|
export function getDarkTint(hex, opacity = 0.15) {
|
|
471
473
|
const rgb = hexToRgb(hex);
|
|
472
474
|
if (!rgb) {
|
|
473
|
-
return
|
|
475
|
+
return "#2a2518"; // Fallback dark amber tint
|
|
474
476
|
}
|
|
475
477
|
// Mix with dark background (#1a1a1e) to create a subtle dark tint
|
|
476
478
|
const darkBg = { r: 26, g: 26, b: 30 };
|
|
@@ -488,7 +490,7 @@ export function getDarkTint(hex, opacity = 0.15) {
|
|
|
488
490
|
export function getBorderTint(hex) {
|
|
489
491
|
const rgb = hexToRgb(hex);
|
|
490
492
|
if (!rgb) {
|
|
491
|
-
return
|
|
493
|
+
return "#fcd34d"; // Fallback to amber-300
|
|
492
494
|
}
|
|
493
495
|
// Mix with white at 60% to create a medium-light tint
|
|
494
496
|
const mixRatio = 0.6;
|
|
@@ -506,7 +508,7 @@ export function getBorderTint(hex) {
|
|
|
506
508
|
export function getDarkBorderTint(hex) {
|
|
507
509
|
const rgb = hexToRgb(hex);
|
|
508
510
|
if (!rgb) {
|
|
509
|
-
return
|
|
511
|
+
return "#5c4a1e"; // Fallback dark amber border
|
|
510
512
|
}
|
|
511
513
|
// Mix with dark background to create a muted but visible border
|
|
512
514
|
const darkBg = { r: 26, g: 26, b: 30 };
|
|
@@ -528,7 +530,7 @@ export function getColorVariants(baseColor) {
|
|
|
528
530
|
light: getLightTint(baseColor),
|
|
529
531
|
border: getBorderTint(baseColor),
|
|
530
532
|
darkLight: getDarkTint(baseColor),
|
|
531
|
-
darkBorder: getDarkBorderTint(baseColor)
|
|
533
|
+
darkBorder: getDarkBorderTint(baseColor),
|
|
532
534
|
};
|
|
533
535
|
}
|
|
534
536
|
/**
|
|
@@ -543,6 +545,6 @@ export function getThemeAwareColorVariants(baseColor, isDarkMode) {
|
|
|
543
545
|
return {
|
|
544
546
|
base: variants.base,
|
|
545
547
|
background: isDarkMode ? variants.darkLight : variants.light,
|
|
546
|
-
border: isDarkMode ? variants.darkBorder : variants.border
|
|
548
|
+
border: isDarkMode ? variants.darkBorder : variants.border,
|
|
547
549
|
};
|
|
548
550
|
}
|
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
|
}>;
|