@flowdrop/flowdrop 1.0.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/LICENSE +21 -0
- package/README.md +252 -0
- package/dist/adapters/WorkflowAdapter.d.ts +167 -0
- package/dist/adapters/WorkflowAdapter.js +368 -0
- package/dist/adapters/agentspec/AgentSpecAdapter.d.ts +96 -0
- package/dist/adapters/agentspec/AgentSpecAdapter.js +626 -0
- package/dist/adapters/agentspec/agentAdapter.d.ts +59 -0
- package/dist/adapters/agentspec/agentAdapter.js +91 -0
- package/dist/adapters/agentspec/autoLayout.d.ts +34 -0
- package/dist/adapters/agentspec/autoLayout.js +127 -0
- package/dist/adapters/agentspec/componentTypeDefaults.d.ts +73 -0
- package/dist/adapters/agentspec/componentTypeDefaults.js +238 -0
- package/dist/adapters/agentspec/defaultNodeTypes.d.ts +53 -0
- package/dist/adapters/agentspec/defaultNodeTypes.js +561 -0
- package/dist/adapters/agentspec/index.d.ts +37 -0
- package/dist/adapters/agentspec/index.js +39 -0
- package/dist/adapters/agentspec/validator.d.ts +34 -0
- package/dist/adapters/agentspec/validator.js +169 -0
- package/dist/api/enhanced-client.d.ts +183 -0
- package/dist/api/enhanced-client.js +430 -0
- package/dist/components/App.svelte +981 -0
- package/dist/components/App.svelte.d.ts +54 -0
- package/dist/components/CanvasBanner.stories.svelte +29 -0
- package/dist/components/CanvasBanner.stories.svelte.d.ts +27 -0
- package/dist/components/CanvasBanner.svelte +57 -0
- package/dist/components/CanvasBanner.svelte.d.ts +8 -0
- package/dist/components/ConfigForm.svelte +1138 -0
- package/dist/components/ConfigForm.svelte.d.ts +44 -0
- package/dist/components/ConfigModal.svelte +188 -0
- package/dist/components/ConfigModal.svelte.d.ts +13 -0
- package/dist/components/ConfigPanel.stories.svelte +47 -0
- package/dist/components/ConfigPanel.stories.svelte.d.ts +27 -0
- package/dist/components/ConfigPanel.svelte +182 -0
- package/dist/components/ConfigPanel.svelte.d.ts +32 -0
- package/dist/components/ConnectionLine.svelte +32 -0
- package/dist/components/ConnectionLine.svelte.d.ts +3 -0
- package/dist/components/EdgeRefresher.svelte +41 -0
- package/dist/components/EdgeRefresher.svelte.d.ts +9 -0
- package/dist/components/FlowDropZone.svelte +83 -0
- package/dist/components/FlowDropZone.svelte.d.ts +13 -0
- package/dist/components/LoadingSpinner.stories.svelte +30 -0
- package/dist/components/LoadingSpinner.stories.svelte.d.ts +27 -0
- package/dist/components/LoadingSpinner.svelte +36 -0
- package/dist/components/LoadingSpinner.svelte.d.ts +8 -0
- package/dist/components/Logo.stories.svelte +22 -0
- package/dist/components/Logo.stories.svelte.d.ts +27 -0
- package/dist/components/Logo.svelte +102 -0
- package/dist/components/Logo.svelte.d.ts +26 -0
- package/dist/components/LogsSidebar.svelte +563 -0
- package/dist/components/LogsSidebar.svelte.d.ts +17 -0
- package/dist/components/MarkdownDisplay.stories.svelte +36 -0
- package/dist/components/MarkdownDisplay.stories.svelte.d.ts +27 -0
- package/dist/components/MarkdownDisplay.svelte +29 -0
- package/dist/components/MarkdownDisplay.svelte.d.ts +7 -0
- package/dist/components/Navbar.stories.svelte +53 -0
- package/dist/components/Navbar.stories.svelte.d.ts +27 -0
- package/dist/components/Navbar.svelte +726 -0
- package/dist/components/Navbar.svelte.d.ts +29 -0
- package/dist/components/NodeSidebar.svelte +762 -0
- package/dist/components/NodeSidebar.svelte.d.ts +9 -0
- package/dist/components/NodeStatusOverlay.stories.svelte +85 -0
- package/dist/components/NodeStatusOverlay.stories.svelte.d.ts +27 -0
- package/dist/components/NodeStatusOverlay.svelte +327 -0
- package/dist/components/NodeStatusOverlay.svelte.d.ts +11 -0
- package/dist/components/PipelineStatus.svelte +314 -0
- package/dist/components/PipelineStatus.svelte.d.ts +20 -0
- package/dist/components/PortCoordinateTracker.svelte +58 -0
- package/dist/components/PortCoordinateTracker.svelte.d.ts +12 -0
- package/dist/components/ReadOnlyDetails.svelte +170 -0
- package/dist/components/ReadOnlyDetails.svelte.d.ts +25 -0
- package/dist/components/SchemaForm.stories.svelte +116 -0
- package/dist/components/SchemaForm.stories.svelte.d.ts +27 -0
- package/dist/components/SchemaForm.svelte +536 -0
- package/dist/components/SchemaForm.svelte.d.ts +83 -0
- package/dist/components/SettingsModal.svelte +279 -0
- package/dist/components/SettingsModal.svelte.d.ts +23 -0
- package/dist/components/SettingsPanel.svelte +638 -0
- package/dist/components/SettingsPanel.svelte.d.ts +21 -0
- package/dist/components/StatusIcon.stories.svelte +60 -0
- package/dist/components/StatusIcon.stories.svelte.d.ts +27 -0
- package/dist/components/StatusIcon.svelte +119 -0
- package/dist/components/StatusIcon.svelte.d.ts +10 -0
- package/dist/components/StatusLabel.stories.svelte +17 -0
- package/dist/components/StatusLabel.stories.svelte.d.ts +27 -0
- package/dist/components/StatusLabel.svelte +33 -0
- package/dist/components/StatusLabel.svelte.d.ts +7 -0
- package/dist/components/ThemeToggle.stories.svelte +25 -0
- package/dist/components/ThemeToggle.stories.svelte.d.ts +27 -0
- package/dist/components/ThemeToggle.svelte +185 -0
- package/dist/components/ThemeToggle.svelte.d.ts +14 -0
- package/dist/components/UniversalNode.svelte +155 -0
- package/dist/components/UniversalNode.svelte.d.ts +15 -0
- package/dist/components/WorkflowEditor.svelte +1035 -0
- package/dist/components/WorkflowEditor.svelte.d.ts +23 -0
- package/dist/components/form/FormArray.svelte +1049 -0
- package/dist/components/form/FormArray.svelte.d.ts +22 -0
- package/dist/components/form/FormAutocomplete.svelte +1009 -0
- package/dist/components/form/FormAutocomplete.svelte.d.ts +25 -0
- package/dist/components/form/FormCheckboxGroup.stories.svelte +28 -0
- package/dist/components/form/FormCheckboxGroup.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormCheckboxGroup.svelte +155 -0
- package/dist/components/form/FormCheckboxGroup.svelte.d.ts +17 -0
- package/dist/components/form/FormCodeEditor.svelte +458 -0
- package/dist/components/form/FormCodeEditor.svelte.d.ts +25 -0
- package/dist/components/form/FormField.svelte +417 -0
- package/dist/components/form/FormField.svelte.d.ts +29 -0
- package/dist/components/form/FormFieldLight.svelte +425 -0
- package/dist/components/form/FormFieldLight.svelte.d.ts +18 -0
- package/dist/components/form/FormFieldWrapper.stories.svelte +53 -0
- package/dist/components/form/FormFieldWrapper.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormFieldWrapper.svelte +125 -0
- package/dist/components/form/FormFieldWrapper.svelte.d.ts +18 -0
- package/dist/components/form/FormFieldset.svelte +142 -0
- package/dist/components/form/FormFieldset.svelte.d.ts +11 -0
- package/dist/components/form/FormMarkdownEditor.svelte +752 -0
- package/dist/components/form/FormMarkdownEditor.svelte.d.ts +33 -0
- package/dist/components/form/FormNumberField.stories.svelte +36 -0
- package/dist/components/form/FormNumberField.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormNumberField.svelte +112 -0
- package/dist/components/form/FormNumberField.svelte.d.ts +25 -0
- package/dist/components/form/FormRangeField.stories.svelte +31 -0
- package/dist/components/form/FormRangeField.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormRangeField.svelte +246 -0
- package/dist/components/form/FormRangeField.svelte.d.ts +23 -0
- package/dist/components/form/FormSelect.stories.svelte +50 -0
- package/dist/components/form/FormSelect.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormSelect.svelte +129 -0
- package/dist/components/form/FormSelect.svelte.d.ts +20 -0
- package/dist/components/form/FormTemplateEditor.svelte +825 -0
- package/dist/components/form/FormTemplateEditor.svelte.d.ts +41 -0
- package/dist/components/form/FormTextField.stories.svelte +30 -0
- package/dist/components/form/FormTextField.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormTextField.svelte +91 -0
- package/dist/components/form/FormTextField.svelte.d.ts +19 -0
- package/dist/components/form/FormTextarea.stories.svelte +34 -0
- package/dist/components/form/FormTextarea.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormTextarea.svelte +97 -0
- package/dist/components/form/FormTextarea.svelte.d.ts +21 -0
- package/dist/components/form/FormToggle.stories.svelte +30 -0
- package/dist/components/form/FormToggle.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormToggle.svelte +126 -0
- package/dist/components/form/FormToggle.svelte.d.ts +19 -0
- package/dist/components/form/FormUISchemaRenderer.svelte +136 -0
- package/dist/components/form/FormUISchemaRenderer.svelte.d.ts +32 -0
- package/dist/components/form/index.d.ts +50 -0
- package/dist/components/form/index.js +54 -0
- package/dist/components/form/templateAutocomplete.d.ts +29 -0
- package/dist/components/form/templateAutocomplete.js +254 -0
- package/dist/components/form/types.d.ts +485 -0
- package/dist/components/form/types.js +73 -0
- package/dist/components/interrupt/ChoicePrompt.stories.svelte +52 -0
- package/dist/components/interrupt/ChoicePrompt.stories.svelte.d.ts +27 -0
- package/dist/components/interrupt/ChoicePrompt.svelte +401 -0
- package/dist/components/interrupt/ChoicePrompt.svelte.d.ts +23 -0
- package/dist/components/interrupt/ConfirmationPrompt.stories.svelte +71 -0
- package/dist/components/interrupt/ConfirmationPrompt.stories.svelte.d.ts +27 -0
- package/dist/components/interrupt/ConfirmationPrompt.svelte +292 -0
- package/dist/components/interrupt/ConfirmationPrompt.svelte.d.ts +25 -0
- package/dist/components/interrupt/FormPrompt.svelte +236 -0
- package/dist/components/interrupt/FormPrompt.svelte.d.ts +23 -0
- package/dist/components/interrupt/InterruptBubble.svelte +601 -0
- package/dist/components/interrupt/InterruptBubble.svelte.d.ts +16 -0
- package/dist/components/interrupt/ReviewPrompt.stories.svelte +67 -0
- package/dist/components/interrupt/ReviewPrompt.stories.svelte.d.ts +27 -0
- package/dist/components/interrupt/ReviewPrompt.svelte +861 -0
- package/dist/components/interrupt/ReviewPrompt.svelte.d.ts +23 -0
- package/dist/components/interrupt/TextInputPrompt.stories.svelte +47 -0
- package/dist/components/interrupt/TextInputPrompt.stories.svelte.d.ts +27 -0
- package/dist/components/interrupt/TextInputPrompt.svelte +346 -0
- package/dist/components/interrupt/TextInputPrompt.svelte.d.ts +23 -0
- package/dist/components/interrupt/index.d.ts +13 -0
- package/dist/components/interrupt/index.js +15 -0
- package/dist/components/layouts/MainLayout.svelte +718 -0
- package/dist/components/layouts/MainLayout.svelte.d.ts +62 -0
- package/dist/components/nodes/GatewayNode.stories.svelte +108 -0
- package/dist/components/nodes/GatewayNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/GatewayNode.svelte +591 -0
- package/dist/components/nodes/GatewayNode.svelte.d.ts +15 -0
- package/dist/components/nodes/IdeaNode.stories.svelte +52 -0
- package/dist/components/nodes/IdeaNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/IdeaNode.svelte +455 -0
- package/dist/components/nodes/IdeaNode.svelte.d.ts +24 -0
- package/dist/components/nodes/NotesNode.stories.svelte +76 -0
- package/dist/components/nodes/NotesNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/NotesNode.svelte +378 -0
- package/dist/components/nodes/NotesNode.svelte.d.ts +24 -0
- package/dist/components/nodes/SimpleNode.stories.svelte +159 -0
- package/dist/components/nodes/SimpleNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/SimpleNode.svelte +451 -0
- package/dist/components/nodes/SimpleNode.svelte.d.ts +25 -0
- package/dist/components/nodes/SquareNode.stories.svelte +82 -0
- package/dist/components/nodes/SquareNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/SquareNode.svelte +407 -0
- package/dist/components/nodes/SquareNode.svelte.d.ts +25 -0
- package/dist/components/nodes/TerminalNode.stories.svelte +25 -0
- package/dist/components/nodes/TerminalNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/TerminalNode.svelte +690 -0
- package/dist/components/nodes/TerminalNode.svelte.d.ts +25 -0
- package/dist/components/nodes/ToolNode.stories.svelte +189 -0
- package/dist/components/nodes/ToolNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/ToolNode.svelte +471 -0
- package/dist/components/nodes/ToolNode.svelte.d.ts +36 -0
- package/dist/components/nodes/WorkflowNode.stories.svelte +55 -0
- package/dist/components/nodes/WorkflowNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/WorkflowNode.svelte +571 -0
- package/dist/components/nodes/WorkflowNode.svelte.d.ts +15 -0
- package/dist/components/playground/ChatPanel.svelte +905 -0
- package/dist/components/playground/ChatPanel.svelte.d.ts +46 -0
- package/dist/components/playground/ExecutionLogs.svelte +488 -0
- package/dist/components/playground/ExecutionLogs.svelte.d.ts +14 -0
- package/dist/components/playground/InputCollector.svelte +444 -0
- package/dist/components/playground/InputCollector.svelte.d.ts +16 -0
- package/dist/components/playground/MessageBubble.stories.svelte +62 -0
- package/dist/components/playground/MessageBubble.stories.svelte.d.ts +27 -0
- package/dist/components/playground/MessageBubble.svelte +633 -0
- package/dist/components/playground/MessageBubble.svelte.d.ts +24 -0
- package/dist/components/playground/Playground.svelte +1075 -0
- package/dist/components/playground/Playground.svelte.d.ts +25 -0
- package/dist/components/playground/PlaygroundModal.svelte +220 -0
- package/dist/components/playground/PlaygroundModal.svelte.d.ts +25 -0
- package/dist/components/playground/SessionManager.svelte +538 -0
- package/dist/components/playground/SessionManager.svelte.d.ts +20 -0
- package/dist/config/agentSpecEndpoints.d.ts +70 -0
- package/dist/config/agentSpecEndpoints.js +65 -0
- package/dist/config/constants.d.ts +43 -0
- package/dist/config/constants.js +31 -0
- package/dist/config/defaultCategories.d.ts +7 -0
- package/dist/config/defaultCategories.js +126 -0
- package/dist/config/defaultPortConfig.d.ts +6 -0
- package/dist/config/defaultPortConfig.js +201 -0
- package/dist/config/endpoints.d.ts +160 -0
- package/dist/config/endpoints.js +146 -0
- package/dist/config/runtimeConfig.d.ts +47 -0
- package/dist/config/runtimeConfig.js +80 -0
- package/dist/core/index.d.ts +75 -0
- package/dist/core/index.js +92 -0
- package/dist/display/index.d.ts +29 -0
- package/dist/display/index.js +36 -0
- package/dist/editor/index.d.ts +95 -0
- package/dist/editor/index.js +138 -0
- package/dist/form/code.d.ts +101 -0
- package/dist/form/code.js +168 -0
- package/dist/form/fieldRegistry.d.ts +169 -0
- package/dist/form/fieldRegistry.js +152 -0
- package/dist/form/full.d.ts +56 -0
- package/dist/form/full.js +80 -0
- package/dist/form/index.d.ts +77 -0
- package/dist/form/index.js +91 -0
- package/dist/form/markdown.d.ts +69 -0
- package/dist/form/markdown.js +103 -0
- package/dist/helpers/nodeLayoutHelper.d.ts +14 -0
- package/dist/helpers/nodeLayoutHelper.js +19 -0
- package/dist/helpers/proximityConnect.d.ts +94 -0
- package/dist/helpers/proximityConnect.js +314 -0
- package/dist/helpers/workflowEditorHelper.d.ts +183 -0
- package/dist/helpers/workflowEditorHelper.js +595 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.js +64 -0
- package/dist/mocks/app-environment.d.ts +8 -0
- package/dist/mocks/app-environment.js +16 -0
- package/dist/mocks/app-forms.d.ts +2 -0
- package/dist/mocks/app-forms.js +22 -0
- package/dist/mocks/app-navigation.d.ts +5 -0
- package/dist/mocks/app-navigation.js +36 -0
- package/dist/mocks/app-stores.d.ts +14 -0
- package/dist/mocks/app-stores.js +26 -0
- package/dist/playground/index.d.ts +131 -0
- package/dist/playground/index.js +172 -0
- package/dist/playground/mount.d.ts +203 -0
- package/dist/playground/mount.js +235 -0
- package/dist/registry/BaseRegistry.d.ts +92 -0
- package/dist/registry/BaseRegistry.js +124 -0
- package/dist/registry/builtinFormats.d.ts +23 -0
- package/dist/registry/builtinFormats.js +70 -0
- package/dist/registry/builtinNodes.d.ts +77 -0
- package/dist/registry/builtinNodes.js +211 -0
- package/dist/registry/index.d.ts +8 -0
- package/dist/registry/index.js +12 -0
- package/dist/registry/nodeComponentRegistry.d.ts +276 -0
- package/dist/registry/nodeComponentRegistry.js +262 -0
- package/dist/registry/plugin.d.ts +215 -0
- package/dist/registry/plugin.js +249 -0
- package/dist/registry/workflowFormatRegistry.d.ts +122 -0
- package/dist/registry/workflowFormatRegistry.js +96 -0
- package/dist/schema/index.d.ts +23 -0
- package/dist/schema/index.js +23 -0
- package/dist/schemas/v1/workflow.schema.json +1078 -0
- package/dist/services/agentSpecExecutionService.d.ts +106 -0
- package/dist/services/agentSpecExecutionService.js +334 -0
- package/dist/services/api.d.ts +115 -0
- package/dist/services/api.js +214 -0
- package/dist/services/apiVariableService.d.ts +114 -0
- package/dist/services/apiVariableService.js +338 -0
- package/dist/services/autoSaveService.d.ts +112 -0
- package/dist/services/autoSaveService.js +227 -0
- package/dist/services/categoriesApi.d.ts +14 -0
- package/dist/services/categoriesApi.js +49 -0
- package/dist/services/draftStorage.d.ts +171 -0
- package/dist/services/draftStorage.js +299 -0
- package/dist/services/dynamicSchemaService.d.ts +108 -0
- package/dist/services/dynamicSchemaService.js +444 -0
- package/dist/services/globalSave.d.ts +69 -0
- package/dist/services/globalSave.js +248 -0
- package/dist/services/historyService.d.ts +208 -0
- package/dist/services/historyService.js +321 -0
- package/dist/services/interruptService.d.ts +133 -0
- package/dist/services/interruptService.js +280 -0
- package/dist/services/nodeExecutionService.d.ts +63 -0
- package/dist/services/nodeExecutionService.js +266 -0
- package/dist/services/playgroundService.d.ts +130 -0
- package/dist/services/playgroundService.js +321 -0
- package/dist/services/portConfigApi.d.ts +14 -0
- package/dist/services/portConfigApi.js +54 -0
- package/dist/services/settingsService.d.ts +92 -0
- package/dist/services/settingsService.js +196 -0
- package/dist/services/toastService.d.ts +156 -0
- package/dist/services/toastService.js +265 -0
- package/dist/services/variableService.d.ts +141 -0
- package/dist/services/variableService.js +463 -0
- package/dist/services/workflowStorage.d.ts +37 -0
- package/dist/services/workflowStorage.js +116 -0
- package/dist/settings/index.d.ts +25 -0
- package/dist/settings/index.js +33 -0
- package/dist/stores/categoriesStore.svelte.d.ts +32 -0
- package/dist/stores/categoriesStore.svelte.js +77 -0
- package/dist/stores/editorStateMachine.svelte.d.ts +42 -0
- package/dist/stores/editorStateMachine.svelte.js +132 -0
- package/dist/stores/historyStore.svelte.d.ts +136 -0
- package/dist/stores/historyStore.svelte.js +207 -0
- package/dist/stores/interruptStore.svelte.d.ts +179 -0
- package/dist/stores/interruptStore.svelte.js +346 -0
- package/dist/stores/playgroundStore.svelte.d.ts +230 -0
- package/dist/stores/playgroundStore.svelte.js +515 -0
- package/dist/stores/portCoordinateStore.svelte.d.ts +66 -0
- package/dist/stores/portCoordinateStore.svelte.js +186 -0
- package/dist/stores/settingsStore.svelte.d.ts +158 -0
- package/dist/stores/settingsStore.svelte.js +544 -0
- package/dist/stores/workflowStore.svelte.d.ts +260 -0
- package/dist/stores/workflowStore.svelte.js +649 -0
- package/dist/stories/CanvasDecorator.svelte +49 -0
- package/dist/stories/CanvasDecorator.svelte.d.ts +8 -0
- package/dist/stories/NodeDecorator.svelte +73 -0
- package/dist/stories/NodeDecorator.svelte.d.ts +8 -0
- package/dist/stories/utils.d.ts +93 -0
- package/dist/stories/utils.js +122 -0
- package/dist/styles/base.css +1300 -0
- package/dist/styles/toast.css +35 -0
- package/dist/styles/tokens.css +475 -0
- package/dist/svelte-app.d.ts +150 -0
- package/dist/svelte-app.js +295 -0
- package/dist/types/agentspec.d.ts +318 -0
- package/dist/types/agentspec.js +48 -0
- package/dist/types/auth.d.ts +263 -0
- package/dist/types/auth.js +229 -0
- package/dist/types/config.d.ts +151 -0
- package/dist/types/config.js +7 -0
- package/dist/types/events.d.ts +190 -0
- package/dist/types/events.js +30 -0
- package/dist/types/index.d.ts +1234 -0
- package/dist/types/index.js +27 -0
- package/dist/types/interrupt.d.ts +390 -0
- package/dist/types/interrupt.js +145 -0
- package/dist/types/interruptState.d.ts +211 -0
- package/dist/types/interruptState.js +308 -0
- package/dist/types/playground.d.ts +351 -0
- package/dist/types/playground.js +95 -0
- package/dist/types/settings.d.ts +189 -0
- package/dist/types/settings.js +97 -0
- package/dist/types/uischema.d.ts +144 -0
- package/dist/types/uischema.js +51 -0
- package/dist/utils/colors.d.ts +288 -0
- package/dist/utils/colors.js +548 -0
- package/dist/utils/config.d.ts +37 -0
- package/dist/utils/config.js +226 -0
- package/dist/utils/connections.d.ts +125 -0
- package/dist/utils/connections.js +414 -0
- package/dist/utils/errors.d.ts +28 -0
- package/dist/utils/errors.js +44 -0
- package/dist/utils/fetchWithAuth.d.ts +25 -0
- package/dist/utils/fetchWithAuth.js +34 -0
- package/dist/utils/handleIds.d.ts +35 -0
- package/dist/utils/handleIds.js +58 -0
- package/dist/utils/handlePositioning.d.ts +31 -0
- package/dist/utils/handlePositioning.js +35 -0
- package/dist/utils/icons.d.ts +106 -0
- package/dist/utils/icons.js +157 -0
- package/dist/utils/logger.d.ts +47 -0
- package/dist/utils/logger.js +72 -0
- package/dist/utils/nodeStatus.d.ts +53 -0
- package/dist/utils/nodeStatus.js +183 -0
- package/dist/utils/nodeTypes.d.ts +117 -0
- package/dist/utils/nodeTypes.js +244 -0
- package/dist/utils/nodeWrapper.d.ts +39 -0
- package/dist/utils/nodeWrapper.js +62 -0
- package/dist/utils/performanceUtils.d.ts +30 -0
- package/dist/utils/performanceUtils.js +108 -0
- package/dist/utils/sanitize.d.ts +19 -0
- package/dist/utils/sanitize.js +31 -0
- package/dist/utils/uischema.d.ts +52 -0
- package/dist/utils/uischema.js +88 -0
- package/dist/utils/validation.d.ts +29 -0
- package/dist/utils/validation.js +39 -0
- package/package.json +292 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for calculating handle positions on nodes
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Calculate handle position along a circle arc using cos/sin
|
|
6
|
+
*
|
|
7
|
+
* Distributes handles evenly along an arc on the left or right side of a circle.
|
|
8
|
+
* For N handles, they are positioned at angles calculated as:
|
|
9
|
+
* angle = centerAngle - arcSpan/2 + arcSpan * (index + 1) / (count + 1)
|
|
10
|
+
*
|
|
11
|
+
* @param index - The index of the handle (0-based)
|
|
12
|
+
* @param count - Total number of handles on this side
|
|
13
|
+
* @param side - 'left' for inputs, 'right' for outputs
|
|
14
|
+
* @param radius - The radius of the circle (default: 40px for 80px diameter)
|
|
15
|
+
* @param arcSpan - The arc span in radians (default: 5π/6 = 150°)
|
|
16
|
+
* @returns Object with left and top pixel values relative to the circle's bounding box
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* // Single handle on left side - positioned at center (180°)
|
|
20
|
+
* getCircleHandlePosition(0, 1, 'left') // { left: 0, top: 36 }
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* // Two handles on left side - positioned at 150° and 210°
|
|
24
|
+
* getCircleHandlePosition(0, 2, 'left') // { left: ~4.8, top: ~18 }
|
|
25
|
+
* getCircleHandlePosition(1, 2, 'left') // { left: ~4.8, top: ~54 }
|
|
26
|
+
*/
|
|
27
|
+
export function getCircleHandlePosition(index, count, side, radius = 40, arcSpan = (Math.PI * 5) / 6) {
|
|
28
|
+
const centerAngle = side === 'left' ? Math.PI : 0; // 180° for left, 0° for right
|
|
29
|
+
const angle = centerAngle - arcSpan / 2 + (arcSpan * (index + 1)) / (count + 1);
|
|
30
|
+
const centerOffset = radius; // center of the circle (assuming square bounding box)
|
|
31
|
+
return {
|
|
32
|
+
left: centerOffset + radius * Math.cos(angle),
|
|
33
|
+
top: centerOffset + radius * Math.sin(angle)
|
|
34
|
+
};
|
|
35
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized icon management for FlowDrop
|
|
3
|
+
* Ensures consistent icon usage across all components
|
|
4
|
+
*/
|
|
5
|
+
import type { NodeCategory } from '../types/index.js';
|
|
6
|
+
/**
|
|
7
|
+
* Default icons for different contexts
|
|
8
|
+
*/
|
|
9
|
+
export declare const DEFAULT_ICONS: {
|
|
10
|
+
readonly NODE: "mdi:cube";
|
|
11
|
+
readonly CATEGORY: "mdi:folder";
|
|
12
|
+
readonly ADD: "mdi:plus";
|
|
13
|
+
readonly REMOVE: "mdi:minus";
|
|
14
|
+
readonly EDIT: "mdi:pencil";
|
|
15
|
+
readonly SAVE: "mdi:content-save";
|
|
16
|
+
readonly LOAD: "mdi:folder-open";
|
|
17
|
+
readonly EXPORT: "mdi:download";
|
|
18
|
+
readonly IMPORT: "mdi:upload";
|
|
19
|
+
readonly SEARCH: "mdi:magnify";
|
|
20
|
+
readonly CLOSE: "mdi:close";
|
|
21
|
+
readonly SETTINGS: "mdi:cog";
|
|
22
|
+
readonly HELP: "mdi:help-circle";
|
|
23
|
+
readonly SUCCESS: "mdi:check-circle";
|
|
24
|
+
readonly ERROR: "mdi:alert-circle";
|
|
25
|
+
readonly WARNING: "mdi:alert";
|
|
26
|
+
readonly INFO: "mdi:information";
|
|
27
|
+
readonly LOADING: "mdi:loading";
|
|
28
|
+
readonly HOME: "mdi:home";
|
|
29
|
+
readonly BACK: "mdi:arrow-left";
|
|
30
|
+
readonly FORWARD: "mdi:arrow-right";
|
|
31
|
+
readonly UP: "mdi:arrow-up";
|
|
32
|
+
readonly DOWN: "mdi:arrow-down";
|
|
33
|
+
readonly WORKFLOW: "mdi:graph";
|
|
34
|
+
readonly NODE_ADD: "mdi:plus-circle";
|
|
35
|
+
readonly NODE_DELETE: "mdi:minus-circle";
|
|
36
|
+
readonly CONNECTION: "mdi:connection";
|
|
37
|
+
readonly DATA: "mdi:database";
|
|
38
|
+
readonly FILE: "mdi:file";
|
|
39
|
+
readonly TEXT: "mdi:text";
|
|
40
|
+
readonly JSON: "mdi:code-json";
|
|
41
|
+
readonly MODEL: "mdi:chip";
|
|
42
|
+
readonly BRAIN: "mdi:brain";
|
|
43
|
+
readonly VECTOR: "mdi:vector-point";
|
|
44
|
+
readonly ROBOT: "mdi:robot";
|
|
45
|
+
readonly TOOL: "mdi:wrench";
|
|
46
|
+
readonly CALCULATOR: "mdi:calculator";
|
|
47
|
+
readonly CLOCK: "mdi:clock";
|
|
48
|
+
readonly CHAT: "mdi:chat";
|
|
49
|
+
readonly MESSAGE: "mdi:message";
|
|
50
|
+
readonly EMAIL: "mdi:email";
|
|
51
|
+
readonly WEBHOOK: "mdi:webhook";
|
|
52
|
+
readonly STORAGE: "mdi:database";
|
|
53
|
+
readonly MEMORY: "mdi:memory";
|
|
54
|
+
readonly CACHE: "mdi:cached";
|
|
55
|
+
readonly PROCESS: "mdi:cog";
|
|
56
|
+
readonly FILTER: "mdi:filter";
|
|
57
|
+
readonly SORT: "mdi:sort";
|
|
58
|
+
readonly TRANSFORM: "mdi:transform";
|
|
59
|
+
readonly LOGIC: "mdi:git-branch";
|
|
60
|
+
readonly CONDITION: "mdi:source-fork";
|
|
61
|
+
readonly LOOP: "mdi:loop";
|
|
62
|
+
readonly API: "mdi:api";
|
|
63
|
+
readonly LINK: "mdi:link";
|
|
64
|
+
readonly PLUGIN: "mdi:puzzle";
|
|
65
|
+
readonly BUNDLE: "mdi:package-variant";
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Category-specific icons for built-in categories.
|
|
69
|
+
* Custom categories fall back to DEFAULT_ICONS.CATEGORY.
|
|
70
|
+
* These serve as static defaults; the categories store provides dynamic overrides.
|
|
71
|
+
*/
|
|
72
|
+
export declare const CATEGORY_ICONS: Record<string, string>;
|
|
73
|
+
/**
|
|
74
|
+
* Get the appropriate icon for a node
|
|
75
|
+
* @param nodeIcon - The node's specific icon
|
|
76
|
+
* @param category - The node's category
|
|
77
|
+
* @returns The icon to use
|
|
78
|
+
*/
|
|
79
|
+
export declare function getNodeIcon(nodeIcon?: string, category?: NodeCategory): string;
|
|
80
|
+
/**
|
|
81
|
+
* Get the appropriate icon for a category.
|
|
82
|
+
* Checks the categories store first (which includes API overrides),
|
|
83
|
+
* then falls back to the static CATEGORY_ICONS map, then to the default.
|
|
84
|
+
* @param category - The category
|
|
85
|
+
* @returns The icon to use
|
|
86
|
+
*/
|
|
87
|
+
export declare function getCategoryIcon(category: NodeCategory): string;
|
|
88
|
+
/**
|
|
89
|
+
* Get a default icon by key
|
|
90
|
+
* @param key - The icon key from DEFAULT_ICONS
|
|
91
|
+
* @returns The icon string
|
|
92
|
+
*/
|
|
93
|
+
export declare function getDefaultIcon(key: keyof typeof DEFAULT_ICONS): string;
|
|
94
|
+
/**
|
|
95
|
+
* Validate if an icon string is properly formatted
|
|
96
|
+
* @param icon - The icon string to validate
|
|
97
|
+
* @returns True if valid, false otherwise
|
|
98
|
+
*/
|
|
99
|
+
export declare function isValidIcon(icon: string): boolean;
|
|
100
|
+
/**
|
|
101
|
+
* Get a fallback icon if the provided icon is invalid
|
|
102
|
+
* @param icon - The icon to check
|
|
103
|
+
* @param fallback - The fallback icon to use
|
|
104
|
+
* @returns The valid icon string
|
|
105
|
+
*/
|
|
106
|
+
export declare function getValidIcon(icon: string, fallback?: string): string;
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized icon management for FlowDrop
|
|
3
|
+
* Ensures consistent icon usage across all components
|
|
4
|
+
*/
|
|
5
|
+
import { getCategoryIcon as getCategoryIconFromStore } from '../stores/categoriesStore.svelte.js';
|
|
6
|
+
/**
|
|
7
|
+
* Default icons for different contexts
|
|
8
|
+
*/
|
|
9
|
+
export const DEFAULT_ICONS = {
|
|
10
|
+
// Node fallback icons
|
|
11
|
+
NODE: 'mdi:cube',
|
|
12
|
+
CATEGORY: 'mdi:folder',
|
|
13
|
+
// UI action icons
|
|
14
|
+
ADD: 'mdi:plus',
|
|
15
|
+
REMOVE: 'mdi:minus',
|
|
16
|
+
EDIT: 'mdi:pencil',
|
|
17
|
+
SAVE: 'mdi:content-save',
|
|
18
|
+
LOAD: 'mdi:folder-open',
|
|
19
|
+
EXPORT: 'mdi:download',
|
|
20
|
+
IMPORT: 'mdi:upload',
|
|
21
|
+
SEARCH: 'mdi:magnify',
|
|
22
|
+
CLOSE: 'mdi:close',
|
|
23
|
+
SETTINGS: 'mdi:cog',
|
|
24
|
+
HELP: 'mdi:help-circle',
|
|
25
|
+
// Status icons
|
|
26
|
+
SUCCESS: 'mdi:check-circle',
|
|
27
|
+
ERROR: 'mdi:alert-circle',
|
|
28
|
+
WARNING: 'mdi:alert',
|
|
29
|
+
INFO: 'mdi:information',
|
|
30
|
+
LOADING: 'mdi:loading',
|
|
31
|
+
// Navigation icons
|
|
32
|
+
HOME: 'mdi:home',
|
|
33
|
+
BACK: 'mdi:arrow-left',
|
|
34
|
+
FORWARD: 'mdi:arrow-right',
|
|
35
|
+
UP: 'mdi:arrow-up',
|
|
36
|
+
DOWN: 'mdi:arrow-down',
|
|
37
|
+
// Workflow icons
|
|
38
|
+
WORKFLOW: 'mdi:graph',
|
|
39
|
+
NODE_ADD: 'mdi:plus-circle',
|
|
40
|
+
NODE_DELETE: 'mdi:minus-circle',
|
|
41
|
+
CONNECTION: 'mdi:connection',
|
|
42
|
+
// Data icons
|
|
43
|
+
DATA: 'mdi:database',
|
|
44
|
+
FILE: 'mdi:file',
|
|
45
|
+
TEXT: 'mdi:text',
|
|
46
|
+
JSON: 'mdi:code-json',
|
|
47
|
+
// Model and processing icons
|
|
48
|
+
MODEL: 'mdi:chip',
|
|
49
|
+
BRAIN: 'mdi:brain',
|
|
50
|
+
VECTOR: 'mdi:vector-point',
|
|
51
|
+
ROBOT: 'mdi:robot',
|
|
52
|
+
// Tool icons
|
|
53
|
+
TOOL: 'mdi:wrench',
|
|
54
|
+
CALCULATOR: 'mdi:calculator',
|
|
55
|
+
CLOCK: 'mdi:clock',
|
|
56
|
+
// Communication icons
|
|
57
|
+
CHAT: 'mdi:chat',
|
|
58
|
+
MESSAGE: 'mdi:message',
|
|
59
|
+
EMAIL: 'mdi:email',
|
|
60
|
+
WEBHOOK: 'mdi:webhook',
|
|
61
|
+
// Storage icons
|
|
62
|
+
STORAGE: 'mdi:database',
|
|
63
|
+
MEMORY: 'mdi:memory',
|
|
64
|
+
CACHE: 'mdi:cached',
|
|
65
|
+
// Processing icons
|
|
66
|
+
PROCESS: 'mdi:cog',
|
|
67
|
+
FILTER: 'mdi:filter',
|
|
68
|
+
SORT: 'mdi:sort',
|
|
69
|
+
TRANSFORM: 'mdi:transform',
|
|
70
|
+
// Logic icons
|
|
71
|
+
LOGIC: 'mdi:git-branch',
|
|
72
|
+
CONDITION: 'mdi:source-fork',
|
|
73
|
+
LOOP: 'mdi:loop',
|
|
74
|
+
// Integration icons
|
|
75
|
+
API: 'mdi:api',
|
|
76
|
+
LINK: 'mdi:link',
|
|
77
|
+
PLUGIN: 'mdi:puzzle',
|
|
78
|
+
BUNDLE: 'mdi:package-variant'
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Category-specific icons for built-in categories.
|
|
82
|
+
* Custom categories fall back to DEFAULT_ICONS.CATEGORY.
|
|
83
|
+
* These serve as static defaults; the categories store provides dynamic overrides.
|
|
84
|
+
*/
|
|
85
|
+
export const CATEGORY_ICONS = {
|
|
86
|
+
triggers: 'mdi:lightning-bolt',
|
|
87
|
+
inputs: 'mdi:arrow-down-circle',
|
|
88
|
+
outputs: 'mdi:arrow-up-circle',
|
|
89
|
+
prompts: 'mdi:message-text',
|
|
90
|
+
models: 'mdi:robot',
|
|
91
|
+
processing: 'mdi:cog',
|
|
92
|
+
logic: 'mdi:source-branch',
|
|
93
|
+
data: 'mdi:database',
|
|
94
|
+
helpers: 'mdi:help-circle',
|
|
95
|
+
tools: 'mdi:wrench',
|
|
96
|
+
'vector stores': 'mdi:vector-square',
|
|
97
|
+
embeddings: 'mdi:vector-polygon',
|
|
98
|
+
memories: 'mdi:brain',
|
|
99
|
+
agents: 'mdi:account-cog',
|
|
100
|
+
ai: 'mdi:shimmer',
|
|
101
|
+
interrupts: 'mdi:hand-back-left',
|
|
102
|
+
bundles: 'mdi:package-variant'
|
|
103
|
+
};
|
|
104
|
+
/**
|
|
105
|
+
* Get the appropriate icon for a node
|
|
106
|
+
* @param nodeIcon - The node's specific icon
|
|
107
|
+
* @param category - The node's category
|
|
108
|
+
* @returns The icon to use
|
|
109
|
+
*/
|
|
110
|
+
export function getNodeIcon(nodeIcon, category) {
|
|
111
|
+
// If node has a specific icon, use it
|
|
112
|
+
if (nodeIcon) {
|
|
113
|
+
return nodeIcon;
|
|
114
|
+
}
|
|
115
|
+
// If category is provided, use category icon from store (which includes API overrides)
|
|
116
|
+
if (category) {
|
|
117
|
+
return getCategoryIconFromStore(category);
|
|
118
|
+
}
|
|
119
|
+
// Fallback to default node icon
|
|
120
|
+
return DEFAULT_ICONS.NODE;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Get the appropriate icon for a category.
|
|
124
|
+
* Checks the categories store first (which includes API overrides),
|
|
125
|
+
* then falls back to the static CATEGORY_ICONS map, then to the default.
|
|
126
|
+
* @param category - The category
|
|
127
|
+
* @returns The icon to use
|
|
128
|
+
*/
|
|
129
|
+
export function getCategoryIcon(category) {
|
|
130
|
+
return getCategoryIconFromStore(category);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Get a default icon by key
|
|
134
|
+
* @param key - The icon key from DEFAULT_ICONS
|
|
135
|
+
* @returns The icon string
|
|
136
|
+
*/
|
|
137
|
+
export function getDefaultIcon(key) {
|
|
138
|
+
return DEFAULT_ICONS[key];
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Validate if an icon string is properly formatted
|
|
142
|
+
* @param icon - The icon string to validate
|
|
143
|
+
* @returns True if valid, false otherwise
|
|
144
|
+
*/
|
|
145
|
+
export function isValidIcon(icon) {
|
|
146
|
+
// Check if it's a valid iconify format (e.g., "mdi:icon-name")
|
|
147
|
+
return /^[a-z-]+:[a-z-]+$/.test(icon);
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Get a fallback icon if the provided icon is invalid
|
|
151
|
+
* @param icon - The icon to check
|
|
152
|
+
* @param fallback - The fallback icon to use
|
|
153
|
+
* @returns The valid icon string
|
|
154
|
+
*/
|
|
155
|
+
export function getValidIcon(icon, fallback = DEFAULT_ICONS.NODE) {
|
|
156
|
+
return isValidIcon(icon) ? icon : fallback;
|
|
157
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FlowDrop Logger
|
|
3
|
+
*
|
|
4
|
+
* Lightweight configurable logger for the FlowDrop library.
|
|
5
|
+
* Disabled by default — consumers enable it for debugging.
|
|
6
|
+
*
|
|
7
|
+
* @module utils/logger
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* import { setLogLevel } from '@flowdrop/flowdrop/core';
|
|
12
|
+
*
|
|
13
|
+
* // Enable debug logging during development
|
|
14
|
+
* setLogLevel('debug');
|
|
15
|
+
*
|
|
16
|
+
* // Enable only warnings and errors
|
|
17
|
+
* setLogLevel('warn');
|
|
18
|
+
*
|
|
19
|
+
* // Disable all logging (default)
|
|
20
|
+
* setLogLevel('none');
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
/** Log severity levels. `'none'` disables all output. */
|
|
24
|
+
export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'none';
|
|
25
|
+
/**
|
|
26
|
+
* Set the minimum log level for FlowDrop library output.
|
|
27
|
+
* Messages below this level are silently discarded.
|
|
28
|
+
*
|
|
29
|
+
* @param level - The minimum severity to display. Use `'none'` to disable all output.
|
|
30
|
+
*/
|
|
31
|
+
export declare function setLogLevel(level: LogLevel): void;
|
|
32
|
+
/**
|
|
33
|
+
* Get the current log level.
|
|
34
|
+
*/
|
|
35
|
+
export declare function getLogLevel(): LogLevel;
|
|
36
|
+
/**
|
|
37
|
+
* FlowDrop library logger.
|
|
38
|
+
*
|
|
39
|
+
* All methods are no-ops when the log level is set to `'none'` (default).
|
|
40
|
+
* Enable output by calling `setLogLevel()`.
|
|
41
|
+
*/
|
|
42
|
+
export declare const logger: {
|
|
43
|
+
debug(message: string, ...args: unknown[]): void;
|
|
44
|
+
info(message: string, ...args: unknown[]): void;
|
|
45
|
+
warn(message: string, ...args: unknown[]): void;
|
|
46
|
+
error(message: string, ...args: unknown[]): void;
|
|
47
|
+
};
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FlowDrop Logger
|
|
3
|
+
*
|
|
4
|
+
* Lightweight configurable logger for the FlowDrop library.
|
|
5
|
+
* Disabled by default — consumers enable it for debugging.
|
|
6
|
+
*
|
|
7
|
+
* @module utils/logger
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* import { setLogLevel } from '@flowdrop/flowdrop/core';
|
|
12
|
+
*
|
|
13
|
+
* // Enable debug logging during development
|
|
14
|
+
* setLogLevel('debug');
|
|
15
|
+
*
|
|
16
|
+
* // Enable only warnings and errors
|
|
17
|
+
* setLogLevel('warn');
|
|
18
|
+
*
|
|
19
|
+
* // Disable all logging (default)
|
|
20
|
+
* setLogLevel('none');
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
const LOG_PRIORITY = {
|
|
24
|
+
debug: 0,
|
|
25
|
+
info: 1,
|
|
26
|
+
warn: 2,
|
|
27
|
+
error: 3,
|
|
28
|
+
none: 4
|
|
29
|
+
};
|
|
30
|
+
let currentLevel = 'none';
|
|
31
|
+
/**
|
|
32
|
+
* Set the minimum log level for FlowDrop library output.
|
|
33
|
+
* Messages below this level are silently discarded.
|
|
34
|
+
*
|
|
35
|
+
* @param level - The minimum severity to display. Use `'none'` to disable all output.
|
|
36
|
+
*/
|
|
37
|
+
export function setLogLevel(level) {
|
|
38
|
+
currentLevel = level;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Get the current log level.
|
|
42
|
+
*/
|
|
43
|
+
export function getLogLevel() {
|
|
44
|
+
return currentLevel;
|
|
45
|
+
}
|
|
46
|
+
function shouldLog(level) {
|
|
47
|
+
return LOG_PRIORITY[level] >= LOG_PRIORITY[currentLevel];
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* FlowDrop library logger.
|
|
51
|
+
*
|
|
52
|
+
* All methods are no-ops when the log level is set to `'none'` (default).
|
|
53
|
+
* Enable output by calling `setLogLevel()`.
|
|
54
|
+
*/
|
|
55
|
+
export const logger = {
|
|
56
|
+
debug(message, ...args) {
|
|
57
|
+
if (shouldLog('debug'))
|
|
58
|
+
console.debug(`[FlowDrop] ${message}`, ...args);
|
|
59
|
+
},
|
|
60
|
+
info(message, ...args) {
|
|
61
|
+
if (shouldLog('info'))
|
|
62
|
+
console.info(`[FlowDrop] ${message}`, ...args);
|
|
63
|
+
},
|
|
64
|
+
warn(message, ...args) {
|
|
65
|
+
if (shouldLog('warn'))
|
|
66
|
+
console.warn(`[FlowDrop] ${message}`, ...args);
|
|
67
|
+
},
|
|
68
|
+
error(message, ...args) {
|
|
69
|
+
if (shouldLog('error'))
|
|
70
|
+
console.error(`[FlowDrop] ${message}`, ...args);
|
|
71
|
+
}
|
|
72
|
+
};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Node Status Utility Functions
|
|
3
|
+
* Provides utilities for managing and displaying node execution status
|
|
4
|
+
*/
|
|
5
|
+
import type { NodeExecutionStatus, NodeExecutionInfo } from '../types/index.js';
|
|
6
|
+
/**
|
|
7
|
+
* Get the display color for a node execution status
|
|
8
|
+
*/
|
|
9
|
+
export declare function getStatusColor(status: NodeExecutionStatus): string;
|
|
10
|
+
/**
|
|
11
|
+
* Get the display icon for a node execution status
|
|
12
|
+
*/
|
|
13
|
+
export declare function getStatusIcon(status: NodeExecutionStatus): string;
|
|
14
|
+
/**
|
|
15
|
+
* Get the display label for a node execution status
|
|
16
|
+
*/
|
|
17
|
+
export declare function getStatusLabel(status: NodeExecutionStatus): string;
|
|
18
|
+
/**
|
|
19
|
+
* Get the background color for a node execution status overlay
|
|
20
|
+
*/
|
|
21
|
+
export declare function getStatusBackgroundColor(status: NodeExecutionStatus): string;
|
|
22
|
+
/**
|
|
23
|
+
* Get the text color for a node execution status overlay
|
|
24
|
+
*/
|
|
25
|
+
export declare function getStatusTextColor(status: NodeExecutionStatus): string;
|
|
26
|
+
/**
|
|
27
|
+
* Create a default NodeExecutionInfo object
|
|
28
|
+
*/
|
|
29
|
+
export declare function createDefaultExecutionInfo(): NodeExecutionInfo;
|
|
30
|
+
/**
|
|
31
|
+
* Update node execution info when execution starts
|
|
32
|
+
*/
|
|
33
|
+
export declare function updateExecutionStart(executionInfo: NodeExecutionInfo): NodeExecutionInfo;
|
|
34
|
+
/**
|
|
35
|
+
* Update node execution info when execution completes successfully
|
|
36
|
+
*/
|
|
37
|
+
export declare function updateExecutionComplete(executionInfo: NodeExecutionInfo, duration: number): NodeExecutionInfo;
|
|
38
|
+
/**
|
|
39
|
+
* Update node execution info when execution fails
|
|
40
|
+
*/
|
|
41
|
+
export declare function updateExecutionFailed(executionInfo: NodeExecutionInfo, error: string, duration: number): NodeExecutionInfo;
|
|
42
|
+
/**
|
|
43
|
+
* Reset node execution info
|
|
44
|
+
*/
|
|
45
|
+
export declare function resetExecutionInfo(executionInfo: NodeExecutionInfo): NodeExecutionInfo;
|
|
46
|
+
/**
|
|
47
|
+
* Format execution duration for display
|
|
48
|
+
*/
|
|
49
|
+
export declare function formatExecutionDuration(duration?: number): string;
|
|
50
|
+
/**
|
|
51
|
+
* Format last executed timestamp for display
|
|
52
|
+
*/
|
|
53
|
+
export declare function formatLastExecuted(timestamp?: string): string;
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Node Status Utility Functions
|
|
3
|
+
* Provides utilities for managing and displaying node execution status
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Get the display color for a node execution status
|
|
7
|
+
*/
|
|
8
|
+
export function getStatusColor(status) {
|
|
9
|
+
const statusColors = {
|
|
10
|
+
idle: '#6b7280', // gray
|
|
11
|
+
pending: '#f59e0b', // amber
|
|
12
|
+
running: '#3b82f6', // blue
|
|
13
|
+
completed: '#10b981', // emerald
|
|
14
|
+
failed: '#ef4444', // red
|
|
15
|
+
cancelled: '#6b7280', // gray
|
|
16
|
+
skipped: '#8b5cf6' // violet
|
|
17
|
+
};
|
|
18
|
+
return statusColors[status] || statusColors.idle;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Get the display icon for a node execution status
|
|
22
|
+
*/
|
|
23
|
+
export function getStatusIcon(status) {
|
|
24
|
+
const statusIcons = {
|
|
25
|
+
idle: 'mdi:circle-outline',
|
|
26
|
+
pending: 'mdi:clock-outline',
|
|
27
|
+
running: 'mdi:loading',
|
|
28
|
+
completed: 'mdi:check-circle',
|
|
29
|
+
failed: 'mdi:alert-circle',
|
|
30
|
+
cancelled: 'mdi:cancel',
|
|
31
|
+
skipped: 'mdi:skip-next'
|
|
32
|
+
};
|
|
33
|
+
return statusIcons[status] || statusIcons.idle;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Get the display label for a node execution status
|
|
37
|
+
*/
|
|
38
|
+
export function getStatusLabel(status) {
|
|
39
|
+
const statusLabels = {
|
|
40
|
+
idle: 'Idle',
|
|
41
|
+
pending: 'Pending',
|
|
42
|
+
running: 'Running',
|
|
43
|
+
completed: 'Completed',
|
|
44
|
+
failed: 'Failed',
|
|
45
|
+
cancelled: 'Cancelled',
|
|
46
|
+
skipped: 'Skipped'
|
|
47
|
+
};
|
|
48
|
+
return statusLabels[status] || statusLabels.idle;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Get the background color for a node execution status overlay
|
|
52
|
+
*/
|
|
53
|
+
export function getStatusBackgroundColor(status) {
|
|
54
|
+
const statusBackgroundColors = {
|
|
55
|
+
idle: '#f9fafb', // light gray
|
|
56
|
+
pending: '#fef3c7', // light amber
|
|
57
|
+
running: '#dbeafe', // light blue
|
|
58
|
+
completed: '#d1fae5', // light emerald
|
|
59
|
+
failed: '#fee2e2', // light red
|
|
60
|
+
cancelled: '#f3f4f6', // light gray
|
|
61
|
+
skipped: '#ede9fe' // light violet
|
|
62
|
+
};
|
|
63
|
+
return statusBackgroundColors[status] || statusBackgroundColors.idle;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Get the text color for a node execution status overlay
|
|
67
|
+
*/
|
|
68
|
+
export function getStatusTextColor(status) {
|
|
69
|
+
const statusTextColors = {
|
|
70
|
+
idle: '#6b7280', // gray
|
|
71
|
+
pending: '#d97706', // amber
|
|
72
|
+
running: '#1d4ed8', // blue
|
|
73
|
+
completed: '#059669', // emerald
|
|
74
|
+
failed: '#dc2626', // red
|
|
75
|
+
cancelled: '#6b7280', // gray
|
|
76
|
+
skipped: '#7c3aed' // violet
|
|
77
|
+
};
|
|
78
|
+
return statusTextColors[status] || statusTextColors.idle;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Create a default NodeExecutionInfo object
|
|
82
|
+
*/
|
|
83
|
+
export function createDefaultExecutionInfo() {
|
|
84
|
+
return {
|
|
85
|
+
status: 'idle',
|
|
86
|
+
executionCount: 0,
|
|
87
|
+
isExecuting: false
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Update node execution info when execution starts
|
|
92
|
+
*/
|
|
93
|
+
export function updateExecutionStart(executionInfo) {
|
|
94
|
+
return {
|
|
95
|
+
...executionInfo,
|
|
96
|
+
status: 'running',
|
|
97
|
+
isExecuting: true
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Update node execution info when execution completes successfully
|
|
102
|
+
*/
|
|
103
|
+
export function updateExecutionComplete(executionInfo, duration) {
|
|
104
|
+
return {
|
|
105
|
+
...executionInfo,
|
|
106
|
+
status: 'completed',
|
|
107
|
+
executionCount: executionInfo.executionCount + 1,
|
|
108
|
+
lastExecuted: new Date().toISOString(),
|
|
109
|
+
lastExecutionDuration: duration,
|
|
110
|
+
isExecuting: false,
|
|
111
|
+
lastError: undefined // Clear any previous error
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Update node execution info when execution fails
|
|
116
|
+
*/
|
|
117
|
+
export function updateExecutionFailed(executionInfo, error, duration) {
|
|
118
|
+
return {
|
|
119
|
+
...executionInfo,
|
|
120
|
+
status: 'failed',
|
|
121
|
+
executionCount: executionInfo.executionCount + 1,
|
|
122
|
+
lastExecuted: new Date().toISOString(),
|
|
123
|
+
lastExecutionDuration: duration,
|
|
124
|
+
isExecuting: false,
|
|
125
|
+
lastError: error
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Reset node execution info
|
|
130
|
+
*/
|
|
131
|
+
export function resetExecutionInfo(executionInfo) {
|
|
132
|
+
return {
|
|
133
|
+
...executionInfo,
|
|
134
|
+
status: 'idle',
|
|
135
|
+
isExecuting: false,
|
|
136
|
+
lastError: undefined
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Format execution duration for display
|
|
141
|
+
*/
|
|
142
|
+
export function formatExecutionDuration(duration) {
|
|
143
|
+
if (!duration)
|
|
144
|
+
return 'N/A';
|
|
145
|
+
if (duration < 1000) {
|
|
146
|
+
return `${Math.round(duration)}ms`;
|
|
147
|
+
}
|
|
148
|
+
else if (duration < 60000) {
|
|
149
|
+
return `${(duration / 1000).toFixed(1)}s`;
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
const minutes = Math.floor(duration / 60000);
|
|
153
|
+
const seconds = Math.floor((duration % 60000) / 1000);
|
|
154
|
+
return `${minutes}m ${seconds}s`;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Format last executed timestamp for display
|
|
159
|
+
*/
|
|
160
|
+
export function formatLastExecuted(timestamp) {
|
|
161
|
+
if (!timestamp)
|
|
162
|
+
return 'Never';
|
|
163
|
+
const date = new Date(timestamp);
|
|
164
|
+
const now = new Date();
|
|
165
|
+
const diffMs = now.getTime() - date.getTime();
|
|
166
|
+
if (diffMs < 60000) {
|
|
167
|
+
// Less than 1 minute
|
|
168
|
+
return 'Just now';
|
|
169
|
+
}
|
|
170
|
+
else if (diffMs < 3600000) {
|
|
171
|
+
// Less than 1 hour
|
|
172
|
+
const minutes = Math.floor(diffMs / 60000);
|
|
173
|
+
return `${minutes}m ago`;
|
|
174
|
+
}
|
|
175
|
+
else if (diffMs < 86400000) {
|
|
176
|
+
// Less than 1 day
|
|
177
|
+
const hours = Math.floor(diffMs / 3600000);
|
|
178
|
+
return `${hours}h ago`;
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
return date.toLocaleDateString();
|
|
182
|
+
}
|
|
183
|
+
}
|