windmill-components 1.613.5 → 1.623.1
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/assets/tokens/tokens.json +1 -11
- package/package/ata/apis.js +5 -78
- package/package/components/AddUser.svelte +1 -1
- package/package/components/CenteredModal.svelte +24 -32
- package/package/components/CenteredModal.svelte.d.ts +27 -7
- package/package/components/CenteredPage.svelte +2 -5
- package/package/components/CenteredPage.svelte.d.ts +0 -2
- package/package/components/ConcurrentJobsChart.svelte +2 -3
- package/package/components/ConcurrentJobsChart.svelte.d.ts +2 -2
- package/package/components/CustomPopover.svelte +23 -20
- package/package/components/CustomPopover.svelte.d.ts +39 -14
- package/package/components/DBManager.svelte +17 -105
- package/package/components/DBManager.svelte.d.ts +1 -2
- package/package/components/DBManagerContent.svelte +3 -4
- package/package/components/DBManagerContent.svelte.d.ts +1 -1
- package/package/components/DBTableEditor.svelte +171 -210
- package/package/components/DBTableEditor.svelte.d.ts +3 -22
- package/package/components/Description.svelte +2 -3
- package/package/components/Dev.svelte +2 -36
- package/package/components/DiffDrawer.svelte +29 -8
- package/package/components/DiffEditor.svelte +2 -32
- package/package/components/DisplayResult.svelte +24 -32
- package/package/components/Editor.svelte +16 -70
- package/package/components/Editor.svelte.d.ts +0 -3
- package/package/components/EditorBar.svelte +1 -1
- package/package/components/FakeMonacoPlaceHolder.svelte +1 -1
- package/package/components/FlowBuilder.svelte +11 -17
- package/package/components/FlowPreviewContent.svelte +2 -3
- package/package/components/FlowPreviewResult.svelte +4 -0
- package/package/components/FlowRestartButton.svelte +3 -2
- package/package/components/FlowRestartButton.svelte.d.ts +0 -3
- package/package/components/FlowStatusViewerInner.svelte +33 -50
- package/package/components/FlowStatusViewerInner.svelte.d.ts +1 -1
- package/package/components/FlowStatusWaitingForEvents.svelte +23 -27
- package/package/components/FlowStatusWaitingForEvents.svelte.d.ts +18 -4
- package/package/components/FlowViewer.svelte +2 -103
- package/package/components/FlowViewer.svelte.d.ts +3 -9
- package/package/components/ForkWorkspaceBanner.svelte +13 -16
- package/package/components/GraphqlSchemaViewer.svelte +1 -8
- package/package/components/HistoricInputs.svelte +27 -25
- package/package/components/HistoricInputs.svelte.d.ts +2 -2
- package/package/components/InstanceSetting.svelte +0 -38
- package/package/components/InviteUser.svelte +42 -16
- package/package/components/InviteUser.svelte.d.ts +18 -4
- package/package/components/JsonInputs.svelte +8 -6
- package/package/components/JsonInputs.svelte.d.ts +8 -7
- package/package/components/LogViewer.svelte +33 -91
- package/package/components/Login.svelte +0 -21
- package/package/components/ManualPopover.svelte +6 -5
- package/package/components/ManualPopover.svelte.d.ts +35 -9
- package/package/components/MemoryFootprintViewer.svelte +6 -2
- package/package/components/ModulePreview.svelte +21 -23
- package/package/components/ModulePreview.svelte.d.ts +0 -1
- package/package/components/OAuthSetting.svelte +11 -23
- package/package/components/Path.svelte +2 -2
- package/package/components/Path.svelte.d.ts +1 -1
- package/package/components/ResourcePicker.svelte +0 -3
- package/package/components/ResourcePicker.svelte.d.ts +0 -1
- package/package/components/RunButton.svelte +15 -5
- package/package/components/RunButton.svelte.d.ts +19 -7
- package/package/components/RunChart.svelte +4 -8
- package/package/components/RunChart.svelte.d.ts +2 -2
- package/package/components/RunFormAdvancedPopup.svelte +1 -1
- package/package/components/RunsPage.svelte +539 -170
- package/package/components/RunsPage.svelte.d.ts +5 -5
- package/package/components/S3FilePicker.svelte +11 -7
- package/package/components/S3FilePickerInner.svelte +3 -2
- package/package/components/S3FilePickerInner.svelte.d.ts +2 -2
- package/package/components/SavedInputs.svelte +416 -0
- package/package/components/{tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte.d.ts → SavedInputs.svelte.d.ts} +11 -8
- package/package/components/SchemaForm.svelte +19 -26
- package/package/components/SchemaFormWithArgPicker.svelte +3 -4
- package/package/components/ScriptBuilder.svelte +1 -1
- package/package/components/ScriptEditor.svelte +101 -575
- package/package/components/Section.svelte +1 -3
- package/package/components/ServiceLogsInner.svelte +4 -4
- package/package/components/ShareModal.svelte.d.ts +1 -1
- package/package/components/SimpleEditor.svelte +2 -46
- package/package/components/SuperadminSettingsInner.svelte +1 -1
- package/package/components/TemplateEditor.svelte +29 -54
- package/package/components/TemplateEditor.svelte.d.ts +102 -13
- package/package/components/UserSettings.svelte +1 -1
- package/package/components/WorkerTagPicker.svelte +1 -1
- package/package/components/WorkerTagSelect.svelte +2 -5
- package/package/components/WorkspaceTutorials.svelte +0 -5
- package/package/components/apps/components/buttons/AppButton.svelte +6 -21
- package/package/components/apps/components/buttons/AppForm.svelte +1 -2
- package/package/components/apps/components/buttons/AppFormButton.svelte +1 -2
- package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +4 -0
- package/package/components/apps/components/display/dbtable/metadata.js +30 -69
- package/package/components/apps/components/display/dbtable/queries/createTable.d.ts +24 -2
- package/package/components/apps/components/display/dbtable/queries/createTable.js +25 -11
- package/package/components/apps/components/display/dbtable/queries/select.d.ts +0 -2
- package/package/components/apps/components/display/dbtable/queries/select.js +6 -37
- package/package/components/apps/components/display/dbtable/utils.d.ts +1 -10
- package/package/components/apps/components/display/dbtable/utils.js +20 -52
- package/package/components/apps/components/helpers/HiddenComponent.svelte +1 -1
- package/package/components/apps/components/helpers/InputValue.svelte +1 -1
- package/package/components/apps/components/helpers/ResolveConfig.svelte +1 -1
- package/package/components/apps/components/helpers/RunnableComponent.svelte +2 -3
- package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +1 -1
- package/package/components/apps/components/helpers/RunnableWrapper.svelte +2 -2
- package/package/components/apps/editor/AppEditorHeader.svelte +1 -8
- package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +29 -32
- package/package/components/apps/editor/AppEditorHeaderDeploy.svelte.d.ts +2 -2
- package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte +4 -4
- package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte.d.ts +3 -3
- package/package/components/apps/editor/PublicApp.svelte +30 -49
- package/package/components/apps/editor/PublicApp.svelte.d.ts +0 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +7 -77
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +2 -2
- package/package/components/apps/editor/inlineScriptsPanel/utils.d.ts +2 -2
- package/package/components/apps/editor/inlineScriptsPanel/utils.js +1 -10
- package/package/components/apps/inputType.d.ts +1 -6
- package/package/components/auditLogs/AuditLogsFilters.svelte +17 -9
- package/package/components/auditLogs/AuditLogsFilters.svelte.d.ts +1 -1
- package/package/components/common/button/model.js +1 -1
- package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +1 -1
- package/package/components/common/languageIcons/TypeScript.svelte +3 -5
- package/package/components/common/languageIcons/TypeScript.svelte.d.ts +0 -1
- package/package/components/common/modal/Modal.svelte +3 -3
- package/package/components/copilot/autocomplete/Autocompletor.js +2 -3
- package/package/components/copilot/chat/AIButtonStyle.d.ts +1 -1
- package/package/components/copilot/chat/AIButtonStyle.js +1 -2
- package/package/components/copilot/chat/AIChat.svelte +1 -3
- package/package/components/copilot/chat/AIChatDisplay.svelte +4 -89
- package/package/components/copilot/chat/AIChatInput.svelte +0 -275
- package/package/components/copilot/chat/AIChatManager.svelte.js +1 -107
- package/package/components/copilot/chat/AiChatLayout.svelte +30 -15
- package/package/components/copilot/chat/ContextElementBadge.svelte +0 -44
- package/package/components/copilot/chat/DatatableCreationPolicy.svelte +33 -32
- package/package/components/copilot/chat/ProviderModelSelector.svelte +1 -1
- package/package/components/copilot/chat/__tests__/app/appEvalHelpers.js +0 -3
- package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.js +0 -4
- package/package/components/copilot/chat/app/core.d.ts +15 -56
- package/package/components/copilot/chat/app/core.js +22 -141
- package/package/components/copilot/chat/context.d.ts +2 -59
- package/package/components/copilot/chat/context.js +2 -6
- package/package/components/copilot/chat/flow/FlowAIChat.svelte +0 -22
- package/package/components/copilot/chat/flow/core.d.ts +1 -3
- package/package/components/copilot/chat/flow/core.js +2 -29
- package/package/components/copilot/chat/flow/openFlow.json +1 -1
- package/package/components/copilot/chat/flow/openFlowZod.d.ts +0 -1
- package/package/components/copilot/chat/flow/openFlowZod.js +2 -14
- package/package/components/copilot/chat/script/core.d.ts +1 -4
- package/package/components/copilot/chat/script/core.js +2 -38
- package/package/components/copilot/chat/shared.d.ts +0 -10
- package/package/components/copilot/chat/shared.js +0 -24
- package/package/components/copilot/lib.d.ts +1 -1
- package/package/components/custom_ui.d.ts +0 -2
- package/package/components/dbOps.d.ts +4 -18
- package/package/components/dbOps.js +3 -25
- package/package/components/flows/CreateActionsApp.svelte +4 -6
- package/package/components/flows/DebounceLimit.svelte.d.ts +1 -1
- package/package/components/flows/FlowHistoryInner.svelte +4 -15
- package/package/components/flows/content/AgentToolWrapper.svelte +1 -1
- package/package/components/flows/content/FlowInput.svelte +37 -211
- package/package/components/flows/content/FlowModuleComponent.svelte +67 -553
- package/package/components/flows/content/FlowModuleEarlyStop.svelte +10 -8
- package/package/components/flows/content/FlowModuleHeader.svelte +4 -7
- package/package/components/flows/content/FlowModuleWorkerTagSelect.svelte +1 -1
- package/package/components/flows/content/McpToolEditor.svelte +37 -50
- package/package/components/flows/content/McpToolEditor.svelte.d.ts +1 -0
- package/package/components/flows/conversations/FlowChat.svelte +2 -16
- package/package/components/flows/conversations/FlowChat.svelte.d.ts +1 -2
- package/package/components/flows/conversations/FlowChatInterface.svelte +6 -103
- package/package/components/flows/conversations/FlowChatInterface.svelte.d.ts +0 -2
- package/package/components/flows/conversations/FlowChatManager.svelte.js +21 -53
- package/package/components/flows/header/FlowImportExportMenu.svelte +1 -1
- package/package/components/flows/propPicker/PropPickerWrapper.svelte +1 -3
- package/package/components/flows/types.d.ts +0 -2
- package/package/components/git_sync/GitSyncRepositoryCard.svelte +8 -16
- package/package/components/home/ItemsList.svelte +5 -5
- package/package/components/home/TutorialBanner.svelte +18 -34
- package/package/components/icons/CssIcon.svelte +0 -20
- package/package/components/icons/CssIcon.svelte.d.ts +25 -7
- package/package/components/icons/JavaScriptIcon.svelte +2 -10
- package/package/components/icons/JavaScriptIcon.svelte.d.ts +0 -1
- package/package/components/icons/JsonIcon.svelte +2 -8
- package/package/components/icons/JsonIcon.svelte.d.ts +0 -1
- package/package/components/icons/ReactIcon.svelte +2 -10
- package/package/components/icons/ReactIcon.svelte.d.ts +0 -1
- package/package/components/icons/SvelteIcon.svelte +2 -10
- package/package/components/icons/SvelteIcon.svelte.d.ts +0 -1
- package/package/components/icons/VueIcon.svelte +2 -10
- package/package/components/icons/VueIcon.svelte.d.ts +0 -1
- package/package/components/instanceSettings.d.ts +1 -2
- package/package/components/instanceSettings.js +1 -32
- package/package/components/jobs/JobPreview.svelte +39 -46
- package/package/components/jobs/JobPreview.svelte.d.ts +0 -1
- package/package/components/monacoLanguagesOptions.js +15 -16
- package/package/components/propertyPicker/PropPicker.svelte +2 -16
- package/package/components/propertyPicker/PropPicker.svelte.d.ts +0 -2
- package/package/components/raw_apps/DefaultDatabaseSelector.svelte +5 -9
- package/package/components/raw_apps/FileEditorIcon.svelte +7 -12
- package/package/components/raw_apps/FileEditorIcon.svelte.d.ts +0 -2
- package/package/components/raw_apps/FileTreeNode.svelte +83 -119
- package/package/components/raw_apps/RawAppBackgroundRunner.svelte +8 -88
- package/package/components/raw_apps/RawAppDataTableList.svelte +9 -12
- package/package/components/raw_apps/RawAppEditor.svelte +68 -218
- package/package/components/raw_apps/RawAppEditorHeader.svelte +16 -33
- package/package/components/raw_apps/RawAppHistoryList.svelte +80 -264
- package/package/components/raw_apps/RawAppHistoryList.svelte.d.ts +0 -1
- package/package/components/raw_apps/RawAppHistoryManager.svelte.d.ts +1 -15
- package/package/components/raw_apps/RawAppHistoryManager.svelte.js +12 -46
- package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +47 -549
- package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +5 -31
- package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte +18 -25
- package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte.d.ts +0 -1
- package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +10 -141
- package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte.d.ts +0 -8
- package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte +1 -2
- package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte.d.ts +1 -9
- package/package/components/raw_apps/RawAppInputsSpecEditor.svelte +3 -47
- package/package/components/raw_apps/RawAppInputsSpecEditor.svelte.d.ts +2 -2
- package/package/components/raw_apps/RawAppModules.svelte +7 -13
- package/package/components/raw_apps/RawAppPreview.svelte +6 -48
- package/package/components/raw_apps/RawAppSidebar.svelte +125 -194
- package/package/components/raw_apps/RawAppSidebar.svelte.d.ts +0 -1
- package/package/components/raw_apps/utils.d.ts +1 -1
- package/package/components/raw_apps/utils.js +18 -76
- package/package/components/runs/JobsLoader.svelte +468 -0
- package/package/components/runs/JobsLoader.svelte.d.ts +49 -0
- package/package/components/runs/ManuelDatePicker.svelte +3 -3
- package/package/components/runs/ManuelDatePicker.svelte.d.ts +3 -3
- package/package/components/runs/NoWorkerWithTagWarning.svelte +1 -5
- package/package/components/runs/RunsFilter.svelte +63 -75
- package/package/components/runs/RunsFilter.svelte.d.ts +4 -35
- package/package/components/runs/RunsQueue.svelte.d.ts +1 -1
- package/package/components/runs/RunsTable.svelte +1 -1
- package/package/components/runs/RunsTable.svelte.d.ts +1 -1
- package/package/components/schema/SchemaPicker.svelte +92 -0
- package/package/components/{tutorials/RunsTutorial.svelte.d.ts → schema/SchemaPicker.svelte.d.ts} +12 -11
- package/package/components/scriptEditor/LogPanel.svelte +2 -17
- package/package/components/scriptEditor/LogPanel.svelte.d.ts +0 -2
- package/package/components/select/SelectDropdown.svelte +2 -2
- package/package/components/settings/ChangeWorkspaceColor.svelte +3 -4
- package/package/components/settings/ChangeWorkspaceId.svelte +10 -14
- package/package/components/settings/ChangeWorkspaceName.svelte +6 -7
- package/package/components/settings/CreateToken.svelte +1 -1
- package/package/components/settings/UserAIPromptsSettings.svelte +15 -56
- package/package/components/settings/WorkspaceOperatorSettings.svelte +85 -68
- package/package/components/settings/WorkspaceUserSettings.svelte +406 -531
- package/package/components/sidebar/MenuButton.svelte +24 -46
- package/package/components/sidebar/MenuButton.svelte.d.ts +0 -2
- package/package/components/sidebar/MultiplayerMenu.svelte +3 -3
- package/package/components/sidebar/OperatorMenu.svelte +88 -63
- package/package/components/sidebar/SidebarContent.svelte +2 -7
- package/package/components/sidebar/UserMenu.svelte +1 -1
- package/package/components/sidebar/WorkspaceMenu.svelte +85 -35
- package/package/components/sqlTypeService.js +3 -4
- package/package/components/table/DataTable.svelte +2 -3
- package/package/components/table/DataTable.svelte.d.ts +0 -1
- package/package/components/text_input/TextInput.svelte +0 -3
- package/package/components/text_input/TextInput.svelte.d.ts +0 -2
- package/package/components/triggers/utils.js +1 -0
- package/package/components/tutorials/FlowBuilderLiveTutorial.svelte +35 -6
- package/package/components/tutorials/TroubleshootFlowTutorial.svelte +20 -5
- package/package/components/tutorials/utils.d.ts +0 -16
- package/package/components/tutorials/utils.js +0 -96
- package/package/components/vscode.js +6 -6
- package/package/components/workspaceSettings/AISettings.svelte +108 -146
- package/package/components/workspaceSettings/CreateWorkspace.svelte +12 -26
- package/package/components/workspaceSettings/DucklakeSettings.svelte +23 -46
- package/package/components/workspaceSettings/DucklakeSettings.svelte.d.ts +1 -2
- package/package/components/workspaceSettings/ModelTokenLimits.svelte +18 -14
- package/package/components/workspaceSettings/StorageSettings.svelte +241 -280
- package/package/components/workspaceSettings/StorageSettings.svelte.d.ts +0 -1
- package/package/consts.js +1 -4
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +1 -133
- package/package/gen/schemas.gen.js +1 -133
- package/package/gen/services.gen.d.ts +10 -160
- package/package/gen/services.gen.js +20 -319
- package/package/gen/types.gen.d.ts +19 -609
- package/package/hubPaths.json +2 -3
- package/package/infer.js +0 -2
- package/package/logout.d.ts +2 -0
- package/package/logout.js +23 -2
- package/package/monaco_workers/graphql.worker.bundle.js +121 -121
- package/package/navigation.d.ts +1 -1
- package/package/rawAppWmillTs.d.ts +0 -11
- package/package/rawAppWmillTs.js +1 -38
- package/package/svelte5Utils.svelte.d.ts +1 -7
- package/package/svelte5Utils.svelte.js +2 -23
- package/package/tutorialUtils.js +4 -0
- package/package/tutorials/config.js +3 -31
- package/package/tutorials/roleUtils.d.ts +1 -1
- package/package/tutorials/roleUtils.js +2 -6
- package/package/utils.js +1 -159
- package/package.json +4 -6
- 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/FlowDiffViewer.svelte +0 -37
- package/package/components/FlowDiffViewer.svelte.d.ts +0 -7
- package/package/components/JobOtelTraces.svelte +0 -287
- package/package/components/JobOtelTraces.svelte.d.ts +0 -6
- package/package/components/apps/components/display/dbtable/queries/alterTable.d.ts +0 -46
- package/package/components/apps/components/display/dbtable/queries/alterTable.js +0 -314
- package/package/components/apps/components/display/dbtable/queries/alterTable.test.d.ts +0 -1
- package/package/components/apps/components/display/dbtable/queries/alterTable.test.js +0 -867
- package/package/components/apps/components/display/dbtable/queries/dbQueriesUtils.d.ts +0 -9
- package/package/components/apps/components/display/dbtable/queries/dbQueriesUtils.js +0 -45
- package/package/components/apps/components/display/dbtable/queries/relationalKeys.d.ts +0 -47
- package/package/components/apps/components/display/dbtable/queries/relationalKeys.js +0 -402
- package/package/components/apps/components/display/dbtable/tableEditor.d.ts +0 -35
- package/package/components/apps/components/display/dbtable/tableEditor.js +0 -49
- package/package/components/copilot/chat/AppAvailableContextList.svelte +0 -263
- package/package/components/copilot/chat/AppAvailableContextList.svelte.d.ts +0 -13
- package/package/components/debug/DebugConsole.svelte +0 -277
- package/package/components/debug/DebugConsole.svelte.d.ts +0 -13
- package/package/components/debug/DebugPanel.svelte +0 -97
- package/package/components/debug/DebugPanel.svelte.d.ts +0 -11
- package/package/components/debug/DebugToolbar.svelte +0 -148
- package/package/components/debug/DebugToolbar.svelte.d.ts +0 -17
- package/package/components/debug/DebugVariableViewer.svelte +0 -115
- package/package/components/debug/DebugVariableViewer.svelte.d.ts +0 -11
- package/package/components/debug/MonacoDebugger.svelte +0 -384
- package/package/components/debug/MonacoDebugger.svelte.d.ts +0 -15
- package/package/components/debug/dapClient.d.ts +0 -192
- package/package/components/debug/dapClient.js +0 -426
- package/package/components/debug/debugUtils.d.ts +0 -30
- package/package/components/debug/debugUtils.js +0 -131
- package/package/components/debug/index.d.ts +0 -75
- package/package/components/debug/index.js +0 -82
- package/package/components/flows/content/FlowEditorDrawer.svelte +0 -124
- package/package/components/flows/content/FlowEditorDrawer.svelte.d.ts +0 -22
- package/package/components/flows/content/McpOAuthConnect.svelte +0 -217
- package/package/components/flows/content/McpOAuthConnect.svelte.d.ts +0 -7
- package/package/components/icons/HtmlIcon.svelte +0 -20
- package/package/components/icons/HtmlIcon.svelte.d.ts +0 -8
- package/package/components/icons/LessIcon.svelte +0 -16
- package/package/components/icons/LessIcon.svelte.d.ts +0 -8
- package/package/components/icons/MarkdownIcon.svelte +0 -20
- package/package/components/icons/MarkdownIcon.svelte.d.ts +0 -8
- package/package/components/icons/SassIcon.svelte +0 -28
- package/package/components/icons/SassIcon.svelte.d.ts +0 -8
- package/package/components/icons/YamlIcon.svelte +0 -20
- package/package/components/icons/YamlIcon.svelte.d.ts +0 -8
- package/package/components/instanceSettings/SecretBackendConfig.svelte +0 -514
- package/package/components/instanceSettings/SecretBackendConfig.svelte.d.ts +0 -8
- package/package/components/raw_apps/RunnableRow.svelte +0 -41
- package/package/components/raw_apps/RunnableRow.svelte.d.ts +0 -11
- package/package/components/runs/useJobsLoader.svelte.d.ts +0 -34
- package/package/components/runs/useJobsLoader.svelte.js +0 -507
- package/package/components/settings/AIPromptsModal.svelte +0 -88
- package/package/components/settings/AIPromptsModal.svelte.d.ts +0 -11
- package/package/components/tutorials/RunsTutorial.svelte +0 -399
- package/package/components/tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte +0 -133
- package/package/components/workspace/WorkspaceCard.svelte +0 -184
- package/package/components/workspace/WorkspaceCard.svelte.d.ts +0 -24
- package/package/components/workspace/WorkspaceIcon.svelte +0 -21
- package/package/components/workspace/WorkspaceIcon.svelte.d.ts +0 -9
- package/package/components/workspace/WorkspaceTreeView.svelte +0 -331
- package/package/components/workspace/WorkspaceTreeView.svelte.d.ts +0 -15
- package/package/logoutKit.d.ts +0 -2
- package/package/logoutKit.js +0 -26
- package/package/svelte5UtilsKit.svelte.d.ts +0 -3
- package/package/svelte5UtilsKit.svelte.js +0 -30
|
@@ -24,8 +24,8 @@ function checkIfBreakableParent(flowStoreValue) {
|
|
|
24
24
|
}
|
|
25
25
|
return null;
|
|
26
26
|
}
|
|
27
|
-
let raise_error_message_stop_after_all_if = $state(flowModule.stop_after_all_iters_if?.error_message
|
|
28
|
-
let raise_error_message_stop_after_if = $state(flowModule.stop_after_if?.error_message
|
|
27
|
+
let raise_error_message_stop_after_all_if = $state(flowModule.stop_after_all_iters_if?.error_message !== undefined);
|
|
28
|
+
let raise_error_message_stop_after_if = $state(flowModule.stop_after_if?.error_message !== undefined);
|
|
29
29
|
let { isLoop, isParallelLoop } = $derived(flowModule.value.type === 'forloopflow' || flowModule.value.type === 'whileloopflow'
|
|
30
30
|
? { isLoop: true, isParallelLoop: flowModule.value.parallel ?? false }
|
|
31
31
|
: { isLoop: false, isParallelLoop: false });
|
|
@@ -134,7 +134,8 @@ let breakableParent = $derived(checkIfBreakableParent(flowStore.val));
|
|
|
134
134
|
<PropPickerWrapper
|
|
135
135
|
noPadding
|
|
136
136
|
notSelectable
|
|
137
|
-
|
|
137
|
+
flow_input={stepPropPicker.pickableProperties.flow_input}
|
|
138
|
+
pickableProperties={undefined}
|
|
138
139
|
result={earlyStopResult}
|
|
139
140
|
extraResults={isLoop ? { all_iters: result } : undefined}
|
|
140
141
|
on:select={({ detail }) => {
|
|
@@ -147,8 +148,8 @@ let breakableParent = $derived(checkIfBreakableParent(flowStore.val));
|
|
|
147
148
|
lang="javascript"
|
|
148
149
|
bind:code={flowModule.stop_after_if.expr}
|
|
149
150
|
class="h-full"
|
|
150
|
-
extraLib={`declare const result = ${JSON.stringify(earlyStopResult)}
|
|
151
|
-
stepPropPicker.
|
|
151
|
+
extraLib={`declare const result = ${JSON.stringify(earlyStopResult)};` +
|
|
152
|
+
`\n declare const flow_input = ${JSON.stringify(stepPropPicker.pickableProperties.flow_input)};` +
|
|
152
153
|
(isLoop ? `\ndeclare const all_iters = ${JSON.stringify(result)};` : '')}
|
|
153
154
|
/>
|
|
154
155
|
</PropPickerWrapper>
|
|
@@ -270,7 +271,8 @@ let breakableParent = $derived(checkIfBreakableParent(flowStore.val));
|
|
|
270
271
|
<PropPickerWrapper
|
|
271
272
|
notSelectable
|
|
272
273
|
noPadding
|
|
273
|
-
|
|
274
|
+
flow_input={stepPropPicker.pickableProperties.flow_input}
|
|
275
|
+
pickableProperties={undefined}
|
|
274
276
|
{result}
|
|
275
277
|
on:select={({ detail }) => {
|
|
276
278
|
editor?.insertAtCursor(detail)
|
|
@@ -282,8 +284,8 @@ let breakableParent = $derived(checkIfBreakableParent(flowStore.val));
|
|
|
282
284
|
lang="javascript"
|
|
283
285
|
bind:code={flowModule.stop_after_all_iters_if.expr}
|
|
284
286
|
class="h-full"
|
|
285
|
-
extraLib={`declare const result = ${JSON.stringify(result)}
|
|
286
|
-
stepPropPicker.
|
|
287
|
+
extraLib={`declare const result = ${JSON.stringify(result)};` +
|
|
288
|
+
`\ndeclare const flow_input = ${JSON.stringify(stepPropPicker.pickableProperties.flow_input)};`}
|
|
287
289
|
/>
|
|
288
290
|
</PropPickerWrapper>
|
|
289
291
|
</div>
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
<script lang="ts">import Button from '../../common/button/Button.svelte';
|
|
2
2
|
import {} from '../../../gen';
|
|
3
3
|
import { createEventDispatcher, getContext } from 'svelte';
|
|
4
|
-
import { Bed, Database, Gauge, GitFork, Pen, PhoneIncoming, RefreshCcw, Repeat, Square, Pin, Save } from 'lucide-svelte';
|
|
4
|
+
import { Bed, Database, ExternalLink, Gauge, GitFork, Pen, PhoneIncoming, RefreshCcw, Repeat, Square, Pin, Save } from 'lucide-svelte';
|
|
5
5
|
import Popover from '../../Popover.svelte';
|
|
6
6
|
import { sendUserToast } from '../../../utils';
|
|
7
7
|
import { getLatestHashForScript } from '../../../scripts';
|
|
8
8
|
import FlowModuleWorkerTagSelect from './FlowModuleWorkerTagSelect.svelte';
|
|
9
9
|
let { module, tag } = $props();
|
|
10
|
-
const { scriptEditorDrawer
|
|
10
|
+
const { scriptEditorDrawer } = getContext('FlowEditorContext');
|
|
11
11
|
const dispatch = createEventDispatcher();
|
|
12
12
|
let customUi = getContext('customUi');
|
|
13
13
|
let popoverClasses = 'center-center rounded p-2 bg-blue-100 text-blue-800 border border-blue-300 hover:bg-blue-200 dark:bg-frost-700 dark:text-frost-100 dark:border-frost-600';
|
|
@@ -128,16 +128,13 @@ let popoverClasses = 'center-center rounded p-2 bg-blue-100 text-blue-800 border
|
|
|
128
128
|
variant="subtle"
|
|
129
129
|
on:click={async () => {
|
|
130
130
|
if (module.value.type == 'flow') {
|
|
131
|
-
|
|
132
|
-
dispatch('reload')
|
|
133
|
-
sendUserToast('Flow has been updated')
|
|
134
|
-
})
|
|
131
|
+
window.open(`/flows/edit/${module.value.path}`, '_blank', 'noopener,noreferrer')
|
|
135
132
|
}
|
|
136
133
|
}}
|
|
137
134
|
startIcon={{ icon: Pen }}
|
|
138
135
|
iconOnly={false}
|
|
139
136
|
>
|
|
140
|
-
Edit
|
|
137
|
+
Edit <ExternalLink size={12} />
|
|
141
138
|
</Button>
|
|
142
139
|
<Button
|
|
143
140
|
unifiedSize="sm"
|
|
@@ -8,7 +8,7 @@ const dispatch = createEventDispatcher();
|
|
|
8
8
|
loadWorkerGroups();
|
|
9
9
|
async function loadWorkerGroups() {
|
|
10
10
|
if (!$workerTags) {
|
|
11
|
-
$workerTags = await WorkerService.
|
|
11
|
+
$workerTags = await WorkerService.getCustomTags({ workspace: $workspaceStore });
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
</script>
|
|
@@ -7,7 +7,8 @@ let loadToolsCached = createCache(({ workspace, path }) => workspace && path &&
|
|
|
7
7
|
: undefined, {
|
|
8
8
|
initial: { workspace: get(workspaceStore), path: undefined, refreshCount: 0 },
|
|
9
9
|
invalidateMs: 1000 * 60
|
|
10
|
-
}
|
|
10
|
+
} // Cache for 60 seconds
|
|
11
|
+
);
|
|
11
12
|
</script>
|
|
12
13
|
|
|
13
14
|
<script lang="ts">import Section from '../../Section.svelte';
|
|
@@ -20,25 +21,24 @@ import ResourcePicker from '../../ResourcePicker.svelte';
|
|
|
20
21
|
import { usePromise } from '../../../svelte5Utils.svelte';
|
|
21
22
|
import { untrack } from 'svelte';
|
|
22
23
|
import Alert from '../../common/alert/Alert.svelte';
|
|
23
|
-
import McpOAuthConnect from './McpOAuthConnect.svelte';
|
|
24
24
|
let { tool = $bindable() } = $props();
|
|
25
|
-
let showOAuthForm = $state(false);
|
|
26
25
|
let refreshCount = $state(0);
|
|
27
|
-
let resourcePicker = $state();
|
|
28
26
|
let tools = usePromise(async () => await loadToolsCached({
|
|
29
27
|
workspace: $workspaceStore,
|
|
30
28
|
path: tool.value.resource_path,
|
|
31
29
|
refreshCount
|
|
32
30
|
}), { loadInit: false, clearValueOnRefresh: false });
|
|
31
|
+
// Options for the multiselect
|
|
33
32
|
let toolOptions = $derived(safeSelectItems((tools.value ?? []).map((t) => t.name)));
|
|
34
|
-
|
|
35
|
-
let error = $derived(tools.error?.body?.message || tools.error?.message);
|
|
33
|
+
// Watch for resource_path changes and refresh tools
|
|
36
34
|
$effect(() => {
|
|
37
|
-
|
|
35
|
+
// Track reactive dependencies
|
|
36
|
+
tool.value.resource_path;
|
|
38
37
|
$workspaceStore;
|
|
39
38
|
refreshCount;
|
|
39
|
+
// Trigger refresh when resource_path or workspace changes
|
|
40
40
|
untrack(() => {
|
|
41
|
-
if (
|
|
41
|
+
if (tool.value.resource_path?.length > 0) {
|
|
42
42
|
tools.refresh();
|
|
43
43
|
}
|
|
44
44
|
});
|
|
@@ -52,19 +52,14 @@ $effect(() => {
|
|
|
52
52
|
}
|
|
53
53
|
});
|
|
54
54
|
$effect(() => {
|
|
55
|
-
if (
|
|
55
|
+
if (tool.value.resource_path?.length > 0 && tool.summary?.length === 0) {
|
|
56
56
|
tool.summary = `MCP: ${tool.value.resource_path}`;
|
|
57
57
|
}
|
|
58
58
|
});
|
|
59
|
-
async function handleOAuthConnected(resourcePath, resourceName) {
|
|
60
|
-
await resourcePicker?.refreshResources();
|
|
61
|
-
tool.value.resource_path = resourcePath;
|
|
62
|
-
tool.summary = `MCP: ${resourceName}`;
|
|
63
|
-
showOAuthForm = false;
|
|
64
|
-
}
|
|
65
59
|
</script>
|
|
66
60
|
|
|
67
61
|
<div class="flex flex-col gap-4 p-4">
|
|
62
|
+
<!-- Explanatory Section -->
|
|
68
63
|
<Alert type="info" title="MCP Client Configuration">
|
|
69
64
|
{#snippet children()}
|
|
70
65
|
<p class="mb-2 text-sm">
|
|
@@ -79,26 +74,15 @@ async function handleOAuthConnected(resourcePath, resourceName) {
|
|
|
79
74
|
{/snippet}
|
|
80
75
|
</Alert>
|
|
81
76
|
|
|
77
|
+
<!-- Resource Path Section -->
|
|
82
78
|
<div class="w-full">
|
|
83
79
|
<Label label="MCP Resource">
|
|
84
|
-
<ResourcePicker
|
|
80
|
+
<ResourcePicker resourceType="mcp" bind:value={tool.value.resource_path} />
|
|
85
81
|
</Label>
|
|
86
82
|
</div>
|
|
87
83
|
|
|
88
|
-
{#if
|
|
89
|
-
|
|
90
|
-
<Button size="xs" color="light" onClick={() => (showOAuthForm = true)}>
|
|
91
|
-
Connect with OAuth
|
|
92
|
-
</Button>
|
|
93
|
-
{:else}
|
|
94
|
-
<McpOAuthConnect
|
|
95
|
-
onConnected={handleOAuthConnected}
|
|
96
|
-
onCancel={() => (showOAuthForm = false)}
|
|
97
|
-
/>
|
|
98
|
-
{/if}
|
|
99
|
-
{/if}
|
|
100
|
-
|
|
101
|
-
{#if resourcePath?.length > 0}
|
|
84
|
+
{#if tool.value.resource_path?.length > 0}
|
|
85
|
+
<!-- Summary Section -->
|
|
102
86
|
<div class="w-full">
|
|
103
87
|
<Label label="Summary">
|
|
104
88
|
<input
|
|
@@ -110,12 +94,13 @@ async function handleOAuthConnected(resourcePath, resourceName) {
|
|
|
110
94
|
</Label>
|
|
111
95
|
</div>
|
|
112
96
|
|
|
97
|
+
<!-- Available Tools Section -->
|
|
113
98
|
<Section label="Available Tools">
|
|
114
99
|
{#snippet action()}
|
|
115
100
|
<Button
|
|
116
101
|
size="xs"
|
|
117
102
|
color="light"
|
|
118
|
-
|
|
103
|
+
on:click={() => (refreshCount += 1)}
|
|
119
104
|
startIcon={{ icon: RefreshCw }}
|
|
120
105
|
disabled={tools.status === 'loading'}
|
|
121
106
|
>
|
|
@@ -123,37 +108,39 @@ async function handleOAuthConnected(resourcePath, resourceName) {
|
|
|
123
108
|
</Button>
|
|
124
109
|
{/snippet}
|
|
125
110
|
<div class="w-full flex flex-col gap-2">
|
|
126
|
-
{#if error}
|
|
127
|
-
<div class="text-xs text-red-600
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
<div class="max-h-48 overflow-y-auto border rounded p-2 bg-surface-secondary">
|
|
132
|
-
<div class="text-xs text-secondary italic">Loading tools...</div>
|
|
111
|
+
{#if tools.error}
|
|
112
|
+
<div class="text-xs text-red-600 p-2 border border-red-300 rounded bg-red-50">
|
|
113
|
+
{tools.error?.body?.message ||
|
|
114
|
+
tools.error?.message ||
|
|
115
|
+
'Failed to load tools from MCP server'}
|
|
133
116
|
</div>
|
|
134
|
-
{
|
|
135
|
-
|
|
117
|
+
{/if}
|
|
118
|
+
<div class="max-h-48 overflow-y-auto border rounded p-2 bg-surface-secondary">
|
|
119
|
+
{#if tools.status === 'loading'}
|
|
120
|
+
<div class="text-xs text-secondary italic">Loading tools...</div>
|
|
121
|
+
{:else if (tools.value ?? []).length === 0}
|
|
136
122
|
<div class="text-xs text-secondary italic">
|
|
137
|
-
|
|
123
|
+
{tools.error
|
|
124
|
+
? 'Failed to load tools. Please check the resource path and try again.'
|
|
125
|
+
: 'No tools loaded yet. Click "Refresh Tools" to fetch tools from the MCP server.'}
|
|
138
126
|
</div>
|
|
139
|
-
|
|
140
|
-
{:else if (tools.value ?? []).length > 0}
|
|
141
|
-
<div class="max-h-48 overflow-y-auto border rounded p-2 bg-surface-secondary">
|
|
127
|
+
{:else}
|
|
142
128
|
<div class="flex flex-col gap-1">
|
|
143
|
-
{#each tools.value ?? [] as
|
|
129
|
+
{#each tools.value ?? [] as tool}
|
|
144
130
|
<div class="text-xs">
|
|
145
|
-
<span class="font-semibold">{
|
|
146
|
-
{#if
|
|
147
|
-
<span class="text-secondary">— {
|
|
131
|
+
<span class="font-semibold">{tool.name}</span>
|
|
132
|
+
{#if tool.description}
|
|
133
|
+
<span class="text-secondary">— {tool.description}</span>
|
|
148
134
|
{/if}
|
|
149
135
|
</div>
|
|
150
136
|
{/each}
|
|
151
137
|
</div>
|
|
152
|
-
|
|
153
|
-
|
|
138
|
+
{/if}
|
|
139
|
+
</div>
|
|
154
140
|
</div>
|
|
155
141
|
</Section>
|
|
156
142
|
|
|
143
|
+
<!-- Tool Filtering Section -->
|
|
157
144
|
{#if tool.value.include_tools && tool.value.exclude_tools}
|
|
158
145
|
<Section label="Tool Filtering">
|
|
159
146
|
<div class="w-full flex flex-col gap-3">
|
|
@@ -3,7 +3,7 @@ import { createFlowChatManager } from './FlowChatManager.svelte';
|
|
|
3
3
|
import FlowConversationsSidebar from './FlowConversationsSidebar.svelte';
|
|
4
4
|
import FlowChatInterface from './FlowChatInterface.svelte';
|
|
5
5
|
import { untrack } from 'svelte';
|
|
6
|
-
let { onRunFlow, deploymentInProgress = false, useStreaming = false, path, hideSidebar = false
|
|
6
|
+
let { onRunFlow, deploymentInProgress = false, useStreaming = false, path, hideSidebar = false } = $props();
|
|
7
7
|
const manager = createFlowChatManager();
|
|
8
8
|
// Initialize manager when component mounts
|
|
9
9
|
$effect(() => {
|
|
@@ -22,25 +22,11 @@ $effect(() => {
|
|
|
22
22
|
});
|
|
23
23
|
}
|
|
24
24
|
});
|
|
25
|
-
// Derive additional inputs schema (excluding user_message) for chat mode
|
|
26
|
-
const additionalInputsSchema = $derived.by(() => {
|
|
27
|
-
const props = inputSchema?.properties ?? {};
|
|
28
|
-
const filtered = Object.fromEntries(Object.entries(props).filter(([k]) => k !== 'user_message'));
|
|
29
|
-
if (Object.keys(filtered).length === 0)
|
|
30
|
-
return undefined;
|
|
31
|
-
const required = inputSchema?.required;
|
|
32
|
-
const requiredArray = Array.isArray(required) ? required : [];
|
|
33
|
-
return {
|
|
34
|
-
...inputSchema,
|
|
35
|
-
properties: filtered,
|
|
36
|
-
required: requiredArray.filter((k) => k !== 'user_message')
|
|
37
|
-
};
|
|
38
|
-
});
|
|
39
25
|
</script>
|
|
40
26
|
|
|
41
27
|
<div class="flex border border-gray-200 dark:border-gray-700 rounded-lg overflow-hidden flex-1">
|
|
42
28
|
{#if !hideSidebar}
|
|
43
29
|
<FlowConversationsSidebar {manager} />
|
|
44
30
|
{/if}
|
|
45
|
-
<FlowChatInterface {manager} {deploymentInProgress}
|
|
31
|
+
<FlowChatInterface {manager} {deploymentInProgress} />
|
|
46
32
|
</div>
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
interface Props {
|
|
2
|
-
onRunFlow: (userMessage: string, conversationId: string
|
|
2
|
+
onRunFlow: (userMessage: string, conversationId: string) => Promise<string | undefined>;
|
|
3
3
|
useStreaming?: boolean;
|
|
4
4
|
deploymentInProgress?: boolean;
|
|
5
5
|
path: string;
|
|
6
6
|
hideSidebar?: boolean;
|
|
7
|
-
inputSchema?: Record<string, any>;
|
|
8
7
|
}
|
|
9
8
|
declare const FlowChat: import("svelte").Component<Props, {}, "">;
|
|
10
9
|
type FlowChat = ReturnType<typeof FlowChat>;
|
|
@@ -1,85 +1,11 @@
|
|
|
1
|
-
<script lang="ts">import { Alert
|
|
2
|
-
import { MessageCircle, Loader2
|
|
1
|
+
<script lang="ts">import { Alert } from '../../common';
|
|
2
|
+
import { MessageCircle, Loader2 } from 'lucide-svelte';
|
|
3
3
|
import ChatMessage from '../../chat/ChatMessage.svelte';
|
|
4
4
|
import ChatInput from '../../chat/ChatInput.svelte';
|
|
5
5
|
import { FlowChatManager } from './FlowChatManager.svelte';
|
|
6
|
-
|
|
7
|
-
import SchemaForm from '../../SchemaForm.svelte';
|
|
8
|
-
import {} from '../../../utils';
|
|
9
|
-
let { manager, deploymentInProgress = false, additionalInputsSchema, path } = $props();
|
|
10
|
-
// Derive helperScript for dynamic inputs from schema
|
|
11
|
-
const dynamicInputHelperScript = $derived.by(() => {
|
|
12
|
-
const dynCode = additionalInputsSchema?.['x-windmill-dyn-select-code'];
|
|
13
|
-
const dynLang = additionalInputsSchema?.['x-windmill-dyn-select-lang'];
|
|
14
|
-
if (dynCode && dynLang) {
|
|
15
|
-
return { source: 'inline', code: dynCode, lang: dynLang };
|
|
16
|
-
}
|
|
17
|
-
return undefined;
|
|
18
|
-
});
|
|
19
|
-
// LocalStorage helpers
|
|
20
|
-
const STORAGE_KEY_PREFIX = 'windmill_flow_chat_inputs_';
|
|
21
|
-
// State for additional inputs modal
|
|
22
|
-
let showInputsModal = $state(false);
|
|
23
|
-
let additionalInputsValues = $state(loadInputsFromStorage() ?? undefined);
|
|
24
|
-
function getStorageKey() {
|
|
25
|
-
return `${STORAGE_KEY_PREFIX}${path}`;
|
|
26
|
-
}
|
|
27
|
-
function loadInputsFromStorage() {
|
|
28
|
-
try {
|
|
29
|
-
const stored = localStorage.getItem(getStorageKey());
|
|
30
|
-
return stored ? JSON.parse(stored) : null;
|
|
31
|
-
}
|
|
32
|
-
catch (e) {
|
|
33
|
-
console.error('Failed to load inputs from localStorage:', e);
|
|
34
|
-
return null;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
function saveInputsToStorage(values) {
|
|
38
|
-
try {
|
|
39
|
-
localStorage.setItem(getStorageKey(), JSON.stringify(values));
|
|
40
|
-
}
|
|
41
|
-
catch (e) {
|
|
42
|
-
console.error('Failed to save inputs to localStorage:', e);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
function handleModalConfirm() {
|
|
46
|
-
saveInputsToStorage(additionalInputsValues ?? {});
|
|
47
|
-
showInputsModal = false;
|
|
48
|
-
}
|
|
49
|
-
function handleSendMessage() {
|
|
50
|
-
const inputs = additionalInputsSchema
|
|
51
|
-
? (loadInputsFromStorage() ?? additionalInputsValues)
|
|
52
|
-
: undefined;
|
|
53
|
-
manager.sendMessage(inputs);
|
|
54
|
-
}
|
|
55
|
-
function openInputsModal() {
|
|
56
|
-
const stored = loadInputsFromStorage();
|
|
57
|
-
if (stored)
|
|
58
|
-
additionalInputsValues = stored;
|
|
59
|
-
showInputsModal = true;
|
|
60
|
-
}
|
|
61
|
-
const hasMissingRequired = $derived.by(() => {
|
|
62
|
-
if (!additionalInputsSchema?.required?.length)
|
|
63
|
-
return false;
|
|
64
|
-
const values = additionalInputsValues ?? {};
|
|
65
|
-
return additionalInputsSchema.required.some((field) => values[field] === undefined || values[field] === '' || values[field] === null);
|
|
66
|
-
});
|
|
6
|
+
let { manager, deploymentInProgress = false } = $props();
|
|
67
7
|
</script>
|
|
68
8
|
|
|
69
|
-
<!-- Additional Inputs Modal -->
|
|
70
|
-
{#if additionalInputsSchema}
|
|
71
|
-
<Modal title="Configure inputs" bind:open={showInputsModal}>
|
|
72
|
-
<SchemaForm
|
|
73
|
-
schema={additionalInputsSchema}
|
|
74
|
-
bind:args={additionalInputsValues}
|
|
75
|
-
helperScript={dynamicInputHelperScript}
|
|
76
|
-
/>
|
|
77
|
-
{#snippet actions()}
|
|
78
|
-
<Button onClick={handleModalConfirm} variant="accent">Save</Button>
|
|
79
|
-
{/snippet}
|
|
80
|
-
</Modal>
|
|
81
|
-
{/if}
|
|
82
|
-
|
|
83
9
|
<div class="flex flex-col h-full flex-1 min-w-0">
|
|
84
10
|
<!-- Messages Container -->
|
|
85
11
|
<div
|
|
@@ -122,37 +48,14 @@ const hasMissingRequired = $derived.by(() => {
|
|
|
122
48
|
</div>
|
|
123
49
|
|
|
124
50
|
<!-- Chat Input -->
|
|
125
|
-
<div class="flex flex-
|
|
126
|
-
{#if additionalInputsSchema}
|
|
127
|
-
<div class="flex items-center justify-end w-full">
|
|
128
|
-
<div class="relative">
|
|
129
|
-
<Button
|
|
130
|
-
size="xs"
|
|
131
|
-
variant="default"
|
|
132
|
-
startIcon={{ icon: Settings2 }}
|
|
133
|
-
title="Inputs"
|
|
134
|
-
onClick={openInputsModal}
|
|
135
|
-
>
|
|
136
|
-
Inputs
|
|
137
|
-
</Button>
|
|
138
|
-
{#if hasMissingRequired}
|
|
139
|
-
<span class="absolute -top-1 -right-1 w-2 h-2 bg-yellow-500 rounded-full"></span>
|
|
140
|
-
{/if}
|
|
141
|
-
</div>
|
|
142
|
-
</div>
|
|
143
|
-
{/if}
|
|
51
|
+
<div class="flex flex-row justify-center py-2 xl:max-w-7xl mx-auto w-full">
|
|
144
52
|
<div class="w-full" class:opacity-50={deploymentInProgress}>
|
|
145
53
|
<ChatInput
|
|
146
54
|
bind:value={manager.inputMessage}
|
|
147
55
|
bind:bindTextarea={manager.inputElement}
|
|
148
56
|
disabled={manager.isLoading || deploymentInProgress}
|
|
149
|
-
onSend={
|
|
150
|
-
onKeydown={
|
|
151
|
-
if (e.key === 'Enter' && !e.shiftKey && !e.isComposing) {
|
|
152
|
-
e.preventDefault()
|
|
153
|
-
handleSendMessage()
|
|
154
|
-
}
|
|
155
|
-
}}
|
|
57
|
+
onSend={() => manager.sendMessage()}
|
|
58
|
+
onKeydown={manager.handleKeyDown}
|
|
156
59
|
showCancelButton={manager.isWaitingForResponse || manager.isLoading}
|
|
157
60
|
onCancel={() => manager.cancelCurrentJob()}
|
|
158
61
|
sendTitle={deploymentInProgress ? 'Deployment in progress' : 'Send message (Enter)'}
|
|
@@ -2,8 +2,6 @@ import { FlowChatManager } from './FlowChatManager.svelte';
|
|
|
2
2
|
interface Props {
|
|
3
3
|
manager: FlowChatManager;
|
|
4
4
|
deploymentInProgress?: boolean;
|
|
5
|
-
additionalInputsSchema?: Record<string, any>;
|
|
6
|
-
path: string;
|
|
7
5
|
}
|
|
8
6
|
declare const FlowChatInterface: import("svelte").Component<Props, {}, "">;
|
|
9
7
|
type FlowChatInterface = ReturnType<typeof FlowChatInterface>;
|
|
@@ -278,16 +278,14 @@ export class FlowChatManager {
|
|
|
278
278
|
// Do a final poll to get all messages from database
|
|
279
279
|
try {
|
|
280
280
|
if (this.selectedConversationId) {
|
|
281
|
-
await this.pollConversationMessages(this.selectedConversationId
|
|
282
|
-
removeTempMessages: true
|
|
283
|
-
});
|
|
281
|
+
await this.pollConversationMessages(this.selectedConversationId);
|
|
284
282
|
}
|
|
285
283
|
}
|
|
286
284
|
catch { }
|
|
287
285
|
this.cleanup();
|
|
288
286
|
}
|
|
289
287
|
}
|
|
290
|
-
async pollConversationMessages(conversationId,
|
|
288
|
+
async pollConversationMessages(conversationId, isNewConversation) {
|
|
291
289
|
if (!get(workspaceStore))
|
|
292
290
|
return;
|
|
293
291
|
try {
|
|
@@ -299,7 +297,7 @@ export class FlowChatManager {
|
|
|
299
297
|
perPage: 50,
|
|
300
298
|
afterId: lastId
|
|
301
299
|
});
|
|
302
|
-
if (
|
|
300
|
+
if (isNewConversation) {
|
|
303
301
|
await this.refreshConversations();
|
|
304
302
|
}
|
|
305
303
|
const filteredResponse = response.filter((msg) => msg.message_type !== 'user');
|
|
@@ -309,11 +307,8 @@ export class FlowChatManager {
|
|
|
309
307
|
this.messages = [...this.messages, msg];
|
|
310
308
|
}
|
|
311
309
|
}
|
|
312
|
-
//
|
|
313
|
-
|
|
314
|
-
if (options?.removeTempMessages) {
|
|
315
|
-
this.messages = this.messages.filter((msg) => !msg.id.startsWith('temp-'));
|
|
316
|
-
}
|
|
310
|
+
// Remove temporary messages
|
|
311
|
+
this.messages = this.messages.filter((msg) => !msg.id.startsWith('temp-'));
|
|
317
312
|
}
|
|
318
313
|
catch (error) {
|
|
319
314
|
console.error('Polling error:', error);
|
|
@@ -323,7 +318,7 @@ export class FlowChatManager {
|
|
|
323
318
|
if (this.pollingInterval)
|
|
324
319
|
return;
|
|
325
320
|
this.pollingInterval = setInterval(() => {
|
|
326
|
-
this.pollConversationMessages(conversationId,
|
|
321
|
+
this.pollConversationMessages(conversationId, isNewConversation);
|
|
327
322
|
}, 500); // Poll every 0.5 seconds
|
|
328
323
|
setTimeout(() => {
|
|
329
324
|
this.stopPolling();
|
|
@@ -336,7 +331,7 @@ export class FlowChatManager {
|
|
|
336
331
|
}
|
|
337
332
|
}
|
|
338
333
|
// Message sending
|
|
339
|
-
async sendMessage(
|
|
334
|
+
async sendMessage() {
|
|
340
335
|
if (!this.inputMessage.trim() || this.isLoading)
|
|
341
336
|
return;
|
|
342
337
|
const isNewConversation = this.messages.length === 0;
|
|
@@ -370,10 +365,10 @@ export class FlowChatManager {
|
|
|
370
365
|
await tick();
|
|
371
366
|
this.scrollToUserMessage(userMessage.id);
|
|
372
367
|
if (this.#useStreaming && this.#path) {
|
|
373
|
-
await this.handleStreamingMessage(messageContent, currentConversationId, isNewConversation
|
|
368
|
+
await this.handleStreamingMessage(messageContent, currentConversationId, isNewConversation);
|
|
374
369
|
}
|
|
375
370
|
else {
|
|
376
|
-
await this.handlePollingMessage(messageContent, currentConversationId, isNewConversation
|
|
371
|
+
await this.handlePollingMessage(messageContent, currentConversationId, isNewConversation);
|
|
377
372
|
}
|
|
378
373
|
}
|
|
379
374
|
catch (error) {
|
|
@@ -388,7 +383,7 @@ export class FlowChatManager {
|
|
|
388
383
|
await tick();
|
|
389
384
|
this.focusInput();
|
|
390
385
|
}
|
|
391
|
-
async handleStreamingMessage(messageContent, currentConversationId, isNewConversation
|
|
386
|
+
async handleStreamingMessage(messageContent, currentConversationId, isNewConversation) {
|
|
392
387
|
// Close any existing EventSource
|
|
393
388
|
if (this.currentEventSource) {
|
|
394
389
|
this.currentEventSource.close();
|
|
@@ -398,7 +393,7 @@ export class FlowChatManager {
|
|
|
398
393
|
let assistantMessageId = '';
|
|
399
394
|
let isCompleted = false;
|
|
400
395
|
try {
|
|
401
|
-
const jobId = await this.#onRunFlow?.(messageContent, currentConversationId
|
|
396
|
+
const jobId = await this.#onRunFlow?.(messageContent, currentConversationId);
|
|
402
397
|
if (!jobId) {
|
|
403
398
|
console.error('No jobId returned from onRunFlow');
|
|
404
399
|
return;
|
|
@@ -417,38 +412,7 @@ export class FlowChatManager {
|
|
|
417
412
|
eventSource.onmessage = async (event) => {
|
|
418
413
|
try {
|
|
419
414
|
const data = JSON.parse(event.data);
|
|
420
|
-
|
|
421
|
-
// Handle timeout - reconnect to SSE
|
|
422
|
-
if (type === 'timeout') {
|
|
423
|
-
eventSource.close();
|
|
424
|
-
this.currentEventSource = undefined;
|
|
425
|
-
// Reconnect
|
|
426
|
-
this.handleStreamingMessage(messageContent, currentConversationId, isNewConversation, additionalInputs);
|
|
427
|
-
return;
|
|
428
|
-
}
|
|
429
|
-
// Handle ping - just ignore
|
|
430
|
-
if (type === 'ping') {
|
|
431
|
-
return;
|
|
432
|
-
}
|
|
433
|
-
// Handle error
|
|
434
|
-
if (type === 'error') {
|
|
435
|
-
eventSource.close();
|
|
436
|
-
this.currentEventSource = undefined;
|
|
437
|
-
console.error('SSE error:', data);
|
|
438
|
-
sendUserToast('Stream error: ' + (data.error || 'Unknown error'), true);
|
|
439
|
-
this.cleanup();
|
|
440
|
-
return;
|
|
441
|
-
}
|
|
442
|
-
// Handle not found
|
|
443
|
-
if (type === 'not_found') {
|
|
444
|
-
eventSource.close();
|
|
445
|
-
this.currentEventSource = undefined;
|
|
446
|
-
console.error('Job not found');
|
|
447
|
-
sendUserToast('Job not found', true);
|
|
448
|
-
this.cleanup();
|
|
449
|
-
return;
|
|
450
|
-
}
|
|
451
|
-
if (type === 'update') {
|
|
415
|
+
if (data.type === 'update') {
|
|
452
416
|
if (data.flow_stream_job_id) {
|
|
453
417
|
this.currentJobId = data.flow_stream_job_id;
|
|
454
418
|
}
|
|
@@ -511,9 +475,7 @@ export class FlowChatManager {
|
|
|
511
475
|
isCompleted = true;
|
|
512
476
|
// Do a final poll to get all messages from database
|
|
513
477
|
if (this.selectedConversationId) {
|
|
514
|
-
await this.pollConversationMessages(this.selectedConversationId
|
|
515
|
-
removeTempMessages: true
|
|
516
|
-
});
|
|
478
|
+
await this.pollConversationMessages(this.selectedConversationId);
|
|
517
479
|
}
|
|
518
480
|
this.cleanup();
|
|
519
481
|
}
|
|
@@ -537,8 +499,8 @@ export class FlowChatManager {
|
|
|
537
499
|
this.cleanup();
|
|
538
500
|
}
|
|
539
501
|
}
|
|
540
|
-
async handlePollingMessage(messageContent, currentConversationId, isNewConversation
|
|
541
|
-
const jobId = await this.#onRunFlow?.(messageContent, currentConversationId
|
|
502
|
+
async handlePollingMessage(messageContent, currentConversationId, isNewConversation) {
|
|
503
|
+
const jobId = await this.#onRunFlow?.(messageContent, currentConversationId);
|
|
542
504
|
if (!jobId) {
|
|
543
505
|
console.error('No jobId returned from onRunFlow');
|
|
544
506
|
return;
|
|
@@ -552,5 +514,11 @@ export class FlowChatManager {
|
|
|
552
514
|
this.startPolling(currentConversationId);
|
|
553
515
|
this.pollJobResult(jobId);
|
|
554
516
|
}
|
|
517
|
+
handleKeyDown = (event) => {
|
|
518
|
+
if (event.key === 'Enter' && !event.shiftKey) {
|
|
519
|
+
event.preventDefault();
|
|
520
|
+
this.sendMessage();
|
|
521
|
+
}
|
|
522
|
+
};
|
|
555
523
|
}
|
|
556
524
|
export const createFlowChatManager = () => new FlowChatManager();
|
|
@@ -11,7 +11,7 @@ let flow = $derived(flowStore.val);
|
|
|
11
11
|
<Drawer bind:this={drawer} size="800px">
|
|
12
12
|
<DrawerContent title="OpenFlow" on:close={() => drawer?.toggleDrawer()}>
|
|
13
13
|
{#if flow}
|
|
14
|
-
<FlowViewer flow={cleanFlow(flow)}
|
|
14
|
+
<FlowViewer flow={cleanFlow(flow)} tab="raw" />
|
|
15
15
|
{/if}
|
|
16
16
|
</DrawerContent>
|
|
17
17
|
</Drawer>
|
|
@@ -82,7 +82,7 @@ let rightPaneHeight = $state(0);
|
|
|
82
82
|
: 'transparent'}
|
|
83
83
|
animationDuration="4s"
|
|
84
84
|
>
|
|
85
|
-
{#if result != undefined
|
|
85
|
+
{#if result != undefined}
|
|
86
86
|
<PropPickerResult
|
|
87
87
|
{result}
|
|
88
88
|
{extraResults}
|
|
@@ -97,8 +97,6 @@ let rightPaneHeight = $state(0);
|
|
|
97
97
|
/>
|
|
98
98
|
{:else if pickableProperties}
|
|
99
99
|
<PropPicker
|
|
100
|
-
{result}
|
|
101
|
-
{extraResults}
|
|
102
100
|
{displayContext}
|
|
103
101
|
{error}
|
|
104
102
|
{flow_env}
|