windmill-components 1.677.1 → 1.695.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/ArgInput.svelte +2 -0
- package/package/components/AutoscalingConfigEditor.svelte +18 -4
- package/package/components/CiTestResults.svelte +64 -0
- package/package/components/CiTestResults.svelte.d.ts +7 -0
- package/package/components/CompareWorkspaces.svelte +741 -484
- 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 +407 -74
- package/package/components/EditableSchemaForm.svelte +4 -0
- 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/ErrorOrRecoveryHandler.svelte +2 -2
- package/package/components/FlowPreviewContent.svelte +32 -30
- package/package/components/FlowRestartButton.svelte +143 -61
- package/package/components/FlowRestartButton.svelte.d.ts +37 -0
- package/package/components/FlowStatusViewer.svelte +15 -1
- package/package/components/FlowStatusViewer.svelte.d.ts +10 -2
- package/package/components/FlowStatusViewerInner.svelte +270 -222
- package/package/components/FlowStatusViewerInner.svelte.d.ts +6 -2
- package/package/components/FlowTimeline.svelte +1 -1
- package/package/components/FolderEditor.svelte +189 -4
- package/package/components/ForkConflictModal.svelte +57 -0
- package/package/components/ForkConflictModal.svelte.d.ts +3 -0
- package/package/components/ForkWorkspaceBanner.svelte +82 -11
- package/package/components/GitRepoViewer.svelte +251 -97
- package/package/components/GlobalUserOffboardingModal.svelte +293 -0
- package/package/components/GlobalUserOffboardingModal.svelte.d.ts +10 -0
- package/package/components/InputTransformSchemaForm.svelte +1 -1
- package/package/components/InstanceSettings.svelte +58 -19
- package/package/components/Login.svelte +133 -36
- package/package/components/Login.svelte.d.ts +1 -0
- 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/Path.svelte +7 -1
- package/package/components/Path.svelte.d.ts +1 -1
- package/package/components/QueueAlerts.svelte +10 -10
- package/package/components/ResourcePicker.svelte +2 -2
- package/package/components/RunsPage.svelte +2 -1
- package/package/components/S3FilePickerInner.svelte +89 -89
- package/package/components/ScriptBuilder.svelte +52 -11
- package/package/components/ScriptEditor.svelte +19 -8
- package/package/components/ScriptEditor.svelte.d.ts +1 -1
- package/package/components/ShareModal.svelte +236 -98
- package/package/components/ShareModal.svelte.d.ts +1 -1
- 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/components/helpers/RunnableComponent.svelte.d.ts +3 -0
- package/package/components/apps/components/helpers/executeRunnable.js +2 -1
- package/package/components/apps/editor/AppReportsDrawerInner.svelte +1 -1
- package/package/components/apps/editor/appPolicy.js +2 -1
- package/package/components/apps/editor/commonAppUtils.d.ts +3 -0
- package/package/components/apps/editor/inlineScriptsPanel/CacheTtlPopup.svelte +1 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +7 -0
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +4 -2
- package/package/components/apps/editor/inlineScriptsPanel/TagPopup.svelte +49 -0
- package/package/components/apps/editor/inlineScriptsPanel/TagPopup.svelte.d.ts +9 -0
- package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +12 -0
- package/package/components/apps/inputType.d.ts +1 -0
- package/package/components/apps/sharedTypes.d.ts +1 -0
- package/package/components/assets/AssetsDropdownButton.svelte +1 -1
- package/package/components/auditLogs/AuditLogsFilters.svelte +8 -3
- package/package/components/common/confirmationModal/ConfirmationModal.svelte +1 -1
- package/package/components/common/fileUpload/S3ArgInput.svelte +12 -10
- package/package/components/common/fileUpload/S3ArgInput.svelte.d.ts +2 -0
- 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/AIChatDisplay.svelte +5 -36
- package/package/components/copilot/chat/AIChatInput.svelte +56 -47
- package/package/components/copilot/chat/AIChatManager.svelte.js +50 -48
- package/package/components/copilot/chat/ContextElementBadge.svelte +6 -4
- 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.d.ts +12 -20
- package/package/components/copilot/chat/app/core.js +230 -159
- package/package/components/copilot/chat/app/core.test.js +417 -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/context.js +44 -0
- package/package/components/copilot/chat/flow/FlowAIChat.svelte +57 -76
- package/package/components/copilot/chat/flow/core.d.ts +14 -3
- package/package/components/copilot/chat/flow/core.js +494 -116
- package/package/components/copilot/chat/flow/helperUtils.d.ts +22 -0
- package/package/components/copilot/chat/flow/helperUtils.js +100 -0
- package/package/components/copilot/chat/flow/helperUtils.test.js +231 -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/openFlow.json +1 -1
- package/package/components/copilot/chat/flow/openFlowZod.gen.js +24 -0
- 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/script/core.js +3 -0
- package/package/components/copilot/chat/shared.d.ts +7 -2
- package/package/components/copilot/chat/shared.js +116 -53
- package/package/components/copilot/chat/shared.test.d.ts +1 -0
- package/package/components/copilot/chat/shared.test.js +412 -0
- package/package/components/copilot/chat/tokenUsage.d.ts +23 -0
- package/package/components/copilot/chat/tokenUsage.js +42 -0
- package/package/components/copilot/chat/workspaceTools.d.ts +7 -0
- package/package/components/copilot/chat/workspaceTools.js +239 -0
- package/package/components/copilot/chat/workspaceToolsZod.gen.d.ts +1295 -0
- package/package/components/copilot/chat/workspaceToolsZod.gen.js +424 -0
- package/package/components/copilot/lib.d.ts +5 -1
- package/package/components/copilot/lib.js +24 -6
- package/package/components/copilot/lib.test.d.ts +1 -0
- package/package/components/copilot/lib.test.js +19 -0
- package/package/components/copilot/modelConfig.d.ts +3 -0
- package/package/components/copilot/modelConfig.js +10 -0
- 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/FlowProgressBar.svelte +5 -2
- 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/FlowModuleComponent.svelte +636 -599
- package/package/components/flows/content/FlowModuleDeleteAfterUse.svelte +15 -7
- package/package/components/flows/content/FlowSettings.svelte +29 -0
- package/package/components/flows/conversations/FlowChatManager.svelte.js +21 -10
- 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 +11 -2
- 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 +73 -229
- package/package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +1 -2
- package/package/components/flows/pickers/PickHubScriptQuick.svelte +2 -2
- 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 -7
- package/package/components/git_sync/GitSyncRepositoryCard.svelte +2 -29
- package/package/components/git_sync/PullWorkspaceModal.svelte +6 -7
- package/package/components/graph/FlowGraphV2.svelte +8 -4
- package/package/components/graph/FlowGraphV2.svelte.d.ts +2 -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 +8 -2
- package/package/components/home/HomeConnectDrawer.svelte +125 -0
- package/package/components/home/HomeConnectDrawer.svelte.d.ts +5 -0
- package/package/components/home/deploy_ui.js +1 -1
- package/package/components/icons/AzureIcon.svelte +12 -25
- package/package/components/icons/AzureIcon.svelte.d.ts +3 -2
- 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 +66 -8
- package/package/components/mcp/McpScopeSelector.svelte +119 -9
- package/package/components/mcp/McpScopeSelector.svelte.d.ts +1 -0
- package/package/components/offboarding-utils.d.ts +11 -0
- package/package/components/offboarding-utils.js +102 -0
- package/package/components/progressBar/ProgressBar.svelte +9 -5
- package/package/components/progressBar/ProgressBar.svelte.d.ts +1 -0
- package/package/components/raw_apps/DeleteAfterUsePopup.svelte +52 -0
- package/package/components/raw_apps/DeleteAfterUsePopup.svelte.d.ts +9 -0
- package/package/components/raw_apps/RawAppBackgroundRunner.svelte +5 -1
- package/package/components/raw_apps/RawAppDataTableDrawer.svelte +1 -1
- package/package/components/raw_apps/RawAppEditor.svelte +186 -102
- 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/RawAppInlineScriptEditor.svelte +9 -3
- package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +2 -1
- package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +1 -0
- package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte.d.ts +1 -0
- package/package/components/raw_apps/RawAppInputsSpecEditor.svelte +48 -5
- package/package/components/raw_apps/RawAppSharedUiDrawer.svelte +129 -0
- package/package/components/raw_apps/RawAppSharedUiDrawer.svelte.d.ts +5 -0
- package/package/components/raw_apps/RawAppSidebar.svelte +12 -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/dataTableRefUtils.d.ts +7 -0
- package/package/components/raw_apps/dataTableRefUtils.js +34 -0
- package/package/components/raw_apps/dataTableRefUtils.test.d.ts +1 -0
- package/package/components/raw_apps/dataTableRefUtils.test.js +29 -0
- package/package/components/raw_apps/datatableUtils.svelte.js +1 -1
- package/package/components/raw_apps/rawAppPolicy.d.ts +1 -0
- package/package/components/raw_apps/rawAppPolicy.js +17 -2
- package/package/components/resources/resourceTypesFilter.d.ts +19 -0
- package/package/components/resources/resourceTypesFilter.js +21 -0
- package/package/components/restartFromStepPath.d.ts +39 -0
- package/package/components/restartFromStepPath.js +89 -0
- package/package/components/runs/JobDetailFieldConfig.d.ts +1 -0
- package/package/components/runs/JobDetailFieldConfig.js +57 -10
- package/package/components/runs/JobDetailHeader.svelte +24 -3
- package/package/components/runs/runsFilter.d.ts +1 -1
- package/package/components/schema/FlowPropertyEditor.svelte +30 -1
- package/package/components/schema/FlowPropertyEditor.svelte.d.ts +5 -2
- package/package/components/script_builder.d.ts +1 -1
- package/package/components/search/GlobalSearchModal.svelte +8 -1
- package/package/components/select/Select.svelte +3 -2
- package/package/components/select/Select.svelte.d.ts +1 -0
- package/package/components/settings/CreateToken.svelte +91 -71
- package/package/components/settings/CreateToken.svelte.d.ts +3 -0
- package/package/components/settings/EditTokenScopesModal.svelte +57 -0
- package/package/components/settings/EditTokenScopesModal.svelte.d.ts +10 -0
- package/package/components/settings/ScopesPicker.svelte +43 -0
- package/package/components/settings/ScopesPicker.svelte.d.ts +11 -0
- package/package/components/settings/TokensTable.svelte +51 -15
- package/package/components/settings/WorkspaceUserSettings.svelte +34 -28
- package/package/components/sidebar/OperatorMenu.svelte +6 -0
- package/package/components/sidebar/SidebarContent.svelte +68 -2
- package/package/components/sidebar/WorkspaceMenu.svelte +8 -4
- package/package/components/triggers/AddTriggersButton.svelte +17 -0
- package/package/components/triggers/CaptureWrapper.svelte +19 -1
- package/package/components/triggers/PermissionedAsLine.svelte +37 -3
- package/package/components/triggers/PermissionedAsLine.svelte.d.ts +6 -0
- package/package/components/triggers/TriggerEditorToolbar.svelte.d.ts +1 -1
- package/package/components/triggers/TriggerModeToggle.svelte +36 -7
- package/package/components/triggers/TriggerModeToggle.svelte.d.ts +1 -1
- package/package/components/triggers/TriggerSuspendedJobsModal.svelte.d.ts +1 -1
- package/package/components/triggers/TriggersEditor.svelte +10 -2
- package/package/components/triggers/TriggersWrapper.svelte +20 -0
- package/package/components/triggers/azure/AzureCapture.svelte +41 -0
- package/package/components/triggers/azure/AzureCapture.svelte.d.ts +44 -0
- package/package/components/triggers/azure/AzureTriggerEditor.svelte +20 -0
- package/package/components/triggers/azure/AzureTriggerEditor.svelte.d.ts +9 -0
- package/package/components/triggers/azure/AzureTriggerEditorConfigSection.svelte +301 -0
- package/package/components/triggers/azure/AzureTriggerEditorConfigSection.svelte.d.ts +16 -0
- package/package/components/triggers/azure/AzureTriggerEditorInner.svelte +422 -0
- package/package/components/triggers/azure/AzureTriggerEditorInner.svelte.d.ts +25 -0
- package/package/components/triggers/azure/AzureTriggerPanel.svelte +55 -0
- package/package/components/triggers/azure/AzureTriggerPanel.svelte.d.ts +10 -0
- package/{dist/sharedUtils/components/triggers/kafka → package/components/triggers/azure}/utils.d.ts +1 -1
- package/package/components/triggers/azure/utils.js +56 -0
- package/package/components/triggers/email/EmailTriggerEditorInner.svelte +15 -11
- package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +22 -14
- package/package/components/triggers/http/RouteEditorConfigSection.svelte +15 -7
- package/package/components/triggers/http/RouteEditorInner.svelte +16 -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 +22 -14
- package/package/components/triggers/mqtt/MqttTriggerEditorInner.svelte +22 -14
- 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 +22 -14
- package/package/components/triggers/postgres/PostgresTriggerEditor.svelte.d.ts +4 -3
- package/package/components/triggers/postgres/PostgresTriggerEditorInner.svelte +22 -14
- package/package/components/triggers/schedules/ScheduleEditorInner.svelte +22 -14
- package/package/components/triggers/sqs/SqsTriggerEditor.svelte.d.ts +4 -3
- package/package/components/triggers/sqs/SqsTriggerEditorInner.svelte +22 -14
- package/package/components/triggers/triggers.svelte.d.ts +1 -0
- package/package/components/triggers/triggers.svelte.js +24 -1
- package/package/components/triggers/utils.js +47 -6
- package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +22 -14
- 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/useNestedRestartState.svelte.d.ts +56 -0
- package/package/components/useNestedRestartState.svelte.js +320 -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/SharedUiSettings.svelte +175 -0
- package/package/components/workspaceSettings/SharedUiSettings.svelte.d.ts +3 -0
- 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 +795 -59
- package/package/gen/schemas.gen.js +801 -60
- package/package/gen/services.gen.d.ts +475 -5
- package/package/gen/services.gen.js +976 -23
- package/package/gen/types.gen.d.ts +1865 -75
- package/package/githubApp.js +5 -1
- package/package/hubPaths.json +2 -8
- package/package/infer.d.ts +1 -1
- package/package/infer.js +50 -52
- package/package/infer.svelte.js +10 -1
- package/package/mcpEndpointTools.js +60 -4
- 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 +31 -0
- package/package/stores.d.ts +11 -0
- package/package/stores.js +6 -0
- package/package/system_prompts/index.d.ts +1 -0
- package/package/system_prompts/index.js +8 -0
- package/package/system_prompts/prompts.d.ts +17 -13
- package/package/system_prompts/prompts.js +921 -61
- package/package/templates/ci_test_bun.ts.template +27 -0
- package/package/templates/ci_test_python.py.template +26 -0
- package/package/utils/forkConflict.d.ts +26 -0
- package/package/utils/forkConflict.js +56 -0
- package/package/utils_deployable.d.ts +164 -121
- package/package/utils_deployable.js +61 -11
- package/package/utils_workspace_deploy.d.ts +8 -8
- package/package/utils_workspace_deploy.js +89 -421
- package/package.json +30 -6
- package/dist/sharedUtils/assets/tokens/colorTokensConfig.d.ts +0 -2
- package/dist/sharedUtils/base.d.ts +0 -1
- package/dist/sharedUtils/cloud.d.ts +0 -1
- package/dist/sharedUtils/common.d.ts +0 -111
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/count.d.ts +0 -5
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/delete.d.ts +0 -5
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/insert.d.ts +0 -5
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/select.d.ts +0 -13
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/update.d.ts +0 -11
- package/dist/sharedUtils/components/apps/components/display/dbtable/utils.d.ts +0 -95
- package/dist/sharedUtils/components/apps/editor/appPolicy.d.ts +0 -6
- package/dist/sharedUtils/components/apps/editor/appUtilsCore.d.ts +0 -7
- package/dist/sharedUtils/components/apps/editor/appUtilsS3.d.ts +0 -33
- package/dist/sharedUtils/components/apps/editor/commonAppUtils.d.ts +0 -10
- package/dist/sharedUtils/components/apps/editor/component/components.d.ts +0 -5371
- package/dist/sharedUtils/components/apps/editor/component/default-codes.d.ts +0 -3
- package/dist/sharedUtils/components/apps/editor/component/index.d.ts +0 -3
- package/dist/sharedUtils/components/apps/editor/component/sets.d.ts +0 -7
- package/dist/sharedUtils/components/apps/editor/componentsPanel/componentDefaultProps.d.ts +0 -3
- package/dist/sharedUtils/components/apps/gridUtils.d.ts +0 -14
- package/dist/sharedUtils/components/apps/inputType.d.ts +0 -178
- package/dist/sharedUtils/components/apps/rx.d.ts +0 -29
- package/dist/sharedUtils/components/apps/sharedTypes.d.ts +0 -21
- package/dist/sharedUtils/components/apps/types.d.ts +0 -274
- package/dist/sharedUtils/components/assets/lib.d.ts +0 -25
- package/dist/sharedUtils/components/common/alert/model.d.ts +0 -2
- package/dist/sharedUtils/components/common/badge/model.d.ts +0 -8
- package/dist/sharedUtils/components/common/button/model.d.ts +0 -45
- package/dist/sharedUtils/components/common/fileInput/model.d.ts +0 -1
- package/dist/sharedUtils/components/common/index.d.ts +0 -24
- package/dist/sharedUtils/components/common/skeleton/model.d.ts +0 -21
- package/dist/sharedUtils/components/dbTypes.d.ts +0 -14
- package/dist/sharedUtils/components/diff_drawer.d.ts +0 -26
- package/dist/sharedUtils/components/ducklake.d.ts +0 -1
- package/dist/sharedUtils/components/flows/scheduleUtils.d.ts +0 -7
- package/dist/sharedUtils/components/icons/index.d.ts +0 -101
- package/dist/sharedUtils/components/random_positive_adjetive.d.ts +0 -1
- package/dist/sharedUtils/components/raw_apps/rawAppPolicy.d.ts +0 -10
- package/dist/sharedUtils/components/raw_apps/utils.d.ts +0 -15
- package/dist/sharedUtils/components/triggers/email/utils.d.ts +0 -4
- package/dist/sharedUtils/components/triggers/gcp/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers/http/utils.d.ts +0 -11
- package/dist/sharedUtils/components/triggers/mqtt/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers/nats/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers/postgres/utils.d.ts +0 -8
- package/dist/sharedUtils/components/triggers/sqs/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers/triggers.svelte.d.ts +0 -32
- package/dist/sharedUtils/components/triggers/utils.d.ts +0 -80
- package/dist/sharedUtils/components/triggers/websocket/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers.d.ts +0 -20
- package/dist/sharedUtils/gen/core/ApiError.d.ts +0 -10
- package/dist/sharedUtils/gen/core/ApiRequestOptions.d.ts +0 -13
- package/dist/sharedUtils/gen/core/ApiResult.d.ts +0 -7
- package/dist/sharedUtils/gen/core/CancelablePromise.d.ts +0 -26
- package/dist/sharedUtils/gen/core/OpenAPI.d.ts +0 -27
- package/dist/sharedUtils/gen/core/request.d.ts +0 -29
- package/dist/sharedUtils/gen/index.d.ts +0 -6
- package/dist/sharedUtils/gen/schemas.gen.d.ts +0 -7036
- package/dist/sharedUtils/gen/services.gen.d.ts +0 -6047
- package/dist/sharedUtils/gen/types.gen.d.ts +0 -21881
- package/dist/sharedUtils/history.svelte.d.ts +0 -9
- package/dist/sharedUtils/hub.d.ts +0 -49
- package/dist/sharedUtils/jsr.json +0 -6
- package/dist/sharedUtils/lib.d.ts +0 -5
- package/dist/sharedUtils/lib.es.js +0 -1588
- package/dist/sharedUtils/package.json +0 -12
- package/dist/sharedUtils/schema.d.ts +0 -3
- package/dist/sharedUtils/stores.d.ts +0 -97
- package/dist/sharedUtils/svelte5Utils.svelte.d.ts +0 -80
- package/dist/sharedUtils/toast.d.ts +0 -8
- package/dist/sharedUtils/utils.d.ts +0 -265
- package/package/components/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/openFlowZod.js +0 -24
- 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/copilot/chat/flow/{openFlowZod.d.ts → openFlowZod.gen.d.ts} +0 -0
- /package/package/components/{flows/agentToolUtils.test.d.ts → copilot/chat/flow/utils.test.d.ts} +0 -0
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
interface Props {
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
size?: number;
|
|
3
|
+
height?: number;
|
|
4
|
+
width?: number;
|
|
5
|
+
color?: string | undefined;
|
|
6
|
+
class?: string;
|
|
4
7
|
}
|
|
5
8
|
declare const GithubIcon: import("svelte").Component<Props, {}, "">;
|
|
6
9
|
type GithubIcon = ReturnType<typeof GithubIcon>;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
<script lang="ts">import DataTable from '../table/DataTable.svelte';
|
|
2
|
+
import Head from '../table/Head.svelte';
|
|
3
|
+
import Cell from '../table/Cell.svelte';
|
|
4
|
+
import SettingsPageHeader from '../settings/SettingsPageHeader.svelte';
|
|
5
|
+
import Toggle from '../Toggle.svelte';
|
|
6
|
+
import { displayDate } from '../../utils';
|
|
7
|
+
import { Check, X } from 'lucide-svelte';
|
|
8
|
+
let { tokens, hasMore, loading, activeOnly, onLoadMore, onActiveOnlyChange } = $props();
|
|
9
|
+
const loadMoreSize = 50;
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<SettingsPageHeader
|
|
13
|
+
title="External JWTs"
|
|
14
|
+
description="External JWT tokens that have authenticated against this instance, deduplicated by their claims."
|
|
15
|
+
/>
|
|
16
|
+
|
|
17
|
+
<div class="flex flex-row gap-2 items-center mb-2">
|
|
18
|
+
<Toggle
|
|
19
|
+
checked={activeOnly}
|
|
20
|
+
on:change={(e) => onActiveOnlyChange(e.detail)}
|
|
21
|
+
options={{
|
|
22
|
+
left: 'Recently active only',
|
|
23
|
+
leftTooltip: 'Show only tokens used in the last 30 days'
|
|
24
|
+
}}
|
|
25
|
+
/>
|
|
26
|
+
</div>
|
|
27
|
+
|
|
28
|
+
<DataTable
|
|
29
|
+
shouldLoadMore={hasMore}
|
|
30
|
+
loadMore={loadMoreSize}
|
|
31
|
+
{loading}
|
|
32
|
+
on:loadMore={() => onLoadMore()}
|
|
33
|
+
>
|
|
34
|
+
<Head>
|
|
35
|
+
<tr>
|
|
36
|
+
<Cell head first>Email</Cell>
|
|
37
|
+
<Cell head>Username</Cell>
|
|
38
|
+
<Cell head>Admin</Cell>
|
|
39
|
+
<Cell head>Operator</Cell>
|
|
40
|
+
<Cell head>Workspace</Cell>
|
|
41
|
+
<Cell head>Label</Cell>
|
|
42
|
+
<Cell head>Scopes</Cell>
|
|
43
|
+
<Cell head last>Last Used</Cell>
|
|
44
|
+
</tr>
|
|
45
|
+
</Head>
|
|
46
|
+
<tbody>
|
|
47
|
+
{#each tokens as token, i (token.jwt_hash)}
|
|
48
|
+
<tr class={i % 2 === 0 ? 'bg-surface-tertiary' : 'bg-surface'}>
|
|
49
|
+
{#if token.email === ''}
|
|
50
|
+
<Cell first colspan={7}>
|
|
51
|
+
<span class="text-tertiary italic">Legacy entry — details unavailable</span>
|
|
52
|
+
</Cell>
|
|
53
|
+
<Cell last><span class="whitespace-nowrap">{displayDate(token.last_used_at)}</span></Cell>
|
|
54
|
+
{:else}
|
|
55
|
+
<Cell first><span class="font-mono text-xs">{token.email}</span></Cell>
|
|
56
|
+
<Cell>{token.username}</Cell>
|
|
57
|
+
<Cell>
|
|
58
|
+
{#if token.is_admin}
|
|
59
|
+
<Check size={14} class="text-green-600" />
|
|
60
|
+
{:else}
|
|
61
|
+
<X size={14} class="text-tertiary" />
|
|
62
|
+
{/if}
|
|
63
|
+
</Cell>
|
|
64
|
+
<Cell>
|
|
65
|
+
{#if token.is_operator}
|
|
66
|
+
<Check size={14} class="text-green-600" />
|
|
67
|
+
{:else}
|
|
68
|
+
<X size={14} class="text-tertiary" />
|
|
69
|
+
{/if}
|
|
70
|
+
</Cell>
|
|
71
|
+
<Cell>{token.workspace_id ?? '-'}</Cell>
|
|
72
|
+
<Cell>{token.label ?? '-'}</Cell>
|
|
73
|
+
<Cell>
|
|
74
|
+
{#if token.scopes && token.scopes.length > 0}
|
|
75
|
+
{token.scopes.join(', ')}
|
|
76
|
+
{:else}
|
|
77
|
+
-
|
|
78
|
+
{/if}
|
|
79
|
+
</Cell>
|
|
80
|
+
<Cell last><span class="whitespace-nowrap">{displayDate(token.last_used_at)}</span></Cell>
|
|
81
|
+
{/if}
|
|
82
|
+
</tr>
|
|
83
|
+
{/each}
|
|
84
|
+
</tbody>
|
|
85
|
+
</DataTable>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ExternalJwtToken } from '../../gen';
|
|
2
|
+
interface Props {
|
|
3
|
+
tokens: ExternalJwtToken[];
|
|
4
|
+
hasMore: boolean;
|
|
5
|
+
loading: boolean;
|
|
6
|
+
activeOnly: boolean;
|
|
7
|
+
onLoadMore: () => void;
|
|
8
|
+
onActiveOnlyChange: (v: boolean) => void;
|
|
9
|
+
}
|
|
10
|
+
declare const ExternalJwtTokens: import("svelte").Component<Props, {}, "">;
|
|
11
|
+
type ExternalJwtTokens = ReturnType<typeof ExternalJwtTokens>;
|
|
12
|
+
export default ExternalJwtTokens;
|
|
@@ -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,23 @@ 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
|
+
{
|
|
306
|
+
label: 'Auto-login SSO provider',
|
|
307
|
+
description: 'If set, the login page redirects automatically to this provider. Use the OAuth provider key (e.g. "okta", "google") or "saml". The provider must be configured; otherwise the setting is ignored. Visit /user/login?no_sso=1 to bypass the redirect and fall back to the normal login form.',
|
|
308
|
+
key: 'auto_login_provider',
|
|
309
|
+
fieldType: 'text',
|
|
310
|
+
placeholder: 'okta',
|
|
311
|
+
storage: 'setting'
|
|
312
|
+
}
|
|
313
|
+
],
|
|
294
314
|
'DB Health': [],
|
|
295
315
|
Registries: [
|
|
296
316
|
{
|
|
@@ -397,6 +417,22 @@ export const settings = {
|
|
|
397
417
|
ee_only: '',
|
|
398
418
|
hiddenIfEmpty: true
|
|
399
419
|
},
|
|
420
|
+
{
|
|
421
|
+
label: 'Minimum release age (uv / Python)',
|
|
422
|
+
description: 'Refuse to install Python packages younger than this many seconds. Protects against supply-chain attacks via freshly published versions. Wires to <code>uv pip --exclude-newer</code>.',
|
|
423
|
+
key: 'uv_exclude_newer',
|
|
424
|
+
fieldType: 'seconds',
|
|
425
|
+
placeholder: '604800',
|
|
426
|
+
storage: 'setting'
|
|
427
|
+
},
|
|
428
|
+
{
|
|
429
|
+
label: 'Minimum release age (bun / npm)',
|
|
430
|
+
description: 'Refuse to install npm packages younger than this many seconds. Protects against supply-chain attacks via freshly published versions. Sets <code>BUN_INSTALL_MINIMUM_RELEASE_AGE</code>.',
|
|
431
|
+
key: 'bun_install_min_release_age',
|
|
432
|
+
fieldType: 'seconds',
|
|
433
|
+
placeholder: '604800',
|
|
434
|
+
storage: 'setting'
|
|
435
|
+
},
|
|
400
436
|
{
|
|
401
437
|
label: 'Nuget Config',
|
|
402
438
|
description: 'Write a nuget.config file to set custom package sources and credentials. Use <clear /> inside <packageSources> to remove default sources and only use your custom ones',
|
|
@@ -544,7 +580,8 @@ export const settings = {
|
|
|
544
580
|
key: 'otel',
|
|
545
581
|
fieldType: 'otel',
|
|
546
582
|
storage: 'setting',
|
|
547
|
-
ee_only: ''
|
|
583
|
+
ee_only: '',
|
|
584
|
+
triggersRestart: true
|
|
548
585
|
},
|
|
549
586
|
{
|
|
550
587
|
label: 'HTTP Request Tracing',
|
|
@@ -553,6 +590,7 @@ export const settings = {
|
|
|
553
590
|
fieldType: 'otel_tracing_proxy',
|
|
554
591
|
storage: 'setting',
|
|
555
592
|
ee_only: 'HTTP Request Tracing is an EE feature',
|
|
593
|
+
triggersRestart: true,
|
|
556
594
|
defaultValue: () => ({ enabled: false, enabled_languages: [...OTEL_TRACING_PROXY_LANGUAGES] })
|
|
557
595
|
},
|
|
558
596
|
{
|
|
@@ -561,7 +599,8 @@ export const settings = {
|
|
|
561
599
|
key: 'expose_metrics',
|
|
562
600
|
fieldType: 'boolean',
|
|
563
601
|
storage: 'setting',
|
|
564
|
-
ee_only: ''
|
|
602
|
+
ee_only: '',
|
|
603
|
+
triggersRestart: true
|
|
565
604
|
}
|
|
566
605
|
],
|
|
567
606
|
Indexer: [
|
|
@@ -621,6 +660,17 @@ export const settings = {
|
|
|
621
660
|
!value.endsWith('/') &&
|
|
622
661
|
!value.endsWith(' '))
|
|
623
662
|
}
|
|
663
|
+
],
|
|
664
|
+
LSP: [
|
|
665
|
+
{
|
|
666
|
+
label: 'Ruff config (ruff.toml)',
|
|
667
|
+
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>',
|
|
668
|
+
key: 'ruff_config',
|
|
669
|
+
fieldType: 'codearea',
|
|
670
|
+
codeAreaLang: 'toml',
|
|
671
|
+
placeholder: 'line-length = 100\n\n[lint]\nselect = ["E", "F", "I"]\nignore = ["E501"]',
|
|
672
|
+
storage: 'setting'
|
|
673
|
+
}
|
|
624
674
|
]
|
|
625
675
|
};
|
|
626
676
|
export const settingsKeys = Object.keys(settings);
|
|
@@ -780,6 +830,12 @@ export const instanceSettingsNavigationGroups = [
|
|
|
780
830
|
label: 'WebSocket',
|
|
781
831
|
aiId: 'instance-settings-websocket',
|
|
782
832
|
aiDescription: 'WebSocket connectivity test and URL override'
|
|
833
|
+
},
|
|
834
|
+
{
|
|
835
|
+
id: 'lsp',
|
|
836
|
+
label: 'LSP',
|
|
837
|
+
aiId: 'instance-settings-lsp',
|
|
838
|
+
aiDescription: 'Language server protocol settings (ruff config, editor linting)'
|
|
783
839
|
}
|
|
784
840
|
]
|
|
785
841
|
}
|
|
@@ -803,7 +859,8 @@ export const tabToCategoryMap = {
|
|
|
803
859
|
private_hub: 'Private Hub',
|
|
804
860
|
github_enterprise_app: 'GitHub App',
|
|
805
861
|
websocket: 'WebSocket',
|
|
806
|
-
db_health: 'DB Health'
|
|
862
|
+
db_health: 'DB Health',
|
|
863
|
+
lsp: 'LSP'
|
|
807
864
|
};
|
|
808
865
|
export const tabToAuthSubTab = {
|
|
809
866
|
sso: 'sso',
|
|
@@ -834,7 +891,8 @@ export const categoryToTabMap = {
|
|
|
834
891
|
'Private Hub': 'private_hub',
|
|
835
892
|
'GitHub App': 'github_enterprise_app',
|
|
836
893
|
WebSocket: 'websocket',
|
|
837
|
-
'DB Health': 'db_health'
|
|
894
|
+
'DB Health': 'db_health',
|
|
895
|
+
LSP: 'lsp'
|
|
838
896
|
};
|
|
839
897
|
/**
|
|
840
898
|
* Extract the label portion from a uFuzzy marked/highlighted string.
|
|
@@ -9,18 +9,19 @@ import { FlowService, FolderService, IntegrationService, ScriptService } from '.
|
|
|
9
9
|
import { mcpEndpointTools } from '../../mcpEndpointTools';
|
|
10
10
|
import InfoIcon from 'lucide-svelte/icons/info';
|
|
11
11
|
import { SvelteMap } from 'svelte/reactivity';
|
|
12
|
-
let { workspaceId, scope = $bindable() } = $props();
|
|
13
|
-
|
|
14
|
-
let
|
|
12
|
+
let { workspaceId, scope = $bindable(), initialScope } = $props();
|
|
13
|
+
const parsedInitial = parseInitialScope(initialScope);
|
|
14
|
+
let selectedMode = $state(parsedInitial.mode);
|
|
15
|
+
let selectedFolders = $state(parsedInitial.folders);
|
|
15
16
|
let allFolders = $state([]);
|
|
16
17
|
let loadingFolders = $state(false);
|
|
17
18
|
let folderNamesCache = new Map();
|
|
18
|
-
let selectedScripts = $state(
|
|
19
|
-
let selectedFlows = $state(
|
|
20
|
-
let selectedEndpoints = $state(
|
|
21
|
-
let customScriptPatterns = $state(
|
|
22
|
-
let customFlowPatterns = $state(
|
|
23
|
-
let newMcpApps = $state(
|
|
19
|
+
let selectedScripts = $state(parsedInitial.scripts);
|
|
20
|
+
let selectedFlows = $state(parsedInitial.flows);
|
|
21
|
+
let selectedEndpoints = $state(parsedInitial.endpoints);
|
|
22
|
+
let customScriptPatterns = $state(parsedInitial.scriptPatterns);
|
|
23
|
+
let customFlowPatterns = $state(parsedInitial.flowPatterns);
|
|
24
|
+
let newMcpApps = $state(parsedInitial.hubApps);
|
|
24
25
|
let allScripts = $state([]);
|
|
25
26
|
let allFlows = $state([]);
|
|
26
27
|
let allApps = $state([]);
|
|
@@ -35,6 +36,88 @@ function parsePatterns(input) {
|
|
|
35
36
|
.map((p) => p.trim())
|
|
36
37
|
.filter((p) => p.length > 0);
|
|
37
38
|
}
|
|
39
|
+
function parseInitialScope(input) {
|
|
40
|
+
const empty = {
|
|
41
|
+
mode: 'favorites',
|
|
42
|
+
folders: [],
|
|
43
|
+
scripts: [],
|
|
44
|
+
flows: [],
|
|
45
|
+
endpoints: [],
|
|
46
|
+
scriptPatterns: '',
|
|
47
|
+
flowPatterns: '',
|
|
48
|
+
hubApps: []
|
|
49
|
+
};
|
|
50
|
+
if (!input)
|
|
51
|
+
return empty;
|
|
52
|
+
const parts = input.split(/\s+/).filter((p) => p.length > 0);
|
|
53
|
+
if (parts.length === 0)
|
|
54
|
+
return empty;
|
|
55
|
+
const byKind = {};
|
|
56
|
+
let mode = 'custom';
|
|
57
|
+
const hubApps = [];
|
|
58
|
+
for (const part of parts) {
|
|
59
|
+
if (part === 'mcp:favorites') {
|
|
60
|
+
mode = 'favorites';
|
|
61
|
+
}
|
|
62
|
+
else if (part === 'mcp:all') {
|
|
63
|
+
mode = 'all';
|
|
64
|
+
}
|
|
65
|
+
else if (part.startsWith('mcp:hub:')) {
|
|
66
|
+
hubApps.push(...parsePatterns(part.slice('mcp:hub:'.length)));
|
|
67
|
+
}
|
|
68
|
+
else if (part.startsWith('mcp:scripts:')) {
|
|
69
|
+
byKind.scripts = parsePatterns(part.slice('mcp:scripts:'.length));
|
|
70
|
+
}
|
|
71
|
+
else if (part.startsWith('mcp:flows:')) {
|
|
72
|
+
byKind.flows = parsePatterns(part.slice('mcp:flows:'.length));
|
|
73
|
+
}
|
|
74
|
+
else if (part.startsWith('mcp:endpoints:')) {
|
|
75
|
+
byKind.endpoints = parsePatterns(part.slice('mcp:endpoints:'.length));
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// Detect folder mode: scripts and flows are exclusively `f/X/*` patterns
|
|
79
|
+
// for the same set of folders, and endpoints is exactly `*`.
|
|
80
|
+
const folderRe = /^f\/([^/]+)\/\*$/;
|
|
81
|
+
const scriptFolders = (byKind.scripts ?? []).map((p) => p.match(folderRe)?.[1]);
|
|
82
|
+
const flowFolders = (byKind.flows ?? []).map((p) => p.match(folderRe)?.[1]);
|
|
83
|
+
const allScriptsAreFolders = scriptFolders.length > 0 && scriptFolders.every((f) => !!f);
|
|
84
|
+
const allFlowsAreFolders = flowFolders.length > 0 && flowFolders.every((f) => !!f);
|
|
85
|
+
const sameFolders = allScriptsAreFolders &&
|
|
86
|
+
allFlowsAreFolders &&
|
|
87
|
+
scriptFolders.length === flowFolders.length &&
|
|
88
|
+
scriptFolders.every((f, i) => f === flowFolders[i]);
|
|
89
|
+
const endpointsIsAll = byKind.endpoints?.length === 1 && byKind.endpoints[0] === '*';
|
|
90
|
+
if (mode !== 'favorites' && mode !== 'all' && sameFolders && endpointsIsAll) {
|
|
91
|
+
return {
|
|
92
|
+
mode: 'folder',
|
|
93
|
+
folders: scriptFolders.filter((f) => !!f),
|
|
94
|
+
scripts: [],
|
|
95
|
+
flows: [],
|
|
96
|
+
endpoints: [],
|
|
97
|
+
scriptPatterns: '',
|
|
98
|
+
flowPatterns: '',
|
|
99
|
+
hubApps
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
if (mode === 'favorites' || mode === 'all') {
|
|
103
|
+
return { ...empty, mode, hubApps };
|
|
104
|
+
}
|
|
105
|
+
// Custom mode: split each list into "selectable" entries (later filtered
|
|
106
|
+
// against allScripts/allFlows once loaded) and free-form patterns.
|
|
107
|
+
// We can't know yet which are real paths vs wildcard patterns, so pass
|
|
108
|
+
// everything as patterns; once allScripts/allFlows load, $effect will
|
|
109
|
+
// move matching entries into selectedScripts/selectedFlows.
|
|
110
|
+
return {
|
|
111
|
+
mode: 'custom',
|
|
112
|
+
folders: [],
|
|
113
|
+
scripts: [],
|
|
114
|
+
flows: [],
|
|
115
|
+
endpoints: byKind.endpoints ?? [],
|
|
116
|
+
scriptPatterns: (byKind.scripts ?? []).join(','),
|
|
117
|
+
flowPatterns: (byKind.flows ?? []).join(','),
|
|
118
|
+
hubApps
|
|
119
|
+
};
|
|
120
|
+
}
|
|
38
121
|
// Compute scope string from selections
|
|
39
122
|
$effect(() => {
|
|
40
123
|
let scopeParts = [];
|
|
@@ -229,6 +312,33 @@ $effect(() => {
|
|
|
229
312
|
loadAllScriptsAndFlows(workspaceId);
|
|
230
313
|
}
|
|
231
314
|
});
|
|
315
|
+
// One-shot: once allScripts/allFlows are loaded, split the
|
|
316
|
+
// initial pattern text into known paths (selectedScripts/Flows) vs
|
|
317
|
+
// remaining wildcards/unknowns (kept in pattern textbox).
|
|
318
|
+
let initialSplitDone = $state(false);
|
|
319
|
+
$effect(() => {
|
|
320
|
+
if (initialSplitDone || selectedMode !== 'custom')
|
|
321
|
+
return;
|
|
322
|
+
if (allScripts.length === 0 && allFlows.length === 0)
|
|
323
|
+
return;
|
|
324
|
+
const scriptSet = new Set(allScripts);
|
|
325
|
+
const flowSet = new Set(allFlows);
|
|
326
|
+
const scriptParts = parsePatterns(customScriptPatterns);
|
|
327
|
+
const knownScripts = scriptParts.filter((p) => scriptSet.has(p));
|
|
328
|
+
const remainingScripts = scriptParts.filter((p) => !scriptSet.has(p));
|
|
329
|
+
const flowParts = parsePatterns(customFlowPatterns);
|
|
330
|
+
const knownFlows = flowParts.filter((p) => flowSet.has(p));
|
|
331
|
+
const remainingFlows = flowParts.filter((p) => !flowSet.has(p));
|
|
332
|
+
if (knownScripts.length > 0) {
|
|
333
|
+
selectedScripts = [...new Set([...selectedScripts, ...knownScripts])];
|
|
334
|
+
customScriptPatterns = remainingScripts.join(',');
|
|
335
|
+
}
|
|
336
|
+
if (knownFlows.length > 0) {
|
|
337
|
+
selectedFlows = [...new Set([...selectedFlows, ...knownFlows])];
|
|
338
|
+
customFlowPatterns = remainingFlows.join(',');
|
|
339
|
+
}
|
|
340
|
+
initialSplitDone = true;
|
|
341
|
+
});
|
|
232
342
|
const warning = $derived(selectedMode === 'all'
|
|
233
343
|
? 'Create your first scripts or flows to make them available via MCP.'
|
|
234
344
|
: selectedMode === 'favorites'
|
|
@@ -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;
|