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
@@ -0,0 +1,22 @@
1
+ import type { FlowModule, FlowValue, OpenFlow, RawScript } from '../../../../gen';
2
+ import type { InlineScriptSession } from './inlineScriptsUtils';
3
+ type FlowLike = Pick<OpenFlow, 'value'> & {
4
+ schema?: Record<string, any>;
5
+ };
6
+ export type FlowGroup = NonNullable<FlowValue['groups']>[number];
7
+ export interface FlowJsonUpdate {
8
+ modules?: FlowModule[];
9
+ schema?: Record<string, any> | null;
10
+ preprocessorModule?: FlowModule | null;
11
+ failureModule?: FlowModule | null;
12
+ groups?: FlowGroup[] | null;
13
+ }
14
+ export interface FlowJsonUpdateResult {
15
+ emptyInlineScriptModuleIds: string[];
16
+ }
17
+ export declare function updateRawScriptModuleContent(flow: FlowLike, id: string, code: string): (FlowModule & {
18
+ value: RawScript;
19
+ }) | undefined;
20
+ export declare function validateFlowGroups(rawGroups: unknown, moduleIds?: Set<string>): FlowGroup[] | null;
21
+ export declare function applyFlowJsonUpdate(flow: FlowLike, inlineScriptSession: InlineScriptSession, { modules, schema, preprocessorModule, failureModule, groups }: FlowJsonUpdate): FlowJsonUpdateResult;
22
+ export {};
@@ -0,0 +1,100 @@
1
+ import { forEachFlowModule } from '../../../flows/dfs';
2
+ import { findModuleInFlow } from '../../../flows/flowTree';
3
+ export function updateRawScriptModuleContent(flow, id, code) {
4
+ const module = findModuleInFlow(flow.value, id);
5
+ if (!module || module.value.type !== 'rawscript') {
6
+ return undefined;
7
+ }
8
+ const rawScriptModule = module;
9
+ rawScriptModule.value.content = code;
10
+ return rawScriptModule;
11
+ }
12
+ export function validateFlowGroups(rawGroups, moduleIds) {
13
+ if (rawGroups == null) {
14
+ return null;
15
+ }
16
+ if (!Array.isArray(rawGroups)) {
17
+ throw new Error('Flow groups must be an array');
18
+ }
19
+ return rawGroups.map((group, index) => {
20
+ if (!group || typeof group !== 'object' || Array.isArray(group)) {
21
+ throw new Error(`Invalid group at index ${index}: must be an object`);
22
+ }
23
+ const g = group;
24
+ if (typeof g.start_id !== 'string' || !g.start_id) {
25
+ throw new Error(`Invalid group at index ${index}: start_id must be a non-empty string`);
26
+ }
27
+ if (typeof g.end_id !== 'string' || !g.end_id) {
28
+ throw new Error(`Invalid group at index ${index}: end_id must be a non-empty string`);
29
+ }
30
+ if (moduleIds) {
31
+ if (!moduleIds.has(g.start_id)) {
32
+ throw new Error(`Invalid group at index ${index}: start_id "${g.start_id}" does not match any flow module`);
33
+ }
34
+ if (!moduleIds.has(g.end_id)) {
35
+ throw new Error(`Invalid group at index ${index}: end_id "${g.end_id}" does not match any flow module`);
36
+ }
37
+ }
38
+ return g;
39
+ });
40
+ }
41
+ export function applyFlowJsonUpdate(flow, inlineScriptSession, { modules, schema, preprocessorModule, failureModule, groups }) {
42
+ const emptyInlineScriptModuleIds = new Set();
43
+ if (modules !== undefined) {
44
+ flow.value.modules = restoreFlowModules(modules, inlineScriptSession, emptyInlineScriptModuleIds);
45
+ }
46
+ if (schema !== undefined) {
47
+ flow.schema = schema ?? undefined;
48
+ }
49
+ if (preprocessorModule !== undefined) {
50
+ flow.value.preprocessor_module =
51
+ preprocessorModule === null
52
+ ? undefined
53
+ : restoreFlowModule(preprocessorModule, inlineScriptSession, emptyInlineScriptModuleIds);
54
+ }
55
+ if (failureModule !== undefined) {
56
+ flow.value.failure_module =
57
+ failureModule === null
58
+ ? undefined
59
+ : restoreFlowModule(failureModule, inlineScriptSession, emptyInlineScriptModuleIds);
60
+ }
61
+ if (groups !== undefined) {
62
+ flow.value.groups = groups == null || groups.length === 0 ? undefined : groups;
63
+ }
64
+ return {
65
+ emptyInlineScriptModuleIds: Array.from(emptyInlineScriptModuleIds)
66
+ };
67
+ }
68
+ function restoreFlowModules(modules, inlineScriptSession, emptyInlineScriptModuleIds) {
69
+ const restoredModules = inlineScriptSession.restoreInlineScriptReferences(modules);
70
+ replaceNewInlineScriptRefsWithEmptyCode(restoredModules, emptyInlineScriptModuleIds);
71
+ assertResolvedInlineScripts(restoredModules, inlineScriptSession);
72
+ return restoredModules;
73
+ }
74
+ function restoreFlowModule(module, inlineScriptSession, emptyInlineScriptModuleIds) {
75
+ const [restoredModule] = inlineScriptSession.restoreInlineScriptReferences([module]);
76
+ replaceNewInlineScriptRefsWithEmptyCode([restoredModule], emptyInlineScriptModuleIds);
77
+ assertResolvedInlineScripts([restoredModule], inlineScriptSession);
78
+ return restoredModule;
79
+ }
80
+ function assertResolvedInlineScripts(modules, inlineScriptSession) {
81
+ const unresolvedRefs = inlineScriptSession.findUnresolvedInlineScriptRefs(modules);
82
+ if (unresolvedRefs.length > 0) {
83
+ throw new Error(`Unresolved inline script references: ${unresolvedRefs.join(', ')}`);
84
+ }
85
+ }
86
+ function replaceNewInlineScriptRefsWithEmptyCode(modules, emptyInlineScriptModuleIds) {
87
+ function replaceInlineScriptRefWithEmptyCode(ownerId, content) {
88
+ const match = content.match(/^inline_script\.(.+)$/);
89
+ if (!match || match[1] !== ownerId) {
90
+ return content;
91
+ }
92
+ emptyInlineScriptModuleIds.add(ownerId);
93
+ return '';
94
+ }
95
+ forEachFlowModule(modules, (module) => {
96
+ if (module.value.type === 'rawscript' && module.value.content) {
97
+ module.value.content = replaceInlineScriptRefWithEmptyCode(module.id, module.value.content);
98
+ }
99
+ });
100
+ }
@@ -0,0 +1,231 @@
1
+ import { describe, expect, it, vi } from 'vitest';
2
+ import { applyFlowJsonUpdate, updateRawScriptModuleContent, validateFlowGroups } from './helperUtils';
3
+ import { createInlineScriptSession } from './inlineScriptsUtils';
4
+ vi.mock('../shared', () => ({
5
+ SPECIAL_MODULE_IDS: {
6
+ PREPROCESSOR: 'preprocessor',
7
+ FAILURE: 'failure'
8
+ }
9
+ }));
10
+ function makeRawScriptModule(id, content) {
11
+ return {
12
+ id,
13
+ summary: id,
14
+ value: {
15
+ type: 'rawscript',
16
+ language: 'bun',
17
+ content,
18
+ input_transforms: {}
19
+ }
20
+ };
21
+ }
22
+ function makeAiAgentWithTool(agentId, toolId, toolContent) {
23
+ return {
24
+ id: agentId,
25
+ summary: agentId,
26
+ value: {
27
+ type: 'aiagent',
28
+ tools: [
29
+ {
30
+ id: toolId,
31
+ summary: toolId,
32
+ value: {
33
+ tool_type: 'flowmodule',
34
+ type: 'rawscript',
35
+ language: 'bun',
36
+ content: toolContent,
37
+ input_transforms: {}
38
+ }
39
+ }
40
+ ],
41
+ input_transforms: {}
42
+ }
43
+ };
44
+ }
45
+ describe('applyFlowJsonUpdate', () => {
46
+ it('accepts new self-referenced inline scripts and initializes them as empty', () => {
47
+ const flow = {
48
+ value: {
49
+ modules: [makeRawScriptModule('process_data', 'existing code')]
50
+ }
51
+ };
52
+ const inlineScriptSession = createInlineScriptSession();
53
+ inlineScriptSession.set('process_data', 'existing code');
54
+ const result = applyFlowJsonUpdate(flow, inlineScriptSession, {
55
+ modules: [
56
+ makeRawScriptModule('process_data', 'inline_script.process_data'),
57
+ makeRawScriptModule('validate_data', 'inline_script.validate_data')
58
+ ]
59
+ });
60
+ const [processDataModule, validateDataModule] = flow.value.modules;
61
+ expect(result.emptyInlineScriptModuleIds).toEqual(['validate_data']);
62
+ expect(inlineScriptSession.has('validate_data')).toBe(false);
63
+ expect(processDataModule?.value.type).toBe('rawscript');
64
+ expect(processDataModule?.value.content).toBe('existing code');
65
+ expect(validateDataModule?.value.type).toBe('rawscript');
66
+ expect(validateDataModule?.value.content).toBe('');
67
+ });
68
+ it('still rejects unresolved inline script references that do not match the module id', () => {
69
+ const flow = {
70
+ value: {
71
+ modules: []
72
+ }
73
+ };
74
+ const inlineScriptSession = createInlineScriptSession();
75
+ expect(() => applyFlowJsonUpdate(flow, inlineScriptSession, {
76
+ modules: [makeRawScriptModule('validate_data', 'inline_script.other_module')]
77
+ })).toThrow('Unresolved inline script references: other_module');
78
+ });
79
+ it('keeps the inline script session unchanged after a failed update so retries still warn', () => {
80
+ const flow = {
81
+ value: {
82
+ modules: [makeRawScriptModule('process_data', 'existing code')]
83
+ }
84
+ };
85
+ const inlineScriptSession = createInlineScriptSession();
86
+ inlineScriptSession.set('process_data', 'existing code');
87
+ expect(() => applyFlowJsonUpdate(flow, inlineScriptSession, {
88
+ modules: [
89
+ makeRawScriptModule('validate_data', 'inline_script.validate_data'),
90
+ makeRawScriptModule('save_results', 'inline_script.other_module')
91
+ ]
92
+ })).toThrow('Unresolved inline script references: other_module');
93
+ expect(inlineScriptSession.getAll()).toEqual({
94
+ process_data: 'existing code'
95
+ });
96
+ expect(flow.value.modules[0]?.value.content).toBe('existing code');
97
+ const result = applyFlowJsonUpdate(flow, inlineScriptSession, {
98
+ modules: [
99
+ makeRawScriptModule('process_data', 'inline_script.process_data'),
100
+ makeRawScriptModule('validate_data', 'inline_script.validate_data')
101
+ ]
102
+ });
103
+ expect(result.emptyInlineScriptModuleIds).toEqual(['validate_data']);
104
+ expect(inlineScriptSession.has('validate_data')).toBe(false);
105
+ });
106
+ it('persists groups passed in the flow json update', () => {
107
+ const flow = {
108
+ value: {
109
+ modules: [
110
+ makeRawScriptModule('fetch_data', 'existing code'),
111
+ makeRawScriptModule('process_data', 'existing code')
112
+ ]
113
+ }
114
+ };
115
+ const inlineScriptSession = createInlineScriptSession();
116
+ inlineScriptSession.set('fetch_data', 'existing code');
117
+ inlineScriptSession.set('process_data', 'existing code');
118
+ applyFlowJsonUpdate(flow, inlineScriptSession, {
119
+ groups: [
120
+ {
121
+ summary: 'Data Ingestion',
122
+ note: 'Fetches and processes data',
123
+ start_id: 'fetch_data',
124
+ end_id: 'process_data'
125
+ }
126
+ ]
127
+ });
128
+ expect(flow.value.groups).toEqual([
129
+ {
130
+ summary: 'Data Ingestion',
131
+ note: 'Fetches and processes data',
132
+ start_id: 'fetch_data',
133
+ end_id: 'process_data'
134
+ }
135
+ ]);
136
+ });
137
+ it('clears groups when an empty array is passed', () => {
138
+ const flow = {
139
+ value: {
140
+ modules: [],
141
+ groups: [
142
+ {
143
+ summary: 'existing',
144
+ start_id: 'a',
145
+ end_id: 'b'
146
+ }
147
+ ]
148
+ }
149
+ };
150
+ const inlineScriptSession = createInlineScriptSession();
151
+ applyFlowJsonUpdate(flow, inlineScriptSession, { groups: [] });
152
+ expect(flow.value.groups).toBeUndefined();
153
+ });
154
+ it('clears groups when null is passed', () => {
155
+ const flow = {
156
+ value: {
157
+ modules: [],
158
+ groups: [
159
+ {
160
+ summary: 'existing',
161
+ start_id: 'a',
162
+ end_id: 'b'
163
+ }
164
+ ]
165
+ }
166
+ };
167
+ const inlineScriptSession = createInlineScriptSession();
168
+ applyFlowJsonUpdate(flow, inlineScriptSession, { groups: null });
169
+ expect(flow.value.groups).toBeUndefined();
170
+ });
171
+ it('leaves groups untouched when not provided in the update', () => {
172
+ const existingGroups = [{ summary: 'existing', start_id: 'a', end_id: 'b' }];
173
+ const flow = {
174
+ value: {
175
+ modules: [makeRawScriptModule('a', 'existing code')],
176
+ groups: existingGroups
177
+ }
178
+ };
179
+ const inlineScriptSession = createInlineScriptSession();
180
+ inlineScriptSession.set('a', 'existing code');
181
+ applyFlowJsonUpdate(flow, inlineScriptSession, {
182
+ modules: [makeRawScriptModule('a', 'inline_script.a')]
183
+ });
184
+ expect(flow.value.groups).toEqual(existingGroups);
185
+ });
186
+ it('updates ai agent rawscript tools in place when changing module code', () => {
187
+ const flow = {
188
+ value: {
189
+ modules: [makeAiAgentWithTool('agent', 'sum', '')]
190
+ }
191
+ };
192
+ const updatedModule = updateRawScriptModuleContent(flow, 'sum', 'export async function main(numbers: number[]) { return 0 }');
193
+ expect(updatedModule?.value.content).toBe('export async function main(numbers: number[]) { return 0 }');
194
+ expect(flow.value.modules[0].value.tools[0].value.content).toBe('export async function main(numbers: number[]) { return 0 }');
195
+ });
196
+ });
197
+ describe('validateFlowGroups', () => {
198
+ it('returns null for null input', () => {
199
+ expect(validateFlowGroups(null)).toBeNull();
200
+ expect(validateFlowGroups(undefined)).toBeNull();
201
+ });
202
+ it('rejects non-array input', () => {
203
+ expect(() => validateFlowGroups({})).toThrow('Flow groups must be an array');
204
+ expect(() => validateFlowGroups('not an array')).toThrow('Flow groups must be an array');
205
+ });
206
+ it('rejects a group that is not an object', () => {
207
+ expect(() => validateFlowGroups(['nope'])).toThrow('Invalid group at index 0: must be an object');
208
+ });
209
+ it('rejects a group with a missing or non-string start_id', () => {
210
+ expect(() => validateFlowGroups([{ end_id: 'b' }])).toThrow('Invalid group at index 0: start_id must be a non-empty string');
211
+ expect(() => validateFlowGroups([{ start_id: '', end_id: 'b' }])).toThrow('Invalid group at index 0: start_id must be a non-empty string');
212
+ expect(() => validateFlowGroups([{ start_id: 42, end_id: 'b' }])).toThrow('Invalid group at index 0: start_id must be a non-empty string');
213
+ });
214
+ it('rejects a group with a missing end_id', () => {
215
+ expect(() => validateFlowGroups([{ start_id: 'a' }])).toThrow('Invalid group at index 0: end_id must be a non-empty string');
216
+ });
217
+ it('accepts a valid group with no moduleIds set', () => {
218
+ const result = validateFlowGroups([{ summary: 'G', start_id: 'a', end_id: 'b' }]);
219
+ expect(result).toEqual([{ summary: 'G', start_id: 'a', end_id: 'b' }]);
220
+ });
221
+ it('rejects start_id or end_id that are not in the moduleIds set', () => {
222
+ const moduleIds = new Set(['a', 'b']);
223
+ expect(() => validateFlowGroups([{ start_id: 'missing', end_id: 'b' }], moduleIds)).toThrow('Invalid group at index 0: start_id "missing" does not match any flow module');
224
+ expect(() => validateFlowGroups([{ start_id: 'a', end_id: 'missing' }], moduleIds)).toThrow('Invalid group at index 0: end_id "missing" does not match any flow module');
225
+ });
226
+ it('accepts groups whose ids are all in the moduleIds set', () => {
227
+ const moduleIds = new Set(['a', 'b', 'c']);
228
+ const result = validateFlowGroups([{ start_id: 'a', end_id: 'c', summary: 'G' }], moduleIds);
229
+ expect(result).toEqual([{ start_id: 'a', end_id: 'c', summary: 'G' }]);
230
+ });
231
+ });
@@ -1,31 +1,12 @@
1
1
  import type { FlowModule } from '../../../../gen';
2
- /**
3
- * Storage for inline scripts extracted from flow modules.
4
- * Maps module IDs to their rawscript content for token-efficient transmission to AI.
5
- */
6
- declare class InlineScriptStore {
7
- private scripts;
2
+ export interface InlineScriptSession {
8
3
  clear(): void;
9
4
  set(moduleId: string, content: string): void;
10
5
  get(moduleId: string): string | undefined;
11
6
  has(moduleId: string): boolean;
12
7
  getAll(): Record<string, string>;
8
+ extractAndReplaceInlineScripts(modules: FlowModule[]): FlowModule[];
9
+ restoreInlineScriptReferences(modules: FlowModule[]): FlowModule[];
10
+ findUnresolvedInlineScriptRefs(modules: FlowModule[]): string[];
13
11
  }
14
- export declare const inlineScriptStore: InlineScriptStore;
15
- /**
16
- * Recursively extracts all rawscript content from flow modules and stores them.
17
- * Replaces the content with references like "inline_script.{module_id}".
18
- */
19
- export declare function extractAndReplaceInlineScripts(modules: FlowModule[]): FlowModule[];
20
- /**
21
- * Recursively restores inline script references back to their full content.
22
- * If content matches pattern "inline_script.{id}", looks up and restores the original.
23
- * If content doesn't match (new/modified script), keeps it as-is.
24
- */
25
- export declare function restoreInlineScriptReferences(modules: FlowModule[]): FlowModule[];
26
- /**
27
- * Recursively finds any unresolved inline script references in flow modules.
28
- * Returns array of module IDs that still have `inline_script.{id}` patterns.
29
- */
30
- export declare function findUnresolvedInlineScriptRefs(modules: FlowModule[]): string[];
31
- export {};
12
+ export declare function createInlineScriptSession(): InlineScriptSession;
@@ -1,8 +1,4 @@
1
- /**
2
- * Storage for inline scripts extracted from flow modules.
3
- * Maps module IDs to their rawscript content for token-efficient transmission to AI.
4
- */
5
- class InlineScriptStore {
1
+ class DefaultInlineScriptSession {
6
2
  scripts = new Map();
7
3
  clear() {
8
4
  this.scripts.clear();
@@ -19,68 +15,69 @@ class InlineScriptStore {
19
15
  getAll() {
20
16
  return Object.fromEntries(this.scripts.entries());
21
17
  }
18
+ extractAndReplaceInlineScripts(modules) {
19
+ return extractAndReplaceInlineScripts(modules, this);
20
+ }
21
+ restoreInlineScriptReferences(modules) {
22
+ return restoreInlineScriptReferences(modules, this);
23
+ }
24
+ findUnresolvedInlineScriptRefs(modules) {
25
+ return findUnresolvedInlineScriptRefs(modules);
26
+ }
27
+ }
28
+ export function createInlineScriptSession() {
29
+ return new DefaultInlineScriptSession();
22
30
  }
23
- export const inlineScriptStore = new InlineScriptStore();
24
- /**
25
- * Recursively extracts all rawscript content from flow modules and stores them.
26
- * Replaces the content with references like "inline_script.{module_id}".
27
- */
28
- export function extractAndReplaceInlineScripts(modules) {
31
+ function extractAndReplaceInlineScripts(modules, session) {
29
32
  if (!modules || !Array.isArray(modules)) {
30
33
  return [];
31
34
  }
32
35
  return modules.map((module) => {
33
36
  const newModule = { ...module };
34
37
  if (newModule.value.type === 'rawscript' && newModule.value.content) {
35
- // Store the original content
36
- inlineScriptStore.set(module.id, newModule.value.content);
37
- // Replace with reference
38
+ session.set(module.id, newModule.value.content);
38
39
  newModule.value = {
39
40
  ...newModule.value,
40
41
  content: `inline_script.${module.id}`
41
42
  };
42
43
  }
43
44
  else if (newModule.value.type === 'forloopflow' || newModule.value.type === 'whileloopflow') {
44
- // Recursively process nested modules in loops
45
45
  if (newModule.value.modules) {
46
46
  newModule.value = {
47
47
  ...newModule.value,
48
- modules: extractAndReplaceInlineScripts(newModule.value.modules)
48
+ modules: extractAndReplaceInlineScripts(newModule.value.modules, session)
49
49
  };
50
50
  }
51
51
  }
52
52
  else if (newModule.value.type === 'branchone') {
53
- // Process branches and default modules
54
53
  if (newModule.value.branches) {
55
54
  newModule.value = {
56
55
  ...newModule.value,
57
56
  branches: newModule.value.branches.map((branch) => ({
58
57
  ...branch,
59
- modules: branch.modules ? extractAndReplaceInlineScripts(branch.modules) : []
58
+ modules: branch.modules ? extractAndReplaceInlineScripts(branch.modules, session) : []
60
59
  }))
61
60
  };
62
61
  }
63
62
  if (newModule.value.default) {
64
63
  newModule.value = {
65
64
  ...newModule.value,
66
- default: extractAndReplaceInlineScripts(newModule.value.default)
65
+ default: extractAndReplaceInlineScripts(newModule.value.default, session)
67
66
  };
68
67
  }
69
68
  }
70
69
  else if (newModule.value.type === 'branchall') {
71
- // Process all branches
72
70
  if (newModule.value.branches) {
73
71
  newModule.value = {
74
72
  ...newModule.value,
75
73
  branches: newModule.value.branches.map((branch) => ({
76
74
  ...branch,
77
- modules: branch.modules ? extractAndReplaceInlineScripts(branch.modules) : []
75
+ modules: branch.modules ? extractAndReplaceInlineScripts(branch.modules, session) : []
78
76
  }))
79
77
  };
80
78
  }
81
79
  }
82
80
  else if (newModule.value.type === 'aiagent') {
83
- // Process AI agent tools
84
81
  if (newModule.value.tools) {
85
82
  newModule.value = {
86
83
  ...newModule.value,
@@ -92,7 +89,7 @@ export function extractAndReplaceInlineScripts(modules) {
92
89
  tool.value.type === 'rawscript' &&
93
90
  'content' in tool.value &&
94
91
  tool.value.content) {
95
- inlineScriptStore.set(tool.id, tool.value.content);
92
+ session.set(tool.id, tool.value.content);
96
93
  return {
97
94
  ...tool,
98
95
  value: {
@@ -109,73 +106,58 @@ export function extractAndReplaceInlineScripts(modules) {
109
106
  return newModule;
110
107
  });
111
108
  }
112
- /**
113
- * Recursively restores inline script references back to their full content.
114
- * If content matches pattern "inline_script.{id}", looks up and restores the original.
115
- * If content doesn't match (new/modified script), keeps it as-is.
116
- */
117
- export function restoreInlineScriptReferences(modules) {
109
+ function restoreInlineScriptReferences(modules, session) {
118
110
  return modules.map((module) => {
119
111
  const newModule = { ...module };
120
112
  if (newModule.value.type === 'rawscript' && newModule.value.content) {
121
- const content = newModule.value.content;
122
- // Check if it's a reference
123
- const match = content.match(/^inline_script\.(.+)$/);
113
+ const match = newModule.value.content.match(/^inline_script\.(.+)$/);
124
114
  if (match) {
125
- const moduleId = match[1];
126
- const storedContent = inlineScriptStore.get(moduleId);
115
+ const storedContent = session.get(match[1]);
127
116
  if (storedContent !== undefined) {
128
- // Restore original content
129
117
  newModule.value = {
130
118
  ...newModule.value,
131
119
  content: storedContent
132
120
  };
133
121
  }
134
- // If not found in store, keep the reference as-is (shouldn't happen normally)
135
122
  }
136
- // If not a reference, it's new/modified content - keep as-is
137
123
  }
138
124
  else if (newModule.value.type === 'forloopflow' || newModule.value.type === 'whileloopflow') {
139
- // Recursively process nested modules in loops
140
125
  if (newModule.value.modules) {
141
126
  newModule.value = {
142
127
  ...newModule.value,
143
- modules: restoreInlineScriptReferences(newModule.value.modules)
128
+ modules: restoreInlineScriptReferences(newModule.value.modules, session)
144
129
  };
145
130
  }
146
131
  }
147
132
  else if (newModule.value.type === 'branchone') {
148
- // Process branches and default modules
149
133
  if (newModule.value.branches) {
150
134
  newModule.value = {
151
135
  ...newModule.value,
152
136
  branches: newModule.value.branches.map((branch) => ({
153
137
  ...branch,
154
- modules: branch.modules ? restoreInlineScriptReferences(branch.modules) : []
138
+ modules: branch.modules ? restoreInlineScriptReferences(branch.modules, session) : []
155
139
  }))
156
140
  };
157
141
  }
158
142
  if (newModule.value.default) {
159
143
  newModule.value = {
160
144
  ...newModule.value,
161
- default: restoreInlineScriptReferences(newModule.value.default)
145
+ default: restoreInlineScriptReferences(newModule.value.default, session)
162
146
  };
163
147
  }
164
148
  }
165
149
  else if (newModule.value.type === 'branchall') {
166
- // Process all branches
167
150
  if (newModule.value.branches) {
168
151
  newModule.value = {
169
152
  ...newModule.value,
170
153
  branches: newModule.value.branches.map((branch) => ({
171
154
  ...branch,
172
- modules: branch.modules ? restoreInlineScriptReferences(branch.modules) : []
155
+ modules: branch.modules ? restoreInlineScriptReferences(branch.modules, session) : []
173
156
  }))
174
157
  };
175
158
  }
176
159
  }
177
160
  else if (newModule.value.type === 'aiagent') {
178
- // Process AI agent tools
179
161
  if (newModule.value.tools) {
180
162
  newModule.value = {
181
163
  ...newModule.value,
@@ -187,11 +169,9 @@ export function restoreInlineScriptReferences(modules) {
187
169
  tool.value.type === 'rawscript' &&
188
170
  'content' in tool.value &&
189
171
  tool.value.content) {
190
- const content = tool.value.content;
191
- const match = content.match(/^inline_script\.(.+)$/);
172
+ const match = tool.value.content.match(/^inline_script\.(.+)$/);
192
173
  if (match) {
193
- const toolId = match[1];
194
- const storedContent = inlineScriptStore.get(toolId);
174
+ const storedContent = session.get(match[1]);
195
175
  if (storedContent !== undefined) {
196
176
  return {
197
177
  ...tool,
@@ -211,11 +191,7 @@ export function restoreInlineScriptReferences(modules) {
211
191
  return newModule;
212
192
  });
213
193
  }
214
- /**
215
- * Recursively finds any unresolved inline script references in flow modules.
216
- * Returns array of module IDs that still have `inline_script.{id}` patterns.
217
- */
218
- export function findUnresolvedInlineScriptRefs(modules) {
194
+ function findUnresolvedInlineScriptRefs(modules) {
219
195
  const unresolvedRefs = [];
220
196
  function checkModule(module) {
221
197
  if (module.value.type === 'rawscript' && module.value.content) {
@@ -247,7 +223,6 @@ export function findUnresolvedInlineScriptRefs(modules) {
247
223
  }
248
224
  }
249
225
  else if (module.value.type === 'aiagent') {
250
- // Check AI agent tools
251
226
  if (module.value.tools) {
252
227
  for (const tool of module.value.tools) {
253
228
  if (tool.value &&