windmill-components 1.558.4 → 1.596.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 (1418) hide show
  1. package/README.md +1 -1
  2. package/package/aiStore.d.ts +2 -0
  3. package/package/aiStore.js +24 -0
  4. package/package/ansibleUtils.d.ts +60 -0
  5. package/package/ansibleUtils.js +338 -0
  6. package/package/assets/app.css +22 -2
  7. package/package/assets/tokens/README.md +1 -0
  8. package/package/assets/tokens/colorTokensConfig.d.ts +2 -0
  9. package/package/assets/tokens/colorTokensConfig.js +2 -0
  10. package/package/assets/tokens/tokens.json +481 -0
  11. package/package/cancelable-promise-utils.d.ts +11 -0
  12. package/package/cancelable-promise-utils.js +70 -0
  13. package/package/common.d.ts +5 -1
  14. package/package/components/AIAgentLogViewer.svelte +59 -1
  15. package/package/components/AIAgentLogViewer.svelte.d.ts +3 -2
  16. package/package/components/AIProviderPicker.svelte +140 -57
  17. package/package/components/AddUser.svelte +2 -3
  18. package/package/components/ApiConnectForm.svelte +3 -10
  19. package/package/components/ApiConnectForm.svelte.d.ts +1 -1
  20. package/package/components/AppConnectDrawer.svelte +3 -3
  21. package/package/components/AppConnectInner.svelte +212 -164
  22. package/package/components/AppConnectLightweightResourcePicker.svelte +2 -2
  23. package/package/components/AppTutorials.svelte +19 -42
  24. package/package/components/AppTutorials.svelte.d.ts +3 -25
  25. package/package/components/ArgEnum.svelte +9 -2
  26. package/package/components/ArgEnum.svelte.d.ts +1 -0
  27. package/package/components/ArgInfo.svelte +8 -8
  28. package/package/components/ArgInput.svelte +127 -88
  29. package/package/components/ArgInput.svelte.d.ts +2 -1
  30. package/package/components/ArrayTypeNarrowing.svelte +9 -5
  31. package/package/components/ArrayTypeNarrowing.svelte.d.ts +2 -1
  32. package/package/components/AssignableTags.svelte +3 -3
  33. package/package/components/AssignableTags.svelte.d.ts +1 -2
  34. package/package/components/AssignableTagsInner.svelte +116 -74
  35. package/package/components/AssignableTagsInner.svelte.d.ts +1 -1
  36. package/package/components/Auth0Setting.svelte +74 -29
  37. package/package/components/AuthSettings.svelte +295 -108
  38. package/package/components/AutheliaSetting.svelte +26 -15
  39. package/package/components/AuthentikSetting.svelte +16 -14
  40. package/package/components/AutoscalingConfigEditor.svelte +417 -337
  41. package/package/components/AutoscalingConfigEditor.svelte.d.ts +3 -19
  42. package/package/components/AutoscalingEvents.svelte +64 -42
  43. package/package/components/Awareness.svelte +14 -11
  44. package/package/components/Awareness.svelte.d.ts +2 -17
  45. package/package/components/AzureOauthSettings.svelte +10 -6
  46. package/package/components/CenteredModal.svelte +4 -4
  47. package/package/components/CenteredPage.svelte +6 -5
  48. package/package/components/CenteredPage.svelte.d.ts +8 -38
  49. package/package/components/ChangeInstanceUsernameInner.svelte +4 -5
  50. package/package/components/ChannelSelector.svelte +103 -72
  51. package/package/components/ChannelSelector.svelte.d.ts +2 -0
  52. package/package/components/CliHelpBox.svelte +17 -13
  53. package/package/components/CollapseLink.svelte +16 -16
  54. package/package/components/CollapseLink.svelte.d.ts +7 -30
  55. package/package/components/CompareWorkspaces.svelte +945 -0
  56. package/package/components/CompareWorkspaces.svelte.d.ts +9 -0
  57. package/package/components/ConnectionSection.svelte +122 -106
  58. package/package/components/ConnectionSection.svelte.d.ts +10 -20
  59. package/package/components/ContentSearchInner.svelte +15 -60
  60. package/package/components/ContentSearchInnerItem.svelte +1 -1
  61. package/package/components/ContextualVariableEditor.svelte +14 -9
  62. package/package/components/CronBuilder.svelte +11 -10
  63. package/package/components/CronInput.svelte +161 -162
  64. package/package/components/CronInput.svelte.d.ts +1 -1
  65. package/package/components/CustomOauth.svelte +56 -53
  66. package/package/components/CustomSso.svelte +7 -7
  67. package/package/components/DBManager.svelte +108 -90
  68. package/package/components/DBManager.svelte.d.ts +6 -6
  69. package/package/components/DBManagerDrawer.svelte +13 -26
  70. package/package/components/DBManagerDrawer.svelte.d.ts +1 -1
  71. package/package/components/DBTableEditor.svelte +25 -22
  72. package/package/components/DBTableEditor.svelte.d.ts +5 -5
  73. package/package/components/DateInput.svelte +3 -0
  74. package/package/components/DateInput.svelte.d.ts +1 -1
  75. package/package/components/DateTimeInput.svelte +18 -20
  76. package/package/components/DateTimeInput.svelte.d.ts +1 -1
  77. package/package/components/DefaultScripts.svelte +1 -8
  78. package/package/components/DefaultScriptsInner.svelte +2 -1
  79. package/package/components/DefaultTagsInner.svelte +108 -69
  80. package/package/components/DefaultTagsInner.svelte.d.ts +4 -18
  81. package/package/components/DependenciesDeploymentWarning.svelte +265 -0
  82. package/package/components/DependenciesDeploymentWarning.svelte.d.ts +13 -0
  83. package/package/components/DeployButton.svelte +5 -3
  84. package/package/components/DeployToSetting.svelte +7 -8
  85. package/package/components/DeployWorkspace.svelte +58 -28
  86. package/package/components/DeployWorkspace.svelte.d.ts +9 -9
  87. package/package/components/Description.svelte +1 -1
  88. package/package/components/Dev.svelte +32 -13
  89. package/package/components/Dev.svelte.d.ts +1 -0
  90. package/package/components/DiffDrawer.svelte +76 -37
  91. package/package/components/DiffDrawer.svelte.d.ts +1 -0
  92. package/package/components/DiffEditor.svelte +6 -0
  93. package/package/components/DiffEditor.svelte.d.ts +2 -1
  94. package/package/components/DisplayResult.svelte +59 -75
  95. package/package/components/DisplayResultControlBar.svelte +1 -1
  96. package/package/components/DraftBadge.svelte +2 -2
  97. package/package/components/DropdownV2.svelte +13 -9
  98. package/package/components/DropdownV2.svelte.d.ts +4 -0
  99. package/package/components/DropdownV2Inner.svelte +12 -4
  100. package/package/components/DynamicInput.svelte +1 -1
  101. package/package/components/EEOnly.svelte +25 -0
  102. package/package/components/EEOnly.svelte.d.ts +7 -0
  103. package/package/components/EditableSchemaForm.svelte +10 -12
  104. package/package/components/Editor.svelte +175 -18
  105. package/package/components/Editor.svelte.d.ts +5 -0
  106. package/package/components/EditorBar.svelte +210 -112
  107. package/package/components/EditorBar.svelte.d.ts +2 -4
  108. package/package/components/EditorSettings.svelte +2 -4
  109. package/package/components/EditorSettings.svelte.d.ts +3 -0
  110. package/package/components/ErrorOrRecoveryHandler.svelte +320 -334
  111. package/package/components/ErrorOrRecoveryHandler.svelte.d.ts +2 -0
  112. package/package/components/ExploreAssetButton.svelte +36 -11
  113. package/package/components/FakeMonacoPlaceHolder.svelte +11 -7
  114. package/package/components/FieldHeader.svelte +4 -4
  115. package/package/components/FlowBuilder.svelte +88 -69
  116. package/package/components/FlowGraphDiffViewer.svelte +210 -0
  117. package/package/components/FlowGraphDiffViewer.svelte.d.ts +7 -0
  118. package/package/components/FlowGraphViewer.svelte +2 -1
  119. package/package/components/FlowGraphViewerStep.svelte +6 -3
  120. package/package/components/FlowGraphViewerStep.svelte.d.ts +1 -0
  121. package/package/components/FlowHistoryJobPicker.svelte +9 -11
  122. package/package/components/FlowHistoryJobPicker.svelte.d.ts +8 -7
  123. package/package/components/FlowJobResult.svelte +8 -6
  124. package/package/components/FlowJobResult.svelte.d.ts +3 -2
  125. package/package/components/FlowLogRow.svelte +1 -1
  126. package/package/components/FlowLogViewer.svelte +18 -14
  127. package/package/components/FlowLoopIterationPreview.svelte +9 -9
  128. package/package/components/FlowLoopIterationPreview.svelte.d.ts +1 -1
  129. package/package/components/FlowMetadata.svelte +19 -19
  130. package/package/components/FlowPlugConnect.svelte +3 -5
  131. package/package/components/FlowPreviewContent.svelte +50 -129
  132. package/package/components/FlowPreviewContent.svelte.d.ts +3 -3
  133. package/package/components/FlowPreviewResult.svelte +4 -0
  134. package/package/components/FlowRestartButton.svelte +192 -0
  135. package/package/components/FlowRestartButton.svelte.d.ts +15 -0
  136. package/package/components/FlowStatusViewerInner.svelte +171 -111
  137. package/package/components/FlowStatusWaitingForEvents.svelte +13 -7
  138. package/package/components/FlowTimelineBar.svelte +1 -1
  139. package/package/components/FlowTutorials.svelte +19 -60
  140. package/package/components/FlowTutorials.svelte.d.ts +3 -21
  141. package/package/components/FlowViewer.svelte +3 -3
  142. package/package/components/FlowViewerInner.svelte +5 -5
  143. package/package/components/FolderEditor.svelte +229 -207
  144. package/package/components/FolderInfo.svelte +3 -3
  145. package/package/components/FolderPicker.svelte +6 -9
  146. package/package/components/ForkWorkspaceBanner.svelte +183 -0
  147. package/package/components/ForkWorkspaceBanner.svelte.d.ts +3 -0
  148. package/package/components/GfmMarkdown.svelte +2 -2
  149. package/package/components/GfmMarkdown.svelte.d.ts +5 -18
  150. package/package/components/GitDiffPreview.svelte +5 -5
  151. package/package/components/GitHubAppIntegration.svelte +67 -41
  152. package/package/components/GitRepoPopoverPicker.svelte +83 -0
  153. package/package/components/GitRepoPopoverPicker.svelte.d.ts +26 -0
  154. package/package/components/GitRepoResourcePicker.svelte +230 -0
  155. package/package/components/GitRepoResourcePicker.svelte.d.ts +37 -0
  156. package/package/components/GitRepoViewer.svelte +167 -0
  157. package/package/components/GitRepoViewer.svelte.d.ts +8 -0
  158. package/package/components/GroupEditor.svelte +192 -163
  159. package/package/components/GroupInfo.svelte +25 -6
  160. package/package/components/HighlightCode.svelte +3 -0
  161. package/package/components/HighlightCode.svelte.d.ts +2 -2
  162. package/package/components/HighlightTheme.svelte +2 -5
  163. package/package/components/HistoricInputs.svelte +5 -5
  164. package/package/components/HistoricInputs.svelte.d.ts +1 -1
  165. package/package/components/HistoricList.svelte +1 -1
  166. package/package/components/HttpAgentWorkerDrawer.svelte +217 -148
  167. package/package/components/IconedPath.svelte +2 -3
  168. package/package/components/IconedPath.svelte.d.ts +6 -20
  169. package/package/components/IconedResourceType.svelte +1 -1
  170. package/package/components/InfiniteList.svelte.d.ts +1 -1
  171. package/package/components/InputTransformForm.svelte +233 -167
  172. package/package/components/InputTransformForm.svelte.d.ts +3 -1
  173. package/package/components/InputTransformSchemaForm.svelte +23 -7
  174. package/package/components/InputTransformSchemaForm.svelte.d.ts +2 -1
  175. package/package/components/InputTransformsViewer.svelte +1 -1
  176. package/package/components/InstanceGroupEditor.svelte +1 -2
  177. package/package/components/InstanceNameEditor.svelte +28 -23
  178. package/package/components/InstanceSetting.svelte +358 -538
  179. package/package/components/InstanceSetting.svelte.d.ts +2 -0
  180. package/package/components/InstanceSettings.svelte +149 -124
  181. package/package/components/InviteGlobalUser.svelte +6 -7
  182. package/package/components/InviteUser.svelte +2 -8
  183. package/package/components/ItemPicker.svelte +2 -4
  184. package/package/components/JobArgs.svelte +1 -1
  185. package/package/components/JobLoader.svelte +4 -1
  186. package/package/components/JsonEditor.svelte +6 -7
  187. package/package/components/KanidmSetting.svelte +25 -15
  188. package/package/components/KeycloakSetting.svelte +26 -15
  189. package/package/components/Label.svelte +17 -5
  190. package/package/components/Label.svelte.d.ts +3 -1
  191. package/package/components/LightweightResourcePicker.svelte +1 -1
  192. package/package/components/LogViewer.svelte +15 -16
  193. package/package/components/LogViewerHeader.svelte +3 -4
  194. package/package/components/Login.svelte +27 -43
  195. package/package/components/Login.svelte.d.ts +3 -19
  196. package/package/components/ManageTagsDrawer.svelte +55 -0
  197. package/package/components/ManageTagsDrawer.svelte.d.ts +12 -0
  198. package/package/components/MapResult.svelte +9 -11
  199. package/package/components/McpToolCallDetails.svelte +33 -0
  200. package/package/components/McpToolCallDetails.svelte.d.ts +11 -0
  201. package/package/components/ModulePreview.svelte +3 -3
  202. package/package/components/ModulePreview.svelte.d.ts +1 -0
  203. package/package/components/ModulePreviewForm.svelte +3 -3
  204. package/package/components/ModulePreviewResultViewer.svelte +1 -1
  205. package/package/components/ModuleStatus.svelte +2 -2
  206. package/package/components/ModuleTest.svelte +4 -3
  207. package/package/components/NextcloudSetting.svelte +36 -24
  208. package/package/components/NumberTypeNarrowing.svelte +1 -1
  209. package/package/components/NumberTypeNarrowing.svelte.d.ts +1 -1
  210. package/package/components/OAuthSetting.svelte +132 -55
  211. package/package/components/OAuthSetting.svelte.d.ts +4 -18
  212. package/package/components/OauthExtraParams.svelte +12 -12
  213. package/package/components/OauthScopes.svelte +5 -7
  214. package/package/components/ObjectStoreConfigSettings.svelte +50 -59
  215. package/package/components/OccupancyBars.svelte +35 -0
  216. package/package/components/OccupancyBars.svelte.d.ts +9 -0
  217. package/package/components/OktaSetting.svelte +69 -33
  218. package/package/components/PageHeader.svelte +6 -3
  219. package/package/components/PageHeader.svelte.d.ts +1 -0
  220. package/package/components/Password.svelte +31 -33
  221. package/package/components/Password.svelte.d.ts +2 -0
  222. package/package/components/PasswordArgInput.svelte +2 -3
  223. package/package/components/Path.svelte +29 -28
  224. package/package/components/PermissionHistory.svelte +99 -0
  225. package/package/components/PermissionHistory.svelte.d.ts +15 -0
  226. package/package/components/PersistentScriptDrawer.svelte +1 -7
  227. package/package/components/Popover.svelte +7 -3
  228. package/package/components/QueueAlerts.svelte +544 -0
  229. package/package/components/QueueAlerts.svelte.d.ts +3 -0
  230. package/package/components/QueueMetricsDrawer.svelte +8 -375
  231. package/package/components/QueueMetricsDrawer.svelte.d.ts +0 -2
  232. package/package/components/QueueMetricsDrawerInner.svelte +79 -73
  233. package/package/components/QueuePosition.svelte +2 -2
  234. package/package/components/RepositorySelector.svelte +90 -0
  235. package/package/components/RepositorySelector.svelte.d.ts +18 -0
  236. package/package/components/Required.svelte +1 -1
  237. package/package/components/ResourceEditor.svelte +106 -97
  238. package/package/components/ResourceEditorDrawer.svelte +3 -1
  239. package/package/components/ResourcePicker.svelte +26 -10
  240. package/package/components/ResourceTypePicker.svelte +6 -8
  241. package/package/components/RunButton.svelte +3 -3
  242. package/package/components/RunChart.svelte +15 -14
  243. package/package/components/RunChart.svelte.d.ts +1 -0
  244. package/package/components/RunForm.svelte +3 -3
  245. package/package/components/RunFormAdvancedPopup.svelte +1 -2
  246. package/package/components/RunPageTutorials.svelte +21 -0
  247. package/package/components/RunPageTutorials.svelte.d.ts +23 -0
  248. package/package/components/RunsPage.svelte +1261 -0
  249. package/package/components/RunsPage.svelte.d.ts +7 -0
  250. package/package/components/S3ArrayHelperButton.svelte +1 -3
  251. package/package/components/S3FilePicker.svelte +42 -751
  252. package/package/components/S3FilePicker.svelte.d.ts +6 -25
  253. package/package/components/S3FilePickerInner.svelte +749 -0
  254. package/package/components/S3FilePickerInner.svelte.d.ts +74 -0
  255. package/package/components/S3ObjectPicker.svelte +3 -5
  256. package/package/components/SaveInputsButton.svelte +2 -3
  257. package/package/components/SaveToWorkspace.svelte +14 -0
  258. package/package/components/SaveToWorkspace.svelte.d.ts +6 -0
  259. package/package/components/SavedInputs.svelte +33 -46
  260. package/package/components/SavedInputs.svelte.d.ts +10 -9
  261. package/package/components/SavedInputsPicker.svelte +14 -18
  262. package/package/components/SavedInputsPickerViewer.svelte +7 -8
  263. package/package/components/SavedInputsV2.svelte +2 -3
  264. package/package/components/SchemaForm.svelte +6 -10
  265. package/package/components/SchemaForm.svelte.d.ts +1 -1
  266. package/package/components/SchemaFormWithArgPicker.svelte +1 -1
  267. package/package/components/SchemaViewer.svelte +2 -2
  268. package/package/components/ScriptBuilder.svelte +261 -206
  269. package/package/components/ScriptEditor.svelte +308 -198
  270. package/package/components/ScriptEditor.svelte.d.ts +10 -4
  271. package/package/components/ScriptEditorSkeleton.svelte +55 -0
  272. package/package/components/ScriptEditorSkeleton.svelte.d.ts +26 -0
  273. package/package/components/ScriptPicker.svelte +15 -20
  274. package/package/components/ScriptSchema.svelte +0 -3
  275. package/package/components/ScriptSchema.svelte.d.ts +1 -3
  276. package/package/components/ScriptVersionHistory.svelte +5 -5
  277. package/package/components/Section.svelte +22 -19
  278. package/package/components/Section.svelte.d.ts +3 -0
  279. package/package/components/ServiceLogsInner.svelte +7 -7
  280. package/package/components/ShareModal.svelte +66 -60
  281. package/package/components/SharedBadge.svelte +6 -8
  282. package/package/components/SimpleEditor.svelte +18 -32
  283. package/package/components/SimpleEditor.svelte.d.ts +1 -3
  284. package/package/components/SqlRepl.svelte +8 -6
  285. package/package/components/SqlRepl.svelte.d.ts +1 -1
  286. package/package/components/Star.svelte +3 -3
  287. package/package/components/StringTypeNarrowing.svelte +6 -2
  288. package/package/components/StringTypeNarrowing.svelte.d.ts +1 -1
  289. package/package/components/Subsection.svelte +3 -5
  290. package/package/components/Summary.svelte +11 -60
  291. package/package/components/SupabaseConnect.svelte +4 -7
  292. package/package/components/SuperadminSettings.svelte +1 -1
  293. package/package/components/SuperadminSettingsInner.svelte +28 -24
  294. package/package/components/TableCustom.svelte +1 -1
  295. package/package/components/TagList.svelte +46 -0
  296. package/package/components/TagList.svelte.d.ts +8 -0
  297. package/package/components/TagsToListenTo.svelte +46 -13
  298. package/package/components/TagsToListenTo.svelte.d.ts +3 -19
  299. package/package/components/TeamSelector.svelte +217 -72
  300. package/package/components/TeamSelector.svelte.d.ts +1 -0
  301. package/package/components/TemplateEditor.svelte +23 -24
  302. package/package/components/TestConnection.svelte +2 -9
  303. package/package/components/TimeAgo.svelte +6 -7
  304. package/package/components/TimeAgo.svelte.d.ts +4 -18
  305. package/package/components/Toast.svelte +72 -16
  306. package/package/components/Toast.svelte.d.ts +1 -1
  307. package/package/components/Toggle.svelte +22 -40
  308. package/package/components/Toggle.svelte.d.ts +26 -28
  309. package/package/components/ToggleHubWorkspaceQuick.svelte +3 -3
  310. package/package/components/Tooltip.svelte +11 -14
  311. package/package/components/TooltipInner.svelte +2 -2
  312. package/package/components/Uptodate.svelte +1 -1
  313. package/package/components/UserSettings.svelte +23 -17
  314. package/package/components/VariableEditor.svelte +52 -42
  315. package/package/components/WhitelistIp.svelte +1 -1
  316. package/package/components/WorkerGroup.svelte +690 -552
  317. package/package/components/WorkerGroup.svelte.d.ts +7 -1
  318. package/package/components/WorkerRepl.svelte +10 -18
  319. package/package/components/WorkerTagPicker.svelte +2 -3
  320. package/package/components/WorkerTagSelect.svelte +17 -16
  321. package/package/components/WorkspaceDependenciesEditor.svelte +444 -0
  322. package/package/components/WorkspaceDependenciesEditor.svelte.d.ts +28 -0
  323. package/package/components/WorkspaceDependenciesViewer.svelte +90 -0
  324. package/package/components/WorkspaceDependenciesViewer.svelte.d.ts +7 -0
  325. package/package/components/WorkspaceTutorials.svelte +17 -0
  326. package/package/components/WorkspaceTutorials.svelte.d.ts +5 -0
  327. package/package/components/ZitadelSetting.svelte +25 -16
  328. package/package/components/apps/components/buttons/AppButton.svelte +3 -2
  329. package/package/components/apps/components/buttons/AppForm.svelte +6 -1
  330. package/package/components/apps/components/buttons/AppFormButton.svelte +8 -3
  331. package/package/components/apps/components/componentManagedFields.d.ts +33 -0
  332. package/package/components/apps/components/componentManagedFields.js +80 -0
  333. package/package/components/apps/components/display/AppAccordionList.svelte +1 -1
  334. package/package/components/apps/components/display/AppCarouselList.svelte +1 -1
  335. package/package/components/apps/components/display/AppChat.svelte +282 -0
  336. package/package/components/apps/components/display/AppChat.svelte.d.ts +14 -0
  337. package/package/components/apps/components/display/AppDownload.svelte +46 -4
  338. package/package/components/apps/components/display/AppImage.svelte +22 -26
  339. package/package/components/apps/components/display/AppJobProgressBar.svelte +102 -0
  340. package/package/components/apps/components/display/AppJobProgressBar.svelte.d.ts +11 -0
  341. package/package/components/apps/components/display/AppMap.svelte +8 -7
  342. package/package/components/apps/components/display/AppMenu.svelte +3 -1
  343. package/package/components/apps/components/display/AppNavbarItem.svelte +1 -0
  344. package/package/components/apps/components/display/AppPdf.svelte +41 -2
  345. package/package/components/apps/components/display/AppText.svelte +4 -5
  346. package/package/components/apps/components/display/InsertRowDrawerButton.svelte +3 -3
  347. package/package/components/apps/components/display/InsertRowDrawerButton.svelte.d.ts +2 -1
  348. package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +5 -3
  349. package/package/components/apps/components/display/dbtable/DbExplorerCount.svelte.d.ts +1 -1
  350. package/package/components/apps/components/display/dbtable/DeleteRow.svelte.d.ts +1 -1
  351. package/package/components/apps/components/display/dbtable/InsertRow.svelte +1 -2
  352. package/package/components/apps/components/display/dbtable/InsertRow.svelte.d.ts +2 -1
  353. package/package/components/apps/components/display/dbtable/InsertRowRunnable.svelte.d.ts +1 -1
  354. package/package/components/apps/components/display/dbtable/UpdateCell.svelte.d.ts +1 -1
  355. package/package/components/apps/components/display/dbtable/metadata.d.ts +10 -0
  356. package/package/components/apps/components/display/dbtable/metadata.js +433 -0
  357. package/package/components/apps/components/display/dbtable/queries/count.d.ts +1 -2
  358. package/package/components/apps/components/display/dbtable/queries/count.js +2 -2
  359. package/package/components/apps/components/display/dbtable/queries/createTable.d.ts +1 -1
  360. package/package/components/apps/components/display/dbtable/queries/delete.d.ts +2 -2
  361. package/package/components/apps/components/display/dbtable/queries/delete.js +2 -2
  362. package/package/components/apps/components/display/dbtable/queries/deleteTable.d.ts +2 -2
  363. package/package/components/apps/components/display/dbtable/queries/deleteTable.js +3 -1
  364. package/package/components/apps/components/display/dbtable/queries/insert.d.ts +1 -2
  365. package/package/components/apps/components/display/dbtable/queries/insert.js +6 -3
  366. package/package/components/apps/components/display/dbtable/queries/select.d.ts +1 -2
  367. package/package/components/apps/components/display/dbtable/queries/select.js +2 -2
  368. package/package/components/apps/components/display/dbtable/queries/update.d.ts +2 -2
  369. package/package/components/apps/components/display/dbtable/queries/update.js +2 -2
  370. package/package/components/apps/components/display/dbtable/utils.d.ts +15 -20
  371. package/package/components/apps/components/display/dbtable/utils.js +50 -438
  372. package/package/components/apps/components/display/table/AppAggridTableActions.svelte +38 -1
  373. package/package/components/apps/components/display/table/AppTable.svelte.d.ts +2 -2
  374. package/package/components/apps/components/display/table/AppTableFooter.svelte +2 -4
  375. package/package/components/apps/components/display/table/SyncColumnDefs.svelte +10 -22
  376. package/package/components/apps/components/helpers/HiddenComponent.svelte +2 -1
  377. package/package/components/apps/components/helpers/InputValue.svelte +10 -10
  378. package/package/components/apps/components/helpers/Loader.svelte +1 -1
  379. package/package/components/apps/components/helpers/MissingConnectionWarning.svelte +1 -1
  380. package/package/components/apps/components/helpers/RunnableComponent.svelte +28 -25
  381. package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +6 -2
  382. package/package/components/apps/components/helpers/RunnableWrapper.svelte +27 -2
  383. package/package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +6 -1
  384. package/package/components/apps/components/helpers/eval.d.ts +1 -0
  385. package/package/components/apps/components/helpers/eval.js +3 -1
  386. package/package/components/apps/components/helpers/executeRunnable.d.ts +3 -3
  387. package/package/components/apps/components/helpers/executeRunnable.js +7 -3
  388. package/package/components/apps/components/inputs/AppDateTimeInput.svelte +10 -7
  389. package/package/components/apps/components/inputs/AppMultiSelectV2.svelte +5 -1
  390. package/package/components/apps/components/inputs/AppQuillEditor.svelte +1 -1
  391. package/package/components/apps/components/inputs/AppSelectTab.svelte +2 -4
  392. package/package/components/apps/components/inputs/currency/CurrencyInput.svelte +2 -2
  393. package/package/components/apps/components/layout/AppDecisionTree.svelte +1 -1
  394. package/package/components/apps/components/layout/AppDrawer.svelte +2 -1
  395. package/package/components/apps/components/layout/AppList.svelte +3 -5
  396. package/package/components/apps/components/layout/AppModal.svelte +5 -3
  397. package/package/components/apps/components/layout/AppModal.svelte.d.ts +1 -0
  398. package/package/components/apps/components/layout/AppStepper.svelte +3 -5
  399. package/package/components/apps/components/layout/AppTabs.svelte +3 -9
  400. package/package/components/apps/editor/AppEditor.svelte +21 -30
  401. package/package/components/apps/editor/AppEditorHeader.svelte +39 -212
  402. package/package/components/apps/editor/AppEditorHeader.svelte.d.ts +3 -1
  403. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +4 -5
  404. package/package/components/apps/editor/AppEditorTutorial.svelte +16 -43
  405. package/package/components/apps/editor/AppEditorTutorial.svelte.d.ts +4 -2
  406. package/package/components/apps/editor/AppExportButton.svelte +5 -6
  407. package/package/components/apps/editor/AppInputs.svelte +1 -1
  408. package/package/components/apps/editor/AppJobsDrawer.svelte +15 -17
  409. package/package/components/apps/editor/AppJsonEditor.svelte +2 -2
  410. package/package/components/apps/editor/AppPreview.svelte +2 -1
  411. package/package/components/apps/editor/AppReportsDrawerInner.svelte +30 -89
  412. package/package/components/apps/editor/ComponentHeader.svelte +1 -2
  413. package/package/components/apps/editor/DeploymentHistory.svelte +3 -3
  414. package/package/components/apps/editor/GridEditor.svelte +4 -4
  415. package/package/components/apps/editor/PreviewToggle.svelte +0 -1
  416. package/package/components/apps/editor/PublicApp.svelte +125 -0
  417. package/package/components/apps/editor/PublicApp.svelte.d.ts +14 -0
  418. package/package/components/apps/editor/RecomputeAllButton.svelte +2 -3
  419. package/package/components/apps/editor/RecomputeAllComponents.svelte +1 -1
  420. package/package/components/apps/editor/RecomputeAllWrapper.svelte +1 -1
  421. package/package/components/apps/editor/RunnableJobPanelInner.svelte +3 -3
  422. package/package/components/apps/editor/SettingsPanel.svelte +1 -1
  423. package/package/components/apps/editor/SubGridEditor.svelte +2 -1
  424. package/package/components/apps/editor/appPolicy.d.ts +6 -0
  425. package/package/components/apps/editor/appPolicy.js +186 -0
  426. package/package/components/apps/editor/appUtils.d.ts +1 -3
  427. package/package/components/apps/editor/appUtils.js +2 -60
  428. package/package/components/apps/editor/appUtilsCore.d.ts +7 -0
  429. package/package/components/apps/editor/appUtilsCore.js +66 -0
  430. package/package/components/apps/editor/appUtilsS3.d.ts +16 -16
  431. package/package/components/apps/editor/appUtilsS3.js +31 -9
  432. package/package/components/apps/editor/component/ComponentInner.svelte +23 -1
  433. package/package/components/apps/editor/component/componentCallbacks.svelte.js +2 -1
  434. package/package/components/apps/editor/component/components.d.ts +649 -17
  435. package/package/components/apps/editor/component/components.js +186 -9
  436. package/package/components/apps/editor/component/default-codes.js +13 -0
  437. package/package/components/apps/editor/component/sets.js +2 -0
  438. package/package/components/apps/editor/componentsPanel/ComponentList.svelte +3 -3
  439. package/package/components/apps/editor/componentsPanel/CssHelperPanel.svelte +5 -8
  440. package/package/components/apps/editor/componentsPanel/CssProperty.svelte +37 -39
  441. package/package/components/apps/editor/componentsPanel/CssSettings.svelte +6 -8
  442. package/package/components/apps/editor/componentsPanel/CustomComponentsList.svelte +1 -1
  443. package/package/components/apps/editor/componentsPanel/GroupList.svelte +1 -1
  444. package/package/components/apps/editor/componentsPanel/ListItem.svelte +9 -7
  445. package/package/components/apps/editor/componentsPanel/NameEditor.svelte +1 -1
  446. package/package/components/apps/editor/componentsPanel/QuickStyleMenu.svelte +1 -1
  447. package/package/components/apps/editor/componentsPanel/QuickStyleProperty.svelte +2 -3
  448. package/package/components/apps/editor/componentsPanel/ThemeList.svelte +2 -3
  449. package/package/components/apps/editor/componentsPanel/ThemeNameEditor.svelte +1 -1
  450. package/package/components/apps/editor/componentsPanel/ThemeRow.svelte +1 -1
  451. package/package/components/apps/editor/componentsPanel/componentControlUtils.js +7 -0
  452. package/package/components/apps/editor/componentsPanel/cssUtils.js +25 -1
  453. package/package/components/apps/editor/componentsPanel/quickStyleProperties.js +12 -0
  454. package/package/components/apps/editor/contextPanel/ComponentOutput.svelte +1 -1
  455. package/package/components/apps/editor/contextPanel/ComponentOutputViewer.svelte +2 -2
  456. package/package/components/apps/editor/contextPanel/DebugPanel.svelte +2 -2
  457. package/package/components/apps/editor/contextPanel/LazyModePanel.svelte +3 -3
  458. package/package/components/apps/editor/contextPanel/SubGridOutput.svelte +1 -1
  459. package/package/components/apps/editor/contextPanel/components/BackgroundScriptsOutput.svelte +1 -1
  460. package/package/components/apps/editor/contextPanel/components/IdEditor.svelte +2 -2
  461. package/package/components/apps/editor/contextPanel/components/OutputHeader.svelte +6 -4
  462. package/package/components/apps/editor/inlineScriptsPanel/AppRunButton.svelte.d.ts +1 -1
  463. package/package/components/apps/editor/inlineScriptsPanel/CacheTtlPopup.svelte +2 -1
  464. package/package/components/apps/editor/inlineScriptsPanel/CacheTtlPopup.svelte.d.ts +3 -0
  465. package/package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +2 -12
  466. package/package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte.d.ts +1 -1
  467. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +34 -60
  468. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +1 -2
  469. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte.d.ts +2 -2
  470. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte +7 -9
  471. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte.d.ts +1 -1
  472. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptHiddenRunnable.svelte +5 -4
  473. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +8 -14
  474. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +3 -3
  475. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +6 -6
  476. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte.d.ts +1 -1
  477. package/package/components/apps/editor/inlineScriptsPanel/RunButton.svelte +3 -3
  478. package/package/components/apps/editor/inlineScriptsPanel/RunButton.svelte.d.ts +1 -1
  479. package/package/components/apps/editor/inlineScriptsPanel/utils.d.ts +1 -1
  480. package/package/components/apps/editor/inlineScriptsPanel/utils.js +5 -4
  481. package/package/components/apps/editor/settingsPanel/AlignmentEditor.svelte +1 -1
  482. package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +8 -6
  483. package/package/components/apps/editor/settingsPanel/CSSMigrationModal.svelte +3 -3
  484. package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +33 -24
  485. package/package/components/apps/editor/settingsPanel/ContextVariables.svelte +2 -1
  486. package/package/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte +2 -3
  487. package/package/components/apps/editor/settingsPanel/DecisionTreeGraphNode.svelte +3 -8
  488. package/package/components/apps/editor/settingsPanel/GridCondition.svelte +2 -3
  489. package/package/components/apps/editor/settingsPanel/GridGroup.svelte +2 -3
  490. package/package/components/apps/editor/settingsPanel/GridNavbar.svelte +3 -10
  491. package/package/components/apps/editor/settingsPanel/GridPane.svelte +2 -9
  492. package/package/components/apps/editor/settingsPanel/GridTab.svelte +2 -9
  493. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +11 -38
  494. package/package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +4 -3
  495. package/package/components/apps/editor/settingsPanel/MenuItems.svelte +5 -6
  496. package/package/components/apps/editor/settingsPanel/OneOfInputSpecsEditor.svelte +36 -17
  497. package/package/components/apps/editor/settingsPanel/SelectedRunnable.svelte +5 -5
  498. package/package/components/apps/editor/settingsPanel/SelectedRunnable.svelte.d.ts +1 -1
  499. package/package/components/apps/editor/settingsPanel/StylePanel.svelte +26 -24
  500. package/package/components/apps/editor/settingsPanel/TableActions.svelte +44 -25
  501. package/package/components/apps/editor/settingsPanel/TableActions.svelte.d.ts +2 -2
  502. package/package/components/apps/editor/settingsPanel/common/PanelSection.svelte +31 -3
  503. package/package/components/apps/editor/settingsPanel/common/PanelSection.svelte.d.ts +3 -0
  504. package/package/components/apps/editor/settingsPanel/inputEditor/ConnectedInputEditor.svelte +2 -2
  505. package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte +5 -5
  506. package/package/components/apps/editor/settingsPanel/inputEditor/RunnableInputEditor.svelte +5 -1
  507. package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +9 -9
  508. package/package/components/apps/editor/settingsPanel/inputEditor/TabSelectInput.svelte +3 -3
  509. package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +12 -34
  510. package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte.d.ts +1 -2
  511. package/package/components/apps/editor/settingsPanel/mainInput/WorkspaceFlowList.svelte +3 -2
  512. package/package/components/apps/editor/settingsPanel/mainInput/WorkspaceScriptList.svelte +3 -2
  513. package/package/components/apps/editor/settingsPanel/script/BackgroundScriptSettings.svelte +3 -2
  514. package/package/components/apps/editor/settingsPanel/script/ComponentScriptSettings.svelte +4 -3
  515. package/package/components/apps/editor/settingsPanel/script/ComponentScriptSettings.svelte.d.ts +1 -1
  516. package/package/components/apps/editor/settingsPanel/script/shared/BackgroundScriptTriggerBy.svelte +5 -4
  517. package/package/components/apps/editor/settingsPanel/script/shared/ComponentScriptTriggerBy.svelte +4 -4
  518. package/package/components/apps/editor/settingsPanel/script/shared/ComponentScriptTriggerBy.svelte.d.ts +1 -1
  519. package/package/components/apps/editor/settingsPanel/script/shared/ScriptSettingsActions.svelte +1 -1
  520. package/package/components/apps/editor/settingsPanel/script/shared/ScriptTransformer.svelte +1 -1
  521. package/package/components/apps/editor/settingsPanel/script/shared/ScriptTransformer.svelte.d.ts +1 -1
  522. package/package/components/apps/editor/settingsPanel/script/shared/ScriptTriggers.svelte +1 -1
  523. package/package/components/apps/editor/settingsPanel/script/shared/ScriptTriggers.svelte.d.ts +1 -1
  524. package/package/components/apps/editor/settingsPanel/script/utils.d.ts +1 -1
  525. package/package/components/apps/editor/settingsPanel/script/utils.js +10 -3
  526. package/package/components/apps/inputType.d.ts +7 -5
  527. package/package/components/apps/inputType.js +6 -1
  528. package/package/components/apps/sharedTypes.d.ts +21 -0
  529. package/package/components/apps/sharedTypes.js +1 -0
  530. package/package/components/apps/types.d.ts +3 -20
  531. package/package/components/apps/utils.d.ts +2 -4
  532. package/package/components/apps/utils.js +15 -14
  533. package/package/components/assets/AssetButtons.svelte +37 -14
  534. package/package/components/assets/AssetButtons.svelte.d.ts +2 -0
  535. package/package/components/assets/AssetsDropdownButton.svelte +35 -16
  536. package/package/components/assets/AssetsUsageDrawer.svelte +4 -4
  537. package/package/components/assets/JobAssetsViewer.svelte +14 -11
  538. package/package/components/assets/lib.d.ts +2 -1
  539. package/package/components/assets/lib.js +10 -2
  540. package/package/components/auditLogs/AuditLogDetails.svelte +59 -53
  541. package/package/components/auditLogs/AuditLogMobileFilters.svelte +2 -2
  542. package/package/components/auditLogs/AuditLogsFilters.svelte +94 -98
  543. package/package/components/auditLogs/AuditLogsFilters.svelte.d.ts +2 -1
  544. package/package/components/auditLogs/AuditLogsTable.svelte +52 -31
  545. package/package/components/auditLogs/AuditLogsTable.svelte.d.ts +1 -0
  546. package/package/components/auditLogs/AuditLogsTimeline.svelte +1 -1
  547. package/package/components/chat/ChatInput.svelte +53 -0
  548. package/package/components/chat/ChatInput.svelte.d.ts +29 -0
  549. package/package/components/chat/ChatMessage.svelte +101 -0
  550. package/package/components/chat/ChatMessage.svelte.d.ts +22 -0
  551. package/package/components/chat/utils.d.ts +5 -0
  552. package/package/components/chat/utils.js +26 -0
  553. package/package/components/common/CloseButton.svelte +3 -2
  554. package/package/components/common/OnChange.svelte +1 -2
  555. package/package/components/common/ResizeTransitionWrapper.svelte +17 -5
  556. package/package/components/common/Url.svelte +1 -1
  557. package/package/components/common/alert/Alert.svelte +6 -19
  558. package/package/components/common/alert/model.js +4 -4
  559. package/package/components/common/badge/Badge.svelte +71 -54
  560. package/package/components/common/badge/Badge.svelte.d.ts +21 -41
  561. package/package/components/common/badge/model.d.ts +1 -1
  562. package/package/components/common/breadcrumb/Breadcrumb.svelte +1 -1
  563. package/package/components/common/button/Button.svelte +110 -36
  564. package/package/components/common/button/Button.svelte.d.ts +33 -0
  565. package/package/components/common/button/ConnectionButton.svelte +5 -3
  566. package/package/components/common/button/RefreshButton.svelte +6 -11
  567. package/package/components/common/button/RefreshButton.svelte.d.ts +4 -20
  568. package/package/components/common/button/RoundIconButton.svelte +2 -2
  569. package/package/components/common/button/UndoRedo.svelte +8 -12
  570. package/package/components/common/button/model.d.ts +29 -5
  571. package/package/components/common/button/model.js +126 -8
  572. package/package/components/common/confirmationModal/ConfirmationModal.svelte +5 -3
  573. package/package/components/common/confirmationModal/DeployOverrideConfirmationModal.svelte +2 -3
  574. package/package/components/common/confirmationModal/DraftTriggersConfirmationModal.svelte +7 -18
  575. package/package/components/common/confirmationModal/UnsavedConfirmationModal.svelte +16 -14
  576. package/package/components/common/confirmationModal/UnsavedConfirmationModal.svelte.d.ts +7 -18
  577. package/package/components/common/confirmationModal/asyncConfirmationModal.svelte.d.ts +5 -4
  578. package/package/components/common/contextmenu/ContextMenu.svelte +83 -0
  579. package/package/components/common/contextmenu/ContextMenu.svelte.d.ts +22 -0
  580. package/package/components/common/contextmenu/contextMenuStyles.d.ts +33 -0
  581. package/package/components/common/contextmenu/contextMenuStyles.js +35 -0
  582. package/package/components/common/drawer/Drawer.svelte +1 -1
  583. package/package/components/common/drawer/DrawerContent.svelte +10 -4
  584. package/package/components/common/drawer/DrawerContent.svelte.d.ts +1 -0
  585. package/package/components/common/fileDownload/FileDownload.svelte +16 -14
  586. package/package/components/common/fileInput/FileInput.svelte +3 -3
  587. package/package/components/common/fileUpload/FileUpload.svelte +7 -10
  588. package/package/components/common/fileUpload/FileUploadModal.svelte +2 -2
  589. package/package/components/common/fileUpload/S3ArgInput.svelte +7 -8
  590. package/package/components/common/languageIcons/LanguageIcon.svelte +4 -4
  591. package/package/components/common/languageIcons/LanguageIcon.svelte.d.ts +1 -0
  592. package/package/components/common/modal/AlwaysMountedModal.svelte +1 -1
  593. package/package/components/common/modal/Modal.svelte +2 -2
  594. package/package/components/common/modal/Modal2.svelte +27 -15
  595. package/package/components/common/modal/Modal2.svelte.d.ts +3 -1
  596. package/package/components/common/popup/PopupV2.svelte +2 -2
  597. package/package/components/common/popup/PopupV2.svelte.d.ts +1 -0
  598. package/package/components/common/seconds/SecondsInput.svelte +2 -2
  599. package/package/components/common/slack/SlackConnectionStatus.svelte +63 -0
  600. package/package/components/common/slack/SlackConnectionStatus.svelte.d.ts +10 -0
  601. package/package/components/common/smtp/SmtpConfigurationStatus.svelte +22 -0
  602. package/package/components/common/smtp/SmtpConfigurationStatus.svelte.d.ts +7 -0
  603. package/package/components/common/stepper/Stepper.svelte +3 -3
  604. package/package/components/common/table/AppRow.svelte +9 -20
  605. package/package/components/common/table/FlowRow.svelte +8 -8
  606. package/package/components/common/table/RawAppRow.svelte +2 -3
  607. package/package/components/common/table/Row.svelte +55 -32
  608. package/package/components/common/table/Row.svelte.d.ts +10 -2
  609. package/package/components/common/table/RowIcon.svelte +13 -21
  610. package/package/components/common/table/RowIcon.svelte.d.ts +1 -2
  611. package/package/components/common/table/ScriptRow.svelte +20 -16
  612. package/package/components/common/tabs/Tab.svelte +20 -15
  613. package/package/components/common/tabs/Tab.svelte.d.ts +7 -2
  614. package/package/components/common/tabs/Tabs.svelte +14 -20
  615. package/package/components/common/tabs/Tabs.svelte.d.ts +7 -0
  616. package/package/components/common/teams/TeamsConnectionStatus.svelte +62 -0
  617. package/package/components/common/teams/TeamsConnectionStatus.svelte.d.ts +10 -0
  618. package/package/components/common/toggleButton-v2/ToggleButton.svelte +19 -11
  619. package/package/components/common/toggleButton-v2/ToggleButton.svelte.d.ts +1 -1
  620. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +1 -1
  621. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte +2 -3
  622. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte.d.ts +1 -1
  623. package/package/components/copilot/AIFormAssistant.svelte +1 -1
  624. package/package/components/copilot/AIFormSettings.svelte +21 -17
  625. package/package/components/copilot/AskAiButton.svelte +3 -2
  626. package/package/components/copilot/CronGen.svelte +22 -15
  627. package/package/components/copilot/CronGen.svelte.d.ts +4 -18
  628. package/package/components/copilot/CustomAIPrompts.svelte +57 -0
  629. package/package/components/copilot/CustomAIPrompts.svelte.d.ts +8 -0
  630. package/package/components/copilot/FlowInlineScriptAIButton.svelte +3 -2
  631. package/package/components/copilot/FlowInlineScriptAIButton.svelte.d.ts +3 -0
  632. package/package/components/copilot/IteratorGen.svelte +5 -5
  633. package/package/components/copilot/MetadataGen.svelte +66 -65
  634. package/package/components/copilot/MetadataGen.svelte.d.ts +11 -25
  635. package/package/components/copilot/PredicateGen.svelte +5 -5
  636. package/package/components/copilot/RegexGen.svelte +2 -2
  637. package/package/components/copilot/ScriptFix.svelte +1 -1
  638. package/package/components/copilot/ScriptGen.svelte +23 -38
  639. package/package/components/copilot/ScriptGen.svelte.d.ts +3 -1
  640. package/package/components/copilot/StepGenQuick.svelte +13 -10
  641. package/package/components/copilot/StepInputGen.svelte +53 -71
  642. package/package/components/copilot/StepInputGen.svelte.d.ts +0 -2
  643. package/package/components/copilot/StepInputsGen.svelte +13 -9
  644. package/package/components/copilot/TestAIKey.svelte +4 -14
  645. package/package/components/copilot/TestAIKey.svelte.d.ts +4 -18
  646. package/package/components/copilot/chat/AIButton.svelte +56 -0
  647. package/package/components/copilot/chat/AIButton.svelte.d.ts +7 -0
  648. package/package/components/copilot/chat/AIButtonStyle.d.ts +1 -0
  649. package/package/components/copilot/chat/AIButtonStyle.js +8 -0
  650. package/package/components/copilot/chat/AIChat.svelte +2 -10
  651. package/package/components/copilot/chat/AIChatDisplay.svelte +9 -13
  652. package/package/components/copilot/chat/AIChatInlineWidget.svelte +6 -6
  653. package/package/components/copilot/chat/AIChatInput.svelte +4 -2
  654. package/package/components/copilot/chat/AIChatManager.svelte.js +149 -45
  655. package/package/components/copilot/chat/AIChatMessage.svelte +11 -9
  656. package/package/components/copilot/chat/AiChatLayout.svelte +20 -10
  657. package/package/components/copilot/chat/AvailableContextList.svelte +4 -4
  658. package/package/components/copilot/chat/ChatMode.svelte +1 -1
  659. package/package/components/copilot/chat/ContextElementBadge.svelte +3 -3
  660. package/package/components/copilot/chat/ContextTextarea.svelte +1 -1
  661. package/package/components/copilot/chat/ProviderModelSelector.svelte +1 -1
  662. package/package/components/copilot/chat/ToolContentDisplay.svelte +33 -13
  663. package/package/components/copilot/chat/ToolContentDisplay.svelte.d.ts +3 -0
  664. package/package/components/copilot/chat/ToolExecutionDisplay.svelte +24 -15
  665. package/package/components/copilot/chat/__tests__/app/appChat.eval.test.d.ts +1 -0
  666. package/package/components/copilot/chat/__tests__/app/appChat.eval.test.js +137 -0
  667. package/package/components/copilot/chat/__tests__/app/appEvalComparison.d.ts +26 -0
  668. package/package/components/copilot/chat/__tests__/app/appEvalComparison.js +131 -0
  669. package/package/components/copilot/chat/__tests__/app/appEvalHelpers.d.ts +15 -0
  670. package/package/components/copilot/chat/__tests__/app/appEvalHelpers.js +91 -0
  671. package/package/components/copilot/chat/__tests__/app/appEvalRunner.d.ts +41 -0
  672. package/package/components/copilot/chat/__tests__/app/appEvalRunner.js +92 -0
  673. package/package/components/copilot/chat/__tests__/app/appFixtureLoader.d.ts +29 -0
  674. package/package/components/copilot/chat/__tests__/app/appFixtureLoader.js +134 -0
  675. package/package/components/copilot/chat/__tests__/app/appResultsWriter.d.ts +30 -0
  676. package/package/components/copilot/chat/__tests__/app/appResultsWriter.js +197 -0
  677. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/createFolder/main.d.ts +10 -0
  678. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/createFolder/main.js +9 -0
  679. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/createFolder/meta.json +4 -0
  680. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/deleteItem/main.d.ts +6 -0
  681. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/deleteItem/main.js +5 -0
  682. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/deleteItem/meta.json +4 -0
  683. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFiles/main.d.ts +12 -0
  684. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFiles/main.js +14 -0
  685. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFiles/meta.json +4 -0
  686. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFolders/main.d.ts +8 -0
  687. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFolders/main.js +25 -0
  688. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFolders/meta.json +4 -0
  689. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/moveItem/main.d.ts +7 -0
  690. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/moveItem/main.js +5 -0
  691. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/moveItem/meta.json +4 -0
  692. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/renameItem/main.d.ts +8 -0
  693. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/renameItem/main.js +5 -0
  694. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/renameItem/meta.json +4 -0
  695. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Breadcrumb.d.ts +10 -0
  696. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Breadcrumb.tsx +26 -0
  697. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileItem.d.ts +10 -0
  698. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileItem.tsx +79 -0
  699. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileList.d.ts +10 -0
  700. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileList.tsx +46 -0
  701. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FolderTree.d.ts +10 -0
  702. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FolderTree.tsx +56 -0
  703. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Toolbar.d.ts +6 -0
  704. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Toolbar.tsx +59 -0
  705. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/index.d.ts +16 -0
  706. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/index.tsx +119 -0
  707. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/addToCart/main.d.ts +15 -0
  708. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/addToCart/main.js +14 -0
  709. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/addToCart/meta.json +4 -0
  710. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/calculateTotal/main.d.ts +14 -0
  711. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/calculateTotal/main.js +5 -0
  712. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/calculateTotal/meta.json +4 -0
  713. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/getProducts/main.d.ts +6 -0
  714. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/getProducts/main.js +41 -0
  715. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/getProducts/meta.json +4 -0
  716. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/removeFromCart/main.d.ts +15 -0
  717. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/removeFromCart/main.js +3 -0
  718. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/removeFromCart/meta.json +4 -0
  719. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/Cart.d.ts +9 -0
  720. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/Cart.tsx +51 -0
  721. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductCard.d.ts +8 -0
  722. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductCard.tsx +27 -0
  723. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductList.d.ts +8 -0
  724. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductList.tsx +18 -0
  725. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/index.d.ts +12 -0
  726. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/index.tsx +81 -0
  727. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/decrementCounter/main.d.ts +3 -0
  728. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/decrementCounter/main.js +3 -0
  729. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/decrementCounter/meta.json +4 -0
  730. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/incrementCounter/main.d.ts +3 -0
  731. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/incrementCounter/main.js +3 -0
  732. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/incrementCounter/meta.json +4 -0
  733. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/frontend/index.d.ts +2 -0
  734. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/frontend/index.tsx +38 -0
  735. package/package/components/copilot/chat/__tests__/app/variants/baseline.d.ts +6 -0
  736. package/package/components/copilot/chat/__tests__/app/variants/baseline.js +10 -0
  737. package/package/components/copilot/chat/__tests__/app/variants/index.d.ts +3 -0
  738. package/package/components/copilot/chat/__tests__/app/variants/index.js +3 -0
  739. package/package/components/copilot/chat/__tests__/app/variants/streamlined.d.ts +6 -0
  740. package/package/components/copilot/chat/__tests__/app/variants/streamlined.js +137 -0
  741. package/package/components/copilot/chat/__tests__/flow/expected/test1.json +134 -0
  742. package/package/components/copilot/chat/__tests__/flow/expected/test2.json +183 -0
  743. package/package/components/copilot/chat/__tests__/flow/expected/test3.json +204 -0
  744. package/package/components/copilot/chat/__tests__/flow/expected/test4.json +175 -0
  745. package/package/components/copilot/chat/__tests__/flow/expected/test5_modify_simple.json +68 -0
  746. package/package/components/copilot/chat/__tests__/flow/expected/test6_modify_medium.json +142 -0
  747. package/package/components/copilot/chat/__tests__/flow/expected/test7_modify_complex.json +136 -0
  748. package/package/components/copilot/chat/__tests__/flow/flowChat.eval.test.d.ts +1 -0
  749. package/package/components/copilot/chat/__tests__/flow/flowChat.eval.test.js +277 -0
  750. package/package/components/copilot/chat/__tests__/flow/flowEvalComparison.d.ts +17 -0
  751. package/package/components/copilot/chat/__tests__/flow/flowEvalComparison.js +52 -0
  752. package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.d.ts +12 -0
  753. package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.js +75 -0
  754. package/package/components/copilot/chat/__tests__/flow/flowEvalRunner.d.ts +41 -0
  755. package/package/components/copilot/chat/__tests__/flow/flowEvalRunner.js +101 -0
  756. package/package/components/copilot/chat/__tests__/flow/initial/test5_initial.json +53 -0
  757. package/package/components/copilot/chat/__tests__/flow/initial/test6_initial.json +68 -0
  758. package/package/components/copilot/chat/__tests__/flow/initial/test7_initial.json +120 -0
  759. package/package/components/copilot/chat/__tests__/flow/variants/baseline.d.ts +6 -0
  760. package/package/components/copilot/chat/__tests__/flow/variants/baseline.js +10 -0
  761. package/package/components/copilot/chat/__tests__/flow/variants/index.d.ts +3 -0
  762. package/package/components/copilot/chat/__tests__/flow/variants/index.js +3 -0
  763. package/package/components/copilot/chat/__tests__/flow/variants/minimal-single-tool.d.ts +15 -0
  764. package/package/components/copilot/chat/__tests__/flow/variants/minimal-single-tool.js +386 -0
  765. package/package/components/copilot/chat/__tests__/shared/baseEvalRunner.d.ts +48 -0
  766. package/package/components/copilot/chat/__tests__/shared/baseEvalRunner.js +147 -0
  767. package/package/components/copilot/chat/__tests__/shared/baseLLMEvaluator.d.ts +31 -0
  768. package/package/components/copilot/chat/__tests__/shared/baseLLMEvaluator.js +88 -0
  769. package/package/components/copilot/chat/__tests__/shared/baseResultsWriter.d.ts +32 -0
  770. package/package/components/copilot/chat/__tests__/shared/baseResultsWriter.js +130 -0
  771. package/package/components/copilot/chat/__tests__/shared/baseVariants.d.ts +45 -0
  772. package/package/components/copilot/chat/__tests__/shared/baseVariants.js +57 -0
  773. package/package/components/copilot/chat/__tests__/shared/index.d.ts +10 -0
  774. package/package/components/copilot/chat/__tests__/shared/index.js +5 -0
  775. package/package/components/copilot/chat/__tests__/shared/types.d.ts +102 -0
  776. package/package/components/copilot/chat/__tests__/shared/types.js +9 -0
  777. package/package/components/copilot/chat/anthropic.d.ts +1 -1
  778. package/package/components/copilot/chat/anthropic.js +75 -2
  779. package/package/components/copilot/chat/app/core.d.ts +69 -0
  780. package/package/components/copilot/chat/app/core.js +552 -0
  781. package/package/components/copilot/chat/flow/FlowAIChat.svelte +119 -477
  782. package/package/components/copilot/chat/flow/FlowAIChat.svelte.d.ts +1 -0
  783. package/package/components/copilot/chat/flow/core.d.ts +24 -127
  784. package/package/components/copilot/chat/flow/core.js +461 -535
  785. package/package/components/copilot/chat/flow/inlineScriptsUtils.d.ts +31 -0
  786. package/package/components/copilot/chat/flow/inlineScriptsUtils.js +271 -0
  787. package/package/components/copilot/chat/flow/openFlow.json +1 -0
  788. package/package/components/copilot/chat/flow/openFlowZod.d.ts +3 -0
  789. package/package/components/copilot/chat/flow/openFlowZod.js +14 -0
  790. package/package/components/copilot/chat/flow/utils.d.ts +12 -6
  791. package/package/components/copilot/chat/flow/utils.js +66 -33
  792. package/package/components/copilot/chat/navigator/core.js +17 -10
  793. package/package/components/copilot/chat/openai-responses.d.ts +16 -0
  794. package/package/components/copilot/chat/openai-responses.js +318 -0
  795. package/package/components/copilot/chat/script/core.d.ts +7 -5
  796. package/package/components/copilot/chat/script/core.js +41 -208
  797. package/package/components/copilot/chat/shared.d.ts +28 -2
  798. package/package/components/copilot/chat/shared.js +174 -16
  799. package/package/components/copilot/lib.d.ts +4 -3
  800. package/package/components/copilot/lib.js +169 -52
  801. package/package/components/copilot/prompts/edit.yaml +38 -2
  802. package/package/components/copilot/prompts/editPrompt.d.ts +6 -3
  803. package/package/components/copilot/prompts/editPrompt.js +9 -6
  804. package/package/components/copilot/prompts/fix.yaml +40 -1
  805. package/package/components/copilot/prompts/fixPrompt.d.ts +3 -0
  806. package/package/components/copilot/prompts/fixPrompt.js +5 -2
  807. package/package/components/copilot/prompts/gen.yaml +25 -1
  808. package/package/components/copilot/prompts/genPrompt.d.ts +7 -4
  809. package/package/components/copilot/prompts/genPrompt.js +9 -6
  810. package/package/components/custom_ui.d.ts +2 -0
  811. package/package/components/dbOps.d.ts +26 -23
  812. package/package/components/dbOps.js +49 -27
  813. package/package/components/dbTypes.d.ts +14 -0
  814. package/package/components/dbTypes.js +9 -0
  815. package/package/components/details/ClipboardPanel.svelte +7 -7
  816. package/package/components/details/CopyableCodeBlock.svelte +13 -11
  817. package/package/components/details/CopyableCodeBlock.svelte.d.ts +5 -18
  818. package/package/components/details/DetailPageDetailPanel.svelte +5 -5
  819. package/package/components/details/DetailPageHeader.svelte +5 -4
  820. package/package/components/details/DetailPageLayout.svelte +5 -5
  821. package/package/components/details/ErrorHandlerToggleButton.svelte +2 -2
  822. package/package/components/details/ErrorHandlerToggleButtonV2.svelte +4 -4
  823. package/package/components/details/ErrorHandlerToggleButtonV2.svelte.d.ts +1 -1
  824. package/package/components/details/createAppFromScript.js +2 -2
  825. package/package/components/ducklake.d.ts +1 -0
  826. package/package/components/ducklake.js +4 -0
  827. package/package/components/flows/CreateActionsApp.svelte +5 -6
  828. package/package/components/flows/CreateActionsFlow.svelte +3 -3
  829. package/package/components/flows/DebounceLimit.svelte +58 -0
  830. package/package/components/flows/DebounceLimit.svelte.d.ts +11 -0
  831. package/package/components/flows/FlowAssetsHandler.svelte +47 -31
  832. package/package/components/flows/FlowEditor.svelte +6 -1
  833. package/package/components/flows/FlowEditor.svelte.d.ts +2 -1
  834. package/package/components/flows/FlowEditorTutorial.svelte +59 -0
  835. package/package/components/flows/{content/FlowInputsFlowQuick.svelte.d.ts → FlowEditorTutorial.svelte.d.ts} +8 -9
  836. package/package/components/flows/FlowHistoryInner.svelte +6 -8
  837. package/package/components/flows/FlowModuleIcon.svelte +1 -1
  838. package/package/components/flows/FlowProgressBar.svelte +1 -1
  839. package/package/components/flows/agentToolUtils.d.ts +45 -0
  840. package/package/components/flows/agentToolUtils.js +59 -0
  841. package/package/components/flows/common/FlowCardHeader.svelte +31 -7
  842. package/package/components/flows/content/AgentToolWrapper.svelte +30 -0
  843. package/package/components/flows/content/AgentToolWrapper.svelte.d.ts +14 -0
  844. package/package/components/flows/content/BranchPredicateEditor.svelte +1 -2
  845. package/package/components/flows/content/DynamicInputHelpBox.svelte +6 -9
  846. package/package/components/flows/content/FlowBranchesAllWrapper.svelte +6 -6
  847. package/package/components/flows/content/FlowBranchesOneWrapper.svelte +7 -7
  848. package/package/components/flows/content/FlowEditorPanel.svelte +23 -17
  849. package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +2 -1
  850. package/package/components/flows/content/FlowEnvironmentVariables.svelte +251 -0
  851. package/package/components/flows/content/FlowEnvironmentVariables.svelte.d.ts +6 -0
  852. package/package/components/flows/content/FlowInput.svelte +78 -45
  853. package/package/components/flows/content/FlowInput.svelte.d.ts +2 -1
  854. package/package/components/flows/content/FlowInputEditor.svelte +2 -2
  855. package/package/components/flows/content/FlowInputs.svelte +34 -6
  856. package/package/components/flows/content/FlowInputsFlow.svelte +16 -12
  857. package/package/components/flows/content/FlowInputsFlow.svelte.d.ts +6 -5
  858. package/package/components/flows/content/FlowInputsQuick.svelte +68 -70
  859. package/package/components/flows/content/FlowInputsQuick.svelte.d.ts +0 -1
  860. package/package/components/flows/content/FlowLoop.svelte +67 -31
  861. package/package/components/flows/content/FlowModuleCache.svelte +23 -11
  862. package/package/components/flows/content/FlowModuleComponent.svelte +123 -107
  863. package/package/components/flows/content/FlowModuleEarlyStop.svelte +8 -6
  864. package/package/components/flows/content/FlowModuleHeader.svelte +23 -42
  865. package/package/components/flows/content/FlowModuleMock.svelte +2 -1
  866. package/package/components/flows/content/FlowModuleScript.svelte +2 -2
  867. package/package/components/flows/content/FlowModuleSkip.svelte +4 -3
  868. package/package/components/flows/content/FlowModuleSleep.svelte +5 -4
  869. package/package/components/flows/content/FlowModuleSuspend.svelte +5 -12
  870. package/package/components/flows/content/FlowModuleTimeout.svelte +3 -3
  871. package/package/components/flows/content/FlowModuleWorkerTagSelect.svelte +5 -5
  872. package/package/components/flows/content/FlowModuleWorkerTagSelect.svelte.d.ts +1 -0
  873. package/package/components/flows/content/FlowModuleWrapper.svelte +27 -20
  874. package/package/components/flows/content/FlowResult.svelte +4 -4
  875. package/package/components/flows/content/FlowRetries.svelte +32 -16
  876. package/package/components/flows/content/FlowSelectionPanel.svelte +35 -0
  877. package/package/components/flows/content/FlowSelectionPanel.svelte.d.ts +8 -0
  878. package/package/components/flows/content/FlowSettings.svelte +121 -122
  879. package/package/components/flows/content/FlowWhileLoop.svelte +35 -8
  880. package/package/components/flows/content/GenAiQuick.svelte +1 -1
  881. package/package/components/flows/content/McpToolEditor.svelte +169 -0
  882. package/package/components/flows/content/McpToolEditor.svelte.d.ts +8 -0
  883. package/package/components/flows/content/ScriptEditorDrawer.svelte +3 -5
  884. package/package/components/flows/content/SuspendDrawer.svelte +4 -5
  885. package/package/components/flows/content/WebsearchToolDisplay.svelte +9 -0
  886. package/package/components/{FlowBuilderTutorials.svelte.d.ts → flows/content/WebsearchToolDisplay.svelte.d.ts} +4 -6
  887. package/package/components/flows/conversations/FlowChat.svelte +32 -0
  888. package/package/components/flows/conversations/FlowChat.svelte.d.ts +10 -0
  889. package/package/components/flows/conversations/FlowChatInterface.svelte +58 -103
  890. package/package/components/flows/conversations/FlowChatInterface.svelte.d.ts +3 -14
  891. package/package/components/flows/conversations/FlowChatManager.svelte.js +172 -69
  892. package/package/components/flows/conversations/FlowConversationsSidebar.svelte +31 -110
  893. package/package/components/flows/conversations/FlowConversationsSidebar.svelte.d.ts +3 -11
  894. package/package/components/flows/flowDiff.d.ts +142 -0
  895. package/package/components/flows/flowDiff.js +769 -0
  896. package/package/components/flows/flowDiff.test.d.ts +1 -0
  897. package/package/components/flows/flowDiff.test.js +1173 -0
  898. package/package/components/flows/flowDiff.testUtils.d.ts +61 -0
  899. package/package/components/flows/flowDiff.testUtils.js +128 -0
  900. package/package/components/flows/flowDiffManager.svelte.d.ts +47 -0
  901. package/package/components/flows/flowDiffManager.svelte.js +461 -0
  902. package/package/components/flows/flowDiffManager.svelte.test.d.ts +1 -0
  903. package/package/components/flows/flowDiffManager.svelte.test.js +1255 -0
  904. package/package/components/flows/flowExplorer.js +15 -0
  905. package/package/components/flows/flowInfers.d.ts +1 -60
  906. package/package/components/flows/flowInfers.js +115 -8
  907. package/package/components/flows/flowState.js +1 -1
  908. package/package/components/flows/flowStateUtils.svelte.js +10 -2
  909. package/package/components/flows/flowStore.svelte.d.ts +4 -0
  910. package/package/components/flows/header/FlowImportExportMenu.svelte +3 -4
  911. package/package/components/flows/header/FlowPreviewButtons.svelte +11 -12
  912. package/package/components/flows/header/FlowYamlEditor.svelte +5 -4
  913. package/package/components/flows/map/DiffActionBar.svelte +50 -0
  914. package/package/components/flows/map/DiffActionBar.svelte.d.ts +14 -0
  915. package/package/components/flows/map/FlowErrorHandlerItem.svelte +60 -54
  916. package/package/components/flows/map/FlowErrorHandlerItem.svelte.d.ts +2 -1
  917. package/package/components/flows/map/FlowGraphPreviewButton.svelte +6 -3
  918. package/package/components/flows/map/FlowModuleSchemaItem.svelte +91 -42
  919. package/package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +7 -6
  920. package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte +32 -25
  921. package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte.d.ts +2 -0
  922. package/package/components/flows/map/FlowModuleSchemaMap.svelte +91 -35
  923. package/package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +27 -2
  924. package/package/components/flows/map/FlowStickyNode.svelte +51 -38
  925. package/package/components/flows/map/FlowStickyNode.svelte.d.ts +4 -0
  926. package/package/components/flows/map/InsertModuleButton.svelte +11 -73
  927. package/package/components/flows/map/InsertModuleButton.svelte.d.ts +8 -34
  928. package/package/components/flows/map/InsertModuleInner.svelte +89 -68
  929. package/package/components/flows/map/InsertModuleInner.svelte.d.ts +3 -1
  930. package/package/components/flows/map/InsertModulePopover.svelte +41 -0
  931. package/package/components/{ConfirmButton.svelte.d.ts → flows/map/InsertModulePopover.svelte.d.ts} +18 -16
  932. package/package/components/flows/map/MapItem.svelte +33 -33
  933. package/package/components/flows/map/MapItem.svelte.d.ts +6 -6
  934. package/package/components/flows/map/VirtualItem.svelte +9 -17
  935. package/package/components/flows/map/VirtualItem.svelte.d.ts +1 -5
  936. package/package/components/flows/map/VirtualItemWrapper.svelte +11 -15
  937. package/package/components/flows/map/VirtualItemWrapper.svelte.d.ts +2 -3
  938. package/package/components/flows/pickers/FlowScriptPicker.svelte +1 -2
  939. package/package/components/flows/pickers/FlowScriptPickerQuick.svelte +11 -15
  940. package/package/components/flows/pickers/FlowToplevelNode.svelte +1 -1
  941. package/package/components/flows/pickers/PickHubApp.svelte +23 -19
  942. package/package/components/flows/pickers/PickHubApp.svelte.d.ts +9 -14
  943. package/package/components/flows/pickers/PickHubFlow.svelte +23 -18
  944. package/package/components/flows/pickers/PickHubFlow.svelte.d.ts +9 -14
  945. package/package/components/flows/pickers/PickHubScript.svelte +37 -28
  946. package/package/components/flows/pickers/PickHubScript.svelte.d.ts +2 -0
  947. package/package/components/flows/pickers/PickHubScriptQuick.svelte +59 -27
  948. package/package/components/flows/pickers/PickHubScriptQuick.svelte.d.ts +1 -1
  949. package/package/components/flows/pickers/TopLevelNode.svelte +34 -51
  950. package/package/components/flows/pickers/TopLevelNode.svelte.d.ts +7 -23
  951. package/package/components/flows/pickers/WorkspaceScriptPicker.svelte +31 -25
  952. package/package/components/flows/pickers/WorkspaceScriptPicker.svelte.d.ts +9 -17
  953. package/package/components/flows/pickers/WorkspaceScriptPickerQuick.svelte +22 -18
  954. package/package/components/flows/previousResults.d.ts +5 -1
  955. package/package/components/flows/previousResults.js +24 -4
  956. package/package/components/flows/propPicker/InputPickerInner.svelte +1 -1
  957. package/package/components/flows/propPicker/OutputPicker.svelte +30 -32
  958. package/package/components/flows/propPicker/OutputPicker.svelte.d.ts +0 -4
  959. package/package/components/flows/propPicker/OutputPickerInner.svelte.d.ts +2 -2
  960. package/package/components/flows/propPicker/PropPickerWrapper.svelte +61 -66
  961. package/package/components/flows/propPicker/PropPickerWrapper.svelte.d.ts +15 -23
  962. package/package/components/flows/propPicker/StepHistory.svelte +1 -1
  963. package/package/components/flows/stepsInputArgs.svelte.js +1 -1
  964. package/package/components/flows/types.d.ts +4 -1
  965. package/package/components/flows/{utils.d.ts → utils.svelte.d.ts} +2 -2
  966. package/package/components/flows/{utils.js → utils.svelte.js} +10 -5
  967. package/package/components/git_sync/DetectionFlow.svelte +7 -5
  968. package/package/components/git_sync/GitSyncContext.svelte.d.ts +3 -2
  969. package/package/components/git_sync/GitSyncContext.svelte.js +25 -8
  970. package/package/components/git_sync/GitSyncModeDisplay.svelte +9 -4
  971. package/package/components/git_sync/GitSyncModeDisplay.svelte.d.ts +1 -1
  972. package/package/components/git_sync/GitSyncRepositoryCard.svelte +180 -74
  973. package/package/components/git_sync/GitSyncSection.svelte +70 -42
  974. package/package/components/git_sync/PullWorkspaceModal.svelte +79 -44
  975. package/package/components/git_sync/PushWorkspaceModal.svelte +42 -34
  976. package/package/components/graph/FlowGraphV2.svelte +433 -94
  977. package/package/components/graph/FlowGraphV2.svelte.d.ts +48 -3
  978. package/package/components/graph/NodeContextMenu.svelte +36 -0
  979. package/package/components/graph/NodeContextMenu.svelte.d.ts +8 -0
  980. package/package/components/graph/NoteColorPicker.svelte +42 -0
  981. package/package/components/graph/NoteColorPicker.svelte.d.ts +9 -0
  982. package/package/components/graph/NoteTool.svelte +182 -0
  983. package/package/components/graph/NoteTool.svelte.d.ts +7 -0
  984. package/package/components/graph/PaneContextMenu.svelte +95 -0
  985. package/package/components/graph/PaneContextMenu.svelte.d.ts +8 -0
  986. package/package/components/graph/SelectionBoundingBox.svelte +68 -0
  987. package/package/components/graph/SelectionBoundingBox.svelte.d.ts +10 -0
  988. package/package/components/graph/SelectionTool.svelte +32 -0
  989. package/package/components/graph/SelectionTool.svelte.d.ts +8 -0
  990. package/package/components/graph/ViewportSynchronizer.svelte +49 -0
  991. package/package/components/graph/ViewportSynchronizer.svelte.d.ts +12 -0
  992. package/package/components/graph/graphBuilder.svelte.d.ts +7 -1
  993. package/package/components/graph/graphBuilder.svelte.js +8 -4
  994. package/package/components/graph/graphContext.d.ts +15 -0
  995. package/package/components/graph/graphContext.js +5 -0
  996. package/package/components/graph/groupDetectionUtils.d.ts +9 -0
  997. package/package/components/graph/groupDetectionUtils.js +73 -0
  998. package/package/components/graph/model.d.ts +1 -0
  999. package/package/components/graph/noteColors.d.ts +30 -0
  1000. package/package/components/graph/noteColors.js +121 -0
  1001. package/package/components/graph/noteEditor.svelte.d.ts +97 -0
  1002. package/package/components/graph/noteEditor.svelte.js +259 -0
  1003. package/package/components/graph/noteManager.svelte.d.ts +32 -0
  1004. package/package/components/graph/noteManager.svelte.js +126 -0
  1005. package/package/components/graph/noteUtils.svelte.d.ts +87 -0
  1006. package/package/components/graph/noteUtils.svelte.js +294 -0
  1007. package/package/components/graph/renderers/edges/BaseEdge.svelte +50 -44
  1008. package/package/components/graph/renderers/edges/EmptyEdge.svelte +4 -3
  1009. package/package/components/graph/renderers/nodes/AIToolNode.svelte +63 -25
  1010. package/package/components/graph/renderers/nodes/AIToolNode.svelte.d.ts +3 -1
  1011. package/package/components/graph/renderers/nodes/AssetNode.svelte +37 -27
  1012. package/package/components/graph/renderers/nodes/AssetsOverflowedNode.svelte +7 -3
  1013. package/package/components/graph/renderers/nodes/BranchAllEndNode.svelte +4 -6
  1014. package/package/components/graph/renderers/nodes/BranchAllEndNode.svelte.d.ts +1 -0
  1015. package/package/components/graph/renderers/nodes/BranchAllStart.svelte +4 -10
  1016. package/package/components/graph/renderers/nodes/BranchAllStart.svelte.d.ts +1 -0
  1017. package/package/components/graph/renderers/nodes/BranchOneStart.svelte +4 -8
  1018. package/package/components/graph/renderers/nodes/BranchOneStart.svelte.d.ts +1 -0
  1019. package/package/components/graph/renderers/nodes/ForLoopEndNode.svelte +4 -7
  1020. package/package/components/graph/renderers/nodes/ForLoopEndNode.svelte.d.ts +1 -0
  1021. package/package/components/graph/renderers/nodes/ForLoopStartNode.svelte +4 -14
  1022. package/package/components/graph/renderers/nodes/ForLoopStartNode.svelte.d.ts +1 -0
  1023. package/package/components/graph/renderers/nodes/InputNode.svelte +28 -13
  1024. package/package/components/graph/renderers/nodes/ModuleNode.svelte +16 -30
  1025. package/package/components/graph/renderers/nodes/NewAIToolNode.svelte +52 -30
  1026. package/package/components/graph/renderers/nodes/NoBranchNode.svelte +0 -4
  1027. package/package/components/graph/renderers/nodes/NodeWrapper.svelte +34 -22
  1028. package/package/components/graph/renderers/nodes/NodeWrapper.svelte.d.ts +2 -0
  1029. package/package/components/graph/renderers/nodes/NoteNode.svelte +329 -0
  1030. package/package/components/graph/renderers/nodes/NoteNode.svelte.d.ts +16 -0
  1031. package/package/components/graph/renderers/nodes/ResultNode.svelte +4 -10
  1032. package/package/components/graph/renderers/nodes/ResultNode.svelte.d.ts +1 -0
  1033. package/package/components/graph/renderers/nodes/SubflowBound.svelte +17 -17
  1034. package/package/components/graph/renderers/nodes/SubflowBound.svelte.d.ts +1 -0
  1035. package/package/components/graph/renderers/nodes/TriggersNode.svelte +22 -18
  1036. package/package/components/graph/renderers/nodes/TriggersNode.svelte.d.ts +4 -18
  1037. package/package/components/graph/renderers/nodes/branchOneEndNode.svelte +4 -6
  1038. package/package/components/graph/renderers/nodes/branchOneEndNode.svelte.d.ts +1 -0
  1039. package/package/components/graph/renderers/triggers/TriggersBadge.svelte +4 -4
  1040. package/package/components/graph/renderers/triggers/TriggersWrapper.svelte +5 -11
  1041. package/package/components/graph/renderers/triggers/TriggersWrapper.svelte.d.ts +2 -2
  1042. package/package/components/graph/selectionUtils.svelte.d.ts +15 -0
  1043. package/package/components/graph/selectionUtils.svelte.js +94 -0
  1044. package/package/components/graph/util.d.ts +42 -2
  1045. package/package/components/graph/util.js +230 -38
  1046. package/package/components/home/ItemsList.svelte +35 -38
  1047. package/package/components/home/ListFilters.svelte +6 -9
  1048. package/package/components/home/ListFiltersQuick.svelte +28 -29
  1049. package/package/components/home/NoItemFound.svelte +19 -5
  1050. package/package/components/home/NoItemFound.svelte.d.ts +5 -25
  1051. package/package/components/home/TreeView.svelte +17 -19
  1052. package/package/components/home/TreeViewRoot.svelte +4 -4
  1053. package/package/components/home/TutorialBanner.svelte +119 -0
  1054. package/package/components/home/TutorialBanner.svelte.d.ts +3 -0
  1055. package/package/components/home/TutorialButton.svelte +97 -0
  1056. package/package/components/home/TutorialButton.svelte.d.ts +15 -0
  1057. package/package/components/icons/ApifyIcon.svelte +17 -0
  1058. package/package/components/icons/ApifyIcon.svelte.d.ts +7 -0
  1059. package/package/components/icons/AsanaIcon.svelte +13 -1
  1060. package/package/components/icons/AssetDatabaseIcon.svelte +23 -0
  1061. package/package/components/icons/AssetDatabaseIcon.svelte.d.ts +9 -0
  1062. package/package/components/icons/AssetGenericIcon.svelte +10 -10
  1063. package/package/components/icons/AssetGenericIcon.svelte.d.ts +0 -1
  1064. package/package/components/icons/Auth0Icon.svelte +10 -11
  1065. package/package/components/icons/Auth0Icon.svelte.d.ts +5 -25
  1066. package/package/components/icons/DucklakeIcon.svelte +2 -1
  1067. package/package/components/icons/DucklakeIcon.svelte.d.ts +2 -1
  1068. package/package/components/icons/FunnelCog.svelte +31 -0
  1069. package/package/components/icons/FunnelCog.svelte.d.ts +11 -0
  1070. package/package/components/icons/MSTeamsIcon.svelte +76 -2
  1071. package/package/components/icons/MSTeamsIcon.svelte.d.ts +1 -2
  1072. package/package/components/icons/McpIcon.svelte +18 -0
  1073. package/package/components/icons/McpIcon.svelte.d.ts +7 -0
  1074. package/package/components/icons/NextcloudIcon.svelte +13 -5
  1075. package/package/components/icons/NextcloudIcon.svelte.d.ts +3 -2
  1076. package/package/components/icons/SageIcon.svelte +10 -0
  1077. package/package/components/icons/SageIcon.svelte.d.ts +7 -0
  1078. package/package/components/icons/WindmillIcon.svelte +3 -1
  1079. package/package/components/icons/WindmillIcon.svelte.d.ts +1 -0
  1080. package/package/components/icons/ZohoIcon.svelte +30 -0
  1081. package/package/components/icons/ZohoIcon.svelte.d.ts +7 -0
  1082. package/package/components/icons/index.js +9 -1
  1083. package/package/components/instanceSettings/CriticalAlertChannels.svelte +146 -0
  1084. package/package/components/instanceSettings/CriticalAlertChannels.svelte.d.ts +9 -0
  1085. package/package/components/instanceSettings/EmailChannelCard.svelte +91 -0
  1086. package/package/components/instanceSettings/EmailChannelCard.svelte.d.ts +18 -0
  1087. package/package/components/instanceSettings/IntegrationCard.svelte +48 -0
  1088. package/package/components/instanceSettings/IntegrationCard.svelte.d.ts +13 -0
  1089. package/package/components/instanceSettings/SlackChannelCard.svelte +96 -0
  1090. package/package/components/instanceSettings/SlackChannelCard.svelte.d.ts +18 -0
  1091. package/package/components/instanceSettings/SmtpSettings.svelte +167 -0
  1092. package/package/components/instanceSettings/SmtpSettings.svelte.d.ts +9 -0
  1093. package/package/components/instanceSettings/TeamsChannelCard.svelte +131 -0
  1094. package/package/components/instanceSettings/TeamsChannelCard.svelte.d.ts +29 -0
  1095. package/package/components/instanceSettings.d.ts +6 -0
  1096. package/package/components/instanceSettings.js +29 -11
  1097. package/package/components/jobs/JobPreview.svelte +2 -2
  1098. package/package/components/meltComponents/MenuItem.svelte +3 -1
  1099. package/package/components/meltComponents/MenuItem.svelte.d.ts +1 -0
  1100. package/package/components/meltComponents/Popover.svelte +43 -12
  1101. package/package/components/meltComponents/Popover.svelte.d.ts +3 -0
  1102. package/package/components/meltComponents/Tooltip.svelte +2 -2
  1103. package/package/components/preview/FlowPreviewStatus.svelte +3 -3
  1104. package/package/components/propertyPicker/ObjectViewer.svelte +18 -19
  1105. package/package/components/propertyPicker/PropPicker.svelte +96 -44
  1106. package/package/components/propertyPicker/PropPicker.svelte.d.ts +1 -1
  1107. package/package/components/propertyPicker/PropPickerResult.svelte +7 -0
  1108. package/package/components/propertyPicker/PropPickerResult.svelte.d.ts +1 -0
  1109. package/package/components/propertyPicker/WarningMessage.svelte +1 -1
  1110. package/package/components/raw_apps/FileTreeNode.svelte +237 -0
  1111. package/package/components/raw_apps/RawAppBackgroundRunner.svelte +15 -9
  1112. package/package/components/raw_apps/RawAppBackgroundRunner.svelte.d.ts +3 -2
  1113. package/package/components/raw_apps/RawAppEditor.svelte +385 -48
  1114. package/package/components/raw_apps/RawAppEditor.svelte.d.ts +2 -2
  1115. package/package/components/raw_apps/RawAppEditorHeader.svelte +29 -48
  1116. package/package/components/raw_apps/RawAppEditorHeader.svelte.d.ts +6 -2
  1117. package/package/components/raw_apps/RawAppHistoryList.svelte +106 -0
  1118. package/package/components/raw_apps/RawAppHistoryList.svelte.d.ts +10 -0
  1119. package/package/components/raw_apps/RawAppHistoryManager.svelte.d.ts +142 -0
  1120. package/package/components/raw_apps/RawAppHistoryManager.svelte.js +314 -0
  1121. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +114 -115
  1122. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +6 -4
  1123. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte +84 -19
  1124. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte.d.ts +2 -19
  1125. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +36 -40
  1126. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte.d.ts +10 -2
  1127. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte +33 -46
  1128. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte.d.ts +4 -21
  1129. package/package/components/raw_apps/RawAppInputsSpecEditor.svelte +3 -3
  1130. package/package/components/raw_apps/RawAppModules.svelte +55 -0
  1131. package/package/components/raw_apps/RawAppModules.svelte.d.ts +14 -0
  1132. package/package/components/raw_apps/RawAppPreview.svelte.d.ts +2 -2
  1133. package/package/components/raw_apps/RawAppSidebar.svelte +277 -0
  1134. package/package/components/raw_apps/RawAppSidebar.svelte.d.ts +18 -0
  1135. package/package/components/raw_apps/fileTreeUtils.d.ts +7 -0
  1136. package/package/components/raw_apps/fileTreeUtils.js +54 -0
  1137. package/package/components/raw_apps/lintStore.d.ts +33 -0
  1138. package/package/components/raw_apps/lintStore.js +62 -0
  1139. package/package/components/raw_apps/rawAppPolicy.d.ts +10 -0
  1140. package/package/components/raw_apps/rawAppPolicy.js +42 -0
  1141. package/package/components/raw_apps/utils.d.ts +11 -2
  1142. package/package/components/raw_apps/utils.js +32 -45
  1143. package/package/components/runs/BatchReRunOptionsPane.svelte +57 -52
  1144. package/package/components/runs/JobRunsPreview.svelte +24 -14
  1145. package/package/components/runs/JobsLoader.svelte +171 -135
  1146. package/package/components/runs/JobsLoader.svelte.d.ts +5 -4
  1147. package/package/components/runs/ManuelDatePicker.svelte +6 -12
  1148. package/package/components/runs/ManuelDatePicker.svelte.d.ts +11 -14
  1149. package/package/components/runs/MobileFilters.svelte +1 -1
  1150. package/package/components/runs/PreprocessedArgsDisplay.svelte +1 -1
  1151. package/package/components/runs/QueuePopover.svelte +1 -1
  1152. package/package/components/runs/RunBadges.svelte +1 -1
  1153. package/package/components/runs/RunOption.svelte +3 -1
  1154. package/package/components/runs/RunRow.svelte +38 -61
  1155. package/package/components/runs/RunRow.svelte.d.ts +1 -1
  1156. package/package/components/runs/RunsBatchActionsDropdown.svelte +16 -18
  1157. package/package/components/runs/RunsBatchActionsDropdown.svelte.d.ts +1 -1
  1158. package/package/components/runs/RunsFilter.svelte +116 -90
  1159. package/package/components/runs/RunsFilter.svelte.d.ts +4 -2
  1160. package/package/components/runs/RunsQueue.svelte +17 -9
  1161. package/package/components/runs/RunsTable.svelte +10 -8
  1162. package/package/components/runs/RunsTable.svelte.d.ts +2 -1
  1163. package/package/components/schema/AddPropertyForm.svelte +9 -9
  1164. package/package/components/schema/AddPropertyFormV2.svelte +1 -2
  1165. package/package/components/schema/EditableSchemaDrawer.svelte +3 -4
  1166. package/package/components/schema/EditableSchemaSdkWrapper.svelte +2 -2
  1167. package/package/components/schema/FlowPropertyEditor.svelte +6 -8
  1168. package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -1
  1169. package/package/components/schema/PropertyEditor.svelte +2 -1
  1170. package/package/components/schema/PropertyEditor.svelte.d.ts +2 -1
  1171. package/package/components/schema/SchemaFormDND.svelte +4 -3
  1172. package/package/components/schema/SchemaPickerRow.svelte +3 -3
  1173. package/package/components/schema/jsonSchemaResource.svelte.js +6 -1
  1174. package/package/components/scriptEditor/LogPanel.svelte +4 -4
  1175. package/package/components/scripts/CreateActionsScript.svelte +5 -4
  1176. package/package/components/search/GlobalSearchModal.svelte +11 -21
  1177. package/package/components/search/RunsSearch.svelte +6 -6
  1178. package/package/components/search/RunsSearch.svelte.d.ts +1 -1
  1179. package/package/components/select/DraggableTags.svelte +4 -4
  1180. package/package/components/select/MultiSelect.svelte +13 -9
  1181. package/package/components/select/MultiSelect.svelte.d.ts +10 -2
  1182. package/package/components/select/Select.svelte +28 -9
  1183. package/package/components/select/Select.svelte.d.ts +8 -0
  1184. package/package/components/select/SelectDropdown.svelte +20 -12
  1185. package/package/components/select/utils.svelte.d.ts +1 -0
  1186. package/package/components/select/utils.svelte.js +1 -2
  1187. package/package/components/settings/AIUserSettings.svelte +7 -3
  1188. package/package/components/settings/ChangeWorkspaceColor.svelte +6 -4
  1189. package/package/components/settings/ChangeWorkspaceId.svelte +4 -4
  1190. package/package/components/settings/ChangeWorkspaceName.svelte +4 -4
  1191. package/package/components/settings/CreateToken.svelte +278 -57
  1192. package/package/components/settings/PremiumInfo.svelte +4 -4
  1193. package/package/components/settings/ScopeSelector.svelte +32 -33
  1194. package/package/components/settings/TokenDisplay.svelte +50 -61
  1195. package/package/components/settings/TokenDisplay.svelte.d.ts +1 -1
  1196. package/package/components/settings/TokensTable.svelte +33 -34
  1197. package/package/components/settings/UserAIPromptsSettings.svelte +31 -0
  1198. package/package/components/settings/UserAIPromptsSettings.svelte.d.ts +3 -0
  1199. package/package/components/settings/UserInfoSettings.svelte +37 -39
  1200. package/package/components/settings/WorkspaceOperatorSettings.svelte +2 -2
  1201. package/package/components/settings/WorkspaceUserSettings.svelte +12 -11
  1202. package/package/components/sidebar/CriticalAlertModal.svelte +10 -7
  1203. package/package/components/sidebar/CriticalAlertModalInner.svelte +4 -4
  1204. package/package/components/sidebar/CriticalAlertTable.svelte +4 -4
  1205. package/package/components/sidebar/MenuButton.svelte +11 -12
  1206. package/package/components/sidebar/MenuButton.svelte.d.ts +5 -0
  1207. package/package/components/sidebar/MenuLink.svelte +8 -33
  1208. package/package/components/sidebar/MultiplayerMenu.svelte +1 -1
  1209. package/package/components/sidebar/OperatorMenu.svelte +29 -20
  1210. package/package/components/sidebar/SidebarContent.svelte +38 -11
  1211. package/package/components/sidebar/UserMenu.svelte +2 -6
  1212. package/package/components/sidebar/WorkspaceMenu.svelte +9 -13
  1213. package/package/components/sidebar/changelogs.js +5 -0
  1214. package/package/components/splitPanes/AnimatedPane.svelte +38 -0
  1215. package/package/components/splitPanes/AnimatedPane.svelte.d.ts +12 -0
  1216. package/package/components/sqlTypeService.d.ts +19 -0
  1217. package/package/components/sqlTypeService.js +146 -0
  1218. package/package/components/stepHistoryLoader.svelte.js +1 -1
  1219. package/package/components/table/Cell.svelte +4 -3
  1220. package/package/components/table/DataTable.svelte +1 -1
  1221. package/package/components/table/DownloadCsv.svelte +2 -2
  1222. package/package/components/text_input/TextInput.svelte +38 -19
  1223. package/package/components/text_input/TextInput.svelte.d.ts +42 -9
  1224. package/package/components/triggers/AddTriggersButton.svelte +2 -3
  1225. package/package/components/triggers/CaptureButton.svelte +2 -3
  1226. package/package/components/triggers/CaptureSection.svelte +88 -34
  1227. package/package/components/triggers/CaptureSection.svelte.d.ts +3 -1
  1228. package/package/components/triggers/CaptureTable.svelte +3 -3
  1229. package/package/components/triggers/CaptureTable.svelte.d.ts +3 -1
  1230. package/package/components/triggers/DeleteTriggerButton.svelte +4 -7
  1231. package/package/components/triggers/TestTriggerConnection.svelte +1 -2
  1232. package/package/components/triggers/TriggerEditorToolbar.svelte +23 -23
  1233. package/package/components/triggers/TriggerEditorToolbar.svelte.d.ts +7 -3
  1234. package/package/components/triggers/TriggerLabel.svelte +8 -30
  1235. package/package/components/triggers/TriggerModeToggle.svelte +73 -0
  1236. package/package/components/triggers/TriggerModeToggle.svelte.d.ts +18 -0
  1237. package/package/components/triggers/TriggerSuspendedJobsAlert.svelte +21 -0
  1238. package/package/components/triggers/TriggerSuspendedJobsAlert.svelte.d.ts +7 -0
  1239. package/package/components/triggers/TriggerSuspendedJobsModal.svelte +471 -0
  1240. package/package/components/triggers/TriggerSuspendedJobsModal.svelte.d.ts +22 -0
  1241. package/package/components/triggers/TriggersEditor.svelte +113 -69
  1242. package/package/components/triggers/TriggersEditor.svelte.d.ts +1 -1
  1243. package/package/components/triggers/TriggersTable.svelte +14 -15
  1244. package/package/components/triggers/TriggersWrapper.svelte +5 -9
  1245. package/package/components/triggers/TriggersWrapper.svelte.d.ts +1 -1
  1246. package/package/components/triggers/email/DefaultEmailCapture.svelte.d.ts +3 -1
  1247. package/package/components/triggers/email/DefaultEmailConfigSection.svelte +19 -27
  1248. package/package/components/triggers/email/DefaultEmailConfigSection.svelte.d.ts +1 -1
  1249. package/package/components/triggers/email/DefaultEmailPanel.svelte +3 -3
  1250. package/package/components/triggers/email/DefaultEmailPanel.svelte.d.ts +1 -1
  1251. package/package/components/triggers/email/EmailCapture.svelte.d.ts +3 -1
  1252. package/package/components/triggers/email/EmailTriggerEditorInner.svelte +75 -16
  1253. package/package/components/triggers/email/utils.d.ts +1 -1
  1254. package/package/components/triggers/email/utils.js +14 -13
  1255. package/package/components/triggers/gcp/GcpCapture.svelte.d.ts +3 -1
  1256. package/package/components/triggers/gcp/GcpTriggerEditorConfigSection.svelte +4 -8
  1257. package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +60 -25
  1258. package/package/components/triggers/gcp/utils.js +2 -2
  1259. package/package/components/triggers/http/OpenAPISpecGenerator.svelte +8 -14
  1260. package/package/components/triggers/http/RouteBodyTransformerOption.svelte +4 -2
  1261. package/package/components/triggers/http/RouteCapture.svelte.d.ts +3 -1
  1262. package/package/components/triggers/http/RouteEditorConfigSection.svelte +38 -35
  1263. package/package/components/triggers/http/RouteEditorInner.svelte +402 -303
  1264. package/package/components/triggers/http/RoutesGenerator.svelte +2 -3
  1265. package/package/components/triggers/http/utils.js +5 -4
  1266. package/package/components/triggers/kafka/KafkaCapture.svelte.d.ts +3 -1
  1267. package/package/components/triggers/kafka/KafkaTriggerEditorInner.svelte +63 -20
  1268. package/package/components/triggers/kafka/utils.js +2 -2
  1269. package/package/components/triggers/mqtt/MqttCapture.svelte.d.ts +3 -1
  1270. package/package/components/triggers/mqtt/MqttEditorConfigSection.svelte +2 -3
  1271. package/package/components/triggers/mqtt/MqttTriggerEditorInner.svelte +58 -20
  1272. package/package/components/triggers/mqtt/utils.js +3 -3
  1273. package/package/components/triggers/nats/NatsCapture.svelte.d.ts +3 -1
  1274. package/package/components/triggers/nats/NatsTriggerEditorInner.svelte +57 -19
  1275. package/package/components/triggers/nats/utils.js +2 -2
  1276. package/package/components/triggers/postgres/CheckPostgresRequirement.svelte +1 -2
  1277. package/package/components/triggers/postgres/PostgresCapture.svelte.d.ts +3 -1
  1278. package/package/components/triggers/postgres/PostgresTriggerEditorInner.svelte +79 -35
  1279. package/package/components/triggers/postgres/PublicationPicker.svelte +3 -6
  1280. package/package/components/triggers/postgres/RelationPicker.svelte +3 -6
  1281. package/package/components/triggers/postgres/SlotPicker.svelte +2 -4
  1282. package/package/components/triggers/postgres/utils.js +3 -3
  1283. package/package/components/triggers/scheduled/ScheduledPollPanel.svelte +1 -1
  1284. package/package/components/triggers/schedules/ScheduleEditorInner.svelte +152 -135
  1285. package/package/components/triggers/sqs/SqsCapture.svelte.d.ts +3 -1
  1286. package/package/components/triggers/sqs/SqsTriggerEditorConfigSection.svelte +3 -4
  1287. package/package/components/triggers/sqs/SqsTriggerEditorInner.svelte +60 -19
  1288. package/package/components/triggers/sqs/utils.js +3 -3
  1289. package/package/components/triggers/testingBadge.svelte +1 -1
  1290. package/package/components/triggers/utils.js +30 -0
  1291. package/package/components/triggers/webhook/WebhooksCapture.svelte.d.ts +3 -1
  1292. package/package/components/triggers/webhook/WebhooksConfigSection.svelte +124 -155
  1293. package/package/components/triggers/webhook/WebhooksConfigSection.svelte.d.ts +1 -1
  1294. package/package/components/triggers/webhook/WebhooksPanel.svelte +2 -2
  1295. package/package/components/triggers/webhook/WebhooksPanel.svelte.d.ts +1 -1
  1296. package/package/components/triggers/websocket/WebsocketCapture.svelte.d.ts +3 -1
  1297. package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +67 -27
  1298. package/package/components/triggers/websocket/utils.js +2 -2
  1299. package/package/components/tutorials/FlowBuilderLiveTutorial.svelte +703 -0
  1300. package/package/components/tutorials/{app/AppTutorial.svelte.d.ts → FlowBuilderLiveTutorial.svelte.d.ts} +7 -8
  1301. package/package/components/tutorials/SkipTutorials.svelte +2 -4
  1302. package/package/components/tutorials/TroubleshootFlowTutorial.svelte +410 -0
  1303. package/package/components/tutorials/{FlowBuilderTutorialErrorHandler.svelte.d.ts → TroubleshootFlowTutorial.svelte.d.ts} +8 -7
  1304. package/package/components/tutorials/TutorialControls.svelte +1 -1
  1305. package/package/components/tutorials/TutorialProgressBar.svelte +20 -0
  1306. package/package/components/tutorials/TutorialProgressBar.svelte.d.ts +8 -0
  1307. package/package/components/tutorials/TutorialRouter.svelte +45 -0
  1308. package/package/components/tutorials/TutorialRouter.svelte.d.ts +16 -0
  1309. package/package/components/tutorials/TutorialWrapper.svelte +23 -0
  1310. package/package/components/tutorials/TutorialWrapper.svelte.d.ts +28 -0
  1311. package/package/components/tutorials/utils.js +6 -6
  1312. package/package/components/tutorials/workspace/WorkspaceOnboardingTutorial.svelte +106 -0
  1313. package/package/components/tutorials/{FlowBuilderTutorialSimpleFlow.svelte.d.ts → workspace/WorkspaceOnboardingTutorial.svelte.d.ts} +7 -8
  1314. package/package/components/vscode.d.ts +1 -0
  1315. package/package/components/vscode.js +12 -6
  1316. package/package/components/wizards/AgChartWizard.svelte +1 -1
  1317. package/package/components/wizards/AgGridWizard.svelte +55 -55
  1318. package/package/components/wizards/DBExplorerWizard.svelte +1 -2
  1319. package/package/components/wizards/LoggedWizardResult.svelte +3 -3
  1320. package/package/components/wizards/TableActionsWizard.svelte +4 -10
  1321. package/package/components/wizards/TableActionsWizard.svelte.d.ts +2 -2
  1322. package/package/components/worker_group.js +3 -2
  1323. package/package/components/workspaceSettings/AISettings.svelte +21 -70
  1324. package/package/components/workspaceSettings/AISettings.svelte.d.ts +2 -1
  1325. package/package/components/workspaceSettings/CreateWorkspace.svelte +325 -159
  1326. package/package/components/workspaceSettings/CustomInstanceDbSelect.svelte +69 -0
  1327. package/package/components/workspaceSettings/CustomInstanceDbSelect.svelte.d.ts +17 -0
  1328. package/package/components/workspaceSettings/CustomInstanceDbWizardModal.svelte +188 -0
  1329. package/package/components/workspaceSettings/CustomInstanceDbWizardModal.svelte.d.ts +19 -0
  1330. package/package/components/workspaceSettings/DataTableSettings.svelte +256 -0
  1331. package/package/components/workspaceSettings/DataTableSettings.svelte.d.ts +23 -0
  1332. package/package/components/workspaceSettings/DucklakeSettings.svelte +41 -205
  1333. package/package/components/workspaceSettings/DucklakeSettings.svelte.d.ts +1 -0
  1334. package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +42 -21
  1335. package/package/components/workspaceSettings/ModelTokenLimits.svelte +1 -1
  1336. package/package/components/workspaceSettings/StorageSettings.svelte +18 -17
  1337. package/package/components/workspaceSettings/StorageSettings.svelte.d.ts +1 -0
  1338. package/package/components/workspaceSettings/WorkspaceDependenciesSettings.svelte +365 -0
  1339. package/package/components/workspaceSettings/WorkspaceDependenciesSettings.svelte.d.ts +3 -0
  1340. package/package/components/workspaceSettings/utils.svelte.d.ts +1 -0
  1341. package/package/components/workspaceSettings/utils.svelte.js +4 -0
  1342. package/package/consts.d.ts +1 -1
  1343. package/package/cookies.d.ts +7 -0
  1344. package/package/cookies.js +25 -0
  1345. package/package/gen/core/OpenAPI.js +1 -1
  1346. package/package/gen/schemas.gen.d.ts +1053 -97
  1347. package/package/gen/schemas.gen.js +1139 -174
  1348. package/package/gen/services.gen.d.ts +539 -35
  1349. package/package/gen/services.gen.js +1125 -87
  1350. package/package/gen/types.gen.d.ts +2833 -299
  1351. package/package/hub.d.ts +4 -0
  1352. package/package/hub.js +2 -0
  1353. package/package/hubPaths.json +10 -9
  1354. package/package/infer.d.ts +27 -1
  1355. package/package/infer.js +27 -9
  1356. package/package/infer.svelte.d.ts +4 -0
  1357. package/package/infer.svelte.js +70 -0
  1358. package/package/mcpEndpointTools.d.ts +11 -0
  1359. package/package/mcpEndpointTools.js +1414 -0
  1360. package/package/monaco_workers/sqlTypePlugin.worker.d.ts +151 -0
  1361. package/package/monaco_workers/sqlTypePlugin.worker.js +789 -0
  1362. package/package/monaco_workers/sqlTypePlugin.worker.test.d.ts +1 -0
  1363. package/package/monaco_workers/sqlTypePlugin.worker.test.js +99 -0
  1364. package/package/rawAppWmillTs.d.ts +4 -0
  1365. package/package/rawAppWmillTs.js +46 -0
  1366. package/package/script_helpers.d.ts +14 -1
  1367. package/package/script_helpers.js +205 -33
  1368. package/package/scripts.d.ts +2 -1
  1369. package/package/scripts.js +9 -0
  1370. package/package/sharedUtils.d.ts +5 -0
  1371. package/package/sharedUtils.js +7 -0
  1372. package/package/storeUtils.js +2 -2
  1373. package/package/stores.d.ts +3 -0
  1374. package/package/stores.js +26 -14
  1375. package/package/svelte5Utils.svelte.d.ts +27 -1
  1376. package/package/svelte5Utils.svelte.js +68 -2
  1377. package/package/test-setup.d.ts +4 -0
  1378. package/package/test-setup.js +76 -0
  1379. package/package/toast.d.ts +3 -0
  1380. package/package/toast.js +3 -2
  1381. package/package/tutorialUtils.d.ts +36 -0
  1382. package/package/tutorialUtils.js +152 -6
  1383. package/package/tutorials/config.d.ts +28 -0
  1384. package/package/tutorials/config.js +103 -0
  1385. package/package/tutorials/roleUtils.d.ts +20 -0
  1386. package/package/tutorials/roleUtils.js +52 -0
  1387. package/package/utils.js +164 -9
  1388. package/package/utils.test.d.ts +1 -0
  1389. package/package/utils.test.js +208 -0
  1390. package/package/utils_deployable.d.ts +18 -18
  1391. package/package/utils_deployable.js +16 -16
  1392. package/package.json +25 -17
  1393. package/package/components/ConfirmButton.svelte +0 -31
  1394. package/package/components/DefaultTags.svelte +0 -24
  1395. package/package/components/DefaultTags.svelte.d.ts +0 -7
  1396. package/package/components/FlowBuilderTutorials.svelte +0 -79
  1397. package/package/components/copilot/chat/flow/FlowAIButton.svelte +0 -64
  1398. package/package/components/copilot/chat/flow/FlowAIButton.svelte.d.ts +0 -8
  1399. package/package/components/copilot/chat/flow/ModuleAcceptReject.svelte +0 -52
  1400. package/package/components/copilot/chat/flow/ModuleAcceptReject.svelte.d.ts +0 -10
  1401. package/package/components/flows/content/FlowConstants.svelte +0 -120
  1402. package/package/components/flows/content/FlowConstants.svelte.d.ts +0 -6
  1403. package/package/components/flows/content/FlowInputsFlowQuick.svelte +0 -65
  1404. package/package/components/flows/conversations/FlowChatManager.svelte.d.ts +0 -52
  1405. package/package/components/flows/conversations/FlowChatMessage.svelte +0 -68
  1406. package/package/components/flows/conversations/FlowChatMessage.svelte.d.ts +0 -7
  1407. package/package/components/tutorials/FlowBuilderTutorialBranchAll.svelte +0 -96
  1408. package/package/components/tutorials/FlowBuilderTutorialBranchAll.svelte.d.ts +0 -25
  1409. package/package/components/tutorials/FlowBuilderTutorialBranchOne.svelte +0 -116
  1410. package/package/components/tutorials/FlowBuilderTutorialBranchOne.svelte.d.ts +0 -26
  1411. package/package/components/tutorials/FlowBuilderTutorialErrorHandler.svelte +0 -131
  1412. package/package/components/tutorials/FlowBuilderTutorialForLoop.svelte +0 -273
  1413. package/package/components/tutorials/FlowBuilderTutorialForLoop.svelte.d.ts +0 -26
  1414. package/package/components/tutorials/FlowBuilderTutorialSimpleFlow.svelte +0 -280
  1415. package/package/components/tutorials/app/AppTutorial.svelte +0 -247
  1416. package/package/defaults.d.ts +0 -5
  1417. package/package/defaults.js +0 -5
  1418. package/package/utils.d.ts +0 -240
@@ -0,0 +1,1255 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { flushSync } from 'svelte';
3
+ import { createFlowDiffManager } from './flowDiffManager.svelte';
4
+ import { DUPLICATE_MODULE_PREFIX, NEW_MODULE_PREFIX } from './flowDiff';
5
+ import { SPECIAL_MODULE_IDS } from '../copilot/chat/shared';
6
+ import { createRawScriptModule, createForloopModule, createBranchOneModule, createBranchAllModule, createExtendedOpenFlow, createFlowStore, deepClone, expectModuleOrder, createIdentityModule } from './flowDiff.testUtils';
7
+ describe('FlowDiffManager', () => {
8
+ describe('effect auto-computation', () => {
9
+ it('auto-computes moduleActions when flows differ', () => {
10
+ const cleanup = $effect.root(() => {
11
+ const manager = createFlowDiffManager({ testMode: true });
12
+ const moduleA = createRawScriptModule('a', 'before');
13
+ const beforeFlow = createExtendedOpenFlow({ modules: [moduleA] });
14
+ const moduleB = createRawScriptModule('b', 'new');
15
+ const afterFlow = { modules: [moduleA, moduleB] };
16
+ manager.setEditMode(true);
17
+ manager.setBeforeFlow(beforeFlow);
18
+ manager.setCurrentFlow(afterFlow);
19
+ flushSync();
20
+ expect(manager.moduleActions).toHaveProperty('b');
21
+ expect(manager.moduleActions['b']).toEqual({ action: 'added', pending: true });
22
+ });
23
+ cleanup();
24
+ });
25
+ });
26
+ describe('acceptModule', () => {
27
+ it('accepts added module - inserts into beforeFlow', () => {
28
+ const cleanup = $effect.root(() => {
29
+ const manager = createFlowDiffManager({ testMode: true });
30
+ const moduleA = createRawScriptModule('a', 'content-a');
31
+ const moduleB = createRawScriptModule('b', 'content-b');
32
+ const beforeFlow = createExtendedOpenFlow({ modules: [moduleA] });
33
+ const afterFlow = { modules: [moduleA, moduleB] };
34
+ manager.setEditMode(true);
35
+ manager.setBeforeFlow(beforeFlow);
36
+ manager.setCurrentFlow(afterFlow);
37
+ flushSync();
38
+ // Verify 'b' is detected as added
39
+ expect(manager.moduleActions['b']).toEqual({ action: 'added', pending: true });
40
+ // Accept the added module
41
+ manager.acceptModule('b');
42
+ flushSync();
43
+ // After accepting, beforeFlow should now contain module 'b'
44
+ const beforeModules = manager.beforeFlow?.value.modules ?? [];
45
+ expect(beforeModules.map((m) => m.id)).toContain('b');
46
+ // The action should be cleared since beforeFlow now matches currentFlow
47
+ expect(manager.moduleActions['b']).toBeUndefined();
48
+ });
49
+ cleanup();
50
+ });
51
+ it('accepts removed module - deletes from beforeFlow', () => {
52
+ const cleanup = $effect.root(() => {
53
+ const manager = createFlowDiffManager({ testMode: true });
54
+ const moduleA = createRawScriptModule('a', 'content-a');
55
+ const moduleB = createRawScriptModule('b', 'content-b');
56
+ const beforeFlow = createExtendedOpenFlow({ modules: [moduleA, moduleB] });
57
+ const afterFlow = { modules: [moduleA] };
58
+ manager.setEditMode(true);
59
+ manager.setBeforeFlow(beforeFlow);
60
+ manager.setCurrentFlow(afterFlow);
61
+ flushSync();
62
+ // Verify 'b' is detected as removed
63
+ expect(manager.moduleActions['b']).toEqual({ action: 'removed', pending: true });
64
+ // Accept the removal
65
+ manager.acceptModule('b');
66
+ flushSync();
67
+ // After accepting, beforeFlow should no longer contain module 'b'
68
+ const beforeModules = manager.beforeFlow?.value.modules ?? [];
69
+ expect(beforeModules.map((m) => m.id)).not.toContain('b');
70
+ expect(manager.moduleActions['b']).toBeUndefined();
71
+ });
72
+ cleanup();
73
+ });
74
+ it('accepts modified module - updates beforeFlow content', () => {
75
+ const cleanup = $effect.root(() => {
76
+ const manager = createFlowDiffManager({ testMode: true });
77
+ const moduleBeforeA = createRawScriptModule('a', 'original-content');
78
+ const moduleAfterA = createRawScriptModule('a', 'modified-content');
79
+ const beforeFlow = createExtendedOpenFlow({ modules: [moduleBeforeA] });
80
+ const afterFlow = { modules: [moduleAfterA] };
81
+ manager.setEditMode(true);
82
+ manager.setBeforeFlow(beforeFlow);
83
+ manager.setCurrentFlow(afterFlow);
84
+ flushSync();
85
+ // Verify 'a' is detected as modified
86
+ expect(manager.moduleActions['a']).toEqual({ action: 'modified', pending: true });
87
+ // Accept the modification
88
+ manager.acceptModule('a');
89
+ flushSync();
90
+ // After accepting, beforeFlow module should have the new content
91
+ const beforeModules = manager.beforeFlow?.value.modules ?? [];
92
+ const moduleA = beforeModules.find((m) => m.id === 'a');
93
+ expect((moduleA?.value).content).toBe('modified-content');
94
+ expect(manager.moduleActions['a']).toBeUndefined();
95
+ });
96
+ cleanup();
97
+ });
98
+ it('accepts added nested module - parent accepted as skeleton first', () => {
99
+ const cleanup = $effect.root(() => {
100
+ const manager = createFlowDiffManager({ testMode: true });
101
+ // beforeFlow: empty
102
+ const beforeFlow = createExtendedOpenFlow({ modules: [] });
103
+ // afterFlow: forloop containing a nested module
104
+ const nestedModule = createRawScriptModule('nested', 'nested-content');
105
+ const forloop = createForloopModule('loop', [nestedModule]);
106
+ const afterFlow = { modules: [forloop] };
107
+ manager.setEditMode(true);
108
+ manager.setBeforeFlow(beforeFlow);
109
+ manager.setCurrentFlow(afterFlow);
110
+ flushSync();
111
+ // Both 'loop' and 'nested' should be detected as added
112
+ expect(manager.moduleActions['loop']).toEqual({ action: 'added', pending: true });
113
+ expect(manager.moduleActions['nested']).toEqual({ action: 'added', pending: true });
114
+ // Accept the nested module first - should auto-accept parent as skeleton
115
+ manager.acceptModule('nested');
116
+ flushSync();
117
+ // After accepting nested, the loop should also be in beforeFlow (as skeleton initially)
118
+ const beforeModules = manager.beforeFlow?.value.modules ?? [];
119
+ expect(beforeModules.map((m) => m.id)).toContain('loop');
120
+ // The nested module should be in the loop
121
+ const loopModule = beforeModules.find((m) => m.id === 'loop');
122
+ const loopValue = loopModule?.value;
123
+ expect(loopValue.modules.map((m) => m.id)).toContain('nested');
124
+ });
125
+ cleanup();
126
+ });
127
+ it('accepts input schema changes', () => {
128
+ const cleanup = $effect.root(() => {
129
+ const manager = createFlowDiffManager({ testMode: true });
130
+ const beforeSchema = {
131
+ properties: { x: { type: 'string' } }
132
+ };
133
+ const afterSchema = {
134
+ properties: { x: { type: 'string' }, y: { type: 'number' } }
135
+ };
136
+ const beforeFlow = createExtendedOpenFlow({ modules: [] }, beforeSchema);
137
+ const afterFlow = { modules: [] };
138
+ manager.setEditMode(true);
139
+ manager.setBeforeFlow(beforeFlow);
140
+ manager.setCurrentFlow(afterFlow);
141
+ manager.setCurrentInputSchema(afterSchema);
142
+ flushSync();
143
+ // Input schema change should be detected
144
+ expect(manager.moduleActions[SPECIAL_MODULE_IDS.INPUT]).toEqual({
145
+ action: 'modified',
146
+ pending: true
147
+ });
148
+ // Accept the input schema change
149
+ manager.acceptModule(SPECIAL_MODULE_IDS.INPUT);
150
+ flushSync();
151
+ // beforeFlow schema should now match currentInputSchema
152
+ expect(manager.beforeFlow?.schema).toEqual(afterSchema);
153
+ });
154
+ cleanup();
155
+ });
156
+ it('handles duplicate ID prefix (old__) for type changes', () => {
157
+ const cleanup = $effect.root(() => {
158
+ const manager = createFlowDiffManager({ testMode: true });
159
+ // Create a real type change: rawscript -> identity
160
+ const moduleBeforeA = createRawScriptModule('a', 'content');
161
+ const moduleAfterA = createIdentityModule('a');
162
+ const beforeFlow = createExtendedOpenFlow({ modules: [moduleBeforeA] });
163
+ const afterFlow = { modules: [moduleAfterA] };
164
+ manager.setEditMode(true);
165
+ manager.setBeforeFlow(beforeFlow);
166
+ manager.setCurrentFlow(afterFlow);
167
+ flushSync();
168
+ // Type change produces: 'a' (added) and 'old__a' (removed)
169
+ expect(manager.moduleActions['a']).toEqual({ action: 'added', pending: true });
170
+ expect(manager.moduleActions[`${DUPLICATE_MODULE_PREFIX}a`]).toEqual({ action: 'removed', pending: true });
171
+ // Accept the removal (old__a) - should remove original module from beforeFlow
172
+ manager.acceptModule(`${DUPLICATE_MODULE_PREFIX}a`);
173
+ flushSync();
174
+ // The module 'a' (original rawscript) should be removed from beforeFlow
175
+ const beforeModules = manager.beforeFlow?.value.modules ?? [];
176
+ expect(beforeModules.map((m) => m.id)).not.toContain('a');
177
+ });
178
+ cleanup();
179
+ });
180
+ });
181
+ describe('rejectModule', () => {
182
+ it('rejects added module - removes from flowStore', () => {
183
+ const cleanup = $effect.root(() => {
184
+ const manager = createFlowDiffManager({ testMode: true });
185
+ const moduleA = createRawScriptModule('a', 'content-a');
186
+ const moduleB = createRawScriptModule('b', 'content-b');
187
+ const beforeFlow = createExtendedOpenFlow({ modules: [deepClone(moduleA)] });
188
+ const currentFlowValue = {
189
+ modules: [deepClone(moduleA), deepClone(moduleB)]
190
+ };
191
+ const flowStore = createFlowStore(createExtendedOpenFlow(currentFlowValue));
192
+ manager.setEditMode(true);
193
+ manager.setBeforeFlow(beforeFlow);
194
+ manager.setCurrentFlow(flowStore.val.value);
195
+ flushSync();
196
+ expect(manager.moduleActions['b']).toEqual({ action: 'added', pending: true });
197
+ // Reject the added module
198
+ manager.rejectModule('b', flowStore);
199
+ flushSync();
200
+ // After rejecting, flowStore should no longer contain module 'b'
201
+ const currentModules = flowStore.val.value.modules;
202
+ expect(currentModules.map((m) => m.id)).not.toContain('b');
203
+ expect(currentModules.map((m) => m.id)).toContain('a');
204
+ });
205
+ cleanup();
206
+ });
207
+ it('rejects removed module - restores to flowStore', () => {
208
+ const cleanup = $effect.root(() => {
209
+ const manager = createFlowDiffManager({ testMode: true });
210
+ const moduleA = createRawScriptModule('a', 'content-a');
211
+ const moduleB = createRawScriptModule('b', 'content-b');
212
+ const beforeFlow = createExtendedOpenFlow({
213
+ modules: [deepClone(moduleA), deepClone(moduleB)]
214
+ });
215
+ const currentFlowValue = { modules: [deepClone(moduleA)] };
216
+ const flowStore = createFlowStore(createExtendedOpenFlow(currentFlowValue));
217
+ manager.setEditMode(true);
218
+ manager.setBeforeFlow(beforeFlow);
219
+ manager.setCurrentFlow(flowStore.val.value);
220
+ flushSync();
221
+ expect(manager.moduleActions['b']).toEqual({ action: 'removed', pending: true });
222
+ // Reject the removal - should restore module 'b'
223
+ manager.rejectModule('b', flowStore);
224
+ flushSync();
225
+ // After rejecting, flowStore should contain module 'b' again
226
+ const currentModules = flowStore.val.value.modules;
227
+ expect(currentModules.map((m) => m.id)).toContain('b');
228
+ });
229
+ cleanup();
230
+ });
231
+ it('rejects modified module - reverts flowStore to beforeFlow state', () => {
232
+ const cleanup = $effect.root(() => {
233
+ const manager = createFlowDiffManager({ testMode: true });
234
+ const moduleBeforeA = createRawScriptModule('a', 'original-content');
235
+ const moduleAfterA = createRawScriptModule('a', 'modified-content');
236
+ const beforeFlow = createExtendedOpenFlow({ modules: [deepClone(moduleBeforeA)] });
237
+ const currentFlowValue = { modules: [deepClone(moduleAfterA)] };
238
+ const flowStore = createFlowStore(createExtendedOpenFlow(currentFlowValue));
239
+ manager.setEditMode(true);
240
+ manager.setBeforeFlow(beforeFlow);
241
+ manager.setCurrentFlow(flowStore.val.value);
242
+ flushSync();
243
+ expect(manager.moduleActions['a']).toEqual({ action: 'modified', pending: true });
244
+ // Reject the modification
245
+ manager.rejectModule('a', flowStore);
246
+ flushSync();
247
+ // After rejecting, flowStore should have the original content
248
+ const moduleA = flowStore.val.value.modules.find((m) => m.id === 'a');
249
+ expect((moduleA?.value).content).toBe('original-content');
250
+ });
251
+ cleanup();
252
+ });
253
+ it('rejects input schema changes - reverts flowStore schema', () => {
254
+ const cleanup = $effect.root(() => {
255
+ const manager = createFlowDiffManager({ testMode: true });
256
+ const beforeSchema = { properties: { x: { type: 'string' } } };
257
+ const afterSchema = { properties: { x: { type: 'string' }, y: { type: 'number' } } };
258
+ const beforeFlow = createExtendedOpenFlow({ modules: [] }, beforeSchema);
259
+ const flowStore = createFlowStore(createExtendedOpenFlow({ modules: [] }, afterSchema));
260
+ manager.setEditMode(true);
261
+ manager.setBeforeFlow(beforeFlow);
262
+ manager.setCurrentFlow(flowStore.val.value);
263
+ manager.setCurrentInputSchema(afterSchema);
264
+ flushSync();
265
+ expect(manager.moduleActions[SPECIAL_MODULE_IDS.INPUT]).toEqual({
266
+ action: 'modified',
267
+ pending: true
268
+ });
269
+ // Reject the schema change
270
+ manager.rejectModule(SPECIAL_MODULE_IDS.INPUT, flowStore);
271
+ flushSync();
272
+ // After rejecting, flowStore schema should match beforeFlow
273
+ expect(flowStore.val.schema).toEqual(beforeSchema);
274
+ });
275
+ cleanup();
276
+ });
277
+ it('does not crash without flowStore', () => {
278
+ const cleanup = $effect.root(() => {
279
+ const manager = createFlowDiffManager({ testMode: true });
280
+ const moduleA = createRawScriptModule('a', 'content');
281
+ const moduleB = createRawScriptModule('b', 'content');
282
+ const beforeFlow = createExtendedOpenFlow({ modules: [moduleA] });
283
+ const afterFlow = { modules: [moduleA, moduleB] };
284
+ manager.setEditMode(true);
285
+ manager.setBeforeFlow(beforeFlow);
286
+ manager.setCurrentFlow(afterFlow);
287
+ flushSync();
288
+ // Should not throw when flowStore is not provided
289
+ expect(() => manager.rejectModule('b')).not.toThrow();
290
+ });
291
+ cleanup();
292
+ });
293
+ it('does nothing for module not in actions', () => {
294
+ const cleanup = $effect.root(() => {
295
+ const manager = createFlowDiffManager({ testMode: true });
296
+ const moduleA = createRawScriptModule('a', 'content');
297
+ const beforeFlow = createExtendedOpenFlow({ modules: [moduleA] });
298
+ const afterFlow = { modules: [moduleA] };
299
+ manager.setEditMode(true);
300
+ manager.setBeforeFlow(beforeFlow);
301
+ manager.setCurrentFlow(afterFlow);
302
+ flushSync();
303
+ // No actions should exist
304
+ expect(Object.keys(manager.moduleActions)).toHaveLength(0);
305
+ // Should not throw for non-existent module
306
+ expect(() => manager.rejectModule('nonexistent')).not.toThrow();
307
+ });
308
+ cleanup();
309
+ });
310
+ it('rejects duplicate ID prefix (old__) for type changes - restores original and renames new', () => {
311
+ const cleanup = $effect.root(() => {
312
+ const manager = createFlowDiffManager({ testMode: true });
313
+ // Create a real type change: rawscript -> identity
314
+ const moduleBeforeA = createRawScriptModule('a', 'original-content');
315
+ const moduleAfterA = createIdentityModule('a');
316
+ const beforeFlow = createExtendedOpenFlow({ modules: [deepClone(moduleBeforeA)] });
317
+ const currentFlowValue = { modules: [deepClone(moduleAfterA)] };
318
+ const flowStore = createFlowStore(createExtendedOpenFlow(currentFlowValue));
319
+ manager.setEditMode(true);
320
+ manager.setBeforeFlow(beforeFlow);
321
+ manager.setCurrentFlow(flowStore.val.value);
322
+ flushSync();
323
+ // Type change produces: 'a' (added) and 'old__a' (removed)
324
+ expect(manager.moduleActions['a']).toEqual({ action: 'added', pending: true });
325
+ expect(manager.moduleActions[`${DUPLICATE_MODULE_PREFIX}a`]).toEqual({
326
+ action: 'removed',
327
+ pending: true
328
+ });
329
+ // Reject the removal (old__a) - should restore original and rename the new one
330
+ manager.rejectModule(`${DUPLICATE_MODULE_PREFIX}a`, flowStore);
331
+ flushSync();
332
+ const currentModules = flowStore.val.value.modules;
333
+ // The original module 'a' (rawscript) should be restored
334
+ const restoredOriginal = currentModules.find((m) => m.id === 'a');
335
+ expect(restoredOriginal).toBeDefined();
336
+ expect(restoredOriginal?.value.type).toBe('rawscript');
337
+ // The new module should be renamed to 'new__a' so user can still accept/reject it
338
+ const renamedNew = currentModules.find((m) => m.id === `${NEW_MODULE_PREFIX}a`);
339
+ expect(renamedNew).toBeDefined();
340
+ expect(renamedNew?.value.type).toBe('identity');
341
+ });
342
+ cleanup();
343
+ });
344
+ });
345
+ describe('batch operations', () => {
346
+ it('acceptAll accepts all pending modules', () => {
347
+ const cleanup = $effect.root(() => {
348
+ const manager = createFlowDiffManager({ testMode: true });
349
+ const moduleA = createRawScriptModule('a', 'content-a');
350
+ const moduleB = createRawScriptModule('b', 'content-b');
351
+ const moduleC = createRawScriptModule('c', 'content-c');
352
+ const beforeFlow = createExtendedOpenFlow({ modules: [moduleA] });
353
+ const afterFlow = { modules: [moduleA, moduleB, moduleC] };
354
+ manager.setEditMode(true);
355
+ manager.setBeforeFlow(beforeFlow);
356
+ manager.setCurrentFlow(afterFlow);
357
+ flushSync();
358
+ expect(manager.moduleActions['b']).toBeDefined();
359
+ expect(manager.moduleActions['c']).toBeDefined();
360
+ // Accept all
361
+ manager.acceptAll();
362
+ flushSync();
363
+ // All modules should now be in beforeFlow
364
+ const beforeModules = manager.beforeFlow?.value.modules ?? [];
365
+ expect(beforeModules.map((m) => m.id)).toContain('b');
366
+ expect(beforeModules.map((m) => m.id)).toContain('c');
367
+ });
368
+ cleanup();
369
+ });
370
+ it('acceptAll skips non-pending actions', () => {
371
+ const cleanup = $effect.root(() => {
372
+ const manager = createFlowDiffManager({ testMode: true });
373
+ const moduleA = createRawScriptModule('a', 'content');
374
+ const moduleB = createRawScriptModule('b', 'content');
375
+ const beforeFlow = createExtendedOpenFlow({ modules: [moduleA] });
376
+ const afterFlow = { modules: [moduleA, moduleB] };
377
+ // Set editMode to false so actions are not pending
378
+ manager.setEditMode(false);
379
+ manager.setBeforeFlow(beforeFlow);
380
+ manager.setCurrentFlow(afterFlow);
381
+ flushSync();
382
+ // Action should exist but not be pending
383
+ expect(manager.moduleActions['b']?.pending).toBe(false);
384
+ // acceptAll should skip non-pending
385
+ manager.acceptAll();
386
+ flushSync();
387
+ // 'b' should still not be in beforeFlow
388
+ const beforeModules = manager.beforeFlow?.value.modules ?? [];
389
+ expect(beforeModules.map((m) => m.id)).not.toContain('b');
390
+ });
391
+ cleanup();
392
+ });
393
+ it('rejectAll rejects all pending modules', () => {
394
+ const cleanup = $effect.root(() => {
395
+ const manager = createFlowDiffManager({ testMode: true });
396
+ const moduleA = createRawScriptModule('a', 'content-a');
397
+ const moduleB = createRawScriptModule('b', 'content-b');
398
+ const moduleC = createRawScriptModule('c', 'content-c');
399
+ const beforeFlow = createExtendedOpenFlow({ modules: [deepClone(moduleA)] });
400
+ const currentFlowValue = {
401
+ modules: [deepClone(moduleA), deepClone(moduleB), deepClone(moduleC)]
402
+ };
403
+ const flowStore = createFlowStore(createExtendedOpenFlow(currentFlowValue));
404
+ manager.setEditMode(true);
405
+ manager.setBeforeFlow(beforeFlow);
406
+ manager.setCurrentFlow(flowStore.val.value);
407
+ flushSync();
408
+ expect(manager.moduleActions['b']).toBeDefined();
409
+ expect(manager.moduleActions['c']).toBeDefined();
410
+ // Reject all
411
+ manager.rejectAll(flowStore);
412
+ flushSync();
413
+ // Both added modules should be removed from flowStore
414
+ const currentModules = flowStore.val.value.modules;
415
+ expect(currentModules.map((m) => m.id)).not.toContain('b');
416
+ expect(currentModules.map((m) => m.id)).not.toContain('c');
417
+ });
418
+ cleanup();
419
+ });
420
+ });
421
+ describe('edge cases', () => {
422
+ it('clearSnapshot clears all state', () => {
423
+ const cleanup = $effect.root(() => {
424
+ const manager = createFlowDiffManager({ testMode: true });
425
+ const moduleA = createRawScriptModule('a', 'content');
426
+ const moduleB = createRawScriptModule('b', 'content');
427
+ const beforeFlow = createExtendedOpenFlow({ modules: [moduleA] });
428
+ const afterFlow = { modules: [moduleA, moduleB] };
429
+ manager.setEditMode(true);
430
+ manager.setBeforeFlow(beforeFlow);
431
+ manager.setCurrentFlow(afterFlow);
432
+ flushSync();
433
+ expect(manager.beforeFlow).toBeDefined();
434
+ expect(manager.currentFlow).toBeDefined();
435
+ expect(Object.keys(manager.moduleActions).length).toBeGreaterThan(0);
436
+ manager.clearSnapshot();
437
+ flushSync();
438
+ expect(manager.beforeFlow).toBeUndefined();
439
+ expect(manager.currentFlow).toBeUndefined();
440
+ expect(Object.keys(manager.moduleActions)).toHaveLength(0);
441
+ });
442
+ cleanup();
443
+ });
444
+ it('revertToSnapshot restores entire flow', () => {
445
+ const cleanup = $effect.root(() => {
446
+ const manager = createFlowDiffManager({ testMode: true });
447
+ const moduleA = createRawScriptModule('a', 'original');
448
+ const moduleB = createRawScriptModule('b', 'modified');
449
+ const beforeFlow = createExtendedOpenFlow({ modules: [deepClone(moduleA)] });
450
+ const currentFlowValue = { modules: [deepClone(moduleB)] };
451
+ const flowStore = createFlowStore(createExtendedOpenFlow(currentFlowValue));
452
+ manager.setEditMode(true);
453
+ manager.setBeforeFlow(beforeFlow);
454
+ manager.setCurrentFlow(flowStore.val.value);
455
+ flushSync();
456
+ // Revert to snapshot
457
+ manager.revertToSnapshot(flowStore);
458
+ flushSync();
459
+ // flowStore should now be the beforeFlow
460
+ expect(flowStore.val.value.modules.map((m) => m.id)).toEqual(['a']);
461
+ expect(flowStore.val.value.modules[0].value.content).toBe('original');
462
+ });
463
+ cleanup();
464
+ });
465
+ });
466
+ describe('module positioning', () => {
467
+ it('accept added module at beginning - inserts at correct position', () => {
468
+ const cleanup = $effect.root(() => {
469
+ const manager = createFlowDiffManager({ testMode: true });
470
+ const moduleA = createRawScriptModule('a', 'content-a');
471
+ const moduleB = createRawScriptModule('b', 'content-b');
472
+ const moduleNew = createRawScriptModule('new', 'new at beginning');
473
+ // beforeFlow: [a, b]
474
+ // afterFlow: [new, a, b]
475
+ const beforeFlow = createExtendedOpenFlow({
476
+ modules: [deepClone(moduleA), deepClone(moduleB)]
477
+ });
478
+ const afterFlow = {
479
+ modules: [deepClone(moduleNew), deepClone(moduleA), deepClone(moduleB)]
480
+ };
481
+ manager.setEditMode(true);
482
+ manager.setBeforeFlow(beforeFlow);
483
+ manager.setCurrentFlow(afterFlow);
484
+ flushSync();
485
+ expect(manager.moduleActions['new']).toEqual({ action: 'added', pending: true });
486
+ // Accept the added module
487
+ manager.acceptModule('new');
488
+ flushSync();
489
+ // Verify 'new' is inserted at the beginning
490
+ const beforeModules = manager.beforeFlow?.value.modules ?? [];
491
+ expectModuleOrder(beforeModules, ['new', 'a', 'b']);
492
+ });
493
+ cleanup();
494
+ });
495
+ it('accept added module in middle - inserts at correct position', () => {
496
+ const cleanup = $effect.root(() => {
497
+ const manager = createFlowDiffManager({ testMode: true });
498
+ const moduleA = createRawScriptModule('a', 'content-a');
499
+ const moduleB = createRawScriptModule('b', 'content-b');
500
+ const moduleC = createRawScriptModule('c', 'content-c');
501
+ const moduleNew = createRawScriptModule('new', 'new in middle');
502
+ // beforeFlow: [a, b, c]
503
+ // afterFlow: [a, new, b, c]
504
+ const beforeFlow = createExtendedOpenFlow({
505
+ modules: [deepClone(moduleA), deepClone(moduleB), deepClone(moduleC)]
506
+ });
507
+ const afterFlow = {
508
+ modules: [
509
+ deepClone(moduleA),
510
+ deepClone(moduleNew),
511
+ deepClone(moduleB),
512
+ deepClone(moduleC)
513
+ ]
514
+ };
515
+ manager.setEditMode(true);
516
+ manager.setBeforeFlow(beforeFlow);
517
+ manager.setCurrentFlow(afterFlow);
518
+ flushSync();
519
+ expect(manager.moduleActions['new']).toEqual({ action: 'added', pending: true });
520
+ // Accept the added module
521
+ manager.acceptModule('new');
522
+ flushSync();
523
+ // Verify 'new' is inserted at the correct middle position
524
+ const beforeModules = manager.beforeFlow?.value.modules ?? [];
525
+ expectModuleOrder(beforeModules, ['a', 'new', 'b', 'c']);
526
+ });
527
+ cleanup();
528
+ });
529
+ it('reject removed module - restores at correct position', () => {
530
+ const cleanup = $effect.root(() => {
531
+ const manager = createFlowDiffManager({ testMode: true });
532
+ const moduleA = createRawScriptModule('a', 'content-a');
533
+ const moduleB = createRawScriptModule('b', 'content-b');
534
+ const moduleC = createRawScriptModule('c', 'content-c');
535
+ // beforeFlow: [a, b, c]
536
+ // afterFlow (currentFlow): [a, c] - 'b' removed
537
+ const beforeFlow = createExtendedOpenFlow({
538
+ modules: [deepClone(moduleA), deepClone(moduleB), deepClone(moduleC)]
539
+ });
540
+ const currentFlowValue = {
541
+ modules: [deepClone(moduleA), deepClone(moduleC)]
542
+ };
543
+ const flowStore = createFlowStore(createExtendedOpenFlow(currentFlowValue));
544
+ manager.setEditMode(true);
545
+ manager.setBeforeFlow(beforeFlow);
546
+ manager.setCurrentFlow(flowStore.val.value);
547
+ flushSync();
548
+ expect(manager.moduleActions['b']).toEqual({ action: 'removed', pending: true });
549
+ // Reject the removal - should restore 'b' at original position
550
+ manager.rejectModule('b', flowStore);
551
+ flushSync();
552
+ // Verify 'b' is restored at the middle position
553
+ const currentModules = flowStore.val.value.modules;
554
+ expectModuleOrder(currentModules, ['a', 'b', 'c']);
555
+ });
556
+ cleanup();
557
+ });
558
+ it('accept added module inside loop - inserts at correct nested position', () => {
559
+ const cleanup = $effect.root(() => {
560
+ const manager = createFlowDiffManager({ testMode: true });
561
+ const innerA = createRawScriptModule('inner_a', 'inner a');
562
+ const innerB = createRawScriptModule('inner_b', 'inner b');
563
+ const innerNew = createRawScriptModule('inner_new', 'new at beginning of loop');
564
+ // beforeFlow: loop with [inner_a, inner_b]
565
+ // afterFlow: loop with [inner_new, inner_a, inner_b]
566
+ const beforeLoop = createForloopModule('loop1', [deepClone(innerA), deepClone(innerB)]);
567
+ const afterLoop = createForloopModule('loop1', [
568
+ deepClone(innerNew),
569
+ deepClone(innerA),
570
+ deepClone(innerB)
571
+ ]);
572
+ const beforeFlow = createExtendedOpenFlow({ modules: [beforeLoop] });
573
+ const afterFlow = { modules: [afterLoop] };
574
+ manager.setEditMode(true);
575
+ manager.setBeforeFlow(beforeFlow);
576
+ manager.setCurrentFlow(afterFlow);
577
+ flushSync();
578
+ expect(manager.moduleActions['inner_new']).toEqual({ action: 'added', pending: true });
579
+ // Accept the added nested module
580
+ manager.acceptModule('inner_new');
581
+ flushSync();
582
+ // Verify 'inner_new' is inserted at beginning inside the loop
583
+ const beforeModules = manager.beforeFlow?.value.modules ?? [];
584
+ expect(beforeModules).toHaveLength(1);
585
+ const loopModule = beforeModules[0];
586
+ const loopModules = loopModule.value.modules;
587
+ expectModuleOrder(loopModules, ['inner_new', 'inner_a', 'inner_b']);
588
+ });
589
+ cleanup();
590
+ });
591
+ it('reject removed module inside loop - restores at correct nested position', () => {
592
+ const cleanup = $effect.root(() => {
593
+ const manager = createFlowDiffManager({ testMode: true });
594
+ const innerA = createRawScriptModule('inner_a', 'inner a');
595
+ const innerB = createRawScriptModule('inner_b', 'inner b');
596
+ const innerC = createRawScriptModule('inner_c', 'inner c');
597
+ // beforeFlow: loop with [inner_a, inner_b, inner_c]
598
+ // afterFlow: loop with [inner_a, inner_c] - inner_b removed
599
+ const beforeLoop = createForloopModule('loop1', [
600
+ deepClone(innerA),
601
+ deepClone(innerB),
602
+ deepClone(innerC)
603
+ ]);
604
+ const afterLoop = createForloopModule('loop1', [deepClone(innerA), deepClone(innerC)]);
605
+ const beforeFlow = createExtendedOpenFlow({ modules: [beforeLoop] });
606
+ const currentFlowValue = { modules: [afterLoop] };
607
+ const flowStore = createFlowStore(createExtendedOpenFlow(currentFlowValue));
608
+ manager.setEditMode(true);
609
+ manager.setBeforeFlow(beforeFlow);
610
+ manager.setCurrentFlow(flowStore.val.value);
611
+ flushSync();
612
+ expect(manager.moduleActions['inner_b']).toEqual({ action: 'removed', pending: true });
613
+ // Reject the removal - should restore 'inner_b' at original nested position
614
+ manager.rejectModule('inner_b', flowStore);
615
+ flushSync();
616
+ // Verify 'inner_b' is restored at the middle position inside the loop
617
+ const currentModules = flowStore.val.value.modules;
618
+ expect(currentModules).toHaveLength(1);
619
+ const loopModule = currentModules[0];
620
+ const loopModules = loopModule.value.modules;
621
+ expectModuleOrder(loopModules, ['inner_a', 'inner_b', 'inner_c']);
622
+ });
623
+ cleanup();
624
+ });
625
+ it('accept multiple added modules at different positions', () => {
626
+ const cleanup = $effect.root(() => {
627
+ const manager = createFlowDiffManager({ testMode: true });
628
+ const moduleA = createRawScriptModule('a', 'content-a');
629
+ const moduleB = createRawScriptModule('b', 'content-b');
630
+ const moduleNew1 = createRawScriptModule('new1', 'new at start');
631
+ const moduleNew2 = createRawScriptModule('new2', 'new in middle');
632
+ const moduleNew3 = createRawScriptModule('new3', 'new at end');
633
+ // beforeFlow: [a, b]
634
+ // afterFlow: [new1, a, new2, b, new3]
635
+ const beforeFlow = createExtendedOpenFlow({
636
+ modules: [deepClone(moduleA), deepClone(moduleB)]
637
+ });
638
+ const afterFlow = {
639
+ modules: [
640
+ deepClone(moduleNew1),
641
+ deepClone(moduleA),
642
+ deepClone(moduleNew2),
643
+ deepClone(moduleB),
644
+ deepClone(moduleNew3)
645
+ ]
646
+ };
647
+ manager.setEditMode(true);
648
+ manager.setBeforeFlow(beforeFlow);
649
+ manager.setCurrentFlow(afterFlow);
650
+ flushSync();
651
+ // Accept all added modules one by one
652
+ manager.acceptModule('new1');
653
+ flushSync();
654
+ manager.acceptModule('new2');
655
+ flushSync();
656
+ manager.acceptModule('new3');
657
+ flushSync();
658
+ // Verify all modules are at correct positions
659
+ const beforeModules = manager.beforeFlow?.value.modules ?? [];
660
+ expectModuleOrder(beforeModules, ['new1', 'a', 'new2', 'b', 'new3']);
661
+ });
662
+ cleanup();
663
+ });
664
+ it('reject multiple removed modules - restores all at correct positions', () => {
665
+ const cleanup = $effect.root(() => {
666
+ const manager = createFlowDiffManager({ testMode: true });
667
+ const moduleA = createRawScriptModule('a', 'first');
668
+ const moduleB = createRawScriptModule('b', 'second');
669
+ const moduleC = createRawScriptModule('c', 'third');
670
+ const moduleD = createRawScriptModule('d', 'fourth');
671
+ const moduleE = createRawScriptModule('e', 'fifth');
672
+ // beforeFlow: [a, b, c, d, e]
673
+ // afterFlow: [b, d] - a, c, e removed
674
+ const beforeFlow = createExtendedOpenFlow({
675
+ modules: [
676
+ deepClone(moduleA),
677
+ deepClone(moduleB),
678
+ deepClone(moduleC),
679
+ deepClone(moduleD),
680
+ deepClone(moduleE)
681
+ ]
682
+ });
683
+ const currentFlowValue = {
684
+ modules: [deepClone(moduleB), deepClone(moduleD)]
685
+ };
686
+ const flowStore = createFlowStore(createExtendedOpenFlow(currentFlowValue));
687
+ manager.setEditMode(true);
688
+ manager.setBeforeFlow(beforeFlow);
689
+ manager.setCurrentFlow(flowStore.val.value);
690
+ flushSync();
691
+ // Reject removals one by one
692
+ manager.rejectModule('a', flowStore);
693
+ flushSync();
694
+ manager.rejectModule('c', flowStore);
695
+ flushSync();
696
+ manager.rejectModule('e', flowStore);
697
+ flushSync();
698
+ // Verify all modules are restored at correct positions
699
+ const currentModules = flowStore.val.value.modules;
700
+ expectModuleOrder(currentModules, ['a', 'b', 'c', 'd', 'e']);
701
+ });
702
+ cleanup();
703
+ });
704
+ });
705
+ describe('branch operations', () => {
706
+ describe('branchone', () => {
707
+ it('accept added module in default branch - inserts at correct position', () => {
708
+ const cleanup = $effect.root(() => {
709
+ const manager = createFlowDiffManager({ testMode: true });
710
+ const defaultA = createRawScriptModule('default_a', 'default step a');
711
+ const defaultB = createRawScriptModule('default_b', 'default step b');
712
+ // beforeFlow: branch with [default_a] in default
713
+ // afterFlow: branch with [default_a, default_b] in default
714
+ const beforeBranch = createBranchOneModule('branch1', [deepClone(defaultA)], []);
715
+ const afterBranch = createBranchOneModule('branch1', [deepClone(defaultA), deepClone(defaultB)], []);
716
+ const beforeFlow = createExtendedOpenFlow({ modules: [beforeBranch] });
717
+ const afterFlow = { modules: [afterBranch] };
718
+ manager.setEditMode(true);
719
+ manager.setBeforeFlow(beforeFlow);
720
+ manager.setCurrentFlow(afterFlow);
721
+ flushSync();
722
+ expect(manager.moduleActions['default_b']).toEqual({ action: 'added', pending: true });
723
+ // Accept the added module
724
+ manager.acceptModule('default_b');
725
+ flushSync();
726
+ // Verify 'default_b' is inserted at correct position in default branch
727
+ const beforeModules = manager.beforeFlow?.value.modules ?? [];
728
+ expect(beforeModules).toHaveLength(1);
729
+ const branchModule = beforeModules[0];
730
+ const branchDefault = branchModule.value.default;
731
+ expectModuleOrder(branchDefault, ['default_a', 'default_b']);
732
+ });
733
+ cleanup();
734
+ });
735
+ it('reject removed module from default branch - restores at correct position', () => {
736
+ const cleanup = $effect.root(() => {
737
+ const manager = createFlowDiffManager({ testMode: true });
738
+ const defaultA = createRawScriptModule('default_a', 'default step a');
739
+ const defaultB = createRawScriptModule('default_b', 'default step b');
740
+ const defaultC = createRawScriptModule('default_c', 'default step c');
741
+ // beforeFlow: branch with [default_a, default_b, default_c] in default
742
+ // afterFlow: branch with [default_a, default_c] in default - default_b removed
743
+ const beforeBranch = createBranchOneModule('branch1', [deepClone(defaultA), deepClone(defaultB), deepClone(defaultC)], []);
744
+ const afterBranch = createBranchOneModule('branch1', [deepClone(defaultA), deepClone(defaultC)], []);
745
+ const beforeFlow = createExtendedOpenFlow({ modules: [beforeBranch] });
746
+ const currentFlowValue = { modules: [afterBranch] };
747
+ const flowStore = createFlowStore(createExtendedOpenFlow(currentFlowValue));
748
+ manager.setEditMode(true);
749
+ manager.setBeforeFlow(beforeFlow);
750
+ manager.setCurrentFlow(flowStore.val.value);
751
+ flushSync();
752
+ expect(manager.moduleActions['default_b']).toEqual({ action: 'removed', pending: true });
753
+ // Reject the removal - should restore 'default_b' at original position
754
+ manager.rejectModule('default_b', flowStore);
755
+ flushSync();
756
+ // Verify 'default_b' is restored at the middle position in default branch
757
+ const currentModules = flowStore.val.value.modules;
758
+ expect(currentModules).toHaveLength(1);
759
+ const branchModule = currentModules[0];
760
+ const branchDefault = branchModule.value.default;
761
+ expectModuleOrder(branchDefault, ['default_a', 'default_b', 'default_c']);
762
+ });
763
+ cleanup();
764
+ });
765
+ it('accept added module in conditional branch - inserts at correct position', () => {
766
+ const cleanup = $effect.root(() => {
767
+ const manager = createFlowDiffManager({ testMode: true });
768
+ const branchModuleA = createRawScriptModule('branch_a', 'branch step a');
769
+ const branchModuleB = createRawScriptModule('branch_b', 'branch step b');
770
+ // beforeFlow: branch with [branch_a] in conditional branch
771
+ // afterFlow: branch with [branch_a, branch_b] in conditional branch
772
+ const beforeBranch = createBranchOneModule('branch1', [], [{ expr: 'x > 0', modules: [deepClone(branchModuleA)] }]);
773
+ const afterBranch = createBranchOneModule('branch1', [], [{ expr: 'x > 0', modules: [deepClone(branchModuleA), deepClone(branchModuleB)] }]);
774
+ const beforeFlow = createExtendedOpenFlow({ modules: [beforeBranch] });
775
+ const afterFlow = { modules: [afterBranch] };
776
+ manager.setEditMode(true);
777
+ manager.setBeforeFlow(beforeFlow);
778
+ manager.setCurrentFlow(afterFlow);
779
+ flushSync();
780
+ expect(manager.moduleActions['branch_b']).toEqual({ action: 'added', pending: true });
781
+ // Accept the added module
782
+ manager.acceptModule('branch_b');
783
+ flushSync();
784
+ // Verify 'branch_b' is inserted in the conditional branch
785
+ const beforeModules = manager.beforeFlow?.value.modules ?? [];
786
+ expect(beforeModules).toHaveLength(1);
787
+ const branchModule = beforeModules[0];
788
+ const branches = branchModule.value.branches;
789
+ expect(branches).toHaveLength(1);
790
+ expectModuleOrder(branches[0].modules, ['branch_a', 'branch_b']);
791
+ });
792
+ cleanup();
793
+ });
794
+ it('reject removed module from conditional branch - restores at correct position', () => {
795
+ const cleanup = $effect.root(() => {
796
+ const manager = createFlowDiffManager({ testMode: true });
797
+ const branchModuleA = createRawScriptModule('branch_a', 'branch step a');
798
+ const branchModuleB = createRawScriptModule('branch_b', 'branch step b');
799
+ // beforeFlow: branch with [branch_a, branch_b] in conditional branch
800
+ // afterFlow: branch with [branch_a] in conditional branch - branch_b removed
801
+ const beforeBranch = createBranchOneModule('branch1', [], [{ expr: 'x > 0', modules: [deepClone(branchModuleA), deepClone(branchModuleB)] }]);
802
+ const afterBranch = createBranchOneModule('branch1', [], [{ expr: 'x > 0', modules: [deepClone(branchModuleA)] }]);
803
+ const beforeFlow = createExtendedOpenFlow({ modules: [beforeBranch] });
804
+ const currentFlowValue = { modules: [afterBranch] };
805
+ const flowStore = createFlowStore(createExtendedOpenFlow(currentFlowValue));
806
+ manager.setEditMode(true);
807
+ manager.setBeforeFlow(beforeFlow);
808
+ manager.setCurrentFlow(flowStore.val.value);
809
+ flushSync();
810
+ expect(manager.moduleActions['branch_b']).toEqual({ action: 'removed', pending: true });
811
+ // Reject the removal
812
+ manager.rejectModule('branch_b', flowStore);
813
+ flushSync();
814
+ // Verify 'branch_b' is restored in the conditional branch
815
+ const currentModules = flowStore.val.value.modules;
816
+ expect(currentModules).toHaveLength(1);
817
+ const branchModule = currentModules[0];
818
+ const branches = branchModule.value.branches;
819
+ expect(branches).toHaveLength(1);
820
+ expectModuleOrder(branches[0].modules, ['branch_a', 'branch_b']);
821
+ });
822
+ cleanup();
823
+ });
824
+ it('accept modified module in branch - updates content correctly', () => {
825
+ const cleanup = $effect.root(() => {
826
+ const manager = createFlowDiffManager({ testMode: true });
827
+ const branchModuleBefore = createRawScriptModule('branch_a', 'original content');
828
+ const branchModuleAfter = createRawScriptModule('branch_a', 'modified content');
829
+ // beforeFlow: branch with original module
830
+ // afterFlow: branch with modified module
831
+ const beforeBranch = createBranchOneModule('branch1', [deepClone(branchModuleBefore)], []);
832
+ const afterBranch = createBranchOneModule('branch1', [deepClone(branchModuleAfter)], []);
833
+ const beforeFlow = createExtendedOpenFlow({ modules: [beforeBranch] });
834
+ const afterFlow = { modules: [afterBranch] };
835
+ manager.setEditMode(true);
836
+ manager.setBeforeFlow(beforeFlow);
837
+ manager.setCurrentFlow(afterFlow);
838
+ flushSync();
839
+ expect(manager.moduleActions['branch_a']).toEqual({ action: 'modified', pending: true });
840
+ // Accept the modification
841
+ manager.acceptModule('branch_a');
842
+ flushSync();
843
+ // Verify content is updated
844
+ const beforeModules = manager.beforeFlow?.value.modules ?? [];
845
+ const branchModule = beforeModules[0];
846
+ const branchDefault = branchModule.value.default;
847
+ const moduleA = branchDefault.find((m) => m.id === 'branch_a');
848
+ expect((moduleA?.value).content).toBe('modified content');
849
+ });
850
+ cleanup();
851
+ });
852
+ it('reject entire conditional branch removal - restores the branch with its modules', () => {
853
+ const cleanup = $effect.root(() => {
854
+ const manager = createFlowDiffManager({ testMode: true });
855
+ const defaultModule = createRawScriptModule('default_mod', 'default');
856
+ const branch1ModuleA = createRawScriptModule('b1_a', 'branch 1 a');
857
+ const branch2ModuleA = createRawScriptModule('b2_a', 'branch 2 a');
858
+ const branch2ModuleB = createRawScriptModule('b2_b', 'branch 2 b');
859
+ // beforeFlow: branch with 2 conditional branches
860
+ // afterFlow: branch with only 1 conditional branch - second branch removed
861
+ const beforeBranch = createBranchOneModule('branch1', [deepClone(defaultModule)], [
862
+ { expr: 'x > 0', modules: [deepClone(branch1ModuleA)] },
863
+ { expr: 'x < 0', modules: [deepClone(branch2ModuleA), deepClone(branch2ModuleB)] }
864
+ ]);
865
+ const afterBranch = createBranchOneModule('branch1', [deepClone(defaultModule)], [{ expr: 'x > 0', modules: [deepClone(branch1ModuleA)] }]);
866
+ const beforeFlow = createExtendedOpenFlow({ modules: [beforeBranch] });
867
+ const currentFlowValue = { modules: [afterBranch] };
868
+ const flowStore = createFlowStore(createExtendedOpenFlow(currentFlowValue));
869
+ manager.setEditMode(true);
870
+ manager.setBeforeFlow(beforeFlow);
871
+ manager.setCurrentFlow(flowStore.val.value);
872
+ flushSync();
873
+ // Both modules from the removed branch should be marked as removed
874
+ expect(manager.moduleActions['b2_a']).toEqual({ action: 'removed', pending: true });
875
+ expect(manager.moduleActions['b2_b']).toEqual({ action: 'removed', pending: true });
876
+ // Reject both removals to restore the entire branch
877
+ manager.rejectModule('b2_a', flowStore);
878
+ flushSync();
879
+ manager.rejectModule('b2_b', flowStore);
880
+ flushSync();
881
+ // Verify the second branch is restored with both modules
882
+ const currentModules = flowStore.val.value.modules;
883
+ expect(currentModules).toHaveLength(1);
884
+ const branchModule = currentModules[0];
885
+ const branches = branchModule.value.branches;
886
+ // Should have 2 branches again
887
+ expect(branches).toHaveLength(2);
888
+ expectModuleOrder(branches[0].modules, ['b1_a']);
889
+ expectModuleOrder(branches[1].modules, ['b2_a', 'b2_b']);
890
+ });
891
+ cleanup();
892
+ });
893
+ });
894
+ describe('branchall', () => {
895
+ it('accept added module in parallel branch - inserts at correct position', () => {
896
+ const cleanup = $effect.root(() => {
897
+ const manager = createFlowDiffManager({ testMode: true });
898
+ const parallel1A = createRawScriptModule('p1_a', 'parallel 1 a');
899
+ const parallel2A = createRawScriptModule('p2_a', 'parallel 2 a');
900
+ const parallel2B = createRawScriptModule('p2_b', 'parallel 2 b - new');
901
+ // beforeFlow: branchall with [p1_a] and [p2_a]
902
+ // afterFlow: branchall with [p1_a] and [p2_a, p2_b]
903
+ const beforeBranchAll = createBranchAllModule('branchall1', [
904
+ { modules: [deepClone(parallel1A)] },
905
+ { modules: [deepClone(parallel2A)] }
906
+ ]);
907
+ const afterBranchAll = createBranchAllModule('branchall1', [
908
+ { modules: [deepClone(parallel1A)] },
909
+ { modules: [deepClone(parallel2A), deepClone(parallel2B)] }
910
+ ]);
911
+ const beforeFlow = createExtendedOpenFlow({ modules: [beforeBranchAll] });
912
+ const afterFlow = { modules: [afterBranchAll] };
913
+ manager.setEditMode(true);
914
+ manager.setBeforeFlow(beforeFlow);
915
+ manager.setCurrentFlow(afterFlow);
916
+ flushSync();
917
+ expect(manager.moduleActions['p2_b']).toEqual({ action: 'added', pending: true });
918
+ // Accept the added module
919
+ manager.acceptModule('p2_b');
920
+ flushSync();
921
+ // Verify 'p2_b' is inserted in the second parallel branch
922
+ const beforeModules = manager.beforeFlow?.value.modules ?? [];
923
+ expect(beforeModules).toHaveLength(1);
924
+ const branchAllModule = beforeModules[0];
925
+ const branches = branchAllModule.value.branches;
926
+ expect(branches).toHaveLength(2);
927
+ expectModuleOrder(branches[0].modules, ['p1_a']);
928
+ expectModuleOrder(branches[1].modules, ['p2_a', 'p2_b']);
929
+ });
930
+ cleanup();
931
+ });
932
+ it('reject removed module from parallel branch - restores at correct position', () => {
933
+ const cleanup = $effect.root(() => {
934
+ const manager = createFlowDiffManager({ testMode: true });
935
+ const parallel1A = createRawScriptModule('p1_a', 'parallel 1 a');
936
+ const parallel1B = createRawScriptModule('p1_b', 'parallel 1 b');
937
+ const parallel2A = createRawScriptModule('p2_a', 'parallel 2 a');
938
+ // beforeFlow: branchall with [p1_a, p1_b] and [p2_a]
939
+ // afterFlow: branchall with [p1_a] and [p2_a] - p1_b removed
940
+ const beforeBranchAll = createBranchAllModule('branchall1', [
941
+ { modules: [deepClone(parallel1A), deepClone(parallel1B)] },
942
+ { modules: [deepClone(parallel2A)] }
943
+ ]);
944
+ const afterBranchAll = createBranchAllModule('branchall1', [
945
+ { modules: [deepClone(parallel1A)] },
946
+ { modules: [deepClone(parallel2A)] }
947
+ ]);
948
+ const beforeFlow = createExtendedOpenFlow({ modules: [beforeBranchAll] });
949
+ const currentFlowValue = { modules: [afterBranchAll] };
950
+ const flowStore = createFlowStore(createExtendedOpenFlow(currentFlowValue));
951
+ manager.setEditMode(true);
952
+ manager.setBeforeFlow(beforeFlow);
953
+ manager.setCurrentFlow(flowStore.val.value);
954
+ flushSync();
955
+ expect(manager.moduleActions['p1_b']).toEqual({ action: 'removed', pending: true });
956
+ // Reject the removal
957
+ manager.rejectModule('p1_b', flowStore);
958
+ flushSync();
959
+ // Verify 'p1_b' is restored in the first parallel branch
960
+ const currentModules = flowStore.val.value.modules;
961
+ expect(currentModules).toHaveLength(1);
962
+ const branchAllModule = currentModules[0];
963
+ const branches = branchAllModule.value.branches;
964
+ expect(branches).toHaveLength(2);
965
+ expectModuleOrder(branches[0].modules, ['p1_a', 'p1_b']);
966
+ expectModuleOrder(branches[1].modules, ['p2_a']);
967
+ });
968
+ cleanup();
969
+ });
970
+ it('reject entire parallel branch removal - restores the branch with its modules', () => {
971
+ const cleanup = $effect.root(() => {
972
+ const manager = createFlowDiffManager({ testMode: true });
973
+ const parallel1A = createRawScriptModule('p1_a', 'parallel 1 a');
974
+ const parallel1B = createRawScriptModule('p1_b', 'parallel 1 b');
975
+ const parallel2A = createRawScriptModule('p2_a', 'parallel 2 a');
976
+ // beforeFlow: branchall with 2 parallel branches
977
+ // afterFlow: branchall with only 1 parallel branch - second branch removed
978
+ const beforeBranchAll = createBranchAllModule('branchall1', [
979
+ { modules: [deepClone(parallel1A), deepClone(parallel1B)] },
980
+ { modules: [deepClone(parallel2A)] }
981
+ ]);
982
+ const afterBranchAll = createBranchAllModule('branchall1', [
983
+ { modules: [deepClone(parallel1A), deepClone(parallel1B)] }
984
+ ]);
985
+ const beforeFlow = createExtendedOpenFlow({ modules: [beforeBranchAll] });
986
+ const currentFlowValue = { modules: [afterBranchAll] };
987
+ const flowStore = createFlowStore(createExtendedOpenFlow(currentFlowValue));
988
+ manager.setEditMode(true);
989
+ manager.setBeforeFlow(beforeFlow);
990
+ manager.setCurrentFlow(flowStore.val.value);
991
+ flushSync();
992
+ // Module from the removed branch should be marked as removed
993
+ expect(manager.moduleActions['p2_a']).toEqual({ action: 'removed', pending: true });
994
+ // Reject the removal to restore the entire branch
995
+ manager.rejectModule('p2_a', flowStore);
996
+ flushSync();
997
+ // Verify the second parallel branch is restored
998
+ const currentModules = flowStore.val.value.modules;
999
+ expect(currentModules).toHaveLength(1);
1000
+ const branchAllModule = currentModules[0];
1001
+ const branches = branchAllModule.value.branches;
1002
+ // Should have 2 branches again
1003
+ expect(branches).toHaveLength(2);
1004
+ expectModuleOrder(branches[0].modules, ['p1_a', 'p1_b']);
1005
+ expectModuleOrder(branches[1].modules, ['p2_a']);
1006
+ });
1007
+ cleanup();
1008
+ });
1009
+ });
1010
+ });
1011
+ describe('module movement', () => {
1012
+ it('accept module moved from root to loop - accepts the addition in loop', () => {
1013
+ const cleanup = $effect.root(() => {
1014
+ const manager = createFlowDiffManager({ testMode: true });
1015
+ const moduleA = createRawScriptModule('a', 'content-a');
1016
+ const moduleB = createRawScriptModule('b', 'content-b');
1017
+ const emptyLoop = createForloopModule('loop1', []);
1018
+ const loopWithB = createForloopModule('loop1', [deepClone(moduleB)]);
1019
+ // beforeFlow: [a, b, loop(empty)]
1020
+ // afterFlow: [a, loop(b)]
1021
+ const beforeFlow = createExtendedOpenFlow({
1022
+ modules: [deepClone(moduleA), deepClone(moduleB), deepClone(emptyLoop)]
1023
+ });
1024
+ const afterFlow = {
1025
+ modules: [deepClone(moduleA), deepClone(loopWithB)]
1026
+ };
1027
+ manager.setEditMode(true);
1028
+ manager.setBeforeFlow(beforeFlow);
1029
+ manager.setCurrentFlow(afterFlow);
1030
+ flushSync();
1031
+ // 'b' should be detected as moved (removed from root, added in loop)
1032
+ expect(manager.moduleActions['b']).toEqual({ action: 'added', pending: true });
1033
+ expect(manager.moduleActions['old__b']).toEqual({ action: 'removed', pending: true });
1034
+ // Accept the added 'b' in loop
1035
+ manager.acceptModule('b');
1036
+ flushSync();
1037
+ // After accepting, beforeFlow should have 'b' inside the loop
1038
+ const beforeModules = manager.beforeFlow?.value.modules ?? [];
1039
+ const loopModule = beforeModules.find((m) => m.id === 'loop1');
1040
+ const loopModules = (loopModule?.value).modules;
1041
+ expect(loopModules.some((m) => m.id === 'b')).toBe(true);
1042
+ });
1043
+ cleanup();
1044
+ });
1045
+ it('accept module moved from root to loop - accepts the removal at root', () => {
1046
+ const cleanup = $effect.root(() => {
1047
+ const manager = createFlowDiffManager({ testMode: true });
1048
+ const moduleA = createRawScriptModule('a', 'content-a');
1049
+ const moduleB = createRawScriptModule('b', 'content-b');
1050
+ const emptyLoop = createForloopModule('loop1', []);
1051
+ const loopWithB = createForloopModule('loop1', [deepClone(moduleB)]);
1052
+ // beforeFlow: [a, b, loop(empty)]
1053
+ // afterFlow: [a, loop(b)]
1054
+ const beforeFlow = createExtendedOpenFlow({
1055
+ modules: [deepClone(moduleA), deepClone(moduleB), deepClone(emptyLoop)]
1056
+ });
1057
+ const afterFlow = {
1058
+ modules: [deepClone(moduleA), deepClone(loopWithB)]
1059
+ };
1060
+ manager.setEditMode(true);
1061
+ manager.setBeforeFlow(beforeFlow);
1062
+ manager.setCurrentFlow(afterFlow);
1063
+ flushSync();
1064
+ // Accept the removed 'old__b' at root
1065
+ manager.acceptModule('old__b');
1066
+ flushSync();
1067
+ // After accepting removal, 'b' should no longer be at root in beforeFlow
1068
+ const beforeModules = manager.beforeFlow?.value.modules ?? [];
1069
+ const rootIds = beforeModules.map((m) => m.id);
1070
+ expect(rootIds).not.toContain('b');
1071
+ });
1072
+ cleanup();
1073
+ });
1074
+ it('reject module moved from root to loop - rejects the addition', () => {
1075
+ const cleanup = $effect.root(() => {
1076
+ const manager = createFlowDiffManager({ testMode: true });
1077
+ const moduleA = createRawScriptModule('a', 'content-a');
1078
+ const moduleB = createRawScriptModule('b', 'content-b');
1079
+ const emptyLoop = createForloopModule('loop1', []);
1080
+ const loopWithB = createForloopModule('loop1', [deepClone(moduleB)]);
1081
+ // beforeFlow: [a, b, loop(empty)]
1082
+ const beforeFlow = createExtendedOpenFlow({
1083
+ modules: [deepClone(moduleA), deepClone(moduleB), deepClone(emptyLoop)]
1084
+ });
1085
+ // currentFlow (flowStore): [a, loop(b)]
1086
+ const currentFlowValue = {
1087
+ modules: [deepClone(moduleA), deepClone(loopWithB)]
1088
+ };
1089
+ const flowStore = createFlowStore(createExtendedOpenFlow(currentFlowValue));
1090
+ manager.setEditMode(true);
1091
+ manager.setBeforeFlow(beforeFlow);
1092
+ manager.setCurrentFlow(flowStore.val.value);
1093
+ flushSync();
1094
+ // Reject the added 'b' in loop - should remove it from flowStore
1095
+ manager.rejectModule('b', flowStore);
1096
+ flushSync();
1097
+ // 'b' should no longer be in the loop in flowStore
1098
+ const currentModules = flowStore.val.value.modules;
1099
+ const loopModule = currentModules.find((m) => m.id === 'loop1');
1100
+ const loopModules = (loopModule?.value).modules;
1101
+ expect(loopModules.some((m) => m.id === 'b')).toBe(false);
1102
+ });
1103
+ cleanup();
1104
+ });
1105
+ it('reject module moved from root to loop - rejects the removal (restores at root)', () => {
1106
+ const cleanup = $effect.root(() => {
1107
+ const manager = createFlowDiffManager({ testMode: true });
1108
+ const moduleA = createRawScriptModule('a', 'content-a');
1109
+ const moduleB = createRawScriptModule('b', 'content-b');
1110
+ const emptyLoop = createForloopModule('loop1', []);
1111
+ const loopWithB = createForloopModule('loop1', [deepClone(moduleB)]);
1112
+ // beforeFlow: [a, b, loop(empty)]
1113
+ const beforeFlow = createExtendedOpenFlow({
1114
+ modules: [deepClone(moduleA), deepClone(moduleB), deepClone(emptyLoop)]
1115
+ });
1116
+ // currentFlow (flowStore): [a, loop(b)]
1117
+ const currentFlowValue = {
1118
+ modules: [deepClone(moduleA), deepClone(loopWithB)]
1119
+ };
1120
+ const flowStore = createFlowStore(createExtendedOpenFlow(currentFlowValue));
1121
+ manager.setEditMode(true);
1122
+ manager.setBeforeFlow(beforeFlow);
1123
+ manager.setCurrentFlow(flowStore.val.value);
1124
+ flushSync();
1125
+ // Reject the removed 'old__b' - restores original at root, renames new to 'new__b'
1126
+ manager.rejectModule('old__b', flowStore);
1127
+ flushSync();
1128
+ // 'b' should be restored at root level in flowStore
1129
+ const currentModules = flowStore.val.value.modules;
1130
+ const rootIds = currentModules.map((m) => m.id);
1131
+ expect(rootIds).toContain('b');
1132
+ // The module in the loop should now be 'new__b'
1133
+ const loopModule = currentModules.find((m) => m.id === 'loop1');
1134
+ const loopModules = (loopModule?.value).modules;
1135
+ expect(loopModules.some((m) => m.id === `${NEW_MODULE_PREFIX}b`)).toBe(true);
1136
+ });
1137
+ cleanup();
1138
+ });
1139
+ it('accept module moved between branches', () => {
1140
+ const cleanup = $effect.root(() => {
1141
+ const manager = createFlowDiffManager({ testMode: true });
1142
+ const moduleA = createRawScriptModule('a', 'step a');
1143
+ // beforeFlow: branch with 'a' in first conditional branch
1144
+ const beforeBranch = createBranchOneModule('branch1', [], [
1145
+ { expr: 'x > 0', modules: [deepClone(moduleA)] },
1146
+ { expr: 'x < 0', modules: [] }
1147
+ ]);
1148
+ // afterFlow: branch with 'a' in second conditional branch
1149
+ const afterBranch = createBranchOneModule('branch1', [], [
1150
+ { expr: 'x > 0', modules: [] },
1151
+ { expr: 'x < 0', modules: [deepClone(moduleA)] }
1152
+ ]);
1153
+ const beforeFlow = createExtendedOpenFlow({ modules: [beforeBranch] });
1154
+ const afterFlow = { modules: [afterBranch] };
1155
+ manager.setEditMode(true);
1156
+ manager.setBeforeFlow(beforeFlow);
1157
+ manager.setCurrentFlow(afterFlow);
1158
+ flushSync();
1159
+ // 'a' is moved - should be removed from branch 0 and added to branch 1
1160
+ expect(manager.moduleActions['a']).toEqual({ action: 'added', pending: true });
1161
+ expect(manager.moduleActions['old__a']).toEqual({ action: 'removed', pending: true });
1162
+ // Accept both the addition and removal
1163
+ manager.acceptModule('a');
1164
+ flushSync();
1165
+ manager.acceptModule('old__a');
1166
+ flushSync();
1167
+ // beforeFlow should now have 'a' in branch 1, not in branch 0
1168
+ const beforeModules = manager.beforeFlow?.value.modules ?? [];
1169
+ const branchModule = beforeModules.find((m) => m.id === 'branch1');
1170
+ const branches = (branchModule?.value).branches;
1171
+ expect(branches[0].modules.some((m) => m.id === 'a')).toBe(false);
1172
+ expect(branches[1].modules.some((m) => m.id === 'a')).toBe(true);
1173
+ });
1174
+ cleanup();
1175
+ });
1176
+ it('reject module moved between branches - restores original position', () => {
1177
+ const cleanup = $effect.root(() => {
1178
+ const manager = createFlowDiffManager({ testMode: true });
1179
+ const moduleA = createRawScriptModule('a', 'step a');
1180
+ // beforeFlow: branch with 'a' in first conditional branch
1181
+ const beforeBranch = createBranchOneModule('branch1', [], [
1182
+ { expr: 'x > 0', modules: [deepClone(moduleA)] },
1183
+ { expr: 'x < 0', modules: [] }
1184
+ ]);
1185
+ // afterFlow: branch with 'a' in second conditional branch
1186
+ const afterBranch = createBranchOneModule('branch1', [], [
1187
+ { expr: 'x > 0', modules: [] },
1188
+ { expr: 'x < 0', modules: [deepClone(moduleA)] }
1189
+ ]);
1190
+ const beforeFlow = createExtendedOpenFlow({ modules: [beforeBranch] });
1191
+ const currentFlowValue = { modules: [afterBranch] };
1192
+ const flowStore = createFlowStore(createExtendedOpenFlow(currentFlowValue));
1193
+ manager.setEditMode(true);
1194
+ manager.setBeforeFlow(beforeFlow);
1195
+ manager.setCurrentFlow(flowStore.val.value);
1196
+ flushSync();
1197
+ // Reject the removal from branch 0 - restores original 'a', renames new to 'new__a'
1198
+ manager.rejectModule('old__a', flowStore);
1199
+ flushSync();
1200
+ // Accept the addition in branch 1
1201
+ manager.acceptModule('a');
1202
+ flushSync();
1203
+ // flowStore should now have 'a' in branch 0 (original), 'new__a' in branch 1 (renamed new)
1204
+ const currentModules = flowStore.val.value.modules;
1205
+ const branchModule = currentModules.find((m) => m.id === 'branch1');
1206
+ const branches = (branchModule?.value).branches;
1207
+ expect(branches[0].modules.some((m) => m.id === 'a')).toBe(true);
1208
+ expect(branches[1].modules.some((m) => m.id === `${NEW_MODULE_PREFIX}a`)).toBe(true);
1209
+ });
1210
+ cleanup();
1211
+ });
1212
+ it('prevents bug when rejecting moved module removal (branchall scenario)', () => {
1213
+ const cleanup = $effect.root(() => {
1214
+ const manager = createFlowDiffManager({ testMode: true });
1215
+ const moduleR = createRawScriptModule('r', 'module r content');
1216
+ // beforeFlow: 'r' in branch 2
1217
+ const beforeBranchAll = createBranchAllModule('branchall1', [
1218
+ { modules: [] }, // branch 0
1219
+ { modules: [] }, // branch 1
1220
+ { modules: [deepClone(moduleR)] } // branch 2
1221
+ ]);
1222
+ // currentFlow: 'r' moved to branch 0
1223
+ const afterBranchAll = createBranchAllModule('branchall1', [
1224
+ { modules: [deepClone(moduleR)] }, // branch 0
1225
+ { modules: [] }, // branch 1
1226
+ { modules: [] } // branch 2
1227
+ ]);
1228
+ const beforeFlow = createExtendedOpenFlow({ modules: [beforeBranchAll] });
1229
+ const currentFlowValue = { modules: [afterBranchAll] };
1230
+ const flowStore = createFlowStore(createExtendedOpenFlow(currentFlowValue));
1231
+ manager.setEditMode(true);
1232
+ manager.setBeforeFlow(beforeFlow);
1233
+ manager.setCurrentFlow(flowStore.val.value);
1234
+ flushSync();
1235
+ // Verify initial state: 'r' is added at branch 0, 'old__r' is removed from branch 2
1236
+ expect(manager.moduleActions['r']).toEqual({ action: 'added', pending: true });
1237
+ expect(manager.moduleActions['old__r']).toEqual({ action: 'removed', pending: true });
1238
+ // User rejects the removal - wants to keep module at original location (branch 2)
1239
+ manager.rejectModule('old__r', flowStore);
1240
+ flushSync();
1241
+ // After rejection, verify the current behavior:
1242
+ // 1. Original module should be restored at branch 2 with id 'r'
1243
+ // 2. New module at branch 0 should be renamed to 'new__r'
1244
+ const currentModules = flowStore.val.value.modules;
1245
+ const branchAllModule = currentModules.find((m) => m.id === 'branchall1');
1246
+ const branches = (branchAllModule?.value).branches;
1247
+ // Branch 0 should have 'new__r' (renamed new module)
1248
+ expect(branches[0].modules.some((m) => m.id === `${NEW_MODULE_PREFIX}r`)).toBe(true);
1249
+ // Branch 2 should have 'r' (restored original)
1250
+ expect(branches[2].modules.some((m) => m.id === 'r')).toBe(true);
1251
+ });
1252
+ cleanup();
1253
+ });
1254
+ });
1255
+ });