windmill-components 1.596.1 → 1.612.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/appPolicy/myFunction.es.js +1337 -0
- package/dist/sharedUtils/assets/tokens/colorTokensConfig.d.ts +2 -0
- package/dist/sharedUtils/base.d.ts +1 -0
- package/dist/sharedUtils/cloud.d.ts +1 -0
- package/dist/sharedUtils/common.d.ts +108 -0
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/count.d.ts +5 -0
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/delete.d.ts +5 -0
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/insert.d.ts +5 -0
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/select.d.ts +11 -0
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/update.d.ts +11 -0
- package/dist/sharedUtils/components/apps/components/display/dbtable/utils.d.ts +84 -0
- package/dist/sharedUtils/components/apps/editor/appPolicy.d.ts +6 -0
- package/dist/sharedUtils/components/apps/editor/appUtilsCore.d.ts +7 -0
- package/dist/sharedUtils/components/apps/editor/appUtilsS3.d.ts +22 -0
- package/dist/sharedUtils/components/apps/editor/commonAppUtils.d.ts +10 -0
- package/dist/sharedUtils/components/apps/editor/component/components.d.ts +5305 -0
- package/dist/sharedUtils/components/apps/editor/component/default-codes.d.ts +3 -0
- package/dist/sharedUtils/components/apps/editor/component/index.d.ts +3 -0
- package/dist/sharedUtils/components/apps/editor/component/sets.d.ts +7 -0
- package/dist/sharedUtils/components/apps/editor/componentsPanel/componentDefaultProps.d.ts +3 -0
- package/dist/sharedUtils/components/apps/gridUtils.d.ts +14 -0
- package/dist/sharedUtils/components/apps/inputType.d.ts +176 -0
- package/dist/sharedUtils/components/apps/rx.d.ts +29 -0
- package/dist/sharedUtils/components/apps/sharedTypes.d.ts +19 -0
- package/dist/sharedUtils/components/apps/types.d.ts +274 -0
- package/dist/sharedUtils/components/common/alert/model.d.ts +2 -0
- package/dist/sharedUtils/components/common/badge/model.d.ts +8 -0
- package/dist/sharedUtils/components/common/button/model.d.ts +45 -0
- package/dist/sharedUtils/components/common/fileInput/model.d.ts +1 -0
- package/dist/sharedUtils/components/common/index.d.ts +24 -0
- package/dist/sharedUtils/components/common/skeleton/model.d.ts +21 -0
- package/dist/sharedUtils/components/dbTypes.d.ts +11 -0
- package/dist/sharedUtils/components/diff_drawer.d.ts +26 -0
- package/dist/sharedUtils/components/ducklake.d.ts +1 -0
- package/dist/sharedUtils/components/flows/scheduleUtils.d.ts +7 -0
- package/dist/sharedUtils/components/random_positive_adjetive.d.ts +1 -0
- package/dist/sharedUtils/components/raw_apps/rawAppPolicy.d.ts +10 -0
- package/dist/sharedUtils/components/raw_apps/utils.d.ts +15 -0
- package/dist/sharedUtils/components/triggers/email/utils.d.ts +4 -0
- package/dist/sharedUtils/components/triggers/gcp/utils.d.ts +2 -0
- package/dist/sharedUtils/components/triggers/http/utils.d.ts +11 -0
- package/dist/sharedUtils/components/triggers/kafka/utils.d.ts +2 -0
- package/dist/sharedUtils/components/triggers/mqtt/utils.d.ts +2 -0
- package/dist/sharedUtils/components/triggers/nats/utils.d.ts +2 -0
- package/dist/sharedUtils/components/triggers/postgres/utils.d.ts +8 -0
- package/dist/sharedUtils/components/triggers/sqs/utils.d.ts +2 -0
- package/dist/sharedUtils/components/triggers/triggers.svelte.d.ts +32 -0
- package/dist/sharedUtils/components/triggers/utils.d.ts +81 -0
- package/dist/sharedUtils/components/triggers/websocket/utils.d.ts +2 -0
- package/dist/sharedUtils/components/triggers.d.ts +20 -0
- package/dist/sharedUtils/gen/core/ApiError.d.ts +10 -0
- package/dist/sharedUtils/gen/core/ApiRequestOptions.d.ts +13 -0
- package/dist/sharedUtils/gen/core/ApiResult.d.ts +7 -0
- package/dist/sharedUtils/gen/core/CancelablePromise.d.ts +26 -0
- package/dist/sharedUtils/gen/core/OpenAPI.d.ts +27 -0
- package/dist/sharedUtils/gen/core/request.d.ts +29 -0
- package/dist/sharedUtils/gen/index.d.ts +6 -0
- package/dist/sharedUtils/gen/schemas.gen.d.ts +6192 -0
- package/dist/sharedUtils/gen/services.gen.d.ts +5741 -0
- package/dist/sharedUtils/gen/types.gen.d.ts +20152 -0
- package/dist/sharedUtils/history.svelte.d.ts +9 -0
- package/dist/sharedUtils/hub.d.ts +48 -0
- package/dist/sharedUtils/jsr.json +6 -0
- package/dist/sharedUtils/lib.d.ts +5 -0
- package/dist/sharedUtils/lib.es.js +1426 -0
- package/dist/sharedUtils/package.json +12 -0
- package/dist/sharedUtils/schema.d.ts +3 -0
- package/dist/sharedUtils/stores.d.ts +96 -0
- package/dist/sharedUtils/svelte5Utils.svelte.d.ts +49 -0
- package/dist/sharedUtils/toast.d.ts +8 -0
- package/dist/sharedUtils/utils.d.ts +250 -0
- package/package/assets/tokens/tokens.json +11 -1
- package/package/ata/apis.js +78 -5
- package/package/components/AddUser.svelte +1 -1
- package/package/components/CenteredModal.svelte +32 -24
- package/package/components/CenteredModal.svelte.d.ts +7 -27
- package/package/components/CenteredPage.svelte +5 -2
- package/package/components/CenteredPage.svelte.d.ts +2 -0
- package/package/components/ConcurrentJobsChart.svelte +3 -2
- package/package/components/ConcurrentJobsChart.svelte.d.ts +2 -2
- package/package/components/CustomPopover.svelte +20 -23
- package/package/components/CustomPopover.svelte.d.ts +14 -39
- package/package/components/DBManager.svelte +105 -17
- package/package/components/DBManager.svelte.d.ts +2 -1
- package/package/components/DBManagerContent.svelte +4 -3
- package/package/components/DBManagerContent.svelte.d.ts +1 -1
- package/package/components/DBTableEditor.svelte +210 -171
- package/package/components/DBTableEditor.svelte.d.ts +22 -3
- package/package/components/Description.svelte +3 -2
- package/package/components/Dev.svelte +36 -2
- package/package/components/DiffDrawer.svelte +8 -29
- package/package/components/DiffEditor.svelte +32 -2
- package/package/components/DisplayResult.svelte +32 -24
- package/package/components/Editor.svelte +70 -16
- package/package/components/Editor.svelte.d.ts +3 -0
- package/package/components/EditorBar.svelte +1 -1
- package/package/components/FakeMonacoPlaceHolder.svelte +1 -1
- package/package/components/FlowBuilder.svelte +17 -11
- package/package/components/FlowDiffViewer.svelte +37 -0
- package/package/components/FlowDiffViewer.svelte.d.ts +7 -0
- package/package/components/FlowPreviewContent.svelte +3 -2
- package/package/components/FlowPreviewResult.svelte +0 -4
- package/package/components/FlowStatusViewerInner.svelte +50 -33
- package/package/components/FlowStatusViewerInner.svelte.d.ts +1 -1
- package/package/components/FlowStatusWaitingForEvents.svelte +27 -23
- package/package/components/FlowStatusWaitingForEvents.svelte.d.ts +4 -18
- package/package/components/FlowViewer.svelte +103 -2
- package/package/components/FlowViewer.svelte.d.ts +9 -3
- package/package/components/ForkWorkspaceBanner.svelte +16 -13
- package/package/components/GraphqlSchemaViewer.svelte +8 -1
- package/package/components/HistoricInputs.svelte +25 -27
- package/package/components/HistoricInputs.svelte.d.ts +2 -2
- package/package/components/InstanceSetting.svelte +38 -0
- package/package/components/InviteUser.svelte +16 -42
- package/package/components/InviteUser.svelte.d.ts +4 -18
- package/package/components/JobOtelTraces.svelte +287 -0
- package/package/components/JobOtelTraces.svelte.d.ts +6 -0
- package/package/components/JsonInputs.svelte +6 -8
- package/package/components/JsonInputs.svelte.d.ts +7 -8
- package/package/components/LogViewer.svelte +91 -33
- package/package/components/Login.svelte +21 -0
- package/package/components/ManualPopover.svelte +5 -6
- package/package/components/ManualPopover.svelte.d.ts +9 -35
- package/package/components/MemoryFootprintViewer.svelte +2 -6
- package/package/components/ModulePreview.svelte +23 -21
- package/package/components/ModulePreview.svelte.d.ts +1 -0
- package/package/components/Path.svelte +2 -2
- package/package/components/Path.svelte.d.ts +1 -1
- package/package/components/ResourcePicker.svelte +3 -0
- package/package/components/ResourcePicker.svelte.d.ts +1 -0
- package/package/components/RunButton.svelte +5 -15
- package/package/components/RunButton.svelte.d.ts +7 -19
- package/package/components/RunChart.svelte +8 -4
- package/package/components/RunChart.svelte.d.ts +2 -2
- package/package/components/RunFormAdvancedPopup.svelte +1 -1
- package/package/components/RunsPage.svelte +169 -539
- package/package/components/RunsPage.svelte.d.ts +5 -5
- package/package/components/S3FilePicker.svelte +7 -11
- package/package/components/S3FilePickerInner.svelte +2 -3
- package/package/components/S3FilePickerInner.svelte.d.ts +2 -2
- package/package/components/SchemaForm.svelte +26 -19
- package/package/components/SchemaFormWithArgPicker.svelte +4 -3
- package/package/components/ScriptBuilder.svelte +1 -1
- package/package/components/ScriptEditor.svelte +575 -101
- package/package/components/Section.svelte +3 -1
- package/package/components/ServiceLogsInner.svelte +4 -4
- package/package/components/SimpleEditor.svelte +46 -2
- package/package/components/SuperadminSettingsInner.svelte +1 -1
- package/package/components/TemplateEditor.svelte +54 -29
- package/package/components/TemplateEditor.svelte.d.ts +13 -102
- package/package/components/UserSettings.svelte +1 -1
- package/package/components/WorkerTagPicker.svelte +1 -1
- package/package/components/WorkerTagSelect.svelte +5 -2
- package/package/components/WorkspaceTutorials.svelte +5 -0
- package/package/components/apps/components/buttons/AppButton.svelte +21 -6
- package/package/components/apps/components/buttons/AppForm.svelte +2 -1
- package/package/components/apps/components/buttons/AppFormButton.svelte +2 -1
- package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +0 -4
- package/package/components/apps/components/display/dbtable/metadata.js +69 -30
- package/package/components/apps/components/display/dbtable/queries/alterTable.d.ts +46 -0
- package/package/components/apps/components/display/dbtable/queries/alterTable.js +314 -0
- package/package/components/apps/components/display/dbtable/queries/alterTable.test.d.ts +1 -0
- package/package/components/apps/components/display/dbtable/queries/alterTable.test.js +867 -0
- package/package/components/apps/components/display/dbtable/queries/createTable.d.ts +2 -24
- package/package/components/apps/components/display/dbtable/queries/createTable.js +11 -25
- package/package/components/apps/components/display/dbtable/queries/dbQueriesUtils.d.ts +9 -0
- package/package/components/apps/components/display/dbtable/queries/dbQueriesUtils.js +45 -0
- package/package/components/apps/components/display/dbtable/queries/relationalKeys.d.ts +47 -0
- package/package/components/apps/components/display/dbtable/queries/relationalKeys.js +402 -0
- package/package/components/apps/components/display/dbtable/queries/select.d.ts +2 -0
- package/package/components/apps/components/display/dbtable/queries/select.js +37 -6
- package/package/components/apps/components/display/dbtable/tableEditor.d.ts +35 -0
- package/package/components/apps/components/display/dbtable/tableEditor.js +49 -0
- package/package/components/apps/components/display/dbtable/utils.d.ts +10 -1
- package/package/components/apps/components/display/dbtable/utils.js +52 -20
- package/package/components/apps/components/helpers/HiddenComponent.svelte +1 -1
- package/package/components/apps/components/helpers/InputValue.svelte +1 -1
- package/package/components/apps/components/helpers/ResolveConfig.svelte +1 -1
- package/package/components/apps/components/helpers/RunnableComponent.svelte +3 -2
- package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +1 -1
- package/package/components/apps/components/helpers/RunnableWrapper.svelte +2 -2
- package/package/components/apps/editor/AppEditorHeader.svelte +8 -1
- package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +32 -29
- package/package/components/apps/editor/AppEditorHeaderDeploy.svelte.d.ts +2 -2
- package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte +4 -4
- package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte.d.ts +3 -3
- package/package/components/apps/editor/PublicApp.svelte +49 -30
- package/package/components/apps/editor/PublicApp.svelte.d.ts +1 -0
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +77 -7
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +2 -2
- package/package/components/apps/editor/inlineScriptsPanel/utils.d.ts +2 -2
- package/package/components/apps/editor/inlineScriptsPanel/utils.js +10 -1
- package/package/components/apps/inputType.d.ts +6 -1
- package/package/components/auditLogs/AuditLogsFilters.svelte +9 -17
- package/package/components/auditLogs/AuditLogsFilters.svelte.d.ts +1 -1
- package/package/components/common/button/model.js +1 -1
- package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +1 -1
- package/package/components/common/languageIcons/TypeScript.svelte +5 -3
- package/package/components/common/languageIcons/TypeScript.svelte.d.ts +1 -0
- package/package/components/common/modal/Modal.svelte +3 -3
- package/package/components/copilot/autocomplete/Autocompletor.js +3 -2
- package/package/components/copilot/chat/AIButtonStyle.d.ts +1 -1
- package/package/components/copilot/chat/AIButtonStyle.js +2 -1
- package/package/components/copilot/chat/AIChat.svelte +3 -1
- package/package/components/copilot/chat/AIChatDisplay.svelte +89 -4
- package/package/components/copilot/chat/AIChatInput.svelte +275 -0
- package/package/components/copilot/chat/AIChatManager.svelte.js +107 -1
- package/package/components/copilot/chat/AiChatLayout.svelte +15 -30
- package/package/components/copilot/chat/AppAvailableContextList.svelte +263 -0
- package/package/components/copilot/chat/AppAvailableContextList.svelte.d.ts +13 -0
- package/package/components/copilot/chat/ContextElementBadge.svelte +44 -0
- package/package/components/copilot/chat/DatatableCreationPolicy.svelte +32 -33
- package/package/components/copilot/chat/ProviderModelSelector.svelte +1 -1
- package/package/components/copilot/chat/__tests__/app/appEvalHelpers.js +3 -0
- package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.js +4 -0
- package/package/components/copilot/chat/app/core.d.ts +56 -15
- package/package/components/copilot/chat/app/core.js +141 -22
- package/package/components/copilot/chat/context.d.ts +59 -2
- package/package/components/copilot/chat/context.js +6 -2
- package/package/components/copilot/chat/flow/FlowAIChat.svelte +22 -0
- package/package/components/copilot/chat/flow/core.d.ts +3 -1
- package/package/components/copilot/chat/flow/core.js +29 -2
- package/package/components/copilot/chat/flow/openFlow.json +1 -1
- package/package/components/copilot/chat/flow/openFlowZod.d.ts +1 -0
- package/package/components/copilot/chat/flow/openFlowZod.js +14 -2
- package/package/components/copilot/chat/script/core.d.ts +4 -1
- package/package/components/copilot/chat/script/core.js +38 -2
- package/package/components/copilot/chat/shared.d.ts +10 -0
- package/package/components/copilot/chat/shared.js +24 -0
- package/package/components/copilot/lib.d.ts +1 -1
- package/package/components/custom_ui.d.ts +1 -0
- package/package/components/dbOps.d.ts +18 -4
- package/package/components/dbOps.js +25 -3
- package/package/components/debug/DebugConsole.svelte +277 -0
- package/package/components/debug/DebugConsole.svelte.d.ts +13 -0
- package/package/components/debug/DebugPanel.svelte +97 -0
- package/package/components/debug/DebugPanel.svelte.d.ts +11 -0
- package/package/components/debug/DebugToolbar.svelte +148 -0
- package/package/components/debug/DebugToolbar.svelte.d.ts +17 -0
- package/package/components/debug/DebugVariableViewer.svelte +115 -0
- package/package/components/debug/DebugVariableViewer.svelte.d.ts +11 -0
- package/package/components/debug/MonacoDebugger.svelte +384 -0
- package/package/components/debug/MonacoDebugger.svelte.d.ts +15 -0
- package/package/components/debug/dapClient.d.ts +192 -0
- package/package/components/debug/dapClient.js +426 -0
- package/package/components/debug/debugUtils.d.ts +30 -0
- package/package/components/debug/debugUtils.js +131 -0
- package/package/components/debug/index.d.ts +75 -0
- package/package/components/debug/index.js +82 -0
- package/package/components/flows/CreateActionsApp.svelte +6 -4
- package/package/components/flows/DebounceLimit.svelte.d.ts +1 -1
- package/package/components/flows/FlowHistoryInner.svelte +15 -4
- package/package/components/flows/content/AgentToolWrapper.svelte +1 -1
- package/package/components/flows/content/FlowEditorDrawer.svelte +124 -0
- package/package/components/flows/content/FlowEditorDrawer.svelte.d.ts +22 -0
- package/package/components/flows/content/FlowInput.svelte +211 -37
- package/package/components/flows/content/FlowModuleComponent.svelte +553 -67
- package/package/components/flows/content/FlowModuleEarlyStop.svelte +8 -10
- package/package/components/flows/content/FlowModuleHeader.svelte +7 -4
- package/package/components/flows/content/FlowModuleWorkerTagSelect.svelte +1 -1
- package/package/components/flows/content/McpOAuthConnect.svelte +217 -0
- package/package/components/flows/content/McpOAuthConnect.svelte.d.ts +7 -0
- package/package/components/flows/content/McpToolEditor.svelte +50 -37
- package/package/components/flows/content/McpToolEditor.svelte.d.ts +0 -1
- package/package/components/flows/conversations/FlowChat.svelte +16 -2
- package/package/components/flows/conversations/FlowChat.svelte.d.ts +2 -1
- package/package/components/flows/conversations/FlowChatInterface.svelte +103 -6
- package/package/components/flows/conversations/FlowChatInterface.svelte.d.ts +2 -0
- package/package/components/flows/conversations/FlowChatManager.svelte.js +53 -21
- package/package/components/flows/header/FlowImportExportMenu.svelte +1 -1
- package/package/components/flows/propPicker/PropPickerWrapper.svelte +3 -1
- package/package/components/flows/types.d.ts +2 -0
- package/package/components/git_sync/GitSyncRepositoryCard.svelte +16 -8
- package/package/components/home/ItemsList.svelte +5 -5
- package/package/components/home/TutorialBanner.svelte +34 -18
- package/package/components/icons/CssIcon.svelte +20 -0
- package/package/components/icons/CssIcon.svelte.d.ts +7 -25
- package/package/components/icons/HtmlIcon.svelte +20 -0
- package/package/components/icons/HtmlIcon.svelte.d.ts +8 -0
- package/package/components/icons/JavaScriptIcon.svelte +10 -2
- package/package/components/icons/JavaScriptIcon.svelte.d.ts +1 -0
- package/package/components/icons/JsonIcon.svelte +8 -2
- package/package/components/icons/JsonIcon.svelte.d.ts +1 -0
- package/package/components/icons/LessIcon.svelte +16 -0
- package/package/components/icons/LessIcon.svelte.d.ts +8 -0
- package/package/components/icons/MarkdownIcon.svelte +20 -0
- package/package/components/icons/MarkdownIcon.svelte.d.ts +8 -0
- package/package/components/icons/ReactIcon.svelte +10 -2
- package/package/components/icons/ReactIcon.svelte.d.ts +1 -0
- package/package/components/icons/SassIcon.svelte +28 -0
- package/package/components/icons/SassIcon.svelte.d.ts +8 -0
- package/package/components/icons/SvelteIcon.svelte +10 -2
- package/package/components/icons/SvelteIcon.svelte.d.ts +1 -0
- package/package/components/icons/VueIcon.svelte +10 -2
- package/package/components/icons/VueIcon.svelte.d.ts +1 -0
- package/package/components/icons/YamlIcon.svelte +20 -0
- package/package/components/icons/YamlIcon.svelte.d.ts +8 -0
- package/package/components/instanceSettings/SecretBackendConfig.svelte +514 -0
- package/package/components/instanceSettings/SecretBackendConfig.svelte.d.ts +8 -0
- package/package/components/instanceSettings.d.ts +2 -1
- package/package/components/instanceSettings.js +32 -1
- package/package/components/jobs/JobPreview.svelte +46 -39
- package/package/components/jobs/JobPreview.svelte.d.ts +1 -0
- package/package/components/monacoLanguagesOptions.js +16 -15
- package/package/components/propertyPicker/PropPicker.svelte +16 -2
- package/package/components/propertyPicker/PropPicker.svelte.d.ts +2 -0
- package/package/components/raw_apps/DefaultDatabaseSelector.svelte +9 -5
- package/package/components/raw_apps/FileEditorIcon.svelte +12 -7
- package/package/components/raw_apps/FileEditorIcon.svelte.d.ts +2 -0
- package/package/components/raw_apps/FileTreeNode.svelte +119 -83
- package/package/components/raw_apps/RawAppBackgroundRunner.svelte +88 -8
- package/package/components/raw_apps/RawAppDataTableList.svelte +12 -9
- package/package/components/raw_apps/RawAppEditor.svelte +218 -68
- package/package/components/raw_apps/RawAppEditorHeader.svelte +33 -16
- package/package/components/raw_apps/RawAppHistoryList.svelte +264 -80
- package/package/components/raw_apps/RawAppHistoryList.svelte.d.ts +1 -0
- package/package/components/raw_apps/RawAppHistoryManager.svelte.d.ts +15 -1
- package/package/components/raw_apps/RawAppHistoryManager.svelte.js +46 -12
- package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +549 -47
- package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +31 -5
- package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte +25 -18
- package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte.d.ts +1 -0
- package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +141 -10
- package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte.d.ts +8 -0
- package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte +2 -1
- package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte.d.ts +9 -1
- package/package/components/raw_apps/RawAppInputsSpecEditor.svelte +47 -3
- package/package/components/raw_apps/RawAppInputsSpecEditor.svelte.d.ts +2 -2
- package/package/components/raw_apps/RawAppModules.svelte +13 -7
- package/package/components/raw_apps/RawAppPreview.svelte +48 -6
- package/package/components/raw_apps/RawAppSidebar.svelte +194 -125
- package/package/components/raw_apps/RawAppSidebar.svelte.d.ts +1 -0
- package/package/components/raw_apps/RunnableRow.svelte +41 -0
- package/package/components/raw_apps/RunnableRow.svelte.d.ts +11 -0
- package/package/components/raw_apps/utils.d.ts +1 -1
- package/package/components/raw_apps/utils.js +76 -18
- package/package/components/runs/ManuelDatePicker.svelte +3 -3
- package/package/components/runs/ManuelDatePicker.svelte.d.ts +3 -3
- package/package/components/runs/NoWorkerWithTagWarning.svelte +5 -1
- package/package/components/runs/RunsFilter.svelte +75 -63
- package/package/components/runs/RunsFilter.svelte.d.ts +35 -4
- package/package/components/runs/RunsQueue.svelte.d.ts +1 -1
- package/package/components/runs/RunsTable.svelte +1 -1
- package/package/components/runs/RunsTable.svelte.d.ts +1 -1
- package/package/components/runs/useJobsLoader.svelte.d.ts +34 -0
- package/package/components/runs/useJobsLoader.svelte.js +507 -0
- package/package/components/scriptEditor/LogPanel.svelte +17 -2
- package/package/components/scriptEditor/LogPanel.svelte.d.ts +2 -0
- package/package/components/select/SelectDropdown.svelte +2 -2
- package/package/components/settings/AIPromptsModal.svelte +88 -0
- package/package/components/settings/AIPromptsModal.svelte.d.ts +11 -0
- package/package/components/settings/ChangeWorkspaceColor.svelte +4 -3
- package/package/components/settings/ChangeWorkspaceId.svelte +14 -10
- package/package/components/settings/ChangeWorkspaceName.svelte +7 -6
- package/package/components/settings/UserAIPromptsSettings.svelte +56 -15
- package/package/components/settings/WorkspaceOperatorSettings.svelte +68 -85
- package/package/components/settings/WorkspaceUserSettings.svelte +531 -406
- package/package/components/sidebar/MenuButton.svelte +46 -24
- package/package/components/sidebar/MenuButton.svelte.d.ts +2 -0
- package/package/components/sidebar/MultiplayerMenu.svelte +3 -3
- package/package/components/sidebar/OperatorMenu.svelte +62 -87
- package/package/components/sidebar/SidebarContent.svelte +7 -2
- package/package/components/sidebar/WorkspaceMenu.svelte +35 -85
- package/package/components/sqlTypeService.js +4 -3
- package/package/components/table/DataTable.svelte +3 -2
- package/package/components/table/DataTable.svelte.d.ts +1 -0
- package/package/components/text_input/TextInput.svelte +3 -0
- package/package/components/text_input/TextInput.svelte.d.ts +2 -0
- package/package/components/tutorials/FlowBuilderLiveTutorial.svelte +6 -35
- package/package/components/tutorials/RunsTutorial.svelte +399 -0
- package/package/components/{schema/SchemaPicker.svelte.d.ts → tutorials/RunsTutorial.svelte.d.ts} +11 -12
- package/package/components/tutorials/TroubleshootFlowTutorial.svelte +5 -20
- package/package/components/tutorials/utils.d.ts +16 -0
- package/package/components/tutorials/utils.js +96 -0
- package/package/components/tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte +133 -0
- package/package/components/{SavedInputs.svelte.d.ts → tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte.d.ts} +8 -11
- package/package/components/vscode.js +6 -6
- package/package/components/workspace/WorkspaceCard.svelte +184 -0
- package/package/components/workspace/WorkspaceCard.svelte.d.ts +24 -0
- package/package/components/workspace/WorkspaceIcon.svelte +21 -0
- package/package/components/workspace/WorkspaceIcon.svelte.d.ts +9 -0
- package/package/components/workspace/WorkspaceTreeView.svelte +331 -0
- package/package/components/workspace/WorkspaceTreeView.svelte.d.ts +15 -0
- package/package/components/workspaceSettings/AISettings.svelte +146 -108
- package/package/components/workspaceSettings/CreateWorkspace.svelte +25 -11
- package/package/components/workspaceSettings/DucklakeSettings.svelte +46 -23
- package/package/components/workspaceSettings/DucklakeSettings.svelte.d.ts +2 -1
- package/package/components/workspaceSettings/ModelTokenLimits.svelte +14 -18
- package/package/components/workspaceSettings/StorageSettings.svelte +280 -241
- package/package/components/workspaceSettings/StorageSettings.svelte.d.ts +1 -0
- package/package/consts.js +4 -1
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +126 -0
- package/package/gen/schemas.gen.js +126 -0
- package/package/gen/services.gen.d.ts +160 -2
- package/package/gen/services.gen.js +319 -4
- package/package/gen/types.gen.d.ts +607 -2
- package/package/hubPaths.json +3 -2
- package/package/infer.js +2 -0
- package/package/monaco_workers/graphql.worker.bundle.js +121 -121
- package/package/rawAppWmillTs.d.ts +11 -0
- package/package/rawAppWmillTs.js +38 -1
- package/package/svelte5Utils.svelte.d.ts +9 -0
- package/package/svelte5Utils.svelte.js +51 -1
- package/package/tutorialUtils.js +0 -4
- package/package/tutorials/config.js +31 -3
- package/package/tutorials/roleUtils.d.ts +1 -1
- package/package/tutorials/roleUtils.js +6 -2
- package/package/utils.js +159 -1
- package/package.json +16 -17
- package/package/components/SavedInputs.svelte +0 -416
- package/package/components/runs/JobsLoader.svelte +0 -468
- package/package/components/runs/JobsLoader.svelte.d.ts +0 -49
- package/package/components/schema/SchemaPicker.svelte +0 -92
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
<script lang="ts">import { ContextIconMap } from './context';
|
|
2
|
+
import { ArrowLeft, ChevronRight, FileCode, Code2, Table2 } from 'lucide-svelte';
|
|
3
|
+
const { availableContext, selectedContext, onSelect, setShowing, showAllAvailable = false, stringSearch = '', onViewChange } = $props();
|
|
4
|
+
// Current view state: 'categories' or specific category type
|
|
5
|
+
let currentView = $state('categories');
|
|
6
|
+
// Selected index for keyboard navigation
|
|
7
|
+
let itemSelectedIndex = $state(0);
|
|
8
|
+
let categorySelectedIndex = $state(0);
|
|
9
|
+
// Category definitions for app mode
|
|
10
|
+
const categories = [
|
|
11
|
+
{ id: 'files', label: 'Frontend Files', icon: FileCode },
|
|
12
|
+
{ id: 'runnables', label: 'Backend Runnables', icon: Code2 },
|
|
13
|
+
{ id: 'datatables', label: 'Datatables', icon: Table2 }
|
|
14
|
+
];
|
|
15
|
+
const filteredAvailableContext = $derived(availableContext.filter((context) => {
|
|
16
|
+
const filtered = (showAllAvailable ||
|
|
17
|
+
!selectedContext.some((sc) => sc.type === context.type && sc.title === context.title)) &&
|
|
18
|
+
(!stringSearch || context.title.toLowerCase().includes(stringSearch.toLowerCase()));
|
|
19
|
+
return filtered;
|
|
20
|
+
}));
|
|
21
|
+
// Group context by category
|
|
22
|
+
const contextByCategory = $derived.by(() => {
|
|
23
|
+
const grouped = {
|
|
24
|
+
files: [],
|
|
25
|
+
runnables: [],
|
|
26
|
+
datatables: []
|
|
27
|
+
};
|
|
28
|
+
filteredAvailableContext.forEach((context) => {
|
|
29
|
+
if (context.type === 'app_frontend_file')
|
|
30
|
+
grouped.files.push(context);
|
|
31
|
+
else if (context.type === 'app_backend_runnable')
|
|
32
|
+
grouped.runnables.push(context);
|
|
33
|
+
else if (context.type === 'app_datatable')
|
|
34
|
+
grouped.datatables.push(context);
|
|
35
|
+
});
|
|
36
|
+
return grouped;
|
|
37
|
+
});
|
|
38
|
+
const currentCategoryItems = $derived(currentView !== 'categories' ? contextByCategory[currentView] : []);
|
|
39
|
+
// Filter to only show categories with items
|
|
40
|
+
const availableCategories = $derived(categories.filter((cat) => contextByCategory[cat.id].length > 0));
|
|
41
|
+
// Report view changes
|
|
42
|
+
$effect(() => {
|
|
43
|
+
if (onViewChange) {
|
|
44
|
+
if (currentView === 'categories') {
|
|
45
|
+
onViewChange(availableCategories.length);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
onViewChange(currentCategoryItems.length + 1);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
function handleCategoryClick(categoryId) {
|
|
53
|
+
currentView = categoryId;
|
|
54
|
+
itemSelectedIndex = 0;
|
|
55
|
+
}
|
|
56
|
+
function handleBackClick() {
|
|
57
|
+
currentView = 'categories';
|
|
58
|
+
itemSelectedIndex = 0;
|
|
59
|
+
}
|
|
60
|
+
function handleKeyDown(e) {
|
|
61
|
+
if (stringSearch.length > 0) {
|
|
62
|
+
// Navigation in search view (flat list)
|
|
63
|
+
if (e.key === 'ArrowDown') {
|
|
64
|
+
e.preventDefault();
|
|
65
|
+
e.stopPropagation();
|
|
66
|
+
if (filteredAvailableContext.length > 0) {
|
|
67
|
+
itemSelectedIndex = (itemSelectedIndex + 1) % filteredAvailableContext.length;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
else if (e.key === 'ArrowUp') {
|
|
71
|
+
e.preventDefault();
|
|
72
|
+
e.stopPropagation();
|
|
73
|
+
if (filteredAvailableContext.length > 0) {
|
|
74
|
+
itemSelectedIndex =
|
|
75
|
+
(itemSelectedIndex - 1 + filteredAvailableContext.length) %
|
|
76
|
+
filteredAvailableContext.length;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
else if (e.key === 'Enter' || e.key === 'Tab') {
|
|
80
|
+
if (e.key === 'Tab')
|
|
81
|
+
e.preventDefault();
|
|
82
|
+
e.stopPropagation();
|
|
83
|
+
const selectedItem = filteredAvailableContext[itemSelectedIndex];
|
|
84
|
+
if (selectedItem) {
|
|
85
|
+
onSelect(selectedItem);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
else if (currentView === 'categories') {
|
|
90
|
+
// Navigation in categories view
|
|
91
|
+
if (e.key === 'ArrowDown') {
|
|
92
|
+
e.preventDefault();
|
|
93
|
+
e.stopPropagation();
|
|
94
|
+
categorySelectedIndex = (categorySelectedIndex + 1) % availableCategories.length;
|
|
95
|
+
}
|
|
96
|
+
else if (e.key === 'ArrowUp') {
|
|
97
|
+
e.preventDefault();
|
|
98
|
+
e.stopPropagation();
|
|
99
|
+
categorySelectedIndex =
|
|
100
|
+
(categorySelectedIndex - 1 + availableCategories.length) % availableCategories.length;
|
|
101
|
+
}
|
|
102
|
+
else if (e.key === 'Enter' || e.key === 'ArrowRight' || e.key === 'Tab') {
|
|
103
|
+
e.preventDefault();
|
|
104
|
+
e.stopPropagation();
|
|
105
|
+
const selectedCategory = availableCategories[categorySelectedIndex];
|
|
106
|
+
if (selectedCategory) {
|
|
107
|
+
handleCategoryClick(selectedCategory.id);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
else if (e.key === 'Escape' || e.key === 'ArrowLeft') {
|
|
111
|
+
e.preventDefault();
|
|
112
|
+
e.stopPropagation();
|
|
113
|
+
setShowing?.(false);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
// Navigation in category items view
|
|
118
|
+
if (e.key === 'ArrowDown') {
|
|
119
|
+
e.preventDefault();
|
|
120
|
+
e.stopPropagation();
|
|
121
|
+
if (currentCategoryItems.length > 0) {
|
|
122
|
+
itemSelectedIndex = (itemSelectedIndex + 1) % currentCategoryItems.length;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
else if (e.key === 'ArrowUp') {
|
|
126
|
+
e.preventDefault();
|
|
127
|
+
e.stopPropagation();
|
|
128
|
+
if (currentCategoryItems.length > 0) {
|
|
129
|
+
itemSelectedIndex =
|
|
130
|
+
(itemSelectedIndex - 1 + currentCategoryItems.length) % currentCategoryItems.length;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
else if (e.key === 'Enter' || e.key === 'Tab') {
|
|
134
|
+
if (e.key === 'Tab')
|
|
135
|
+
e.preventDefault();
|
|
136
|
+
e.stopPropagation();
|
|
137
|
+
const selectedItem = currentCategoryItems[itemSelectedIndex];
|
|
138
|
+
if (selectedItem) {
|
|
139
|
+
onSelect(selectedItem);
|
|
140
|
+
currentView = 'categories'; // Go back to categories after selection
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
else if (e.key === 'ArrowLeft' || e.key === 'Escape') {
|
|
144
|
+
e.preventDefault();
|
|
145
|
+
e.stopPropagation();
|
|
146
|
+
handleBackClick();
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
// Listen for keyboard events
|
|
151
|
+
$effect(() => {
|
|
152
|
+
document.addEventListener('keydown', handleKeyDown);
|
|
153
|
+
return () => {
|
|
154
|
+
document.removeEventListener('keydown', handleKeyDown);
|
|
155
|
+
};
|
|
156
|
+
});
|
|
157
|
+
$effect(() => {
|
|
158
|
+
if (stringSearch.length > 0) {
|
|
159
|
+
itemSelectedIndex = 0;
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
function getDisplayTitle(element) {
|
|
163
|
+
if (element.type === 'app_frontend_file') {
|
|
164
|
+
return element.path;
|
|
165
|
+
}
|
|
166
|
+
else if (element.type === 'app_backend_runnable') {
|
|
167
|
+
return element.key;
|
|
168
|
+
}
|
|
169
|
+
else if (element.type === 'app_datatable') {
|
|
170
|
+
// Show as datatable/table or datatable/schema:table
|
|
171
|
+
return element.title;
|
|
172
|
+
}
|
|
173
|
+
return element.title;
|
|
174
|
+
}
|
|
175
|
+
</script>
|
|
176
|
+
|
|
177
|
+
<div
|
|
178
|
+
class="flex flex-col gap-1 text-primary text-xs p-1 pr-0 min-w-24 max-h-48 overflow-y-scroll"
|
|
179
|
+
onmousedown={(e) =>
|
|
180
|
+
// avoids triggering onblur on the textinput and closing the tooltip
|
|
181
|
+
e.preventDefault()}
|
|
182
|
+
role="listbox"
|
|
183
|
+
tabindex={0}
|
|
184
|
+
>
|
|
185
|
+
{#if stringSearch.length > 0}
|
|
186
|
+
<!-- Search view - show flat list -->
|
|
187
|
+
{#each filteredAvailableContext as element, i (element.type + '-' + element.title)}
|
|
188
|
+
{@const Icon = ContextIconMap[element.type]}
|
|
189
|
+
<button
|
|
190
|
+
class="hover:bg-surface-hover rounded-md p-1 text-left flex flex-row gap-1 items-center font-normal transition-colors {i ===
|
|
191
|
+
itemSelectedIndex
|
|
192
|
+
? 'bg-surface-hover'
|
|
193
|
+
: ''}"
|
|
194
|
+
onclick={() => {
|
|
195
|
+
onSelect(element)
|
|
196
|
+
}}
|
|
197
|
+
>
|
|
198
|
+
{#if Icon}
|
|
199
|
+
<Icon size={16} />
|
|
200
|
+
{/if}
|
|
201
|
+
<span class="truncate">
|
|
202
|
+
{getDisplayTitle(element)}
|
|
203
|
+
</span>
|
|
204
|
+
</button>
|
|
205
|
+
{/each}
|
|
206
|
+
{#if filteredAvailableContext.length === 0}
|
|
207
|
+
<div class="text-center text-primary text-xs py-2">No matching context</div>
|
|
208
|
+
{/if}
|
|
209
|
+
{:else if currentView === 'categories'}
|
|
210
|
+
<!-- Categories view -->
|
|
211
|
+
{#each availableCategories as category, i (category.id)}
|
|
212
|
+
{@const Icon = category.icon}
|
|
213
|
+
<button
|
|
214
|
+
class="hover:bg-surface-hover rounded-md p-1 pr-0 text-left flex flex-row gap-1 items-center font-normal transition-colors {i ===
|
|
215
|
+
categorySelectedIndex
|
|
216
|
+
? 'bg-surface-hover'
|
|
217
|
+
: ''}"
|
|
218
|
+
onclick={() => handleCategoryClick(category.id)}
|
|
219
|
+
>
|
|
220
|
+
<Icon size={16} />
|
|
221
|
+
<span class="flex-1">{category.label}</span>
|
|
222
|
+
<ChevronRight size={16} />
|
|
223
|
+
</button>
|
|
224
|
+
{/each}
|
|
225
|
+
{#if availableCategories.length === 0}
|
|
226
|
+
<div class="text-center text-primary text-xs py-2">No available context</div>
|
|
227
|
+
{/if}
|
|
228
|
+
{:else}
|
|
229
|
+
<!-- Category items view -->
|
|
230
|
+
<button
|
|
231
|
+
class="hover:bg-surface-hover rounded-md text-left flex flex-row gap-1 items-center font-normal transition-colors mb-1"
|
|
232
|
+
onclick={handleBackClick}
|
|
233
|
+
>
|
|
234
|
+
<ArrowLeft size={12} />
|
|
235
|
+
<span class="text-xs">Go back</span>
|
|
236
|
+
</button>
|
|
237
|
+
|
|
238
|
+
{#if currentCategoryItems.length === 0}
|
|
239
|
+
<div class="text-center text-primary text-xs py-2">No items in this category</div>
|
|
240
|
+
{:else}
|
|
241
|
+
{#each currentCategoryItems as element, i (element.type + '-' + element.title)}
|
|
242
|
+
{@const Icon = ContextIconMap[element.type]}
|
|
243
|
+
<button
|
|
244
|
+
class="hover:bg-surface-hover rounded-md p-1 text-left flex flex-row gap-1 items-center font-normal transition-colors {i ===
|
|
245
|
+
itemSelectedIndex
|
|
246
|
+
? 'bg-surface-hover'
|
|
247
|
+
: ''}"
|
|
248
|
+
onclick={() => {
|
|
249
|
+
onSelect(element)
|
|
250
|
+
currentView = 'categories' // Go back to categories after selection
|
|
251
|
+
}}
|
|
252
|
+
>
|
|
253
|
+
{#if Icon}
|
|
254
|
+
<Icon size={16} />
|
|
255
|
+
{/if}
|
|
256
|
+
<span class="truncate">
|
|
257
|
+
{getDisplayTitle(element)}
|
|
258
|
+
</span>
|
|
259
|
+
</button>
|
|
260
|
+
{/each}
|
|
261
|
+
{/if}
|
|
262
|
+
{/if}
|
|
263
|
+
</div>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type ContextElement } from './context';
|
|
2
|
+
interface Props {
|
|
3
|
+
availableContext: ContextElement[];
|
|
4
|
+
selectedContext: ContextElement[];
|
|
5
|
+
onSelect: (element: ContextElement) => void;
|
|
6
|
+
setShowing?: (showing: boolean) => void;
|
|
7
|
+
showAllAvailable?: boolean;
|
|
8
|
+
stringSearch?: string;
|
|
9
|
+
onViewChange?: (newNumber: number) => void;
|
|
10
|
+
}
|
|
11
|
+
declare const AppAvailableContextList: import("svelte").Component<Props, {}, "">;
|
|
12
|
+
type AppAvailableContextList = ReturnType<typeof AppAvailableContextList>;
|
|
13
|
+
export default AppAvailableContextList;
|
|
@@ -87,6 +87,50 @@ const isDeletable = $derived(deletable && contextElement.deletable !== false);
|
|
|
87
87
|
<div class="text-primary">{contextElement.title}</div>
|
|
88
88
|
</div>
|
|
89
89
|
{/if}
|
|
90
|
+
{:else if contextElement.type === 'app_frontend_file'}
|
|
91
|
+
<div class="max-w-96 max-h-[300px] text-xs overflow-auto">
|
|
92
|
+
<HighlightCode
|
|
93
|
+
language={contextElement.path.endsWith('.tsx') || contextElement.path.endsWith('.ts')
|
|
94
|
+
? 'bun'
|
|
95
|
+
: contextElement.path.endsWith('.css')
|
|
96
|
+
? 'bash'
|
|
97
|
+
: 'bun'}
|
|
98
|
+
code={contextElement.content}
|
|
99
|
+
className="w-full p-2"
|
|
100
|
+
/>
|
|
101
|
+
</div>
|
|
102
|
+
{:else if contextElement.type === 'app_backend_runnable'}
|
|
103
|
+
<div class="p-2 max-w-96 max-h-[300px] text-xs overflow-auto">
|
|
104
|
+
{#if contextElement.runnable.inlineScript}
|
|
105
|
+
<HighlightCode
|
|
106
|
+
language={contextElement.runnable.inlineScript.language}
|
|
107
|
+
code={contextElement.runnable.inlineScript.content}
|
|
108
|
+
className="w-full p-2"
|
|
109
|
+
/>
|
|
110
|
+
{:else}
|
|
111
|
+
<ObjectViewer json={contextElement.runnable} pureViewer collapseLevel={2} />
|
|
112
|
+
{/if}
|
|
113
|
+
</div>
|
|
114
|
+
{:else if contextElement.type === 'app_code_selection'}
|
|
115
|
+
<div class="max-w-96 max-h-[300px] text-xs overflow-auto">
|
|
116
|
+
<div class="text-tertiary text-xs mb-1 px-2 pt-1">
|
|
117
|
+
{contextElement.source} (L{contextElement.startLine}-L{contextElement.endLine})
|
|
118
|
+
</div>
|
|
119
|
+
<HighlightCode
|
|
120
|
+
language="bun"
|
|
121
|
+
code={contextElement.content}
|
|
122
|
+
className="w-full p-2"
|
|
123
|
+
/>
|
|
124
|
+
</div>
|
|
125
|
+
{:else if contextElement.type === 'app_datatable'}
|
|
126
|
+
<div class="p-2 max-w-96 max-h-[300px] text-xs overflow-auto">
|
|
127
|
+
<div class="text-tertiary text-xs mb-1">
|
|
128
|
+
{contextElement.datatableName}/{contextElement.schemaName === 'public'
|
|
129
|
+
? ''
|
|
130
|
+
: contextElement.schemaName + ':'}{contextElement.tableName}
|
|
131
|
+
</div>
|
|
132
|
+
<ObjectViewer json={contextElement.columns} pureViewer collapseLevel={1} />
|
|
133
|
+
</div>
|
|
90
134
|
{/if}
|
|
91
135
|
{/snippet}
|
|
92
136
|
</Popover>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script lang="ts">import { AlertTriangle } from 'lucide-svelte';
|
|
2
2
|
import Toggle from '../../Toggle.svelte';
|
|
3
|
-
import { aiChatManager
|
|
3
|
+
import { aiChatManager } from './AIChatManager.svelte';
|
|
4
4
|
import DefaultDatabaseSelector from '../../raw_apps/DefaultDatabaseSelector.svelte';
|
|
5
5
|
import { workspaceStore } from '../../../stores';
|
|
6
6
|
import { createDatatablesResource } from '../../raw_apps/datatableUtils.svelte';
|
|
@@ -9,7 +9,8 @@ const datatables = createDatatablesResource(() => $workspaceStore);
|
|
|
9
9
|
const hasNoDatatables = $derived((datatables.current?.length ?? 0) === 0);
|
|
10
10
|
// Auto-select first datatable when datatables load and none is selected
|
|
11
11
|
$effect(() => {
|
|
12
|
-
if (datatables.current
|
|
12
|
+
if (datatables.current &&
|
|
13
|
+
datatables.current.length > 0 &&
|
|
13
14
|
aiChatManager.datatableCreationPolicy.enabled &&
|
|
14
15
|
!aiChatManager.datatableCreationPolicy.datatable) {
|
|
15
16
|
aiChatManager.datatableCreationPolicy.datatable = datatables.current[0];
|
|
@@ -29,35 +30,33 @@ function handleDefaultChange(datatable, schema) {
|
|
|
29
30
|
}
|
|
30
31
|
</script>
|
|
31
32
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
<
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
on:change={(e) => handleToggle(e.detail)}
|
|
50
|
-
/>
|
|
51
|
-
<span class="text-2xs text-secondary whitespace-nowrap">tables creation</span>
|
|
52
|
-
</div>
|
|
53
|
-
|
|
54
|
-
<!-- Settings icon with popover -->
|
|
55
|
-
<DefaultDatabaseSelector
|
|
56
|
-
datatable={aiChatManager.datatableCreationPolicy.datatable}
|
|
57
|
-
schema={aiChatManager.datatableCreationPolicy.schema}
|
|
58
|
-
onChange={handleDefaultChange}
|
|
59
|
-
description="Set the default datatable and schema for new tables. When table creation is enabled, AI can create tables here if needed."
|
|
33
|
+
<div class="min-w-0 flex items-center gap-1 pt-0.5">
|
|
34
|
+
{#if hasNoDatatables}
|
|
35
|
+
<!-- Warning when no datatables are available -->
|
|
36
|
+
<div
|
|
37
|
+
class="text-2xs flex flex-row items-center gap-1 text-red-600 dark:text-red-400 px-1"
|
|
38
|
+
title="No datatables configured. Add datatables in the Data panel so AI can create tables."
|
|
39
|
+
>
|
|
40
|
+
<AlertTriangle size={12} class="shrink-0" />
|
|
41
|
+
<span class="truncate">No datatables</span>
|
|
42
|
+
</div>
|
|
43
|
+
{:else}
|
|
44
|
+
<!-- Toggle for new tables -->
|
|
45
|
+
<div class="flex items-center gap-1">
|
|
46
|
+
<Toggle
|
|
47
|
+
size="xs"
|
|
48
|
+
checked={aiChatManager.datatableCreationPolicy.enabled}
|
|
49
|
+
on:change={(e) => handleToggle(e.detail)}
|
|
60
50
|
/>
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
51
|
+
<span class="text-2xs text-secondary whitespace-nowrap">tables creation</span>
|
|
52
|
+
</div>
|
|
53
|
+
|
|
54
|
+
<!-- Settings icon with popover -->
|
|
55
|
+
<DefaultDatabaseSelector
|
|
56
|
+
datatable={aiChatManager.datatableCreationPolicy.datatable}
|
|
57
|
+
schema={aiChatManager.datatableCreationPolicy.schema}
|
|
58
|
+
onChange={handleDefaultChange}
|
|
59
|
+
description="Set the default datatable and schema for new tables. When table creation is enabled, AI can create tables here if needed."
|
|
60
|
+
/>
|
|
61
|
+
{/if}
|
|
62
|
+
</div>
|
|
@@ -16,7 +16,7 @@ let multipleModels = $derived($copilotInfo.aiModels.length > 1);
|
|
|
16
16
|
<div class="min-w-0">
|
|
17
17
|
<Popover disablePopup={!multipleModels} class="max-w-full">
|
|
18
18
|
{#snippet trigger()}
|
|
19
|
-
<div class="text-
|
|
19
|
+
<div class="text-secondary text-2xs flex flex-row items-center font-normal gap-0.5">
|
|
20
20
|
<span class={`truncate ${multipleModels ? '' : 'pr-2'}`}>{providerModel.model}</span>
|
|
21
21
|
{#if multipleModels}
|
|
22
22
|
<div class="shrink-0">
|
|
@@ -90,6 +90,9 @@ export function createAppEvalHelpers(initialFrontend = {}, initialBackend = {})
|
|
|
90
90
|
execDatatableSql: async (_datatableName, _sql, _newTable) => {
|
|
91
91
|
// Return success with empty result for eval testing
|
|
92
92
|
return { success: true, result: [] };
|
|
93
|
+
},
|
|
94
|
+
addTableToWhitelist: (_datatableName, _schemaName, _tableName) => {
|
|
95
|
+
// No-op for eval testing - tables are not tracked in test context
|
|
93
96
|
}
|
|
94
97
|
};
|
|
95
98
|
return {
|
|
@@ -65,6 +65,10 @@ export function createFlowEvalHelpers(initialModules = [], initialSchema) {
|
|
|
65
65
|
testFlow: async () => {
|
|
66
66
|
// Return mock job ID - we don't actually run flows in eval
|
|
67
67
|
return 'mock-job-id-' + Date.now();
|
|
68
|
+
},
|
|
69
|
+
getLintErrors: async () => {
|
|
70
|
+
// Return empty lint result for eval
|
|
71
|
+
return { errorCount: 0, warningCount: 0, errors: [], warnings: [] };
|
|
68
72
|
}
|
|
69
73
|
};
|
|
70
74
|
return {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ChatCompletionSystemMessageParam, ChatCompletionUserMessageParam } from 'openai/resources/chat/completions.mjs';
|
|
2
2
|
import { type Tool } from '../shared';
|
|
3
|
+
import type { ContextElement, AppCodeSelectionElement } from '../context';
|
|
3
4
|
export type BackendRunnableType = 'script' | 'flow' | 'hubscript' | 'inline';
|
|
4
5
|
export interface InlineScript {
|
|
5
6
|
language: 'bun' | 'python3';
|
|
@@ -32,28 +33,66 @@ export interface LintResult {
|
|
|
32
33
|
/** Warning messages grouped by source type */
|
|
33
34
|
warnings: LintMessages;
|
|
34
35
|
}
|
|
36
|
+
/** Information about an element selected via the inspector tool */
|
|
37
|
+
export interface InspectorElementInfo {
|
|
38
|
+
/** CSS selector path to the element */
|
|
39
|
+
path: string;
|
|
40
|
+
/** Tag name of the element (e.g., 'div', 'button') */
|
|
41
|
+
tagName: string;
|
|
42
|
+
/** Element's id attribute, if any */
|
|
43
|
+
id?: string;
|
|
44
|
+
/** Element's class names, if any */
|
|
45
|
+
className?: string;
|
|
46
|
+
/** Bounding rectangle of the element */
|
|
47
|
+
rect: {
|
|
48
|
+
top: number;
|
|
49
|
+
left: number;
|
|
50
|
+
width: number;
|
|
51
|
+
height: number;
|
|
52
|
+
};
|
|
53
|
+
/** Outer HTML of the element (may be truncated) */
|
|
54
|
+
html: string;
|
|
55
|
+
/** Text content of the element (may be truncated) */
|
|
56
|
+
textContent?: string;
|
|
57
|
+
/** Computed styles of the element */
|
|
58
|
+
styles: Record<string, string>;
|
|
59
|
+
}
|
|
35
60
|
/** Context about the currently selected file or runnable in the app editor */
|
|
36
61
|
export interface SelectedContext {
|
|
37
62
|
/** Type of selection: 'frontend' for frontend files, 'backend' for backend runnables, or 'none' if nothing is selected */
|
|
38
63
|
type: 'frontend' | 'backend' | 'none';
|
|
39
64
|
/** The path of the selected frontend file (when type is 'frontend') */
|
|
40
65
|
frontendPath?: string;
|
|
66
|
+
/** The content of the selected frontend file */
|
|
67
|
+
frontendContent?: string;
|
|
41
68
|
/** The key of the selected backend runnable (when type is 'backend') */
|
|
42
69
|
backendKey?: string;
|
|
70
|
+
/** The configuration of the selected backend runnable */
|
|
71
|
+
backendRunnable?: BackendRunnable;
|
|
72
|
+
/** Inspector-selected element info (when user has used the inspector tool) */
|
|
73
|
+
inspectorElement?: InspectorElementInfo;
|
|
74
|
+
/** Whether the file/runnable selection is excluded from being sent to the AI prompt */
|
|
75
|
+
selectionExcluded?: boolean;
|
|
76
|
+
/** Function to toggle whether the selection is excluded from the prompt */
|
|
77
|
+
toggleSelectionExcluded?: () => void;
|
|
78
|
+
/** Function to clear the inspector selection */
|
|
79
|
+
clearInspector?: () => void;
|
|
80
|
+
/** Function to clear the runnable selection (go back to frontend view) */
|
|
81
|
+
clearRunnable?: () => void;
|
|
82
|
+
/** Code selection from the editor (either frontend or backend) */
|
|
83
|
+
codeSelection?: AppCodeSelectionElement;
|
|
84
|
+
/** Function to clear the code selection */
|
|
85
|
+
clearCodeSelection?: () => void;
|
|
43
86
|
}
|
|
44
|
-
/**
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
/** Full datatable info including schema */
|
|
54
|
-
export interface DataTableInfo {
|
|
55
|
-
name: string;
|
|
56
|
-
tables: DataTableTableSchema[];
|
|
87
|
+
/**
|
|
88
|
+
* Datatable schema matching the backend's DataTableSchema type.
|
|
89
|
+
* Hierarchical structure: schema_name -> table_name -> column_name -> compact_type
|
|
90
|
+
* Compact type format: 'type[?][=default]' where ? means nullable (e.g. 'int4', 'text?', 'int4?=0')
|
|
91
|
+
*/
|
|
92
|
+
export interface DataTableSchema {
|
|
93
|
+
datatable_name: string;
|
|
94
|
+
schemas: Record<string, Record<string, Record<string, string>>>;
|
|
95
|
+
error?: string;
|
|
57
96
|
}
|
|
58
97
|
export interface AppAIChatHelpers {
|
|
59
98
|
listFrontendFiles: () => string[];
|
|
@@ -78,7 +117,7 @@ export interface AppAIChatHelpers {
|
|
|
78
117
|
/** Lint all frontend files and backend runnables, returns errors and warnings */
|
|
79
118
|
lint: () => LintResult;
|
|
80
119
|
/** Get all datatables configured in the app with their schemas */
|
|
81
|
-
getDatatables: () => Promise<
|
|
120
|
+
getDatatables: () => Promise<DataTableSchema[]>;
|
|
82
121
|
/** Get unique datatable names configured in the app (for UI policy selector) */
|
|
83
122
|
getAvailableDatatableNames: () => string[];
|
|
84
123
|
/** Execute a SQL query on a datatable. Optionally specify newTable to register a newly created table. */
|
|
@@ -90,7 +129,9 @@ export interface AppAIChatHelpers {
|
|
|
90
129
|
result?: Record<string, any>[];
|
|
91
130
|
error?: string;
|
|
92
131
|
}>;
|
|
132
|
+
/** Add a table to the app's whitelisted tables (called when user selects a table via @) */
|
|
133
|
+
addTableToWhitelist: (datatableName: string, schemaName: string, tableName: string) => void;
|
|
93
134
|
}
|
|
94
135
|
export declare const getAppTools: () => Tool<AppAIChatHelpers>[];
|
|
95
136
|
export declare function prepareAppSystemMessage(customPrompt?: string): ChatCompletionSystemMessageParam;
|
|
96
|
-
export declare function prepareAppUserMessage(instructions: string, selectedContext?: SelectedContext): ChatCompletionUserMessageParam;
|
|
137
|
+
export declare function prepareAppUserMessage(instructions: string, selectedContext?: SelectedContext, additionalContext?: ContextElement[]): ChatCompletionUserMessageParam;
|