windmill-components 1.613.4 → 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.
Files changed (427) hide show
  1. package/package/assets/tokens/tokens.json +1 -11
  2. package/package/ata/apis.js +5 -78
  3. package/package/components/AddUser.svelte +1 -1
  4. package/package/components/CenteredModal.svelte +24 -32
  5. package/package/components/CenteredModal.svelte.d.ts +27 -7
  6. package/package/components/CenteredPage.svelte +2 -5
  7. package/package/components/CenteredPage.svelte.d.ts +0 -2
  8. package/package/components/ConcurrentJobsChart.svelte +2 -3
  9. package/package/components/ConcurrentJobsChart.svelte.d.ts +2 -2
  10. package/package/components/CustomPopover.svelte +23 -20
  11. package/package/components/CustomPopover.svelte.d.ts +39 -14
  12. package/package/components/DBManager.svelte +17 -105
  13. package/package/components/DBManager.svelte.d.ts +1 -2
  14. package/package/components/DBManagerContent.svelte +3 -4
  15. package/package/components/DBManagerContent.svelte.d.ts +1 -1
  16. package/package/components/DBTableEditor.svelte +171 -210
  17. package/package/components/DBTableEditor.svelte.d.ts +3 -22
  18. package/package/components/Description.svelte +2 -3
  19. package/package/components/Dev.svelte +2 -36
  20. package/package/components/DiffDrawer.svelte +29 -8
  21. package/package/components/DiffEditor.svelte +2 -32
  22. package/package/components/DisplayResult.svelte +24 -32
  23. package/package/components/Editor.svelte +16 -70
  24. package/package/components/Editor.svelte.d.ts +0 -3
  25. package/package/components/EditorBar.svelte +1 -1
  26. package/package/components/FakeMonacoPlaceHolder.svelte +1 -1
  27. package/package/components/FlowBuilder.svelte +11 -17
  28. package/package/components/FlowPreviewContent.svelte +2 -3
  29. package/package/components/FlowPreviewResult.svelte +4 -0
  30. package/package/components/FlowRestartButton.svelte +3 -2
  31. package/package/components/FlowRestartButton.svelte.d.ts +0 -3
  32. package/package/components/FlowStatusViewerInner.svelte +33 -50
  33. package/package/components/FlowStatusViewerInner.svelte.d.ts +1 -1
  34. package/package/components/FlowStatusWaitingForEvents.svelte +23 -27
  35. package/package/components/FlowStatusWaitingForEvents.svelte.d.ts +18 -4
  36. package/package/components/FlowViewer.svelte +2 -103
  37. package/package/components/FlowViewer.svelte.d.ts +3 -9
  38. package/package/components/ForkWorkspaceBanner.svelte +13 -16
  39. package/package/components/GraphqlSchemaViewer.svelte +1 -8
  40. package/package/components/HistoricInputs.svelte +27 -25
  41. package/package/components/HistoricInputs.svelte.d.ts +2 -2
  42. package/package/components/InstanceSetting.svelte +0 -38
  43. package/package/components/InviteUser.svelte +42 -16
  44. package/package/components/InviteUser.svelte.d.ts +18 -4
  45. package/package/components/JsonInputs.svelte +8 -6
  46. package/package/components/JsonInputs.svelte.d.ts +8 -7
  47. package/package/components/LogViewer.svelte +33 -91
  48. package/package/components/Login.svelte +0 -21
  49. package/package/components/ManualPopover.svelte +6 -5
  50. package/package/components/ManualPopover.svelte.d.ts +35 -9
  51. package/package/components/MemoryFootprintViewer.svelte +6 -2
  52. package/package/components/ModulePreview.svelte +21 -23
  53. package/package/components/ModulePreview.svelte.d.ts +0 -1
  54. package/package/components/Path.svelte +2 -2
  55. package/package/components/Path.svelte.d.ts +1 -1
  56. package/package/components/ResourcePicker.svelte +0 -3
  57. package/package/components/ResourcePicker.svelte.d.ts +0 -1
  58. package/package/components/RunButton.svelte +15 -5
  59. package/package/components/RunButton.svelte.d.ts +19 -7
  60. package/package/components/RunChart.svelte +4 -8
  61. package/package/components/RunChart.svelte.d.ts +2 -2
  62. package/package/components/RunFormAdvancedPopup.svelte +1 -1
  63. package/package/components/RunsPage.svelte +539 -170
  64. package/package/components/RunsPage.svelte.d.ts +5 -5
  65. package/package/components/S3FilePicker.svelte +11 -7
  66. package/package/components/S3FilePickerInner.svelte +3 -2
  67. package/package/components/S3FilePickerInner.svelte.d.ts +2 -2
  68. package/package/components/SavedInputs.svelte +416 -0
  69. package/package/components/{tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte.d.ts → SavedInputs.svelte.d.ts} +11 -8
  70. package/package/components/SchemaForm.svelte +19 -26
  71. package/package/components/SchemaFormWithArgPicker.svelte +3 -4
  72. package/package/components/ScriptBuilder.svelte +1 -1
  73. package/package/components/ScriptEditor.svelte +101 -575
  74. package/package/components/Section.svelte +1 -3
  75. package/package/components/ServiceLogsInner.svelte +4 -4
  76. package/package/components/SimpleEditor.svelte +2 -46
  77. package/package/components/SuperadminSettingsInner.svelte +1 -1
  78. package/package/components/TemplateEditor.svelte +29 -54
  79. package/package/components/TemplateEditor.svelte.d.ts +102 -13
  80. package/package/components/UserSettings.svelte +1 -1
  81. package/package/components/WorkerTagPicker.svelte +1 -1
  82. package/package/components/WorkerTagSelect.svelte +2 -5
  83. package/package/components/WorkspaceTutorials.svelte +0 -5
  84. package/package/components/apps/components/buttons/AppButton.svelte +6 -21
  85. package/package/components/apps/components/buttons/AppForm.svelte +1 -2
  86. package/package/components/apps/components/buttons/AppFormButton.svelte +1 -2
  87. package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +4 -0
  88. package/package/components/apps/components/display/dbtable/metadata.js +30 -69
  89. package/package/components/apps/components/display/dbtable/queries/createTable.d.ts +24 -2
  90. package/package/components/apps/components/display/dbtable/queries/createTable.js +25 -11
  91. package/package/components/apps/components/display/dbtable/queries/select.d.ts +0 -2
  92. package/package/components/apps/components/display/dbtable/queries/select.js +6 -37
  93. package/package/components/apps/components/display/dbtable/utils.d.ts +1 -10
  94. package/package/components/apps/components/display/dbtable/utils.js +20 -52
  95. package/package/components/apps/components/helpers/HiddenComponent.svelte +1 -1
  96. package/package/components/apps/components/helpers/InputValue.svelte +1 -1
  97. package/package/components/apps/components/helpers/ResolveConfig.svelte +1 -1
  98. package/package/components/apps/components/helpers/RunnableComponent.svelte +2 -3
  99. package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +1 -1
  100. package/package/components/apps/components/helpers/RunnableWrapper.svelte +2 -2
  101. package/package/components/apps/editor/AppEditorHeader.svelte +1 -8
  102. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +29 -32
  103. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte.d.ts +2 -2
  104. package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte +4 -4
  105. package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte.d.ts +3 -3
  106. package/package/components/apps/editor/PublicApp.svelte +30 -49
  107. package/package/components/apps/editor/PublicApp.svelte.d.ts +0 -1
  108. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +7 -77
  109. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +2 -2
  110. package/package/components/apps/editor/inlineScriptsPanel/utils.d.ts +2 -2
  111. package/package/components/apps/editor/inlineScriptsPanel/utils.js +1 -10
  112. package/package/components/apps/inputType.d.ts +1 -6
  113. package/package/components/auditLogs/AuditLogsFilters.svelte +17 -9
  114. package/package/components/auditLogs/AuditLogsFilters.svelte.d.ts +1 -1
  115. package/package/components/common/button/model.js +1 -1
  116. package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +1 -1
  117. package/package/components/common/languageIcons/TypeScript.svelte +3 -5
  118. package/package/components/common/languageIcons/TypeScript.svelte.d.ts +0 -1
  119. package/package/components/common/modal/Modal.svelte +3 -3
  120. package/package/components/copilot/autocomplete/Autocompletor.js +2 -3
  121. package/package/components/copilot/chat/AIButtonStyle.d.ts +1 -1
  122. package/package/components/copilot/chat/AIButtonStyle.js +1 -2
  123. package/package/components/copilot/chat/AIChat.svelte +1 -3
  124. package/package/components/copilot/chat/AIChatDisplay.svelte +4 -89
  125. package/package/components/copilot/chat/AIChatInput.svelte +0 -275
  126. package/package/components/copilot/chat/AIChatManager.svelte.js +1 -107
  127. package/package/components/copilot/chat/AiChatLayout.svelte +30 -15
  128. package/package/components/copilot/chat/ContextElementBadge.svelte +0 -44
  129. package/package/components/copilot/chat/DatatableCreationPolicy.svelte +33 -32
  130. package/package/components/copilot/chat/ProviderModelSelector.svelte +1 -1
  131. package/package/components/copilot/chat/__tests__/app/appEvalHelpers.js +0 -3
  132. package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.js +0 -4
  133. package/package/components/copilot/chat/app/core.d.ts +15 -56
  134. package/package/components/copilot/chat/app/core.js +22 -141
  135. package/package/components/copilot/chat/context.d.ts +2 -59
  136. package/package/components/copilot/chat/context.js +2 -6
  137. package/package/components/copilot/chat/flow/FlowAIChat.svelte +0 -22
  138. package/package/components/copilot/chat/flow/core.d.ts +1 -3
  139. package/package/components/copilot/chat/flow/core.js +2 -29
  140. package/package/components/copilot/chat/flow/openFlow.json +1 -1
  141. package/package/components/copilot/chat/flow/openFlowZod.d.ts +0 -1
  142. package/package/components/copilot/chat/flow/openFlowZod.js +2 -14
  143. package/package/components/copilot/chat/script/core.d.ts +1 -4
  144. package/package/components/copilot/chat/script/core.js +2 -38
  145. package/package/components/copilot/chat/shared.d.ts +0 -10
  146. package/package/components/copilot/chat/shared.js +0 -24
  147. package/package/components/copilot/lib.d.ts +1 -1
  148. package/package/components/custom_ui.d.ts +0 -2
  149. package/package/components/dbOps.d.ts +4 -18
  150. package/package/components/dbOps.js +3 -25
  151. package/package/components/flows/CreateActionsApp.svelte +4 -6
  152. package/package/components/flows/DebounceLimit.svelte.d.ts +1 -1
  153. package/package/components/flows/FlowHistoryInner.svelte +4 -15
  154. package/package/components/flows/content/AgentToolWrapper.svelte +1 -1
  155. package/package/components/flows/content/FlowInput.svelte +37 -211
  156. package/package/components/flows/content/FlowModuleComponent.svelte +67 -553
  157. package/package/components/flows/content/FlowModuleEarlyStop.svelte +10 -8
  158. package/package/components/flows/content/FlowModuleHeader.svelte +4 -7
  159. package/package/components/flows/content/FlowModuleWorkerTagSelect.svelte +1 -1
  160. package/package/components/flows/content/McpToolEditor.svelte +37 -50
  161. package/package/components/flows/content/McpToolEditor.svelte.d.ts +1 -0
  162. package/package/components/flows/conversations/FlowChat.svelte +2 -16
  163. package/package/components/flows/conversations/FlowChat.svelte.d.ts +1 -2
  164. package/package/components/flows/conversations/FlowChatInterface.svelte +6 -103
  165. package/package/components/flows/conversations/FlowChatInterface.svelte.d.ts +0 -2
  166. package/package/components/flows/conversations/FlowChatManager.svelte.js +21 -53
  167. package/package/components/flows/header/FlowImportExportMenu.svelte +1 -1
  168. package/package/components/flows/propPicker/PropPickerWrapper.svelte +1 -3
  169. package/package/components/flows/types.d.ts +0 -2
  170. package/package/components/git_sync/GitSyncRepositoryCard.svelte +8 -16
  171. package/package/components/home/ItemsList.svelte +5 -5
  172. package/package/components/home/TutorialBanner.svelte +18 -34
  173. package/package/components/icons/CssIcon.svelte +0 -20
  174. package/package/components/icons/CssIcon.svelte.d.ts +25 -7
  175. package/package/components/icons/JavaScriptIcon.svelte +2 -10
  176. package/package/components/icons/JavaScriptIcon.svelte.d.ts +0 -1
  177. package/package/components/icons/JsonIcon.svelte +2 -8
  178. package/package/components/icons/JsonIcon.svelte.d.ts +0 -1
  179. package/package/components/icons/ReactIcon.svelte +2 -10
  180. package/package/components/icons/ReactIcon.svelte.d.ts +0 -1
  181. package/package/components/icons/SvelteIcon.svelte +2 -10
  182. package/package/components/icons/SvelteIcon.svelte.d.ts +0 -1
  183. package/package/components/icons/VueIcon.svelte +2 -10
  184. package/package/components/icons/VueIcon.svelte.d.ts +0 -1
  185. package/package/components/instanceSettings.d.ts +1 -2
  186. package/package/components/instanceSettings.js +1 -32
  187. package/package/components/jobs/JobPreview.svelte +39 -46
  188. package/package/components/jobs/JobPreview.svelte.d.ts +0 -1
  189. package/package/components/monacoLanguagesOptions.js +15 -16
  190. package/package/components/propertyPicker/PropPicker.svelte +2 -16
  191. package/package/components/propertyPicker/PropPicker.svelte.d.ts +0 -2
  192. package/package/components/raw_apps/DefaultDatabaseSelector.svelte +5 -9
  193. package/package/components/raw_apps/FileEditorIcon.svelte +7 -12
  194. package/package/components/raw_apps/FileEditorIcon.svelte.d.ts +0 -2
  195. package/package/components/raw_apps/FileTreeNode.svelte +83 -119
  196. package/package/components/raw_apps/RawAppBackgroundRunner.svelte +8 -88
  197. package/package/components/raw_apps/RawAppDataTableList.svelte +9 -12
  198. package/package/components/raw_apps/RawAppEditor.svelte +68 -218
  199. package/package/components/raw_apps/RawAppEditorHeader.svelte +16 -33
  200. package/package/components/raw_apps/RawAppHistoryList.svelte +80 -264
  201. package/package/components/raw_apps/RawAppHistoryList.svelte.d.ts +0 -1
  202. package/package/components/raw_apps/RawAppHistoryManager.svelte.d.ts +1 -15
  203. package/package/components/raw_apps/RawAppHistoryManager.svelte.js +12 -46
  204. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +47 -549
  205. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +5 -31
  206. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte +18 -25
  207. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte.d.ts +0 -1
  208. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +10 -141
  209. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte.d.ts +0 -8
  210. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte +1 -2
  211. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte.d.ts +1 -9
  212. package/package/components/raw_apps/RawAppInputsSpecEditor.svelte +3 -47
  213. package/package/components/raw_apps/RawAppInputsSpecEditor.svelte.d.ts +2 -2
  214. package/package/components/raw_apps/RawAppModules.svelte +7 -13
  215. package/package/components/raw_apps/RawAppPreview.svelte +6 -48
  216. package/package/components/raw_apps/RawAppSidebar.svelte +125 -194
  217. package/package/components/raw_apps/RawAppSidebar.svelte.d.ts +0 -1
  218. package/package/components/raw_apps/utils.d.ts +1 -1
  219. package/package/components/raw_apps/utils.js +18 -76
  220. package/package/components/runs/JobsLoader.svelte +468 -0
  221. package/package/components/runs/JobsLoader.svelte.d.ts +49 -0
  222. package/package/components/runs/ManuelDatePicker.svelte +3 -3
  223. package/package/components/runs/ManuelDatePicker.svelte.d.ts +3 -3
  224. package/package/components/runs/NoWorkerWithTagWarning.svelte +1 -5
  225. package/package/components/runs/RunsFilter.svelte +63 -75
  226. package/package/components/runs/RunsFilter.svelte.d.ts +4 -35
  227. package/package/components/runs/RunsQueue.svelte.d.ts +1 -1
  228. package/package/components/runs/RunsTable.svelte +1 -1
  229. package/package/components/runs/RunsTable.svelte.d.ts +1 -1
  230. package/package/components/schema/SchemaPicker.svelte +92 -0
  231. package/package/components/{tutorials/RunsTutorial.svelte.d.ts → schema/SchemaPicker.svelte.d.ts} +12 -11
  232. package/package/components/scriptEditor/LogPanel.svelte +2 -17
  233. package/package/components/scriptEditor/LogPanel.svelte.d.ts +0 -2
  234. package/package/components/select/SelectDropdown.svelte +2 -2
  235. package/package/components/settings/ChangeWorkspaceColor.svelte +3 -4
  236. package/package/components/settings/ChangeWorkspaceId.svelte +10 -14
  237. package/package/components/settings/ChangeWorkspaceName.svelte +6 -7
  238. package/package/components/settings/CreateToken.svelte +1 -1
  239. package/package/components/settings/UserAIPromptsSettings.svelte +15 -56
  240. package/package/components/settings/WorkspaceOperatorSettings.svelte +85 -68
  241. package/package/components/settings/WorkspaceUserSettings.svelte +406 -531
  242. package/package/components/sidebar/MenuButton.svelte +24 -46
  243. package/package/components/sidebar/MenuButton.svelte.d.ts +0 -2
  244. package/package/components/sidebar/MultiplayerMenu.svelte +3 -3
  245. package/package/components/sidebar/OperatorMenu.svelte +88 -63
  246. package/package/components/sidebar/SidebarContent.svelte +2 -7
  247. package/package/components/sidebar/UserMenu.svelte +1 -1
  248. package/package/components/sidebar/WorkspaceMenu.svelte +85 -35
  249. package/package/components/sqlTypeService.js +3 -4
  250. package/package/components/table/DataTable.svelte +2 -3
  251. package/package/components/table/DataTable.svelte.d.ts +0 -1
  252. package/package/components/text_input/TextInput.svelte +0 -3
  253. package/package/components/text_input/TextInput.svelte.d.ts +0 -2
  254. package/package/components/triggers/utils.js +1 -0
  255. package/package/components/tutorials/FlowBuilderLiveTutorial.svelte +35 -6
  256. package/package/components/tutorials/TroubleshootFlowTutorial.svelte +20 -5
  257. package/package/components/tutorials/utils.d.ts +0 -16
  258. package/package/components/tutorials/utils.js +0 -96
  259. package/package/components/vscode.js +6 -6
  260. package/package/components/workspaceSettings/AISettings.svelte +108 -146
  261. package/package/components/workspaceSettings/CreateWorkspace.svelte +12 -26
  262. package/package/components/workspaceSettings/DucklakeSettings.svelte +23 -46
  263. package/package/components/workspaceSettings/DucklakeSettings.svelte.d.ts +1 -2
  264. package/package/components/workspaceSettings/ModelTokenLimits.svelte +18 -14
  265. package/package/components/workspaceSettings/StorageSettings.svelte +241 -280
  266. package/package/components/workspaceSettings/StorageSettings.svelte.d.ts +0 -1
  267. package/package/consts.js +1 -4
  268. package/package/gen/core/OpenAPI.js +1 -1
  269. package/package/gen/schemas.gen.d.ts +0 -126
  270. package/package/gen/schemas.gen.js +0 -126
  271. package/package/gen/services.gen.d.ts +2 -151
  272. package/package/gen/services.gen.js +4 -301
  273. package/package/gen/types.gen.d.ts +2 -584
  274. package/package/hubPaths.json +2 -3
  275. package/package/infer.js +0 -2
  276. package/package/logout.d.ts +2 -0
  277. package/package/logout.js +23 -2
  278. package/package/monaco_workers/graphql.worker.bundle.js +121 -121
  279. package/package/navigation.d.ts +1 -1
  280. package/package/rawAppWmillTs.d.ts +0 -11
  281. package/package/rawAppWmillTs.js +1 -38
  282. package/package/svelte5Utils.svelte.d.ts +1 -7
  283. package/package/svelte5Utils.svelte.js +2 -23
  284. package/package/tutorialUtils.js +4 -0
  285. package/package/tutorials/config.js +3 -31
  286. package/package/tutorials/roleUtils.d.ts +1 -1
  287. package/package/tutorials/roleUtils.js +2 -6
  288. package/package/utils.js +1 -159
  289. package/package.json +14 -16
  290. package/dist/sharedUtils/assets/tokens/colorTokensConfig.d.ts +0 -2
  291. package/dist/sharedUtils/base.d.ts +0 -1
  292. package/dist/sharedUtils/cloud.d.ts +0 -1
  293. package/dist/sharedUtils/common.d.ts +0 -111
  294. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/count.d.ts +0 -5
  295. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/delete.d.ts +0 -5
  296. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/insert.d.ts +0 -5
  297. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/select.d.ts +0 -13
  298. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/update.d.ts +0 -11
  299. package/dist/sharedUtils/components/apps/components/display/dbtable/utils.d.ts +0 -95
  300. package/dist/sharedUtils/components/apps/editor/appPolicy.d.ts +0 -6
  301. package/dist/sharedUtils/components/apps/editor/appUtilsCore.d.ts +0 -7
  302. package/dist/sharedUtils/components/apps/editor/appUtilsS3.d.ts +0 -33
  303. package/dist/sharedUtils/components/apps/editor/commonAppUtils.d.ts +0 -10
  304. package/dist/sharedUtils/components/apps/editor/component/components.d.ts +0 -5371
  305. package/dist/sharedUtils/components/apps/editor/component/default-codes.d.ts +0 -3
  306. package/dist/sharedUtils/components/apps/editor/component/index.d.ts +0 -3
  307. package/dist/sharedUtils/components/apps/editor/component/sets.d.ts +0 -7
  308. package/dist/sharedUtils/components/apps/editor/componentsPanel/componentDefaultProps.d.ts +0 -3
  309. package/dist/sharedUtils/components/apps/gridUtils.d.ts +0 -14
  310. package/dist/sharedUtils/components/apps/inputType.d.ts +0 -178
  311. package/dist/sharedUtils/components/apps/rx.d.ts +0 -29
  312. package/dist/sharedUtils/components/apps/sharedTypes.d.ts +0 -21
  313. package/dist/sharedUtils/components/apps/types.d.ts +0 -274
  314. package/dist/sharedUtils/components/assets/lib.d.ts +0 -25
  315. package/dist/sharedUtils/components/common/alert/model.d.ts +0 -2
  316. package/dist/sharedUtils/components/common/badge/model.d.ts +0 -8
  317. package/dist/sharedUtils/components/common/button/model.d.ts +0 -45
  318. package/dist/sharedUtils/components/common/fileInput/model.d.ts +0 -1
  319. package/dist/sharedUtils/components/common/index.d.ts +0 -24
  320. package/dist/sharedUtils/components/common/skeleton/model.d.ts +0 -21
  321. package/dist/sharedUtils/components/dbTypes.d.ts +0 -14
  322. package/dist/sharedUtils/components/diff_drawer.d.ts +0 -26
  323. package/dist/sharedUtils/components/ducklake.d.ts +0 -1
  324. package/dist/sharedUtils/components/flows/scheduleUtils.d.ts +0 -7
  325. package/dist/sharedUtils/components/icons/index.d.ts +0 -101
  326. package/dist/sharedUtils/components/random_positive_adjetive.d.ts +0 -1
  327. package/dist/sharedUtils/components/raw_apps/rawAppPolicy.d.ts +0 -10
  328. package/dist/sharedUtils/components/raw_apps/utils.d.ts +0 -15
  329. package/dist/sharedUtils/components/triggers/email/utils.d.ts +0 -4
  330. package/dist/sharedUtils/components/triggers/gcp/utils.d.ts +0 -2
  331. package/dist/sharedUtils/components/triggers/http/utils.d.ts +0 -11
  332. package/dist/sharedUtils/components/triggers/kafka/utils.d.ts +0 -2
  333. package/dist/sharedUtils/components/triggers/mqtt/utils.d.ts +0 -2
  334. package/dist/sharedUtils/components/triggers/nats/utils.d.ts +0 -2
  335. package/dist/sharedUtils/components/triggers/postgres/utils.d.ts +0 -8
  336. package/dist/sharedUtils/components/triggers/sqs/utils.d.ts +0 -2
  337. package/dist/sharedUtils/components/triggers/triggers.svelte.d.ts +0 -32
  338. package/dist/sharedUtils/components/triggers/utils.d.ts +0 -80
  339. package/dist/sharedUtils/components/triggers/websocket/utils.d.ts +0 -2
  340. package/dist/sharedUtils/components/triggers.d.ts +0 -20
  341. package/dist/sharedUtils/gen/core/ApiError.d.ts +0 -10
  342. package/dist/sharedUtils/gen/core/ApiRequestOptions.d.ts +0 -13
  343. package/dist/sharedUtils/gen/core/ApiResult.d.ts +0 -7
  344. package/dist/sharedUtils/gen/core/CancelablePromise.d.ts +0 -26
  345. package/dist/sharedUtils/gen/core/OpenAPI.d.ts +0 -27
  346. package/dist/sharedUtils/gen/core/request.d.ts +0 -29
  347. package/dist/sharedUtils/gen/index.d.ts +0 -6
  348. package/dist/sharedUtils/gen/schemas.gen.d.ts +0 -7036
  349. package/dist/sharedUtils/gen/services.gen.d.ts +0 -6047
  350. package/dist/sharedUtils/gen/types.gen.d.ts +0 -21881
  351. package/dist/sharedUtils/history.svelte.d.ts +0 -9
  352. package/dist/sharedUtils/hub.d.ts +0 -49
  353. package/dist/sharedUtils/jsr.json +0 -6
  354. package/dist/sharedUtils/lib.d.ts +0 -5
  355. package/dist/sharedUtils/lib.es.js +0 -1588
  356. package/dist/sharedUtils/package.json +0 -12
  357. package/dist/sharedUtils/schema.d.ts +0 -3
  358. package/dist/sharedUtils/stores.d.ts +0 -97
  359. package/dist/sharedUtils/svelte5Utils.svelte.d.ts +0 -80
  360. package/dist/sharedUtils/toast.d.ts +0 -8
  361. package/dist/sharedUtils/utils.d.ts +0 -265
  362. package/package/components/FlowDiffViewer.svelte +0 -37
  363. package/package/components/FlowDiffViewer.svelte.d.ts +0 -7
  364. package/package/components/JobOtelTraces.svelte +0 -287
  365. package/package/components/JobOtelTraces.svelte.d.ts +0 -6
  366. package/package/components/apps/components/display/dbtable/queries/alterTable.d.ts +0 -46
  367. package/package/components/apps/components/display/dbtable/queries/alterTable.js +0 -314
  368. package/package/components/apps/components/display/dbtable/queries/alterTable.test.d.ts +0 -1
  369. package/package/components/apps/components/display/dbtable/queries/alterTable.test.js +0 -867
  370. package/package/components/apps/components/display/dbtable/queries/dbQueriesUtils.d.ts +0 -9
  371. package/package/components/apps/components/display/dbtable/queries/dbQueriesUtils.js +0 -45
  372. package/package/components/apps/components/display/dbtable/queries/relationalKeys.d.ts +0 -47
  373. package/package/components/apps/components/display/dbtable/queries/relationalKeys.js +0 -402
  374. package/package/components/apps/components/display/dbtable/tableEditor.d.ts +0 -35
  375. package/package/components/apps/components/display/dbtable/tableEditor.js +0 -49
  376. package/package/components/copilot/chat/AppAvailableContextList.svelte +0 -263
  377. package/package/components/copilot/chat/AppAvailableContextList.svelte.d.ts +0 -13
  378. package/package/components/debug/DebugConsole.svelte +0 -277
  379. package/package/components/debug/DebugConsole.svelte.d.ts +0 -13
  380. package/package/components/debug/DebugPanel.svelte +0 -97
  381. package/package/components/debug/DebugPanel.svelte.d.ts +0 -11
  382. package/package/components/debug/DebugToolbar.svelte +0 -148
  383. package/package/components/debug/DebugToolbar.svelte.d.ts +0 -17
  384. package/package/components/debug/DebugVariableViewer.svelte +0 -115
  385. package/package/components/debug/DebugVariableViewer.svelte.d.ts +0 -11
  386. package/package/components/debug/MonacoDebugger.svelte +0 -384
  387. package/package/components/debug/MonacoDebugger.svelte.d.ts +0 -15
  388. package/package/components/debug/dapClient.d.ts +0 -192
  389. package/package/components/debug/dapClient.js +0 -426
  390. package/package/components/debug/debugUtils.d.ts +0 -30
  391. package/package/components/debug/debugUtils.js +0 -131
  392. package/package/components/debug/index.d.ts +0 -75
  393. package/package/components/debug/index.js +0 -82
  394. package/package/components/flows/content/FlowEditorDrawer.svelte +0 -124
  395. package/package/components/flows/content/FlowEditorDrawer.svelte.d.ts +0 -22
  396. package/package/components/flows/content/McpOAuthConnect.svelte +0 -217
  397. package/package/components/flows/content/McpOAuthConnect.svelte.d.ts +0 -7
  398. package/package/components/icons/HtmlIcon.svelte +0 -20
  399. package/package/components/icons/HtmlIcon.svelte.d.ts +0 -8
  400. package/package/components/icons/LessIcon.svelte +0 -16
  401. package/package/components/icons/LessIcon.svelte.d.ts +0 -8
  402. package/package/components/icons/MarkdownIcon.svelte +0 -20
  403. package/package/components/icons/MarkdownIcon.svelte.d.ts +0 -8
  404. package/package/components/icons/SassIcon.svelte +0 -28
  405. package/package/components/icons/SassIcon.svelte.d.ts +0 -8
  406. package/package/components/icons/YamlIcon.svelte +0 -20
  407. package/package/components/icons/YamlIcon.svelte.d.ts +0 -8
  408. package/package/components/instanceSettings/SecretBackendConfig.svelte +0 -514
  409. package/package/components/instanceSettings/SecretBackendConfig.svelte.d.ts +0 -8
  410. package/package/components/raw_apps/RunnableRow.svelte +0 -41
  411. package/package/components/raw_apps/RunnableRow.svelte.d.ts +0 -11
  412. package/package/components/runs/useJobsLoader.svelte.d.ts +0 -34
  413. package/package/components/runs/useJobsLoader.svelte.js +0 -507
  414. package/package/components/settings/AIPromptsModal.svelte +0 -88
  415. package/package/components/settings/AIPromptsModal.svelte.d.ts +0 -11
  416. package/package/components/tutorials/RunsTutorial.svelte +0 -399
  417. package/package/components/tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte +0 -133
  418. package/package/components/workspace/WorkspaceCard.svelte +0 -184
  419. package/package/components/workspace/WorkspaceCard.svelte.d.ts +0 -24
  420. package/package/components/workspace/WorkspaceIcon.svelte +0 -21
  421. package/package/components/workspace/WorkspaceIcon.svelte.d.ts +0 -9
  422. package/package/components/workspace/WorkspaceTreeView.svelte +0 -331
  423. package/package/components/workspace/WorkspaceTreeView.svelte.d.ts +0 -15
  424. package/package/logoutKit.d.ts +0 -2
  425. package/package/logoutKit.js +0 -26
  426. package/package/svelte5UtilsKit.svelte.d.ts +0 -3
  427. package/package/svelte5UtilsKit.svelte.js +0 -30
@@ -24,7 +24,6 @@ declare function $$render<UnderlyingInputElT extends 'input' | 'textarea' = 'inp
24
24
  props: Props<UnderlyingInputElT>;
25
25
  exports: {
26
26
  focus: () => void;
27
- select: () => void;
28
27
  };
29
28
  bindings: "value";
30
29
  slots: {};
@@ -37,7 +36,6 @@ declare class __sveltets_Render<UnderlyingInputElT extends 'input' | 'textarea'
37
36
  bindings(): "value";
38
37
  exports(): {
39
38
  focus: () => void;
40
- select: () => void;
41
39
  };
42
40
  }
43
41
  interface $$IsomorphicComponent {
@@ -5,6 +5,7 @@ import MqttIcon from '../icons/MqttIcon.svelte';
5
5
  import AwsIcon from '../icons/AwsIcon.svelte';
6
6
  import GoogleCloudIcon from '../icons/GoogleCloudIcon.svelte';
7
7
  import SchedulePollIcon from '../icons/SchedulePollIcon.svelte';
8
+ import {} from './';
8
9
  import { saveScheduleFromCfg } from '../flows/scheduleUtils';
9
10
  import { saveHttpRouteFromCfg } from './http/utils';
10
11
  import { saveWebsocketTriggerFromCfg } from './websocket/utils';
@@ -1,5 +1,5 @@
1
1
  <script lang="ts">import { getContext } from 'svelte';
2
- import { isFlowTainted, triggerPointerDown, clickButtonBySelector, DELAY_SHORT, DELAY_MEDIUM, DELAY_LONG, DELAY_ANIMATION, DELAY_ANIMATION_LONG, DELAY_TYPING, DELAY_CODE_CHAR, DELAY_CODE_NEWLINE, moveCursorToElement, createFakeCursor } from './utils';
2
+ import { isFlowTainted, triggerPointerDown, clickButtonBySelector } from './utils';
3
3
  import Tutorial from './Tutorial.svelte';
4
4
  import { initFlow } from '../flows/flowStore.svelte';
5
5
  import { loadFlowModuleState } from '../flows/flowStateUtils.svelte';
@@ -16,6 +16,15 @@ let step3Complete = $state(false);
16
16
  let step4Complete = $state(false);
17
17
  let step5Complete = $state(false);
18
18
  let step6Complete = $state(false);
19
+ // Constants for delays
20
+ const DELAY_SHORT = 100;
21
+ const DELAY_MEDIUM = 300;
22
+ const DELAY_LONG = 500;
23
+ const DELAY_ANIMATION = 1500;
24
+ const DELAY_ANIMATION_LONG = 2500;
25
+ const DELAY_TYPING = 50;
26
+ const DELAY_CODE_CHAR = 2;
27
+ const DELAY_CODE_NEWLINE = 5;
19
28
  // Helper function to get driver overlay
20
29
  function getDriverOverlay() {
21
30
  return document.querySelector('.driver-overlay');
@@ -61,9 +70,29 @@ function cleanupCustomOverlay() {
61
70
  customOverlay.remove();
62
71
  }
63
72
  }
64
- // Helper function to create and animate a fake cursor (extended version with start element support)
65
- async function createFakeCursorWithStart(startElement, endElement, transitionDuration = 1.5) {
66
- const fakeCursor = createFakeCursor();
73
+ // Helper function to move cursor to element (for continuous cursor movement)
74
+ async function moveCursorToElement(cursor, element, duration = DELAY_ANIMATION) {
75
+ const rect = element.getBoundingClientRect();
76
+ cursor.style.transition = `all ${duration / 1000}s ease-in-out`;
77
+ cursor.style.left = `${rect.left + rect.width / 2}px`;
78
+ cursor.style.top = `${rect.top + rect.height / 2}px`;
79
+ await wait(duration);
80
+ }
81
+ // Helper function to create and animate a fake cursor
82
+ async function createFakeCursor(startElement, endElement, transitionDuration = 1.5) {
83
+ const fakeCursor = document.createElement('div');
84
+ fakeCursor.style.cssText = `
85
+ position: fixed;
86
+ width: 20px;
87
+ height: 20px;
88
+ border-radius: 50%;
89
+ background-color: rgba(59, 130, 246, 0.8);
90
+ border: 2px solid white;
91
+ pointer-events: none;
92
+ z-index: 10000;
93
+ transition: all ${transitionDuration}s ease-in-out;
94
+ `;
95
+ document.body.appendChild(fakeCursor);
67
96
  const endRect = endElement.getBoundingClientRect();
68
97
  let startX, startY;
69
98
  if (startElement) {
@@ -252,7 +281,7 @@ const flowJson = {
252
281
  // Animate cursor to the add step button
253
282
  const button = document.querySelector('#flow-editor-add-step-0') as HTMLElement
254
283
  if (button) {
255
- const fakeCursor1 = await createFakeCursorWithStart(null, button, 1.5)
284
+ const fakeCursor1 = await createFakeCursor(null, button, 1.5)
256
285
  await wait(DELAY_SHORT)
257
286
  button.click()
258
287
  fakeCursor1.remove()
@@ -270,7 +299,7 @@ const flowJson = {
270
299
 
271
300
  if (bunSpan) {
272
301
  // Animate cursor from add step button to TypeScript (Bun) span
273
- const fakeCursor2 = await createFakeCursorWithStart(button, bunSpan, 1.5)
302
+ const fakeCursor2 = await createFakeCursor(button, bunSpan, 1.5)
274
303
  await wait(DELAY_MEDIUM)
275
304
  fakeCursor2.remove()
276
305
 
@@ -4,7 +4,6 @@ import { initFlow } from '../flows/flowStore.svelte';
4
4
  import { wait } from '../../utils';
5
5
  import { sendUserToast } from '../../toast';
6
6
  import { updateProgress } from '../../tutorialUtils';
7
- import { DELAY_SHORT, DELAY_MEDIUM, DELAY_LONG, createFakeCursor } from './utils';
8
7
  let { index } = $props();
9
8
  const { flowStore, flowStateStore } = getContext('FlowEditorContext');
10
9
  let tutorial = undefined;
@@ -18,6 +17,10 @@ let stepComplete = $state({
18
17
  6: false,
19
18
  7: false
20
19
  });
20
+ // Constants for delays
21
+ const DELAY_SHORT = 100;
22
+ const DELAY_MEDIUM = 300;
23
+ const DELAY_LONG = 500;
21
24
  // Constants for cursor animation
22
25
  const CURSOR_START_OFFSET = -100;
23
26
  const CURSOR_CLICK_SCALE = 0.8;
@@ -40,9 +43,21 @@ function checkStepComplete(step) {
40
43
  }
41
44
  return true;
42
45
  }
43
- // Helper function to create and animate a fake cursor with start position
44
- async function createFakeCursorWithStart(startElement, endElement, transitionDuration = 1.5) {
45
- const fakeCursor = createFakeCursor();
46
+ // Helper function to create and animate a fake cursor
47
+ async function createFakeCursor(startElement, endElement, transitionDuration = 1.5) {
48
+ const fakeCursor = document.createElement('div');
49
+ fakeCursor.style.cssText = `
50
+ position: fixed;
51
+ width: 20px;
52
+ height: 20px;
53
+ border-radius: 50%;
54
+ background-color: rgba(59, 130, 246, 0.8);
55
+ border: 2px solid white;
56
+ pointer-events: none;
57
+ z-index: 10000;
58
+ transition: all ${transitionDuration}s ease-in-out;
59
+ `;
60
+ document.body.appendChild(fakeCursor);
46
61
  const endRect = endElement.getBoundingClientRect();
47
62
  let startX, startY;
48
63
  if (startElement) {
@@ -73,7 +88,7 @@ function getElementBySelector(selector) {
73
88
  }
74
89
  // Helper function to animate a fake cursor click
75
90
  async function animateFakeCursorClick(element, transitionDuration = 1.5, options) {
76
- const fakeCursor = await createFakeCursorWithStart(null, element, transitionDuration);
91
+ const fakeCursor = await createFakeCursor(null, element, transitionDuration);
77
92
  await wait(DELAY_MEDIUM);
78
93
  // Animate click (shrink cursor briefly)
79
94
  fakeCursor.style.transform = `scale(${CURSOR_CLICK_SCALE})`;
@@ -1,13 +1,5 @@
1
1
  import type { FlowModule, OpenFlow } from '../../gen';
2
2
  import type { App } from '../apps/types';
3
- export declare const DELAY_SHORT = 100;
4
- export declare const DELAY_MEDIUM = 300;
5
- export declare const DELAY_LONG = 500;
6
- export declare const DELAY_ANIMATION = 1500;
7
- export declare const DELAY_ANIMATION_LONG = 2500;
8
- export declare const DELAY_TYPING = 50;
9
- export declare const DELAY_CODE_CHAR = 2;
10
- export declare const DELAY_CODE_NEWLINE = 5;
11
3
  export declare function setInputBySelector(selector: string, value: string): void;
12
4
  export declare function clickButtonBySelector(selector: string): void;
13
5
  export declare function clickFirstButtonBySelector(selector: string): void;
@@ -21,11 +13,3 @@ export declare function updateInlineRunnableCode(app: App, componentId: string,
21
13
  export declare function connectComponentSourceToOutput(app: App, componentId: string, targetId: string): void;
22
14
  export declare function connectInlineRunnableInputToComponentOutput(app: App, sourceComponentId: string, sourceField: string, targetComponentId: string, targetField: string, fieldType?: string): void;
23
15
  export declare function waitForElementLoading(selector: string, callback: () => void, interval?: number, maxAttempts?: number): void;
24
- export declare function moveCursorToElement(cursor: HTMLElement, element: HTMLElement, duration?: number): Promise<void>;
25
- export declare function createFakeCursor(): HTMLElement;
26
- export declare function createFakeCursorWithStart(startElement: HTMLElement | null, endElement: HTMLElement, transitionDuration?: number): Promise<HTMLElement>;
27
- export declare function animateFakeCursorClick(element: HTMLElement, transitionDuration?: number, options?: {
28
- usePointerEvents?: boolean;
29
- startElement?: HTMLElement | null;
30
- }): Promise<void>;
31
- export declare function animateCursorToElementAndClick(cursor: HTMLElement, element: HTMLElement, startOffset?: number): Promise<void>;
@@ -2,16 +2,6 @@ import { deepEqual } from 'fast-equals';
2
2
  import { emptyApp } from '../apps/editor/appUtils';
3
3
  import { findGridItem } from '../apps/editor/appUtilsCore';
4
4
  import { isRunnableByName } from '../apps/inputType';
5
- import { wait } from '../../utils';
6
- // Tutorial animation delay constants
7
- export const DELAY_SHORT = 100;
8
- export const DELAY_MEDIUM = 300;
9
- export const DELAY_LONG = 500;
10
- export const DELAY_ANIMATION = 1500;
11
- export const DELAY_ANIMATION_LONG = 2500;
12
- export const DELAY_TYPING = 50;
13
- export const DELAY_CODE_CHAR = 2;
14
- export const DELAY_CODE_NEWLINE = 5;
15
5
  export function setInputBySelector(selector, value) {
16
6
  const input = document.querySelector(selector);
17
7
  if (input) {
@@ -154,89 +144,3 @@ export function waitForElementLoading(selector, callback, interval = 50, maxAtte
154
144
  attempts++;
155
145
  }, interval);
156
146
  }
157
- // Helper function to move cursor to element (for continuous cursor movement in tutorials)
158
- export async function moveCursorToElement(cursor, element, duration = DELAY_ANIMATION) {
159
- const rect = element.getBoundingClientRect();
160
- cursor.style.transition = `all ${duration / 1000}s ease-in-out`;
161
- cursor.style.left = `${rect.left + rect.width / 2}px`;
162
- cursor.style.top = `${rect.top + rect.height / 2}px`;
163
- await wait(duration);
164
- }
165
- // Helper function to create a fake cursor element for tutorial animations
166
- export function createFakeCursor() {
167
- const fakeCursor = document.createElement('div');
168
- fakeCursor.style.cssText = `
169
- position: fixed;
170
- width: 20px;
171
- height: 20px;
172
- border-radius: 50%;
173
- background-color: rgba(59, 130, 246, 0.8);
174
- border: 2px solid white;
175
- pointer-events: none;
176
- z-index: 10000;
177
- transition: all 1.5s ease-in-out;
178
- `;
179
- document.body.appendChild(fakeCursor);
180
- return fakeCursor;
181
- }
182
- // Constants for cursor animation
183
- const CURSOR_START_OFFSET = -100;
184
- const CURSOR_CLICK_SCALE = 0.8;
185
- // Helper function to create and animate a fake cursor with start position
186
- export async function createFakeCursorWithStart(startElement, endElement, transitionDuration = 1.5) {
187
- const fakeCursor = createFakeCursor();
188
- const endRect = endElement.getBoundingClientRect();
189
- let startX, startY;
190
- if (startElement) {
191
- const startRect = startElement.getBoundingClientRect();
192
- startX = startRect.left + startRect.width / 2;
193
- startY = startRect.top + startRect.height / 2;
194
- }
195
- else {
196
- startX = endRect.left + CURSOR_START_OFFSET;
197
- startY = endRect.top + endRect.height / 2;
198
- }
199
- fakeCursor.style.left = `${startX}px`;
200
- fakeCursor.style.top = `${startY}px`;
201
- await wait(DELAY_SHORT);
202
- fakeCursor.style.left = `${endRect.left + endRect.width / 2}px`;
203
- fakeCursor.style.top = `${endRect.top + endRect.height / 2}px`;
204
- await wait(transitionDuration * 1000);
205
- return fakeCursor;
206
- }
207
- // Helper function to animate a fake cursor click
208
- export async function animateFakeCursorClick(element, transitionDuration = 1.5, options) {
209
- const fakeCursor = await createFakeCursorWithStart(options?.startElement ?? null, element, transitionDuration);
210
- await wait(DELAY_MEDIUM);
211
- // Animate click (shrink cursor briefly)
212
- fakeCursor.style.transform = `scale(${CURSOR_CLICK_SCALE})`;
213
- await wait(DELAY_SHORT);
214
- fakeCursor.style.transform = 'scale(1)';
215
- await wait(DELAY_SHORT);
216
- // Trigger pointer events if needed (flow graph uses pointer events instead of click)
217
- if (options?.usePointerEvents) {
218
- element.dispatchEvent(new PointerEvent('pointerdown', { bubbles: true }));
219
- element.dispatchEvent(new PointerEvent('pointerup', { bubbles: true }));
220
- }
221
- // Click the element
222
- element.click();
223
- await wait(DELAY_SHORT);
224
- // Remove fake cursor
225
- fakeCursor.remove();
226
- }
227
- // Helper function to animate cursor to element and click (for reusing a cursor across multiple clicks)
228
- export async function animateCursorToElementAndClick(cursor, element, startOffset = CURSOR_START_OFFSET) {
229
- const rect = element.getBoundingClientRect();
230
- // Set initial position (off-screen to the left)
231
- cursor.style.left = `${rect.left + startOffset}px`;
232
- cursor.style.top = `${rect.top + rect.height / 2}px`;
233
- await wait(DELAY_SHORT);
234
- // Animate to target position
235
- cursor.style.left = `${rect.left + rect.width / 2}px`;
236
- cursor.style.top = `${rect.top + rect.height / 2}px`;
237
- await wait(DELAY_ANIMATION);
238
- await wait(DELAY_MEDIUM);
239
- // Click on the element
240
- element.click();
241
- await wait(DELAY_SHORT);
242
- }
@@ -55,13 +55,13 @@ export function buildWorkerDefinition() {
55
55
  return new Worker(new URL('@codingame/monaco-vscode-standalone-css-language-features/worker', import.meta.url), {
56
56
  type: 'module'
57
57
  });
58
+ },
59
+ graphql: () => {
60
+ console.log('Creating graphql worker');
61
+ return new Worker(new URL(`../monaco_workers/graphql.worker.bundle.js`, import.meta.url), {
62
+ name: 'graphql'
63
+ });
58
64
  }
59
- // graphql: () => {
60
- // console.log('Creating graphql worker')
61
- // return new Worker(new URL(`../monaco_workers/graphql.worker.bundle.js`, import.meta.url), {
62
- // name: 'graphql'
63
- // })
64
- // }
65
65
  };
66
66
  const workerFunc = workerLoaders[selector];
67
67
  if (workerFunc !== undefined) {
@@ -7,7 +7,7 @@ import Description from '../Description.svelte';
7
7
  import Label from '../Label.svelte';
8
8
  import ResourcePicker from '../ResourcePicker.svelte';
9
9
  import Toggle from '../Toggle.svelte';
10
- import Select from '../select/Select.svelte';
10
+ import ArgEnum from '../ArgEnum.svelte';
11
11
  import Button from '../common/button/Button.svelte';
12
12
  import MultiSelect from '../select/MultiSelect.svelte';
13
13
  import { safeSelectItems } from '../select/utils.svelte';
@@ -15,20 +15,10 @@ import Badge from '../common/badge/Badge.svelte';
15
15
  import Tooltip from '../Tooltip.svelte';
16
16
  import ModelTokenLimits from './ModelTokenLimits.svelte';
17
17
  import { setCopilotInfo } from '../../aiStore';
18
- import AIPromptsModal from '../settings/AIPromptsModal.svelte';
19
- import { Save, Settings } from 'lucide-svelte';
20
- import { slide } from 'svelte/transition';
18
+ import CustomAIPrompts from '../copilot/CustomAIPrompts.svelte';
21
19
  let { aiProviders = $bindable(), codeCompletionModel = $bindable(), defaultModel = $bindable(), customPrompts = $bindable(), maxTokensPerModel = $bindable(), usingOpenaiClientCredentialsOauth = $bindable(), onSave } = $props();
22
20
  let fetchedAiModels = $state(false);
23
21
  let availableAiModels = $state(Object.fromEntries(Object.keys(AI_PROVIDERS).map((provider) => [provider, AI_PROVIDERS[provider].defaultModels])));
24
- let modalOpen = $state(false);
25
- let initialPrompts = $state($state.snapshot(customPrompts));
26
- let hasPromptsChanges = $derived(Array.from(new Set([...Object.keys(customPrompts), ...Object.keys(initialPrompts)])).some((key) => {
27
- const currentValue = customPrompts[key] || '';
28
- const initialValue = initialPrompts[key] || '';
29
- return currentValue !== initialValue;
30
- }));
31
- let promptCount = $derived(Object.values(customPrompts).filter((p) => p?.trim().length > 0).length);
32
22
  let selectedAiModels = $derived(Object.values(aiProviders).flatMap((p) => p.models));
33
23
  let modelProviderMap = $derived(Object.fromEntries(Object.entries(aiProviders).flatMap(([provider, config]) => config.models.map((m) => [m, provider]))));
34
24
  $effect(() => {
@@ -56,10 +46,6 @@ $effect(() => {
56
46
  fetchedAiModels = true;
57
47
  })();
58
48
  });
59
- function resetPrompts() {
60
- customPrompts = { ...initialPrompts };
61
- sendUserToast('Reset to last saved state');
62
- }
63
49
  async function editCopilotConfig() {
64
50
  if (Object.keys(aiProviders ?? {}).length > 0) {
65
51
  const code_completion_model = codeCompletionModel && modelProviderMap[codeCompletionModel]
@@ -92,8 +78,7 @@ async function editCopilotConfig() {
92
78
  });
93
79
  setCopilotInfo({});
94
80
  }
95
- sendUserToast(`AI settings updated`);
96
- initialPrompts = { ...customPrompts }; // Update initial prompts after successful save
81
+ sendUserToast(`Copilot settings updated`);
97
82
  onSave?.();
98
83
  }
99
84
  async function onAiProviderChange(provider) {
@@ -113,36 +98,37 @@ async function onAiProviderChange(provider) {
113
98
  aiProviders[provider].models = availableAiModels[provider].slice(0, 1);
114
99
  }
115
100
  }
116
- const autocompleteModels = $derived(selectedAiModels.filter((m) => m.startsWith('codestral-') && !m.startsWith('codestral-embed')));
117
101
  </script>
118
102
 
119
- <div class="flex flex-col gap-4 mt-4">
103
+ <div class="flex flex-col gap-4 my-8">
120
104
  <div class="flex flex-col gap-1">
121
- <div class="text-emphasis text-sm font-semibold flex flex-row gap-2 justify-between">
122
- Windmill AI <Button
123
- variant="accent"
124
- unifiedSize="md"
125
- wrapperClasses="self-start"
126
- disabled={!Object.values(aiProviders).every((p) => p.resource_path) ||
127
- (codeCompletionModel != undefined && codeCompletionModel.length === 0) ||
128
- (Object.keys(aiProviders).length > 0 && !defaultModel)}
129
- onClick={editCopilotConfig}
130
- startIcon={{ icon: Save }}
131
- >
132
- Save AI settings
133
- </Button></div
134
- >
105
+ <div class="text-emphasis text-sm font-semibold"> Windmill AI</div>
135
106
  <Description link="https://www.windmill.dev/docs/core_concepts/ai_generation">
136
107
  Windmill AI integrates with your favorite AI providers and models.
137
108
  </Description>
138
109
  </div>
139
110
  </div>
140
111
 
141
- <div class="flex flex-col gap-8 mt-4">
142
- <Label label="AI Providers">
143
- <div class="flex flex-col gap-4 p-4 rounded-md border bg-surface-tertiary">
112
+ <div class="flex flex-row-reverse gap-2 pb-4">
113
+ <Button
114
+ variant="accent"
115
+ size="xl"
116
+ wrapperClasses="self-start"
117
+ disabled={!Object.values(aiProviders).every((p) => p.resource_path) ||
118
+ (codeCompletionModel != undefined && codeCompletionModel.length === 0) ||
119
+ (Object.keys(aiProviders).length > 0 && !defaultModel)}
120
+ on:click={editCopilotConfig}
121
+ >
122
+ Save
123
+ </Button>
124
+ </div>
125
+
126
+ <div class="flex flex-col gap-8">
127
+ <div class="flex flex-col gap-2">
128
+ <p class="font-semibold text-xs text-emphasis">AI Providers</p>
129
+ <div class="flex flex-col gap-4">
144
130
  {#each Object.entries(AI_PROVIDERS) as [provider, details]}
145
- <div class="flex flex-col">
131
+ <div class="flex flex-col gap-2">
146
132
  <div class="flex flex-row gap-2">
147
133
  <Toggle
148
134
  options={{
@@ -200,33 +186,28 @@ const autocompleteModels = $derived(selectedAiModels.filter((m) => m.startsWith(
200
186
  </div>
201
187
 
202
188
  {#if aiProviders[provider]}
203
- <div
204
- class="mb-4 flex flex-col gap-6 border p-4 rounded-md mt-2"
205
- transition:slide|local={{ duration: 150 }}
206
- >
207
- <Label label="Resource">
208
- <div class="flex flex-row gap-1">
209
- <ResourcePicker
210
- selectFirst
211
- resourceType={provider === 'openai' && usingOpenaiClientCredentialsOauth
212
- ? 'openai_client_credentials_oauth'
213
- : provider}
214
- initialValue={aiProviders[provider].resource_path}
215
- bind:value={
216
- () => aiProviders[provider].resource_path || undefined,
217
- (v) => {
218
- aiProviders[provider].resource_path = v ?? ''
219
- onAiProviderChange(provider as AIProvider)
220
- }
189
+ <div class="mb-4 flex flex-col gap-2">
190
+ <div class="flex flex-row gap-1">
191
+ <ResourcePicker
192
+ selectFirst
193
+ resourceType={provider === 'openai' && usingOpenaiClientCredentialsOauth
194
+ ? 'openai_client_credentials_oauth'
195
+ : provider}
196
+ initialValue={aiProviders[provider].resource_path}
197
+ bind:value={
198
+ () => aiProviders[provider].resource_path || undefined,
199
+ (v) => {
200
+ aiProviders[provider].resource_path = v ?? ''
201
+ onAiProviderChange(provider as AIProvider)
221
202
  }
222
- />
223
- <TestAiKey
224
- aiProvider={provider as AIProvider}
225
- resourcePath={aiProviders[provider].resource_path}
226
- model={aiProviders[provider].models[0]}
227
- />
228
- </div>
229
- </Label>
203
+ }
204
+ />
205
+ <TestAiKey
206
+ aiProvider={provider as AIProvider}
207
+ resourcePath={aiProviders[provider].resource_path}
208
+ model={aiProviders[provider].models[0]}
209
+ />
210
+ </div>
230
211
 
231
212
  <Label label="Enabled models">
232
213
  <MultiSelect
@@ -239,98 +220,79 @@ const autocompleteModels = $derived(selectedAiModels.filter((m) => m.startsWith(
239
220
  onCreateItem={(item) =>
240
221
  (aiProviders[provider].models = [...aiProviders[provider].models, item])}
241
222
  />
242
- <p class="text-2xs text-hint">
243
- If you don't see the model you want, you can type it manually in the selector.
244
- </p>
245
223
  </Label>
224
+ <p class="text-xs">
225
+ If you don't see the model you want, you can type it manually in the selector.
226
+ </p>
246
227
  </div>
247
228
  {/if}
248
229
  </div>
249
230
  {/each}
250
231
  </div>
251
- </Label>
252
-
253
- <Label label="Default chat model">
254
- {#key Object.keys(aiProviders).length}
255
- <Select
256
- items={safeSelectItems(selectedAiModels)}
257
- bind:value={defaultModel}
258
- disabled={false}
259
- placeholder="Select a default model"
260
- size="sm"
261
- />
262
- {/key}
263
- </Label>
264
-
265
- <!-- Code completion group for animation purposes -->
266
- <div>
267
- <Label label="Code completion">
268
- <Toggle
269
- on:change={(e) => {
270
- if (e.detail) {
271
- codeCompletionModel = autocompleteModels[0] ?? ''
272
- } else {
273
- codeCompletionModel = undefined
274
- }
275
- }}
276
- checked={codeCompletionModel != undefined}
277
- disabled={autocompleteModels.length == 0}
278
- options={{
279
- right: 'Enable code completion',
280
- rightTooltip: 'We currently only support Mistral Codestral models for code completion.'
281
- }}
282
- />
283
- </Label>
284
-
285
- {#if codeCompletionModel != undefined}
286
- <div transition:slide|local={{ duration: 150 }} class="mt-6">
287
- <Label label="Code completion model">
288
- <Select
289
- items={safeSelectItems(autocompleteModels)}
290
- bind:value={codeCompletionModel}
291
- disabled={false}
292
- placeholder="Select a code completion model"
293
- size="sm"
294
- />
295
- </Label>
296
- </div>
297
- {/if}
298
232
  </div>
299
233
 
300
- <ModelTokenLimits {aiProviders} bind:maxTokensPerModel />
234
+ {#if Object.keys(aiProviders).length > 0}
235
+ {@const autocompleteModels = selectedAiModels.filter(
236
+ (m) => m.startsWith('codestral-') && !m.startsWith('codestral-embed')
237
+ )}
238
+ <div class="flex flex-col gap-2">
239
+ <p class="font-semibold">Settings</p>
240
+ <div class="flex flex-col gap-4">
241
+ <Label label="Default chat model">
242
+ {#key Object.keys(aiProviders).length}
243
+ <ArgEnum
244
+ enum_={selectedAiModels}
245
+ bind:value={defaultModel}
246
+ disabled={false}
247
+ autofocus={false}
248
+ defaultValue={undefined}
249
+ valid={true}
250
+ create={false}
251
+ />
252
+ {/key}
253
+ </Label>
301
254
 
302
- <Label label="Custom system prompts">
303
- <p class="text-xs text-secondary">
304
- Customize AI behavior with workspace-level system prompts. These apply to all workspace
305
- members.
306
- </p>
255
+ <div class="flex flex-col gap-2">
256
+ <Toggle
257
+ on:change={(e) => {
258
+ if (e.detail) {
259
+ codeCompletionModel = autocompleteModels[0] ?? ''
260
+ } else {
261
+ codeCompletionModel = undefined
262
+ }
263
+ }}
264
+ checked={codeCompletionModel != undefined}
265
+ disabled={autocompleteModels.length == 0}
266
+ options={{
267
+ right: 'Code completion (Codestral only)',
268
+ rightTooltip:
269
+ 'We currently only support Mistral Codestral models for code completion.'
270
+ }}
271
+ />
307
272
 
308
- <div class="flex items-center gap-2 pt-1">
309
- <Button
310
- onclick={() => (modalOpen = true)}
311
- variant="default"
312
- unifiedSize="sm"
313
- startIcon={{ icon: Settings }}
314
- disabled={Object.keys(aiProviders ?? {}).length === 0}
315
- >
316
- Configure AI prompts
317
- </Button>
318
- {#if promptCount > 0}
319
- <span class="text-xs text-secondary">({promptCount} configured)</span>
320
- {/if}
321
- {#if hasPromptsChanges}
322
- <Badge color="yellow">Unsaved changes</Badge>
323
- {/if}
273
+ {#if codeCompletionModel != undefined}
274
+ <Label label="Code completion model">
275
+ <ArgEnum
276
+ enum_={autocompleteModels}
277
+ bind:value={codeCompletionModel}
278
+ disabled={false}
279
+ autofocus={false}
280
+ defaultValue={undefined}
281
+ valid={true}
282
+ create={false}
283
+ />
284
+ </Label>
285
+ {/if}
286
+ </div>
287
+ </div>
324
288
  </div>
325
- </Label>
289
+ {/if}
326
290
 
327
- <div class="py-6"></div>
328
- </div>
291
+ {#if Object.keys(aiProviders).length > 0}
292
+ <ModelTokenLimits {aiProviders} bind:maxTokensPerModel />
293
+ {/if}
329
294
 
330
- <AIPromptsModal
331
- bind:open={modalOpen}
332
- bind:customPrompts
333
- onReset={resetPrompts}
334
- hasChanges={hasPromptsChanges}
335
- isWorkspaceSettings={true}
336
- />
295
+ {#if Object.keys(aiProviders).length > 0}
296
+ <CustomAIPrompts bind:customPrompts title="Custom system prompts" />
297
+ {/if}
298
+ </div>