windmill-components 1.677.0 → 1.687.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/AppConnectInner.svelte +6 -0
- package/package/components/CiTestResults.svelte +64 -0
- package/package/components/CiTestResults.svelte.d.ts +7 -0
- package/package/components/CompareWorkspaces.svelte +626 -418
- package/package/components/DBManager.svelte +35 -4
- package/package/components/DBManager.svelte.d.ts +2 -0
- package/package/components/DBManagerContent.svelte +3 -1
- package/package/components/DBManagerContent.svelte.d.ts +3 -0
- package/package/components/DBManagerDrawer.svelte +145 -3
- package/package/components/DBTableEditor.svelte +14 -4
- package/package/components/DatatablePicker.svelte +2 -5
- package/package/components/DatatableSchemaDiff.svelte +531 -0
- package/package/components/DatatableSchemaDiff.svelte.d.ts +29 -0
- package/package/components/DedicatedWorkersSelector.svelte +4 -2
- package/package/components/DefaultTagsInner.svelte +42 -2
- package/package/components/DeployWorkspaceDrawer.svelte +1 -1
- package/package/components/Dev.svelte +20 -3
- package/package/components/Editor.svelte +1 -1
- package/package/components/EditorBar.svelte +1 -1
- package/package/components/EditorBar.svelte.d.ts +1 -1
- package/package/components/FlowStatusViewerInner.svelte +269 -220
- package/package/components/FlowTimeline.svelte +1 -1
- package/package/components/FolderEditor.svelte +189 -4
- package/package/components/ForkWorkspaceBanner.svelte +82 -11
- package/package/components/GlobalUserOffboardingModal.svelte +293 -0
- package/package/components/GlobalUserOffboardingModal.svelte.d.ts +10 -0
- package/package/components/InstanceSettings.svelte +22 -3
- package/package/components/Login.svelte +22 -10
- package/package/components/ModuleTest.svelte +2 -1
- package/package/components/NoMainFuncBadge.svelte +1 -1
- package/package/components/OffboardItemsBox.svelte +56 -0
- package/package/components/OffboardItemsBox.svelte.d.ts +12 -0
- package/package/components/OffboardReassignControls.svelte +47 -0
- package/package/components/OffboardReassignControls.svelte.d.ts +20 -0
- package/package/components/OffboardWorkspaceSection.svelte +110 -0
- package/package/components/OffboardWorkspaceSection.svelte.d.ts +24 -0
- package/package/components/OnBehalfOfSelector.svelte +21 -3
- package/package/components/OnBehalfOfSelector.svelte.d.ts +7 -0
- package/package/components/QueueAlerts.svelte +10 -10
- package/package/components/ResourcePicker.svelte +2 -2
- package/package/components/ScriptBuilder.svelte +52 -11
- package/package/components/ScriptEditor.svelte +1 -3
- package/package/components/ScriptEditor.svelte.d.ts +1 -1
- package/package/components/ShareModal.svelte +236 -98
- package/package/components/SuperadminSettingsInner.svelte +362 -315
- package/package/components/UserOffboardingModal.svelte +238 -0
- package/package/components/UserOffboardingModal.svelte.d.ts +10 -0
- package/package/components/WorkspaceDeployLayout.svelte +3 -3
- package/package/components/WorkspaceDeployLayout.svelte.d.ts +1 -0
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +4 -2
- package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +12 -0
- package/package/components/assets/AssetsDropdownButton.svelte +1 -1
- package/package/components/common/confirmationModal/ConfirmationModal.svelte +1 -1
- package/package/components/common/table/AppRow.svelte +3 -3
- package/package/components/common/table/FlowRow.svelte +3 -3
- package/package/components/common/table/RawAppRow.svelte +4 -4
- package/package/components/common/table/Row.svelte +6 -2
- package/package/components/common/table/ScriptRow.svelte +11 -3
- package/package/components/copilot/chat/AIChatManager.svelte.js +2 -2
- package/package/components/copilot/chat/anthropic.d.ts +7 -1
- package/package/components/copilot/chat/anthropic.js +5 -2
- package/package/components/copilot/chat/app/core.js +129 -1
- package/package/components/copilot/chat/app/core.test.js +192 -0
- package/package/components/copilot/chat/chatLoop.d.ts +3 -0
- package/package/components/copilot/chat/chatLoop.js +13 -5
- package/package/components/copilot/chat/flow/FlowAIChat.svelte +55 -76
- package/package/components/copilot/chat/flow/core.d.ts +13 -3
- package/package/components/copilot/chat/flow/core.js +467 -116
- package/package/components/copilot/chat/flow/helperUtils.d.ts +19 -0
- package/package/components/copilot/chat/flow/helperUtils.js +68 -0
- package/package/components/copilot/chat/flow/helperUtils.test.js +116 -0
- package/package/components/copilot/chat/flow/inlineScriptsUtils.d.ts +5 -24
- package/package/components/copilot/chat/flow/inlineScriptsUtils.js +30 -55
- package/package/components/copilot/chat/flow/utils.test.js +59 -0
- package/package/components/copilot/chat/openai-responses.d.ts +7 -1
- package/package/components/copilot/chat/openai-responses.js +5 -2
- package/package/components/copilot/chat/shared.d.ts +1 -2
- package/package/components/copilot/chat/shared.js +94 -52
- package/package/components/copilot/chat/tokenUsage.d.ts +23 -0
- package/package/components/copilot/chat/tokenUsage.js +42 -0
- package/package/components/copilot/lib.d.ts +5 -1
- package/package/components/copilot/lib.js +21 -5
- package/package/components/deploymentRequest/DeploymentRequestPanel.svelte +337 -0
- package/package/components/deploymentRequest/DeploymentRequestPanel.svelte.d.ts +15 -0
- package/package/components/details/CopyableCodeBlock.svelte +18 -8
- package/package/components/details/CopyableCodeBlock.svelte.d.ts +1 -0
- package/package/components/flows/FlowAssetsHandler.svelte +19 -21
- package/package/components/flows/agentToolTree.d.ts +17 -0
- package/package/components/flows/agentToolTree.js +114 -0
- package/package/components/flows/agentToolTree.test.d.ts +1 -0
- package/package/components/flows/agentToolTree.test.js +86 -0
- package/package/components/flows/agentToolUtils.d.ts +0 -5
- package/package/components/flows/agentToolUtils.js +0 -49
- package/package/components/flows/content/FlowLoop.svelte +7 -4
- package/package/components/flows/content/FlowModuleDeleteAfterUse.svelte +15 -7
- package/package/components/flows/content/FlowSettings.svelte +29 -0
- package/package/components/flows/dfs.d.ts +6 -2
- package/package/components/flows/dfs.js +19 -11
- package/package/components/flows/flowDeleteController.d.ts +32 -0
- package/package/components/flows/flowDeleteController.js +54 -0
- package/package/components/flows/flowDeleteController.test.d.ts +1 -0
- package/package/components/flows/flowDeleteController.test.js +121 -0
- package/package/components/flows/flowDeleteUtils.d.ts +48 -0
- package/package/components/flows/flowDeleteUtils.js +150 -0
- package/package/components/flows/flowDeleteUtils.test.d.ts +1 -0
- package/package/components/flows/flowDeleteUtils.test.js +131 -0
- package/package/components/flows/flowDiff.d.ts +2 -47
- package/package/components/flows/flowDiff.js +16 -293
- package/package/components/flows/flowDiff.testUtils.d.ts +8 -0
- package/package/components/flows/flowDiff.testUtils.js +26 -0
- package/package/components/flows/flowDiffManager.svelte.js +20 -75
- package/package/components/flows/flowDiffManager.svelte.test.js +103 -2
- package/package/components/flows/flowExplorer.d.ts +4 -0
- package/package/components/flows/flowExplorer.js +7 -30
- package/package/components/flows/flowState.d.ts +1 -0
- package/package/components/flows/flowStateUtils.svelte.js +6 -1
- package/package/components/flows/flowStore.svelte.d.ts +1 -1
- package/package/components/flows/flowTree.d.ts +91 -0
- package/package/components/flows/flowTree.js +326 -0
- package/package/components/flows/flowTree.test.d.ts +1 -0
- package/package/components/flows/flowTree.test.js +236 -0
- package/package/components/flows/map/FlowJobsMenu.svelte +36 -30
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +1 -1
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +70 -227
- package/package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +0 -2
- package/package/components/flows/pickers/PickHubScriptQuick.svelte +2 -2
- package/package/components/flows/pickers/PickHubScriptQuick.svelte.d.ts +1 -1
- package/package/components/flows/previousResults.js +13 -41
- package/package/components/flows/previousResults.test.d.ts +1 -0
- package/package/components/flows/previousResults.test.js +65 -0
- package/package/components/flows/propPicker/OutputPicker.svelte +2 -1
- package/package/components/flows/propPicker/OutputPickerInner.svelte +41 -4
- package/package/components/flows/propPicker/StepHistory.svelte +9 -1
- package/package/components/git_sync/GitSyncContext.svelte.js +11 -5
- package/package/components/git_sync/GitSyncRepositoryCard.svelte +2 -29
- package/package/components/git_sync/PullWorkspaceModal.svelte +6 -7
- package/package/components/graph/FlowGraphV2.svelte +2 -2
- package/package/components/graph/FlowGraphV2.svelte.d.ts +1 -0
- package/package/components/graph/groupedModulesProxy.svelte.d.ts +10 -0
- package/package/components/graph/groupedModulesProxy.svelte.js +17 -1
- package/package/components/graph/renderers/triggers/TriggersBadge.svelte +5 -2
- package/package/components/home/HomeConnectDrawer.svelte +125 -0
- package/package/components/home/HomeConnectDrawer.svelte.d.ts +5 -0
- package/package/components/icons/GithubIcon.svelte +4 -4
- package/package/components/icons/GithubIcon.svelte.d.ts +5 -2
- package/package/components/instanceSettings/ExternalJwtTokens.svelte +85 -0
- package/package/components/instanceSettings/ExternalJwtTokens.svelte.d.ts +12 -0
- package/package/components/instanceSettings/GhesAppSettings.svelte +17 -0
- package/package/components/instanceSettings/IndexerMemorySettings.svelte +56 -29
- package/package/components/instanceSettings/SecretBackendConfig.svelte +9 -2
- package/package/components/instanceSettings.d.ts +1 -0
- package/package/components/instanceSettings.js +42 -8
- package/package/components/offboarding-utils.d.ts +11 -0
- package/package/components/offboarding-utils.js +100 -0
- package/package/components/raw_apps/RawAppDataTableDrawer.svelte +1 -1
- package/package/components/raw_apps/RawAppEditor.svelte +27 -0
- package/package/components/raw_apps/RawAppEditorHeader.svelte +6 -1
- package/package/components/raw_apps/RawAppEditorHeader.svelte.d.ts +1 -0
- package/package/components/raw_apps/RawAppYamlEditor.svelte +81 -0
- package/package/components/raw_apps/RawAppYamlEditor.svelte.d.ts +20 -0
- package/package/components/raw_apps/datatableUtils.svelte.js +1 -1
- package/package/components/runs/runsFilter.d.ts +1 -1
- package/package/components/script_builder.d.ts +1 -1
- package/package/components/select/Select.svelte +2 -1
- package/package/components/select/Select.svelte.d.ts +1 -0
- package/package/components/settings/CreateToken.svelte +113 -64
- package/package/components/settings/CreateToken.svelte.d.ts +3 -0
- package/package/components/settings/WorkspaceUserSettings.svelte +34 -28
- package/package/components/sidebar/SidebarContent.svelte +58 -2
- package/package/components/sidebar/WorkspaceMenu.svelte +8 -4
- package/package/components/triggers/AddTriggersButton.svelte +11 -0
- package/package/components/triggers/PermissionedAsLine.svelte +37 -3
- package/package/components/triggers/PermissionedAsLine.svelte.d.ts +6 -0
- package/package/components/triggers/TriggersEditor.svelte +5 -1
- package/package/components/triggers/TriggersWrapper.svelte +10 -0
- package/package/components/triggers/email/EmailTriggerEditorInner.svelte +13 -11
- package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +13 -11
- package/package/components/triggers/http/RouteEditorConfigSection.svelte +15 -7
- package/package/components/triggers/http/RouteEditorInner.svelte +14 -14
- package/package/components/triggers/http/RoutesGenerator.svelte +6 -1
- package/package/components/triggers/http/RoutesPanel.svelte +1 -1
- package/package/components/triggers/http/utils.d.ts +1 -1
- package/package/components/triggers/http/utils.js +2 -2
- package/package/components/triggers/kafka/KafkaTriggerEditorInner.svelte +13 -11
- package/package/components/triggers/mqtt/MqttEditorConfigSection.svelte.d.ts +1 -1
- package/package/components/triggers/mqtt/MqttTriggerEditorInner.svelte +13 -11
- package/package/components/triggers/native/NativeTriggerEditor.svelte +3 -0
- package/package/components/triggers/native/services/github/GitHubTriggerForm.svelte +118 -0
- package/package/components/triggers/native/services/github/GitHubTriggerForm.svelte.d.ts +17 -0
- package/package/components/triggers/native/utils.js +14 -0
- package/package/components/triggers/nats/NatsTriggerEditor.svelte.d.ts +4 -3
- package/package/components/triggers/nats/NatsTriggerEditorInner.svelte +13 -11
- package/package/components/triggers/postgres/PostgresTriggerEditor.svelte.d.ts +4 -3
- package/package/components/triggers/postgres/PostgresTriggerEditorInner.svelte +13 -11
- package/package/components/triggers/schedules/ScheduleEditorInner.svelte +13 -11
- package/package/components/triggers/sqs/SqsTriggerEditor.svelte.d.ts +4 -3
- package/package/components/triggers/sqs/SqsTriggerEditorInner.svelte +13 -11
- package/package/components/triggers/triggers.svelte.js +1 -0
- package/package/components/triggers/utils.js +27 -6
- package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +13 -11
- package/package/components/triggers.d.ts +1 -1
- package/package/components/useFolderDefaultPermissionedAs.svelte.d.ts +13 -0
- package/package/components/useFolderDefaultPermissionedAs.svelte.js +63 -0
- package/package/components/workspaceSettings/CreateWorkspace.svelte +16 -677
- package/package/components/workspaceSettings/CreateWorkspaceInner.svelte +604 -0
- package/package/components/workspaceSettings/CreateWorkspaceInner.svelte.d.ts +7 -0
- package/package/components/workspaceSettings/CustomInstanceDbSelect.svelte +27 -25
- package/package/components/workspaceSettings/CustomInstanceDbWizardModal.svelte +46 -8
- package/package/components/workspaceSettings/DataTableSettings.svelte +27 -22
- package/package/components/workspaceSettings/DucklakeSettings.svelte +1 -1
- package/package/components/workspaceSettings/ForkDatatableSection.svelte +228 -0
- package/package/components/workspaceSettings/ForkDatatableSection.svelte.d.ts +28 -0
- package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +8 -2
- package/package/components/workspaceSettings/RulesetEditor.svelte +27 -2
- package/package/components/workspaceSettings/VolumeStorageSettings.svelte +1 -1
- package/package/components/workspaceSettings/WorkspaceIntegrations.svelte +17 -1
- package/package/consts.d.ts +3 -0
- package/package/consts.js +10 -0
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +1172 -164
- package/package/gen/schemas.gen.js +1168 -157
- package/package/gen/services.gen.d.ts +511 -6
- package/package/gen/services.gen.js +1023 -23
- package/package/gen/types.gen.d.ts +2278 -151
- package/package/githubApp.js +5 -1
- package/package/hubPaths.json +1 -4
- package/package/infer.js +13 -1
- package/package/infer.svelte.js +10 -1
- package/package/monaco_workers/sqlTypePlugin.worker.d.ts +10 -0
- package/package/monaco_workers/sqlTypePlugin.worker.js +39 -0
- package/package/script_helpers.d.ts +8 -2
- package/package/script_helpers.js +14 -0
- package/package/stores.d.ts +4 -0
- package/package/stores.js +1 -0
- package/package/system_prompts/prompts.d.ts +4 -3
- package/package/system_prompts/prompts.js +270 -20
- package/package/templates/ci_test_bun.ts.template +19 -0
- package/package/templates/ci_test_python.py.template +18 -0
- package/package/utils_deployable.d.ts +11 -7
- package/package/utils_workspace_deploy.d.ts +8 -8
- package/package/utils_workspace_deploy.js +86 -420
- package/package.json +4 -4
- package/package/components/copilot/chat/__tests__/app/appChat.eval.test.js +0 -153
- package/package/components/copilot/chat/__tests__/app/appEvalComparison.d.ts +0 -21
- package/package/components/copilot/chat/__tests__/app/appEvalComparison.js +0 -136
- package/package/components/copilot/chat/__tests__/app/appEvalHelpers.d.ts +0 -15
- package/package/components/copilot/chat/__tests__/app/appEvalHelpers.js +0 -107
- package/package/components/copilot/chat/__tests__/app/appEvalRunner.d.ts +0 -50
- package/package/components/copilot/chat/__tests__/app/appEvalRunner.js +0 -93
- package/package/components/copilot/chat/__tests__/app/appFixtureLoader.d.ts +0 -29
- package/package/components/copilot/chat/__tests__/app/appFixtureLoader.js +0 -134
- package/package/components/copilot/chat/__tests__/app/appResultsWriter.d.ts +0 -30
- package/package/components/copilot/chat/__tests__/app/appResultsWriter.js +0 -197
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/createFolder/main.d.ts +0 -10
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/createFolder/main.js +0 -9
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/createFolder/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/deleteItem/main.d.ts +0 -6
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/deleteItem/main.js +0 -5
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/deleteItem/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFiles/main.d.ts +0 -12
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFiles/main.js +0 -14
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFiles/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFolders/main.d.ts +0 -8
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFolders/main.js +0 -25
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFolders/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/moveItem/main.d.ts +0 -7
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/moveItem/main.js +0 -5
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/moveItem/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/renameItem/main.d.ts +0 -8
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/renameItem/main.js +0 -5
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/renameItem/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Breadcrumb.d.ts +0 -10
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Breadcrumb.tsx +0 -26
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileItem.d.ts +0 -10
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileItem.tsx +0 -79
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileList.d.ts +0 -10
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileList.tsx +0 -46
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FolderTree.d.ts +0 -10
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FolderTree.tsx +0 -56
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Toolbar.d.ts +0 -6
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Toolbar.tsx +0 -59
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/index.d.ts +0 -16
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/index.tsx +0 -119
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/addToCart/main.d.ts +0 -15
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/addToCart/main.js +0 -14
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/addToCart/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/calculateTotal/main.d.ts +0 -14
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/calculateTotal/main.js +0 -5
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/calculateTotal/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/getProducts/main.d.ts +0 -6
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/getProducts/main.js +0 -41
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/getProducts/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/removeFromCart/main.d.ts +0 -15
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/removeFromCart/main.js +0 -3
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/removeFromCart/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/Cart.d.ts +0 -9
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/Cart.tsx +0 -51
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductCard.d.ts +0 -8
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductCard.tsx +0 -27
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductList.d.ts +0 -8
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductList.tsx +0 -18
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/index.d.ts +0 -12
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/index.tsx +0 -81
- package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/decrementCounter/main.d.ts +0 -3
- package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/decrementCounter/main.js +0 -3
- package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/decrementCounter/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/incrementCounter/main.d.ts +0 -3
- package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/incrementCounter/main.js +0 -3
- package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/incrementCounter/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/frontend/index.d.ts +0 -2
- package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/frontend/index.tsx +0 -38
- package/package/components/copilot/chat/__tests__/app/variants/baseline.d.ts +0 -6
- package/package/components/copilot/chat/__tests__/app/variants/baseline.js +0 -10
- package/package/components/copilot/chat/__tests__/app/variants/index.d.ts +0 -3
- package/package/components/copilot/chat/__tests__/app/variants/index.js +0 -3
- package/package/components/copilot/chat/__tests__/app/variants/streamlined.d.ts +0 -6
- package/package/components/copilot/chat/__tests__/app/variants/streamlined.js +0 -137
- package/package/components/copilot/chat/__tests__/flow/expected/test1.json +0 -134
- package/package/components/copilot/chat/__tests__/flow/expected/test2.json +0 -183
- package/package/components/copilot/chat/__tests__/flow/expected/test3.json +0 -204
- package/package/components/copilot/chat/__tests__/flow/expected/test4.json +0 -175
- package/package/components/copilot/chat/__tests__/flow/expected/test5_modify_simple.json +0 -68
- package/package/components/copilot/chat/__tests__/flow/expected/test6_modify_medium.json +0 -142
- package/package/components/copilot/chat/__tests__/flow/expected/test7_modify_complex.json +0 -136
- package/package/components/copilot/chat/__tests__/flow/flowChat.eval.test.js +0 -294
- package/package/components/copilot/chat/__tests__/flow/flowEvalComparison.d.ts +0 -17
- package/package/components/copilot/chat/__tests__/flow/flowEvalComparison.js +0 -49
- package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.d.ts +0 -12
- package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.js +0 -79
- package/package/components/copilot/chat/__tests__/flow/flowEvalRunner.d.ts +0 -50
- package/package/components/copilot/chat/__tests__/flow/flowEvalRunner.js +0 -102
- package/package/components/copilot/chat/__tests__/flow/initial/test5_initial.json +0 -53
- package/package/components/copilot/chat/__tests__/flow/initial/test6_initial.json +0 -68
- package/package/components/copilot/chat/__tests__/flow/initial/test7_initial.json +0 -120
- package/package/components/copilot/chat/__tests__/flow/variants/baseline.d.ts +0 -6
- package/package/components/copilot/chat/__tests__/flow/variants/baseline.js +0 -10
- package/package/components/copilot/chat/__tests__/flow/variants/index.d.ts +0 -3
- package/package/components/copilot/chat/__tests__/flow/variants/index.js +0 -3
- package/package/components/copilot/chat/__tests__/flow/variants/minimal-single-tool.d.ts +0 -15
- package/package/components/copilot/chat/__tests__/flow/variants/minimal-single-tool.js +0 -388
- package/package/components/copilot/chat/__tests__/shared/baseEvalRunner.d.ts +0 -45
- package/package/components/copilot/chat/__tests__/shared/baseEvalRunner.js +0 -121
- package/package/components/copilot/chat/__tests__/shared/baseLLMEvaluator.d.ts +0 -28
- package/package/components/copilot/chat/__tests__/shared/baseLLMEvaluator.js +0 -96
- package/package/components/copilot/chat/__tests__/shared/baseResultsWriter.d.ts +0 -32
- package/package/components/copilot/chat/__tests__/shared/baseResultsWriter.js +0 -130
- package/package/components/copilot/chat/__tests__/shared/baseVariants.d.ts +0 -45
- package/package/components/copilot/chat/__tests__/shared/baseVariants.js +0 -57
- package/package/components/copilot/chat/__tests__/shared/index.d.ts +0 -10
- package/package/components/copilot/chat/__tests__/shared/index.js +0 -5
- package/package/components/copilot/chat/__tests__/shared/types.d.ts +0 -105
- package/package/components/copilot/chat/__tests__/shared/types.js +0 -9
- package/package/components/copilot/chat/flow/utils.d.ts +0 -14
- package/package/components/copilot/chat/flow/utils.js +0 -108
- package/package/components/flows/agentToolUtils.test.js +0 -55
- /package/package/components/copilot/chat/{__tests__/app/appChat.eval.test.d.ts → app/core.test.d.ts} +0 -0
- /package/package/components/copilot/chat/{__tests__/flow/flowChat.eval.test.d.ts → flow/helperUtils.test.d.ts} +0 -0
- /package/package/components/{flows/agentToolUtils.test.d.ts → copilot/chat/flow/utils.test.d.ts} +0 -0
|
@@ -142,6 +142,23 @@ let fieldsDisabled = $derived(disabled || !selfManaged);
|
|
|
142
142
|
bind:value={$values['github_enterprise_app'].client_id}
|
|
143
143
|
/>
|
|
144
144
|
</div>
|
|
145
|
+
<div class="flex flex-col gap-1">
|
|
146
|
+
<label for="ghes_app_owner" class="block text-xs font-semibold text-emphasis mb-1">
|
|
147
|
+
App owner
|
|
148
|
+
</label>
|
|
149
|
+
<TextInput
|
|
150
|
+
inputProps={{
|
|
151
|
+
type: 'text',
|
|
152
|
+
id: 'ghes_app_owner',
|
|
153
|
+
placeholder: 'my-org',
|
|
154
|
+
disabled: fieldsDisabled
|
|
155
|
+
}}
|
|
156
|
+
bind:value={$values['github_enterprise_app'].app_owner}
|
|
157
|
+
/>
|
|
158
|
+
<span class="text-2xs text-secondary">
|
|
159
|
+
Organization or user that owns the GitHub App. Required for GHE Cloud (*.ghe.com) domains.
|
|
160
|
+
</span>
|
|
161
|
+
</div>
|
|
145
162
|
</div>
|
|
146
163
|
|
|
147
164
|
<div class="flex flex-col gap-1">
|
|
@@ -7,8 +7,22 @@ import Tooltip from '../Tooltip.svelte';
|
|
|
7
7
|
import IntegerInput from '../IntegerInput.svelte';
|
|
8
8
|
import InputError from '../InputError.svelte';
|
|
9
9
|
import Label from '../Label.svelte';
|
|
10
|
+
import Toggle from '../Toggle.svelte';
|
|
10
11
|
import { Loader2, RefreshCw } from 'lucide-svelte';
|
|
11
12
|
let { values, disabled = false, errors = {} } = $props();
|
|
13
|
+
let isTimeWindowCapped = $derived($values['indexer_settings'].max_index_time_window_secs !== 0);
|
|
14
|
+
function setTimeWindowCapped(checked) {
|
|
15
|
+
if (checked) {
|
|
16
|
+
const { max_index_time_window_secs: _, ...rest } = $values['indexer_settings'];
|
|
17
|
+
$values['indexer_settings'] = rest;
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
$values['indexer_settings'] = {
|
|
21
|
+
...$values['indexer_settings'],
|
|
22
|
+
max_index_time_window_secs: 0
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
}
|
|
12
26
|
let clearJobsIndexModalOpen = $state(false);
|
|
13
27
|
let clearServiceLogsIndexModalOpen = $state(false);
|
|
14
28
|
let status = $state(undefined);
|
|
@@ -80,36 +94,49 @@ loadStatus();
|
|
|
80
94
|
/>
|
|
81
95
|
<InputError error={errors.writer_memory_budget ?? ''} />
|
|
82
96
|
</div>
|
|
83
|
-
<div class="flex flex-col gap-
|
|
84
|
-
<
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
97
|
+
<div class="flex flex-col gap-2">
|
|
98
|
+
<div class="flex flex-row items-center gap-2">
|
|
99
|
+
<span class="block text-xs font-semibold text-emphasis">
|
|
100
|
+
Index time window
|
|
101
|
+
<Tooltip>
|
|
102
|
+
Cap the age of items the indexer keeps. Jobs and logs older than this window are not
|
|
103
|
+
indexed and are cleaned up from the index. Disable the cap to index everything within the
|
|
104
|
+
retention period.
|
|
105
|
+
</Tooltip>
|
|
106
|
+
</span>
|
|
107
|
+
<div class="ml-auto">
|
|
108
|
+
<Toggle
|
|
109
|
+
{disabled}
|
|
110
|
+
checked={isTimeWindowCapped}
|
|
111
|
+
on:change={(e) => setTimeWindowCapped(e.detail)}
|
|
112
|
+
options={{ right: 'Cap by time window' }}
|
|
113
|
+
/>
|
|
114
|
+
</div>
|
|
115
|
+
</div>
|
|
116
|
+
{#if isTimeWindowCapped}
|
|
117
|
+
<IntegerInput
|
|
118
|
+
placeholder="7"
|
|
119
|
+
id="max_index_time_window_secs"
|
|
120
|
+
{disabled}
|
|
121
|
+
error={errors.max_index_time_window_secs ?? ''}
|
|
122
|
+
value={$values['indexer_settings'].max_index_time_window_secs != null
|
|
123
|
+
? Math.round($values['indexer_settings'].max_index_time_window_secs / 86400)
|
|
124
|
+
: undefined}
|
|
125
|
+
oninput={(v) => {
|
|
126
|
+
if (v == null) {
|
|
127
|
+
const { max_index_time_window_secs: _, ...rest } = $values['indexer_settings']
|
|
128
|
+
$values['indexer_settings'] = rest
|
|
129
|
+
} else {
|
|
130
|
+
$values['indexer_settings'] = {
|
|
131
|
+
...$values['indexer_settings'],
|
|
132
|
+
max_index_time_window_secs: v * 86400
|
|
133
|
+
}
|
|
108
134
|
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
135
|
+
}}
|
|
136
|
+
/>
|
|
137
|
+
<span class="text-2xs text-tertiary">days (leave blank to use the default of 7 days)</span>
|
|
138
|
+
<InputError error={errors.max_index_time_window_secs ?? ''} />
|
|
139
|
+
{/if}
|
|
113
140
|
</div>
|
|
114
141
|
<Label label="Indexer status">
|
|
115
142
|
{#snippet action()}
|
|
@@ -3,6 +3,7 @@ import Password from '../Password.svelte';
|
|
|
3
3
|
import { SettingService } from '../../gen';
|
|
4
4
|
import { sendUserToast } from '../../toast';
|
|
5
5
|
import TextInput from '../text_input/TextInput.svelte';
|
|
6
|
+
import Toggle from '../Toggle.svelte';
|
|
6
7
|
import { Database, Lock, Server, ArrowLeft, ArrowRight, Cloud } from 'lucide-svelte';
|
|
7
8
|
import { enterpriseLicense } from '../../stores';
|
|
8
9
|
import ToggleButtonGroup from '../common/toggleButton-v2/ToggleButtonGroup.svelte';
|
|
@@ -53,7 +54,8 @@ function setBackendType(type) {
|
|
|
53
54
|
mount_path: $values['secret_backend']?.mount_path ?? 'windmill',
|
|
54
55
|
jwt_role: $values['secret_backend']?.jwt_role ?? 'windmill-secrets',
|
|
55
56
|
namespace: $values['secret_backend']?.namespace ?? null,
|
|
56
|
-
token: $values['secret_backend']?.token ?? null
|
|
57
|
+
token: $values['secret_backend']?.token ?? null,
|
|
58
|
+
skip_ssl_verify: $values['secret_backend']?.skip_ssl_verify ?? false
|
|
57
59
|
};
|
|
58
60
|
}
|
|
59
61
|
else if (type === 'AzureKeyVault') {
|
|
@@ -93,7 +95,8 @@ function getVaultSettings() {
|
|
|
93
95
|
mount_path: $values['secret_backend'].mount_path,
|
|
94
96
|
jwt_role: $values['secret_backend'].jwt_role,
|
|
95
97
|
namespace: $values['secret_backend'].namespace || undefined,
|
|
96
|
-
token: $values['secret_backend'].token || undefined
|
|
98
|
+
token: $values['secret_backend'].token || undefined,
|
|
99
|
+
skip_ssl_verify: $values['secret_backend'].skip_ssl_verify || undefined
|
|
97
100
|
};
|
|
98
101
|
}
|
|
99
102
|
async function testVaultConnection() {
|
|
@@ -402,6 +405,10 @@ vault write auth/jwt/role/windmill-secrets \
|
|
|
402
405
|
<span class="text-2xs text-secondary">Vault Enterprise namespace</span>
|
|
403
406
|
<TextInput inputProps={{ type: 'text', id: 'vault_namespace', placeholder: 'admin/my-namespace', disabled }} bind:value={$values['secret_backend'].namespace} />
|
|
404
407
|
</div>
|
|
408
|
+
<div class="flex flex-col gap-1">
|
|
409
|
+
<Toggle id="vault_skip_ssl_verify" {disabled} bind:checked={$values['secret_backend'].skip_ssl_verify} size="xs" options={{ right: 'Skip TLS certificate verification' }} />
|
|
410
|
+
<span class="text-2xs text-secondary">Disables TLS verification when connecting to Vault. Only enable for self-signed certificates in development.</span>
|
|
411
|
+
</div>
|
|
405
412
|
</div>
|
|
406
413
|
<div class="flex flex-col gap-4 pt-4 border-t">
|
|
407
414
|
<Button unifiedSize="md" variant="accent" onclick={testVaultConnection} disabled={disabled || !isVaultConfigValid() || testingConnection} loading={testingConnection} startIcon={{ icon: Server }}>Test Connection</Button>
|
|
@@ -13,6 +13,7 @@ export const OTEL_TRACING_PROXY_LANGUAGES = [
|
|
|
13
13
|
'ruby'
|
|
14
14
|
];
|
|
15
15
|
const positiveNumber = z.number().positive('Must be a positive number');
|
|
16
|
+
const nonNegativeNumber = z.number().nonnegative('Must be zero or a positive number');
|
|
16
17
|
const indexerSettingsSchema = z
|
|
17
18
|
.object({
|
|
18
19
|
writer_memory_budget: positiveNumber.optional(),
|
|
@@ -21,7 +22,7 @@ const indexerSettingsSchema = z
|
|
|
21
22
|
max_indexed_job_log_size: positiveNumber.optional(),
|
|
22
23
|
commit_log_max_batch_size: positiveNumber.optional(),
|
|
23
24
|
refresh_log_index_period: positiveNumber.optional(),
|
|
24
|
-
max_index_time_window_secs:
|
|
25
|
+
max_index_time_window_secs: nonNegativeNumber.optional()
|
|
25
26
|
})
|
|
26
27
|
.passthrough();
|
|
27
28
|
function validateIndexerSettings(v) {
|
|
@@ -55,7 +56,8 @@ export const scimSamlSetting = [
|
|
|
55
56
|
fieldType: 'textarea',
|
|
56
57
|
placeholder: 'https://dev-2578259.okta.com/app/exkaell8gidiiUWrg5d7/sso/saml/metadata ',
|
|
57
58
|
storage: 'setting',
|
|
58
|
-
ee_only: ''
|
|
59
|
+
ee_only: '',
|
|
60
|
+
triggersRestart: true
|
|
59
61
|
}
|
|
60
62
|
];
|
|
61
63
|
export const settings = {
|
|
@@ -81,6 +83,7 @@ export const settings = {
|
|
|
81
83
|
fieldType: 'text',
|
|
82
84
|
placeholder: 'mail.windmill.com',
|
|
83
85
|
storage: 'setting',
|
|
86
|
+
triggersRestart: true,
|
|
84
87
|
error: 'Must be a valid domain',
|
|
85
88
|
isValid: (value) => value == undefined ||
|
|
86
89
|
value === '' ||
|
|
@@ -93,7 +96,8 @@ export const settings = {
|
|
|
93
96
|
key: 'request_size_limit_mb',
|
|
94
97
|
fieldType: 'number',
|
|
95
98
|
placeholder: '50',
|
|
96
|
-
storage: 'setting'
|
|
99
|
+
storage: 'setting',
|
|
100
|
+
triggersRestart: true
|
|
97
101
|
},
|
|
98
102
|
{
|
|
99
103
|
label: 'License key',
|
|
@@ -290,7 +294,15 @@ export const settings = {
|
|
|
290
294
|
ee_only: ''
|
|
291
295
|
}
|
|
292
296
|
],
|
|
293
|
-
'Auth/OAuth/SAML': [
|
|
297
|
+
'Auth/OAuth/SAML': [
|
|
298
|
+
{
|
|
299
|
+
label: 'Disable password login',
|
|
300
|
+
description: 'Hide the email/password form on the login page and reject password login requests. Use when you only want OAuth/SAML logins.',
|
|
301
|
+
key: 'disable_password_login',
|
|
302
|
+
fieldType: 'boolean',
|
|
303
|
+
storage: 'setting'
|
|
304
|
+
}
|
|
305
|
+
],
|
|
294
306
|
'DB Health': [],
|
|
295
307
|
Registries: [
|
|
296
308
|
{
|
|
@@ -544,7 +556,8 @@ export const settings = {
|
|
|
544
556
|
key: 'otel',
|
|
545
557
|
fieldType: 'otel',
|
|
546
558
|
storage: 'setting',
|
|
547
|
-
ee_only: ''
|
|
559
|
+
ee_only: '',
|
|
560
|
+
triggersRestart: true
|
|
548
561
|
},
|
|
549
562
|
{
|
|
550
563
|
label: 'HTTP Request Tracing',
|
|
@@ -553,6 +566,7 @@ export const settings = {
|
|
|
553
566
|
fieldType: 'otel_tracing_proxy',
|
|
554
567
|
storage: 'setting',
|
|
555
568
|
ee_only: 'HTTP Request Tracing is an EE feature',
|
|
569
|
+
triggersRestart: true,
|
|
556
570
|
defaultValue: () => ({ enabled: false, enabled_languages: [...OTEL_TRACING_PROXY_LANGUAGES] })
|
|
557
571
|
},
|
|
558
572
|
{
|
|
@@ -561,7 +575,8 @@ export const settings = {
|
|
|
561
575
|
key: 'expose_metrics',
|
|
562
576
|
fieldType: 'boolean',
|
|
563
577
|
storage: 'setting',
|
|
564
|
-
ee_only: ''
|
|
578
|
+
ee_only: '',
|
|
579
|
+
triggersRestart: true
|
|
565
580
|
}
|
|
566
581
|
],
|
|
567
582
|
Indexer: [
|
|
@@ -621,6 +636,17 @@ export const settings = {
|
|
|
621
636
|
!value.endsWith('/') &&
|
|
622
637
|
!value.endsWith(' '))
|
|
623
638
|
}
|
|
639
|
+
],
|
|
640
|
+
LSP: [
|
|
641
|
+
{
|
|
642
|
+
label: 'Ruff config (ruff.toml)',
|
|
643
|
+
description: 'Shared ruff.toml applied to the Python editor linter across the whole instance. The LSP container fetches this every minute and writes it next to edited files. See <a href="https://docs.astral.sh/ruff/configuration/">ruff docs</a>',
|
|
644
|
+
key: 'ruff_config',
|
|
645
|
+
fieldType: 'codearea',
|
|
646
|
+
codeAreaLang: 'toml',
|
|
647
|
+
placeholder: 'line-length = 100\n\n[lint]\nselect = ["E", "F", "I"]\nignore = ["E501"]',
|
|
648
|
+
storage: 'setting'
|
|
649
|
+
}
|
|
624
650
|
]
|
|
625
651
|
};
|
|
626
652
|
export const settingsKeys = Object.keys(settings);
|
|
@@ -780,6 +806,12 @@ export const instanceSettingsNavigationGroups = [
|
|
|
780
806
|
label: 'WebSocket',
|
|
781
807
|
aiId: 'instance-settings-websocket',
|
|
782
808
|
aiDescription: 'WebSocket connectivity test and URL override'
|
|
809
|
+
},
|
|
810
|
+
{
|
|
811
|
+
id: 'lsp',
|
|
812
|
+
label: 'LSP',
|
|
813
|
+
aiId: 'instance-settings-lsp',
|
|
814
|
+
aiDescription: 'Language server protocol settings (ruff config, editor linting)'
|
|
783
815
|
}
|
|
784
816
|
]
|
|
785
817
|
}
|
|
@@ -803,7 +835,8 @@ export const tabToCategoryMap = {
|
|
|
803
835
|
private_hub: 'Private Hub',
|
|
804
836
|
github_enterprise_app: 'GitHub App',
|
|
805
837
|
websocket: 'WebSocket',
|
|
806
|
-
db_health: 'DB Health'
|
|
838
|
+
db_health: 'DB Health',
|
|
839
|
+
lsp: 'LSP'
|
|
807
840
|
};
|
|
808
841
|
export const tabToAuthSubTab = {
|
|
809
842
|
sso: 'sso',
|
|
@@ -834,7 +867,8 @@ export const categoryToTabMap = {
|
|
|
834
867
|
'Private Hub': 'private_hub',
|
|
835
868
|
'GitHub App': 'github_enterprise_app',
|
|
836
869
|
WebSocket: 'websocket',
|
|
837
|
-
'DB Health': 'db_health'
|
|
870
|
+
'DB Health': 'db_health',
|
|
871
|
+
LSP: 'lsp'
|
|
838
872
|
};
|
|
839
873
|
/**
|
|
840
874
|
* Extract the label portion from a uFuzzy marked/highlighted string.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { OffboardAffectedPaths } from '../gen';
|
|
2
|
+
export declare function pl(n: number, singular: string): string;
|
|
3
|
+
export declare function countPaths(p: OffboardAffectedPaths | undefined | null): number;
|
|
4
|
+
export declare function flattenPaths(p: OffboardAffectedPaths | undefined | null): Array<{
|
|
5
|
+
kind: string;
|
|
6
|
+
path: string;
|
|
7
|
+
}>;
|
|
8
|
+
export declare function triggerLabel(triggerType: string): string;
|
|
9
|
+
export declare function kindLabel(kind: string): string;
|
|
10
|
+
export declare function itemHref(kind: string, path: string): string | undefined;
|
|
11
|
+
export declare function downloadCsv(rows: string[][], filename: string): void;
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
export function pl(n, singular) {
|
|
2
|
+
return `${n} ${singular}${n === 1 ? '' : 's'}`;
|
|
3
|
+
}
|
|
4
|
+
function triggerCount(triggers) {
|
|
5
|
+
if (!triggers)
|
|
6
|
+
return 0;
|
|
7
|
+
return Object.values(triggers).reduce((s, arr) => s + arr.length, 0);
|
|
8
|
+
}
|
|
9
|
+
export function countPaths(p) {
|
|
10
|
+
if (!p)
|
|
11
|
+
return 0;
|
|
12
|
+
return ((p.scripts?.length ?? 0) +
|
|
13
|
+
(p.flows?.length ?? 0) +
|
|
14
|
+
(p.apps?.length ?? 0) +
|
|
15
|
+
(p.resources?.length ?? 0) +
|
|
16
|
+
(p.variables?.length ?? 0) +
|
|
17
|
+
(p.schedules?.length ?? 0) +
|
|
18
|
+
triggerCount(p.triggers));
|
|
19
|
+
}
|
|
20
|
+
const TRIGGER_TABLE_TO_ROUTE = {
|
|
21
|
+
http_trigger: 'routes',
|
|
22
|
+
websocket_trigger: 'websocket_triggers',
|
|
23
|
+
kafka_trigger: 'kafka_triggers',
|
|
24
|
+
postgres_trigger: 'postgres_triggers',
|
|
25
|
+
mqtt_trigger: 'mqtt_triggers',
|
|
26
|
+
nats_trigger: 'nats_triggers',
|
|
27
|
+
sqs_trigger: 'sqs_triggers',
|
|
28
|
+
gcp_trigger: 'gcp_triggers',
|
|
29
|
+
email_trigger: 'email_triggers'
|
|
30
|
+
};
|
|
31
|
+
const TRIGGER_TABLE_TO_LABEL = {
|
|
32
|
+
http_trigger: 'http trigger',
|
|
33
|
+
websocket_trigger: 'websocket trigger',
|
|
34
|
+
kafka_trigger: 'kafka trigger',
|
|
35
|
+
postgres_trigger: 'postgres trigger',
|
|
36
|
+
mqtt_trigger: 'mqtt trigger',
|
|
37
|
+
nats_trigger: 'nats trigger',
|
|
38
|
+
sqs_trigger: 'sqs trigger',
|
|
39
|
+
gcp_trigger: 'gcp trigger',
|
|
40
|
+
email_trigger: 'email trigger'
|
|
41
|
+
};
|
|
42
|
+
export function flattenPaths(p) {
|
|
43
|
+
if (!p)
|
|
44
|
+
return [];
|
|
45
|
+
const result = [];
|
|
46
|
+
for (const [kind, list] of Object.entries(p)) {
|
|
47
|
+
if (kind === 'triggers' && list && typeof list === 'object' && !Array.isArray(list)) {
|
|
48
|
+
for (const [triggerType, paths] of Object.entries(list)) {
|
|
49
|
+
for (const path of paths)
|
|
50
|
+
result.push({ kind: triggerType, path });
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
else if (Array.isArray(list)) {
|
|
54
|
+
for (const path of list)
|
|
55
|
+
result.push({ kind, path });
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return result;
|
|
59
|
+
}
|
|
60
|
+
export function triggerLabel(triggerType) {
|
|
61
|
+
return TRIGGER_TABLE_TO_LABEL[triggerType] ?? triggerType;
|
|
62
|
+
}
|
|
63
|
+
export function kindLabel(kind) {
|
|
64
|
+
if (TRIGGER_TABLE_TO_LABEL[kind])
|
|
65
|
+
return TRIGGER_TABLE_TO_LABEL[kind];
|
|
66
|
+
// "scripts" -> "script", "flows" -> "flow", etc.
|
|
67
|
+
return kind.replace(/s$/, '');
|
|
68
|
+
}
|
|
69
|
+
export function itemHref(kind, path) {
|
|
70
|
+
switch (kind) {
|
|
71
|
+
case 'scripts':
|
|
72
|
+
return `/scripts/get/${path}`;
|
|
73
|
+
case 'flows':
|
|
74
|
+
return `/flows/get/${path}`;
|
|
75
|
+
case 'apps':
|
|
76
|
+
return `/apps/get/${path}`;
|
|
77
|
+
case 'resources':
|
|
78
|
+
return `/resources#/resource/${path}`;
|
|
79
|
+
case 'variables':
|
|
80
|
+
return `/variables#${path}`;
|
|
81
|
+
case 'schedules':
|
|
82
|
+
return `/schedules#${path}`;
|
|
83
|
+
default: {
|
|
84
|
+
const route = TRIGGER_TABLE_TO_ROUTE[kind];
|
|
85
|
+
if (route)
|
|
86
|
+
return `/${route}#${path}`;
|
|
87
|
+
return undefined;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
export function downloadCsv(rows, filename) {
|
|
92
|
+
const csv = rows.map((r) => r.map((c) => `"${c.replace(/"/g, '""')}"`).join(',')).join('\n');
|
|
93
|
+
const blob = new Blob([csv], { type: 'text/csv' });
|
|
94
|
+
const url = URL.createObjectURL(blob);
|
|
95
|
+
const a = document.createElement('a');
|
|
96
|
+
a.href = url;
|
|
97
|
+
a.download = filename;
|
|
98
|
+
a.click();
|
|
99
|
+
URL.revokeObjectURL(url);
|
|
100
|
+
}
|
|
@@ -26,7 +26,7 @@ const datatables = resource([], async () => {
|
|
|
26
26
|
if (!$workspaceStore)
|
|
27
27
|
return [];
|
|
28
28
|
try {
|
|
29
|
-
return await WorkspaceService.listDataTables({ workspace: $workspaceStore });
|
|
29
|
+
return (await WorkspaceService.listDataTables({ workspace: $workspaceStore })).map((d) => d.name);
|
|
30
30
|
}
|
|
31
31
|
catch (e) {
|
|
32
32
|
console.error('Failed to load datatables:', e);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<script lang="ts">import { Pane, Splitpanes } from 'svelte-splitpanes';
|
|
2
2
|
import RawAppInlineScriptsPanel from './RawAppInlineScriptsPanel.svelte';
|
|
3
3
|
import RawAppEditorHeader from './RawAppEditorHeader.svelte';
|
|
4
|
+
import RawAppYamlEditor, {} from './RawAppYamlEditor.svelte';
|
|
4
5
|
import { WorkspaceService } from '../../gen';
|
|
5
6
|
import DiffDrawer from '../DiffDrawer.svelte';
|
|
6
7
|
import { encodeState } from '../../utils';
|
|
@@ -47,7 +48,23 @@ function saveFrontendDraft() {
|
|
|
47
48
|
}, 500);
|
|
48
49
|
}
|
|
49
50
|
let iframe = $state(undefined);
|
|
51
|
+
let yamlEditorDrawer = $state(undefined);
|
|
50
52
|
let sidebarPanelSize = $state(15);
|
|
53
|
+
function handleYamlApply(update) {
|
|
54
|
+
if (update.summary !== undefined) {
|
|
55
|
+
summary = update.summary;
|
|
56
|
+
}
|
|
57
|
+
if (update.files !== undefined) {
|
|
58
|
+
files = update.files;
|
|
59
|
+
}
|
|
60
|
+
if (update.runnables !== undefined) {
|
|
61
|
+
runnables = update.runnables;
|
|
62
|
+
}
|
|
63
|
+
if (update.data !== undefined) {
|
|
64
|
+
data = update.data;
|
|
65
|
+
}
|
|
66
|
+
historyManager.manualSnapshot(files ?? {}, runnables, summary, data, true);
|
|
67
|
+
}
|
|
51
68
|
let jobs = $state([]);
|
|
52
69
|
let jobsById = $state({});
|
|
53
70
|
// Helper function to convert internal Runnable to BackendRunnable format
|
|
@@ -694,6 +711,16 @@ function handleKeydown(e) {
|
|
|
694
711
|
canRedo={historyManager.canRedo}
|
|
695
712
|
onUndo={handleUndo}
|
|
696
713
|
onRedo={handleRedo}
|
|
714
|
+
onOpenYamlEditor={() => yamlEditorDrawer?.openDrawer()}
|
|
715
|
+
/>
|
|
716
|
+
|
|
717
|
+
<RawAppYamlEditor
|
|
718
|
+
bind:drawer={yamlEditorDrawer}
|
|
719
|
+
{summary}
|
|
720
|
+
{files}
|
|
721
|
+
{runnables}
|
|
722
|
+
{data}
|
|
723
|
+
onApply={handleYamlApply}
|
|
697
724
|
/>
|
|
698
725
|
|
|
699
726
|
<Splitpanes id="o2" class="grow min-h-0">
|
|
@@ -27,7 +27,7 @@ import { AIBtnClasses } from '../copilot/chat/AIButtonStyle';
|
|
|
27
27
|
import { isRuleActive } from '../../workspaceProtectionRules.svelte';
|
|
28
28
|
import { buildForkEditUrl } from '../../utils/editInFork';
|
|
29
29
|
import { isCloudHosted } from '../../cloud';
|
|
30
|
-
let { summary = $bindable(), policy = $bindable(), diffDrawer = undefined, savedApp = $bindable(undefined), version = $bindable(undefined), newApp, newPath = '', appPath, runnables, data, files, jobs = $bindable(), jobsById = $bindable(), getBundle, canUndo = false, canRedo = false, onUndo = undefined, onRedo = undefined } = $props();
|
|
30
|
+
let { summary = $bindable(), policy = $bindable(), diffDrawer = undefined, savedApp = $bindable(undefined), version = $bindable(undefined), newApp, newPath = '', appPath, runnables, data, files, jobs = $bindable(), jobsById = $bindable(), getBundle, canUndo = false, canRedo = false, onUndo = undefined, onRedo = undefined, onOpenYamlEditor = undefined } = $props();
|
|
31
31
|
let newEditedPath = $state('');
|
|
32
32
|
let deployedValue = $state(undefined); // Value to diff against
|
|
33
33
|
let deployedBy = $state(undefined); // Author
|
|
@@ -451,6 +451,11 @@ let moreItems = [
|
|
|
451
451
|
appExport?.open(app);
|
|
452
452
|
}
|
|
453
453
|
},
|
|
454
|
+
{
|
|
455
|
+
displayName: 'Edit in YAML',
|
|
456
|
+
icon: FileJson,
|
|
457
|
+
action: () => onOpenYamlEditor?.()
|
|
458
|
+
},
|
|
454
459
|
{
|
|
455
460
|
displayName: 'Publish to Hub',
|
|
456
461
|
icon: Globe,
|
|
@@ -33,6 +33,7 @@ interface Props {
|
|
|
33
33
|
canRedo?: boolean;
|
|
34
34
|
onUndo?: () => void;
|
|
35
35
|
onRedo?: () => void;
|
|
36
|
+
onOpenYamlEditor?: () => void;
|
|
36
37
|
}
|
|
37
38
|
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> {
|
|
38
39
|
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
<script lang="ts">import Drawer from '../common/drawer/Drawer.svelte';
|
|
2
|
+
import DrawerContent from '../common/drawer/DrawerContent.svelte';
|
|
3
|
+
import YAML from 'yaml';
|
|
4
|
+
import { Button } from '../common';
|
|
5
|
+
import { sendUserToast } from '../../toast';
|
|
6
|
+
import { Loader2 } from 'lucide-svelte';
|
|
7
|
+
let { drawer = $bindable(), summary, files, runnables, data, onApply } = $props();
|
|
8
|
+
let code = $state('');
|
|
9
|
+
let initialCode = $state('');
|
|
10
|
+
let editor = $state(undefined);
|
|
11
|
+
let hasChanges = $derived(code !== initialCode);
|
|
12
|
+
function reload() {
|
|
13
|
+
const snapshot = {
|
|
14
|
+
summary,
|
|
15
|
+
files: files ?? {},
|
|
16
|
+
runnables,
|
|
17
|
+
data
|
|
18
|
+
};
|
|
19
|
+
code = YAML.stringify(snapshot);
|
|
20
|
+
initialCode = code;
|
|
21
|
+
editor?.setCode(code);
|
|
22
|
+
}
|
|
23
|
+
function isPlainObject(value) {
|
|
24
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
25
|
+
}
|
|
26
|
+
function apply() {
|
|
27
|
+
try {
|
|
28
|
+
const parsed = YAML.parse(code);
|
|
29
|
+
if (!isPlainObject(parsed)) {
|
|
30
|
+
throw new Error('Top-level YAML must be a mapping');
|
|
31
|
+
}
|
|
32
|
+
const update = {};
|
|
33
|
+
if (typeof parsed.summary === 'string') {
|
|
34
|
+
update.summary = parsed.summary;
|
|
35
|
+
}
|
|
36
|
+
if (isPlainObject(parsed.files)) {
|
|
37
|
+
update.files = parsed.files;
|
|
38
|
+
}
|
|
39
|
+
if (isPlainObject(parsed.runnables)) {
|
|
40
|
+
update.runnables = parsed.runnables;
|
|
41
|
+
}
|
|
42
|
+
if (isPlainObject(parsed.data)) {
|
|
43
|
+
update.data = parsed.data;
|
|
44
|
+
}
|
|
45
|
+
onApply(update);
|
|
46
|
+
initialCode = code;
|
|
47
|
+
sendUserToast('Changes applied');
|
|
48
|
+
}
|
|
49
|
+
catch (e) {
|
|
50
|
+
sendUserToast('Error parsing yaml: ' + e, true);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
let editorHeight = $state(0);
|
|
54
|
+
</script>
|
|
55
|
+
|
|
56
|
+
<Drawer on:open={reload} bind:this={drawer} size="800px">
|
|
57
|
+
<DrawerContent title="Raw app YAML" on:close={() => drawer?.toggleDrawer()}>
|
|
58
|
+
{#snippet actions()}
|
|
59
|
+
<Button variant="default" unifiedSize="md" disabled={!hasChanges} on:click={reload}
|
|
60
|
+
>Reset code</Button
|
|
61
|
+
>
|
|
62
|
+
<Button variant="accent" unifiedSize="md" disabled={!hasChanges} on:click={apply}
|
|
63
|
+
>Apply changes</Button
|
|
64
|
+
>
|
|
65
|
+
{/snippet}
|
|
66
|
+
|
|
67
|
+
{#await import('../SimpleEditor.svelte')}
|
|
68
|
+
<Loader2 class="animate-spin" />
|
|
69
|
+
{:then Module}
|
|
70
|
+
<div class="h-full w-full overflow-hidden" bind:clientHeight={editorHeight}>
|
|
71
|
+
<Module.default
|
|
72
|
+
bind:this={editor}
|
|
73
|
+
autoHeight
|
|
74
|
+
minHeight={editorHeight}
|
|
75
|
+
bind:code
|
|
76
|
+
lang="yaml"
|
|
77
|
+
/>
|
|
78
|
+
</div>
|
|
79
|
+
{/await}
|
|
80
|
+
</DrawerContent>
|
|
81
|
+
</Drawer>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import Drawer from '../common/drawer/Drawer.svelte';
|
|
2
|
+
import type { Runnable } from './utils';
|
|
3
|
+
import type { RawAppData } from './dataTableRefUtils';
|
|
4
|
+
export type RawAppYamlUpdate = {
|
|
5
|
+
summary?: string;
|
|
6
|
+
files?: Record<string, string>;
|
|
7
|
+
runnables?: Record<string, Runnable>;
|
|
8
|
+
data?: RawAppData;
|
|
9
|
+
};
|
|
10
|
+
interface Props {
|
|
11
|
+
drawer?: Drawer | undefined;
|
|
12
|
+
summary: string;
|
|
13
|
+
files: Record<string, string> | undefined;
|
|
14
|
+
runnables: Record<string, Runnable>;
|
|
15
|
+
data: RawAppData;
|
|
16
|
+
onApply: (update: RawAppYamlUpdate) => void;
|
|
17
|
+
}
|
|
18
|
+
declare const RawAppYamlEditor: import("svelte").Component<Props, {}, "drawer">;
|
|
19
|
+
type RawAppYamlEditor = ReturnType<typeof RawAppYamlEditor>;
|
|
20
|
+
export default RawAppYamlEditor;
|
|
@@ -13,7 +13,7 @@ export function createDatatablesResource(getWorkspace) {
|
|
|
13
13
|
if (!workspace)
|
|
14
14
|
return [];
|
|
15
15
|
try {
|
|
16
|
-
return await WorkspaceService.listDataTables({ workspace });
|
|
16
|
+
return (await WorkspaceService.listDataTables({ workspace })).map((d) => d.name);
|
|
17
17
|
}
|
|
18
18
|
catch (e) {
|
|
19
19
|
console.error('Failed to load datatables:', e);
|
|
@@ -178,7 +178,7 @@ export declare function buildRunsFilterSearchbarSchema({ paths, usernames, folde
|
|
|
178
178
|
label: string;
|
|
179
179
|
icon: typeof Zap;
|
|
180
180
|
options: {
|
|
181
|
-
label: "Google" | "Schedule" | "HTTP" | "WebSocket" | "Postgres" | "Kafka" | "NATS" | "MQTT" | "SQS" | "GCP Pub/Sub" | "Email" | "Webhook" | "Default Email";
|
|
181
|
+
label: "Google" | "GitHub" | "Schedule" | "HTTP" | "WebSocket" | "Postgres" | "Kafka" | "NATS" | "MQTT" | "SQS" | "GCP Pub/Sub" | "Email" | "Webhook" | "Default Email";
|
|
182
182
|
value: JobTriggerKind;
|
|
183
183
|
}[];
|
|
184
184
|
allowNegative: true;
|
|
@@ -13,7 +13,7 @@ export interface ScriptBuilderProps {
|
|
|
13
13
|
disableAi?: boolean;
|
|
14
14
|
fullyLoaded?: boolean;
|
|
15
15
|
initialPath?: string;
|
|
16
|
-
template?: 'docker' | 'bunnative' | 'claudesandbox' | 'wac_python' | 'wac_typescript' | 'script';
|
|
16
|
+
template?: 'docker' | 'bunnative' | 'claudesandbox' | 'wac_python' | 'wac_typescript' | 'ci_test_bun' | 'ci_test_python' | 'script';
|
|
17
17
|
initialArgs?: Record<string, any>;
|
|
18
18
|
lockedLanguage?: boolean;
|
|
19
19
|
showMeta?: boolean;
|