@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,346 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interrupt Store (Svelte 5 Runes)
|
|
3
|
+
*
|
|
4
|
+
* Rune-based reactive state for managing interrupt state using a lightweight state machine.
|
|
5
|
+
* Ensures valid state transitions and prevents deadlocks.
|
|
6
|
+
*
|
|
7
|
+
* @module stores/interruptStore
|
|
8
|
+
*/
|
|
9
|
+
import { SvelteMap } from 'svelte/reactivity';
|
|
10
|
+
import { initialState, transition, isTerminalState, isSubmitting as checkIsSubmitting, hasError as checkHasError, getErrorMessage, getResolvedValue, toLegacyStatus } from '../types/interruptState.js';
|
|
11
|
+
import { logger } from '../utils/logger.js';
|
|
12
|
+
// =========================================================================
|
|
13
|
+
// Core Reactive State
|
|
14
|
+
// =========================================================================
|
|
15
|
+
/**
|
|
16
|
+
* Reactive map of all interrupts by ID.
|
|
17
|
+
* Uses SvelteMap for deep reactivity with Svelte 5 runes.
|
|
18
|
+
* Key: interrupt ID, Value: Interrupt object with state
|
|
19
|
+
*/
|
|
20
|
+
let interrupts = $state(new SvelteMap());
|
|
21
|
+
// =========================================================================
|
|
22
|
+
// Getter Functions (replace derived stores)
|
|
23
|
+
// =========================================================================
|
|
24
|
+
/**
|
|
25
|
+
* Get the reactive interrupts map.
|
|
26
|
+
* Use this in components within $derived() for reactivity.
|
|
27
|
+
*/
|
|
28
|
+
export function getInterruptsMap() {
|
|
29
|
+
return interrupts;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Get pending interrupt IDs (interrupts not in a terminal state)
|
|
33
|
+
*/
|
|
34
|
+
export function getPendingInterruptIds() {
|
|
35
|
+
const pending = [];
|
|
36
|
+
interrupts.forEach((interrupt, id) => {
|
|
37
|
+
if (!isTerminalState(interrupt.machineState)) {
|
|
38
|
+
pending.push(id);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
return pending;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Get pending interrupts array (interrupts not in a terminal state)
|
|
45
|
+
*/
|
|
46
|
+
export function getPendingInterrupts() {
|
|
47
|
+
const pending = [];
|
|
48
|
+
interrupts.forEach((interrupt) => {
|
|
49
|
+
if (!isTerminalState(interrupt.machineState)) {
|
|
50
|
+
pending.push(interrupt);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
return pending;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Get count of pending interrupts
|
|
57
|
+
*/
|
|
58
|
+
export function getPendingInterruptCount() {
|
|
59
|
+
return getPendingInterruptIds().length;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get resolved interrupts array
|
|
63
|
+
*/
|
|
64
|
+
export function getResolvedInterrupts() {
|
|
65
|
+
const resolved = [];
|
|
66
|
+
interrupts.forEach((interrupt) => {
|
|
67
|
+
if (interrupt.machineState.status === 'resolved') {
|
|
68
|
+
resolved.push(interrupt);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
return resolved;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Check if any interrupt is currently submitting
|
|
75
|
+
*/
|
|
76
|
+
export function getIsAnySubmitting() {
|
|
77
|
+
for (const interrupt of interrupts.values()) {
|
|
78
|
+
if (checkIsSubmitting(interrupt.machineState)) {
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
// =========================================================================
|
|
85
|
+
// State Machine Actions
|
|
86
|
+
// =========================================================================
|
|
87
|
+
/**
|
|
88
|
+
* Apply a state machine action to an interrupt
|
|
89
|
+
*
|
|
90
|
+
* @param interruptId - The interrupt ID
|
|
91
|
+
* @param action - The action to apply
|
|
92
|
+
* @returns Transition result with validity and any errors
|
|
93
|
+
*/
|
|
94
|
+
function applyAction(interruptId, action) {
|
|
95
|
+
const interrupt = interrupts.get(interruptId);
|
|
96
|
+
if (!interrupt) {
|
|
97
|
+
return {
|
|
98
|
+
state: initialState,
|
|
99
|
+
valid: false,
|
|
100
|
+
error: `Interrupt not found: ${interruptId}`
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
const result = transition(interrupt.machineState, action);
|
|
104
|
+
if (result.valid) {
|
|
105
|
+
const current = interrupts.get(interruptId);
|
|
106
|
+
if (current) {
|
|
107
|
+
// Update machine state and sync legacy fields
|
|
108
|
+
const newInterrupt = {
|
|
109
|
+
...current,
|
|
110
|
+
machineState: result.state,
|
|
111
|
+
status: toLegacyStatus(result.state),
|
|
112
|
+
responseValue: getResolvedValue(result.state) ?? current.responseValue,
|
|
113
|
+
resolvedAt: result.state.status === 'resolved'
|
|
114
|
+
? result.state.resolvedAt
|
|
115
|
+
: result.state.status === 'cancelled'
|
|
116
|
+
? result.state.cancelledAt
|
|
117
|
+
: current.resolvedAt
|
|
118
|
+
};
|
|
119
|
+
interrupts.set(interruptId, newInterrupt);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
logger.warn(`[InterruptStore] Invalid transition: ${result.error}`);
|
|
124
|
+
}
|
|
125
|
+
return result;
|
|
126
|
+
}
|
|
127
|
+
// =========================================================================
|
|
128
|
+
// Public Actions
|
|
129
|
+
// =========================================================================
|
|
130
|
+
/**
|
|
131
|
+
* Interrupt store actions for modifying state
|
|
132
|
+
*/
|
|
133
|
+
export const interruptActions = {
|
|
134
|
+
/**
|
|
135
|
+
* Add or update an interrupt in the store
|
|
136
|
+
*
|
|
137
|
+
* @param interrupt - The interrupt to add or update
|
|
138
|
+
*/
|
|
139
|
+
addInterrupt: (interrupt) => {
|
|
140
|
+
const existing = interrupts.get(interrupt.id);
|
|
141
|
+
// Preserve existing machine state if interrupt already exists
|
|
142
|
+
const machineState = existing?.machineState ?? initialState;
|
|
143
|
+
const interruptWithState = {
|
|
144
|
+
...interrupt,
|
|
145
|
+
machineState
|
|
146
|
+
};
|
|
147
|
+
interrupts.set(interrupt.id, interruptWithState);
|
|
148
|
+
},
|
|
149
|
+
/**
|
|
150
|
+
* Add multiple interrupts to the store
|
|
151
|
+
*
|
|
152
|
+
* @param interruptList - Array of interrupts to add
|
|
153
|
+
*/
|
|
154
|
+
addInterrupts: (interruptList) => {
|
|
155
|
+
if (interruptList.length === 0)
|
|
156
|
+
return;
|
|
157
|
+
interruptList.forEach((interrupt) => {
|
|
158
|
+
const existing = interrupts.get(interrupt.id);
|
|
159
|
+
const machineState = existing?.machineState ?? initialState;
|
|
160
|
+
const interruptWithState = {
|
|
161
|
+
...interrupt,
|
|
162
|
+
machineState
|
|
163
|
+
};
|
|
164
|
+
interrupts.set(interrupt.id, interruptWithState);
|
|
165
|
+
});
|
|
166
|
+
},
|
|
167
|
+
/**
|
|
168
|
+
* Start submitting an interrupt (user clicked submit)
|
|
169
|
+
*
|
|
170
|
+
* @param interruptId - The interrupt ID
|
|
171
|
+
* @param value - The value being submitted
|
|
172
|
+
* @returns Transition result
|
|
173
|
+
*/
|
|
174
|
+
startSubmit: (interruptId, value) => {
|
|
175
|
+
return applyAction(interruptId, { type: 'SUBMIT', value });
|
|
176
|
+
},
|
|
177
|
+
/**
|
|
178
|
+
* Start cancelling an interrupt (user clicked cancel)
|
|
179
|
+
*
|
|
180
|
+
* @param interruptId - The interrupt ID
|
|
181
|
+
* @returns Transition result
|
|
182
|
+
*/
|
|
183
|
+
startCancel: (interruptId) => {
|
|
184
|
+
return applyAction(interruptId, { type: 'CANCEL' });
|
|
185
|
+
},
|
|
186
|
+
/**
|
|
187
|
+
* Mark submission as successful
|
|
188
|
+
*
|
|
189
|
+
* @param interruptId - The interrupt ID
|
|
190
|
+
* @returns Transition result
|
|
191
|
+
*/
|
|
192
|
+
submitSuccess: (interruptId) => {
|
|
193
|
+
return applyAction(interruptId, { type: 'SUCCESS' });
|
|
194
|
+
},
|
|
195
|
+
/**
|
|
196
|
+
* Mark submission as failed
|
|
197
|
+
*
|
|
198
|
+
* @param interruptId - The interrupt ID
|
|
199
|
+
* @param error - Error message
|
|
200
|
+
* @returns Transition result
|
|
201
|
+
*/
|
|
202
|
+
submitFailure: (interruptId, error) => {
|
|
203
|
+
return applyAction(interruptId, { type: 'FAILURE', error });
|
|
204
|
+
},
|
|
205
|
+
/**
|
|
206
|
+
* Retry a failed submission
|
|
207
|
+
*
|
|
208
|
+
* @param interruptId - The interrupt ID
|
|
209
|
+
* @returns Transition result
|
|
210
|
+
*/
|
|
211
|
+
retry: (interruptId) => {
|
|
212
|
+
return applyAction(interruptId, { type: 'RETRY' });
|
|
213
|
+
},
|
|
214
|
+
/**
|
|
215
|
+
* Reset an interrupt to idle state
|
|
216
|
+
*
|
|
217
|
+
* @param interruptId - The interrupt ID
|
|
218
|
+
* @returns Transition result
|
|
219
|
+
*/
|
|
220
|
+
resetInterrupt: (interruptId) => {
|
|
221
|
+
return applyAction(interruptId, { type: 'RESET' });
|
|
222
|
+
},
|
|
223
|
+
/**
|
|
224
|
+
* Mark an interrupt as resolved with the user's response
|
|
225
|
+
*
|
|
226
|
+
* @param interruptId - The interrupt ID
|
|
227
|
+
* @param value - The resolved value
|
|
228
|
+
*/
|
|
229
|
+
resolveInterrupt: (interruptId, value) => {
|
|
230
|
+
const submitResult = applyAction(interruptId, { type: 'SUBMIT', value });
|
|
231
|
+
if (submitResult.valid) {
|
|
232
|
+
applyAction(interruptId, { type: 'SUCCESS' });
|
|
233
|
+
}
|
|
234
|
+
},
|
|
235
|
+
/**
|
|
236
|
+
* Mark an interrupt as cancelled
|
|
237
|
+
*
|
|
238
|
+
* @param interruptId - The interrupt ID
|
|
239
|
+
*/
|
|
240
|
+
cancelInterrupt: (interruptId) => {
|
|
241
|
+
const cancelResult = applyAction(interruptId, { type: 'CANCEL' });
|
|
242
|
+
if (cancelResult.valid) {
|
|
243
|
+
applyAction(interruptId, { type: 'SUCCESS' });
|
|
244
|
+
}
|
|
245
|
+
},
|
|
246
|
+
/**
|
|
247
|
+
* Remove an interrupt from the store
|
|
248
|
+
*
|
|
249
|
+
* @param interruptId - The interrupt ID to remove
|
|
250
|
+
*/
|
|
251
|
+
removeInterrupt: (interruptId) => {
|
|
252
|
+
interrupts.delete(interruptId);
|
|
253
|
+
},
|
|
254
|
+
/**
|
|
255
|
+
* Clear all interrupts for a specific session
|
|
256
|
+
*
|
|
257
|
+
* @param sessionId - The session ID to clear interrupts for
|
|
258
|
+
*/
|
|
259
|
+
clearSessionInterrupts: (sessionId) => {
|
|
260
|
+
const toDelete = [];
|
|
261
|
+
interrupts.forEach((interrupt, id) => {
|
|
262
|
+
if (interrupt.sessionId === sessionId) {
|
|
263
|
+
toDelete.push(id);
|
|
264
|
+
}
|
|
265
|
+
});
|
|
266
|
+
toDelete.forEach((id) => interrupts.delete(id));
|
|
267
|
+
},
|
|
268
|
+
/**
|
|
269
|
+
* Alias for clearSessionInterrupts
|
|
270
|
+
*/
|
|
271
|
+
clearInterrupts: () => {
|
|
272
|
+
interrupts.clear();
|
|
273
|
+
},
|
|
274
|
+
/**
|
|
275
|
+
* Reset all interrupt state
|
|
276
|
+
*/
|
|
277
|
+
reset: () => {
|
|
278
|
+
interrupts.clear();
|
|
279
|
+
}
|
|
280
|
+
};
|
|
281
|
+
// =========================================================================
|
|
282
|
+
// Utilities
|
|
283
|
+
// =========================================================================
|
|
284
|
+
/**
|
|
285
|
+
* Get an interrupt by ID
|
|
286
|
+
*
|
|
287
|
+
* @param interruptId - The interrupt ID
|
|
288
|
+
* @returns The interrupt or undefined
|
|
289
|
+
*/
|
|
290
|
+
export function getInterrupt(interruptId) {
|
|
291
|
+
return interrupts.get(interruptId);
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Check if an interrupt is pending (not resolved or cancelled)
|
|
295
|
+
*
|
|
296
|
+
* @param interruptId - The interrupt ID
|
|
297
|
+
* @returns True if the interrupt exists and is pending
|
|
298
|
+
*/
|
|
299
|
+
export function isInterruptPending(interruptId) {
|
|
300
|
+
const interrupt = interrupts.get(interruptId);
|
|
301
|
+
return interrupt ? !isTerminalState(interrupt.machineState) : false;
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Check if an interrupt is currently submitting
|
|
305
|
+
*
|
|
306
|
+
* @param interruptId - The interrupt ID
|
|
307
|
+
* @returns True if the interrupt is being submitted
|
|
308
|
+
*/
|
|
309
|
+
export function isInterruptSubmitting(interruptId) {
|
|
310
|
+
const interrupt = interrupts.get(interruptId);
|
|
311
|
+
return interrupt ? checkIsSubmitting(interrupt.machineState) : false;
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Get the error for an interrupt
|
|
315
|
+
*
|
|
316
|
+
* @param interruptId - The interrupt ID
|
|
317
|
+
* @returns The error message or undefined
|
|
318
|
+
*/
|
|
319
|
+
export function getInterruptError(interruptId) {
|
|
320
|
+
const interrupt = interrupts.get(interruptId);
|
|
321
|
+
return interrupt ? getErrorMessage(interrupt.machineState) : undefined;
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Get an interrupt by its associated message ID
|
|
325
|
+
*
|
|
326
|
+
* @param messageId - The message ID
|
|
327
|
+
* @returns The interrupt or undefined
|
|
328
|
+
*/
|
|
329
|
+
export function getInterruptByMessageId(messageId) {
|
|
330
|
+
for (const interrupt of interrupts.values()) {
|
|
331
|
+
if (interrupt.messageId === messageId) {
|
|
332
|
+
return interrupt;
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
return undefined;
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Check if an interrupt has an error
|
|
339
|
+
*
|
|
340
|
+
* @param interruptId - The interrupt ID
|
|
341
|
+
* @returns True if the interrupt has an error
|
|
342
|
+
*/
|
|
343
|
+
export function interruptHasError(interruptId) {
|
|
344
|
+
const interrupt = interrupts.get(interruptId);
|
|
345
|
+
return interrupt ? checkHasError(interrupt.machineState) : false;
|
|
346
|
+
}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Playground Store
|
|
3
|
+
*
|
|
4
|
+
* Svelte 5 rune-based state for managing playground state including sessions,
|
|
5
|
+
* messages, and execution status.
|
|
6
|
+
*
|
|
7
|
+
* @module stores/playgroundStore
|
|
8
|
+
*/
|
|
9
|
+
import type { PlaygroundSession, PlaygroundMessage, PlaygroundInputField, PlaygroundSessionStatus, PlaygroundMessagesApiResponse } from '../types/playground.js';
|
|
10
|
+
import type { Workflow } from '../types/index.js';
|
|
11
|
+
/**
|
|
12
|
+
* Get the current session
|
|
13
|
+
*/
|
|
14
|
+
export declare function getCurrentSession(): PlaygroundSession | null;
|
|
15
|
+
/**
|
|
16
|
+
* Get all sessions
|
|
17
|
+
*/
|
|
18
|
+
export declare function getSessions(): PlaygroundSession[];
|
|
19
|
+
/**
|
|
20
|
+
* Get all messages
|
|
21
|
+
*/
|
|
22
|
+
export declare function getMessages(): PlaygroundMessage[];
|
|
23
|
+
/**
|
|
24
|
+
* Get executing state
|
|
25
|
+
*/
|
|
26
|
+
export declare function getIsExecuting(): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Get loading state
|
|
29
|
+
*/
|
|
30
|
+
export declare function getIsLoading(): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Get error state
|
|
33
|
+
*/
|
|
34
|
+
export declare function getError(): string | null;
|
|
35
|
+
/**
|
|
36
|
+
* Get the current workflow
|
|
37
|
+
*/
|
|
38
|
+
export declare function getCurrentWorkflow(): Workflow | null;
|
|
39
|
+
/**
|
|
40
|
+
* Get the last poll timestamp
|
|
41
|
+
*/
|
|
42
|
+
export declare function getLastPollTimestamp(): string | null;
|
|
43
|
+
/**
|
|
44
|
+
* Get current session status
|
|
45
|
+
*/
|
|
46
|
+
export declare function getSessionStatus(): PlaygroundSessionStatus;
|
|
47
|
+
/**
|
|
48
|
+
* Get message count
|
|
49
|
+
*/
|
|
50
|
+
export declare function getMessageCount(): number;
|
|
51
|
+
/**
|
|
52
|
+
* Get chat messages (excludes log messages)
|
|
53
|
+
*/
|
|
54
|
+
export declare function getChatMessages(): PlaygroundMessage[];
|
|
55
|
+
/**
|
|
56
|
+
* Get log messages only
|
|
57
|
+
*/
|
|
58
|
+
export declare function getLogMessages(): PlaygroundMessage[];
|
|
59
|
+
/**
|
|
60
|
+
* Get the latest message
|
|
61
|
+
*/
|
|
62
|
+
export declare function getLatestMessage(): PlaygroundMessage | null;
|
|
63
|
+
/**
|
|
64
|
+
* Get input fields from workflow input nodes
|
|
65
|
+
*
|
|
66
|
+
* Analyzes the workflow to extract input nodes and their configuration
|
|
67
|
+
* schemas for auto-generating input forms.
|
|
68
|
+
*/
|
|
69
|
+
export declare function getInputFields(): PlaygroundInputField[];
|
|
70
|
+
/**
|
|
71
|
+
* Check if workflow has a chat input
|
|
72
|
+
*/
|
|
73
|
+
export declare function getHasChatInput(): boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Get session count
|
|
76
|
+
*/
|
|
77
|
+
export declare function getSessionCount(): number;
|
|
78
|
+
/**
|
|
79
|
+
* Playground store actions for modifying state
|
|
80
|
+
*/
|
|
81
|
+
export declare const playgroundActions: {
|
|
82
|
+
/**
|
|
83
|
+
* Set the current workflow
|
|
84
|
+
*
|
|
85
|
+
* @param workflow - The workflow to test
|
|
86
|
+
*/
|
|
87
|
+
setWorkflow: (workflow: Workflow | null) => void;
|
|
88
|
+
/**
|
|
89
|
+
* Set the current session
|
|
90
|
+
*
|
|
91
|
+
* @param session - The session to set as active
|
|
92
|
+
*/
|
|
93
|
+
setCurrentSession: (session: PlaygroundSession | null) => void;
|
|
94
|
+
/**
|
|
95
|
+
* Update session status
|
|
96
|
+
*
|
|
97
|
+
* @param status - The new status
|
|
98
|
+
*/
|
|
99
|
+
updateSessionStatus: (status: PlaygroundSessionStatus) => void;
|
|
100
|
+
/**
|
|
101
|
+
* Set the sessions list
|
|
102
|
+
*
|
|
103
|
+
* @param sessionList - Array of sessions
|
|
104
|
+
*/
|
|
105
|
+
setSessions: (sessionList: PlaygroundSession[]) => void;
|
|
106
|
+
/**
|
|
107
|
+
* Add a new session to the list
|
|
108
|
+
*
|
|
109
|
+
* @param session - The session to add
|
|
110
|
+
*/
|
|
111
|
+
addSession: (session: PlaygroundSession) => void;
|
|
112
|
+
/**
|
|
113
|
+
* Remove a session from the list
|
|
114
|
+
*
|
|
115
|
+
* @param sessionId - The session ID to remove
|
|
116
|
+
*/
|
|
117
|
+
removeSession: (sessionId: string) => void;
|
|
118
|
+
/**
|
|
119
|
+
* Set messages for the current session
|
|
120
|
+
* Messages are automatically sorted chronologically
|
|
121
|
+
*
|
|
122
|
+
* @param messageList - Array of messages
|
|
123
|
+
*/
|
|
124
|
+
setMessages: (messageList: PlaygroundMessage[]) => void;
|
|
125
|
+
/**
|
|
126
|
+
* Add a message to the current session
|
|
127
|
+
* Messages are automatically sorted chronologically after adding
|
|
128
|
+
*
|
|
129
|
+
* @param message - The message to add
|
|
130
|
+
*/
|
|
131
|
+
addMessage: (message: PlaygroundMessage) => void;
|
|
132
|
+
/**
|
|
133
|
+
* Add multiple messages to the current session
|
|
134
|
+
* Messages are deduplicated and automatically sorted chronologically
|
|
135
|
+
*
|
|
136
|
+
* @param newMessages - Array of messages to add
|
|
137
|
+
*/
|
|
138
|
+
addMessages: (newMessages: PlaygroundMessage[]) => void;
|
|
139
|
+
/**
|
|
140
|
+
* Clear all messages
|
|
141
|
+
*/
|
|
142
|
+
clearMessages: () => void;
|
|
143
|
+
/**
|
|
144
|
+
* Set the executing state
|
|
145
|
+
*
|
|
146
|
+
* @param executing - Whether execution is in progress
|
|
147
|
+
*/
|
|
148
|
+
setExecuting: (executing: boolean) => void;
|
|
149
|
+
/**
|
|
150
|
+
* Set the loading state
|
|
151
|
+
*
|
|
152
|
+
* @param loading - Whether loading is in progress
|
|
153
|
+
*/
|
|
154
|
+
setLoading: (loading: boolean) => void;
|
|
155
|
+
/**
|
|
156
|
+
* Set an error message
|
|
157
|
+
*
|
|
158
|
+
* @param errorMessage - The error message or null to clear
|
|
159
|
+
*/
|
|
160
|
+
setError: (errorMessage: string | null) => void;
|
|
161
|
+
/**
|
|
162
|
+
* Update the last poll timestamp
|
|
163
|
+
*
|
|
164
|
+
* @param timestamp - ISO 8601 timestamp
|
|
165
|
+
*/
|
|
166
|
+
updateLastPollTimestamp: (timestamp: string) => void;
|
|
167
|
+
/**
|
|
168
|
+
* Reset all playground state
|
|
169
|
+
*/
|
|
170
|
+
reset: () => void;
|
|
171
|
+
/**
|
|
172
|
+
* Switch to a different session
|
|
173
|
+
*
|
|
174
|
+
* @param sessionId - The session ID to switch to
|
|
175
|
+
*/
|
|
176
|
+
switchSession: (sessionId: string) => void;
|
|
177
|
+
};
|
|
178
|
+
/**
|
|
179
|
+
* Create a polling callback that processes poll responses.
|
|
180
|
+
* This is the single source of truth for how poll responses update stores.
|
|
181
|
+
* Used by mount.ts, Playground.svelte, and refreshSessionMessages.
|
|
182
|
+
*
|
|
183
|
+
* @param isTerminalStatus - Function to determine if a status clears isExecuting (default: defaultIsTerminalStatus)
|
|
184
|
+
* @returns A callback suitable for playgroundService.startPolling() or pushMessages()
|
|
185
|
+
*/
|
|
186
|
+
export declare function createPollingCallback(isTerminalStatus?: (status: PlaygroundSessionStatus) => boolean): (response: PlaygroundMessagesApiResponse) => void;
|
|
187
|
+
/**
|
|
188
|
+
* Get the current session ID
|
|
189
|
+
*
|
|
190
|
+
* @returns The current session ID or null
|
|
191
|
+
*/
|
|
192
|
+
export declare function getCurrentSessionId(): string | null;
|
|
193
|
+
/**
|
|
194
|
+
* Check if a specific session is selected
|
|
195
|
+
*
|
|
196
|
+
* @param sessionId - The session ID to check
|
|
197
|
+
* @returns True if the session is currently selected
|
|
198
|
+
*/
|
|
199
|
+
export declare function isSessionSelected(sessionId: string): boolean;
|
|
200
|
+
/**
|
|
201
|
+
* Get all messages as a snapshot
|
|
202
|
+
*
|
|
203
|
+
* @returns Array of all messages
|
|
204
|
+
*/
|
|
205
|
+
export declare function getMessagesSnapshot(): PlaygroundMessage[];
|
|
206
|
+
/**
|
|
207
|
+
* Get the latest message timestamp for polling
|
|
208
|
+
*
|
|
209
|
+
* @returns ISO 8601 timestamp of the latest message, or null
|
|
210
|
+
*/
|
|
211
|
+
export declare function getLatestMessageTimestamp(): string | null;
|
|
212
|
+
/**
|
|
213
|
+
* Subscribe to session status changes using $effect.root.
|
|
214
|
+
* This is designed for use in non-component contexts (e.g., mount.ts).
|
|
215
|
+
*
|
|
216
|
+
* @param callback - Called when session status changes
|
|
217
|
+
* @returns Cleanup function to stop the subscription
|
|
218
|
+
*/
|
|
219
|
+
export declare function subscribeToSessionStatus(callback: (status: PlaygroundSessionStatus, previousStatus: PlaygroundSessionStatus) => void): () => void;
|
|
220
|
+
/**
|
|
221
|
+
* Refresh messages for the current session
|
|
222
|
+
*
|
|
223
|
+
* This function is useful after interrupt resolution when polling
|
|
224
|
+
* has stopped but new messages may exist on the server.
|
|
225
|
+
*
|
|
226
|
+
* @param fetchMessages - Async function to fetch messages from the API
|
|
227
|
+
* @param isTerminalStatus - Optional override for terminal status check
|
|
228
|
+
* @returns Promise that resolves when messages are refreshed
|
|
229
|
+
*/
|
|
230
|
+
export declare function refreshSessionMessages(fetchMessages: (sessionId: string) => Promise<PlaygroundMessagesApiResponse>, isTerminalStatus?: (status: PlaygroundSessionStatus) => boolean): Promise<void>;
|