@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,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Spec Execution Service
|
|
3
|
+
*
|
|
4
|
+
* Connects FlowDrop to Agent Spec runtimes (WayFlow/PyAgentSpec) for
|
|
5
|
+
* workflow execution, status tracking, and result retrieval.
|
|
6
|
+
*
|
|
7
|
+
* Follows the same singleton pattern as NodeExecutionService.
|
|
8
|
+
*/
|
|
9
|
+
import type { NodeExecutionInfo } from '../types/index.js';
|
|
10
|
+
import type { StandardWorkflow } from '../adapters/WorkflowAdapter.js';
|
|
11
|
+
import type { AgentSpecEndpointConfig } from '../config/agentSpecEndpoints.js';
|
|
12
|
+
/** Result returned when starting an execution */
|
|
13
|
+
export interface AgentSpecExecutionHandle {
|
|
14
|
+
/** Unique execution ID from the runtime */
|
|
15
|
+
executionId: string;
|
|
16
|
+
/** Stop polling and clean up */
|
|
17
|
+
stop: () => void;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Service for executing FlowDrop workflows on Agent Spec runtimes.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* const service = AgentSpecExecutionService.getInstance();
|
|
25
|
+
* service.configure(myRuntimeConfig);
|
|
26
|
+
*
|
|
27
|
+
* // Check runtime availability
|
|
28
|
+
* const healthy = await service.checkHealth();
|
|
29
|
+
*
|
|
30
|
+
* // Execute a workflow
|
|
31
|
+
* const handle = await service.executeWorkflow(workflow, inputs, {
|
|
32
|
+
* onNodeUpdate: (nodeId, info) => updateNodeVisual(nodeId, info),
|
|
33
|
+
* onComplete: (results) => showResults(results),
|
|
34
|
+
* onError: (error) => showError(error)
|
|
35
|
+
* });
|
|
36
|
+
*
|
|
37
|
+
* // Cancel if needed
|
|
38
|
+
* await service.cancelExecution(handle.executionId);
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare class AgentSpecExecutionService {
|
|
42
|
+
private static instance;
|
|
43
|
+
private config;
|
|
44
|
+
private adapter;
|
|
45
|
+
private activeExecutions;
|
|
46
|
+
private constructor();
|
|
47
|
+
static getInstance(): AgentSpecExecutionService;
|
|
48
|
+
/**
|
|
49
|
+
* Configure the runtime connection.
|
|
50
|
+
*/
|
|
51
|
+
configure(config: AgentSpecEndpointConfig): void;
|
|
52
|
+
/**
|
|
53
|
+
* Check if the service has been configured with a runtime.
|
|
54
|
+
*/
|
|
55
|
+
isConfigured(): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Check runtime health.
|
|
58
|
+
*/
|
|
59
|
+
checkHealth(): Promise<boolean>;
|
|
60
|
+
/**
|
|
61
|
+
* Execute a FlowDrop workflow on the Agent Spec runtime.
|
|
62
|
+
*
|
|
63
|
+
* 1. Converts StandardWorkflow → AgentSpecFlow using the adapter
|
|
64
|
+
* 2. POSTs the flow JSON to the runtime
|
|
65
|
+
* 3. Starts polling for execution status
|
|
66
|
+
* 4. Maps runtime node statuses to FlowDrop's NodeExecutionInfo
|
|
67
|
+
*/
|
|
68
|
+
executeWorkflow(workflow: StandardWorkflow, inputs?: Record<string, unknown>, callbacks?: {
|
|
69
|
+
onNodeUpdate?: (nodeId: string, info: NodeExecutionInfo) => void;
|
|
70
|
+
onComplete?: (results: Record<string, unknown>) => void;
|
|
71
|
+
onError?: (error: Error) => void;
|
|
72
|
+
}, pollingIntervalMs?: number): Promise<AgentSpecExecutionHandle>;
|
|
73
|
+
/**
|
|
74
|
+
* Get current execution status.
|
|
75
|
+
*/
|
|
76
|
+
getExecutionStatus(executionId: string): Promise<Record<string, NodeExecutionInfo> | null>;
|
|
77
|
+
/**
|
|
78
|
+
* Cancel a running execution.
|
|
79
|
+
*/
|
|
80
|
+
cancelExecution(executionId: string): Promise<void>;
|
|
81
|
+
/**
|
|
82
|
+
* Get execution results.
|
|
83
|
+
*/
|
|
84
|
+
getResults(executionId: string): Promise<Record<string, unknown> | null>;
|
|
85
|
+
/**
|
|
86
|
+
* Validate a workflow against the runtime.
|
|
87
|
+
*/
|
|
88
|
+
validateOnRuntime(workflow: StandardWorkflow): Promise<{
|
|
89
|
+
valid: boolean;
|
|
90
|
+
errors?: string[];
|
|
91
|
+
}>;
|
|
92
|
+
/**
|
|
93
|
+
* Clean up all active executions.
|
|
94
|
+
*/
|
|
95
|
+
destroy(): void;
|
|
96
|
+
private ensureConfigured;
|
|
97
|
+
/** Get the config, throwing if not configured */
|
|
98
|
+
private getConfig;
|
|
99
|
+
private startPolling;
|
|
100
|
+
private stopPolling;
|
|
101
|
+
private mapRuntimeStatusToNodeInfo;
|
|
102
|
+
private mapSingleNodeStatus;
|
|
103
|
+
private mapToFlowDropStatus;
|
|
104
|
+
}
|
|
105
|
+
/** Singleton instance */
|
|
106
|
+
export declare const agentSpecExecutionService: AgentSpecExecutionService;
|
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Spec Execution Service
|
|
3
|
+
*
|
|
4
|
+
* Connects FlowDrop to Agent Spec runtimes (WayFlow/PyAgentSpec) for
|
|
5
|
+
* workflow execution, status tracking, and result retrieval.
|
|
6
|
+
*
|
|
7
|
+
* Follows the same singleton pattern as NodeExecutionService.
|
|
8
|
+
*/
|
|
9
|
+
import { buildAgentSpecUrl, getAgentSpecAuthHeaders } from '../config/agentSpecEndpoints.js';
|
|
10
|
+
import { AgentSpecAdapter } from '../adapters/agentspec/AgentSpecAdapter.js';
|
|
11
|
+
import { logger } from '../utils/logger.js';
|
|
12
|
+
/**
|
|
13
|
+
* Service for executing FlowDrop workflows on Agent Spec runtimes.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const service = AgentSpecExecutionService.getInstance();
|
|
18
|
+
* service.configure(myRuntimeConfig);
|
|
19
|
+
*
|
|
20
|
+
* // Check runtime availability
|
|
21
|
+
* const healthy = await service.checkHealth();
|
|
22
|
+
*
|
|
23
|
+
* // Execute a workflow
|
|
24
|
+
* const handle = await service.executeWorkflow(workflow, inputs, {
|
|
25
|
+
* onNodeUpdate: (nodeId, info) => updateNodeVisual(nodeId, info),
|
|
26
|
+
* onComplete: (results) => showResults(results),
|
|
27
|
+
* onError: (error) => showError(error)
|
|
28
|
+
* });
|
|
29
|
+
*
|
|
30
|
+
* // Cancel if needed
|
|
31
|
+
* await service.cancelExecution(handle.executionId);
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export class AgentSpecExecutionService {
|
|
35
|
+
static instance;
|
|
36
|
+
config = null;
|
|
37
|
+
adapter;
|
|
38
|
+
activeExecutions = new Map();
|
|
39
|
+
constructor() {
|
|
40
|
+
this.adapter = new AgentSpecAdapter();
|
|
41
|
+
}
|
|
42
|
+
static getInstance() {
|
|
43
|
+
if (!AgentSpecExecutionService.instance) {
|
|
44
|
+
AgentSpecExecutionService.instance = new AgentSpecExecutionService();
|
|
45
|
+
}
|
|
46
|
+
return AgentSpecExecutionService.instance;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Configure the runtime connection.
|
|
50
|
+
*/
|
|
51
|
+
configure(config) {
|
|
52
|
+
this.config = config;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Check if the service has been configured with a runtime.
|
|
56
|
+
*/
|
|
57
|
+
isConfigured() {
|
|
58
|
+
return this.config !== null;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Check runtime health.
|
|
62
|
+
*/
|
|
63
|
+
async checkHealth() {
|
|
64
|
+
if (!this.config)
|
|
65
|
+
return false;
|
|
66
|
+
try {
|
|
67
|
+
const url = buildAgentSpecUrl(this.config, this.config.endpoints.health);
|
|
68
|
+
const response = await fetch(url, {
|
|
69
|
+
headers: getAgentSpecAuthHeaders(this.config),
|
|
70
|
+
signal: AbortSignal.timeout(5000)
|
|
71
|
+
});
|
|
72
|
+
return response.ok;
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Execute a FlowDrop workflow on the Agent Spec runtime.
|
|
80
|
+
*
|
|
81
|
+
* 1. Converts StandardWorkflow → AgentSpecFlow using the adapter
|
|
82
|
+
* 2. POSTs the flow JSON to the runtime
|
|
83
|
+
* 3. Starts polling for execution status
|
|
84
|
+
* 4. Maps runtime node statuses to FlowDrop's NodeExecutionInfo
|
|
85
|
+
*/
|
|
86
|
+
async executeWorkflow(workflow, inputs, callbacks, pollingIntervalMs = 2000) {
|
|
87
|
+
this.ensureConfigured();
|
|
88
|
+
// Convert to Agent Spec format
|
|
89
|
+
const agentSpecFlow = this.adapter.toAgentSpec(workflow);
|
|
90
|
+
// POST to runtime
|
|
91
|
+
const url = buildAgentSpecUrl(this.getConfig(), this.getConfig().endpoints.execute);
|
|
92
|
+
const response = await fetch(url, {
|
|
93
|
+
method: 'POST',
|
|
94
|
+
headers: getAgentSpecAuthHeaders(this.getConfig()),
|
|
95
|
+
body: JSON.stringify({
|
|
96
|
+
flow: agentSpecFlow,
|
|
97
|
+
inputs: inputs || {}
|
|
98
|
+
}),
|
|
99
|
+
signal: AbortSignal.timeout(this.getConfig().timeout || 60000)
|
|
100
|
+
});
|
|
101
|
+
if (!response.ok) {
|
|
102
|
+
const errorText = await response.text().catch(() => 'Unknown error');
|
|
103
|
+
throw new Error(`Agent Spec runtime error (${response.status}): ${errorText}`);
|
|
104
|
+
}
|
|
105
|
+
const result = await response.json();
|
|
106
|
+
const executionId = result.execution_id || result.id;
|
|
107
|
+
if (!executionId) {
|
|
108
|
+
throw new Error('Runtime did not return an execution ID');
|
|
109
|
+
}
|
|
110
|
+
// Track execution
|
|
111
|
+
const state = {
|
|
112
|
+
id: executionId,
|
|
113
|
+
status: 'running',
|
|
114
|
+
startedAt: new Date().toISOString(),
|
|
115
|
+
nodeStatuses: {}
|
|
116
|
+
};
|
|
117
|
+
this.activeExecutions.set(executionId, state);
|
|
118
|
+
// Build node name → FlowDrop node ID mapping for status updates
|
|
119
|
+
const nameToNodeId = new Map();
|
|
120
|
+
for (const node of workflow.nodes) {
|
|
121
|
+
const label = node.data.label || node.id;
|
|
122
|
+
nameToNodeId.set(label, node.id);
|
|
123
|
+
}
|
|
124
|
+
// Start polling
|
|
125
|
+
const stop = () => this.stopPolling(executionId);
|
|
126
|
+
if (callbacks) {
|
|
127
|
+
this.startPolling(executionId, nameToNodeId, callbacks.onNodeUpdate, callbacks.onComplete, callbacks.onError, pollingIntervalMs);
|
|
128
|
+
}
|
|
129
|
+
return { executionId, stop };
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Get current execution status.
|
|
133
|
+
*/
|
|
134
|
+
async getExecutionStatus(executionId) {
|
|
135
|
+
this.ensureConfigured();
|
|
136
|
+
try {
|
|
137
|
+
const url = buildAgentSpecUrl(this.getConfig(), this.getConfig().endpoints.status, {
|
|
138
|
+
id: executionId
|
|
139
|
+
});
|
|
140
|
+
const response = await fetch(url, {
|
|
141
|
+
headers: getAgentSpecAuthHeaders(this.getConfig())
|
|
142
|
+
});
|
|
143
|
+
if (!response.ok)
|
|
144
|
+
return null;
|
|
145
|
+
const data = await response.json();
|
|
146
|
+
return this.mapRuntimeStatusToNodeInfo(data);
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Cancel a running execution.
|
|
154
|
+
*/
|
|
155
|
+
async cancelExecution(executionId) {
|
|
156
|
+
this.ensureConfigured();
|
|
157
|
+
this.stopPolling(executionId);
|
|
158
|
+
const url = buildAgentSpecUrl(this.getConfig(), this.getConfig().endpoints.cancel, {
|
|
159
|
+
id: executionId
|
|
160
|
+
});
|
|
161
|
+
await fetch(url, {
|
|
162
|
+
method: 'POST',
|
|
163
|
+
headers: getAgentSpecAuthHeaders(this.getConfig())
|
|
164
|
+
});
|
|
165
|
+
const state = this.activeExecutions.get(executionId);
|
|
166
|
+
if (state) {
|
|
167
|
+
state.status = 'cancelled';
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Get execution results.
|
|
172
|
+
*/
|
|
173
|
+
async getResults(executionId) {
|
|
174
|
+
this.ensureConfigured();
|
|
175
|
+
try {
|
|
176
|
+
const url = buildAgentSpecUrl(this.getConfig(), this.getConfig().endpoints.results, {
|
|
177
|
+
id: executionId
|
|
178
|
+
});
|
|
179
|
+
const response = await fetch(url, {
|
|
180
|
+
headers: getAgentSpecAuthHeaders(this.getConfig())
|
|
181
|
+
});
|
|
182
|
+
if (!response.ok)
|
|
183
|
+
return null;
|
|
184
|
+
return await response.json();
|
|
185
|
+
}
|
|
186
|
+
catch {
|
|
187
|
+
return null;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Validate a workflow against the runtime.
|
|
192
|
+
*/
|
|
193
|
+
async validateOnRuntime(workflow) {
|
|
194
|
+
this.ensureConfigured();
|
|
195
|
+
const agentSpecFlow = this.adapter.toAgentSpec(workflow);
|
|
196
|
+
const url = buildAgentSpecUrl(this.getConfig(), this.getConfig().endpoints.validate);
|
|
197
|
+
const response = await fetch(url, {
|
|
198
|
+
method: 'POST',
|
|
199
|
+
headers: getAgentSpecAuthHeaders(this.getConfig()),
|
|
200
|
+
body: JSON.stringify(agentSpecFlow)
|
|
201
|
+
});
|
|
202
|
+
if (!response.ok) {
|
|
203
|
+
return { valid: false, errors: [`Runtime validation failed: ${response.status}`] };
|
|
204
|
+
}
|
|
205
|
+
return await response.json();
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Clean up all active executions.
|
|
209
|
+
*/
|
|
210
|
+
destroy() {
|
|
211
|
+
for (const [id] of this.activeExecutions) {
|
|
212
|
+
this.stopPolling(id);
|
|
213
|
+
}
|
|
214
|
+
this.activeExecutions.clear();
|
|
215
|
+
}
|
|
216
|
+
// ========================================================================
|
|
217
|
+
// Private
|
|
218
|
+
// ========================================================================
|
|
219
|
+
ensureConfigured() {
|
|
220
|
+
if (!this.config) {
|
|
221
|
+
throw new Error('AgentSpecExecutionService not configured. Call configure() with runtime endpoint config first.');
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
/** Get the config, throwing if not configured */
|
|
225
|
+
getConfig() {
|
|
226
|
+
this.ensureConfigured();
|
|
227
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
228
|
+
return this.config;
|
|
229
|
+
}
|
|
230
|
+
startPolling(executionId, nameToNodeId, onNodeUpdate, onComplete, onError, intervalMs = 2000) {
|
|
231
|
+
const state = this.activeExecutions.get(executionId);
|
|
232
|
+
if (!state)
|
|
233
|
+
return;
|
|
234
|
+
const poll = async () => {
|
|
235
|
+
try {
|
|
236
|
+
const url = buildAgentSpecUrl(this.getConfig(), this.getConfig().endpoints.status, {
|
|
237
|
+
id: executionId
|
|
238
|
+
});
|
|
239
|
+
const response = await fetch(url, {
|
|
240
|
+
headers: getAgentSpecAuthHeaders(this.getConfig())
|
|
241
|
+
});
|
|
242
|
+
if (!response.ok) {
|
|
243
|
+
throw new Error(`Status check failed: ${response.status}`);
|
|
244
|
+
}
|
|
245
|
+
const data = await response.json();
|
|
246
|
+
const executionStatus = data.status || data.execution_status;
|
|
247
|
+
// Map node statuses
|
|
248
|
+
const nodeStatuses = data.node_statuses || data.nodes || {};
|
|
249
|
+
for (const [nodeName, status] of Object.entries(nodeStatuses)) {
|
|
250
|
+
const nodeId = nameToNodeId.get(nodeName) || nodeName;
|
|
251
|
+
const info = this.mapSingleNodeStatus(status);
|
|
252
|
+
state.nodeStatuses[nodeId] = info;
|
|
253
|
+
onNodeUpdate?.(nodeId, info);
|
|
254
|
+
}
|
|
255
|
+
// Check if execution is done
|
|
256
|
+
if (executionStatus === 'completed' || executionStatus === 'success') {
|
|
257
|
+
state.status = 'completed';
|
|
258
|
+
this.stopPolling(executionId);
|
|
259
|
+
const results = await this.getResults(executionId);
|
|
260
|
+
onComplete?.(results || {});
|
|
261
|
+
}
|
|
262
|
+
else if (executionStatus === 'failed' || executionStatus === 'error') {
|
|
263
|
+
state.status = 'failed';
|
|
264
|
+
this.stopPolling(executionId);
|
|
265
|
+
const errorMsg = data.error || data.message || 'Execution failed';
|
|
266
|
+
onError?.(new Error(errorMsg));
|
|
267
|
+
}
|
|
268
|
+
else if (executionStatus === 'cancelled') {
|
|
269
|
+
state.status = 'cancelled';
|
|
270
|
+
this.stopPolling(executionId);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
catch (error) {
|
|
274
|
+
// Don't stop polling on transient errors — let it retry
|
|
275
|
+
logger.error('[AgentSpecExecution] Polling error:', error);
|
|
276
|
+
}
|
|
277
|
+
};
|
|
278
|
+
// Initial poll immediately, then at interval
|
|
279
|
+
poll();
|
|
280
|
+
state.pollingInterval = setInterval(poll, intervalMs);
|
|
281
|
+
}
|
|
282
|
+
stopPolling(executionId) {
|
|
283
|
+
const state = this.activeExecutions.get(executionId);
|
|
284
|
+
if (state?.pollingInterval) {
|
|
285
|
+
clearInterval(state.pollingInterval);
|
|
286
|
+
state.pollingInterval = undefined;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
mapRuntimeStatusToNodeInfo(data) {
|
|
290
|
+
const result = {};
|
|
291
|
+
const nodeStatuses = (data.node_statuses || data.nodes || {});
|
|
292
|
+
for (const [nodeName, status] of Object.entries(nodeStatuses)) {
|
|
293
|
+
result[nodeName] = this.mapSingleNodeStatus(status);
|
|
294
|
+
}
|
|
295
|
+
return result;
|
|
296
|
+
}
|
|
297
|
+
mapSingleNodeStatus(status) {
|
|
298
|
+
const runtimeStatus = (status.status || status.state || 'idle');
|
|
299
|
+
return {
|
|
300
|
+
status: this.mapToFlowDropStatus(runtimeStatus),
|
|
301
|
+
executionCount: status.execution_count || 0,
|
|
302
|
+
isExecuting: runtimeStatus === 'running' || runtimeStatus === 'executing',
|
|
303
|
+
lastExecuted: status.started_at,
|
|
304
|
+
lastExecutionDuration: status.duration_ms,
|
|
305
|
+
lastError: status.error
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
mapToFlowDropStatus(runtimeStatus) {
|
|
309
|
+
switch (runtimeStatus) {
|
|
310
|
+
case 'running':
|
|
311
|
+
case 'executing':
|
|
312
|
+
return 'running';
|
|
313
|
+
case 'completed':
|
|
314
|
+
case 'success':
|
|
315
|
+
case 'done':
|
|
316
|
+
return 'completed';
|
|
317
|
+
case 'failed':
|
|
318
|
+
case 'error':
|
|
319
|
+
return 'failed';
|
|
320
|
+
case 'cancelled':
|
|
321
|
+
case 'canceled':
|
|
322
|
+
return 'cancelled';
|
|
323
|
+
case 'pending':
|
|
324
|
+
case 'queued':
|
|
325
|
+
return 'pending';
|
|
326
|
+
case 'skipped':
|
|
327
|
+
return 'skipped';
|
|
328
|
+
default:
|
|
329
|
+
return 'idle';
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
/** Singleton instance */
|
|
334
|
+
export const agentSpecExecutionService = AgentSpecExecutionService.getInstance();
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Client-side API service for FlowDrop
|
|
3
|
+
* Provides methods to interact with the backend APIs using configurable endpoints
|
|
4
|
+
*/
|
|
5
|
+
import type { NodeMetadata, Workflow } from '../types/index.js';
|
|
6
|
+
import type { EndpointConfig } from '../config/endpoints.js';
|
|
7
|
+
/**
|
|
8
|
+
* Set the endpoint configuration at runtime
|
|
9
|
+
*/
|
|
10
|
+
export declare function setEndpointConfig(config: EndpointConfig): void;
|
|
11
|
+
/**
|
|
12
|
+
* Get the current endpoint configuration
|
|
13
|
+
*/
|
|
14
|
+
export declare function getEndpointConfig(): EndpointConfig | null;
|
|
15
|
+
/**
|
|
16
|
+
* Node API methods
|
|
17
|
+
*/
|
|
18
|
+
export declare const nodeApi: {
|
|
19
|
+
/**
|
|
20
|
+
* Get all node types with optional filtering
|
|
21
|
+
*/
|
|
22
|
+
getNodes(options?: {
|
|
23
|
+
category?: string;
|
|
24
|
+
search?: string;
|
|
25
|
+
limit?: number;
|
|
26
|
+
offset?: number;
|
|
27
|
+
}): Promise<NodeMetadata[]>;
|
|
28
|
+
/**
|
|
29
|
+
* Get a specific node type by ID
|
|
30
|
+
*/
|
|
31
|
+
getNode(id: string): Promise<NodeMetadata>;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Workflow API methods
|
|
35
|
+
*/
|
|
36
|
+
export declare const workflowApi: {
|
|
37
|
+
/**
|
|
38
|
+
* Get all workflows with optional filtering
|
|
39
|
+
*/
|
|
40
|
+
getWorkflows(options?: {
|
|
41
|
+
search?: string;
|
|
42
|
+
limit?: number;
|
|
43
|
+
offset?: number;
|
|
44
|
+
}): Promise<Workflow[]>;
|
|
45
|
+
/**
|
|
46
|
+
* Get a specific workflow by ID
|
|
47
|
+
*/
|
|
48
|
+
getWorkflow(id: string): Promise<Workflow>;
|
|
49
|
+
/**
|
|
50
|
+
* Create a new workflow
|
|
51
|
+
*/
|
|
52
|
+
createWorkflow(workflow: Omit<Workflow, "id">): Promise<Workflow>;
|
|
53
|
+
/**
|
|
54
|
+
* Update an existing workflow
|
|
55
|
+
*/
|
|
56
|
+
updateWorkflow(id: string, workflow: Partial<Workflow>): Promise<Workflow>;
|
|
57
|
+
/**
|
|
58
|
+
* Delete a workflow
|
|
59
|
+
*/
|
|
60
|
+
deleteWorkflow(id: string): Promise<void>;
|
|
61
|
+
/**
|
|
62
|
+
* Save workflow (create or update)
|
|
63
|
+
*/
|
|
64
|
+
saveWorkflow(workflow: Workflow): Promise<Workflow>;
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Export the API service
|
|
68
|
+
*/
|
|
69
|
+
export declare const api: {
|
|
70
|
+
nodes: {
|
|
71
|
+
/**
|
|
72
|
+
* Get all node types with optional filtering
|
|
73
|
+
*/
|
|
74
|
+
getNodes(options?: {
|
|
75
|
+
category?: string;
|
|
76
|
+
search?: string;
|
|
77
|
+
limit?: number;
|
|
78
|
+
offset?: number;
|
|
79
|
+
}): Promise<NodeMetadata[]>;
|
|
80
|
+
/**
|
|
81
|
+
* Get a specific node type by ID
|
|
82
|
+
*/
|
|
83
|
+
getNode(id: string): Promise<NodeMetadata>;
|
|
84
|
+
};
|
|
85
|
+
workflows: {
|
|
86
|
+
/**
|
|
87
|
+
* Get all workflows with optional filtering
|
|
88
|
+
*/
|
|
89
|
+
getWorkflows(options?: {
|
|
90
|
+
search?: string;
|
|
91
|
+
limit?: number;
|
|
92
|
+
offset?: number;
|
|
93
|
+
}): Promise<Workflow[]>;
|
|
94
|
+
/**
|
|
95
|
+
* Get a specific workflow by ID
|
|
96
|
+
*/
|
|
97
|
+
getWorkflow(id: string): Promise<Workflow>;
|
|
98
|
+
/**
|
|
99
|
+
* Create a new workflow
|
|
100
|
+
*/
|
|
101
|
+
createWorkflow(workflow: Omit<Workflow, "id">): Promise<Workflow>;
|
|
102
|
+
/**
|
|
103
|
+
* Update an existing workflow
|
|
104
|
+
*/
|
|
105
|
+
updateWorkflow(id: string, workflow: Partial<Workflow>): Promise<Workflow>;
|
|
106
|
+
/**
|
|
107
|
+
* Delete a workflow
|
|
108
|
+
*/
|
|
109
|
+
deleteWorkflow(id: string): Promise<void>;
|
|
110
|
+
/**
|
|
111
|
+
* Save workflow (create or update)
|
|
112
|
+
*/
|
|
113
|
+
saveWorkflow(workflow: Workflow): Promise<Workflow>;
|
|
114
|
+
};
|
|
115
|
+
};
|