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
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">import { Pane, Splitpanes } from 'svelte-splitpanes';
2
2
  import RawAppInlineScriptsPanel from './RawAppInlineScriptsPanel.svelte';
3
3
  import RawAppEditorHeader from './RawAppEditorHeader.svelte';
4
- import {} from '../../gen';
4
+ import { WorkspaceService } from '../../gen';
5
5
  import DiffDrawer from '../DiffDrawer.svelte';
6
6
  import { encodeState } from '../../utils';
7
7
  import { deepEqual } from 'fast-equals';
@@ -16,7 +16,6 @@ import { aiChatManager, AIMode } from '../copilot/chat/AIChatManager.svelte';
16
16
  import { onMount } from 'svelte';
17
17
  import { rawAppLintStore } from './lintStore';
18
18
  import { dbSchemas } from '../../stores';
19
- import { getDbSchemas } from '../apps/components/display/dbtable/metadata';
20
19
  import { runScriptAndPollResult } from '../jobs/utils';
21
20
  import { RawAppHistoryManager } from './RawAppHistoryManager.svelte';
22
21
  import { sendUserToast } from '../../utils';
@@ -58,7 +57,7 @@ function saveFrontendDraft() {
58
57
  }, 500);
59
58
  }
60
59
  let iframe = $state(undefined);
61
- let sidebarPanelSize = $state(10);
60
+ let sidebarPanelSize = $state(15);
62
61
  let jobs = $state([]);
63
62
  let jobsById = $state({});
64
63
  // Helper function to convert internal Runnable to BackendRunnable format
@@ -122,6 +121,14 @@ function setFilesInIframe(newFiles) {
122
121
  files: files
123
122
  }, '*');
124
123
  }
124
+ function setFilesAndSelectInIframe(newFiles, pathToSelect) {
125
+ const files = Object.fromEntries(Object.entries(newFiles).filter(([path, _]) => !path.endsWith('/')));
126
+ iframe?.contentWindow?.postMessage({
127
+ type: 'setFilesAndSelect',
128
+ files: files,
129
+ pathToSelect: pathToSelect
130
+ }, '*');
131
+ }
125
132
  function populateRunnables() {
126
133
  iframe?.contentWindow?.postMessage({
127
134
  type: 'setRunnables',
@@ -205,7 +212,6 @@ $effect(() => {
205
212
  ...$state.snapshot(files ?? {}),
206
213
  '/wmill.d.ts': genWmillTs(runnables)
207
214
  };
208
- console.log('result', frontendFiles);
209
215
  return frontendFiles;
210
216
  },
211
217
  setFrontendFile: (path, content) => {
@@ -214,10 +220,9 @@ $effect(() => {
214
220
  files = {};
215
221
  }
216
222
  files[path] = content;
217
- setFilesInIframe(files);
218
223
  selectedDocument = path;
219
- handleSelectFile(path);
220
- console.log('files after setting', files);
224
+ // Use combined setFilesAndSelect to avoid race condition
225
+ setFilesAndSelectInIframe(files, path);
221
226
  return lint();
222
227
  },
223
228
  deleteFrontendFile: (path) => {
@@ -297,24 +302,37 @@ $effect(() => {
297
302
  };
298
303
  },
299
304
  getSelectedContext: () => {
305
+ const baseContext = {
306
+ inspectorElement: inspectorElement,
307
+ selectionExcluded: selectionExcludedFromPrompt,
308
+ toggleSelectionExcluded: toggleSelectionExcluded,
309
+ clearInspector: clearInspectorSelection,
310
+ clearRunnable: handleClearRunnable,
311
+ codeSelection: codeSelection,
312
+ clearCodeSelection: () => {
313
+ codeSelection = undefined;
314
+ }
315
+ };
300
316
  if (selectedRunnable) {
301
- console.log('selectedRunnable', selectedRunnable);
317
+ const runnable = convertToBackendRunnable(selectedRunnable, runnables[selectedRunnable]);
302
318
  return {
303
319
  type: 'backend',
304
- content: selectedRunnable ?? ''
320
+ backendKey: selectedRunnable,
321
+ backendRunnable: runnable,
322
+ ...baseContext
305
323
  };
306
324
  }
307
325
  if (selectedDocument) {
308
- console.log('selectedDocument', selectedDocument);
309
326
  return {
310
327
  type: 'frontend',
311
- content: selectedDocument ?? ''
328
+ frontendPath: selectedDocument,
329
+ frontendContent: files?.[selectedDocument],
330
+ ...baseContext
312
331
  };
313
332
  }
314
- console.log('no selection');
315
333
  return {
316
334
  type: 'none',
317
- content: ''
335
+ ...baseContext
318
336
  };
319
337
  },
320
338
  snapshot: () => {
@@ -327,52 +345,71 @@ $effect(() => {
327
345
  handleHistorySelect(id);
328
346
  },
329
347
  getDatatables: async () => {
348
+ if (!$workspaceStore) {
349
+ return [];
350
+ }
351
+ // Get all datatable schemas from the backend
352
+ const allSchemas = await WorkspaceService.listDataTableSchemas({
353
+ workspace: $workspaceStore
354
+ });
355
+ // Get unique datatable names from dataTableRefs (the whitelisted tables)
356
+ const whitelistedDatatables = new Set(dataTableRefsObjects.map((ref) => ref.datatable));
357
+ // If no datatables are configured, return all available datatables
358
+ // This allows users to see all datatables in the @ context menu
359
+ if (whitelistedDatatables.size === 0) {
360
+ return allSchemas;
361
+ }
362
+ // Build a map of whitelisted tables per datatable: datatable -> schema -> Set<table>
363
+ const whitelistedTables = new Map();
364
+ for (const ref of dataTableRefsObjects) {
365
+ if (!ref.table)
366
+ continue;
367
+ if (!whitelistedTables.has(ref.datatable)) {
368
+ whitelistedTables.set(ref.datatable, new Map());
369
+ }
370
+ const schemaKey = ref.schema || 'public';
371
+ const schemaMap = whitelistedTables.get(ref.datatable);
372
+ if (!schemaMap.has(schemaKey)) {
373
+ schemaMap.set(schemaKey, new Set());
374
+ }
375
+ schemaMap.get(schemaKey).add(ref.table);
376
+ }
377
+ // Filter schemas to only include whitelisted datatables and tables
330
378
  const results = [];
331
- // Get unique datatable names from dataTableRefs
332
- const datatableNames = [...new Set(dataTableRefsObjects.map((ref) => ref.datatable))];
333
- for (const datatableName of datatableNames) {
334
- const resourcePath = `datatable://${datatableName}`;
335
- // Get or load the schema
336
- let schema = $dbSchemas[resourcePath];
337
- if (!schema) {
338
- try {
339
- await getDbSchemas('postgresql', resourcePath, $workspaceStore, $dbSchemas, (msg) => console.error('Schema error:', msg));
340
- schema = $dbSchemas[resourcePath];
341
- }
342
- catch (e) {
343
- console.error(`Failed to load schema for ${datatableName}:`, e);
344
- continue;
345
- }
379
+ for (const schema of allSchemas) {
380
+ if (!whitelistedDatatables.has(schema.datatable_name)) {
381
+ continue;
346
382
  }
347
- if (!schema?.schema)
383
+ const allowedTables = whitelistedTables.get(schema.datatable_name);
384
+ if (!allowedTables) {
385
+ // Include the datatable but with empty schemas
386
+ results.push({
387
+ datatable_name: schema.datatable_name,
388
+ schemas: {},
389
+ error: schema.error
390
+ });
348
391
  continue;
349
- // Get the tables for this datatable from the refs
350
- const refsForDatatable = dataTableRefsObjects.filter((ref) => ref.datatable === datatableName);
351
- const tables = [];
352
- for (const ref of refsForDatatable) {
353
- const schemaKey = ref.schema || 'public';
354
- const tableKey = ref.table;
355
- if (!tableKey)
356
- continue; // Skip if no table specified
357
- const tableSchema = schema.schema[schemaKey]?.[tableKey];
358
- if (!tableSchema)
392
+ }
393
+ // Filter schemas to only include whitelisted tables
394
+ const filteredSchemas = {};
395
+ for (const [schemaName, tables] of Object.entries(schema.schemas)) {
396
+ const allowedTablesInSchema = allowedTables.get(schemaName);
397
+ if (!allowedTablesInSchema)
359
398
  continue;
360
- const columns = {};
361
- for (const [colName, colDef] of Object.entries(tableSchema)) {
362
- columns[colName] = {
363
- type: colDef.type || 'unknown',
364
- required: colDef.required || false
365
- };
399
+ const filteredTables = {};
400
+ for (const [tableName, columns] of Object.entries(tables)) {
401
+ if (allowedTablesInSchema.has(tableName)) {
402
+ filteredTables[tableName] = columns;
403
+ }
404
+ }
405
+ if (Object.keys(filteredTables).length > 0) {
406
+ filteredSchemas[schemaName] = filteredTables;
366
407
  }
367
- tables.push({
368
- schema: schemaKey,
369
- table: tableKey,
370
- columns
371
- });
372
408
  }
373
409
  results.push({
374
- name: datatableName,
375
- tables
410
+ datatable_name: schema.datatable_name,
411
+ schemas: filteredSchemas,
412
+ error: schema.error
376
413
  });
377
414
  }
378
415
  return results;
@@ -422,17 +459,44 @@ $effect(() => {
422
459
  const errorMsg = e instanceof Error ? e.message : String(e);
423
460
  return { success: false, error: errorMsg };
424
461
  }
462
+ },
463
+ addTableToWhitelist: (datatableName, schemaName, tableName) => {
464
+ // Format the table reference
465
+ const newRef = formatDataTableRef({
466
+ datatable: datatableName,
467
+ schema: schemaName === 'public' ? undefined : schemaName,
468
+ table: tableName
469
+ });
470
+ // Only add if not already present
471
+ if (!data.tables.includes(newRef)) {
472
+ data.tables = [...data.tables, newRef];
473
+ saveFrontendDraft();
474
+ }
425
475
  }
426
476
  });
427
477
  });
428
478
  let selectedRunnable = $state(undefined);
429
479
  let selectedDocument = $state(undefined);
480
+ let inspectorElement = $state(undefined);
481
+ let selectionExcludedFromPrompt = $state(false);
482
+ let codeSelection = $state(undefined);
483
+ function toggleSelectionExcluded() {
484
+ selectionExcludedFromPrompt = !selectionExcludedFromPrompt;
485
+ }
430
486
  let modules = $state({});
487
+ // Normalize Windows-style path separators to Linux-style
488
+ function normalizeFilePaths(filesObj) {
489
+ if (!filesObj)
490
+ return filesObj;
491
+ return Object.fromEntries(Object.entries(filesObj).map(([path, content]) => [path.replace(/\\/g, '/'), content]));
492
+ }
431
493
  function listener(e) {
432
494
  if (e.data.type === 'setFiles') {
495
+ // Normalize Windows-style path separators to Linux-style
496
+ const normalizedFiles = normalizeFilePaths(e.data.files);
433
497
  // Only mark pending changes if files actually changed (ignore echo from setFilesInIframe)
434
- if (!deepEqual(files, e.data.files)) {
435
- files = e.data.files;
498
+ if (!deepEqual(files, normalizedFiles)) {
499
+ files = normalizedFiles;
436
500
  historyManager.markPendingChanges();
437
501
  }
438
502
  }
@@ -443,7 +507,39 @@ function listener(e) {
443
507
  modules = e.data.modules;
444
508
  }
445
509
  else if (e.data.type === 'setActiveDocument') {
446
- selectedDocument = e.data.path;
510
+ // Normalize Windows-style path separators to Linux-style
511
+ selectedDocument = e.data.path?.replace(/\\/g, '/');
512
+ }
513
+ else if (e.data.type === 'inspectorSelect') {
514
+ // Handle inspector element selection from the iframe preview
515
+ inspectorElement = e.data.element;
516
+ }
517
+ else if (e.data.type === 'inspectorClear') {
518
+ // Clear the inspector element when user dismisses the selection
519
+ inspectorElement = undefined;
520
+ }
521
+ else if (e.data.type === 'editorSelection') {
522
+ // Handle code selection from the iframe editor
523
+ const selection = e.data.selection;
524
+ if (selection === null) {
525
+ // Selection cleared
526
+ codeSelection = undefined;
527
+ }
528
+ else {
529
+ // Normalize path
530
+ const normalizedPath = selection.path?.replace(/\\/g, '/');
531
+ codeSelection = {
532
+ type: 'app_code_selection',
533
+ source: normalizedPath,
534
+ sourceType: 'frontend',
535
+ title: `${normalizedPath}:L${selection.range.startLine}-L${selection.range.endLine}`,
536
+ content: selection.content,
537
+ startLine: selection.range.startLine,
538
+ endLine: selection.range.endLine,
539
+ startColumn: selection.range.startColumn,
540
+ endColumn: selection.range.endColumn
541
+ };
542
+ }
447
543
  }
448
544
  }
449
545
  let getBundleResolve = undefined;
@@ -470,14 +566,38 @@ $effect(() => {
470
566
  $effect(() => {
471
567
  iframe && iframeLoaded && runnables && populateRunnables();
472
568
  });
569
+ function clearInspectorSelection() {
570
+ inspectorElement = undefined;
571
+ iframe?.contentWindow?.postMessage({ type: 'inspectorClear' }, '*');
572
+ }
473
573
  function handleSelectFile(path) {
474
574
  console.log('event Select file:', path);
475
575
  selectedRunnable = undefined;
576
+ // Inspector is cleared by the $effect watching selection changes
476
577
  iframe?.contentWindow?.postMessage({
477
578
  type: 'selectFile',
478
579
  path: path
479
580
  }, '*');
480
581
  }
582
+ function handleClearRunnable() {
583
+ selectedRunnable = undefined;
584
+ }
585
+ // Track previous values for change detection
586
+ let prevSelectedRunnable = undefined;
587
+ let prevSelectedDocument = undefined;
588
+ // Clear inspector and reset exclusion when selection changes
589
+ $effect(() => {
590
+ if (selectedRunnable !== prevSelectedRunnable || selectedDocument !== prevSelectedDocument) {
591
+ // Only clear if we're actually switching to something different
592
+ if (prevSelectedRunnable !== undefined || prevSelectedDocument !== undefined) {
593
+ clearInspectorSelection();
594
+ }
595
+ // Reset exclusion when switching files/runnables
596
+ selectionExcludedFromPrompt = false;
597
+ prevSelectedRunnable = selectedRunnable;
598
+ prevSelectedDocument = selectedDocument;
599
+ }
600
+ });
481
601
  function handleUndo() {
482
602
  // Create a snapshot if we're at the latest position with pending changes
483
603
  if (historyManager.needsSnapshotBeforeNav) {
@@ -495,9 +615,10 @@ function handleRedo() {
495
615
  }
496
616
  }
497
617
  function handleHistorySelect(id) {
498
- // Create a snapshot if we have pending changes before navigating
499
- if (historyManager.needsSnapshotBeforeNav) {
500
- historyManager.manualSnapshot(files ?? {}, runnables, summary, data);
618
+ // Save current state temporarily (not as a snapshot) when navigating to history
619
+ // Only if we're currently at the "current" state (not already viewing history)
620
+ if (historyManager.selectedEntryId === undefined) {
621
+ historyManager.saveTemporaryCurrentState(files ?? {}, runnables, summary, data);
501
622
  }
502
623
  const entry = historyManager.selectEntry(id);
503
624
  if (entry) {
@@ -510,15 +631,16 @@ function applyEntry(entry) {
510
631
  runnables = structuredClone($state.snapshot(entry.runnables));
511
632
  summary = entry.summary;
512
633
  data = structuredClone($state.snapshot(entry.data));
513
- setFilesInIframe(entry.files);
514
- populateRunnables();
515
- // Re-select the current document if it exists in the new files
634
+ // If there's a selected document that exists in the new files, use the combined message
516
635
  if (selectedDocument && entry.files[selectedDocument] !== undefined) {
517
- iframe?.contentWindow?.postMessage({
518
- type: 'selectFile',
519
- path: selectedDocument
520
- }, '*');
636
+ // Use combined setFilesAndSelect message to avoid race condition
637
+ setFilesAndSelectInIframe(entry.files, selectedDocument);
521
638
  }
639
+ else {
640
+ // Otherwise just set files normally
641
+ setFilesInIframe(entry.files);
642
+ }
643
+ populateRunnables();
522
644
  }
523
645
  catch (error) {
524
646
  console.error('Failed to apply entry:', error);
@@ -569,8 +691,8 @@ function handleKeydown(e) {
569
691
  onRedo={handleRedo}
570
692
  />
571
693
 
572
- <Splitpanes id="o2" class="grow">
573
- <Pane bind:size={sidebarPanelSize} maxSize={20}>
694
+ <Splitpanes id="o2" class="grow min-h-0">
695
+ <Pane bind:size={sidebarPanelSize} maxSize={20} class="h-full overflow-y-auto">
574
696
  <RawAppSidebar
575
697
  bind:files={
576
698
  () => files,
@@ -605,6 +727,15 @@ function handleKeydown(e) {
605
727
  {historyManager}
606
728
  historySelectedId={historyManager.selectedEntryId}
607
729
  onHistorySelect={handleHistorySelect}
730
+ onHistorySelectCurrent={() => {
731
+ // Restore the temporary current state if it exists
732
+ const tempState = historyManager.getAndClearTemporaryState()
733
+ if (tempState) {
734
+ applyEntry(tempState)
735
+ }
736
+ // Clear selection to indicate we're at current state
737
+ historyManager.clearSelection()
738
+ }}
608
739
  onManualSnapshot={() => {
609
740
  historyManager.manualSnapshot(files ?? {}, runnables, summary, data, true)
610
741
  }}
@@ -626,7 +757,26 @@ function handleKeydown(e) {
626
757
  appPath={path}
627
758
  {selectedRunnable}
628
759
  {initRunnablesContent}
629
- {runnables}
760
+ bind:runnables
761
+ onSelectionChange={(selection) => {
762
+ console.log('handle selection', selection)
763
+
764
+ if (selection === null) {
765
+ codeSelection = undefined
766
+ } else if (selectedRunnable) {
767
+ codeSelection = {
768
+ type: 'app_code_selection',
769
+ source: selectedRunnable,
770
+ sourceType: 'backend',
771
+ title: `${selectedRunnable}:L${selection.startLine}-L${selection.endLine}`,
772
+ content: selection.content,
773
+ startLine: selection.startLine,
774
+ endLine: selection.endLine,
775
+ startColumn: selection.startColumn,
776
+ endColumn: selection.endColumn
777
+ }
778
+ }
779
+ }}
630
780
  />
631
781
  </div>
632
782
  {/if}
@@ -3,7 +3,7 @@ import Button from '../common/button/Button.svelte';
3
3
  import UndoRedo from '../common/button/UndoRedo.svelte';
4
4
  import { AppService, DraftService } from '../../gen';
5
5
  import { enterpriseLicense, userStore, workspaceStore } from '../../stores';
6
- import { Bug, DiffIcon, FileJson, FileUp, History, MoreVertical, Pen, Save, WandSparkles } from 'lucide-svelte';
6
+ import { Bug, DiffIcon, EllipsisVertical, FileJson, FileUp, History, Pen, Save, WandSparkles } from 'lucide-svelte';
7
7
  import { createEventDispatcher } from 'svelte';
8
8
  import { cleanValueProperties, orderedJsonStringify, replaceFalseWithUndefined, defaultIfEmptyString } from '../../utils';
9
9
  // import { allItems, toStatic } from '../apps/editor/settingsPanel/utils'
@@ -54,6 +54,9 @@ async function createApp(path) {
54
54
  sendUserToast(`App hasn't been loaded yet`, true);
55
55
  return;
56
56
  }
57
+ if (!policy.execution_mode) {
58
+ policy.execution_mode = 'publisher';
59
+ }
57
60
  await computeTriggerables();
58
61
  try {
59
62
  const { js, css } = await getBundle();
@@ -152,6 +155,9 @@ async function updateApp(npath) {
152
155
  }
153
156
  const { js, css } = await getBundle();
154
157
  await computeTriggerables();
158
+ if (!policy.execution_mode) {
159
+ policy.execution_mode = 'publisher';
160
+ }
155
161
  await AppService.updateAppRaw({
156
162
  workspace: $workspaceStore,
157
163
  path: appPath,
@@ -493,19 +499,26 @@ $effect(() => {
493
499
  startIcon={{ icon: Save }}
494
500
  disabled={pathError != '' || app == undefined}
495
501
  on:click={() => saveInitialDraft()}
502
+ unifiedSize="md"
503
+ variant="accent"
496
504
  >
497
505
  Save initial draft
498
506
  </Button>
499
507
  </div>
500
508
  {/snippet}
501
- <AppEditorHeaderDeployInitialDraft {summary} {appPath} bind:pathError bind:newEditedPath />
509
+ <AppEditorHeaderDeployInitialDraft
510
+ bind:summary
511
+ bind:appPath
512
+ bind:pathError
513
+ bind:newEditedPath
514
+ />
502
515
  </DrawerContent>
503
516
  </Drawer>
504
517
  {/if}
505
518
  <Drawer bind:open={saveDrawerOpen} size="800px">
506
519
  <DrawerContent title="Deploy" on:close={() => closeSaveDrawer()}>
507
520
  {#snippet actions()}
508
- <div class="flex flex-row gap-4">
521
+ <div class="flex flex-row gap-2">
509
522
  <Button
510
523
  variant="default"
511
524
  disabled={!savedApp || savedApp.draft_only}
@@ -548,6 +561,8 @@ $effect(() => {
548
561
  </div>
549
562
  </Button>
550
563
  <Button
564
+ variant="accent"
565
+ unifiedSize="md"
551
566
  startIcon={{ icon: Save }}
552
567
  disabled={pathError != '' || customPathError != '' || app == undefined}
553
568
  on:click={() => {
@@ -576,7 +591,6 @@ $effect(() => {
576
591
  bind:customPathError
577
592
  bind:pathError
578
593
  bind:newEditedPath
579
- hideSecretUrl={true}
580
594
  />
581
595
  </DrawerContent>
582
596
  </Drawer>
@@ -602,7 +616,7 @@ $effect(() => {
602
616
  />
603
617
 
604
618
  <div
605
- class="border-b flex flex-row justify-between py-1 gap-2 gap-y-2 px-2 items-center overflow-y-visible overflow-x-auto min-h-10"
619
+ class="border-b flex flex-row justify-between py-1 gap-2 gap-y-2 px-2 items-center overflow-y-visible overflow-x-auto min-h-10 shrink-0"
606
620
  >
607
621
  <div class="flex flex-row gap-2 items-center">
608
622
  <Summary bind:value={summary} />
@@ -654,11 +668,13 @@ $effect(() => {
654
668
  <div class="flex flex-row gap-2 justify-end items-center overflow-visible">
655
669
  <DropdownV2 items={moreItems} class="h-auto">
656
670
  {#snippet buttonReplacement()}
657
- <Button nonCaptureEvent size="xs" color="light">
658
- <div class="flex flex-row items-center">
659
- <MoreVertical size={14} />
660
- </div>
661
- </Button>
671
+ <Button
672
+ nonCaptureEvent
673
+ unifiedSize="md"
674
+ variant="subtle"
675
+ startIcon={{ icon: EllipsisVertical }}
676
+ iconOnly
677
+ ></Button>
662
678
  {/snippet}
663
679
  </DropdownV2>
664
680
 
@@ -668,8 +684,8 @@ $effect(() => {
668
684
  jobsDrawerOpen = true
669
685
  }}
670
686
  color="light"
671
- size="xs"
672
- variant="border"
687
+ unifiedSize="md"
688
+ variant="default"
673
689
  btnClasses="relative"
674
690
  >
675
691
  <div class="flex flex-row gap-1 items-center">
@@ -684,8 +700,7 @@ $effect(() => {
684
700
  </div>
685
701
  <AppExportButton bind:this={appExport} />
686
702
  <Button
687
- unifiedSized="sm"
688
- color="light"
703
+ unifiedSize="md"
689
704
  variant="default"
690
705
  onClick={() => aiChatManager.toggleOpen()}
691
706
  startIcon={{ icon: WandSparkles }}
@@ -698,7 +713,8 @@ $effect(() => {
698
713
  loading={loading.save}
699
714
  startIcon={{ icon: Save }}
700
715
  on:click={() => saveDraft()}
701
- size="xs"
716
+ unifiedSize="md"
717
+ variant="default"
702
718
  disabled={!newApp && !savedApp}
703
719
  shortCut={{ key: 'S' }}
704
720
  >
@@ -708,7 +724,8 @@ $effect(() => {
708
724
  loading={loading.save}
709
725
  startIcon={{ icon: Save }}
710
726
  on:click={save}
711
- size="xs"
727
+ unifiedSize="md"
728
+ variant="accent"
712
729
  dropdownItems={appPath != ''
713
730
  ? () => [
714
731
  {