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
|
@@ -1,355 +0,0 @@
|
|
|
1
|
-
<script lang="ts">import { Button } from './common';
|
|
2
|
-
import Popover from './meltComponents/Popover.svelte';
|
|
3
|
-
import { Loader2, Eye, Save, CheckCircle2, XCircle, DownloadCloud, AlertTriangle, Terminal, ChevronDown, ChevronUp } from 'lucide-svelte';
|
|
4
|
-
import { workspaceStore } from '../stores';
|
|
5
|
-
import hubPaths from '../hubPaths.json';
|
|
6
|
-
import { JobService } from '../gen';
|
|
7
|
-
import { tryEvery } from '../utils';
|
|
8
|
-
import { sendUserToast } from '../toast';
|
|
9
|
-
import GitDiffPreview from './GitDiffPreview.svelte';
|
|
10
|
-
import { page } from '$app/stores';
|
|
11
|
-
let { gitRepoResourcePath, uiState, onFilterUpdate } = $props();
|
|
12
|
-
let previewResult = $state(undefined);
|
|
13
|
-
let isPreviewLoading = $state(false);
|
|
14
|
-
let isPulling = $state(false);
|
|
15
|
-
let pullGitRepoPopover = $state(null);
|
|
16
|
-
let jobStatus = $state({
|
|
17
|
-
id: null,
|
|
18
|
-
status: undefined,
|
|
19
|
-
type: 'preview'
|
|
20
|
-
});
|
|
21
|
-
let isCliInfoExpanded = $state(false);
|
|
22
|
-
async function handleJobCompletion(jobId, workspace) {
|
|
23
|
-
let success = false;
|
|
24
|
-
await tryEvery({
|
|
25
|
-
tryCode: async () => {
|
|
26
|
-
const result = await JobService.getCompletedJob({
|
|
27
|
-
workspace,
|
|
28
|
-
id: jobId
|
|
29
|
-
});
|
|
30
|
-
success = !!result.success;
|
|
31
|
-
},
|
|
32
|
-
timeoutCode: async () => {
|
|
33
|
-
try {
|
|
34
|
-
await JobService.cancelQueuedJob({
|
|
35
|
-
workspace,
|
|
36
|
-
id: jobId,
|
|
37
|
-
requestBody: {
|
|
38
|
-
reason: 'Job timed out after 5s'
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
catch (err) {
|
|
43
|
-
console.error(err);
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
interval: 500,
|
|
47
|
-
timeout: 10000
|
|
48
|
-
});
|
|
49
|
-
return success;
|
|
50
|
-
}
|
|
51
|
-
async function previewChanges() {
|
|
52
|
-
const workspace = $workspaceStore;
|
|
53
|
-
if (!workspace)
|
|
54
|
-
return;
|
|
55
|
-
console.log('Previewing changes for repo:', gitRepoResourcePath);
|
|
56
|
-
isPreviewLoading = true;
|
|
57
|
-
jobStatus = { id: null, status: undefined, type: 'preview' };
|
|
58
|
-
try {
|
|
59
|
-
// Always use the simplified JSON approach
|
|
60
|
-
const jobId = await JobService.runScriptByPath({
|
|
61
|
-
workspace,
|
|
62
|
-
path: hubPaths.gitInitRepo,
|
|
63
|
-
requestBody: {
|
|
64
|
-
workspace_id: workspace,
|
|
65
|
-
repo_url_resource_path: gitRepoResourcePath,
|
|
66
|
-
dry_run: true,
|
|
67
|
-
pull: true,
|
|
68
|
-
only_wmill_yaml: false,
|
|
69
|
-
settings_json: JSON.stringify(uiState)
|
|
70
|
-
},
|
|
71
|
-
skipPreprocessor: true
|
|
72
|
-
});
|
|
73
|
-
jobStatus = { id: jobId, status: 'running', type: 'preview' };
|
|
74
|
-
const success = await handleJobCompletion(jobId, workspace);
|
|
75
|
-
if (success) {
|
|
76
|
-
const rawResult = await JobService.getCompletedJobResult({ workspace, id: jobId });
|
|
77
|
-
console.log('Preview result:', rawResult);
|
|
78
|
-
// Convert new CLI format to expected format
|
|
79
|
-
const added = [];
|
|
80
|
-
const deleted = [];
|
|
81
|
-
const modified = [];
|
|
82
|
-
if (rawResult &&
|
|
83
|
-
rawResult.changes &&
|
|
84
|
-
Array.isArray(rawResult.changes)) {
|
|
85
|
-
for (const change of rawResult.changes) {
|
|
86
|
-
if (change.type === 'added') {
|
|
87
|
-
added.push(change.path);
|
|
88
|
-
}
|
|
89
|
-
else if (change.type === 'deleted') {
|
|
90
|
-
deleted.push(change.path);
|
|
91
|
-
}
|
|
92
|
-
else if (change.type === 'modified') {
|
|
93
|
-
modified.push(change.path);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
// For full sync mode, just use the CLI results directly
|
|
98
|
-
// The CLI already handles wmill.yaml changes with --include-wmill-yaml flag
|
|
99
|
-
previewResult = { added, deleted, modified };
|
|
100
|
-
jobStatus.status = 'success';
|
|
101
|
-
}
|
|
102
|
-
else {
|
|
103
|
-
previewResult = undefined;
|
|
104
|
-
jobStatus.status = 'failure';
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
catch (error) {
|
|
108
|
-
console.error('Failed to preview changes:', error);
|
|
109
|
-
previewResult = undefined;
|
|
110
|
-
jobStatus = {
|
|
111
|
-
...jobStatus,
|
|
112
|
-
status: 'failure',
|
|
113
|
-
error: error instanceof Error ? error.message : String(error)
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
finally {
|
|
117
|
-
isPreviewLoading = false;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
async function pullFromRepo() {
|
|
121
|
-
const workspace = $workspaceStore;
|
|
122
|
-
if (!workspace)
|
|
123
|
-
return;
|
|
124
|
-
console.log('Pulling from repo:', gitRepoResourcePath);
|
|
125
|
-
isPulling = true;
|
|
126
|
-
jobStatus = { id: null, status: undefined, type: 'pull' };
|
|
127
|
-
try {
|
|
128
|
-
// Use init git repo script with dry_run: false (actual pull operation)
|
|
129
|
-
// The script will read wmill.yaml directly from the cloned repo, no need to pass settings
|
|
130
|
-
const jobId = await JobService.runScriptByPath({
|
|
131
|
-
workspace,
|
|
132
|
-
path: hubPaths.gitInitRepo,
|
|
133
|
-
requestBody: {
|
|
134
|
-
workspace_id: workspace,
|
|
135
|
-
repo_url_resource_path: gitRepoResourcePath,
|
|
136
|
-
dry_run: false,
|
|
137
|
-
branch_to_push: '',
|
|
138
|
-
only_wmill_yaml: false,
|
|
139
|
-
pull: true,
|
|
140
|
-
settings_json: undefined // Let script use wmill.yaml from repo
|
|
141
|
-
},
|
|
142
|
-
skipPreprocessor: true
|
|
143
|
-
});
|
|
144
|
-
jobStatus = { id: jobId, status: 'running', type: 'pull' };
|
|
145
|
-
const success = await handleJobCompletion(jobId, workspace);
|
|
146
|
-
jobStatus.status = success ? 'success' : 'failure';
|
|
147
|
-
if (success) {
|
|
148
|
-
// Get the result which should contain the local git repo settings as JSON
|
|
149
|
-
const result = (await JobService.getCompletedJobResult({ workspace, id: jobId }));
|
|
150
|
-
console.log('Pull result:', result);
|
|
151
|
-
// Apply the settings from the sync operation result to the UI
|
|
152
|
-
if (result?.settings_json) {
|
|
153
|
-
// Directly update the UI state with the JSON result - no YAML conversion needed!
|
|
154
|
-
const settingsJson = result.settings_json;
|
|
155
|
-
onFilterUpdate({
|
|
156
|
-
include_path: settingsJson.include_path || ['f/**'],
|
|
157
|
-
exclude_path: settingsJson.exclude_path || [],
|
|
158
|
-
extra_include_path: settingsJson.extra_include_path || [],
|
|
159
|
-
include_type: settingsJson.include_type || ['script', 'flow', 'app', 'folder']
|
|
160
|
-
});
|
|
161
|
-
sendUserToast('Successfully pulled workspace content from repository');
|
|
162
|
-
// Reset popover state after successful pull
|
|
163
|
-
previewResult = undefined;
|
|
164
|
-
jobStatus = { id: null, status: undefined, type: 'preview' };
|
|
165
|
-
pullGitRepoPopover?.close();
|
|
166
|
-
}
|
|
167
|
-
else {
|
|
168
|
-
console.warn('No settings_json returned from pull operation');
|
|
169
|
-
sendUserToast('Pull completed but could not update filter settings', true);
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
catch (error) {
|
|
174
|
-
console.error('Failed to pull from repo:', error);
|
|
175
|
-
jobStatus = {
|
|
176
|
-
...jobStatus,
|
|
177
|
-
status: 'failure',
|
|
178
|
-
error: error instanceof Error ? error.message : String(error)
|
|
179
|
-
};
|
|
180
|
-
}
|
|
181
|
-
finally {
|
|
182
|
-
isPulling = false;
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
</script>
|
|
186
|
-
|
|
187
|
-
<Popover
|
|
188
|
-
bind:this={pullGitRepoPopover}
|
|
189
|
-
floatingConfig={{
|
|
190
|
-
placement: 'top-start',
|
|
191
|
-
strategy: 'fixed',
|
|
192
|
-
flip: false,
|
|
193
|
-
shift: true
|
|
194
|
-
}}
|
|
195
|
-
contentClasses="p-4 w-1/3"
|
|
196
|
-
>
|
|
197
|
-
<svelte:fragment slot="trigger">
|
|
198
|
-
<Button
|
|
199
|
-
color="dark"
|
|
200
|
-
size="sm"
|
|
201
|
-
nonCaptureEvent
|
|
202
|
-
onclick={pullGitRepoPopover?.open}
|
|
203
|
-
startIcon={{ icon: DownloadCloud }}
|
|
204
|
-
>
|
|
205
|
-
Pull workspace from Git repo
|
|
206
|
-
</Button>
|
|
207
|
-
</svelte:fragment>
|
|
208
|
-
|
|
209
|
-
<svelte:fragment slot="content" let:close>
|
|
210
|
-
<div class="flex flex-col gap-4">
|
|
211
|
-
<div class="flex flex-col gap-2">
|
|
212
|
-
<h3 class="text-lg font-semibold">Pull workspace from Git repository</h3>
|
|
213
|
-
<div class="prose max-w-none text-2xs text-tertiary">
|
|
214
|
-
This action will pull all workspace objects from your Git repository according to the
|
|
215
|
-
filters set in the Git repository wmill.yaml file and apply those filter settings to the
|
|
216
|
-
workspace.
|
|
217
|
-
<span class="text-orange-600 flex items-center gap-1">
|
|
218
|
-
<AlertTriangle size={14} /> This will overwrite your current workspace content and Git sync
|
|
219
|
-
filter settings with the content from the Git repository.
|
|
220
|
-
</span>
|
|
221
|
-
|
|
222
|
-
<!-- Collapsible CLI Info Section -->
|
|
223
|
-
<div class="mt-2 border rounded-md">
|
|
224
|
-
<button
|
|
225
|
-
class="w-full flex items-center justify-between p-1.5 bg-surface-secondary hover:bg-surface-hover"
|
|
226
|
-
onclick={() => (isCliInfoExpanded = !isCliInfoExpanded)}
|
|
227
|
-
>
|
|
228
|
-
<span class="font-medium flex items-center gap-2">
|
|
229
|
-
<Terminal size={14} />
|
|
230
|
-
Windmill CLI to push local files to Windmill
|
|
231
|
-
</span>
|
|
232
|
-
{#if isCliInfoExpanded}
|
|
233
|
-
<ChevronUp size={16} />
|
|
234
|
-
{:else}
|
|
235
|
-
<ChevronDown size={16} />
|
|
236
|
-
{/if}
|
|
237
|
-
</button>
|
|
238
|
-
|
|
239
|
-
{#if isCliInfoExpanded}
|
|
240
|
-
<div class="p-1 bg-surface-tertiary">
|
|
241
|
-
<div class="text-2xs mb-2">
|
|
242
|
-
Not familiar with Windmill CLI? <a
|
|
243
|
-
href="https://www.windmill.dev/docs/advanced/cli/sync"
|
|
244
|
-
class="text-blue-500 hover:text-blue-600 underline"
|
|
245
|
-
target="_blank"
|
|
246
|
-
rel="noopener noreferrer">Check out the docs</a
|
|
247
|
-
>
|
|
248
|
-
</div>
|
|
249
|
-
<div class="font-mono text-2xs">
|
|
250
|
-
<pre class="overflow-auto max-h-60"
|
|
251
|
-
><code
|
|
252
|
-
>npm install -g windmill-cli
|
|
253
|
-
# Clone your git repository
|
|
254
|
-
git clone $REPO_URL
|
|
255
|
-
cd $REPO_NAME
|
|
256
|
-
# Configure Windmill CLI
|
|
257
|
-
wmill workspace add {$workspaceStore} {$workspaceStore} {`${$page.url.protocol}//${$page.url.hostname}/`}
|
|
258
|
-
# Push the content to Windmill
|
|
259
|
-
wmill sync push --yes
|
|
260
|
-
# Optional: add --skip-secrets --skip-variables --skip-resources flags as needed</code
|
|
261
|
-
></pre
|
|
262
|
-
>
|
|
263
|
-
</div>
|
|
264
|
-
</div>
|
|
265
|
-
{/if}
|
|
266
|
-
</div>
|
|
267
|
-
</div>
|
|
268
|
-
</div>
|
|
269
|
-
|
|
270
|
-
{#if previewResult}
|
|
271
|
-
<GitDiffPreview {previewResult} />
|
|
272
|
-
{/if}
|
|
273
|
-
|
|
274
|
-
{#if jobStatus.id}
|
|
275
|
-
<div class="flex items-center gap-2 text-xs text-tertiary">
|
|
276
|
-
{#if jobStatus.status === 'running'}
|
|
277
|
-
<Loader2 class="animate-spin" size={14} />
|
|
278
|
-
{:else if jobStatus.status === 'success'}
|
|
279
|
-
<CheckCircle2 size={14} class="text-green-600" />
|
|
280
|
-
{:else if jobStatus.status === 'failure'}
|
|
281
|
-
<XCircle size={14} class="text-red-700" />
|
|
282
|
-
{/if}
|
|
283
|
-
{jobStatus.type === 'preview' ? 'Preview' : 'Pull'} job:
|
|
284
|
-
<a
|
|
285
|
-
target="_blank"
|
|
286
|
-
class="underline"
|
|
287
|
-
href={`/run/${jobStatus.id}?workspace=${$workspaceStore}`}
|
|
288
|
-
>
|
|
289
|
-
{jobStatus.id}
|
|
290
|
-
</a>
|
|
291
|
-
</div>
|
|
292
|
-
{#if jobStatus.error}
|
|
293
|
-
<div class="text-xs text-red-600">{jobStatus.error}</div>
|
|
294
|
-
{/if}
|
|
295
|
-
{/if}
|
|
296
|
-
|
|
297
|
-
<div class="flex justify-between items-center mt-4">
|
|
298
|
-
<Button
|
|
299
|
-
color="light"
|
|
300
|
-
size="xs"
|
|
301
|
-
on:click={() => {
|
|
302
|
-
previewResult = undefined
|
|
303
|
-
jobStatus = { id: null, status: undefined, type: 'preview' }
|
|
304
|
-
close()
|
|
305
|
-
}}
|
|
306
|
-
disabled={isPreviewLoading || isPulling}
|
|
307
|
-
>
|
|
308
|
-
Cancel
|
|
309
|
-
</Button>
|
|
310
|
-
<div class="flex gap-2">
|
|
311
|
-
{#if !previewResult}
|
|
312
|
-
<Button
|
|
313
|
-
size="xs"
|
|
314
|
-
on:click={previewChanges}
|
|
315
|
-
disabled={isPreviewLoading || isPulling}
|
|
316
|
-
startIcon={{
|
|
317
|
-
icon: isPreviewLoading ? Loader2 : Eye,
|
|
318
|
-
classes: isPreviewLoading ? 'animate-spin' : ''
|
|
319
|
-
}}
|
|
320
|
-
>
|
|
321
|
-
Preview
|
|
322
|
-
</Button>
|
|
323
|
-
{:else}
|
|
324
|
-
<Button
|
|
325
|
-
size="xs"
|
|
326
|
-
on:click={previewChanges}
|
|
327
|
-
disabled={isPreviewLoading || isPulling}
|
|
328
|
-
startIcon={{
|
|
329
|
-
icon: isPreviewLoading ? Loader2 : Eye,
|
|
330
|
-
classes: isPreviewLoading ? 'animate-spin' : ''
|
|
331
|
-
}}
|
|
332
|
-
title="Preview changes again"
|
|
333
|
-
>
|
|
334
|
-
Preview
|
|
335
|
-
</Button>
|
|
336
|
-
{#if previewResult.added?.length || previewResult.deleted?.length || previewResult.modified?.length}
|
|
337
|
-
<Button
|
|
338
|
-
color="red"
|
|
339
|
-
size="xs"
|
|
340
|
-
on:click={pullFromRepo}
|
|
341
|
-
disabled={isPreviewLoading || isPulling}
|
|
342
|
-
startIcon={{
|
|
343
|
-
icon: isPulling ? Loader2 : Save,
|
|
344
|
-
classes: isPulling ? 'animate-spin' : ''
|
|
345
|
-
}}
|
|
346
|
-
>
|
|
347
|
-
{isPulling ? 'Pulling...' : 'Pull'}
|
|
348
|
-
</Button>
|
|
349
|
-
{/if}
|
|
350
|
-
{/if}
|
|
351
|
-
</div>
|
|
352
|
-
</div>
|
|
353
|
-
</div>
|
|
354
|
-
</svelte:fragment>
|
|
355
|
-
</Popover>
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
type $$ComponentProps = {
|
|
2
|
-
gitRepoResourcePath: string;
|
|
3
|
-
uiState: {
|
|
4
|
-
include_path: string[];
|
|
5
|
-
exclude_path: string[];
|
|
6
|
-
extra_include_path: string[];
|
|
7
|
-
include_type: string[];
|
|
8
|
-
};
|
|
9
|
-
onFilterUpdate: (filters: {
|
|
10
|
-
include_path: string[];
|
|
11
|
-
exclude_path: string[];
|
|
12
|
-
extra_include_path: string[];
|
|
13
|
-
include_type: string[];
|
|
14
|
-
}) => void;
|
|
15
|
-
};
|
|
16
|
-
declare const PullGitRepoPopover: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
17
|
-
type PullGitRepoPopover = ReturnType<typeof PullGitRepoPopover>;
|
|
18
|
-
export default PullGitRepoPopover;
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import type { ChatCompletionTool } from 'openai/resources/index.mjs';
|
|
2
|
-
import type { Tool } from '../shared';
|
|
3
|
-
interface OpenAPIParameter {
|
|
4
|
-
name: string;
|
|
5
|
-
in: string;
|
|
6
|
-
description?: string;
|
|
7
|
-
required?: boolean;
|
|
8
|
-
schema?: {
|
|
9
|
-
type?: string;
|
|
10
|
-
format?: string;
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
interface OpenAPIRequestBody {
|
|
14
|
-
description?: string;
|
|
15
|
-
required?: boolean;
|
|
16
|
-
content: {
|
|
17
|
-
[contentType: string]: {
|
|
18
|
-
schema: {
|
|
19
|
-
type?: string;
|
|
20
|
-
properties?: Record<string, any>;
|
|
21
|
-
};
|
|
22
|
-
};
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
interface OpenAPIOperation {
|
|
26
|
-
operationId?: string;
|
|
27
|
-
summary?: string;
|
|
28
|
-
description?: string;
|
|
29
|
-
parameters?: OpenAPIParameter[];
|
|
30
|
-
requestBody?: OpenAPIRequestBody;
|
|
31
|
-
responses?: Record<string, any>;
|
|
32
|
-
tags?: string[];
|
|
33
|
-
}
|
|
34
|
-
interface OpenAPIPathItem {
|
|
35
|
-
get?: OpenAPIOperation;
|
|
36
|
-
post?: OpenAPIOperation;
|
|
37
|
-
put?: OpenAPIOperation;
|
|
38
|
-
delete?: OpenAPIOperation;
|
|
39
|
-
patch?: OpenAPIOperation;
|
|
40
|
-
options?: OpenAPIOperation;
|
|
41
|
-
parameters?: OpenAPIParameter[];
|
|
42
|
-
summary?: string;
|
|
43
|
-
description?: string;
|
|
44
|
-
}
|
|
45
|
-
interface OpenAPISpec {
|
|
46
|
-
paths: {
|
|
47
|
-
[path: string]: OpenAPIPathItem;
|
|
48
|
-
};
|
|
49
|
-
components?: {
|
|
50
|
-
parameters?: {
|
|
51
|
-
[name: string]: OpenAPIParameter;
|
|
52
|
-
};
|
|
53
|
-
schemas?: {
|
|
54
|
-
[name: string]: any;
|
|
55
|
-
};
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
export declare function buildToolsFromOpenApi(openApiSpec: OpenAPISpec, options?: {
|
|
59
|
-
pathFilter?: (path: string) => boolean;
|
|
60
|
-
operationFilter?: (operation: OpenAPIOperation) => boolean;
|
|
61
|
-
methodFilter?: string[];
|
|
62
|
-
}): {
|
|
63
|
-
tools: ChatCompletionTool[];
|
|
64
|
-
endpointMap: Record<string, string>;
|
|
65
|
-
};
|
|
66
|
-
export declare function createApiTools(chatTools: ChatCompletionTool[], endpointMap?: Record<string, string>): Tool<{}>[];
|
|
67
|
-
export declare function loadApiTools(): Promise<Tool<{}>[]>;
|
|
68
|
-
export {};
|
|
@@ -1,258 +0,0 @@
|
|
|
1
|
-
import { get } from 'svelte/store';
|
|
2
|
-
import { workspaceStore, enterpriseLicense } from '../../../../stores';
|
|
3
|
-
/**
|
|
4
|
-
* Dereferences parameter $ref references in an OpenAPI spec
|
|
5
|
-
* Only resolves parameter references, not schemas or other components
|
|
6
|
-
*/
|
|
7
|
-
function dereferenceParameters(spec) {
|
|
8
|
-
if (!spec.components?.parameters) {
|
|
9
|
-
return spec;
|
|
10
|
-
}
|
|
11
|
-
const resolveParameterRef = (paramRef) => {
|
|
12
|
-
if (paramRef.$ref) {
|
|
13
|
-
// Extract parameter name from $ref (e.g., "#/components/parameters/WorkspaceId" -> "WorkspaceId")
|
|
14
|
-
const refPath = paramRef.$ref.split('/');
|
|
15
|
-
if (refPath.length >= 4 && refPath[1] === 'components' && refPath[2] === 'parameters') {
|
|
16
|
-
const paramName = refPath[3];
|
|
17
|
-
const resolvedParam = spec.components?.parameters?.[paramName];
|
|
18
|
-
if (resolvedParam) {
|
|
19
|
-
return resolvedParam;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
console.warn(`Could not resolve parameter reference: ${paramRef.$ref}`);
|
|
23
|
-
return paramRef;
|
|
24
|
-
}
|
|
25
|
-
return paramRef;
|
|
26
|
-
};
|
|
27
|
-
const processParameters = (parameters) => {
|
|
28
|
-
return parameters.map(resolveParameterRef);
|
|
29
|
-
};
|
|
30
|
-
const dereferencedSpec = {
|
|
31
|
-
...spec,
|
|
32
|
-
paths: {}
|
|
33
|
-
};
|
|
34
|
-
// Process each path
|
|
35
|
-
for (const [pathKey, pathItem] of Object.entries(spec.paths)) {
|
|
36
|
-
const newPathItem = { ...pathItem };
|
|
37
|
-
// Dereference path-level parameters
|
|
38
|
-
if (pathItem.parameters) {
|
|
39
|
-
newPathItem.parameters = processParameters(pathItem.parameters);
|
|
40
|
-
}
|
|
41
|
-
// Dereference operation-level parameters
|
|
42
|
-
const methods = ['get', 'post', 'put', 'delete', 'patch', 'options'];
|
|
43
|
-
for (const method of methods) {
|
|
44
|
-
const operation = pathItem[method];
|
|
45
|
-
if (operation?.parameters) {
|
|
46
|
-
newPathItem[method] = {
|
|
47
|
-
...operation,
|
|
48
|
-
parameters: processParameters(operation.parameters)
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
dereferencedSpec.paths[pathKey] = newPathItem;
|
|
53
|
-
}
|
|
54
|
-
return dereferencedSpec;
|
|
55
|
-
}
|
|
56
|
-
const buildApiCallTools = (name, description, parameters) => {
|
|
57
|
-
return {
|
|
58
|
-
type: 'function',
|
|
59
|
-
function: {
|
|
60
|
-
name,
|
|
61
|
-
description,
|
|
62
|
-
parameters
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
};
|
|
66
|
-
export function buildToolsFromOpenApi(openApiSpec, options = {}) {
|
|
67
|
-
const tools = [];
|
|
68
|
-
const endpointMap = {};
|
|
69
|
-
const { pathFilter, methodFilter = ['get', 'post', 'put', 'delete', 'patch'] } = options;
|
|
70
|
-
// Iterate through all paths in the OpenAPI spec
|
|
71
|
-
for (const [path, pathItem] of Object.entries(openApiSpec.paths)) {
|
|
72
|
-
if (pathFilter && !pathFilter(path))
|
|
73
|
-
continue;
|
|
74
|
-
for (const [method, operation] of Object.entries(pathItem)) {
|
|
75
|
-
// Skip non-operation properties
|
|
76
|
-
if (method === 'parameters' ||
|
|
77
|
-
method === 'servers' ||
|
|
78
|
-
method === 'summary' ||
|
|
79
|
-
method === 'description')
|
|
80
|
-
continue;
|
|
81
|
-
// Skip methods not in methodFilter
|
|
82
|
-
if (!methodFilter.includes(method.toLowerCase()))
|
|
83
|
-
continue;
|
|
84
|
-
// Type cast to OpenAPIOperation
|
|
85
|
-
const op = operation;
|
|
86
|
-
if (!op.operationId || !op.summary) {
|
|
87
|
-
console.error(`Operation ${method} ${path} has no operationId or summary`);
|
|
88
|
-
continue;
|
|
89
|
-
}
|
|
90
|
-
// Build the parameters schema
|
|
91
|
-
const parameters = {
|
|
92
|
-
type: 'object',
|
|
93
|
-
properties: {},
|
|
94
|
-
required: []
|
|
95
|
-
};
|
|
96
|
-
// Process path parameters
|
|
97
|
-
const pathParams = [...(pathItem.parameters || []), ...(op.parameters || [])].filter((p) => p.in === 'path');
|
|
98
|
-
// Process query parameters
|
|
99
|
-
const queryParams = (op.parameters || []).filter((p) => p.in === 'query');
|
|
100
|
-
// Add path parameters
|
|
101
|
-
for (const param of pathParams) {
|
|
102
|
-
if (param.name === 'workspace') {
|
|
103
|
-
continue;
|
|
104
|
-
}
|
|
105
|
-
parameters.properties[param.name] = {
|
|
106
|
-
type: param.schema?.type || 'string',
|
|
107
|
-
description: param.description || `Path parameter: ${param.name}`
|
|
108
|
-
};
|
|
109
|
-
if (param.required) {
|
|
110
|
-
parameters.required.push(param.name);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
// Add query parameters
|
|
114
|
-
for (const param of queryParams) {
|
|
115
|
-
parameters.properties[param.name] = {
|
|
116
|
-
type: param.schema?.type || 'string',
|
|
117
|
-
description: param.description || `Query parameter: ${param.name}`
|
|
118
|
-
};
|
|
119
|
-
if (param.required) {
|
|
120
|
-
parameters.required.push(param.name);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
// Handle request body if present
|
|
124
|
-
if (op.requestBody) {
|
|
125
|
-
const contentType = Object.keys(op.requestBody.content || {})[0];
|
|
126
|
-
if (contentType) {
|
|
127
|
-
const schema = op.requestBody.content[contentType].schema;
|
|
128
|
-
if (schema) {
|
|
129
|
-
parameters.properties.body = {
|
|
130
|
-
type: 'object',
|
|
131
|
-
description: op.requestBody.description || 'Request body',
|
|
132
|
-
properties: schema.properties || {}
|
|
133
|
-
};
|
|
134
|
-
if (op.requestBody.required) {
|
|
135
|
-
parameters.required.push('body');
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
const tool = buildApiCallTools('api_' + op.operationId.replace(/\s+/g, ''), op.summary || op.description || `${method.toUpperCase()} ${path}`, parameters);
|
|
141
|
-
// Store the endpoint path in the map
|
|
142
|
-
endpointMap['api_' + op.operationId.replace(/\s+/g, '')] = `${method.toUpperCase()} ${path}`;
|
|
143
|
-
tools.push(tool);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
return { tools, endpointMap };
|
|
147
|
-
}
|
|
148
|
-
export function createApiTools(chatTools, endpointMap = {}) {
|
|
149
|
-
return chatTools.map((chatTool) => {
|
|
150
|
-
return {
|
|
151
|
-
def: chatTool,
|
|
152
|
-
fn: async ({ args, toolId, toolCallbacks }) => {
|
|
153
|
-
const toolName = chatTool.function.name;
|
|
154
|
-
let endpoint = endpointMap[toolName] || '';
|
|
155
|
-
endpoint = endpoint.replace('{workspace}', get(workspaceStore));
|
|
156
|
-
try {
|
|
157
|
-
// Extract method and path from endpoint
|
|
158
|
-
const [method, path] = endpoint.split(' ', 2);
|
|
159
|
-
if (!endpoint || !method || !path) {
|
|
160
|
-
throw new Error(`Invalid endpoint for tool ${toolName}: ${endpoint}`);
|
|
161
|
-
}
|
|
162
|
-
// Build URL with path parameters
|
|
163
|
-
let url = `/api${path}`;
|
|
164
|
-
const queryParams = {};
|
|
165
|
-
// Process arguments
|
|
166
|
-
for (const [key, value] of Object.entries(args)) {
|
|
167
|
-
if (key === 'body')
|
|
168
|
-
continue; // Body is handled separately
|
|
169
|
-
// Check if this is a path parameter
|
|
170
|
-
if (url.includes(`{${key}}`)) {
|
|
171
|
-
url = url.replace(`{${key}}`, encodeURIComponent(String(value)));
|
|
172
|
-
}
|
|
173
|
-
else {
|
|
174
|
-
// Assume it's a query parameter
|
|
175
|
-
queryParams[key] = String(value);
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
// Add query parameters to URL if needed
|
|
179
|
-
if (Object.keys(queryParams).length > 0) {
|
|
180
|
-
const searchParams = new URLSearchParams();
|
|
181
|
-
for (const [key, value] of Object.entries(queryParams)) {
|
|
182
|
-
searchParams.append(key, value);
|
|
183
|
-
}
|
|
184
|
-
url += `?${searchParams.toString()}`;
|
|
185
|
-
}
|
|
186
|
-
// Log the constructed URL
|
|
187
|
-
console.log(`Calling API: ${method} ${url} with args: ${JSON.stringify(args)}`);
|
|
188
|
-
toolCallbacks.setToolStatus(toolId, `Calling API endpoint (${url})...`);
|
|
189
|
-
const response = await fetch(url, {
|
|
190
|
-
method: method
|
|
191
|
-
});
|
|
192
|
-
if (response.ok) {
|
|
193
|
-
let result = '';
|
|
194
|
-
if (response.headers.get('content-type')?.includes('application/json')) {
|
|
195
|
-
result = await response.json();
|
|
196
|
-
}
|
|
197
|
-
else {
|
|
198
|
-
result = await response.text();
|
|
199
|
-
}
|
|
200
|
-
toolCallbacks.setToolStatus(toolId, `API call to ${url} completed`);
|
|
201
|
-
return JSON.stringify({
|
|
202
|
-
success: true,
|
|
203
|
-
data: result
|
|
204
|
-
});
|
|
205
|
-
}
|
|
206
|
-
else {
|
|
207
|
-
const text = await response.text();
|
|
208
|
-
toolCallbacks.setToolStatus(toolId, `API call to ${url} failed`);
|
|
209
|
-
return JSON.stringify({
|
|
210
|
-
success: false,
|
|
211
|
-
data: text
|
|
212
|
-
});
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
catch (error) {
|
|
216
|
-
toolCallbacks.setToolStatus(toolId, `API call to ${endpoint} failed`);
|
|
217
|
-
console.error(`Error calling API to ${endpoint}:`, error);
|
|
218
|
-
return `Error calling API: ${error instanceof Error ? error.message : String(error)}`;
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
};
|
|
222
|
-
});
|
|
223
|
-
}
|
|
224
|
-
export async function loadApiTools() {
|
|
225
|
-
try {
|
|
226
|
-
const response = await fetch('/api/openapi.json');
|
|
227
|
-
const rawOpenApiSpec = (await response.json());
|
|
228
|
-
// Dereference parameter references
|
|
229
|
-
const openApiSpec = dereferenceParameters(rawOpenApiSpec);
|
|
230
|
-
const pathsToInclude = [
|
|
231
|
-
'jobs',
|
|
232
|
-
'jobs_u',
|
|
233
|
-
'scripts',
|
|
234
|
-
'flows',
|
|
235
|
-
'resources',
|
|
236
|
-
'variables',
|
|
237
|
-
'schedules',
|
|
238
|
-
'workers'
|
|
239
|
-
];
|
|
240
|
-
// call srch endpoint to check if it's available
|
|
241
|
-
if (get(enterpriseLicense)) {
|
|
242
|
-
const srchResponse = await fetch(`/api/srch/index/search/enabled`);
|
|
243
|
-
if (srchResponse.ok) {
|
|
244
|
-
pathsToInclude.push('srch/w'); // job search
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
const { tools: apiTools, endpointMap } = buildToolsFromOpenApi(openApiSpec, {
|
|
248
|
-
pathFilter: (path) => pathsToInclude.some((p) => path.includes(`/${p}/`)),
|
|
249
|
-
methodFilter: ['get']
|
|
250
|
-
});
|
|
251
|
-
const executableApiTools = createApiTools(apiTools, endpointMap);
|
|
252
|
-
return executableApiTools;
|
|
253
|
-
}
|
|
254
|
-
catch (error) {
|
|
255
|
-
console.error('Failed to load API tools:', error);
|
|
256
|
-
return [];
|
|
257
|
-
}
|
|
258
|
-
}
|