windmill-components 1.511.1 → 1.531.0

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 (446) hide show
  1. package/package/components/AIAgentLogViewer.svelte +123 -0
  2. package/package/components/AIAgentLogViewer.svelte.d.ts +13 -0
  3. package/package/components/AppConnectInner.svelte +10 -10
  4. package/package/components/AppConnectInner.svelte.d.ts +1 -1
  5. package/package/components/ArgInput.svelte +42 -14
  6. package/package/components/ArgInput.svelte.d.ts +2 -10
  7. package/package/components/AssignableTagsInner.svelte +5 -0
  8. package/package/components/AuthSettings.svelte +4 -2
  9. package/package/components/AuthSettings.svelte.d.ts +1 -0
  10. package/package/components/AutoscalingConfigEditor.svelte +76 -2
  11. package/package/components/DBManagerDrawer.svelte +154 -151
  12. package/package/components/DBManagerDrawer.svelte.d.ts +2 -2
  13. package/package/components/DBTable.svelte +3 -3
  14. package/package/components/DBTable.svelte.d.ts +1 -0
  15. package/package/components/DBTableEditor.svelte +7 -7
  16. package/package/components/DBTableEditor.svelte.d.ts +1 -1
  17. package/package/components/DeployWorkspace.svelte +1 -1
  18. package/package/components/Dev.svelte +12 -28
  19. package/package/components/DiffEditor.svelte +6 -3
  20. package/package/components/DiffEditor.svelte.d.ts +1 -0
  21. package/package/components/DisplayResult.svelte +46 -14
  22. package/package/components/DisplayResult.svelte.d.ts +5 -1
  23. package/package/components/DynSelect.svelte +58 -34
  24. package/package/components/DynSelect.svelte.d.ts +3 -11
  25. package/package/components/EditableSchemaForm.svelte +131 -8
  26. package/package/components/EditableSchemaForm.svelte.d.ts +5 -1
  27. package/package/components/Editor.svelte +27 -9
  28. package/package/components/Editor.svelte.d.ts +1 -1
  29. package/package/components/EditorBar.svelte +105 -7
  30. package/package/components/EditorSettings.svelte +6 -0
  31. package/package/components/ErrorOrRecoveryHandler.svelte +76 -8
  32. package/package/components/ErrorOrRecoveryHandler.svelte.d.ts +2 -1
  33. package/package/components/ExploreAssetButton.svelte +14 -4
  34. package/package/components/ExploreAssetButton.svelte.d.ts +1 -0
  35. package/package/components/FirstStepInputs.svelte +2 -2
  36. package/package/components/FlowBuilder.svelte +18 -36
  37. package/package/components/FlowGraphViewerStep.svelte +7 -0
  38. package/package/components/FlowJobResult.svelte +16 -64
  39. package/package/components/FlowJobResult.svelte.d.ts +11 -4
  40. package/package/components/FlowLogViewer.svelte +660 -0
  41. package/package/components/FlowLogViewer.svelte.d.ts +34 -0
  42. package/package/components/FlowLogViewerWrapper.svelte +52 -0
  43. package/package/components/FlowLogViewerWrapper.svelte.d.ts +21 -0
  44. package/package/components/FlowLoopIterationPreview.svelte +3 -3
  45. package/package/components/FlowPreviewContent.svelte +13 -6
  46. package/package/components/FlowPreviewContent.svelte.d.ts +7 -7
  47. package/package/components/FlowPreviewResult.svelte +7 -5
  48. package/package/components/FlowPreviewResult.svelte.d.ts +4 -5
  49. package/package/components/FlowStatusViewer.svelte +28 -16
  50. package/package/components/FlowStatusViewer.svelte.d.ts +19 -27
  51. package/package/components/FlowStatusViewerInner.svelte +500 -295
  52. package/package/components/FlowStatusViewerInner.svelte.d.ts +34 -34
  53. package/package/components/FlowTimeline.svelte +11 -13
  54. package/package/components/FlowTimeline.svelte.d.ts +6 -5
  55. package/package/components/FolderEditor.svelte +1 -1
  56. package/package/components/GitDiffPreview.svelte +14 -18
  57. package/package/components/GitDiffPreview.svelte.d.ts +2 -8
  58. package/package/components/GitHubAppIntegration.svelte +3 -1
  59. package/package/components/HighlightCode.svelte +4 -1
  60. package/package/components/IconedResourceType.svelte +9 -5
  61. package/package/components/IdEditorInput.svelte +25 -22
  62. package/package/components/IdEditorInput.svelte.d.ts +11 -23
  63. package/package/components/InstanceSetting.svelte +7 -2
  64. package/package/components/InstanceSettings.svelte +1 -0
  65. package/package/components/JobLoader.svelte +108 -12
  66. package/package/components/JobLoader.svelte.d.ts +16 -3
  67. package/package/components/LogViewer.svelte +8 -2
  68. package/package/components/LogViewer.svelte.d.ts +1 -0
  69. package/package/components/LogViewerHeader.svelte +32 -0
  70. package/package/components/LogViewerHeader.svelte.d.ts +8 -0
  71. package/package/components/Login.svelte +8 -2
  72. package/package/components/MemoryFootprintViewer.svelte +1 -1
  73. package/package/components/ModulePreviewForm.svelte +10 -6
  74. package/package/components/ModulePreviewResultViewer.svelte +18 -2
  75. package/package/components/ModulePreviewResultViewer.svelte.d.ts +1 -1
  76. package/package/components/ModuleTest.svelte +59 -16
  77. package/package/components/MoveDrawer.svelte.d.ts +2 -2
  78. package/package/components/NextcloudSetting.svelte +84 -0
  79. package/package/components/NextcloudSetting.svelte.d.ts +7 -0
  80. package/package/components/ObjectResourceInput.svelte +3 -2
  81. package/package/components/ObjectResourceInput.svelte.d.ts +1 -0
  82. package/package/components/ParqetCsvTableRenderer.svelte +1 -1
  83. package/package/components/RelativeLineNumbers.svelte +16 -0
  84. package/package/components/RelativeLineNumbers.svelte.d.ts +18 -0
  85. package/package/components/ResourceEditor.svelte +10 -5
  86. package/package/components/ResourcePicker.svelte +8 -1
  87. package/package/components/ResourcePicker.svelte.d.ts +1 -0
  88. package/package/components/ResultStreamDisplay.svelte +5 -0
  89. package/package/components/ResultStreamDisplay.svelte.d.ts +5 -0
  90. package/package/components/RunForm.svelte +9 -1
  91. package/package/components/SchemaForm.svelte +2 -2
  92. package/package/components/SchemaForm.svelte.d.ts +2 -10
  93. package/package/components/ScriptBuilder.svelte +26 -19
  94. package/package/components/ScriptBuilder.svelte.d.ts +1 -1
  95. package/package/components/ScriptEditor.svelte +2 -2
  96. package/package/components/ScriptEditor.svelte.d.ts +1 -1
  97. package/package/components/ScriptWrapper.svelte +1 -1
  98. package/package/components/ShareModal.svelte.d.ts +1 -1
  99. package/package/components/SimpleAgTable.svelte +2 -0
  100. package/package/components/SimpleAgTable.svelte.d.ts +2 -0
  101. package/package/components/SimpleEditor.svelte +10 -4
  102. package/package/components/SimpleEditor.svelte.d.ts +1 -0
  103. package/package/components/SqlRepl.svelte +21 -7
  104. package/package/components/SqlRepl.svelte.d.ts +2 -2
  105. package/package/components/StringTypeNarrowing.svelte.d.ts +1 -1
  106. package/package/components/TemplateEditor.svelte +1 -1
  107. package/package/components/UserSettings.svelte +4 -4
  108. package/package/components/WorkerTagSelect.svelte +70 -1
  109. package/package/components/apps/components/display/AppAccordionList.svelte +1 -1
  110. package/package/components/apps/components/display/AppCarouselList.svelte +10 -8
  111. package/package/components/apps/components/display/AppDisplayComponent.svelte +13 -1
  112. package/package/components/apps/components/display/AppJobIdFlowStatus.svelte +3 -3
  113. package/package/components/apps/components/display/AppText.svelte +2 -2
  114. package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +8 -1
  115. package/package/components/apps/components/display/dbtable/InsertRow.svelte +5 -4
  116. package/package/components/apps/components/display/dbtable/queries/count.js +11 -1
  117. package/package/components/apps/components/display/dbtable/queries/createTable.d.ts +1 -1
  118. package/package/components/apps/components/display/dbtable/queries/createTable.js +3 -3
  119. package/package/components/apps/components/display/dbtable/queries/delete.js +7 -0
  120. package/package/components/apps/components/display/dbtable/queries/insert.js +2 -0
  121. package/package/components/apps/components/display/dbtable/queries/select.js +14 -0
  122. package/package/components/apps/components/display/dbtable/queries/update.js +7 -0
  123. package/package/components/apps/components/display/dbtable/utils.d.ts +6 -5
  124. package/package/components/apps/components/display/dbtable/utils.js +52 -28
  125. package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +1 -1
  126. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +1 -0
  127. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte.d.ts +1 -0
  128. package/package/components/apps/components/display/table/AppAggridTable.svelte +7 -6
  129. package/package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +1 -0
  130. package/package/components/apps/components/display/table/utils.js +7 -4
  131. package/package/components/apps/components/helpers/HiddenComponent.svelte +2 -3
  132. package/package/components/apps/components/helpers/InputValue.svelte +6 -1
  133. package/package/components/apps/components/helpers/NonRunnableComponent.svelte +8 -4
  134. package/package/components/apps/components/helpers/NonRunnableComponent.svelte.d.ts +1 -1
  135. package/package/components/apps/components/helpers/RunnableComponent.svelte +10 -8
  136. package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +3 -2
  137. package/package/components/apps/components/helpers/RunnableWrapper.svelte +12 -3
  138. package/package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +1 -1
  139. package/package/components/apps/components/inputs/AppCodeInputComponent.svelte +0 -5
  140. package/package/components/apps/components/inputs/AppS3FileInput.svelte +2 -2
  141. package/package/components/apps/components/layout/AppConditionalWrapper.svelte +1 -1
  142. package/package/components/apps/components/layout/AppContainer.svelte +1 -1
  143. package/package/components/apps/components/layout/AppDecisionTree.svelte +32 -21
  144. package/package/components/apps/components/layout/AppDrawer.svelte +1 -1
  145. package/package/components/apps/components/layout/AppList.svelte +9 -8
  146. package/package/components/apps/components/layout/AppModal.svelte +1 -1
  147. package/package/components/apps/components/layout/AppSplitpanes.svelte +5 -2
  148. package/package/components/apps/components/layout/AppStepper.svelte +10 -6
  149. package/package/components/apps/components/layout/AppTabs.svelte +3 -3
  150. package/package/components/apps/editor/AppEditorHeader.svelte +13 -2
  151. package/package/components/apps/editor/AppJobsDrawer.svelte +2 -2
  152. package/package/components/apps/editor/GridEditor.svelte +24 -19
  153. package/package/components/apps/editor/GridEditor.svelte.d.ts +4 -1
  154. package/package/components/apps/editor/GridViewer.svelte +1 -0
  155. package/package/components/apps/editor/RunnableJobPanelInner.svelte +2 -1
  156. package/package/components/apps/editor/SubGridEditor.svelte +7 -11
  157. package/package/components/apps/editor/SubGridEditor.svelte.d.ts +3 -19
  158. package/package/components/apps/editor/appUtils.js +17 -68
  159. package/package/components/apps/editor/component/ComponentInner.svelte +845 -694
  160. package/package/components/apps/editor/component/componentCallbacks.svelte.js +8 -1
  161. package/package/components/apps/editor/contextPanel/components/IdEditor.svelte +7 -7
  162. package/package/components/apps/editor/contextPanel/components/IdEditor.svelte.d.ts +7 -19
  163. package/package/components/apps/editor/contextPanel/components/OutputHeader.svelte +14 -55
  164. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +1 -1
  165. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte.d.ts +1 -1
  166. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +1 -1
  167. package/package/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte +31 -45
  168. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +2 -1
  169. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +1 -0
  170. package/package/components/apps/editor/settingsPanel/decisionTree/DecisionTreePreview.svelte +1 -3
  171. package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte +2 -2
  172. package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte.d.ts +1 -0
  173. package/package/components/apps/svelte-grid/Grid.svelte +23 -25
  174. package/package/components/apps/svelte-grid/Grid.svelte.d.ts +21 -9
  175. package/package/components/apps/svelte-grid/MoveResize.svelte +13 -15
  176. package/package/components/apps/svelte-grid/MoveResize.svelte.d.ts +17 -24
  177. package/package/components/apps/utils.d.ts +2 -0
  178. package/package/components/apps/utils.js +22 -0
  179. package/package/components/assets/AssetsDropdownButton.svelte +1 -1
  180. package/package/components/assets/JobAssetsViewer.svelte +2 -2
  181. package/package/components/assets/lib.js +4 -0
  182. package/package/components/auditLogs/AuditLogsFilters.svelte +7 -9
  183. package/package/components/auditLogs/AuditLogsFilters.svelte.d.ts +1 -1
  184. package/package/components/common/button/Button.svelte +4 -3
  185. package/package/components/common/button/Button.svelte.d.ts +1 -0
  186. package/package/components/common/confirmationModal/ConfirmationModal.svelte +6 -5
  187. package/package/components/common/confirmationModal/ConfirmationModal.svelte.d.ts +6 -11
  188. package/package/components/common/confirmationModal/asyncConfirmationModal.svelte.d.ts +26 -0
  189. package/package/components/common/confirmationModal/asyncConfirmationModal.svelte.js +50 -0
  190. package/package/components/common/fileDownload/FileDownload.svelte +1 -3
  191. package/package/components/common/fileDownload/FileDownload.svelte.d.ts +4 -18
  192. package/package/components/common/languageIcons/LanguageIcon.svelte +5 -2
  193. package/package/components/common/modal/Modal.svelte +2 -5
  194. package/package/components/common/tabs/TabsV2.svelte +2 -1
  195. package/package/components/common/tabs/TabsV2.svelte.d.ts +1 -0
  196. package/package/components/copilot/FlowInlineScriptAIButton.svelte +58 -0
  197. package/package/components/copilot/FlowInlineScriptAIButton.svelte.d.ts +3 -0
  198. package/package/components/copilot/MetadataGen.svelte +19 -1
  199. package/package/components/copilot/MetadataGen.svelte.d.ts +1 -1
  200. package/package/components/copilot/ScriptGen.svelte +23 -31
  201. package/package/components/copilot/ScriptGen.svelte.d.ts +0 -1
  202. package/package/components/copilot/autocomplete/Autocompletor.js +2 -0
  203. package/package/components/copilot/chat/AIChatDisplay.svelte +4 -4
  204. package/package/components/copilot/chat/AIChatInput.svelte +29 -6
  205. package/package/components/copilot/chat/AIChatManager.svelte.js +171 -33
  206. package/package/components/copilot/chat/AIChatMessage.svelte +3 -0
  207. package/package/components/copilot/chat/ContextTextarea.svelte +1 -1
  208. package/package/components/copilot/chat/ToolContentDisplay.svelte +84 -0
  209. package/package/components/copilot/chat/ToolContentDisplay.svelte.d.ts +11 -0
  210. package/package/components/copilot/chat/ToolExecutionDisplay.svelte +105 -0
  211. package/package/components/copilot/chat/ToolExecutionDisplay.svelte.d.ts +7 -0
  212. package/package/components/copilot/chat/api/apiTools.d.ts +7 -0
  213. package/package/components/copilot/chat/api/apiTools.js +192 -0
  214. package/package/components/copilot/chat/api/core.d.ts +7 -0
  215. package/package/components/copilot/chat/api/core.js +61 -0
  216. package/package/components/copilot/chat/flow/FlowAIChat.svelte +4 -6
  217. package/package/components/copilot/chat/flow/core.js +213 -42
  218. package/package/components/copilot/chat/flow/utils.js +3 -0
  219. package/package/components/copilot/chat/monaco-adapter.d.ts +1 -1
  220. package/package/components/copilot/chat/monaco-adapter.js +10 -4
  221. package/package/components/copilot/chat/navigator/core.d.ts +1 -1
  222. package/package/components/copilot/chat/navigator/core.js +20 -22
  223. package/package/components/copilot/chat/script/core.d.ts +11 -3
  224. package/package/components/copilot/chat/script/core.js +120 -44
  225. package/package/components/copilot/chat/shared.d.ts +31 -4
  226. package/package/components/copilot/chat/shared.js +235 -10
  227. package/package/components/copilot/lib.d.ts +1 -1
  228. package/package/components/copilot/lib.js +15 -6
  229. package/package/components/custom_ui.d.ts +4 -0
  230. package/package/components/dbOps.d.ts +20 -8
  231. package/package/components/dbOps.js +85 -40
  232. package/package/components/details/DetailPageHeader.svelte +0 -2
  233. package/package/components/details/DetailPageLayout.svelte +34 -33
  234. package/package/components/flow_builder.d.ts +1 -2
  235. package/package/components/flows/FlowEditor.svelte +3 -3
  236. package/package/components/flows/FlowEditor.svelte.d.ts +7 -6
  237. package/package/components/flows/common/FlowCard.svelte +2 -2
  238. package/package/components/flows/common/FlowCard.svelte.d.ts +1 -0
  239. package/package/components/flows/common/FlowCardHeader.svelte +13 -4
  240. package/package/components/flows/common/FlowCardHeader.svelte.d.ts +1 -0
  241. package/package/components/flows/content/BranchPredicateEditor.svelte +4 -7
  242. package/package/components/flows/content/BranchPredicateEditor.svelte.d.ts +12 -11
  243. package/package/components/flows/content/FlowConstants.svelte +3 -3
  244. package/package/components/flows/content/FlowEditorPanel.svelte +3 -3
  245. package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +2 -4
  246. package/package/components/flows/content/FlowInput.svelte +5 -0
  247. package/package/components/flows/content/FlowInputsQuick.svelte +2 -1
  248. package/package/components/flows/content/FlowLoop.svelte +2 -2
  249. package/package/components/flows/content/FlowModuleComponent.svelte +130 -108
  250. package/package/components/flows/content/FlowModuleComponent.svelte.d.ts +1 -0
  251. package/package/components/flows/content/FlowModuleEarlyStop.svelte +2 -2
  252. package/package/components/flows/content/FlowModuleScript.svelte +0 -1
  253. package/package/components/flows/content/FlowModuleSkip.svelte +1 -1
  254. package/package/components/flows/content/FlowModuleSleep.svelte +1 -1
  255. package/package/components/flows/content/FlowModuleSuspend.svelte +1 -1
  256. package/package/components/flows/content/FlowModuleWrapper.svelte +15 -5
  257. package/package/components/flows/content/FlowModuleWrapper.svelte.d.ts +1 -0
  258. package/package/components/flows/content/FlowResult.svelte +2 -3
  259. package/package/components/flows/content/FlowResult.svelte.d.ts +2 -4
  260. package/package/components/flows/content/FlowWhileLoop.svelte +1 -1
  261. package/package/components/flows/dfs.d.ts +3 -1
  262. package/package/components/flows/dfs.js +5 -1
  263. package/package/components/flows/flowInfers.js +78 -0
  264. package/package/components/flows/flowState.d.ts +2 -3
  265. package/package/components/flows/flowState.js +2 -2
  266. package/package/components/flows/flowStateUtils.svelte.d.ts +4 -4
  267. package/package/components/flows/flowStateUtils.svelte.js +14 -13
  268. package/package/components/flows/flowStore.d.ts +3 -4
  269. package/package/components/flows/header/FlowPreviewButtons.svelte +2 -1
  270. package/package/components/flows/header/FlowYamlEditor.svelte +10 -1
  271. package/package/components/flows/idUtils.js +2 -1
  272. package/package/components/flows/map/FlowGraphPreviewButton.svelte +1 -1
  273. package/package/components/flows/map/FlowJobsMenu.svelte +7 -3
  274. package/package/components/flows/map/FlowJobsMenu.svelte.d.ts +1 -0
  275. package/package/components/flows/map/FlowModuleSchemaItem.svelte +15 -15
  276. package/package/components/flows/map/FlowModuleSchemaMap.svelte +27 -15
  277. package/package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +6 -4
  278. package/package/components/flows/map/InsertModuleButton.svelte +4 -1
  279. package/package/components/flows/map/InsertModuleInner.svelte +9 -1
  280. package/package/components/flows/map/InsertModuleInner.svelte.d.ts +1 -0
  281. package/package/components/flows/map/MapItem.svelte +4 -2
  282. package/package/components/flows/pickers/TopLevelNode.svelte +4 -1
  283. package/package/components/flows/propPicker/InputPickerInner.svelte +5 -4
  284. package/package/components/flows/propPicker/OutputBadge.svelte +16 -10
  285. package/package/components/flows/propPicker/OutputPickerInner.svelte +19 -6
  286. package/package/components/flows/propPicker/OutputPickerInner.svelte.d.ts +6 -2
  287. package/package/components/flows/propPicker/StepHistory.svelte +4 -1
  288. package/package/components/flows/testSteps.svelte.d.ts +3 -2
  289. package/package/components/flows/testSteps.svelte.js +26 -23
  290. package/package/components/flows/types.d.ts +1 -1
  291. package/package/components/flows/utils.d.ts +3 -5
  292. package/package/components/flows/utils.js +3 -4
  293. package/package/components/git_sync/DetectionFlow.svelte +202 -0
  294. package/package/components/git_sync/DetectionFlow.svelte.d.ts +6 -0
  295. package/package/components/git_sync/GitSyncContext.svelte.d.ts +82 -0
  296. package/package/components/git_sync/GitSyncContext.svelte.js +462 -0
  297. package/package/components/git_sync/GitSyncModalManager.svelte +99 -0
  298. package/package/components/git_sync/GitSyncModalManager.svelte.d.ts +18 -0
  299. package/package/components/git_sync/GitSyncRepositoryCard.svelte +339 -0
  300. package/package/components/git_sync/GitSyncRepositoryCard.svelte.d.ts +6 -0
  301. package/package/components/git_sync/GitSyncRepositoryList.svelte +17 -0
  302. package/package/components/git_sync/GitSyncRepositoryList.svelte.d.ts +18 -0
  303. package/package/components/git_sync/GitSyncSection.svelte +89 -0
  304. package/package/components/git_sync/GitSyncSection.svelte.d.ts +3 -0
  305. package/package/components/git_sync/GitSyncSuccessModal.svelte +58 -0
  306. package/package/components/git_sync/GitSyncSuccessModal.svelte.d.ts +7 -0
  307. package/package/components/git_sync/PullWorkspaceModal.svelte +575 -0
  308. package/package/components/git_sync/PullWorkspaceModal.svelte.d.ts +15 -0
  309. package/package/components/git_sync/PushWorkspaceModal.svelte +320 -0
  310. package/package/components/git_sync/PushWorkspaceModal.svelte.d.ts +12 -0
  311. package/package/components/graph/FlowGraphV2.svelte +49 -25
  312. package/package/components/graph/FlowGraphV2.svelte.d.ts +5 -2
  313. package/package/components/graph/graphBuilder.svelte.d.ts +49 -17
  314. package/package/components/graph/graphBuilder.svelte.js +31 -15
  315. package/package/components/graph/model.d.ts +9 -6
  316. package/package/components/graph/renderers/edges/BaseEdge.svelte +3 -3
  317. package/package/components/graph/renderers/edges/BaseEdge.svelte.d.ts +2 -3
  318. package/package/components/graph/renderers/nodes/AIToolNode.svelte +234 -0
  319. package/package/components/graph/renderers/nodes/AIToolNode.svelte.d.ts +24 -0
  320. package/package/components/graph/renderers/nodes/AssetNode.svelte +19 -14
  321. package/package/components/graph/renderers/nodes/AssetNode.svelte.d.ts +18 -1
  322. package/package/components/graph/renderers/nodes/BranchAllEndNode.svelte +1 -1
  323. package/package/components/graph/renderers/nodes/BranchAllStart.svelte +1 -1
  324. package/package/components/graph/renderers/nodes/BranchOneStart.svelte +1 -1
  325. package/package/components/graph/renderers/nodes/ForLoopEndNode.svelte +2 -2
  326. package/package/components/graph/renderers/nodes/ForLoopStartNode.svelte +1 -1
  327. package/package/components/graph/renderers/nodes/ModuleNode.svelte +21 -21
  328. package/package/components/graph/renderers/nodes/NewAIToolNode.svelte +64 -0
  329. package/package/components/graph/renderers/nodes/NewAIToolNode.svelte.d.ts +7 -0
  330. package/package/components/graph/renderers/nodes/branchOneEndNode.svelte +1 -1
  331. package/package/components/icons/AssetDucklakeIcon.svelte +28 -0
  332. package/package/components/icons/AssetDucklakeIcon.svelte.d.ts +9 -0
  333. package/package/components/icons/AssetGenericIcon.svelte +3 -0
  334. package/package/components/icons/DucklakeIcon.svelte +18 -0
  335. package/package/components/icons/DucklakeIcon.svelte.d.ts +6 -0
  336. package/package/components/icons/RubyIcon.svelte +656 -0
  337. package/package/components/icons/RubyIcon.svelte.d.ts +7 -0
  338. package/package/components/instanceSettings.js +20 -3
  339. package/package/components/modulesTest.svelte.d.ts +6 -3
  340. package/package/components/modulesTest.svelte.js +32 -0
  341. package/package/components/preview/FlowPreviewStatus.svelte +3 -1
  342. package/package/components/raw_apps/RawAppEditor.svelte +27 -26
  343. package/package/components/raw_apps/RawAppEditor.svelte.d.ts +17 -17
  344. package/package/components/runs/{JobPreview.svelte → JobRunsPreview.svelte} +2 -5
  345. package/package/components/runs/{JobPreview.svelte.d.ts → JobRunsPreview.svelte.d.ts} +3 -3
  346. package/package/components/runs/NoWorkerWithTagWarning.svelte +3 -3
  347. package/package/components/runs/RunRow.svelte +5 -1
  348. package/package/components/runs/RunsFilter.svelte.d.ts +1 -1
  349. package/package/components/schema/AddProperty.svelte +41 -36
  350. package/package/components/schema/AddProperty.svelte.d.ts +2 -2
  351. package/package/components/schema/AddPropertyV2.svelte +41 -37
  352. package/package/components/schema/AddPropertyV2.svelte.d.ts +1 -1
  353. package/package/components/schema/FlowPropertyEditor.svelte +11 -8
  354. package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -1
  355. package/package/components/schema/PropertyEditor.svelte +0 -2
  356. package/package/components/schema/PropertyEditor.svelte.d.ts +1 -1
  357. package/package/components/schema/SchemaFormDND.svelte +2 -1
  358. package/package/components/schema/SchemaFormDND.svelte.d.ts +2 -0
  359. package/package/components/scriptEditor/LogPanel.svelte +5 -3
  360. package/package/components/scriptEditor/LogPanel.svelte.d.ts +5 -1
  361. package/package/components/search/RunsSearch.svelte +1 -1
  362. package/package/components/select/Select.svelte +7 -4
  363. package/package/components/select/Select.svelte.d.ts +5 -0
  364. package/package/components/select/SelectDropdown.svelte +2 -1
  365. package/package/components/select/SelectDropdown.svelte.d.ts +3 -0
  366. package/package/components/settings/CreateToken.svelte +132 -12
  367. package/package/components/settings/CreateToken.svelte.d.ts +3 -20
  368. package/package/components/settings/TokenDisplay.svelte +18 -42
  369. package/package/components/settings/TokenDisplay.svelte.d.ts +0 -1
  370. package/package/components/settings/TokensTable.svelte +2 -4
  371. package/package/components/settings/TokensTable.svelte.d.ts +3 -19
  372. package/package/components/settings/WorkspaceUserSettings.svelte +428 -69
  373. package/package/components/sidebar/MenuButton.svelte +12 -10
  374. package/package/components/sidebar/changelogs.js +5 -0
  375. package/package/components/stepHistoryLoader.svelte.d.ts +2 -2
  376. package/package/components/stepHistoryLoader.svelte.js +7 -12
  377. package/package/components/table/AutoDataTable.svelte +6 -4
  378. package/package/components/table/AutoDataTable.svelte.d.ts +1 -0
  379. package/package/components/table/DataTable.svelte +12 -10
  380. package/package/components/table/DataTable.svelte.d.ts +1 -0
  381. package/package/components/triggers/TriggerRetriesAndErrorHandler.svelte.d.ts +2 -2
  382. package/package/components/triggers/gcp/GcpTriggerEditorConfigSection.svelte +1 -1
  383. package/package/components/triggers/gcp/GcpTriggerEditorConfigSection.svelte.d.ts +2 -1
  384. package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +50 -11
  385. package/package/components/triggers/gcp/utils.js +1 -0
  386. package/package/components/triggers/http/OpenAPISpecGenerator.svelte +2 -2
  387. package/package/components/triggers/http/utils.js +1 -1
  388. package/package/components/triggers/kafka/utils.js +1 -1
  389. package/package/components/triggers/mqtt/utils.js +1 -1
  390. package/package/components/triggers/nats/utils.js +1 -1
  391. package/package/components/triggers/postgres/utils.js +1 -1
  392. package/package/components/triggers/sqs/utils.js +1 -1
  393. package/package/components/triggers/utils.js +2 -1
  394. package/package/components/triggers/webhook/WebhooksConfigSection.svelte +24 -26
  395. package/package/components/triggers/webhook/WebhooksPanel.svelte +1 -15
  396. package/package/components/triggers/websocket/utils.js +1 -1
  397. package/package/components/tutorials/FlowBuilderTutorialBranchOne.svelte +1 -1
  398. package/package/components/tutorials/FlowBuilderTutorialForLoop.svelte +4 -4
  399. package/package/components/tutorials/utils.js +3 -0
  400. package/package/components/worker_group.d.ts +4 -1
  401. package/package/components/worker_group.js +3 -2
  402. package/package/components/workspaceSettings/AISettings.svelte +52 -36
  403. package/package/components/workspaceSettings/DucklakeSettings.svelte +321 -0
  404. package/package/components/workspaceSettings/DucklakeSettings.svelte.d.ts +23 -0
  405. package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +122 -499
  406. package/package/components/workspaceSettings/GitSyncFilterSettings.svelte.d.ts +8 -10
  407. package/package/consts.js +2 -1
  408. package/package/editorLangUtils.d.ts +1 -1
  409. package/package/editorLangUtils.js +2 -0
  410. package/package/editorUtils.d.ts +2 -1
  411. package/package/editorUtils.js +2 -1
  412. package/package/gen/core/OpenAPI.js +1 -1
  413. package/package/gen/schemas.gen.d.ts +303 -14
  414. package/package/gen/schemas.gen.js +371 -76
  415. package/package/gen/services.gen.d.ts +136 -16
  416. package/package/gen/services.gen.js +264 -19
  417. package/package/gen/types.gen.d.ts +736 -17
  418. package/package/git-sync.d.ts +36 -0
  419. package/package/git-sync.js +1 -0
  420. package/package/hub.d.ts +1 -0
  421. package/package/hubPaths.json +9 -3
  422. package/package/infer.js +13 -3
  423. package/package/monaco_workers/graphql.worker.bundle.js +144 -110
  424. package/package/script_helpers.d.ts +5 -2
  425. package/package/script_helpers.js +87 -14
  426. package/package/scripts.d.ts +1 -1
  427. package/package/scripts.js +3 -2
  428. package/package/services/JobManager.d.ts +28 -0
  429. package/package/services/JobManager.js +114 -0
  430. package/package/stores.d.ts +3 -1
  431. package/package/stores.js +2 -0
  432. package/package/svelte5Utils.svelte.d.ts +16 -0
  433. package/package/svelte5Utils.svelte.js +26 -0
  434. package/package/utils.d.ts +19 -2
  435. package/package/utils.js +55 -2
  436. package/package.json +24 -22
  437. package/package/components/AllFlowLogs.svelte +0 -31
  438. package/package/components/AllFlowLogs.svelte.d.ts +0 -8
  439. package/package/components/InitGitRepoPopover.svelte +0 -410
  440. package/package/components/InitGitRepoPopover.svelte.d.ts +0 -13
  441. package/package/components/PullGitRepoPopover.svelte +0 -355
  442. package/package/components/PullGitRepoPopover.svelte.d.ts +0 -18
  443. package/package/components/copilot/chat/navigator/apiTools.d.ts +0 -68
  444. package/package/components/copilot/chat/navigator/apiTools.js +0 -258
  445. package/package/inferArgSig.d.ts +0 -42
  446. package/package/inferArgSig.js +0 -198
@@ -1,9 +1,9 @@
1
- import type { FlowModule, Job, RawScript, Script } from '../../gen';
1
+ import type { FlowModule, Job, PathScript, RawScript, Script } from '../../gen';
2
2
  import { type Edge } from '@xyflow/svelte';
3
3
  import type { GraphModuleState } from './model';
4
4
  import { type AssetWithAltAccessType } from '../assets/lib';
5
- import type { Writable } from 'svelte/store';
6
- export type InsertKind = 'script' | 'forloop' | 'whileloop' | 'branchone' | 'branchall' | 'flow' | 'trigger' | 'approval' | 'end';
5
+ import type { ModulesTestStates, ModuleTestState } from '../modulesTest.svelte';
6
+ export type InsertKind = 'script' | 'forloop' | 'whileloop' | 'branchone' | 'branchall' | 'flow' | 'trigger' | 'approval' | 'end' | 'aiagent';
7
7
  export type InlineScript = {
8
8
  language: RawScript['language'];
9
9
  kind: Script['kind'];
@@ -22,6 +22,7 @@ export type onSelectedIteration = (detail: {
22
22
  }) => void;
23
23
  export type GraphEventHandlers = {
24
24
  insert: (detail: {
25
+ agentId?: string;
25
26
  sourceId?: string;
26
27
  targetId?: string;
27
28
  branch?: {
@@ -30,8 +31,8 @@ export type GraphEventHandlers = {
30
31
  };
31
32
  index: number;
32
33
  kind: string;
33
- inlineScript?: string;
34
- script?: string;
34
+ inlineScript?: InlineScript;
35
+ script?: PathScript;
35
36
  isPreprocessor?: boolean;
36
37
  }) => void;
37
38
  deleteBranch: (detail: {
@@ -70,8 +71,11 @@ export declare function buildPrefix(prefix: string | undefined, id: string): str
70
71
  export type NodeLayout = {
71
72
  id: string;
72
73
  parentIds?: string[];
74
+ data: {
75
+ offset?: number;
76
+ };
73
77
  } & FlowNode;
74
- export type FlowNode = InputN | ModuleN | BranchAllStartN | BranchAllEndN | ForLoopEndN | ForLoopStartN | ResultN | WhileLoopStartN | WhileLoopEndN | BranchOneStartN | BranchOneEndN | SubflowBoundN | NoBranchN | TriggerN | AssetN | AssetsOverflowedN;
78
+ export type FlowNode = InputN | ModuleN | BranchAllStartN | BranchAllEndN | ForLoopEndN | ForLoopStartN | ResultN | WhileLoopStartN | WhileLoopEndN | BranchOneStartN | BranchOneEndN | SubflowBoundN | NoBranchN | TriggerN | AssetN | AssetsOverflowedN | AiToolN | NewAiToolN;
75
79
  export type InputN = {
76
80
  type: 'input2';
77
81
  data: {
@@ -100,7 +104,8 @@ export type ModuleN = {
100
104
  parentIds: string[];
101
105
  eventHandlers: GraphEventHandlers;
102
106
  moving: string | undefined;
103
- flowModuleStates: Record<string, GraphModuleState> | undefined;
107
+ flowModuleState: GraphModuleState | undefined;
108
+ testModuleState: ModuleTestState | undefined;
104
109
  insertable: boolean;
105
110
  editMode: boolean;
106
111
  flowJob: Job | undefined;
@@ -116,7 +121,7 @@ export type BranchAllStartN = {
116
121
  id: string;
117
122
  branchIndex: number;
118
123
  eventHandlers: GraphEventHandlers;
119
- flowModuleStates: Record<string, GraphModuleState> | undefined;
124
+ flowModuleState: GraphModuleState | undefined;
120
125
  insertable: boolean;
121
126
  branchOne: boolean;
122
127
  };
@@ -127,7 +132,7 @@ export type BranchAllEndN = {
127
132
  offset: number;
128
133
  id: string;
129
134
  eventHandlers: GraphEventHandlers;
130
- flowModuleStates: Record<string, GraphModuleState> | undefined;
135
+ flowModuleState: GraphModuleState | undefined;
131
136
  };
132
137
  };
133
138
  export type ForLoopEndN = {
@@ -137,7 +142,7 @@ export type ForLoopEndN = {
137
142
  id: string;
138
143
  eventHandlers: GraphEventHandlers;
139
144
  simplifiedTriggerView: boolean;
140
- flowModuleStates: Record<string, GraphModuleState> | undefined;
145
+ flowModuleState: GraphModuleState | undefined;
141
146
  };
142
147
  };
143
148
  export type ForLoopStartN = {
@@ -146,7 +151,7 @@ export type ForLoopStartN = {
146
151
  offset: number;
147
152
  id: string;
148
153
  eventHandlers: GraphEventHandlers;
149
- flowModuleStates: Record<string, GraphModuleState> | undefined;
154
+ flowModuleState: GraphModuleState | undefined;
150
155
  selectedId: string | undefined;
151
156
  editMode: boolean;
152
157
  simplifiedTriggerView: boolean;
@@ -182,7 +187,7 @@ export type BranchOneStartN = {
182
187
  offset: number;
183
188
  id: string;
184
189
  eventHandlers: GraphEventHandlers;
185
- flowModuleStates: Record<string, GraphModuleState> | undefined;
190
+ flowModuleState: GraphModuleState | undefined;
186
191
  selected: boolean;
187
192
  insertable: boolean;
188
193
  label: string;
@@ -197,7 +202,7 @@ export type BranchOneEndN = {
197
202
  offset: number;
198
203
  id: string;
199
204
  eventHandlers: GraphEventHandlers;
200
- flowModuleStates: Record<string, GraphModuleState> | undefined;
205
+ flowModuleState: GraphModuleState | undefined;
201
206
  };
202
207
  };
203
208
  export type SubflowBoundN = {
@@ -218,7 +223,7 @@ export type NoBranchN = {
218
223
  offset: number;
219
224
  id: string;
220
225
  eventHandlers: GraphEventHandlers;
221
- flowModuleStates: Record<string, GraphModuleState> | undefined;
226
+ flowModuleState: GraphModuleState | undefined;
222
227
  branchOne: boolean;
223
228
  label: string;
224
229
  branchIndex: number;
@@ -247,10 +252,35 @@ export type AssetsOverflowedN = {
247
252
  overflowedAssets: AssetWithAltAccessType[];
248
253
  };
249
254
  };
255
+ export type AiToolN = {
256
+ type: 'aiTool';
257
+ data: {
258
+ tool: string;
259
+ eventHandlers: GraphEventHandlers;
260
+ moduleId: string;
261
+ insertable: boolean;
262
+ flowModuleStates: Record<string, GraphModuleState> | undefined;
263
+ };
264
+ };
265
+ export type NewAiToolN = {
266
+ type: 'newAiTool';
267
+ data: {
268
+ eventHandlers: GraphEventHandlers;
269
+ agentModuleId: string;
270
+ };
271
+ };
272
+ export declare function topologicalSort(nodes: {
273
+ id: string;
274
+ parentIds?: string[];
275
+ }[]): {
276
+ id: string;
277
+ parentIds?: string[];
278
+ }[];
250
279
  export declare function graphBuilder(modules: FlowModule[] | undefined, extra: {
251
280
  disableAi: boolean;
252
281
  insertable: boolean;
253
282
  flowModuleStates: Record<string, GraphModuleState> | undefined;
283
+ testModuleStates: ModulesTestStates | undefined;
254
284
  selectedId: string | undefined;
255
285
  path: string | undefined;
256
286
  newFlow: boolean;
@@ -262,14 +292,16 @@ export declare function graphBuilder(modules: FlowModule[] | undefined, extra: {
262
292
  individualStepTests: boolean;
263
293
  flowJob: Job | undefined;
264
294
  showJobStatus: boolean;
265
- suspendStatus: Writable<Record<string, {
295
+ suspendStatus: Record<string, {
266
296
  job: Job;
267
297
  nb: number;
268
- }>>;
298
+ }>;
269
299
  flowHasChanged: boolean;
270
300
  additionalAssetsMap?: Record<string, AssetWithAltAccessType[]>;
271
301
  }, failureModule: FlowModule | undefined, preprocessorModule: FlowModule | undefined, eventHandlers: GraphEventHandlers, success: boolean | undefined, useDataflow: boolean | undefined, selectedId: string | undefined, moving: string | undefined, simplifiableFlow: SimplifiableFlow | undefined, flowPathForTriggerNode: string | undefined, expandedSubflows: Record<string, FlowModule[]>): {
272
- nodes: NodeLayout[];
302
+ nodes: {
303
+ [key: string]: NodeLayout;
304
+ };
273
305
  edges: Edge[];
274
306
  error?: string | undefined;
275
307
  };
@@ -12,6 +12,21 @@ export function isTriggerStep(module) {
12
12
  export function buildPrefix(prefix, id) {
13
13
  return (prefix ?? '') + id + ':';
14
14
  }
15
+ export function topologicalSort(nodes) {
16
+ const nodeMap = new Map(nodes.map((n) => [n.id, n]));
17
+ const result = [];
18
+ const visited = new Set();
19
+ function visit(id) {
20
+ if (visited.has(id))
21
+ return;
22
+ visited.add(id);
23
+ const node = nodeMap.get(id);
24
+ node.parentIds?.forEach(visit);
25
+ result.push(node);
26
+ }
27
+ nodes.forEach((n) => visit(n.id));
28
+ return result.reverse();
29
+ }
15
30
  // input2: InputNode,
16
31
  // module: ModuleNode,
17
32
  // branchAllStart: BranchAllStart,
@@ -33,12 +48,12 @@ export function graphBuilder(modules, extra, failureModule, preprocessorModule,
33
48
  // }
34
49
  ) {
35
50
  console.debug('Building graph');
36
- const nodes = [];
37
- const edges = [];
38
51
  try {
39
52
  if (!modules) {
40
- return { nodes, edges };
53
+ return { nodes: {}, edges: [] };
41
54
  }
55
+ const nodes = [];
56
+ const edges = [];
42
57
  function addNode(module, offset) {
43
58
  const duplicated = nodes.find((n) => n.id === module.id);
44
59
  if (duplicated) {
@@ -57,7 +72,8 @@ export function graphBuilder(modules, extra, failureModule, preprocessorModule,
57
72
  parentIds: [],
58
73
  eventHandlers: eventHandlers,
59
74
  moving: moving,
60
- flowModuleStates: extra.flowModuleStates,
75
+ flowModuleState: extra.flowModuleStates?.[module.id],
76
+ testModuleState: extra.testModuleStates?.states?.[module.id],
61
77
  insertable: extra.insertable,
62
78
  editMode: extra.editMode,
63
79
  isOwner: extra.isOwner,
@@ -231,7 +247,7 @@ export function graphBuilder(modules, extra, failureModule, preprocessorModule,
231
247
  offset: currentOffset,
232
248
  id: module.id,
233
249
  eventHandlers: eventHandlers,
234
- flowModuleStates: extra.flowModuleStates
250
+ flowModuleState: extra.flowModuleStates?.[module.id]
235
251
  },
236
252
  type: 'branchAllEnd'
237
253
  };
@@ -245,7 +261,7 @@ export function graphBuilder(modules, extra, failureModule, preprocessorModule,
245
261
  id: module.id,
246
262
  branchIndex: -1,
247
263
  eventHandlers: eventHandlers,
248
- flowModuleStates: extra.flowModuleStates,
264
+ flowModuleState: extra.flowModuleStates?.[module.id],
249
265
  branchOne: false,
250
266
  label: 'No branches'
251
267
  },
@@ -270,7 +286,7 @@ export function graphBuilder(modules, extra, failureModule, preprocessorModule,
270
286
  id: module.id,
271
287
  branchIndex: branchIndex,
272
288
  eventHandlers: eventHandlers,
273
- flowModuleStates: extra.flowModuleStates,
289
+ flowModuleState: extra.flowModuleStates?.[module.id],
274
290
  insertable: extra.insertable,
275
291
  branchOne: false
276
292
  },
@@ -298,7 +314,7 @@ export function graphBuilder(modules, extra, failureModule, preprocessorModule,
298
314
  simplifiedTriggerView,
299
315
  eventHandlers: eventHandlers,
300
316
  editMode: extra.editMode,
301
- flowModuleStates: extra.flowModuleStates,
317
+ flowModuleState: extra.flowModuleStates?.[module.id],
302
318
  selectedId: extra.selectedId
303
319
  },
304
320
  type: 'forLoopStart'
@@ -320,7 +336,7 @@ export function graphBuilder(modules, extra, failureModule, preprocessorModule,
320
336
  id: module.id,
321
337
  eventHandlers: eventHandlers,
322
338
  simplifiedTriggerView,
323
- flowModuleStates: extra.flowModuleStates
339
+ flowModuleState: extra.flowModuleStates?.[module.id]
324
340
  },
325
341
  type: 'forLoopEnd'
326
342
  };
@@ -365,7 +381,7 @@ export function graphBuilder(modules, extra, failureModule, preprocessorModule,
365
381
  data: {
366
382
  offset: currentOffset,
367
383
  eventHandlers: eventHandlers,
368
- flowModuleStates: extra.flowModuleStates,
384
+ flowModuleState: extra.flowModuleStates?.[module.id],
369
385
  id: module.id
370
386
  },
371
387
  type: 'branchOneEnd'
@@ -395,7 +411,7 @@ export function graphBuilder(modules, extra, failureModule, preprocessorModule,
395
411
  eventHandlers: eventHandlers,
396
412
  insertable: extra.insertable,
397
413
  preLabel: undefined,
398
- flowModuleStates: extra.flowModuleStates,
414
+ flowModuleState: extra.flowModuleStates?.[module.id],
399
415
  selected: false,
400
416
  modules: module.value.default
401
417
  },
@@ -418,7 +434,7 @@ export function graphBuilder(modules, extra, failureModule, preprocessorModule,
418
434
  branchIndex: branchIndex,
419
435
  eventHandlers: eventHandlers,
420
436
  insertable: extra.insertable,
421
- flowModuleStates: extra.flowModuleStates,
437
+ flowModuleState: extra.flowModuleStates?.[module.id],
422
438
  selected: false,
423
439
  modules: branch.modules
424
440
  },
@@ -436,7 +452,7 @@ export function graphBuilder(modules, extra, failureModule, preprocessorModule,
436
452
  let expanded = expandedSubflows[module.id];
437
453
  if (expanded) {
438
454
  expanded = $state.snapshot(expanded);
439
- const startId = `${module.id}-subflow-start`;
455
+ const startId = `${module.id}`;
440
456
  const idWithoutPrefix = module.id.startsWith('subflow:')
441
457
  ? module.id.substring(8)
442
458
  : module.id;
@@ -564,11 +580,11 @@ export function graphBuilder(modules, extra, failureModule, preprocessorModule,
564
580
  });
565
581
  }
566
582
  }
567
- return { nodes, edges };
583
+ return { nodes: Object.fromEntries(nodes.map((n) => [n.id, n])), edges };
568
584
  }
569
585
  catch (e) {
570
586
  return {
571
- nodes: [],
587
+ nodes: {},
572
588
  edges: [],
573
589
  error: e
574
590
  };
@@ -1,5 +1,5 @@
1
1
  import type { FlowStatusModule, Job } from '../../gen';
2
- import type { Writable } from 'svelte/store';
2
+ import type { StateStore } from '../../utils';
3
3
  import type { FlowState } from '../flows/flowState';
4
4
  export type ModuleHost = 'workspace' | 'inline' | 'hub';
5
5
  export type Loop = {
@@ -18,18 +18,20 @@ export type GraphModuleStates = {
18
18
  states: Record<string, GraphModuleState>;
19
19
  };
20
20
  export type DurationStatus = {
21
- iteration_from?: number;
22
- iteration_total?: number;
23
21
  byJob: Record<string, {
24
22
  created_at?: number;
25
23
  started_at?: number;
26
24
  duration_ms?: number;
27
25
  }>;
28
26
  };
27
+ export type GlobalIterationBounds = {
28
+ iteration_from?: number;
29
+ iteration_total?: number;
30
+ };
29
31
  export type FlowStatusViewerContext = {
30
- flowStateStore?: Writable<FlowState>;
31
- retryStatus: Writable<Record<string, number | undefined>>;
32
- suspendStatus: Writable<Record<string, {
32
+ flowStateStore?: FlowState;
33
+ retryStatus: StateStore<Record<string, number | undefined>>;
34
+ suspendStatus: StateStore<Record<string, {
33
35
  nb: number;
34
36
  job: Job;
35
37
  }>>;
@@ -62,6 +64,7 @@ export type GraphModuleState = {
62
64
  suspend_count?: number;
63
65
  isListJob?: boolean;
64
66
  skipped?: boolean;
67
+ agent_actions?: FlowStatusModule['agent_actions'];
65
68
  };
66
69
  export type NestedNodes = GraphItem[];
67
70
  export declare function isNode(item: GraphItem | NestedNodes | undefined): item is Node;
@@ -29,7 +29,7 @@ let completeEdge = $derived(targetY - sourceY > 100
29
29
  // and handle the edge state in the graph builder
30
30
  let waitingForEvents = $derived(data?.flowModuleStates?.[data.targetId]?.type === 'WaitingForEvents' ||
31
31
  data?.flowModuleStates?.[`${data.sourceId}-v`]?.type === 'WaitingForEvents');
32
- const suspendStatus = $derived(data?.suspendStatus);
32
+ let suspendStatus = $derived(data?.suspendStatus);
33
33
  </script>
34
34
 
35
35
  <EdgeLabel
@@ -130,9 +130,9 @@ const suspendStatus = $derived(data?.suspendStatus);
130
130
  isOwner={data.isOwner}
131
131
  light
132
132
  />
133
- {:else if $suspendStatus && Object.keys($suspendStatus).length > 0}
133
+ {:else if suspendStatus && Object.keys(suspendStatus).length > 0}
134
134
  <div class="flex gap-2 flex-col">
135
- {#each Object.values($suspendStatus) as suspendCount (suspendCount.job.id)}
135
+ {#each Object.values(suspendStatus) as suspendCount (suspendCount.job.id)}
136
136
  <FlowStatusWaitingForEvents
137
137
  job={suspendCount.job}
138
138
  workspaceId={$workspaceStore!}
@@ -1,5 +1,4 @@
1
1
  import { BaseEdge, type EdgeProps } from '@xyflow/svelte';
2
- import type { Writable } from 'svelte/store';
3
2
  import type { GraphEventHandlers } from '../../graphBuilder.svelte';
4
3
  import type { Job } from '../../../../gen';
5
4
  import type { GraphModuleState } from '../../model';
@@ -18,10 +17,10 @@ type $$ComponentProps = EdgeProps & {
18
17
  flowModuleStates: Record<string, GraphModuleState> | undefined;
19
18
  isOwner: boolean;
20
19
  flowJob: Job | undefined;
21
- suspendStatus?: Writable<Record<string, {
20
+ suspendStatus?: Record<string, {
22
21
  job: Job;
23
22
  nb: number;
24
- }>>;
23
+ }>;
25
24
  shouldOffsetInsertBtnDueToAssetNode?: boolean;
26
25
  };
27
26
  };
@@ -0,0 +1,234 @@
1
+ <script module lang="ts">export function validateToolName(name) {
2
+ return /^[a-zA-Z0-9_]+$/.test(name);
3
+ }
4
+ export const AI_TOOL_BASE_OFFSET = 5;
5
+ export const AI_TOOL_ROW_OFFSET = 30;
6
+ export const BELOW_ADDITIONAL_OFFSET = 19;
7
+ export const AI_TOOL_CALL_PREFIX = '_wm_ai_agent_tool_call';
8
+ export const AI_TOOL_MESSAGE_PREFIX = '_wm_ai_agent_message';
9
+ const ROW_WIDTH = 275;
10
+ const NEW_TOOL_NODE_WIDTH = 40;
11
+ const MAX_TOOLS_PER_ROW = 2;
12
+ let computeAIToolNodesCache;
13
+ export function getToolCallId(idx, agentModuleId, moduleId) {
14
+ return moduleId
15
+ ? AI_TOOL_CALL_PREFIX + '-' + agentModuleId + '-' + idx + '-' + moduleId
16
+ : AI_TOOL_MESSAGE_PREFIX + '-' + agentModuleId + '-' + idx;
17
+ }
18
+ function getComparableNode(node) {
19
+ if (node.type === 'module' && node.data.module.value.type === 'aiagent') {
20
+ return {
21
+ ...node,
22
+ data: {
23
+ ...node.data,
24
+ module: $state.snapshot(node.data.module) // module is a proxy object so we need to snapshot to be able to compare
25
+ }
26
+ };
27
+ }
28
+ else {
29
+ return node;
30
+ }
31
+ }
32
+ export function computeAIToolNodes(nodes, eventHandlers, insertable, flowModuleStates) {
33
+ if (computeAIToolNodesCache &&
34
+ !!flowModuleStates === computeAIToolNodesCache.hasFlowModuleStates &&
35
+ deepEqual(nodes.map(getComparableNode), computeAIToolNodesCache.nodes)) {
36
+ return computeAIToolNodesCache.ret;
37
+ }
38
+ const allToolNodes = [];
39
+ const allToolEdges = [];
40
+ const yPosMap = {};
41
+ for (const node of nodes) {
42
+ if (node.type !== 'module' || node.data.module.value.type !== 'aiagent')
43
+ continue;
44
+ // by default we assume we will show tools above
45
+ let baseOffset = -AI_TOOL_BASE_OFFSET;
46
+ let rowOffset = -AI_TOOL_ROW_OFFSET;
47
+ let tools = node.data.module.value.tools.map((t) => ({
48
+ id: t.id,
49
+ name: t.summary ?? ''
50
+ }));
51
+ const agentActions = !insertable && flowModuleStates?.[node.id]?.agent_actions;
52
+ if (agentActions) {
53
+ // should show tools below
54
+ baseOffset = BELOW_ADDITIONAL_OFFSET + AI_TOOL_BASE_OFFSET;
55
+ rowOffset = AI_TOOL_ROW_OFFSET;
56
+ tools = agentActions.map((a, idx) => {
57
+ if (a.type === 'tool_call') {
58
+ const id = getToolCallId(idx, node.id, a.module_id);
59
+ return {
60
+ id,
61
+ name: a.function_name
62
+ };
63
+ }
64
+ else {
65
+ return {
66
+ id: getToolCallId(idx, node.id),
67
+ name: 'Message'
68
+ };
69
+ }
70
+ });
71
+ }
72
+ const totalRows = Math.ceil(tools.length / MAX_TOOLS_PER_ROW) + (insertable ? 1 : 0); // + 1 for add tool node when insertable
73
+ if (agentActions) {
74
+ yPosMap[node.position.y] = {
75
+ rows: totalRows,
76
+ placement: 'below'
77
+ };
78
+ }
79
+ else {
80
+ yPosMap[node.position.y] = {
81
+ rows: totalRows,
82
+ placement: 'above'
83
+ };
84
+ }
85
+ const toolNodes = tools.map((tool, i) => {
86
+ let inputToolXGap = 12;
87
+ let inputToolWidth = (ROW_WIDTH - inputToolXGap) / 2;
88
+ const row = Math.floor(i / MAX_TOOLS_PER_ROW) + 1;
89
+ const isLastRow = insertable ? row === totalRows - 1 : row === totalRows;
90
+ return {
91
+ type: 'aiTool',
92
+ parentId: node.id,
93
+ data: {
94
+ tool: tool.name,
95
+ eventHandlers,
96
+ moduleId: tool.id,
97
+ insertable,
98
+ flowModuleStates
99
+ },
100
+ id: `${node.id}-tool-${tool.id}`,
101
+ width: inputToolWidth,
102
+ position: {
103
+ x: tools.length === 1
104
+ ? (ROW_WIDTH - inputToolWidth) / 2
105
+ : (i + 1) % 2 === 0
106
+ ? inputToolWidth + inputToolXGap
107
+ : isLastRow && tools.length % 2 === 1
108
+ ? (ROW_WIDTH - inputToolWidth) / 2
109
+ : 0,
110
+ y: baseOffset +
111
+ rowOffset *
112
+ (agentActions
113
+ ? Math.floor(i / MAX_TOOLS_PER_ROW) + 1
114
+ : totalRows - Math.floor(i / MAX_TOOLS_PER_ROW))
115
+ }
116
+ };
117
+ });
118
+ const toolEdges = toolNodes?.map((n) => ({
119
+ id: `${n.id}-edge`,
120
+ source: agentActions ? (n.parentId ?? '') : (n.id ?? ''),
121
+ target: agentActions ? (n.id ?? '') : (n.parentId ?? ''),
122
+ type: 'empty',
123
+ data: { class: '!opacity-35 dark:!opacity-20' }
124
+ }));
125
+ allToolEdges.push(...(toolEdges ?? []));
126
+ allToolNodes.push(...(toolNodes ?? []));
127
+ if (insertable) {
128
+ allToolNodes.push({
129
+ type: 'newAiTool',
130
+ data: { eventHandlers, agentModuleId: node.data.module.id },
131
+ id: `${node.id}-tools-overflowed-in`,
132
+ parentId: node.id,
133
+ width: NEW_TOOL_NODE_WIDTH,
134
+ position: {
135
+ x: (ROW_WIDTH - NEW_TOOL_NODE_WIDTH) / 2,
136
+ y: baseOffset + rowOffset
137
+ }
138
+ });
139
+ }
140
+ }
141
+ const sortedNewNodes = clone(nodes)
142
+ .filter((n) => n.type !== 'asset')
143
+ .sort((a, b) => a.position.y - b.position.y);
144
+ let currentYOffset = 0;
145
+ let prevYPos = NaN;
146
+ for (const node of sortedNewNodes) {
147
+ if (node.position.y !== prevYPos) {
148
+ // if agent actions, we need to shift the node above
149
+ if (yPosMap[prevYPos]?.placement === 'below') {
150
+ currentYOffset += AI_TOOL_BASE_OFFSET + AI_TOOL_ROW_OFFSET * yPosMap[prevYPos].rows;
151
+ }
152
+ if (yPosMap[node.position.y]?.placement === 'above') {
153
+ currentYOffset += AI_TOOL_BASE_OFFSET + AI_TOOL_ROW_OFFSET * yPosMap[node.position.y].rows;
154
+ }
155
+ prevYPos = node.position.y;
156
+ }
157
+ node.position.y += currentYOffset;
158
+ }
159
+ let ret = {
160
+ toolNodes: allToolNodes,
161
+ toolEdges: allToolEdges,
162
+ newNodePositions: Object.fromEntries(sortedNewNodes.map((n) => {
163
+ return [n.id, n.position];
164
+ }))
165
+ };
166
+ computeAIToolNodesCache = {
167
+ nodes: nodes.map(getComparableNode),
168
+ hasFlowModuleStates: !!flowModuleStates,
169
+ ret
170
+ };
171
+ return ret;
172
+ }
173
+ </script>
174
+
175
+ <script lang="ts">import NodeWrapper from './NodeWrapper.svelte';
176
+ import { MessageCircle, Play, Wrench, X } from 'lucide-svelte';
177
+ import { twMerge } from 'tailwind-merge';
178
+ import { getContext } from 'svelte';
179
+ import { clone } from '../../../../utils';
180
+ import { getStateColor, getStateHoverColor } from '../../util';
181
+ import { deepEqual } from 'fast-equals';
182
+ let hover = $state(false);
183
+ let { data } = $props();
184
+ const { selectedId } = getContext('FlowGraphContext');
185
+ const flowModuleState = $derived(data.flowModuleStates?.[data.moduleId]);
186
+ </script>
187
+
188
+ <NodeWrapper>
189
+ {#snippet children({ darkMode })}
190
+ {@const bgColor = getStateColor(flowModuleState?.type, darkMode, true, false)}
191
+ {@const bgHoverColor = getStateHoverColor(flowModuleState?.type, darkMode, true, false)}
192
+
193
+ <!-- svelte-ignore a11y_no_static_element_interactions -->
194
+ <div class="relative" onmouseenter={() => (hover = true)} onmouseleave={() => (hover = false)}>
195
+ <button
196
+ class={twMerge(
197
+ 'text-left bg-surface h-6 flex items-center gap-1.5 rounded-sm text-secondary overflow-clip w-full outline-offset-0 outline-slate-500 dark:outline-gray-400',
198
+ $selectedId === data.moduleId ? 'outline outline-1' : 'active:outline active:outline-1'
199
+ )}
200
+ style={`background-color: ${hover ? bgHoverColor : bgColor};`}
201
+ onclick={() => data.eventHandlers.select(data.moduleId)}
202
+ >
203
+ {#if data.moduleId.startsWith(AI_TOOL_MESSAGE_PREFIX)}
204
+ <MessageCircle size={16} class="ml-1 shrink-0" />
205
+ {:else if data.moduleId.startsWith(AI_TOOL_CALL_PREFIX)}
206
+ <Play size={16} class="ml-1 shrink-0" />
207
+ {:else}
208
+ <Wrench size={16} class="ml-1 shrink-0" />
209
+ {/if}
210
+
211
+ <span
212
+ class={twMerge(
213
+ 'text-3xs truncate flex-1',
214
+ !validateToolName(data.tool) && 'text-red-400'
215
+ )}
216
+ >
217
+ {data.tool || 'No tool name'}
218
+ </span>
219
+ </button>
220
+ {#if data.insertable}
221
+ <button
222
+ class={twMerge(
223
+ 'absolute -top-[8px] -right-[8px] rounded-full h-[16px] w-[16px] center-center text-secondary outline-[1px] outline dark:outline-gray-500 outline-gray-300 bg-surface duration-0 hover:bg-red-400 hover:text-white !hidden',
224
+ $selectedId === data.moduleId || hover ? '!flex' : ''
225
+ )}
226
+ title="Delete"
227
+ onclick={() => data.eventHandlers.delete({ id: data.moduleId }, '')}
228
+ >
229
+ <X size={12} strokeWidth={2} />
230
+ </button>
231
+ {/if}
232
+ </div>
233
+ {/snippet}
234
+ </NodeWrapper>
@@ -0,0 +1,24 @@
1
+ export declare function validateToolName(name: string): boolean;
2
+ export declare const AI_TOOL_BASE_OFFSET = 5;
3
+ export declare const AI_TOOL_ROW_OFFSET = 30;
4
+ export declare const BELOW_ADDITIONAL_OFFSET = 19;
5
+ export declare const AI_TOOL_CALL_PREFIX = "_wm_ai_agent_tool_call";
6
+ export declare const AI_TOOL_MESSAGE_PREFIX = "_wm_ai_agent_message";
7
+ export declare function getToolCallId(idx: number, agentModuleId: string, moduleId?: string): string;
8
+ export declare function computeAIToolNodes(nodes: (Node & NodeLayout)[], eventHandlers: GraphEventHandlers, insertable: boolean, flowModuleStates: Record<string, GraphModuleState> | undefined): {
9
+ toolNodes: (Node & NodeLayout)[];
10
+ toolEdges: Edge[];
11
+ newNodePositions: Record<string, {
12
+ x: number;
13
+ y: number;
14
+ }>;
15
+ };
16
+ import type { AiToolN, GraphEventHandlers, NodeLayout } from '../../graphBuilder.svelte';
17
+ import type { Edge, Node } from '@xyflow/svelte';
18
+ import type { GraphModuleState } from '../../model';
19
+ interface Props {
20
+ data: AiToolN['data'];
21
+ }
22
+ declare const AiToolNode: import("svelte").Component<Props, {}, "">;
23
+ type AiToolNode = ReturnType<typeof AiToolNode>;
24
+ export default AiToolNode;