windmill-components 1.596.1 → 1.612.2

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