windmill-components 1.542.5 → 1.555.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 (399) hide show
  1. package/package/aiStore.d.ts +13 -0
  2. package/package/aiStore.js +70 -0
  3. package/package/common.d.ts +6 -2
  4. package/package/components/AIAgentLogViewer.svelte +1 -1
  5. package/package/components/AIProviderPicker.svelte +25 -8
  6. package/package/components/ArgEnum.svelte +17 -7
  7. package/package/components/ArgEnum.svelte.d.ts +1 -0
  8. package/package/components/ArgInput.svelte +257 -188
  9. package/package/components/ArgInput.svelte.d.ts +4 -1
  10. package/package/components/ArrayTypeNarrowing.svelte +38 -32
  11. package/package/components/AutoscalingEvents.svelte +21 -5
  12. package/package/components/AutoscalingEvents.svelte.d.ts +4 -18
  13. package/package/components/ChannelSelector.svelte +92 -18
  14. package/package/components/ChannelSelector.svelte.d.ts +2 -0
  15. package/package/components/ConnectionSection.svelte +12 -1
  16. package/package/components/DateTimeInput.svelte +8 -6
  17. package/package/components/DeployButton.svelte +1 -1
  18. package/package/components/Dev.svelte +24 -9
  19. package/package/components/Dev.svelte.d.ts +23 -1
  20. package/package/components/DisplayResult.svelte +36 -23
  21. package/package/components/DropdownV2.svelte +8 -2
  22. package/package/components/DropdownV2.svelte.d.ts +1 -0
  23. package/package/components/DynamicInput.svelte +10 -10
  24. package/package/components/EditableSchemaForm.svelte +28 -13
  25. package/package/components/Editor.svelte +2 -1
  26. package/package/components/EditorSettings.svelte +5 -5
  27. package/package/components/EditorSettings.svelte.d.ts +4 -18
  28. package/package/components/ErrorOrRecoveryHandler.svelte +14 -20
  29. package/package/components/FakeMonacoPlaceHolder.svelte +4 -2
  30. package/package/components/FakeMonacoPlaceHolder.svelte.d.ts +1 -0
  31. package/package/components/FieldHeader.svelte +5 -7
  32. package/package/components/FirstStepInputs.svelte +1 -1
  33. package/package/components/FlowHistoryJobPicker.svelte +3 -0
  34. package/package/components/FlowHistoryJobPicker.svelte.d.ts +1 -0
  35. package/package/components/FlowJobResult.svelte +5 -5
  36. package/package/components/FlowLogRow.svelte +2 -2
  37. package/package/components/FlowLogViewer.svelte +228 -57
  38. package/package/components/FlowLogViewer.svelte.d.ts +16 -5
  39. package/package/components/FlowLogViewerWrapper.svelte +56 -3
  40. package/package/components/FlowLogViewerWrapper.svelte.d.ts +4 -3
  41. package/package/components/FlowLoopIterationPreview.svelte +4 -4
  42. package/package/components/FlowLoopIterationPreview.svelte.d.ts +1 -1
  43. package/package/components/FlowMetadata.svelte +3 -4
  44. package/package/components/FlowMetadata.svelte.d.ts +4 -18
  45. package/package/components/FlowPlugConnect.svelte +8 -2
  46. package/package/components/FlowPlugConnect.svelte.d.ts +1 -0
  47. package/package/components/FlowPreviewContent.svelte +121 -94
  48. package/package/components/FlowPreviewContent.svelte.d.ts +3 -3
  49. package/package/components/FlowStatusViewer.svelte +63 -59
  50. package/package/components/FlowStatusViewer.svelte.d.ts +2 -2
  51. package/package/components/FlowStatusViewerInner.svelte +186 -94
  52. package/package/components/FlowStatusViewerInner.svelte.d.ts +10 -3
  53. package/package/components/FlowTimeline.svelte +110 -131
  54. package/package/components/FlowTimeline.svelte.d.ts +13 -4
  55. package/package/components/FlowTimelineBar.svelte +227 -0
  56. package/package/components/FlowTimelineBar.svelte.d.ts +24 -0
  57. package/package/components/FolderEditor.svelte +6 -7
  58. package/package/components/GroupEditor.svelte +148 -141
  59. package/package/components/GroupEditor.svelte.d.ts +5 -4
  60. package/package/components/InputTransformForm.svelte +193 -71
  61. package/package/components/InputTransformForm.svelte.d.ts +3 -0
  62. package/package/components/InputTransformSchemaForm.svelte +10 -5
  63. package/package/components/InputTransformSchemaForm.svelte.d.ts +2 -0
  64. package/package/components/InstanceSetting.svelte +34 -51
  65. package/package/components/InstanceSettings.svelte +12 -21
  66. package/package/components/JobArgs.svelte +15 -16
  67. package/package/components/JobArgs.svelte.d.ts +4 -18
  68. package/package/components/JobLoader.svelte +23 -42
  69. package/package/components/JobLoader.svelte.d.ts +2 -0
  70. package/package/components/JobStatus.svelte +1 -1
  71. package/package/components/JobStatus.svelte.d.ts +4 -18
  72. package/package/components/JsonEditor.svelte +18 -9
  73. package/package/components/JsonEditor.svelte.d.ts +1 -1
  74. package/package/components/JsonInputs.svelte +1 -1
  75. package/package/components/ModulePreviewForm.svelte +23 -19
  76. package/package/components/ModulePreviewResultViewer.svelte +1 -7
  77. package/package/components/NextcloudSetting.svelte +6 -1
  78. package/package/components/NumberTypeNarrowing.svelte +32 -16
  79. package/package/components/ObjectStoreConfigSettings.svelte +27 -19
  80. package/package/components/Password.svelte +7 -11
  81. package/package/components/Password.svelte.d.ts +5 -20
  82. package/package/components/PasswordArgInput.svelte +35 -15
  83. package/package/components/PasswordArgInput.svelte.d.ts +4 -18
  84. package/package/components/Path.svelte +2 -8
  85. package/package/components/Path.svelte.d.ts +1 -1
  86. package/package/components/QueuePosition.svelte +6 -2
  87. package/package/components/ResourceEditor.svelte +3 -10
  88. package/package/components/ResourcePicker.svelte +85 -72
  89. package/package/components/ResourcePicker.svelte.d.ts +2 -0
  90. package/package/components/RunChart.svelte +1 -1
  91. package/package/components/RunForm.svelte +16 -21
  92. package/package/components/S3ArrayHelperButton.svelte +18 -0
  93. package/package/components/S3ArrayHelperButton.svelte.d.ts +9 -0
  94. package/package/components/S3FilePicker.svelte +1 -1
  95. package/package/components/SchemaForm.svelte +18 -10
  96. package/package/components/SchemaForm.svelte.d.ts +7 -1
  97. package/package/components/SchemaFormWithArgPicker.svelte +1 -1
  98. package/package/components/ScriptBuilder.svelte +2 -2
  99. package/package/components/ScriptEditor.svelte +9 -9
  100. package/package/components/ScriptEditor.svelte.d.ts +1 -1
  101. package/package/components/ShareModal.svelte +4 -4
  102. package/package/components/SimpleEditor.svelte +6 -2
  103. package/package/components/SimpleEditor.svelte.d.ts +3 -0
  104. package/package/components/StringTypeNarrowing.svelte +44 -25
  105. package/package/components/StringTypeNarrowing.svelte.d.ts +1 -1
  106. package/package/components/SuperadminSettingsInner.svelte +3 -3
  107. package/package/components/TeamSelector.svelte +83 -37
  108. package/package/components/TeamSelector.svelte.d.ts +0 -1
  109. package/package/components/TemplateEditor.svelte +18 -9
  110. package/package/components/Toast.svelte +2 -7
  111. package/package/components/Toast.svelte.d.ts +4 -18
  112. package/package/components/Toggle.svelte +17 -7
  113. package/package/components/ToggleHubWorkspaceQuick.svelte +3 -3
  114. package/package/components/WorkerGroup.svelte +2 -14
  115. package/package/components/apps/components/buttons/AppButton.svelte +66 -38
  116. package/package/components/apps/components/display/dbtable/InsertRow.svelte +32 -2
  117. package/package/components/apps/components/display/dbtable/queries/insert.js +2 -1
  118. package/package/components/apps/components/display/dbtable/utils.d.ts +8 -8
  119. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +13 -4
  120. package/package/components/apps/components/display/table/SyncColumnDefs.svelte +2 -2
  121. package/package/components/apps/components/display/table/utils.js +14 -4
  122. package/package/components/apps/components/helpers/RefreshButton.svelte +5 -1
  123. package/package/components/apps/components/helpers/RunnableComponent.svelte +3 -5
  124. package/package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +1 -0
  125. package/package/components/apps/components/inputs/currency/CurrencyInput.svelte +2 -1
  126. package/package/components/apps/components/layout/AppTabs.svelte +116 -71
  127. package/package/components/apps/components/layout/AppTabs.svelte.d.ts +1 -0
  128. package/package/components/apps/editor/AppEditorHeader.svelte +33 -271
  129. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +233 -0
  130. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte.d.ts +18 -0
  131. package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte +47 -0
  132. package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte.d.ts +8 -0
  133. package/package/components/apps/editor/GridEditor.svelte +7 -2
  134. package/package/components/apps/editor/appDeploy.svelte.d.ts +1 -0
  135. package/package/components/apps/editor/appDeploy.svelte.js +6 -0
  136. package/package/components/apps/editor/appUtils.d.ts +1 -0
  137. package/package/components/apps/editor/appUtils.js +30 -1
  138. package/package/components/apps/editor/component/ComponentInner.svelte +1 -0
  139. package/package/components/apps/editor/component/ComponentNavigation.svelte +3 -1
  140. package/package/components/apps/editor/component/components.d.ts +19 -4
  141. package/package/components/apps/editor/component/components.js +23 -3
  142. package/package/components/apps/editor/contextPanel/ComponentOutputViewer.svelte +1 -1
  143. package/package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +6 -4
  144. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +1 -1
  145. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte.d.ts +1 -1
  146. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +1 -1
  147. package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +2 -0
  148. package/package/components/apps/editor/settingsPanel/GridTab.svelte +19 -1
  149. package/package/components/apps/editor/settingsPanel/GridTab.svelte.d.ts +3 -1
  150. package/package/components/apps/editor/settingsPanel/GridTabHidden.svelte +52 -0
  151. package/package/components/apps/editor/settingsPanel/GridTabHidden.svelte.d.ts +9 -0
  152. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +58 -8
  153. package/package/components/auditLogs/AuditLogsFilters.svelte +7 -1
  154. package/package/components/auditLogs/AuditLogsTable.svelte +17 -7
  155. package/package/components/auditLogs/AuditLogsTable.svelte.d.ts +1 -0
  156. package/package/components/common/CloseButton.svelte +2 -2
  157. package/package/components/common/CloseButton.svelte.d.ts +1 -0
  158. package/package/components/common/ResizeTransitionWrapper.svelte +39 -0
  159. package/package/components/common/ResizeTransitionWrapper.svelte.d.ts +12 -0
  160. package/package/components/common/badge/CountBadge.svelte +29 -0
  161. package/package/components/common/badge/CountBadge.svelte.d.ts +8 -0
  162. package/package/components/common/button/Button.svelte +1 -0
  163. package/package/components/common/button/ConnectionButton.svelte +6 -1
  164. package/package/components/common/button/ConnectionButton.svelte.d.ts +2 -0
  165. package/package/components/common/button/RefreshButton.svelte +8 -4
  166. package/package/components/common/button/RefreshButton.svelte.d.ts +3 -0
  167. package/package/components/common/calendarPicker/CalendarPicker.svelte +1 -1
  168. package/package/components/common/fileInput/FileInput.svelte +7 -6
  169. package/package/components/common/fileUpload/S3ArgInput.svelte +11 -9
  170. package/package/components/common/fileUpload/S3ArgInput.svelte.d.ts +1 -0
  171. package/package/components/common/layout/List.svelte +3 -7
  172. package/package/components/common/layout/List.svelte.d.ts +7 -29
  173. package/package/components/common/popup/PopupV2.svelte +14 -25
  174. package/package/components/common/popup/PopupV2.svelte.d.ts +4 -2
  175. package/package/components/common/table/ScriptRow.svelte +22 -2
  176. package/package/components/common/toggleButton-v2/ToggleButton.svelte +17 -26
  177. package/package/components/common/toggleButton-v2/ToggleButton.svelte.d.ts +16 -30
  178. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +1 -1
  179. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte +3 -3
  180. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte.d.ts +1 -0
  181. package/package/components/copilot/CodeCompletionStatus.svelte +2 -1
  182. package/package/components/copilot/CronGen.svelte +1 -1
  183. package/package/components/copilot/FlowCopilotInputsModal.svelte +26 -23
  184. package/package/components/copilot/FlowInlineScriptAIButton.svelte +2 -2
  185. package/package/components/copilot/IteratorGen.svelte +30 -25
  186. package/package/components/copilot/IteratorGen.svelte.d.ts +8 -7
  187. package/package/components/copilot/MetadataGen.svelte +4 -3
  188. package/package/components/copilot/PredicateGen.svelte +15 -12
  189. package/package/components/copilot/PredicateGen.svelte.d.ts +5 -4
  190. package/package/components/copilot/RegexGen.svelte +1 -1
  191. package/package/components/copilot/ScriptFix.svelte +1 -1
  192. package/package/components/copilot/ScriptGen.svelte +2 -1
  193. package/package/components/copilot/StepGenQuick.svelte +15 -16
  194. package/package/components/copilot/StepGenQuick.svelte.d.ts +14 -13
  195. package/package/components/copilot/StepInputGen.svelte +50 -36
  196. package/package/components/copilot/StepInputGen.svelte.d.ts +13 -10
  197. package/package/components/copilot/StepInputsGen.svelte +18 -19
  198. package/package/components/copilot/StepInputsGen.svelte.d.ts +4 -18
  199. package/package/components/copilot/autocomplete/Autocompletor.js +1 -1
  200. package/package/components/copilot/autocomplete/request.js +1 -1
  201. package/package/components/copilot/chat/AIChat.svelte +2 -1
  202. package/package/components/copilot/chat/AIChatManager.svelte.js +5 -3
  203. package/package/components/copilot/chat/AiChatLayout.svelte +2 -1
  204. package/package/components/copilot/chat/ProviderModelSelector.svelte +11 -10
  205. package/package/components/copilot/chat/ProviderModelSelector.svelte.d.ts +2 -17
  206. package/package/components/copilot/chat/flow/FlowAIButton.svelte +1 -1
  207. package/package/components/copilot/chat/flow/FlowAIChat.svelte +4 -2
  208. package/package/components/copilot/chat/script/core.d.ts +4 -4
  209. package/package/components/copilot/chat/script/core.js +95 -35
  210. package/package/components/copilot/chat/shared.js +2 -1
  211. package/package/components/copilot/lib.d.ts +1 -0
  212. package/package/components/copilot/lib.js +7 -3
  213. package/package/components/custom_ui.d.ts +1 -0
  214. package/package/components/details/DetailPageLayout.svelte +3 -2
  215. package/package/components/details/DetailPageLayout.svelte.d.ts +1 -0
  216. package/package/components/flows/CreateActionsFlow.svelte +1 -1
  217. package/package/components/flows/FlowChatInterface.svelte +404 -0
  218. package/package/components/flows/FlowChatInterface.svelte.d.ts +19 -0
  219. package/package/components/flows/FlowChatMessage.svelte +41 -0
  220. package/package/components/flows/FlowChatMessage.svelte.d.ts +9 -0
  221. package/package/components/flows/FlowConversationsSidebar.svelte +213 -0
  222. package/package/components/flows/FlowConversationsSidebar.svelte.d.ts +15 -0
  223. package/package/components/flows/FlowEditor.svelte.d.ts +1 -1
  224. package/package/components/flows/FlowModuleIcon.svelte +10 -10
  225. package/package/components/flows/FlowProgressBar.svelte +16 -16
  226. package/package/components/flows/FlowProgressBar.svelte.d.ts +7 -22
  227. package/package/components/flows/common/FlowCard.svelte +10 -2
  228. package/package/components/flows/common/FlowCard.svelte.d.ts +1 -0
  229. package/package/components/flows/common/FlowCardHeader.svelte +2 -1
  230. package/package/components/flows/common/FlowCardHeader.svelte.d.ts +1 -0
  231. package/package/components/flows/content/DynamicInputHelpBox.svelte +4 -4
  232. package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +1 -1
  233. package/package/components/flows/content/FlowInput.svelte +381 -259
  234. package/package/components/flows/content/FlowInput.svelte.d.ts +1 -1
  235. package/package/components/flows/content/FlowInputsQuick.svelte +56 -34
  236. package/package/components/flows/content/FlowInputsQuick.svelte.d.ts +3 -2
  237. package/package/components/flows/content/FlowModuleComponent.svelte +29 -11
  238. package/package/components/flows/flowInfers.d.ts +60 -0
  239. package/package/components/flows/flowInfers.js +72 -40
  240. package/package/components/flows/{flowStore.d.ts → flowStore.svelte.d.ts} +5 -1
  241. package/package/components/flows/header/FlowPreviewButtons.svelte +1 -1
  242. package/package/components/flows/map/FlowErrorHandlerItem.svelte +4 -2
  243. package/package/components/flows/map/FlowErrorHandlerItem.svelte.d.ts +1 -0
  244. package/package/components/flows/map/FlowJobsMenu.svelte +3 -3
  245. package/package/components/flows/map/FlowJobsMenu.svelte.d.ts +1 -1
  246. package/package/components/flows/map/FlowModuleSchemaItem.svelte +1 -1
  247. package/package/components/flows/map/FlowModuleSchemaMap.svelte +5 -2
  248. package/package/components/flows/map/FlowStickyNode.svelte +2 -2
  249. package/package/components/flows/map/FlowStickyNode.svelte.d.ts +1 -0
  250. package/package/components/flows/map/InsertModuleButton.svelte +8 -15
  251. package/package/components/flows/map/InsertModuleButton.svelte.d.ts +4 -4
  252. package/package/components/flows/map/InsertModuleInner.svelte +19 -20
  253. package/package/components/flows/map/InsertModuleInner.svelte.d.ts +2 -2
  254. package/package/components/flows/map/MapItem.svelte +1 -1
  255. package/package/components/flows/map/VirtualItem.svelte +1 -2
  256. package/package/components/flows/pickers/PickHubScriptQuick.svelte +43 -52
  257. package/package/components/flows/pickers/PickHubScriptQuick.svelte.d.ts +2 -1
  258. package/package/components/flows/pickers/WorkspaceScriptPickerQuick.svelte +41 -26
  259. package/package/components/flows/pickers/WorkspaceScriptPickerQuick.svelte.d.ts +1 -0
  260. package/package/components/flows/propPicker/OutputPicker.svelte +2 -0
  261. package/package/components/flows/propPicker/PropPickerWrapper.svelte +1 -15
  262. package/package/components/git_sync/DetectionFlow.svelte +33 -44
  263. package/package/components/git_sync/DetectionFlow.svelte.d.ts +1 -0
  264. package/package/components/git_sync/GitSyncContext.svelte.d.ts +22 -0
  265. package/package/components/git_sync/GitSyncContext.svelte.js +145 -5
  266. package/package/components/git_sync/GitSyncModeDisplay.svelte +14 -0
  267. package/package/components/git_sync/GitSyncModeDisplay.svelte.d.ts +9 -0
  268. package/package/components/git_sync/GitSyncRepositoryCard.svelte +365 -253
  269. package/package/components/git_sync/GitSyncRepositoryCard.svelte.d.ts +10 -1
  270. package/package/components/git_sync/GitSyncSection.svelte +134 -14
  271. package/package/components/git_sync/PullWorkspaceModal.svelte +24 -32
  272. package/package/components/git_sync/PushWorkspaceModal.svelte +24 -32
  273. package/package/components/graph/FlowGraphV2.svelte +2 -1
  274. package/package/components/graph/FlowGraphV2.svelte.d.ts +1 -0
  275. package/package/components/graph/graphBuilder.svelte.d.ts +2 -0
  276. package/package/components/graph/graphBuilder.svelte.js +1 -0
  277. package/package/components/graph/model.d.ts +5 -5
  278. package/package/components/graph/renderers/edges/BaseEdge.svelte +1 -0
  279. package/package/components/graph/renderers/edges/EmptyEdge.svelte +3 -10
  280. package/package/components/graph/renderers/edges/EmptyEdge.svelte.d.ts +4 -18
  281. package/package/components/graph/renderers/nodes/AIToolNode.svelte +2 -2
  282. package/package/components/graph/renderers/nodes/InputNode.svelte +13 -2
  283. package/package/components/graph/renderers/nodes/NewAIToolNode.svelte +5 -10
  284. package/package/components/graph/renderers/triggers/TriggersBadge.svelte +2 -27
  285. package/package/components/home/ItemsList.svelte +1 -1
  286. package/package/components/instanceSettings.js +17 -0
  287. package/package/components/jobs/JobProgressBar.svelte +27 -21
  288. package/package/components/jobs/JobProgressBar.svelte.d.ts +9 -24
  289. package/package/components/meltComponents/MenuSingleItem.svelte +3 -8
  290. package/package/components/meltComponents/MenuSingleItem.svelte.d.ts +0 -3
  291. package/package/components/meltComponents/Popover.svelte +3 -2
  292. package/package/components/meltComponents/Popover.svelte.d.ts +1 -0
  293. package/package/components/meltComponents/Tooltip.svelte +1 -1
  294. package/package/components/progressBar/ProgressBar.svelte +39 -53
  295. package/package/components/progressBar/ProgressBar.svelte.d.ts +11 -26
  296. package/package/components/raw_apps/FileEditorIcon.svelte +1 -1
  297. package/package/components/raw_apps/FileEditorIcon.svelte.d.ts +4 -18
  298. package/package/components/raw_apps/RawAppBackgroundRunner.svelte +2 -8
  299. package/package/components/raw_apps/RawAppBackgroundRunner.svelte.d.ts +4 -18
  300. package/package/components/raw_apps/RawAppEditor.svelte +6 -7
  301. package/package/components/raw_apps/RawAppEditorHeader.svelte +48 -301
  302. package/package/components/raw_apps/RawAppEditorHeader.svelte.d.ts +18 -19
  303. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +10 -16
  304. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +13 -13
  305. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte +8 -11
  306. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte.d.ts +1 -2
  307. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +0 -1
  308. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte +7 -13
  309. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte.d.ts +8 -8
  310. package/package/components/raw_apps/RawAppPreview.svelte +3 -7
  311. package/package/components/raw_apps/RawAppPreview.svelte.d.ts +5 -19
  312. package/package/components/raw_apps/utils.d.ts +1 -1
  313. package/package/components/raw_apps/utils.js +3 -3
  314. package/package/components/runs/JobsLoader.svelte +1 -1
  315. package/package/components/runs/NoWorkerWithTagWarning.svelte +3 -3
  316. package/package/components/runs/NoWorkerWithTagWarning.svelte.d.ts +1 -1
  317. package/package/components/runs/RunOption.svelte +2 -2
  318. package/package/components/runs/RunsFilter.svelte +15 -12
  319. package/package/components/runs/RunsFilter.svelte.d.ts +1 -1
  320. package/package/components/schema/AddPropertyV2.svelte +7 -4
  321. package/package/components/schema/EditableSchemaDrawer.svelte +19 -18
  322. package/package/components/schema/FlowPropertyEditor.svelte +9 -2
  323. package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -1
  324. package/package/components/schema/PropertyEditor.svelte +22 -26
  325. package/package/components/schema/PropertyEditor.svelte.d.ts +1 -1
  326. package/package/components/schema/SchemaFormDND.svelte +3 -2
  327. package/package/components/schema/SchemaFormDND.svelte.d.ts +1 -0
  328. package/package/components/select/DraggableTags.svelte +2 -2
  329. package/package/components/select/MultiSelect.svelte +15 -9
  330. package/package/components/select/MultiSelect.svelte.d.ts +1 -0
  331. package/package/components/select/Select.svelte +12 -5
  332. package/package/components/select/Select.svelte.d.ts +11 -0
  333. package/package/components/select/SelectDropdown.svelte +98 -46
  334. package/package/components/select/SelectDropdown.svelte.d.ts +10 -0
  335. package/package/components/select/utils.svelte.js +2 -0
  336. package/package/components/settings/CreateToken.svelte +76 -49
  337. package/package/components/settings/WorkspaceUserSettings.svelte +111 -17
  338. package/package/components/sidebar/CriticalAlertTable.svelte +2 -1
  339. package/package/components/sidebar/Linkify.svelte +14 -0
  340. package/package/components/sidebar/Linkify.svelte.d.ts +5 -0
  341. package/package/components/sidebar/MenuLink.svelte +2 -1
  342. package/package/components/sidebar/MenuLink.svelte.d.ts +1 -0
  343. package/package/components/sidebar/SidebarContent.svelte +27 -27
  344. package/package/components/sidebar/WorkspaceMenu.svelte +8 -3
  345. package/package/components/table/Cell.svelte +7 -14
  346. package/package/components/table/Cell.svelte.d.ts +13 -35
  347. package/package/components/table/tableUtils.js +1 -1
  348. package/package/components/text_input/TextInput.svelte +30 -0
  349. package/package/components/text_input/TextInput.svelte.d.ts +17 -0
  350. package/package/components/triggers/AddTriggersButton.svelte +1 -0
  351. package/package/components/triggers/TriggersEditor.svelte +11 -1
  352. package/package/components/triggers/gcp/GcpTriggerEditorConfigSection.svelte +1 -1
  353. package/package/components/triggers/gcp/GcpTriggerEditorConfigSection.svelte.d.ts +2 -1
  354. package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +28 -5
  355. package/package/components/triggers/gcp/utils.js +1 -0
  356. package/package/components/triggers/schedules/ScheduleEditorInner.svelte +1 -0
  357. package/package/components/triggers/triggers.svelte.d.ts +1 -1
  358. package/package/components/triggers/triggers.svelte.js +8 -4
  359. package/package/components/triggers/webhook/WebhooksConfigSection.svelte +143 -63
  360. package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +22 -0
  361. package/package/components/triggers/websocket/utils.js +1 -0
  362. package/package/components/tutorials/FlowBuilderTutorialErrorHandler.svelte +2 -2
  363. package/package/components/tutorials/FlowBuilderTutorialForLoop.svelte +3 -0
  364. package/package/components/tutorials/FlowBuilderTutorialSimpleFlow.svelte +49 -17
  365. package/package/components/tutorials/Tutorial.svelte +9 -0
  366. package/package/components/tutorials/Tutorial.svelte.d.ts +1 -0
  367. package/package/components/tutorials/app/AppTutorial.svelte +41 -57
  368. package/package/components/tutorials/app/BackgroundRunnablesTutorial.svelte +3 -5
  369. package/package/components/tutorials/app/ConnectionTutorial.svelte +2 -2
  370. package/package/components/tutorials/utils.js +2 -154
  371. package/package/components/vscode.js +16 -8
  372. package/package/components/workspaceSettings/AISettings.svelte +12 -5
  373. package/package/components/workspaceSettings/AISettings.svelte.d.ts +2 -1
  374. package/package/components/workspaceSettings/CreateWorkspace.svelte +2 -2
  375. package/package/components/workspaceSettings/DucklakeSettings.svelte +64 -7
  376. package/package/components/workspaceSettings/ModelTokenLimits.svelte +165 -0
  377. package/package/components/workspaceSettings/ModelTokenLimits.svelte.d.ts +8 -0
  378. package/package/components/workspaceSettings/StorageSettings.svelte +147 -77
  379. package/package/editorUtils.d.ts +1 -1
  380. package/package/gen/core/OpenAPI.js +1 -1
  381. package/package/gen/schemas.gen.d.ts +223 -17
  382. package/package/gen/schemas.gen.js +226 -17
  383. package/package/gen/services.gen.d.ts +221 -27
  384. package/package/gen/services.gen.js +440 -48
  385. package/package/gen/types.gen.d.ts +1067 -218
  386. package/package/hubPaths.json +2 -1
  387. package/package/script_helpers.js +5 -5
  388. package/package/services/JobManager.js +14 -9
  389. package/package/stores.d.ts +4 -12
  390. package/package/stores.js +5 -65
  391. package/package/timelineCompute.svelte.d.ts +21 -0
  392. package/package/timelineCompute.svelte.js +113 -0
  393. package/package/toast.js +2 -1
  394. package/package/utils.d.ts +16 -8
  395. package/package/utils.js +65 -12
  396. package/package/workspace_settings.d.ts +13 -8
  397. package/package/workspace_settings.js +46 -11
  398. package/package.json +4 -4
  399. /package/package/components/flows/{flowStore.js → flowStore.svelte.js} +0 -0
@@ -1,5 +1,14 @@
1
+ import type { GitSyncRepository } from './GitSyncContext.svelte';
1
2
  type $$ComponentProps = {
2
- idx: number;
3
+ idx?: number | null;
4
+ isSecondary?: boolean;
5
+ isLegacy?: boolean;
6
+ variant?: 'primary-sync' | 'primary-promotion' | 'secondary' | 'legacy' | 'standard';
7
+ mode?: 'sync' | 'promotion' | null;
8
+ repository?: GitSyncRepository | null;
9
+ onAdd?: (() => void) | null;
10
+ isCollapsible?: boolean;
11
+ showEmptyState?: boolean;
3
12
  };
4
13
  declare const GitSyncRepositoryCard: import("svelte").Component<$$ComponentProps, {}, "">;
5
14
  type GitSyncRepositoryCard = ReturnType<typeof GitSyncRepositoryCard>;
@@ -1,8 +1,8 @@
1
- <script lang="ts">import { Plus, ExternalLink } from 'lucide-svelte';
1
+ <script lang="ts">import { ExternalLink, ChevronDown, ChevronRight, Plus } from 'lucide-svelte';
2
2
  import { Button, Alert } from '../common';
3
3
  import Description from '../Description.svelte';
4
4
  import { setGitSyncContext } from './GitSyncContext.svelte';
5
- import GitSyncRepositoryList from './GitSyncRepositoryList.svelte';
5
+ import GitSyncRepositoryCard from './GitSyncRepositoryCard.svelte';
6
6
  import GitSyncModalManager from './GitSyncModalManager.svelte';
7
7
  import { enterpriseLicense, workspaceStore } from '../../stores';
8
8
  import { sendUserToast } from '../../toast';
@@ -23,6 +23,16 @@ $effect(() => {
23
23
  });
24
24
  }
25
25
  });
26
+ // Derived state for repository categorization
27
+ const primarySync = $derived(gitSyncContext?.getPrimarySyncRepository() || null);
28
+ const primaryPromotion = $derived(gitSyncContext?.getPrimaryPromotionRepository() || null);
29
+ const secondarySync = $derived(gitSyncContext?.getSecondarySyncRepositories() || []);
30
+ const legacyPromotion = $derived(gitSyncContext?.getLegacyPromotionRepositories() || []);
31
+ // State for collapsible sections
32
+ let secondarySyncExpanded = $state(false);
33
+ let legacyPromotionExpanded = $state(false);
34
+ // Check if any secondary repositories are unsaved
35
+ const hasUnsavedSecondary = $derived(secondarySync.some(s => s.repo.isUnsavedConnection));
26
36
  </script>
27
37
 
28
38
  {#if !gitSyncContext}
@@ -68,19 +78,129 @@ $effect(() => {
68
78
  </div>
69
79
  <div class="pt-2"></div>
70
80
 
71
- <!-- Repository list -->
72
- <GitSyncRepositoryList />
81
+ <!-- Primary Sync Repository -->
82
+ <div class="space-y-4">
83
+ <GitSyncRepositoryCard
84
+ variant="primary-sync"
85
+ mode="sync"
86
+ idx={primarySync?.idx ?? null}
87
+ repository={primarySync?.repo ?? null}
88
+ onAdd={() => gitSyncContext.addSyncRepository()}
89
+ isCollapsible={false}
90
+ showEmptyState={primarySync?.repo === null}
91
+ />
73
92
 
74
- <!-- Add repository button -->
75
- <div class="flex mt-5 mb-5">
76
- <Button
77
- startIcon={{ icon: Plus }}
78
- color="dark"
79
- variant="border"
80
- onclick={() => gitSyncContext.addRepository()}
81
- >
82
- Add connection
83
- </Button>
93
+ <!-- Secondary Sync Repositories -->
94
+ {#if primarySync && !primarySync.repo?.isUnsavedConnection}
95
+ {#if secondarySync.length > 0 || secondarySyncExpanded}
96
+ <div class="mt-4">
97
+ <button
98
+ class="flex items-center gap-2 text-sm text-secondary hover:text-primary transition-colors"
99
+ onclick={() => (secondarySyncExpanded = !secondarySyncExpanded)}
100
+ >
101
+ {#if secondarySyncExpanded}
102
+ <ChevronDown size={16} />
103
+ {:else}
104
+ <ChevronRight size={16} />
105
+ {/if}
106
+ Secondary sync repositories ({secondarySync.length})
107
+ </button>
108
+
109
+ {#if secondarySyncExpanded}
110
+ <div class="mt-3 space-y-3">
111
+ {#if secondarySync.length === 0}
112
+ <div class="text-sm text-secondary italic">
113
+ No secondary sync repositories configured
114
+ </div>
115
+ {:else}
116
+ {#each secondarySync as { repo, idx } (repo.git_repo_resource_path)}
117
+ <div class="pl-4">
118
+ <GitSyncRepositoryCard
119
+ variant="secondary"
120
+ {idx}
121
+ isSecondary={true}
122
+ />
123
+ </div>
124
+ {/each}
125
+ {/if}
126
+
127
+ {#if !hasUnsavedSecondary}
128
+ <div class="pl-4">
129
+ <Button
130
+ size="xs"
131
+ color="light"
132
+ variant="border"
133
+ startIcon={{ icon: Plus }}
134
+ onclick={() => gitSyncContext.addSyncRepository()}
135
+ >
136
+ Add secondary sync
137
+ </Button>
138
+ </div>
139
+ {/if}
140
+ </div>
141
+ {/if}
142
+ </div>
143
+ {:else}
144
+ <!-- Collapsed state when no secondary repos exist -->
145
+ {#if !hasUnsavedSecondary}
146
+ <div class="mt-2">
147
+ <button
148
+ class="text-xs text-tertiary hover:text-secondary transition-colors"
149
+ onclick={() => {
150
+ secondarySyncExpanded = true
151
+ gitSyncContext.addSyncRepository()
152
+ }}
153
+ >
154
+ + Add secondary sync repository
155
+ </button>
156
+ </div>
157
+ {/if}
158
+ {/if}
159
+ {/if}
160
+
161
+ <!-- Primary Promotion Repository -->
162
+ <div class="mt-6">
163
+ <GitSyncRepositoryCard
164
+ variant="primary-promotion"
165
+ mode="promotion"
166
+ idx={primaryPromotion?.idx ?? null}
167
+ repository={primaryPromotion?.repo ?? null}
168
+ onAdd={() => gitSyncContext.addPromotionRepository()}
169
+ isCollapsible={false}
170
+ showEmptyState={primaryPromotion?.repo === null}
171
+ />
172
+ </div>
173
+
174
+ <!-- Legacy promotion repositories (backwards compatibility) -->
175
+ {#if legacyPromotion.length > 0}
176
+ <Alert type="warning" title="Multiple promotion repositories detected">
177
+ Multiple promotion repositories are no longer supported. Please reduce to a single promotion repository.
178
+ Only deletion is allowed for the additional repositories below.
179
+ </Alert>
180
+ <div class="mt-4">
181
+ <button
182
+ class="flex items-center gap-2 text-sm text-secondary hover:text-primary transition-colors"
183
+ onclick={() => (legacyPromotionExpanded = !legacyPromotionExpanded)}
184
+ >
185
+ {#if legacyPromotionExpanded}
186
+ <ChevronDown size={16} />
187
+ {:else}
188
+ <ChevronRight size={16} />
189
+ {/if}
190
+ Legacy promotion repositories ({legacyPromotion.length})
191
+ </button>
192
+
193
+ {#if legacyPromotionExpanded}
194
+ <div class="space-y-3 mt-3">
195
+ {#each legacyPromotion as { repo, idx } (repo.git_repo_resource_path)}
196
+ <div class="pl-4">
197
+ <GitSyncRepositoryCard {idx} variant="legacy" isLegacy={true} />
198
+ </div>
199
+ {/each}
200
+ </div>
201
+ {/if}
202
+ </div>
203
+ {/if}
84
204
  </div>
85
205
 
86
206
  <!-- Modals -->
@@ -6,7 +6,7 @@ import { JobService } from '../../gen';
6
6
  import { workspaceStore } from '../../stores';
7
7
  import { sendUserToast } from '../../toast';
8
8
  import hubPaths from '../../hubPaths.json';
9
- import { tryEvery } from '../../utils';
9
+ import { jobManager } from '../../services/JobManager';
10
10
  let { open = $bindable(false), gitRepoResourcePath, uiState, repoIndex, currentGitSyncSettings, onFilterUpdate, onSettingsSaved, onSuccess, settingsOnly = false } = $props();
11
11
  // Job state
12
12
  let previewJobId = $state(null);
@@ -131,42 +131,37 @@ async function executeJob(isDryRun, settingsOnly = false) {
131
131
  applyJobId = jobId;
132
132
  applyJobStatus = 'running';
133
133
  }
134
- let jobSuccess = false;
135
- let result = {};
136
- await tryEvery({
137
- tryCode: async () => {
138
- const testResult = await JobService.getCompletedJob({ workspace, id: jobId });
139
- jobSuccess = !!testResult.success;
140
- if (jobSuccess) {
141
- const jobResult = await JobService.getCompletedJobResult({ workspace, id: jobId });
142
- result = jobResult;
134
+ // Use JobManager instead of tryEvery
135
+ const result = await jobManager.runWithProgress(() => Promise.resolve(jobId), {
136
+ workspace,
137
+ timeout: 60000,
138
+ timeoutMessage: `${isPreview ? 'Preview' : 'Apply'} job timed out after 60s`,
139
+ onProgress: (status) => {
140
+ if (isPreview) {
141
+ previewJobStatus = status.status;
142
+ }
143
+ else {
144
+ applyJobStatus = status.status;
143
145
  }
144
- },
145
- timeoutCode: async () => {
146
- try {
147
- await JobService.cancelQueuedJob({
148
- workspace,
149
- id: jobId,
150
- requestBody: { reason: `${isPreview ? 'Preview' : 'Apply'} job timed out after 60s` }
151
- });
146
+ // Handle failure status
147
+ if (status.status === 'failure') {
148
+ if (isPreview) {
149
+ previewError = status.error || 'Preview failed';
150
+ }
151
+ else {
152
+ applyError = status.error || 'Pull failed';
153
+ }
152
154
  }
153
- catch (err) { }
154
- },
155
- interval: 500,
156
- timeout: 60000
155
+ }
157
156
  });
157
+ // Handle successful result
158
158
  if (isPreview) {
159
- previewJobStatus = jobSuccess ? 'success' : 'failure';
160
- if (jobSuccess) {
159
+ if (previewJobStatus === 'success') {
161
160
  previewResult = result;
162
161
  }
163
- else {
164
- previewError = 'Preview failed';
165
- }
166
162
  }
167
163
  else {
168
- applyJobStatus = jobSuccess ? 'success' : 'failure';
169
- if (jobSuccess) {
164
+ if (applyJobStatus === 'success') {
170
165
  const settingsData = result?.local;
171
166
  const hasSettingsChanges = settingsData && onFilterUpdate;
172
167
  if (hasSettingsChanges) {
@@ -175,9 +170,6 @@ async function executeJob(isDryRun, settingsOnly = false) {
175
170
  }
176
171
  onSuccess?.();
177
172
  }
178
- else {
179
- applyError = 'Pull failed';
180
- }
181
173
  }
182
174
  }
183
175
  catch (e) {
@@ -5,7 +5,7 @@ import GitDiffPreview from '../GitDiffPreview.svelte';
5
5
  import { JobService } from '../../gen';
6
6
  import { workspaceStore } from '../../stores';
7
7
  import hubPaths from '../../hubPaths.json';
8
- import { tryEvery } from '../../utils';
8
+ import { jobManager } from '../../services/JobManager';
9
9
  let { open = $bindable(false), gitRepoResourcePath, uiState, onSuccess, isNewConnection = false, onSaveWithoutInit } = $props();
10
10
  // Job state
11
11
  let previewJobId = $state(null);
@@ -76,47 +76,39 @@ async function executeJob(isDryRun) {
76
76
  applyJobId = jobId;
77
77
  applyJobStatus = 'running';
78
78
  }
79
- let jobSuccess = false;
80
- let result = {};
81
- await tryEvery({
82
- tryCode: async () => {
83
- const testResult = await JobService.getCompletedJob({ workspace, id: jobId });
84
- jobSuccess = !!testResult.success;
85
- if (jobSuccess) {
86
- const jobResult = await JobService.getCompletedJobResult({ workspace, id: jobId });
87
- result = jobResult;
79
+ // Use JobManager instead of tryEvery
80
+ const result = await jobManager.runWithProgress(() => Promise.resolve(jobId), {
81
+ workspace,
82
+ timeout: 60000,
83
+ timeoutMessage: `${isPreview ? 'Preview' : 'Apply'} job timed out after 60s`,
84
+ onProgress: (status) => {
85
+ if (isPreview) {
86
+ previewJobStatus = status.status;
87
+ }
88
+ else {
89
+ applyJobStatus = status.status;
88
90
  }
89
- },
90
- timeoutCode: async () => {
91
- try {
92
- await JobService.cancelQueuedJob({
93
- workspace,
94
- id: jobId,
95
- requestBody: { reason: `${isPreview ? 'Preview' : 'Apply'} job timed out after 60s` }
96
- });
91
+ // Handle failure status
92
+ if (status.status === 'failure') {
93
+ if (isPreview) {
94
+ previewError = status.error || 'Preview failed';
95
+ }
96
+ else {
97
+ applyError = status.error || 'Push failed';
98
+ }
97
99
  }
98
- catch (err) { }
99
- },
100
- interval: 500,
101
- timeout: 60000
100
+ }
102
101
  });
102
+ // Handle successful result
103
103
  if (isPreview) {
104
- previewJobStatus = jobSuccess ? 'success' : 'failure';
105
- if (jobSuccess) {
104
+ if (previewJobStatus === 'success') {
106
105
  previewResult = result;
107
106
  }
108
- else {
109
- previewError = 'Preview failed';
110
- }
111
107
  }
112
108
  else {
113
- applyJobStatus = jobSuccess ? 'success' : 'failure';
114
- if (jobSuccess) {
109
+ if (applyJobStatus === 'success') {
115
110
  onSuccess?.();
116
111
  }
117
- else {
118
- applyError = 'Push failed';
119
- }
120
112
  }
121
113
  }
122
114
  catch (e) {
@@ -41,7 +41,7 @@ const triggerContext = getContext('TriggerContext');
41
41
  let fullWidth = 0;
42
42
  let width = $state(0);
43
43
  let simplifiableFlow = $state(undefined);
44
- let { onInsert = undefined, onDelete = undefined, onMove = undefined, onDeleteBranch = undefined, onNewBranch = undefined, onSelect = undefined, onChangeId = undefined, onUpdateMock = undefined, onSelectedIteration = undefined, success = undefined, modules = [], failureModule = undefined, preprocessorModule = undefined, minHeight = 0, maxHeight = undefined, notSelectable = false, flowModuleStates = undefined, testModuleStates = undefined, selectedId = writable(undefined), path = undefined, newFlow = false, insertable = false, earlyStop = false, cache = false, scroll = false, moving = undefined, download = false, fullSize = false, disableAi = false, triggerNode = false, workspace = $workspaceStore ?? 'NO_WORKSPACE', editMode = false, allowSimplifiedPoll = true, expandedSubflows = $bindable({}), onTestUpTo = undefined, onEditInput = undefined, isOwner = false, onTestFlow = undefined, isRunning = false, onCancelTestFlow = undefined, onOpenPreview = undefined, onHideJobStatus = undefined, individualStepTests = false, flowJob = undefined, showJobStatus = false, suspendStatus = {}, flowHasChanged = false } = $props();
44
+ let { onInsert = undefined, onDelete = undefined, onMove = undefined, onDeleteBranch = undefined, onNewBranch = undefined, onSelect = undefined, onChangeId = undefined, onUpdateMock = undefined, onSelectedIteration = undefined, success = undefined, modules = [], failureModule = undefined, preprocessorModule = undefined, minHeight = 0, maxHeight = undefined, notSelectable = false, flowModuleStates = undefined, testModuleStates = undefined, selectedId = writable(undefined), path = undefined, newFlow = false, insertable = false, earlyStop = false, cache = false, scroll = false, moving = undefined, download = false, fullSize = false, disableAi = false, triggerNode = false, workspace = $workspaceStore ?? 'NO_WORKSPACE', editMode = false, allowSimplifiedPoll = true, expandedSubflows = $bindable({}), onTestUpTo = undefined, onEditInput = undefined, isOwner = false, onTestFlow = undefined, isRunning = false, onCancelTestFlow = undefined, onOpenPreview = undefined, onHideJobStatus = undefined, individualStepTests = false, flowJob = undefined, showJobStatus = false, suspendStatus = {}, flowHasChanged = false, chatInputEnabled = false } = $props();
45
45
  setContext('FlowGraphContext', { selectedId, useDataflow });
46
46
  if (triggerContext && allowSimplifiedPoll) {
47
47
  if (isSimplifiable(modules)) {
@@ -302,6 +302,7 @@ let graph = $derived.by(() => {
302
302
  showJobStatus,
303
303
  suspendStatus,
304
304
  flowHasChanged,
305
+ chatInputEnabled,
305
306
  additionalAssetsMap: flowGraphAssetsCtx?.val.additionalAssetsMap
306
307
  }, untrack(() => failureModule), preprocessorModule, eventHandler, success, $useDataflow, untrack(() => $selectedId), moving, simplifiableFlow, triggerNode ? path : undefined, expandedSubflows);
307
308
  });
@@ -39,6 +39,7 @@ interface Props {
39
39
  job: Job;
40
40
  nb: number;
41
41
  }>;
42
+ chatInputEnabled?: boolean;
42
43
  onDelete?: (id: string) => void;
43
44
  onInsert?: (detail: {
44
45
  sourceId?: string;
@@ -96,6 +96,7 @@ export type InputN = {
96
96
  flowJob: Job | undefined;
97
97
  showJobStatus: boolean;
98
98
  flowHasChanged: boolean;
99
+ chatInputEnabled: boolean;
99
100
  assets?: AssetWithAltAccessType[] | undefined;
100
101
  };
101
102
  };
@@ -301,6 +302,7 @@ export declare function graphBuilder(modules: FlowModule[] | undefined, extra: {
301
302
  nb: number;
302
303
  }>;
303
304
  flowHasChanged: boolean;
305
+ chatInputEnabled: boolean;
304
306
  additionalAssetsMap?: Record<string, AssetWithAltAccessType[]>;
305
307
  }, 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[]>): {
306
308
  nodes: {
@@ -165,6 +165,7 @@ export function graphBuilder(modules, extra, failureModule, preprocessorModule,
165
165
  flowJob: extra.flowJob,
166
166
  showJobStatus: extra.showJobStatus,
167
167
  flowHasChanged: extra.flowHasChanged,
168
+ chatInputEnabled: extra.chatInputEnabled,
168
169
  ...(inputAssets ? { assets: inputAssets } : {})
169
170
  }
170
171
  };
@@ -24,12 +24,8 @@ export type DurationStatus = {
24
24
  duration_ms?: number;
25
25
  }>;
26
26
  };
27
- export type GlobalIterationBounds = {
28
- iteration_from?: number;
29
- iteration_total?: number;
30
- };
31
27
  export type FlowStatusViewerContext = {
32
- flowStateStore?: FlowState;
28
+ flowState?: FlowState;
33
29
  retryStatus: StateStore<Record<string, number | undefined>>;
34
30
  suspendStatus: StateStore<Record<string, {
35
31
  nb: number;
@@ -56,6 +52,10 @@ export type GraphModuleState = {
56
52
  selectedForloopIndex?: number;
57
53
  selectedForLoopSetManually?: boolean;
58
54
  flow_jobs_success?: (boolean | undefined)[];
55
+ flow_jobs_duration?: {
56
+ started_at?: (string | undefined)[];
57
+ duration_ms?: (number | undefined)[];
58
+ };
59
59
  flow_jobs?: string[];
60
60
  iteration_total?: number;
61
61
  retries?: number;
@@ -46,6 +46,7 @@ let suspendStatus = $derived(data?.suspendStatus);
46
46
  <!-- <pre class="text-2xs">A{JSON.stringify(data.branch)}, {data.sourceId}, {data.targetId}</pre> -->
47
47
  <!-- {data.targetId} B -->
48
48
  <InsertModuleButton
49
+ disableAi={data.disableAi}
49
50
  index={data.index ?? 0}
50
51
  on:new={(e) => {
51
52
  data?.eventHandlers.insert({
@@ -1,16 +1,9 @@
1
1
  <script lang="ts">import { getBezierPath, BaseEdge } from '@xyflow/svelte';
2
2
  import { getContext } from 'svelte';
3
3
  import { twMerge } from 'tailwind-merge';
4
- export let sourceX;
5
- export let sourceY;
6
- export let sourcePosition;
7
- export let targetX;
8
- export let targetY;
9
- export let targetPosition;
10
- export let markerEnd = undefined;
11
- export let data = {};
4
+ let { sourceX, sourceY, sourcePosition, targetX, targetY, targetPosition, markerEnd = undefined, data = {} } = $props();
12
5
  const { useDataflow } = getContext('FlowGraphContext');
13
- $: [edgePath] = getBezierPath({
6
+ let [edgePath] = $derived(getBezierPath({
14
7
  sourceX,
15
8
  sourceY,
16
9
  sourcePosition,
@@ -18,7 +11,7 @@ $: [edgePath] = getBezierPath({
18
11
  targetY,
19
12
  targetPosition,
20
13
  curvature: 0.25
21
- });
14
+ }));
22
15
  </script>
23
16
 
24
17
  <BaseEdge
@@ -1,18 +1,5 @@
1
1
  import { type Position } from '@xyflow/svelte';
2
- interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
3
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
4
- $$bindings?: Bindings;
5
- } & Exports;
6
- (internal: unknown, props: Props & {
7
- $$events?: Events;
8
- $$slots?: Slots;
9
- }): Exports & {
10
- $set?: any;
11
- $on?: any;
12
- };
13
- z_$$bindings?: Bindings;
14
- }
15
- declare const EmptyEdge: $$__sveltets_2_IsomorphicComponent<{
2
+ interface Props {
16
3
  sourceX: number;
17
4
  sourceY: number;
18
5
  sourcePosition: Position;
@@ -23,8 +10,7 @@ declare const EmptyEdge: $$__sveltets_2_IsomorphicComponent<{
23
10
  data?: {
24
11
  class?: string;
25
12
  };
26
- }, {
27
- [evt: string]: CustomEvent<any>;
28
- }, {}, {}, string>;
29
- type EmptyEdge = InstanceType<typeof EmptyEdge>;
13
+ }
14
+ declare const EmptyEdge: import("svelte").Component<Props, {}, "">;
15
+ type EmptyEdge = ReturnType<typeof EmptyEdge>;
30
16
  export default EmptyEdge;
@@ -138,8 +138,9 @@ export function computeAIToolNodes(nodes, eventHandlers, insertable, flowModuleS
138
138
  });
139
139
  }
140
140
  }
141
- const sortedNewNodes = clone(nodes)
141
+ const sortedNewNodes = nodes
142
142
  .filter((n) => n.type !== 'asset')
143
+ .map((n) => ({ id: n.id, position: $state.snapshot(n.position) }))
143
144
  .sort((a, b) => a.position.y - b.position.y);
144
145
  let currentYOffset = 0;
145
146
  let prevYPos = NaN;
@@ -176,7 +177,6 @@ export function computeAIToolNodes(nodes, eventHandlers, insertable, flowModuleS
176
177
  import { MessageCircle, Play, Wrench, X } from 'lucide-svelte';
177
178
  import { twMerge } from 'tailwind-merge';
178
179
  import { getContext } from 'svelte';
179
- import { clone } from '../../../../utils';
180
180
  import { getStateColor, getStateHoverColor } from '../../util';
181
181
  import { deepEqual } from 'fast-equals';
182
182
  let hover = $state(false);
@@ -4,12 +4,14 @@ import { getStateColor, getStateHoverColor } from '../../util';
4
4
  import { getContext } from 'svelte';
5
5
  import InsertModuleButton from '../../../flows/map/InsertModuleButton.svelte';
6
6
  import { schemaToObject } from '../../../../schema';
7
+ import { MessageSquare } from 'lucide-svelte';
7
8
  let { data } = $props();
8
9
  const { selectedId } = getContext('FlowGraphContext');
9
10
  const { previewArgs, flowStore } = getContext('FlowEditorContext') || {};
10
11
  let topFlowInput = $derived(flowStore?.val && previewArgs && flowStore?.val?.schema
11
12
  ? schemaToObject(flowStore?.val.schema, previewArgs.val || {})
12
13
  : undefined);
14
+ let inputLabel = $derived(data.chatInputEnabled ? 'Chat message' : 'Input');
13
15
  </script>
14
16
 
15
17
  <NodeWrapper>
@@ -17,6 +19,7 @@ let topFlowInput = $derived(flowStore?.val && previewArgs && flowStore?.val?.sch
17
19
  {#if data.insertable && !data.hasPreprocessor}
18
20
  <div class="absolute bottom-full left-0 right-0 flex center-center mb-3.5">
19
21
  <InsertModuleButton
22
+ disableAi={data.disableAi}
20
23
  index={0}
21
24
  kind="preprocessor"
22
25
  on:new={(e) => {
@@ -41,7 +44,9 @@ let topFlowInput = $derived(flowStore?.val && previewArgs && flowStore?.val?.sch
41
44
  </div>
42
45
  {/if}
43
46
  <VirtualItem
44
- label="Input"
47
+ id={'Input'}
48
+ hideId={true}
49
+ label={inputLabel}
45
50
  selectable
46
51
  selected={$selectedId === 'Input'}
47
52
  bgColor={getStateColor(undefined, darkMode)}
@@ -77,6 +82,12 @@ let topFlowInput = $derived(flowStore?.val && previewArgs && flowStore?.val?.sch
77
82
  showJobStatus={data.showJobStatus}
78
83
  flowHasChanged={data.flowHasChanged}
79
84
  {darkMode}
80
- />
85
+ >
86
+ {#snippet icon()}
87
+ {#if data.chatInputEnabled}
88
+ <MessageSquare size={14} class="text-blue-500 dark:text-blue-400" />
89
+ {/if}
90
+ {/snippet}
91
+ </VirtualItem>
81
92
  {/snippet}
82
93
  </NodeWrapper>
@@ -1,5 +1,4 @@
1
- <script lang="ts">import { preventDefault, stopPropagation } from 'svelte/legacy';
2
- import { twMerge } from 'tailwind-merge';
1
+ <script lang="ts">import { twMerge } from 'tailwind-merge';
3
2
  import {} from '../../graphBuilder.svelte';
4
3
  import InsertModuleInner from '../../../flows/map/InsertModuleInner.svelte';
5
4
  import { Cross } from 'lucide-svelte';
@@ -14,11 +13,12 @@ let floatingConfig = {
14
13
  middleware: [offset(8), flip()],
15
14
  autoUpdate: true
16
15
  };
16
+ let open = $state(false);
17
17
  </script>
18
18
 
19
19
  <!-- svelte-ignore a11y_no_static_element_interactions -->
20
- <PopupV2 {floatingConfig} target="#flow-editor">
21
- {#snippet button({ pointerdown, pointerup })}
20
+ <PopupV2 bind:open {floatingConfig} target="#flow-editor">
21
+ {#snippet button()}
22
22
  <button
23
23
  title={`Add 'tool'
24
24
  }`}
@@ -26,12 +26,7 @@ let floatingConfig = {
26
26
  class={twMerge(
27
27
  '!w-full h-6 flex items-center justify-center !outline-[1px] outline dark:outline-gray-500 outline-gray-300 text-secondary bg-surface focus:outline-none hover:bg-surface-hover rounded'
28
28
  )}
29
- onpointerdown={stopPropagation(
30
- preventDefault(() => {
31
- pointerdown()
32
- })
33
- )}
34
- onpointerup={pointerup}
29
+ onpointerdown={() => (open = !open)}
35
30
  >
36
31
  <div class="flex flex-row items-center gap-1 font-medium text-2xs">
37
32
  <Cross size={12} />
@@ -1,5 +1,4 @@
1
1
  <script lang="ts">import { Calendar, Mail, Webhook, Unplug, Database, Terminal } from 'lucide-svelte';
2
- import { Loader2 } from 'lucide-svelte';
3
2
  import {} from 'svelte';
4
3
  import { Route } from 'lucide-svelte';
5
4
  import { getContext } from 'svelte';
@@ -11,6 +10,7 @@ import { Menu, Menubar, MeltButton, MenuItem, Tooltip } from '../../../meltCompo
11
10
  import { twMerge } from 'tailwind-merge';
12
11
  import SchedulePollIcon from '../../../icons/SchedulePollIcon.svelte';
13
12
  import TriggerLabel from '../../../triggers/TriggerLabel.svelte';
13
+ import CountBadge from '../../../common/badge/CountBadge.svelte';
14
14
  const { triggersState, triggersCount } = getContext('TriggerContext');
15
15
  let { selected, showOnlyWithCount,
16
16
  // @ts-ignore - This is an output-only prop used with bind:
@@ -209,32 +209,7 @@ $effect(() => {
209
209
  >
210
210
  {#if countKey}
211
211
  {@const count = $triggersCount?.[countKey] ?? 0}
212
- {#if count > 0}
213
- <div
214
- class={twMerge(
215
- // Base styles that apply in all cases
216
- 'absolute z-10 rounded-full overflow-hidden',
217
- 'flex center-center text-primary-inverse font-mono',
218
- 'bg-tertiary/50 group-hover:bg-primary transition-all duration-[100ms]',
219
- noTriggers ? 'bg-primary' : '',
220
-
221
- // Size variants based on small prop
222
- small
223
- ? '-right-[3px] -top-[3px] h-3 w-3 text-[8px]'
224
- : '-right-1.5 -top-1.5 h-4 w-4 text-xs',
225
-
226
- // Special case for no triggers
227
- noTriggers && small ? 'h-3 w-3 text-[8px] -right-0.5 -top-0.5' : '',
228
- noTriggers && !small ? 'h-4 w-4 text-xs -right-1 -top-1' : ''
229
- )}
230
- >
231
- {#if count === undefined}
232
- <Loader2 class="animate-spin text-2xs" />
233
- {:else}
234
- <p>{count}</p>
235
- {/if}
236
- </div>
237
- {/if}
212
+ <CountBadge {count} {small} alwaysVisible={noTriggers} />
238
213
  {/if}
239
214
  <SvelteComponent size={small ? 12 : 14} />
240
215
  </MeltButton>