windmill-components 1.623.2 → 1.642.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/dist/sharedUtils/assets/tokens/colorTokensConfig.d.ts +2 -0
- package/dist/sharedUtils/base.d.ts +1 -0
- package/dist/sharedUtils/cloud.d.ts +1 -0
- package/dist/sharedUtils/common.d.ts +111 -0
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/count.d.ts +5 -0
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/delete.d.ts +5 -0
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/insert.d.ts +5 -0
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/select.d.ts +13 -0
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/update.d.ts +11 -0
- package/dist/sharedUtils/components/apps/components/display/dbtable/utils.d.ts +95 -0
- package/dist/sharedUtils/components/apps/editor/appPolicy.d.ts +6 -0
- package/dist/sharedUtils/components/apps/editor/appUtilsCore.d.ts +7 -0
- package/dist/sharedUtils/components/apps/editor/appUtilsS3.d.ts +33 -0
- package/dist/sharedUtils/components/apps/editor/commonAppUtils.d.ts +10 -0
- package/dist/sharedUtils/components/apps/editor/component/components.d.ts +5371 -0
- package/dist/sharedUtils/components/apps/editor/component/default-codes.d.ts +3 -0
- package/dist/sharedUtils/components/apps/editor/component/index.d.ts +3 -0
- package/dist/sharedUtils/components/apps/editor/component/sets.d.ts +7 -0
- package/dist/sharedUtils/components/apps/editor/componentsPanel/componentDefaultProps.d.ts +3 -0
- package/dist/sharedUtils/components/apps/gridUtils.d.ts +14 -0
- package/dist/sharedUtils/components/apps/inputType.d.ts +178 -0
- package/dist/sharedUtils/components/apps/rx.d.ts +29 -0
- package/dist/sharedUtils/components/apps/sharedTypes.d.ts +21 -0
- package/dist/sharedUtils/components/apps/types.d.ts +274 -0
- package/dist/sharedUtils/components/assets/lib.d.ts +25 -0
- package/dist/sharedUtils/components/common/alert/model.d.ts +2 -0
- package/dist/sharedUtils/components/common/badge/model.d.ts +8 -0
- package/dist/sharedUtils/components/common/button/model.d.ts +45 -0
- package/dist/sharedUtils/components/common/fileInput/model.d.ts +1 -0
- package/dist/sharedUtils/components/common/index.d.ts +24 -0
- package/dist/sharedUtils/components/common/skeleton/model.d.ts +21 -0
- package/dist/sharedUtils/components/dbTypes.d.ts +14 -0
- package/dist/sharedUtils/components/diff_drawer.d.ts +26 -0
- package/dist/sharedUtils/components/ducklake.d.ts +1 -0
- package/dist/sharedUtils/components/flows/scheduleUtils.d.ts +7 -0
- package/dist/sharedUtils/components/icons/index.d.ts +101 -0
- package/dist/sharedUtils/components/random_positive_adjetive.d.ts +1 -0
- package/dist/sharedUtils/components/raw_apps/rawAppPolicy.d.ts +10 -0
- package/dist/sharedUtils/components/raw_apps/utils.d.ts +15 -0
- package/dist/sharedUtils/components/triggers/email/utils.d.ts +4 -0
- package/dist/sharedUtils/components/triggers/gcp/utils.d.ts +2 -0
- package/dist/sharedUtils/components/triggers/http/utils.d.ts +11 -0
- package/dist/sharedUtils/components/triggers/kafka/utils.d.ts +2 -0
- package/dist/sharedUtils/components/triggers/mqtt/utils.d.ts +2 -0
- package/dist/sharedUtils/components/triggers/nats/utils.d.ts +2 -0
- package/dist/sharedUtils/components/triggers/postgres/utils.d.ts +8 -0
- package/dist/sharedUtils/components/triggers/sqs/utils.d.ts +2 -0
- package/dist/sharedUtils/components/triggers/triggers.svelte.d.ts +32 -0
- package/dist/sharedUtils/components/triggers/utils.d.ts +80 -0
- package/dist/sharedUtils/components/triggers/websocket/utils.d.ts +2 -0
- package/dist/sharedUtils/components/triggers.d.ts +20 -0
- package/dist/sharedUtils/gen/core/ApiError.d.ts +10 -0
- package/dist/sharedUtils/gen/core/ApiRequestOptions.d.ts +13 -0
- package/dist/sharedUtils/gen/core/ApiResult.d.ts +7 -0
- package/dist/sharedUtils/gen/core/CancelablePromise.d.ts +26 -0
- package/dist/sharedUtils/gen/core/OpenAPI.d.ts +27 -0
- package/dist/sharedUtils/gen/core/request.d.ts +29 -0
- package/dist/sharedUtils/gen/index.d.ts +6 -0
- package/dist/sharedUtils/gen/schemas.gen.d.ts +7036 -0
- package/dist/sharedUtils/gen/services.gen.d.ts +6047 -0
- package/dist/sharedUtils/gen/types.gen.d.ts +21881 -0
- package/dist/sharedUtils/history.svelte.d.ts +9 -0
- package/dist/sharedUtils/hub.d.ts +49 -0
- package/dist/sharedUtils/jsr.json +6 -0
- package/dist/sharedUtils/lib.d.ts +5 -0
- package/dist/sharedUtils/lib.es.js +1588 -0
- package/dist/sharedUtils/package.json +12 -0
- package/dist/sharedUtils/schema.d.ts +3 -0
- package/dist/sharedUtils/stores.d.ts +97 -0
- package/dist/sharedUtils/svelte5Utils.svelte.d.ts +80 -0
- package/dist/sharedUtils/toast.d.ts +8 -0
- package/dist/sharedUtils/utils.d.ts +265 -0
- package/package/assets/app.css +32 -13
- package/package/components/AIAgentLogViewer.svelte +2 -2
- package/package/components/AIAgentLogViewer.svelte.d.ts +1 -0
- package/package/components/AIProviderPicker.svelte +20 -80
- package/package/components/AIProviderPicker.svelte.d.ts +2 -7
- package/package/components/AddUser.svelte +2 -2
- package/package/components/ApiConnectForm.svelte +7 -1
- package/package/components/AppConnectInner.svelte.d.ts +1 -1
- package/package/components/ArgInput.svelte +15 -5
- package/package/components/ArgInput.svelte.d.ts +3 -4
- package/package/components/Auth0Setting.svelte +6 -2
- package/package/components/AuthSettings.svelte +68 -39
- package/package/components/AuthSettings.svelte.d.ts +3 -1
- package/package/components/AutheliaSetting.svelte +3 -2
- package/package/components/AuthentikSetting.svelte +3 -2
- package/package/components/AutoscalingConfigEditor.svelte +2 -1
- package/package/components/AutoscalingConfigEditor.svelte.d.ts +1 -0
- package/package/components/CenteredModal.svelte +14 -4
- package/package/components/CenteredModal.svelte.d.ts +1 -0
- package/package/components/ChangeInstanceUsernameInner.svelte +1 -1
- package/package/components/CompareWorkspaces.svelte +29 -57
- package/package/components/ConcurrentJobsChart.svelte +1 -1
- package/package/components/ConnectionSection.svelte +69 -73
- package/package/components/CustomSso.svelte +7 -7
- package/package/components/DBManager.svelte +15 -4
- package/package/components/DBManager.svelte.d.ts +2 -0
- package/package/components/DBManagerContent.svelte +5 -0
- package/package/components/DBManagerContent.svelte.d.ts +1 -0
- package/package/components/DBManagerDrawer.svelte +2 -0
- package/package/components/DatatablePicker.svelte +29 -0
- package/package/components/DatatablePicker.svelte.d.ts +13 -0
- package/package/components/DateTimeInput.svelte +3 -3
- package/package/components/DedicatedWorkersSelector.svelte +39 -42
- package/package/components/DeployToSetting.svelte +183 -123
- package/package/components/DeployToSetting.svelte.d.ts +19 -28
- package/package/components/DeployWorkspace.svelte +6 -44
- package/package/components/DeployWorkspace.svelte.d.ts +2 -1
- package/package/components/DeployWorkspaceDrawer.svelte +18 -7
- package/package/components/DeployWorkspaceDrawer.svelte.d.ts +3 -20
- package/package/components/Description.svelte +3 -1
- package/package/components/Dev.svelte +1 -0
- package/package/components/DiffEditor.svelte +7 -6
- package/package/components/DiffEditor.svelte.d.ts +2 -6
- package/package/components/DisplayResult.svelte +2 -2
- package/package/components/DropdownMenu.svelte +39 -0
- package/package/components/DropdownMenu.svelte.d.ts +14 -0
- package/package/components/DropdownSubmenuItem.svelte +68 -0
- package/package/components/DropdownSubmenuItem.svelte.d.ts +10 -0
- package/package/components/DropdownV2.svelte +3 -3
- package/package/components/DropdownV2Inner.svelte +42 -34
- package/package/components/DropdownV2Inner.svelte.d.ts +2 -1
- package/package/components/DucklakePicker.svelte +2 -5
- package/package/components/EEOnly.svelte +4 -14
- package/package/components/EEOnly.svelte.d.ts +0 -1
- package/package/components/Editor.svelte +2 -2
- package/package/components/Editor.svelte.d.ts +1 -0
- package/package/components/EditorBar.svelte +2 -4
- package/package/components/ErrorOrRecoveryHandler.svelte +62 -53
- package/package/components/ErrorOrRecoveryHandler.svelte.d.ts +1 -0
- package/package/components/ExploreAssetButton.svelte +1 -2
- package/package/components/FileExplorer.svelte +249 -0
- package/package/components/FileExplorer.svelte.d.ts +21 -0
- package/package/components/FilesetEditor.svelte +103 -0
- package/package/components/FilesetEditor.svelte.d.ts +6 -0
- package/package/components/FilterSearchbar.svelte +628 -0
- package/package/components/FilterSearchbar.svelte.d.ts +86 -0
- package/package/components/FlowBuilder.svelte +123 -79
- package/package/components/FlowGraphViewerStep.svelte +49 -33
- package/package/components/FlowHistoryJobPicker.svelte +2 -1
- package/package/components/FlowJobResult.svelte +31 -23
- package/package/components/FlowJobResult.svelte.d.ts +0 -1
- package/package/components/FlowLogRow.svelte +1 -1
- package/package/components/FlowLogViewer.svelte +8 -3
- package/package/components/FlowPreviewContent.svelte +65 -49
- package/package/components/FlowPreviewContent.svelte.d.ts +4 -0
- package/package/components/FlowRestartButton.svelte +47 -47
- package/package/components/FlowRestartButton.svelte.d.ts +2 -0
- package/package/components/FlowStatusViewer.svelte +2 -3
- package/package/components/FlowStatusViewer.svelte.d.ts +1 -0
- package/package/components/FlowStatusViewerInner.svelte +380 -297
- package/package/components/FlowStatusViewerInner.svelte.d.ts +2 -2
- package/package/components/FlowStatusWaitingForEvents.svelte +11 -10
- package/package/components/FolderPicker.svelte +195 -65
- package/package/components/FolderPicker.svelte.d.ts +2 -0
- package/package/components/HistoricInputs.svelte +3 -4
- package/package/components/IconedResourceType.svelte +8 -2
- package/package/components/IconedResourceType.svelte.d.ts +2 -0
- package/package/components/InputError.svelte +9 -0
- package/package/components/InputError.svelte.d.ts +6 -0
- package/package/components/InputTransformForm.svelte +46 -39
- package/package/components/InputTransformForm.svelte.d.ts +1 -0
- package/package/components/InputTransformSchemaForm.svelte +2 -1
- package/package/components/InputTransformSchemaForm.svelte.d.ts +1 -0
- package/package/components/InputTransformsViewer.svelte +37 -20
- package/package/components/InstanceNameEditor.svelte +3 -1
- package/package/components/InstanceSetting.svelte +150 -374
- package/package/components/InstanceSetting.svelte.d.ts +1 -0
- package/package/components/InstanceSettings.svelte +804 -193
- package/package/components/InstanceSettings.svelte.d.ts +17 -2
- package/package/components/IntegerInput.svelte +58 -0
- package/package/components/IntegerInput.svelte.d.ts +14 -0
- package/package/components/InviteGlobalUser.svelte +25 -25
- package/package/components/InviteGlobalUser.svelte.d.ts +4 -2
- package/package/components/JobArgs.svelte +14 -10
- package/package/components/JobLoader.svelte +6 -4
- package/package/components/JobLoader.svelte.d.ts +2 -2
- package/package/components/JobStatus.svelte +29 -26
- package/package/components/JobStatus.svelte.d.ts +1 -0
- package/package/components/KanidmSetting.svelte +3 -2
- package/package/components/KeycloakSetting.svelte +3 -2
- package/package/components/Login.svelte +9 -3
- package/package/components/ModuleStatus.svelte +5 -5
- package/package/components/ModuleTest.svelte +3 -3
- package/package/components/MoveDrawer.svelte +47 -76
- package/package/components/MoveDrawer.svelte.d.ts +4 -6
- package/package/components/NextcloudSetting.svelte +3 -2
- package/package/components/NoDirectDeployAlert.svelte +31 -0
- package/package/components/NoDirectDeployAlert.svelte.d.ts +6 -0
- package/package/components/NumberTypeNarrowing.svelte +65 -67
- package/package/components/NumberTypeNarrowing.svelte.d.ts +2 -1
- package/package/components/OAuthSetting.svelte +6 -14
- package/package/components/ObjectStoreConfigSettings.svelte +150 -55
- package/package/components/ObjectStoreConfigSettings.svelte.d.ts +34 -44
- package/package/components/OktaSetting.svelte +3 -2
- package/package/components/PageHeader.svelte +1 -1
- package/package/components/ParentWorkspaceProtectionAlert.svelte +48 -0
- package/package/components/ParentWorkspaceProtectionAlert.svelte.d.ts +7 -0
- package/package/components/Path.svelte +40 -28
- package/package/components/Path.svelte.d.ts +3 -0
- package/package/components/PocketIdSetting.svelte +3 -2
- package/package/components/ResourceEditor.svelte +9 -3
- package/package/components/ResourcePicker.svelte +2 -5
- package/package/components/RightClickPopover.svelte +37 -0
- package/package/components/RightClickPopover.svelte.d.ts +11 -0
- package/package/components/RunChart.svelte +2 -21
- package/package/components/RunChart.svelte.d.ts +0 -3
- package/package/components/RunsPage.svelte +458 -560
- package/package/components/SaveButton.svelte +78 -0
- package/package/components/SaveButton.svelte.d.ts +12 -0
- package/package/components/SaveInputsButton.svelte +1 -1
- package/package/components/SavedInputsV2.svelte +1 -3
- package/package/components/SchemaFormWithArgPicker.svelte +34 -30
- package/package/components/SchemaFormWithArgPicker.svelte.d.ts +12 -21
- package/package/components/SchemaViewer.svelte +56 -53
- package/package/components/ScriptBuilder.svelte +12 -12
- package/package/components/ScriptEditor.svelte +30 -28
- package/package/components/Section.svelte +2 -2
- package/package/components/ServiceLogsInner.svelte +21 -82
- package/package/components/Star.svelte +8 -22
- package/package/components/Star.svelte.d.ts +4 -4
- package/package/components/StringTypeNarrowing.svelte +1 -0
- package/package/components/SummaryPathDisplay.svelte +177 -0
- package/package/components/SummaryPathDisplay.svelte.d.ts +10 -0
- package/package/components/SuperadminSettings.svelte +185 -4
- package/package/components/SuperadminSettings.svelte.d.ts +4 -1
- package/package/components/SuperadminSettingsInner.svelte +307 -192
- package/package/components/SuperadminSettingsInner.svelte.d.ts +12 -1
- package/package/components/TaggedTextInput.svelte +449 -0
- package/package/components/TaggedTextInput.svelte.d.ts +28 -0
- package/package/components/Toast.svelte +69 -51
- package/package/components/Toast.svelte.d.ts +2 -2
- package/package/components/Tooltip.svelte +2 -2
- package/package/components/Tooltip.svelte.d.ts +2 -0
- package/package/components/TooltipInner.svelte +6 -1
- package/package/components/TooltipInner.svelte.d.ts +1 -0
- package/package/components/Uptodate.svelte +3 -2
- package/package/components/UserSettings.svelte +2 -2
- package/package/components/UserSettings.svelte.d.ts +1 -0
- package/package/components/WorkerGroup.svelte +320 -192
- package/package/components/WorkerGroup.svelte.d.ts +2 -0
- package/package/components/WorkspaceDependenciesEditor.svelte +33 -17
- package/package/components/ZitadelSetting.svelte +3 -2
- package/package/components/aiProviderStorage.d.ts +5 -0
- package/package/components/aiProviderStorage.js +50 -0
- package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +24 -13
- package/package/components/apps/components/display/dbtable/metadata.d.ts +1 -0
- package/package/components/apps/components/display/dbtable/metadata.js +1 -0
- package/package/components/apps/components/display/dbtable/queries/count.js +3 -1
- package/package/components/apps/components/display/dbtable/queries/delete.js +3 -1
- package/package/components/apps/components/display/dbtable/queries/insert.js +3 -1
- package/package/components/apps/components/display/dbtable/queries/select.js +15 -1
- package/package/components/apps/components/display/dbtable/queries/update.js +3 -1
- package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +6 -0
- package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +1 -0
- package/package/components/apps/components/display/table/AppAggridTable.svelte +7 -0
- package/package/components/apps/components/display/table/AppAggridTableActions.svelte +9 -3
- package/package/components/apps/components/display/table/AppAggridTableActions.svelte.d.ts +1 -0
- package/package/components/apps/components/display/table/theme/windmill-theme.css +8 -7
- package/package/components/apps/components/helpers/eval.js +5 -2
- package/package/components/apps/components/layout/AppModal.svelte +2 -1
- package/package/components/apps/components/layout/AppModal.svelte.d.ts +1 -0
- package/package/components/apps/editor/appPolicy.js +5 -4
- package/package/components/apps/editor/appUtils.d.ts +1 -1
- package/package/components/apps/editor/component/components.d.ts +11 -0
- package/package/components/apps/editor/component/components.js +19 -2
- package/package/components/apps/editor/componentsPanel/CssProperty.svelte +3 -1
- package/package/components/apps/editor/inlineScriptsPanel/CacheTtlPopup.svelte +1 -1
- package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +1 -1
- package/package/components/apps/editor/settingsPanel/OneOfInputSpecsEditor.svelte +1 -1
- package/package/components/apps/editor/settingsPanel/StylePanel.svelte +66 -29
- package/package/components/apps/editor/settingsPanel/StylePanel.svelte.d.ts +2 -17
- package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +10 -0
- package/package/components/apps/inputType.d.ts +2 -2
- package/package/components/assets/AssetButtons.svelte +3 -7
- package/package/components/assets/AssetButtons.svelte.d.ts +2 -4
- package/package/components/assets/AssetColumnBadges.svelte +35 -0
- package/package/components/assets/AssetColumnBadges.svelte.d.ts +10 -0
- package/package/components/assets/AssetsDropdownButton.svelte +8 -6
- package/package/components/assets/AssetsUsageDrawer.svelte +16 -14
- package/package/components/assets/JobAssetsViewer.svelte +4 -6
- package/package/components/assets/assetsFilter.d.ts +50 -0
- package/package/components/assets/assetsFilter.js +43 -0
- package/package/components/assets/lib.d.ts +3 -2
- package/package/components/assets/lib.js +8 -1
- package/package/components/auditLogs/AuditLogsFilters.svelte +30 -1
- package/package/components/common/InlineCalendarInput.svelte +580 -0
- package/package/components/common/InlineCalendarInput.svelte.d.ts +31 -0
- package/package/components/common/alert/Alert.svelte +2 -8
- package/package/components/common/alert/model.d.ts +1 -0
- package/package/components/common/alert/model.js +7 -0
- package/package/components/common/badge/Badge.svelte +7 -3
- package/package/components/common/badge/Badge.svelte.d.ts +1 -0
- package/package/components/common/breadcrumb/Breadcrumb.svelte +10 -14
- package/package/components/common/breadcrumb/Breadcrumb.svelte.d.ts +8 -23
- package/package/components/common/drawer/DrawerContent.svelte +1 -1
- package/package/components/common/seconds/SecondsInput.svelte +158 -67
- package/package/components/common/seconds/SecondsInput.svelte.d.ts +9 -21
- package/package/components/common/sidebar/SidebarNavigation.svelte +50 -0
- package/package/components/common/sidebar/SidebarNavigation.svelte.d.ts +25 -0
- package/package/components/common/table/AppRow.svelte +7 -10
- package/package/components/common/table/AppRow.svelte.d.ts +2 -2
- package/package/components/common/table/FlowRow.svelte +12 -15
- package/package/components/common/table/FlowRow.svelte.d.ts +2 -2
- package/package/components/common/table/RawAppRow.svelte +5 -82
- package/package/components/common/table/RawAppRow.svelte.d.ts +2 -23
- package/package/components/common/table/Row.svelte +2 -2
- package/package/components/common/table/Row.svelte.d.ts +0 -2
- package/package/components/common/table/ScriptRow.svelte +8 -11
- package/package/components/common/table/ScriptRow.svelte.d.ts +2 -2
- package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +1 -1
- package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte.d.ts +1 -1
- package/package/components/copilot/TestAIKey.svelte +1 -1
- package/package/components/copilot/chat/AIChatInput.svelte +22 -11
- package/package/components/copilot/chat/AIChatManager.svelte.js +15 -17
- package/package/components/copilot/chat/AvailableContextList.svelte +215 -12
- package/package/components/copilot/chat/AvailableContextList.svelte.d.ts +1 -0
- package/package/components/copilot/chat/ContextTextarea.svelte +15 -2
- package/package/components/copilot/chat/__tests__/app/variants/streamlined.js +1 -1
- package/package/components/copilot/chat/__tests__/flow/variants/minimal-single-tool.js +4 -2
- package/package/components/copilot/chat/app/core.js +7 -86
- package/package/components/copilot/chat/context.js +4 -1
- package/package/components/copilot/chat/flow/core.js +193 -61
- package/package/components/copilot/chat/flow/openFlow.json +1 -1
- package/package/components/copilot/chat/flow/openFlowZod.d.ts +2 -2
- package/package/components/copilot/chat/flow/openFlowZod.js +6 -8
- package/package/components/copilot/chat/navigator/core.d.ts +2 -2
- package/package/components/copilot/chat/navigator/core.js +11 -2
- package/package/components/copilot/chat/script/core.js +4 -1
- package/package/components/copilot/chat/shared.d.ts +53 -1
- package/package/components/copilot/chat/shared.js +227 -1
- package/package/components/copilot/lib.js +42 -0
- package/package/components/dedicated_worker.d.ts +7 -0
- package/package/components/dedicated_worker.js +36 -0
- package/package/components/details/DetailPageHeader.svelte +8 -23
- package/package/components/details/DetailPageHeader.svelte.d.ts +1 -0
- package/package/components/details/DetailPageLayout.svelte +1 -1
- package/package/components/details/createAppFromScript.d.ts +136 -16
- package/package/components/details/createAppFromScript.js +13 -12
- package/package/components/diffEditorTypes.d.ts +6 -0
- package/package/components/diffEditorTypes.js +1 -0
- package/package/components/flows/CreateActionsApp.svelte +32 -82
- package/package/components/flows/CreateActionsFlow.svelte +28 -28
- package/package/components/flows/FlowAssetsHandler.svelte +1 -4
- package/package/components/flows/FlowProgressBar.svelte +37 -1
- package/package/components/flows/FlowProgressBar.svelte.d.ts +3 -0
- package/package/components/flows/agentToolUtils.d.ts +18 -0
- package/package/components/flows/agentToolUtils.js +47 -0
- package/package/components/flows/common/FlowCardHeader.svelte +8 -9
- package/package/components/flows/content/FlowEnvironmentVariables.svelte +3 -2
- package/package/components/flows/content/FlowLoop.svelte +3 -4
- package/package/components/flows/content/FlowModuleCache.svelte +1 -3
- package/package/components/flows/content/FlowModuleComponent.svelte +22 -6
- package/package/components/flows/content/FlowModuleSleep.svelte +1 -1
- package/package/components/flows/content/FlowResult.svelte +77 -25
- package/package/components/flows/content/FlowRetries.svelte +1 -1
- package/package/components/flows/content/FlowSettings.svelte +4 -7
- package/package/components/flows/flowState.js +6 -0
- package/package/components/flows/flowStateUtils.svelte.js +4 -1
- package/package/components/flows/flowStore.svelte.d.ts +1 -1
- package/package/components/flows/flowStore.svelte.js +4 -2
- package/package/components/flows/header/FlowPreviewButtons.svelte +2 -1
- package/package/components/flows/header/FlowYamlEditor.svelte +2 -2
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +12 -6
- package/package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +2 -2
- package/package/components/flows/map/InsertModuleInner.svelte +7 -0
- package/package/components/flows/map/InsertModuleInner.svelte.d.ts +1 -0
- package/package/components/flows/missingInputWarnings.js +7 -0
- package/package/components/flows/pickers/PickHubScriptQuick.svelte +4 -4
- package/package/components/flows/propPicker/OutputPicker.svelte +1 -1
- package/package/components/flows/propPicker/PropPickerWrapper.svelte +6 -9
- package/package/components/flows/propPicker/PropPickerWrapper.svelte.d.ts +3 -3
- package/package/components/flows/scheduleUtils.js +2 -2
- package/package/components/flows/types.d.ts +1 -3
- package/package/components/flows/utils.svelte.js +5 -1
- package/package/components/git_sync/GitSyncRepositoryCard.svelte +23 -21
- package/package/components/git_sync/GitSyncSection.svelte +24 -27
- package/package/components/graph/FlowGraphV2.svelte +1 -1
- package/package/components/graph/graphBuilder.svelte.d.ts +3 -1
- package/package/components/graph/model.d.ts +1 -1
- package/package/components/graph/renderers/nodes/AIToolNode.svelte +3 -1
- package/package/components/graph/renderers/nodes/AssetNode.svelte +25 -13
- package/package/components/graph/renderers/nodes/AssetsOverflowedNode.svelte +1 -1
- package/package/components/graph/renderers/nodes/NewAIToolNode.svelte +8 -0
- package/package/components/graph/renderers/triggers/TriggersBadge.svelte +5 -2
- package/package/components/home/Item.svelte +9 -15
- package/package/components/home/Item.svelte.d.ts +8 -7
- package/package/components/home/ItemsList.svelte +4 -10
- package/package/components/home/ItemsList.svelte.d.ts +1 -0
- package/package/components/icons/GoogleCalendarIcon.svelte +41 -0
- package/package/components/icons/GoogleCalendarIcon.svelte.d.ts +7 -0
- package/package/components/icons/GoogleDriveIcon.svelte +30 -0
- package/package/components/icons/GoogleDriveIcon.svelte.d.ts +7 -0
- package/package/components/icons/GoogleIcon.svelte +15 -6
- package/package/components/icons/GoogleIcon.svelte.d.ts +5 -2
- package/package/components/icons/MSSqlServerIcon.svelte +111 -47
- package/package/components/instanceSettings/IndexerJobIndexSettings.svelte +94 -0
- package/package/components/instanceSettings/IndexerJobIndexSettings.svelte.d.ts +9 -0
- package/package/components/instanceSettings/IndexerLogIndexSettings.svelte +67 -0
- package/package/components/instanceSettings/IndexerLogIndexSettings.svelte.d.ts +9 -0
- package/package/components/instanceSettings/IndexerMemorySettings.svelte +109 -0
- package/package/components/instanceSettings/IndexerMemorySettings.svelte.d.ts +9 -0
- package/package/components/instanceSettings/SecretBackendConfig.svelte +15 -16
- package/package/components/instanceSettings/SettingCard.svelte +47 -0
- package/package/components/instanceSettings/SettingCard.svelte.d.ts +19 -0
- package/package/components/instanceSettings/SettingsSearchInput.svelte +66 -0
- package/package/components/instanceSettings/SettingsSearchInput.svelte.d.ts +9 -0
- package/package/components/instanceSettings.d.ts +52 -0
- package/package/components/instanceSettings.js +413 -69
- package/package/components/meltComponents/MenuItem.svelte +1 -0
- package/package/components/meltComponents/Popover.svelte +10 -1
- package/package/components/meltComponents/Popover.svelte.d.ts +2 -0
- package/package/components/meltComponents/Tooltip.svelte +2 -1
- package/package/components/meltComponents/Tooltip.svelte.d.ts +1 -0
- package/package/components/moveRenameManager.d.ts +21 -0
- package/package/components/moveRenameManager.js +61 -0
- package/package/components/progressBar/ProgressBar.svelte +69 -27
- package/package/components/progressBar/ProgressBar.svelte.d.ts +7 -0
- package/package/components/prop_picker.d.ts +0 -3
- package/package/components/propertyPicker/PropPicker.svelte +34 -49
- package/package/components/propertyPicker/PropPicker.svelte.d.ts +12 -11
- package/package/components/raw_apps/FileTreeNode.svelte +1 -0
- package/package/components/raw_apps/RawAppBackgroundRunner.svelte +3 -2
- package/package/components/raw_apps/RawAppEditor.svelte +20 -16
- package/package/components/raw_apps/RawAppEditor.svelte.d.ts +4 -4
- package/package/components/raw_apps/RawAppEditorHeader.svelte +73 -7
- package/package/components/raw_apps/RawAppEditorHeader.svelte.d.ts +1 -1
- package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +1 -2
- package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte +41 -1
- package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte.d.ts +0 -1
- package/package/components/raw_apps/RawAppSidebar.svelte +32 -284
- package/package/components/raw_apps/RawAppSidebar.svelte.d.ts +1 -1
- package/package/components/raw_apps/RunnableRow.svelte +88 -34
- package/package/components/raw_apps/RunnableRow.svelte.d.ts +4 -0
- package/package/components/resources/resourcesFilter.d.ts +70 -0
- package/package/components/resources/resourcesFilter.js +61 -0
- package/package/components/runs/BatchReRunOptionsPane.svelte +130 -121
- package/package/components/runs/BatchReRunOptionsPane.svelte.d.ts +3 -2
- package/package/components/runs/FlowExecutionStatus.svelte +30 -0
- package/package/components/runs/FlowExecutionStatus.svelte.d.ts +15 -0
- package/package/components/runs/JobDetailFieldConfig.d.ts +47 -0
- package/package/components/runs/JobDetailFieldConfig.js +433 -0
- package/package/components/runs/JobDetailHeader.svelte +551 -0
- package/package/components/runs/JobDetailHeader.svelte.d.ts +17 -0
- package/package/components/runs/JobRunsPreview.svelte +174 -218
- package/package/components/runs/JobRunsPreview.svelte.d.ts +0 -1
- package/package/components/runs/JobStatusIcon.svelte +47 -0
- package/package/components/runs/JobStatusIcon.svelte.d.ts +9 -0
- package/package/components/runs/RunBadges.svelte +39 -34
- package/package/components/runs/RunBadges.svelte.d.ts +2 -1
- package/package/components/runs/RunRow.svelte +24 -64
- package/package/components/runs/RunRow.svelte.d.ts +1 -2
- package/package/components/runs/RunsTable.svelte +312 -131
- package/package/components/runs/RunsTable.svelte.d.ts +4 -3
- package/package/components/runs/TimeframeSelect.svelte +189 -0
- package/package/components/runs/TimeframeSelect.svelte.d.ts +44 -0
- package/package/components/runs/runsFilter.d.ts +201 -0
- package/package/components/runs/runsFilter.js +182 -0
- package/package/components/runs/useJobsLoader.svelte.d.ts +5 -7
- package/package/components/runs/useJobsLoader.svelte.js +27 -30
- package/package/components/schedules/schedulesFilter.d.ts +65 -0
- package/package/components/schedules/schedulesFilter.js +60 -0
- package/package/components/schema/EditableSchemaWrapper.svelte +43 -22
- package/package/components/schema/EditableSchemaWrapper.svelte.d.ts +1 -1
- package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -1
- package/package/components/schema/PropertyEditor.svelte +1 -0
- package/package/components/schema/RunningJobSchemaPicker.svelte +1 -1
- package/package/components/schema/editable_schema_wrapper.d.ts +1 -0
- package/package/components/scripts/CreateActionsScript.svelte +0 -1
- package/package/components/search/GlobalSearchModal.svelte +1 -8
- package/package/components/select/GenericDropdown.svelte +113 -0
- package/package/components/select/GenericDropdown.svelte.d.ts +37 -0
- package/package/components/select/Select.svelte +17 -4
- package/package/components/select/Select.svelte.d.ts +2 -1
- package/package/components/select/SelectDropdown.svelte +76 -155
- package/package/components/select/SelectDropdown.svelte.d.ts +4 -1
- package/package/components/settings/ChangeWorkspaceColor.svelte +7 -8
- package/package/components/settings/ChangeWorkspaceId.svelte +4 -6
- package/package/components/settings/ChangeWorkspaceName.svelte +6 -8
- package/package/components/settings/PremiumInfo.svelte +268 -128
- package/package/components/settings/SettingsPageHeader.svelte +22 -0
- package/package/components/settings/SettingsPageHeader.svelte.d.ts +10 -0
- package/package/components/settings/WorkspaceUserSettings.svelte +13 -23
- package/package/components/sidebar/CriticalAlertModalInner.svelte +28 -22
- package/package/components/sidebar/CriticalAlertModalInner.svelte.d.ts +5 -20
- package/package/components/sidebar/DarkModeToggle.svelte +2 -2
- package/package/components/sidebar/FavoriteMenu.svelte +101 -20
- package/package/components/sidebar/FavoriteMenu.svelte.d.ts +29 -1
- package/package/components/sidebar/MenuButton.svelte +10 -7
- package/package/components/sidebar/MenuButton.svelte.d.ts +2 -0
- package/package/components/sidebar/MenuLink.svelte +4 -3
- package/package/components/sidebar/OperatorMenu.svelte +3 -1
- package/package/components/sidebar/OperatorMenu.svelte.d.ts +6 -1
- package/package/components/sidebar/SidebarContent.svelte +3 -3
- package/package/components/sidebar/WorkspaceMenu.svelte +3 -2
- package/package/components/table/AutoDataTable.svelte +2 -2
- package/package/components/toast.js +1 -2
- package/package/components/triggers/AddTriggersButton.svelte +11 -0
- package/package/components/triggers/TriggerFilters.svelte +71 -0
- package/package/components/triggers/TriggerFilters.svelte.d.ts +10 -0
- package/package/components/triggers/TriggersEditor.svelte +31 -11
- package/package/components/triggers/TriggersWrapper.svelte +10 -0
- package/package/components/triggers/http/RouteEditorInner.svelte +1 -1
- package/package/components/triggers/kafka/KafkaTriggerEditorInner.svelte +7 -0
- package/package/components/triggers/kafka/utils.js +1 -0
- package/package/components/triggers/native/NativeTriggerEditor.svelte +22 -17
- package/package/components/triggers/native/NativeTriggerTable.svelte +16 -0
- package/package/components/triggers/native/services/google/GoogleCalendarPicker.svelte +112 -0
- package/package/components/triggers/native/services/google/GoogleCalendarPicker.svelte.d.ts +8 -0
- package/package/components/triggers/native/services/google/GoogleDrivePicker.svelte +323 -0
- package/package/components/triggers/native/services/google/GoogleDrivePicker.svelte.d.ts +8 -0
- package/package/components/triggers/native/services/google/GoogleTriggerForm.svelte +116 -0
- package/package/components/triggers/native/services/google/GoogleTriggerForm.svelte.d.ts +12 -0
- package/package/components/triggers/native/utils.d.ts +0 -1
- package/package/components/triggers/native/utils.js +15 -1
- package/package/components/triggers/schedules/ScheduleEditorInner.svelte +3 -3
- package/package/components/triggers/triggers.svelte.d.ts +1 -1
- package/package/components/triggers/triggers.svelte.js +11 -3
- package/package/components/triggers/utils.js +33 -6
- package/package/components/triggers/websocket/WebsocketEditorConfigSection.svelte +1 -1
- package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +3 -81
- package/package/components/triggers.d.ts +1 -1
- package/package/components/variables/variablesFilter.d.ts +56 -0
- package/package/components/variables/variablesFilter.js +51 -0
- package/package/components/waitJob.d.ts +1 -1
- package/package/components/waitJob.js +3 -2
- package/package/components/worker_group.d.ts +2 -0
- package/package/components/worker_group.js +15 -0
- package/package/components/workspaceSettings/AISettings.svelte +36 -42
- package/package/components/workspaceSettings/AISettings.svelte.d.ts +2 -0
- package/package/components/workspaceSettings/CreateWorkspace.svelte +4 -4
- package/package/components/workspaceSettings/CustomInstanceDbWizardModal.svelte.d.ts +1 -2
- package/package/components/workspaceSettings/DataTableSettings.svelte +27 -16
- package/package/components/workspaceSettings/DataTableSettings.svelte.d.ts +1 -0
- package/package/components/workspaceSettings/DucklakeSettings.svelte +21 -15
- package/package/components/workspaceSettings/DucklakeSettings.svelte.d.ts +1 -0
- package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +24 -66
- package/package/components/workspaceSettings/ModelTokenLimits.svelte +6 -10
- package/package/components/workspaceSettings/OAuthClientConfig.svelte +46 -75
- package/package/components/workspaceSettings/OAuthClientConfig.svelte.d.ts +8 -1
- package/package/components/workspaceSettings/RulesetEditor.svelte +280 -0
- package/package/components/workspaceSettings/RulesetEditor.svelte.d.ts +9 -0
- package/package/components/workspaceSettings/SettingsFooter.svelte +35 -0
- package/package/components/workspaceSettings/SettingsFooter.svelte.d.ts +12 -0
- package/package/components/workspaceSettings/StorageSettings.svelte +48 -34
- package/package/components/workspaceSettings/StorageSettings.svelte.d.ts +1 -0
- package/package/components/workspaceSettings/WorkspaceDependenciesSettings.svelte +66 -27
- package/package/components/workspaceSettings/WorkspaceIntegrations.svelte +237 -73
- package/package/components/workspaceSettings/WorkspaceRulesets.svelte +183 -0
- package/package/components/workspaceSettings/WorkspaceRulesets.svelte.d.ts +3 -0
- package/package/editorLangUtils.d.ts +1 -1
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +996 -70
- package/package/gen/schemas.gen.js +1352 -378
- package/package/gen/services.gen.d.ts +156 -41
- package/package/gen/services.gen.js +319 -83
- package/package/gen/types.gen.d.ts +1896 -317
- package/package/hub.d.ts +1 -0
- package/package/hub.js +7 -0
- package/package/hubPaths.json +2 -1
- package/package/infer.d.ts +2 -0
- package/package/mcpEndpointTools.d.ts +3 -0
- package/package/mcpEndpointTools.js +574 -147
- package/package/rawAppWmillTs.js +12 -11
- package/package/scripts.d.ts +1 -1
- package/package/scripts.js +1 -1
- package/package/storeUtils.js +8 -0
- package/package/stores.d.ts +1 -1
- package/package/stores.js +4 -2
- package/package/svelte5Utils.svelte.d.ts +40 -0
- package/package/svelte5Utils.svelte.js +158 -0
- package/package/svelte5UtilsKit.svelte.d.ts +13 -3
- package/package/svelte5UtilsKit.svelte.js +96 -20
- package/package/system_prompts/prompts.d.ts +5 -5
- package/package/system_prompts/prompts.js +94 -21
- package/package/toast.d.ts +5 -1
- package/package/toast.js +14 -5
- package/package/utils.js +214 -7
- package/package/utils_deployable.d.ts +25 -25
- package/package/utils_deployable.js +2 -1
- package/package/validators/workspaceSettings.d.ts +12 -0
- package/package/validators/workspaceSettings.js +72 -0
- package/package/workspaceProtectionRules.svelte.d.ts +73 -0
- package/package/workspaceProtectionRules.svelte.js +176 -0
- package/package.json +8 -5
- package/package/components/DropdownSelect.svelte +0 -26
- package/package/components/DropdownSelect.svelte.d.ts +0 -11
- package/package/components/FlowPreviewResult.svelte +0 -84
- package/package/components/FlowPreviewResult.svelte.d.ts +0 -20
- package/package/components/copilot/chat/context.d.ts +0 -119
- package/package/components/flows/propPicker/FlowPropPicker.svelte +0 -72
- package/package/components/flows/propPicker/FlowPropPicker.svelte.d.ts +0 -23
- package/package/components/runs/ManuelDatePicker.svelte +0 -96
- package/package/components/runs/ManuelDatePicker.svelte.d.ts +0 -35
- package/package/components/runs/RunsBatchActionsDropdown.svelte +0 -82
- package/package/components/runs/RunsBatchActionsDropdown.svelte.d.ts +0 -15
- package/package/components/runs/RunsFilter.svelte +0 -966
- package/package/components/runs/RunsFilter.svelte.d.ts +0 -80
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { createSearchWorkspaceTool, createGetRunnableDetailsTool } from '../shared';
|
|
1
2
|
import { ResourceService } from '../../../../gen';
|
|
2
3
|
import { workspaceStore } from '../../../../stores';
|
|
3
4
|
import { get } from 'svelte/store';
|
|
@@ -8,9 +9,11 @@ Windmill is an open-source developer platform for building internal tools, API i
|
|
|
8
9
|
|
|
9
10
|
You have access to these tools:
|
|
10
11
|
1. View current buttons and inputs on the page (get_triggerable_components)
|
|
11
|
-
2. Execute buttons and inputs (trigger_component)
|
|
12
|
+
2. Execute buttons and inputs (trigger_component)
|
|
12
13
|
3. Get documentation for user requests (get_documentation)
|
|
13
14
|
4. Change the AI mode to the one specified (change_mode)
|
|
15
|
+
5. Search for scripts and flows in the workspace (search_workspace)
|
|
16
|
+
6. Get detailed information about a specific script or flow (get_runnable_details)
|
|
14
17
|
|
|
15
18
|
INSTRUCTIONS:
|
|
16
19
|
- When users ask about application features or concepts, first use get_documentation internally to retrieve accurate information about how to fulfill the user's request.
|
|
@@ -24,6 +27,10 @@ INSTRUCTIONS:
|
|
|
24
27
|
- If you are not sure about an input, set the ones you are sure about, and then ask the user for the value of the input you are not sure about.
|
|
25
28
|
- If the user asks you to make an API call, switch to API mode with the change_mode tool before using the new tools you'll have access to to make the API call.
|
|
26
29
|
|
|
30
|
+
- When users ask about existing scripts, flows, or building blocks in their workspace, use search_workspace to find them.
|
|
31
|
+
- When users want to understand a specific script or flow (inputs, description, what it does), use get_runnable_details.
|
|
32
|
+
- When users ask you to navigate to a specific script or flow, first search for it, then use the navigation tools to go to it.
|
|
33
|
+
|
|
27
34
|
GENERAL PRINCIPLES:
|
|
28
35
|
- Be concise but thorough
|
|
29
36
|
- Focus on taking action and completing the user's goals
|
|
@@ -324,7 +331,9 @@ export const navigatorTools = [
|
|
|
324
331
|
triggerComponentTool,
|
|
325
332
|
getDocumentationTool,
|
|
326
333
|
getCurrentPageNameTool,
|
|
327
|
-
getAvailableResourcesTool
|
|
334
|
+
getAvailableResourcesTool,
|
|
335
|
+
createSearchWorkspaceTool(),
|
|
336
|
+
createGetRunnableDetailsTool()
|
|
328
337
|
];
|
|
329
338
|
export function prepareNavigatorSystemMessage(customPrompt) {
|
|
330
339
|
let content = CHAT_SYSTEM_PROMPT;
|
|
@@ -3,7 +3,7 @@ import { capitalize, isObject, toCamel } from '../../../../utils';
|
|
|
3
3
|
import { get } from 'svelte/store';
|
|
4
4
|
import { compile, phpCompile, pythonCompile } from '../../utils';
|
|
5
5
|
import { dbSchemas } from '../../../../stores';
|
|
6
|
-
import { createSearchHubScriptsTool, executeTestRun, buildTestRunArgs, buildContextString, formatScriptLintResult } from '../shared';
|
|
6
|
+
import { createSearchHubScriptsTool, executeTestRun, buildTestRunArgs, buildContextString, formatScriptLintResult, createSearchWorkspaceTool, createGetRunnableDetailsTool } from '../shared';
|
|
7
7
|
import { setupTypeAcquisition } from '../../../../ata';
|
|
8
8
|
import { getModelContextWindow } from '../../lib';
|
|
9
9
|
import { getCurrentModel } from '../../../../aiStore';
|
|
@@ -130,6 +130,7 @@ function buildChatSystemPrompt(currentModel) {
|
|
|
130
130
|
- You can also receive a \`DIFF\` of the changes that have been made to the code. You should use this diff to give better answers.
|
|
131
131
|
- Before giving your answer, check again that you carefully followed these instructions.
|
|
132
132
|
- When asked to create a script that communicates with an external service, you can use the \`search_hub_scripts\` tool to search for relevant scripts in the hub. Make sure the language is the same as what the user is coding in. If you do not find any relevant scripts, you can use the \`search_npm_packages\` tool to search for relevant packages and their documentation. Always give a link to the documentation in your answer if possible.
|
|
133
|
+
- Use \`search_workspace\` to find existing scripts and flows in the workspace, and \`get_runnable_details\` to inspect their schema and code. This is useful when the user wants to reference or reuse existing workspace runnables.
|
|
133
134
|
- After applying code changes with the \`${editToolName}\` tool, ALWAYS use the \`get_lint_errors\` tool to check for lint errors. If there are errors, fix them before proceeding. Then use the \`test_run_script\` tool to test the code, and iterate on the code until it works as expected (MAX 3 times). If the user cancels the test run, do not try again and wait for the next user instruction.
|
|
134
135
|
|
|
135
136
|
Important:
|
|
@@ -265,6 +266,8 @@ export function prepareScriptTools(currentModel, language, context) {
|
|
|
265
266
|
}
|
|
266
267
|
tools.push(testRunScriptTool);
|
|
267
268
|
tools.push(getLintErrorsTool);
|
|
269
|
+
tools.push(createSearchWorkspaceTool());
|
|
270
|
+
tools.push(createGetRunnableDetailsTool());
|
|
268
271
|
return tools;
|
|
269
272
|
}
|
|
270
273
|
export function prepareScriptUserMessage(instructions, selectedContext) {
|
|
@@ -14,7 +14,7 @@ import type { ContextElement, FlowModuleCodePieceElement } from './context';
|
|
|
14
14
|
import type { ExtendedOpenFlow } from '../../flows/types';
|
|
15
15
|
import type { FunctionParameters } from 'openai/resources/shared.mjs';
|
|
16
16
|
import { z } from 'zod';
|
|
17
|
-
import { type CompletedJob, type FlowModule } from '../../../gen';
|
|
17
|
+
import { type CompletedJob, type FlowModule, type Script } from '../../../gen';
|
|
18
18
|
import { type editor as meditor } from 'monaco-editor';
|
|
19
19
|
export declare const TOOL_PRETTIFY_MAP: Record<string, (content: string) => string>;
|
|
20
20
|
export interface ContextStringResult {
|
|
@@ -107,6 +107,7 @@ export declare const createSearchHubScriptsTool: (withContent?: boolean) => {
|
|
|
107
107
|
}) => Promise<string>;
|
|
108
108
|
};
|
|
109
109
|
export declare function buildSchemaForTool(toolDef: ChatCompletionFunctionTool, schemaBuilder: () => Promise<FunctionParameters>): Promise<boolean>;
|
|
110
|
+
export declare const MAX_RUNNABLE_CONTENT_LENGTH = 20000;
|
|
110
111
|
export interface TestRunConfig {
|
|
111
112
|
jobStarter: () => Promise<string>;
|
|
112
113
|
workspace: string;
|
|
@@ -129,4 +130,55 @@ export interface ScriptLintResult {
|
|
|
129
130
|
}
|
|
130
131
|
/** Format script lint result for display */
|
|
131
132
|
export declare function formatScriptLintResult(lintResult: ScriptLintResult): string;
|
|
133
|
+
export declare class WorkspaceRunnablesSearch {
|
|
134
|
+
private uf;
|
|
135
|
+
private scriptsWorkspace;
|
|
136
|
+
private flowsWorkspace;
|
|
137
|
+
private scripts;
|
|
138
|
+
private flows;
|
|
139
|
+
private scriptCache;
|
|
140
|
+
private flowCache;
|
|
141
|
+
constructor();
|
|
142
|
+
private initScripts;
|
|
143
|
+
private initFlows;
|
|
144
|
+
searchScripts(query: string, workspace: string): Promise<{
|
|
145
|
+
type: "script";
|
|
146
|
+
path: string;
|
|
147
|
+
summary: string;
|
|
148
|
+
}[]>;
|
|
149
|
+
searchFlows(query: string, workspace: string): Promise<{
|
|
150
|
+
type: "flow";
|
|
151
|
+
path: string;
|
|
152
|
+
summary: string;
|
|
153
|
+
}[]>;
|
|
154
|
+
search(query: string, workspace: string, type?: 'all' | 'scripts' | 'flows'): Promise<{
|
|
155
|
+
type: "script" | "flow";
|
|
156
|
+
path: string;
|
|
157
|
+
summary: string;
|
|
158
|
+
}[]>;
|
|
159
|
+
getScript(path: string, workspace: string): Promise<Script>;
|
|
160
|
+
getFlow(path: string, workspace: string): Promise<import("../../../gen").OpenFlow & import("../../../gen").FlowMetadata & {
|
|
161
|
+
lock_error_logs?: string;
|
|
162
|
+
version_id?: number;
|
|
163
|
+
}>;
|
|
164
|
+
}
|
|
165
|
+
export declare const workspaceRunnablesSearch: WorkspaceRunnablesSearch;
|
|
166
|
+
export declare const createSearchWorkspaceTool: () => {
|
|
167
|
+
def: ChatCompletionFunctionTool;
|
|
168
|
+
fn: ({ args, workspace, toolId, toolCallbacks }: {
|
|
169
|
+
args: any;
|
|
170
|
+
workspace: string;
|
|
171
|
+
toolId: string;
|
|
172
|
+
toolCallbacks: ToolCallbacks;
|
|
173
|
+
}) => Promise<string>;
|
|
174
|
+
};
|
|
175
|
+
export declare const createGetRunnableDetailsTool: () => {
|
|
176
|
+
def: ChatCompletionFunctionTool;
|
|
177
|
+
fn: ({ args, workspace, toolId, toolCallbacks }: {
|
|
178
|
+
args: any;
|
|
179
|
+
workspace: string;
|
|
180
|
+
toolId: string;
|
|
181
|
+
toolCallbacks: ToolCallbacks;
|
|
182
|
+
}) => Promise<string>;
|
|
183
|
+
};
|
|
132
184
|
export {};
|
|
@@ -12,7 +12,9 @@ export const SPECIAL_MODULE_IDS = {
|
|
|
12
12
|
import { get } from 'svelte/store';
|
|
13
13
|
import { workspaceStore } from '../../../stores';
|
|
14
14
|
import { z } from 'zod';
|
|
15
|
-
import { ScriptService, JobService } from '../../../gen';
|
|
15
|
+
import { ScriptService, FlowService, JobService } from '../../../gen';
|
|
16
|
+
import uFuzzy from '@leeoniya/ufuzzy';
|
|
17
|
+
import { emptyString } from '../../../utils';
|
|
16
18
|
import { scriptLangToEditorLang } from '../../../scripts';
|
|
17
19
|
import { getCurrentModel } from '../../../aiStore';
|
|
18
20
|
import {} from 'monaco-editor';
|
|
@@ -229,6 +231,7 @@ export function buildContextString(selectedContext) {
|
|
|
229
231
|
let hasDiff = false;
|
|
230
232
|
let hasFlowModule = false;
|
|
231
233
|
let hasError = false;
|
|
234
|
+
let workspaceItemsContext = '';
|
|
232
235
|
let result = '\n\n';
|
|
233
236
|
for (const context of selectedContext) {
|
|
234
237
|
if (context.type === 'code') {
|
|
@@ -261,6 +264,24 @@ export function buildContextString(selectedContext) {
|
|
|
261
264
|
hasFlowModule = true;
|
|
262
265
|
flowModuleContext += `${context.id}\n`;
|
|
263
266
|
}
|
|
267
|
+
else if (context.type === 'workspace_script') {
|
|
268
|
+
workspaceItemsContext += `\nWORKSPACE SCRIPT (${context.path}):\n`;
|
|
269
|
+
workspaceItemsContext += `Summary: ${context.summary}\n`;
|
|
270
|
+
workspaceItemsContext += `Language: ${context.language}\n`;
|
|
271
|
+
if (context.schema) {
|
|
272
|
+
workspaceItemsContext += `Inputs: ${JSON.stringify(context.schema)}\n`;
|
|
273
|
+
}
|
|
274
|
+
workspaceItemsContext += `Code:\n${context.content}\n`;
|
|
275
|
+
}
|
|
276
|
+
else if (context.type === 'workspace_flow') {
|
|
277
|
+
workspaceItemsContext += `\nWORKSPACE FLOW (${context.path}):\n`;
|
|
278
|
+
workspaceItemsContext += `Summary: ${context.summary}\n`;
|
|
279
|
+
workspaceItemsContext += `Description: ${context.description}\n`;
|
|
280
|
+
if (context.schema) {
|
|
281
|
+
workspaceItemsContext += `Inputs: ${JSON.stringify(context.schema)}\n`;
|
|
282
|
+
}
|
|
283
|
+
workspaceItemsContext += `Value:\n${context.value}\n`;
|
|
284
|
+
}
|
|
264
285
|
}
|
|
265
286
|
if (hasCode) {
|
|
266
287
|
result += '\n' + codeContext;
|
|
@@ -277,6 +298,9 @@ export function buildContextString(selectedContext) {
|
|
|
277
298
|
if (hasFlowModule) {
|
|
278
299
|
result += '\n' + flowModuleContext;
|
|
279
300
|
}
|
|
301
|
+
if (workspaceItemsContext) {
|
|
302
|
+
result += '\n' + workspaceItemsContext;
|
|
303
|
+
}
|
|
280
304
|
return result;
|
|
281
305
|
}
|
|
282
306
|
async function callTool({ tools, functionName, args, workspace, helpers, toolCallbacks, toolId }) {
|
|
@@ -492,6 +516,7 @@ export async function buildSchemaForTool(toolDef, schemaBuilder) {
|
|
|
492
516
|
// Constants for result formatting
|
|
493
517
|
const MAX_RESULT_LENGTH = 12000;
|
|
494
518
|
const MAX_LOG_LENGTH = 4000;
|
|
519
|
+
export const MAX_RUNNABLE_CONTENT_LENGTH = 20000;
|
|
495
520
|
// Common job polling function
|
|
496
521
|
export async function pollJobCompletion(jobId, workspace, toolId, toolCallbacks) {
|
|
497
522
|
let attempts = 0;
|
|
@@ -664,3 +689,204 @@ export function formatScriptLintResult(lintResult) {
|
|
|
664
689
|
}
|
|
665
690
|
return response;
|
|
666
691
|
}
|
|
692
|
+
// ============= Workspace Runnables Search =============
|
|
693
|
+
export class WorkspaceRunnablesSearch {
|
|
694
|
+
uf;
|
|
695
|
+
scriptsWorkspace = undefined;
|
|
696
|
+
flowsWorkspace = undefined;
|
|
697
|
+
scripts = undefined;
|
|
698
|
+
flows = undefined;
|
|
699
|
+
scriptCache = new Map();
|
|
700
|
+
flowCache = new Map();
|
|
701
|
+
constructor() {
|
|
702
|
+
this.uf = new uFuzzy();
|
|
703
|
+
}
|
|
704
|
+
async initScripts(workspace) {
|
|
705
|
+
if (this.scripts === undefined || this.scriptsWorkspace !== workspace) {
|
|
706
|
+
this.scripts = await ScriptService.listScripts({ workspace });
|
|
707
|
+
this.scriptsWorkspace = workspace;
|
|
708
|
+
}
|
|
709
|
+
}
|
|
710
|
+
async initFlows(workspace) {
|
|
711
|
+
if (this.flows === undefined || this.flowsWorkspace !== workspace) {
|
|
712
|
+
this.flows = await FlowService.listFlows({ workspace });
|
|
713
|
+
this.flowsWorkspace = workspace;
|
|
714
|
+
}
|
|
715
|
+
}
|
|
716
|
+
async searchScripts(query, workspace) {
|
|
717
|
+
await this.initScripts(workspace);
|
|
718
|
+
const scripts = this.scripts;
|
|
719
|
+
if (!scripts)
|
|
720
|
+
return [];
|
|
721
|
+
const trimmed = query.trim();
|
|
722
|
+
if (!trimmed) {
|
|
723
|
+
return scripts.map((s) => ({
|
|
724
|
+
type: 'script',
|
|
725
|
+
path: s.path,
|
|
726
|
+
summary: s.summary
|
|
727
|
+
}));
|
|
728
|
+
}
|
|
729
|
+
const haystack = scripts.map((s) => emptyString(s.summary) ? s.path : s.summary + ' (' + s.path + ')');
|
|
730
|
+
const [idxs, , order] = this.uf.search(haystack, trimmed);
|
|
731
|
+
if (!idxs || !order)
|
|
732
|
+
return [];
|
|
733
|
+
return order.map((orderIdx) => {
|
|
734
|
+
const haystackIdx = idxs[orderIdx];
|
|
735
|
+
return {
|
|
736
|
+
type: 'script',
|
|
737
|
+
path: scripts[haystackIdx].path,
|
|
738
|
+
summary: scripts[haystackIdx].summary
|
|
739
|
+
};
|
|
740
|
+
});
|
|
741
|
+
}
|
|
742
|
+
async searchFlows(query, workspace) {
|
|
743
|
+
await this.initFlows(workspace);
|
|
744
|
+
const flows = this.flows;
|
|
745
|
+
if (!flows)
|
|
746
|
+
return [];
|
|
747
|
+
const trimmed = query.trim();
|
|
748
|
+
if (!trimmed) {
|
|
749
|
+
return flows.map((f) => ({
|
|
750
|
+
type: 'flow',
|
|
751
|
+
path: f.path,
|
|
752
|
+
summary: f.summary
|
|
753
|
+
}));
|
|
754
|
+
}
|
|
755
|
+
const haystack = flows.map((f) => emptyString(f.summary) ? f.path : f.summary + ' (' + f.path + ')');
|
|
756
|
+
const [idxs, , order] = this.uf.search(haystack, trimmed);
|
|
757
|
+
if (!idxs || !order)
|
|
758
|
+
return [];
|
|
759
|
+
return order.map((orderIdx) => {
|
|
760
|
+
const haystackIdx = idxs[orderIdx];
|
|
761
|
+
return {
|
|
762
|
+
type: 'flow',
|
|
763
|
+
path: flows[haystackIdx].path,
|
|
764
|
+
summary: flows[haystackIdx].summary
|
|
765
|
+
};
|
|
766
|
+
});
|
|
767
|
+
}
|
|
768
|
+
async search(query, workspace, type = 'all') {
|
|
769
|
+
const results = [];
|
|
770
|
+
if (type === 'all' || type === 'scripts') {
|
|
771
|
+
results.push(...(await this.searchScripts(query, workspace)));
|
|
772
|
+
}
|
|
773
|
+
if (type === 'all' || type === 'flows') {
|
|
774
|
+
results.push(...(await this.searchFlows(query, workspace)));
|
|
775
|
+
}
|
|
776
|
+
return results;
|
|
777
|
+
}
|
|
778
|
+
async getScript(path, workspace) {
|
|
779
|
+
const key = `${workspace}:${path}`;
|
|
780
|
+
let cached = this.scriptCache.get(key);
|
|
781
|
+
if (!cached) {
|
|
782
|
+
cached = await ScriptService.getScriptByPath({ workspace, path });
|
|
783
|
+
this.scriptCache.set(key, cached);
|
|
784
|
+
}
|
|
785
|
+
return cached;
|
|
786
|
+
}
|
|
787
|
+
async getFlow(path, workspace) {
|
|
788
|
+
const key = `${workspace}:${path}`;
|
|
789
|
+
let cached = this.flowCache.get(key);
|
|
790
|
+
if (!cached) {
|
|
791
|
+
cached = await FlowService.getFlowByPath({ workspace, path });
|
|
792
|
+
this.flowCache.set(key, cached);
|
|
793
|
+
}
|
|
794
|
+
return cached;
|
|
795
|
+
}
|
|
796
|
+
}
|
|
797
|
+
const searchWorkspaceSchema = z.object({
|
|
798
|
+
query: z
|
|
799
|
+
.string()
|
|
800
|
+
.describe('Comma separated list of keywords to search for (e.g. "stripe, send email, ETL")'),
|
|
801
|
+
type: z
|
|
802
|
+
.enum(['all', 'scripts', 'flows'])
|
|
803
|
+
.describe('Filter by type: "all" for both scripts and flows, "scripts" for scripts only, "flows" for flows only.')
|
|
804
|
+
});
|
|
805
|
+
const searchWorkspaceToolDef = createToolDef(searchWorkspaceSchema, 'search_workspace', 'Search for scripts and flows in the workspace. Use this when a user asks about existing building blocks, wants to find a script/flow, or asks "what do I have for X". ALWAYS search really broadly.');
|
|
806
|
+
export const workspaceRunnablesSearch = new WorkspaceRunnablesSearch();
|
|
807
|
+
export const createSearchWorkspaceTool = () => ({
|
|
808
|
+
def: searchWorkspaceToolDef,
|
|
809
|
+
fn: async ({ args, workspace, toolId, toolCallbacks }) => {
|
|
810
|
+
const parsedArgs = searchWorkspaceSchema.parse(args);
|
|
811
|
+
const type = parsedArgs.type;
|
|
812
|
+
toolCallbacks.setToolStatus(toolId, {
|
|
813
|
+
content: `Searching workspace...`
|
|
814
|
+
});
|
|
815
|
+
const results = [];
|
|
816
|
+
const keywords = parsedArgs.query.split(',').map((keyword) => keyword.trim());
|
|
817
|
+
const seenPaths = new Set();
|
|
818
|
+
for (const keyword of keywords) {
|
|
819
|
+
const keywordResults = await workspaceRunnablesSearch.search(keyword, workspace, type);
|
|
820
|
+
for (const result of keywordResults) {
|
|
821
|
+
if (!seenPaths.has(result.path)) {
|
|
822
|
+
results.push(result);
|
|
823
|
+
seenPaths.add(result.path);
|
|
824
|
+
}
|
|
825
|
+
}
|
|
826
|
+
}
|
|
827
|
+
toolCallbacks.setToolStatus(toolId, {
|
|
828
|
+
content: `Found ${results.length} result(s)`
|
|
829
|
+
});
|
|
830
|
+
return JSON.stringify(results, null, 2);
|
|
831
|
+
}
|
|
832
|
+
});
|
|
833
|
+
const getRunnableDetailsSchema = z.object({
|
|
834
|
+
path: z.string().describe('The path of the script or flow (e.g. "f/marketing/send_email")'),
|
|
835
|
+
type: z.enum(['script', 'flow']).describe('Whether this is a script or a flow')
|
|
836
|
+
});
|
|
837
|
+
const getRunnableDetailsToolDef = createToolDef(getRunnableDetailsSchema, 'get_runnable_details', 'Get details (summary, description, inputs schema, content) of a specific script or flow by path');
|
|
838
|
+
export const createGetRunnableDetailsTool = () => ({
|
|
839
|
+
def: getRunnableDetailsToolDef,
|
|
840
|
+
fn: async ({ args, workspace, toolId, toolCallbacks }) => {
|
|
841
|
+
const parsedArgs = getRunnableDetailsSchema.parse(args);
|
|
842
|
+
const { path, type } = parsedArgs;
|
|
843
|
+
toolCallbacks.setToolStatus(toolId, {
|
|
844
|
+
content: `Getting ${type} details for "${path}"...`
|
|
845
|
+
});
|
|
846
|
+
try {
|
|
847
|
+
if (type === 'script') {
|
|
848
|
+
const script = await workspaceRunnablesSearch.getScript(path, workspace);
|
|
849
|
+
toolCallbacks.setToolStatus(toolId, {
|
|
850
|
+
content: `Retrieved script details for "${path}"`
|
|
851
|
+
});
|
|
852
|
+
const content = script.content ?? '';
|
|
853
|
+
const truncatedContent = content.length > MAX_RUNNABLE_CONTENT_LENGTH
|
|
854
|
+
? content.slice(0, MAX_RUNNABLE_CONTENT_LENGTH) + '\n... (truncated)'
|
|
855
|
+
: content;
|
|
856
|
+
return JSON.stringify({
|
|
857
|
+
path: script.path,
|
|
858
|
+
summary: script.summary,
|
|
859
|
+
description: script.description,
|
|
860
|
+
language: script.language,
|
|
861
|
+
schema: script.schema,
|
|
862
|
+
content: truncatedContent
|
|
863
|
+
}, null, 2);
|
|
864
|
+
}
|
|
865
|
+
else {
|
|
866
|
+
const flow = await workspaceRunnablesSearch.getFlow(path, workspace);
|
|
867
|
+
toolCallbacks.setToolStatus(toolId, {
|
|
868
|
+
content: `Retrieved flow details for "${path}"`
|
|
869
|
+
});
|
|
870
|
+
const flowValue = JSON.stringify(flow.value, null, 2);
|
|
871
|
+
const truncatedValue = flowValue.length > MAX_RUNNABLE_CONTENT_LENGTH
|
|
872
|
+
? flowValue.slice(0, MAX_RUNNABLE_CONTENT_LENGTH) + '\n... (truncated)'
|
|
873
|
+
: flowValue;
|
|
874
|
+
return JSON.stringify({
|
|
875
|
+
path: flow.path,
|
|
876
|
+
summary: flow.summary,
|
|
877
|
+
description: flow.description,
|
|
878
|
+
schema: flow.schema,
|
|
879
|
+
value: truncatedValue
|
|
880
|
+
}, null, 2);
|
|
881
|
+
}
|
|
882
|
+
}
|
|
883
|
+
catch (error) {
|
|
884
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
885
|
+
toolCallbacks.setToolStatus(toolId, {
|
|
886
|
+
content: `Error getting ${type} details`,
|
|
887
|
+
error: errorMessage
|
|
888
|
+
});
|
|
889
|
+
return `Error getting ${type} details for "${path}": ${errorMessage}`;
|
|
890
|
+
}
|
|
891
|
+
}
|
|
892
|
+
});
|
|
@@ -9,6 +9,7 @@ import { formatResourceTypes } from './utils';
|
|
|
9
9
|
import { z } from 'zod';
|
|
10
10
|
import { processToolCall } from './chat/shared';
|
|
11
11
|
import { getNonStreamingOpenAIResponsesCompletion, getOpenAIResponsesCompletionStream } from './chat/openai-responses';
|
|
12
|
+
import { convertOpenAIToAnthropicMessages } from './chat/anthropic';
|
|
12
13
|
import { generateRandomString } from '../../utils';
|
|
13
14
|
import { copilotInfo, getCurrentModel } from '../../aiStore';
|
|
14
15
|
export const SUPPORTED_LANGUAGES = new Set(Object.keys(GEN_CONFIG.prompts));
|
|
@@ -337,6 +338,17 @@ export async function testKey({ apiKey, resourcePath, model, abortController, me
|
|
|
337
338
|
if (!modelToTest) {
|
|
338
339
|
throw new Error('Missing a model to test');
|
|
339
340
|
}
|
|
341
|
+
// Use Anthropic SDK for Anthropic provider
|
|
342
|
+
if (aiProvider === 'anthropic') {
|
|
343
|
+
await testAnthropicKey({
|
|
344
|
+
apiKey,
|
|
345
|
+
resourcePath,
|
|
346
|
+
model: modelToTest,
|
|
347
|
+
abortController,
|
|
348
|
+
messages
|
|
349
|
+
});
|
|
350
|
+
return;
|
|
351
|
+
}
|
|
340
352
|
await getNonStreamingCompletion(messages, abortController, {
|
|
341
353
|
apiKey,
|
|
342
354
|
resourcePath,
|
|
@@ -346,6 +358,36 @@ export async function testKey({ apiKey, resourcePath, model, abortController, me
|
|
|
346
358
|
}
|
|
347
359
|
});
|
|
348
360
|
}
|
|
361
|
+
async function testAnthropicKey({ apiKey, resourcePath, model, abortController, messages }) {
|
|
362
|
+
const { system, messages: anthropicMessages } = convertOpenAIToAnthropicMessages(messages);
|
|
363
|
+
const headers = {
|
|
364
|
+
'X-Provider': 'anthropic',
|
|
365
|
+
'anthropic-version': '2023-06-01',
|
|
366
|
+
'X-Anthropic-SDK': 'true'
|
|
367
|
+
};
|
|
368
|
+
if (resourcePath) {
|
|
369
|
+
headers['X-Resource-Path'] = resourcePath;
|
|
370
|
+
}
|
|
371
|
+
else if (apiKey) {
|
|
372
|
+
headers['X-API-Key'] = apiKey;
|
|
373
|
+
}
|
|
374
|
+
const anthropicClient = apiKey
|
|
375
|
+
? new Anthropic({
|
|
376
|
+
baseURL: `${location.origin}${OpenAPI.BASE}/ai/proxy`,
|
|
377
|
+
apiKey: 'fake-key',
|
|
378
|
+
dangerouslyAllowBrowser: true
|
|
379
|
+
})
|
|
380
|
+
: workspaceAIClients.getAnthropicClient();
|
|
381
|
+
await anthropicClient.messages.create({
|
|
382
|
+
model,
|
|
383
|
+
max_tokens: 100,
|
|
384
|
+
messages: anthropicMessages,
|
|
385
|
+
...(system && { system })
|
|
386
|
+
}, {
|
|
387
|
+
signal: abortController.signal,
|
|
388
|
+
headers
|
|
389
|
+
});
|
|
390
|
+
}
|
|
349
391
|
async function getResourceTypes(scriptOptions) {
|
|
350
392
|
const elems = scriptOptions.type === 'gen' || scriptOptions.type === 'edit' ? [scriptOptions.description] : [];
|
|
351
393
|
if (scriptOptions.type === 'edit' || scriptOptions.type === 'fix') {
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare function dedicatedWorkerTag(workspaceId: string, path: string): Promise<string>;
|
|
2
|
+
export declare function parseTag(tag: string): {
|
|
3
|
+
workspace: string;
|
|
4
|
+
type: 'script' | 'flow';
|
|
5
|
+
path: string;
|
|
6
|
+
} | null;
|
|
7
|
+
export declare function computeHashedTag(rawTag: string): Promise<string>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
const MAX_TAG_LEN = 50;
|
|
2
|
+
const HASH_SUFFIX_LEN = 16;
|
|
3
|
+
// IMPORTANT: This implementation must stay in sync with the Rust backend
|
|
4
|
+
// `dedicated_worker_tag()` in backend/windmill-common/src/worker.rs.
|
|
5
|
+
// The frontend version is used for display; the backend version is authoritative.
|
|
6
|
+
export async function dedicatedWorkerTag(workspaceId, path) {
|
|
7
|
+
const fullTag = `${workspaceId}:${path}`;
|
|
8
|
+
if (fullTag.length <= MAX_TAG_LEN)
|
|
9
|
+
return fullTag;
|
|
10
|
+
const encoded = new TextEncoder().encode(fullTag);
|
|
11
|
+
const hashBuffer = await crypto.subtle.digest('SHA-256', encoded);
|
|
12
|
+
const hashArray = Array.from(new Uint8Array(hashBuffer));
|
|
13
|
+
const hexHash = hashArray.map((b) => b.toString(16).padStart(2, '0')).join('');
|
|
14
|
+
const prefixLen = MAX_TAG_LEN - 1 - HASH_SUFFIX_LEN;
|
|
15
|
+
return `${fullTag.substring(0, prefixLen)}#${hexHash.substring(0, HASH_SUFFIX_LEN)}`;
|
|
16
|
+
}
|
|
17
|
+
export function parseTag(tag) {
|
|
18
|
+
const colonIndex = tag.indexOf(':');
|
|
19
|
+
if (colonIndex === -1)
|
|
20
|
+
return null;
|
|
21
|
+
const workspace = tag.substring(0, colonIndex);
|
|
22
|
+
const rest = tag.substring(colonIndex + 1);
|
|
23
|
+
if (rest.startsWith('flow/')) {
|
|
24
|
+
return { workspace, type: 'flow', path: rest.substring(5) };
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
return { workspace, type: 'script', path: rest };
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export async function computeHashedTag(rawTag) {
|
|
31
|
+
const parsed = parseTag(rawTag);
|
|
32
|
+
if (!parsed)
|
|
33
|
+
return rawTag;
|
|
34
|
+
const fullPath = parsed.type === 'flow' ? `flow/${parsed.path}` : parsed.path;
|
|
35
|
+
return dedicatedWorkerTag(parsed.workspace, fullPath);
|
|
36
|
+
}
|
|
@@ -4,36 +4,21 @@ import ErrorHandlerToggleButton from './ErrorHandlerToggleButton.svelte';
|
|
|
4
4
|
import { twMerge } from 'tailwind-merge';
|
|
5
5
|
import { userStore } from '../../stores';
|
|
6
6
|
import { createEventDispatcher, getContext, tick } from 'svelte';
|
|
7
|
+
import SummaryPathDisplay from '../SummaryPathDisplay.svelte';
|
|
7
8
|
import { Calendar } from 'lucide-svelte';
|
|
8
|
-
import { emptyString } from '../../utils';
|
|
9
9
|
const { triggersCount, triggersState } = $state(getContext('TriggerContext'));
|
|
10
|
-
let { mainButtons = [], menuItems = [], summary, path, tag, errorHandlerKind, scriptOrFlowPath, errorHandlerMuted = $bindable(), children, trigger_badges } = $props();
|
|
10
|
+
let { mainButtons = [], menuItems = [], summary, path, tag, errorHandlerKind, scriptOrFlowPath, errorHandlerMuted = $bindable(), onSaved, children, trigger_badges } = $props();
|
|
11
11
|
const dispatch = createEventDispatcher();
|
|
12
12
|
</script>
|
|
13
13
|
|
|
14
|
-
<div class="border-b
|
|
14
|
+
<div class="border-b">
|
|
15
15
|
<div class="mx-auto">
|
|
16
16
|
<div
|
|
17
|
-
class="flex w-full flex-wrap md:flex-nowrap justify-end gap-x-2 gap-y-4 items-center min-h-
|
|
17
|
+
class="flex w-full flex-wrap md:flex-nowrap justify-end gap-x-2 gap-y-4 items-center min-h-12"
|
|
18
18
|
>
|
|
19
|
-
<div class="grow px-
|
|
20
|
-
<div
|
|
21
|
-
|
|
22
|
-
'min-w-24 text-emphasis truncate flex flex-col gap-0',
|
|
23
|
-
$userStore?.operator ? 'pl-10' : ''
|
|
24
|
-
)}
|
|
25
|
-
>
|
|
26
|
-
<span
|
|
27
|
-
class={twMerge(
|
|
28
|
-
'text-sm min-w-24 text-emphasis font-semibold truncate',
|
|
29
|
-
$userStore?.operator ? 'pl-10' : ''
|
|
30
|
-
)}
|
|
31
|
-
>
|
|
32
|
-
{emptyString(summary) ? (path ?? '') : summary}
|
|
33
|
-
</span>
|
|
34
|
-
{#if !emptyString(summary)}
|
|
35
|
-
<span class="text-2xs text-secondary">{path}</span>
|
|
36
|
-
{/if}
|
|
19
|
+
<div class="grow px-2 inline-flex items-center gap-4 min-w-0">
|
|
20
|
+
<div class={twMerge('min-w-0', $userStore?.operator ? 'pl-10' : '')}>
|
|
21
|
+
<SummaryPathDisplay {summary} {path} {onSaved} kind={errorHandlerKind} />
|
|
37
22
|
</div>
|
|
38
23
|
{#if tag}
|
|
39
24
|
<Badge>tag: {tag}</Badge>
|
|
@@ -60,7 +45,7 @@ const dispatch = createEventDispatcher();
|
|
|
60
45
|
{/if}
|
|
61
46
|
{@render trigger_badges?.()}
|
|
62
47
|
</div>
|
|
63
|
-
<div class="flex gap-1 items-center">
|
|
48
|
+
<div class="flex gap-1 items-center pr-4">
|
|
64
49
|
{#if menuItems.length > 0}
|
|
65
50
|
{#key menuItems}
|
|
66
51
|
<DropdownV2
|
|
@@ -63,7 +63,7 @@ const useDesktopLayout = $derived(clientWidth >= 768 && !forceSmallScreen);
|
|
|
63
63
|
{/if}
|
|
64
64
|
|
|
65
65
|
{#snippet content()}
|
|
66
|
-
<div class="grow min-h-0">
|
|
66
|
+
<div class="grow min-h-0 overflow-y-auto">
|
|
67
67
|
<TabContent value="form" class="flex flex-col flex-1 h-full">
|
|
68
68
|
{@render form?.()}
|
|
69
69
|
</TabContent>
|