windmill-components 1.677.1 → 1.695.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 (552) hide show
  1. package/package/components/AppConnectInner.svelte +6 -0
  2. package/package/components/ArgInput.svelte +2 -0
  3. package/package/components/AutoscalingConfigEditor.svelte +18 -4
  4. package/package/components/CiTestResults.svelte +64 -0
  5. package/package/components/CiTestResults.svelte.d.ts +7 -0
  6. package/package/components/CompareWorkspaces.svelte +741 -484
  7. package/package/components/DBManager.svelte +35 -4
  8. package/package/components/DBManager.svelte.d.ts +2 -0
  9. package/package/components/DBManagerContent.svelte +3 -1
  10. package/package/components/DBManagerContent.svelte.d.ts +3 -0
  11. package/package/components/DBManagerDrawer.svelte +145 -3
  12. package/package/components/DBTableEditor.svelte +14 -4
  13. package/package/components/DatatablePicker.svelte +2 -5
  14. package/package/components/DatatableSchemaDiff.svelte +531 -0
  15. package/package/components/DatatableSchemaDiff.svelte.d.ts +29 -0
  16. package/package/components/DedicatedWorkersSelector.svelte +4 -2
  17. package/package/components/DefaultTagsInner.svelte +42 -2
  18. package/package/components/DeployWorkspaceDrawer.svelte +1 -1
  19. package/package/components/Dev.svelte +407 -74
  20. package/package/components/EditableSchemaForm.svelte +4 -0
  21. package/package/components/Editor.svelte +1 -1
  22. package/package/components/EditorBar.svelte +1 -1
  23. package/package/components/EditorBar.svelte.d.ts +1 -1
  24. package/package/components/ErrorOrRecoveryHandler.svelte +2 -2
  25. package/package/components/FlowPreviewContent.svelte +32 -30
  26. package/package/components/FlowRestartButton.svelte +143 -61
  27. package/package/components/FlowRestartButton.svelte.d.ts +37 -0
  28. package/package/components/FlowStatusViewer.svelte +15 -1
  29. package/package/components/FlowStatusViewer.svelte.d.ts +10 -2
  30. package/package/components/FlowStatusViewerInner.svelte +270 -222
  31. package/package/components/FlowStatusViewerInner.svelte.d.ts +6 -2
  32. package/package/components/FlowTimeline.svelte +1 -1
  33. package/package/components/FolderEditor.svelte +189 -4
  34. package/package/components/ForkConflictModal.svelte +57 -0
  35. package/package/components/ForkConflictModal.svelte.d.ts +3 -0
  36. package/package/components/ForkWorkspaceBanner.svelte +82 -11
  37. package/package/components/GitRepoViewer.svelte +251 -97
  38. package/package/components/GlobalUserOffboardingModal.svelte +293 -0
  39. package/package/components/GlobalUserOffboardingModal.svelte.d.ts +10 -0
  40. package/package/components/InputTransformSchemaForm.svelte +1 -1
  41. package/package/components/InstanceSettings.svelte +58 -19
  42. package/package/components/Login.svelte +133 -36
  43. package/package/components/Login.svelte.d.ts +1 -0
  44. package/package/components/ModuleTest.svelte +2 -1
  45. package/package/components/NoMainFuncBadge.svelte +1 -1
  46. package/package/components/OffboardItemsBox.svelte +56 -0
  47. package/package/components/OffboardItemsBox.svelte.d.ts +12 -0
  48. package/package/components/OffboardReassignControls.svelte +47 -0
  49. package/package/components/OffboardReassignControls.svelte.d.ts +20 -0
  50. package/package/components/OffboardWorkspaceSection.svelte +110 -0
  51. package/package/components/OffboardWorkspaceSection.svelte.d.ts +24 -0
  52. package/package/components/OnBehalfOfSelector.svelte +21 -3
  53. package/package/components/OnBehalfOfSelector.svelte.d.ts +7 -0
  54. package/package/components/Path.svelte +7 -1
  55. package/package/components/Path.svelte.d.ts +1 -1
  56. package/package/components/QueueAlerts.svelte +10 -10
  57. package/package/components/ResourcePicker.svelte +2 -2
  58. package/package/components/RunsPage.svelte +2 -1
  59. package/package/components/S3FilePickerInner.svelte +89 -89
  60. package/package/components/ScriptBuilder.svelte +52 -11
  61. package/package/components/ScriptEditor.svelte +19 -8
  62. package/package/components/ScriptEditor.svelte.d.ts +1 -1
  63. package/package/components/ShareModal.svelte +236 -98
  64. package/package/components/ShareModal.svelte.d.ts +1 -1
  65. package/package/components/SuperadminSettingsInner.svelte +362 -315
  66. package/package/components/UserOffboardingModal.svelte +238 -0
  67. package/package/components/UserOffboardingModal.svelte.d.ts +10 -0
  68. package/package/components/WorkspaceDeployLayout.svelte +3 -3
  69. package/package/components/WorkspaceDeployLayout.svelte.d.ts +1 -0
  70. package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +3 -0
  71. package/package/components/apps/components/helpers/executeRunnable.js +2 -1
  72. package/package/components/apps/editor/AppReportsDrawerInner.svelte +1 -1
  73. package/package/components/apps/editor/appPolicy.js +2 -1
  74. package/package/components/apps/editor/commonAppUtils.d.ts +3 -0
  75. package/package/components/apps/editor/inlineScriptsPanel/CacheTtlPopup.svelte +1 -1
  76. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +7 -0
  77. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +4 -2
  78. package/package/components/apps/editor/inlineScriptsPanel/TagPopup.svelte +49 -0
  79. package/package/components/apps/editor/inlineScriptsPanel/TagPopup.svelte.d.ts +9 -0
  80. package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +12 -0
  81. package/package/components/apps/inputType.d.ts +1 -0
  82. package/package/components/apps/sharedTypes.d.ts +1 -0
  83. package/package/components/assets/AssetsDropdownButton.svelte +1 -1
  84. package/package/components/auditLogs/AuditLogsFilters.svelte +8 -3
  85. package/package/components/common/confirmationModal/ConfirmationModal.svelte +1 -1
  86. package/package/components/common/fileUpload/S3ArgInput.svelte +12 -10
  87. package/package/components/common/fileUpload/S3ArgInput.svelte.d.ts +2 -0
  88. package/package/components/common/table/AppRow.svelte +3 -3
  89. package/package/components/common/table/FlowRow.svelte +3 -3
  90. package/package/components/common/table/RawAppRow.svelte +4 -4
  91. package/package/components/common/table/Row.svelte +6 -2
  92. package/package/components/common/table/ScriptRow.svelte +11 -3
  93. package/package/components/copilot/chat/AIChatDisplay.svelte +5 -36
  94. package/package/components/copilot/chat/AIChatInput.svelte +56 -47
  95. package/package/components/copilot/chat/AIChatManager.svelte.js +50 -48
  96. package/package/components/copilot/chat/ContextElementBadge.svelte +6 -4
  97. package/package/components/copilot/chat/anthropic.d.ts +7 -1
  98. package/package/components/copilot/chat/anthropic.js +5 -2
  99. package/package/components/copilot/chat/app/core.d.ts +12 -20
  100. package/package/components/copilot/chat/app/core.js +230 -159
  101. package/package/components/copilot/chat/app/core.test.js +417 -0
  102. package/package/components/copilot/chat/chatLoop.d.ts +3 -0
  103. package/package/components/copilot/chat/chatLoop.js +13 -5
  104. package/package/components/copilot/chat/context.js +44 -0
  105. package/package/components/copilot/chat/flow/FlowAIChat.svelte +57 -76
  106. package/package/components/copilot/chat/flow/core.d.ts +14 -3
  107. package/package/components/copilot/chat/flow/core.js +494 -116
  108. package/package/components/copilot/chat/flow/helperUtils.d.ts +22 -0
  109. package/package/components/copilot/chat/flow/helperUtils.js +100 -0
  110. package/package/components/copilot/chat/flow/helperUtils.test.js +231 -0
  111. package/package/components/copilot/chat/flow/inlineScriptsUtils.d.ts +5 -24
  112. package/package/components/copilot/chat/flow/inlineScriptsUtils.js +30 -55
  113. package/package/components/copilot/chat/flow/openFlow.json +1 -1
  114. package/package/components/copilot/chat/flow/openFlowZod.gen.js +24 -0
  115. package/package/components/copilot/chat/flow/utils.test.js +59 -0
  116. package/package/components/copilot/chat/openai-responses.d.ts +7 -1
  117. package/package/components/copilot/chat/openai-responses.js +5 -2
  118. package/package/components/copilot/chat/script/core.js +3 -0
  119. package/package/components/copilot/chat/shared.d.ts +7 -2
  120. package/package/components/copilot/chat/shared.js +116 -53
  121. package/package/components/copilot/chat/shared.test.d.ts +1 -0
  122. package/package/components/copilot/chat/shared.test.js +412 -0
  123. package/package/components/copilot/chat/tokenUsage.d.ts +23 -0
  124. package/package/components/copilot/chat/tokenUsage.js +42 -0
  125. package/package/components/copilot/chat/workspaceTools.d.ts +7 -0
  126. package/package/components/copilot/chat/workspaceTools.js +239 -0
  127. package/package/components/copilot/chat/workspaceToolsZod.gen.d.ts +1295 -0
  128. package/package/components/copilot/chat/workspaceToolsZod.gen.js +424 -0
  129. package/package/components/copilot/lib.d.ts +5 -1
  130. package/package/components/copilot/lib.js +24 -6
  131. package/package/components/copilot/lib.test.d.ts +1 -0
  132. package/package/components/copilot/lib.test.js +19 -0
  133. package/package/components/copilot/modelConfig.d.ts +3 -0
  134. package/package/components/copilot/modelConfig.js +10 -0
  135. package/package/components/deploymentRequest/DeploymentRequestPanel.svelte +337 -0
  136. package/package/components/deploymentRequest/DeploymentRequestPanel.svelte.d.ts +15 -0
  137. package/package/components/details/CopyableCodeBlock.svelte +18 -8
  138. package/package/components/details/CopyableCodeBlock.svelte.d.ts +1 -0
  139. package/package/components/flows/FlowAssetsHandler.svelte +19 -21
  140. package/package/components/flows/FlowProgressBar.svelte +5 -2
  141. package/package/components/flows/agentToolTree.d.ts +17 -0
  142. package/package/components/flows/agentToolTree.js +114 -0
  143. package/package/components/flows/agentToolTree.test.d.ts +1 -0
  144. package/package/components/flows/agentToolTree.test.js +86 -0
  145. package/package/components/flows/agentToolUtils.d.ts +0 -5
  146. package/package/components/flows/agentToolUtils.js +0 -49
  147. package/package/components/flows/content/FlowLoop.svelte +7 -4
  148. package/package/components/flows/content/FlowModuleComponent.svelte +636 -599
  149. package/package/components/flows/content/FlowModuleDeleteAfterUse.svelte +15 -7
  150. package/package/components/flows/content/FlowSettings.svelte +29 -0
  151. package/package/components/flows/conversations/FlowChatManager.svelte.js +21 -10
  152. package/package/components/flows/dfs.d.ts +6 -2
  153. package/package/components/flows/dfs.js +19 -11
  154. package/package/components/flows/flowDeleteController.d.ts +32 -0
  155. package/package/components/flows/flowDeleteController.js +54 -0
  156. package/package/components/flows/flowDeleteController.test.d.ts +1 -0
  157. package/package/components/flows/flowDeleteController.test.js +121 -0
  158. package/package/components/flows/flowDeleteUtils.d.ts +48 -0
  159. package/package/components/flows/flowDeleteUtils.js +150 -0
  160. package/package/components/flows/flowDeleteUtils.test.d.ts +1 -0
  161. package/package/components/flows/flowDeleteUtils.test.js +131 -0
  162. package/package/components/flows/flowDiff.d.ts +2 -47
  163. package/package/components/flows/flowDiff.js +16 -293
  164. package/package/components/flows/flowDiff.testUtils.d.ts +8 -0
  165. package/package/components/flows/flowDiff.testUtils.js +26 -0
  166. package/package/components/flows/flowDiffManager.svelte.js +20 -75
  167. package/package/components/flows/flowDiffManager.svelte.test.js +103 -2
  168. package/package/components/flows/flowExplorer.d.ts +4 -0
  169. package/package/components/flows/flowExplorer.js +7 -30
  170. package/package/components/flows/flowState.d.ts +1 -0
  171. package/package/components/flows/flowStateUtils.svelte.js +11 -2
  172. package/package/components/flows/flowTree.d.ts +91 -0
  173. package/package/components/flows/flowTree.js +326 -0
  174. package/package/components/flows/flowTree.test.d.ts +1 -0
  175. package/package/components/flows/flowTree.test.js +236 -0
  176. package/package/components/flows/map/FlowJobsMenu.svelte +36 -30
  177. package/package/components/flows/map/FlowModuleSchemaItem.svelte +1 -1
  178. package/package/components/flows/map/FlowModuleSchemaMap.svelte +73 -229
  179. package/package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +1 -2
  180. package/package/components/flows/pickers/PickHubScriptQuick.svelte +2 -2
  181. package/package/components/flows/previousResults.js +13 -41
  182. package/package/components/flows/previousResults.test.d.ts +1 -0
  183. package/package/components/flows/previousResults.test.js +65 -0
  184. package/package/components/flows/propPicker/OutputPicker.svelte +2 -1
  185. package/package/components/flows/propPicker/OutputPickerInner.svelte +41 -4
  186. package/package/components/flows/propPicker/StepHistory.svelte +9 -1
  187. package/package/components/git_sync/GitSyncContext.svelte.js +11 -7
  188. package/package/components/git_sync/GitSyncRepositoryCard.svelte +2 -29
  189. package/package/components/git_sync/PullWorkspaceModal.svelte +6 -7
  190. package/package/components/graph/FlowGraphV2.svelte +8 -4
  191. package/package/components/graph/FlowGraphV2.svelte.d.ts +2 -0
  192. package/package/components/graph/groupedModulesProxy.svelte.d.ts +10 -0
  193. package/package/components/graph/groupedModulesProxy.svelte.js +17 -1
  194. package/package/components/graph/renderers/triggers/TriggersBadge.svelte +8 -2
  195. package/package/components/home/HomeConnectDrawer.svelte +125 -0
  196. package/package/components/home/HomeConnectDrawer.svelte.d.ts +5 -0
  197. package/package/components/home/deploy_ui.js +1 -1
  198. package/package/components/icons/AzureIcon.svelte +12 -25
  199. package/package/components/icons/AzureIcon.svelte.d.ts +3 -2
  200. package/package/components/icons/GithubIcon.svelte +4 -4
  201. package/package/components/icons/GithubIcon.svelte.d.ts +5 -2
  202. package/package/components/instanceSettings/ExternalJwtTokens.svelte +85 -0
  203. package/package/components/instanceSettings/ExternalJwtTokens.svelte.d.ts +12 -0
  204. package/package/components/instanceSettings/GhesAppSettings.svelte +17 -0
  205. package/package/components/instanceSettings/IndexerMemorySettings.svelte +56 -29
  206. package/package/components/instanceSettings/SecretBackendConfig.svelte +9 -2
  207. package/package/components/instanceSettings.d.ts +1 -0
  208. package/package/components/instanceSettings.js +66 -8
  209. package/package/components/mcp/McpScopeSelector.svelte +119 -9
  210. package/package/components/mcp/McpScopeSelector.svelte.d.ts +1 -0
  211. package/package/components/offboarding-utils.d.ts +11 -0
  212. package/package/components/offboarding-utils.js +102 -0
  213. package/package/components/progressBar/ProgressBar.svelte +9 -5
  214. package/package/components/progressBar/ProgressBar.svelte.d.ts +1 -0
  215. package/package/components/raw_apps/DeleteAfterUsePopup.svelte +52 -0
  216. package/package/components/raw_apps/DeleteAfterUsePopup.svelte.d.ts +9 -0
  217. package/package/components/raw_apps/RawAppBackgroundRunner.svelte +5 -1
  218. package/package/components/raw_apps/RawAppDataTableDrawer.svelte +1 -1
  219. package/package/components/raw_apps/RawAppEditor.svelte +186 -102
  220. package/package/components/raw_apps/RawAppEditorHeader.svelte +6 -1
  221. package/package/components/raw_apps/RawAppEditorHeader.svelte.d.ts +1 -0
  222. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +9 -3
  223. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +2 -1
  224. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +1 -0
  225. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte.d.ts +1 -0
  226. package/package/components/raw_apps/RawAppInputsSpecEditor.svelte +48 -5
  227. package/package/components/raw_apps/RawAppSharedUiDrawer.svelte +129 -0
  228. package/package/components/raw_apps/RawAppSharedUiDrawer.svelte.d.ts +5 -0
  229. package/package/components/raw_apps/RawAppSidebar.svelte +12 -0
  230. package/package/components/raw_apps/RawAppYamlEditor.svelte +81 -0
  231. package/package/components/raw_apps/RawAppYamlEditor.svelte.d.ts +20 -0
  232. package/package/components/raw_apps/dataTableRefUtils.d.ts +7 -0
  233. package/package/components/raw_apps/dataTableRefUtils.js +34 -0
  234. package/package/components/raw_apps/dataTableRefUtils.test.d.ts +1 -0
  235. package/package/components/raw_apps/dataTableRefUtils.test.js +29 -0
  236. package/package/components/raw_apps/datatableUtils.svelte.js +1 -1
  237. package/package/components/raw_apps/rawAppPolicy.d.ts +1 -0
  238. package/package/components/raw_apps/rawAppPolicy.js +17 -2
  239. package/package/components/resources/resourceTypesFilter.d.ts +19 -0
  240. package/package/components/resources/resourceTypesFilter.js +21 -0
  241. package/package/components/restartFromStepPath.d.ts +39 -0
  242. package/package/components/restartFromStepPath.js +89 -0
  243. package/package/components/runs/JobDetailFieldConfig.d.ts +1 -0
  244. package/package/components/runs/JobDetailFieldConfig.js +57 -10
  245. package/package/components/runs/JobDetailHeader.svelte +24 -3
  246. package/package/components/runs/runsFilter.d.ts +1 -1
  247. package/package/components/schema/FlowPropertyEditor.svelte +30 -1
  248. package/package/components/schema/FlowPropertyEditor.svelte.d.ts +5 -2
  249. package/package/components/script_builder.d.ts +1 -1
  250. package/package/components/search/GlobalSearchModal.svelte +8 -1
  251. package/package/components/select/Select.svelte +3 -2
  252. package/package/components/select/Select.svelte.d.ts +1 -0
  253. package/package/components/settings/CreateToken.svelte +91 -71
  254. package/package/components/settings/CreateToken.svelte.d.ts +3 -0
  255. package/package/components/settings/EditTokenScopesModal.svelte +57 -0
  256. package/package/components/settings/EditTokenScopesModal.svelte.d.ts +10 -0
  257. package/package/components/settings/ScopesPicker.svelte +43 -0
  258. package/package/components/settings/ScopesPicker.svelte.d.ts +11 -0
  259. package/package/components/settings/TokensTable.svelte +51 -15
  260. package/package/components/settings/WorkspaceUserSettings.svelte +34 -28
  261. package/package/components/sidebar/OperatorMenu.svelte +6 -0
  262. package/package/components/sidebar/SidebarContent.svelte +68 -2
  263. package/package/components/sidebar/WorkspaceMenu.svelte +8 -4
  264. package/package/components/triggers/AddTriggersButton.svelte +17 -0
  265. package/package/components/triggers/CaptureWrapper.svelte +19 -1
  266. package/package/components/triggers/PermissionedAsLine.svelte +37 -3
  267. package/package/components/triggers/PermissionedAsLine.svelte.d.ts +6 -0
  268. package/package/components/triggers/TriggerEditorToolbar.svelte.d.ts +1 -1
  269. package/package/components/triggers/TriggerModeToggle.svelte +36 -7
  270. package/package/components/triggers/TriggerModeToggle.svelte.d.ts +1 -1
  271. package/package/components/triggers/TriggerSuspendedJobsModal.svelte.d.ts +1 -1
  272. package/package/components/triggers/TriggersEditor.svelte +10 -2
  273. package/package/components/triggers/TriggersWrapper.svelte +20 -0
  274. package/package/components/triggers/azure/AzureCapture.svelte +41 -0
  275. package/package/components/triggers/azure/AzureCapture.svelte.d.ts +44 -0
  276. package/package/components/triggers/azure/AzureTriggerEditor.svelte +20 -0
  277. package/package/components/triggers/azure/AzureTriggerEditor.svelte.d.ts +9 -0
  278. package/package/components/triggers/azure/AzureTriggerEditorConfigSection.svelte +301 -0
  279. package/package/components/triggers/azure/AzureTriggerEditorConfigSection.svelte.d.ts +16 -0
  280. package/package/components/triggers/azure/AzureTriggerEditorInner.svelte +422 -0
  281. package/package/components/triggers/azure/AzureTriggerEditorInner.svelte.d.ts +25 -0
  282. package/package/components/triggers/azure/AzureTriggerPanel.svelte +55 -0
  283. package/package/components/triggers/azure/AzureTriggerPanel.svelte.d.ts +10 -0
  284. package/{dist/sharedUtils/components/triggers/kafka → package/components/triggers/azure}/utils.d.ts +1 -1
  285. package/package/components/triggers/azure/utils.js +56 -0
  286. package/package/components/triggers/email/EmailTriggerEditorInner.svelte +15 -11
  287. package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +22 -14
  288. package/package/components/triggers/http/RouteEditorConfigSection.svelte +15 -7
  289. package/package/components/triggers/http/RouteEditorInner.svelte +16 -14
  290. package/package/components/triggers/http/RoutesGenerator.svelte +6 -1
  291. package/package/components/triggers/http/RoutesPanel.svelte +1 -1
  292. package/package/components/triggers/http/utils.d.ts +1 -1
  293. package/package/components/triggers/http/utils.js +2 -2
  294. package/package/components/triggers/kafka/KafkaTriggerEditorInner.svelte +22 -14
  295. package/package/components/triggers/mqtt/MqttTriggerEditorInner.svelte +22 -14
  296. package/package/components/triggers/native/NativeTriggerEditor.svelte +3 -0
  297. package/package/components/triggers/native/services/github/GitHubTriggerForm.svelte +118 -0
  298. package/package/components/triggers/native/services/github/GitHubTriggerForm.svelte.d.ts +17 -0
  299. package/package/components/triggers/native/utils.js +14 -0
  300. package/package/components/triggers/nats/NatsTriggerEditor.svelte.d.ts +4 -3
  301. package/package/components/triggers/nats/NatsTriggerEditorInner.svelte +22 -14
  302. package/package/components/triggers/postgres/PostgresTriggerEditor.svelte.d.ts +4 -3
  303. package/package/components/triggers/postgres/PostgresTriggerEditorInner.svelte +22 -14
  304. package/package/components/triggers/schedules/ScheduleEditorInner.svelte +22 -14
  305. package/package/components/triggers/sqs/SqsTriggerEditor.svelte.d.ts +4 -3
  306. package/package/components/triggers/sqs/SqsTriggerEditorInner.svelte +22 -14
  307. package/package/components/triggers/triggers.svelte.d.ts +1 -0
  308. package/package/components/triggers/triggers.svelte.js +24 -1
  309. package/package/components/triggers/utils.js +47 -6
  310. package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +22 -14
  311. package/package/components/triggers.d.ts +1 -1
  312. package/package/components/useFolderDefaultPermissionedAs.svelte.d.ts +13 -0
  313. package/package/components/useFolderDefaultPermissionedAs.svelte.js +63 -0
  314. package/package/components/useNestedRestartState.svelte.d.ts +56 -0
  315. package/package/components/useNestedRestartState.svelte.js +320 -0
  316. package/package/components/workspaceSettings/CreateWorkspace.svelte +16 -677
  317. package/package/components/workspaceSettings/CreateWorkspaceInner.svelte +604 -0
  318. package/package/components/workspaceSettings/CreateWorkspaceInner.svelte.d.ts +7 -0
  319. package/package/components/workspaceSettings/CustomInstanceDbSelect.svelte +27 -25
  320. package/package/components/workspaceSettings/CustomInstanceDbWizardModal.svelte +46 -8
  321. package/package/components/workspaceSettings/DataTableSettings.svelte +27 -22
  322. package/package/components/workspaceSettings/DucklakeSettings.svelte +1 -1
  323. package/package/components/workspaceSettings/ForkDatatableSection.svelte +228 -0
  324. package/package/components/workspaceSettings/ForkDatatableSection.svelte.d.ts +28 -0
  325. package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +8 -2
  326. package/package/components/workspaceSettings/RulesetEditor.svelte +27 -2
  327. package/package/components/workspaceSettings/SharedUiSettings.svelte +175 -0
  328. package/package/components/workspaceSettings/SharedUiSettings.svelte.d.ts +3 -0
  329. package/package/components/workspaceSettings/VolumeStorageSettings.svelte +1 -1
  330. package/package/components/workspaceSettings/WorkspaceIntegrations.svelte +17 -1
  331. package/package/consts.d.ts +3 -0
  332. package/package/consts.js +10 -0
  333. package/package/gen/core/OpenAPI.js +1 -1
  334. package/package/gen/schemas.gen.d.ts +795 -59
  335. package/package/gen/schemas.gen.js +801 -60
  336. package/package/gen/services.gen.d.ts +475 -5
  337. package/package/gen/services.gen.js +976 -23
  338. package/package/gen/types.gen.d.ts +1865 -75
  339. package/package/githubApp.js +5 -1
  340. package/package/hubPaths.json +2 -8
  341. package/package/infer.d.ts +1 -1
  342. package/package/infer.js +50 -52
  343. package/package/infer.svelte.js +10 -1
  344. package/package/mcpEndpointTools.js +60 -4
  345. package/package/monaco_workers/sqlTypePlugin.worker.d.ts +10 -0
  346. package/package/monaco_workers/sqlTypePlugin.worker.js +39 -0
  347. package/package/script_helpers.d.ts +8 -2
  348. package/package/script_helpers.js +31 -0
  349. package/package/stores.d.ts +11 -0
  350. package/package/stores.js +6 -0
  351. package/package/system_prompts/index.d.ts +1 -0
  352. package/package/system_prompts/index.js +8 -0
  353. package/package/system_prompts/prompts.d.ts +17 -13
  354. package/package/system_prompts/prompts.js +921 -61
  355. package/package/templates/ci_test_bun.ts.template +27 -0
  356. package/package/templates/ci_test_python.py.template +26 -0
  357. package/package/utils/forkConflict.d.ts +26 -0
  358. package/package/utils/forkConflict.js +56 -0
  359. package/package/utils_deployable.d.ts +164 -121
  360. package/package/utils_deployable.js +61 -11
  361. package/package/utils_workspace_deploy.d.ts +8 -8
  362. package/package/utils_workspace_deploy.js +89 -421
  363. package/package.json +30 -6
  364. package/dist/sharedUtils/assets/tokens/colorTokensConfig.d.ts +0 -2
  365. package/dist/sharedUtils/base.d.ts +0 -1
  366. package/dist/sharedUtils/cloud.d.ts +0 -1
  367. package/dist/sharedUtils/common.d.ts +0 -111
  368. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/count.d.ts +0 -5
  369. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/delete.d.ts +0 -5
  370. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/insert.d.ts +0 -5
  371. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/select.d.ts +0 -13
  372. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/update.d.ts +0 -11
  373. package/dist/sharedUtils/components/apps/components/display/dbtable/utils.d.ts +0 -95
  374. package/dist/sharedUtils/components/apps/editor/appPolicy.d.ts +0 -6
  375. package/dist/sharedUtils/components/apps/editor/appUtilsCore.d.ts +0 -7
  376. package/dist/sharedUtils/components/apps/editor/appUtilsS3.d.ts +0 -33
  377. package/dist/sharedUtils/components/apps/editor/commonAppUtils.d.ts +0 -10
  378. package/dist/sharedUtils/components/apps/editor/component/components.d.ts +0 -5371
  379. package/dist/sharedUtils/components/apps/editor/component/default-codes.d.ts +0 -3
  380. package/dist/sharedUtils/components/apps/editor/component/index.d.ts +0 -3
  381. package/dist/sharedUtils/components/apps/editor/component/sets.d.ts +0 -7
  382. package/dist/sharedUtils/components/apps/editor/componentsPanel/componentDefaultProps.d.ts +0 -3
  383. package/dist/sharedUtils/components/apps/gridUtils.d.ts +0 -14
  384. package/dist/sharedUtils/components/apps/inputType.d.ts +0 -178
  385. package/dist/sharedUtils/components/apps/rx.d.ts +0 -29
  386. package/dist/sharedUtils/components/apps/sharedTypes.d.ts +0 -21
  387. package/dist/sharedUtils/components/apps/types.d.ts +0 -274
  388. package/dist/sharedUtils/components/assets/lib.d.ts +0 -25
  389. package/dist/sharedUtils/components/common/alert/model.d.ts +0 -2
  390. package/dist/sharedUtils/components/common/badge/model.d.ts +0 -8
  391. package/dist/sharedUtils/components/common/button/model.d.ts +0 -45
  392. package/dist/sharedUtils/components/common/fileInput/model.d.ts +0 -1
  393. package/dist/sharedUtils/components/common/index.d.ts +0 -24
  394. package/dist/sharedUtils/components/common/skeleton/model.d.ts +0 -21
  395. package/dist/sharedUtils/components/dbTypes.d.ts +0 -14
  396. package/dist/sharedUtils/components/diff_drawer.d.ts +0 -26
  397. package/dist/sharedUtils/components/ducklake.d.ts +0 -1
  398. package/dist/sharedUtils/components/flows/scheduleUtils.d.ts +0 -7
  399. package/dist/sharedUtils/components/icons/index.d.ts +0 -101
  400. package/dist/sharedUtils/components/random_positive_adjetive.d.ts +0 -1
  401. package/dist/sharedUtils/components/raw_apps/rawAppPolicy.d.ts +0 -10
  402. package/dist/sharedUtils/components/raw_apps/utils.d.ts +0 -15
  403. package/dist/sharedUtils/components/triggers/email/utils.d.ts +0 -4
  404. package/dist/sharedUtils/components/triggers/gcp/utils.d.ts +0 -2
  405. package/dist/sharedUtils/components/triggers/http/utils.d.ts +0 -11
  406. package/dist/sharedUtils/components/triggers/mqtt/utils.d.ts +0 -2
  407. package/dist/sharedUtils/components/triggers/nats/utils.d.ts +0 -2
  408. package/dist/sharedUtils/components/triggers/postgres/utils.d.ts +0 -8
  409. package/dist/sharedUtils/components/triggers/sqs/utils.d.ts +0 -2
  410. package/dist/sharedUtils/components/triggers/triggers.svelte.d.ts +0 -32
  411. package/dist/sharedUtils/components/triggers/utils.d.ts +0 -80
  412. package/dist/sharedUtils/components/triggers/websocket/utils.d.ts +0 -2
  413. package/dist/sharedUtils/components/triggers.d.ts +0 -20
  414. package/dist/sharedUtils/gen/core/ApiError.d.ts +0 -10
  415. package/dist/sharedUtils/gen/core/ApiRequestOptions.d.ts +0 -13
  416. package/dist/sharedUtils/gen/core/ApiResult.d.ts +0 -7
  417. package/dist/sharedUtils/gen/core/CancelablePromise.d.ts +0 -26
  418. package/dist/sharedUtils/gen/core/OpenAPI.d.ts +0 -27
  419. package/dist/sharedUtils/gen/core/request.d.ts +0 -29
  420. package/dist/sharedUtils/gen/index.d.ts +0 -6
  421. package/dist/sharedUtils/gen/schemas.gen.d.ts +0 -7036
  422. package/dist/sharedUtils/gen/services.gen.d.ts +0 -6047
  423. package/dist/sharedUtils/gen/types.gen.d.ts +0 -21881
  424. package/dist/sharedUtils/history.svelte.d.ts +0 -9
  425. package/dist/sharedUtils/hub.d.ts +0 -49
  426. package/dist/sharedUtils/jsr.json +0 -6
  427. package/dist/sharedUtils/lib.d.ts +0 -5
  428. package/dist/sharedUtils/lib.es.js +0 -1588
  429. package/dist/sharedUtils/package.json +0 -12
  430. package/dist/sharedUtils/schema.d.ts +0 -3
  431. package/dist/sharedUtils/stores.d.ts +0 -97
  432. package/dist/sharedUtils/svelte5Utils.svelte.d.ts +0 -80
  433. package/dist/sharedUtils/toast.d.ts +0 -8
  434. package/dist/sharedUtils/utils.d.ts +0 -265
  435. package/package/components/copilot/chat/__tests__/app/appChat.eval.test.js +0 -153
  436. package/package/components/copilot/chat/__tests__/app/appEvalComparison.d.ts +0 -21
  437. package/package/components/copilot/chat/__tests__/app/appEvalComparison.js +0 -136
  438. package/package/components/copilot/chat/__tests__/app/appEvalHelpers.d.ts +0 -15
  439. package/package/components/copilot/chat/__tests__/app/appEvalHelpers.js +0 -107
  440. package/package/components/copilot/chat/__tests__/app/appEvalRunner.d.ts +0 -50
  441. package/package/components/copilot/chat/__tests__/app/appEvalRunner.js +0 -93
  442. package/package/components/copilot/chat/__tests__/app/appFixtureLoader.d.ts +0 -29
  443. package/package/components/copilot/chat/__tests__/app/appFixtureLoader.js +0 -134
  444. package/package/components/copilot/chat/__tests__/app/appResultsWriter.d.ts +0 -30
  445. package/package/components/copilot/chat/__tests__/app/appResultsWriter.js +0 -197
  446. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/createFolder/main.d.ts +0 -10
  447. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/createFolder/main.js +0 -9
  448. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/createFolder/meta.json +0 -4
  449. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/deleteItem/main.d.ts +0 -6
  450. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/deleteItem/main.js +0 -5
  451. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/deleteItem/meta.json +0 -4
  452. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFiles/main.d.ts +0 -12
  453. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFiles/main.js +0 -14
  454. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFiles/meta.json +0 -4
  455. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFolders/main.d.ts +0 -8
  456. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFolders/main.js +0 -25
  457. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFolders/meta.json +0 -4
  458. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/moveItem/main.d.ts +0 -7
  459. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/moveItem/main.js +0 -5
  460. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/moveItem/meta.json +0 -4
  461. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/renameItem/main.d.ts +0 -8
  462. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/renameItem/main.js +0 -5
  463. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/renameItem/meta.json +0 -4
  464. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Breadcrumb.d.ts +0 -10
  465. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Breadcrumb.tsx +0 -26
  466. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileItem.d.ts +0 -10
  467. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileItem.tsx +0 -79
  468. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileList.d.ts +0 -10
  469. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileList.tsx +0 -46
  470. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FolderTree.d.ts +0 -10
  471. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FolderTree.tsx +0 -56
  472. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Toolbar.d.ts +0 -6
  473. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Toolbar.tsx +0 -59
  474. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/index.d.ts +0 -16
  475. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/index.tsx +0 -119
  476. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/addToCart/main.d.ts +0 -15
  477. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/addToCart/main.js +0 -14
  478. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/addToCart/meta.json +0 -4
  479. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/calculateTotal/main.d.ts +0 -14
  480. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/calculateTotal/main.js +0 -5
  481. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/calculateTotal/meta.json +0 -4
  482. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/getProducts/main.d.ts +0 -6
  483. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/getProducts/main.js +0 -41
  484. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/getProducts/meta.json +0 -4
  485. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/removeFromCart/main.d.ts +0 -15
  486. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/removeFromCart/main.js +0 -3
  487. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/removeFromCart/meta.json +0 -4
  488. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/Cart.d.ts +0 -9
  489. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/Cart.tsx +0 -51
  490. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductCard.d.ts +0 -8
  491. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductCard.tsx +0 -27
  492. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductList.d.ts +0 -8
  493. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductList.tsx +0 -18
  494. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/index.d.ts +0 -12
  495. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/index.tsx +0 -81
  496. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/decrementCounter/main.d.ts +0 -3
  497. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/decrementCounter/main.js +0 -3
  498. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/decrementCounter/meta.json +0 -4
  499. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/incrementCounter/main.d.ts +0 -3
  500. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/incrementCounter/main.js +0 -3
  501. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/incrementCounter/meta.json +0 -4
  502. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/frontend/index.d.ts +0 -2
  503. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/frontend/index.tsx +0 -38
  504. package/package/components/copilot/chat/__tests__/app/variants/baseline.d.ts +0 -6
  505. package/package/components/copilot/chat/__tests__/app/variants/baseline.js +0 -10
  506. package/package/components/copilot/chat/__tests__/app/variants/index.d.ts +0 -3
  507. package/package/components/copilot/chat/__tests__/app/variants/index.js +0 -3
  508. package/package/components/copilot/chat/__tests__/app/variants/streamlined.d.ts +0 -6
  509. package/package/components/copilot/chat/__tests__/app/variants/streamlined.js +0 -137
  510. package/package/components/copilot/chat/__tests__/flow/expected/test1.json +0 -134
  511. package/package/components/copilot/chat/__tests__/flow/expected/test2.json +0 -183
  512. package/package/components/copilot/chat/__tests__/flow/expected/test3.json +0 -204
  513. package/package/components/copilot/chat/__tests__/flow/expected/test4.json +0 -175
  514. package/package/components/copilot/chat/__tests__/flow/expected/test5_modify_simple.json +0 -68
  515. package/package/components/copilot/chat/__tests__/flow/expected/test6_modify_medium.json +0 -142
  516. package/package/components/copilot/chat/__tests__/flow/expected/test7_modify_complex.json +0 -136
  517. package/package/components/copilot/chat/__tests__/flow/flowChat.eval.test.js +0 -294
  518. package/package/components/copilot/chat/__tests__/flow/flowEvalComparison.d.ts +0 -17
  519. package/package/components/copilot/chat/__tests__/flow/flowEvalComparison.js +0 -49
  520. package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.d.ts +0 -12
  521. package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.js +0 -79
  522. package/package/components/copilot/chat/__tests__/flow/flowEvalRunner.d.ts +0 -50
  523. package/package/components/copilot/chat/__tests__/flow/flowEvalRunner.js +0 -102
  524. package/package/components/copilot/chat/__tests__/flow/initial/test5_initial.json +0 -53
  525. package/package/components/copilot/chat/__tests__/flow/initial/test6_initial.json +0 -68
  526. package/package/components/copilot/chat/__tests__/flow/initial/test7_initial.json +0 -120
  527. package/package/components/copilot/chat/__tests__/flow/variants/baseline.d.ts +0 -6
  528. package/package/components/copilot/chat/__tests__/flow/variants/baseline.js +0 -10
  529. package/package/components/copilot/chat/__tests__/flow/variants/index.d.ts +0 -3
  530. package/package/components/copilot/chat/__tests__/flow/variants/index.js +0 -3
  531. package/package/components/copilot/chat/__tests__/flow/variants/minimal-single-tool.d.ts +0 -15
  532. package/package/components/copilot/chat/__tests__/flow/variants/minimal-single-tool.js +0 -388
  533. package/package/components/copilot/chat/__tests__/shared/baseEvalRunner.d.ts +0 -45
  534. package/package/components/copilot/chat/__tests__/shared/baseEvalRunner.js +0 -121
  535. package/package/components/copilot/chat/__tests__/shared/baseLLMEvaluator.d.ts +0 -28
  536. package/package/components/copilot/chat/__tests__/shared/baseLLMEvaluator.js +0 -96
  537. package/package/components/copilot/chat/__tests__/shared/baseResultsWriter.d.ts +0 -32
  538. package/package/components/copilot/chat/__tests__/shared/baseResultsWriter.js +0 -130
  539. package/package/components/copilot/chat/__tests__/shared/baseVariants.d.ts +0 -45
  540. package/package/components/copilot/chat/__tests__/shared/baseVariants.js +0 -57
  541. package/package/components/copilot/chat/__tests__/shared/index.d.ts +0 -10
  542. package/package/components/copilot/chat/__tests__/shared/index.js +0 -5
  543. package/package/components/copilot/chat/__tests__/shared/types.d.ts +0 -105
  544. package/package/components/copilot/chat/__tests__/shared/types.js +0 -9
  545. package/package/components/copilot/chat/flow/openFlowZod.js +0 -24
  546. package/package/components/copilot/chat/flow/utils.d.ts +0 -14
  547. package/package/components/copilot/chat/flow/utils.js +0 -108
  548. package/package/components/flows/agentToolUtils.test.js +0 -55
  549. /package/package/components/copilot/chat/{__tests__/app/appChat.eval.test.d.ts → app/core.test.d.ts} +0 -0
  550. /package/package/components/copilot/chat/{__tests__/flow/flowChat.eval.test.d.ts → flow/helperUtils.test.d.ts} +0 -0
  551. /package/package/components/copilot/chat/flow/{openFlowZod.d.ts → openFlowZod.gen.d.ts} +0 -0
  552. /package/package/components/{flows/agentToolUtils.test.d.ts → copilot/chat/flow/utils.test.d.ts} +0 -0
@@ -5,10 +5,9 @@
5
5
  * This decouples diff management from specific UI components (like AI chat) and makes it
6
6
  * available for any use case that needs to track and apply flow changes.
7
7
  */
8
- import { buildFlowTimeline, insertModuleIntoFlow, findModuleParent, locationsEqual, DUPLICATE_MODULE_PREFIX, NEW_MODULE_PREFIX } from './flowDiff';
8
+ import { buildFlowTimeline, insertModuleIntoFlow, locationsEqual, DUPLICATE_MODULE_PREFIX, NEW_MODULE_PREFIX } from './flowDiff';
9
+ import { findModuleInFlow, findModuleParent, removeFlowModule, replaceFlowModule } from './flowTree';
9
10
  import { refreshStateStore } from '../../svelte5Utils.svelte';
10
- import { getIndexInNestedModules } from '../copilot/chat/flow/utils';
11
- import { dfs } from './previousResults';
12
11
  import { SPECIAL_MODULE_IDS } from '../copilot/chat/shared';
13
12
  /**
14
13
  * Creates a flow diff manager instance
@@ -26,7 +25,7 @@ function createSkeletonModule(module) {
26
25
  clone.value.branches.forEach((b) => (b.modules = []));
27
26
  }
28
27
  else if (clone.value.type === 'aiagent') {
29
- clone.value.tools = [];
28
+ clone.value.tools = (clone.value.tools ?? []).filter((t) => t.value?.tool_type && t.value.tool_type !== 'flowmodule');
30
29
  }
31
30
  return clone;
32
31
  }
@@ -134,47 +133,12 @@ export function createFlowDiffManager({ testMode = false } = {}) {
134
133
  function setModuleActions(actions) {
135
134
  updateModuleActions(actions);
136
135
  }
137
- /**
138
- * Helper to get a module from a flow by ID
139
- */
140
- function getModuleFromFlow(id, flow) {
141
- if (flow.value.preprocessor_module?.id === id) {
142
- return flow.value.preprocessor_module;
143
- }
144
- else if (flow.value.failure_module?.id === id) {
145
- return flow.value.failure_module;
146
- }
147
- else {
148
- return dfs(id, flow, false)[0];
149
- }
150
- }
151
136
  /**
152
137
  * Internal helper to delete a module from a flow object
153
138
  * Returns true if the module was found and deleted, false otherwise
154
139
  */
155
140
  function deleteModuleInternal(id, flow) {
156
- if (flow.value.preprocessor_module?.id === id) {
157
- flow.value.preprocessor_module = undefined;
158
- return true;
159
- }
160
- else if (flow.value.failure_module?.id === id) {
161
- flow.value.failure_module = undefined;
162
- return true;
163
- }
164
- else {
165
- const result = getIndexInNestedModules(flow, id);
166
- if (!result) {
167
- // Module not found (may have been deleted along with a parent)
168
- return false;
169
- }
170
- const { modules } = result;
171
- const index = modules.findIndex((m) => m.id === id);
172
- if (index >= 0) {
173
- modules.splice(index, 1);
174
- return true;
175
- }
176
- return false;
177
- }
141
+ return removeFlowModule(flow.value, id) !== null;
178
142
  }
179
143
  /**
180
144
  * Helper to delete a module from the flow
@@ -221,7 +185,7 @@ export function createFlowDiffManager({ testMode = false } = {}) {
221
185
  parentLoc.type !== 'root' &&
222
186
  parentLoc.type !== 'failure' &&
223
187
  parentLoc.type !== 'preprocessor') {
224
- const parentInBefore = getModuleFromFlow(parentLoc.parentId, beforeFlow);
188
+ const parentInBefore = findModuleInFlow(beforeFlow.value, parentLoc.parentId) ?? undefined;
225
189
  if (!parentInBefore) {
226
190
  // Parent is missing in beforeFlow. It must be pending acceptance.
227
191
  // Accept as skeleton to avoid auto-accepting all siblings.
@@ -229,13 +193,10 @@ export function createFlowDiffManager({ testMode = false } = {}) {
229
193
  }
230
194
  }
231
195
  // Use insertModuleIntoFlow targeting beforeFlow, sourcing position from currentFlow
232
- let module = getModuleFromFlow(actualId, {
233
- value: currentFlow,
234
- summary: ''
235
- });
196
+ let module = findModuleInFlow(currentFlow, actualId) ?? undefined;
236
197
  if (module) {
237
198
  // Check if module already exists in beforeFlow (could be a skeleton from earlier acceptance)
238
- const existingModule = getModuleFromFlow(actualId, beforeFlow);
199
+ const existingModule = findModuleInFlow(beforeFlow.value, actualId) ?? undefined;
239
200
  if (existingModule) {
240
201
  // Module exists in beforeFlow - check if it's in the same location
241
202
  const beforeLocation = findModuleParent(beforeFlow.value, actualId);
@@ -245,8 +206,7 @@ export function createFlowDiffManager({ testMode = false } = {}) {
245
206
  if (sameLocation) {
246
207
  // Module is in the same location, update it in-place
247
208
  const moduleToApply = asSkeleton ? createSkeletonModule(module) : module;
248
- Object.keys(existingModule).forEach((k) => delete existingModule[k]);
249
- Object.assign(existingModule, $state.snapshot(moduleToApply));
209
+ replaceFlowModule(existingModule, $state.snapshot(moduleToApply));
250
210
  }
251
211
  else {
252
212
  // Module is being moved - insert at new location (the old copy will be removed when old__id is accepted)
@@ -263,14 +223,10 @@ export function createFlowDiffManager({ testMode = false } = {}) {
263
223
  }
264
224
  else if (info.action === 'modified') {
265
225
  // Modified: Apply modifications to beforeFlow module
266
- const beforeModule = getModuleFromFlow(actualId, beforeFlow);
267
- const afterModule = getModuleFromFlow(actualId, {
268
- value: currentFlow,
269
- summary: ''
270
- });
226
+ const beforeModule = findModuleInFlow(beforeFlow.value, actualId) ?? undefined;
227
+ const afterModule = findModuleInFlow(currentFlow, actualId) ?? undefined;
271
228
  if (beforeModule && afterModule) {
272
- Object.keys(beforeModule).forEach((k) => delete beforeModule[k]);
273
- Object.assign(beforeModule, $state.snapshot(afterModule));
229
+ replaceFlowModule(beforeModule, $state.snapshot(afterModule));
274
230
  }
275
231
  }
276
232
  }
@@ -303,11 +259,11 @@ export function createFlowDiffManager({ testMode = false } = {}) {
303
259
  else if (info.action === 'removed') {
304
260
  // Removed in after: Restore to flowStore (currentFlow)
305
261
  // Source from beforeFlow
306
- const oldModule = getModuleFromFlow(actualId, beforeFlow);
262
+ const oldModule = findModuleInFlow(beforeFlow.value, actualId) ?? undefined;
307
263
  if (oldModule) {
308
264
  // For type changes (old__ prefix), rename the new module to avoid ID conflict
309
265
  if (id.startsWith(DUPLICATE_MODULE_PREFIX)) {
310
- const existingNew = getModuleFromFlow(actualId, flowStore.val);
266
+ const existingNew = findModuleInFlow(flowStore.val.value, actualId) ?? undefined;
311
267
  if (existingNew) {
312
268
  existingNew.id = `${NEW_MODULE_PREFIX}${actualId}`;
313
269
  }
@@ -318,11 +274,10 @@ export function createFlowDiffManager({ testMode = false } = {}) {
318
274
  }
319
275
  else if (info.action === 'modified') {
320
276
  // Modified: Revert modifications in flowStore (currentFlow)
321
- const oldModule = getModuleFromFlow(actualId, beforeFlow);
322
- const newModule = getModuleFromFlow(actualId, flowStore.val);
277
+ const oldModule = findModuleInFlow(beforeFlow.value, actualId) ?? undefined;
278
+ const newModule = findModuleInFlow(flowStore.val.value, actualId) ?? undefined;
323
279
  if (oldModule && newModule) {
324
- Object.keys(newModule).forEach((k) => delete newModule[k]);
325
- Object.assign(newModule, $state.snapshot(oldModule));
280
+ replaceFlowModule(newModule, $state.snapshot(oldModule));
326
281
  }
327
282
  refreshStateStore(flowStore);
328
283
  }
@@ -391,20 +346,10 @@ export function createFlowDiffManager({ testMode = false } = {}) {
391
346
  }
392
347
  else {
393
348
  // Show module diff
394
- const beforeModule = getModuleFromFlow(moduleId, beforeFlow);
395
- // Need to check failure_module and preprocessor_module for currentFlow as well
396
- let afterModule = undefined;
397
- if (currentFlow) {
398
- if (currentFlow.preprocessor_module?.id === moduleId) {
399
- afterModule = currentFlow.preprocessor_module;
400
- }
401
- else if (currentFlow.failure_module?.id === moduleId) {
402
- afterModule = currentFlow.failure_module;
403
- }
404
- else {
405
- afterModule = dfs(moduleId, { value: currentFlow, summary: '' }, false)[0];
406
- }
407
- }
349
+ const beforeModule = findModuleInFlow(beforeFlow.value, moduleId) ?? undefined;
350
+ const afterModule = currentFlow
351
+ ? (findModuleInFlow(currentFlow, moduleId) ?? undefined)
352
+ : undefined;
408
353
  if (beforeModule && afterModule) {
409
354
  diffDrawer.openDrawer();
410
355
  diffDrawer.setDiff({
@@ -1,9 +1,16 @@
1
- import { describe, it, expect } from 'vitest';
1
+ import { describe, it, expect, vi } from 'vitest';
2
2
  import { flushSync } from 'svelte';
3
3
  import { createFlowDiffManager } from './flowDiffManager.svelte';
4
4
  import { DUPLICATE_MODULE_PREFIX, NEW_MODULE_PREFIX } from './flowDiff';
5
5
  import { SPECIAL_MODULE_IDS } from '../copilot/chat/shared';
6
- import { createRawScriptModule, createForloopModule, createBranchOneModule, createBranchAllModule, createExtendedOpenFlow, createFlowStore, deepClone, expectModuleOrder, createIdentityModule } from './flowDiff.testUtils';
6
+ import { createRawScriptModule, createForloopModule, createBranchOneModule, createBranchAllModule, createExtendedOpenFlow, createFlowStore, createFlowWithSpecialModules, deepClone, expectModuleOrder, createIdentityModule, createAiAgentModule, createFlowModuleTool } from './flowDiff.testUtils';
7
+ vi.mock('../copilot/chat/shared', () => ({
8
+ SPECIAL_MODULE_IDS: {
9
+ INPUT: 'Input',
10
+ PREPROCESSOR: 'preprocessor',
11
+ FAILURE: 'failure'
12
+ }
13
+ }));
7
14
  describe('FlowDiffManager', () => {
8
15
  describe('effect auto-computation', () => {
9
16
  it('auto-computes moduleActions when flows differ', () => {
@@ -153,6 +160,30 @@ describe('FlowDiffManager', () => {
153
160
  });
154
161
  cleanup();
155
162
  });
163
+ it('accepts added preprocessor module - stores it on beforeFlow', () => {
164
+ const cleanup = $effect.root(() => {
165
+ const manager = createFlowDiffManager({ testMode: true });
166
+ const preprocessor = createRawScriptModule(SPECIAL_MODULE_IDS.PREPROCESSOR, 'prep');
167
+ const beforeFlow = createExtendedOpenFlow({ modules: [] });
168
+ const afterFlow = createFlowWithSpecialModules({
169
+ preprocessor_module: deepClone(preprocessor)
170
+ });
171
+ manager.setEditMode(true);
172
+ manager.setBeforeFlow(beforeFlow);
173
+ manager.setCurrentFlow(afterFlow);
174
+ flushSync();
175
+ expect(manager.moduleActions[SPECIAL_MODULE_IDS.PREPROCESSOR]).toEqual({
176
+ action: 'added',
177
+ pending: true
178
+ });
179
+ manager.acceptModule(SPECIAL_MODULE_IDS.PREPROCESSOR);
180
+ flushSync();
181
+ expect(manager.beforeFlow?.value.preprocessor_module?.id).toBe(SPECIAL_MODULE_IDS.PREPROCESSOR);
182
+ expect(manager.beforeFlow?.value.preprocessor_module?.value
183
+ ?.content).toBe('prep');
184
+ });
185
+ cleanup();
186
+ });
156
187
  it('handles duplicate ID prefix (old__) for type changes', () => {
157
188
  const cleanup = $effect.root(() => {
158
189
  const manager = createFlowDiffManager({ testMode: true });
@@ -274,6 +305,29 @@ describe('FlowDiffManager', () => {
274
305
  });
275
306
  cleanup();
276
307
  });
308
+ it('rejects removed failure module - restores it on flowStore', () => {
309
+ const cleanup = $effect.root(() => {
310
+ const manager = createFlowDiffManager({ testMode: true });
311
+ const failure = createRawScriptModule(SPECIAL_MODULE_IDS.FAILURE, 'fail');
312
+ const beforeFlow = createExtendedOpenFlow(createFlowWithSpecialModules({
313
+ failure_module: deepClone(failure)
314
+ }));
315
+ const flowStore = createFlowStore(createExtendedOpenFlow({ modules: [] }));
316
+ manager.setEditMode(true);
317
+ manager.setBeforeFlow(beforeFlow);
318
+ manager.setCurrentFlow(flowStore.val.value);
319
+ flushSync();
320
+ expect(manager.moduleActions[SPECIAL_MODULE_IDS.FAILURE]).toEqual({
321
+ action: 'removed',
322
+ pending: true
323
+ });
324
+ manager.rejectModule(SPECIAL_MODULE_IDS.FAILURE, flowStore);
325
+ flushSync();
326
+ expect(flowStore.val.value.failure_module?.id).toBe(SPECIAL_MODULE_IDS.FAILURE);
327
+ expect(flowStore.val.value.failure_module?.value?.content).toBe('fail');
328
+ });
329
+ cleanup();
330
+ });
277
331
  it('does not crash without flowStore', () => {
278
332
  const cleanup = $effect.root(() => {
279
333
  const manager = createFlowDiffManager({ testMode: true });
@@ -1251,5 +1305,52 @@ describe('FlowDiffManager', () => {
1251
1305
  });
1252
1306
  cleanup();
1253
1307
  });
1308
+ it('accepts an added ai agent tool into beforeFlow', () => {
1309
+ const cleanup = $effect.root(() => {
1310
+ const manager = createFlowDiffManager({ testMode: true });
1311
+ const lookupTool = createFlowModuleTool(createRawScriptModule('lookup_user', 'lookup'));
1312
+ const sumTool = createFlowModuleTool(createRawScriptModule('sum', 'sum'));
1313
+ const beforeFlow = createExtendedOpenFlow({
1314
+ modules: [createAiAgentModule('agent', [deepClone(lookupTool)])]
1315
+ });
1316
+ const currentFlowValue = {
1317
+ modules: [createAiAgentModule('agent', [deepClone(lookupTool), deepClone(sumTool)])]
1318
+ };
1319
+ manager.setEditMode(true);
1320
+ manager.setBeforeFlow(beforeFlow);
1321
+ manager.setCurrentFlow(currentFlowValue);
1322
+ flushSync();
1323
+ expect(manager.moduleActions['sum']).toEqual({ action: 'added', pending: true });
1324
+ manager.acceptModule('sum');
1325
+ flushSync();
1326
+ const tools = (((manager.beforeFlow?.value.modules ?? [])[0]?.value).tools ?? []);
1327
+ expect(tools.map((tool) => tool.id)).toEqual(['lookup_user', 'sum']);
1328
+ });
1329
+ cleanup();
1330
+ });
1331
+ it('rejects a removed ai agent tool back into the live flow', () => {
1332
+ const cleanup = $effect.root(() => {
1333
+ const manager = createFlowDiffManager({ testMode: true });
1334
+ const lookupTool = createFlowModuleTool(createRawScriptModule('lookup_user', 'lookup'));
1335
+ const sumTool = createFlowModuleTool(createRawScriptModule('sum', 'sum'));
1336
+ const beforeFlow = createExtendedOpenFlow({
1337
+ modules: [createAiAgentModule('agent', [deepClone(lookupTool), deepClone(sumTool)])]
1338
+ });
1339
+ const currentFlowValue = {
1340
+ modules: [createAiAgentModule('agent', [deepClone(lookupTool)])]
1341
+ };
1342
+ const flowStore = createFlowStore(createExtendedOpenFlow(currentFlowValue));
1343
+ manager.setEditMode(true);
1344
+ manager.setBeforeFlow(beforeFlow);
1345
+ manager.setCurrentFlow(flowStore.val.value);
1346
+ flushSync();
1347
+ expect(manager.moduleActions['sum']).toEqual({ action: 'removed', pending: true });
1348
+ manager.rejectModule('sum', flowStore);
1349
+ flushSync();
1350
+ const tools = (((flowStore.val.value.modules ?? [])[0]?.value).tools ?? []);
1351
+ expect(tools.map((tool) => tool.id)).toEqual(['lookup_user', 'sum']);
1352
+ });
1353
+ cleanup();
1354
+ });
1254
1355
  });
1255
1356
  });
@@ -1,5 +1,9 @@
1
1
  import type { FlowModule, OpenFlow } from '../../gen';
2
2
  type ModuleBranches = FlowModule[][];
3
+ /**
4
+ * Returns read-only child-module branches for explorer/search-style consumers.
5
+ * Structural knowledge lives in `flowTree.ts`; this file is a thin read-only adapter.
6
+ */
3
7
  export declare function getSubModules(flowModule: FlowModule): ModuleBranches;
4
8
  export declare function getAllSubmodules(flowModule: FlowModule): ModuleBranches;
5
9
  export declare function getAllModules(flow_modules: FlowModule[], failure_module?: FlowModule): FlowModule[];
@@ -1,37 +1,14 @@
1
- import { isFlowModuleTool } from './agentToolUtils';
1
+ import { collectDescendantFlowModules, getChildModuleBranches } from './flowTree';
2
+ /**
3
+ * Returns read-only child-module branches for explorer/search-style consumers.
4
+ * Structural knowledge lives in `flowTree.ts`; this file is a thin read-only adapter.
5
+ */
2
6
  export function getSubModules(flowModule) {
3
- if (flowModule.value.type === 'forloopflow' || flowModule.value.type === 'whileloopflow') {
4
- return [flowModule.value.modules];
5
- }
6
- else if (flowModule.value.type === 'branchall') {
7
- return flowModule.value.branches.map((branch) => branch.modules);
8
- }
9
- else if (flowModule.value.type == 'branchone') {
10
- return [...flowModule.value.branches.map((branch) => branch.modules), flowModule.value.default];
11
- }
12
- else if (flowModule.value.type === 'aiagent') {
13
- // Return AI agent tools as pseudo-FlowModules for searching
14
- if (flowModule.value.tools) {
15
- return [
16
- flowModule.value.tools
17
- .filter(isFlowModuleTool)
18
- .map((tool) => ({
19
- id: tool.id,
20
- value: tool.value,
21
- summary: tool.summary
22
- }))
23
- ];
24
- }
25
- }
26
- return [];
7
+ return getChildModuleBranches(flowModule);
27
8
  }
28
9
  export function getAllSubmodules(flowModule) {
29
10
  return getSubModules(flowModule).map((modules) => {
30
- return modules
31
- .map((module) => {
32
- return [module, ...getAllSubmodules(module).flat()];
33
- })
34
- .flat();
11
+ return modules.flatMap((module) => [module, ...collectDescendantFlowModules(module)]);
35
12
  });
36
13
  }
37
14
  export function getAllModules(flow_modules, failure_module) {
@@ -7,6 +7,7 @@ export type FlowModuleState = {
7
7
  previewArgs?: any;
8
8
  previewJobId?: string;
9
9
  previewSuccess?: boolean;
10
+ previewLogs?: string;
10
11
  };
11
12
  export type FlowState = Record<string, FlowModuleState>;
12
13
  /**
@@ -1,5 +1,6 @@
1
1
  import { ScriptService } from '../../gen';
2
2
  import { initialCode } from '../../script_helpers';
3
+ import { inferAssets } from '../../infer';
3
4
  import { userStore, workspaceStore } from '../../stores';
4
5
  import { getScriptByPath } from '../../scripts';
5
6
  import { get } from 'svelte/store';
@@ -26,7 +27,11 @@ export async function loadFlowModuleState(flowModule) {
26
27
  }
27
28
  catch (e) {
28
29
  console.debug(e);
29
- return emptyFlowModuleState();
30
+ // Leave schema undefined so onSelectedIdChange in FlowModuleComponent
31
+ // can detect the failed inference and retry when the module is selected.
32
+ return {
33
+ previewResult: NEVER_TESTED_THIS_FAR
34
+ };
30
35
  }
31
36
  }
32
37
  export async function pickScript(path, summary, id, hash, kind) {
@@ -47,6 +52,9 @@ export async function pickFlow(path, summary, id) {
47
52
  }
48
53
  export async function createInlineScriptModule(language, kind, subkind, id, summary) {
49
54
  const code = initialCode(language, kind, subkind);
55
+ // Needed when the predefined code has assets in it
56
+ const inferResult = await inferAssets(language, code);
57
+ const assets = inferResult.status === 'ok' && inferResult.assets.length > 0 ? inferResult.assets : undefined;
50
58
  const flowModule = {
51
59
  id,
52
60
  summary,
@@ -55,7 +63,8 @@ export async function createInlineScriptModule(language, kind, subkind, id, summ
55
63
  content: code,
56
64
  language,
57
65
  input_transforms: {},
58
- ...(kind === 'trigger' ? { is_trigger: true } : {})
66
+ ...(kind === 'trigger' ? { is_trigger: true } : {}),
67
+ ...(assets ? { assets } : {})
59
68
  }
60
69
  };
61
70
  return [flowModule, await loadFlowModuleState(flowModule)];
@@ -0,0 +1,91 @@
1
+ import type { FlowModule } from '../../gen';
2
+ export type FlowModuleTree = {
3
+ modules?: FlowModule[] | null;
4
+ failure_module?: FlowModule | null;
5
+ preprocessor_module?: FlowModule | null;
6
+ };
7
+ export type ModuleParentLocation = {
8
+ type: 'root';
9
+ index: number;
10
+ } | {
11
+ type: 'forloop' | 'whileloop';
12
+ parentId: string;
13
+ index: number;
14
+ } | {
15
+ type: 'branchone-default';
16
+ parentId: string;
17
+ index: number;
18
+ } | {
19
+ type: 'branchone-branch';
20
+ parentId: string;
21
+ branchIndex: number;
22
+ index: number;
23
+ } | {
24
+ type: 'branchall-branch';
25
+ parentId: string;
26
+ branchIndex: number;
27
+ index: number;
28
+ } | {
29
+ type: 'aiagent';
30
+ parentId: string;
31
+ index: number;
32
+ } | {
33
+ type: 'failure';
34
+ index: -1;
35
+ } | {
36
+ type: 'preprocessor';
37
+ index: -1;
38
+ };
39
+ export type ArrayBackedModuleParentLocation = Exclude<ModuleParentLocation, {
40
+ type: 'failure';
41
+ index: -1;
42
+ } | {
43
+ type: 'preprocessor';
44
+ index: -1;
45
+ }>;
46
+ type ArrayBackedFlowNodeMatch = {
47
+ module: FlowModule;
48
+ location: ArrayBackedModuleParentLocation;
49
+ container: FlowModule[];
50
+ };
51
+ export type FlowNodeMatch = ArrayBackedFlowNodeMatch | {
52
+ module: FlowModule;
53
+ location: Extract<ModuleParentLocation, {
54
+ type: 'failure' | 'preprocessor';
55
+ }>;
56
+ };
57
+ export type FlowNodeLocation = {
58
+ module: FlowModule;
59
+ location: ModuleParentLocation;
60
+ };
61
+ export declare function getChildModuleBranches(module: FlowModule): FlowModule[][];
62
+ export declare function collectDescendantFlowModules(module: FlowModule): FlowModule[];
63
+ /**
64
+ * Collect every module ID in a flow tree, including ALL aiagent tool IDs
65
+ * (both flowmodule and non-flowmodule like MCP). Used for ID uniqueness
66
+ * validation where every tool's ID must be reserved regardless of type.
67
+ */
68
+ export declare function collectAllFlowModuleIds(flow: FlowModuleTree): string[];
69
+ /**
70
+ * Like collectAllFlowModuleIds but operates on a modules array directly
71
+ * (without failure_module/preprocessor_module).
72
+ */
73
+ export declare function collectAllFlowModuleIdsFromModules(modules: FlowModule[]): string[];
74
+ export declare function collectFlowNodes(flow: FlowModuleTree): FlowNodeLocation[];
75
+ export declare function findModuleInModules(modules: FlowModule[], moduleId: string): FlowModule | undefined;
76
+ export declare function findFlowNode(flow: FlowModuleTree, moduleId: string): FlowNodeMatch | null;
77
+ /**
78
+ * Returns the live stored module for any module id in the flow tree.
79
+ * This includes nested modules, AI-agent flowmodule tools, and special modules.
80
+ */
81
+ export declare function findModuleInFlow(flow: FlowModuleTree, moduleId: string): FlowModule | null;
82
+ export declare function findModuleParent(flow: FlowModuleTree, moduleId: string): ModuleParentLocation | null;
83
+ export declare function getModuleArrayByLocation(flow: FlowModuleTree, location: ArrayBackedModuleParentLocation): FlowModule[] | null;
84
+ export declare function ensureModuleArrayByLocation(flow: FlowModuleTree, location: ArrayBackedModuleParentLocation, templateFlow?: FlowModuleTree): FlowModule[] | null;
85
+ export declare function getModuleArrayContainer(flow: FlowModuleTree, moduleId: string): {
86
+ index: number;
87
+ modules: FlowModule[];
88
+ } | null;
89
+ export declare function removeFlowModule(flow: FlowModuleTree, moduleId: string): FlowModule | null;
90
+ export declare function replaceFlowModule(target: FlowModule, next: FlowModule): FlowModule;
91
+ export {};