windmill-components 1.623.1 → 1.623.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (480) hide show
  1. package/package/assets/tokens/tokens.json +11 -1
  2. package/package/ata/apis.js +78 -5
  3. package/package/cancelable-promise-utils.js +4 -2
  4. package/package/components/AddUser.svelte +1 -1
  5. package/package/components/ApiConnectForm.svelte +6 -0
  6. package/package/components/AppConnectDrawer.svelte +1 -0
  7. package/package/components/AppConnectInner.svelte +1 -0
  8. package/package/components/AuthSettings.svelte +3 -1
  9. package/package/components/BedrockCredentialsCheck.svelte +241 -0
  10. package/package/components/BedrockCredentialsCheck.svelte.d.ts +3 -0
  11. package/package/components/CenteredModal.svelte +32 -24
  12. package/package/components/CenteredModal.svelte.d.ts +7 -27
  13. package/package/components/CenteredPage.svelte +6 -2
  14. package/package/components/CenteredPage.svelte.d.ts +3 -0
  15. package/package/components/CompareWorkspaces.svelte +74 -16
  16. package/package/components/ConcurrentJobsChart.svelte +3 -2
  17. package/package/components/ConcurrentJobsChart.svelte.d.ts +2 -2
  18. package/package/components/CustomPopover.svelte +20 -23
  19. package/package/components/CustomPopover.svelte.d.ts +14 -39
  20. package/package/components/DBManager.svelte +134 -42
  21. package/package/components/DBManager.svelte.d.ts +13 -2
  22. package/package/components/DBManagerContent.svelte +25 -63
  23. package/package/components/DBManagerContent.svelte.d.ts +38 -4
  24. package/package/components/DBManagerDrawer.svelte +7 -9
  25. package/package/components/DBTable.svelte +1 -1
  26. package/package/components/DBTable.svelte.d.ts +3 -1
  27. package/package/components/DBTableEditor.svelte +234 -178
  28. package/package/components/DBTableEditor.svelte.d.ts +22 -3
  29. package/package/components/DateInput.svelte +29 -35
  30. package/package/components/DateInput.svelte.d.ts +10 -11
  31. package/package/components/DedicatedWorkersSelector.svelte +569 -0
  32. package/package/components/DedicatedWorkersSelector.svelte.d.ts +8 -0
  33. package/package/components/DeployWorkspace.svelte +106 -29
  34. package/package/components/Description.svelte +3 -2
  35. package/package/components/Dev.svelte +36 -2
  36. package/package/components/DiffDrawer.svelte +8 -29
  37. package/package/components/DiffEditor.svelte +32 -2
  38. package/package/components/DisplayResult.svelte +32 -24
  39. package/package/components/DropdownV2.svelte +2 -1
  40. package/package/components/DropdownV2.svelte.d.ts +1 -0
  41. package/package/components/Editor.svelte +71 -26
  42. package/package/components/Editor.svelte.d.ts +3 -0
  43. package/package/components/EditorBar.svelte +1 -1
  44. package/package/components/FakeMonacoPlaceHolder.svelte +1 -1
  45. package/package/components/FlowBuilder.svelte +17 -11
  46. package/package/components/FlowDiffViewer.svelte +37 -0
  47. package/package/components/FlowDiffViewer.svelte.d.ts +7 -0
  48. package/package/components/FlowGraphViewer.svelte +5 -2
  49. package/package/components/FlowGraphViewer.svelte.d.ts +2 -0
  50. package/package/components/FlowLoopIterationPreview.svelte.d.ts +1 -1
  51. package/package/components/FlowPreviewContent.svelte +3 -2
  52. package/package/components/FlowPreviewContent.svelte.d.ts +1 -1
  53. package/package/components/FlowPreviewResult.svelte +0 -4
  54. package/package/components/FlowRestartButton.svelte +2 -3
  55. package/package/components/FlowRestartButton.svelte.d.ts +3 -0
  56. package/package/components/FlowStatusViewerInner.svelte +55 -35
  57. package/package/components/FlowStatusViewerInner.svelte.d.ts +1 -1
  58. package/package/components/FlowStatusWaitingForEvents.svelte +27 -23
  59. package/package/components/FlowStatusWaitingForEvents.svelte.d.ts +4 -18
  60. package/package/components/FlowViewer.svelte +103 -2
  61. package/package/components/FlowViewer.svelte.d.ts +9 -3
  62. package/package/components/ForkWorkspaceBanner.svelte +32 -13
  63. package/package/components/GraphqlSchemaViewer.svelte +8 -1
  64. package/package/components/HistoricInputs.svelte +25 -27
  65. package/package/components/HistoricInputs.svelte.d.ts +2 -2
  66. package/package/components/InfiniteList.svelte +27 -20
  67. package/package/components/InfiniteList.svelte.d.ts +2 -0
  68. package/package/components/InstanceSetting.svelte +38 -0
  69. package/package/components/InviteUser.svelte +16 -42
  70. package/package/components/InviteUser.svelte.d.ts +4 -18
  71. package/package/components/JobLoader.svelte.d.ts +1 -1
  72. package/package/components/JobOtelTraces.svelte +287 -0
  73. package/package/components/JobOtelTraces.svelte.d.ts +6 -0
  74. package/package/components/JsonInputs.svelte +6 -8
  75. package/package/components/JsonInputs.svelte.d.ts +7 -8
  76. package/package/components/LogViewer.svelte +91 -33
  77. package/package/components/Login.svelte +27 -0
  78. package/package/components/ManualPopover.svelte +5 -6
  79. package/package/components/ManualPopover.svelte.d.ts +9 -35
  80. package/package/components/MemoryFootprintViewer.svelte +2 -6
  81. package/package/components/ModulePreview.svelte +23 -21
  82. package/package/components/ModulePreview.svelte.d.ts +1 -0
  83. package/package/components/NextcloudSetting.svelte +1 -1
  84. package/package/components/OAuthSetting.svelte +1 -0
  85. package/package/components/Path.svelte +2 -2
  86. package/package/components/Path.svelte.d.ts +1 -1
  87. package/package/components/PocketIdSetting.svelte +82 -0
  88. package/package/components/PocketIdSetting.svelte.d.ts +6 -0
  89. package/package/components/ResourceEditor.svelte +4 -4
  90. package/package/components/ResourcePicker.svelte +4 -0
  91. package/package/components/ResourcePicker.svelte.d.ts +1 -0
  92. package/package/components/RunButton.svelte +5 -15
  93. package/package/components/RunButton.svelte.d.ts +7 -19
  94. package/package/components/RunChart.svelte +8 -4
  95. package/package/components/RunChart.svelte.d.ts +2 -2
  96. package/package/components/RunForm.svelte +9 -17
  97. package/package/components/RunForm.svelte.d.ts +0 -1
  98. package/package/components/RunFormAdvancedPopup.svelte +1 -1
  99. package/package/components/RunsPage.svelte +202 -537
  100. package/package/components/RunsPage.svelte.d.ts +5 -5
  101. package/package/components/S3FilePicker.svelte +7 -11
  102. package/package/components/S3FilePickerInner.svelte +2 -3
  103. package/package/components/S3FilePickerInner.svelte.d.ts +2 -2
  104. package/package/components/SavedInputsPicker.svelte +1 -1
  105. package/package/components/SavedInputsV2.svelte +35 -36
  106. package/package/components/SchemaForm.svelte +26 -19
  107. package/package/components/SchemaFormWithArgPicker.svelte +4 -3
  108. package/package/components/ScriptBuilder.svelte +1 -1
  109. package/package/components/ScriptEditor.svelte +575 -101
  110. package/package/components/Section.svelte +4 -2
  111. package/package/components/ServiceLogsInner.svelte +4 -4
  112. package/package/components/ShareModal.svelte.d.ts +1 -1
  113. package/package/components/SimpleEditor.svelte +46 -2
  114. package/package/components/Star.svelte +8 -12
  115. package/package/components/Star.svelte.d.ts +6 -19
  116. package/package/components/StringTypeNarrowing.svelte.d.ts +1 -1
  117. package/package/components/SuperadminSettingsInner.svelte +1 -1
  118. package/package/components/TemplateEditor.svelte +54 -29
  119. package/package/components/TemplateEditor.svelte.d.ts +13 -102
  120. package/package/components/TimeAgo.svelte +49 -7
  121. package/package/components/TimeAgo.svelte.d.ts +1 -0
  122. package/package/components/Toast.svelte +5 -1
  123. package/package/components/UserSettings.svelte +1 -1
  124. package/package/components/WorkerGroup.svelte +35 -20
  125. package/package/components/WorkerGroup.svelte.d.ts +1 -0
  126. package/package/components/WorkerTagPicker.svelte +1 -1
  127. package/package/components/WorkerTagSelect.svelte +5 -2
  128. package/package/components/WorkspaceTutorials.svelte +5 -0
  129. package/package/components/apps/components/buttons/AppButton.svelte +21 -6
  130. package/package/components/apps/components/buttons/AppForm.svelte +2 -1
  131. package/package/components/apps/components/buttons/AppFormButton.svelte +2 -1
  132. package/package/components/apps/components/display/InsertRowDrawerButton.svelte +1 -1
  133. package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +2 -5
  134. package/package/components/apps/components/display/dbtable/dbFeatures.d.ts +9 -0
  135. package/package/components/apps/components/display/dbtable/dbFeatures.js +32 -0
  136. package/package/components/apps/components/display/dbtable/metadata.d.ts +3 -3
  137. package/package/components/apps/components/display/dbtable/metadata.js +177 -148
  138. package/package/components/apps/components/display/dbtable/queries/alterTable.d.ts +46 -0
  139. package/package/components/apps/components/display/dbtable/queries/alterTable.js +322 -0
  140. package/package/components/apps/components/display/dbtable/queries/alterTable.test.d.ts +1 -0
  141. package/package/components/apps/components/display/dbtable/queries/alterTable.test.js +867 -0
  142. package/package/components/apps/components/display/dbtable/queries/createTable.d.ts +2 -24
  143. package/package/components/apps/components/display/dbtable/queries/createTable.js +13 -25
  144. package/package/components/apps/components/display/dbtable/queries/dbQueriesUtils.d.ts +9 -0
  145. package/package/components/apps/components/display/dbtable/queries/dbQueriesUtils.js +45 -0
  146. package/package/components/apps/components/display/dbtable/queries/relationalKeys.d.ts +45 -0
  147. package/package/components/apps/components/display/dbtable/queries/relationalKeys.js +401 -0
  148. package/package/components/apps/components/display/dbtable/queries/select.d.ts +2 -0
  149. package/package/components/apps/components/display/dbtable/queries/select.js +37 -6
  150. package/package/components/apps/components/display/dbtable/tableEditor.d.ts +35 -0
  151. package/package/components/apps/components/display/dbtable/tableEditor.js +67 -0
  152. package/package/components/apps/components/display/dbtable/utils.d.ts +2 -0
  153. package/package/components/apps/components/display/dbtable/utils.js +61 -36
  154. package/package/components/apps/components/display/table/AppAggridTable.svelte +8 -0
  155. package/package/components/apps/components/display/table/AppAggridTableActions.svelte +9 -9
  156. package/package/components/apps/components/display/table/AppAggridTableActions.svelte.d.ts +1 -1
  157. package/package/components/apps/components/helpers/HiddenComponent.svelte +1 -1
  158. package/package/components/apps/components/helpers/InputValue.svelte +1 -1
  159. package/package/components/apps/components/helpers/ResolveConfig.svelte +1 -1
  160. package/package/components/apps/components/helpers/RunnableComponent.svelte +3 -2
  161. package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +1 -1
  162. package/package/components/apps/components/helpers/RunnableWrapper.svelte +2 -2
  163. package/package/components/apps/components/inputs/AppMultiSelectV2.svelte +2 -4
  164. package/package/components/apps/editor/AppEditorHeader.svelte +8 -1
  165. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +32 -29
  166. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte.d.ts +2 -2
  167. package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte +4 -4
  168. package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte.d.ts +3 -3
  169. package/package/components/apps/editor/PublicApp.svelte +49 -30
  170. package/package/components/apps/editor/PublicApp.svelte.d.ts +1 -0
  171. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +77 -7
  172. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +2 -2
  173. package/package/components/apps/editor/inlineScriptsPanel/utils.d.ts +2 -2
  174. package/package/components/apps/editor/inlineScriptsPanel/utils.js +10 -1
  175. package/package/components/apps/inputType.d.ts +6 -1
  176. package/package/components/assets/AssetsDropdownButton.svelte +1 -1
  177. package/package/components/assets/AssetsUsageDrawer.svelte +98 -27
  178. package/package/components/assets/AssetsUsageDrawer.svelte.d.ts +5 -6
  179. package/package/components/assets/lib.d.ts +3 -2
  180. package/package/components/assets/lib.js +3 -1
  181. package/package/components/auditLogs/AuditLogsFilters.svelte +9 -17
  182. package/package/components/auditLogs/AuditLogsFilters.svelte.d.ts +1 -1
  183. package/package/components/common/CloseButton.svelte +2 -1
  184. package/package/components/common/CloseButton.svelte.d.ts +1 -0
  185. package/package/components/common/badge/CountBadge.svelte +4 -3
  186. package/package/components/common/badge/CountBadge.svelte.d.ts +1 -0
  187. package/package/components/common/button/Button.svelte +1 -1
  188. package/package/components/common/button/model.js +1 -1
  189. package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +1 -1
  190. package/package/components/common/confirmationModal/ConfirmationModal.svelte +2 -1
  191. package/package/components/common/confirmationModal/ConfirmationModal.svelte.d.ts +1 -0
  192. package/package/components/common/drawer/Drawer.svelte +4 -1
  193. package/package/components/common/drawer/DrawerContent.svelte +6 -3
  194. package/package/components/common/drawer/DrawerContent.svelte.d.ts +1 -0
  195. package/package/components/common/languageIcons/TypeScript.svelte +5 -3
  196. package/package/components/common/languageIcons/TypeScript.svelte.d.ts +1 -0
  197. package/package/components/common/modal/Modal.svelte +3 -3
  198. package/package/components/common/modal/Modal2.svelte +1 -0
  199. package/package/components/common/table/AppRow.svelte +4 -1
  200. package/package/components/common/table/FlowRow.svelte +4 -1
  201. package/package/components/common/table/RawAppRow.svelte +4 -1
  202. package/package/components/common/table/Row.svelte +11 -21
  203. package/package/components/common/table/Row.svelte.d.ts +4 -20
  204. package/package/components/common/table/RowIcon.svelte +6 -2
  205. package/package/components/common/table/RowIcon.svelte.d.ts +1 -1
  206. package/package/components/common/table/ScriptRow.svelte +4 -1
  207. package/package/components/copilot/autocomplete/Autocompletor.d.ts +1 -1
  208. package/package/components/copilot/autocomplete/Autocompletor.js +7 -6
  209. package/package/components/copilot/autocomplete/request.js +13 -9
  210. package/package/components/copilot/chat/AIButtonStyle.d.ts +1 -1
  211. package/package/components/copilot/chat/AIButtonStyle.js +2 -1
  212. package/package/components/copilot/chat/AIChat.svelte +3 -1
  213. package/package/components/copilot/chat/AIChatDisplay.svelte +89 -4
  214. package/package/components/copilot/chat/AIChatInput.svelte +275 -0
  215. package/package/components/copilot/chat/AIChatManager.svelte.js +107 -1
  216. package/package/components/copilot/chat/AiChatLayout.svelte +15 -30
  217. package/package/components/copilot/chat/AppAvailableContextList.svelte +263 -0
  218. package/package/components/copilot/chat/AppAvailableContextList.svelte.d.ts +13 -0
  219. package/package/components/copilot/chat/ContextElementBadge.svelte +44 -0
  220. package/package/components/copilot/chat/DatatableCreationPolicy.svelte +32 -33
  221. package/package/components/copilot/chat/ProviderModelSelector.svelte +1 -1
  222. package/package/components/copilot/chat/__tests__/app/appEvalHelpers.js +3 -0
  223. package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.js +4 -0
  224. package/package/components/copilot/chat/app/core.d.ts +56 -15
  225. package/package/components/copilot/chat/app/core.js +141 -22
  226. package/package/components/copilot/chat/context.d.ts +59 -2
  227. package/package/components/copilot/chat/context.js +6 -2
  228. package/package/components/copilot/chat/flow/FlowAIChat.svelte +22 -0
  229. package/package/components/copilot/chat/flow/core.d.ts +3 -1
  230. package/package/components/copilot/chat/flow/core.js +29 -2
  231. package/package/components/copilot/chat/flow/openFlow.json +1 -1
  232. package/package/components/copilot/chat/flow/openFlowZod.d.ts +1 -0
  233. package/package/components/copilot/chat/flow/openFlowZod.js +14 -2
  234. package/package/components/copilot/chat/script/core.d.ts +4 -1
  235. package/package/components/copilot/chat/script/core.js +43 -6
  236. package/package/components/copilot/chat/shared.d.ts +10 -0
  237. package/package/components/copilot/chat/shared.js +24 -0
  238. package/package/components/copilot/lib.d.ts +1 -1
  239. package/package/components/copilot/lib.js +2 -9
  240. package/package/components/copilot/utils.d.ts +5 -0
  241. package/package/components/copilot/utils.js +8 -0
  242. package/package/components/custom_ui.d.ts +2 -0
  243. package/package/components/dbOps.d.ts +18 -4
  244. package/package/components/dbOps.js +25 -3
  245. package/package/components/debug/DebugConsole.svelte +277 -0
  246. package/package/components/debug/DebugConsole.svelte.d.ts +13 -0
  247. package/package/components/debug/DebugPanel.svelte +97 -0
  248. package/package/components/debug/DebugPanel.svelte.d.ts +11 -0
  249. package/package/components/debug/DebugToolbar.svelte +148 -0
  250. package/package/components/debug/DebugToolbar.svelte.d.ts +17 -0
  251. package/package/components/debug/DebugVariableViewer.svelte +115 -0
  252. package/package/components/debug/DebugVariableViewer.svelte.d.ts +11 -0
  253. package/package/components/debug/MonacoDebugger.svelte +384 -0
  254. package/package/components/debug/MonacoDebugger.svelte.d.ts +15 -0
  255. package/package/components/debug/dapClient.d.ts +192 -0
  256. package/package/components/debug/dapClient.js +426 -0
  257. package/package/components/debug/debugUtils.d.ts +30 -0
  258. package/package/components/debug/debugUtils.js +131 -0
  259. package/package/components/debug/index.d.ts +75 -0
  260. package/package/components/debug/index.js +82 -0
  261. package/package/components/details/DetailPageHeader.svelte +21 -7
  262. package/package/components/details/DetailPageHeader.svelte.d.ts +2 -1
  263. package/package/components/details/DetailPageLayout.svelte +10 -1
  264. package/package/components/details/DetailPageLayout.svelte.d.ts +1 -0
  265. package/package/components/flows/CreateActionsApp.svelte +6 -4
  266. package/package/components/flows/DebounceLimit.svelte.d.ts +1 -1
  267. package/package/components/flows/FlowHistoryInner.svelte +15 -4
  268. package/package/components/flows/content/AgentToolWrapper.svelte +1 -1
  269. package/package/components/flows/content/FlowEditorDrawer.svelte +124 -0
  270. package/package/components/flows/content/FlowEditorDrawer.svelte.d.ts +22 -0
  271. package/package/components/flows/content/FlowInput.svelte +211 -37
  272. package/package/components/flows/content/FlowModuleComponent.svelte +553 -67
  273. package/package/components/flows/content/FlowModuleEarlyStop.svelte +8 -10
  274. package/package/components/flows/content/FlowModuleHeader.svelte +7 -4
  275. package/package/components/flows/content/FlowModuleWorkerTagSelect.svelte +1 -1
  276. package/package/components/flows/content/McpOAuthConnect.svelte +217 -0
  277. package/package/components/flows/content/McpOAuthConnect.svelte.d.ts +7 -0
  278. package/package/components/flows/content/McpToolEditor.svelte +50 -37
  279. package/package/components/flows/content/McpToolEditor.svelte.d.ts +0 -1
  280. package/package/components/flows/conversations/FlowChat.svelte +16 -2
  281. package/package/components/flows/conversations/FlowChat.svelte.d.ts +2 -1
  282. package/package/components/flows/conversations/FlowChatInterface.svelte +103 -6
  283. package/package/components/flows/conversations/FlowChatInterface.svelte.d.ts +2 -0
  284. package/package/components/flows/conversations/FlowChatManager.svelte.js +53 -21
  285. package/package/components/flows/conversations/FlowConversationsSidebar.svelte +79 -77
  286. package/package/components/flows/header/FlowImportExportMenu.svelte +1 -1
  287. package/package/components/flows/propPicker/OutputPickerInner.svelte.d.ts +1 -1
  288. package/package/components/flows/propPicker/PropPickerWrapper.svelte +3 -1
  289. package/package/components/flows/types.d.ts +2 -0
  290. package/package/components/git_sync/GitSyncRepositoryCard.svelte +16 -8
  291. package/package/components/graph/FlowGraphV2.svelte +7 -1
  292. package/package/components/graph/renderers/triggers/TriggersBadge.svelte +41 -24
  293. package/package/components/home/ItemsList.svelte +7 -6
  294. package/package/components/home/TutorialBanner.svelte +34 -18
  295. package/package/components/home/treeViewUtils.js +1 -1
  296. package/package/components/icons/CssIcon.svelte +20 -0
  297. package/package/components/icons/CssIcon.svelte.d.ts +7 -25
  298. package/package/components/icons/HtmlIcon.svelte +20 -0
  299. package/package/components/icons/HtmlIcon.svelte.d.ts +8 -0
  300. package/package/components/icons/JavaScriptIcon.svelte +10 -2
  301. package/package/components/icons/JavaScriptIcon.svelte.d.ts +1 -0
  302. package/package/components/icons/JsonIcon.svelte +8 -2
  303. package/package/components/icons/JsonIcon.svelte.d.ts +1 -0
  304. package/package/components/icons/LessIcon.svelte +16 -0
  305. package/package/components/icons/LessIcon.svelte.d.ts +8 -0
  306. package/package/components/icons/MarkdownIcon.svelte +20 -0
  307. package/package/components/icons/MarkdownIcon.svelte.d.ts +8 -0
  308. package/package/components/icons/NextcloudIcon.svelte +3 -2
  309. package/package/components/icons/NextcloudIcon.svelte.d.ts +2 -0
  310. package/package/components/icons/PocketIdIcon.svelte +9 -0
  311. package/package/components/icons/PocketIdIcon.svelte.d.ts +9 -0
  312. package/package/components/icons/ReactIcon.svelte +10 -2
  313. package/package/components/icons/ReactIcon.svelte.d.ts +1 -0
  314. package/package/components/icons/SassIcon.svelte +28 -0
  315. package/package/components/icons/SassIcon.svelte.d.ts +8 -0
  316. package/package/components/icons/SvelteIcon.svelte +10 -2
  317. package/package/components/icons/SvelteIcon.svelte.d.ts +1 -0
  318. package/package/components/icons/VueIcon.svelte +10 -2
  319. package/package/components/icons/VueIcon.svelte.d.ts +1 -0
  320. package/package/components/icons/YamlIcon.svelte +20 -0
  321. package/package/components/icons/YamlIcon.svelte.d.ts +8 -0
  322. package/package/components/icons/index.js +3 -1
  323. package/package/components/instanceSettings/SecretBackendConfig.svelte +514 -0
  324. package/package/components/instanceSettings/SecretBackendConfig.svelte.d.ts +8 -0
  325. package/package/components/instanceSettings.d.ts +2 -1
  326. package/package/components/instanceSettings.js +33 -1
  327. package/package/components/jobs/JobPreview.svelte +46 -39
  328. package/package/components/jobs/JobPreview.svelte.d.ts +1 -0
  329. package/package/components/monacoLanguagesOptions.js +16 -15
  330. package/package/components/propertyPicker/PropPicker.svelte +16 -2
  331. package/package/components/propertyPicker/PropPicker.svelte.d.ts +2 -0
  332. package/package/components/raw_apps/DefaultDatabaseSelector.svelte +9 -5
  333. package/package/components/raw_apps/FileEditorIcon.svelte +12 -7
  334. package/package/components/raw_apps/FileEditorIcon.svelte.d.ts +2 -0
  335. package/package/components/raw_apps/FileTreeNode.svelte +119 -83
  336. package/package/components/raw_apps/RawAppBackgroundRunner.svelte +88 -8
  337. package/package/components/raw_apps/RawAppDataTableDrawer.svelte +1 -3
  338. package/package/components/raw_apps/RawAppDataTableList.svelte +12 -9
  339. package/package/components/raw_apps/RawAppEditor.svelte +218 -68
  340. package/package/components/raw_apps/RawAppEditorHeader.svelte +33 -16
  341. package/package/components/raw_apps/RawAppHistoryList.svelte +264 -80
  342. package/package/components/raw_apps/RawAppHistoryList.svelte.d.ts +1 -0
  343. package/package/components/raw_apps/RawAppHistoryManager.svelte.d.ts +15 -1
  344. package/package/components/raw_apps/RawAppHistoryManager.svelte.js +46 -12
  345. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +549 -47
  346. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +31 -5
  347. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte +25 -18
  348. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte.d.ts +1 -0
  349. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +141 -10
  350. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte.d.ts +8 -0
  351. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte +2 -1
  352. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte.d.ts +9 -1
  353. package/package/components/raw_apps/RawAppInputsSpecEditor.svelte +47 -3
  354. package/package/components/raw_apps/RawAppInputsSpecEditor.svelte.d.ts +2 -2
  355. package/package/components/raw_apps/RawAppModules.svelte +13 -7
  356. package/package/components/raw_apps/RawAppPreview.svelte +48 -6
  357. package/package/components/raw_apps/RawAppSidebar.svelte +194 -125
  358. package/package/components/raw_apps/RawAppSidebar.svelte.d.ts +1 -0
  359. package/package/components/raw_apps/RunnableRow.svelte +41 -0
  360. package/package/components/raw_apps/RunnableRow.svelte.d.ts +11 -0
  361. package/package/components/raw_apps/datatableUtils.svelte.js +1 -1
  362. package/package/components/raw_apps/utils.d.ts +1 -1
  363. package/package/components/raw_apps/utils.js +76 -18
  364. package/package/components/runs/ManuelDatePicker.svelte +3 -3
  365. package/package/components/runs/ManuelDatePicker.svelte.d.ts +3 -3
  366. package/package/components/runs/NoWorkerWithTagWarning.svelte +5 -1
  367. package/package/components/runs/RunsFilter.svelte +75 -63
  368. package/package/components/runs/RunsFilter.svelte.d.ts +35 -4
  369. package/package/components/runs/RunsQueue.svelte.d.ts +1 -1
  370. package/package/components/runs/RunsTable.svelte +1 -1
  371. package/package/components/runs/RunsTable.svelte.d.ts +1 -1
  372. package/package/components/runs/useJobsLoader.svelte.d.ts +34 -0
  373. package/package/components/runs/useJobsLoader.svelte.js +507 -0
  374. package/package/components/schema/EditableSchemaWrapper.svelte +2 -2
  375. package/package/components/scriptEditor/LogPanel.svelte +17 -2
  376. package/package/components/scriptEditor/LogPanel.svelte.d.ts +2 -0
  377. package/package/components/select/MultiSelect.svelte +1 -1
  378. package/package/components/select/SelectDropdown.svelte +17 -5
  379. package/package/components/settings/AIPromptsModal.svelte +88 -0
  380. package/package/components/settings/AIPromptsModal.svelte.d.ts +11 -0
  381. package/package/components/settings/ChangeWorkspaceColor.svelte +4 -3
  382. package/package/components/settings/ChangeWorkspaceId.svelte +16 -11
  383. package/package/components/settings/ChangeWorkspaceName.svelte +7 -6
  384. package/package/components/settings/CreateToken.svelte +4 -4
  385. package/package/components/settings/UserAIPromptsSettings.svelte +56 -15
  386. package/package/components/settings/WorkspaceOperatorSettings.svelte +68 -85
  387. package/package/components/settings/WorkspaceUserSettings.svelte +537 -411
  388. package/package/components/sidebar/MenuButton.svelte +54 -24
  389. package/package/components/sidebar/MenuButton.svelte.d.ts +2 -0
  390. package/package/components/sidebar/MultiplayerMenu.svelte +4 -4
  391. package/package/components/sidebar/OperatorMenu.svelte +63 -88
  392. package/package/components/sidebar/SidebarContent.svelte +39 -6
  393. package/package/components/sidebar/UserMenu.svelte +3 -3
  394. package/package/components/sidebar/WorkspaceMenu.svelte +35 -85
  395. package/package/components/sqlTypeService.js +4 -3
  396. package/package/components/table/DataTable.svelte +8 -3
  397. package/package/components/table/DataTable.svelte.d.ts +2 -0
  398. package/package/components/text_input/TextInput.svelte +3 -0
  399. package/package/components/text_input/TextInput.svelte.d.ts +2 -0
  400. package/package/components/triggers/AddTriggersButton.svelte +17 -4
  401. package/package/components/triggers/TriggersEditor.svelte +4 -0
  402. package/package/components/triggers/TriggersWrapper.svelte +14 -0
  403. package/package/components/triggers/native/NativeTriggerEditor.svelte +379 -0
  404. package/package/components/triggers/native/NativeTriggerEditor.svelte.d.ts +26 -0
  405. package/package/components/triggers/native/NativeTriggerTable.svelte +155 -0
  406. package/package/components/triggers/native/NativeTriggerTable.svelte.d.ts +16 -0
  407. package/package/components/triggers/native/NativeTriggersPanel.svelte +40 -0
  408. package/package/components/triggers/native/NativeTriggersPanel.svelte.d.ts +15 -0
  409. package/package/components/triggers/native/services/nextcloud/NextcloudTriggerForm.svelte +104 -0
  410. package/package/components/triggers/native/services/nextcloud/NextcloudTriggerForm.svelte.d.ts +18 -0
  411. package/package/components/triggers/native/utils.d.ts +74 -0
  412. package/package/components/triggers/native/utils.js +152 -0
  413. package/package/components/triggers/triggers.svelte.d.ts +2 -1
  414. package/package/components/triggers/triggers.svelte.js +36 -8
  415. package/package/components/triggers/utils.js +18 -6
  416. package/package/components/triggers.d.ts +1 -1
  417. package/package/components/tutorials/FlowBuilderLiveTutorial.svelte +6 -35
  418. package/package/components/tutorials/RunsTutorial.svelte +399 -0
  419. package/package/components/{schema/SchemaPicker.svelte.d.ts → tutorials/RunsTutorial.svelte.d.ts} +11 -12
  420. package/package/components/tutorials/TroubleshootFlowTutorial.svelte +5 -20
  421. package/package/components/tutorials/utils.d.ts +16 -0
  422. package/package/components/tutorials/utils.js +96 -0
  423. package/package/components/tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte +133 -0
  424. package/package/components/{SavedInputs.svelte.d.ts → tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte.d.ts} +8 -11
  425. package/package/components/vscode.js +6 -6
  426. package/package/components/workspace/WorkspaceCard.svelte +184 -0
  427. package/package/components/workspace/WorkspaceCard.svelte.d.ts +24 -0
  428. package/package/components/workspace/WorkspaceIcon.svelte +21 -0
  429. package/package/components/workspace/WorkspaceIcon.svelte.d.ts +9 -0
  430. package/package/components/workspace/WorkspaceTreeView.svelte +331 -0
  431. package/package/components/workspace/WorkspaceTreeView.svelte.d.ts +15 -0
  432. package/package/components/workspaceSettings/AISettings.svelte +147 -108
  433. package/package/components/workspaceSettings/CreateWorkspace.svelte +26 -12
  434. package/package/components/workspaceSettings/CustomInstanceDbSelect.svelte +1 -0
  435. package/package/components/workspaceSettings/CustomInstanceDbWizardModal.svelte +3 -1
  436. package/package/components/workspaceSettings/DataTableSettings.svelte +2 -1
  437. package/package/components/workspaceSettings/DucklakeSettings.svelte +54 -26
  438. package/package/components/workspaceSettings/DucklakeSettings.svelte.d.ts +2 -1
  439. package/package/components/workspaceSettings/ModelTokenLimits.svelte +14 -18
  440. package/package/components/workspaceSettings/OAuthClientConfig.svelte +180 -0
  441. package/package/components/workspaceSettings/OAuthClientConfig.svelte.d.ts +14 -0
  442. package/package/components/workspaceSettings/StorageSettings.svelte +285 -241
  443. package/package/components/workspaceSettings/StorageSettings.svelte.d.ts +1 -0
  444. package/package/components/workspaceSettings/WorkspaceIntegrations.svelte +302 -0
  445. package/package/components/workspaceSettings/WorkspaceIntegrations.svelte.d.ts +3 -0
  446. package/package/consts.js +4 -3
  447. package/package/gen/core/OpenAPI.js +1 -1
  448. package/package/gen/schemas.gen.d.ts +517 -4
  449. package/package/gen/schemas.gen.js +523 -4
  450. package/package/gen/services.gen.d.ts +359 -22
  451. package/package/gen/services.gen.js +702 -44
  452. package/package/gen/types.gen.d.ts +1501 -121
  453. package/package/hub.js +2 -2
  454. package/package/hubPaths.json +3 -2
  455. package/package/infer.js +2 -0
  456. package/package/logout.d.ts +0 -2
  457. package/package/logout.js +2 -23
  458. package/package/logoutKit.d.ts +2 -0
  459. package/package/logoutKit.js +26 -0
  460. package/package/monaco_workers/graphql.worker.bundle.js +121 -121
  461. package/package/navigation.d.ts +1 -1
  462. package/package/rawAppWmillTs.d.ts +11 -0
  463. package/package/rawAppWmillTs.js +38 -1
  464. package/package/refreshUser.d.ts +5 -1
  465. package/package/refreshUser.js +20 -30
  466. package/package/storeUtils.js +2 -0
  467. package/package/svelte5Utils.svelte.d.ts +68 -1
  468. package/package/svelte5Utils.svelte.js +193 -2
  469. package/package/svelte5UtilsKit.svelte.d.ts +3 -0
  470. package/package/svelte5UtilsKit.svelte.js +30 -0
  471. package/package/tutorialUtils.js +0 -4
  472. package/package/tutorials/config.js +31 -3
  473. package/package/tutorials/roleUtils.d.ts +1 -1
  474. package/package/tutorials/roleUtils.js +6 -2
  475. package/package/utils.js +162 -1
  476. package/package.json +1 -1
  477. package/package/components/SavedInputs.svelte +0 -416
  478. package/package/components/runs/JobsLoader.svelte +0 -468
  479. package/package/components/runs/JobsLoader.svelte.d.ts +0 -49
  480. package/package/components/schema/SchemaPicker.svelte +0 -92
@@ -1,6 +1,7 @@
1
1
  <script module>
2
2
  import '@codingame/monaco-vscode-standalone-languages'
3
3
  import '@codingame/monaco-vscode-standalone-typescript-language-features'
4
+ import { typescriptDefaults } from '@codingame/monaco-vscode-standalone-typescript-language-features'
4
5
  </script>
5
6
 
6
7
  <script lang="ts">import { BROWSER } from 'esm-env';
@@ -23,7 +24,8 @@ import { createHash as randomHash } from '../editorLangUtils';
23
24
  import { workspaceStore } from '../stores';
24
25
  import { ResourceService, UserService, WorkspaceService } from '../gen';
25
26
  import { initializeVscode, keepModelAroundToAvoidDisposalOfWorkers, MONACO_Y_PADDING } from './vscode';
26
- import { initializeMode } from 'monaco-graphql/esm/initializeMode.js';
27
+ // import { initializeMode } from 'monaco-graphql/esm/initializeMode.js'
28
+ // import type { MonacoGraphQLAPI } from 'monaco-graphql/esm/api.js'
27
29
  import { editor as meditor, languages, KeyCode, KeyMod, Uri as mUri } from 'monaco-editor';
28
30
  import EditorTheme from './EditorTheme.svelte';
29
31
  import { BIGQUERY_TYPES, DUCKDB_TYPES, MSSQL_TYPES, MYSQL_TYPES, ORACLEDB_TYPES, POSTGRES_TYPES, SNOWFLAKE_TYPES } from '../consts';
@@ -77,7 +79,7 @@ let lastWsAttempt = new Date();
77
79
  let nbWsAttempt = 0;
78
80
  let disposeMethod;
79
81
  const dispatch = createEventDispatcher();
80
- let graphqlService = undefined;
82
+ // let graphqlService: MonacoGraphQLAPI | undefined = undefined
81
83
  let dbSchema = $state(undefined);
82
84
  let destroyed = false;
83
85
  const uri = computeUri(untrack(() => filePath), scriptLang);
@@ -316,6 +318,24 @@ export async function format() {
316
318
  export function getScriptLang() {
317
319
  return scriptLang;
318
320
  }
321
+ export function getEditor() {
322
+ return editor;
323
+ }
324
+ /** Get lint errors and warnings from the Monaco editor */
325
+ export function getLintErrors() {
326
+ if (!model) {
327
+ return { errorCount: 0, warningCount: 0, errors: [], warnings: [] };
328
+ }
329
+ const markers = meditor.getModelMarkers({ resource: model.uri });
330
+ const errors = markers.filter((m) => m.severity === MarkerSeverity.Error);
331
+ const warnings = markers.filter((m) => m.severity === MarkerSeverity.Warning);
332
+ return {
333
+ errorCount: errors.length,
334
+ warningCount: warnings.length,
335
+ errors,
336
+ warnings
337
+ };
338
+ }
319
339
  let command = undefined;
320
340
  let sqlTypeCompletor = $state(undefined);
321
341
  let resultCollectionCompletor = $state(undefined);
@@ -410,16 +430,7 @@ async function updateSchema(newSchemaRes) {
410
430
  const resourcePath = newSchemaRes.replace('$res:', '');
411
431
  dbSchema = $dbSchemas[resourcePath];
412
432
  if (dbSchema === undefined) {
413
- if (lang === 'graphql') {
414
- await getDbSchemas('graphql', resourcePath, $workspaceStore, $dbSchemas, (e) => {
415
- console.error('error getting graphql db schema', e);
416
- });
417
- }
418
- else if (lang === 'sql') {
419
- await getDbSchemas(scriptLang ?? '', resourcePath, $workspaceStore, $dbSchemas, (e) => {
420
- console.error(`error getting SQL (${scriptLang}) db schema`, e);
421
- });
422
- }
433
+ $dbSchemas[resourcePath] = await getDbSchemas(lang === 'graphql' ? 'graphql' : (scriptLang ?? ''), resourcePath, $workspaceStore, (e) => console.error(`error getting ${lang} (${scriptLang}) db schema`, e));
423
434
  }
424
435
  dbSchema = $dbSchemas[resourcePath];
425
436
  }
@@ -431,7 +442,7 @@ function disposeSqlSchemaCompletor() {
431
442
  sqlSchemaCompletor?.dispose();
432
443
  }
433
444
  function disposeGaphqlService() {
434
- graphqlService = undefined;
445
+ // graphqlService = undefined
435
446
  }
436
447
  function addDBSchemaCompletions() {
437
448
  const { lang: schemaLang, schema } = dbSchema || {};
@@ -440,14 +451,16 @@ function addDBSchemaCompletions() {
440
451
  }
441
452
  console.log('adding db schema completions', schemaLang);
442
453
  if (schemaLang === 'graphql') {
443
- graphqlService ||= initializeMode();
444
- console.log('setting schema config', schema);
445
- graphqlService?.setSchemaConfig([
446
- {
447
- uri: 'my-schema.graphql',
448
- introspectionJSON: schema
449
- }
450
- ]);
454
+ //graphql depreciated until https://github.com/graphql/graphiql/issues/4104 is fixed with monaco > 0.52.2
455
+ // languages.register({ id: 'graphql' })
456
+ // graphqlService ||= initializeMode()
457
+ // console.log('setting schema config', schema)
458
+ // graphqlService?.setSchemaConfig([
459
+ // {
460
+ // uri: 'my-schema.graphql',
461
+ // introspectionJSON: schema
462
+ // }
463
+ // ])
451
464
  }
452
465
  else {
453
466
  if (sqlSchemaCompletor) {
@@ -1067,7 +1080,7 @@ async function loadMonaco() {
1067
1080
  editor = meditor.create(divEl, {
1068
1081
  ...editorConfig(code ?? '', lang, automaticLayout, fixedOverflowWidgets, $relativeLineNumbers),
1069
1082
  model,
1070
- fontSize: !small ? 14 : 12,
1083
+ fontSize: !small ? 13.5 : 12,
1071
1084
  lineNumbersMinChars,
1072
1085
  // overflowWidgetsDomNode: widgets,
1073
1086
  tabSize: lang == 'python' ? 4 : 2,
@@ -1084,6 +1097,38 @@ async function loadMonaco() {
1084
1097
  return;
1085
1098
  }
1086
1099
  keepModelAroundToAvoidDisposalOfWorkers();
1100
+ // In VSCode webview (iframe), clipboard operations need special handling
1101
+ // because the webview has restricted clipboard API access
1102
+ if (window.parent !== window) {
1103
+ editor.addCommand(KeyMod.CtrlCmd | KeyCode.KeyC, function () {
1104
+ document.execCommand('copy');
1105
+ });
1106
+ editor.addCommand(KeyMod.CtrlCmd | KeyCode.KeyX, function () {
1107
+ document.execCommand('cut');
1108
+ });
1109
+ editor.addCommand(KeyMod.CtrlCmd | KeyCode.KeyV, async function () {
1110
+ try {
1111
+ // Use Clipboard API to read text, then insert via Monaco's API
1112
+ const text = await navigator.clipboard.readText();
1113
+ if (text && editor) {
1114
+ const selection = editor.getSelection();
1115
+ if (selection) {
1116
+ editor.executeEdits('paste', [
1117
+ {
1118
+ range: selection,
1119
+ text: text,
1120
+ forceMoveMarkers: true
1121
+ }
1122
+ ]);
1123
+ }
1124
+ }
1125
+ }
1126
+ catch (e) {
1127
+ // Clipboard API failed, try execCommand as fallback
1128
+ document.execCommand('paste');
1129
+ }
1130
+ });
1131
+ }
1087
1132
  // updateEditorKeybindingsMode(editor, 'vim', undefined)
1088
1133
  // Raw app lint collection: listen for marker changes and report to store
1089
1134
  let markerChangeDisposable = undefined;
@@ -1235,7 +1280,7 @@ function setTypescriptCustomTypes() {
1235
1280
  : 'string';
1236
1281
  const isDucklakeOptional = ducklakeNames.includes('main');
1237
1282
  const isDataTableOptional = datatableNames.includes('main');
1238
- let disposeTs = languages.typescript.typescriptDefaults.addExtraLib(`export {};
1283
+ let disposeTs = typescriptDefaults.addExtraLib(`export {};
1239
1284
  declare module 'windmill-client' {
1240
1285
  import { type DatatableSqlTemplateFunction, type SqlTemplateFunction } from 'windmill-client';
1241
1286
  export function ducklake(name${isDucklakeOptional ? '?' : ''}: ${ducklakeNameType}): SqlTemplateFunction;
@@ -1255,13 +1300,13 @@ async function setTypescriptRTNamespace() {
1255
1300
  workspace: $workspaceStore ?? ''
1256
1301
  });
1257
1302
  const namespace = formatResourceTypes(resourceTypes, scriptLang === 'bunnative' ? 'bun' : scriptLang);
1258
- languages.typescript.typescriptDefaults.addExtraLib(namespace, 'rt.d.ts');
1303
+ typescriptDefaults.addExtraLib(namespace, 'rt.d.ts');
1259
1304
  }
1260
1305
  }
1261
1306
  async function setTypescriptExtraLibs() {
1262
1307
  if (extraLib) {
1263
1308
  const uri = mUri.parse('file:///extraLib.d.ts');
1264
- languages.typescript.typescriptDefaults.addExtraLib(extraLib, uri.toString());
1309
+ typescriptDefaults.addExtraLib(extraLib, uri.toString());
1265
1310
  }
1266
1311
  if (lang === 'typescript' &&
1267
1312
  (scriptLang == 'bun' || scriptLang == 'tsx' || scriptLang == 'bunnative') &&
@@ -1271,7 +1316,7 @@ async function setTypescriptExtraLibs() {
1271
1316
  const path = 'file://' + _path;
1272
1317
  let uri = mUri.parse(path);
1273
1318
  console.log('adding library to runtime', path);
1274
- languages.typescript.typescriptDefaults.addExtraLib(code, path);
1319
+ typescriptDefaults.addExtraLib(code, path);
1275
1320
  try {
1276
1321
  await vscode.workspace.fs.writeFile(uri, new TextEncoder().encode(code));
1277
1322
  }
@@ -6,6 +6,7 @@ import { editor as meditor, type IDisposable } from 'monaco-editor';
6
6
  import { type DepsToGet } from '../ata/index';
7
7
  import { type InferAssetsSqlQueryDetails } from '../infer';
8
8
  import { AIChatEditorHandler, type ReviewChangesOpts } from './copilot/chat/monaco-adapter';
9
+ import type { ScriptLintResult } from './copilot/chat/shared';
9
10
  interface Props {
10
11
  code?: string;
11
12
  cmdEnterAction?: (() => void) | undefined;
@@ -79,6 +80,8 @@ declare const Editor: $$__sveltets_2_IsomorphicComponent<Props, {
79
80
  append: (code: string) => void;
80
81
  format: () => Promise<void>;
81
82
  getScriptLang: () => string | undefined;
83
+ getEditor: () => meditor.IStandaloneCodeEditor | null;
84
+ getLintErrors: () => ScriptLintResult;
82
85
  reviewAndApplyCode: (code: string, opts?: ReviewChangesOpts) => Promise<void>;
83
86
  reviewAppliedCode: (originalCode: string, opts?: {
84
87
  onFinishedReview?: () => void;
@@ -928,7 +928,7 @@ JsonNode ${windmillPathToCamelCaseName(path)} = JsonNode.Parse(await client.GetS
928
928
  {#if customUi?.diffMode != false}
929
929
  <div class="flex items-center px-3">
930
930
  <Toggle
931
- options={{ right: '' }}
931
+ options={{ right: 'Diff' }}
932
932
  size="sm"
933
933
  checked={diffMode}
934
934
  disabled={!lastDeployedCode}
@@ -2,7 +2,7 @@
2
2
 
3
3
  <script lang="ts">import { getOS } from '../utils';
4
4
  import { MONACO_Y_PADDING } from './vscode';
5
- let { code, autoheight = false, lineNumbersWidth = 0, lineNumbersOffset = 0, class: className = '', showNumbers = true, fontSize = 14 } = $props();
5
+ let { code, autoheight = false, lineNumbersWidth = 0, lineNumbersOffset = 0, class: className = '', showNumbers = true, fontSize = 13.5 } = $props();
6
6
  let yPadding = MONACO_Y_PADDING;
7
7
  // https://github.com/microsoft/vscode/blob/baa2dad3cdacd97ac02eff0604984faf1167ff1e/src/vs/editor/common/config/editorOptions.ts#L5421
8
8
  const DEFAULT_WINDOWS_FONT_FAMILY = "Consolas, 'Courier New', monospace";
@@ -12,6 +12,7 @@ import CenteredPage from './CenteredPage.svelte';
12
12
  import { Badge, Button, UndoRedo } from './common';
13
13
  import FlowEditor from './flows/FlowEditor.svelte';
14
14
  import ScriptEditorDrawer from './flows/content/ScriptEditorDrawer.svelte';
15
+ import FlowEditorDrawer from './flows/content/FlowEditorDrawer.svelte';
15
16
  import { dfs as dfsApply } from './flows/dfs';
16
17
  import FlowImportExportMenu from './flows/header/FlowImportExportMenu.svelte';
17
18
  import FlowPreviewButtons from './flows/header/FlowPreviewButtons.svelte';
@@ -460,6 +461,7 @@ export function getSelectedId() {
460
461
  }
461
462
  const previewArgsStore = $state({ val: initialArgs });
462
463
  const scriptEditorDrawer = writable(undefined);
464
+ const flowEditorDrawer = writable(undefined);
463
465
  const moving = writable(undefined);
464
466
  const history = initHistory(flowStore.val);
465
467
  const pathStore = writable(pathStoreInit ?? initialPath);
@@ -483,6 +485,7 @@ setContext('FlowEditorContext', {
483
485
  currentEditor: writable(undefined),
484
486
  previewArgs: previewArgsStore,
485
487
  scriptEditorDrawer,
488
+ flowEditorDrawer,
486
489
  moving,
487
490
  history,
488
491
  flowStateStore,
@@ -780,6 +783,7 @@ const flowHasChanged = $derived(flowPreviewContent?.flowHasChanged());
780
783
  <FlowYamlEditor bind:drawer={yamlEditorDrawer} />
781
784
  <FlowImportExportMenu bind:drawer={jsonViewerDrawer} />
782
785
  <ScriptEditorDrawer bind:this={$scriptEditorDrawer} />
786
+ <FlowEditorDrawer bind:this={$flowEditorDrawer} />
783
787
 
784
788
  <div class="flex flex-col flex-1 h-screen">
785
789
  <!-- Nav between steps-->
@@ -936,17 +940,19 @@ const flowHasChanged = $derived(flowPreviewContent?.flowHasChanged());
936
940
  showJobStatus = true
937
941
  }}
938
942
  />
939
- <Button
940
- loading={loadingDraft}
941
- unifiedSize="md"
942
- variant="accent"
943
- startIcon={{ icon: Save }}
944
- on:click={() => saveDraft()}
945
- disabled={(!newFlow && !savedFlow) || loading}
946
- shortCut={{ key: 'S' }}
947
- >
948
- Draft
949
- </Button>
943
+ {#if customUi?.topBar?.draft !== false}
944
+ <Button
945
+ loading={loadingDraft}
946
+ unifiedSize="md"
947
+ variant="accent"
948
+ startIcon={{ icon: Save }}
949
+ on:click={() => saveDraft()}
950
+ disabled={(!newFlow && !savedFlow) || loading}
951
+ shortCut={{ key: 'S' }}
952
+ >
953
+ Draft
954
+ </Button>
955
+ {/if}
950
956
 
951
957
  <DeployButton
952
958
  on:save={async ({ detail }) => await handleSaveFlow(detail)}
@@ -0,0 +1,37 @@
1
+ <script lang="ts">import { Loader2 } from 'lucide-svelte';
2
+ import Tabs from './common/tabs/Tabs.svelte';
3
+ import Tab from './common/tabs/Tab.svelte';
4
+ let { beforeYaml, afterYaml } = $props();
5
+ let diffMode = $state('graph');
6
+ </script>
7
+
8
+ <div class="flex flex-col h-full min-h-[500px] gap-2">
9
+ <Tabs bind:selected={diffMode}>
10
+ <Tab value="graph" label="Graph" />
11
+ <Tab value="yaml" label="YAML" />
12
+ </Tabs>
13
+
14
+ <div class="flex-1 min-h-0">
15
+ {#if diffMode === 'yaml'}
16
+ {#await import('./DiffEditor.svelte')}
17
+ <Loader2 class="animate-spin" />
18
+ {:then Module}
19
+ <Module.default
20
+ open={true}
21
+ automaticLayout
22
+ className="h-full min-h-[400px]"
23
+ defaultLang="yaml"
24
+ defaultOriginal={beforeYaml}
25
+ defaultModified={afterYaml}
26
+ readOnly
27
+ />
28
+ {/await}
29
+ {:else}
30
+ {#await import('./FlowGraphDiffViewer.svelte')}
31
+ <Loader2 class="animate-spin" />
32
+ {:then Module}
33
+ <Module.default {beforeYaml} {afterYaml} />
34
+ {/await}
35
+ {/if}
36
+ </div>
37
+ </div>
@@ -0,0 +1,7 @@
1
+ interface Props {
2
+ beforeYaml: string;
3
+ afterYaml: string;
4
+ }
5
+ declare const FlowDiffViewer: import("svelte").Component<Props, {}, "">;
6
+ type FlowDiffViewer = ReturnType<typeof FlowDiffViewer>;
7
+ export default FlowDiffViewer;
@@ -12,14 +12,17 @@ export let noGraph = false;
12
12
  export let triggerNode = false;
13
13
  export let stepDetail = undefined;
14
14
  export let workspace = $workspaceStore;
15
+ export let minHeight = 400;
16
+ export let noBorder = false;
15
17
  const dispatch = createEventDispatcher();
16
18
  </script>
17
19
 
18
20
  <div class="grid grid-cols-3 w-full h-full">
19
21
  {#if !noGraph}
20
22
  <div
21
- class="{noSide ? 'col-span-3' : 'sm:col-span-2 col-span-3'} w-full border max-h-full"
23
+ class="{noSide ? 'col-span-3' : 'sm:col-span-2 col-span-3'} w-full max-h-full"
22
24
  class:overflow-auto={overflowAuto}
25
+ class:border={!noBorder}
23
26
  >
24
27
  <FlowGraphV2
25
28
  {triggerNode}
@@ -27,7 +30,7 @@ const dispatch = createEventDispatcher();
27
30
  cache={flow.value.cache_ttl !== undefined}
28
31
  path={flow?.path}
29
32
  {download}
30
- minHeight={400}
33
+ {minHeight}
31
34
  {workspace}
32
35
  modules={flow?.value?.modules}
33
36
  failureModule={flow?.value?.failure_module}
@@ -27,6 +27,8 @@ declare const FlowGraphViewer: $$__sveltets_2_IsomorphicComponent<{
27
27
  triggerNode?: boolean;
28
28
  stepDetail?: FlowModule | string | undefined;
29
29
  workspace?: string | undefined;
30
+ minHeight?: number;
31
+ noBorder?: boolean;
30
32
  }, {
31
33
  triggerDetail: CustomEvent<any>;
32
34
  select: CustomEvent<any>;
@@ -30,6 +30,6 @@ declare const FlowLoopIterationPreview: $$__sveltets_2_IsomorphicComponent<Props
30
30
  whileLoopSchema: Schema;
31
31
  test: () => void;
32
32
  runPreview: (args: Record<string, any>, restartedFrom: RestartedFrom | undefined) => Promise<void>;
33
- }, "jobId" | "previewArgs" | "job">;
33
+ }, "job" | "jobId" | "previewArgs">;
34
34
  type FlowLoopIterationPreview = InstanceType<typeof FlowLoopIterationPreview>;
35
35
  export default FlowLoopIterationPreview;
@@ -299,12 +299,13 @@ export function flowHasChanged() {
299
299
  <div class="flex flex-row justify-center w-full">
300
300
  <FlowChat
301
301
  useStreaming={shouldUseStreaming}
302
- onRunFlow={async (userMessage, conversationId) => {
303
- await runPreview({ user_message: userMessage }, undefined, conversationId)
302
+ onRunFlow={async (userMessage, conversationId, additionalInputs) => {
303
+ await runPreview({ user_message: userMessage, ...(additionalInputs ?? {}) }, undefined, conversationId)
304
304
  return jobId ?? ''
305
305
  }}
306
306
  hideSidebar={true}
307
307
  path={$pathStore}
308
+ inputSchema={flowStore.val.schema}
308
309
  />
309
310
  </div>
310
311
  {:else}
@@ -57,6 +57,6 @@ declare const FlowPreviewContent: $$__sveltets_2_IsomorphicComponent<Props, {
57
57
  getIsOwner: () => boolean;
58
58
  getJob: () => Job | undefined;
59
59
  flowHasChanged: () => boolean;
60
- }, "initial" | "preventEscape" | "jobId" | "scrollTop" | "job" | "localModuleStates" | "localDurationStatuses" | "rightColumnSelect" | "selectedJobStep" | "selectedJobStepType" | "previewMode" | "selectedJobStepIsTopLevel" | "branchOrIterationN">;
60
+ }, "job" | "initial" | "preventEscape" | "jobId" | "scrollTop" | "localModuleStates" | "localDurationStatuses" | "rightColumnSelect" | "selectedJobStep" | "selectedJobStepType" | "previewMode" | "selectedJobStepIsTopLevel" | "branchOrIterationN">;
61
61
  type FlowPreviewContent = InstanceType<typeof FlowPreviewContent>;
62
62
  export default FlowPreviewContent;
@@ -5,10 +5,6 @@ import FlowStatusWaitingForEvents from './FlowStatusWaitingForEvents.svelte';
5
5
  import { emptyString } from '../utils';
6
6
  import Badge from './common/badge/Badge.svelte';
7
7
  let { job, workspaceId, isOwner, hideFlowResult, hideDownloadLogs, innerModules, suspendStatus, hideJobId, extra, result_streams } = $props();
8
- // Sometimes the approval form is duplicated but I can't reproduce the issue
9
- // This is a temporary debug log to try to catch it when it happens
10
- // (See the #each below)
11
- $effect(() => console.log('suspendStatusVal', Object.entries(suspendStatus.val || {}).map(([k, v]) => [k, v.job.id])));
12
8
  </script>
13
9
 
14
10
  <FlowPreviewStatus {job} {hideJobId} {extra} />
@@ -4,8 +4,7 @@ import { Play, RefreshCw } from 'lucide-svelte';
4
4
  import { FlowService, JobService } from '../gen';
5
5
  import { workspaceStore } from '../stores';
6
6
  import { emptyString, sendUserToast } from '../utils';
7
- import { goto } from '../navigation';
8
- let { jobId, selectedJobStep, selectedJobStepType, restartBranchNames = [], flowPath = undefined, disabled = false, enterpriseOnly = false, variant = 'default', unifiedSize = 'md', onRestart } = $props();
7
+ let { jobId, selectedJobStep, selectedJobStepType, restartBranchNames = [], flowPath = undefined, disabled = false, enterpriseOnly = false, variant = 'default', unifiedSize = 'md', onRestart, onRestartComplete } = $props();
9
8
  let branchOrIterationN = $state(0);
10
9
  let selectedVersionMode = $state('run');
11
10
  let customFlowVersion = $state(undefined);
@@ -21,7 +20,7 @@ async function restartFlow(stepId, branchOrIterationN, flowVersion) {
21
20
  flow_version: flowVersion
22
21
  }
23
22
  });
24
- await goto('/run/' + run + '?workspace=' + $workspaceStore);
23
+ onRestartComplete?.(run);
25
24
  }
26
25
  async function loadFlowVersions() {
27
26
  if (!flowPath || loadingVersions)
@@ -8,7 +8,10 @@ interface Props {
8
8
  enterpriseOnly?: boolean;
9
9
  variant?: 'default' | 'accent';
10
10
  unifiedSize?: 'xs' | 'sm' | 'md' | 'lg';
11
+ /** Called when flow is restarted. If not provided, will navigate to the new run using goto (requires SvelteKit) */
11
12
  onRestart?: (stepId: string, branchOrIterationN: number, flowVersion?: number) => void;
13
+ /** Called when flow restart completes with the new job ID. Used for navigation in non-SvelteKit contexts */
14
+ onRestartComplete?: (newJobId: string) => void;
12
15
  }
13
16
  declare const FlowRestartButton: import("svelte").Component<Props, {}, "">;
14
17
  type FlowRestartButton = ReturnType<typeof FlowRestartButton>;
@@ -29,7 +29,9 @@ import JobLoader from './JobLoader.svelte';
29
29
  import { AI_TOOL_CALL_PREFIX, AI_TOOL_MESSAGE_PREFIX, AI_MCP_TOOL_CALL_PREFIX, AI_WEBSEARCH_PREFIX, getToolCallId } from './graph/renderers/nodes/AIToolNode.svelte';
30
30
  import JobAssetsViewer from './assets/JobAssetsViewer.svelte';
31
31
  import McpToolCallDetails from './McpToolCallDetails.svelte';
32
+ import JobOtelTraces from './JobOtelTraces.svelte';
32
33
  import { SelectionManager } from './graph/selectionUtils.svelte';
34
+ import { useThrottle } from 'runed';
33
35
  let { flowState: flowStateStore, retryStatus, suspendStatus, hideDownloadInGraph, hideTimeline, hideNodeDefinition, hideDownloadLogs, hideJobId } = getContext('FlowStatusViewer');
34
36
  let { jobId, initialJob = undefined, workspaceId = undefined, flowJobIds = undefined, innerModule = undefined, render = true, isOwner = false, selectedNode = $bindable(undefined), globalModuleStates, globalDurationStatuses = [], updateRecursiveRefreshFn = undefined, isSelectedBranch = true, isSubflow = false, reducedPolling = false, wideResults = false, hideFlowResult = false, workspace = $workspaceStore, prefix = undefined, topModuleStates = undefined, refreshGlobal, updateGlobalRefresh, subflowParentsGlobalModuleStates = [], subflowParentsDurationStatuses = [], isForloopSelected = false, job = $bindable(undefined), rightColumnSelect = $bindable('timeline'), localModuleStates = $bindable({}), localDurationStatuses = $bindable({}), customUi, onResultStreamUpdate = undefined, graphTabOpen, isNodeSelected, loadExtraLogs = undefined, onStart = undefined, onJobsLoaded = undefined, onDone = undefined, toolCallStore } = $props();
35
37
  let getTopModuleStates = $derived(topModuleStates ?? localModuleStates);
@@ -303,8 +305,22 @@ function updateDurationStatuses(key, durationStatuses) {
303
305
  }
304
306
  }
305
307
  let jobMissingStartedAt = {};
306
- let lastSelectedLoopSwitch;
307
- let selectedLoopSwitchTimeout = undefined;
308
+ let setSelectedLoopSwitch = useThrottle(async (lastStarted, mod) => {
309
+ let position = mod.flow_jobs?.indexOf(lastStarted);
310
+ if (!position)
311
+ return;
312
+ for (const flow_job of mod.flow_jobs ?? []) {
313
+ if (flow_job === lastStarted) {
314
+ break;
315
+ }
316
+ else if (flow_job !== lastStarted && suspendStatus.val[flow_job]) {
317
+ console.log('setSelectedLoopSwitch deleting suspend for', flow_job);
318
+ delete suspendStatus.val[flow_job];
319
+ }
320
+ }
321
+ console.log('setSelectedLoopSwitch', position, lastStarted, mod.id, suspendStatus);
322
+ setIteration(position, lastStarted, false, mod.id ?? '', true);
323
+ }, 2000);
308
324
  function updateInnerModules() {
309
325
  if (localModuleStates) {
310
326
  innerModules?.forEach((mod, i) => {
@@ -427,27 +443,8 @@ function updateInnerModules() {
427
443
  });
428
444
  if (anySet) {
429
445
  updateDurationStatuses(key, nDurationStatuses);
430
- selectedLoopSwitchTimeout && clearTimeout(selectedLoopSwitchTimeout);
431
- function setSelectedLoopSwitch() {
432
- if (lastStarted) {
433
- let position = mod.flow_jobs?.indexOf(lastStarted);
434
- if (position != undefined) {
435
- lastSelectedLoopSwitch = new Date().getTime();
436
- console.log('setSelectedLoopSwitch', position, lastStarted);
437
- setIteration(position, lastStarted, false, mod.id ?? '', true);
438
- }
439
- }
440
- }
441
- if (lastSelectedLoopSwitch &&
442
- new Date().getTime() - lastSelectedLoopSwitch < 3000) {
443
- selectedLoopSwitchTimeout = setTimeout(() => {
444
- setSelectedLoopSwitch();
445
- }, 2000);
446
- }
447
- else {
448
- console.log('setSelectedLoopSwitch');
449
- setSelectedLoopSwitch();
450
- }
446
+ if (lastStarted)
447
+ setSelectedLoopSwitch(lastStarted, mod);
451
448
  }
452
449
  })
453
450
  .catch((e) => {
@@ -518,7 +515,17 @@ let started = false;
518
515
  let jobLoader = undefined;
519
516
  function setJob(newJob, force) {
520
517
  if (!deepEqual(job, newJob) || isForloopSelected || force || innerModules == undefined) {
521
- job = newJob;
518
+ if (initialJob) {
519
+ // keep raw_flow/raw_code from initial job if they exist
520
+ job = {
521
+ ...newJob,
522
+ raw_flow: initialJob.raw_flow ?? newJob.raw_flow,
523
+ raw_code: initialJob.raw_code ?? newJob.raw_code
524
+ };
525
+ }
526
+ else {
527
+ job = newJob;
528
+ }
522
529
  job?.flow_status && updateStatus(job?.flow_status);
523
530
  onJobsLoaded?.({ job, force: false });
524
531
  notAnonynmous = false;
@@ -803,6 +810,7 @@ let stepDetail = $state(undefined);
803
810
  let storedListJobs = $state({});
804
811
  let selectedToolCall = $state(undefined);
805
812
  let wrapperHeight = $state(0);
813
+ let retryStatusHeight = $state(0);
806
814
  function removeFailureNode(id, parent_module) {
807
815
  if (id?.startsWith('failure-') && parent_module) {
808
816
  ;
@@ -939,6 +947,7 @@ let tabsHeight = $state({
939
947
  graphHeight: 0
940
948
  });
941
949
  let minTabHeight = $derived(Math.max(tabsHeight.sequenceHeight, tabsHeight.logsHeight, tabsHeight.assetsHeight, tabsHeight.graphHeight));
950
+ let totalEventsWaiting = $derived(Object.values(suspendStatus?.val ?? {}).reduce((a, b) => a + (b?.nb ?? 0), 0));
942
951
  </script>
943
952
 
944
953
  <JobLoader workspaceOverride={workspaceId} {noLogs} noCode bind:this={jobLoader} />
@@ -1382,7 +1391,7 @@ let minTabHeight = $derived(Math.max(tabsHeight.sequenceHeight, tabsHeight.logsH
1382
1391
  >
1383
1392
  <div class="grid grid-cols-3 border h-full" bind:clientHeight={wrapperHeight}>
1384
1393
  <div class="col-span-2 bg-surface-secondary">
1385
- <div class="flex flex-col">
1394
+ <div class="flex flex-col" bind:clientHeight={retryStatusHeight}>
1386
1395
  {#each Object.values(retryStatus?.val ?? {}) as count}
1387
1396
  {#if count}
1388
1397
  <span class="text-sm">
@@ -1390,25 +1399,23 @@ let minTabHeight = $derived(Math.max(tabsHeight.sequenceHeight, tabsHeight.logsH
1390
1399
  </span>
1391
1400
  {/if}
1392
1401
  {/each}
1393
- {#each Object.values(suspendStatus?.val ?? {}) as count}
1394
- {#if count.nb}
1395
- <span class="text-sm">
1396
- Flow suspended, waiting for {count.nb} events
1397
- </span>
1398
- {/if}
1399
- {/each}
1402
+ {#if totalEventsWaiting}
1403
+ <span class="text-sm">
1404
+ Flow suspended, waiting for {totalEventsWaiting} events
1405
+ </span>
1406
+ {/if}
1400
1407
  </div>
1401
1408
  <FlowGraphV2
1402
1409
  {selectionManager}
1403
1410
  triggerNode={true}
1404
1411
  download={!hideDownloadInGraph}
1405
- minHeight={wrapperHeight}
1412
+ minHeight={wrapperHeight - retryStatusHeight}
1406
1413
  success={jobId != undefined && isSuccess(job?.['success'])}
1407
1414
  flowModuleStates={localModuleStates}
1408
1415
  bind:expandedSubflows
1409
1416
  onSelect={(e) => {
1410
1417
  console.log('onSelect', e)
1411
- if (rightColumnSelect != 'node_definition') {
1418
+ if (rightColumnSelect != 'node_definition' && rightColumnSelect != 'tracing') {
1412
1419
  rightColumnSelect = 'node_status'
1413
1420
  }
1414
1421
  if (typeof e == 'string') {
@@ -1463,6 +1470,7 @@ let minTabHeight = $derived(Math.max(tabsHeight.sequenceHeight, tabsHeight.logsH
1463
1470
  {#if Object.keys(job?.flow_status?.user_states ?? {}).length > 0}
1464
1471
  <Tab value="user_states" label="User States" />
1465
1472
  {/if}
1473
+ <Tab value="tracing" label="Tracing" />
1466
1474
  </Tabs>
1467
1475
  {#if rightColumnSelect == 'timeline'}
1468
1476
  <FlowTimeline
@@ -1508,7 +1516,10 @@ let minTabHeight = $derived(Math.max(tabsHeight.sequenceHeight, tabsHeight.logsH
1508
1516
  {/if}
1509
1517
  {:else if selectedNode?.startsWith(AI_WEBSEARCH_PREFIX)}
1510
1518
  <div class="p-2">
1511
- <Alert type="info" title="Web search output is available on the AI agent node" />
1519
+ <Alert
1520
+ type="info"
1521
+ title="Web search output is available on the AI agent node"
1522
+ />
1512
1523
  </div>
1513
1524
  {:else if selectedNode}
1514
1525
  {@const node = localModuleStates[selectedNode]}
@@ -1658,6 +1669,15 @@ let minTabHeight = $derived(Math.max(tabsHeight.sequenceHeight, tabsHeight.logsH
1658
1669
  <div class="p-2">
1659
1670
  <JobArgs argLabel="Key" args={job?.flow_status?.user_states ?? {}} />
1660
1671
  </div>
1672
+ {:else if rightColumnSelect == 'tracing'}
1673
+ {@const node = selectedNode ? localModuleStates[selectedNode] : undefined}
1674
+ {#if node?.job_id}
1675
+ <JobOtelTraces jobId={node.job_id} />
1676
+ {:else}
1677
+ <div class="p-4 text-secondary"
1678
+ >Select a node with a job to see HTTP request traces</div
1679
+ >
1680
+ {/if}
1661
1681
  {/if}
1662
1682
  </div>
1663
1683
  </div>
@@ -39,7 +39,7 @@ interface Props {
39
39
  job?: (Job & {
40
40
  result_stream?: string;
41
41
  }) | undefined;
42
- rightColumnSelect?: 'timeline' | 'node_status' | 'node_definition' | 'user_states';
42
+ rightColumnSelect?: 'timeline' | 'node_status' | 'node_definition' | 'user_states' | 'tracing';
43
43
  localModuleStates?: Record<string, GraphModuleState>;
44
44
  localDurationStatuses?: Record<string, DurationStatus>;
45
45
  onResultStreamUpdate?: ({ jobId, result_stream }: {