windmill-components 1.542.5 → 1.555.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package/aiStore.d.ts +13 -0
- package/package/aiStore.js +70 -0
- package/package/common.d.ts +6 -2
- package/package/components/AIAgentLogViewer.svelte +1 -1
- package/package/components/AIProviderPicker.svelte +25 -8
- package/package/components/ArgEnum.svelte +17 -7
- package/package/components/ArgEnum.svelte.d.ts +1 -0
- package/package/components/ArgInput.svelte +257 -188
- package/package/components/ArgInput.svelte.d.ts +4 -1
- package/package/components/ArrayTypeNarrowing.svelte +38 -32
- package/package/components/AutoscalingEvents.svelte +21 -5
- package/package/components/AutoscalingEvents.svelte.d.ts +4 -18
- package/package/components/ChannelSelector.svelte +92 -18
- package/package/components/ChannelSelector.svelte.d.ts +2 -0
- package/package/components/ConnectionSection.svelte +12 -1
- package/package/components/DateTimeInput.svelte +8 -6
- package/package/components/DeployButton.svelte +1 -1
- package/package/components/Dev.svelte +24 -9
- package/package/components/Dev.svelte.d.ts +23 -1
- package/package/components/DisplayResult.svelte +36 -23
- package/package/components/DropdownV2.svelte +8 -2
- package/package/components/DropdownV2.svelte.d.ts +1 -0
- package/package/components/DynamicInput.svelte +10 -10
- package/package/components/EditableSchemaForm.svelte +28 -13
- package/package/components/Editor.svelte +2 -1
- package/package/components/EditorSettings.svelte +5 -5
- package/package/components/EditorSettings.svelte.d.ts +4 -18
- package/package/components/ErrorOrRecoveryHandler.svelte +14 -20
- package/package/components/FakeMonacoPlaceHolder.svelte +4 -2
- package/package/components/FakeMonacoPlaceHolder.svelte.d.ts +1 -0
- package/package/components/FieldHeader.svelte +5 -7
- package/package/components/FirstStepInputs.svelte +1 -1
- package/package/components/FlowHistoryJobPicker.svelte +3 -0
- package/package/components/FlowHistoryJobPicker.svelte.d.ts +1 -0
- package/package/components/FlowJobResult.svelte +5 -5
- package/package/components/FlowLogRow.svelte +2 -2
- package/package/components/FlowLogViewer.svelte +228 -57
- package/package/components/FlowLogViewer.svelte.d.ts +16 -5
- package/package/components/FlowLogViewerWrapper.svelte +56 -3
- package/package/components/FlowLogViewerWrapper.svelte.d.ts +4 -3
- package/package/components/FlowLoopIterationPreview.svelte +4 -4
- package/package/components/FlowLoopIterationPreview.svelte.d.ts +1 -1
- package/package/components/FlowMetadata.svelte +3 -4
- package/package/components/FlowMetadata.svelte.d.ts +4 -18
- package/package/components/FlowPlugConnect.svelte +8 -2
- package/package/components/FlowPlugConnect.svelte.d.ts +1 -0
- package/package/components/FlowPreviewContent.svelte +121 -94
- package/package/components/FlowPreviewContent.svelte.d.ts +3 -3
- package/package/components/FlowStatusViewer.svelte +63 -59
- package/package/components/FlowStatusViewer.svelte.d.ts +2 -2
- package/package/components/FlowStatusViewerInner.svelte +186 -94
- package/package/components/FlowStatusViewerInner.svelte.d.ts +10 -3
- package/package/components/FlowTimeline.svelte +110 -131
- package/package/components/FlowTimeline.svelte.d.ts +13 -4
- package/package/components/FlowTimelineBar.svelte +227 -0
- package/package/components/FlowTimelineBar.svelte.d.ts +24 -0
- package/package/components/FolderEditor.svelte +6 -7
- package/package/components/GroupEditor.svelte +148 -141
- package/package/components/GroupEditor.svelte.d.ts +5 -4
- package/package/components/InputTransformForm.svelte +193 -71
- package/package/components/InputTransformForm.svelte.d.ts +3 -0
- package/package/components/InputTransformSchemaForm.svelte +10 -5
- package/package/components/InputTransformSchemaForm.svelte.d.ts +2 -0
- package/package/components/InstanceSetting.svelte +34 -51
- package/package/components/InstanceSettings.svelte +12 -21
- package/package/components/JobArgs.svelte +15 -16
- package/package/components/JobArgs.svelte.d.ts +4 -18
- package/package/components/JobLoader.svelte +23 -42
- package/package/components/JobLoader.svelte.d.ts +2 -0
- package/package/components/JobStatus.svelte +1 -1
- package/package/components/JobStatus.svelte.d.ts +4 -18
- package/package/components/JsonEditor.svelte +18 -9
- package/package/components/JsonEditor.svelte.d.ts +1 -1
- package/package/components/JsonInputs.svelte +1 -1
- package/package/components/ModulePreviewForm.svelte +23 -19
- package/package/components/ModulePreviewResultViewer.svelte +1 -7
- package/package/components/NextcloudSetting.svelte +6 -1
- package/package/components/NumberTypeNarrowing.svelte +32 -16
- package/package/components/ObjectStoreConfigSettings.svelte +27 -19
- package/package/components/Password.svelte +7 -11
- package/package/components/Password.svelte.d.ts +5 -20
- package/package/components/PasswordArgInput.svelte +35 -15
- package/package/components/PasswordArgInput.svelte.d.ts +4 -18
- package/package/components/Path.svelte +2 -8
- package/package/components/Path.svelte.d.ts +1 -1
- package/package/components/QueuePosition.svelte +6 -2
- package/package/components/ResourceEditor.svelte +3 -10
- package/package/components/ResourcePicker.svelte +85 -72
- package/package/components/ResourcePicker.svelte.d.ts +2 -0
- package/package/components/RunChart.svelte +1 -1
- package/package/components/RunForm.svelte +16 -21
- package/package/components/S3ArrayHelperButton.svelte +18 -0
- package/package/components/S3ArrayHelperButton.svelte.d.ts +9 -0
- package/package/components/S3FilePicker.svelte +1 -1
- package/package/components/SchemaForm.svelte +18 -10
- package/package/components/SchemaForm.svelte.d.ts +7 -1
- package/package/components/SchemaFormWithArgPicker.svelte +1 -1
- package/package/components/ScriptBuilder.svelte +2 -2
- package/package/components/ScriptEditor.svelte +9 -9
- package/package/components/ScriptEditor.svelte.d.ts +1 -1
- package/package/components/ShareModal.svelte +4 -4
- package/package/components/SimpleEditor.svelte +6 -2
- package/package/components/SimpleEditor.svelte.d.ts +3 -0
- package/package/components/StringTypeNarrowing.svelte +44 -25
- package/package/components/StringTypeNarrowing.svelte.d.ts +1 -1
- package/package/components/SuperadminSettingsInner.svelte +3 -3
- package/package/components/TeamSelector.svelte +83 -37
- package/package/components/TeamSelector.svelte.d.ts +0 -1
- package/package/components/TemplateEditor.svelte +18 -9
- package/package/components/Toast.svelte +2 -7
- package/package/components/Toast.svelte.d.ts +4 -18
- package/package/components/Toggle.svelte +17 -7
- package/package/components/ToggleHubWorkspaceQuick.svelte +3 -3
- package/package/components/WorkerGroup.svelte +2 -14
- package/package/components/apps/components/buttons/AppButton.svelte +66 -38
- package/package/components/apps/components/display/dbtable/InsertRow.svelte +32 -2
- package/package/components/apps/components/display/dbtable/queries/insert.js +2 -1
- package/package/components/apps/components/display/dbtable/utils.d.ts +8 -8
- package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +13 -4
- package/package/components/apps/components/display/table/SyncColumnDefs.svelte +2 -2
- package/package/components/apps/components/display/table/utils.js +14 -4
- package/package/components/apps/components/helpers/RefreshButton.svelte +5 -1
- package/package/components/apps/components/helpers/RunnableComponent.svelte +3 -5
- package/package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +1 -0
- package/package/components/apps/components/inputs/currency/CurrencyInput.svelte +2 -1
- package/package/components/apps/components/layout/AppTabs.svelte +116 -71
- package/package/components/apps/components/layout/AppTabs.svelte.d.ts +1 -0
- package/package/components/apps/editor/AppEditorHeader.svelte +33 -271
- package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +233 -0
- package/package/components/apps/editor/AppEditorHeaderDeploy.svelte.d.ts +18 -0
- package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte +47 -0
- package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte.d.ts +8 -0
- package/package/components/apps/editor/GridEditor.svelte +7 -2
- package/package/components/apps/editor/appDeploy.svelte.d.ts +1 -0
- package/package/components/apps/editor/appDeploy.svelte.js +6 -0
- package/package/components/apps/editor/appUtils.d.ts +1 -0
- package/package/components/apps/editor/appUtils.js +30 -1
- package/package/components/apps/editor/component/ComponentInner.svelte +1 -0
- package/package/components/apps/editor/component/ComponentNavigation.svelte +3 -1
- package/package/components/apps/editor/component/components.d.ts +19 -4
- package/package/components/apps/editor/component/components.js +23 -3
- package/package/components/apps/editor/contextPanel/ComponentOutputViewer.svelte +1 -1
- package/package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +6 -4
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +1 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte.d.ts +1 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +1 -1
- package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +2 -0
- package/package/components/apps/editor/settingsPanel/GridTab.svelte +19 -1
- package/package/components/apps/editor/settingsPanel/GridTab.svelte.d.ts +3 -1
- package/package/components/apps/editor/settingsPanel/GridTabHidden.svelte +52 -0
- package/package/components/apps/editor/settingsPanel/GridTabHidden.svelte.d.ts +9 -0
- package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +58 -8
- package/package/components/auditLogs/AuditLogsFilters.svelte +7 -1
- package/package/components/auditLogs/AuditLogsTable.svelte +17 -7
- package/package/components/auditLogs/AuditLogsTable.svelte.d.ts +1 -0
- package/package/components/common/CloseButton.svelte +2 -2
- package/package/components/common/CloseButton.svelte.d.ts +1 -0
- package/package/components/common/ResizeTransitionWrapper.svelte +39 -0
- package/package/components/common/ResizeTransitionWrapper.svelte.d.ts +12 -0
- package/package/components/common/badge/CountBadge.svelte +29 -0
- package/package/components/common/badge/CountBadge.svelte.d.ts +8 -0
- package/package/components/common/button/Button.svelte +1 -0
- package/package/components/common/button/ConnectionButton.svelte +6 -1
- package/package/components/common/button/ConnectionButton.svelte.d.ts +2 -0
- package/package/components/common/button/RefreshButton.svelte +8 -4
- package/package/components/common/button/RefreshButton.svelte.d.ts +3 -0
- package/package/components/common/calendarPicker/CalendarPicker.svelte +1 -1
- package/package/components/common/fileInput/FileInput.svelte +7 -6
- package/package/components/common/fileUpload/S3ArgInput.svelte +11 -9
- package/package/components/common/fileUpload/S3ArgInput.svelte.d.ts +1 -0
- package/package/components/common/layout/List.svelte +3 -7
- package/package/components/common/layout/List.svelte.d.ts +7 -29
- package/package/components/common/popup/PopupV2.svelte +14 -25
- package/package/components/common/popup/PopupV2.svelte.d.ts +4 -2
- package/package/components/common/table/ScriptRow.svelte +22 -2
- package/package/components/common/toggleButton-v2/ToggleButton.svelte +17 -26
- package/package/components/common/toggleButton-v2/ToggleButton.svelte.d.ts +16 -30
- package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +1 -1
- package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte +3 -3
- package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte.d.ts +1 -0
- package/package/components/copilot/CodeCompletionStatus.svelte +2 -1
- package/package/components/copilot/CronGen.svelte +1 -1
- package/package/components/copilot/FlowCopilotInputsModal.svelte +26 -23
- package/package/components/copilot/FlowInlineScriptAIButton.svelte +2 -2
- package/package/components/copilot/IteratorGen.svelte +30 -25
- package/package/components/copilot/IteratorGen.svelte.d.ts +8 -7
- package/package/components/copilot/MetadataGen.svelte +4 -3
- package/package/components/copilot/PredicateGen.svelte +15 -12
- package/package/components/copilot/PredicateGen.svelte.d.ts +5 -4
- package/package/components/copilot/RegexGen.svelte +1 -1
- package/package/components/copilot/ScriptFix.svelte +1 -1
- package/package/components/copilot/ScriptGen.svelte +2 -1
- package/package/components/copilot/StepGenQuick.svelte +15 -16
- package/package/components/copilot/StepGenQuick.svelte.d.ts +14 -13
- package/package/components/copilot/StepInputGen.svelte +50 -36
- package/package/components/copilot/StepInputGen.svelte.d.ts +13 -10
- package/package/components/copilot/StepInputsGen.svelte +18 -19
- package/package/components/copilot/StepInputsGen.svelte.d.ts +4 -18
- package/package/components/copilot/autocomplete/Autocompletor.js +1 -1
- package/package/components/copilot/autocomplete/request.js +1 -1
- package/package/components/copilot/chat/AIChat.svelte +2 -1
- package/package/components/copilot/chat/AIChatManager.svelte.js +5 -3
- package/package/components/copilot/chat/AiChatLayout.svelte +2 -1
- package/package/components/copilot/chat/ProviderModelSelector.svelte +11 -10
- package/package/components/copilot/chat/ProviderModelSelector.svelte.d.ts +2 -17
- package/package/components/copilot/chat/flow/FlowAIButton.svelte +1 -1
- package/package/components/copilot/chat/flow/FlowAIChat.svelte +4 -2
- package/package/components/copilot/chat/script/core.d.ts +4 -4
- package/package/components/copilot/chat/script/core.js +95 -35
- package/package/components/copilot/chat/shared.js +2 -1
- package/package/components/copilot/lib.d.ts +1 -0
- package/package/components/copilot/lib.js +7 -3
- package/package/components/custom_ui.d.ts +1 -0
- package/package/components/details/DetailPageLayout.svelte +3 -2
- package/package/components/details/DetailPageLayout.svelte.d.ts +1 -0
- package/package/components/flows/CreateActionsFlow.svelte +1 -1
- package/package/components/flows/FlowChatInterface.svelte +404 -0
- package/package/components/flows/FlowChatInterface.svelte.d.ts +19 -0
- package/package/components/flows/FlowChatMessage.svelte +41 -0
- package/package/components/flows/FlowChatMessage.svelte.d.ts +9 -0
- package/package/components/flows/FlowConversationsSidebar.svelte +213 -0
- package/package/components/flows/FlowConversationsSidebar.svelte.d.ts +15 -0
- package/package/components/flows/FlowEditor.svelte.d.ts +1 -1
- package/package/components/flows/FlowModuleIcon.svelte +10 -10
- package/package/components/flows/FlowProgressBar.svelte +16 -16
- package/package/components/flows/FlowProgressBar.svelte.d.ts +7 -22
- package/package/components/flows/common/FlowCard.svelte +10 -2
- package/package/components/flows/common/FlowCard.svelte.d.ts +1 -0
- package/package/components/flows/common/FlowCardHeader.svelte +2 -1
- package/package/components/flows/common/FlowCardHeader.svelte.d.ts +1 -0
- package/package/components/flows/content/DynamicInputHelpBox.svelte +4 -4
- package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +1 -1
- package/package/components/flows/content/FlowInput.svelte +381 -259
- package/package/components/flows/content/FlowInput.svelte.d.ts +1 -1
- package/package/components/flows/content/FlowInputsQuick.svelte +56 -34
- package/package/components/flows/content/FlowInputsQuick.svelte.d.ts +3 -2
- package/package/components/flows/content/FlowModuleComponent.svelte +29 -11
- package/package/components/flows/flowInfers.d.ts +60 -0
- package/package/components/flows/flowInfers.js +72 -40
- package/package/components/flows/{flowStore.d.ts → flowStore.svelte.d.ts} +5 -1
- package/package/components/flows/header/FlowPreviewButtons.svelte +1 -1
- package/package/components/flows/map/FlowErrorHandlerItem.svelte +4 -2
- package/package/components/flows/map/FlowErrorHandlerItem.svelte.d.ts +1 -0
- package/package/components/flows/map/FlowJobsMenu.svelte +3 -3
- package/package/components/flows/map/FlowJobsMenu.svelte.d.ts +1 -1
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +1 -1
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +5 -2
- package/package/components/flows/map/FlowStickyNode.svelte +2 -2
- package/package/components/flows/map/FlowStickyNode.svelte.d.ts +1 -0
- package/package/components/flows/map/InsertModuleButton.svelte +8 -15
- package/package/components/flows/map/InsertModuleButton.svelte.d.ts +4 -4
- package/package/components/flows/map/InsertModuleInner.svelte +19 -20
- package/package/components/flows/map/InsertModuleInner.svelte.d.ts +2 -2
- package/package/components/flows/map/MapItem.svelte +1 -1
- package/package/components/flows/map/VirtualItem.svelte +1 -2
- package/package/components/flows/pickers/PickHubScriptQuick.svelte +43 -52
- package/package/components/flows/pickers/PickHubScriptQuick.svelte.d.ts +2 -1
- package/package/components/flows/pickers/WorkspaceScriptPickerQuick.svelte +41 -26
- package/package/components/flows/pickers/WorkspaceScriptPickerQuick.svelte.d.ts +1 -0
- package/package/components/flows/propPicker/OutputPicker.svelte +2 -0
- package/package/components/flows/propPicker/PropPickerWrapper.svelte +1 -15
- package/package/components/git_sync/DetectionFlow.svelte +33 -44
- package/package/components/git_sync/DetectionFlow.svelte.d.ts +1 -0
- package/package/components/git_sync/GitSyncContext.svelte.d.ts +22 -0
- package/package/components/git_sync/GitSyncContext.svelte.js +145 -5
- package/package/components/git_sync/GitSyncModeDisplay.svelte +14 -0
- package/package/components/git_sync/GitSyncModeDisplay.svelte.d.ts +9 -0
- package/package/components/git_sync/GitSyncRepositoryCard.svelte +365 -253
- package/package/components/git_sync/GitSyncRepositoryCard.svelte.d.ts +10 -1
- package/package/components/git_sync/GitSyncSection.svelte +134 -14
- package/package/components/git_sync/PullWorkspaceModal.svelte +24 -32
- package/package/components/git_sync/PushWorkspaceModal.svelte +24 -32
- package/package/components/graph/FlowGraphV2.svelte +2 -1
- package/package/components/graph/FlowGraphV2.svelte.d.ts +1 -0
- package/package/components/graph/graphBuilder.svelte.d.ts +2 -0
- package/package/components/graph/graphBuilder.svelte.js +1 -0
- package/package/components/graph/model.d.ts +5 -5
- package/package/components/graph/renderers/edges/BaseEdge.svelte +1 -0
- package/package/components/graph/renderers/edges/EmptyEdge.svelte +3 -10
- package/package/components/graph/renderers/edges/EmptyEdge.svelte.d.ts +4 -18
- package/package/components/graph/renderers/nodes/AIToolNode.svelte +2 -2
- package/package/components/graph/renderers/nodes/InputNode.svelte +13 -2
- package/package/components/graph/renderers/nodes/NewAIToolNode.svelte +5 -10
- package/package/components/graph/renderers/triggers/TriggersBadge.svelte +2 -27
- package/package/components/home/ItemsList.svelte +1 -1
- package/package/components/instanceSettings.js +17 -0
- package/package/components/jobs/JobProgressBar.svelte +27 -21
- package/package/components/jobs/JobProgressBar.svelte.d.ts +9 -24
- package/package/components/meltComponents/MenuSingleItem.svelte +3 -8
- package/package/components/meltComponents/MenuSingleItem.svelte.d.ts +0 -3
- package/package/components/meltComponents/Popover.svelte +3 -2
- package/package/components/meltComponents/Popover.svelte.d.ts +1 -0
- package/package/components/meltComponents/Tooltip.svelte +1 -1
- package/package/components/progressBar/ProgressBar.svelte +39 -53
- package/package/components/progressBar/ProgressBar.svelte.d.ts +11 -26
- package/package/components/raw_apps/FileEditorIcon.svelte +1 -1
- package/package/components/raw_apps/FileEditorIcon.svelte.d.ts +4 -18
- package/package/components/raw_apps/RawAppBackgroundRunner.svelte +2 -8
- package/package/components/raw_apps/RawAppBackgroundRunner.svelte.d.ts +4 -18
- package/package/components/raw_apps/RawAppEditor.svelte +6 -7
- package/package/components/raw_apps/RawAppEditorHeader.svelte +48 -301
- package/package/components/raw_apps/RawAppEditorHeader.svelte.d.ts +18 -19
- package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +10 -16
- package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +13 -13
- package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte +8 -11
- package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte.d.ts +1 -2
- package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +0 -1
- package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte +7 -13
- package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte.d.ts +8 -8
- package/package/components/raw_apps/RawAppPreview.svelte +3 -7
- package/package/components/raw_apps/RawAppPreview.svelte.d.ts +5 -19
- package/package/components/raw_apps/utils.d.ts +1 -1
- package/package/components/raw_apps/utils.js +3 -3
- package/package/components/runs/JobsLoader.svelte +1 -1
- package/package/components/runs/NoWorkerWithTagWarning.svelte +3 -3
- package/package/components/runs/NoWorkerWithTagWarning.svelte.d.ts +1 -1
- package/package/components/runs/RunOption.svelte +2 -2
- package/package/components/runs/RunsFilter.svelte +15 -12
- package/package/components/runs/RunsFilter.svelte.d.ts +1 -1
- package/package/components/schema/AddPropertyV2.svelte +7 -4
- package/package/components/schema/EditableSchemaDrawer.svelte +19 -18
- package/package/components/schema/FlowPropertyEditor.svelte +9 -2
- package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -1
- package/package/components/schema/PropertyEditor.svelte +22 -26
- package/package/components/schema/PropertyEditor.svelte.d.ts +1 -1
- package/package/components/schema/SchemaFormDND.svelte +3 -2
- package/package/components/schema/SchemaFormDND.svelte.d.ts +1 -0
- package/package/components/select/DraggableTags.svelte +2 -2
- package/package/components/select/MultiSelect.svelte +15 -9
- package/package/components/select/MultiSelect.svelte.d.ts +1 -0
- package/package/components/select/Select.svelte +12 -5
- package/package/components/select/Select.svelte.d.ts +11 -0
- package/package/components/select/SelectDropdown.svelte +98 -46
- package/package/components/select/SelectDropdown.svelte.d.ts +10 -0
- package/package/components/select/utils.svelte.js +2 -0
- package/package/components/settings/CreateToken.svelte +76 -49
- package/package/components/settings/WorkspaceUserSettings.svelte +111 -17
- package/package/components/sidebar/CriticalAlertTable.svelte +2 -1
- package/package/components/sidebar/Linkify.svelte +14 -0
- package/package/components/sidebar/Linkify.svelte.d.ts +5 -0
- package/package/components/sidebar/MenuLink.svelte +2 -1
- package/package/components/sidebar/MenuLink.svelte.d.ts +1 -0
- package/package/components/sidebar/SidebarContent.svelte +27 -27
- package/package/components/sidebar/WorkspaceMenu.svelte +8 -3
- package/package/components/table/Cell.svelte +7 -14
- package/package/components/table/Cell.svelte.d.ts +13 -35
- package/package/components/table/tableUtils.js +1 -1
- package/package/components/text_input/TextInput.svelte +30 -0
- package/package/components/text_input/TextInput.svelte.d.ts +17 -0
- package/package/components/triggers/AddTriggersButton.svelte +1 -0
- package/package/components/triggers/TriggersEditor.svelte +11 -1
- package/package/components/triggers/gcp/GcpTriggerEditorConfigSection.svelte +1 -1
- package/package/components/triggers/gcp/GcpTriggerEditorConfigSection.svelte.d.ts +2 -1
- package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +28 -5
- package/package/components/triggers/gcp/utils.js +1 -0
- package/package/components/triggers/schedules/ScheduleEditorInner.svelte +1 -0
- package/package/components/triggers/triggers.svelte.d.ts +1 -1
- package/package/components/triggers/triggers.svelte.js +8 -4
- package/package/components/triggers/webhook/WebhooksConfigSection.svelte +143 -63
- package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +22 -0
- package/package/components/triggers/websocket/utils.js +1 -0
- package/package/components/tutorials/FlowBuilderTutorialErrorHandler.svelte +2 -2
- package/package/components/tutorials/FlowBuilderTutorialForLoop.svelte +3 -0
- package/package/components/tutorials/FlowBuilderTutorialSimpleFlow.svelte +49 -17
- package/package/components/tutorials/Tutorial.svelte +9 -0
- package/package/components/tutorials/Tutorial.svelte.d.ts +1 -0
- package/package/components/tutorials/app/AppTutorial.svelte +41 -57
- package/package/components/tutorials/app/BackgroundRunnablesTutorial.svelte +3 -5
- package/package/components/tutorials/app/ConnectionTutorial.svelte +2 -2
- package/package/components/tutorials/utils.js +2 -154
- package/package/components/vscode.js +16 -8
- package/package/components/workspaceSettings/AISettings.svelte +12 -5
- package/package/components/workspaceSettings/AISettings.svelte.d.ts +2 -1
- package/package/components/workspaceSettings/CreateWorkspace.svelte +2 -2
- package/package/components/workspaceSettings/DucklakeSettings.svelte +64 -7
- package/package/components/workspaceSettings/ModelTokenLimits.svelte +165 -0
- package/package/components/workspaceSettings/ModelTokenLimits.svelte.d.ts +8 -0
- package/package/components/workspaceSettings/StorageSettings.svelte +147 -77
- package/package/editorUtils.d.ts +1 -1
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +223 -17
- package/package/gen/schemas.gen.js +226 -17
- package/package/gen/services.gen.d.ts +221 -27
- package/package/gen/services.gen.js +440 -48
- package/package/gen/types.gen.d.ts +1067 -218
- package/package/hubPaths.json +2 -1
- package/package/script_helpers.js +5 -5
- package/package/services/JobManager.js +14 -9
- package/package/stores.d.ts +4 -12
- package/package/stores.js +5 -65
- package/package/timelineCompute.svelte.d.ts +21 -0
- package/package/timelineCompute.svelte.js +113 -0
- package/package/toast.js +2 -1
- package/package/utils.d.ts +16 -8
- package/package/utils.js +65 -12
- package/package/workspace_settings.d.ts +13 -8
- package/package/workspace_settings.js +46 -11
- package/package.json +4 -4
- /package/package/components/flows/{flowStore.js → flowStore.svelte.js} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script lang="ts">import { WorkspaceService } from '../../gen';
|
|
2
|
-
import {
|
|
2
|
+
import { workspaceStore } from '../../stores';
|
|
3
3
|
import { sendUserToast } from '../../toast';
|
|
4
4
|
import { AI_PROVIDERS, fetchAvailableModels } from '../copilot/lib';
|
|
5
5
|
import TestAiKey from '../copilot/TestAIKey.svelte';
|
|
@@ -17,8 +17,10 @@ import { AIMode } from '../copilot/chat/AIChatManager.svelte';
|
|
|
17
17
|
import ToggleButtonGroup from '../common/toggleButton-v2/ToggleButtonGroup.svelte';
|
|
18
18
|
import ToggleButton from '../common/toggleButton-v2/ToggleButton.svelte';
|
|
19
19
|
import autosize from '../../autosize';
|
|
20
|
+
import ModelTokenLimits from './ModelTokenLimits.svelte';
|
|
21
|
+
import { setCopilotInfo } from '../../aiStore';
|
|
20
22
|
const MAX_CUSTOM_PROMPT_LENGTH = 5000;
|
|
21
|
-
let { aiProviders = $bindable(), codeCompletionModel = $bindable(), defaultModel = $bindable(), customPrompts = $bindable(), usingOpenaiClientCredentialsOauth = $bindable() } = $props();
|
|
23
|
+
let { aiProviders = $bindable(), codeCompletionModel = $bindable(), defaultModel = $bindable(), customPrompts = $bindable(), maxTokensPerModel = $bindable(), usingOpenaiClientCredentialsOauth = $bindable() } = $props();
|
|
22
24
|
let fetchedAiModels = $state(false);
|
|
23
25
|
let availableAiModels = $state(Object.fromEntries(Object.keys(AI_PROVIDERS).map((provider) => [provider, AI_PROVIDERS[provider].defaultModels])));
|
|
24
26
|
// Custom system prompt settings
|
|
@@ -66,7 +68,8 @@ async function editCopilotConfig() {
|
|
|
66
68
|
providers: aiProviders,
|
|
67
69
|
code_completion_model,
|
|
68
70
|
default_model,
|
|
69
|
-
custom_prompts: Object.keys(custom_prompts).length > 0 ? custom_prompts : undefined
|
|
71
|
+
custom_prompts: Object.keys(custom_prompts).length > 0 ? custom_prompts : undefined,
|
|
72
|
+
max_tokens_per_model: Object.keys(maxTokensPerModel).length > 0 ? maxTokensPerModel : undefined
|
|
70
73
|
};
|
|
71
74
|
await WorkspaceService.editCopilotConfig({
|
|
72
75
|
workspace: $workspaceStore,
|
|
@@ -183,9 +186,9 @@ async function onAiProviderChange(provider) {
|
|
|
183
186
|
: provider}
|
|
184
187
|
initialValue={aiProviders[provider].resource_path}
|
|
185
188
|
bind:value={
|
|
186
|
-
() => aiProviders[provider].resource_path,
|
|
189
|
+
() => aiProviders[provider].resource_path || undefined,
|
|
187
190
|
(v) => {
|
|
188
|
-
aiProviders[provider].resource_path = v
|
|
191
|
+
aiProviders[provider].resource_path = v ?? ''
|
|
189
192
|
onAiProviderChange(provider as AIProvider)
|
|
190
193
|
}
|
|
191
194
|
}
|
|
@@ -276,6 +279,10 @@ async function onAiProviderChange(provider) {
|
|
|
276
279
|
</div>
|
|
277
280
|
{/if}
|
|
278
281
|
|
|
282
|
+
{#if Object.keys(aiProviders).length > 0}
|
|
283
|
+
<ModelTokenLimits {aiProviders} bind:maxTokensPerModel />
|
|
284
|
+
{/if}
|
|
285
|
+
|
|
279
286
|
{#if Object.keys(aiProviders).length > 0}
|
|
280
287
|
<div class="flex flex-col gap-2">
|
|
281
288
|
<p class="font-semibold">Custom system prompts</p>
|
|
@@ -4,8 +4,9 @@ type $$ComponentProps = {
|
|
|
4
4
|
codeCompletionModel: string | undefined;
|
|
5
5
|
defaultModel: string | undefined;
|
|
6
6
|
customPrompts: Record<string, string>;
|
|
7
|
+
maxTokensPerModel: Record<string, number>;
|
|
7
8
|
usingOpenaiClientCredentialsOauth: boolean;
|
|
8
9
|
};
|
|
9
|
-
declare const AiSettings: import("svelte").Component<$$ComponentProps, {}, "codeCompletionModel" | "defaultModel" | "aiProviders" | "customPrompts" | "usingOpenaiClientCredentialsOauth">;
|
|
10
|
+
declare const AiSettings: import("svelte").Component<$$ComponentProps, {}, "codeCompletionModel" | "defaultModel" | "aiProviders" | "maxTokensPerModel" | "customPrompts" | "usingOpenaiClientCredentialsOauth">;
|
|
10
11
|
type AiSettings = ReturnType<typeof AiSettings>;
|
|
11
12
|
export default AiSettings;
|
|
@@ -367,8 +367,8 @@ let domain = $derived($usersWorkspaceStore?.email.split('@')[1]);
|
|
|
367
367
|
}}
|
|
368
368
|
>
|
|
369
369
|
{#snippet children({ item })}
|
|
370
|
-
<ToggleButton value="operator"
|
|
371
|
-
<ToggleButton value="developer"
|
|
370
|
+
<ToggleButton value="operator" small label="Operator" {item} />
|
|
371
|
+
<ToggleButton value="developer" small label="Developer" {item} />
|
|
372
372
|
{/snippet}
|
|
373
373
|
</ToggleButtonGroup>
|
|
374
374
|
</div>
|
|
@@ -57,6 +57,8 @@ export function convertDucklakeSettingsToBackend(settings) {
|
|
|
57
57
|
import Alert from '../common/alert/Alert.svelte'
|
|
58
58
|
import { deepEqual } from 'fast-equals'
|
|
59
59
|
import Popover from '../meltComponents/Popover.svelte'
|
|
60
|
+
import TextInput from '../text_input/TextInput.svelte'
|
|
61
|
+
import Section from '../Section.svelte'
|
|
60
62
|
|
|
61
63
|
const DEFAULT_DUCKLAKE_CATALOG_NAME = 'ducklake_catalog'
|
|
62
64
|
|
|
@@ -164,7 +166,7 @@ export function convertDucklakeSettingsToBackend(settings) {
|
|
|
164
166
|
<div class="text-primary text-lg font-semibold">Ducklake</div>
|
|
165
167
|
<Description link="https://www.windmill.dev/docs/core_concepts/ducklake">
|
|
166
168
|
Windmill has first class support for Ducklake. You can use and explore ducklakes like a normal
|
|
167
|
-
SQL database, even
|
|
169
|
+
SQL database, even though the data is actually stored in parquet files in S3 !
|
|
168
170
|
</Description>
|
|
169
171
|
</div>
|
|
170
172
|
</div>
|
|
@@ -173,6 +175,52 @@ export function convertDucklakeSettingsToBackend(settings) {
|
|
|
173
175
|
<Alert title="Instance catalogs use the Windmill database" class="mb-4" type="info">
|
|
174
176
|
Using an instance catalog is the fastest way to get started with Ducklake. They are public to
|
|
175
177
|
the instance and can be re-used in other workspaces' Ducklake settings.
|
|
178
|
+
<div>
|
|
179
|
+
<Section
|
|
180
|
+
label="Manual setup instructions"
|
|
181
|
+
collapsable
|
|
182
|
+
headerClass="mt-6 border bg-surface px-3 py-1 rounded-md text-xs text-secondary"
|
|
183
|
+
class="text-secondary"
|
|
184
|
+
animate
|
|
185
|
+
>
|
|
186
|
+
This is what happens when you create a new Instance catalog with the name
|
|
187
|
+
<code>ducklake_catalog</code>. This may be useful to debug issues in case the automatic
|
|
188
|
+
setup fails in the middle, but in most cases Windmill will handle it for you.
|
|
189
|
+
<br /><br />
|
|
190
|
+
|
|
191
|
+
If the database <code>ducklake_catalog</code> already exists, Windmill assumes that the
|
|
192
|
+
setup was successful and does not do anything. However, it is possible that it failed in the
|
|
193
|
+
middle (in which case you should have seen an error pop up during setup). There is no
|
|
194
|
+
rollback as the following operations do not work in a transaction.
|
|
195
|
+
<br />
|
|
196
|
+
This is what the setup does :
|
|
197
|
+
<br /><br />
|
|
198
|
+
Connect to the Windmill PostgreSQL as the default user (the one in your DATABASE_URL, usually
|
|
199
|
+
'postgres') and run :
|
|
200
|
+
<br />
|
|
201
|
+
<code class="block p-2 border rounded-md bg-surface mt-2">
|
|
202
|
+
CREATE DATABASE <code>ducklake_catalog</code>;<br />
|
|
203
|
+
GRANT CONNECT ON DATABASE <code>ducklake_catalog</code> TO ducklake_user;
|
|
204
|
+
</code>
|
|
205
|
+
<br />
|
|
206
|
+
Then, connect to the <code>ducklake_catalog</code> database with the same user as above (NOT
|
|
207
|
+
ducklake_user) and run :
|
|
208
|
+
<code class="block p-2 border rounded-md bg-surface mt-2">
|
|
209
|
+
GRANT USAGE ON SCHEMA public TO ducklake_user;<br />
|
|
210
|
+
GRANT CREATE ON SCHEMA public TO ducklake_user;<br />
|
|
211
|
+
ALTER DEFAULT PRIVILEGES IN SCHEMA public<br />
|
|
212
|
+
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO ducklake_user;
|
|
213
|
+
</code>
|
|
214
|
+
<br />
|
|
215
|
+
After doing that, creating a new Ducklake with an Instance catalog named
|
|
216
|
+
<code>ducklake_catalog</code> should not prompt you to run the automatic setup, and
|
|
217
|
+
everything should work fine.
|
|
218
|
+
<br /><br />
|
|
219
|
+
Note : the ducklake_user is automatically created by Windmill in a migration. Its password is
|
|
220
|
+
auto-generated and stored in the database table <code>global_settings</code> with the key
|
|
221
|
+
<code>ducklake_user_pg_pwd</code>.
|
|
222
|
+
</Section>
|
|
223
|
+
</div>
|
|
176
224
|
</Alert>
|
|
177
225
|
{/if}
|
|
178
226
|
|
|
@@ -209,7 +257,7 @@ export function convertDucklakeSettingsToBackend(settings) {
|
|
|
209
257
|
<code class="px-1 py-0.5 border rounded-md">ATTACH 'ducklake' AS dl;</code> shorthand
|
|
210
258
|
</Tooltip>
|
|
211
259
|
{/if}
|
|
212
|
-
<
|
|
260
|
+
<TextInput bind:value={ducklake.name} inputProps={{ placeholder: 'Name' }} />
|
|
213
261
|
</Cell>
|
|
214
262
|
<Cell>
|
|
215
263
|
<div class="flex gap-4">
|
|
@@ -243,11 +291,13 @@ export function convertDucklakeSettingsToBackend(settings) {
|
|
|
243
291
|
<ResourcePicker
|
|
244
292
|
bind:value={ducklake.catalog.resource_path}
|
|
245
293
|
resourceType={ducklake.catalog.resource_type}
|
|
294
|
+
selectInputClass="min-h-9"
|
|
295
|
+
class="min-h-9"
|
|
246
296
|
/>
|
|
247
297
|
{:else}
|
|
248
|
-
<
|
|
298
|
+
<TextInput
|
|
249
299
|
bind:value={ducklake.catalog.resource_path}
|
|
250
|
-
placeholder
|
|
300
|
+
inputProps={{ placeholder: 'PostgreSQL database name' }}
|
|
251
301
|
/>
|
|
252
302
|
{/if}
|
|
253
303
|
</div>
|
|
@@ -269,9 +319,12 @@ export function convertDucklakeSettingsToBackend(settings) {
|
|
|
269
319
|
}
|
|
270
320
|
}
|
|
271
321
|
class="w-48"
|
|
272
|
-
inputClass="!placeholder-
|
|
322
|
+
inputClass="!placeholder-secondary"
|
|
323
|
+
/>
|
|
324
|
+
<TextInput
|
|
325
|
+
inputProps={{ placeholder: 'Data path (defaults to /)' }}
|
|
326
|
+
bind:value={ducklake.storage.path}
|
|
273
327
|
/>
|
|
274
|
-
<input placeholder="Data path (defaults to /)" bind:value={ducklake.storage.path} />
|
|
275
328
|
</div>
|
|
276
329
|
</Cell>
|
|
277
330
|
<Cell class="w-12">
|
|
@@ -283,6 +336,7 @@ export function convertDucklakeSettingsToBackend(settings) {
|
|
|
283
336
|
>
|
|
284
337
|
<svelte:fragment slot="trigger">
|
|
285
338
|
<ExploreAssetButton
|
|
339
|
+
class="h-9"
|
|
286
340
|
asset={{ kind: 'ducklake', path: ducklake.name }}
|
|
287
341
|
{dbManagerDrawer}
|
|
288
342
|
disabled
|
|
@@ -316,8 +370,11 @@ export function convertDucklakeSettingsToBackend(settings) {
|
|
|
316
370
|
<Button
|
|
317
371
|
wrapperClasses="mt-4 mb-44 max-w-fit"
|
|
318
372
|
on:click={onSave}
|
|
319
|
-
disabled={
|
|
373
|
+
disabled={ducklakeSavedSettings.ducklakes.length === ducklakeSettings.ducklakes.length &&
|
|
374
|
+
Object.values(ducklakeIsDirty).every((v) => v === false)}
|
|
320
375
|
>
|
|
376
|
+
Save ducklake settings
|
|
377
|
+
</Button>
|
|
321
378
|
<DbManagerDrawer bind:this={dbManagerDrawer} />
|
|
322
379
|
|
|
323
380
|
<ConfirmationModal {...confirmationModal.props} />
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
<script lang="ts">import { getModelMaxTokens } from '../copilot/lib';
|
|
2
|
+
import { ChevronDown, ChevronUp } from 'lucide-svelte';
|
|
3
|
+
import { slide } from 'svelte/transition';
|
|
4
|
+
const MAX_TOKENS_LIMIT = 2000000;
|
|
5
|
+
let { aiProviders, maxTokensPerModel = $bindable() } = $props();
|
|
6
|
+
let errors = $state({});
|
|
7
|
+
let collapsedProviders = $state({});
|
|
8
|
+
// Group available models by provider
|
|
9
|
+
const modelsByProvider = $derived(Object.entries(aiProviders).reduce((acc, [provider, config]) => {
|
|
10
|
+
acc[provider] = config.models.map((model) => ({
|
|
11
|
+
provider: provider,
|
|
12
|
+
model
|
|
13
|
+
}));
|
|
14
|
+
return acc;
|
|
15
|
+
}, {}));
|
|
16
|
+
function getModelKey(provider, model) {
|
|
17
|
+
return `${provider}:${model}`;
|
|
18
|
+
}
|
|
19
|
+
function getDefaultTokensForModel(provider, model) {
|
|
20
|
+
return getModelMaxTokens(provider, model);
|
|
21
|
+
}
|
|
22
|
+
function getCurrentTokensForModel(provider, model) {
|
|
23
|
+
const modelKey = getModelKey(provider, model);
|
|
24
|
+
return maxTokensPerModel[modelKey] ?? getDefaultTokensForModel(provider, model);
|
|
25
|
+
}
|
|
26
|
+
function updateTokensForModel(provider, model, tokens) {
|
|
27
|
+
const modelKey = getModelKey(provider, model);
|
|
28
|
+
if (tokens < 1 || tokens > MAX_TOKENS_LIMIT) {
|
|
29
|
+
errors[modelKey] = 'Token limit must be between 1 and ' + MAX_TOKENS_LIMIT;
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const defaultTokens = getDefaultTokensForModel(provider, model);
|
|
33
|
+
if (tokens === defaultTokens) {
|
|
34
|
+
// Remove from object if it's the default value
|
|
35
|
+
const newSettings = { ...maxTokensPerModel };
|
|
36
|
+
delete newSettings[modelKey];
|
|
37
|
+
maxTokensPerModel = newSettings;
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
maxTokensPerModel = {
|
|
41
|
+
...maxTokensPerModel,
|
|
42
|
+
[modelKey]: tokens
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
errors[modelKey] = '';
|
|
46
|
+
}
|
|
47
|
+
function resetModelToDefault(provider, model) {
|
|
48
|
+
const modelKey = getModelKey(provider, model);
|
|
49
|
+
const newSettings = { ...maxTokensPerModel };
|
|
50
|
+
delete newSettings[modelKey];
|
|
51
|
+
maxTokensPerModel = newSettings;
|
|
52
|
+
}
|
|
53
|
+
function isModelAtDefault(provider, model) {
|
|
54
|
+
const currentTokens = getCurrentTokensForModel(provider, model);
|
|
55
|
+
const defaultTokens = getDefaultTokensForModel(provider, model);
|
|
56
|
+
return currentTokens === defaultTokens;
|
|
57
|
+
}
|
|
58
|
+
function toggleProvider(provider) {
|
|
59
|
+
collapsedProviders[provider] = !collapsedProviders[provider];
|
|
60
|
+
}
|
|
61
|
+
function hasCustomSettings(provider, models) {
|
|
62
|
+
return models.some((m) => !isModelAtDefault(provider, m.model));
|
|
63
|
+
}
|
|
64
|
+
$effect(() => {
|
|
65
|
+
// Initialize collapsedProviders to true for all providers
|
|
66
|
+
collapsedProviders = {
|
|
67
|
+
...Object.fromEntries(Object.keys(aiProviders).map((provider) => [provider, true]))
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
</script>
|
|
71
|
+
|
|
72
|
+
{#if Object.keys(aiProviders).length > 0}
|
|
73
|
+
<div class="flex flex-col gap-4">
|
|
74
|
+
<div class="flex flex-col gap-1">
|
|
75
|
+
<p class="font-semibold">Model Output Limits</p>
|
|
76
|
+
<p class="text-xs text-secondary">
|
|
77
|
+
Configure maximum token limits for each model. These limits apply to all AI chat
|
|
78
|
+
interactions in the workspace.
|
|
79
|
+
</p>
|
|
80
|
+
</div>
|
|
81
|
+
|
|
82
|
+
<div class="flex flex-col gap-3">
|
|
83
|
+
{#each Object.entries(modelsByProvider).filter(([provider, models]) => models.length > 0) as [provider, models]}
|
|
84
|
+
{@const isExpanded = !collapsedProviders[provider]}
|
|
85
|
+
{@const hasCustom = hasCustomSettings(provider, models)}
|
|
86
|
+
<div class="border border-gray-200 dark:border-gray-700 rounded-md">
|
|
87
|
+
<button
|
|
88
|
+
type="button"
|
|
89
|
+
onclick={() => toggleProvider(provider)}
|
|
90
|
+
class="w-full px-4 py-3 flex items-center justify-between bg-surface-secondary hover:bg-surface-hover transition-colors rounded-md"
|
|
91
|
+
>
|
|
92
|
+
<div class="flex items-center gap-2">
|
|
93
|
+
<h4 class="font-medium text-sm capitalize">{provider}</h4>
|
|
94
|
+
{#if hasCustom}
|
|
95
|
+
<span
|
|
96
|
+
class="text-xs px-2 py-0.5 bg-blue-100 dark:bg-blue-900 text-blue-700 dark:text-blue-300 rounded"
|
|
97
|
+
>
|
|
98
|
+
Modified
|
|
99
|
+
</span>
|
|
100
|
+
{/if}
|
|
101
|
+
</div>
|
|
102
|
+
{#if isExpanded}
|
|
103
|
+
<ChevronUp size={16} class="text-gray-500" />
|
|
104
|
+
{:else}
|
|
105
|
+
<ChevronDown size={16} class="text-gray-500" />
|
|
106
|
+
{/if}
|
|
107
|
+
</button>
|
|
108
|
+
|
|
109
|
+
{#if isExpanded}
|
|
110
|
+
<div transition:slide|local={{ duration: 200 }} class="p-3">
|
|
111
|
+
<div class="space-y-3">
|
|
112
|
+
{#each models as { model }}
|
|
113
|
+
{@const currentTokens = getCurrentTokensForModel(provider as AIProvider, model)}
|
|
114
|
+
{@const defaultTokens = getDefaultTokensForModel(provider as AIProvider, model)}
|
|
115
|
+
{@const isAtDefault = isModelAtDefault(provider as AIProvider, model)}
|
|
116
|
+
<div class="flex flex-col gap-1">
|
|
117
|
+
<div class="flex items-center gap-3">
|
|
118
|
+
<div class="flex-1 min-w-0">
|
|
119
|
+
<span class="text-sm text-primary truncate block">{model}</span>
|
|
120
|
+
</div>
|
|
121
|
+
<div class="flex items-center gap-2">
|
|
122
|
+
<input
|
|
123
|
+
type="number"
|
|
124
|
+
min="1"
|
|
125
|
+
max={MAX_TOKENS_LIMIT}
|
|
126
|
+
value={currentTokens}
|
|
127
|
+
oninput={(e) => {
|
|
128
|
+
const value = parseInt(e.currentTarget.value)
|
|
129
|
+
if (!isNaN(value)) {
|
|
130
|
+
updateTokensForModel(provider as AIProvider, model, value)
|
|
131
|
+
}
|
|
132
|
+
}}
|
|
133
|
+
class="w-20 px-2 py-1 text-xs text-center border border-gray-200 dark:border-gray-700 rounded bg-surface focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent"
|
|
134
|
+
/>
|
|
135
|
+
<span class="text-xs text-secondary whitespace-nowrap">tokens</span>
|
|
136
|
+
</div>
|
|
137
|
+
</div>
|
|
138
|
+
{#if !isAtDefault}
|
|
139
|
+
<div class="text-xs text-tertiary flex flex-row items-center gap-1">
|
|
140
|
+
<span>Default: {defaultTokens} tokens</span>
|
|
141
|
+
<button
|
|
142
|
+
type="button"
|
|
143
|
+
onclick={() => resetModelToDefault(provider as AIProvider, model)}
|
|
144
|
+
class="text-xs text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 whitespace-nowrap"
|
|
145
|
+
title="Reset to default ({defaultTokens})"
|
|
146
|
+
>
|
|
147
|
+
Reset
|
|
148
|
+
</button>
|
|
149
|
+
</div>
|
|
150
|
+
{#if errors[getModelKey(provider as AIProvider, model)]}
|
|
151
|
+
<div class="text-xs text-red-500"
|
|
152
|
+
>{errors[getModelKey(provider as AIProvider, model)]}</div
|
|
153
|
+
>
|
|
154
|
+
{/if}
|
|
155
|
+
{/if}
|
|
156
|
+
</div>
|
|
157
|
+
{/each}
|
|
158
|
+
</div>
|
|
159
|
+
</div>
|
|
160
|
+
{/if}
|
|
161
|
+
</div>
|
|
162
|
+
{/each}
|
|
163
|
+
</div>
|
|
164
|
+
</div>
|
|
165
|
+
{/if}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { AIConfig } from '../../gen';
|
|
2
|
+
type $$ComponentProps = {
|
|
3
|
+
aiProviders: Exclude<AIConfig['providers'], undefined>;
|
|
4
|
+
maxTokensPerModel: Record<string, number>;
|
|
5
|
+
};
|
|
6
|
+
declare const ModelTokenLimits: import("svelte").Component<$$ComponentProps, {}, "maxTokensPerModel">;
|
|
7
|
+
type ModelTokenLimits = ReturnType<typeof ModelTokenLimits>;
|
|
8
|
+
export default ModelTokenLimits;
|