windmill-components 1.511.1 → 1.531.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package/components/AIAgentLogViewer.svelte +123 -0
- package/package/components/AIAgentLogViewer.svelte.d.ts +13 -0
- package/package/components/AppConnectInner.svelte +10 -10
- package/package/components/AppConnectInner.svelte.d.ts +1 -1
- package/package/components/ArgInput.svelte +42 -14
- package/package/components/ArgInput.svelte.d.ts +2 -10
- package/package/components/AssignableTagsInner.svelte +5 -0
- package/package/components/AuthSettings.svelte +4 -2
- package/package/components/AuthSettings.svelte.d.ts +1 -0
- package/package/components/AutoscalingConfigEditor.svelte +76 -2
- package/package/components/DBManagerDrawer.svelte +154 -151
- package/package/components/DBManagerDrawer.svelte.d.ts +2 -2
- package/package/components/DBTable.svelte +3 -3
- package/package/components/DBTable.svelte.d.ts +1 -0
- package/package/components/DBTableEditor.svelte +7 -7
- package/package/components/DBTableEditor.svelte.d.ts +1 -1
- package/package/components/DeployWorkspace.svelte +1 -1
- package/package/components/Dev.svelte +12 -28
- package/package/components/DiffEditor.svelte +6 -3
- package/package/components/DiffEditor.svelte.d.ts +1 -0
- package/package/components/DisplayResult.svelte +46 -14
- package/package/components/DisplayResult.svelte.d.ts +5 -1
- package/package/components/DynSelect.svelte +58 -34
- package/package/components/DynSelect.svelte.d.ts +3 -11
- package/package/components/EditableSchemaForm.svelte +131 -8
- package/package/components/EditableSchemaForm.svelte.d.ts +5 -1
- package/package/components/Editor.svelte +27 -9
- package/package/components/Editor.svelte.d.ts +1 -1
- package/package/components/EditorBar.svelte +105 -7
- package/package/components/EditorSettings.svelte +6 -0
- package/package/components/ErrorOrRecoveryHandler.svelte +76 -8
- package/package/components/ErrorOrRecoveryHandler.svelte.d.ts +2 -1
- package/package/components/ExploreAssetButton.svelte +14 -4
- package/package/components/ExploreAssetButton.svelte.d.ts +1 -0
- package/package/components/FirstStepInputs.svelte +2 -2
- package/package/components/FlowBuilder.svelte +18 -36
- package/package/components/FlowGraphViewerStep.svelte +7 -0
- package/package/components/FlowJobResult.svelte +16 -64
- package/package/components/FlowJobResult.svelte.d.ts +11 -4
- package/package/components/FlowLogViewer.svelte +660 -0
- package/package/components/FlowLogViewer.svelte.d.ts +34 -0
- package/package/components/FlowLogViewerWrapper.svelte +52 -0
- package/package/components/FlowLogViewerWrapper.svelte.d.ts +21 -0
- package/package/components/FlowLoopIterationPreview.svelte +3 -3
- package/package/components/FlowPreviewContent.svelte +13 -6
- package/package/components/FlowPreviewContent.svelte.d.ts +7 -7
- package/package/components/FlowPreviewResult.svelte +7 -5
- package/package/components/FlowPreviewResult.svelte.d.ts +4 -5
- package/package/components/FlowStatusViewer.svelte +28 -16
- package/package/components/FlowStatusViewer.svelte.d.ts +19 -27
- package/package/components/FlowStatusViewerInner.svelte +500 -295
- package/package/components/FlowStatusViewerInner.svelte.d.ts +34 -34
- package/package/components/FlowTimeline.svelte +11 -13
- package/package/components/FlowTimeline.svelte.d.ts +6 -5
- package/package/components/FolderEditor.svelte +1 -1
- package/package/components/GitDiffPreview.svelte +14 -18
- package/package/components/GitDiffPreview.svelte.d.ts +2 -8
- package/package/components/GitHubAppIntegration.svelte +3 -1
- package/package/components/HighlightCode.svelte +4 -1
- package/package/components/IconedResourceType.svelte +9 -5
- package/package/components/IdEditorInput.svelte +25 -22
- package/package/components/IdEditorInput.svelte.d.ts +11 -23
- package/package/components/InstanceSetting.svelte +7 -2
- package/package/components/InstanceSettings.svelte +1 -0
- package/package/components/JobLoader.svelte +108 -12
- package/package/components/JobLoader.svelte.d.ts +16 -3
- package/package/components/LogViewer.svelte +8 -2
- package/package/components/LogViewer.svelte.d.ts +1 -0
- package/package/components/LogViewerHeader.svelte +32 -0
- package/package/components/LogViewerHeader.svelte.d.ts +8 -0
- package/package/components/Login.svelte +8 -2
- package/package/components/MemoryFootprintViewer.svelte +1 -1
- package/package/components/ModulePreviewForm.svelte +10 -6
- package/package/components/ModulePreviewResultViewer.svelte +18 -2
- package/package/components/ModulePreviewResultViewer.svelte.d.ts +1 -1
- package/package/components/ModuleTest.svelte +59 -16
- package/package/components/MoveDrawer.svelte.d.ts +2 -2
- package/package/components/NextcloudSetting.svelte +84 -0
- package/package/components/NextcloudSetting.svelte.d.ts +7 -0
- package/package/components/ObjectResourceInput.svelte +3 -2
- package/package/components/ObjectResourceInput.svelte.d.ts +1 -0
- package/package/components/ParqetCsvTableRenderer.svelte +1 -1
- package/package/components/RelativeLineNumbers.svelte +16 -0
- package/package/components/RelativeLineNumbers.svelte.d.ts +18 -0
- package/package/components/ResourceEditor.svelte +10 -5
- package/package/components/ResourcePicker.svelte +8 -1
- package/package/components/ResourcePicker.svelte.d.ts +1 -0
- package/package/components/ResultStreamDisplay.svelte +5 -0
- package/package/components/ResultStreamDisplay.svelte.d.ts +5 -0
- package/package/components/RunForm.svelte +9 -1
- package/package/components/SchemaForm.svelte +2 -2
- package/package/components/SchemaForm.svelte.d.ts +2 -10
- package/package/components/ScriptBuilder.svelte +26 -19
- package/package/components/ScriptBuilder.svelte.d.ts +1 -1
- package/package/components/ScriptEditor.svelte +2 -2
- package/package/components/ScriptEditor.svelte.d.ts +1 -1
- package/package/components/ScriptWrapper.svelte +1 -1
- package/package/components/ShareModal.svelte.d.ts +1 -1
- package/package/components/SimpleAgTable.svelte +2 -0
- package/package/components/SimpleAgTable.svelte.d.ts +2 -0
- package/package/components/SimpleEditor.svelte +10 -4
- package/package/components/SimpleEditor.svelte.d.ts +1 -0
- package/package/components/SqlRepl.svelte +21 -7
- package/package/components/SqlRepl.svelte.d.ts +2 -2
- package/package/components/StringTypeNarrowing.svelte.d.ts +1 -1
- package/package/components/TemplateEditor.svelte +1 -1
- package/package/components/UserSettings.svelte +4 -4
- package/package/components/WorkerTagSelect.svelte +70 -1
- package/package/components/apps/components/display/AppAccordionList.svelte +1 -1
- package/package/components/apps/components/display/AppCarouselList.svelte +10 -8
- package/package/components/apps/components/display/AppDisplayComponent.svelte +13 -1
- package/package/components/apps/components/display/AppJobIdFlowStatus.svelte +3 -3
- package/package/components/apps/components/display/AppText.svelte +2 -2
- package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +8 -1
- package/package/components/apps/components/display/dbtable/InsertRow.svelte +5 -4
- package/package/components/apps/components/display/dbtable/queries/count.js +11 -1
- package/package/components/apps/components/display/dbtable/queries/createTable.d.ts +1 -1
- package/package/components/apps/components/display/dbtable/queries/createTable.js +3 -3
- package/package/components/apps/components/display/dbtable/queries/delete.js +7 -0
- package/package/components/apps/components/display/dbtable/queries/insert.js +2 -0
- package/package/components/apps/components/display/dbtable/queries/select.js +14 -0
- package/package/components/apps/components/display/dbtable/queries/update.js +7 -0
- package/package/components/apps/components/display/dbtable/utils.d.ts +6 -5
- package/package/components/apps/components/display/dbtable/utils.js +52 -28
- package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +1 -1
- package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +1 -0
- package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte.d.ts +1 -0
- package/package/components/apps/components/display/table/AppAggridTable.svelte +7 -6
- package/package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +1 -0
- package/package/components/apps/components/display/table/utils.js +7 -4
- package/package/components/apps/components/helpers/HiddenComponent.svelte +2 -3
- package/package/components/apps/components/helpers/InputValue.svelte +6 -1
- package/package/components/apps/components/helpers/NonRunnableComponent.svelte +8 -4
- package/package/components/apps/components/helpers/NonRunnableComponent.svelte.d.ts +1 -1
- package/package/components/apps/components/helpers/RunnableComponent.svelte +10 -8
- package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +3 -2
- package/package/components/apps/components/helpers/RunnableWrapper.svelte +12 -3
- package/package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +1 -1
- package/package/components/apps/components/inputs/AppCodeInputComponent.svelte +0 -5
- package/package/components/apps/components/inputs/AppS3FileInput.svelte +2 -2
- package/package/components/apps/components/layout/AppConditionalWrapper.svelte +1 -1
- package/package/components/apps/components/layout/AppContainer.svelte +1 -1
- package/package/components/apps/components/layout/AppDecisionTree.svelte +32 -21
- package/package/components/apps/components/layout/AppDrawer.svelte +1 -1
- package/package/components/apps/components/layout/AppList.svelte +9 -8
- package/package/components/apps/components/layout/AppModal.svelte +1 -1
- package/package/components/apps/components/layout/AppSplitpanes.svelte +5 -2
- package/package/components/apps/components/layout/AppStepper.svelte +10 -6
- package/package/components/apps/components/layout/AppTabs.svelte +3 -3
- package/package/components/apps/editor/AppEditorHeader.svelte +13 -2
- package/package/components/apps/editor/AppJobsDrawer.svelte +2 -2
- package/package/components/apps/editor/GridEditor.svelte +24 -19
- package/package/components/apps/editor/GridEditor.svelte.d.ts +4 -1
- package/package/components/apps/editor/GridViewer.svelte +1 -0
- package/package/components/apps/editor/RunnableJobPanelInner.svelte +2 -1
- package/package/components/apps/editor/SubGridEditor.svelte +7 -11
- package/package/components/apps/editor/SubGridEditor.svelte.d.ts +3 -19
- package/package/components/apps/editor/appUtils.js +17 -68
- package/package/components/apps/editor/component/ComponentInner.svelte +845 -694
- package/package/components/apps/editor/component/componentCallbacks.svelte.js +8 -1
- package/package/components/apps/editor/contextPanel/components/IdEditor.svelte +7 -7
- package/package/components/apps/editor/contextPanel/components/IdEditor.svelte.d.ts +7 -19
- package/package/components/apps/editor/contextPanel/components/OutputHeader.svelte +14 -55
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +1 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte.d.ts +1 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +1 -1
- package/package/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte +31 -45
- package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +2 -1
- package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +1 -0
- package/package/components/apps/editor/settingsPanel/decisionTree/DecisionTreePreview.svelte +1 -3
- package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte +2 -2
- package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte.d.ts +1 -0
- package/package/components/apps/svelte-grid/Grid.svelte +23 -25
- package/package/components/apps/svelte-grid/Grid.svelte.d.ts +21 -9
- package/package/components/apps/svelte-grid/MoveResize.svelte +13 -15
- package/package/components/apps/svelte-grid/MoveResize.svelte.d.ts +17 -24
- package/package/components/apps/utils.d.ts +2 -0
- package/package/components/apps/utils.js +22 -0
- package/package/components/assets/AssetsDropdownButton.svelte +1 -1
- package/package/components/assets/JobAssetsViewer.svelte +2 -2
- package/package/components/assets/lib.js +4 -0
- package/package/components/auditLogs/AuditLogsFilters.svelte +7 -9
- package/package/components/auditLogs/AuditLogsFilters.svelte.d.ts +1 -1
- package/package/components/common/button/Button.svelte +4 -3
- package/package/components/common/button/Button.svelte.d.ts +1 -0
- package/package/components/common/confirmationModal/ConfirmationModal.svelte +6 -5
- package/package/components/common/confirmationModal/ConfirmationModal.svelte.d.ts +6 -11
- package/package/components/common/confirmationModal/asyncConfirmationModal.svelte.d.ts +26 -0
- package/package/components/common/confirmationModal/asyncConfirmationModal.svelte.js +50 -0
- package/package/components/common/fileDownload/FileDownload.svelte +1 -3
- package/package/components/common/fileDownload/FileDownload.svelte.d.ts +4 -18
- package/package/components/common/languageIcons/LanguageIcon.svelte +5 -2
- package/package/components/common/modal/Modal.svelte +2 -5
- package/package/components/common/tabs/TabsV2.svelte +2 -1
- package/package/components/common/tabs/TabsV2.svelte.d.ts +1 -0
- package/package/components/copilot/FlowInlineScriptAIButton.svelte +58 -0
- package/package/components/copilot/FlowInlineScriptAIButton.svelte.d.ts +3 -0
- package/package/components/copilot/MetadataGen.svelte +19 -1
- package/package/components/copilot/MetadataGen.svelte.d.ts +1 -1
- package/package/components/copilot/ScriptGen.svelte +23 -31
- package/package/components/copilot/ScriptGen.svelte.d.ts +0 -1
- package/package/components/copilot/autocomplete/Autocompletor.js +2 -0
- package/package/components/copilot/chat/AIChatDisplay.svelte +4 -4
- package/package/components/copilot/chat/AIChatInput.svelte +29 -6
- package/package/components/copilot/chat/AIChatManager.svelte.js +171 -33
- package/package/components/copilot/chat/AIChatMessage.svelte +3 -0
- package/package/components/copilot/chat/ContextTextarea.svelte +1 -1
- package/package/components/copilot/chat/ToolContentDisplay.svelte +84 -0
- package/package/components/copilot/chat/ToolContentDisplay.svelte.d.ts +11 -0
- package/package/components/copilot/chat/ToolExecutionDisplay.svelte +105 -0
- package/package/components/copilot/chat/ToolExecutionDisplay.svelte.d.ts +7 -0
- package/package/components/copilot/chat/api/apiTools.d.ts +7 -0
- package/package/components/copilot/chat/api/apiTools.js +192 -0
- package/package/components/copilot/chat/api/core.d.ts +7 -0
- package/package/components/copilot/chat/api/core.js +61 -0
- package/package/components/copilot/chat/flow/FlowAIChat.svelte +4 -6
- package/package/components/copilot/chat/flow/core.js +213 -42
- package/package/components/copilot/chat/flow/utils.js +3 -0
- package/package/components/copilot/chat/monaco-adapter.d.ts +1 -1
- package/package/components/copilot/chat/monaco-adapter.js +10 -4
- package/package/components/copilot/chat/navigator/core.d.ts +1 -1
- package/package/components/copilot/chat/navigator/core.js +20 -22
- package/package/components/copilot/chat/script/core.d.ts +11 -3
- package/package/components/copilot/chat/script/core.js +120 -44
- package/package/components/copilot/chat/shared.d.ts +31 -4
- package/package/components/copilot/chat/shared.js +235 -10
- package/package/components/copilot/lib.d.ts +1 -1
- package/package/components/copilot/lib.js +15 -6
- package/package/components/custom_ui.d.ts +4 -0
- package/package/components/dbOps.d.ts +20 -8
- package/package/components/dbOps.js +85 -40
- package/package/components/details/DetailPageHeader.svelte +0 -2
- package/package/components/details/DetailPageLayout.svelte +34 -33
- package/package/components/flow_builder.d.ts +1 -2
- package/package/components/flows/FlowEditor.svelte +3 -3
- package/package/components/flows/FlowEditor.svelte.d.ts +7 -6
- package/package/components/flows/common/FlowCard.svelte +2 -2
- package/package/components/flows/common/FlowCard.svelte.d.ts +1 -0
- package/package/components/flows/common/FlowCardHeader.svelte +13 -4
- package/package/components/flows/common/FlowCardHeader.svelte.d.ts +1 -0
- package/package/components/flows/content/BranchPredicateEditor.svelte +4 -7
- package/package/components/flows/content/BranchPredicateEditor.svelte.d.ts +12 -11
- package/package/components/flows/content/FlowConstants.svelte +3 -3
- package/package/components/flows/content/FlowEditorPanel.svelte +3 -3
- package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +2 -4
- package/package/components/flows/content/FlowInput.svelte +5 -0
- package/package/components/flows/content/FlowInputsQuick.svelte +2 -1
- package/package/components/flows/content/FlowLoop.svelte +2 -2
- package/package/components/flows/content/FlowModuleComponent.svelte +130 -108
- package/package/components/flows/content/FlowModuleComponent.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowModuleEarlyStop.svelte +2 -2
- package/package/components/flows/content/FlowModuleScript.svelte +0 -1
- package/package/components/flows/content/FlowModuleSkip.svelte +1 -1
- package/package/components/flows/content/FlowModuleSleep.svelte +1 -1
- package/package/components/flows/content/FlowModuleSuspend.svelte +1 -1
- package/package/components/flows/content/FlowModuleWrapper.svelte +15 -5
- package/package/components/flows/content/FlowModuleWrapper.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowResult.svelte +2 -3
- package/package/components/flows/content/FlowResult.svelte.d.ts +2 -4
- package/package/components/flows/content/FlowWhileLoop.svelte +1 -1
- package/package/components/flows/dfs.d.ts +3 -1
- package/package/components/flows/dfs.js +5 -1
- package/package/components/flows/flowInfers.js +78 -0
- package/package/components/flows/flowState.d.ts +2 -3
- package/package/components/flows/flowState.js +2 -2
- package/package/components/flows/flowStateUtils.svelte.d.ts +4 -4
- package/package/components/flows/flowStateUtils.svelte.js +14 -13
- package/package/components/flows/flowStore.d.ts +3 -4
- package/package/components/flows/header/FlowPreviewButtons.svelte +2 -1
- package/package/components/flows/header/FlowYamlEditor.svelte +10 -1
- package/package/components/flows/idUtils.js +2 -1
- package/package/components/flows/map/FlowGraphPreviewButton.svelte +1 -1
- package/package/components/flows/map/FlowJobsMenu.svelte +7 -3
- package/package/components/flows/map/FlowJobsMenu.svelte.d.ts +1 -0
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +15 -15
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +27 -15
- package/package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +6 -4
- package/package/components/flows/map/InsertModuleButton.svelte +4 -1
- package/package/components/flows/map/InsertModuleInner.svelte +9 -1
- package/package/components/flows/map/InsertModuleInner.svelte.d.ts +1 -0
- package/package/components/flows/map/MapItem.svelte +4 -2
- package/package/components/flows/pickers/TopLevelNode.svelte +4 -1
- package/package/components/flows/propPicker/InputPickerInner.svelte +5 -4
- package/package/components/flows/propPicker/OutputBadge.svelte +16 -10
- package/package/components/flows/propPicker/OutputPickerInner.svelte +19 -6
- package/package/components/flows/propPicker/OutputPickerInner.svelte.d.ts +6 -2
- package/package/components/flows/propPicker/StepHistory.svelte +4 -1
- package/package/components/flows/testSteps.svelte.d.ts +3 -2
- package/package/components/flows/testSteps.svelte.js +26 -23
- package/package/components/flows/types.d.ts +1 -1
- package/package/components/flows/utils.d.ts +3 -5
- package/package/components/flows/utils.js +3 -4
- package/package/components/git_sync/DetectionFlow.svelte +202 -0
- package/package/components/git_sync/DetectionFlow.svelte.d.ts +6 -0
- package/package/components/git_sync/GitSyncContext.svelte.d.ts +82 -0
- package/package/components/git_sync/GitSyncContext.svelte.js +462 -0
- package/package/components/git_sync/GitSyncModalManager.svelte +99 -0
- package/package/components/git_sync/GitSyncModalManager.svelte.d.ts +18 -0
- package/package/components/git_sync/GitSyncRepositoryCard.svelte +339 -0
- package/package/components/git_sync/GitSyncRepositoryCard.svelte.d.ts +6 -0
- package/package/components/git_sync/GitSyncRepositoryList.svelte +17 -0
- package/package/components/git_sync/GitSyncRepositoryList.svelte.d.ts +18 -0
- package/package/components/git_sync/GitSyncSection.svelte +89 -0
- package/package/components/git_sync/GitSyncSection.svelte.d.ts +3 -0
- package/package/components/git_sync/GitSyncSuccessModal.svelte +58 -0
- package/package/components/git_sync/GitSyncSuccessModal.svelte.d.ts +7 -0
- package/package/components/git_sync/PullWorkspaceModal.svelte +575 -0
- package/package/components/git_sync/PullWorkspaceModal.svelte.d.ts +15 -0
- package/package/components/git_sync/PushWorkspaceModal.svelte +320 -0
- package/package/components/git_sync/PushWorkspaceModal.svelte.d.ts +12 -0
- package/package/components/graph/FlowGraphV2.svelte +49 -25
- package/package/components/graph/FlowGraphV2.svelte.d.ts +5 -2
- package/package/components/graph/graphBuilder.svelte.d.ts +49 -17
- package/package/components/graph/graphBuilder.svelte.js +31 -15
- package/package/components/graph/model.d.ts +9 -6
- package/package/components/graph/renderers/edges/BaseEdge.svelte +3 -3
- package/package/components/graph/renderers/edges/BaseEdge.svelte.d.ts +2 -3
- package/package/components/graph/renderers/nodes/AIToolNode.svelte +234 -0
- package/package/components/graph/renderers/nodes/AIToolNode.svelte.d.ts +24 -0
- package/package/components/graph/renderers/nodes/AssetNode.svelte +19 -14
- package/package/components/graph/renderers/nodes/AssetNode.svelte.d.ts +18 -1
- package/package/components/graph/renderers/nodes/BranchAllEndNode.svelte +1 -1
- package/package/components/graph/renderers/nodes/BranchAllStart.svelte +1 -1
- package/package/components/graph/renderers/nodes/BranchOneStart.svelte +1 -1
- package/package/components/graph/renderers/nodes/ForLoopEndNode.svelte +2 -2
- package/package/components/graph/renderers/nodes/ForLoopStartNode.svelte +1 -1
- package/package/components/graph/renderers/nodes/ModuleNode.svelte +21 -21
- package/package/components/graph/renderers/nodes/NewAIToolNode.svelte +64 -0
- package/package/components/graph/renderers/nodes/NewAIToolNode.svelte.d.ts +7 -0
- package/package/components/graph/renderers/nodes/branchOneEndNode.svelte +1 -1
- package/package/components/icons/AssetDucklakeIcon.svelte +28 -0
- package/package/components/icons/AssetDucklakeIcon.svelte.d.ts +9 -0
- package/package/components/icons/AssetGenericIcon.svelte +3 -0
- package/package/components/icons/DucklakeIcon.svelte +18 -0
- package/package/components/icons/DucklakeIcon.svelte.d.ts +6 -0
- package/package/components/icons/RubyIcon.svelte +656 -0
- package/package/components/icons/RubyIcon.svelte.d.ts +7 -0
- package/package/components/instanceSettings.js +20 -3
- package/package/components/modulesTest.svelte.d.ts +6 -3
- package/package/components/modulesTest.svelte.js +32 -0
- package/package/components/preview/FlowPreviewStatus.svelte +3 -1
- package/package/components/raw_apps/RawAppEditor.svelte +27 -26
- package/package/components/raw_apps/RawAppEditor.svelte.d.ts +17 -17
- package/package/components/runs/{JobPreview.svelte → JobRunsPreview.svelte} +2 -5
- package/package/components/runs/{JobPreview.svelte.d.ts → JobRunsPreview.svelte.d.ts} +3 -3
- package/package/components/runs/NoWorkerWithTagWarning.svelte +3 -3
- package/package/components/runs/RunRow.svelte +5 -1
- package/package/components/runs/RunsFilter.svelte.d.ts +1 -1
- package/package/components/schema/AddProperty.svelte +41 -36
- package/package/components/schema/AddProperty.svelte.d.ts +2 -2
- package/package/components/schema/AddPropertyV2.svelte +41 -37
- package/package/components/schema/AddPropertyV2.svelte.d.ts +1 -1
- package/package/components/schema/FlowPropertyEditor.svelte +11 -8
- package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -1
- package/package/components/schema/PropertyEditor.svelte +0 -2
- package/package/components/schema/PropertyEditor.svelte.d.ts +1 -1
- package/package/components/schema/SchemaFormDND.svelte +2 -1
- package/package/components/schema/SchemaFormDND.svelte.d.ts +2 -0
- package/package/components/scriptEditor/LogPanel.svelte +5 -3
- package/package/components/scriptEditor/LogPanel.svelte.d.ts +5 -1
- package/package/components/search/RunsSearch.svelte +1 -1
- package/package/components/select/Select.svelte +7 -4
- package/package/components/select/Select.svelte.d.ts +5 -0
- package/package/components/select/SelectDropdown.svelte +2 -1
- package/package/components/select/SelectDropdown.svelte.d.ts +3 -0
- package/package/components/settings/CreateToken.svelte +132 -12
- package/package/components/settings/CreateToken.svelte.d.ts +3 -20
- package/package/components/settings/TokenDisplay.svelte +18 -42
- package/package/components/settings/TokenDisplay.svelte.d.ts +0 -1
- package/package/components/settings/TokensTable.svelte +2 -4
- package/package/components/settings/TokensTable.svelte.d.ts +3 -19
- package/package/components/settings/WorkspaceUserSettings.svelte +428 -69
- package/package/components/sidebar/MenuButton.svelte +12 -10
- package/package/components/sidebar/changelogs.js +5 -0
- package/package/components/stepHistoryLoader.svelte.d.ts +2 -2
- package/package/components/stepHistoryLoader.svelte.js +7 -12
- package/package/components/table/AutoDataTable.svelte +6 -4
- package/package/components/table/AutoDataTable.svelte.d.ts +1 -0
- package/package/components/table/DataTable.svelte +12 -10
- package/package/components/table/DataTable.svelte.d.ts +1 -0
- package/package/components/triggers/TriggerRetriesAndErrorHandler.svelte.d.ts +2 -2
- package/package/components/triggers/gcp/GcpTriggerEditorConfigSection.svelte +1 -1
- package/package/components/triggers/gcp/GcpTriggerEditorConfigSection.svelte.d.ts +2 -1
- package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +50 -11
- package/package/components/triggers/gcp/utils.js +1 -0
- package/package/components/triggers/http/OpenAPISpecGenerator.svelte +2 -2
- package/package/components/triggers/http/utils.js +1 -1
- package/package/components/triggers/kafka/utils.js +1 -1
- package/package/components/triggers/mqtt/utils.js +1 -1
- package/package/components/triggers/nats/utils.js +1 -1
- package/package/components/triggers/postgres/utils.js +1 -1
- package/package/components/triggers/sqs/utils.js +1 -1
- package/package/components/triggers/utils.js +2 -1
- package/package/components/triggers/webhook/WebhooksConfigSection.svelte +24 -26
- package/package/components/triggers/webhook/WebhooksPanel.svelte +1 -15
- package/package/components/triggers/websocket/utils.js +1 -1
- package/package/components/tutorials/FlowBuilderTutorialBranchOne.svelte +1 -1
- package/package/components/tutorials/FlowBuilderTutorialForLoop.svelte +4 -4
- package/package/components/tutorials/utils.js +3 -0
- package/package/components/worker_group.d.ts +4 -1
- package/package/components/worker_group.js +3 -2
- package/package/components/workspaceSettings/AISettings.svelte +52 -36
- package/package/components/workspaceSettings/DucklakeSettings.svelte +321 -0
- package/package/components/workspaceSettings/DucklakeSettings.svelte.d.ts +23 -0
- package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +122 -499
- package/package/components/workspaceSettings/GitSyncFilterSettings.svelte.d.ts +8 -10
- package/package/consts.js +2 -1
- package/package/editorLangUtils.d.ts +1 -1
- package/package/editorLangUtils.js +2 -0
- package/package/editorUtils.d.ts +2 -1
- package/package/editorUtils.js +2 -1
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +303 -14
- package/package/gen/schemas.gen.js +371 -76
- package/package/gen/services.gen.d.ts +136 -16
- package/package/gen/services.gen.js +264 -19
- package/package/gen/types.gen.d.ts +736 -17
- package/package/git-sync.d.ts +36 -0
- package/package/git-sync.js +1 -0
- package/package/hub.d.ts +1 -0
- package/package/hubPaths.json +9 -3
- package/package/infer.js +13 -3
- package/package/monaco_workers/graphql.worker.bundle.js +144 -110
- package/package/script_helpers.d.ts +5 -2
- package/package/script_helpers.js +87 -14
- package/package/scripts.d.ts +1 -1
- package/package/scripts.js +3 -2
- package/package/services/JobManager.d.ts +28 -0
- package/package/services/JobManager.js +114 -0
- package/package/stores.d.ts +3 -1
- package/package/stores.js +2 -0
- package/package/svelte5Utils.svelte.d.ts +16 -0
- package/package/svelte5Utils.svelte.js +26 -0
- package/package/utils.d.ts +19 -2
- package/package/utils.js +55 -2
- package/package.json +24 -22
- package/package/components/AllFlowLogs.svelte +0 -31
- package/package/components/AllFlowLogs.svelte.d.ts +0 -8
- package/package/components/InitGitRepoPopover.svelte +0 -410
- package/package/components/InitGitRepoPopover.svelte.d.ts +0 -13
- package/package/components/PullGitRepoPopover.svelte +0 -355
- package/package/components/PullGitRepoPopover.svelte.d.ts +0 -18
- package/package/components/copilot/chat/navigator/apiTools.d.ts +0 -68
- package/package/components/copilot/chat/navigator/apiTools.js +0 -258
- package/package/inferArgSig.d.ts +0 -42
- package/package/inferArgSig.js +0 -198
|
@@ -57,6 +57,7 @@ function renameVariant(name, selected) {
|
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
let initialObjectSelected = $state(Object.keys(properties ?? {}).length == 0 ? 'resource' : 'custom-object');
|
|
60
|
+
let isDynSelect = $derived(format?.startsWith('dynselect-') ?? false);
|
|
60
61
|
</script>
|
|
61
62
|
|
|
62
63
|
<div class="flex flex-col gap-2">
|
|
@@ -182,13 +183,16 @@ let initialObjectSelected = $state(Object.keys(properties ?? {}).length == 0 ? '
|
|
|
182
183
|
bind:schema={
|
|
183
184
|
() => {
|
|
184
185
|
if (oneOf?.[idx]) {
|
|
186
|
+
let properties = Object.fromEntries(
|
|
187
|
+
Object.entries(oneOf[idx].properties ?? {}).filter(
|
|
188
|
+
([k]) => k !== 'label' && k !== 'kind'
|
|
189
|
+
)
|
|
190
|
+
)
|
|
185
191
|
return {
|
|
186
192
|
...oneOf[idx],
|
|
187
|
-
properties:
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
)
|
|
191
|
-
)
|
|
193
|
+
properties: properties,
|
|
194
|
+
order: Object.keys(properties),
|
|
195
|
+
required: oneOf[idx].required ?? []
|
|
192
196
|
}
|
|
193
197
|
}
|
|
194
198
|
},
|
|
@@ -197,7 +201,6 @@ let initialObjectSelected = $state(Object.keys(properties ?? {}).length == 0 ? '
|
|
|
197
201
|
const tagKey = oneOf?.find((o) => Object.keys(o.properties ?? {}).includes('kind'))
|
|
198
202
|
? 'kind'
|
|
199
203
|
: 'label'
|
|
200
|
-
|
|
201
204
|
oneOf[idx] = {
|
|
202
205
|
...(v ?? {}),
|
|
203
206
|
type: 'object',
|
|
@@ -217,7 +220,7 @@ let initialObjectSelected = $state(Object.keys(properties ?? {}).length == 0 ? '
|
|
|
217
220
|
}}
|
|
218
221
|
/>
|
|
219
222
|
{/if}
|
|
220
|
-
{:else if type === 'object' && format !== 'resource-s3_object'}
|
|
223
|
+
{:else if type === 'object' && format !== 'resource-s3_object' && !isDynSelect}
|
|
221
224
|
<Tabs
|
|
222
225
|
bind:selected={initialObjectSelected}
|
|
223
226
|
on:selected={(e) => {
|
|
@@ -258,7 +261,7 @@ let initialObjectSelected = $state(Object.keys(properties ?? {}).length == 0 ? '
|
|
|
258
261
|
</Tabs>
|
|
259
262
|
{/if}
|
|
260
263
|
|
|
261
|
-
{#if !(type === 'object' && oneOf && oneOf.length >= 2) && !(type == 'object' && initialObjectSelected == 'custom-object')}
|
|
264
|
+
{#if !(type === 'object' && oneOf && oneOf.length >= 2) && !(type == 'object' && initialObjectSelected == 'custom-object') && !isDynSelect}
|
|
262
265
|
<Label label="Default">
|
|
263
266
|
<ArgInput
|
|
264
267
|
noDefaultOnSelectFirst
|
|
@@ -47,6 +47,6 @@ declare const FlowPropertyEditor: $$__sveltets_2_IsomorphicComponent<Props, {
|
|
|
47
47
|
requiredChange: CustomEvent<any>;
|
|
48
48
|
} & {
|
|
49
49
|
[evt: string]: CustomEvent<any>;
|
|
50
|
-
}, {}, {}, "disabled" | "properties" | "defaultValue" | "oneOf" | "format" | "
|
|
50
|
+
}, {}, {}, "disabled" | "properties" | "defaultValue" | "oneOf" | "format" | "order" | "nullable" | "showExpr" | "requiredProperty">;
|
|
51
51
|
type FlowPropertyEditor = InstanceType<typeof FlowPropertyEditor>;
|
|
52
52
|
export default FlowPropertyEditor;
|
|
@@ -198,8 +198,6 @@ $effect(() => {
|
|
|
198
198
|
/>
|
|
199
199
|
</div>
|
|
200
200
|
{/if}
|
|
201
|
-
{:else if type == 'object' && format?.startsWith('dynselect-')}
|
|
202
|
-
<div class="text-tertiary text-xs">No settings available for Dynamic Select</div>
|
|
203
201
|
{:else if type == 'object' && !format?.startsWith('resource-') && !isFlowInput && !isAppInput}
|
|
204
202
|
<div class="border">
|
|
205
203
|
<EditableSchemaForm
|
|
@@ -46,6 +46,6 @@ declare const PropertyEditor: $$__sveltets_2_IsomorphicComponent<Props, {
|
|
|
46
46
|
[evt: string]: CustomEvent<any>;
|
|
47
47
|
}, {}, {
|
|
48
48
|
focus: () => void;
|
|
49
|
-
}, "description" | "title" | "properties" | "placeholder" | "pattern" | "extra" | "oneOf" | "format" | "
|
|
49
|
+
}, "description" | "title" | "properties" | "placeholder" | "pattern" | "extra" | "oneOf" | "format" | "order" | "enum_" | "contentEncoding" | "itemsType" | "customErrorMessage">;
|
|
50
50
|
type PropertyEditor = InstanceType<typeof PropertyEditor>;
|
|
51
51
|
export default PropertyEditor;
|
|
@@ -3,7 +3,7 @@ import { dragHandle } from '@windmill-labs/svelte-dnd-action';
|
|
|
3
3
|
import SchemaForm from '../SchemaForm.svelte';
|
|
4
4
|
import { GripVertical } from 'lucide-svelte';
|
|
5
5
|
import { deepEqual } from 'fast-equals';
|
|
6
|
-
let { dndType = undefined, schema = $bindable(), args = $bindable(undefined), prettifyHeader = false, onlyMaskPassword = false, disablePortal = false, disabled = false, hiddenArgs = [], nestedParent = undefined, disableDnd = false, shouldDispatchChanges = false, diff = {}, nestedClasses = '', isValid = $bindable(true), noVariablePicker = false } = $props();
|
|
6
|
+
let { dndType = undefined, schema = $bindable(), args = $bindable(undefined), prettifyHeader = false, onlyMaskPassword = false, disablePortal = false, disabled = false, hiddenArgs = [], nestedParent = undefined, disableDnd = false, shouldDispatchChanges = false, helperScript = undefined, diff = {}, nestedClasses = '', isValid = $bindable(true), noVariablePicker = false } = $props();
|
|
7
7
|
$effect.pre(() => {
|
|
8
8
|
if (args == undefined) {
|
|
9
9
|
args = {};
|
|
@@ -66,6 +66,7 @@ $effect(() => {
|
|
|
66
66
|
{onlyMaskPassword}
|
|
67
67
|
{disablePortal}
|
|
68
68
|
{disabled}
|
|
69
|
+
{helperScript}
|
|
69
70
|
bind:schema
|
|
70
71
|
dndConfig={disableDnd
|
|
71
72
|
? undefined
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Schema } from '../../common';
|
|
2
2
|
import type { SchemaDiff } from './schemaUtils.svelte';
|
|
3
|
+
import type { DynamicSelect } from '../../utils';
|
|
3
4
|
interface Props {
|
|
4
5
|
dndType?: string | undefined;
|
|
5
6
|
schema: Schema;
|
|
@@ -19,6 +20,7 @@ interface Props {
|
|
|
19
20
|
nestedClasses?: string;
|
|
20
21
|
isValid?: boolean;
|
|
21
22
|
noVariablePicker?: boolean;
|
|
23
|
+
helperScript?: DynamicSelect.HelperScript;
|
|
22
24
|
}
|
|
23
25
|
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
24
26
|
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
@@ -49,6 +49,7 @@ let forceJson = $state(false);
|
|
|
49
49
|
result={drawerContent.content}
|
|
50
50
|
customUi={customUi?.displayResult}
|
|
51
51
|
language={lang}
|
|
52
|
+
result_stream={previewJob?.result_stream}
|
|
52
53
|
/>
|
|
53
54
|
{:else if drawerContent?.mode === 'plain'}
|
|
54
55
|
<pre
|
|
@@ -60,7 +61,6 @@ let forceJson = $state(false);
|
|
|
60
61
|
{/if}
|
|
61
62
|
</DrawerContent>
|
|
62
63
|
</Drawer>
|
|
63
|
-
|
|
64
64
|
<div class="h-full flex flex-col">
|
|
65
65
|
<Tabs bind:selected={selectedTab} class="pt-1" wrapperClass="flex-none">
|
|
66
66
|
<Tab value="logs" size="xs">Logs & Result</Tab>
|
|
@@ -98,9 +98,9 @@ let forceJson = $state(false);
|
|
|
98
98
|
</Pane>
|
|
99
99
|
<Pane>
|
|
100
100
|
{@render children?.()}
|
|
101
|
-
{#if previewJob != undefined &&
|
|
101
|
+
{#if previewJob != undefined && (previewJob.result_stream || previewJob.result)}
|
|
102
102
|
<div class="relative w-full h-full p-2">
|
|
103
|
-
<div class="relative">
|
|
103
|
+
<div class="relative h-full">
|
|
104
104
|
<DisplayResult
|
|
105
105
|
bind:forceJson
|
|
106
106
|
workspaceId={previewJob?.workspace_id}
|
|
@@ -108,6 +108,8 @@ let forceJson = $state(false);
|
|
|
108
108
|
result={previewJob.result}
|
|
109
109
|
customUi={customUi?.displayResult}
|
|
110
110
|
language={lang}
|
|
111
|
+
result_stream={previewJob?.result_stream}
|
|
112
|
+
fixTableSizingToParent
|
|
111
113
|
>
|
|
112
114
|
{#snippet copilot_fix()}
|
|
113
115
|
{#if lang && editor && diffEditor && args && previewJob && !previewJob.success && getStringError(previewJob.result)}
|
|
@@ -5,7 +5,11 @@ import type { PreviewPanelUi } from '../custom_ui';
|
|
|
5
5
|
interface Props {
|
|
6
6
|
lang: Preview['language'] | undefined;
|
|
7
7
|
previewIsLoading?: boolean;
|
|
8
|
-
previewJob: Job
|
|
8
|
+
previewJob: (Job & {
|
|
9
|
+
result_stream?: string;
|
|
10
|
+
result?: any;
|
|
11
|
+
success?: boolean;
|
|
12
|
+
}) | undefined;
|
|
9
13
|
pastPreviews?: CompletedJob[];
|
|
10
14
|
editor?: Editor | undefined;
|
|
11
15
|
diffEditor?: DiffEditor | undefined;
|
|
@@ -8,7 +8,7 @@ import { Alert } from '../common';
|
|
|
8
8
|
import QuickMenuItem from './QuickMenuItem.svelte';
|
|
9
9
|
import { goto } from '$app/navigation';
|
|
10
10
|
import { displayDateOnly } from '../../utils';
|
|
11
|
-
import JobPreview from '../runs/
|
|
11
|
+
import JobPreview from '../runs/JobRunsPreview.svelte';
|
|
12
12
|
let debounceTimeout = undefined;
|
|
13
13
|
const debouncePeriod = 1000;
|
|
14
14
|
let loadingCompletedRuns = $state(false);
|
|
@@ -6,8 +6,8 @@ import { untrack } from 'svelte';
|
|
|
6
6
|
import { getLabel, processItems } from './utils.svelte';
|
|
7
7
|
import SelectDropdown from './SelectDropdown.svelte';
|
|
8
8
|
import { deepEqual } from 'fast-equals';
|
|
9
|
-
let { items, placeholder = 'Please select', value = $bindable(), filterText = $bindable(''), class: className = '', clearable = false, listAutoWidth = true, disabled: _disabled = false, containerStyle = '', inputClass = '', disablePortal = false, loading = false, autofocus, RightIcon, createText, noItemsMsg, open = $bindable(false), groupBy, sortBy, onFocus, onBlur, onClear, onCreateItem } = $props();
|
|
10
|
-
let disabled = $derived(_disabled || loading);
|
|
9
|
+
let { items, placeholder = 'Please select', value = $bindable(), filterText = $bindable(''), class: className = '', clearable = false, listAutoWidth = true, disabled: _disabled = false, containerStyle = '', inputClass = '', disablePortal = false, loading = false, autofocus, RightIcon, createText, noItemsMsg, open = $bindable(false), groupBy, sortBy, onFocus, onBlur, onClear, onCreateItem, startSnippet } = $props();
|
|
10
|
+
let disabled = $derived(_disabled || (loading && !value));
|
|
11
11
|
let inputEl = $state();
|
|
12
12
|
let processedItems = $derived.by(() => {
|
|
13
13
|
let args = { items, createText, filterText, groupBy, onCreateItem, sortBy };
|
|
@@ -67,12 +67,14 @@ function clearValue() {
|
|
|
67
67
|
{disabled}
|
|
68
68
|
type="text"
|
|
69
69
|
bind:value={() => filterText, (v) => (filterText = v)}
|
|
70
|
-
placeholder={loading
|
|
70
|
+
placeholder={loading && !value
|
|
71
|
+
? 'Loading...'
|
|
72
|
+
: (valueEntry?.label ?? getLabel({ value }) ?? placeholder)}
|
|
71
73
|
style={containerStyle}
|
|
72
74
|
class={twMerge(
|
|
73
75
|
'!bg-surface text-ellipsis',
|
|
74
76
|
open ? '' : 'cursor-pointer',
|
|
75
|
-
|
|
77
|
+
!loading && value ? '!placeholder-primary' : '',
|
|
76
78
|
(clearable || RightIcon) && !disabled && value ? '!pr-8' : '',
|
|
77
79
|
inputClass ?? ''
|
|
78
80
|
)}
|
|
@@ -91,5 +93,6 @@ function clearValue() {
|
|
|
91
93
|
getInputRect={inputEl && (() => inputEl!.getBoundingClientRect())}
|
|
92
94
|
{listAutoWidth}
|
|
93
95
|
{noItemsMsg}
|
|
96
|
+
{startSnippet}
|
|
94
97
|
/>
|
|
95
98
|
</div>
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { type Snippet } from 'svelte';
|
|
2
|
+
import { type ProcessedItem } from './utils.svelte';
|
|
1
3
|
declare class __sveltets_Render<Item extends {
|
|
2
4
|
label?: string;
|
|
3
5
|
value: any;
|
|
@@ -27,6 +29,9 @@ declare class __sveltets_Render<Item extends {
|
|
|
27
29
|
onBlur?: (() => void) | undefined;
|
|
28
30
|
onClear?: (() => void) | undefined;
|
|
29
31
|
onCreateItem?: ((value: string) => void) | undefined;
|
|
32
|
+
startSnippet?: Snippet<[{
|
|
33
|
+
item: ProcessedItem<Item["value"]>;
|
|
34
|
+
}]> | undefined;
|
|
30
35
|
};
|
|
31
36
|
events(): {};
|
|
32
37
|
slots(): {};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import ConditionalPortal from '../common/drawer/ConditionalPortal.svelte';
|
|
3
3
|
import { untrack } from 'svelte';
|
|
4
4
|
import { twMerge } from 'tailwind-merge';
|
|
5
|
-
let { processedItems: _processedItems, value, filterText, listAutoWidth = true, disabled, disablePortal = false, open, noItemsMsg = 'No items found', class: className = '', ulClass = '', header, getInputRect, onSelectValue } = $props();
|
|
5
|
+
let { processedItems: _processedItems, value, filterText, listAutoWidth = true, disabled, disablePortal = false, open, noItemsMsg = 'No items found', class: className = '', ulClass = '', header, getInputRect, onSelectValue, startSnippet } = $props();
|
|
6
6
|
let processedItems = $derived(!filterText
|
|
7
7
|
? _processedItems
|
|
8
8
|
: _processedItems?.filter((item) => item.__is_create || item?.label?.toLowerCase().includes(filterText?.toLowerCase())));
|
|
@@ -102,6 +102,7 @@ $effect(() => {
|
|
|
102
102
|
onSelectValue(item)
|
|
103
103
|
}}
|
|
104
104
|
>
|
|
105
|
+
{@render startSnippet?.({ item })}
|
|
105
106
|
{item.label || '\xa0'}
|
|
106
107
|
{#if item.subtitle}
|
|
107
108
|
<div class="text-xs text-tertiary">{item.subtitle}</div>
|
|
@@ -15,6 +15,9 @@ declare class __sveltets_Render<T> {
|
|
|
15
15
|
header?: Snippet;
|
|
16
16
|
getInputRect?: (() => DOMRect) | undefined;
|
|
17
17
|
onSelectValue: (item: ProcessedItem<T>) => void;
|
|
18
|
+
startSnippet?: Snippet<[{
|
|
19
|
+
item: ProcessedItem<T>;
|
|
20
|
+
}]> | undefined;
|
|
18
21
|
};
|
|
19
22
|
events(): {};
|
|
20
23
|
slots(): {};
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
<script lang="ts">import { userWorkspaces, workspaceStore } from '../../stores';
|
|
2
|
-
import { Button } from '../common';
|
|
2
|
+
import { Badge, Button } from '../common';
|
|
3
3
|
import ToggleButton from '../common/toggleButton-v2/ToggleButton.svelte';
|
|
4
4
|
import ToggleButtonGroup from '../common/toggleButton-v2/ToggleButtonGroup.svelte';
|
|
5
5
|
import { triggerableByAI } from '../../actions/triggerableByAI.svelte';
|
|
6
6
|
import Toggle from '../Toggle.svelte';
|
|
7
|
-
import { IntegrationService, UserService } from '../../gen';
|
|
8
|
-
import { createEventDispatcher } from 'svelte';
|
|
7
|
+
import { FlowService, IntegrationService, ScriptService, UserService } from '../../gen';
|
|
9
8
|
import MultiSelect from '../select/MultiSelect.svelte';
|
|
10
9
|
import { safeSelectItems } from '../select/utils.svelte';
|
|
11
10
|
import TokenDisplay from './TokenDisplay.svelte';
|
|
12
11
|
import ScopeSelector from './ScopeSelector.svelte';
|
|
12
|
+
import Alert from '../common/alert/Alert.svelte';
|
|
13
|
+
import FolderPicker from '../FolderPicker.svelte';
|
|
13
14
|
let { showMcpMode = false, defaultNewTokenWorkspace, scopes, onTokenCreated, newTokenLabel = $bindable(undefined) } = $props();
|
|
14
15
|
let newToken = $state(undefined);
|
|
15
16
|
let newMcpToken = $state(undefined);
|
|
@@ -21,9 +22,12 @@ let newMcpScope = $state('favorites');
|
|
|
21
22
|
let loadingApps = $state(false);
|
|
22
23
|
let errorFetchApps = $state(false);
|
|
23
24
|
let allApps = $state([]);
|
|
25
|
+
let loadingRunnables = $state(false);
|
|
26
|
+
let includedRunnables = $state([]);
|
|
27
|
+
let selectedFolder = $state('');
|
|
28
|
+
let runnablesCache = new Map();
|
|
24
29
|
let customScopes = $state([]);
|
|
25
30
|
let showCustomScopes = $state(false);
|
|
26
|
-
const dispatch = createEventDispatcher();
|
|
27
31
|
function ensureCurrentWorkspaceIncluded(workspacesList, currentWorkspace) {
|
|
28
32
|
if (!currentWorkspace) {
|
|
29
33
|
return workspacesList;
|
|
@@ -42,7 +46,13 @@ async function createToken(mcpMode = false) {
|
|
|
42
46
|
}
|
|
43
47
|
let tokenScopes = scopes;
|
|
44
48
|
if (mcpMode) {
|
|
45
|
-
|
|
49
|
+
if (newMcpScope === 'folder') {
|
|
50
|
+
const folderPath = `f/${selectedFolder}/*`;
|
|
51
|
+
tokenScopes = [`mcp:all:${folderPath}`];
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
tokenScopes = [`mcp:${newMcpScope}`];
|
|
55
|
+
}
|
|
46
56
|
if (newMcpApps.length > 0) {
|
|
47
57
|
tokenScopes.push(`mcp:hub:${newMcpApps.join(',')}`);
|
|
48
58
|
}
|
|
@@ -64,10 +74,7 @@ async function createToken(mcpMode = false) {
|
|
|
64
74
|
else {
|
|
65
75
|
newToken = `${createdToken}`;
|
|
66
76
|
}
|
|
67
|
-
|
|
68
|
-
if (onTokenCreated) {
|
|
69
|
-
onTokenCreated(newToken ?? newMcpToken ?? '');
|
|
70
|
-
}
|
|
77
|
+
onTokenCreated(newToken ?? newMcpToken ?? '');
|
|
71
78
|
mcpCreationMode = false;
|
|
72
79
|
}
|
|
73
80
|
catch (err) {
|
|
@@ -76,6 +83,8 @@ async function createToken(mcpMode = false) {
|
|
|
76
83
|
}
|
|
77
84
|
const workspaces = $derived(ensureCurrentWorkspaceIncluded($userWorkspaces, $workspaceStore));
|
|
78
85
|
const mcpBaseUrl = $derived(`${window.location.origin}/api/mcp/w/${newTokenWorkspace}/sse?token=`);
|
|
86
|
+
const warning = $derived(newMcpScope === 'favorites' ? `You do not have any favorite scripts or flows. You can favorite some scripts and flows to include them, or change the scope to "All scripts/flows" to include all your scripts and flows.` : 'Create your first scripts or flows to make them available via MCP.');
|
|
87
|
+
const noScriptsOrFlowsAvailableWarning = $derived(includedRunnables.length === 0 ? warning : '');
|
|
79
88
|
$effect(() => {
|
|
80
89
|
if (mcpCreationMode) {
|
|
81
90
|
getAllApps();
|
|
@@ -103,6 +112,64 @@ async function getAllApps() {
|
|
|
103
112
|
loadingApps = false;
|
|
104
113
|
}
|
|
105
114
|
}
|
|
115
|
+
async function getScripts(favoriteOnly = false, workspace, folder) {
|
|
116
|
+
if (!workspace) {
|
|
117
|
+
return [];
|
|
118
|
+
}
|
|
119
|
+
const pathStart = folder ? `f/${folder}` : undefined;
|
|
120
|
+
const scripts = await ScriptService.listScripts({
|
|
121
|
+
starredOnly: favoriteOnly,
|
|
122
|
+
workspace,
|
|
123
|
+
pathStart
|
|
124
|
+
});
|
|
125
|
+
return scripts.map((x) => x.path);
|
|
126
|
+
}
|
|
127
|
+
async function getFlows(favoriteOnly = false, workspace, folder) {
|
|
128
|
+
if (!workspace) {
|
|
129
|
+
return [];
|
|
130
|
+
}
|
|
131
|
+
const pathStart = folder ? `f/${folder}` : undefined;
|
|
132
|
+
const flows = await FlowService.listFlows({
|
|
133
|
+
starredOnly: favoriteOnly,
|
|
134
|
+
workspace,
|
|
135
|
+
pathStart
|
|
136
|
+
});
|
|
137
|
+
return flows.map((x) => x.path);
|
|
138
|
+
}
|
|
139
|
+
async function getScriptsAndFlows(favoriteOnly = false, workspace, folder) {
|
|
140
|
+
const cacheKey = `${workspace}-${favoriteOnly}${folder ? `-${folder}` : ''}`;
|
|
141
|
+
if (runnablesCache.has(cacheKey)) {
|
|
142
|
+
includedRunnables = runnablesCache.get(cacheKey) || [];
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
try {
|
|
146
|
+
loadingRunnables = true;
|
|
147
|
+
const [scripts, flows] = await Promise.all([getScripts(favoriteOnly, workspace, folder), getFlows(favoriteOnly, workspace, folder)]);
|
|
148
|
+
const combined = [...scripts, ...flows];
|
|
149
|
+
runnablesCache.set(cacheKey, combined);
|
|
150
|
+
includedRunnables = combined;
|
|
151
|
+
}
|
|
152
|
+
finally {
|
|
153
|
+
loadingRunnables = false;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
$effect(() => {
|
|
157
|
+
if (mcpCreationMode) {
|
|
158
|
+
const workspace = newTokenWorkspace || $workspaceStore;
|
|
159
|
+
if (workspace) {
|
|
160
|
+
const folderParam = selectedFolder.length > 0 ? selectedFolder : undefined;
|
|
161
|
+
getScriptsAndFlows(newMcpScope === 'favorites', workspace, folderParam);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
includedRunnables = [];
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
$effect(() => {
|
|
169
|
+
if (mcpCreationMode && newMcpScope !== 'folder') {
|
|
170
|
+
selectedFolder = '';
|
|
171
|
+
}
|
|
172
|
+
});
|
|
106
173
|
</script>
|
|
107
174
|
|
|
108
175
|
<div>
|
|
@@ -189,10 +256,23 @@ async function getAllApps() {
|
|
|
189
256
|
label="All scripts/flows"
|
|
190
257
|
tooltip="Make all your scripts and flows available as tools"
|
|
191
258
|
/>
|
|
259
|
+
<ToggleButton
|
|
260
|
+
{item}
|
|
261
|
+
value="folder"
|
|
262
|
+
label="Folder"
|
|
263
|
+
tooltip="Make all scripts and flows in the selected folder available as tools"
|
|
264
|
+
/>
|
|
192
265
|
{/snippet}
|
|
193
266
|
</ToggleButtonGroup>
|
|
194
267
|
</div>
|
|
195
268
|
|
|
269
|
+
{#if newMcpScope === 'folder'}
|
|
270
|
+
<div>
|
|
271
|
+
<span class="block mb-1">Select Folder</span>
|
|
272
|
+
<FolderPicker bind:folderName={selectedFolder} />
|
|
273
|
+
</div>
|
|
274
|
+
{/if}
|
|
275
|
+
|
|
196
276
|
<div>
|
|
197
277
|
<span class="block mb-1">Hub scripts (optional)</span>
|
|
198
278
|
{#if loadingApps}
|
|
@@ -241,6 +321,46 @@ async function getAllApps() {
|
|
|
241
321
|
</select>
|
|
242
322
|
</div>
|
|
243
323
|
{/if}
|
|
324
|
+
{#if mcpCreationMode && (newMcpScope !== 'folder' || selectedFolder.length > 0)}
|
|
325
|
+
{#if loadingRunnables}
|
|
326
|
+
<div class="flex flex-col gap-2 col-span-2 pr-4">
|
|
327
|
+
<span class="block text-xs text-tertiary">Scripts & Flows that will be available via MCP</span>
|
|
328
|
+
<div class="flex flex-wrap gap-1">
|
|
329
|
+
<Badge rounded small color="dark-gray" baseClass="animate-skeleton">Loading...</Badge>
|
|
330
|
+
</div>
|
|
331
|
+
</div>
|
|
332
|
+
{:else}
|
|
333
|
+
<div class="flex flex-col gap-2 col-span-2 pr-4">
|
|
334
|
+
{#if noScriptsOrFlowsAvailableWarning}
|
|
335
|
+
<Alert type="info" title="No scripts or flows available" size="xs">
|
|
336
|
+
{noScriptsOrFlowsAvailableWarning}
|
|
337
|
+
</Alert>
|
|
338
|
+
{:else}
|
|
339
|
+
<span class="block text-xs text-tertiary">Scripts & Flows that will be available via MCP</span>
|
|
340
|
+
<div class="flex flex-wrap gap-1">
|
|
341
|
+
|
|
342
|
+
{#if includedRunnables.length <= 5}
|
|
343
|
+
{#each includedRunnables as scriptOrFlow}
|
|
344
|
+
<Badge rounded small color="blue">{scriptOrFlow}</Badge>
|
|
345
|
+
{/each}
|
|
346
|
+
{:else}
|
|
347
|
+
{#each includedRunnables.slice(0, 3) as scriptOrFlow}
|
|
348
|
+
<Badge rounded small color="blue">{scriptOrFlow}</Badge>
|
|
349
|
+
{/each}
|
|
350
|
+
<Badge
|
|
351
|
+
rounded
|
|
352
|
+
small
|
|
353
|
+
color="dark-gray"
|
|
354
|
+
>
|
|
355
|
+
+{includedRunnables.length - 3} more
|
|
356
|
+
</Badge>
|
|
357
|
+
{/if}
|
|
358
|
+
</div>
|
|
359
|
+
{/if}
|
|
360
|
+
</div>
|
|
361
|
+
{/if}
|
|
362
|
+
{/if}
|
|
363
|
+
|
|
244
364
|
</div>
|
|
245
365
|
|
|
246
366
|
<div class="mt-4 flex justify-end gap-2 flex-row">
|
|
@@ -253,7 +373,7 @@ async function getAllApps() {
|
|
|
253
373
|
</Button>
|
|
254
374
|
<Button
|
|
255
375
|
on:click={() => createToken(mcpCreationMode)}
|
|
256
|
-
disabled={mcpCreationMode && newTokenWorkspace == undefined}
|
|
376
|
+
disabled={mcpCreationMode && (newTokenWorkspace == undefined || (newMcpScope === 'folder' && !selectedFolder))}
|
|
257
377
|
>
|
|
258
378
|
New token
|
|
259
379
|
</Button>
|
|
@@ -261,10 +381,10 @@ async function getAllApps() {
|
|
|
261
381
|
</div>
|
|
262
382
|
|
|
263
383
|
{#if newToken}
|
|
264
|
-
<TokenDisplay token={newToken}
|
|
384
|
+
<TokenDisplay token={newToken} />
|
|
265
385
|
{/if}
|
|
266
386
|
|
|
267
387
|
{#if newMcpToken}
|
|
268
|
-
<TokenDisplay token={newMcpToken}
|
|
388
|
+
<TokenDisplay token={newMcpToken} mcpUrl={`${mcpBaseUrl}${newMcpToken}`} />
|
|
269
389
|
{/if}
|
|
270
390
|
</div>
|
|
@@ -4,26 +4,9 @@ interface Props {
|
|
|
4
4
|
newTokenLabel?: string;
|
|
5
5
|
defaultNewTokenWorkspace?: string;
|
|
6
6
|
scopes?: string[];
|
|
7
|
-
onTokenCreated
|
|
7
|
+
onTokenCreated: (token: string) => void;
|
|
8
8
|
displayCreateToken?: boolean;
|
|
9
9
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
$$bindings?: Bindings;
|
|
13
|
-
} & Exports;
|
|
14
|
-
(internal: unknown, props: Props & {
|
|
15
|
-
$$events?: Events;
|
|
16
|
-
$$slots?: Slots;
|
|
17
|
-
}): Exports & {
|
|
18
|
-
$set?: any;
|
|
19
|
-
$on?: any;
|
|
20
|
-
};
|
|
21
|
-
z_$$bindings?: Bindings;
|
|
22
|
-
}
|
|
23
|
-
declare const CreateToken: $$__sveltets_2_IsomorphicComponent<Props, {
|
|
24
|
-
tokenCreated: CustomEvent<any>;
|
|
25
|
-
} & {
|
|
26
|
-
[evt: string]: CustomEvent<any>;
|
|
27
|
-
}, {}, {}, "newTokenLabel">;
|
|
28
|
-
type CreateToken = InstanceType<typeof CreateToken>;
|
|
10
|
+
declare const CreateToken: import("svelte").Component<Props, {}, "newTokenLabel">;
|
|
11
|
+
type CreateToken = ReturnType<typeof CreateToken>;
|
|
29
12
|
export default CreateToken;
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
<script lang="ts">import { copyToClipboard } from '../../utils';
|
|
2
2
|
import { Clipboard } from 'lucide-svelte';
|
|
3
|
-
import ClipboardPanel from '../details/ClipboardPanel.svelte';
|
|
4
3
|
import Alert from '../common/alert/Alert.svelte';
|
|
5
|
-
let { token,
|
|
4
|
+
let { token, mcpUrl, title, onCopy } = $props();
|
|
6
5
|
function handleCopyClick() {
|
|
7
6
|
copyToClipboard(token);
|
|
8
7
|
onCopy?.();
|
|
9
8
|
}
|
|
10
|
-
const displayTitle = $derived(title || (
|
|
9
|
+
const displayTitle = $derived(title || (mcpUrl ? 'MCP URL Generated Successfully' : 'Token Created Successfully'));
|
|
10
|
+
const label = $derived(mcpUrl ? 'Your MCP Server URL' : 'Your Token');
|
|
11
|
+
const info = $derived(`Make sure to copy your ${mcpUrl ? 'MCP Server URL' : 'personal access token'} now. You won\'t be able to see it again!`);
|
|
12
|
+
const tokenOrUrl = $derived(mcpUrl ? mcpUrl : token);
|
|
11
13
|
const colorScheme = {
|
|
12
14
|
gradient: 'from-blue-50 to-indigo-50 dark:from-blue-900/20 dark:to-indigo-900/20',
|
|
13
15
|
border: 'border-blue-200 dark:border-blue-700',
|
|
@@ -24,7 +26,7 @@ const colorScheme = {
|
|
|
24
26
|
<div class="border rounded-lg mb-6 p-4 bg-gradient-to-r {colorScheme.gradient} {colorScheme.border} shadow-sm">
|
|
25
27
|
<div class="flex items-start gap-3">
|
|
26
28
|
<div class="flex-shrink-0 w-8 h-8 {colorScheme.iconBg} rounded-full flex items-center justify-center mt-0.5">
|
|
27
|
-
{#if
|
|
29
|
+
{#if mcpUrl}
|
|
28
30
|
<svg class="w-4 h-4 {colorScheme.iconColor}" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
29
31
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1"></path>
|
|
30
32
|
</svg>
|
|
@@ -39,24 +41,16 @@ const colorScheme = {
|
|
|
39
41
|
{displayTitle}
|
|
40
42
|
</h4>
|
|
41
43
|
|
|
42
|
-
{#if type === 'mcp' && mcpUrl}
|
|
43
44
|
<div class="space-y-3">
|
|
44
45
|
<div>
|
|
45
46
|
<!-- svelte-ignore a11y_label_has_associated_control -->
|
|
46
|
-
<label class="block text-xs font-medium {colorScheme.labelColor} mb-1">
|
|
47
|
-
|
|
48
|
-
</label>
|
|
49
|
-
<ClipboardPanel content={mcpUrl} />
|
|
50
|
-
</div>
|
|
51
|
-
<div>
|
|
52
|
-
<!-- svelte-ignore a11y_label_has_associated_control -->
|
|
53
|
-
<label class="block text-xs font-medium {colorScheme.labelColor} mb-1">
|
|
54
|
-
Your Token:
|
|
47
|
+
<label class="block text-xs font-medium {colorScheme.labelColor} mb-1 mt-4">
|
|
48
|
+
{label}
|
|
55
49
|
</label>
|
|
56
50
|
<div class="bg-white dark:bg-gray-800 rounded-md p-3 border {colorScheme.border}">
|
|
57
51
|
<div class="flex items-center justify-between gap-2">
|
|
58
52
|
<code class="text-sm font-mono text-gray-800 dark:text-gray-200 break-all flex-1">
|
|
59
|
-
{
|
|
53
|
+
{tokenOrUrl}
|
|
60
54
|
</code>
|
|
61
55
|
<button
|
|
62
56
|
onclick={handleCopyClick}
|
|
@@ -69,35 +63,17 @@ const colorScheme = {
|
|
|
69
63
|
</div>
|
|
70
64
|
</div>
|
|
71
65
|
<Alert type="warning" title="Important" size="xs">
|
|
72
|
-
|
|
73
|
-
</Alert>
|
|
74
|
-
<div class="{colorScheme.infoBg} rounded-md p-2 border {colorScheme.infoBorder}">
|
|
75
|
-
<p class="text-xs {colorScheme.infoText}">
|
|
76
|
-
<strong>Next steps:</strong> Use this URL in your MCP-compatible client (like Claude Desktop) to access your Windmill scripts and flows as tools.
|
|
77
|
-
</p>
|
|
78
|
-
</div>
|
|
79
|
-
</div>
|
|
80
|
-
{:else}
|
|
81
|
-
<div class="bg-white dark:bg-gray-800 rounded-md p-3 border {colorScheme.border}">
|
|
82
|
-
<div class="flex items-center justify-between gap-2">
|
|
83
|
-
<code class="text-sm font-mono text-gray-800 dark:text-gray-200 break-all flex-1">
|
|
84
|
-
{token}
|
|
85
|
-
</code>
|
|
86
|
-
<button
|
|
87
|
-
onclick={handleCopyClick}
|
|
88
|
-
class="flex-shrink-0 p-1.5 text-gray-500 hover:text-gray-400 dark:hover:text-gray-200 hover:bg-gray-100 dark:hover:bg-gray-700 rounded transition-colors"
|
|
89
|
-
title="Copy token"
|
|
90
|
-
>
|
|
91
|
-
<Clipboard size={16} />
|
|
92
|
-
</button>
|
|
93
|
-
</div>
|
|
94
|
-
</div>
|
|
95
|
-
<div class="mt-3">
|
|
96
|
-
<Alert type="warning" title="Important" size="xs">
|
|
97
|
-
Make sure to copy your personal access token now. You won't be able to see it again!
|
|
66
|
+
{info}
|
|
98
67
|
</Alert>
|
|
68
|
+
{#if mcpUrl}
|
|
69
|
+
<div class="{colorScheme.infoBg} rounded-md p-2 border {colorScheme.infoBorder}">
|
|
70
|
+
<p class="text-xs {colorScheme.infoText}">
|
|
71
|
+
<strong>Next steps:</strong> Use this URL in your MCP-compatible client (like Claude Desktop) to access your Windmill scripts and flows as tools.
|
|
72
|
+
</p>
|
|
73
|
+
</div>
|
|
74
|
+
{/if}
|
|
99
75
|
</div>
|
|
100
|
-
|
|
76
|
+
|
|
101
77
|
</div>
|
|
102
78
|
</div>
|
|
103
79
|
</div>
|
|
@@ -1,20 +1,18 @@
|
|
|
1
1
|
<script lang="ts">import TableCustom from '../TableCustom.svelte';
|
|
2
2
|
import { displayDate } from '../../utils';
|
|
3
3
|
import { UserService } from '../../gen';
|
|
4
|
-
import { createEventDispatcher } from 'svelte';
|
|
5
4
|
import { sendUserToast } from '../../toast';
|
|
6
5
|
import CreateToken from './CreateToken.svelte';
|
|
7
|
-
let { showMcpMode = false, openWithMcpMode = false, defaultNewTokenLabel, defaultNewTokenWorkspace, scopes } = $props();
|
|
6
|
+
let { showMcpMode = false, openWithMcpMode = false, defaultNewTokenLabel, defaultNewTokenWorkspace, scopes, onTokenCreated } = $props();
|
|
8
7
|
// --- Local State ---
|
|
9
8
|
let tokens = $state([]);
|
|
10
9
|
let tokenPage = $state(1);
|
|
11
10
|
let newTokenLabel = $state(defaultNewTokenLabel);
|
|
12
|
-
const dispatch = createEventDispatcher();
|
|
13
11
|
$effect(() => {
|
|
14
12
|
listTokens();
|
|
15
13
|
});
|
|
16
14
|
function handleTokenCreated(token) {
|
|
17
|
-
|
|
15
|
+
onTokenCreated(token);
|
|
18
16
|
listTokens();
|
|
19
17
|
}
|
|
20
18
|
async function handleDeleteClick(tokenPrefix) {
|