windmill-components 1.623.1 → 1.623.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (480) hide show
  1. package/package/assets/tokens/tokens.json +11 -1
  2. package/package/ata/apis.js +78 -5
  3. package/package/cancelable-promise-utils.js +4 -2
  4. package/package/components/AddUser.svelte +1 -1
  5. package/package/components/ApiConnectForm.svelte +6 -0
  6. package/package/components/AppConnectDrawer.svelte +1 -0
  7. package/package/components/AppConnectInner.svelte +1 -0
  8. package/package/components/AuthSettings.svelte +3 -1
  9. package/package/components/BedrockCredentialsCheck.svelte +241 -0
  10. package/package/components/BedrockCredentialsCheck.svelte.d.ts +3 -0
  11. package/package/components/CenteredModal.svelte +32 -24
  12. package/package/components/CenteredModal.svelte.d.ts +7 -27
  13. package/package/components/CenteredPage.svelte +6 -2
  14. package/package/components/CenteredPage.svelte.d.ts +3 -0
  15. package/package/components/CompareWorkspaces.svelte +74 -16
  16. package/package/components/ConcurrentJobsChart.svelte +3 -2
  17. package/package/components/ConcurrentJobsChart.svelte.d.ts +2 -2
  18. package/package/components/CustomPopover.svelte +20 -23
  19. package/package/components/CustomPopover.svelte.d.ts +14 -39
  20. package/package/components/DBManager.svelte +134 -42
  21. package/package/components/DBManager.svelte.d.ts +13 -2
  22. package/package/components/DBManagerContent.svelte +25 -63
  23. package/package/components/DBManagerContent.svelte.d.ts +38 -4
  24. package/package/components/DBManagerDrawer.svelte +7 -9
  25. package/package/components/DBTable.svelte +1 -1
  26. package/package/components/DBTable.svelte.d.ts +3 -1
  27. package/package/components/DBTableEditor.svelte +234 -178
  28. package/package/components/DBTableEditor.svelte.d.ts +22 -3
  29. package/package/components/DateInput.svelte +29 -35
  30. package/package/components/DateInput.svelte.d.ts +10 -11
  31. package/package/components/DedicatedWorkersSelector.svelte +569 -0
  32. package/package/components/DedicatedWorkersSelector.svelte.d.ts +8 -0
  33. package/package/components/DeployWorkspace.svelte +106 -29
  34. package/package/components/Description.svelte +3 -2
  35. package/package/components/Dev.svelte +36 -2
  36. package/package/components/DiffDrawer.svelte +8 -29
  37. package/package/components/DiffEditor.svelte +32 -2
  38. package/package/components/DisplayResult.svelte +32 -24
  39. package/package/components/DropdownV2.svelte +2 -1
  40. package/package/components/DropdownV2.svelte.d.ts +1 -0
  41. package/package/components/Editor.svelte +71 -26
  42. package/package/components/Editor.svelte.d.ts +3 -0
  43. package/package/components/EditorBar.svelte +1 -1
  44. package/package/components/FakeMonacoPlaceHolder.svelte +1 -1
  45. package/package/components/FlowBuilder.svelte +17 -11
  46. package/package/components/FlowDiffViewer.svelte +37 -0
  47. package/package/components/FlowDiffViewer.svelte.d.ts +7 -0
  48. package/package/components/FlowGraphViewer.svelte +5 -2
  49. package/package/components/FlowGraphViewer.svelte.d.ts +2 -0
  50. package/package/components/FlowLoopIterationPreview.svelte.d.ts +1 -1
  51. package/package/components/FlowPreviewContent.svelte +3 -2
  52. package/package/components/FlowPreviewContent.svelte.d.ts +1 -1
  53. package/package/components/FlowPreviewResult.svelte +0 -4
  54. package/package/components/FlowRestartButton.svelte +2 -3
  55. package/package/components/FlowRestartButton.svelte.d.ts +3 -0
  56. package/package/components/FlowStatusViewerInner.svelte +55 -35
  57. package/package/components/FlowStatusViewerInner.svelte.d.ts +1 -1
  58. package/package/components/FlowStatusWaitingForEvents.svelte +27 -23
  59. package/package/components/FlowStatusWaitingForEvents.svelte.d.ts +4 -18
  60. package/package/components/FlowViewer.svelte +103 -2
  61. package/package/components/FlowViewer.svelte.d.ts +9 -3
  62. package/package/components/ForkWorkspaceBanner.svelte +32 -13
  63. package/package/components/GraphqlSchemaViewer.svelte +8 -1
  64. package/package/components/HistoricInputs.svelte +25 -27
  65. package/package/components/HistoricInputs.svelte.d.ts +2 -2
  66. package/package/components/InfiniteList.svelte +27 -20
  67. package/package/components/InfiniteList.svelte.d.ts +2 -0
  68. package/package/components/InstanceSetting.svelte +38 -0
  69. package/package/components/InviteUser.svelte +16 -42
  70. package/package/components/InviteUser.svelte.d.ts +4 -18
  71. package/package/components/JobLoader.svelte.d.ts +1 -1
  72. package/package/components/JobOtelTraces.svelte +287 -0
  73. package/package/components/JobOtelTraces.svelte.d.ts +6 -0
  74. package/package/components/JsonInputs.svelte +6 -8
  75. package/package/components/JsonInputs.svelte.d.ts +7 -8
  76. package/package/components/LogViewer.svelte +91 -33
  77. package/package/components/Login.svelte +27 -0
  78. package/package/components/ManualPopover.svelte +5 -6
  79. package/package/components/ManualPopover.svelte.d.ts +9 -35
  80. package/package/components/MemoryFootprintViewer.svelte +2 -6
  81. package/package/components/ModulePreview.svelte +23 -21
  82. package/package/components/ModulePreview.svelte.d.ts +1 -0
  83. package/package/components/NextcloudSetting.svelte +1 -1
  84. package/package/components/OAuthSetting.svelte +1 -0
  85. package/package/components/Path.svelte +2 -2
  86. package/package/components/Path.svelte.d.ts +1 -1
  87. package/package/components/PocketIdSetting.svelte +82 -0
  88. package/package/components/PocketIdSetting.svelte.d.ts +6 -0
  89. package/package/components/ResourceEditor.svelte +4 -4
  90. package/package/components/ResourcePicker.svelte +4 -0
  91. package/package/components/ResourcePicker.svelte.d.ts +1 -0
  92. package/package/components/RunButton.svelte +5 -15
  93. package/package/components/RunButton.svelte.d.ts +7 -19
  94. package/package/components/RunChart.svelte +8 -4
  95. package/package/components/RunChart.svelte.d.ts +2 -2
  96. package/package/components/RunForm.svelte +9 -17
  97. package/package/components/RunForm.svelte.d.ts +0 -1
  98. package/package/components/RunFormAdvancedPopup.svelte +1 -1
  99. package/package/components/RunsPage.svelte +202 -537
  100. package/package/components/RunsPage.svelte.d.ts +5 -5
  101. package/package/components/S3FilePicker.svelte +7 -11
  102. package/package/components/S3FilePickerInner.svelte +2 -3
  103. package/package/components/S3FilePickerInner.svelte.d.ts +2 -2
  104. package/package/components/SavedInputsPicker.svelte +1 -1
  105. package/package/components/SavedInputsV2.svelte +35 -36
  106. package/package/components/SchemaForm.svelte +26 -19
  107. package/package/components/SchemaFormWithArgPicker.svelte +4 -3
  108. package/package/components/ScriptBuilder.svelte +1 -1
  109. package/package/components/ScriptEditor.svelte +575 -101
  110. package/package/components/Section.svelte +4 -2
  111. package/package/components/ServiceLogsInner.svelte +4 -4
  112. package/package/components/ShareModal.svelte.d.ts +1 -1
  113. package/package/components/SimpleEditor.svelte +46 -2
  114. package/package/components/Star.svelte +8 -12
  115. package/package/components/Star.svelte.d.ts +6 -19
  116. package/package/components/StringTypeNarrowing.svelte.d.ts +1 -1
  117. package/package/components/SuperadminSettingsInner.svelte +1 -1
  118. package/package/components/TemplateEditor.svelte +54 -29
  119. package/package/components/TemplateEditor.svelte.d.ts +13 -102
  120. package/package/components/TimeAgo.svelte +49 -7
  121. package/package/components/TimeAgo.svelte.d.ts +1 -0
  122. package/package/components/Toast.svelte +5 -1
  123. package/package/components/UserSettings.svelte +1 -1
  124. package/package/components/WorkerGroup.svelte +35 -20
  125. package/package/components/WorkerGroup.svelte.d.ts +1 -0
  126. package/package/components/WorkerTagPicker.svelte +1 -1
  127. package/package/components/WorkerTagSelect.svelte +5 -2
  128. package/package/components/WorkspaceTutorials.svelte +5 -0
  129. package/package/components/apps/components/buttons/AppButton.svelte +21 -6
  130. package/package/components/apps/components/buttons/AppForm.svelte +2 -1
  131. package/package/components/apps/components/buttons/AppFormButton.svelte +2 -1
  132. package/package/components/apps/components/display/InsertRowDrawerButton.svelte +1 -1
  133. package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +2 -5
  134. package/package/components/apps/components/display/dbtable/dbFeatures.d.ts +9 -0
  135. package/package/components/apps/components/display/dbtable/dbFeatures.js +32 -0
  136. package/package/components/apps/components/display/dbtable/metadata.d.ts +3 -3
  137. package/package/components/apps/components/display/dbtable/metadata.js +177 -148
  138. package/package/components/apps/components/display/dbtable/queries/alterTable.d.ts +46 -0
  139. package/package/components/apps/components/display/dbtable/queries/alterTable.js +322 -0
  140. package/package/components/apps/components/display/dbtable/queries/alterTable.test.d.ts +1 -0
  141. package/package/components/apps/components/display/dbtable/queries/alterTable.test.js +867 -0
  142. package/package/components/apps/components/display/dbtable/queries/createTable.d.ts +2 -24
  143. package/package/components/apps/components/display/dbtable/queries/createTable.js +13 -25
  144. package/package/components/apps/components/display/dbtable/queries/dbQueriesUtils.d.ts +9 -0
  145. package/package/components/apps/components/display/dbtable/queries/dbQueriesUtils.js +45 -0
  146. package/package/components/apps/components/display/dbtable/queries/relationalKeys.d.ts +45 -0
  147. package/package/components/apps/components/display/dbtable/queries/relationalKeys.js +401 -0
  148. package/package/components/apps/components/display/dbtable/queries/select.d.ts +2 -0
  149. package/package/components/apps/components/display/dbtable/queries/select.js +37 -6
  150. package/package/components/apps/components/display/dbtable/tableEditor.d.ts +35 -0
  151. package/package/components/apps/components/display/dbtable/tableEditor.js +67 -0
  152. package/package/components/apps/components/display/dbtable/utils.d.ts +2 -0
  153. package/package/components/apps/components/display/dbtable/utils.js +61 -36
  154. package/package/components/apps/components/display/table/AppAggridTable.svelte +8 -0
  155. package/package/components/apps/components/display/table/AppAggridTableActions.svelte +9 -9
  156. package/package/components/apps/components/display/table/AppAggridTableActions.svelte.d.ts +1 -1
  157. package/package/components/apps/components/helpers/HiddenComponent.svelte +1 -1
  158. package/package/components/apps/components/helpers/InputValue.svelte +1 -1
  159. package/package/components/apps/components/helpers/ResolveConfig.svelte +1 -1
  160. package/package/components/apps/components/helpers/RunnableComponent.svelte +3 -2
  161. package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +1 -1
  162. package/package/components/apps/components/helpers/RunnableWrapper.svelte +2 -2
  163. package/package/components/apps/components/inputs/AppMultiSelectV2.svelte +2 -4
  164. package/package/components/apps/editor/AppEditorHeader.svelte +8 -1
  165. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +32 -29
  166. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte.d.ts +2 -2
  167. package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte +4 -4
  168. package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte.d.ts +3 -3
  169. package/package/components/apps/editor/PublicApp.svelte +49 -30
  170. package/package/components/apps/editor/PublicApp.svelte.d.ts +1 -0
  171. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +77 -7
  172. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +2 -2
  173. package/package/components/apps/editor/inlineScriptsPanel/utils.d.ts +2 -2
  174. package/package/components/apps/editor/inlineScriptsPanel/utils.js +10 -1
  175. package/package/components/apps/inputType.d.ts +6 -1
  176. package/package/components/assets/AssetsDropdownButton.svelte +1 -1
  177. package/package/components/assets/AssetsUsageDrawer.svelte +98 -27
  178. package/package/components/assets/AssetsUsageDrawer.svelte.d.ts +5 -6
  179. package/package/components/assets/lib.d.ts +3 -2
  180. package/package/components/assets/lib.js +3 -1
  181. package/package/components/auditLogs/AuditLogsFilters.svelte +9 -17
  182. package/package/components/auditLogs/AuditLogsFilters.svelte.d.ts +1 -1
  183. package/package/components/common/CloseButton.svelte +2 -1
  184. package/package/components/common/CloseButton.svelte.d.ts +1 -0
  185. package/package/components/common/badge/CountBadge.svelte +4 -3
  186. package/package/components/common/badge/CountBadge.svelte.d.ts +1 -0
  187. package/package/components/common/button/Button.svelte +1 -1
  188. package/package/components/common/button/model.js +1 -1
  189. package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +1 -1
  190. package/package/components/common/confirmationModal/ConfirmationModal.svelte +2 -1
  191. package/package/components/common/confirmationModal/ConfirmationModal.svelte.d.ts +1 -0
  192. package/package/components/common/drawer/Drawer.svelte +4 -1
  193. package/package/components/common/drawer/DrawerContent.svelte +6 -3
  194. package/package/components/common/drawer/DrawerContent.svelte.d.ts +1 -0
  195. package/package/components/common/languageIcons/TypeScript.svelte +5 -3
  196. package/package/components/common/languageIcons/TypeScript.svelte.d.ts +1 -0
  197. package/package/components/common/modal/Modal.svelte +3 -3
  198. package/package/components/common/modal/Modal2.svelte +1 -0
  199. package/package/components/common/table/AppRow.svelte +4 -1
  200. package/package/components/common/table/FlowRow.svelte +4 -1
  201. package/package/components/common/table/RawAppRow.svelte +4 -1
  202. package/package/components/common/table/Row.svelte +11 -21
  203. package/package/components/common/table/Row.svelte.d.ts +4 -20
  204. package/package/components/common/table/RowIcon.svelte +6 -2
  205. package/package/components/common/table/RowIcon.svelte.d.ts +1 -1
  206. package/package/components/common/table/ScriptRow.svelte +4 -1
  207. package/package/components/copilot/autocomplete/Autocompletor.d.ts +1 -1
  208. package/package/components/copilot/autocomplete/Autocompletor.js +7 -6
  209. package/package/components/copilot/autocomplete/request.js +13 -9
  210. package/package/components/copilot/chat/AIButtonStyle.d.ts +1 -1
  211. package/package/components/copilot/chat/AIButtonStyle.js +2 -1
  212. package/package/components/copilot/chat/AIChat.svelte +3 -1
  213. package/package/components/copilot/chat/AIChatDisplay.svelte +89 -4
  214. package/package/components/copilot/chat/AIChatInput.svelte +275 -0
  215. package/package/components/copilot/chat/AIChatManager.svelte.js +107 -1
  216. package/package/components/copilot/chat/AiChatLayout.svelte +15 -30
  217. package/package/components/copilot/chat/AppAvailableContextList.svelte +263 -0
  218. package/package/components/copilot/chat/AppAvailableContextList.svelte.d.ts +13 -0
  219. package/package/components/copilot/chat/ContextElementBadge.svelte +44 -0
  220. package/package/components/copilot/chat/DatatableCreationPolicy.svelte +32 -33
  221. package/package/components/copilot/chat/ProviderModelSelector.svelte +1 -1
  222. package/package/components/copilot/chat/__tests__/app/appEvalHelpers.js +3 -0
  223. package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.js +4 -0
  224. package/package/components/copilot/chat/app/core.d.ts +56 -15
  225. package/package/components/copilot/chat/app/core.js +141 -22
  226. package/package/components/copilot/chat/context.d.ts +59 -2
  227. package/package/components/copilot/chat/context.js +6 -2
  228. package/package/components/copilot/chat/flow/FlowAIChat.svelte +22 -0
  229. package/package/components/copilot/chat/flow/core.d.ts +3 -1
  230. package/package/components/copilot/chat/flow/core.js +29 -2
  231. package/package/components/copilot/chat/flow/openFlow.json +1 -1
  232. package/package/components/copilot/chat/flow/openFlowZod.d.ts +1 -0
  233. package/package/components/copilot/chat/flow/openFlowZod.js +14 -2
  234. package/package/components/copilot/chat/script/core.d.ts +4 -1
  235. package/package/components/copilot/chat/script/core.js +43 -6
  236. package/package/components/copilot/chat/shared.d.ts +10 -0
  237. package/package/components/copilot/chat/shared.js +24 -0
  238. package/package/components/copilot/lib.d.ts +1 -1
  239. package/package/components/copilot/lib.js +2 -9
  240. package/package/components/copilot/utils.d.ts +5 -0
  241. package/package/components/copilot/utils.js +8 -0
  242. package/package/components/custom_ui.d.ts +2 -0
  243. package/package/components/dbOps.d.ts +18 -4
  244. package/package/components/dbOps.js +25 -3
  245. package/package/components/debug/DebugConsole.svelte +277 -0
  246. package/package/components/debug/DebugConsole.svelte.d.ts +13 -0
  247. package/package/components/debug/DebugPanel.svelte +97 -0
  248. package/package/components/debug/DebugPanel.svelte.d.ts +11 -0
  249. package/package/components/debug/DebugToolbar.svelte +148 -0
  250. package/package/components/debug/DebugToolbar.svelte.d.ts +17 -0
  251. package/package/components/debug/DebugVariableViewer.svelte +115 -0
  252. package/package/components/debug/DebugVariableViewer.svelte.d.ts +11 -0
  253. package/package/components/debug/MonacoDebugger.svelte +384 -0
  254. package/package/components/debug/MonacoDebugger.svelte.d.ts +15 -0
  255. package/package/components/debug/dapClient.d.ts +192 -0
  256. package/package/components/debug/dapClient.js +426 -0
  257. package/package/components/debug/debugUtils.d.ts +30 -0
  258. package/package/components/debug/debugUtils.js +131 -0
  259. package/package/components/debug/index.d.ts +75 -0
  260. package/package/components/debug/index.js +82 -0
  261. package/package/components/details/DetailPageHeader.svelte +21 -7
  262. package/package/components/details/DetailPageHeader.svelte.d.ts +2 -1
  263. package/package/components/details/DetailPageLayout.svelte +10 -1
  264. package/package/components/details/DetailPageLayout.svelte.d.ts +1 -0
  265. package/package/components/flows/CreateActionsApp.svelte +6 -4
  266. package/package/components/flows/DebounceLimit.svelte.d.ts +1 -1
  267. package/package/components/flows/FlowHistoryInner.svelte +15 -4
  268. package/package/components/flows/content/AgentToolWrapper.svelte +1 -1
  269. package/package/components/flows/content/FlowEditorDrawer.svelte +124 -0
  270. package/package/components/flows/content/FlowEditorDrawer.svelte.d.ts +22 -0
  271. package/package/components/flows/content/FlowInput.svelte +211 -37
  272. package/package/components/flows/content/FlowModuleComponent.svelte +553 -67
  273. package/package/components/flows/content/FlowModuleEarlyStop.svelte +8 -10
  274. package/package/components/flows/content/FlowModuleHeader.svelte +7 -4
  275. package/package/components/flows/content/FlowModuleWorkerTagSelect.svelte +1 -1
  276. package/package/components/flows/content/McpOAuthConnect.svelte +217 -0
  277. package/package/components/flows/content/McpOAuthConnect.svelte.d.ts +7 -0
  278. package/package/components/flows/content/McpToolEditor.svelte +50 -37
  279. package/package/components/flows/content/McpToolEditor.svelte.d.ts +0 -1
  280. package/package/components/flows/conversations/FlowChat.svelte +16 -2
  281. package/package/components/flows/conversations/FlowChat.svelte.d.ts +2 -1
  282. package/package/components/flows/conversations/FlowChatInterface.svelte +103 -6
  283. package/package/components/flows/conversations/FlowChatInterface.svelte.d.ts +2 -0
  284. package/package/components/flows/conversations/FlowChatManager.svelte.js +53 -21
  285. package/package/components/flows/conversations/FlowConversationsSidebar.svelte +79 -77
  286. package/package/components/flows/header/FlowImportExportMenu.svelte +1 -1
  287. package/package/components/flows/propPicker/OutputPickerInner.svelte.d.ts +1 -1
  288. package/package/components/flows/propPicker/PropPickerWrapper.svelte +3 -1
  289. package/package/components/flows/types.d.ts +2 -0
  290. package/package/components/git_sync/GitSyncRepositoryCard.svelte +16 -8
  291. package/package/components/graph/FlowGraphV2.svelte +7 -1
  292. package/package/components/graph/renderers/triggers/TriggersBadge.svelte +41 -24
  293. package/package/components/home/ItemsList.svelte +7 -6
  294. package/package/components/home/TutorialBanner.svelte +34 -18
  295. package/package/components/home/treeViewUtils.js +1 -1
  296. package/package/components/icons/CssIcon.svelte +20 -0
  297. package/package/components/icons/CssIcon.svelte.d.ts +7 -25
  298. package/package/components/icons/HtmlIcon.svelte +20 -0
  299. package/package/components/icons/HtmlIcon.svelte.d.ts +8 -0
  300. package/package/components/icons/JavaScriptIcon.svelte +10 -2
  301. package/package/components/icons/JavaScriptIcon.svelte.d.ts +1 -0
  302. package/package/components/icons/JsonIcon.svelte +8 -2
  303. package/package/components/icons/JsonIcon.svelte.d.ts +1 -0
  304. package/package/components/icons/LessIcon.svelte +16 -0
  305. package/package/components/icons/LessIcon.svelte.d.ts +8 -0
  306. package/package/components/icons/MarkdownIcon.svelte +20 -0
  307. package/package/components/icons/MarkdownIcon.svelte.d.ts +8 -0
  308. package/package/components/icons/NextcloudIcon.svelte +3 -2
  309. package/package/components/icons/NextcloudIcon.svelte.d.ts +2 -0
  310. package/package/components/icons/PocketIdIcon.svelte +9 -0
  311. package/package/components/icons/PocketIdIcon.svelte.d.ts +9 -0
  312. package/package/components/icons/ReactIcon.svelte +10 -2
  313. package/package/components/icons/ReactIcon.svelte.d.ts +1 -0
  314. package/package/components/icons/SassIcon.svelte +28 -0
  315. package/package/components/icons/SassIcon.svelte.d.ts +8 -0
  316. package/package/components/icons/SvelteIcon.svelte +10 -2
  317. package/package/components/icons/SvelteIcon.svelte.d.ts +1 -0
  318. package/package/components/icons/VueIcon.svelte +10 -2
  319. package/package/components/icons/VueIcon.svelte.d.ts +1 -0
  320. package/package/components/icons/YamlIcon.svelte +20 -0
  321. package/package/components/icons/YamlIcon.svelte.d.ts +8 -0
  322. package/package/components/icons/index.js +3 -1
  323. package/package/components/instanceSettings/SecretBackendConfig.svelte +514 -0
  324. package/package/components/instanceSettings/SecretBackendConfig.svelte.d.ts +8 -0
  325. package/package/components/instanceSettings.d.ts +2 -1
  326. package/package/components/instanceSettings.js +33 -1
  327. package/package/components/jobs/JobPreview.svelte +46 -39
  328. package/package/components/jobs/JobPreview.svelte.d.ts +1 -0
  329. package/package/components/monacoLanguagesOptions.js +16 -15
  330. package/package/components/propertyPicker/PropPicker.svelte +16 -2
  331. package/package/components/propertyPicker/PropPicker.svelte.d.ts +2 -0
  332. package/package/components/raw_apps/DefaultDatabaseSelector.svelte +9 -5
  333. package/package/components/raw_apps/FileEditorIcon.svelte +12 -7
  334. package/package/components/raw_apps/FileEditorIcon.svelte.d.ts +2 -0
  335. package/package/components/raw_apps/FileTreeNode.svelte +119 -83
  336. package/package/components/raw_apps/RawAppBackgroundRunner.svelte +88 -8
  337. package/package/components/raw_apps/RawAppDataTableDrawer.svelte +1 -3
  338. package/package/components/raw_apps/RawAppDataTableList.svelte +12 -9
  339. package/package/components/raw_apps/RawAppEditor.svelte +218 -68
  340. package/package/components/raw_apps/RawAppEditorHeader.svelte +33 -16
  341. package/package/components/raw_apps/RawAppHistoryList.svelte +264 -80
  342. package/package/components/raw_apps/RawAppHistoryList.svelte.d.ts +1 -0
  343. package/package/components/raw_apps/RawAppHistoryManager.svelte.d.ts +15 -1
  344. package/package/components/raw_apps/RawAppHistoryManager.svelte.js +46 -12
  345. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +549 -47
  346. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +31 -5
  347. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte +25 -18
  348. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte.d.ts +1 -0
  349. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +141 -10
  350. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte.d.ts +8 -0
  351. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte +2 -1
  352. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte.d.ts +9 -1
  353. package/package/components/raw_apps/RawAppInputsSpecEditor.svelte +47 -3
  354. package/package/components/raw_apps/RawAppInputsSpecEditor.svelte.d.ts +2 -2
  355. package/package/components/raw_apps/RawAppModules.svelte +13 -7
  356. package/package/components/raw_apps/RawAppPreview.svelte +48 -6
  357. package/package/components/raw_apps/RawAppSidebar.svelte +194 -125
  358. package/package/components/raw_apps/RawAppSidebar.svelte.d.ts +1 -0
  359. package/package/components/raw_apps/RunnableRow.svelte +41 -0
  360. package/package/components/raw_apps/RunnableRow.svelte.d.ts +11 -0
  361. package/package/components/raw_apps/datatableUtils.svelte.js +1 -1
  362. package/package/components/raw_apps/utils.d.ts +1 -1
  363. package/package/components/raw_apps/utils.js +76 -18
  364. package/package/components/runs/ManuelDatePicker.svelte +3 -3
  365. package/package/components/runs/ManuelDatePicker.svelte.d.ts +3 -3
  366. package/package/components/runs/NoWorkerWithTagWarning.svelte +5 -1
  367. package/package/components/runs/RunsFilter.svelte +75 -63
  368. package/package/components/runs/RunsFilter.svelte.d.ts +35 -4
  369. package/package/components/runs/RunsQueue.svelte.d.ts +1 -1
  370. package/package/components/runs/RunsTable.svelte +1 -1
  371. package/package/components/runs/RunsTable.svelte.d.ts +1 -1
  372. package/package/components/runs/useJobsLoader.svelte.d.ts +34 -0
  373. package/package/components/runs/useJobsLoader.svelte.js +507 -0
  374. package/package/components/schema/EditableSchemaWrapper.svelte +2 -2
  375. package/package/components/scriptEditor/LogPanel.svelte +17 -2
  376. package/package/components/scriptEditor/LogPanel.svelte.d.ts +2 -0
  377. package/package/components/select/MultiSelect.svelte +1 -1
  378. package/package/components/select/SelectDropdown.svelte +17 -5
  379. package/package/components/settings/AIPromptsModal.svelte +88 -0
  380. package/package/components/settings/AIPromptsModal.svelte.d.ts +11 -0
  381. package/package/components/settings/ChangeWorkspaceColor.svelte +4 -3
  382. package/package/components/settings/ChangeWorkspaceId.svelte +16 -11
  383. package/package/components/settings/ChangeWorkspaceName.svelte +7 -6
  384. package/package/components/settings/CreateToken.svelte +4 -4
  385. package/package/components/settings/UserAIPromptsSettings.svelte +56 -15
  386. package/package/components/settings/WorkspaceOperatorSettings.svelte +68 -85
  387. package/package/components/settings/WorkspaceUserSettings.svelte +537 -411
  388. package/package/components/sidebar/MenuButton.svelte +54 -24
  389. package/package/components/sidebar/MenuButton.svelte.d.ts +2 -0
  390. package/package/components/sidebar/MultiplayerMenu.svelte +4 -4
  391. package/package/components/sidebar/OperatorMenu.svelte +63 -88
  392. package/package/components/sidebar/SidebarContent.svelte +39 -6
  393. package/package/components/sidebar/UserMenu.svelte +3 -3
  394. package/package/components/sidebar/WorkspaceMenu.svelte +35 -85
  395. package/package/components/sqlTypeService.js +4 -3
  396. package/package/components/table/DataTable.svelte +8 -3
  397. package/package/components/table/DataTable.svelte.d.ts +2 -0
  398. package/package/components/text_input/TextInput.svelte +3 -0
  399. package/package/components/text_input/TextInput.svelte.d.ts +2 -0
  400. package/package/components/triggers/AddTriggersButton.svelte +17 -4
  401. package/package/components/triggers/TriggersEditor.svelte +4 -0
  402. package/package/components/triggers/TriggersWrapper.svelte +14 -0
  403. package/package/components/triggers/native/NativeTriggerEditor.svelte +379 -0
  404. package/package/components/triggers/native/NativeTriggerEditor.svelte.d.ts +26 -0
  405. package/package/components/triggers/native/NativeTriggerTable.svelte +155 -0
  406. package/package/components/triggers/native/NativeTriggerTable.svelte.d.ts +16 -0
  407. package/package/components/triggers/native/NativeTriggersPanel.svelte +40 -0
  408. package/package/components/triggers/native/NativeTriggersPanel.svelte.d.ts +15 -0
  409. package/package/components/triggers/native/services/nextcloud/NextcloudTriggerForm.svelte +104 -0
  410. package/package/components/triggers/native/services/nextcloud/NextcloudTriggerForm.svelte.d.ts +18 -0
  411. package/package/components/triggers/native/utils.d.ts +74 -0
  412. package/package/components/triggers/native/utils.js +152 -0
  413. package/package/components/triggers/triggers.svelte.d.ts +2 -1
  414. package/package/components/triggers/triggers.svelte.js +36 -8
  415. package/package/components/triggers/utils.js +18 -6
  416. package/package/components/triggers.d.ts +1 -1
  417. package/package/components/tutorials/FlowBuilderLiveTutorial.svelte +6 -35
  418. package/package/components/tutorials/RunsTutorial.svelte +399 -0
  419. package/package/components/{schema/SchemaPicker.svelte.d.ts → tutorials/RunsTutorial.svelte.d.ts} +11 -12
  420. package/package/components/tutorials/TroubleshootFlowTutorial.svelte +5 -20
  421. package/package/components/tutorials/utils.d.ts +16 -0
  422. package/package/components/tutorials/utils.js +96 -0
  423. package/package/components/tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte +133 -0
  424. package/package/components/{SavedInputs.svelte.d.ts → tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte.d.ts} +8 -11
  425. package/package/components/vscode.js +6 -6
  426. package/package/components/workspace/WorkspaceCard.svelte +184 -0
  427. package/package/components/workspace/WorkspaceCard.svelte.d.ts +24 -0
  428. package/package/components/workspace/WorkspaceIcon.svelte +21 -0
  429. package/package/components/workspace/WorkspaceIcon.svelte.d.ts +9 -0
  430. package/package/components/workspace/WorkspaceTreeView.svelte +331 -0
  431. package/package/components/workspace/WorkspaceTreeView.svelte.d.ts +15 -0
  432. package/package/components/workspaceSettings/AISettings.svelte +147 -108
  433. package/package/components/workspaceSettings/CreateWorkspace.svelte +26 -12
  434. package/package/components/workspaceSettings/CustomInstanceDbSelect.svelte +1 -0
  435. package/package/components/workspaceSettings/CustomInstanceDbWizardModal.svelte +3 -1
  436. package/package/components/workspaceSettings/DataTableSettings.svelte +2 -1
  437. package/package/components/workspaceSettings/DucklakeSettings.svelte +54 -26
  438. package/package/components/workspaceSettings/DucklakeSettings.svelte.d.ts +2 -1
  439. package/package/components/workspaceSettings/ModelTokenLimits.svelte +14 -18
  440. package/package/components/workspaceSettings/OAuthClientConfig.svelte +180 -0
  441. package/package/components/workspaceSettings/OAuthClientConfig.svelte.d.ts +14 -0
  442. package/package/components/workspaceSettings/StorageSettings.svelte +285 -241
  443. package/package/components/workspaceSettings/StorageSettings.svelte.d.ts +1 -0
  444. package/package/components/workspaceSettings/WorkspaceIntegrations.svelte +302 -0
  445. package/package/components/workspaceSettings/WorkspaceIntegrations.svelte.d.ts +3 -0
  446. package/package/consts.js +4 -3
  447. package/package/gen/core/OpenAPI.js +1 -1
  448. package/package/gen/schemas.gen.d.ts +517 -4
  449. package/package/gen/schemas.gen.js +523 -4
  450. package/package/gen/services.gen.d.ts +359 -22
  451. package/package/gen/services.gen.js +702 -44
  452. package/package/gen/types.gen.d.ts +1501 -121
  453. package/package/hub.js +2 -2
  454. package/package/hubPaths.json +3 -2
  455. package/package/infer.js +2 -0
  456. package/package/logout.d.ts +0 -2
  457. package/package/logout.js +2 -23
  458. package/package/logoutKit.d.ts +2 -0
  459. package/package/logoutKit.js +26 -0
  460. package/package/monaco_workers/graphql.worker.bundle.js +121 -121
  461. package/package/navigation.d.ts +1 -1
  462. package/package/rawAppWmillTs.d.ts +11 -0
  463. package/package/rawAppWmillTs.js +38 -1
  464. package/package/refreshUser.d.ts +5 -1
  465. package/package/refreshUser.js +20 -30
  466. package/package/storeUtils.js +2 -0
  467. package/package/svelte5Utils.svelte.d.ts +68 -1
  468. package/package/svelte5Utils.svelte.js +193 -2
  469. package/package/svelte5UtilsKit.svelte.d.ts +3 -0
  470. package/package/svelte5UtilsKit.svelte.js +30 -0
  471. package/package/tutorialUtils.js +0 -4
  472. package/package/tutorials/config.js +31 -3
  473. package/package/tutorials/roleUtils.d.ts +1 -1
  474. package/package/tutorials/roleUtils.js +6 -2
  475. package/package/utils.js +162 -1
  476. package/package.json +1 -1
  477. package/package/components/SavedInputs.svelte +0 -416
  478. package/package/components/runs/JobsLoader.svelte +0 -468
  479. package/package/components/runs/JobsLoader.svelte.d.ts +0 -49
  480. package/package/components/schema/SchemaPicker.svelte +0 -92
@@ -3,7 +3,7 @@ import { goto } from '../../navigation';
3
3
  import { base } from '../../base';
4
4
  import { JobService, ResourceService, SettingService, UserService, VariableService, WorkspaceService } from '../../gen';
5
5
  import { validateUsername } from '../../utils';
6
- import { logoutWithRedirect } from '../../logout';
6
+ import { logoutWithRedirect } from '../../logoutKit';
7
7
  import { page } from '$app/stores';
8
8
  import { usersWorkspaceStore, workspaceStore } from '../../stores';
9
9
  import CenteredModal from '../CenteredModal.svelte';
@@ -169,7 +169,7 @@ async function createWorkspace() {
169
169
  if (auto_invite) {
170
170
  await WorkspaceService.editAutoInvite({
171
171
  workspace: id,
172
- requestBody: { operator: operatorOnly, invite_all: !isCloudHosted(), auto_add: true }
172
+ requestBody: { operator: operatorOnly, invite_all: !isCloudHosted(), auto_add: autoAdd }
173
173
  });
174
174
  }
175
175
  if (aiKey != '') {
@@ -274,6 +274,7 @@ onMount(() => {
274
274
  let isDomainAllowed = $state(undefined);
275
275
  let auto_invite = $state(false);
276
276
  let operatorOnly = $state(false);
277
+ let autoAdd = $state(true);
277
278
  let selected = $state('openai');
278
279
  run(() => {
279
280
  id = name.toLowerCase().replace(/\s/gi, '-');
@@ -290,7 +291,7 @@ run(() => {
290
291
  let domain = $derived($usersWorkspaceStore?.email.split('@')[1]);
291
292
  </script>
292
293
 
293
- <CenteredModal title="{isFork ? 'Forking' : 'New'} Workspace">
294
+ <CenteredModal title="{isFork ? 'Forking' : 'New'} Workspace" centerVertically={false}>
294
295
  <div class="flex flex-col gap-8">
295
296
  {#if isFork}
296
297
  <div class="flex flex-block gap-2">
@@ -487,8 +488,8 @@ let domain = $derived($usersWorkspaceStore?.email.split('@')[1]);
487
488
  <div class="flex flex-col gap-1">
488
489
  <label for="auto-invite" class="text-xs font-semibold text-emphasis"
489
490
  >{isCloudHosted()
490
- ? `Auto-invite anyone from ${domain}`
491
- : `Auto-invite anyone joining the instance`}</label
491
+ ? `Auto-${autoAdd ? 'add' : 'invite'} anyone from ${domain}`
492
+ : `Auto-${autoAdd ? 'add' : 'invite'} anyone joining the instance`}</label
492
493
  >
493
494
  <Toggle
494
495
  id="auto-invite"
@@ -502,12 +503,25 @@ let domain = $derived($usersWorkspaceStore?.email.split('@')[1]);
502
503
  {#if auto_invite}
503
504
  <div class="bg-surface-tertiary p-4 rounded-md flex flex-col gap-8">
504
505
  <!-- svelte-ignore a11y_label_has_associated_control -->
505
- <label class="flex flex-col gap-1">
506
- <span class="text-xs font-semibold text-emphasis">Mode</span>
507
- <span class="text-xs text-secondary font-normal"
508
- >Whether to invite or add users directly to the workspace.</span
509
- >
510
- </label>
506
+ {#if isCloudHosted()}
507
+ <label class="flex flex-col gap-1">
508
+ <span class="text-xs font-semibold text-emphasis">Mode</span>
509
+ <span class="text-xs text-secondary font-normal"
510
+ >Whether to invite or add users directly to the workspace.</span
511
+ >
512
+ <ToggleButtonGroup
513
+ selected={autoAdd ? 'add' : 'invite'}
514
+ on:selected={async (e) => {
515
+ autoAdd = e.detail === 'add'
516
+ }}
517
+ >
518
+ {#snippet children({ item })}
519
+ <ToggleButton value="invite" label="Auto-invite" {item} />
520
+ <ToggleButton value="add" label="Auto-add" {item} />
521
+ {/snippet}
522
+ </ToggleButtonGroup>
523
+ </label>
524
+ {/if}
511
525
 
512
526
  <label class="font-semibold flex flex-col gap-1">
513
527
  <span class="text-xs font-semibold text-emphasis">Role</span>
@@ -528,7 +542,7 @@ let domain = $derived($usersWorkspaceStore?.email.split('@')[1]);
528
542
  {/if}
529
543
  </div>
530
544
  {/if}
531
- <div class="flex flex-wrap flex-row justify-between pt-12 gap-4">
545
+ <div class="flex flex-wrap flex-row justify-between gap-4 pt-4">
532
546
  <Button
533
547
  disabled={forkCreationLoading}
534
548
  variant="default"
@@ -22,6 +22,7 @@ let currentIsAlreadyUsedElsewhere = $derived(tag && status && status.tag !== tag
22
22
  placeholder="Search or create..."
23
23
  showPlaceholderOnOpen
24
24
  items={onlySelectedTags}
25
+ id="custom-instance-db-select"
25
26
  disabled={!$isCustomInstanceDbEnabled}
26
27
  >
27
28
  {#snippet endSnippet({ item })}
@@ -109,7 +109,8 @@ let preventClose = false;
109
109
  'GRANT CREATE ON SCHEMA public TO custom_instance_user;\n' +
110
110
  `GRANT CREATE ON DATABASE "${dbname}" TO custom_instance_user;\n` +
111
111
  'ALTER DEFAULT PRIVILEGES IN SCHEMA public \n' +
112
- ' GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES\n TO custom_instance_user;'
112
+ ' GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES\n TO custom_instance_user;\n' +
113
+ 'ALTER ROLE custom_instance_user CREATEROLE;'
113
114
  }
114
115
  ],
115
116
  status?.error ?? undefined
@@ -132,6 +133,7 @@ let preventClose = false;
132
133
  {/if}
133
134
  <Button
134
135
  size="sm"
136
+ id="run-custom-instance-db-setup-button"
135
137
  variant={!status?.success ? 'accent' : 'default'}
136
138
  endIcon={status?.success ? undefined : { icon: ArrowRight }}
137
139
  disabled={!$isCustomInstanceDbEnabled}
@@ -156,7 +156,7 @@ export function unsavedChanges() {
156
156
  {#each tempSettings.dataTables as dataTable, dataTableIndex}
157
157
  <Row>
158
158
  <Cell first class="w-48 relative">
159
- <TextInput bind:value={dataTable.name} inputProps={{ placeholder: 'Name' }} />
159
+ <TextInput bind:value={dataTable.name} inputProps={{ placeholder: 'Name', id: 'name' }} />
160
160
  </Cell>
161
161
  <Cell>
162
162
  <div class="flex gap-2">
@@ -185,6 +185,7 @@ export function unsavedChanges() {
185
185
  }
186
186
  }
187
187
  }
188
+ id="database-type-select"
188
189
  class="w-28"
189
190
  />
190
191
  </div>
@@ -22,7 +22,8 @@ export function convertDucklakeSettingsToBackend(settings) {
22
22
  ducklake.storage.path = ducklake.storage.path.slice(1);
23
23
  s.ducklakes[ducklake.name] = {
24
24
  catalog: ducklake.catalog,
25
- storage: ducklake.storage
25
+ storage: ducklake.storage,
26
+ extra_args: ducklake.extra_args || undefined
26
27
  };
27
28
  }
28
29
  return s;
@@ -30,7 +31,7 @@ export function convertDucklakeSettingsToBackend(settings) {
30
31
  </script>
31
32
 
32
33
  <script>
33
- import { Plus } from 'lucide-svelte'
34
+ import { Plus, SettingsIcon } from 'lucide-svelte'
34
35
 
35
36
  import Button from '../common/button/Button.svelte'
36
37
 
@@ -43,7 +44,7 @@ export function convertDucklakeSettingsToBackend(settings) {
43
44
  import ResourcePicker from '../ResourcePicker.svelte'
44
45
  import { usePromise } from '../../svelte5Utils.svelte'
45
46
  import { SettingService, WorkspaceService } from '../../gen'
46
- import { type GetSettingsResponse } from '../../gen'
47
+ import type { GetSettingsResponse } from '../../gen'
47
48
 
48
49
  import { workspaceStore } from '../../stores'
49
50
  import { sendUserToast } from '../../toast'
@@ -61,6 +62,7 @@ export function convertDucklakeSettingsToBackend(settings) {
61
62
  import { isCustomInstanceDbEnabled } from './utils.svelte'
62
63
  import { resource } from 'runed'
63
64
  import CustomInstanceDbSelect from './CustomInstanceDbSelect.svelte'
65
+ import Label from '../Label.svelte'
64
66
 
65
67
  const DEFAULT_DUCKLAKE_CATALOG_NAME = 'ducklake_catalog'
66
68
 
@@ -179,7 +181,7 @@ export function convertDucklakeSettingsToBackend(settings) {
179
181
  </div>
180
182
  {/if}
181
183
 
182
- <DataTable>
184
+ <DataTable containerClass="ducklake-settings-table">
183
185
  <Head>
184
186
  <tr>
185
187
  {#each tableHeadNames as name, i}
@@ -212,7 +214,11 @@ export function convertDucklakeSettingsToBackend(settings) {
212
214
  <code class="px-1 py-0.5 border rounded-md">ATTACH 'ducklake' AS dl;</code> shorthand
213
215
  </Tooltip>
214
216
  {/if}
215
- <TextInput bind:value={ducklake.name} inputProps={{ placeholder: 'Name' }} />
217
+ <TextInput
218
+ bind:value={ducklake.name}
219
+ inputProps={{ placeholder: 'Name' }}
220
+ class="ducklake-name"
221
+ />
216
222
  </Cell>
217
223
  <Cell>
218
224
  <div class="flex gap-2">
@@ -286,39 +292,61 @@ export function convertDucklakeSettingsToBackend(settings) {
286
292
  else delete ducklake.storage.storage
287
293
  }
288
294
  }
289
- class="w-48"
295
+ class="ducklake-workspace-storage-select w-48"
290
296
  inputClass="!placeholder-secondary"
291
297
  />
292
298
  <TextInput
293
299
  inputProps={{ placeholder: 'Data path (defaults to /)' }}
300
+ class="ducklake-storage-data-path"
294
301
  bind:value={ducklake.storage.path}
295
302
  />
296
303
  </div>
297
304
  </Cell>
298
305
  <Cell class="w-12">
299
- {#if ducklakeIsDirty[ducklake.name]}
300
- <Popover
301
- openOnHover
302
- contentClasses="p-2 text-sm text-secondary italic"
303
- class="cursor-not-allowed"
304
- >
306
+ <div class="flex gap-2">
307
+ <Popover contentClasses="p-4" enableFlyTransition closeOnOtherPopoverOpen>
305
308
  <svelte:fragment slot="trigger">
306
- <ExploreAssetButton
307
- class="h-9"
308
- asset={{ kind: 'ducklake', path: ducklake.name }}
309
- {dbManagerDrawer}
310
- disabled
311
- />
309
+ <div class="relative">
310
+ <Button variant="default" iconOnly size="sm" endIcon={{ icon: SettingsIcon }} />
311
+ {#if ducklake.extra_args}
312
+ <div
313
+ class="absolute -top-0.5 -right-0.5 w-2 h-2 bg-accent rounded-full border border-surface"
314
+ ></div>
315
+ {/if}
316
+ </div>
317
+ </svelte:fragment>
318
+ <svelte:fragment slot="content">
319
+ <Label
320
+ label="Extra args"
321
+ tooltip="Additional arguments to pass in the ATTACH command. The argument list is substituted as-is. Separate them with commas."
322
+ >
323
+ <TextInput
324
+ bind:value={ducklake.extra_args}
325
+ class="min-w-96"
326
+ underlyingInputEl="textarea"
327
+ inputProps={{ placeholder: "METADATA_SCHEMA 'schema', ENCRYPTED true" }}
328
+ />
329
+ </Label>
312
330
  </svelte:fragment>
313
- <svelte:fragment slot="content">Please save settings first</svelte:fragment>
314
331
  </Popover>
315
- {:else}
316
- <ExploreAssetButton
317
- class="h-9"
318
- asset={{ kind: 'ducklake', path: ducklake.name }}
319
- {dbManagerDrawer}
320
- />
321
- {/if}
332
+ {#if ducklakeIsDirty[ducklake.name]}
333
+ <Popover
334
+ openOnHover
335
+ contentClasses="p-2 text-sm text-secondary italic"
336
+ class="cursor-not-allowed"
337
+ >
338
+ <svelte:fragment slot="trigger">
339
+ <ExploreAssetButton asset={{ kind: 'ducklake', path: '' }} disabled />
340
+ </svelte:fragment>
341
+ <svelte:fragment slot="content">Please save settings first</svelte:fragment>
342
+ </Popover>
343
+ {:else}
344
+ <ExploreAssetButton
345
+ asset={{ kind: 'ducklake', path: ducklake.name }}
346
+ {dbManagerDrawer}
347
+ />
348
+ {/if}
349
+ </div>
322
350
  </Cell>
323
351
  <Cell class="w-12">
324
352
  <CloseButton small on:close={() => removeDucklake(ducklakeIndex)} />
@@ -9,11 +9,12 @@ export type DucklakeSettingsType = {
9
9
  storage?: string;
10
10
  path: string;
11
11
  };
12
+ extra_args?: string;
12
13
  }[];
13
14
  };
14
15
  export declare function convertDucklakeSettingsFromBackend(settings: GetSettingsResponse['ducklake']): DucklakeSettingsType;
15
16
  export declare function convertDucklakeSettingsToBackend(settings: DucklakeSettingsType): NonNullable<GetSettingsResponse['ducklake']>;
16
- import { type GetSettingsResponse } from '../../gen';
17
+ import type { GetSettingsResponse } from '../../gen';
17
18
  type Props = {
18
19
  ducklakeSettings: DucklakeSettingsType;
19
20
  ducklakeSavedSettings: DucklakeSettingsType;
@@ -1,4 +1,5 @@
1
- <script lang="ts">import { getModelMaxTokens } from '../copilot/lib';
1
+ <script lang="ts">import { Badge, Button } from '../common';
2
+ import { getModelMaxTokens } from '../copilot/lib';
2
3
  import { ChevronDown, ChevronUp } from 'lucide-svelte';
3
4
  import { slide } from 'svelte/transition';
4
5
  const MAX_TOKENS_LIMIT = 2000000;
@@ -70,9 +71,9 @@ $effect(() => {
70
71
  </script>
71
72
 
72
73
  {#if Object.keys(aiProviders).length > 0}
73
- <div class="flex flex-col gap-4">
74
+ <div class="flex flex-col gap-2">
74
75
  <div class="flex flex-col gap-1">
75
- <p class="font-semibold">Model Output Limits</p>
76
+ <p class="font-semibold text-xs text-emphasis">Model Output Limits</p>
76
77
  <p class="text-xs text-secondary">
77
78
  Configure maximum token limits for each model. These limits apply to all AI chat
78
79
  interactions in the workspace.
@@ -83,20 +84,16 @@ $effect(() => {
83
84
  {#each Object.entries(modelsByProvider).filter(([provider, models]) => models.length > 0) as [provider, models]}
84
85
  {@const isExpanded = !collapsedProviders[provider]}
85
86
  {@const hasCustom = hasCustomSettings(provider, models)}
86
- <div class="border border-gray-200 dark:border-gray-700 rounded-md">
87
+ <div class="border rounded-md bg-surface-tertiary">
87
88
  <button
88
89
  type="button"
89
90
  onclick={() => toggleProvider(provider)}
90
- class="w-full px-4 py-3 flex items-center justify-between bg-surface-secondary hover:bg-surface-hover transition-colors rounded-md"
91
+ class="w-full px-4 py-1 min-h-8 flex items-center justify-between hover:bg-surface-hover transition-colors rounded-t-md"
91
92
  >
92
93
  <div class="flex items-center gap-2">
93
- <h4 class="font-medium text-sm capitalize">{provider}</h4>
94
+ <h4 class="font-medium text-xs capitalize">{provider}</h4>
94
95
  {#if hasCustom}
95
- <span
96
- class="text-xs px-2 py-0.5 bg-blue-100 dark:bg-blue-900 text-blue-700 dark:text-blue-300 rounded"
97
- >
98
- Modified
99
- </span>
96
+ <Badge color="blue">Modified</Badge>
100
97
  {/if}
101
98
  </div>
102
99
  {#if isExpanded}
@@ -107,7 +104,7 @@ $effect(() => {
107
104
  </button>
108
105
 
109
106
  {#if isExpanded}
110
- <div transition:slide|local={{ duration: 200 }} class="p-3">
107
+ <div transition:slide|local={{ duration: 200 }} class="p-4 border-t">
111
108
  <div class="space-y-3">
112
109
  {#each models as { model }}
113
110
  {@const currentTokens = getCurrentTokensForModel(provider as AIProvider, model)}
@@ -116,7 +113,7 @@ $effect(() => {
116
113
  <div class="flex flex-col gap-1">
117
114
  <div class="flex items-center gap-3">
118
115
  <div class="flex-1 min-w-0">
119
- <span class="text-sm text-primary truncate block">{model}</span>
116
+ <span class="text-xs text-primary truncate block">{model}</span>
120
117
  </div>
121
118
  <div class="flex items-center gap-2">
122
119
  <input
@@ -138,14 +135,13 @@ $effect(() => {
138
135
  {#if !isAtDefault}
139
136
  <div class="text-xs text-primary flex flex-row items-center gap-1">
140
137
  <span>Default: {defaultTokens} tokens</span>
141
- <button
142
- type="button"
138
+ <Button
139
+ variant="default"
140
+ unifiedSize="xs"
143
141
  onclick={() => resetModelToDefault(provider as AIProvider, model)}
144
- class="text-xs text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 whitespace-nowrap"
145
- title="Reset to default ({defaultTokens})"
146
142
  >
147
143
  Reset
148
- </button>
144
+ </Button>
149
145
  </div>
150
146
  {#if errors[getModelKey(provider as AIProvider, model)]}
151
147
  <div class="text-xs text-red-500"
@@ -0,0 +1,180 @@
1
+ <script lang="ts">import { sendUserToast } from '../../utils';
2
+ import { Button, Alert } from '../common';
3
+ import Label from '../Label.svelte';
4
+ import { Save, ExternalLink } from 'lucide-svelte';
5
+ import { workspaceStore } from '../../stores';
6
+ let { serviceName, serviceDisplayName, existingConfig, onConfigSaved, redirectUri = $bindable('') } = $props();
7
+ let saving = $state(false);
8
+ let clientId = $state('');
9
+ let clientSecret = $state('');
10
+ let baseUrl = $state('');
11
+ let workspace = $workspaceStore;
12
+ redirectUri = `${window.location.origin}/workspace_settings?tab=native_triggers&service=${serviceName}&workspace=${workspace}`;
13
+ $effect(() => {
14
+ if (existingConfig) {
15
+ clientId = existingConfig.client_id;
16
+ clientSecret = existingConfig.client_secret;
17
+ baseUrl = existingConfig.base_url;
18
+ }
19
+ });
20
+ async function saveConfig() {
21
+ if (!clientId.trim() || !clientSecret.trim() || !baseUrl.trim()) {
22
+ sendUserToast('Please fill in all fields', true);
23
+ return;
24
+ }
25
+ saving = true;
26
+ try {
27
+ const oauthData = {
28
+ client_id: clientId.trim(),
29
+ client_secret: clientSecret.trim(),
30
+ base_url: baseUrl.trim().replace(/\/+$/, ''),
31
+ redirect_uri: redirectUri.trim()
32
+ };
33
+ await onConfigSaved(oauthData);
34
+ resetForm();
35
+ }
36
+ catch (err) {
37
+ sendUserToast(`Failed to configure OAuth client: ${err.message}`, true);
38
+ }
39
+ finally {
40
+ saving = false;
41
+ }
42
+ }
43
+ function resetForm() {
44
+ clientId = '';
45
+ clientSecret = '';
46
+ }
47
+ function copyToClipboard(text, label) {
48
+ navigator.clipboard
49
+ .writeText(text)
50
+ .then(() => {
51
+ sendUserToast(`${label} copied to clipboard`);
52
+ })
53
+ .catch(() => {
54
+ sendUserToast(`Failed to copy ${label}`, true);
55
+ });
56
+ }
57
+ </script>
58
+
59
+ <div class="space-y-4">
60
+ <div class="flex justify-between items-center">
61
+ <h4 class="text-md font-medium text-primary">{serviceDisplayName} OAuth Client Configuration</h4
62
+ >
63
+ </div>
64
+
65
+ {#if !existingConfig}
66
+ <Alert type="warning" title="OAuth client required">
67
+ <p class="text-sm mb-2">
68
+ Before you can connect to {serviceDisplayName}, you need to configure an OAuth client. This
69
+ requires:
70
+ </p>
71
+ <ol class="list-decimal list-inside space-y-1 text-sm">
72
+ <li
73
+ >Create an OAuth2 application in your {serviceDisplayName} instance (Administration settings
74
+ -> Security -> OAuth 2.0 clients)</li
75
+ >
76
+ <li
77
+ >Configure the redirect URI: <code
78
+ class="text-xs bg-gray-100 dark:bg-gray-800 px-1 rounded"
79
+ >{redirectUri ||
80
+ `${window.location.origin}/workspace_settings?tab=integrations&service=${serviceName}`}</code
81
+ ></li
82
+ >
83
+ <li>Enter the client credentials below</li>
84
+ </ol>
85
+ </Alert>
86
+ {/if}
87
+
88
+ <div class="space-y-4">
89
+ <div class="space-y-4">
90
+ <div class="flex flex-col gap-1">
91
+ <Label label="Nextcloud base URL" />
92
+ <p class="text-xs font-normal text-secondary"
93
+ >The base URL of your Nextcloud instance (without trailing slash)</p
94
+ >
95
+ <input
96
+ type="url"
97
+ bind:value={baseUrl}
98
+ placeholder="https://your-nextcloud.example.com"
99
+ class="windmill-input"
100
+ disabled={saving}
101
+ />
102
+ {#if baseUrl}
103
+ <Button
104
+ wrapperClasses="self-start"
105
+ href={`${baseUrl}/settings/admin/security`}
106
+ target="_blank"
107
+ startIcon={{ icon: ExternalLink }}
108
+ >
109
+ {serviceDisplayName} OAuth Settings
110
+ </Button>
111
+ {/if}
112
+ </div>
113
+
114
+ <div class="flex flex-col gap-1">
115
+ <Label label="Redirect URI" />
116
+ <p class="text-xs font-normal text-secondary"
117
+ >Use this URL when creating the OAuth app in {serviceDisplayName}</p
118
+ >
119
+ <div class="flex gap-2">
120
+ <input
121
+ type="url"
122
+ bind:value={redirectUri}
123
+ readonly
124
+ class="windmill-input flex-1 bg-gray-50 dark:bg-gray-900"
125
+ />
126
+ <Button
127
+ size="xs"
128
+ color="light"
129
+ variant="border"
130
+ onclick={() => copyToClipboard(redirectUri, 'Redirect URI')}
131
+ >
132
+ Copy
133
+ </Button>
134
+ </div>
135
+ </div>
136
+
137
+ <div class="flex flex-col gap-1">
138
+ <Label label="Client ID" />
139
+ <input
140
+ type="text"
141
+ bind:value={clientId}
142
+ placeholder="Generated by Nextcloud OAuth app"
143
+ class="windmill-input"
144
+ disabled={saving}
145
+ />
146
+ </div>
147
+
148
+ <div class="flex flex-col gap-1">
149
+ <Label label="Client secret" />
150
+ <input
151
+ type="password"
152
+ bind:value={clientSecret}
153
+ placeholder="Generated by Nextcloud OAuth app"
154
+ class="windmill-input"
155
+ disabled={saving}
156
+ />
157
+ </div>
158
+
159
+ <div class="flex gap-2">
160
+ <Button
161
+ color="blue"
162
+ onclick={saveConfig}
163
+ disabled={saving || !clientId.trim() || !clientSecret.trim() || !baseUrl.trim()}
164
+ startIcon={{ icon: Save }}
165
+ >
166
+ {saving ? 'Saving...' : 'Save configuration'}
167
+ </Button>
168
+ </div>
169
+ </div>
170
+ </div>
171
+
172
+ {#if existingConfig}
173
+ <Alert type="success" title="OAuth client configured">
174
+ <p class="text-sm">
175
+ OAuth client is configured for {serviceDisplayName}. You can now connect this workspace to
176
+ your {serviceDisplayName} instance.
177
+ </p>
178
+ </Alert>
179
+ {/if}
180
+ </div>
@@ -0,0 +1,14 @@
1
+ interface Props {
2
+ serviceName: string;
3
+ serviceDisplayName: string;
4
+ existingConfig?: {
5
+ client_id: string;
6
+ client_secret: string;
7
+ base_url: string;
8
+ } | null;
9
+ redirectUri: string;
10
+ onConfigSaved: (oauthData: any) => Promise<void>;
11
+ }
12
+ declare const OAuthClientConfig: import("svelte").Component<Props, {}, "redirectUri">;
13
+ type OAuthClientConfig = ReturnType<typeof OAuthClientConfig>;
14
+ export default OAuthClientConfig;