windmill-components 1.613.5 → 1.623.1
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/assets/tokens/tokens.json +1 -11
- package/package/ata/apis.js +5 -78
- package/package/components/AddUser.svelte +1 -1
- package/package/components/CenteredModal.svelte +24 -32
- package/package/components/CenteredModal.svelte.d.ts +27 -7
- package/package/components/CenteredPage.svelte +2 -5
- package/package/components/CenteredPage.svelte.d.ts +0 -2
- package/package/components/ConcurrentJobsChart.svelte +2 -3
- package/package/components/ConcurrentJobsChart.svelte.d.ts +2 -2
- package/package/components/CustomPopover.svelte +23 -20
- package/package/components/CustomPopover.svelte.d.ts +39 -14
- package/package/components/DBManager.svelte +17 -105
- package/package/components/DBManager.svelte.d.ts +1 -2
- package/package/components/DBManagerContent.svelte +3 -4
- package/package/components/DBManagerContent.svelte.d.ts +1 -1
- package/package/components/DBTableEditor.svelte +171 -210
- package/package/components/DBTableEditor.svelte.d.ts +3 -22
- package/package/components/Description.svelte +2 -3
- package/package/components/Dev.svelte +2 -36
- package/package/components/DiffDrawer.svelte +29 -8
- package/package/components/DiffEditor.svelte +2 -32
- package/package/components/DisplayResult.svelte +24 -32
- package/package/components/Editor.svelte +16 -70
- package/package/components/Editor.svelte.d.ts +0 -3
- package/package/components/EditorBar.svelte +1 -1
- package/package/components/FakeMonacoPlaceHolder.svelte +1 -1
- package/package/components/FlowBuilder.svelte +11 -17
- package/package/components/FlowPreviewContent.svelte +2 -3
- package/package/components/FlowPreviewResult.svelte +4 -0
- package/package/components/FlowRestartButton.svelte +3 -2
- package/package/components/FlowRestartButton.svelte.d.ts +0 -3
- package/package/components/FlowStatusViewerInner.svelte +33 -50
- package/package/components/FlowStatusViewerInner.svelte.d.ts +1 -1
- package/package/components/FlowStatusWaitingForEvents.svelte +23 -27
- package/package/components/FlowStatusWaitingForEvents.svelte.d.ts +18 -4
- package/package/components/FlowViewer.svelte +2 -103
- package/package/components/FlowViewer.svelte.d.ts +3 -9
- package/package/components/ForkWorkspaceBanner.svelte +13 -16
- package/package/components/GraphqlSchemaViewer.svelte +1 -8
- package/package/components/HistoricInputs.svelte +27 -25
- package/package/components/HistoricInputs.svelte.d.ts +2 -2
- package/package/components/InstanceSetting.svelte +0 -38
- package/package/components/InviteUser.svelte +42 -16
- package/package/components/InviteUser.svelte.d.ts +18 -4
- package/package/components/JsonInputs.svelte +8 -6
- package/package/components/JsonInputs.svelte.d.ts +8 -7
- package/package/components/LogViewer.svelte +33 -91
- package/package/components/Login.svelte +0 -21
- package/package/components/ManualPopover.svelte +6 -5
- package/package/components/ManualPopover.svelte.d.ts +35 -9
- package/package/components/MemoryFootprintViewer.svelte +6 -2
- package/package/components/ModulePreview.svelte +21 -23
- package/package/components/ModulePreview.svelte.d.ts +0 -1
- package/package/components/OAuthSetting.svelte +11 -23
- package/package/components/Path.svelte +2 -2
- package/package/components/Path.svelte.d.ts +1 -1
- package/package/components/ResourcePicker.svelte +0 -3
- package/package/components/ResourcePicker.svelte.d.ts +0 -1
- package/package/components/RunButton.svelte +15 -5
- package/package/components/RunButton.svelte.d.ts +19 -7
- package/package/components/RunChart.svelte +4 -8
- package/package/components/RunChart.svelte.d.ts +2 -2
- package/package/components/RunFormAdvancedPopup.svelte +1 -1
- package/package/components/RunsPage.svelte +539 -170
- package/package/components/RunsPage.svelte.d.ts +5 -5
- package/package/components/S3FilePicker.svelte +11 -7
- package/package/components/S3FilePickerInner.svelte +3 -2
- package/package/components/S3FilePickerInner.svelte.d.ts +2 -2
- package/package/components/SavedInputs.svelte +416 -0
- package/package/components/{tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte.d.ts → SavedInputs.svelte.d.ts} +11 -8
- package/package/components/SchemaForm.svelte +19 -26
- package/package/components/SchemaFormWithArgPicker.svelte +3 -4
- package/package/components/ScriptBuilder.svelte +1 -1
- package/package/components/ScriptEditor.svelte +101 -575
- package/package/components/Section.svelte +1 -3
- package/package/components/ServiceLogsInner.svelte +4 -4
- package/package/components/ShareModal.svelte.d.ts +1 -1
- package/package/components/SimpleEditor.svelte +2 -46
- package/package/components/SuperadminSettingsInner.svelte +1 -1
- package/package/components/TemplateEditor.svelte +29 -54
- package/package/components/TemplateEditor.svelte.d.ts +102 -13
- package/package/components/UserSettings.svelte +1 -1
- package/package/components/WorkerTagPicker.svelte +1 -1
- package/package/components/WorkerTagSelect.svelte +2 -5
- package/package/components/WorkspaceTutorials.svelte +0 -5
- package/package/components/apps/components/buttons/AppButton.svelte +6 -21
- package/package/components/apps/components/buttons/AppForm.svelte +1 -2
- package/package/components/apps/components/buttons/AppFormButton.svelte +1 -2
- package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +4 -0
- package/package/components/apps/components/display/dbtable/metadata.js +30 -69
- package/package/components/apps/components/display/dbtable/queries/createTable.d.ts +24 -2
- package/package/components/apps/components/display/dbtable/queries/createTable.js +25 -11
- package/package/components/apps/components/display/dbtable/queries/select.d.ts +0 -2
- package/package/components/apps/components/display/dbtable/queries/select.js +6 -37
- package/package/components/apps/components/display/dbtable/utils.d.ts +1 -10
- package/package/components/apps/components/display/dbtable/utils.js +20 -52
- 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 +2 -3
- 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 +1 -8
- package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +29 -32
- 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 +30 -49
- package/package/components/apps/editor/PublicApp.svelte.d.ts +0 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +7 -77
- 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 +1 -10
- package/package/components/apps/inputType.d.ts +1 -6
- package/package/components/auditLogs/AuditLogsFilters.svelte +17 -9
- 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 +3 -5
- package/package/components/common/languageIcons/TypeScript.svelte.d.ts +0 -1
- package/package/components/common/modal/Modal.svelte +3 -3
- package/package/components/copilot/autocomplete/Autocompletor.js +2 -3
- package/package/components/copilot/chat/AIButtonStyle.d.ts +1 -1
- package/package/components/copilot/chat/AIButtonStyle.js +1 -2
- package/package/components/copilot/chat/AIChat.svelte +1 -3
- package/package/components/copilot/chat/AIChatDisplay.svelte +4 -89
- package/package/components/copilot/chat/AIChatInput.svelte +0 -275
- package/package/components/copilot/chat/AIChatManager.svelte.js +1 -107
- package/package/components/copilot/chat/AiChatLayout.svelte +30 -15
- package/package/components/copilot/chat/ContextElementBadge.svelte +0 -44
- package/package/components/copilot/chat/DatatableCreationPolicy.svelte +33 -32
- package/package/components/copilot/chat/ProviderModelSelector.svelte +1 -1
- package/package/components/copilot/chat/__tests__/app/appEvalHelpers.js +0 -3
- package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.js +0 -4
- package/package/components/copilot/chat/app/core.d.ts +15 -56
- package/package/components/copilot/chat/app/core.js +22 -141
- package/package/components/copilot/chat/context.d.ts +2 -59
- package/package/components/copilot/chat/context.js +2 -6
- package/package/components/copilot/chat/flow/FlowAIChat.svelte +0 -22
- package/package/components/copilot/chat/flow/core.d.ts +1 -3
- package/package/components/copilot/chat/flow/core.js +2 -29
- package/package/components/copilot/chat/flow/openFlow.json +1 -1
- package/package/components/copilot/chat/flow/openFlowZod.d.ts +0 -1
- package/package/components/copilot/chat/flow/openFlowZod.js +2 -14
- package/package/components/copilot/chat/script/core.d.ts +1 -4
- package/package/components/copilot/chat/script/core.js +2 -38
- package/package/components/copilot/chat/shared.d.ts +0 -10
- package/package/components/copilot/chat/shared.js +0 -24
- package/package/components/copilot/lib.d.ts +1 -1
- package/package/components/custom_ui.d.ts +0 -2
- package/package/components/dbOps.d.ts +4 -18
- package/package/components/dbOps.js +3 -25
- package/package/components/flows/CreateActionsApp.svelte +4 -6
- package/package/components/flows/DebounceLimit.svelte.d.ts +1 -1
- package/package/components/flows/FlowHistoryInner.svelte +4 -15
- package/package/components/flows/content/AgentToolWrapper.svelte +1 -1
- package/package/components/flows/content/FlowInput.svelte +37 -211
- package/package/components/flows/content/FlowModuleComponent.svelte +67 -553
- package/package/components/flows/content/FlowModuleEarlyStop.svelte +10 -8
- package/package/components/flows/content/FlowModuleHeader.svelte +4 -7
- package/package/components/flows/content/FlowModuleWorkerTagSelect.svelte +1 -1
- package/package/components/flows/content/McpToolEditor.svelte +37 -50
- package/package/components/flows/content/McpToolEditor.svelte.d.ts +1 -0
- package/package/components/flows/conversations/FlowChat.svelte +2 -16
- package/package/components/flows/conversations/FlowChat.svelte.d.ts +1 -2
- package/package/components/flows/conversations/FlowChatInterface.svelte +6 -103
- package/package/components/flows/conversations/FlowChatInterface.svelte.d.ts +0 -2
- package/package/components/flows/conversations/FlowChatManager.svelte.js +21 -53
- package/package/components/flows/header/FlowImportExportMenu.svelte +1 -1
- package/package/components/flows/propPicker/PropPickerWrapper.svelte +1 -3
- package/package/components/flows/types.d.ts +0 -2
- package/package/components/git_sync/GitSyncRepositoryCard.svelte +8 -16
- package/package/components/home/ItemsList.svelte +5 -5
- package/package/components/home/TutorialBanner.svelte +18 -34
- package/package/components/icons/CssIcon.svelte +0 -20
- package/package/components/icons/CssIcon.svelte.d.ts +25 -7
- package/package/components/icons/JavaScriptIcon.svelte +2 -10
- package/package/components/icons/JavaScriptIcon.svelte.d.ts +0 -1
- package/package/components/icons/JsonIcon.svelte +2 -8
- package/package/components/icons/JsonIcon.svelte.d.ts +0 -1
- package/package/components/icons/ReactIcon.svelte +2 -10
- package/package/components/icons/ReactIcon.svelte.d.ts +0 -1
- package/package/components/icons/SvelteIcon.svelte +2 -10
- package/package/components/icons/SvelteIcon.svelte.d.ts +0 -1
- package/package/components/icons/VueIcon.svelte +2 -10
- package/package/components/icons/VueIcon.svelte.d.ts +0 -1
- package/package/components/instanceSettings.d.ts +1 -2
- package/package/components/instanceSettings.js +1 -32
- package/package/components/jobs/JobPreview.svelte +39 -46
- package/package/components/jobs/JobPreview.svelte.d.ts +0 -1
- package/package/components/monacoLanguagesOptions.js +15 -16
- package/package/components/propertyPicker/PropPicker.svelte +2 -16
- package/package/components/propertyPicker/PropPicker.svelte.d.ts +0 -2
- package/package/components/raw_apps/DefaultDatabaseSelector.svelte +5 -9
- package/package/components/raw_apps/FileEditorIcon.svelte +7 -12
- package/package/components/raw_apps/FileEditorIcon.svelte.d.ts +0 -2
- package/package/components/raw_apps/FileTreeNode.svelte +83 -119
- package/package/components/raw_apps/RawAppBackgroundRunner.svelte +8 -88
- package/package/components/raw_apps/RawAppDataTableList.svelte +9 -12
- package/package/components/raw_apps/RawAppEditor.svelte +68 -218
- package/package/components/raw_apps/RawAppEditorHeader.svelte +16 -33
- package/package/components/raw_apps/RawAppHistoryList.svelte +80 -264
- package/package/components/raw_apps/RawAppHistoryList.svelte.d.ts +0 -1
- package/package/components/raw_apps/RawAppHistoryManager.svelte.d.ts +1 -15
- package/package/components/raw_apps/RawAppHistoryManager.svelte.js +12 -46
- package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +47 -549
- package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +5 -31
- package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte +18 -25
- package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte.d.ts +0 -1
- package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +10 -141
- package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte.d.ts +0 -8
- package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte +1 -2
- package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte.d.ts +1 -9
- package/package/components/raw_apps/RawAppInputsSpecEditor.svelte +3 -47
- package/package/components/raw_apps/RawAppInputsSpecEditor.svelte.d.ts +2 -2
- package/package/components/raw_apps/RawAppModules.svelte +7 -13
- package/package/components/raw_apps/RawAppPreview.svelte +6 -48
- package/package/components/raw_apps/RawAppSidebar.svelte +125 -194
- package/package/components/raw_apps/RawAppSidebar.svelte.d.ts +0 -1
- package/package/components/raw_apps/utils.d.ts +1 -1
- package/package/components/raw_apps/utils.js +18 -76
- package/package/components/runs/JobsLoader.svelte +468 -0
- package/package/components/runs/JobsLoader.svelte.d.ts +49 -0
- package/package/components/runs/ManuelDatePicker.svelte +3 -3
- package/package/components/runs/ManuelDatePicker.svelte.d.ts +3 -3
- package/package/components/runs/NoWorkerWithTagWarning.svelte +1 -5
- package/package/components/runs/RunsFilter.svelte +63 -75
- package/package/components/runs/RunsFilter.svelte.d.ts +4 -35
- 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/schema/SchemaPicker.svelte +92 -0
- package/package/components/{tutorials/RunsTutorial.svelte.d.ts → schema/SchemaPicker.svelte.d.ts} +12 -11
- package/package/components/scriptEditor/LogPanel.svelte +2 -17
- package/package/components/scriptEditor/LogPanel.svelte.d.ts +0 -2
- package/package/components/select/SelectDropdown.svelte +2 -2
- package/package/components/settings/ChangeWorkspaceColor.svelte +3 -4
- package/package/components/settings/ChangeWorkspaceId.svelte +10 -14
- package/package/components/settings/ChangeWorkspaceName.svelte +6 -7
- package/package/components/settings/CreateToken.svelte +1 -1
- package/package/components/settings/UserAIPromptsSettings.svelte +15 -56
- package/package/components/settings/WorkspaceOperatorSettings.svelte +85 -68
- package/package/components/settings/WorkspaceUserSettings.svelte +406 -531
- package/package/components/sidebar/MenuButton.svelte +24 -46
- package/package/components/sidebar/MenuButton.svelte.d.ts +0 -2
- package/package/components/sidebar/MultiplayerMenu.svelte +3 -3
- package/package/components/sidebar/OperatorMenu.svelte +88 -63
- package/package/components/sidebar/SidebarContent.svelte +2 -7
- package/package/components/sidebar/UserMenu.svelte +1 -1
- package/package/components/sidebar/WorkspaceMenu.svelte +85 -35
- package/package/components/sqlTypeService.js +3 -4
- package/package/components/table/DataTable.svelte +2 -3
- package/package/components/table/DataTable.svelte.d.ts +0 -1
- package/package/components/text_input/TextInput.svelte +0 -3
- package/package/components/text_input/TextInput.svelte.d.ts +0 -2
- package/package/components/triggers/utils.js +1 -0
- package/package/components/tutorials/FlowBuilderLiveTutorial.svelte +35 -6
- package/package/components/tutorials/TroubleshootFlowTutorial.svelte +20 -5
- package/package/components/tutorials/utils.d.ts +0 -16
- package/package/components/tutorials/utils.js +0 -96
- package/package/components/vscode.js +6 -6
- package/package/components/workspaceSettings/AISettings.svelte +108 -146
- package/package/components/workspaceSettings/CreateWorkspace.svelte +12 -26
- package/package/components/workspaceSettings/DucklakeSettings.svelte +23 -46
- package/package/components/workspaceSettings/DucklakeSettings.svelte.d.ts +1 -2
- package/package/components/workspaceSettings/ModelTokenLimits.svelte +18 -14
- package/package/components/workspaceSettings/StorageSettings.svelte +241 -280
- package/package/components/workspaceSettings/StorageSettings.svelte.d.ts +0 -1
- package/package/consts.js +1 -4
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +1 -133
- package/package/gen/schemas.gen.js +1 -133
- package/package/gen/services.gen.d.ts +10 -160
- package/package/gen/services.gen.js +20 -319
- package/package/gen/types.gen.d.ts +19 -609
- package/package/hubPaths.json +2 -3
- package/package/infer.js +0 -2
- package/package/logout.d.ts +2 -0
- package/package/logout.js +23 -2
- package/package/monaco_workers/graphql.worker.bundle.js +121 -121
- package/package/navigation.d.ts +1 -1
- package/package/rawAppWmillTs.d.ts +0 -11
- package/package/rawAppWmillTs.js +1 -38
- package/package/svelte5Utils.svelte.d.ts +1 -7
- package/package/svelte5Utils.svelte.js +2 -23
- package/package/tutorialUtils.js +4 -0
- package/package/tutorials/config.js +3 -31
- package/package/tutorials/roleUtils.d.ts +1 -1
- package/package/tutorials/roleUtils.js +2 -6
- package/package/utils.js +1 -159
- package/package.json +4 -6
- package/dist/sharedUtils/assets/tokens/colorTokensConfig.d.ts +0 -2
- package/dist/sharedUtils/base.d.ts +0 -1
- package/dist/sharedUtils/cloud.d.ts +0 -1
- package/dist/sharedUtils/common.d.ts +0 -111
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/count.d.ts +0 -5
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/delete.d.ts +0 -5
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/insert.d.ts +0 -5
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/select.d.ts +0 -13
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/update.d.ts +0 -11
- package/dist/sharedUtils/components/apps/components/display/dbtable/utils.d.ts +0 -95
- package/dist/sharedUtils/components/apps/editor/appPolicy.d.ts +0 -6
- package/dist/sharedUtils/components/apps/editor/appUtilsCore.d.ts +0 -7
- package/dist/sharedUtils/components/apps/editor/appUtilsS3.d.ts +0 -33
- package/dist/sharedUtils/components/apps/editor/commonAppUtils.d.ts +0 -10
- package/dist/sharedUtils/components/apps/editor/component/components.d.ts +0 -5371
- package/dist/sharedUtils/components/apps/editor/component/default-codes.d.ts +0 -3
- package/dist/sharedUtils/components/apps/editor/component/index.d.ts +0 -3
- package/dist/sharedUtils/components/apps/editor/component/sets.d.ts +0 -7
- package/dist/sharedUtils/components/apps/editor/componentsPanel/componentDefaultProps.d.ts +0 -3
- package/dist/sharedUtils/components/apps/gridUtils.d.ts +0 -14
- package/dist/sharedUtils/components/apps/inputType.d.ts +0 -178
- package/dist/sharedUtils/components/apps/rx.d.ts +0 -29
- package/dist/sharedUtils/components/apps/sharedTypes.d.ts +0 -21
- package/dist/sharedUtils/components/apps/types.d.ts +0 -274
- package/dist/sharedUtils/components/assets/lib.d.ts +0 -25
- package/dist/sharedUtils/components/common/alert/model.d.ts +0 -2
- package/dist/sharedUtils/components/common/badge/model.d.ts +0 -8
- package/dist/sharedUtils/components/common/button/model.d.ts +0 -45
- package/dist/sharedUtils/components/common/fileInput/model.d.ts +0 -1
- package/dist/sharedUtils/components/common/index.d.ts +0 -24
- package/dist/sharedUtils/components/common/skeleton/model.d.ts +0 -21
- package/dist/sharedUtils/components/dbTypes.d.ts +0 -14
- package/dist/sharedUtils/components/diff_drawer.d.ts +0 -26
- package/dist/sharedUtils/components/ducklake.d.ts +0 -1
- package/dist/sharedUtils/components/flows/scheduleUtils.d.ts +0 -7
- package/dist/sharedUtils/components/icons/index.d.ts +0 -101
- package/dist/sharedUtils/components/random_positive_adjetive.d.ts +0 -1
- package/dist/sharedUtils/components/raw_apps/rawAppPolicy.d.ts +0 -10
- package/dist/sharedUtils/components/raw_apps/utils.d.ts +0 -15
- package/dist/sharedUtils/components/triggers/email/utils.d.ts +0 -4
- package/dist/sharedUtils/components/triggers/gcp/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers/http/utils.d.ts +0 -11
- package/dist/sharedUtils/components/triggers/kafka/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers/mqtt/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers/nats/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers/postgres/utils.d.ts +0 -8
- package/dist/sharedUtils/components/triggers/sqs/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers/triggers.svelte.d.ts +0 -32
- package/dist/sharedUtils/components/triggers/utils.d.ts +0 -80
- package/dist/sharedUtils/components/triggers/websocket/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers.d.ts +0 -20
- package/dist/sharedUtils/gen/core/ApiError.d.ts +0 -10
- package/dist/sharedUtils/gen/core/ApiRequestOptions.d.ts +0 -13
- package/dist/sharedUtils/gen/core/ApiResult.d.ts +0 -7
- package/dist/sharedUtils/gen/core/CancelablePromise.d.ts +0 -26
- package/dist/sharedUtils/gen/core/OpenAPI.d.ts +0 -27
- package/dist/sharedUtils/gen/core/request.d.ts +0 -29
- package/dist/sharedUtils/gen/index.d.ts +0 -6
- package/dist/sharedUtils/gen/schemas.gen.d.ts +0 -7036
- package/dist/sharedUtils/gen/services.gen.d.ts +0 -6047
- package/dist/sharedUtils/gen/types.gen.d.ts +0 -21881
- package/dist/sharedUtils/history.svelte.d.ts +0 -9
- package/dist/sharedUtils/hub.d.ts +0 -49
- package/dist/sharedUtils/jsr.json +0 -6
- package/dist/sharedUtils/lib.d.ts +0 -5
- package/dist/sharedUtils/lib.es.js +0 -1588
- package/dist/sharedUtils/package.json +0 -12
- package/dist/sharedUtils/schema.d.ts +0 -3
- package/dist/sharedUtils/stores.d.ts +0 -97
- package/dist/sharedUtils/svelte5Utils.svelte.d.ts +0 -80
- package/dist/sharedUtils/toast.d.ts +0 -8
- package/dist/sharedUtils/utils.d.ts +0 -265
- package/package/components/FlowDiffViewer.svelte +0 -37
- package/package/components/FlowDiffViewer.svelte.d.ts +0 -7
- package/package/components/JobOtelTraces.svelte +0 -287
- package/package/components/JobOtelTraces.svelte.d.ts +0 -6
- package/package/components/apps/components/display/dbtable/queries/alterTable.d.ts +0 -46
- package/package/components/apps/components/display/dbtable/queries/alterTable.js +0 -314
- package/package/components/apps/components/display/dbtable/queries/alterTable.test.d.ts +0 -1
- package/package/components/apps/components/display/dbtable/queries/alterTable.test.js +0 -867
- package/package/components/apps/components/display/dbtable/queries/dbQueriesUtils.d.ts +0 -9
- package/package/components/apps/components/display/dbtable/queries/dbQueriesUtils.js +0 -45
- package/package/components/apps/components/display/dbtable/queries/relationalKeys.d.ts +0 -47
- package/package/components/apps/components/display/dbtable/queries/relationalKeys.js +0 -402
- package/package/components/apps/components/display/dbtable/tableEditor.d.ts +0 -35
- package/package/components/apps/components/display/dbtable/tableEditor.js +0 -49
- package/package/components/copilot/chat/AppAvailableContextList.svelte +0 -263
- package/package/components/copilot/chat/AppAvailableContextList.svelte.d.ts +0 -13
- package/package/components/debug/DebugConsole.svelte +0 -277
- package/package/components/debug/DebugConsole.svelte.d.ts +0 -13
- package/package/components/debug/DebugPanel.svelte +0 -97
- package/package/components/debug/DebugPanel.svelte.d.ts +0 -11
- package/package/components/debug/DebugToolbar.svelte +0 -148
- package/package/components/debug/DebugToolbar.svelte.d.ts +0 -17
- package/package/components/debug/DebugVariableViewer.svelte +0 -115
- package/package/components/debug/DebugVariableViewer.svelte.d.ts +0 -11
- package/package/components/debug/MonacoDebugger.svelte +0 -384
- package/package/components/debug/MonacoDebugger.svelte.d.ts +0 -15
- package/package/components/debug/dapClient.d.ts +0 -192
- package/package/components/debug/dapClient.js +0 -426
- package/package/components/debug/debugUtils.d.ts +0 -30
- package/package/components/debug/debugUtils.js +0 -131
- package/package/components/debug/index.d.ts +0 -75
- package/package/components/debug/index.js +0 -82
- package/package/components/flows/content/FlowEditorDrawer.svelte +0 -124
- package/package/components/flows/content/FlowEditorDrawer.svelte.d.ts +0 -22
- package/package/components/flows/content/McpOAuthConnect.svelte +0 -217
- package/package/components/flows/content/McpOAuthConnect.svelte.d.ts +0 -7
- package/package/components/icons/HtmlIcon.svelte +0 -20
- package/package/components/icons/HtmlIcon.svelte.d.ts +0 -8
- package/package/components/icons/LessIcon.svelte +0 -16
- package/package/components/icons/LessIcon.svelte.d.ts +0 -8
- package/package/components/icons/MarkdownIcon.svelte +0 -20
- package/package/components/icons/MarkdownIcon.svelte.d.ts +0 -8
- package/package/components/icons/SassIcon.svelte +0 -28
- package/package/components/icons/SassIcon.svelte.d.ts +0 -8
- package/package/components/icons/YamlIcon.svelte +0 -20
- package/package/components/icons/YamlIcon.svelte.d.ts +0 -8
- package/package/components/instanceSettings/SecretBackendConfig.svelte +0 -514
- package/package/components/instanceSettings/SecretBackendConfig.svelte.d.ts +0 -8
- package/package/components/raw_apps/RunnableRow.svelte +0 -41
- package/package/components/raw_apps/RunnableRow.svelte.d.ts +0 -11
- package/package/components/runs/useJobsLoader.svelte.d.ts +0 -34
- package/package/components/runs/useJobsLoader.svelte.js +0 -507
- package/package/components/settings/AIPromptsModal.svelte +0 -88
- package/package/components/settings/AIPromptsModal.svelte.d.ts +0 -11
- package/package/components/tutorials/RunsTutorial.svelte +0 -399
- package/package/components/tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte +0 -133
- package/package/components/workspace/WorkspaceCard.svelte +0 -184
- package/package/components/workspace/WorkspaceCard.svelte.d.ts +0 -24
- package/package/components/workspace/WorkspaceIcon.svelte +0 -21
- package/package/components/workspace/WorkspaceIcon.svelte.d.ts +0 -9
- package/package/components/workspace/WorkspaceTreeView.svelte +0 -331
- package/package/components/workspace/WorkspaceTreeView.svelte.d.ts +0 -15
- package/package/logoutKit.d.ts +0 -2
- package/package/logoutKit.js +0 -26
- package/package/svelte5UtilsKit.svelte.d.ts +0 -3
- package/package/svelte5UtilsKit.svelte.js +0 -30
|
@@ -7,8 +7,6 @@ import { chatState } from './sharedChatState.svelte';
|
|
|
7
7
|
import { loadCopilot } from '../../../aiStore';
|
|
8
8
|
import { aiChatManager } from './AIChatManager.svelte';
|
|
9
9
|
import { onDestroy } from 'svelte';
|
|
10
|
-
import Button from '../../common/button/Button.svelte';
|
|
11
|
-
import { Menu } from 'lucide-svelte';
|
|
12
10
|
let { noPadding: noBorder = false, isCollapsed = false, children, onMenuOpen, disableAi } = $props();
|
|
13
11
|
$effect(() => {
|
|
14
12
|
if (disableAi) {
|
|
@@ -30,32 +28,49 @@ onDestroy(() => {
|
|
|
30
28
|
|
|
31
29
|
{#if !disableAi}
|
|
32
30
|
<Splitpanes horizontal={false} class="flex-1 min-h-0">
|
|
33
|
-
<Pane size={100 - chatState.size} minSize={50} class="flex flex-col
|
|
31
|
+
<Pane size={100 - chatState.size} minSize={50} class="flex flex-col min-h-0">
|
|
34
32
|
<div
|
|
35
33
|
id="content"
|
|
36
34
|
class={classNames(
|
|
37
|
-
'w-full flex-1 flex flex-col overflow-y-auto
|
|
35
|
+
'w-full flex-1 flex flex-col overflow-y-auto',
|
|
38
36
|
noBorder || $userStore?.operator ? '!pl-0' : isCollapsed ? 'md:pl-12' : 'md:pl-40',
|
|
39
37
|
'transition-all ease-in-out duration-200'
|
|
40
38
|
)}
|
|
41
39
|
>
|
|
42
|
-
<main class="flex-1 flex flex-col
|
|
43
|
-
<div class="relative w-full flex-1 flex flex-col
|
|
40
|
+
<main class="flex-1 flex flex-col">
|
|
41
|
+
<div class="relative w-full flex-1 flex flex-col">
|
|
44
42
|
<div
|
|
45
43
|
class={classNames(
|
|
46
|
-
'py-0.5 px-4 sm:px-4 shadow-sm max-w-7xl md:hidden
|
|
44
|
+
'py-0.5 px-4 sm:px-4 flex flex-row justify-between items-center shadow-sm max-w-7xl md:hidden',
|
|
47
45
|
noBorder || $userStore?.operator ? 'hidden' : ''
|
|
48
46
|
)}
|
|
49
47
|
>
|
|
50
|
-
<
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
48
|
+
<button
|
|
49
|
+
aria-label="Menu"
|
|
50
|
+
type="button"
|
|
51
|
+
onclick={() => {
|
|
52
|
+
onMenuOpen?.()
|
|
53
|
+
}}
|
|
54
|
+
class="h-8 w-8 inline-flex items-center justify-center rounded-md text-primary hover:text-primary focus:outline-none focus:ring-2 focus:ring-inset focus:ring-indigo-500"
|
|
55
|
+
>
|
|
56
|
+
<svg
|
|
57
|
+
class="h-6 w-6"
|
|
58
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
59
|
+
fill="none"
|
|
60
|
+
viewBox="0 0 24 24"
|
|
61
|
+
stroke-width="2"
|
|
62
|
+
stroke="currentColor"
|
|
63
|
+
aria-hidden="true"
|
|
64
|
+
>
|
|
65
|
+
<path
|
|
66
|
+
stroke-linecap="round"
|
|
67
|
+
stroke-linejoin="round"
|
|
68
|
+
d="M4 6h16M4 12h16M4 18h16"
|
|
69
|
+
/>
|
|
70
|
+
</svg>
|
|
71
|
+
</button>
|
|
57
72
|
</div>
|
|
58
|
-
<div class="flex-1
|
|
73
|
+
<div class="flex-1">
|
|
59
74
|
{@render children?.()}
|
|
60
75
|
</div>
|
|
61
76
|
</div>
|
|
@@ -87,50 +87,6 @@ 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>
|
|
134
90
|
{/if}
|
|
135
91
|
{/snippet}
|
|
136
92
|
</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 } from './AIChatManager.svelte';
|
|
3
|
+
import { aiChatManager, AIMode } 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,8 +9,7 @@ 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 &&
|
|
13
|
-
datatables.current.length > 0 &&
|
|
12
|
+
if (datatables.current.length > 0 &&
|
|
14
13
|
aiChatManager.datatableCreationPolicy.enabled &&
|
|
15
14
|
!aiChatManager.datatableCreationPolicy.datatable) {
|
|
16
15
|
aiChatManager.datatableCreationPolicy.datatable = datatables.current[0];
|
|
@@ -30,33 +29,35 @@ function handleDefaultChange(datatable, schema) {
|
|
|
30
29
|
}
|
|
31
30
|
</script>
|
|
32
31
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
<
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
32
|
+
{#if aiChatManager.mode === AIMode.APP}
|
|
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)}
|
|
50
|
+
/>
|
|
51
|
+
<span class="text-2xs text-secondary whitespace-nowrap">tables creation</span>
|
|
52
|
+
</div>
|
|
53
53
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
</div>
|
|
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>
|
|
63
|
+
{/if}
|
|
@@ -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-primary text-xs 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,9 +90,6 @@ 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
|
|
96
93
|
}
|
|
97
94
|
};
|
|
98
95
|
return {
|
|
@@ -65,10 +65,6 @@ 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: [] };
|
|
72
68
|
}
|
|
73
69
|
};
|
|
74
70
|
return {
|
|
@@ -1,6 +1,5 @@
|
|
|
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';
|
|
4
3
|
export type BackendRunnableType = 'script' | 'flow' | 'hubscript' | 'inline';
|
|
5
4
|
export interface InlineScript {
|
|
6
5
|
language: 'bun' | 'python3';
|
|
@@ -33,66 +32,28 @@ export interface LintResult {
|
|
|
33
32
|
/** Warning messages grouped by source type */
|
|
34
33
|
warnings: LintMessages;
|
|
35
34
|
}
|
|
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
|
-
}
|
|
60
35
|
/** Context about the currently selected file or runnable in the app editor */
|
|
61
36
|
export interface SelectedContext {
|
|
62
37
|
/** Type of selection: 'frontend' for frontend files, 'backend' for backend runnables, or 'none' if nothing is selected */
|
|
63
38
|
type: 'frontend' | 'backend' | 'none';
|
|
64
39
|
/** The path of the selected frontend file (when type is 'frontend') */
|
|
65
40
|
frontendPath?: string;
|
|
66
|
-
/** The content of the selected frontend file */
|
|
67
|
-
frontendContent?: string;
|
|
68
41
|
/** The key of the selected backend runnable (when type is 'backend') */
|
|
69
42
|
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;
|
|
86
43
|
}
|
|
87
|
-
/**
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
44
|
+
/** Schema for a table in a datatable */
|
|
45
|
+
export interface DataTableTableSchema {
|
|
46
|
+
schema: string;
|
|
47
|
+
table: string;
|
|
48
|
+
columns: Record<string, {
|
|
49
|
+
type: string;
|
|
50
|
+
required: boolean;
|
|
51
|
+
}>;
|
|
52
|
+
}
|
|
53
|
+
/** Full datatable info including schema */
|
|
54
|
+
export interface DataTableInfo {
|
|
55
|
+
name: string;
|
|
56
|
+
tables: DataTableTableSchema[];
|
|
96
57
|
}
|
|
97
58
|
export interface AppAIChatHelpers {
|
|
98
59
|
listFrontendFiles: () => string[];
|
|
@@ -117,7 +78,7 @@ export interface AppAIChatHelpers {
|
|
|
117
78
|
/** Lint all frontend files and backend runnables, returns errors and warnings */
|
|
118
79
|
lint: () => LintResult;
|
|
119
80
|
/** Get all datatables configured in the app with their schemas */
|
|
120
|
-
getDatatables: () => Promise<
|
|
81
|
+
getDatatables: () => Promise<DataTableInfo[]>;
|
|
121
82
|
/** Get unique datatable names configured in the app (for UI policy selector) */
|
|
122
83
|
getAvailableDatatableNames: () => string[];
|
|
123
84
|
/** Execute a SQL query on a datatable. Optionally specify newTable to register a newly created table. */
|
|
@@ -129,9 +90,7 @@ export interface AppAIChatHelpers {
|
|
|
129
90
|
result?: Record<string, any>[];
|
|
130
91
|
error?: string;
|
|
131
92
|
}>;
|
|
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;
|
|
134
93
|
}
|
|
135
94
|
export declare const getAppTools: () => Tool<AppAIChatHelpers>[];
|
|
136
95
|
export declare function prepareAppSystemMessage(customPrompt?: string): ChatCompletionSystemMessageParam;
|
|
137
|
-
export declare function prepareAppUserMessage(instructions: string, selectedContext?: SelectedContext
|
|
96
|
+
export declare function prepareAppUserMessage(instructions: string, selectedContext?: SelectedContext): ChatCompletionUserMessageParam;
|
|
@@ -439,8 +439,7 @@ export const getAppTools = memo(() => [
|
|
|
439
439
|
toolCallbacks.setToolStatus(toolId, { content: 'No datatables configured' });
|
|
440
440
|
return 'No datatables are configured in this app. Use the Data panel in the sidebar to add datatable references.';
|
|
441
441
|
}
|
|
442
|
-
const totalTables = datatables.reduce((acc, dt) => acc +
|
|
443
|
-
Object.values(dt.schemas).reduce((schemaAcc, tables) => schemaAcc + Object.keys(tables).length, 0), 0);
|
|
442
|
+
const totalTables = datatables.reduce((acc, dt) => acc + dt.tables.length, 0);
|
|
444
443
|
toolCallbacks.setToolStatus(toolId, {
|
|
445
444
|
content: `Found ${datatables.length} datatable(s) with ${totalTables} table(s)`
|
|
446
445
|
});
|
|
@@ -521,12 +520,6 @@ export const getAppTools = memo(() => [
|
|
|
521
520
|
}
|
|
522
521
|
]);
|
|
523
522
|
export function prepareAppSystemMessage(customPrompt) {
|
|
524
|
-
// Get policy early so we can use it in the template
|
|
525
|
-
const policy = aiChatManager.datatableCreationPolicy;
|
|
526
|
-
const datatableName = policy.datatable ?? 'main';
|
|
527
|
-
const schemaPrefix = policy.schema ? `${policy.schema}.` : '';
|
|
528
|
-
// Use wmill.datatable() for 'main' (default), otherwise wmill.datatable('name')
|
|
529
|
-
const datatableCall = datatableName === 'main' ? 'wmill.datatable()' : `wmill.datatable('${datatableName}')`;
|
|
530
523
|
let content = `You are a helpful assistant that creates and edits apps on the Windmill platform. Apps are defined as a collection of files that contains both the frontend and the backend.
|
|
531
524
|
|
|
532
525
|
## App Structure
|
|
@@ -603,10 +596,12 @@ Backend runnables should only perform **data operations** (SELECT, INSERT, UPDAT
|
|
|
603
596
|
import * as wmill from 'windmill-client';
|
|
604
597
|
|
|
605
598
|
export async function main(user_id: string) {
|
|
606
|
-
|
|
599
|
+
// Use default 'main' datatable
|
|
600
|
+
let sql = wmill.datatable();
|
|
601
|
+
// Or specify a named datatable: wmill.datatable('named_datatable')
|
|
607
602
|
|
|
608
603
|
// Safe string interpolation (parameterized query)
|
|
609
|
-
|
|
604
|
+
let user = await sql\`SELECT * FROM users WHERE id = \${user_id}\`.fetchOne();
|
|
610
605
|
return user;
|
|
611
606
|
}
|
|
612
607
|
\`\`\`
|
|
@@ -616,20 +611,22 @@ export async function main(user_id: string) {
|
|
|
616
611
|
import wmill
|
|
617
612
|
|
|
618
613
|
def main(user_id: str):
|
|
619
|
-
db =
|
|
614
|
+
db = wmill.datatable() # or wmill.datatable('named_datatable')
|
|
620
615
|
|
|
621
616
|
# Use positional arguments ($1, $2, etc.)
|
|
622
|
-
user = db.query('SELECT * FROM
|
|
617
|
+
user = db.query('SELECT * FROM users WHERE id = $1', user_id).fetch_one()
|
|
623
618
|
return user
|
|
624
619
|
\`\`\`
|
|
625
620
|
|
|
626
621
|
### Common Operations (for use in backend runnables)
|
|
627
622
|
|
|
628
|
-
- **Fetch all**: \`sql\`SELECT * FROM
|
|
623
|
+
- **Fetch all**: \`sql\`SELECT * FROM table\`.fetch()\` or \`db.query('SELECT * FROM table').fetch()\`
|
|
629
624
|
- **Fetch one**: \`.fetchOne()\` or \`.fetch_one()\`
|
|
630
|
-
- **Insert**: \`sql\`INSERT INTO
|
|
631
|
-
- **Update**: \`sql\`UPDATE
|
|
632
|
-
- **Delete**: \`sql\`DELETE FROM
|
|
625
|
+
- **Insert**: \`sql\`INSERT INTO table (col) VALUES (\${value})\`\`
|
|
626
|
+
- **Update**: \`sql\`UPDATE table SET col = \${value} WHERE id = \${id}\`\`
|
|
627
|
+
- **Delete**: \`sql\`DELETE FROM table WHERE id = \${id}\`\`
|
|
628
|
+
|
|
629
|
+
The "main" datatable is the default and can be accessed without specifying a name.
|
|
633
630
|
|
|
634
631
|
### Schema Modifications (DDL) - Use exec_datatable_sql tool ONLY
|
|
635
632
|
|
|
@@ -713,11 +710,13 @@ When creating a new app, use \`list_workspace_runnables\` or \`search_hub_script
|
|
|
713
710
|
|
|
714
711
|
`;
|
|
715
712
|
// Add datatable creation policy context
|
|
713
|
+
const policy = aiChatManager.datatableCreationPolicy;
|
|
716
714
|
if (policy.enabled && policy.datatable) {
|
|
715
|
+
const schemaPrefix = policy.schema ? `${policy.schema}.` : '';
|
|
717
716
|
content += `## Datatable Creation Policy
|
|
718
717
|
|
|
719
718
|
**Table creation is ENABLED.** You can create new tables using \`exec_datatable_sql\` with the \`new_table\` parameter.
|
|
720
|
-
- **Default datatable**: ${
|
|
719
|
+
- **Default datatable**: ${policy.datatable}${policy.schema ? `\n- **Default schema**: ${policy.schema}` : ''}
|
|
721
720
|
|
|
722
721
|
When creating new tables, you MUST use the default datatable${policy.schema ? ` and schema` : ''} specified above. Do not create tables in other datatables or schemas.
|
|
723
722
|
${policy.schema ? `\n**IMPORTANT**: Always use the schema prefix \`${schemaPrefix}\` in your SQL queries when creating or referencing tables. For example: \`CREATE TABLE ${schemaPrefix}my_table (...)\` and \`SELECT * FROM ${schemaPrefix}my_table\`. Never create tables without the schema prefix as they would go to the public schema instead.` : ''}
|
|
@@ -739,134 +738,16 @@ ${policy.schema ? `\n**IMPORTANT**: Always use the schema prefix \`${schemaPrefi
|
|
|
739
738
|
content
|
|
740
739
|
};
|
|
741
740
|
}
|
|
742
|
-
|
|
743
|
-
const MAX_CONTEXT_CONTENT_LENGTH = 3000;
|
|
744
|
-
export function prepareAppUserMessage(instructions, selectedContext, additionalContext) {
|
|
741
|
+
export function prepareAppUserMessage(instructions, selectedContext) {
|
|
745
742
|
let content = '';
|
|
746
|
-
|
|
747
|
-
const hasSelectedContext = selectedContext && (selectedContext.type !== 'none' || selectedContext.inspectorElement);
|
|
748
|
-
const hasAdditionalContext = additionalContext && additionalContext.length > 0;
|
|
749
|
-
if (hasSelectedContext || hasAdditionalContext) {
|
|
743
|
+
if (selectedContext && selectedContext.type !== 'none') {
|
|
750
744
|
content += `## SELECTED CONTEXT:\n`;
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
selectedContext.type === 'frontend' &&
|
|
754
|
-
selectedContext.frontendPath &&
|
|
755
|
-
!selectedContext.selectionExcluded) {
|
|
756
|
-
content += `The user is currently viewing the frontend file: **${selectedContext.frontendPath}**\n`;
|
|
757
|
-
if (selectedContext.frontendContent) {
|
|
758
|
-
const truncatedContent = selectedContext.frontendContent.length > MAX_CONTEXT_CONTENT_LENGTH
|
|
759
|
-
? selectedContext.frontendContent.slice(0, MAX_CONTEXT_CONTENT_LENGTH) +
|
|
760
|
-
'\n... [TRUNCATED]'
|
|
761
|
-
: selectedContext.frontendContent;
|
|
762
|
-
content += `\n\`\`\`\n${truncatedContent}\n\`\`\`\n`;
|
|
763
|
-
}
|
|
764
|
-
}
|
|
765
|
-
// Add backend runnable context with content (unless excluded)
|
|
766
|
-
if (selectedContext &&
|
|
767
|
-
selectedContext.type === 'backend' &&
|
|
768
|
-
selectedContext.backendKey &&
|
|
769
|
-
!selectedContext.selectionExcluded) {
|
|
770
|
-
content += `The user is currently viewing the backend runnable: **${selectedContext.backendKey}**\n`;
|
|
771
|
-
if (selectedContext.backendRunnable) {
|
|
772
|
-
const runnable = selectedContext.backendRunnable;
|
|
773
|
-
content += `- **Name**: ${runnable.name}\n`;
|
|
774
|
-
content += `- **Type**: ${runnable.type}\n`;
|
|
775
|
-
if (runnable.path) {
|
|
776
|
-
content += `- **Path**: ${runnable.path}\n`;
|
|
777
|
-
}
|
|
778
|
-
if (runnable.inlineScript) {
|
|
779
|
-
const truncatedCode = runnable.inlineScript.content.length > MAX_CONTEXT_CONTENT_LENGTH
|
|
780
|
-
? runnable.inlineScript.content.slice(0, MAX_CONTEXT_CONTENT_LENGTH) +
|
|
781
|
-
'\n... [TRUNCATED]'
|
|
782
|
-
: runnable.inlineScript.content;
|
|
783
|
-
content += `- **Language**: ${runnable.inlineScript.language}\n`;
|
|
784
|
-
content += `- **Code**:\n\`\`\`${runnable.inlineScript.language === 'bun' ? 'typescript' : 'python'}\n${truncatedCode}\n\`\`\`\n`;
|
|
785
|
-
}
|
|
786
|
-
if (runnable.staticInputs && Object.keys(runnable.staticInputs).length > 0) {
|
|
787
|
-
content += `- **Static inputs**: ${JSON.stringify(runnable.staticInputs)}\n`;
|
|
788
|
-
}
|
|
789
|
-
}
|
|
745
|
+
if (selectedContext.type === 'frontend') {
|
|
746
|
+
content += `The user is currently viewing the frontend file: ${selectedContext.frontendPath}\n\n`;
|
|
790
747
|
}
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
const el = selectedContext.inspectorElement;
|
|
794
|
-
content += `\nThe user has selected an element in the app preview using the inspector tool:\n`;
|
|
795
|
-
content += `- **Element**: ${el.tagName}${el.id ? `#${el.id}` : ''}${el.className ? `.${el.className.split(' ').join('.')}` : ''}\n`;
|
|
796
|
-
content += `- **Selector path**: ${el.path}\n`;
|
|
797
|
-
content += `- **Dimensions**: ${Math.round(el.rect.width)}x${Math.round(el.rect.height)} at (${Math.round(el.rect.left)}, ${Math.round(el.rect.top)})\n`;
|
|
798
|
-
if (el.textContent) {
|
|
799
|
-
const truncatedText = el.textContent.length > 100 ? el.textContent.slice(0, 100) + '...' : el.textContent;
|
|
800
|
-
content += `- **Text content**: "${truncatedText}"\n`;
|
|
801
|
-
}
|
|
802
|
-
// Include HTML (truncated) for more context
|
|
803
|
-
const truncatedHtml = el.html.length > 500 ? el.html.slice(0, 500) + '...' : el.html;
|
|
804
|
-
content += `- **HTML**:\n\`\`\`html\n${truncatedHtml}\n\`\`\`\n`;
|
|
805
|
-
}
|
|
806
|
-
// Add code selection context if available
|
|
807
|
-
if (selectedContext?.codeSelection) {
|
|
808
|
-
const selection = selectedContext.codeSelection;
|
|
809
|
-
content += `\n### CODE SELECTION:\n`;
|
|
810
|
-
content += `The user has selected code in the ${selection.sourceType} editor:\n`;
|
|
811
|
-
content += `- **File/Source**: ${selection.source}\n`;
|
|
812
|
-
content += `- **Lines**: ${selection.startLine}-${selection.endLine}\n`;
|
|
813
|
-
const truncatedCode = selection.content.length > MAX_CONTEXT_CONTENT_LENGTH
|
|
814
|
-
? selection.content.slice(0, MAX_CONTEXT_CONTENT_LENGTH) + '\n... [TRUNCATED]'
|
|
815
|
-
: selection.content;
|
|
816
|
-
content += `\`\`\`\n${truncatedCode}\n\`\`\`\n`;
|
|
817
|
-
}
|
|
818
|
-
// Add additional context from @ mentions
|
|
819
|
-
if (additionalContext && additionalContext.length > 0) {
|
|
820
|
-
content += `\n### ADDITIONAL CONTEXT (mentioned by user):\n`;
|
|
821
|
-
for (const ctx of additionalContext) {
|
|
822
|
-
if (ctx.type === 'app_frontend_file') {
|
|
823
|
-
const fileCtx = ctx;
|
|
824
|
-
content += `\n**Frontend File: ${fileCtx.path}**\n`;
|
|
825
|
-
const truncatedContent = fileCtx.content.length > MAX_CONTEXT_CONTENT_LENGTH
|
|
826
|
-
? fileCtx.content.slice(0, MAX_CONTEXT_CONTENT_LENGTH) + '\n... [TRUNCATED]'
|
|
827
|
-
: fileCtx.content;
|
|
828
|
-
content += `\`\`\`\n${truncatedContent}\n\`\`\`\n`;
|
|
829
|
-
}
|
|
830
|
-
else if (ctx.type === 'app_backend_runnable') {
|
|
831
|
-
const runnableCtx = ctx;
|
|
832
|
-
const runnable = runnableCtx.runnable;
|
|
833
|
-
content += `\n**Backend Runnable: ${runnableCtx.key}**\n`;
|
|
834
|
-
content += `- **Name**: ${runnable.name}\n`;
|
|
835
|
-
content += `- **Type**: ${runnable.type}\n`;
|
|
836
|
-
if (runnable.path) {
|
|
837
|
-
content += `- **Path**: ${runnable.path}\n`;
|
|
838
|
-
}
|
|
839
|
-
if (runnable.inlineScript) {
|
|
840
|
-
const truncatedCode = runnable.inlineScript.content.length > MAX_CONTEXT_CONTENT_LENGTH
|
|
841
|
-
? runnable.inlineScript.content.slice(0, MAX_CONTEXT_CONTENT_LENGTH) +
|
|
842
|
-
'\n... [TRUNCATED]'
|
|
843
|
-
: runnable.inlineScript.content;
|
|
844
|
-
content += `- **Language**: ${runnable.inlineScript.language}\n`;
|
|
845
|
-
content += `- **Code**:\n\`\`\`${runnable.inlineScript.language === 'bun' ? 'typescript' : 'python'}\n${truncatedCode}\n\`\`\`\n`;
|
|
846
|
-
}
|
|
847
|
-
if (runnable.staticInputs && Object.keys(runnable.staticInputs).length > 0) {
|
|
848
|
-
content += `- **Static inputs**: ${JSON.stringify(runnable.staticInputs)}\n`;
|
|
849
|
-
}
|
|
850
|
-
}
|
|
851
|
-
else if (ctx.type === 'app_datatable') {
|
|
852
|
-
const datatableCtx = ctx;
|
|
853
|
-
const tableRef = datatableCtx.schemaName === 'public'
|
|
854
|
-
? `${datatableCtx.datatableName}/${datatableCtx.tableName}`
|
|
855
|
-
: `${datatableCtx.datatableName}/${datatableCtx.schemaName}:${datatableCtx.tableName}`;
|
|
856
|
-
content += `\n**Table: ${tableRef}**\n`;
|
|
857
|
-
content += `- **Datatable**: ${datatableCtx.datatableName}\n`;
|
|
858
|
-
content += `- **Schema**: ${datatableCtx.schemaName}\n`;
|
|
859
|
-
content += `- **Table**: ${datatableCtx.tableName}\n`;
|
|
860
|
-
// Format columns as column_name: type
|
|
861
|
-
const columnsStr = JSON.stringify(datatableCtx.columns, null, 2);
|
|
862
|
-
const truncatedColumns = columnsStr.length > MAX_CONTEXT_CONTENT_LENGTH
|
|
863
|
-
? columnsStr.slice(0, MAX_CONTEXT_CONTENT_LENGTH) + '\n... [TRUNCATED]'
|
|
864
|
-
: columnsStr;
|
|
865
|
-
content += `- **Columns** (column_name -> type):\n\`\`\`json\n${truncatedColumns}\n\`\`\`\n`;
|
|
866
|
-
}
|
|
867
|
-
}
|
|
748
|
+
else if (selectedContext.type === 'backend') {
|
|
749
|
+
content += `The user is currently viewing the backend runnable: ${selectedContext.backendKey}\n\n`;
|
|
868
750
|
}
|
|
869
|
-
content += '\n';
|
|
870
751
|
}
|
|
871
752
|
content += `## INSTRUCTIONS:\n${instructions}`;
|
|
872
753
|
return {
|
|
@@ -1,18 +1,13 @@
|
|
|
1
|
-
import { Code, Database, TriangleAlert, Diff
|
|
1
|
+
import { Code, Database, TriangleAlert, Diff } from 'lucide-svelte';
|
|
2
2
|
import type { ScriptLang } from '../../../gen/types.gen';
|
|
3
3
|
import { type DBSchema } from '../../../stores';
|
|
4
4
|
import { type Change } from 'diff';
|
|
5
|
-
import type { BackendRunnable } from './app/core';
|
|
6
5
|
export declare const ContextIconMap: {
|
|
7
6
|
code: typeof Code;
|
|
8
7
|
error: typeof TriangleAlert;
|
|
9
8
|
db: typeof Database;
|
|
10
9
|
diff: typeof Diff;
|
|
11
10
|
code_piece: typeof Code;
|
|
12
|
-
app_frontend_file: typeof FileCode;
|
|
13
|
-
app_backend_runnable: typeof Code2;
|
|
14
|
-
app_code_selection: typeof TextSelect;
|
|
15
|
-
app_datatable: typeof Table2;
|
|
16
11
|
};
|
|
17
12
|
export interface CodeElement {
|
|
18
13
|
type: 'code';
|
|
@@ -61,59 +56,7 @@ export interface FlowModuleCodePieceElement extends Omit<CodePieceElement, 'type
|
|
|
61
56
|
id: string;
|
|
62
57
|
value: FlowModuleElement['value'];
|
|
63
58
|
}
|
|
64
|
-
|
|
65
|
-
export interface AppFrontendFileElement {
|
|
66
|
-
type: 'app_frontend_file';
|
|
67
|
-
/** The file path (e.g., /index.tsx, /styles.css) */
|
|
68
|
-
path: string;
|
|
69
|
-
/** Title for display (the path) */
|
|
70
|
-
title: string;
|
|
71
|
-
/** The file content */
|
|
72
|
-
content: string;
|
|
73
|
-
}
|
|
74
|
-
/** App backend runnable context element */
|
|
75
|
-
export interface AppBackendRunnableElement {
|
|
76
|
-
type: 'app_backend_runnable';
|
|
77
|
-
/** The runnable key */
|
|
78
|
-
key: string;
|
|
79
|
-
/** Title for display (the key) */
|
|
80
|
-
title: string;
|
|
81
|
-
/** The runnable configuration */
|
|
82
|
-
runnable: BackendRunnable;
|
|
83
|
-
}
|
|
84
|
-
/** App code selection context element (from frontend or backend editor) */
|
|
85
|
-
export interface AppCodeSelectionElement {
|
|
86
|
-
type: 'app_code_selection';
|
|
87
|
-
/** Source: frontend file path or backend runnable key */
|
|
88
|
-
source: string;
|
|
89
|
-
/** Whether this is from frontend or backend */
|
|
90
|
-
sourceType: 'frontend' | 'backend';
|
|
91
|
-
/** Title for display */
|
|
92
|
-
title: string;
|
|
93
|
-
/** The selected code content */
|
|
94
|
-
content: string;
|
|
95
|
-
/** Line range (1-indexed) */
|
|
96
|
-
startLine: number;
|
|
97
|
-
endLine: number;
|
|
98
|
-
/** Column range (1-indexed) */
|
|
99
|
-
startColumn: number;
|
|
100
|
-
endColumn: number;
|
|
101
|
-
}
|
|
102
|
-
/** App datatable table context element (represents a single table within a datatable) */
|
|
103
|
-
export interface AppDatatableElement {
|
|
104
|
-
type: 'app_datatable';
|
|
105
|
-
/** The datatable name (e.g., "main") */
|
|
106
|
-
datatableName: string;
|
|
107
|
-
/** The schema name (e.g., "public") */
|
|
108
|
-
schemaName: string;
|
|
109
|
-
/** The table name (e.g., "users") */
|
|
110
|
-
tableName: string;
|
|
111
|
-
/** Title for display (e.g., "main/public:users" or "main/users") */
|
|
112
|
-
title: string;
|
|
113
|
-
/** The table columns: column_name -> compact_type */
|
|
114
|
-
columns: Record<string, string>;
|
|
115
|
-
}
|
|
116
|
-
export type ContextElement = (CodeElement | ErrorElement | DBElement | DiffElement | CodePieceElement | FlowModuleElement | FlowModuleCodePieceElement | AppFrontendFileElement | AppBackendRunnableElement | AppCodeSelectionElement | AppDatatableElement) & {
|
|
59
|
+
export type ContextElement = (CodeElement | ErrorElement | DBElement | DiffElement | CodePieceElement | FlowModuleElement | FlowModuleCodePieceElement) & {
|
|
117
60
|
deletable?: boolean;
|
|
118
61
|
};
|
|
119
62
|
export {};
|