windmill-components 1.677.0 → 1.687.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 (358) hide show
  1. package/package/components/AppConnectInner.svelte +6 -0
  2. package/package/components/CiTestResults.svelte +64 -0
  3. package/package/components/CiTestResults.svelte.d.ts +7 -0
  4. package/package/components/CompareWorkspaces.svelte +626 -418
  5. package/package/components/DBManager.svelte +35 -4
  6. package/package/components/DBManager.svelte.d.ts +2 -0
  7. package/package/components/DBManagerContent.svelte +3 -1
  8. package/package/components/DBManagerContent.svelte.d.ts +3 -0
  9. package/package/components/DBManagerDrawer.svelte +145 -3
  10. package/package/components/DBTableEditor.svelte +14 -4
  11. package/package/components/DatatablePicker.svelte +2 -5
  12. package/package/components/DatatableSchemaDiff.svelte +531 -0
  13. package/package/components/DatatableSchemaDiff.svelte.d.ts +29 -0
  14. package/package/components/DedicatedWorkersSelector.svelte +4 -2
  15. package/package/components/DefaultTagsInner.svelte +42 -2
  16. package/package/components/DeployWorkspaceDrawer.svelte +1 -1
  17. package/package/components/Dev.svelte +20 -3
  18. package/package/components/Editor.svelte +1 -1
  19. package/package/components/EditorBar.svelte +1 -1
  20. package/package/components/EditorBar.svelte.d.ts +1 -1
  21. package/package/components/FlowStatusViewerInner.svelte +269 -220
  22. package/package/components/FlowTimeline.svelte +1 -1
  23. package/package/components/FolderEditor.svelte +189 -4
  24. package/package/components/ForkWorkspaceBanner.svelte +82 -11
  25. package/package/components/GlobalUserOffboardingModal.svelte +293 -0
  26. package/package/components/GlobalUserOffboardingModal.svelte.d.ts +10 -0
  27. package/package/components/InstanceSettings.svelte +22 -3
  28. package/package/components/Login.svelte +22 -10
  29. package/package/components/ModuleTest.svelte +2 -1
  30. package/package/components/NoMainFuncBadge.svelte +1 -1
  31. package/package/components/OffboardItemsBox.svelte +56 -0
  32. package/package/components/OffboardItemsBox.svelte.d.ts +12 -0
  33. package/package/components/OffboardReassignControls.svelte +47 -0
  34. package/package/components/OffboardReassignControls.svelte.d.ts +20 -0
  35. package/package/components/OffboardWorkspaceSection.svelte +110 -0
  36. package/package/components/OffboardWorkspaceSection.svelte.d.ts +24 -0
  37. package/package/components/OnBehalfOfSelector.svelte +21 -3
  38. package/package/components/OnBehalfOfSelector.svelte.d.ts +7 -0
  39. package/package/components/QueueAlerts.svelte +10 -10
  40. package/package/components/ResourcePicker.svelte +2 -2
  41. package/package/components/ScriptBuilder.svelte +52 -11
  42. package/package/components/ScriptEditor.svelte +1 -3
  43. package/package/components/ScriptEditor.svelte.d.ts +1 -1
  44. package/package/components/ShareModal.svelte +236 -98
  45. package/package/components/SuperadminSettingsInner.svelte +362 -315
  46. package/package/components/UserOffboardingModal.svelte +238 -0
  47. package/package/components/UserOffboardingModal.svelte.d.ts +10 -0
  48. package/package/components/WorkspaceDeployLayout.svelte +3 -3
  49. package/package/components/WorkspaceDeployLayout.svelte.d.ts +1 -0
  50. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +4 -2
  51. package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +12 -0
  52. package/package/components/assets/AssetsDropdownButton.svelte +1 -1
  53. package/package/components/common/confirmationModal/ConfirmationModal.svelte +1 -1
  54. package/package/components/common/table/AppRow.svelte +3 -3
  55. package/package/components/common/table/FlowRow.svelte +3 -3
  56. package/package/components/common/table/RawAppRow.svelte +4 -4
  57. package/package/components/common/table/Row.svelte +6 -2
  58. package/package/components/common/table/ScriptRow.svelte +11 -3
  59. package/package/components/copilot/chat/AIChatManager.svelte.js +2 -2
  60. package/package/components/copilot/chat/anthropic.d.ts +7 -1
  61. package/package/components/copilot/chat/anthropic.js +5 -2
  62. package/package/components/copilot/chat/app/core.js +129 -1
  63. package/package/components/copilot/chat/app/core.test.js +192 -0
  64. package/package/components/copilot/chat/chatLoop.d.ts +3 -0
  65. package/package/components/copilot/chat/chatLoop.js +13 -5
  66. package/package/components/copilot/chat/flow/FlowAIChat.svelte +55 -76
  67. package/package/components/copilot/chat/flow/core.d.ts +13 -3
  68. package/package/components/copilot/chat/flow/core.js +467 -116
  69. package/package/components/copilot/chat/flow/helperUtils.d.ts +19 -0
  70. package/package/components/copilot/chat/flow/helperUtils.js +68 -0
  71. package/package/components/copilot/chat/flow/helperUtils.test.js +116 -0
  72. package/package/components/copilot/chat/flow/inlineScriptsUtils.d.ts +5 -24
  73. package/package/components/copilot/chat/flow/inlineScriptsUtils.js +30 -55
  74. package/package/components/copilot/chat/flow/utils.test.js +59 -0
  75. package/package/components/copilot/chat/openai-responses.d.ts +7 -1
  76. package/package/components/copilot/chat/openai-responses.js +5 -2
  77. package/package/components/copilot/chat/shared.d.ts +1 -2
  78. package/package/components/copilot/chat/shared.js +94 -52
  79. package/package/components/copilot/chat/tokenUsage.d.ts +23 -0
  80. package/package/components/copilot/chat/tokenUsage.js +42 -0
  81. package/package/components/copilot/lib.d.ts +5 -1
  82. package/package/components/copilot/lib.js +21 -5
  83. package/package/components/deploymentRequest/DeploymentRequestPanel.svelte +337 -0
  84. package/package/components/deploymentRequest/DeploymentRequestPanel.svelte.d.ts +15 -0
  85. package/package/components/details/CopyableCodeBlock.svelte +18 -8
  86. package/package/components/details/CopyableCodeBlock.svelte.d.ts +1 -0
  87. package/package/components/flows/FlowAssetsHandler.svelte +19 -21
  88. package/package/components/flows/agentToolTree.d.ts +17 -0
  89. package/package/components/flows/agentToolTree.js +114 -0
  90. package/package/components/flows/agentToolTree.test.d.ts +1 -0
  91. package/package/components/flows/agentToolTree.test.js +86 -0
  92. package/package/components/flows/agentToolUtils.d.ts +0 -5
  93. package/package/components/flows/agentToolUtils.js +0 -49
  94. package/package/components/flows/content/FlowLoop.svelte +7 -4
  95. package/package/components/flows/content/FlowModuleDeleteAfterUse.svelte +15 -7
  96. package/package/components/flows/content/FlowSettings.svelte +29 -0
  97. package/package/components/flows/dfs.d.ts +6 -2
  98. package/package/components/flows/dfs.js +19 -11
  99. package/package/components/flows/flowDeleteController.d.ts +32 -0
  100. package/package/components/flows/flowDeleteController.js +54 -0
  101. package/package/components/flows/flowDeleteController.test.d.ts +1 -0
  102. package/package/components/flows/flowDeleteController.test.js +121 -0
  103. package/package/components/flows/flowDeleteUtils.d.ts +48 -0
  104. package/package/components/flows/flowDeleteUtils.js +150 -0
  105. package/package/components/flows/flowDeleteUtils.test.d.ts +1 -0
  106. package/package/components/flows/flowDeleteUtils.test.js +131 -0
  107. package/package/components/flows/flowDiff.d.ts +2 -47
  108. package/package/components/flows/flowDiff.js +16 -293
  109. package/package/components/flows/flowDiff.testUtils.d.ts +8 -0
  110. package/package/components/flows/flowDiff.testUtils.js +26 -0
  111. package/package/components/flows/flowDiffManager.svelte.js +20 -75
  112. package/package/components/flows/flowDiffManager.svelte.test.js +103 -2
  113. package/package/components/flows/flowExplorer.d.ts +4 -0
  114. package/package/components/flows/flowExplorer.js +7 -30
  115. package/package/components/flows/flowState.d.ts +1 -0
  116. package/package/components/flows/flowStateUtils.svelte.js +6 -1
  117. package/package/components/flows/flowStore.svelte.d.ts +1 -1
  118. package/package/components/flows/flowTree.d.ts +91 -0
  119. package/package/components/flows/flowTree.js +326 -0
  120. package/package/components/flows/flowTree.test.d.ts +1 -0
  121. package/package/components/flows/flowTree.test.js +236 -0
  122. package/package/components/flows/map/FlowJobsMenu.svelte +36 -30
  123. package/package/components/flows/map/FlowModuleSchemaItem.svelte +1 -1
  124. package/package/components/flows/map/FlowModuleSchemaMap.svelte +70 -227
  125. package/package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +0 -2
  126. package/package/components/flows/pickers/PickHubScriptQuick.svelte +2 -2
  127. package/package/components/flows/pickers/PickHubScriptQuick.svelte.d.ts +1 -1
  128. package/package/components/flows/previousResults.js +13 -41
  129. package/package/components/flows/previousResults.test.d.ts +1 -0
  130. package/package/components/flows/previousResults.test.js +65 -0
  131. package/package/components/flows/propPicker/OutputPicker.svelte +2 -1
  132. package/package/components/flows/propPicker/OutputPickerInner.svelte +41 -4
  133. package/package/components/flows/propPicker/StepHistory.svelte +9 -1
  134. package/package/components/git_sync/GitSyncContext.svelte.js +11 -5
  135. package/package/components/git_sync/GitSyncRepositoryCard.svelte +2 -29
  136. package/package/components/git_sync/PullWorkspaceModal.svelte +6 -7
  137. package/package/components/graph/FlowGraphV2.svelte +2 -2
  138. package/package/components/graph/FlowGraphV2.svelte.d.ts +1 -0
  139. package/package/components/graph/groupedModulesProxy.svelte.d.ts +10 -0
  140. package/package/components/graph/groupedModulesProxy.svelte.js +17 -1
  141. package/package/components/graph/renderers/triggers/TriggersBadge.svelte +5 -2
  142. package/package/components/home/HomeConnectDrawer.svelte +125 -0
  143. package/package/components/home/HomeConnectDrawer.svelte.d.ts +5 -0
  144. package/package/components/icons/GithubIcon.svelte +4 -4
  145. package/package/components/icons/GithubIcon.svelte.d.ts +5 -2
  146. package/package/components/instanceSettings/ExternalJwtTokens.svelte +85 -0
  147. package/package/components/instanceSettings/ExternalJwtTokens.svelte.d.ts +12 -0
  148. package/package/components/instanceSettings/GhesAppSettings.svelte +17 -0
  149. package/package/components/instanceSettings/IndexerMemorySettings.svelte +56 -29
  150. package/package/components/instanceSettings/SecretBackendConfig.svelte +9 -2
  151. package/package/components/instanceSettings.d.ts +1 -0
  152. package/package/components/instanceSettings.js +42 -8
  153. package/package/components/offboarding-utils.d.ts +11 -0
  154. package/package/components/offboarding-utils.js +100 -0
  155. package/package/components/raw_apps/RawAppDataTableDrawer.svelte +1 -1
  156. package/package/components/raw_apps/RawAppEditor.svelte +27 -0
  157. package/package/components/raw_apps/RawAppEditorHeader.svelte +6 -1
  158. package/package/components/raw_apps/RawAppEditorHeader.svelte.d.ts +1 -0
  159. package/package/components/raw_apps/RawAppYamlEditor.svelte +81 -0
  160. package/package/components/raw_apps/RawAppYamlEditor.svelte.d.ts +20 -0
  161. package/package/components/raw_apps/datatableUtils.svelte.js +1 -1
  162. package/package/components/runs/runsFilter.d.ts +1 -1
  163. package/package/components/script_builder.d.ts +1 -1
  164. package/package/components/select/Select.svelte +2 -1
  165. package/package/components/select/Select.svelte.d.ts +1 -0
  166. package/package/components/settings/CreateToken.svelte +113 -64
  167. package/package/components/settings/CreateToken.svelte.d.ts +3 -0
  168. package/package/components/settings/WorkspaceUserSettings.svelte +34 -28
  169. package/package/components/sidebar/SidebarContent.svelte +58 -2
  170. package/package/components/sidebar/WorkspaceMenu.svelte +8 -4
  171. package/package/components/triggers/AddTriggersButton.svelte +11 -0
  172. package/package/components/triggers/PermissionedAsLine.svelte +37 -3
  173. package/package/components/triggers/PermissionedAsLine.svelte.d.ts +6 -0
  174. package/package/components/triggers/TriggersEditor.svelte +5 -1
  175. package/package/components/triggers/TriggersWrapper.svelte +10 -0
  176. package/package/components/triggers/email/EmailTriggerEditorInner.svelte +13 -11
  177. package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +13 -11
  178. package/package/components/triggers/http/RouteEditorConfigSection.svelte +15 -7
  179. package/package/components/triggers/http/RouteEditorInner.svelte +14 -14
  180. package/package/components/triggers/http/RoutesGenerator.svelte +6 -1
  181. package/package/components/triggers/http/RoutesPanel.svelte +1 -1
  182. package/package/components/triggers/http/utils.d.ts +1 -1
  183. package/package/components/triggers/http/utils.js +2 -2
  184. package/package/components/triggers/kafka/KafkaTriggerEditorInner.svelte +13 -11
  185. package/package/components/triggers/mqtt/MqttEditorConfigSection.svelte.d.ts +1 -1
  186. package/package/components/triggers/mqtt/MqttTriggerEditorInner.svelte +13 -11
  187. package/package/components/triggers/native/NativeTriggerEditor.svelte +3 -0
  188. package/package/components/triggers/native/services/github/GitHubTriggerForm.svelte +118 -0
  189. package/package/components/triggers/native/services/github/GitHubTriggerForm.svelte.d.ts +17 -0
  190. package/package/components/triggers/native/utils.js +14 -0
  191. package/package/components/triggers/nats/NatsTriggerEditor.svelte.d.ts +4 -3
  192. package/package/components/triggers/nats/NatsTriggerEditorInner.svelte +13 -11
  193. package/package/components/triggers/postgres/PostgresTriggerEditor.svelte.d.ts +4 -3
  194. package/package/components/triggers/postgres/PostgresTriggerEditorInner.svelte +13 -11
  195. package/package/components/triggers/schedules/ScheduleEditorInner.svelte +13 -11
  196. package/package/components/triggers/sqs/SqsTriggerEditor.svelte.d.ts +4 -3
  197. package/package/components/triggers/sqs/SqsTriggerEditorInner.svelte +13 -11
  198. package/package/components/triggers/triggers.svelte.js +1 -0
  199. package/package/components/triggers/utils.js +27 -6
  200. package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +13 -11
  201. package/package/components/triggers.d.ts +1 -1
  202. package/package/components/useFolderDefaultPermissionedAs.svelte.d.ts +13 -0
  203. package/package/components/useFolderDefaultPermissionedAs.svelte.js +63 -0
  204. package/package/components/workspaceSettings/CreateWorkspace.svelte +16 -677
  205. package/package/components/workspaceSettings/CreateWorkspaceInner.svelte +604 -0
  206. package/package/components/workspaceSettings/CreateWorkspaceInner.svelte.d.ts +7 -0
  207. package/package/components/workspaceSettings/CustomInstanceDbSelect.svelte +27 -25
  208. package/package/components/workspaceSettings/CustomInstanceDbWizardModal.svelte +46 -8
  209. package/package/components/workspaceSettings/DataTableSettings.svelte +27 -22
  210. package/package/components/workspaceSettings/DucklakeSettings.svelte +1 -1
  211. package/package/components/workspaceSettings/ForkDatatableSection.svelte +228 -0
  212. package/package/components/workspaceSettings/ForkDatatableSection.svelte.d.ts +28 -0
  213. package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +8 -2
  214. package/package/components/workspaceSettings/RulesetEditor.svelte +27 -2
  215. package/package/components/workspaceSettings/VolumeStorageSettings.svelte +1 -1
  216. package/package/components/workspaceSettings/WorkspaceIntegrations.svelte +17 -1
  217. package/package/consts.d.ts +3 -0
  218. package/package/consts.js +10 -0
  219. package/package/gen/core/OpenAPI.js +1 -1
  220. package/package/gen/schemas.gen.d.ts +1172 -164
  221. package/package/gen/schemas.gen.js +1168 -157
  222. package/package/gen/services.gen.d.ts +511 -6
  223. package/package/gen/services.gen.js +1023 -23
  224. package/package/gen/types.gen.d.ts +2278 -151
  225. package/package/githubApp.js +5 -1
  226. package/package/hubPaths.json +1 -4
  227. package/package/infer.js +13 -1
  228. package/package/infer.svelte.js +10 -1
  229. package/package/monaco_workers/sqlTypePlugin.worker.d.ts +10 -0
  230. package/package/monaco_workers/sqlTypePlugin.worker.js +39 -0
  231. package/package/script_helpers.d.ts +8 -2
  232. package/package/script_helpers.js +14 -0
  233. package/package/stores.d.ts +4 -0
  234. package/package/stores.js +1 -0
  235. package/package/system_prompts/prompts.d.ts +4 -3
  236. package/package/system_prompts/prompts.js +270 -20
  237. package/package/templates/ci_test_bun.ts.template +19 -0
  238. package/package/templates/ci_test_python.py.template +18 -0
  239. package/package/utils_deployable.d.ts +11 -7
  240. package/package/utils_workspace_deploy.d.ts +8 -8
  241. package/package/utils_workspace_deploy.js +86 -420
  242. package/package.json +4 -4
  243. package/package/components/copilot/chat/__tests__/app/appChat.eval.test.js +0 -153
  244. package/package/components/copilot/chat/__tests__/app/appEvalComparison.d.ts +0 -21
  245. package/package/components/copilot/chat/__tests__/app/appEvalComparison.js +0 -136
  246. package/package/components/copilot/chat/__tests__/app/appEvalHelpers.d.ts +0 -15
  247. package/package/components/copilot/chat/__tests__/app/appEvalHelpers.js +0 -107
  248. package/package/components/copilot/chat/__tests__/app/appEvalRunner.d.ts +0 -50
  249. package/package/components/copilot/chat/__tests__/app/appEvalRunner.js +0 -93
  250. package/package/components/copilot/chat/__tests__/app/appFixtureLoader.d.ts +0 -29
  251. package/package/components/copilot/chat/__tests__/app/appFixtureLoader.js +0 -134
  252. package/package/components/copilot/chat/__tests__/app/appResultsWriter.d.ts +0 -30
  253. package/package/components/copilot/chat/__tests__/app/appResultsWriter.js +0 -197
  254. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/createFolder/main.d.ts +0 -10
  255. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/createFolder/main.js +0 -9
  256. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/createFolder/meta.json +0 -4
  257. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/deleteItem/main.d.ts +0 -6
  258. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/deleteItem/main.js +0 -5
  259. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/deleteItem/meta.json +0 -4
  260. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFiles/main.d.ts +0 -12
  261. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFiles/main.js +0 -14
  262. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFiles/meta.json +0 -4
  263. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFolders/main.d.ts +0 -8
  264. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFolders/main.js +0 -25
  265. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFolders/meta.json +0 -4
  266. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/moveItem/main.d.ts +0 -7
  267. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/moveItem/main.js +0 -5
  268. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/moveItem/meta.json +0 -4
  269. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/renameItem/main.d.ts +0 -8
  270. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/renameItem/main.js +0 -5
  271. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/renameItem/meta.json +0 -4
  272. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Breadcrumb.d.ts +0 -10
  273. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Breadcrumb.tsx +0 -26
  274. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileItem.d.ts +0 -10
  275. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileItem.tsx +0 -79
  276. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileList.d.ts +0 -10
  277. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileList.tsx +0 -46
  278. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FolderTree.d.ts +0 -10
  279. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FolderTree.tsx +0 -56
  280. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Toolbar.d.ts +0 -6
  281. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Toolbar.tsx +0 -59
  282. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/index.d.ts +0 -16
  283. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/index.tsx +0 -119
  284. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/addToCart/main.d.ts +0 -15
  285. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/addToCart/main.js +0 -14
  286. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/addToCart/meta.json +0 -4
  287. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/calculateTotal/main.d.ts +0 -14
  288. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/calculateTotal/main.js +0 -5
  289. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/calculateTotal/meta.json +0 -4
  290. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/getProducts/main.d.ts +0 -6
  291. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/getProducts/main.js +0 -41
  292. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/getProducts/meta.json +0 -4
  293. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/removeFromCart/main.d.ts +0 -15
  294. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/removeFromCart/main.js +0 -3
  295. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/removeFromCart/meta.json +0 -4
  296. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/Cart.d.ts +0 -9
  297. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/Cart.tsx +0 -51
  298. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductCard.d.ts +0 -8
  299. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductCard.tsx +0 -27
  300. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductList.d.ts +0 -8
  301. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductList.tsx +0 -18
  302. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/index.d.ts +0 -12
  303. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/index.tsx +0 -81
  304. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/decrementCounter/main.d.ts +0 -3
  305. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/decrementCounter/main.js +0 -3
  306. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/decrementCounter/meta.json +0 -4
  307. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/incrementCounter/main.d.ts +0 -3
  308. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/incrementCounter/main.js +0 -3
  309. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/incrementCounter/meta.json +0 -4
  310. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/frontend/index.d.ts +0 -2
  311. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/frontend/index.tsx +0 -38
  312. package/package/components/copilot/chat/__tests__/app/variants/baseline.d.ts +0 -6
  313. package/package/components/copilot/chat/__tests__/app/variants/baseline.js +0 -10
  314. package/package/components/copilot/chat/__tests__/app/variants/index.d.ts +0 -3
  315. package/package/components/copilot/chat/__tests__/app/variants/index.js +0 -3
  316. package/package/components/copilot/chat/__tests__/app/variants/streamlined.d.ts +0 -6
  317. package/package/components/copilot/chat/__tests__/app/variants/streamlined.js +0 -137
  318. package/package/components/copilot/chat/__tests__/flow/expected/test1.json +0 -134
  319. package/package/components/copilot/chat/__tests__/flow/expected/test2.json +0 -183
  320. package/package/components/copilot/chat/__tests__/flow/expected/test3.json +0 -204
  321. package/package/components/copilot/chat/__tests__/flow/expected/test4.json +0 -175
  322. package/package/components/copilot/chat/__tests__/flow/expected/test5_modify_simple.json +0 -68
  323. package/package/components/copilot/chat/__tests__/flow/expected/test6_modify_medium.json +0 -142
  324. package/package/components/copilot/chat/__tests__/flow/expected/test7_modify_complex.json +0 -136
  325. package/package/components/copilot/chat/__tests__/flow/flowChat.eval.test.js +0 -294
  326. package/package/components/copilot/chat/__tests__/flow/flowEvalComparison.d.ts +0 -17
  327. package/package/components/copilot/chat/__tests__/flow/flowEvalComparison.js +0 -49
  328. package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.d.ts +0 -12
  329. package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.js +0 -79
  330. package/package/components/copilot/chat/__tests__/flow/flowEvalRunner.d.ts +0 -50
  331. package/package/components/copilot/chat/__tests__/flow/flowEvalRunner.js +0 -102
  332. package/package/components/copilot/chat/__tests__/flow/initial/test5_initial.json +0 -53
  333. package/package/components/copilot/chat/__tests__/flow/initial/test6_initial.json +0 -68
  334. package/package/components/copilot/chat/__tests__/flow/initial/test7_initial.json +0 -120
  335. package/package/components/copilot/chat/__tests__/flow/variants/baseline.d.ts +0 -6
  336. package/package/components/copilot/chat/__tests__/flow/variants/baseline.js +0 -10
  337. package/package/components/copilot/chat/__tests__/flow/variants/index.d.ts +0 -3
  338. package/package/components/copilot/chat/__tests__/flow/variants/index.js +0 -3
  339. package/package/components/copilot/chat/__tests__/flow/variants/minimal-single-tool.d.ts +0 -15
  340. package/package/components/copilot/chat/__tests__/flow/variants/minimal-single-tool.js +0 -388
  341. package/package/components/copilot/chat/__tests__/shared/baseEvalRunner.d.ts +0 -45
  342. package/package/components/copilot/chat/__tests__/shared/baseEvalRunner.js +0 -121
  343. package/package/components/copilot/chat/__tests__/shared/baseLLMEvaluator.d.ts +0 -28
  344. package/package/components/copilot/chat/__tests__/shared/baseLLMEvaluator.js +0 -96
  345. package/package/components/copilot/chat/__tests__/shared/baseResultsWriter.d.ts +0 -32
  346. package/package/components/copilot/chat/__tests__/shared/baseResultsWriter.js +0 -130
  347. package/package/components/copilot/chat/__tests__/shared/baseVariants.d.ts +0 -45
  348. package/package/components/copilot/chat/__tests__/shared/baseVariants.js +0 -57
  349. package/package/components/copilot/chat/__tests__/shared/index.d.ts +0 -10
  350. package/package/components/copilot/chat/__tests__/shared/index.js +0 -5
  351. package/package/components/copilot/chat/__tests__/shared/types.d.ts +0 -105
  352. package/package/components/copilot/chat/__tests__/shared/types.js +0 -9
  353. package/package/components/copilot/chat/flow/utils.d.ts +0 -14
  354. package/package/components/copilot/chat/flow/utils.js +0 -108
  355. package/package/components/flows/agentToolUtils.test.js +0 -55
  356. /package/package/components/copilot/chat/{__tests__/app/appChat.eval.test.d.ts → app/core.test.d.ts} +0 -0
  357. /package/package/components/copilot/chat/{__tests__/flow/flowChat.eval.test.d.ts → flow/helperUtils.test.d.ts} +0 -0
  358. /package/package/components/{flows/agentToolUtils.test.d.ts → copilot/chat/flow/utils.test.d.ts} +0 -0
@@ -11,6 +11,7 @@ export const SPECIAL_MODULE_IDS = {
11
11
  };
12
12
  import { get } from 'svelte/store';
13
13
  import { workspaceStore } from '../../../stores';
14
+ import { findModuleInModules } from '../../flows/flowTree';
14
15
  import { z } from 'zod';
15
16
  import { ScriptService, FlowService, JobService } from '../../../gen';
16
17
  import uFuzzy from '@leeoniya/ufuzzy';
@@ -45,6 +46,51 @@ function prettifyCodeArguments(content) {
45
46
  codeContent = codeContent.replace(/\\\\/g, '\\');
46
47
  return codeContent;
47
48
  }
49
+ function decodeEscapedToolString(content) {
50
+ return content
51
+ .replace(/\\n/g, '\n')
52
+ .replace(/\\t/g, '\t')
53
+ .replace(/\\"/g, '"')
54
+ .replace(/\\\\/g, '\\');
55
+ }
56
+ function extractJsonStringProperty(content, property) {
57
+ const propertyKey = `"${property}"`;
58
+ const propertyIndex = content.indexOf(propertyKey);
59
+ if (propertyIndex === -1) {
60
+ return undefined;
61
+ }
62
+ let cursor = propertyIndex + propertyKey.length;
63
+ while (cursor < content.length && /\s/.test(content[cursor] ?? '')) {
64
+ cursor++;
65
+ }
66
+ if (content[cursor] !== ':') {
67
+ return undefined;
68
+ }
69
+ cursor++;
70
+ while (cursor < content.length && /\s/.test(content[cursor] ?? '')) {
71
+ cursor++;
72
+ }
73
+ if (content[cursor] !== '"') {
74
+ return undefined;
75
+ }
76
+ const start = cursor + 1;
77
+ let escaped = false;
78
+ for (let index = start; index < content.length; index++) {
79
+ const char = content[index];
80
+ if (escaped) {
81
+ escaped = false;
82
+ continue;
83
+ }
84
+ if (char === '\\') {
85
+ escaped = true;
86
+ continue;
87
+ }
88
+ if (char === '"') {
89
+ return content.slice(start, index);
90
+ }
91
+ }
92
+ return content.slice(start);
93
+ }
48
94
  // Prettify function for set_module_code - extracts code from moduleId/code JSON
49
95
  function prettifySetModuleCode(content) {
50
96
  let codeContent = content;
@@ -56,19 +102,37 @@ function prettifySetModuleCode(content) {
56
102
  }
57
103
  }
58
104
  catch {
59
- // If JSON is incomplete during streaming, try to extract code property manually
60
- const codeMatch = content.match(/"code"\s*:\s*"([\s\S]*?)(?:"\s*}?\s*$|$)/);
61
- if (codeMatch) {
62
- codeContent = codeMatch[1];
105
+ const extractedCode = extractJsonStringProperty(content, 'code');
106
+ if (extractedCode !== undefined) {
107
+ codeContent = extractedCode;
63
108
  }
64
109
  }
65
110
  }
66
- // Convert escape sequences
67
- codeContent = codeContent.replace(/\\n/g, '\n');
68
- codeContent = codeContent.replace(/\\t/g, '\t');
69
- codeContent = codeContent.replace(/\\"/g, '"');
70
- codeContent = codeContent.replace(/\\\\/g, '\\');
71
- return codeContent;
111
+ return decodeEscapedToolString(codeContent);
112
+ }
113
+ function prettifyPatchReplacement(content) {
114
+ let newString;
115
+ if (typeof content === 'string' && content.trim().startsWith('{')) {
116
+ try {
117
+ const parsed = JSON.parse(content);
118
+ if (typeof parsed.new_string === 'string') {
119
+ newString = parsed.new_string;
120
+ }
121
+ }
122
+ catch {
123
+ newString = extractJsonStringProperty(content, 'new_string');
124
+ }
125
+ }
126
+ if (newString === undefined) {
127
+ return content;
128
+ }
129
+ return decodeEscapedToolString(newString);
130
+ }
131
+ function prettifyPatchFlowJson(content) {
132
+ return prettifyPatchReplacement(content);
133
+ }
134
+ function prettifyPatchFile(content) {
135
+ return prettifyPatchReplacement(content);
72
136
  }
73
137
  // Prettify function for module value JSON - extracts the 'value' property and formats it
74
138
  function prettifyModuleValue(content) {
@@ -128,6 +192,8 @@ function prettifyModuleValue(content) {
128
192
  export const TOOL_PRETTIFY_MAP = {
129
193
  edit_code: prettifyCodeArguments,
130
194
  set_module_code: prettifySetModuleCode,
195
+ patch_flow_json: prettifyPatchFlowJson,
196
+ patch_file: prettifyPatchFile,
131
197
  add_module: prettifyModuleValue,
132
198
  modify_module: prettifyModuleValue
133
199
  };
@@ -148,37 +214,6 @@ export const extractAllModules = (modules) => {
148
214
  return [m];
149
215
  });
150
216
  };
151
- export const findModuleById = (modules, moduleId) => {
152
- for (const module of modules) {
153
- if (module.id === moduleId) {
154
- return module;
155
- }
156
- if (module.value.type === 'forloopflow' || module.value.type === 'whileloopflow') {
157
- const found = findModuleById(module.value.modules, moduleId);
158
- if (found) {
159
- return found;
160
- }
161
- }
162
- if (module.value.type === 'branchall') {
163
- const allModules = module.value.branches.flatMap((b) => b.modules);
164
- const found = findModuleById(allModules, moduleId);
165
- if (found) {
166
- return found;
167
- }
168
- }
169
- if (module.value.type === 'branchone') {
170
- const allModules = [
171
- ...module.value.branches.flatMap((b) => b.modules),
172
- ...module.value.default
173
- ];
174
- const found = findModuleById(allModules, moduleId);
175
- if (found) {
176
- return found;
177
- }
178
- }
179
- }
180
- return undefined;
181
- };
182
217
  const applyCodePieceToCodeContext = (codePieces, codeContext) => {
183
218
  let code = codeContext.split('\n');
184
219
  let shiftOffset = 0;
@@ -203,12 +238,12 @@ export function applyCodePiecesToFlowModules(codePieces, flowModules) {
203
238
  const modifiedModules = JSON.parse(JSON.stringify(flowModules));
204
239
  // Apply code pieces to each module
205
240
  for (const [moduleId, pieces] of moduleCodePieces) {
206
- const module = findModuleById(modifiedModules, moduleId);
241
+ const module = findModuleInModules(modifiedModules, moduleId);
207
242
  if (module && module.value.type === 'rawscript' && module.value.content) {
208
243
  module.value.content = applyCodePieceToCodeContext(pieces, module.value.content);
209
244
  }
210
245
  }
211
- return JSON.stringify(modifiedModules, null, 2);
246
+ return modifiedModules;
212
247
  }
213
248
  export function buildContextString(selectedContext) {
214
249
  const dbTemplate = `- {title}: SCHEMA: \n{schema}\n`;
@@ -398,6 +433,7 @@ export function createToolDef(zodSchema, name, description, { strict = true } =
398
433
  delete parameters.$schema;
399
434
  if (!parameters.required)
400
435
  parameters.required = [];
436
+ normalizeToolParameterSchema(parameters);
401
437
  return {
402
438
  type: 'function',
403
439
  function: {
@@ -446,9 +482,9 @@ export const createSearchHubScriptsTool = (withContent = false) => ({
446
482
  }
447
483
  });
448
484
  /**
449
- * Recursively removes format: null or format: '' from a JSON schema object
485
+ * Recursively normalizes JSON Schema quirks that specific providers reject.
450
486
  */
451
- function removeNullFormats(schema) {
487
+ function normalizeToolParameterSchema(schema) {
452
488
  if (!schema || typeof schema !== 'object') {
453
489
  return;
454
490
  }
@@ -459,22 +495,29 @@ function removeNullFormats(schema) {
459
495
  // Recurse into properties
460
496
  if (schema.properties && typeof schema.properties === 'object') {
461
497
  for (const key of Object.keys(schema.properties)) {
462
- removeNullFormats(schema.properties[key]);
498
+ normalizeToolParameterSchema(schema.properties[key]);
463
499
  }
464
500
  }
465
501
  // Recurse into items (for arrays)
466
502
  if (schema.items) {
467
- removeNullFormats(schema.items);
503
+ if (Array.isArray(schema.items)) {
504
+ for (const item of schema.items) {
505
+ normalizeToolParameterSchema(item);
506
+ }
507
+ }
508
+ else {
509
+ normalizeToolParameterSchema(schema.items);
510
+ }
468
511
  }
469
512
  // Recurse into additionalProperties if it's an object schema
470
513
  if (schema.additionalProperties && typeof schema.additionalProperties === 'object') {
471
- removeNullFormats(schema.additionalProperties);
514
+ normalizeToolParameterSchema(schema.additionalProperties);
472
515
  }
473
516
  // Recurse into allOf, anyOf, oneOf
474
517
  for (const key of ['allOf', 'anyOf', 'oneOf']) {
475
518
  if (Array.isArray(schema[key])) {
476
519
  for (const subSchema of schema[key]) {
477
- removeNullFormats(subSchema);
520
+ normalizeToolParameterSchema(subSchema);
478
521
  }
479
522
  }
480
523
  }
@@ -489,8 +532,8 @@ export async function buildSchemaForTool(toolDef, schemaBuilder) {
489
532
  throw new Error(`Invalid flow inputs schema: ${invalidProperties.join(', ')}`);
490
533
  }
491
534
  toolDef.function.parameters = { ...schema, additionalProperties: false };
492
- // recursively remove any format: null or format: '' (empty string) from schema
493
- removeNullFormats(toolDef.function.parameters);
535
+ // recursively normalize provider-incompatible schema fragments
536
+ normalizeToolParameterSchema(toolDef.function.parameters);
494
537
  // OPEN AI models don't support strict mode well with schema with complex properties, so we disable it
495
538
  const model = getCurrentModel();
496
539
  if (model.provider === 'openai' || model.provider === 'azure_openai') {
@@ -689,7 +732,6 @@ export function formatScriptLintResult(lintResult) {
689
732
  }
690
733
  return response;
691
734
  }
692
- // ============= Workspace Runnables Search =============
693
735
  export class WorkspaceRunnablesSearch {
694
736
  uf;
695
737
  scriptsWorkspace = undefined;
@@ -0,0 +1,23 @@
1
+ export interface ChatTokenUsage {
2
+ prompt: number;
3
+ completion: number;
4
+ total: number;
5
+ }
6
+ export declare function emptyChatTokenUsage(): ChatTokenUsage;
7
+ export declare function addChatTokenUsage(total: ChatTokenUsage, usage: ChatTokenUsage | null | undefined): ChatTokenUsage;
8
+ export declare function anthropicUsageToChatTokenUsage(usage: {
9
+ input_tokens?: number | null;
10
+ output_tokens?: number | null;
11
+ cache_creation_input_tokens?: number | null;
12
+ cache_read_input_tokens?: number | null;
13
+ } | null | undefined): ChatTokenUsage;
14
+ export declare function openAIResponsesUsageToChatTokenUsage(usage: {
15
+ input_tokens?: number | null;
16
+ output_tokens?: number | null;
17
+ total_tokens?: number | null;
18
+ } | null | undefined): ChatTokenUsage;
19
+ export declare function openAICompletionsUsageToChatTokenUsage(usage: {
20
+ prompt_tokens?: number | null;
21
+ completion_tokens?: number | null;
22
+ total_tokens?: number | null;
23
+ } | null | undefined): ChatTokenUsage;
@@ -0,0 +1,42 @@
1
+ export function emptyChatTokenUsage() {
2
+ return { prompt: 0, completion: 0, total: 0 };
3
+ }
4
+ export function addChatTokenUsage(total, usage) {
5
+ if (!usage) {
6
+ return total;
7
+ }
8
+ return {
9
+ prompt: total.prompt + usage.prompt,
10
+ completion: total.completion + usage.completion,
11
+ total: total.total + usage.total
12
+ };
13
+ }
14
+ export function anthropicUsageToChatTokenUsage(usage) {
15
+ const prompt = (usage?.input_tokens ?? 0) +
16
+ (usage?.cache_creation_input_tokens ?? 0) +
17
+ (usage?.cache_read_input_tokens ?? 0);
18
+ const completion = usage?.output_tokens ?? 0;
19
+ return {
20
+ prompt,
21
+ completion,
22
+ total: prompt + completion
23
+ };
24
+ }
25
+ export function openAIResponsesUsageToChatTokenUsage(usage) {
26
+ const prompt = usage?.input_tokens ?? 0;
27
+ const completion = usage?.output_tokens ?? 0;
28
+ return {
29
+ prompt,
30
+ completion,
31
+ total: usage?.total_tokens ?? prompt + completion
32
+ };
33
+ }
34
+ export function openAICompletionsUsageToChatTokenUsage(usage) {
35
+ const prompt = usage?.prompt_tokens ?? 0;
36
+ const completion = usage?.completion_tokens ?? 0;
37
+ return {
38
+ prompt,
39
+ completion,
40
+ total: usage?.total_tokens ?? prompt + completion
41
+ };
42
+ }
@@ -7,6 +7,7 @@ import { type Writable } from 'svelte/store';
7
7
  import { type Script } from '../../gen';
8
8
  import { type Tool, type ToolCallbacks } from './chat/shared';
9
9
  import type { Stream } from 'openai/core/streaming.mjs';
10
+ import { type ChatTokenUsage } from './chat/tokenUsage';
10
11
  export declare const SUPPORTED_LANGUAGES: Set<string>;
11
12
  interface AIProviderDetails {
12
13
  label: string;
@@ -103,7 +104,10 @@ export declare function parseOpenAICompletion(completion: Stream<ChatCompletionC
103
104
  }, messages: ChatCompletionMessageParam[], addedMessages: ChatCompletionMessageParam[], tools: Tool<any>[], helpers: any, _abortController?: AbortController, // unused, for signature compatibility with parseAnthropicCompletion
104
105
  options?: {
105
106
  workspace?: string;
106
- }): Promise<boolean>;
107
+ }): Promise<{
108
+ shouldContinue: boolean;
109
+ tokenUsage: ChatTokenUsage;
110
+ }>;
107
111
  export declare function getResponseFromEvent(part: OpenAI.Chat.Completions.ChatCompletionChunk): string;
108
112
  export declare function copilot(scriptOptions: CopilotOptions, generatedCode: Writable<string>, abortController: AbortController, generatedExplanation?: Writable<string>): Promise<string>;
109
113
  export {};
@@ -11,6 +11,7 @@ import { getNonStreamingOpenAIResponsesCompletion, getOpenAIResponsesCompletionS
11
11
  import { convertOpenAIToAnthropicMessages } from './chat/anthropic';
12
12
  import { generateRandomString } from '../../utils';
13
13
  import { copilotInfo, getCurrentModel } from '../../aiStore';
14
+ import { emptyChatTokenUsage, openAICompletionsUsageToChatTokenUsage } from './chat/tokenUsage';
14
15
  export const SUPPORTED_LANGUAGES = new Set(Object.keys(GEN_CONFIG.prompts));
15
16
  const OPENAI_MODELS = [
16
17
  'gpt-5',
@@ -309,7 +310,7 @@ export function createOpenAIProxyClient(baseURL) {
309
310
  baseURL,
310
311
  apiKey: 'fake-key',
311
312
  defaultHeaders: {
312
- Authorization: '' // a non empty string will be unable to access Windmill backend proxy
313
+ Authorization: OpenAPI.TOKEN ? `Bearer ${OpenAPI.TOKEN}` : ''
313
314
  },
314
315
  dangerouslyAllowBrowser: true
315
316
  });
@@ -318,7 +319,8 @@ export function createAnthropicProxyClient(baseURL) {
318
319
  return new Anthropic({
319
320
  baseURL,
320
321
  apiKey: 'fake-key',
321
- dangerouslyAllowBrowser: true
322
+ dangerouslyAllowBrowser: true,
323
+ defaultHeaders: OpenAPI.TOKEN ? { Authorization: `Bearer ${OpenAPI.TOKEN}` } : undefined
322
324
  });
323
325
  }
324
326
  class WorkspacedAIClients {
@@ -653,7 +655,17 @@ export async function getCompletion(messages, abortController, tools, options) {
653
655
  }
654
656
  // Use Completions API for other providers
655
657
  const client = options?.openaiClient ?? workspaceAIClients.getOpenaiClient();
656
- const completion = client.chat.completions.create(config, {
658
+ const completionConfig = (provider === 'openai' || provider === 'azure_openai' || provider === 'googleai') &&
659
+ config.stream
660
+ ? {
661
+ ...config,
662
+ stream_options: {
663
+ ...(config.stream_options ?? {}),
664
+ include_usage: true
665
+ }
666
+ }
667
+ : config;
668
+ const completion = client.chat.completions.create(completionConfig, {
657
669
  signal: abortController.signal,
658
670
  headers: {
659
671
  'X-Provider': provider
@@ -675,8 +687,12 @@ export async function parseOpenAICompletion(completion, callbacks, messages, add
675
687
  options) {
676
688
  const finalToolCalls = {};
677
689
  let malformedFunctionCallError = false;
690
+ let tokenUsage = emptyChatTokenUsage();
678
691
  let answer = '';
679
692
  for await (const chunk of completion) {
693
+ if ('usage' in chunk && chunk.usage) {
694
+ tokenUsage = openAICompletionsUsageToChatTokenUsage(chunk.usage);
695
+ }
680
696
  if (!('choices' in chunk && chunk.choices.length > 0 && 'delta' in chunk.choices[0])) {
681
697
  continue;
682
698
  }
@@ -835,9 +851,9 @@ options) {
835
851
  addedMessages.push(toolResponse);
836
852
  }
837
853
  else {
838
- return false;
854
+ return { shouldContinue: false, tokenUsage };
839
855
  }
840
- return true;
856
+ return { shouldContinue: true, tokenUsage };
841
857
  }
842
858
  export function getResponseFromEvent(part) {
843
859
  return part.choices?.[0]?.delta?.content || '';