@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,169 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Spec Validator
|
|
3
|
+
*
|
|
4
|
+
* Validates workflows against Agent Spec constraints for export,
|
|
5
|
+
* and validates imported Agent Spec documents for correctness.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Validate a FlowDrop StandardWorkflow for Agent Spec export compatibility.
|
|
9
|
+
*
|
|
10
|
+
* Checks:
|
|
11
|
+
* - Must have exactly 1 start node (terminal/triggers)
|
|
12
|
+
* - Must have at least 1 end node (terminal/outputs)
|
|
13
|
+
* - Gateway nodes must have branches defined
|
|
14
|
+
*/
|
|
15
|
+
export function validateForAgentSpecExport(workflow) {
|
|
16
|
+
const errors = [];
|
|
17
|
+
const warnings = [];
|
|
18
|
+
if (workflow.nodes.length === 0) {
|
|
19
|
+
errors.push('Workflow has no nodes');
|
|
20
|
+
return { valid: false, errors, warnings };
|
|
21
|
+
}
|
|
22
|
+
// Check for start nodes
|
|
23
|
+
const startNodes = workflow.nodes.filter((n) => {
|
|
24
|
+
const ext = n.data.metadata.extensions?.['agentspec:component_type'];
|
|
25
|
+
if (ext === 'start_node')
|
|
26
|
+
return true;
|
|
27
|
+
return n.data.metadata.type === 'terminal' && n.data.metadata.category === 'triggers';
|
|
28
|
+
});
|
|
29
|
+
if (startNodes.length === 0) {
|
|
30
|
+
errors.push('Agent Spec requires exactly one StartNode. No start node found (terminal node with triggers category).');
|
|
31
|
+
}
|
|
32
|
+
else if (startNodes.length > 1) {
|
|
33
|
+
errors.push(`Agent Spec requires exactly one StartNode. Found ${startNodes.length}: ${startNodes.map((n) => n.id).join(', ')}`);
|
|
34
|
+
}
|
|
35
|
+
// Check for end nodes
|
|
36
|
+
const endNodes = workflow.nodes.filter((n) => {
|
|
37
|
+
const ext = n.data.metadata.extensions?.['agentspec:component_type'];
|
|
38
|
+
if (ext === 'end_node')
|
|
39
|
+
return true;
|
|
40
|
+
return n.data.metadata.type === 'terminal' && n.data.metadata.category === 'outputs';
|
|
41
|
+
});
|
|
42
|
+
if (endNodes.length === 0) {
|
|
43
|
+
errors.push('Agent Spec requires at least one EndNode. No end node found (terminal node with outputs category).');
|
|
44
|
+
}
|
|
45
|
+
// Check gateway nodes have branches
|
|
46
|
+
const gatewayNodes = workflow.nodes.filter((n) => {
|
|
47
|
+
const ext = n.data.metadata.extensions?.['agentspec:component_type'];
|
|
48
|
+
return ext === 'branching_node' || n.data.metadata.type === 'gateway';
|
|
49
|
+
});
|
|
50
|
+
for (const gw of gatewayNodes) {
|
|
51
|
+
const branches = gw.data.config?.branches;
|
|
52
|
+
if (!branches || !Array.isArray(branches) || branches.length === 0) {
|
|
53
|
+
warnings.push(`Gateway node "${gw.data.label || gw.id}" has no branches defined. Agent Spec BranchingNode requires at least one branch.`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
// Check for disconnected nodes
|
|
57
|
+
const connectedNodes = new Set();
|
|
58
|
+
for (const edge of workflow.edges) {
|
|
59
|
+
connectedNodes.add(edge.source);
|
|
60
|
+
connectedNodes.add(edge.target);
|
|
61
|
+
}
|
|
62
|
+
const disconnected = workflow.nodes.filter((n) => !connectedNodes.has(n.id));
|
|
63
|
+
if (disconnected.length > 0) {
|
|
64
|
+
warnings.push(`${disconnected.length} node(s) are not connected to any edges: ${disconnected.map((n) => n.data.label || n.id).join(', ')}`);
|
|
65
|
+
}
|
|
66
|
+
return { valid: errors.length === 0, errors, warnings };
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Validate an imported Agent Spec Flow document.
|
|
70
|
+
*
|
|
71
|
+
* Checks:
|
|
72
|
+
* - Has a start_node reference that exists
|
|
73
|
+
* - At least one end_node exists
|
|
74
|
+
* - All edge references point to existing nodes
|
|
75
|
+
* - BranchingNode has branches
|
|
76
|
+
* - Data flow edges reference valid properties
|
|
77
|
+
*/
|
|
78
|
+
export function validateAgentSpecFlow(flow) {
|
|
79
|
+
const errors = [];
|
|
80
|
+
const warnings = [];
|
|
81
|
+
if (!flow.nodes || flow.nodes.length === 0) {
|
|
82
|
+
errors.push('Flow has no nodes');
|
|
83
|
+
return { valid: false, errors, warnings };
|
|
84
|
+
}
|
|
85
|
+
// Build node name set
|
|
86
|
+
const nodeNames = new Set(flow.nodes.map((n) => n.name));
|
|
87
|
+
// Check start_node exists
|
|
88
|
+
if (!flow.start_node) {
|
|
89
|
+
errors.push('Flow is missing start_node reference');
|
|
90
|
+
}
|
|
91
|
+
else if (!nodeNames.has(flow.start_node)) {
|
|
92
|
+
errors.push(`start_node "${flow.start_node}" does not match any node name`);
|
|
93
|
+
}
|
|
94
|
+
// Check start_node is actually a start_node type
|
|
95
|
+
const startNode = flow.nodes.find((n) => n.name === flow.start_node);
|
|
96
|
+
if (startNode && startNode.component_type !== 'start_node') {
|
|
97
|
+
warnings.push(`start_node "${flow.start_node}" has component_type "${startNode.component_type}" instead of "start_node"`);
|
|
98
|
+
}
|
|
99
|
+
// Check for end nodes
|
|
100
|
+
const endNodes = flow.nodes.filter((n) => n.component_type === 'end_node');
|
|
101
|
+
if (endNodes.length === 0) {
|
|
102
|
+
warnings.push('Flow has no EndNode. Consider adding one for clarity.');
|
|
103
|
+
}
|
|
104
|
+
// Check for duplicate node names
|
|
105
|
+
const nameCount = new Map();
|
|
106
|
+
for (const node of flow.nodes) {
|
|
107
|
+
nameCount.set(node.name, (nameCount.get(node.name) || 0) + 1);
|
|
108
|
+
}
|
|
109
|
+
for (const [name, count] of nameCount) {
|
|
110
|
+
if (count > 1) {
|
|
111
|
+
errors.push(`Duplicate node name: "${name}" appears ${count} times`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
// Validate control-flow edges
|
|
115
|
+
for (const edge of flow.control_flow_connections) {
|
|
116
|
+
if (!nodeNames.has(edge.from_node)) {
|
|
117
|
+
errors.push(`Control flow edge "${edge.name}" references non-existent from_node "${edge.from_node}"`);
|
|
118
|
+
}
|
|
119
|
+
if (!nodeNames.has(edge.to_node)) {
|
|
120
|
+
errors.push(`Control flow edge "${edge.name}" references non-existent to_node "${edge.to_node}"`);
|
|
121
|
+
}
|
|
122
|
+
// Validate from_branch references
|
|
123
|
+
if (edge.from_branch) {
|
|
124
|
+
const fromNode = flow.nodes.find((n) => n.name === edge.from_node);
|
|
125
|
+
if (fromNode && fromNode.component_type === 'branching_node') {
|
|
126
|
+
const branchingNode = fromNode;
|
|
127
|
+
if (!branchingNode.branches?.some((b) => b.name === edge.from_branch)) {
|
|
128
|
+
errors.push(`Control flow edge "${edge.name}" references branch "${edge.from_branch}" which doesn't exist on node "${edge.from_node}"`);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
// Validate data-flow edges
|
|
134
|
+
if (flow.data_flow_connections) {
|
|
135
|
+
for (const edge of flow.data_flow_connections) {
|
|
136
|
+
if (!nodeNames.has(edge.source_node)) {
|
|
137
|
+
errors.push(`Data flow edge "${edge.name}" references non-existent source_node "${edge.source_node}"`);
|
|
138
|
+
}
|
|
139
|
+
if (!nodeNames.has(edge.destination_node)) {
|
|
140
|
+
errors.push(`Data flow edge "${edge.name}" references non-existent destination_node "${edge.destination_node}"`);
|
|
141
|
+
}
|
|
142
|
+
// Check that output/input properties exist on the nodes
|
|
143
|
+
const sourceNode = flow.nodes.find((n) => n.name === edge.source_node);
|
|
144
|
+
if (sourceNode?.outputs) {
|
|
145
|
+
const hasOutput = sourceNode.outputs.some((o) => o.title === edge.source_output);
|
|
146
|
+
if (!hasOutput) {
|
|
147
|
+
warnings.push(`Data flow edge "${edge.name}": source node "${edge.source_node}" has no output named "${edge.source_output}"`);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
const destNode = flow.nodes.find((n) => n.name === edge.destination_node);
|
|
151
|
+
if (destNode?.inputs) {
|
|
152
|
+
const hasInput = destNode.inputs.some((i) => i.title === edge.destination_input);
|
|
153
|
+
if (!hasInput) {
|
|
154
|
+
warnings.push(`Data flow edge "${edge.name}": destination node "${edge.destination_node}" has no input named "${edge.destination_input}"`);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
// Validate branching nodes have branches
|
|
160
|
+
for (const node of flow.nodes) {
|
|
161
|
+
if (node.component_type === 'branching_node') {
|
|
162
|
+
const bn = node;
|
|
163
|
+
if (!bn.branches || bn.branches.length === 0) {
|
|
164
|
+
warnings.push(`BranchingNode "${node.name}" has no branches defined`);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
return { valid: errors.length === 0, errors, warnings };
|
|
169
|
+
}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enhanced API Client for FlowDrop
|
|
3
|
+
*
|
|
4
|
+
* Uses configurable endpoints and supports pluggable authentication providers.
|
|
5
|
+
*
|
|
6
|
+
* @module api/enhanced-client
|
|
7
|
+
*/
|
|
8
|
+
import type { NodeMetadata, Workflow, ExecutionResult } from '../types/index.js';
|
|
9
|
+
import type { EndpointConfig } from '../config/endpoints.js';
|
|
10
|
+
import type { AuthProvider } from '../types/auth.js';
|
|
11
|
+
/**
|
|
12
|
+
* API error with additional context
|
|
13
|
+
*/
|
|
14
|
+
export declare class ApiError extends Error {
|
|
15
|
+
/** HTTP status code */
|
|
16
|
+
readonly status: number;
|
|
17
|
+
/** Original error data from API */
|
|
18
|
+
readonly errorData: Record<string, unknown>;
|
|
19
|
+
/** Operation that was being performed */
|
|
20
|
+
readonly operation: string;
|
|
21
|
+
constructor(message: string, status: number, operation: string, errorData?: Record<string, unknown>);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Enhanced HTTP API client for FlowDrop with configurable endpoints
|
|
25
|
+
*
|
|
26
|
+
* Supports pluggable authentication via AuthProvider interface.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* // With AuthProvider
|
|
31
|
+
* const client = new EnhancedFlowDropApiClient(config, authProvider);
|
|
32
|
+
*
|
|
33
|
+
* // Without authentication
|
|
34
|
+
* const client = new EnhancedFlowDropApiClient(config);
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export declare class EnhancedFlowDropApiClient {
|
|
38
|
+
private config;
|
|
39
|
+
private authProvider;
|
|
40
|
+
/**
|
|
41
|
+
* Create a new EnhancedFlowDropApiClient
|
|
42
|
+
*
|
|
43
|
+
* @param config - Endpoint configuration
|
|
44
|
+
* @param authProvider - Optional authentication provider (defaults to NoAuthProvider)
|
|
45
|
+
*/
|
|
46
|
+
constructor(config: EndpointConfig, authProvider?: AuthProvider);
|
|
47
|
+
/**
|
|
48
|
+
* Make HTTP request with error handling, retry logic, timeout, and auth support
|
|
49
|
+
*
|
|
50
|
+
* Uses apiSettings for timeout and retry configuration, falling back to EndpointConfig values.
|
|
51
|
+
*
|
|
52
|
+
* @param endpointKey - Key identifying the endpoint (for method/header lookup)
|
|
53
|
+
* @param endpointPath - The endpoint path template
|
|
54
|
+
* @param params - URL parameters to substitute
|
|
55
|
+
* @param options - Additional fetch options
|
|
56
|
+
* @param operation - Description of the operation (for error messages)
|
|
57
|
+
*/
|
|
58
|
+
private request;
|
|
59
|
+
/**
|
|
60
|
+
* Update the auth provider
|
|
61
|
+
*
|
|
62
|
+
* Useful for updating auth after token refresh in parent application.
|
|
63
|
+
* Note: Per specification, this should rarely be needed as auth is typically
|
|
64
|
+
* set at mount time and requires remount to change.
|
|
65
|
+
*
|
|
66
|
+
* @param authProvider - New authentication provider
|
|
67
|
+
*/
|
|
68
|
+
setAuthProvider(authProvider: AuthProvider): void;
|
|
69
|
+
/**
|
|
70
|
+
* Get current auth provider
|
|
71
|
+
*
|
|
72
|
+
* @returns The current AuthProvider instance
|
|
73
|
+
*/
|
|
74
|
+
getAuthProvider(): AuthProvider;
|
|
75
|
+
/**
|
|
76
|
+
* Fetch all available node types
|
|
77
|
+
*/
|
|
78
|
+
getAvailableNodes(): Promise<NodeMetadata[]>;
|
|
79
|
+
/**
|
|
80
|
+
* Fetch nodes filtered by category
|
|
81
|
+
*/
|
|
82
|
+
getNodesByCategory(category: string): Promise<NodeMetadata[]>;
|
|
83
|
+
/**
|
|
84
|
+
* Fetch metadata for a specific node type
|
|
85
|
+
*/
|
|
86
|
+
getNodeMetadata(nodeId: string): Promise<NodeMetadata>;
|
|
87
|
+
/**
|
|
88
|
+
* Save a new workflow
|
|
89
|
+
*/
|
|
90
|
+
saveWorkflow(workflow: Workflow): Promise<Workflow>;
|
|
91
|
+
/**
|
|
92
|
+
* Update an existing workflow
|
|
93
|
+
*/
|
|
94
|
+
updateWorkflow(workflowId: string, workflow: Partial<Workflow>): Promise<Workflow>;
|
|
95
|
+
/**
|
|
96
|
+
* Load a workflow by ID
|
|
97
|
+
*/
|
|
98
|
+
loadWorkflow(workflowId: string): Promise<Workflow>;
|
|
99
|
+
/**
|
|
100
|
+
* List all workflows
|
|
101
|
+
*/
|
|
102
|
+
listWorkflows(): Promise<Workflow[]>;
|
|
103
|
+
/**
|
|
104
|
+
* Delete a workflow
|
|
105
|
+
*/
|
|
106
|
+
deleteWorkflow(workflowId: string): Promise<void>;
|
|
107
|
+
/**
|
|
108
|
+
* Validate a workflow
|
|
109
|
+
*/
|
|
110
|
+
validateWorkflow(workflow: Workflow): Promise<{
|
|
111
|
+
valid: boolean;
|
|
112
|
+
errors: string[];
|
|
113
|
+
}>;
|
|
114
|
+
/**
|
|
115
|
+
* Export a workflow as JSON string
|
|
116
|
+
*/
|
|
117
|
+
exportWorkflow(workflowId: string): Promise<string>;
|
|
118
|
+
/**
|
|
119
|
+
* Import a workflow from JSON
|
|
120
|
+
*/
|
|
121
|
+
importWorkflow(workflowJson: string): Promise<Workflow>;
|
|
122
|
+
/**
|
|
123
|
+
* Execute a workflow
|
|
124
|
+
*/
|
|
125
|
+
executeWorkflow(workflowId: string, inputs?: Record<string, unknown>): Promise<ExecutionResult>;
|
|
126
|
+
/**
|
|
127
|
+
* Get execution status
|
|
128
|
+
*/
|
|
129
|
+
getExecutionStatus(executionId: string): Promise<ExecutionResult>;
|
|
130
|
+
/**
|
|
131
|
+
* Cancel a running execution
|
|
132
|
+
*/
|
|
133
|
+
cancelExecution(executionId: string): Promise<void>;
|
|
134
|
+
/**
|
|
135
|
+
* Get execution logs
|
|
136
|
+
*/
|
|
137
|
+
getExecutionLogs(executionId: string): Promise<string[]>;
|
|
138
|
+
/**
|
|
139
|
+
* List available templates
|
|
140
|
+
*/
|
|
141
|
+
listTemplates(): Promise<Workflow[]>;
|
|
142
|
+
/**
|
|
143
|
+
* Get a template by ID
|
|
144
|
+
*/
|
|
145
|
+
getTemplate(templateId: string): Promise<Workflow>;
|
|
146
|
+
/**
|
|
147
|
+
* Get system health status
|
|
148
|
+
*/
|
|
149
|
+
getSystemHealth(): Promise<{
|
|
150
|
+
status: string;
|
|
151
|
+
timestamp: number;
|
|
152
|
+
}>;
|
|
153
|
+
/**
|
|
154
|
+
* Get system configuration
|
|
155
|
+
*/
|
|
156
|
+
getSystemConfig(): Promise<Record<string, unknown>>;
|
|
157
|
+
/**
|
|
158
|
+
* Get system version information
|
|
159
|
+
*/
|
|
160
|
+
getSystemVersion(): Promise<{
|
|
161
|
+
version: string;
|
|
162
|
+
build: string;
|
|
163
|
+
}>;
|
|
164
|
+
/**
|
|
165
|
+
* Fetch pipeline data including job information and status
|
|
166
|
+
*/
|
|
167
|
+
getPipelineData(pipelineId: string): Promise<{
|
|
168
|
+
status: string;
|
|
169
|
+
jobs: Array<Record<string, unknown>>;
|
|
170
|
+
node_statuses: Record<string, {
|
|
171
|
+
status: string;
|
|
172
|
+
[key: string]: unknown;
|
|
173
|
+
}>;
|
|
174
|
+
job_status_summary: {
|
|
175
|
+
total: number;
|
|
176
|
+
pending: number;
|
|
177
|
+
running: number;
|
|
178
|
+
completed: number;
|
|
179
|
+
failed: number;
|
|
180
|
+
cancelled: number;
|
|
181
|
+
};
|
|
182
|
+
}>;
|
|
183
|
+
}
|