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
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
interface Props {
|
|
2
|
-
open?: boolean;
|
|
3
|
-
customPrompts: Record<string, string>;
|
|
4
|
-
onSave?: () => void;
|
|
5
|
-
onReset: () => void;
|
|
6
|
-
hasChanges: boolean;
|
|
7
|
-
isWorkspaceSettings?: boolean;
|
|
8
|
-
}
|
|
9
|
-
declare const AIPromptsModal: import("svelte").Component<Props, {}, "open" | "customPrompts">;
|
|
10
|
-
type AIPromptsModal = ReturnType<typeof AIPromptsModal>;
|
|
11
|
-
export default AIPromptsModal;
|
|
@@ -1,399 +0,0 @@
|
|
|
1
|
-
<script lang="ts">import Tutorial from './Tutorial.svelte';
|
|
2
|
-
import { updateProgress } from '../../tutorialUtils';
|
|
3
|
-
import { JobService, FlowService } from '../../gen';
|
|
4
|
-
import { workspaceStore, userStore } from '../../stores';
|
|
5
|
-
import { wait } from '../../utils';
|
|
6
|
-
import { waitJob } from '../waitJob';
|
|
7
|
-
import { DELAY_SHORT, DELAY_MEDIUM, DELAY_LONG, createFakeCursor, animateCursorToElementAndClick, animateFakeCursorClick } from './utils';
|
|
8
|
-
import { goto } from '$app/navigation';
|
|
9
|
-
import { base } from '../../base';
|
|
10
|
-
import { sendUserToast } from '../../toast';
|
|
11
|
-
let { index } = $props();
|
|
12
|
-
let tutorial = $state(undefined);
|
|
13
|
-
let tutorialFlowPaths = $state([]);
|
|
14
|
-
// Flags to track if steps are complete
|
|
15
|
-
let step2Complete = $state(false);
|
|
16
|
-
let step3Complete = $state(false);
|
|
17
|
-
let step5Complete = $state(false);
|
|
18
|
-
let step6Complete = $state(false);
|
|
19
|
-
// Create a simple flow
|
|
20
|
-
async function createTutorialFlow() {
|
|
21
|
-
const flowPath = `f/tutorial/runs-tutorial-flow-${Date.now()}`;
|
|
22
|
-
const flow = {
|
|
23
|
-
summary: 'Tutorial: Simple Hello World Flow',
|
|
24
|
-
description: 'A simple flow created for the runs tutorial',
|
|
25
|
-
value: {
|
|
26
|
-
modules: [
|
|
27
|
-
{
|
|
28
|
-
id: 'hello',
|
|
29
|
-
value: {
|
|
30
|
-
type: 'rawscript',
|
|
31
|
-
content: 'export async function main() {\n return {\n message: "Hello from the Runs tutorial!",\n timestamp: new Date().toISOString()\n };\n}',
|
|
32
|
-
language: 'bun',
|
|
33
|
-
input_transforms: {}
|
|
34
|
-
},
|
|
35
|
-
summary: 'Say hello'
|
|
36
|
-
}
|
|
37
|
-
]
|
|
38
|
-
},
|
|
39
|
-
schema: {
|
|
40
|
-
$schema: 'https://json-schema.org/draft/2020-12/schema',
|
|
41
|
-
type: 'object',
|
|
42
|
-
properties: {},
|
|
43
|
-
required: [],
|
|
44
|
-
order: []
|
|
45
|
-
},
|
|
46
|
-
path: flowPath,
|
|
47
|
-
edited_at: '',
|
|
48
|
-
edited_by: '',
|
|
49
|
-
archived: false,
|
|
50
|
-
extra_perms: {}
|
|
51
|
-
};
|
|
52
|
-
await FlowService.createFlow({
|
|
53
|
-
workspace: $workspaceStore,
|
|
54
|
-
requestBody: flow
|
|
55
|
-
});
|
|
56
|
-
return flowPath;
|
|
57
|
-
}
|
|
58
|
-
// Create a broken flow that will fail
|
|
59
|
-
async function createBrokenFlow() {
|
|
60
|
-
const flowPath = `f/tutorial/runs-tutorial-broken-${Date.now()}`;
|
|
61
|
-
const flow = {
|
|
62
|
-
summary: 'Tutorial: Broken Flow Example',
|
|
63
|
-
description: 'A flow that intentionally fails to demonstrate error handling',
|
|
64
|
-
value: {
|
|
65
|
-
modules: [
|
|
66
|
-
{
|
|
67
|
-
id: 'error',
|
|
68
|
-
value: {
|
|
69
|
-
type: 'rawscript',
|
|
70
|
-
content: 'export async function main() {\n throw new Error("Intentional error for tutorial - this demonstrates how failed jobs appear in the runs list");\n}',
|
|
71
|
-
language: 'bun',
|
|
72
|
-
input_transforms: {}
|
|
73
|
-
},
|
|
74
|
-
summary: 'Throw error'
|
|
75
|
-
}
|
|
76
|
-
]
|
|
77
|
-
},
|
|
78
|
-
schema: {
|
|
79
|
-
$schema: 'https://json-schema.org/draft/2020-12/schema',
|
|
80
|
-
type: 'object',
|
|
81
|
-
properties: {},
|
|
82
|
-
required: [],
|
|
83
|
-
order: []
|
|
84
|
-
},
|
|
85
|
-
path: flowPath,
|
|
86
|
-
edited_at: '',
|
|
87
|
-
edited_by: '',
|
|
88
|
-
archived: false,
|
|
89
|
-
extra_perms: {}
|
|
90
|
-
};
|
|
91
|
-
await FlowService.createFlow({
|
|
92
|
-
workspace: $workspaceStore,
|
|
93
|
-
requestBody: flow
|
|
94
|
-
});
|
|
95
|
-
return flowPath;
|
|
96
|
-
}
|
|
97
|
-
// Run the flow and wait for completion
|
|
98
|
-
async function runFlowAndWait(flowPath) {
|
|
99
|
-
const jobId = await JobService.runFlowByPath({
|
|
100
|
-
workspace: $workspaceStore,
|
|
101
|
-
path: flowPath,
|
|
102
|
-
requestBody: {},
|
|
103
|
-
skipPreprocessor: true
|
|
104
|
-
});
|
|
105
|
-
// Wait for job to complete
|
|
106
|
-
await waitJob(jobId);
|
|
107
|
-
return jobId;
|
|
108
|
-
}
|
|
109
|
-
function getTutorialSteps(driver) {
|
|
110
|
-
return [
|
|
111
|
-
{
|
|
112
|
-
popover: {
|
|
113
|
-
title: 'Welcome to your Monitoring Dashboard!',
|
|
114
|
-
description: "<p>Before we dive in, let's define a key term: a Job. A "Job" is simply a single run of a script or flow. Every time you run code, Windmill creates a Job to track if it succeeded or failed, how long it took, and what the results were.</p><p style='margin-top: 12px;'>In this tutorial, we will explore:</p><ul style='margin-top: 8px; padding-left: 20px;'><li style='margin-bottom: 8px;'><svg width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' style='color: #22c55e; display: inline-block; vertical-align: middle; margin-right: 6px;'><circle cx='12' cy='12' r='10'/><path d='m9 12 2 2 4-4'/></svg>A successful job execution.</li><li style='margin-bottom: 8px;'><svg width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' style='color: #ef4444; display: inline-block; vertical-align: middle; margin-right: 6px;'><circle cx='12' cy='12' r='10'/><path d='m12 8v4'/><path d='m12 16h.01'/></svg>A failed job execution.</li><li><svg width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' style='color: #3b82f6; display: inline-block; vertical-align: middle; margin-right: 6px;'><circle cx='11' cy='11' r='8'/><path d='m21 21-4.35-4.35'/></svg>How to filter your monitoring view.</li></ul>",
|
|
115
|
-
onNextClick: () => {
|
|
116
|
-
driver.moveNext();
|
|
117
|
-
},
|
|
118
|
-
onPrevClick: () => {
|
|
119
|
-
sendUserToast('Previous is not available for this step', true, [], undefined, 3000);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
},
|
|
123
|
-
{
|
|
124
|
-
element: '#runs-table-wrapper',
|
|
125
|
-
onHighlighted: async () => {
|
|
126
|
-
step2Complete = false;
|
|
127
|
-
await wait(DELAY_MEDIUM);
|
|
128
|
-
// Find all jobs
|
|
129
|
-
const allJobRows = Array.from(document.querySelectorAll('#runs-table-wrapper .cursor-pointer'));
|
|
130
|
-
// Find successful job (green badge/check icon) - first one that's not failed
|
|
131
|
-
const successfulJobRow = allJobRows.find((el) => {
|
|
132
|
-
const hasRedBadge = el.querySelector('[class*="bg-red"], [class*="text-red"]');
|
|
133
|
-
const hasGreenBadge = el.querySelector('[class*="bg-green"], [class*="text-green"]');
|
|
134
|
-
return !hasRedBadge && hasGreenBadge !== null;
|
|
135
|
-
}) || allJobRows[0];
|
|
136
|
-
if (successfulJobRow) {
|
|
137
|
-
// Create cursor
|
|
138
|
-
const cursor = createFakeCursor();
|
|
139
|
-
// Click on successful job
|
|
140
|
-
await animateCursorToElementAndClick(cursor, successfulJobRow);
|
|
141
|
-
// Wait for navigation to job details page
|
|
142
|
-
await wait(DELAY_LONG);
|
|
143
|
-
// Navigate back to runs page using SvelteKit navigation
|
|
144
|
-
await goto(`${base}/runs?tutorial=runs-tutorial`, { replaceState: true });
|
|
145
|
-
await wait(DELAY_LONG);
|
|
146
|
-
// Remove the cursor
|
|
147
|
-
cursor.remove();
|
|
148
|
-
step2Complete = true;
|
|
149
|
-
}
|
|
150
|
-
},
|
|
151
|
-
popover: {
|
|
152
|
-
title: 'Exploring successful job runs <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="color: #22c55e; display: inline-block; vertical-align: middle;"><circle cx="12" cy="12" r="10"/><path d="m9 12 2 2 4-4"/></svg>',
|
|
153
|
-
description: 'Let\'s click on a successful job to see how to inspect a completed execution.',
|
|
154
|
-
side: 'bottom',
|
|
155
|
-
onNextClick: async () => {
|
|
156
|
-
if (!step2Complete) {
|
|
157
|
-
sendUserToast('Please wait for the job click to complete...', false, [], undefined, 3000);
|
|
158
|
-
return;
|
|
159
|
-
}
|
|
160
|
-
// Click on the successful job again (without showing cursor)
|
|
161
|
-
const successfulJobRow = Array.from(document.querySelectorAll('#runs-table-wrapper .cursor-pointer')).find((el) => {
|
|
162
|
-
const hasRedBadge = el.querySelector('[class*="bg-red"], [class*="text-red"]');
|
|
163
|
-
const hasGreenBadge = el.querySelector('[class*="bg-green"], [class*="text-green"]');
|
|
164
|
-
return !hasRedBadge && hasGreenBadge !== null;
|
|
165
|
-
}) || Array.from(document.querySelectorAll('#runs-table-wrapper .cursor-pointer'))[0];
|
|
166
|
-
if (successfulJobRow) {
|
|
167
|
-
successfulJobRow.click();
|
|
168
|
-
await wait(DELAY_SHORT);
|
|
169
|
-
// Wait for navigation to job details page
|
|
170
|
-
await wait(DELAY_LONG);
|
|
171
|
-
// Navigate back to runs page using SvelteKit navigation
|
|
172
|
-
await goto(`${base}/runs?tutorial=runs-tutorial`, { replaceState: true });
|
|
173
|
-
await wait(DELAY_LONG);
|
|
174
|
-
}
|
|
175
|
-
driver.moveNext();
|
|
176
|
-
},
|
|
177
|
-
onPrevClick: () => {
|
|
178
|
-
sendUserToast('Previous is not available for this step', true, [], undefined, 3000);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
},
|
|
182
|
-
{
|
|
183
|
-
element: '#runs-table-wrapper',
|
|
184
|
-
onHighlighted: async () => {
|
|
185
|
-
step3Complete = false;
|
|
186
|
-
await wait(DELAY_MEDIUM);
|
|
187
|
-
// Find all jobs
|
|
188
|
-
const allJobRows = Array.from(document.querySelectorAll('#runs-table-wrapper .cursor-pointer'));
|
|
189
|
-
// Find failed job (red badge/X icon)
|
|
190
|
-
const failedJobRow = allJobRows.find((el) => {
|
|
191
|
-
const badge = el.querySelector('[class*="bg-red"], [class*="text-red"]');
|
|
192
|
-
return badge !== null;
|
|
193
|
-
});
|
|
194
|
-
if (failedJobRow) {
|
|
195
|
-
// Create cursor
|
|
196
|
-
const cursor = createFakeCursor();
|
|
197
|
-
// Click on failed job
|
|
198
|
-
await animateCursorToElementAndClick(cursor, failedJobRow);
|
|
199
|
-
// Wait for navigation to job details page
|
|
200
|
-
await wait(DELAY_LONG);
|
|
201
|
-
// Navigate back to runs page using SvelteKit navigation
|
|
202
|
-
await goto(`${base}/runs?tutorial=runs-tutorial`, { replaceState: true });
|
|
203
|
-
await wait(DELAY_LONG);
|
|
204
|
-
// Remove the cursor
|
|
205
|
-
cursor.remove();
|
|
206
|
-
step3Complete = true;
|
|
207
|
-
}
|
|
208
|
-
},
|
|
209
|
-
popover: {
|
|
210
|
-
title: 'Exploring failed job runs <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="color: #ef4444; display: inline-block; vertical-align: middle;"><circle cx="12" cy="12" r="10"/><path d="m12 8v4"/><path d="m12 16h.01"/></svg>',
|
|
211
|
-
description: 'Now let\'s click on a failed job to see how to inspect a failed execution.',
|
|
212
|
-
side: 'bottom',
|
|
213
|
-
onNextClick: async () => {
|
|
214
|
-
if (!step3Complete) {
|
|
215
|
-
sendUserToast('Please wait for the job click to complete...', false, [], undefined, 3000);
|
|
216
|
-
return;
|
|
217
|
-
}
|
|
218
|
-
// Click on the failed job again (without showing cursor)
|
|
219
|
-
const failedJobRow = Array.from(document.querySelectorAll('#runs-table-wrapper .cursor-pointer')).find((el) => {
|
|
220
|
-
const badge = el.querySelector('[class*="bg-red"], [class*="text-red"]');
|
|
221
|
-
return badge !== null;
|
|
222
|
-
});
|
|
223
|
-
if (failedJobRow) {
|
|
224
|
-
failedJobRow.click();
|
|
225
|
-
await wait(DELAY_SHORT);
|
|
226
|
-
// Wait for navigation to job details page
|
|
227
|
-
await wait(DELAY_LONG);
|
|
228
|
-
// Navigate back to runs page using SvelteKit navigation
|
|
229
|
-
await goto(`${base}/runs?tutorial=runs-tutorial`, { replaceState: true });
|
|
230
|
-
await wait(DELAY_LONG);
|
|
231
|
-
}
|
|
232
|
-
driver.moveNext();
|
|
233
|
-
},
|
|
234
|
-
onPrevClick: () => {
|
|
235
|
-
sendUserToast('Previous is not available for this step', true, [], undefined, 3000);
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
},
|
|
239
|
-
{
|
|
240
|
-
element: 'div.p-2.px-4.pt-8.w-full.border-b',
|
|
241
|
-
popover: {
|
|
242
|
-
title: 'Visual run history',
|
|
243
|
-
description: 'This chart gives you a visual overview of your run history at a glance. The duration chart shows how long each job takes to complete over time.',
|
|
244
|
-
side: 'bottom',
|
|
245
|
-
onNextClick: () => {
|
|
246
|
-
driver.moveNext();
|
|
247
|
-
},
|
|
248
|
-
onPrevClick: () => {
|
|
249
|
-
sendUserToast('Previous is not available for this step', true, [], undefined, 3000);
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
},
|
|
253
|
-
{
|
|
254
|
-
element: 'div.p-2.px-4.pt-8.w-full.border-b',
|
|
255
|
-
onHighlighted: async () => {
|
|
256
|
-
step5Complete = false;
|
|
257
|
-
await wait(DELAY_MEDIUM);
|
|
258
|
-
// Find the button with data-value="ConcurrencyChart"
|
|
259
|
-
const concurrencyButton = document.querySelector('button[data-value="ConcurrencyChart"]');
|
|
260
|
-
if (concurrencyButton) {
|
|
261
|
-
await animateFakeCursorClick(concurrencyButton);
|
|
262
|
-
await wait(DELAY_MEDIUM);
|
|
263
|
-
step5Complete = true;
|
|
264
|
-
}
|
|
265
|
-
},
|
|
266
|
-
popover: {
|
|
267
|
-
title: 'Switching chart views',
|
|
268
|
-
description: 'You can switch between different chart views to analyze your runs. The concurrency chart allows you to see how many jobs are running concurrently over time.',
|
|
269
|
-
side: 'bottom',
|
|
270
|
-
onNextClick: () => {
|
|
271
|
-
if (!step5Complete) {
|
|
272
|
-
sendUserToast('Please wait for the chart switch to complete...', false, [], undefined, 3000);
|
|
273
|
-
return;
|
|
274
|
-
}
|
|
275
|
-
driver.moveNext();
|
|
276
|
-
},
|
|
277
|
-
onPrevClick: () => {
|
|
278
|
-
sendUserToast('Previous is not available for this step', true, [], undefined, 3000);
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
},
|
|
282
|
-
{
|
|
283
|
-
element: 'div.flex.flex-row.items-start.w-full.border-b.px-4.gap-8',
|
|
284
|
-
onHighlighted: async () => {
|
|
285
|
-
step6Complete = false;
|
|
286
|
-
await wait(DELAY_MEDIUM);
|
|
287
|
-
// Find the success and failure filter buttons
|
|
288
|
-
const successButton = document.querySelector('button[data-value="success"]');
|
|
289
|
-
const failureButton = document.querySelector('button[data-value="failure"]');
|
|
290
|
-
if (successButton && failureButton) {
|
|
291
|
-
// Create cursor once for both clicks
|
|
292
|
-
const cursor = createFakeCursor();
|
|
293
|
-
// Click on failure button first
|
|
294
|
-
await animateCursorToElementAndClick(cursor, failureButton);
|
|
295
|
-
await wait(DELAY_MEDIUM);
|
|
296
|
-
// Click on success button
|
|
297
|
-
await animateCursorToElementAndClick(cursor, successButton);
|
|
298
|
-
// Remove the cursor
|
|
299
|
-
cursor.remove();
|
|
300
|
-
await wait(DELAY_MEDIUM);
|
|
301
|
-
step6Complete = true;
|
|
302
|
-
}
|
|
303
|
-
},
|
|
304
|
-
popover: {
|
|
305
|
-
title: 'Filtering jobs date, kind, status',
|
|
306
|
-
description: 'You can filter jobs, for example by status (failed, running, success). This helps you focus on specific types of executions.',
|
|
307
|
-
side: 'bottom',
|
|
308
|
-
onNextClick: () => {
|
|
309
|
-
if (!step6Complete) {
|
|
310
|
-
sendUserToast('Please wait for the filter clicks to complete...', false, [], undefined, 3000);
|
|
311
|
-
return;
|
|
312
|
-
}
|
|
313
|
-
driver.moveNext();
|
|
314
|
-
},
|
|
315
|
-
onPrevClick: () => {
|
|
316
|
-
sendUserToast('Previous is not available for this step', true, [], undefined, 3000);
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
},
|
|
320
|
-
{
|
|
321
|
-
element: 'div.flex.flex-row.gap-4.items-center.px-2.py-1.grow-0.justify-between',
|
|
322
|
-
popover: {
|
|
323
|
-
title: 'More filtering options',
|
|
324
|
-
description: 'Even more filters are available to help you find exactly what you\'re looking for. Explore the additional filtering options to refine your search.',
|
|
325
|
-
side: 'bottom',
|
|
326
|
-
onNextClick: () => {
|
|
327
|
-
driver.moveNext();
|
|
328
|
-
},
|
|
329
|
-
onPrevClick: () => {
|
|
330
|
-
sendUserToast('Previous is not available for this step', true, [], undefined, 3000);
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
},
|
|
334
|
-
{
|
|
335
|
-
popover: {
|
|
336
|
-
title: 'Tutorial complete! 🎉',
|
|
337
|
-
description: 'You now know how to use the Runs page to monitor your executions, view successful results, and debug failed jobs.<p style="margin-top: 12px; padding-top: 12px; border-top: 1px solid rgba(128,128,128,0.3); font-size: 0.9em; opacity: 0.9;"><strong>💡 Want to learn more?</strong> Access more tutorials from the <strong>Tutorials</strong> page in the main menu.</p>',
|
|
338
|
-
onNextClick: async () => {
|
|
339
|
-
updateProgress(index);
|
|
340
|
-
driver.destroy();
|
|
341
|
-
// Cleanup tutorial flows silently
|
|
342
|
-
await cleanupTutorialFlows();
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
];
|
|
347
|
-
}
|
|
348
|
-
// Cleanup function to delete tutorial flows
|
|
349
|
-
async function cleanupTutorialFlows() {
|
|
350
|
-
// Don't delete flows if user is an operator (they don't have permission)
|
|
351
|
-
if ($userStore?.operator) {
|
|
352
|
-
return;
|
|
353
|
-
}
|
|
354
|
-
for (const flowPath of tutorialFlowPaths) {
|
|
355
|
-
try {
|
|
356
|
-
await FlowService.deleteFlowByPath({
|
|
357
|
-
workspace: $workspaceStore,
|
|
358
|
-
path: flowPath
|
|
359
|
-
});
|
|
360
|
-
}
|
|
361
|
-
catch (error) {
|
|
362
|
-
console.error(`Error deleting tutorial flow ${flowPath}:`, error);
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
}
|
|
366
|
-
// Start tutorial - create and run both jobs first
|
|
367
|
-
export async function runTutorial() {
|
|
368
|
-
// Create and run both flows at the beginning
|
|
369
|
-
try {
|
|
370
|
-
const successfulFlowPath = await createTutorialFlow();
|
|
371
|
-
const brokenFlowPath = await createBrokenFlow();
|
|
372
|
-
// Store flow paths for cleanup
|
|
373
|
-
tutorialFlowPaths = [successfulFlowPath, brokenFlowPath];
|
|
374
|
-
// Run both flows in parallel
|
|
375
|
-
await Promise.all([
|
|
376
|
-
runFlowAndWait(successfulFlowPath),
|
|
377
|
-
runFlowAndWait(brokenFlowPath)
|
|
378
|
-
]);
|
|
379
|
-
// Wait a bit for jobs to appear
|
|
380
|
-
await wait(DELAY_LONG);
|
|
381
|
-
}
|
|
382
|
-
catch (error) {
|
|
383
|
-
console.error('Error creating/running tutorial flows:', error);
|
|
384
|
-
}
|
|
385
|
-
tutorial?.runTutorial();
|
|
386
|
-
}
|
|
387
|
-
</script>
|
|
388
|
-
|
|
389
|
-
<Tutorial
|
|
390
|
-
bind:this={tutorial}
|
|
391
|
-
{index}
|
|
392
|
-
name="runs-tutorial"
|
|
393
|
-
tainted={false}
|
|
394
|
-
on:error
|
|
395
|
-
on:skipAll
|
|
396
|
-
getSteps={(driver) => {
|
|
397
|
-
return getTutorialSteps(driver)
|
|
398
|
-
}}
|
|
399
|
-
/>
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
<script lang="ts">import { updateProgress } from '../../../tutorialUtils';
|
|
2
|
-
import Tutorial from '../Tutorial.svelte';
|
|
3
|
-
import { goto } from '$app/navigation';
|
|
4
|
-
import { base } from '../../../base';
|
|
5
|
-
import { page } from '$app/stores';
|
|
6
|
-
import { wait } from '../../../utils';
|
|
7
|
-
import { DELAY_MEDIUM } from '../utils';
|
|
8
|
-
let { index } = $props();
|
|
9
|
-
let tutorial = $state(undefined);
|
|
10
|
-
export function runTutorial() {
|
|
11
|
-
// Check if we're on the homepage
|
|
12
|
-
if ($page.url.pathname !== `${base}/` && $page.url.pathname !== `${base}`) {
|
|
13
|
-
// Redirect to homepage with a tutorial parameter
|
|
14
|
-
goto(`${base}/?tutorial=workspace-onboarding-operator`);
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
tutorial?.runTutorial();
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
</script>
|
|
21
|
-
|
|
22
|
-
<Tutorial
|
|
23
|
-
bind:this={tutorial}
|
|
24
|
-
{index}
|
|
25
|
-
name="workspace-onboarding-operator"
|
|
26
|
-
tainted={false}
|
|
27
|
-
on:skipAll
|
|
28
|
-
getSteps={(driver) => {
|
|
29
|
-
const steps: DriveStep[] = [
|
|
30
|
-
{
|
|
31
|
-
popover: {
|
|
32
|
-
title: 'Welcome to Windmill! 🎉',
|
|
33
|
-
description:
|
|
34
|
-
"Let's take a quick tour! We'll show you the three main tools you can use: Scripts, Flows, and Apps.",
|
|
35
|
-
onNextClick: () => {
|
|
36
|
-
// Wait a bit to ensure the page is fully rendered before moving to next step
|
|
37
|
-
setTimeout(() => {
|
|
38
|
-
// Try to find the script tab button
|
|
39
|
-
const scriptsButton = document.querySelector('[data-value="script"]') as HTMLElement | null
|
|
40
|
-
|
|
41
|
-
if (scriptsButton) {
|
|
42
|
-
driver.moveNext()
|
|
43
|
-
} else {
|
|
44
|
-
// If we can't find the button, just move to next step anyway
|
|
45
|
-
driver.moveNext()
|
|
46
|
-
}
|
|
47
|
-
}, 100)
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
popover: {
|
|
53
|
-
title: 'Scripts - Run automated tasks',
|
|
54
|
-
description:
|
|
55
|
-
'<img src="/script-tutorial-operator.png" alt="Script Example" style="width: 100%; max-width: 400px; margin-bottom: 12px; border-radius: 8px; display: block; margin-left: auto; margin-right: auto;" /><p><strong>Scripts</strong> are ready-to-use tasks that do things automatically for you.</p><p style="margin-top: 8px;">You can <strong>run scripts</strong> whenever you need them - like generating a report, sending notifications, or processing data.</p>',
|
|
56
|
-
onNextClick: async () => {
|
|
57
|
-
// Move to the next step (Flows)
|
|
58
|
-
setTimeout(() => {
|
|
59
|
-
const flowsButton = document.querySelector('[data-value="flow"]') as HTMLElement | null
|
|
60
|
-
|
|
61
|
-
if (flowsButton) {
|
|
62
|
-
driver.moveNext()
|
|
63
|
-
} else {
|
|
64
|
-
driver.moveNext()
|
|
65
|
-
}
|
|
66
|
-
}, 100)
|
|
67
|
-
}
|
|
68
|
-
},
|
|
69
|
-
element: '[data-value="script"]'
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
popover: {
|
|
73
|
-
title: 'Flows - Run step-by-step processes',
|
|
74
|
-
description:
|
|
75
|
-
'<img src="/flow.png" alt="Flow" style="width: 100%; max-width: 400px; margin-bottom: 12px; border-radius: 8px; display: block; margin-left: auto; margin-right: auto;" /><p><strong>Flows</strong> are processes that run multiple tasks in order, one after another.</p><p style="margin-top: 8px;">You can <strong>start a flow</strong> and watch it complete each step automatically - perfect for tasks that have multiple stages.</p>',
|
|
76
|
-
onNextClick: async () => {
|
|
77
|
-
// Move to the next step (Apps)
|
|
78
|
-
setTimeout(() => {
|
|
79
|
-
const appsButton = document.querySelector('[data-value="app"]') as HTMLElement | null
|
|
80
|
-
|
|
81
|
-
if (appsButton) {
|
|
82
|
-
driver.moveNext()
|
|
83
|
-
} else {
|
|
84
|
-
driver.moveNext()
|
|
85
|
-
}
|
|
86
|
-
}, 100)
|
|
87
|
-
}
|
|
88
|
-
},
|
|
89
|
-
element: '[data-value="flow"]'
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
popover: {
|
|
93
|
-
title: 'Apps - Use custom tools',
|
|
94
|
-
description:
|
|
95
|
-
'<img src="/app.png" alt="App" style="width: 100%; max-width: 400px; margin-bottom: 12px; border-radius: 8px; display: block; margin-left: auto; margin-right: auto;" /><p><strong>Apps</strong> are easy-to-use tools with buttons, forms, and displays built just for your team.</p><p style="margin-top: 8px;">You can <strong>open an app</strong> to work with your data, fill out forms, or trigger tasks - no technical knowledge needed!</p>',
|
|
96
|
-
onNextClick: async () => {
|
|
97
|
-
// Move to the next step (cursor animation)
|
|
98
|
-
driver.moveNext()
|
|
99
|
-
}
|
|
100
|
-
},
|
|
101
|
-
element: '[data-value="app"]'
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
popover: {
|
|
105
|
-
title: 'Finally, the Menu section',
|
|
106
|
-
description: 'Explore available tabs where you can access your history of runs, your scheduled scripts, your tutorials progress etc.<p style="margin-top: 12px; padding-top: 12px; border-top: 1px solid rgba(128,128,128,0.3); font-size: 0.9em; opacity: 0.9;"><strong>💡 Want to learn more?</strong> Access more tutorials from the <strong>Tutorials</strong> page in the main menu.</p>',
|
|
107
|
-
onNextClick: async () => {
|
|
108
|
-
// Find the target button and click it
|
|
109
|
-
const targetButton = document.querySelector('[role="menuitem"]') as HTMLElement | null
|
|
110
|
-
if (targetButton) {
|
|
111
|
-
targetButton.click()
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
// Wait for menu to open
|
|
115
|
-
await wait(DELAY_MEDIUM)
|
|
116
|
-
|
|
117
|
-
// Mark tutorial as complete
|
|
118
|
-
updateProgress(index)
|
|
119
|
-
driver.destroy()
|
|
120
|
-
|
|
121
|
-
// Clean up URL parameter if present
|
|
122
|
-
if ($page.url.searchParams.has('tutorial')) {
|
|
123
|
-
goto(`${base}/`, { replaceState: true })
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
},
|
|
127
|
-
element: '[role="menuitem"]'
|
|
128
|
-
}
|
|
129
|
-
]
|
|
130
|
-
|
|
131
|
-
return steps
|
|
132
|
-
}}
|
|
133
|
-
/>
|