windmill-components 1.532.0 → 1.542.4
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/AIProviderPicker.svelte +181 -0
- package/package/components/AIProviderPicker.svelte.d.ts +15 -0
- package/package/components/ArgInfo.svelte +2 -2
- package/package/components/ArgInput.svelte +60 -27
- package/package/components/ArgInput.svelte.d.ts +3 -3
- package/package/components/AssignableTagsInner.svelte +89 -3
- package/package/components/Auth0Setting.svelte +8 -3
- package/package/components/ConcurrentJobsChart.svelte +36 -48
- package/package/components/ConcurrentJobsChart.svelte.d.ts +8 -20
- package/package/components/CustomPopover.svelte.d.ts +1 -1
- package/package/components/Dev.svelte +5 -4
- package/package/components/DiffDrawer.svelte +2 -2
- package/package/components/DiffEditor.svelte +34 -37
- package/package/components/DiffEditor.svelte.d.ts +23 -39
- package/package/components/DropdownSelect.svelte +26 -0
- package/package/components/DropdownSelect.svelte.d.ts +11 -0
- package/package/components/DropdownV2Inner.svelte +1 -1
- package/package/components/{DynSelect.svelte → DynamicInput.svelte} +47 -15
- package/package/components/DynamicInput.svelte.d.ts +11 -0
- package/package/components/EditableSchemaForm.svelte +155 -140
- package/package/components/EditableSchemaForm.svelte.d.ts +6 -7
- package/package/components/Editor.svelte +101 -87
- package/package/components/Editor.svelte.d.ts +7 -1
- package/package/components/EditorBar.svelte +2 -5
- package/package/components/FlowBuilder.svelte +10 -7
- package/package/components/FlowLogRow.svelte +64 -0
- package/package/components/FlowLogRow.svelte.d.ts +15 -0
- package/package/components/FlowLogViewer.svelte +406 -373
- package/package/components/FlowLogViewer.svelte.d.ts +5 -1
- package/package/components/FlowLogViewerWrapper.svelte +44 -1
- package/package/components/FlowLoopIterationPreview.svelte.d.ts +1 -1
- package/package/components/FlowPreviewContent.svelte +3 -3
- package/package/components/FlowPreviewContent.svelte.d.ts +1 -1
- package/package/components/FlowStatusViewer.svelte +28 -0
- package/package/components/FlowStatusViewerInner.svelte +106 -23
- package/package/components/FlowStatusViewerInner.svelte.d.ts +7 -0
- package/package/components/FolderPicker.svelte +1 -1
- package/package/components/InputTransformForm.svelte +20 -10
- package/package/components/JobArgs.svelte +1 -1
- package/package/components/JobLoader.svelte.d.ts +1 -1
- package/package/components/JobStatus.svelte +2 -0
- package/package/components/LogSnippetViewer.svelte +3 -3
- package/package/components/LogSnippetViewer.svelte.d.ts +1 -1
- package/package/components/LogViewer.svelte +87 -71
- package/package/components/LogViewer.svelte.d.ts +1 -0
- package/package/components/ModulePreview.svelte +2 -1
- package/package/components/ModulePreview.svelte.d.ts +1 -0
- package/package/components/ModulePreviewForm.svelte +72 -65
- package/package/components/ModulePreviewResultViewer.svelte +13 -18
- package/package/components/ModuleTest.svelte +6 -5
- package/package/components/ModuleTest.svelte.d.ts +1 -0
- package/package/components/OktaSetting.svelte +8 -3
- package/package/components/Path.svelte +7 -1
- package/package/components/Path.svelte.d.ts +1 -1
- package/package/components/Portal.svelte +11 -7
- package/package/components/Portal.svelte.d.ts +19 -39
- package/package/components/PrefixedInput.svelte +120 -0
- package/package/components/PrefixedInput.svelte.d.ts +8 -0
- package/package/components/QueuePosition.svelte +81 -0
- package/package/components/QueuePosition.svelte.d.ts +8 -0
- package/package/components/ResourceNarrowing.svelte +13 -0
- package/package/components/ResourceNarrowing.svelte.d.ts +6 -0
- package/package/components/ResourceTypePicker.svelte +49 -74
- package/package/components/RunChart.svelte +74 -89
- package/package/components/RunChart.svelte.d.ts +10 -22
- package/package/components/RunForm.svelte +2 -2
- package/package/components/RunForm.svelte.d.ts +1 -1
- package/package/components/RunFormAdvancedPopup.svelte +13 -1
- package/package/components/S3FilePicker.svelte +1 -1
- package/package/components/SchemaForm.svelte +1 -2
- package/package/components/SchemaForm.svelte.d.ts +2 -2
- package/package/components/ScriptBuilder.svelte +3 -2
- package/package/components/ScriptEditor.svelte +25 -10
- package/package/components/ScriptEditor.svelte.d.ts +2 -1
- package/package/components/ServiceLogsInner.svelte +1 -1
- package/package/components/ShareModal.svelte.d.ts +1 -1
- package/package/components/SimpleEditor.svelte +4 -68
- package/package/components/StringTypeNarrowing.svelte +5 -10
- package/package/components/TemplateEditor.svelte +2 -16
- package/package/components/TimeAgo.svelte +1 -1
- package/package/components/TimeAgo.svelte.d.ts +1 -0
- package/package/components/Toggle.svelte +2 -1
- package/package/components/Toggle.svelte.d.ts +2 -1
- package/package/components/WorkerRepl.svelte +1 -1
- package/package/components/apps/components/display/AppNavbarItem.svelte +2 -1
- package/package/components/apps/components/display/table/AppAggridTable.svelte +44 -48
- package/package/components/apps/components/display/table/SyncColumnDefs.svelte +101 -19
- package/package/components/apps/components/display/table/SyncColumnDefs.svelte.d.ts +5 -2
- package/package/components/apps/components/display/table/utils.js +36 -5
- package/package/components/apps/components/inputs/currency/CurrencyInput.svelte +10 -5
- package/package/components/apps/components/layout/AppModal.svelte +2 -2
- package/package/components/apps/editor/AppEditor.svelte +4 -3
- package/package/components/apps/editor/AppEditorHeader.svelte +0 -1
- package/package/components/apps/editor/GridViewer.svelte.d.ts +11 -4
- package/package/components/apps/editor/SettingsPanel.svelte +2 -2
- package/package/components/apps/editor/component/ComponentNavigation.svelte +3 -2
- package/package/components/apps/editor/componentsPanel/ListItem.svelte +2 -2
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +1 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +1 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte.d.ts +1 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +0 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +1 -1
- package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +29 -4
- package/package/components/apps/editor/settingsPanel/GridCondition.svelte +3 -1
- package/package/components/apps/editor/settingsPanel/GridNavbar.svelte +3 -1
- package/package/components/apps/editor/settingsPanel/GridTab.svelte +3 -1
- package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +1 -1
- package/package/components/apps/editor/settingsPanel/OneOfInputSpecsEditor.svelte +55 -53
- package/package/components/apps/editor/settingsPanel/TableActions.svelte +3 -1
- package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +13 -5
- package/package/components/apps/svelte-grid/Grid.svelte.d.ts +30 -11
- package/package/components/assets/JobAssetsViewer.svelte +28 -24
- package/package/components/auditLogs/AuditLogsTable.svelte +2 -6
- package/package/components/chartjs-wrappers/Chart.svelte.d.ts +14 -7
- package/package/components/common/OnChange.svelte.d.ts +11 -4
- package/package/components/common/badge/Badge.svelte +9 -2
- package/package/components/common/badge/Badge.svelte.d.ts +2 -1
- package/package/components/common/button/model.d.ts +1 -1
- package/package/components/common/calendarPicker/CalendarPicker.svelte +5 -1
- package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +5 -4
- package/package/components/common/drawer/Disposable.svelte +45 -26
- package/package/components/common/drawer/Disposable.svelte.d.ts +12 -44
- package/package/components/common/drawer/Drawer.svelte +17 -14
- package/package/components/common/drawer/Drawer.svelte.d.ts +1 -0
- package/package/components/common/menu/MenuItem.svelte.d.ts +2 -2
- package/package/components/common/modal/Modal.svelte.d.ts +1 -1
- package/package/components/common/tabs/TabContent.svelte +2 -7
- package/package/components/common/tabs/TabContent.svelte.d.ts +5 -27
- package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +9 -3
- package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte.d.ts +1 -0
- package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte +8 -4
- package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte.d.ts +1 -0
- package/package/components/copilot/MetadataGen.svelte +14 -3
- package/package/components/copilot/chat/AIChatInput.svelte +0 -1
- package/package/components/copilot/chat/AIChatManager.svelte.js +26 -104
- package/package/components/copilot/chat/AssistantMessage.svelte +0 -4
- package/package/components/copilot/chat/AvailableContextList.svelte +192 -66
- package/package/components/copilot/chat/AvailableContextList.svelte.d.ts +2 -2
- package/package/components/copilot/chat/ContextElementBadge.svelte +3 -3
- package/package/components/copilot/chat/ContextManager.svelte.js +36 -13
- package/package/components/copilot/chat/ContextTextarea.svelte +21 -48
- package/package/components/copilot/chat/ToolContentDisplay.svelte +10 -1
- package/package/components/copilot/chat/ToolExecutionDisplay.svelte +3 -3
- package/package/components/copilot/chat/anthropic.d.ts +15 -0
- package/package/components/copilot/chat/anthropic.js +208 -0
- package/package/components/copilot/chat/api/apiTools.d.ts +2 -2
- package/package/components/copilot/chat/api/apiTools.js +10 -7
- package/package/components/copilot/chat/api/core.d.ts +1 -1
- package/package/components/copilot/chat/api/core.js +7 -2
- package/package/components/copilot/chat/ask/core.d.ts +1 -1
- package/package/components/copilot/chat/ask/core.js +7 -2
- package/package/components/copilot/chat/context.d.ts +7 -2
- package/package/components/copilot/chat/flow/FlowAIChat.svelte +110 -8
- package/package/components/copilot/chat/flow/core.d.ts +12 -1
- package/package/components/copilot/chat/flow/core.js +133 -5
- package/package/components/copilot/chat/flow/uiIntents.d.ts +8 -0
- package/package/components/copilot/chat/flow/uiIntents.js +5 -0
- package/package/components/copilot/chat/flow/useUiIntent.d.ts +5 -0
- package/package/components/copilot/chat/flow/useUiIntent.js +12 -0
- package/package/components/copilot/chat/monaco-adapter.d.ts +23 -4
- package/package/components/copilot/chat/monaco-adapter.js +55 -16
- package/package/components/copilot/chat/navigator/core.d.ts +1 -1
- package/package/components/copilot/chat/navigator/core.js +7 -2
- package/package/components/copilot/chat/script/CodeDisplay.svelte +10 -111
- package/package/components/copilot/chat/script/core.d.ts +5 -4
- package/package/components/copilot/chat/script/core.js +134 -21
- package/package/components/copilot/chat/shared.d.ts +10 -9
- package/package/components/copilot/chat/shared.js +24 -12
- package/package/components/copilot/lib.d.ts +29 -8
- package/package/components/copilot/lib.js +211 -31
- package/package/components/copilot/shared.d.ts +1 -1
- package/package/components/copilot/shared.js +16 -10
- package/package/components/flows/FlowEditor.svelte +4 -2
- package/package/components/flows/FlowEditor.svelte.d.ts +1 -0
- package/package/components/flows/FlowModuleIcon.svelte +8 -8
- package/package/components/flows/common/FlowCardHeader.svelte +4 -1
- package/package/components/flows/content/FlowBranchesAllWrapper.svelte +6 -0
- package/package/components/flows/content/FlowBranchesOneWrapper.svelte +6 -0
- package/package/components/flows/content/FlowEditorPanel.svelte +2 -1
- package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowInput.svelte +36 -39
- package/package/components/flows/content/FlowInput.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowLoop.svelte +7 -0
- package/package/components/flows/content/FlowModuleComponent.svelte +42 -46
- package/package/components/flows/content/FlowModuleEarlyStop.svelte +47 -17
- package/package/components/flows/content/FlowModuleScript.svelte +1 -1
- package/package/components/flows/content/FlowModuleSleep.svelte +4 -1
- package/package/components/flows/content/FlowModuleSuspend.svelte +15 -18
- package/package/components/flows/content/FlowModuleTimeout.svelte +50 -10
- package/package/components/flows/content/FlowModuleTimeout.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowRetries.svelte +108 -3
- package/package/components/flows/content/FlowRetries.svelte.d.ts +3 -2
- package/package/components/flows/content/FlowWhileLoop.svelte +6 -0
- package/package/components/flows/content/ScriptEditorDrawer.svelte +9 -11
- package/package/components/flows/dfs.d.ts +1 -1
- package/package/components/flows/dfs.js +6 -6
- package/package/components/flows/flowInfers.js +15 -42
- package/package/components/flows/flowStateUtils.svelte.js +1 -2
- package/package/components/flows/flowStore.d.ts +45 -1
- package/package/components/flows/flowStore.js +1 -1
- package/package/components/flows/map/FlowJobsMenu.svelte +3 -3
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +73 -80
- package/package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +1 -1
- package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte +1 -1
- package/package/components/flows/map/InsertModuleButton.svelte +1 -0
- package/package/components/flows/map/InsertModuleInner.svelte +12 -15
- package/package/components/flows/map/InsertModuleInner.svelte.d.ts +10 -9
- package/package/components/flows/map/MapItem.svelte +8 -4
- package/package/components/flows/map/VirtualItem.svelte +1 -1
- package/package/components/flows/pickers/TopLevelNode.svelte +1 -1
- package/package/components/flows/propPicker/InputPickerInner.svelte +5 -5
- package/package/components/flows/propPicker/OutputPickerInner.svelte +143 -118
- package/package/components/flows/propPicker/OutputPickerInner.svelte.d.ts +7 -16
- package/package/components/flows/{testSteps.svelte.d.ts → stepsInputArgs.svelte.d.ts} +2 -1
- package/package/components/flows/{testSteps.svelte.js → stepsInputArgs.svelte.js} +15 -3
- package/package/components/flows/types.d.ts +16 -3
- package/package/components/flows/utils.js +3 -0
- package/package/components/git_sync/DetectionFlow.svelte +15 -17
- package/package/components/git_sync/GitSyncContext.svelte.js +1 -1
- package/package/components/git_sync/GitSyncRepositoryCard.svelte +0 -1
- package/package/components/graph/FlowGraphV2.svelte +1 -1
- package/package/components/graph/graphBuilder.svelte.d.ts +5 -1
- package/package/components/graph/renderers/edges/BaseEdge.svelte +9 -1
- package/package/components/graph/renderers/edges/BaseEdge.svelte.d.ts +4 -1
- package/package/components/graph/renderers/nodes/AIToolNode.svelte +4 -4
- package/package/components/graph/renderers/nodes/BranchAllStart.svelte +2 -3
- package/package/components/graph/renderers/nodes/BranchOneStart.svelte +2 -3
- package/package/components/graph/renderers/nodes/NewAIToolNode.svelte +71 -54
- package/package/components/graph/renderers/triggers/TriggerButton.svelte.d.ts +1 -1
- package/package/components/graph/renderers/triggers/TriggersBadge.svelte +3 -1
- package/package/components/graph/renderers/triggers/TriggersWrapper.svelte +34 -24
- package/package/components/graph/renderers/triggers/TriggersWrapper.svelte.d.ts +1 -2
- package/package/components/home/ItemsList.svelte +17 -13
- package/package/components/home/TreeView.svelte +21 -27
- package/package/components/home/TreeView.svelte.d.ts +2 -29
- package/package/components/home/TreeViewRoot.svelte +11 -23
- package/package/components/home/TreeViewRoot.svelte.d.ts +15 -13
- package/package/components/icons/GitIcon.svelte +10 -2
- package/package/components/icons/GitIcon.svelte.d.ts +1 -0
- package/package/components/meltComponents/MeltButton.svelte.d.ts +1 -1
- package/package/components/meltComponents/Popover.svelte +23 -3
- package/package/components/meltComponents/Popover.svelte.d.ts +2 -1
- package/package/components/monacoLanguagesOptions.d.ts +3 -0
- package/package/components/monacoLanguagesOptions.js +109 -0
- package/package/components/propertyPicker/ObjectViewer.svelte +18 -5
- package/package/components/propertyPicker/PropPicker.svelte +1 -1
- package/package/components/propertyPicker/utils.js +14 -7
- package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +1 -1
- package/package/components/runs/JobRunsPreview.svelte +212 -177
- package/package/components/runs/JobsLoader.svelte +2 -2
- package/package/components/runs/JobsLoader.svelte.d.ts +1 -1
- package/package/components/runs/NoWorkerWithTagWarning.svelte +18 -5
- package/package/components/runs/RunBadges.svelte +100 -0
- package/package/components/runs/RunBadges.svelte.d.ts +12 -0
- package/package/components/runs/RunLabels.svelte +86 -0
- package/package/components/runs/RunLabels.svelte.d.ts +10 -0
- package/package/components/runs/RunOption.svelte +20 -0
- package/package/components/runs/RunOption.svelte.d.ts +10 -0
- package/package/components/runs/RunRow.svelte +239 -151
- package/package/components/runs/RunRow.svelte.d.ts +12 -9
- package/package/components/runs/RunsBatchActionsDropdown.svelte +13 -17
- package/package/components/runs/RunsBatchActionsDropdown.svelte.d.ts +5 -18
- package/package/components/runs/RunsFilter.svelte +369 -243
- package/package/components/runs/RunsFilter.svelte.d.ts +2 -0
- package/package/components/runs/RunsQueue.svelte +96 -25
- package/package/components/runs/RunsQueue.svelte.d.ts +7 -21
- package/package/components/runs/RunsTable.svelte +62 -71
- package/package/components/runs/RunsTable.svelte.d.ts +2 -1
- package/package/components/runs/runs-grid.css +95 -0
- package/package/components/schema/AddPropertyV2.svelte +2 -7
- package/package/components/schema/AddPropertyV2.svelte.d.ts +3 -20
- package/package/components/schema/EditableSchemaDrawer.svelte +121 -127
- package/package/components/schema/EditableSchemaDrawer.svelte.d.ts +2 -1
- package/package/components/schema/EditableSchemaSdkWrapper.svelte +16 -3
- package/package/components/schema/EditableSchemaSdkWrapper.svelte.d.ts +4 -1
- package/package/components/schema/EditableSchemaWrapper.svelte +3 -10
- package/package/components/schema/FlowPropertyEditor.svelte +195 -236
- package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -1
- package/package/components/schema/PropertyEditor.svelte +33 -35
- package/package/components/schema/SchemaFormDND.svelte +11 -10
- package/package/components/schema/SchemaFormDND.svelte.d.ts +4 -3
- package/package/components/schema/editable_schema_wrapper.d.ts +0 -3
- package/package/components/search/GlobalSearchModal.svelte +8 -1
- package/package/components/select/DraggableTags.svelte.d.ts +17 -7
- package/package/components/select/MultiSelect.svelte.d.ts +21 -11
- package/package/components/select/Select.svelte +2 -1
- package/package/components/select/Select.svelte.d.ts +25 -13
- package/package/components/select/SelectDropdown.svelte.d.ts +14 -7
- package/package/components/settings/PremiumInfo.svelte +7 -2
- package/package/components/settings/TokenDisplay.svelte +1 -1
- package/package/components/sidebar/OperatorMenu.svelte +5 -0
- package/package/components/sidebar/SidebarContent.svelte +48 -2
- package/package/components/sidebar/WorkspaceMenu.svelte +116 -17
- package/package/components/toast.js +6 -3
- package/package/components/triggers/AddTriggersButton.svelte +7 -6
- package/package/components/triggers/CaptureWrapper.svelte +21 -16
- package/package/components/triggers/CaptureWrapper.svelte.d.ts +1 -1
- package/package/components/triggers/TriggerLabel.svelte +8 -0
- package/package/components/triggers/TriggerTokens.svelte +1 -1
- package/package/components/triggers/TriggersEditor.svelte +9 -5
- package/package/components/triggers/TriggersTable.svelte +2 -2
- package/package/components/triggers/TriggersWrapper.svelte +17 -5
- package/package/components/triggers/TriggersWrapper.svelte.d.ts +3 -19
- package/package/components/{details/EmailTriggerCaptures.svelte → triggers/email/DefaultEmailCapture.svelte} +5 -5
- package/package/components/{details/EmailTriggerCaptures.svelte.d.ts → triggers/email/DefaultEmailCapture.svelte.d.ts} +4 -4
- package/package/components/{details/EmailTriggerConfigSection.svelte → triggers/email/DefaultEmailConfigSection.svelte} +24 -14
- package/package/components/triggers/email/DefaultEmailConfigSection.svelte.d.ts +13 -0
- package/package/components/triggers/email/DefaultEmailPanel.svelte +71 -0
- package/package/components/triggers/email/DefaultEmailPanel.svelte.d.ts +11 -0
- package/package/components/triggers/email/EmailCapture.svelte +39 -0
- package/package/components/triggers/email/EmailCapture.svelte.d.ts +43 -0
- package/package/components/triggers/email/EmailTriggerEditor.svelte +20 -0
- package/package/components/triggers/email/EmailTriggerEditor.svelte.d.ts +11 -0
- package/package/components/triggers/email/EmailTriggerEditorConfigSection.svelte +133 -0
- package/package/components/triggers/email/EmailTriggerEditorConfigSection.svelte.d.ts +14 -0
- package/package/components/triggers/email/EmailTriggerEditorInner.svelte +335 -0
- package/package/components/triggers/email/EmailTriggerEditorInner.svelte.d.ts +22 -0
- package/package/components/triggers/email/EmailTriggerPanel.svelte +61 -0
- package/package/components/triggers/email/EmailTriggerPanel.svelte.d.ts +14 -0
- package/package/components/triggers/email/utils.d.ts +4 -0
- package/package/components/triggers/email/utils.js +52 -0
- package/package/components/triggers/http/RouteEditorConfigSection.svelte +1 -1
- package/package/components/triggers/http/RouteEditorInner.svelte +1 -1
- package/package/components/triggers/http/utils.js +1 -1
- package/package/components/triggers/nats/NatsTriggerEditorInner.svelte +23 -20
- package/package/components/triggers/nats/NatsTriggersConfigSection.svelte +15 -27
- package/package/components/triggers/nats/NatsTriggersConfigSection.svelte.d.ts +7 -5
- package/package/components/triggers/triggers.svelte.d.ts +1 -0
- package/package/components/triggers/triggers.svelte.js +24 -2
- package/package/components/triggers/utils.js +19 -5
- package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +16 -16
- package/package/components/triggers.d.ts +1 -1
- package/package/components/triggers.js +2 -0
- package/package/components/wizards/AgGridWizard.svelte +85 -80
- package/package/components/workspaceSettings/AISettings.svelte +74 -22
- package/package/components/workspaceSettings/AISettings.svelte.d.ts +2 -1
- package/package/components/workspaceSettings/CreateWorkspace.svelte +395 -0
- package/package/components/workspaceSettings/CreateWorkspace.svelte.d.ts +6 -0
- package/package/components/workspaceSettings/DucklakeSettings.svelte +3 -1
- package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +1 -1
- package/package/components/workspaceSettings/StorageSettings.svelte +69 -48
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +142 -3
- package/package/gen/schemas.gen.js +144 -3
- package/package/gen/services.gen.d.ts +129 -1
- package/package/gen/services.gen.js +267 -1
- package/package/gen/types.gen.d.ts +434 -8
- package/package/hubPaths.json +6 -2
- package/package/infer.js +1 -1
- package/package/keyboardChain.d.ts +5 -0
- package/package/keyboardChain.js +40 -0
- package/package/script_helpers.d.ts +2 -2
- package/package/script_helpers.js +2 -0
- package/package/services/JobManager.js +2 -2
- package/package/stores.d.ts +4 -1
- package/package/stores.js +16 -6
- package/package/utils/workspaceHierarchy.d.ts +27 -0
- package/package/utils/workspaceHierarchy.js +101 -0
- package/package/utils.d.ts +6 -3
- package/package/utils.js +30 -15
- package/package/workspace_settings.js +2 -3
- package/package.json +10 -12
- package/package/components/DynSelect.svelte.d.ts +0 -11
- package/package/components/ModulePreviewResultViewer.svelte.d.ts +0 -28
- package/package/components/ObjectTypeNarrowing.svelte +0 -18
- package/package/components/ObjectTypeNarrowing.svelte.d.ts +0 -22
- package/package/components/details/DetailPageTriggerPanel.svelte +0 -121
- package/package/components/details/DetailPageTriggerPanel.svelte.d.ts +0 -20
- package/package/components/details/EmailTriggerConfigSection.svelte.d.ts +0 -12
- package/package/components/details/EmailTriggerPanel.svelte +0 -76
- package/package/components/details/EmailTriggerPanel.svelte.d.ts +0 -26
|
@@ -2,10 +2,12 @@ interface Props {
|
|
|
2
2
|
defaultValues?: Record<string, any> | undefined;
|
|
3
3
|
headless?: boolean;
|
|
4
4
|
natsResourcePath: string;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
natsCfg: {
|
|
6
|
+
subjects: string[];
|
|
7
|
+
use_jetstream: boolean;
|
|
8
|
+
stream_name?: string;
|
|
9
|
+
consumer_name?: string;
|
|
10
|
+
};
|
|
9
11
|
path: string;
|
|
10
12
|
can_write?: boolean;
|
|
11
13
|
showTestingBadge?: boolean;
|
|
@@ -27,6 +29,6 @@ declare const NatsTriggersConfigSection: $$__sveltets_2_IsomorphicComponent<Prop
|
|
|
27
29
|
'valid-config': CustomEvent<any>;
|
|
28
30
|
} & {
|
|
29
31
|
[evt: string]: CustomEvent<any>;
|
|
30
|
-
}, {}, {}, "
|
|
32
|
+
}, {}, {}, "natsResourcePath" | "natsCfg">;
|
|
31
33
|
type NatsTriggersConfigSection = InstanceType<typeof NatsTriggersConfigSection>;
|
|
32
34
|
export default NatsTriggersConfigSection;
|
|
@@ -27,5 +27,6 @@ export declare class Triggers {
|
|
|
27
27
|
fetchSqsTriggers(triggersCountStore: Writable<TriggersCount | undefined>, workspaceId: string | undefined, path: string, isFlow: boolean, user?: UserExt | undefined): Promise<void>;
|
|
28
28
|
fetchGcpTriggers(triggersCountStore: Writable<TriggersCount | undefined>, workspaceId: string | undefined, path: string, isFlow: boolean, user?: UserExt | undefined): Promise<void>;
|
|
29
29
|
fetchHttpTriggers(triggersCountStore: Writable<TriggersCount | undefined>, workspaceId: string | undefined, path: string, isFlow: boolean, user?: UserExt | undefined): Promise<void>;
|
|
30
|
+
fetchEmailTriggers(triggersCountStore: Writable<TriggersCount | undefined>, workspaceId: string | undefined, path: string, isFlow: boolean, user?: UserExt | undefined): Promise<void>;
|
|
30
31
|
fetchTriggers(triggersCountStore: Writable<TriggersCount | undefined>, workspaceId: string | undefined, path: string, isFlow: boolean, primarySchedule?: ScheduleTrigger | undefined | false, user?: UserExt | undefined): Promise<void>;
|
|
31
32
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { KafkaTriggerService, MqttTriggerService, NatsTriggerService, PostgresTriggerService, ScheduleService, SqsTriggerService, WebsocketTriggerService, HttpTriggerService, GcpTriggerService } from '../../gen';
|
|
1
|
+
import { KafkaTriggerService, MqttTriggerService, NatsTriggerService, PostgresTriggerService, ScheduleService, SqsTriggerService, WebsocketTriggerService, HttpTriggerService, GcpTriggerService, EmailTriggerService } from '../../gen';
|
|
2
2
|
import { getLightConfig, sortTriggers, updateTriggersCount } from './utils';
|
|
3
3
|
import { canWrite, formatCron, generateRandomString } from '../../utils';
|
|
4
4
|
export class Triggers {
|
|
@@ -316,6 +316,27 @@ export class Triggers {
|
|
|
316
316
|
console.error('Failed to fetch HTTP triggers:', error);
|
|
317
317
|
}
|
|
318
318
|
}
|
|
319
|
+
async fetchEmailTriggers(triggersCountStore, workspaceId, path, isFlow, user = undefined) {
|
|
320
|
+
if (!workspaceId)
|
|
321
|
+
return;
|
|
322
|
+
try {
|
|
323
|
+
const emailTriggers = await EmailTriggerService.listEmailTriggers({
|
|
324
|
+
workspace: workspaceId,
|
|
325
|
+
path,
|
|
326
|
+
isFlow
|
|
327
|
+
});
|
|
328
|
+
const emailCount = this.updateTriggers(emailTriggers, 'email', user);
|
|
329
|
+
triggersCountStore.update((triggersCount) => {
|
|
330
|
+
return {
|
|
331
|
+
...(triggersCount ?? {}),
|
|
332
|
+
email_count: emailCount
|
|
333
|
+
};
|
|
334
|
+
});
|
|
335
|
+
}
|
|
336
|
+
catch (error) {
|
|
337
|
+
console.error('Failed to fetch email triggers:', error);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
319
340
|
async fetchTriggers(triggersCountStore, workspaceId, path, isFlow, primarySchedule = undefined, user = undefined) {
|
|
320
341
|
if (!workspaceId)
|
|
321
342
|
return;
|
|
@@ -329,7 +350,8 @@ export class Triggers {
|
|
|
329
350
|
this.fetchNatsTriggers(triggersCountStore, workspaceId, path, isFlow, user),
|
|
330
351
|
this.fetchMqttTriggers(triggersCountStore, workspaceId, path, isFlow, user),
|
|
331
352
|
this.fetchSqsTriggers(triggersCountStore, workspaceId, path, isFlow, user),
|
|
332
|
-
this.fetchGcpTriggers(triggersCountStore, workspaceId, path, isFlow, user)
|
|
353
|
+
this.fetchGcpTriggers(triggersCountStore, workspaceId, path, isFlow, user),
|
|
354
|
+
this.fetchEmailTriggers(triggersCountStore, workspaceId, path, isFlow, user)
|
|
333
355
|
]);
|
|
334
356
|
}
|
|
335
357
|
}
|
|
@@ -16,6 +16,7 @@ import { saveNatsTriggerFromCfg } from './nats/utils';
|
|
|
16
16
|
import { saveMqttTriggerFromCfg } from './mqtt/utils';
|
|
17
17
|
import { saveGcpTriggerFromCfg } from './gcp/utils';
|
|
18
18
|
import { emptyString } from '../../utils';
|
|
19
|
+
import { saveEmailTriggerFromCfg } from './email/utils';
|
|
19
20
|
export const CLOUD_DISABLED_TRIGGER_TYPES = [
|
|
20
21
|
'nats',
|
|
21
22
|
'kafka',
|
|
@@ -29,6 +30,7 @@ export const CLOUD_DISABLED_TRIGGER_TYPES = [
|
|
|
29
30
|
export const triggerIconMap = {
|
|
30
31
|
webhook: Webhook,
|
|
31
32
|
email: Mail,
|
|
33
|
+
default_email: Mail,
|
|
32
34
|
schedule: Calendar,
|
|
33
35
|
http: Route,
|
|
34
36
|
websocket: Unplug,
|
|
@@ -52,6 +54,7 @@ export function triggerTypeToCaptureKind(triggerType) {
|
|
|
52
54
|
const capturableTriggerTypes = [
|
|
53
55
|
'webhook',
|
|
54
56
|
'email',
|
|
57
|
+
'default_email',
|
|
55
58
|
'http',
|
|
56
59
|
'websocket',
|
|
57
60
|
'postgres',
|
|
@@ -71,7 +74,7 @@ export function updateTriggersCount(triggersCountStore, type, action, primaryCfg
|
|
|
71
74
|
// Map trigger types to their corresponding count property names
|
|
72
75
|
const countPropertyMap = {
|
|
73
76
|
webhook: undefined,
|
|
74
|
-
|
|
77
|
+
default_email: undefined,
|
|
75
78
|
schedule: 'schedule_count',
|
|
76
79
|
http: 'http_routes_count',
|
|
77
80
|
websocket: 'websocket_count',
|
|
@@ -81,6 +84,7 @@ export function updateTriggersCount(triggersCountStore, type, action, primaryCfg
|
|
|
81
84
|
mqtt: 'mqtt_count',
|
|
82
85
|
sqs: 'sqs_count',
|
|
83
86
|
gcp: 'gcp_count',
|
|
87
|
+
email: 'email_count',
|
|
84
88
|
poll: undefined,
|
|
85
89
|
cli: undefined
|
|
86
90
|
};
|
|
@@ -126,6 +130,8 @@ export function triggerKindToTriggerType(kind) {
|
|
|
126
130
|
return 'webhook';
|
|
127
131
|
case 'emails':
|
|
128
132
|
return 'email';
|
|
133
|
+
case 'default_emails':
|
|
134
|
+
return 'default_email';
|
|
129
135
|
case 'schedules':
|
|
130
136
|
return 'schedule';
|
|
131
137
|
case 'routes':
|
|
@@ -164,7 +170,7 @@ export async function deployTriggers(triggersToDeploy, workspaceId, isAdmin, use
|
|
|
164
170
|
// Map of trigger types to their save functions
|
|
165
171
|
const triggerSaveFunctions = {
|
|
166
172
|
webhook: undefined,
|
|
167
|
-
|
|
173
|
+
default_email: undefined,
|
|
168
174
|
schedule: (trigger) => {
|
|
169
175
|
if (trigger.isPrimary && initialPath) {
|
|
170
176
|
trigger.draftConfig = {
|
|
@@ -183,6 +189,7 @@ export async function deployTriggers(triggersToDeploy, workspaceId, isAdmin, use
|
|
|
183
189
|
mqtt: (trigger) => saveMqttTriggerFromCfg(trigger.path ?? trigger.draftConfig?.path ?? '', trigger.draftConfig ?? {}, !trigger.isDraft, workspaceId, usedTriggerKinds),
|
|
184
190
|
sqs: (trigger) => saveSqsTriggerFromCfg(trigger.path ?? trigger.draftConfig?.path ?? '', trigger.draftConfig ?? {}, !trigger.isDraft, workspaceId, usedTriggerKinds),
|
|
185
191
|
gcp: (trigger) => saveGcpTriggerFromCfg(trigger.path ?? trigger.draftConfig?.path ?? '', trigger.draftConfig ?? {}, !trigger.isDraft, workspaceId, usedTriggerKinds),
|
|
192
|
+
email: (trigger) => saveEmailTriggerFromCfg(trigger.path ?? trigger.draftConfig?.path ?? '', trigger.draftConfig ?? {}, !trigger.isDraft, workspaceId, isAdmin, usedTriggerKinds),
|
|
186
193
|
poll: undefined,
|
|
187
194
|
cli: undefined
|
|
188
195
|
};
|
|
@@ -262,6 +269,9 @@ export function getLightConfig(triggerType, trigger) {
|
|
|
262
269
|
else if (triggerType === 'gcp') {
|
|
263
270
|
return { gcp_resource_path: trigger.gcp_resource_path, topic: trigger.topic };
|
|
264
271
|
}
|
|
272
|
+
else if (triggerType === 'email') {
|
|
273
|
+
return { local_part: trigger.local_part };
|
|
274
|
+
}
|
|
265
275
|
else {
|
|
266
276
|
return undefined;
|
|
267
277
|
}
|
|
@@ -272,7 +282,7 @@ export function getTriggerLabel(trigger) {
|
|
|
272
282
|
if (type === 'webhook') {
|
|
273
283
|
return 'Webhook';
|
|
274
284
|
}
|
|
275
|
-
else if (type === '
|
|
285
|
+
else if (type === 'default_email') {
|
|
276
286
|
return 'Email';
|
|
277
287
|
}
|
|
278
288
|
else if (type === 'cli') {
|
|
@@ -303,6 +313,9 @@ export function getTriggerLabel(trigger) {
|
|
|
303
313
|
else if (type === 'websocket' && config?.url) {
|
|
304
314
|
return `${config?.url}`;
|
|
305
315
|
}
|
|
316
|
+
else if (type === 'email' && config?.local_part) {
|
|
317
|
+
return `${config?.local_part}`;
|
|
318
|
+
}
|
|
306
319
|
else if (isDraft && draftConfig?.path) {
|
|
307
320
|
return `${draftConfig?.path}`;
|
|
308
321
|
}
|
|
@@ -317,7 +330,7 @@ export function sortTriggers(triggers) {
|
|
|
317
330
|
const triggerTypeOrder = [
|
|
318
331
|
'webhook',
|
|
319
332
|
'cli',
|
|
320
|
-
'
|
|
333
|
+
'default_email',
|
|
321
334
|
'poll',
|
|
322
335
|
'schedule',
|
|
323
336
|
'http',
|
|
@@ -327,7 +340,8 @@ export function sortTriggers(triggers) {
|
|
|
327
340
|
'nats',
|
|
328
341
|
'mqtt',
|
|
329
342
|
'sqs',
|
|
330
|
-
'gcp'
|
|
343
|
+
'gcp',
|
|
344
|
+
'email'
|
|
331
345
|
];
|
|
332
346
|
return triggers.sort((a, b) => {
|
|
333
347
|
// Draft triggers always come last
|
|
@@ -331,8 +331,8 @@ $effect(() => {
|
|
|
331
331
|
</Label>
|
|
332
332
|
</div>
|
|
333
333
|
|
|
334
|
-
{
|
|
335
|
-
|
|
334
|
+
<Section label={hideTarget ? 'Runnable options' : 'Runnable'} class="flex flex-col gap-4">
|
|
335
|
+
{#if !hideTarget}
|
|
336
336
|
<div>
|
|
337
337
|
<p class="text-xs mb-1 text-tertiary">
|
|
338
338
|
Pick a script or flow to be triggered<Required required={true} />
|
|
@@ -363,21 +363,21 @@ $effect(() => {
|
|
|
363
363
|
{/if}
|
|
364
364
|
</div>
|
|
365
365
|
</div>
|
|
366
|
+
{/if}
|
|
366
367
|
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
{/if}
|
|
368
|
+
<Toggle
|
|
369
|
+
checked={can_return_message}
|
|
370
|
+
on:change={() => {
|
|
371
|
+
can_return_message = !can_return_message
|
|
372
|
+
}}
|
|
373
|
+
options={{
|
|
374
|
+
right: 'Send runnable result',
|
|
375
|
+
rightTooltip:
|
|
376
|
+
'Whether the runnable result should be sent as a message to the websocket server when not null.'
|
|
377
|
+
}}
|
|
378
|
+
disabled={!can_write}
|
|
379
|
+
/>
|
|
380
|
+
</Section>
|
|
381
381
|
|
|
382
382
|
<WebsocketEditorConfigSection
|
|
383
383
|
bind:url
|
|
@@ -16,5 +16,5 @@ export type TriggerContext = {
|
|
|
16
16
|
triggersState: Triggers;
|
|
17
17
|
};
|
|
18
18
|
export declare function setScheduledPollSchedule(triggersState: Triggers, triggersCount: Writable<TriggersCount | undefined>): void;
|
|
19
|
-
export type TriggerKind = 'webhooks' | 'emails' | 'schedules' | 'cli' | 'routes' | 'websockets' | 'scheduledPoll' | 'kafka' | 'nats' | 'postgres' | 'mqtt' | 'sqs' | 'gcp';
|
|
19
|
+
export type TriggerKind = 'webhooks' | 'emails' | 'default_emails' | 'schedules' | 'cli' | 'routes' | 'websockets' | 'scheduledPoll' | 'kafka' | 'nats' | 'postgres' | 'mqtt' | 'sqs' | 'gcp';
|
|
20
20
|
export declare function captureTriggerKindToTriggerKind(kind: CaptureTriggerKind): TriggerKind;
|
|
@@ -7,6 +7,7 @@ import Button from '../common/button/Button.svelte';
|
|
|
7
7
|
import Popover from '../meltComponents/Popover.svelte';
|
|
8
8
|
import { offset, flip, shift } from 'svelte-floating-ui/dom';
|
|
9
9
|
let { value = $bindable(), trigger: trigger_render } = $props();
|
|
10
|
+
const isActionsColumn = $derived(value?._isActionsColumn === true);
|
|
10
11
|
const presets = [
|
|
11
12
|
{
|
|
12
13
|
label: 'None',
|
|
@@ -92,16 +93,18 @@ $effect(() => {
|
|
|
92
93
|
<input type="text" placeholder="Header name" bind:value={value.headerName} />
|
|
93
94
|
</Label>
|
|
94
95
|
|
|
95
|
-
|
|
96
|
-
<
|
|
97
|
-
|
|
98
|
-
e
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
96
|
+
{#if !isActionsColumn}
|
|
97
|
+
<Label label="Editable value">
|
|
98
|
+
<Toggle
|
|
99
|
+
on:pointerdown={(e) => {
|
|
100
|
+
e?.stopPropagation()
|
|
101
|
+
}}
|
|
102
|
+
options={{ right: 'Editable' }}
|
|
103
|
+
bind:checked={value.editable}
|
|
104
|
+
size="xs"
|
|
105
|
+
/>
|
|
106
|
+
</Label>
|
|
107
|
+
{/if}
|
|
105
108
|
|
|
106
109
|
<Label label="Min width (px)">
|
|
107
110
|
<input type="number" placeholder="width" bind:value={value.minWidth} />
|
|
@@ -124,8 +127,8 @@ $effect(() => {
|
|
|
124
127
|
</Tooltip>
|
|
125
128
|
{/snippet}
|
|
126
129
|
|
|
127
|
-
<input type="range" step="1" bind:value={value.flex} min={
|
|
128
|
-
<div class="text-xs">{value.flex}</div>
|
|
130
|
+
<input type="range" step="1" bind:value={value.flex} min={0} max={12} />
|
|
131
|
+
<div class="text-xs">{value.flex ?? 0}</div>
|
|
129
132
|
</Label>
|
|
130
133
|
|
|
131
134
|
<Label label="Hide">
|
|
@@ -139,7 +142,8 @@ $effect(() => {
|
|
|
139
142
|
/>
|
|
140
143
|
</Label>
|
|
141
144
|
|
|
142
|
-
|
|
145
|
+
{#if !isActionsColumn}
|
|
146
|
+
<Label label="Value formatter">
|
|
143
147
|
{#snippet header()}
|
|
144
148
|
<Tooltip
|
|
145
149
|
documentationLink="https://www.ag-grid.com/javascript-data-grid/value-formatters/"
|
|
@@ -197,83 +201,84 @@ $effect(() => {
|
|
|
197
201
|
{/key}
|
|
198
202
|
</div>
|
|
199
203
|
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
204
|
+
<Label label="Sort">
|
|
205
|
+
<select bind:value={value.sort}>
|
|
206
|
+
<option value={null}>None</option>
|
|
207
|
+
<option value="asc">Ascending</option>
|
|
208
|
+
<option value="desc">Descending</option>
|
|
209
|
+
</select>
|
|
210
|
+
</Label>
|
|
207
211
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
<!--
|
|
226
|
-
EE only
|
|
212
|
+
<Label label="Filter">
|
|
213
|
+
{#snippet header()}
|
|
214
|
+
<Tooltip documentationLink="https://www.ag-grid.com/javascript-data-grid/filtering/">
|
|
215
|
+
Filtering allows you to limit the rows displayed in your grid to those that match
|
|
216
|
+
criteria you specify.
|
|
217
|
+
</Tooltip>
|
|
218
|
+
{/snippet}
|
|
219
|
+
<Toggle
|
|
220
|
+
on:pointerdown={(e) => {
|
|
221
|
+
e?.stopPropagation()
|
|
222
|
+
}}
|
|
223
|
+
options={{ right: 'Enable filter' }}
|
|
224
|
+
bind:checked={value.filter}
|
|
225
|
+
size="xs"
|
|
226
|
+
/>
|
|
227
|
+
</Label>
|
|
227
228
|
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
</Label>
|
|
229
|
+
<!--
|
|
230
|
+
EE only
|
|
231
231
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
232
|
+
<Label label="Aggregation function">
|
|
233
|
+
<SimpleEditor autoHeight lang="javascript" bind:code={value.aggFunc} />
|
|
234
|
+
</Label>
|
|
235
235
|
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
236
|
+
<Label label="Pivot">
|
|
237
|
+
<Toggle bind:checked={value.pivot} size="xs" />
|
|
238
|
+
</Label>
|
|
239
239
|
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
<option value="left">Left</option>
|
|
244
|
-
<option value="right">Right</option>
|
|
245
|
-
</select>
|
|
246
|
-
</Label>
|
|
240
|
+
<Label label="Pivot index">
|
|
241
|
+
<input type="number" placeholder="pivot index" bind:value={value.pivotIndex} />
|
|
242
|
+
</Label>
|
|
247
243
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
244
|
+
<Label label="Pinned">
|
|
245
|
+
<select bind:value={value.pinned}>
|
|
246
|
+
<option value={null}>None</option>
|
|
247
|
+
<option value="left">Left</option>
|
|
248
|
+
<option value="right">Right</option>
|
|
249
|
+
</select>
|
|
250
|
+
</Label>
|
|
251
251
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
-->
|
|
252
|
+
<Label label="Row group">
|
|
253
|
+
<Toggle bind:checked={value.rowGroup} size="xs" />
|
|
254
|
+
</Label>
|
|
256
255
|
|
|
257
|
-
<Label label="
|
|
258
|
-
<
|
|
259
|
-
<option value="text">Text</option>
|
|
260
|
-
<option value="link">Link</option>
|
|
261
|
-
</select>
|
|
256
|
+
<Label label="Row group index">
|
|
257
|
+
<input type="number" placeholder="row group index" bind:value={value.rowGroupIndex} />
|
|
262
258
|
</Label>
|
|
259
|
+
-->
|
|
260
|
+
|
|
261
|
+
<Label label="Type">
|
|
262
|
+
<select bind:value={value.cellRendererType}>
|
|
263
|
+
<option value="text">Text</option>
|
|
264
|
+
<option value="link">Link</option>
|
|
265
|
+
</select>
|
|
266
|
+
</Label>
|
|
263
267
|
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
268
|
+
{#if value.cellRendererType === 'link'}
|
|
269
|
+
<Alert type="info" title="Label" size="xs">
|
|
270
|
+
They are two ways to define a link:
|
|
271
|
+
<ul class="list-disc list-inside">
|
|
272
|
+
<li>
|
|
273
|
+
<strong>String</strong>: The string will be used as the link and the label.
|
|
274
|
+
</li>
|
|
275
|
+
<li>
|
|
276
|
+
<strong>Object</strong>: The object must have a <code>href</code> and a
|
|
277
|
+
<code>label</code> property.
|
|
278
|
+
</li>
|
|
279
|
+
</ul>
|
|
280
|
+
</Alert>
|
|
281
|
+
{/if}
|
|
277
282
|
{/if}
|
|
278
283
|
</div>
|
|
279
284
|
{/if}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts">import { WorkspaceService } from '../../gen';
|
|
2
2
|
import { setCopilotInfo, workspaceStore } from '../../stores';
|
|
3
3
|
import { sendUserToast } from '../../toast';
|
|
4
|
-
import {
|
|
4
|
+
import { AI_PROVIDERS, fetchAvailableModels } from '../copilot/lib';
|
|
5
5
|
import TestAiKey from '../copilot/TestAIKey.svelte';
|
|
6
6
|
import Description from '../Description.svelte';
|
|
7
7
|
import Label from '../Label.svelte';
|
|
@@ -13,21 +13,16 @@ import MultiSelect from '../select/MultiSelect.svelte';
|
|
|
13
13
|
import { safeSelectItems } from '../select/utils.svelte';
|
|
14
14
|
import Badge from '../common/badge/Badge.svelte';
|
|
15
15
|
import Tooltip from '../Tooltip.svelte';
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
['googleai', 'Google AI'],
|
|
23
|
-
['groq', 'Groq'],
|
|
24
|
-
['openrouter', 'OpenRouter'],
|
|
25
|
-
['togetherai', 'Together AI'],
|
|
26
|
-
['customai', 'Custom AI']
|
|
27
|
-
];
|
|
28
|
-
let { aiProviders = $bindable(), codeCompletionModel = $bindable(), defaultModel = $bindable(), usingOpenaiClientCredentialsOauth = $bindable() } = $props();
|
|
16
|
+
import { AIMode } from '../copilot/chat/AIChatManager.svelte';
|
|
17
|
+
import ToggleButtonGroup from '../common/toggleButton-v2/ToggleButtonGroup.svelte';
|
|
18
|
+
import ToggleButton from '../common/toggleButton-v2/ToggleButton.svelte';
|
|
19
|
+
import autosize from '../../autosize';
|
|
20
|
+
const MAX_CUSTOM_PROMPT_LENGTH = 5000;
|
|
21
|
+
let { aiProviders = $bindable(), codeCompletionModel = $bindable(), defaultModel = $bindable(), customPrompts = $bindable(), usingOpenaiClientCredentialsOauth = $bindable() } = $props();
|
|
29
22
|
let fetchedAiModels = $state(false);
|
|
30
|
-
let availableAiModels = $state(Object.fromEntries(
|
|
23
|
+
let availableAiModels = $state(Object.fromEntries(Object.keys(AI_PROVIDERS).map((provider) => [provider, AI_PROVIDERS[provider].defaultModels])));
|
|
24
|
+
// Custom system prompt settings
|
|
25
|
+
let selectedAiMode = $state(AIMode.ASK);
|
|
31
26
|
let selectedAiModels = $derived(Object.values(aiProviders).flatMap((p) => p.models));
|
|
32
27
|
let modelProviderMap = $derived(Object.fromEntries(Object.entries(aiProviders).flatMap(([provider, config]) => config.models.map((m) => [m, provider]))));
|
|
33
28
|
$effect(() => {
|
|
@@ -49,7 +44,7 @@ $effect(() => {
|
|
|
49
44
|
}
|
|
50
45
|
catch (e) {
|
|
51
46
|
console.error('failed to fetch models for provider', provider, e);
|
|
52
|
-
availableAiModels[provider] =
|
|
47
|
+
availableAiModels[provider] = AI_PROVIDERS[provider].defaultModels;
|
|
53
48
|
}
|
|
54
49
|
}
|
|
55
50
|
fetchedAiModels = true;
|
|
@@ -63,10 +58,15 @@ async function editCopilotConfig() {
|
|
|
63
58
|
const default_model = defaultModel && modelProviderMap[defaultModel]
|
|
64
59
|
? { model: defaultModel, provider: modelProviderMap[defaultModel] }
|
|
65
60
|
: undefined;
|
|
61
|
+
// Convert customPrompts to include only non-empty prompts
|
|
62
|
+
const custom_prompts = Object.entries(customPrompts)
|
|
63
|
+
.filter(([_, prompt]) => prompt.trim().length > 0)
|
|
64
|
+
.reduce((acc, [mode, prompt]) => ({ ...acc, [mode]: prompt }), {});
|
|
66
65
|
const config = {
|
|
67
66
|
providers: aiProviders,
|
|
68
67
|
code_completion_model,
|
|
69
|
-
default_model
|
|
68
|
+
default_model,
|
|
69
|
+
custom_prompts: Object.keys(custom_prompts).length > 0 ? custom_prompts : undefined
|
|
70
70
|
};
|
|
71
71
|
await WorkspaceService.editCopilotConfig({
|
|
72
72
|
workspace: $workspaceStore,
|
|
@@ -91,7 +91,7 @@ async function onAiProviderChange(provider) {
|
|
|
91
91
|
}
|
|
92
92
|
catch (e) {
|
|
93
93
|
console.error('failed to fetch models for provider', provider, e);
|
|
94
|
-
availableAiModels[provider] =
|
|
94
|
+
availableAiModels[provider] = AI_PROVIDERS[provider].defaultModels;
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
97
|
if (aiProviders[provider]?.resource_path &&
|
|
@@ -115,12 +115,12 @@ async function onAiProviderChange(provider) {
|
|
|
115
115
|
<div class="flex flex-col gap-2">
|
|
116
116
|
<p class="font-semibold">AI Providers</p>
|
|
117
117
|
<div class="flex flex-col gap-4">
|
|
118
|
-
{#each
|
|
118
|
+
{#each Object.entries(AI_PROVIDERS) as [provider, details]}
|
|
119
119
|
<div class="flex flex-col gap-2">
|
|
120
120
|
<div class="flex flex-row gap-2">
|
|
121
121
|
<Toggle
|
|
122
122
|
options={{
|
|
123
|
-
right: label
|
|
123
|
+
right: details.label
|
|
124
124
|
}}
|
|
125
125
|
checked={!!aiProviders[provider]}
|
|
126
126
|
on:change={(e) => {
|
|
@@ -186,12 +186,12 @@ async function onAiProviderChange(provider) {
|
|
|
186
186
|
() => aiProviders[provider].resource_path,
|
|
187
187
|
(v) => {
|
|
188
188
|
aiProviders[provider].resource_path = v
|
|
189
|
-
onAiProviderChange(provider)
|
|
189
|
+
onAiProviderChange(provider as AIProvider)
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
192
|
/>
|
|
193
193
|
<TestAiKey
|
|
194
|
-
aiProvider={provider}
|
|
194
|
+
aiProvider={provider as AIProvider}
|
|
195
195
|
resourcePath={aiProviders[provider].resource_path}
|
|
196
196
|
model={aiProviders[provider].models[0]}
|
|
197
197
|
/>
|
|
@@ -276,6 +276,58 @@ async function onAiProviderChange(provider) {
|
|
|
276
276
|
</div>
|
|
277
277
|
{/if}
|
|
278
278
|
|
|
279
|
+
{#if Object.keys(aiProviders).length > 0}
|
|
280
|
+
<div class="flex flex-col gap-2">
|
|
281
|
+
<p class="font-semibold">Custom system prompts</p>
|
|
282
|
+
<div class="flex flex-col gap-4">
|
|
283
|
+
<Label label="AI Mode">
|
|
284
|
+
<ToggleButtonGroup
|
|
285
|
+
bind:selected={selectedAiMode}
|
|
286
|
+
on:selected={({ detail }) => {
|
|
287
|
+
selectedAiMode = detail
|
|
288
|
+
}}
|
|
289
|
+
>
|
|
290
|
+
{#snippet children({ item })}
|
|
291
|
+
{#each Object.values(AIMode) as mode}
|
|
292
|
+
<div class="relative">
|
|
293
|
+
<ToggleButton
|
|
294
|
+
value={mode}
|
|
295
|
+
label={mode.charAt(0).toUpperCase() + mode.slice(1)}
|
|
296
|
+
{item}
|
|
297
|
+
/>
|
|
298
|
+
{#if customPrompts[mode]?.length > 0}
|
|
299
|
+
<div
|
|
300
|
+
class="absolute -top-1 -right-1 w-2 h-2 bg-blue-500 rounded-full border border-surface"
|
|
301
|
+
></div>
|
|
302
|
+
{/if}
|
|
303
|
+
</div>
|
|
304
|
+
{/each}
|
|
305
|
+
{/snippet}
|
|
306
|
+
</ToggleButtonGroup>
|
|
307
|
+
</Label>
|
|
308
|
+
|
|
309
|
+
<Label
|
|
310
|
+
label="Custom system prompt for {selectedAiMode.charAt(0).toUpperCase() +
|
|
311
|
+
selectedAiMode.slice(1)} Mode"
|
|
312
|
+
>
|
|
313
|
+
<textarea
|
|
314
|
+
bind:value={customPrompts[selectedAiMode]}
|
|
315
|
+
placeholder="Enter a custom system prompt for {selectedAiMode} mode."
|
|
316
|
+
class="w-full min-h-24 p-2 border border-gray-200 dark:border-gray-700 rounded-md bg-surface text-primary resize-y"
|
|
317
|
+
rows="4"
|
|
318
|
+
maxlength={MAX_CUSTOM_PROMPT_LENGTH}
|
|
319
|
+
use:autosize
|
|
320
|
+
></textarea>
|
|
321
|
+
<div class="flex justify-end mt-1">
|
|
322
|
+
<span class="text-xs text-secondary">
|
|
323
|
+
{(customPrompts[selectedAiMode] ?? '').length}/{MAX_CUSTOM_PROMPT_LENGTH} characters
|
|
324
|
+
</span>
|
|
325
|
+
</div>
|
|
326
|
+
</Label>
|
|
327
|
+
</div>
|
|
328
|
+
</div>
|
|
329
|
+
{/if}
|
|
330
|
+
|
|
279
331
|
<Button
|
|
280
332
|
wrapperClasses="self-start"
|
|
281
333
|
disabled={!Object.values(aiProviders).every((p) => p.resource_path) ||
|
|
@@ -3,8 +3,9 @@ type $$ComponentProps = {
|
|
|
3
3
|
aiProviders: Exclude<AIConfig['providers'], undefined>;
|
|
4
4
|
codeCompletionModel: string | undefined;
|
|
5
5
|
defaultModel: string | undefined;
|
|
6
|
+
customPrompts: Record<string, string>;
|
|
6
7
|
usingOpenaiClientCredentialsOauth: boolean;
|
|
7
8
|
};
|
|
8
|
-
declare const AiSettings: import("svelte").Component<$$ComponentProps, {}, "codeCompletionModel" | "defaultModel" | "aiProviders" | "usingOpenaiClientCredentialsOauth">;
|
|
9
|
+
declare const AiSettings: import("svelte").Component<$$ComponentProps, {}, "codeCompletionModel" | "defaultModel" | "aiProviders" | "customPrompts" | "usingOpenaiClientCredentialsOauth">;
|
|
9
10
|
type AiSettings = ReturnType<typeof AiSettings>;
|
|
10
11
|
export default AiSettings;
|