windmill-components 1.655.2 → 1.665.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/package/components/ApiConnectForm.svelte +6 -6
- package/package/components/ApiConnectForm.svelte.d.ts +3 -2
- package/package/components/AppConnectDrawer.svelte +3 -1
- package/package/components/AppConnectDrawer.svelte.d.ts +2 -0
- package/package/components/AppConnectInner.svelte +137 -72
- package/package/components/AppConnectInner.svelte.d.ts +1 -0
- package/package/components/CompareWorkspaces.svelte +32 -24
- package/package/components/DBManager.svelte +7 -13
- package/package/components/DBTable.svelte +2 -2
- package/package/components/DBTableEditor.svelte +39 -31
- package/package/components/DBTableEditor.svelte.d.ts +2 -2
- package/package/components/DedicatedWorkersSelector.svelte +292 -85
- package/package/components/DeployWorkspace.svelte +30 -26
- package/package/components/Dev.svelte +7 -2
- package/package/components/Dev.svelte.d.ts +3 -0
- package/package/components/Editor.svelte +17 -13
- package/package/components/EditorBar.svelte.d.ts +1 -1
- package/package/components/FilterSearchbar.svelte +1 -1
- package/package/components/FirstStepInputs.svelte +0 -1
- package/package/components/FlowBuilder.svelte +5 -0
- package/package/components/FlowGraphDiffViewer.svelte +3 -0
- package/package/components/FlowGraphViewer.svelte +7 -4
- package/package/components/FlowGraphViewer.svelte.d.ts +1 -0
- package/package/components/FlowGraphViewerStep.svelte +3 -3
- package/package/components/FlowGraphViewerStep.svelte.d.ts +1 -0
- package/package/components/FlowPreviewContent.svelte +11 -1
- package/package/components/FlowStatusViewer.svelte +4 -1
- package/package/components/FlowStatusViewer.svelte.d.ts +3 -1
- package/package/components/FlowStatusViewerInner.svelte +46 -11
- package/package/components/FlowStatusViewerInner.svelte.d.ts +4 -1
- package/package/components/FlowStatusWaitingForEvents.svelte +48 -103
- package/package/components/FlowTimeline.svelte +76 -84
- package/package/components/FlowViewer.svelte +40 -22
- package/package/components/FlowViewer.svelte.d.ts +8 -2
- package/package/components/GroupEditor.svelte +7 -9
- package/package/components/HistoricList.svelte +12 -4
- package/package/components/InstanceGroupEditor.svelte +92 -19
- package/package/components/InstanceSetting.svelte +16 -6
- package/package/components/InstanceSettings.svelte +51 -7
- package/package/components/InstanceSettings.svelte.d.ts +2 -1
- package/package/components/JobLoader.svelte +5 -4
- package/package/components/JobLoader.svelte.d.ts +1 -1
- package/package/components/Login.svelte +9 -1
- package/package/components/NoMainFuncBadge.svelte +2 -2
- package/package/components/OnBehalfOfSelector.svelte +49 -37
- package/package/components/OnBehalfOfSelector.svelte.d.ts +16 -6
- package/package/components/ResourceEditor.svelte +16 -11
- package/package/components/ResourceEditor.svelte.d.ts +1 -0
- package/package/components/ResourceEditorDrawer.svelte +3 -1
- package/package/components/ResourceEditorDrawer.svelte.d.ts +6 -2
- package/package/components/ResourcePicker.svelte +10 -5
- package/package/components/ResourcePicker.svelte.d.ts +2 -0
- package/package/components/S3FilePickerInner.svelte +12 -4
- package/package/components/SchemaForm.svelte +20 -14
- package/package/components/SchemaForm.svelte.d.ts +2 -2
- package/package/components/ScriptBuilder.svelte +158 -18
- package/package/components/ScriptEditor.svelte +674 -150
- package/package/components/ScriptEditor.svelte.d.ts +7 -3
- package/package/components/SuperadminSettings.svelte +4 -1
- package/package/components/SuperadminSettingsInner.svelte +176 -67
- package/package/components/SuperadminSettingsInner.svelte.d.ts +3 -1
- package/package/components/SyncResourceTypes.svelte +31 -0
- package/package/components/SyncResourceTypes.svelte.d.ts +6 -0
- package/package/components/TimelineBar.svelte +14 -8
- package/package/components/TimelineBar.svelte.d.ts +1 -0
- package/package/components/WorkerGroup.svelte +11 -4
- package/package/components/WorkflowTimeline.svelte +386 -58
- package/package/components/WorkflowTimeline.svelte.d.ts +6 -1
- package/package/components/WorkspaceDependenciesEditor.svelte +32 -2
- package/package/components/apps/components/display/dbtable/DeleteRow.svelte +2 -2
- package/package/components/apps/components/display/dbtable/InsertRowRunnable.svelte +2 -2
- package/package/components/apps/components/display/dbtable/UpdateCell.svelte +2 -2
- package/package/components/apps/components/display/dbtable/metadata.js +44 -222
- package/package/components/apps/components/display/dbtable/queries/count.d.ts +9 -0
- package/package/components/apps/components/display/dbtable/queries/delete.d.ts +9 -0
- package/package/components/apps/components/display/dbtable/queries/insert.d.ts +9 -0
- package/package/components/apps/components/display/dbtable/queries/relationalKeys.d.ts +7 -0
- package/package/components/apps/components/display/dbtable/queries/relationalKeys.js +1 -1
- package/package/components/apps/components/display/dbtable/queries/select.d.ts +9 -0
- package/package/components/apps/components/display/dbtable/queries/update.d.ts +9 -0
- package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +11 -9
- package/package/components/apps/editor/appUtilsS3.js +2 -2
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +53 -10
- package/package/components/common/clearableInput/ClearableInput.svelte +3 -7
- package/package/components/common/confirmationModal/ConfirmationModal.svelte +7 -1
- package/package/components/common/confirmationModal/ConfirmationModal.svelte.d.ts +1 -0
- package/package/components/common/drawer/Disposable.svelte +24 -2
- package/package/components/common/drawer/Disposable.svelte.d.ts +5 -0
- package/package/components/common/modal/Modal.svelte +84 -58
- package/package/components/common/table/AppRow.svelte.d.ts +1 -1
- package/package/components/common/table/FlowRow.svelte.d.ts +1 -1
- package/package/components/common/table/ScriptRow.svelte +31 -3
- package/package/components/common/table/ScriptRow.svelte.d.ts +1 -1
- package/package/components/copilot/MetadataGen.svelte +8 -5
- package/package/components/copilot/MetadataGen.svelte.d.ts +1 -0
- package/package/components/copilot/TestAIKey.svelte +2 -1
- package/package/components/copilot/TestAIKey.svelte.d.ts +1 -0
- package/package/components/copilot/chat/AIChatManager.svelte.js +62 -80
- package/package/components/copilot/chat/HistoryManager.svelte.d.ts +1 -0
- package/package/components/copilot/chat/HistoryManager.svelte.js +3 -0
- package/package/components/copilot/chat/__tests__/app/appChat.eval.test.js +47 -31
- package/package/components/copilot/chat/__tests__/app/appEvalComparison.d.ts +1 -6
- package/package/components/copilot/chat/__tests__/app/appEvalComparison.js +18 -13
- package/package/components/copilot/chat/__tests__/app/appEvalRunner.d.ts +14 -5
- package/package/components/copilot/chat/__tests__/app/appEvalRunner.js +13 -12
- package/package/components/copilot/chat/__tests__/flow/flowChat.eval.test.js +46 -29
- package/package/components/copilot/chat/__tests__/flow/flowEvalComparison.js +1 -4
- package/package/components/copilot/chat/__tests__/flow/flowEvalRunner.d.ts +14 -5
- package/package/components/copilot/chat/__tests__/flow/flowEvalRunner.js +13 -12
- package/package/components/copilot/chat/__tests__/shared/baseEvalRunner.d.ts +5 -8
- package/package/components/copilot/chat/__tests__/shared/baseEvalRunner.js +82 -108
- package/package/components/copilot/chat/__tests__/shared/baseLLMEvaluator.d.ts +4 -7
- package/package/components/copilot/chat/__tests__/shared/baseLLMEvaluator.js +19 -11
- package/package/components/copilot/chat/__tests__/shared/types.d.ts +3 -0
- package/package/components/copilot/chat/anthropic.d.ts +9 -2
- package/package/components/copilot/chat/anthropic.js +12 -6
- package/package/components/copilot/chat/app/core.js +5 -12
- package/package/components/copilot/chat/chatLoop.d.ts +40 -0
- package/package/components/copilot/chat/chatLoop.js +97 -0
- package/package/components/copilot/chat/openai-responses.d.ts +8 -2
- package/package/components/copilot/chat/openai-responses.js +17 -17
- package/package/components/copilot/chat/shared.d.ts +2 -1
- package/package/components/copilot/chat/shared.js +2 -2
- package/package/components/copilot/lib.d.ts +14 -5
- package/package/components/copilot/lib.js +68 -48
- package/package/components/dbOps.d.ts +2 -2
- package/package/components/dbOps.js +129 -53
- package/package/components/debug/debugUtils.d.ts +5 -0
- package/package/components/debug/debugUtils.js +20 -0
- package/package/components/debug/index.d.ts +1 -1
- package/package/components/debug/index.js +3 -7
- package/package/components/flows/CreateActionsFlow.svelte +221 -43
- package/package/components/flows/DebounceLimit.svelte +42 -9
- package/package/components/flows/common/FlowCard.svelte +2 -1
- package/package/components/flows/common/FlowCard.svelte.d.ts +1 -0
- package/package/components/flows/common/FlowCardHeader.svelte +14 -10
- package/package/components/flows/common/FlowCardHeader.svelte.d.ts +1 -0
- package/package/components/flows/content/AgentToolWrapper.svelte +2 -1
- package/package/components/flows/content/AgentToolWrapper.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowEditorPanel.svelte +1 -0
- package/package/components/flows/content/FlowModuleComponent.svelte +32 -18
- package/package/components/flows/content/FlowModuleComponent.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowModuleDebounce.svelte +46 -0
- package/package/components/flows/content/FlowModuleDebounce.svelte.d.ts +8 -0
- package/package/components/flows/content/FlowModuleEarlyStop.svelte +26 -5
- package/package/components/flows/content/FlowModuleWrapper.svelte +1 -0
- package/package/components/flows/content/FlowRetries.svelte +57 -57
- package/package/components/flows/content/FlowSelectionPanel.svelte +9 -14
- package/package/components/flows/content/FlowSelectionPanel.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowSettings.svelte +6 -6
- package/package/components/flows/content/ScriptEditorDrawer.svelte +1 -1
- package/package/components/flows/content/SuspendDrawer.svelte +0 -18
- package/package/components/flows/header/FlowYamlEditor.svelte +20 -4
- package/package/components/flows/map/FlowErrorHandlerItem.svelte +32 -14
- package/package/components/flows/map/FlowErrorHandlerItem.svelte.d.ts +1 -0
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +7 -10
- package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte +1 -8
- package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte.d.ts +0 -2
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +343 -137
- package/package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +1 -0
- package/package/components/flows/map/FlowStickyNode.svelte +24 -16
- package/package/components/flows/map/FlowStickyNode.svelte.d.ts +1 -0
- package/package/components/flows/map/VirtualItemWrapper.svelte +1 -1
- package/package/components/flows/pickers/PickHubScriptQuick.svelte.d.ts +1 -1
- package/package/components/flows/propPicker/OutputPickerInner.svelte +5 -1
- package/package/components/flows/scheduleUtils.js +3 -1
- package/package/components/flows/utils.svelte.js +6 -1
- package/package/components/git_sync/GitSyncContext.svelte.js +13 -2
- package/package/components/git_sync/GitSyncSection.svelte +135 -99
- package/package/components/graph/DragGhost.svelte +11 -2
- package/package/components/graph/FlowGraphV2.svelte +138 -42
- package/package/components/graph/FlowGraphV2.svelte.d.ts +15 -1
- package/package/components/graph/GroupActionBar.svelte +124 -0
- package/package/components/graph/GroupActionBar.svelte.d.ts +20 -0
- package/package/components/graph/GroupHeader.svelte +98 -0
- package/package/components/graph/GroupHeader.svelte.d.ts +11 -0
- package/package/components/graph/GroupHeaderBlock.svelte +58 -0
- package/package/components/graph/GroupHeaderBlock.svelte.d.ts +13 -0
- package/package/components/graph/GroupModuleIcons.svelte +163 -0
- package/package/components/graph/GroupModuleIcons.svelte.d.ts +11 -0
- package/package/components/graph/GroupNodeCard.svelte +127 -0
- package/package/components/graph/GroupNodeCard.svelte.d.ts +18 -0
- package/package/components/graph/GroupNoteArea.svelte +132 -0
- package/package/components/graph/GroupNoteArea.svelte.d.ts +11 -0
- package/package/components/graph/GroupOverlay.svelte +71 -0
- package/package/components/graph/GroupOverlay.svelte.d.ts +12 -0
- package/package/components/graph/MiniFlowGraph.svelte +17 -2
- package/package/components/graph/SelectionBoundingBox.svelte +14 -14
- package/package/components/graph/compoundLayout.d.ts +17 -1
- package/package/components/graph/compoundLayout.js +129 -14
- package/package/components/graph/flowStructure.d.ts +63 -0
- package/package/components/graph/flowStructure.js +422 -0
- package/package/components/graph/flowStructure.test.d.ts +1 -0
- package/package/components/graph/flowStructure.test.js +205 -0
- package/package/components/graph/graphBuilder.svelte.d.ts +52 -3
- package/package/components/graph/graphBuilder.svelte.js +170 -67
- package/package/components/graph/graphContext.d.ts +7 -0
- package/package/components/graph/groupDetectionUtils.d.ts +24 -1
- package/package/components/graph/groupDetectionUtils.js +101 -1
- package/package/components/graph/groupEditor.svelte.d.ts +105 -0
- package/package/components/graph/groupEditor.svelte.js +253 -0
- package/package/components/graph/groupedModulesProxy.svelte.d.ts +55 -0
- package/package/components/graph/groupedModulesProxy.svelte.js +130 -0
- package/package/components/graph/model.d.ts +2 -1
- package/package/components/graph/moveManager.svelte.js +0 -3
- package/package/components/graph/nodeExtraSpace.d.ts +32 -0
- package/package/components/graph/nodeExtraSpace.js +113 -0
- package/package/components/graph/noteColors.d.ts +1 -0
- package/package/components/graph/noteColors.js +20 -10
- package/package/components/graph/noteUtils.svelte.d.ts +0 -18
- package/package/components/graph/noteUtils.svelte.js +6 -41
- package/package/components/graph/renderers/edges/BaseEdge.svelte +26 -11
- package/package/components/graph/renderers/nodes/AIToolNode.svelte +24 -49
- package/package/components/graph/renderers/nodes/AIToolNode.svelte.d.ts +1 -4
- package/package/components/graph/renderers/nodes/AssetNode.svelte +1 -27
- package/package/components/graph/renderers/nodes/AssetNode.svelte.d.ts +0 -4
- package/package/components/graph/renderers/nodes/CollapsedGroupNode.svelte +85 -0
- package/package/components/graph/renderers/nodes/CollapsedGroupNode.svelte.d.ts +8 -0
- package/package/components/graph/renderers/nodes/ForLoopStartNode.svelte +3 -2
- package/package/components/graph/renderers/nodes/GroupEndNode.svelte +9 -0
- package/package/components/graph/renderers/nodes/GroupEndNode.svelte.d.ts +6 -0
- package/package/components/graph/renderers/nodes/GroupHeadNode.svelte +20 -0
- package/package/components/graph/renderers/nodes/GroupHeadNode.svelte.d.ts +8 -0
- package/package/components/graph/renderers/nodes/ModuleNode.svelte +8 -5
- package/package/components/graph/renderers/triggers/TriggersWrapper.svelte +1 -1
- package/package/components/graph/util.d.ts +5 -1
- package/package/components/graph/util.js +7 -5
- package/package/components/home/Item.svelte +1 -0
- package/package/components/home/ItemsList.svelte +1 -1
- package/package/components/icons/ActiveCampaignIcon.svelte +10 -0
- package/package/components/icons/ActiveCampaignIcon.svelte.d.ts +7 -0
- package/package/components/icons/AlgoliaIcon.svelte +7 -0
- package/package/components/icons/AlgoliaIcon.svelte.d.ts +7 -0
- package/package/components/icons/ApolloIcon.svelte +7 -0
- package/package/components/icons/ApolloIcon.svelte.d.ts +7 -0
- package/package/components/icons/BambooHrIcon.svelte +7 -0
- package/package/components/icons/BambooHrIcon.svelte.d.ts +7 -0
- package/package/components/icons/BaremetricsIcon.svelte +7 -0
- package/package/components/icons/BaremetricsIcon.svelte.d.ts +7 -0
- package/package/components/icons/BitlyIcon.svelte +7 -0
- package/package/components/icons/BitlyIcon.svelte.d.ts +7 -0
- package/package/components/icons/BloggerIcon.svelte +7 -0
- package/package/components/icons/BloggerIcon.svelte.d.ts +7 -0
- package/package/components/icons/BlueskyIcon.svelte +7 -0
- package/package/components/icons/BlueskyIcon.svelte.d.ts +7 -0
- package/package/components/icons/BoxIcon.svelte +7 -0
- package/package/components/icons/BoxIcon.svelte.d.ts +7 -0
- package/package/components/icons/BrevoIcon.svelte +7 -0
- package/package/components/icons/BrevoIcon.svelte.d.ts +7 -0
- package/package/components/icons/BrexIcon.svelte +7 -0
- package/package/components/icons/BrexIcon.svelte.d.ts +7 -0
- package/package/components/icons/BrowserlessIcon.svelte +7 -0
- package/package/components/icons/BrowserlessIcon.svelte.d.ts +7 -0
- package/package/components/icons/BubbleIcon.svelte +11 -0
- package/package/components/icons/BubbleIcon.svelte.d.ts +7 -0
- package/package/components/icons/BuildkiteIcon.svelte +7 -0
- package/package/components/icons/BuildkiteIcon.svelte.d.ts +7 -0
- package/package/components/icons/CalcomIcon.svelte +1 -1
- package/package/components/icons/CalendlyIcon.svelte +7 -0
- package/package/components/icons/CalendlyIcon.svelte.d.ts +7 -0
- package/package/components/icons/CircleCiIcon.svelte +7 -0
- package/package/components/icons/CircleCiIcon.svelte.d.ts +7 -0
- package/package/components/icons/CiscoIcon.svelte +7 -0
- package/package/components/icons/CiscoIcon.svelte.d.ts +7 -0
- package/package/components/icons/ClearbitIcon.svelte +7 -0
- package/package/components/icons/ClearbitIcon.svelte.d.ts +7 -0
- package/package/components/icons/ClerkIcon.svelte +7 -0
- package/package/components/icons/ClerkIcon.svelte.d.ts +7 -0
- package/package/components/icons/CloseIcon.svelte +37 -0
- package/package/components/icons/CloseIcon.svelte.d.ts +7 -0
- package/package/components/icons/CloudinaryIcon.svelte +7 -0
- package/package/components/icons/CloudinaryIcon.svelte.d.ts +7 -0
- package/package/components/icons/CockroachDbIcon.svelte +7 -0
- package/package/components/icons/CockroachDbIcon.svelte.d.ts +7 -0
- package/package/components/icons/CodaIcon.svelte +7 -0
- package/package/components/icons/CodaIcon.svelte.d.ts +7 -0
- package/package/components/icons/CohereIcon.svelte +16 -0
- package/package/components/icons/CohereIcon.svelte.d.ts +7 -0
- package/package/components/icons/CoinMarketCapIcon.svelte +7 -0
- package/package/components/icons/CoinMarketCapIcon.svelte.d.ts +7 -0
- package/package/components/icons/CoinbaseIcon.svelte +7 -0
- package/package/components/icons/CoinbaseIcon.svelte.d.ts +7 -0
- package/package/components/icons/ConfluenceIcon.svelte +7 -0
- package/package/components/icons/ConfluenceIcon.svelte.d.ts +7 -0
- package/package/components/icons/ContentfulIcon.svelte +7 -0
- package/package/components/icons/ContentfulIcon.svelte.d.ts +7 -0
- package/package/components/icons/ConvertKitIcon.svelte +7 -0
- package/package/components/icons/ConvertKitIcon.svelte.d.ts +7 -0
- package/package/components/icons/DatoCmsIcon.svelte +7 -0
- package/package/components/icons/DatoCmsIcon.svelte.d.ts +7 -0
- package/package/components/icons/DeelIcon.svelte +7 -0
- package/package/components/icons/DeelIcon.svelte.d.ts +7 -0
- package/package/components/icons/DeepLIcon.svelte +7 -0
- package/package/components/icons/DeepLIcon.svelte.d.ts +7 -0
- package/package/components/icons/DigitalOceanIcon.svelte +7 -0
- package/package/components/icons/DigitalOceanIcon.svelte.d.ts +7 -0
- package/package/components/icons/DiscourseIcon.svelte +7 -0
- package/package/components/icons/DiscourseIcon.svelte.d.ts +7 -0
- package/package/components/icons/DocusignIcon.svelte +7 -0
- package/package/components/icons/DocusignIcon.svelte.d.ts +7 -0
- package/package/components/icons/DropboxIcon.svelte +7 -0
- package/package/components/icons/DropboxIcon.svelte.d.ts +7 -0
- package/package/components/icons/EdgeDbIcon.svelte +16 -20
- package/package/components/icons/EventbriteIcon.svelte +10 -0
- package/package/components/icons/EventbriteIcon.svelte.d.ts +7 -0
- package/package/components/icons/FigmaIcon.svelte +7 -0
- package/package/components/icons/FigmaIcon.svelte.d.ts +7 -0
- package/package/components/icons/FlyIcon.svelte +7 -0
- package/package/components/icons/FlyIcon.svelte.d.ts +7 -0
- package/package/components/icons/FreshdeskIcon.svelte +7 -0
- package/package/components/icons/FreshdeskIcon.svelte.d.ts +7 -0
- package/package/components/icons/FrontAppIcon.svelte +7 -0
- package/package/components/icons/FrontAppIcon.svelte.d.ts +7 -0
- package/package/components/icons/GhostCmsIcon.svelte +7 -0
- package/package/components/icons/GhostCmsIcon.svelte.d.ts +7 -0
- package/package/components/icons/GiphyIcon.svelte +7 -0
- package/package/components/icons/GiphyIcon.svelte.d.ts +7 -0
- package/package/components/icons/GitBookIcon.svelte +7 -0
- package/package/components/icons/GitBookIcon.svelte.d.ts +7 -0
- package/package/components/icons/GroqIcon.svelte +7 -0
- package/package/components/icons/GroqIcon.svelte.d.ts +7 -0
- package/package/components/icons/HoneybadgerIcon.svelte +7 -0
- package/package/components/icons/HoneybadgerIcon.svelte.d.ts +7 -0
- package/package/components/icons/HttpIcon.svelte +1 -0
- package/package/components/icons/IftttIcon.svelte +7 -0
- package/package/components/icons/IftttIcon.svelte.d.ts +7 -0
- package/package/components/icons/IntercomIcon.svelte +7 -0
- package/package/components/icons/IntercomIcon.svelte.d.ts +7 -0
- package/package/components/icons/JoomlaIcon.svelte +7 -0
- package/package/components/icons/JoomlaIcon.svelte.d.ts +7 -0
- package/package/components/icons/LineIcon.svelte +7 -0
- package/package/components/icons/LineIcon.svelte.d.ts +7 -0
- package/package/components/icons/LinearIcon.svelte +7 -0
- package/package/components/icons/LinearIcon.svelte.d.ts +7 -0
- package/package/components/icons/LinodeIcon.svelte +7 -0
- package/package/components/icons/LinodeIcon.svelte.d.ts +7 -0
- package/package/components/icons/LumaAiIcon.svelte +39 -0
- package/package/components/icons/LumaAiIcon.svelte.d.ts +7 -0
- package/package/components/icons/MSTeamsIcon.svelte +20 -38
- package/package/components/icons/MSTeamsIcon.svelte.d.ts +2 -0
- package/package/components/icons/MagentoIcon.svelte +7 -0
- package/package/components/icons/MagentoIcon.svelte.d.ts +7 -0
- package/package/components/icons/MailchimpIcon.svelte +25 -13
- package/package/components/icons/MandrillIcon.svelte +7 -0
- package/package/components/icons/MandrillIcon.svelte.d.ts +7 -0
- package/package/components/icons/MauticIcon.svelte +7 -0
- package/package/components/icons/MauticIcon.svelte.d.ts +7 -0
- package/package/components/icons/MediumIcon.svelte +7 -0
- package/package/components/icons/MediumIcon.svelte.d.ts +7 -0
- package/package/components/icons/MiroIcon.svelte +7 -0
- package/package/components/icons/MiroIcon.svelte.d.ts +7 -0
- package/package/components/icons/MistralIcon.svelte +7 -0
- package/package/components/icons/MistralIcon.svelte.d.ts +7 -0
- package/package/components/icons/MixpanelIcon.svelte +7 -0
- package/package/components/icons/MixpanelIcon.svelte.d.ts +7 -0
- package/package/components/icons/MondayIcon.svelte +7 -0
- package/package/components/icons/MondayIcon.svelte.d.ts +7 -0
- package/package/components/icons/NeonDbIcon.svelte +23 -0
- package/package/components/icons/NeonDbIcon.svelte.d.ts +7 -0
- package/package/components/icons/NetlifyIcon.svelte +7 -0
- package/package/components/icons/NetlifyIcon.svelte.d.ts +7 -0
- package/package/components/icons/OneSignalIcon.svelte +9 -0
- package/package/components/icons/OneSignalIcon.svelte.d.ts +7 -0
- package/package/components/icons/OpenWeatherIcon.svelte +7 -0
- package/package/components/icons/OpenWeatherIcon.svelte.d.ts +7 -0
- package/package/components/icons/PagerDutyIcon.svelte +7 -0
- package/package/components/icons/PagerDutyIcon.svelte.d.ts +7 -0
- package/package/components/icons/PandaDocIcon.svelte +7 -0
- package/package/components/icons/PandaDocIcon.svelte.d.ts +7 -0
- package/package/components/icons/PaypalIcon.svelte +7 -0
- package/package/components/icons/PaypalIcon.svelte.d.ts +7 -0
- package/package/components/icons/PersonioIcon.svelte +7 -0
- package/package/components/icons/PersonioIcon.svelte.d.ts +7 -0
- package/package/components/icons/PinterestIcon.svelte +7 -0
- package/package/components/icons/PinterestIcon.svelte.d.ts +7 -0
- package/package/components/icons/PipedriveIcon.svelte +11 -0
- package/package/components/icons/PipedriveIcon.svelte.d.ts +7 -0
- package/package/components/icons/PlanetScaleIcon.svelte +7 -0
- package/package/components/icons/PlanetScaleIcon.svelte.d.ts +7 -0
- package/package/components/icons/PostmarkIcon.svelte +7 -0
- package/package/components/icons/PostmarkIcon.svelte.d.ts +7 -0
- package/package/components/icons/PusherIcon.svelte +7 -0
- package/package/components/icons/PusherIcon.svelte.d.ts +7 -0
- package/package/components/icons/QuickbooksIcon.svelte +13 -1
- package/package/components/icons/RaindropIcon.svelte +27 -0
- package/package/components/icons/RaindropIcon.svelte.d.ts +7 -0
- package/package/components/icons/ReadwiseIcon.svelte +12 -0
- package/package/components/icons/ReadwiseIcon.svelte.d.ts +7 -0
- package/package/components/icons/RenderIcon.svelte +7 -0
- package/package/components/icons/RenderIcon.svelte.d.ts +7 -0
- package/package/components/icons/ReplicateIcon.svelte +7 -0
- package/package/components/icons/ReplicateIcon.svelte.d.ts +7 -0
- package/package/components/icons/ResendIcon.svelte +1 -1
- package/package/components/icons/RestIcon.svelte +1 -0
- package/package/components/icons/RingCentralIcon.svelte +7 -0
- package/package/components/icons/RingCentralIcon.svelte.d.ts +7 -0
- package/package/components/icons/RocketChatIcon.svelte +7 -0
- package/package/components/icons/RocketChatIcon.svelte.d.ts +7 -0
- package/package/components/icons/RunPodIcon.svelte +8 -0
- package/package/components/icons/RunPodIcon.svelte.d.ts +7 -0
- package/package/components/icons/RustIcon.svelte +74 -56
- package/package/components/icons/SalesforceIcon.svelte +7 -0
- package/package/components/icons/SalesforceIcon.svelte.d.ts +7 -0
- package/package/components/icons/SegmentIcon.svelte +7 -0
- package/package/components/icons/SegmentIcon.svelte.d.ts +7 -0
- package/package/components/icons/SentryIcon.svelte +7 -0
- package/package/components/icons/SentryIcon.svelte.d.ts +7 -0
- package/package/components/icons/ServiceNowIcon.svelte +7 -0
- package/package/components/icons/ServiceNowIcon.svelte.d.ts +7 -0
- package/package/components/icons/ShortcutIcon.svelte +7 -0
- package/package/components/icons/ShortcutIcon.svelte.d.ts +7 -0
- package/package/components/icons/SigNozIcon.svelte +8 -0
- package/package/components/icons/SigNozIcon.svelte.d.ts +7 -0
- package/package/components/icons/SmartsheetIcon.svelte +7 -0
- package/package/components/icons/SmartsheetIcon.svelte.d.ts +7 -0
- package/package/components/icons/SpeechifyIcon.svelte +7 -0
- package/package/components/icons/SpeechifyIcon.svelte.d.ts +7 -0
- package/package/components/icons/SplitwiseIcon.svelte +7 -0
- package/package/components/icons/SplitwiseIcon.svelte.d.ts +7 -0
- package/package/components/icons/StravaIcon.svelte +7 -0
- package/package/components/icons/StravaIcon.svelte.d.ts +7 -0
- package/package/components/icons/TallyIcon.svelte +7 -0
- package/package/components/icons/TallyIcon.svelte.d.ts +7 -0
- package/package/components/icons/TelnyxIcon.svelte +19 -0
- package/package/components/icons/TelnyxIcon.svelte.d.ts +7 -0
- package/package/components/icons/ThreadsIcon.svelte +7 -0
- package/package/components/icons/ThreadsIcon.svelte.d.ts +7 -0
- package/package/components/icons/TodoistIcon.svelte +7 -0
- package/package/components/icons/TodoistIcon.svelte.d.ts +7 -0
- package/package/components/icons/TogetherAiIcon.svelte +23 -0
- package/package/components/icons/TogetherAiIcon.svelte.d.ts +7 -0
- package/package/components/icons/TrelloIcon.svelte +22 -1
- package/package/components/icons/TursoIcon.svelte +7 -0
- package/package/components/icons/TursoIcon.svelte.d.ts +7 -0
- package/package/components/icons/TwitchIcon.svelte +7 -0
- package/package/components/icons/TwitchIcon.svelte.d.ts +7 -0
- package/package/components/icons/TwitterIcon.svelte +7 -0
- package/package/components/icons/TwitterIcon.svelte.d.ts +7 -0
- package/package/components/icons/TypeformIcon.svelte +1 -1
- package/package/components/icons/VercelIcon.svelte +7 -0
- package/package/components/icons/VercelIcon.svelte.d.ts +7 -0
- package/package/components/icons/WebflowIcon.svelte +7 -0
- package/package/components/icons/WebflowIcon.svelte.d.ts +7 -0
- package/package/components/icons/WooCommerceIcon.svelte +7 -0
- package/package/components/icons/WooCommerceIcon.svelte.d.ts +7 -0
- package/package/components/icons/WordpressIcon.svelte +7 -0
- package/package/components/icons/WordpressIcon.svelte.d.ts +7 -0
- package/package/components/icons/XataIcon.svelte +13 -0
- package/package/components/icons/XataIcon.svelte.d.ts +7 -0
- package/package/components/icons/YelpIcon.svelte +7 -0
- package/package/components/icons/YelpIcon.svelte.d.ts +7 -0
- package/package/components/icons/YnabIcon.svelte +7 -0
- package/package/components/icons/YnabIcon.svelte.d.ts +7 -0
- package/package/components/icons/YoutubeIcon.svelte +7 -0
- package/package/components/icons/YoutubeIcon.svelte.d.ts +7 -0
- package/package/components/icons/ZendeskIcon.svelte +1 -1
- package/package/components/icons/ZeroTierIcon.svelte +7 -0
- package/package/components/icons/ZeroTierIcon.svelte.d.ts +7 -0
- package/package/components/icons/ZoomIcon.svelte +7 -0
- package/package/components/icons/ZoomIcon.svelte.d.ts +7 -0
- package/package/components/icons/index.d.ts +111 -1
- package/package/components/icons/index.js +225 -2
- package/package/components/instanceSettings/GhesAppSettings.svelte +161 -0
- package/package/components/instanceSettings/GhesAppSettings.svelte.d.ts +8 -0
- package/package/components/instanceSettings/IndexerMemorySettings.svelte +19 -8
- package/package/components/instanceSettings/InstanceAISettings.svelte +132 -0
- package/package/components/instanceSettings/InstanceAISettings.svelte.d.ts +10 -0
- package/package/components/instanceSettings/WorkspaceRegistries.svelte +293 -0
- package/package/components/instanceSettings/WorkspaceRegistries.svelte.d.ts +8 -0
- package/package/components/instanceSettings/WsConnectivityTest.svelte +177 -0
- package/package/components/instanceSettings/WsConnectivityTest.svelte.d.ts +7 -0
- package/package/components/instanceSettings.d.ts +3 -1
- package/package/components/instanceSettings.js +92 -2
- package/package/components/mcp/McpScopeSelector.svelte +408 -0
- package/package/components/mcp/McpScopeSelector.svelte.d.ts +7 -0
- package/package/components/meltComponents/Popover.svelte +0 -1
- package/package/components/raw_apps/RawAppPreview.svelte +6 -2
- package/package/components/recording/FlowRecordingReplay.svelte +94 -52
- package/package/components/recording/FlowRecordingReplay.svelte.d.ts +10 -1
- package/package/components/recording/ScriptRecordingReplay.svelte +140 -76
- package/package/components/recording/ScriptRecordingReplay.svelte.d.ts +10 -1
- package/package/components/runs/JobRunsPreview.svelte +8 -1
- package/package/components/runs/TimeframeSelect.svelte +0 -1
- package/package/components/schema/JobSchemaPicker.svelte +8 -2
- package/package/components/schema/JobSchemaPicker.svelte.d.ts +1 -0
- package/package/components/schema/SchemaFormDND.svelte +15 -3
- package/package/components/scriptEditor/LogPanel.svelte +78 -68
- package/package/components/script_builder.d.ts +1 -1
- package/package/components/scripts/CreateActionsScript.svelte +3 -3
- package/package/components/scripts/WacExportDrawer.svelte +127 -0
- package/package/components/scripts/WacExportDrawer.svelte.d.ts +8 -0
- package/package/components/scripts/scriptStore.svelte.d.ts +2 -0
- package/package/components/scripts/scriptStore.svelte.js +2 -0
- package/package/components/select/SelectDropdown.svelte +1 -1
- package/package/components/settings/AIPromptsModal.svelte +5 -2
- package/package/components/settings/AIPromptsModal.svelte.d.ts +1 -1
- package/package/components/settings/CloudQuotas.svelte +152 -0
- package/package/components/settings/CloudQuotas.svelte.d.ts +3 -0
- package/package/components/settings/CreateToken.svelte +15 -430
- package/package/components/settings/Trashbin.svelte +248 -0
- package/package/components/settings/Trashbin.svelte.d.ts +3 -0
- package/package/components/sidebar/MultiplayerMenu.svelte +14 -4
- package/package/components/triggers/DeleteTriggerButton.svelte +1 -0
- package/package/components/triggers/PermissionedAsLine.svelte +66 -0
- package/package/components/triggers/PermissionedAsLine.svelte.d.ts +9 -0
- package/package/components/triggers/TriggerEditorToolbar.svelte +2 -2
- package/package/components/triggers/TriggerTokens.svelte +3 -3
- package/package/components/triggers/email/EmailTriggerEditorInner.svelte +19 -1
- package/package/components/triggers/email/utils.js +3 -1
- package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +24 -4
- package/package/components/triggers/gcp/utils.js +2 -0
- package/package/components/triggers/http/RouteEditorConfigSection.svelte +22 -3
- package/package/components/triggers/http/RouteEditorInner.svelte +28 -6
- package/package/components/triggers/http/RoutesGenerator.svelte +13 -2
- package/package/components/triggers/http/utils.js +3 -1
- package/package/components/triggers/kafka/KafkaTriggerEditorInner.svelte +23 -6
- package/package/components/triggers/kafka/utils.js +3 -1
- package/package/components/triggers/mqtt/MqttTriggerEditorInner.svelte +27 -5
- package/package/components/triggers/mqtt/utils.js +2 -0
- package/package/components/triggers/native/NativeTriggerEditor.svelte +23 -1
- package/package/components/triggers/native/NativeTriggerTable.svelte +14 -3
- package/package/components/triggers/native/utils.js +3 -2
- package/package/components/triggers/nats/NatsTriggerEditorInner.svelte +19 -1
- package/package/components/triggers/nats/utils.js +2 -0
- package/package/components/triggers/postgres/PostgresTriggerEditorInner.svelte +19 -1
- package/package/components/triggers/postgres/utils.js +2 -0
- package/package/components/triggers/schedules/ScheduleEditorInner.svelte +29 -7
- package/package/components/triggers/sqs/SqsTriggerEditorInner.svelte +19 -1
- package/package/components/triggers/sqs/utils.js +2 -0
- package/package/components/triggers/utils.js +9 -2
- package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +24 -4
- package/package/components/triggers/websocket/utils.js +3 -1
- package/package/components/workspaceSettings/AISettings.svelte +342 -214
- package/package/components/workspaceSettings/AISettings.svelte.d.ts +18 -10
- package/package/components/workspaceSettings/CreateWorkspace.svelte +304 -196
- package/package/components/workspaceSettings/CustomInstanceDbWizardModal.svelte +1 -2
- package/package/components/workspaceSettings/DucklakeSettings.svelte +1 -1
- package/package/components/workspaceSettings/InstanceFallbackSettings.svelte +75 -0
- package/package/components/workspaceSettings/InstanceFallbackSettings.svelte.d.ts +9 -0
- package/package/components/workspaceSettings/StorageSettings.svelte +4 -35
- package/package/components/workspaceSettings/VolumeStorageSettings.svelte +80 -0
- package/package/components/workspaceSettings/VolumeStorageSettings.svelte.d.ts +10 -0
- package/package/components/workspaceSettings/WorkspaceIntegrations.svelte +4 -1
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +294 -94
- package/package/gen/schemas.gen.js +294 -94
- package/package/gen/services.gen.d.ts +121 -5
- package/package/gen/services.gen.js +237 -5
- package/package/gen/types.gen.d.ts +715 -91
- package/package/githubApp.js +19 -1
- package/package/hubPaths.json +8 -4
- package/package/infer.d.ts +1 -1
- package/package/infer.js +5 -1
- package/package/logoutRedirect.d.ts +1 -0
- package/package/logoutRedirect.js +24 -0
- package/package/script_helpers.d.ts +8 -2
- package/package/script_helpers.js +15 -1
- package/package/services/trashService.d.ts +28 -0
- package/package/services/trashService.js +47 -0
- package/package/stores.d.ts +1 -0
- package/package/stores.js +1 -0
- package/package/system_prompts/index.d.ts +1 -0
- package/package/system_prompts/index.js +7 -0
- package/package/system_prompts/prompts.d.ts +7 -5
- package/package/system_prompts/prompts.js +182 -11
- package/package/templates/wac_python.py.template +42 -0
- package/package/templates/wac_typescript.ts.template +48 -0
- package/package/utils_deployable.d.ts +22 -21
- package/package/utils_deployable.js +58 -25
- package/package/utils_workspace_deploy.d.ts +15 -4
- package/package/utils_workspace_deploy.js +19 -15
- package/package/wsUrl.d.ts +1 -0
- package/package/wsUrl.js +15 -0
- package/package.json +13 -5
- package/dist/sharedUtils/assets/tokens/colorTokensConfig.d.ts +0 -2
- package/dist/sharedUtils/base.d.ts +0 -1
- package/dist/sharedUtils/cloud.d.ts +0 -1
- package/dist/sharedUtils/common.d.ts +0 -111
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/count.d.ts +0 -5
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/delete.d.ts +0 -5
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/insert.d.ts +0 -5
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/select.d.ts +0 -13
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/update.d.ts +0 -11
- package/dist/sharedUtils/components/apps/components/display/dbtable/utils.d.ts +0 -95
- package/dist/sharedUtils/components/apps/editor/appPolicy.d.ts +0 -6
- package/dist/sharedUtils/components/apps/editor/appUtilsCore.d.ts +0 -7
- package/dist/sharedUtils/components/apps/editor/appUtilsS3.d.ts +0 -33
- package/dist/sharedUtils/components/apps/editor/commonAppUtils.d.ts +0 -10
- package/dist/sharedUtils/components/apps/editor/component/components.d.ts +0 -5371
- package/dist/sharedUtils/components/apps/editor/component/default-codes.d.ts +0 -3
- package/dist/sharedUtils/components/apps/editor/component/index.d.ts +0 -3
- package/dist/sharedUtils/components/apps/editor/component/sets.d.ts +0 -7
- package/dist/sharedUtils/components/apps/editor/componentsPanel/componentDefaultProps.d.ts +0 -3
- package/dist/sharedUtils/components/apps/gridUtils.d.ts +0 -14
- package/dist/sharedUtils/components/apps/inputType.d.ts +0 -178
- package/dist/sharedUtils/components/apps/rx.d.ts +0 -29
- package/dist/sharedUtils/components/apps/sharedTypes.d.ts +0 -21
- package/dist/sharedUtils/components/apps/types.d.ts +0 -274
- package/dist/sharedUtils/components/assets/lib.d.ts +0 -25
- package/dist/sharedUtils/components/common/alert/model.d.ts +0 -2
- package/dist/sharedUtils/components/common/badge/model.d.ts +0 -8
- package/dist/sharedUtils/components/common/button/model.d.ts +0 -45
- package/dist/sharedUtils/components/common/fileInput/model.d.ts +0 -1
- package/dist/sharedUtils/components/common/index.d.ts +0 -24
- package/dist/sharedUtils/components/common/skeleton/model.d.ts +0 -21
- package/dist/sharedUtils/components/dbTypes.d.ts +0 -14
- package/dist/sharedUtils/components/diff_drawer.d.ts +0 -26
- package/dist/sharedUtils/components/ducklake.d.ts +0 -1
- package/dist/sharedUtils/components/flows/scheduleUtils.d.ts +0 -7
- package/dist/sharedUtils/components/icons/index.d.ts +0 -101
- package/dist/sharedUtils/components/random_positive_adjetive.d.ts +0 -1
- package/dist/sharedUtils/components/raw_apps/rawAppPolicy.d.ts +0 -10
- package/dist/sharedUtils/components/raw_apps/utils.d.ts +0 -15
- package/dist/sharedUtils/components/triggers/email/utils.d.ts +0 -4
- package/dist/sharedUtils/components/triggers/gcp/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers/http/utils.d.ts +0 -11
- package/dist/sharedUtils/components/triggers/kafka/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers/mqtt/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers/nats/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers/postgres/utils.d.ts +0 -8
- package/dist/sharedUtils/components/triggers/sqs/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers/triggers.svelte.d.ts +0 -32
- package/dist/sharedUtils/components/triggers/utils.d.ts +0 -80
- package/dist/sharedUtils/components/triggers/websocket/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers.d.ts +0 -20
- package/dist/sharedUtils/gen/core/ApiError.d.ts +0 -10
- package/dist/sharedUtils/gen/core/ApiRequestOptions.d.ts +0 -13
- package/dist/sharedUtils/gen/core/ApiResult.d.ts +0 -7
- package/dist/sharedUtils/gen/core/CancelablePromise.d.ts +0 -26
- package/dist/sharedUtils/gen/core/OpenAPI.d.ts +0 -27
- package/dist/sharedUtils/gen/core/request.d.ts +0 -29
- package/dist/sharedUtils/gen/index.d.ts +0 -6
- package/dist/sharedUtils/gen/schemas.gen.d.ts +0 -7036
- package/dist/sharedUtils/gen/services.gen.d.ts +0 -6047
- package/dist/sharedUtils/gen/types.gen.d.ts +0 -21881
- package/dist/sharedUtils/history.svelte.d.ts +0 -9
- package/dist/sharedUtils/hub.d.ts +0 -49
- package/dist/sharedUtils/jsr.json +0 -6
- package/dist/sharedUtils/lib.d.ts +0 -5
- package/dist/sharedUtils/lib.es.js +0 -1588
- package/dist/sharedUtils/package.json +0 -12
- package/dist/sharedUtils/schema.d.ts +0 -3
- package/dist/sharedUtils/stores.d.ts +0 -97
- package/dist/sharedUtils/svelte5Utils.svelte.d.ts +0 -80
- package/dist/sharedUtils/toast.d.ts +0 -8
- package/dist/sharedUtils/utils.d.ts +0 -265
- package/package/components/graph/NodeContextMenu.svelte +0 -36
- package/package/components/graph/NodeContextMenu.svelte.d.ts +0 -8
- package/package/svelte5Utils.svelte.d.ts +0 -184
|
@@ -0,0 +1,408 @@
|
|
|
1
|
+
<script lang="ts">import { Badge, Button } from '../common';
|
|
2
|
+
import ToggleButton from '../common/toggleButton-v2/ToggleButton.svelte';
|
|
3
|
+
import ToggleButtonGroup from '../common/toggleButton-v2/ToggleButtonGroup.svelte';
|
|
4
|
+
import Popover from '../Popover.svelte';
|
|
5
|
+
import MultiSelect from '../select/MultiSelect.svelte';
|
|
6
|
+
import { safeSelectItems } from '../select/utils.svelte';
|
|
7
|
+
import FolderPicker from '../FolderPicker.svelte';
|
|
8
|
+
import TextInput from '../text_input/TextInput.svelte';
|
|
9
|
+
import { FlowService, IntegrationService, ScriptService } from '../../gen';
|
|
10
|
+
import { mcpEndpointTools } from '../../mcpEndpointTools';
|
|
11
|
+
import InfoIcon from 'lucide-svelte/icons/info';
|
|
12
|
+
import { SvelteMap } from 'svelte/reactivity';
|
|
13
|
+
let { workspaceId, scope = $bindable() } = $props();
|
|
14
|
+
let selectedMode = $state('favorites');
|
|
15
|
+
let selectedFolder = $state('');
|
|
16
|
+
let selectedScripts = $state([]);
|
|
17
|
+
let selectedFlows = $state([]);
|
|
18
|
+
let selectedEndpoints = $state([]);
|
|
19
|
+
let customScriptPatterns = $state('');
|
|
20
|
+
let customFlowPatterns = $state('');
|
|
21
|
+
let newMcpApps = $state([]);
|
|
22
|
+
let allScripts = $state([]);
|
|
23
|
+
let allFlows = $state([]);
|
|
24
|
+
let allApps = $state([]);
|
|
25
|
+
let loadingApps = $state(false);
|
|
26
|
+
let errorFetchApps = $state(false);
|
|
27
|
+
let loadingRunnables = $state(false);
|
|
28
|
+
let includedRunnables = $state([]);
|
|
29
|
+
let runnablesCache = new SvelteMap();
|
|
30
|
+
function parsePatterns(input) {
|
|
31
|
+
return input
|
|
32
|
+
.split(',')
|
|
33
|
+
.map((p) => p.trim())
|
|
34
|
+
.filter((p) => p.length > 0);
|
|
35
|
+
}
|
|
36
|
+
// Compute scope string from selections
|
|
37
|
+
$effect(() => {
|
|
38
|
+
let scopeParts = [];
|
|
39
|
+
if (selectedMode === 'custom') {
|
|
40
|
+
let scriptPaths = [...selectedScripts];
|
|
41
|
+
if (customScriptPatterns.trim()) {
|
|
42
|
+
scriptPaths.push(...parsePatterns(customScriptPatterns));
|
|
43
|
+
}
|
|
44
|
+
if (scriptPaths.length > 0) {
|
|
45
|
+
scopeParts.push(`mcp:scripts:${scriptPaths.join(',')}`);
|
|
46
|
+
}
|
|
47
|
+
let flowPaths = [...selectedFlows];
|
|
48
|
+
if (customFlowPatterns.trim()) {
|
|
49
|
+
flowPaths.push(...parsePatterns(customFlowPatterns));
|
|
50
|
+
}
|
|
51
|
+
if (flowPaths.length > 0) {
|
|
52
|
+
scopeParts.push(`mcp:flows:${flowPaths.join(',')}`);
|
|
53
|
+
}
|
|
54
|
+
if (selectedEndpoints.length > 0) {
|
|
55
|
+
scopeParts.push(`mcp:endpoints:${selectedEndpoints.join(',')}`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
else if (selectedMode === 'folder') {
|
|
59
|
+
const folderPath = `f/${selectedFolder}/*`;
|
|
60
|
+
scopeParts = [`mcp:scripts:${folderPath}`, `mcp:flows:${folderPath}`, `mcp:endpoints:*`];
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
scopeParts = [`mcp:${selectedMode}`];
|
|
64
|
+
}
|
|
65
|
+
if (newMcpApps.length > 0) {
|
|
66
|
+
scopeParts.push(`mcp:hub:${newMcpApps.join(',')}`);
|
|
67
|
+
}
|
|
68
|
+
scope = scopeParts.join(' ');
|
|
69
|
+
});
|
|
70
|
+
// Clear pattern inputs when not in custom scope
|
|
71
|
+
$effect(() => {
|
|
72
|
+
if (selectedMode !== 'custom') {
|
|
73
|
+
customScriptPatterns = '';
|
|
74
|
+
customFlowPatterns = '';
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
// Clear folder when not in folder mode
|
|
78
|
+
$effect(() => {
|
|
79
|
+
if (selectedMode !== 'folder') {
|
|
80
|
+
selectedFolder = '';
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
// Load hub apps on mount
|
|
84
|
+
async function getAllApps() {
|
|
85
|
+
if (allApps.length > 0)
|
|
86
|
+
return;
|
|
87
|
+
try {
|
|
88
|
+
loadingApps = true;
|
|
89
|
+
allApps = (await IntegrationService.listHubIntegrations({
|
|
90
|
+
kind: 'script'
|
|
91
|
+
})).map((x) => x.name);
|
|
92
|
+
}
|
|
93
|
+
catch (err) {
|
|
94
|
+
console.error('Hub is not available');
|
|
95
|
+
allApps = [];
|
|
96
|
+
errorFetchApps = true;
|
|
97
|
+
}
|
|
98
|
+
finally {
|
|
99
|
+
loadingApps = false;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
getAllApps();
|
|
103
|
+
async function getScripts(favoriteOnly = false, workspace, folder) {
|
|
104
|
+
if (!workspace)
|
|
105
|
+
return [];
|
|
106
|
+
const pathStart = folder ? `f/${folder}` : undefined;
|
|
107
|
+
const scripts = await ScriptService.listScripts({
|
|
108
|
+
starredOnly: favoriteOnly,
|
|
109
|
+
workspace,
|
|
110
|
+
pathStart,
|
|
111
|
+
withoutDescription: true
|
|
112
|
+
});
|
|
113
|
+
return scripts.map((x) => x.path);
|
|
114
|
+
}
|
|
115
|
+
async function getFlows(favoriteOnly = false, workspace, folder) {
|
|
116
|
+
if (!workspace)
|
|
117
|
+
return [];
|
|
118
|
+
const pathStart = folder ? `f/${folder}` : undefined;
|
|
119
|
+
const flows = await FlowService.listFlows({
|
|
120
|
+
starredOnly: favoriteOnly,
|
|
121
|
+
workspace,
|
|
122
|
+
pathStart,
|
|
123
|
+
withoutDescription: true
|
|
124
|
+
});
|
|
125
|
+
return flows.map((x) => x.path);
|
|
126
|
+
}
|
|
127
|
+
async function getScriptsAndFlows(favoriteOnly = false, workspace, folder) {
|
|
128
|
+
const cacheKey = `${workspace}-${favoriteOnly}${folder ? `-${folder}` : ''}`;
|
|
129
|
+
if (runnablesCache.has(cacheKey)) {
|
|
130
|
+
includedRunnables = runnablesCache.get(cacheKey) || [];
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
try {
|
|
134
|
+
loadingRunnables = true;
|
|
135
|
+
const [scripts, flows] = await Promise.all([
|
|
136
|
+
getScripts(favoriteOnly, workspace, folder),
|
|
137
|
+
getFlows(favoriteOnly, workspace, folder)
|
|
138
|
+
]);
|
|
139
|
+
const combined = [...scripts, ...flows];
|
|
140
|
+
runnablesCache.set(cacheKey, combined);
|
|
141
|
+
includedRunnables = combined;
|
|
142
|
+
}
|
|
143
|
+
finally {
|
|
144
|
+
loadingRunnables = false;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
async function loadAllScriptsAndFlows(workspace) {
|
|
148
|
+
try {
|
|
149
|
+
loadingRunnables = true;
|
|
150
|
+
const [scripts, flows] = await Promise.all([
|
|
151
|
+
getScripts(false, workspace, undefined),
|
|
152
|
+
getFlows(false, workspace, undefined)
|
|
153
|
+
]);
|
|
154
|
+
allScripts = scripts;
|
|
155
|
+
allFlows = flows;
|
|
156
|
+
}
|
|
157
|
+
finally {
|
|
158
|
+
loadingRunnables = false;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
// Load runnables based on mode
|
|
162
|
+
$effect(() => {
|
|
163
|
+
if (workspaceId) {
|
|
164
|
+
const folderParam = selectedFolder.length > 0 ? selectedFolder : undefined;
|
|
165
|
+
getScriptsAndFlows(selectedMode === 'favorites', workspaceId, folderParam);
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
// Load all scripts/flows for custom mode
|
|
169
|
+
$effect(() => {
|
|
170
|
+
if (selectedMode === 'custom' && workspaceId) {
|
|
171
|
+
loadAllScriptsAndFlows(workspaceId);
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
const warning = $derived(selectedMode === 'all'
|
|
175
|
+
? 'Create your first scripts or flows to make them available via MCP.'
|
|
176
|
+
: selectedMode === 'favorites'
|
|
177
|
+
? `You do not have any favorite scripts or flows. You can favorite some scripts and flows to include them, or change the scope to "All scripts/flows" to include all your scripts and flows.`
|
|
178
|
+
: `You do not have any scripts or flows in the selected folder.`);
|
|
179
|
+
function selectAllScripts() {
|
|
180
|
+
selectedScripts = [...allScripts];
|
|
181
|
+
}
|
|
182
|
+
function clearAllScripts() {
|
|
183
|
+
selectedScripts = [];
|
|
184
|
+
}
|
|
185
|
+
function selectAllFlows() {
|
|
186
|
+
selectedFlows = [...allFlows];
|
|
187
|
+
}
|
|
188
|
+
function clearAllFlows() {
|
|
189
|
+
selectedFlows = [];
|
|
190
|
+
}
|
|
191
|
+
function selectAllEndpoints() {
|
|
192
|
+
selectedEndpoints = [...mcpEndpointTools.map((e) => e.name)];
|
|
193
|
+
}
|
|
194
|
+
function clearAllEndpoints() {
|
|
195
|
+
selectedEndpoints = [];
|
|
196
|
+
}
|
|
197
|
+
</script>
|
|
198
|
+
|
|
199
|
+
<div class="flex flex-col gap-4">
|
|
200
|
+
<div>
|
|
201
|
+
<span class="block mb-1 text-emphasis text-xs font-semibold">Scope</span>
|
|
202
|
+
<ToggleButtonGroup bind:selected={selectedMode} allowEmpty={false}>
|
|
203
|
+
{#snippet children({ item })}
|
|
204
|
+
<ToggleButton
|
|
205
|
+
{item}
|
|
206
|
+
value="favorites"
|
|
207
|
+
label="Favorites only"
|
|
208
|
+
tooltip="Make only your favorite scripts and flows available as tools"
|
|
209
|
+
/>
|
|
210
|
+
<ToggleButton
|
|
211
|
+
{item}
|
|
212
|
+
value="all"
|
|
213
|
+
label="All scripts/flows"
|
|
214
|
+
tooltip="Make all your scripts and flows available as tools"
|
|
215
|
+
/>
|
|
216
|
+
<ToggleButton
|
|
217
|
+
{item}
|
|
218
|
+
value="folder"
|
|
219
|
+
label="Folder"
|
|
220
|
+
tooltip="Make all scripts and flows in the selected folder available as tools"
|
|
221
|
+
/>
|
|
222
|
+
<ToggleButton
|
|
223
|
+
{item}
|
|
224
|
+
value="custom"
|
|
225
|
+
label="Custom"
|
|
226
|
+
tooltip="Select exactly which scripts, flows, and endpoints to expose"
|
|
227
|
+
/>
|
|
228
|
+
{/snippet}
|
|
229
|
+
</ToggleButtonGroup>
|
|
230
|
+
</div>
|
|
231
|
+
|
|
232
|
+
{#if selectedMode === 'folder'}
|
|
233
|
+
<div>
|
|
234
|
+
<span class="block mb-1 text-emphasis text-xs font-semibold">Select Folder</span>
|
|
235
|
+
<FolderPicker bind:folderName={selectedFolder} />
|
|
236
|
+
</div>
|
|
237
|
+
{/if}
|
|
238
|
+
|
|
239
|
+
<div>
|
|
240
|
+
<span class="block mb-1 text-emphasis text-xs font-semibold">Hub scripts (optional)</span>
|
|
241
|
+
{#if loadingApps}
|
|
242
|
+
<div>Loading...</div>
|
|
243
|
+
{:else if errorFetchApps}
|
|
244
|
+
<div>Error fetching apps</div>
|
|
245
|
+
{:else}
|
|
246
|
+
<MultiSelect
|
|
247
|
+
items={safeSelectItems(allApps)}
|
|
248
|
+
placeholder="Select apps"
|
|
249
|
+
bind:value={newMcpApps}
|
|
250
|
+
/>
|
|
251
|
+
{/if}
|
|
252
|
+
</div>
|
|
253
|
+
|
|
254
|
+
{#if selectedMode === 'custom'}
|
|
255
|
+
{#if loadingRunnables}
|
|
256
|
+
<div class="flex flex-col gap-2">
|
|
257
|
+
<span class="block text-xs text-primary">Loading scripts and flows...</span>
|
|
258
|
+
<div class="flex flex-wrap gap-1">
|
|
259
|
+
<Badge rounded small color="dark-gray" baseClass="animate-skeleton">Loading...</Badge>
|
|
260
|
+
</div>
|
|
261
|
+
</div>
|
|
262
|
+
{:else}
|
|
263
|
+
{#snippet sectionHeader(label: string, selectAll: () => void, clearAll: () => void)}
|
|
264
|
+
<div class="flex items-center justify-between">
|
|
265
|
+
<span class="block text-xs font-semibold">{label}</span>
|
|
266
|
+
<div class="flex gap-2">
|
|
267
|
+
<Button size="xs2" onClick={selectAll}>Select All</Button>
|
|
268
|
+
<Button size="xs2" onClick={clearAll}>Clear All</Button>
|
|
269
|
+
</div>
|
|
270
|
+
</div>
|
|
271
|
+
{/snippet}
|
|
272
|
+
|
|
273
|
+
<div class="flex flex-col gap-2">
|
|
274
|
+
<div class="flex flex-col gap-2">
|
|
275
|
+
{@render sectionHeader('Scripts', selectAllScripts, clearAllScripts)}
|
|
276
|
+
{#if allScripts.length > 0}
|
|
277
|
+
<MultiSelect
|
|
278
|
+
items={safeSelectItems(allScripts)}
|
|
279
|
+
placeholder="Select scripts"
|
|
280
|
+
bind:value={selectedScripts}
|
|
281
|
+
/>
|
|
282
|
+
{:else}
|
|
283
|
+
<p class="text-xs text-primary">No scripts available</p>
|
|
284
|
+
{/if}
|
|
285
|
+
</div>
|
|
286
|
+
|
|
287
|
+
<div class="flex flex-col gap-2 mt-2">
|
|
288
|
+
{@render sectionHeader('Flows', selectAllFlows, clearAllFlows)}
|
|
289
|
+
{#if allFlows.length > 0}
|
|
290
|
+
<MultiSelect
|
|
291
|
+
items={safeSelectItems(allFlows)}
|
|
292
|
+
placeholder="Select flows"
|
|
293
|
+
bind:value={selectedFlows}
|
|
294
|
+
/>
|
|
295
|
+
{:else}
|
|
296
|
+
<p class="text-xs text-primary">No flows available</p>
|
|
297
|
+
{/if}
|
|
298
|
+
</div>
|
|
299
|
+
|
|
300
|
+
<div class="flex flex-col gap-2 mt-2">
|
|
301
|
+
{@render sectionHeader('API Endpoints', selectAllEndpoints, clearAllEndpoints)}
|
|
302
|
+
<MultiSelect
|
|
303
|
+
items={safeSelectItems(mcpEndpointTools.map((e) => e.name))}
|
|
304
|
+
placeholder="Select endpoints"
|
|
305
|
+
bind:value={selectedEndpoints}
|
|
306
|
+
/>
|
|
307
|
+
</div>
|
|
308
|
+
|
|
309
|
+
<div class="text-xs text-primary mt-2">
|
|
310
|
+
Selected: {selectedScripts.length} scripts, {selectedFlows.length} flows, {selectedEndpoints.length}
|
|
311
|
+
endpoints
|
|
312
|
+
</div>
|
|
313
|
+
|
|
314
|
+
<!-- Wildcard Patterns Section -->
|
|
315
|
+
<div class="flex flex-col gap-2 mt-4 pt-4 border-t border-surface-hover">
|
|
316
|
+
<div class="flex flex-col gap-2">
|
|
317
|
+
<div class="flex items-center justify-between">
|
|
318
|
+
<span class="block text-xs font-semibold">Script wildcard patterns</span>
|
|
319
|
+
<Popover notClickable>
|
|
320
|
+
{#snippet text()}
|
|
321
|
+
<div class="text-xs max-w-xs">
|
|
322
|
+
<p class="font-semibold mb-2">Add folder wildcards or complex patterns</p>
|
|
323
|
+
<p class="mb-1"><b>Examples:</b></p>
|
|
324
|
+
<ul class="list-disc ml-4 space-y-1">
|
|
325
|
+
<li><code>f/folder/*</code> - all scripts/flows in folder</li>
|
|
326
|
+
<li><code>f/folder1/*,f/folder2/*</code> - multiple folders</li>
|
|
327
|
+
<li>Mix: <code>f/folder/*,f/specific/path</code></li>
|
|
328
|
+
</ul>
|
|
329
|
+
<p class="mt-2 text-xs text-secondary">
|
|
330
|
+
Patterns are combined with individual selections above.
|
|
331
|
+
</p>
|
|
332
|
+
</div>
|
|
333
|
+
{/snippet}
|
|
334
|
+
<Button color="light" size="xs2" nonCaptureEvent startIcon={{ icon: InfoIcon }}>
|
|
335
|
+
Pattern Help
|
|
336
|
+
</Button>
|
|
337
|
+
</Popover>
|
|
338
|
+
</div>
|
|
339
|
+
<TextInput
|
|
340
|
+
inputProps={{ placeholder: 'e.g., f/outline/*,f/docs/*' }}
|
|
341
|
+
bind:value={customScriptPatterns}
|
|
342
|
+
/>
|
|
343
|
+
</div>
|
|
344
|
+
<div class="flex flex-col gap-2 mt-2">
|
|
345
|
+
<div class="flex items-center justify-between">
|
|
346
|
+
<span class="block text-xs font-semibold">Flow wildcard patterns</span>
|
|
347
|
+
</div>
|
|
348
|
+
<TextInput
|
|
349
|
+
inputProps={{ placeholder: 'e.g., f/workflows/*' }}
|
|
350
|
+
bind:value={customFlowPatterns}
|
|
351
|
+
/>
|
|
352
|
+
</div>
|
|
353
|
+
</div>
|
|
354
|
+
</div>
|
|
355
|
+
{/if}
|
|
356
|
+
{:else if selectedMode !== 'folder' || selectedFolder.length > 0}
|
|
357
|
+
{#if loadingRunnables}
|
|
358
|
+
<div class="flex flex-col gap-2">
|
|
359
|
+
<span class="block text-xs text-primary"
|
|
360
|
+
>Scripts & Flows that will be available via MCP</span
|
|
361
|
+
>
|
|
362
|
+
<div class="flex flex-wrap gap-1">
|
|
363
|
+
<Badge rounded small color="dark-gray" baseClass="animate-skeleton">Loading...</Badge>
|
|
364
|
+
</div>
|
|
365
|
+
</div>
|
|
366
|
+
{:else}
|
|
367
|
+
<div class="flex flex-col gap-2">
|
|
368
|
+
<span class="block text-xs">Scripts & Flows that will be available via MCP</span>
|
|
369
|
+
<div class="flex flex-wrap gap-1">
|
|
370
|
+
{#if includedRunnables.length > 0 && includedRunnables.length <= 5}
|
|
371
|
+
{#each includedRunnables as scriptOrFlow (scriptOrFlow)}
|
|
372
|
+
<Badge rounded small color="blue">{scriptOrFlow}</Badge>
|
|
373
|
+
{/each}
|
|
374
|
+
{:else if includedRunnables.length > 0}
|
|
375
|
+
{#each includedRunnables.slice(0, 3) as scriptOrFlow (scriptOrFlow)}
|
|
376
|
+
<Badge rounded small color="blue">{scriptOrFlow}</Badge>
|
|
377
|
+
{/each}
|
|
378
|
+
<Badge rounded small color="dark-gray">
|
|
379
|
+
+{includedRunnables.length - 3} more
|
|
380
|
+
</Badge>
|
|
381
|
+
{:else}
|
|
382
|
+
<p class="text-xs text-primary">
|
|
383
|
+
{warning}
|
|
384
|
+
</p>
|
|
385
|
+
{/if}
|
|
386
|
+
</div>
|
|
387
|
+
|
|
388
|
+
<span class="block text-xs mt-2">API endpoint tools that will be available via MCP</span>
|
|
389
|
+
<div class="flex flex-wrap gap-1">
|
|
390
|
+
{#each mcpEndpointTools as endpoint (endpoint.name)}
|
|
391
|
+
<Popover notClickable>
|
|
392
|
+
{#snippet text()}
|
|
393
|
+
<div class="flex flex-col gap-1">
|
|
394
|
+
<div class="text-xs">{endpoint.description}</div>
|
|
395
|
+
<div class="text-xs">
|
|
396
|
+
{endpoint.method}
|
|
397
|
+
{endpoint.path}
|
|
398
|
+
</div>
|
|
399
|
+
</div>
|
|
400
|
+
{/snippet}
|
|
401
|
+
<Badge rounded small color="green">{endpoint.name}</Badge>
|
|
402
|
+
</Popover>
|
|
403
|
+
{/each}
|
|
404
|
+
</div>
|
|
405
|
+
</div>
|
|
406
|
+
{/if}
|
|
407
|
+
{/if}
|
|
408
|
+
</div>
|
|
@@ -35,7 +35,6 @@ const { elements: { trigger: _trigger, content: _content, arrow, close: closeEle
|
|
|
35
35
|
escapeBehavior: untrack(() => escapeBehavior),
|
|
36
36
|
openFocus: untrack(() => openFocus),
|
|
37
37
|
onOpenChange: ({ curr, next }) => {
|
|
38
|
-
console.log('Popover open state changed:', { curr, next });
|
|
39
38
|
if (curr != next) {
|
|
40
39
|
dispatch('openChange', next);
|
|
41
40
|
if (!next) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts">import {} from '../../stores';
|
|
2
2
|
import RawAppBackgroundRunner from './RawAppBackgroundRunner.svelte';
|
|
3
3
|
import { htmlContent } from './utils';
|
|
4
|
-
import { onMount } from 'svelte';
|
|
4
|
+
import { onMount, untrack } from 'svelte';
|
|
5
5
|
let { workspace, user, secret, path, runnables } = $props();
|
|
6
6
|
let iframe = $state();
|
|
7
7
|
// Get initial hash from parent URL to pass to iframe
|
|
@@ -11,11 +11,15 @@ onMount(() => {
|
|
|
11
11
|
});
|
|
12
12
|
// Use blob URL instead of srcDoc to give the iframe a proper origin.
|
|
13
13
|
// srcDoc iframes have "null" origin which breaks URL constructor in routers.
|
|
14
|
+
// untrack(user) so that userStore refreshes don't regenerate the blob URL
|
|
15
|
+
// and cause the iframe to fully reload (losing all state).
|
|
16
|
+
// The user context is only needed for initial render.
|
|
14
17
|
let blobUrl = $derived.by(() => {
|
|
15
18
|
if (!secret)
|
|
16
19
|
return undefined;
|
|
20
|
+
const u = untrack(() => user);
|
|
17
21
|
const baseUrl = typeof window !== 'undefined' ? window.location.origin : '';
|
|
18
|
-
const html = htmlContent(workspace, secret, { ctx:
|
|
22
|
+
const html = htmlContent(workspace, secret, { ctx: u, workspace }, baseUrl, initialHash);
|
|
19
23
|
const blob = new Blob([html], { type: 'text/html' });
|
|
20
24
|
return URL.createObjectURL(blob);
|
|
21
25
|
});
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<script lang="ts">import { workspaceStore } from '../../stores';
|
|
2
2
|
import FlowStatusViewer from '../FlowStatusViewer.svelte';
|
|
3
|
-
import FlowViewer from '../FlowViewer.svelte';
|
|
3
|
+
import FlowViewer, {} from '../FlowViewer.svelte';
|
|
4
|
+
import FlowGraphViewer from '../FlowGraphViewer.svelte';
|
|
4
5
|
import FlowProgressBar from '../flows/FlowProgressBar.svelte';
|
|
5
6
|
import FlowExecutionStatus from '../runs/FlowExecutionStatus.svelte';
|
|
6
7
|
import { setActiveReplay } from './flowRecording.svelte';
|
|
@@ -9,13 +10,18 @@ import { Button } from '../common';
|
|
|
9
10
|
import Tooltip from '../meltComponents/Tooltip.svelte';
|
|
10
11
|
import { InfoIcon, LogOut, Play, Square } from 'lucide-svelte';
|
|
11
12
|
import { onDestroy } from 'svelte';
|
|
12
|
-
let { recording } = $props();
|
|
13
|
-
|
|
13
|
+
let { recording, selectedTab = $bindable(), replayState = $bindable(), hideControls = false, hideTabs = false } = $props();
|
|
14
|
+
if (selectedTab === undefined) {
|
|
15
|
+
selectedTab = 'ui';
|
|
16
|
+
}
|
|
17
|
+
if (replayState === undefined) {
|
|
18
|
+
replayState = 'loaded';
|
|
19
|
+
}
|
|
14
20
|
let rootJobId = $state(undefined);
|
|
15
21
|
let rootInitialJob = $state(undefined);
|
|
16
22
|
let job = $state(undefined);
|
|
17
23
|
let done = $derived(job?.type === 'CompletedJob');
|
|
18
|
-
function stop() {
|
|
24
|
+
export function stop() {
|
|
19
25
|
setActiveReplay(undefined);
|
|
20
26
|
job = undefined;
|
|
21
27
|
initRecording();
|
|
@@ -23,8 +29,7 @@ function stop() {
|
|
|
23
29
|
function findRootJobId(data) {
|
|
24
30
|
for (const [id, recorded] of Object.entries(data.jobs)) {
|
|
25
31
|
const j = recorded.initial_job;
|
|
26
|
-
if ((j.job_kind === 'flow' || j.job_kind === 'flowpreview') &&
|
|
27
|
-
!j.parent_job) {
|
|
32
|
+
if ((j.job_kind === 'flow' || j.job_kind === 'flowpreview') && !j.parent_job) {
|
|
28
33
|
return id;
|
|
29
34
|
}
|
|
30
35
|
}
|
|
@@ -76,9 +81,14 @@ function rebaseTimestamps(data, rootId) {
|
|
|
76
81
|
}
|
|
77
82
|
for (const recorded of Object.values(data.jobs)) {
|
|
78
83
|
offsetJobTimestamps(recorded.initial_job);
|
|
84
|
+
if (recorded.initial_job?.flow_status)
|
|
85
|
+
offsetFlowStatus(recorded.initial_job.flow_status);
|
|
79
86
|
for (const event of recorded.events) {
|
|
80
|
-
if (event.data?.job)
|
|
87
|
+
if (event.data?.job) {
|
|
81
88
|
offsetJobTimestamps(event.data.job);
|
|
89
|
+
if (event.data.job.flow_status)
|
|
90
|
+
offsetFlowStatus(event.data.job.flow_status);
|
|
91
|
+
}
|
|
82
92
|
if (event.data?.flow_status)
|
|
83
93
|
offsetFlowStatus(event.data.flow_status);
|
|
84
94
|
}
|
|
@@ -135,7 +145,9 @@ function fixEventOrdering(data, rootId) {
|
|
|
135
145
|
rootEvents[completedIdx].t = maxSubJobT + 50;
|
|
136
146
|
}
|
|
137
147
|
}
|
|
138
|
-
function startReplay() {
|
|
148
|
+
export function startReplay() {
|
|
149
|
+
if (!rootJobId)
|
|
150
|
+
return;
|
|
139
151
|
// JSON round-trip to unwrap reactive proxies and strip non-cloneable properties
|
|
140
152
|
const snapshot = JSON.parse(JSON.stringify(recording));
|
|
141
153
|
fixEventOrdering(snapshot, rootJobId);
|
|
@@ -144,6 +156,7 @@ function startReplay() {
|
|
|
144
156
|
rootInitialJob = buildInitialJob(snapshot, rootJobId);
|
|
145
157
|
job = undefined;
|
|
146
158
|
replayState = 'playing';
|
|
159
|
+
selectedTab = 'ui';
|
|
147
160
|
}
|
|
148
161
|
onDestroy(() => {
|
|
149
162
|
setActiveReplay(undefined);
|
|
@@ -159,52 +172,81 @@ onDestroy(() => {
|
|
|
159
172
|
</p>
|
|
160
173
|
</div>
|
|
161
174
|
</div>
|
|
162
|
-
{:else
|
|
175
|
+
{:else}
|
|
163
176
|
<div class="flex flex-col gap-4">
|
|
164
|
-
|
|
165
|
-
<div class="flex items-center
|
|
166
|
-
<
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
177
|
+
{#if !hideControls}
|
|
178
|
+
<div class="flex items-center justify-between">
|
|
179
|
+
<div class="flex items-center gap-2">
|
|
180
|
+
<h2 class="text-lg font-semibold text-emphasis">
|
|
181
|
+
{replayState === 'playing' ? 'Replaying: ' : ''}{recording.flow_path}
|
|
182
|
+
</h2>
|
|
183
|
+
<Tooltip placement="bottom">
|
|
184
|
+
<InfoIcon size={16} class="text-tertiary" />
|
|
185
|
+
{#snippet text()}
|
|
186
|
+
<span class="text-2xs">
|
|
187
|
+
Recorded {new Date(recording.recorded_at).toLocaleString()} —
|
|
188
|
+
{(recording.total_duration_ms / 1000).toFixed(1)}s
|
|
189
|
+
</span>
|
|
190
|
+
{/snippet}
|
|
191
|
+
</Tooltip>
|
|
192
|
+
</div>
|
|
193
|
+
{#if replayState === 'loaded'}
|
|
194
|
+
<Button variant="contained" color="blue" onclick={startReplay} startIcon={{ icon: Play }}>
|
|
195
|
+
Play
|
|
196
|
+
</Button>
|
|
197
|
+
{:else}
|
|
198
|
+
<Button
|
|
199
|
+
variant="border"
|
|
200
|
+
size="xs"
|
|
201
|
+
onclick={stop}
|
|
202
|
+
startIcon={{ icon: done ? LogOut : Square }}
|
|
203
|
+
>
|
|
204
|
+
{done ? 'Exit' : 'Stop'}
|
|
205
|
+
</Button>
|
|
206
|
+
{/if}
|
|
176
207
|
</div>
|
|
177
|
-
<Button variant="contained" color="blue" on:click={startReplay} startIcon={{ icon: Play }}>
|
|
178
|
-
Play
|
|
179
|
-
</Button>
|
|
180
|
-
</div>
|
|
181
|
-
<FlowViewer flow={recording.flow} noSummary />
|
|
182
|
-
</div>
|
|
183
|
-
{:else if replayState === 'playing' && rootJobId}
|
|
184
|
-
<div class="flex flex-col gap-4">
|
|
185
|
-
<div class="flex items-center justify-between">
|
|
186
|
-
<h2 class="text-lg font-semibold text-emphasis">Replaying: {recording.flow_path}</h2>
|
|
187
|
-
<Button variant="border" size="xs" on:click={stop} startIcon={{ icon: done ? LogOut : Square }}>
|
|
188
|
-
{done ? 'Exit' : 'Stop'}
|
|
189
|
-
</Button>
|
|
190
|
-
</div>
|
|
191
|
-
<FlowProgressBar {job} slim textPosition="bottom" showStepId />
|
|
192
|
-
{#if job}
|
|
193
|
-
<FlowExecutionStatus
|
|
194
|
-
{job}
|
|
195
|
-
workspaceId={$workspaceStore}
|
|
196
|
-
isOwner={false}
|
|
197
|
-
innerModules={job?.flow_status?.modules}
|
|
198
|
-
suspendStatus={{ val: {} }}
|
|
199
|
-
/>
|
|
200
208
|
{/if}
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
+
|
|
210
|
+
<FlowViewer
|
|
211
|
+
flow={recording.flow}
|
|
212
|
+
noSummary
|
|
213
|
+
noInput
|
|
214
|
+
hideDefaultInputs
|
|
215
|
+
showStepHint={replayState === 'loaded'}
|
|
216
|
+
bind:selectedTab
|
|
217
|
+
{hideTabs}
|
|
218
|
+
initTab="ui"
|
|
219
|
+
>
|
|
220
|
+
{#snippet graphContent()}
|
|
221
|
+
{#if replayState === 'playing' && rootJobId}
|
|
222
|
+
<div class="flex flex-col gap-4">
|
|
223
|
+
<FlowProgressBar {job} slim textPosition="bottom" showStepId />
|
|
224
|
+
{#if job}
|
|
225
|
+
<FlowExecutionStatus
|
|
226
|
+
{job}
|
|
227
|
+
workspaceId={$workspaceStore}
|
|
228
|
+
isOwner={false}
|
|
229
|
+
innerModules={job?.flow_status?.modules}
|
|
230
|
+
suspendStatus={{ val: {} }}
|
|
231
|
+
/>
|
|
232
|
+
{/if}
|
|
233
|
+
<FlowStatusViewer
|
|
234
|
+
jobId={rootJobId}
|
|
235
|
+
initialJob={rootInitialJob}
|
|
236
|
+
bind:job
|
|
237
|
+
workspaceId={$workspaceStore}
|
|
238
|
+
wideResults
|
|
239
|
+
showLogsWithResult
|
|
240
|
+
hideFlowResult={!done}
|
|
241
|
+
/>
|
|
242
|
+
</div>
|
|
243
|
+
{:else}
|
|
244
|
+
<div class="flow-root w-full pb-4">
|
|
245
|
+
<p class="text-2xs text-tertiary py-1">Click on a step to see its details</p>
|
|
246
|
+
<FlowGraphViewer hideDefaultInputs flow={recording.flow!} overflowAuto />
|
|
247
|
+
</div>
|
|
248
|
+
{/if}
|
|
249
|
+
{/snippet}
|
|
250
|
+
</FlowViewer>
|
|
209
251
|
</div>
|
|
210
252
|
{/if}
|
|
@@ -1,7 +1,16 @@
|
|
|
1
|
+
import { type TabValue } from '../FlowViewer.svelte';
|
|
1
2
|
import type { FlowRecording } from './types';
|
|
3
|
+
type ReplayState = 'loaded' | 'playing';
|
|
2
4
|
interface Props {
|
|
3
5
|
recording: FlowRecording;
|
|
6
|
+
selectedTab?: TabValue;
|
|
7
|
+
replayState?: ReplayState;
|
|
8
|
+
hideControls?: boolean;
|
|
9
|
+
hideTabs?: boolean;
|
|
4
10
|
}
|
|
5
|
-
declare const FlowRecordingReplay: import("svelte").Component<Props, {
|
|
11
|
+
declare const FlowRecordingReplay: import("svelte").Component<Props, {
|
|
12
|
+
stop: () => void;
|
|
13
|
+
startReplay: () => void;
|
|
14
|
+
}, "selectedTab" | "replayState">;
|
|
6
15
|
type FlowRecordingReplay = ReturnType<typeof FlowRecordingReplay>;
|
|
7
16
|
export default FlowRecordingReplay;
|