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
@@ -2,11 +2,11 @@
2
2
  import { workspaceStore } from '../../../stores';
3
3
  import FlowCard from '../common/FlowCard.svelte';
4
4
  import Button from '../../common/button/Button.svelte';
5
- let { job, isOwner, localDurationStatuses, suspendStatus, noEditor, onOpenDetails } = $props();
5
+ let { job, isOwner, suspendStatus, noEditor, onOpenDetails } = $props();
6
6
  </script>
7
7
 
8
8
  <FlowCard {noEditor} title="Flow result">
9
- {#if job && isOwner !== undefined && localDurationStatuses && suspendStatus}
9
+ {#if job && isOwner !== undefined && suspendStatus}
10
10
  <div class="px-4 py-2">
11
11
  <FlowPreviewResult
12
12
  {job}
@@ -14,7 +14,6 @@ let { job, isOwner, localDurationStatuses, suspendStatus, noEditor, onOpenDetail
14
14
  {isOwner}
15
15
  hideFlowResult={false}
16
16
  hideDownloadLogs={false}
17
- {localDurationStatuses}
18
17
  innerModules={[]}
19
18
  {suspendStatus}
20
19
  {extra}
@@ -1,11 +1,9 @@
1
- import type { DurationStatus } from '../../graph';
2
1
  import type { Job } from '../../../gen';
3
- import type { Writable } from 'svelte/store';
2
+ import type { StateStore } from '../../../utils';
4
3
  interface Props {
5
4
  job?: Job;
6
5
  isOwner?: boolean;
7
- localDurationStatuses?: Writable<Record<string, DurationStatus>>;
8
- suspendStatus?: Writable<Record<string, {
6
+ suspendStatus?: StateStore<Record<string, {
9
7
  job: Job;
10
8
  nb: number;
11
9
  }>>;
@@ -21,7 +21,7 @@ let selected = $state('early-stop');
21
21
  let previewOpen = $state(false);
22
22
  let jobId = $state(undefined);
23
23
  let job = $state(undefined);
24
- let previewIterationArgs = $derived($flowStateStore[mod.id]?.previewArgs ?? {});
24
+ let previewIterationArgs = $derived(flowStateStore.val[mod.id]?.previewArgs ?? {});
25
25
  </script>
26
26
 
27
27
  <Drawer bind:open={previewOpen} alwaysOpen size="75%">
@@ -1,2 +1,4 @@
1
1
  import type { FlowModule } from '../../gen';
2
- export declare function dfs<T>(modules: FlowModule[], f: (x: FlowModule, modules: FlowModule[], branches: FlowModule[][]) => T): T[];
2
+ export declare function dfs<T>(modules: FlowModule[], f: (x: FlowModule, modules: FlowModule[], branches: FlowModule[][]) => T, { skipToolNodes }?: {
3
+ skipToolNodes?: boolean;
4
+ }): T[];
@@ -1,4 +1,4 @@
1
- export function dfs(modules, f) {
1
+ export function dfs(modules, f, { skipToolNodes = false } = {}) {
2
2
  let result = [];
3
3
  for (const module of modules) {
4
4
  if (module.value.type == 'forloopflow' || module.value.type == 'whileloopflow') {
@@ -19,6 +19,10 @@ export function dfs(modules, f) {
19
19
  result = result.concat(dfs(branch, f));
20
20
  }
21
21
  }
22
+ else if (module.value.type == 'aiagent' && !skipToolNodes) {
23
+ result = result.concat(f(module, modules, [module.value.tools]));
24
+ result = result.concat(dfs(module.value.tools, f));
25
+ }
22
26
  else {
23
27
  result.push(f(module, modules, []));
24
28
  }
@@ -41,6 +41,84 @@ export async function loadSchemaFromModule(module) {
41
41
  schema: schema ?? emptySchema()
42
42
  };
43
43
  }
44
+ else if (mod.type === 'aiagent') {
45
+ const schema = {
46
+ $schema: 'https://json-schema.org/draft/2020-12/schema',
47
+ properties: {
48
+ provider: {
49
+ type: 'object',
50
+ oneOf: [
51
+ {
52
+ type: 'object',
53
+ title: 'OpenAI',
54
+ properties: {
55
+ kind: { type: 'string', enum: ['OpenAI'] },
56
+ resource: {
57
+ type: 'object',
58
+ format: 'resource-openai'
59
+ },
60
+ model: {
61
+ type: 'string',
62
+ enum: ['gpt-5', 'gpt-5-mini', 'gpt-5-nano', 'gpt-4.1', 'gpt-4o', 'gpt-4o-mini']
63
+ }
64
+ },
65
+ required: ['kind', 'resource', 'model']
66
+ },
67
+ {
68
+ type: 'object',
69
+ title: 'Anthropic',
70
+ properties: {
71
+ kind: { type: 'string', enum: ['Anthropic'] },
72
+ resource: {
73
+ type: 'object',
74
+ format: 'resource-anthropic'
75
+ },
76
+ model: {
77
+ type: 'string',
78
+ enum: ['claude-sonnet-4-0', 'claude-3-7-sonnet-latest', 'claude-3-5-haiku-latest']
79
+ }
80
+ },
81
+ required: ['kind', 'resource', 'model']
82
+ }
83
+ ]
84
+ },
85
+ system_prompt: {
86
+ type: 'string',
87
+ default: 'You are a helpful assistant'
88
+ },
89
+ user_message: {
90
+ type: 'string'
91
+ },
92
+ max_completion_tokens: {
93
+ type: 'number'
94
+ },
95
+ temperature: {
96
+ type: 'number'
97
+ }
98
+ },
99
+ required: ['provider', 'model', 'system_prompt', 'user_message'],
100
+ type: 'object',
101
+ order: [
102
+ 'provider',
103
+ 'model',
104
+ 'system_prompt',
105
+ 'user_message',
106
+ 'max_completion_tokens',
107
+ 'temperature'
108
+ ]
109
+ };
110
+ let input_transforms = mod.input_transforms ?? {};
111
+ return {
112
+ input_transforms: Object.keys(schema?.properties ?? {}).reduce((accu, key) => {
113
+ accu[key] = input_transforms[key] ?? {
114
+ type: 'static',
115
+ value: undefined
116
+ };
117
+ return accu;
118
+ }, {}),
119
+ schema
120
+ };
121
+ }
44
122
  return {
45
123
  input_transforms: {},
46
124
  schema: emptySchema()
@@ -1,12 +1,11 @@
1
1
  import type { Schema } from '../../common';
2
2
  import type { Flow } from '../../gen';
3
- import type { Writable } from 'svelte/store';
3
+ import type { StateStore } from '../../utils';
4
4
  export type FlowModuleState = {
5
5
  schema?: Schema;
6
6
  previewResult?: any;
7
7
  previewArgs?: any;
8
8
  previewJobId?: string;
9
- previewWorkspaceId?: string;
10
9
  previewSuccess?: boolean;
11
10
  };
12
11
  export type FlowState = Record<string, FlowModuleState>;
@@ -15,4 +14,4 @@ export type FlowState = Record<string, FlowModuleState>;
15
14
  * It contains data loaded that are not contained in a Flow object i.e. schemas.
16
15
  * We also hold the data of the results of a test job, ran by the user.
17
16
  */
18
- export declare function initFlowState(flow: Flow, flowStateStore: Writable<FlowState>): Promise<void>;
17
+ export declare function initFlowState(flow: Flow, flowStateStore: StateStore<FlowState>): Promise<void>;
@@ -11,10 +11,10 @@ export async function initFlowState(flow, flowStateStore) {
11
11
  const failureModule = flow.value.failure_module
12
12
  ? await loadFlowModuleState(flow.value.failure_module)
13
13
  : emptyFlowModuleState();
14
- flowStateStore.set({
14
+ flowStateStore.val = {
15
15
  ...modulesState,
16
16
  failure: failureModule
17
- });
17
+ };
18
18
  }
19
19
  /**
20
20
  * mapFlowModule recursively explore the flow, following deeply nested loop and branches modules
@@ -1,6 +1,5 @@
1
1
  import type { Schema } from '../../common';
2
2
  import { type FlowModule, type PathFlow, type PathScript, type RawScript, type OpenFlow, type Script } from '../../gen';
3
- import { type Writable } from 'svelte/store';
4
3
  import type { FlowModuleState, FlowState } from './flowState';
5
4
  import type { ExtendedOpenFlow } from './types';
6
5
  import { type StateStore } from '../../utils';
@@ -16,6 +15,7 @@ export declare function createLoop(id: string, enabledAi: boolean): Promise<[Flo
16
15
  export declare function createWhileLoop(id: string): Promise<[FlowModule, FlowModuleState]>;
17
16
  export declare function createBranches(id: string): Promise<[FlowModule, FlowModuleState]>;
18
17
  export declare function createBranchAll(id: string): Promise<[FlowModule, FlowModuleState]>;
18
+ export declare function createAiAgent(id: string): Promise<[FlowModule, FlowModuleState]>;
19
19
  export declare function createFlow(id: string): Promise<[FlowModule, FlowModuleState]>;
20
20
  export declare function fork(flowModule: FlowModule): Promise<[FlowModule & {
21
21
  value: RawScript;
@@ -24,16 +24,16 @@ export declare function emptyModule(flowState: FlowState, fullFlow: OpenFlow, fl
24
24
  export declare function createScriptFromInlineScript(flowModule: FlowModule, suffix: string, schema: Schema | undefined, flowPath: string): Promise<[FlowModule & {
25
25
  value: PathScript;
26
26
  }, FlowModuleState]>;
27
- export declare function deleteFlowStateById(id: string, flowStateStore: Writable<FlowState>): void;
27
+ export declare function deleteFlowStateById(id: string, flowStateStore: StateStore<FlowState>): void;
28
28
  export declare function sliceModules(modules: FlowModule[], upTo: number, idOrders: string[]): FlowModule[];
29
- export declare function insertNewPreprocessorModule(flowStore: StateStore<ExtendedOpenFlow>, flowStateStore: Writable<FlowState>, inlineScript?: {
29
+ export declare function insertNewPreprocessorModule(flowStore: StateStore<ExtendedOpenFlow>, flowStateStore: StateStore<FlowState>, inlineScript?: {
30
30
  language: RawScript['language'];
31
31
  }, wsScript?: {
32
32
  path: string;
33
33
  summary: string;
34
34
  hash: string | undefined;
35
35
  }): Promise<void>;
36
- export declare function insertNewFailureModule(flowStore: StateStore<ExtendedOpenFlow>, flowStateStore: Writable<FlowState>, inlineScript?: {
36
+ export declare function insertNewFailureModule(flowStore: StateStore<ExtendedOpenFlow>, flowStateStore: StateStore<FlowState>, inlineScript?: {
37
37
  language: RawScript['language'];
38
38
  subkind: 'pgsql' | 'flow';
39
39
  instructions?: string;
@@ -14,7 +14,8 @@ export async function loadFlowModuleState(flowModule) {
14
14
  const { input_transforms, schema } = await loadSchemaFromModule(flowModule);
15
15
  if (flowModule.value.type == 'script' ||
16
16
  flowModule.value.type == 'rawscript' ||
17
- flowModule.value.type == 'flow') {
17
+ flowModule.value.type == 'flow' ||
18
+ flowModule.value.type == 'aiagent') {
18
19
  flowModule.value.input_transforms = input_transforms;
19
20
  }
20
21
  return {
@@ -109,6 +110,15 @@ export async function createBranchAll(id) {
109
110
  const flowModuleState = await loadFlowModuleState(branchesFlowModules);
110
111
  return [branchesFlowModules, flowModuleState];
111
112
  }
113
+ export async function createAiAgent(id) {
114
+ const aiAgentFlowModules = {
115
+ id,
116
+ value: { type: 'aiagent', tools: [], input_transforms: {} },
117
+ summary: 'AI Agent'
118
+ };
119
+ const flowModuleState = await loadFlowModuleState(aiAgentFlowModules);
120
+ return [aiAgentFlowModules, flowModuleState];
121
+ }
112
122
  export async function createFlow(id) {
113
123
  const flowFlowModules = {
114
124
  id,
@@ -181,10 +191,7 @@ export async function createScriptFromInlineScript(flowModule, suffix, schema, f
181
191
  return pickScript(availablePath, flowModule.summary ?? '', flowModule.id, hash);
182
192
  }
183
193
  export function deleteFlowStateById(id, flowStateStore) {
184
- flowStateStore.update((fss) => {
185
- delete fss[id];
186
- return fss;
187
- });
194
+ delete flowStateStore.val[id];
188
195
  }
189
196
  export function sliceModules(modules, upTo, idOrders) {
190
197
  return modules
@@ -227,10 +234,7 @@ export async function insertNewPreprocessorModule(flowStore, flowStateStore, inl
227
234
  [module, state] = await pickScript(wsScript.path, wsScript.summary, module.id, wsScript.hash);
228
235
  }
229
236
  flowStore.val.value.preprocessor_module = module;
230
- flowStateStore.update((fss) => {
231
- fss[module.id] = state;
232
- return fss;
233
- });
237
+ flowStateStore.val[module.id] = state;
234
238
  }
235
239
  export async function insertNewFailureModule(flowStore, flowStateStore, inlineScript, wsScript) {
236
240
  let module = {
@@ -250,8 +254,5 @@ export async function insertNewFailureModule(flowStore, flowStateStore, inlineSc
250
254
  [module, state] = await pickScript(wsScript.path, wsScript.summary, module.id, wsScript.hash);
251
255
  }
252
256
  flowStore.val.value.failure_module = module;
253
- flowStateStore.update((fss) => {
254
- fss[module.id] = state;
255
- return fss;
256
- });
257
+ flowStateStore.val[module.id] = state;
257
258
  }
@@ -1,10 +1,9 @@
1
1
  import type { Flow, OpenFlow } from '../../gen';
2
- import { type Writable } from 'svelte/store';
3
2
  import { type FlowState } from './flowState';
4
3
  import type { StateStore } from '../../utils';
5
4
  export type FlowMode = 'push' | 'pull';
6
- export declare const importFlowStore: Writable<Flow | undefined>;
7
- export declare function initFlow(flow: Flow, flowStore: StateStore<Flow>, flowStateStore: Writable<FlowState>): Promise<void>;
5
+ export declare const importFlowStore: import("svelte/store").Writable<Flow | undefined>;
6
+ export declare function initFlow(flow: Flow, flowStore: StateStore<Flow>, flowStateStore: StateStore<FlowState>): Promise<void>;
8
7
  export declare function copyFirstStepSchema(flowState: FlowState, flowStore: StateStore<OpenFlow>): Promise<void>;
9
8
  export declare function getFirstStepSchema(flowState: FlowState, flow: OpenFlow): Promise<{
10
9
  schema: import("../../common").Schema | undefined;
@@ -14,7 +13,7 @@ export declare function getFirstStepSchema(flowState: FlowState, flow: OpenFlow)
14
13
  value: {
15
14
  language?: "deno" | "bun" | "python3" | "go" | "bash" | "powershell" | "postgresql" | "mysql" | "bigquery" | "snowflake" | "mssql" | "oracledb" | "graphql" | "nativets" | "php" | undefined;
16
15
  path?: string | undefined;
17
- type: "rawscript" | "script" | "flow" | "forloopflow" | "whileloopflow" | "branchone" | "branchall" | "identity";
16
+ type: "rawscript" | "script" | "flow" | "forloopflow" | "whileloopflow" | "branchone" | "branchall" | "aiagent" | "identity";
18
17
  };
19
18
  };
20
19
  connectFirstNode: () => void;
@@ -5,7 +5,7 @@ import { createEventDispatcher, tick } from 'svelte';
5
5
  import { getContext } from 'svelte';
6
6
  import { Play } from 'lucide-svelte';
7
7
  import { aiChatManager } from '../../copilot/chat/AIChatManager.svelte';
8
- let { loading = false, onRunPreview, onJobDone } = $props();
8
+ let { loading = false, onRunPreview, onJobDone, localModuleStates = $bindable({}) } = $props();
9
9
  const { selectedId } = getContext('FlowEditorContext');
10
10
  let flowPreviewContent = $state(undefined);
11
11
  let preventEscape = $state(false);
@@ -134,6 +134,7 @@ export function getFlowPreviewContent() {
134
134
  bind:selectedJobStepType
135
135
  bind:branchOrIterationN
136
136
  bind:rightColumnSelect
137
+ bind:localModuleStates
137
138
  on:close={() => {
138
139
  // keep the data in the preview content
139
140
  deferContent = true
@@ -47,6 +47,7 @@ function apply() {
47
47
  sendUserToast('Error parsing yaml: ' + e), true;
48
48
  }
49
49
  }
50
+ let editorHeight = $state(0);
50
51
  </script>
51
52
 
52
53
  <Drawer on:open={reload} bind:this={drawer} size="800px">
@@ -60,7 +61,15 @@ function apply() {
60
61
  {#await import('../../SimpleEditor.svelte')}
61
62
  <Loader2 class="animate-spin" />
62
63
  {:then Module}
63
- <Module.default bind:this={editor} autoHeight bind:code lang="yaml" />
64
+ <div class="h-full w-full overflow-hidden" bind:clientHeight={editorHeight}>
65
+ <Module.default
66
+ bind:this={editor}
67
+ autoHeight
68
+ minHeight={editorHeight}
69
+ bind:code
70
+ lang="yaml"
71
+ />
72
+ </div>
64
73
  {/await}
65
74
  {/if}
66
75
  </DrawerContent>
@@ -12,7 +12,8 @@ export const forbiddenIds = [
12
12
  'new',
13
13
  'in',
14
14
  'failure',
15
- 'preprocessor'
15
+ 'preprocessor',
16
+ 'as'
16
17
  ];
17
18
  export function numberToChars(n) {
18
19
  if (n < 0) {
@@ -29,7 +29,7 @@ const wide = $derived(hover || selected || flowPreviewJob || individualStepTests
29
29
  <span transition:fade={{ duration: 100 }} class="text-xs">Test flow</span>
30
30
  {/if}
31
31
  </Button>
32
- {#if wide && (flowPreviewJob || individualStepTests)}
32
+ {#if wide && flowPreviewJob}
33
33
  <div
34
34
  class="flex flex-row items-center shadow-sm rounded-md mt-1"
35
35
  in:fade={{ duration: 100, delay: 200 }}
@@ -4,7 +4,7 @@ import Popover from '../../Popover.svelte';
4
4
  import { twMerge } from 'tailwind-merge';
5
5
  import VirtualList from '@tutorlatin/svelte-tiny-virtual-list';
6
6
  import { untrack } from 'svelte';
7
- let { id, flowJobs, flowJobsSuccess, selected, selectedManually, onSelectedIteration, moduleId } = $props();
7
+ let { id, flowJobs, flowJobsSuccess, selected, selectedManually, onSelectedIteration, moduleId, showIcon = true } = $props();
8
8
  let filter = $state(undefined);
9
9
  function onKeydown(event) {
10
10
  if (event.key === 'Enter' &&
@@ -40,6 +40,7 @@ function updateItems() {
40
40
  }
41
41
  let isOpen = $state(false);
42
42
  $effect(() => {
43
+ filter;
43
44
  isOpen && flowJobs && untrack(() => updateItems());
44
45
  });
45
46
  </script>
@@ -99,7 +100,9 @@ $effect(() => {
99
100
  meltElement={trigger}
100
101
  >
101
102
  #{selected == -1 ? '?' : selected + 1}
102
- <ListFilter size={15} />
103
+ {#if showIcon}
104
+ <ListFilter size={15} />
105
+ {/if}
103
106
  </MeltButton>
104
107
  {/snippet}
105
108
 
@@ -118,7 +121,8 @@ $effect(() => {
118
121
  class={twMerge(
119
122
  'text-primary text-xs w-full text-left py-1 pl-2 hover:bg-surface-hover whitespace-nowrap flex flex-row gap-2 items-center',
120
123
  items[idx].success == false ? 'text-red-400' : '',
121
- 'data-[highlighted]:bg-surface-hover'
124
+ 'data-[highlighted]:bg-surface-hover',
125
+ items[idx].index == selected ? 'bg-surface-selected' : ''
122
126
  )}
123
127
  onClick={() => {
124
128
  onSelectedIteration({
@@ -7,6 +7,7 @@ interface Props {
7
7
  selected: number;
8
8
  selectedManually: boolean | undefined;
9
9
  onSelectedIteration: onSelectedIteration;
10
+ showIcon?: boolean;
10
11
  }
11
12
  declare const FlowJobsMenu: import("svelte").Component<Props, {}, "">;
12
13
  type FlowJobsMenu = ReturnType<typeof FlowJobsMenu>;
@@ -2,7 +2,7 @@
2
2
  import Popover from '../../Popover.svelte';
3
3
  import { classNames } from '../../../utils';
4
4
  import { AlertTriangle, Bed, Database, Gauge, Move, PhoneIncoming, Repeat, Square, SkipForward, Pin, X, Play, Loader2 } from 'lucide-svelte';
5
- import { createEventDispatcher, getContext, untrack } from 'svelte';
5
+ import { createEventDispatcher, getContext } from 'svelte';
6
6
  import { fade } from 'svelte/transition';
7
7
  import { twMerge } from 'tailwind-merge';
8
8
  import IdEditorInput from '../../IdEditorInput.svelte';
@@ -50,30 +50,30 @@ function updateConnectingData(id, pickableIds, flowPropPickerConfig, flowStateSt
50
50
  connectingData =
51
51
  flowPropPickerConfig && pickableIds && Object.keys(pickableIds).includes(id)
52
52
  ? pickableIds[id]
53
- : (flowStateStore?.[id]?.previewResult ?? {});
53
+ : (flowStateStore?.val?.[id]?.previewResult ?? {});
54
54
  }
55
55
  $effect(() => {
56
- const args = [id, pickableIds, $flowPropPickerConfig, $flowStateStore];
57
- untrack(() => updateConnectingData(...args));
56
+ updateConnectingData(id, pickableIds, $flowPropPickerConfig, flowStateStore);
58
57
  });
59
58
  function updateLastJob(flowStateStore) {
60
- if (!flowStateStore || !id || flowStateStore[id]?.previewResult === 'never tested this far') {
59
+ if (!flowStateStore ||
60
+ !id ||
61
+ flowStateStore.val[id]?.previewResult === 'never tested this far') {
61
62
  return;
62
63
  }
63
64
  lastJob = {
64
- id: flowStateStore[id]?.previewJobId ?? '',
65
- result: flowStateStore[id]?.previewResult,
65
+ id: flowStateStore.val[id]?.previewJobId ?? '',
66
+ result: flowStateStore.val[id]?.previewResult,
66
67
  type: 'CompletedJob',
67
- workspace_id: flowStateStore[id]?.previewWorkspaceId ?? '',
68
- success: flowStateStore[id]?.previewSuccess ?? undefined
68
+ success: flowStateStore.val[id]?.previewSuccess ?? undefined
69
69
  };
70
70
  }
71
71
  $effect(() => {
72
72
  if (testJob && testJob.type === 'CompletedJob') {
73
73
  lastJob = $state.snapshot(testJob);
74
74
  }
75
- else if (flowStateStore && $flowStateStore) {
76
- untrack(() => updateLastJob($flowStateStore));
75
+ else if (id) {
76
+ updateLastJob(flowStateStore);
77
77
  }
78
78
  });
79
79
  let isConnectingCandidate = $derived(!!id && !!$flowPropPickerConfig && !!pickableIds && Object.keys(pickableIds).includes(id));
@@ -101,11 +101,11 @@ let testRunDropdownOpen = $state(false);
101
101
  acceptUnderScores
102
102
  reservedIds={dfs(flowStore?.val?.value.modules ?? [], (x) => x.id)}
103
103
  bind:value={newId}
104
- on:save={(e) => {
105
- dispatch('changeId', { id, newId: e.detail, deps: getDeps?.dependents ?? {} })
104
+ onSave={({ oldId, newId }) => {
105
+ dispatch('changeId', { id: oldId, newId, deps: getDeps?.dependents ?? {} })
106
106
  editId = false
107
107
  }}
108
- on:close={() => {
108
+ onClose={() => {
109
109
  editId = false
110
110
  }}
111
111
  />
@@ -144,7 +144,7 @@ let testRunDropdownOpen = $state(false);
144
144
  {#if deletable && id && flowEditorContext?.flowStore && outputPickerVisible}
145
145
  {@const flowStore = flowEditorContext?.flowStore.val}
146
146
  {@const mod = flowStore?.value ? dfsPreviousResults(id, flowStore, false)[0] : undefined}
147
- {#if mod && $flowStateStore?.[id]}
147
+ {#if mod && flowStateStore?.val?.[id]}
148
148
  <ModuleTest bind:this={moduleTest} {mod} bind:testIsLoading bind:testJob />
149
149
  {/if}
150
150
  {/if}
@@ -1,5 +1,5 @@
1
1
  <script lang="ts">import { createEventDispatcher, getContext, tick } from 'svelte';
2
- import { createInlineScriptModule, createBranchAll, createBranches, createLoop, createWhileLoop, deleteFlowStateById, emptyModule, pickScript, pickFlow, insertNewPreprocessorModule } from '../flowStateUtils.svelte';
2
+ import { createInlineScriptModule, createBranchAll, createBranches, createLoop, createWhileLoop, deleteFlowStateById, emptyModule, pickScript, pickFlow, insertNewPreprocessorModule, createAiAgent } from '../flowStateUtils.svelte';
3
3
  import { emptyFlowModuleState } from '../utils';
4
4
  import { dfs } from '../dfs';
5
5
  import { push } from '../../../history.svelte';
@@ -16,19 +16,19 @@ import { setScheduledPollSchedule } from '../../triggers';
16
16
  import { JobService } from '../../../gen';
17
17
  import { dfsByModule } from '../previousResults';
18
18
  import { refreshStateStore } from '../../../svelte5Utils.svelte';
19
- import { writable } from 'svelte/store';
20
19
  import FlowStickyNode from './FlowStickyNode.svelte';
21
20
  import { getStepHistoryLoaderContext } from '../../stepHistoryLoader.svelte';
22
- let { sidebarSize = $bindable(undefined), disableStaticInputs = false, disableTutorials = false, disableAi = false, disableSettings = false, newFlow = false, smallErrorHandler = false, workspace = $workspaceStore, onTestUpTo, onEditInput, localModuleStates = writable({}), aiChatOpen, showFlowAiButton, toggleAiChat, isOwner, onTestFlow, isRunning, onCancelTestFlow, onOpenPreview, onHideJobStatus, individualStepTests = false, flowJob = undefined, showJobStatus = false, suspendStatus = writable({}), onDelete, flowHasChanged } = $props();
21
+ import { ModulesTestStates } from '../../modulesTest.svelte';
22
+ let { sidebarSize = $bindable(undefined), disableStaticInputs = false, disableTutorials = false, disableAi = false, disableSettings = false, newFlow = false, smallErrorHandler = false, workspace = $workspaceStore, onTestUpTo, onEditInput, localModuleStates = {}, testModuleStates = new ModulesTestStates(), aiChatOpen, showFlowAiButton, toggleAiChat, isOwner, onTestFlow, isRunning, onCancelTestFlow, onOpenPreview, onHideJobStatus, individualStepTests = false, flowJob = undefined, showJobStatus = false, suspendStatus = $bindable({ val: {} }), onDelete, flowHasChanged } = $props();
23
23
  let flowTutorials = $state(undefined);
24
24
  const { customUi, selectedId, moving, history, flowStateStore, flowStore, pathStore } = getContext('FlowEditorContext');
25
25
  const { triggersCount, triggersState } = getContext('TriggerContext');
26
26
  const { flowPropPickerConfig } = getContext('PropPickerContext');
27
27
  export async function insertNewModuleAtIndex(modules, index, kind, wsScript, wsFlow, inlineScript) {
28
28
  push(history, flowStore.val);
29
- let module = emptyModule($flowStateStore, flowStore.val, kind == 'flow');
29
+ let module = emptyModule(flowStateStore.val, flowStore.val, kind == 'flow');
30
30
  let state = emptyFlowModuleState();
31
- $flowStateStore[module.id] = state;
31
+ flowStateStore.val[module.id] = state;
32
32
  if (wsFlow) {
33
33
  ;
34
34
  [module, state] = await pickFlow(wsFlow.path, wsFlow.summary, module.id);
@@ -53,10 +53,14 @@ export async function insertNewModuleAtIndex(modules, index, kind, wsScript, wsF
53
53
  ;
54
54
  [module, state] = await createBranchAll(module.id);
55
55
  }
56
+ else if (kind == 'aiagent') {
57
+ ;
58
+ [module, state] = await createAiAgent(module.id);
59
+ }
56
60
  else if (inlineScript) {
57
61
  const { language, kind, subkind, summary } = inlineScript;
58
62
  [module, state] = await createInlineScriptModule(language, kind, subkind, module.id, summary);
59
- $flowStateStore[module.id] = state;
63
+ flowStateStore.val[module.id] = state;
60
64
  if (kind == 'trigger') {
61
65
  module.summary = 'Trigger';
62
66
  }
@@ -64,7 +68,7 @@ export async function insertNewModuleAtIndex(modules, index, kind, wsScript, wsF
64
68
  module.summary = 'Approval';
65
69
  }
66
70
  }
67
- $flowStateStore[module.id] = state;
71
+ flowStateStore.val[module.id] = state;
68
72
  if (kind == 'approval') {
69
73
  module.suspend = { required_events: 1, timeout: 1800 };
70
74
  }
@@ -108,6 +112,9 @@ export function removeAtId(modules, id) {
108
112
  });
109
113
  mod.value.default = removeAtId(mod.value.default, id);
110
114
  }
115
+ else if (mod.value.type == 'aiagent') {
116
+ mod.value.tools = removeAtId(mod.value.tools, id);
117
+ }
111
118
  return mod;
112
119
  });
113
120
  }
@@ -200,18 +207,16 @@ async function loadLastJob(path, moduleId) {
200
207
  id: previousJobId[0].id
201
208
  });
202
209
  if ('result' in getJobResult) {
203
- $flowStateStore[moduleId] = {
204
- ...($flowStateStore[moduleId] ?? {}),
210
+ flowStateStore.val[moduleId] = {
211
+ ...(flowStateStore.val[moduleId] ?? {}),
205
212
  previewResult: getJobResult.result,
206
213
  previewJobId: previousJobId[0].id,
207
- previewWorkspaceId: previousJobId[0].workspace_id,
208
214
  previewSuccess: getJobResult.success
209
215
  };
210
216
  if (stepHistoryLoader) {
211
217
  stepHistoryLoader.stepStates[moduleId].loadingJobs = false;
212
218
  }
213
219
  }
214
- $flowStateStore = $flowStateStore;
215
220
  }
216
221
  }
217
222
  $effect(() => {
@@ -285,12 +290,13 @@ $effect(() => {
285
290
  editMode
286
291
  {onTestUpTo}
287
292
  {onEditInput}
288
- flowModuleStates={$localModuleStates}
293
+ flowModuleStates={localModuleStates}
294
+ {testModuleStates}
289
295
  {isOwner}
290
296
  {individualStepTests}
291
297
  {flowJob}
292
298
  {showJobStatus}
293
- {suspendStatus}
299
+ suspendStatus={suspendStatus.val}
294
300
  {flowHasChanged}
295
301
  onDelete={(id) => {
296
302
  dependents = getDependentComponents(id, flowStore.val)
@@ -305,6 +311,7 @@ $effect(() => {
305
311
  }
306
312
  refreshStateStore(flowStore)
307
313
  onDelete?.(id)
314
+ delete flowStateStore.val[id]
308
315
  }
309
316
 
310
317
  if (Object.keys(dependents).length > 0) {
@@ -342,6 +349,8 @@ $effect(() => {
342
349
  }
343
350
  } else if (mod.id == detail.sourceId || mod.id == detail.targetId) {
344
351
  targetModules = modules
352
+ } else if (mod.id == detail.agentId && mod.value.type === 'aiagent') {
353
+ targetModules = mod.value.tools
345
354
  }
346
355
  })
347
356
  if (flowStore.val.value.modules && Array.isArray(flowStore.val.value.modules)) {
@@ -373,7 +382,8 @@ $effect(() => {
373
382
  })
374
383
  }
375
384
  } else {
376
- const index = detail.index ?? 0
385
+ const index = (detail.agentId ? targetModules?.length : detail.index) ?? 0
386
+
377
387
  await insertNewModuleAtIndex(
378
388
  targetModules,
379
389
  index,
@@ -416,7 +426,6 @@ $effect(() => {
416
426
  if (['branchone', 'branchall'].includes(detail.kind)) {
417
427
  await addBranch(targetModules[detail.index ?? 0].id)
418
428
  }
419
- $flowStateStore = $flowStateStore
420
429
  refreshStateStore(flowStore)
421
430
  dispatch('change')
422
431
  }
@@ -433,6 +442,7 @@ $effect(() => {
433
442
  }}
434
443
  onChangeId={(detail) => {
435
444
  let { id, newId, deps } = detail
445
+
436
446
  dfs(flowStore.val.value.modules, (mod) => {
437
447
  if (deps[mod.id]) {
438
448
  deps[mod.id].forEach((dep) => {
@@ -465,6 +475,8 @@ $effect(() => {
465
475
  mod.id = newId
466
476
  }
467
477
  })
478
+ flowStateStore.val[newId] = flowStateStore.val[id]
479
+ delete flowStateStore.val[id]
468
480
  refreshStateStore(flowStore)
469
481
  $selectedId = newId
470
482
  }}