@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,351 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Playground Types
|
|
3
|
+
*
|
|
4
|
+
* TypeScript types for the Playground feature, enabling interactive
|
|
5
|
+
* workflow testing with chat interface and session management.
|
|
6
|
+
*
|
|
7
|
+
* @module types/playground
|
|
8
|
+
*/
|
|
9
|
+
import type { ConfigProperty } from './index.js';
|
|
10
|
+
/**
|
|
11
|
+
* Status of a playground session
|
|
12
|
+
*/
|
|
13
|
+
export type PlaygroundSessionStatus = 'idle' | 'running' | 'awaiting_input' | 'completed' | 'failed';
|
|
14
|
+
/**
|
|
15
|
+
* Statuses that stop polling by default (resource efficiency)
|
|
16
|
+
*/
|
|
17
|
+
export declare const DEFAULT_STOP_POLLING_STATUSES: PlaygroundSessionStatus[];
|
|
18
|
+
/**
|
|
19
|
+
* Statuses that are considered terminal by default (clears isExecuting)
|
|
20
|
+
*/
|
|
21
|
+
export declare const DEFAULT_TERMINAL_STATUSES: PlaygroundSessionStatus[];
|
|
22
|
+
/**
|
|
23
|
+
* Default implementation for determining if polling should stop.
|
|
24
|
+
* Consumers can override this via PlaygroundConfig.shouldStopPolling.
|
|
25
|
+
*
|
|
26
|
+
* @param status - The current session status
|
|
27
|
+
* @returns True if polling should stop
|
|
28
|
+
*/
|
|
29
|
+
export declare function defaultShouldStopPolling(status: PlaygroundSessionStatus): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Default implementation for determining if a status is terminal (clears isExecuting).
|
|
32
|
+
* Consumers can override this via PlaygroundConfig.isTerminalStatus.
|
|
33
|
+
*
|
|
34
|
+
* @param status - The current session status
|
|
35
|
+
* @returns True if the status is terminal
|
|
36
|
+
*/
|
|
37
|
+
export declare function defaultIsTerminalStatus(status: PlaygroundSessionStatus): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Role of a message sender in the playground
|
|
40
|
+
*
|
|
41
|
+
* - `user`: Message from the user
|
|
42
|
+
* - `assistant`: Response from the workflow/AI
|
|
43
|
+
* - `system`: System notifications
|
|
44
|
+
* - `log`: Execution log entries
|
|
45
|
+
*/
|
|
46
|
+
export type PlaygroundMessageRole = 'user' | 'assistant' | 'system' | 'log';
|
|
47
|
+
/**
|
|
48
|
+
* Log level for log-type messages
|
|
49
|
+
*/
|
|
50
|
+
export type PlaygroundMessageLevel = 'info' | 'warning' | 'error' | 'debug';
|
|
51
|
+
/**
|
|
52
|
+
* Status of a playground message
|
|
53
|
+
*/
|
|
54
|
+
export type PlaygroundMessageStatus = 'pending' | 'processing' | 'completed' | 'failed';
|
|
55
|
+
/**
|
|
56
|
+
* Playground session representing a test conversation
|
|
57
|
+
*
|
|
58
|
+
* Sessions maintain conversation history and allow interactive testing
|
|
59
|
+
* of workflows in an isolated environment.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```typescript
|
|
63
|
+
* const session: PlaygroundSession = {
|
|
64
|
+
* id: "sess-123",
|
|
65
|
+
* workflowId: "wf-456",
|
|
66
|
+
* name: "Test Session 1",
|
|
67
|
+
* status: "idle",
|
|
68
|
+
* createdAt: "2024-01-20T10:00:00Z",
|
|
69
|
+
* updatedAt: "2024-01-20T10:30:00Z"
|
|
70
|
+
* };
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
export interface PlaygroundSession {
|
|
74
|
+
/** Session unique identifier */
|
|
75
|
+
id: string;
|
|
76
|
+
/** Associated workflow ID */
|
|
77
|
+
workflowId: string;
|
|
78
|
+
/** Session display name */
|
|
79
|
+
name: string;
|
|
80
|
+
/** Current session status */
|
|
81
|
+
status: PlaygroundSessionStatus;
|
|
82
|
+
/** Session creation timestamp (ISO 8601) */
|
|
83
|
+
createdAt: string;
|
|
84
|
+
/** Last activity timestamp (ISO 8601) */
|
|
85
|
+
updatedAt: string;
|
|
86
|
+
/** Custom session metadata */
|
|
87
|
+
metadata?: Record<string, unknown>;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Message metadata containing additional context
|
|
91
|
+
*/
|
|
92
|
+
export interface PlaygroundMessageMetadata {
|
|
93
|
+
/** Log level for log-type messages */
|
|
94
|
+
level?: PlaygroundMessageLevel;
|
|
95
|
+
/** Execution duration in milliseconds */
|
|
96
|
+
duration?: number;
|
|
97
|
+
/** Human-readable node label */
|
|
98
|
+
nodeLabel?: string;
|
|
99
|
+
/** Node output data */
|
|
100
|
+
outputs?: Record<string, unknown>;
|
|
101
|
+
/** User's display name for user-role messages (from backend) */
|
|
102
|
+
userName?: string;
|
|
103
|
+
/** Allow additional properties */
|
|
104
|
+
[key: string]: unknown;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Message in a playground session
|
|
108
|
+
*
|
|
109
|
+
* Messages can be user inputs, assistant responses, system notifications,
|
|
110
|
+
* or execution logs. Each message is timestamped and can be associated
|
|
111
|
+
* with a specific workflow node.
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* ```typescript
|
|
115
|
+
* const message: PlaygroundMessage = {
|
|
116
|
+
* id: "msg-123",
|
|
117
|
+
* sessionId: "sess-456",
|
|
118
|
+
* role: "assistant",
|
|
119
|
+
* content: "I've analyzed your data and found 3 patterns.",
|
|
120
|
+
* timestamp: "2024-01-20T10:30:00Z",
|
|
121
|
+
* nodeId: "node-ai-analyzer",
|
|
122
|
+
* metadata: { duration: 2500, nodeLabel: "AI Analyzer" }
|
|
123
|
+
* };
|
|
124
|
+
* ```
|
|
125
|
+
*/
|
|
126
|
+
export interface PlaygroundMessage {
|
|
127
|
+
/** Message unique identifier */
|
|
128
|
+
id: string;
|
|
129
|
+
/** Parent session ID */
|
|
130
|
+
sessionId: string;
|
|
131
|
+
/** Role of the message sender */
|
|
132
|
+
role: PlaygroundMessageRole;
|
|
133
|
+
/** Message content */
|
|
134
|
+
content: string;
|
|
135
|
+
/** Message timestamp (ISO 8601) */
|
|
136
|
+
timestamp: string;
|
|
137
|
+
/** Message status */
|
|
138
|
+
status?: PlaygroundMessageStatus;
|
|
139
|
+
/**
|
|
140
|
+
* Sequence number for ordering messages
|
|
141
|
+
* - User messages: incrementing numbers (1, 2, 3, ...)
|
|
142
|
+
* - Assistant/system responses: 0 (sorted after parent via parentMessageId)
|
|
143
|
+
*/
|
|
144
|
+
sequenceNumber?: number;
|
|
145
|
+
/** Parent message ID (for assistant responses linked to user messages) */
|
|
146
|
+
parentMessageId?: string;
|
|
147
|
+
/** Associated node ID (for log/assistant messages) */
|
|
148
|
+
nodeId?: string | null;
|
|
149
|
+
/** Additional message metadata */
|
|
150
|
+
metadata?: PlaygroundMessageMetadata;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Input field derived from workflow input nodes
|
|
154
|
+
*
|
|
155
|
+
* Used to auto-generate input forms in the playground based on
|
|
156
|
+
* the workflow's input nodes' configSchema.
|
|
157
|
+
*
|
|
158
|
+
* @example
|
|
159
|
+
* ```typescript
|
|
160
|
+
* const inputField: PlaygroundInputField = {
|
|
161
|
+
* nodeId: "node-text-input",
|
|
162
|
+
* fieldId: "user_message",
|
|
163
|
+
* label: "User Message",
|
|
164
|
+
* type: "string",
|
|
165
|
+
* defaultValue: "Hello!",
|
|
166
|
+
* required: true,
|
|
167
|
+
* schema: { type: "string", format: "multiline" }
|
|
168
|
+
* };
|
|
169
|
+
* ```
|
|
170
|
+
*/
|
|
171
|
+
export interface PlaygroundInputField {
|
|
172
|
+
/** Source node ID */
|
|
173
|
+
nodeId: string;
|
|
174
|
+
/** Field identifier */
|
|
175
|
+
fieldId: string;
|
|
176
|
+
/** Display label */
|
|
177
|
+
label: string;
|
|
178
|
+
/** Field data type */
|
|
179
|
+
type: string;
|
|
180
|
+
/** Default value from node config */
|
|
181
|
+
defaultValue?: unknown;
|
|
182
|
+
/** Whether the field is required */
|
|
183
|
+
required: boolean;
|
|
184
|
+
/** JSON Schema for the field */
|
|
185
|
+
schema?: ConfigProperty;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Request payload for sending a message to the playground
|
|
189
|
+
*/
|
|
190
|
+
export interface PlaygroundMessageRequest {
|
|
191
|
+
/** Message content (typically user input) */
|
|
192
|
+
content: string;
|
|
193
|
+
/** Additional input values for workflow nodes */
|
|
194
|
+
inputs?: Record<string, unknown>;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Response from the messages endpoint with polling support
|
|
198
|
+
*/
|
|
199
|
+
export interface PlaygroundMessagesResult {
|
|
200
|
+
/** Array of messages */
|
|
201
|
+
messages: PlaygroundMessage[];
|
|
202
|
+
/** Whether there are more messages to fetch */
|
|
203
|
+
hasMore: boolean;
|
|
204
|
+
/** Current session status (useful for polling) */
|
|
205
|
+
sessionStatus: PlaygroundSessionStatus;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Configuration for the Playground component
|
|
209
|
+
*/
|
|
210
|
+
export interface PlaygroundConfig {
|
|
211
|
+
/** Polling interval in milliseconds (default: 1500) */
|
|
212
|
+
pollingInterval?: number;
|
|
213
|
+
/** Maximum number of messages to display (default: 500) */
|
|
214
|
+
maxMessages?: number;
|
|
215
|
+
/** Auto-scroll to bottom on new messages (default: true) */
|
|
216
|
+
autoScroll?: boolean;
|
|
217
|
+
/** Show timestamps on messages (default: true) */
|
|
218
|
+
showTimestamps?: boolean;
|
|
219
|
+
/** Show log messages inline or in collapsible section (default: "collapsible") */
|
|
220
|
+
logDisplayMode?: 'inline' | 'collapsible';
|
|
221
|
+
/** Enable markdown rendering in messages (default: true) */
|
|
222
|
+
enableMarkdown?: boolean;
|
|
223
|
+
/**
|
|
224
|
+
* Whether to show the chat text input (default: true)
|
|
225
|
+
* When false, only the "Run" button is displayed for workflow execution.
|
|
226
|
+
*/
|
|
227
|
+
showChatInput?: boolean;
|
|
228
|
+
/**
|
|
229
|
+
* Whether to show the "Run" button (default: true)
|
|
230
|
+
* When false, the Run button is hidden. If both showChatInput and showRunButton
|
|
231
|
+
* are false, a helpful message is displayed to the user.
|
|
232
|
+
*/
|
|
233
|
+
showRunButton?: boolean;
|
|
234
|
+
/**
|
|
235
|
+
* Predefined message to send when "Run" button is clicked (default: "Run workflow")
|
|
236
|
+
* Used when showChatInput is false to provide a default message for workflow execution.
|
|
237
|
+
*/
|
|
238
|
+
predefinedMessage?: string;
|
|
239
|
+
/**
|
|
240
|
+
* Automatically run the workflow once when the playground loads (default: false)
|
|
241
|
+
* When true, the workflow will execute immediately using the predefinedMessage.
|
|
242
|
+
* This is useful for scenarios where the workflow should start without user interaction.
|
|
243
|
+
* Note: Only runs once per session - subsequent runs require clicking the Run button.
|
|
244
|
+
*/
|
|
245
|
+
autoRun?: boolean;
|
|
246
|
+
/**
|
|
247
|
+
* Width of the sidebar in CSS units (default: "280px")
|
|
248
|
+
* Accepts any valid CSS width value, e.g. "300px", "20rem".
|
|
249
|
+
*/
|
|
250
|
+
sidebarWidth?: string;
|
|
251
|
+
/**
|
|
252
|
+
* Whether to show the sidebar with session list (default: true)
|
|
253
|
+
* When false, the sidebar is hidden, creating a minimal chat widget experience.
|
|
254
|
+
* Use with initialSessionId to load a pre-created session directly.
|
|
255
|
+
*/
|
|
256
|
+
showSidebar?: boolean;
|
|
257
|
+
/**
|
|
258
|
+
* Whether to show the session header bar (default: true)
|
|
259
|
+
* When false, the header with session name and close button is hidden.
|
|
260
|
+
* Typically used together with showSidebar: false for minimal UI.
|
|
261
|
+
*/
|
|
262
|
+
showSessionHeader?: boolean;
|
|
263
|
+
/**
|
|
264
|
+
* Determines if polling should stop for a given session status.
|
|
265
|
+
* Override to customize which statuses pause polling.
|
|
266
|
+
* @default defaultShouldStopPolling (stops on idle, completed, failed, awaiting_input)
|
|
267
|
+
*/
|
|
268
|
+
shouldStopPolling?: (status: PlaygroundSessionStatus) => boolean;
|
|
269
|
+
/**
|
|
270
|
+
* Determines if a session status is terminal (clears isExecuting).
|
|
271
|
+
* Override to customize which statuses end the executing state.
|
|
272
|
+
* @default defaultIsTerminalStatus (terminal on idle, completed, failed, awaiting_input)
|
|
273
|
+
*/
|
|
274
|
+
isTerminalStatus?: (status: PlaygroundSessionStatus) => boolean;
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Metadata field to control Run button state from backend.
|
|
278
|
+
* When a message contains this field set to true, the Run button becomes enabled.
|
|
279
|
+
*
|
|
280
|
+
* @example
|
|
281
|
+
* ```typescript
|
|
282
|
+
* // Backend sends a message with this metadata to re-enable Run button:
|
|
283
|
+
* const message: PlaygroundMessage = {
|
|
284
|
+
* id: "msg-123",
|
|
285
|
+
* sessionId: "sess-456",
|
|
286
|
+
* role: "system",
|
|
287
|
+
* content: "Workflow completed. Ready for next run.",
|
|
288
|
+
* timestamp: new Date().toISOString(),
|
|
289
|
+
* metadata: {
|
|
290
|
+
* enableRun: true
|
|
291
|
+
* }
|
|
292
|
+
* };
|
|
293
|
+
* ```
|
|
294
|
+
*/
|
|
295
|
+
export declare const ENABLE_RUN_METADATA_KEY = "enableRun";
|
|
296
|
+
/**
|
|
297
|
+
* Check if a message metadata contains the enableRun flag
|
|
298
|
+
*
|
|
299
|
+
* @param metadata - The message metadata to check
|
|
300
|
+
* @returns True if the metadata signals to enable the Run button
|
|
301
|
+
*/
|
|
302
|
+
export declare function hasEnableRunFlag(metadata: PlaygroundMessageMetadata | undefined): boolean;
|
|
303
|
+
/**
|
|
304
|
+
* Display mode for the Playground component
|
|
305
|
+
*/
|
|
306
|
+
export type PlaygroundMode = 'embedded' | 'standalone' | 'modal';
|
|
307
|
+
/**
|
|
308
|
+
* Chat input detection patterns for identifying chat nodes in workflows
|
|
309
|
+
*/
|
|
310
|
+
export declare const CHAT_INPUT_PATTERNS: readonly ["chat_input", "text_input", "user_input", "message_input", "prompt_input"];
|
|
311
|
+
/**
|
|
312
|
+
* Check if a node type is a chat input node
|
|
313
|
+
*
|
|
314
|
+
* @param nodeTypeId - The node type identifier
|
|
315
|
+
* @returns True if the node is a chat input type
|
|
316
|
+
*/
|
|
317
|
+
export declare function isChatInputNode(nodeTypeId: string): boolean;
|
|
318
|
+
/**
|
|
319
|
+
* API response wrapper for playground endpoints
|
|
320
|
+
*/
|
|
321
|
+
export interface PlaygroundApiResponse<T> {
|
|
322
|
+
/** Whether the request was successful */
|
|
323
|
+
success: boolean;
|
|
324
|
+
/** Response data */
|
|
325
|
+
data?: T;
|
|
326
|
+
/** Error message if unsuccessful */
|
|
327
|
+
error?: string;
|
|
328
|
+
/** Human-readable message */
|
|
329
|
+
message?: string;
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* Type alias for session list response
|
|
333
|
+
*/
|
|
334
|
+
export type PlaygroundSessionsResponse = PlaygroundApiResponse<PlaygroundSession[]>;
|
|
335
|
+
/**
|
|
336
|
+
* Type alias for single session response
|
|
337
|
+
*/
|
|
338
|
+
export type PlaygroundSessionResponse = PlaygroundApiResponse<PlaygroundSession>;
|
|
339
|
+
/**
|
|
340
|
+
* Type alias for message response
|
|
341
|
+
*/
|
|
342
|
+
export type PlaygroundMessageResponse = PlaygroundApiResponse<PlaygroundMessage>;
|
|
343
|
+
/**
|
|
344
|
+
* Type alias for messages list response with polling metadata
|
|
345
|
+
*/
|
|
346
|
+
export interface PlaygroundMessagesApiResponse extends PlaygroundApiResponse<PlaygroundMessage[]> {
|
|
347
|
+
/** Whether there are more messages to fetch */
|
|
348
|
+
hasMore?: boolean;
|
|
349
|
+
/** Current session status */
|
|
350
|
+
sessionStatus?: PlaygroundSessionStatus;
|
|
351
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Playground Types
|
|
3
|
+
*
|
|
4
|
+
* TypeScript types for the Playground feature, enabling interactive
|
|
5
|
+
* workflow testing with chat interface and session management.
|
|
6
|
+
*
|
|
7
|
+
* @module types/playground
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Statuses that stop polling by default (resource efficiency)
|
|
11
|
+
*/
|
|
12
|
+
export const DEFAULT_STOP_POLLING_STATUSES = [
|
|
13
|
+
'idle',
|
|
14
|
+
'completed',
|
|
15
|
+
'failed',
|
|
16
|
+
'awaiting_input'
|
|
17
|
+
];
|
|
18
|
+
/**
|
|
19
|
+
* Statuses that are considered terminal by default (clears isExecuting)
|
|
20
|
+
*/
|
|
21
|
+
export const DEFAULT_TERMINAL_STATUSES = [
|
|
22
|
+
'idle',
|
|
23
|
+
'completed',
|
|
24
|
+
'failed',
|
|
25
|
+
'awaiting_input'
|
|
26
|
+
];
|
|
27
|
+
/**
|
|
28
|
+
* Default implementation for determining if polling should stop.
|
|
29
|
+
* Consumers can override this via PlaygroundConfig.shouldStopPolling.
|
|
30
|
+
*
|
|
31
|
+
* @param status - The current session status
|
|
32
|
+
* @returns True if polling should stop
|
|
33
|
+
*/
|
|
34
|
+
export function defaultShouldStopPolling(status) {
|
|
35
|
+
return DEFAULT_STOP_POLLING_STATUSES.includes(status);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Default implementation for determining if a status is terminal (clears isExecuting).
|
|
39
|
+
* Consumers can override this via PlaygroundConfig.isTerminalStatus.
|
|
40
|
+
*
|
|
41
|
+
* @param status - The current session status
|
|
42
|
+
* @returns True if the status is terminal
|
|
43
|
+
*/
|
|
44
|
+
export function defaultIsTerminalStatus(status) {
|
|
45
|
+
return DEFAULT_TERMINAL_STATUSES.includes(status);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Metadata field to control Run button state from backend.
|
|
49
|
+
* When a message contains this field set to true, the Run button becomes enabled.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```typescript
|
|
53
|
+
* // Backend sends a message with this metadata to re-enable Run button:
|
|
54
|
+
* const message: PlaygroundMessage = {
|
|
55
|
+
* id: "msg-123",
|
|
56
|
+
* sessionId: "sess-456",
|
|
57
|
+
* role: "system",
|
|
58
|
+
* content: "Workflow completed. Ready for next run.",
|
|
59
|
+
* timestamp: new Date().toISOString(),
|
|
60
|
+
* metadata: {
|
|
61
|
+
* enableRun: true
|
|
62
|
+
* }
|
|
63
|
+
* };
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
export const ENABLE_RUN_METADATA_KEY = 'enableRun';
|
|
67
|
+
/**
|
|
68
|
+
* Check if a message metadata contains the enableRun flag
|
|
69
|
+
*
|
|
70
|
+
* @param metadata - The message metadata to check
|
|
71
|
+
* @returns True if the metadata signals to enable the Run button
|
|
72
|
+
*/
|
|
73
|
+
export function hasEnableRunFlag(metadata) {
|
|
74
|
+
return metadata?.[ENABLE_RUN_METADATA_KEY] === true;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Chat input detection patterns for identifying chat nodes in workflows
|
|
78
|
+
*/
|
|
79
|
+
export const CHAT_INPUT_PATTERNS = [
|
|
80
|
+
'chat_input',
|
|
81
|
+
'text_input',
|
|
82
|
+
'user_input',
|
|
83
|
+
'message_input',
|
|
84
|
+
'prompt_input'
|
|
85
|
+
];
|
|
86
|
+
/**
|
|
87
|
+
* Check if a node type is a chat input node
|
|
88
|
+
*
|
|
89
|
+
* @param nodeTypeId - The node type identifier
|
|
90
|
+
* @returns True if the node is a chat input type
|
|
91
|
+
*/
|
|
92
|
+
export function isChatInputNode(nodeTypeId) {
|
|
93
|
+
const normalizedId = nodeTypeId.toLowerCase();
|
|
94
|
+
return CHAT_INPUT_PATTERNS.some((pattern) => normalizedId.includes(pattern));
|
|
95
|
+
}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Settings Types for FlowDrop
|
|
3
|
+
*
|
|
4
|
+
* Provides comprehensive type definitions for all user-configurable settings.
|
|
5
|
+
* Supports theme, editor, UI, behavior, and API settings with hybrid persistence.
|
|
6
|
+
*
|
|
7
|
+
* @module types/settings
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Theme preference options
|
|
11
|
+
* - 'light': Force light theme
|
|
12
|
+
* - 'dark': Force dark theme
|
|
13
|
+
* - 'auto': Follow system preference
|
|
14
|
+
*/
|
|
15
|
+
export type ThemePreference = 'light' | 'dark' | 'auto';
|
|
16
|
+
/**
|
|
17
|
+
* Resolved theme (actual applied theme, never 'auto')
|
|
18
|
+
*/
|
|
19
|
+
export type ResolvedTheme = 'light' | 'dark';
|
|
20
|
+
/**
|
|
21
|
+
* Theme-related settings
|
|
22
|
+
*/
|
|
23
|
+
export interface ThemeSettings {
|
|
24
|
+
/** User's theme preference */
|
|
25
|
+
preference: ThemePreference;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Editor canvas and interaction settings
|
|
29
|
+
*/
|
|
30
|
+
export interface EditorSettings {
|
|
31
|
+
/** Show grid lines on the canvas */
|
|
32
|
+
showGrid: boolean;
|
|
33
|
+
/** Snap nodes to grid when dragging */
|
|
34
|
+
snapToGrid: boolean;
|
|
35
|
+
/** Grid cell size in pixels */
|
|
36
|
+
gridSize: number;
|
|
37
|
+
/** Show minimap for navigation */
|
|
38
|
+
showMinimap: boolean;
|
|
39
|
+
/** Default zoom level (1 = 100%) */
|
|
40
|
+
defaultZoom: number;
|
|
41
|
+
/** Automatically fit workflow to view on load */
|
|
42
|
+
fitViewOnLoad: boolean;
|
|
43
|
+
/** Enable proximity connect when dragging nodes near other nodes */
|
|
44
|
+
proximityConnect: boolean;
|
|
45
|
+
/** Distance threshold in pixels for proximity connect */
|
|
46
|
+
proximityConnectDistance: number;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* UI layout and display settings
|
|
50
|
+
*/
|
|
51
|
+
export interface UISettings {
|
|
52
|
+
/** Width of the node sidebar in pixels */
|
|
53
|
+
sidebarWidth: number;
|
|
54
|
+
/** Whether the sidebar is collapsed */
|
|
55
|
+
sidebarCollapsed: boolean;
|
|
56
|
+
/** Enable compact mode for denser UI */
|
|
57
|
+
compactMode: boolean;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Application behavior and automation settings
|
|
61
|
+
*/
|
|
62
|
+
export interface BehaviorSettings {
|
|
63
|
+
/** Automatically save changes */
|
|
64
|
+
autoSave: boolean;
|
|
65
|
+
/** Auto-save interval in milliseconds */
|
|
66
|
+
autoSaveInterval: number;
|
|
67
|
+
/** Maximum number of undo history entries */
|
|
68
|
+
undoHistoryLimit: number;
|
|
69
|
+
/** Show confirmation dialog before deleting nodes */
|
|
70
|
+
confirmDelete: boolean;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* API connection and request settings
|
|
74
|
+
*/
|
|
75
|
+
export interface ApiSettings {
|
|
76
|
+
/** Request timeout in milliseconds */
|
|
77
|
+
timeout: number;
|
|
78
|
+
/** Enable automatic retry on failure */
|
|
79
|
+
retryEnabled: boolean;
|
|
80
|
+
/** Maximum number of retry attempts */
|
|
81
|
+
retryAttempts: number;
|
|
82
|
+
/** Enable response caching */
|
|
83
|
+
cacheEnabled: boolean;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* All FlowDrop settings organized by category
|
|
87
|
+
*/
|
|
88
|
+
export interface FlowDropSettings {
|
|
89
|
+
/** Theme appearance settings */
|
|
90
|
+
theme: ThemeSettings;
|
|
91
|
+
/** Editor canvas settings */
|
|
92
|
+
editor: EditorSettings;
|
|
93
|
+
/** UI layout settings */
|
|
94
|
+
ui: UISettings;
|
|
95
|
+
/** Application behavior settings */
|
|
96
|
+
behavior: BehaviorSettings;
|
|
97
|
+
/** API connection settings */
|
|
98
|
+
api: ApiSettings;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Settings category names for iteration and tab rendering
|
|
102
|
+
*/
|
|
103
|
+
export type SettingsCategory = keyof FlowDropSettings;
|
|
104
|
+
/**
|
|
105
|
+
* All available settings categories
|
|
106
|
+
*/
|
|
107
|
+
export declare const SETTINGS_CATEGORIES: SettingsCategory[];
|
|
108
|
+
/**
|
|
109
|
+
* Human-readable labels for settings categories
|
|
110
|
+
*/
|
|
111
|
+
export declare const SETTINGS_CATEGORY_LABELS: Record<SettingsCategory, string>;
|
|
112
|
+
/**
|
|
113
|
+
* Icons for settings categories (Iconify icon names)
|
|
114
|
+
*/
|
|
115
|
+
export declare const SETTINGS_CATEGORY_ICONS: Record<SettingsCategory, string>;
|
|
116
|
+
/**
|
|
117
|
+
* Default theme settings
|
|
118
|
+
*/
|
|
119
|
+
export declare const DEFAULT_THEME_SETTINGS: ThemeSettings;
|
|
120
|
+
/**
|
|
121
|
+
* Default editor settings
|
|
122
|
+
*/
|
|
123
|
+
export declare const DEFAULT_EDITOR_SETTINGS: EditorSettings;
|
|
124
|
+
/**
|
|
125
|
+
* Default UI settings
|
|
126
|
+
*/
|
|
127
|
+
export declare const DEFAULT_UI_SETTINGS: UISettings;
|
|
128
|
+
/**
|
|
129
|
+
* Default behavior settings
|
|
130
|
+
*/
|
|
131
|
+
export declare const DEFAULT_BEHAVIOR_SETTINGS: BehaviorSettings;
|
|
132
|
+
/**
|
|
133
|
+
* Default API settings
|
|
134
|
+
*/
|
|
135
|
+
export declare const DEFAULT_API_SETTINGS: ApiSettings;
|
|
136
|
+
/**
|
|
137
|
+
* Complete default settings object
|
|
138
|
+
*/
|
|
139
|
+
export declare const DEFAULT_SETTINGS: FlowDropSettings;
|
|
140
|
+
/**
|
|
141
|
+
* Deep partial type for nested settings updates
|
|
142
|
+
*/
|
|
143
|
+
export type DeepPartial<T> = {
|
|
144
|
+
[P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
|
|
145
|
+
};
|
|
146
|
+
/**
|
|
147
|
+
* Partial settings for incremental updates
|
|
148
|
+
*/
|
|
149
|
+
export type PartialSettings = DeepPartial<FlowDropSettings>;
|
|
150
|
+
/**
|
|
151
|
+
* Event payload for settings changes
|
|
152
|
+
*/
|
|
153
|
+
export interface SettingsChangeEvent {
|
|
154
|
+
/** The category that changed */
|
|
155
|
+
category: SettingsCategory;
|
|
156
|
+
/** The key within the category that changed */
|
|
157
|
+
key: string;
|
|
158
|
+
/** The previous value */
|
|
159
|
+
previousValue: unknown;
|
|
160
|
+
/** The new value */
|
|
161
|
+
newValue: unknown;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Callback type for settings change listeners
|
|
165
|
+
*/
|
|
166
|
+
export type SettingsChangeCallback = (event: SettingsChangeEvent) => void;
|
|
167
|
+
/**
|
|
168
|
+
* localStorage key for persisting settings
|
|
169
|
+
*/
|
|
170
|
+
export declare const SETTINGS_STORAGE_KEY = "flowdrop-settings";
|
|
171
|
+
/**
|
|
172
|
+
* API sync status
|
|
173
|
+
*/
|
|
174
|
+
export type SyncStatus = 'idle' | 'syncing' | 'synced' | 'error';
|
|
175
|
+
/**
|
|
176
|
+
* Settings store state including sync metadata
|
|
177
|
+
*/
|
|
178
|
+
export interface SettingsStoreState {
|
|
179
|
+
/** Current settings values */
|
|
180
|
+
settings: FlowDropSettings;
|
|
181
|
+
/** Whether settings have been loaded from storage */
|
|
182
|
+
initialized: boolean;
|
|
183
|
+
/** API sync status */
|
|
184
|
+
syncStatus: SyncStatus;
|
|
185
|
+
/** Last sync timestamp */
|
|
186
|
+
lastSyncedAt: number | null;
|
|
187
|
+
/** Last sync error message */
|
|
188
|
+
syncError: string | null;
|
|
189
|
+
}
|