windmill-components 1.655.2 → 1.665.1

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 (650) hide show
  1. package/package/components/ApiConnectForm.svelte +6 -6
  2. package/package/components/ApiConnectForm.svelte.d.ts +3 -2
  3. package/package/components/AppConnectDrawer.svelte +3 -1
  4. package/package/components/AppConnectDrawer.svelte.d.ts +2 -0
  5. package/package/components/AppConnectInner.svelte +137 -72
  6. package/package/components/AppConnectInner.svelte.d.ts +1 -0
  7. package/package/components/CompareWorkspaces.svelte +32 -24
  8. package/package/components/DBManager.svelte +7 -13
  9. package/package/components/DBTable.svelte +2 -2
  10. package/package/components/DBTableEditor.svelte +39 -31
  11. package/package/components/DBTableEditor.svelte.d.ts +2 -2
  12. package/package/components/DedicatedWorkersSelector.svelte +292 -85
  13. package/package/components/DeployWorkspace.svelte +30 -26
  14. package/package/components/Dev.svelte +7 -2
  15. package/package/components/Dev.svelte.d.ts +3 -0
  16. package/package/components/Editor.svelte +17 -13
  17. package/package/components/EditorBar.svelte.d.ts +1 -1
  18. package/package/components/FilterSearchbar.svelte +1 -1
  19. package/package/components/FirstStepInputs.svelte +0 -1
  20. package/package/components/FlowBuilder.svelte +5 -0
  21. package/package/components/FlowGraphDiffViewer.svelte +3 -0
  22. package/package/components/FlowGraphViewer.svelte +7 -4
  23. package/package/components/FlowGraphViewer.svelte.d.ts +1 -0
  24. package/package/components/FlowGraphViewerStep.svelte +3 -3
  25. package/package/components/FlowGraphViewerStep.svelte.d.ts +1 -0
  26. package/package/components/FlowPreviewContent.svelte +11 -1
  27. package/package/components/FlowStatusViewer.svelte +4 -1
  28. package/package/components/FlowStatusViewer.svelte.d.ts +3 -1
  29. package/package/components/FlowStatusViewerInner.svelte +46 -11
  30. package/package/components/FlowStatusViewerInner.svelte.d.ts +4 -1
  31. package/package/components/FlowStatusWaitingForEvents.svelte +48 -103
  32. package/package/components/FlowTimeline.svelte +76 -84
  33. package/package/components/FlowViewer.svelte +40 -22
  34. package/package/components/FlowViewer.svelte.d.ts +8 -2
  35. package/package/components/GroupEditor.svelte +7 -9
  36. package/package/components/HistoricList.svelte +12 -4
  37. package/package/components/InstanceGroupEditor.svelte +92 -19
  38. package/package/components/InstanceSetting.svelte +16 -6
  39. package/package/components/InstanceSettings.svelte +51 -7
  40. package/package/components/InstanceSettings.svelte.d.ts +2 -1
  41. package/package/components/JobLoader.svelte +5 -4
  42. package/package/components/JobLoader.svelte.d.ts +1 -1
  43. package/package/components/Login.svelte +9 -1
  44. package/package/components/NoMainFuncBadge.svelte +2 -2
  45. package/package/components/OnBehalfOfSelector.svelte +49 -37
  46. package/package/components/OnBehalfOfSelector.svelte.d.ts +16 -6
  47. package/package/components/ResourceEditor.svelte +16 -11
  48. package/package/components/ResourceEditor.svelte.d.ts +1 -0
  49. package/package/components/ResourceEditorDrawer.svelte +3 -1
  50. package/package/components/ResourceEditorDrawer.svelte.d.ts +6 -2
  51. package/package/components/ResourcePicker.svelte +10 -5
  52. package/package/components/ResourcePicker.svelte.d.ts +2 -0
  53. package/package/components/S3FilePickerInner.svelte +12 -4
  54. package/package/components/SchemaForm.svelte +20 -14
  55. package/package/components/SchemaForm.svelte.d.ts +2 -2
  56. package/package/components/ScriptBuilder.svelte +158 -18
  57. package/package/components/ScriptEditor.svelte +674 -150
  58. package/package/components/ScriptEditor.svelte.d.ts +7 -3
  59. package/package/components/SuperadminSettings.svelte +4 -1
  60. package/package/components/SuperadminSettingsInner.svelte +176 -67
  61. package/package/components/SuperadminSettingsInner.svelte.d.ts +3 -1
  62. package/package/components/SyncResourceTypes.svelte +31 -0
  63. package/package/components/SyncResourceTypes.svelte.d.ts +6 -0
  64. package/package/components/TimelineBar.svelte +14 -8
  65. package/package/components/TimelineBar.svelte.d.ts +1 -0
  66. package/package/components/WorkerGroup.svelte +11 -4
  67. package/package/components/WorkflowTimeline.svelte +386 -58
  68. package/package/components/WorkflowTimeline.svelte.d.ts +6 -1
  69. package/package/components/WorkspaceDependenciesEditor.svelte +32 -2
  70. package/package/components/apps/components/display/dbtable/DeleteRow.svelte +2 -2
  71. package/package/components/apps/components/display/dbtable/InsertRowRunnable.svelte +2 -2
  72. package/package/components/apps/components/display/dbtable/UpdateCell.svelte +2 -2
  73. package/package/components/apps/components/display/dbtable/metadata.js +44 -222
  74. package/package/components/apps/components/display/dbtable/queries/count.d.ts +9 -0
  75. package/package/components/apps/components/display/dbtable/queries/delete.d.ts +9 -0
  76. package/package/components/apps/components/display/dbtable/queries/insert.d.ts +9 -0
  77. package/package/components/apps/components/display/dbtable/queries/relationalKeys.d.ts +7 -0
  78. package/package/components/apps/components/display/dbtable/queries/relationalKeys.js +1 -1
  79. package/package/components/apps/components/display/dbtable/queries/select.d.ts +9 -0
  80. package/package/components/apps/components/display/dbtable/queries/update.d.ts +9 -0
  81. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +11 -9
  82. package/package/components/apps/editor/appUtilsS3.js +2 -2
  83. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +53 -10
  84. package/package/components/common/clearableInput/ClearableInput.svelte +3 -7
  85. package/package/components/common/confirmationModal/ConfirmationModal.svelte +7 -1
  86. package/package/components/common/confirmationModal/ConfirmationModal.svelte.d.ts +1 -0
  87. package/package/components/common/drawer/Disposable.svelte +24 -2
  88. package/package/components/common/drawer/Disposable.svelte.d.ts +5 -0
  89. package/package/components/common/modal/Modal.svelte +84 -58
  90. package/package/components/common/table/AppRow.svelte.d.ts +1 -1
  91. package/package/components/common/table/FlowRow.svelte.d.ts +1 -1
  92. package/package/components/common/table/ScriptRow.svelte +31 -3
  93. package/package/components/common/table/ScriptRow.svelte.d.ts +1 -1
  94. package/package/components/copilot/MetadataGen.svelte +8 -5
  95. package/package/components/copilot/MetadataGen.svelte.d.ts +1 -0
  96. package/package/components/copilot/TestAIKey.svelte +2 -1
  97. package/package/components/copilot/TestAIKey.svelte.d.ts +1 -0
  98. package/package/components/copilot/chat/AIChatManager.svelte.js +62 -80
  99. package/package/components/copilot/chat/HistoryManager.svelte.d.ts +1 -0
  100. package/package/components/copilot/chat/HistoryManager.svelte.js +3 -0
  101. package/package/components/copilot/chat/__tests__/app/appChat.eval.test.js +47 -31
  102. package/package/components/copilot/chat/__tests__/app/appEvalComparison.d.ts +1 -6
  103. package/package/components/copilot/chat/__tests__/app/appEvalComparison.js +18 -13
  104. package/package/components/copilot/chat/__tests__/app/appEvalRunner.d.ts +14 -5
  105. package/package/components/copilot/chat/__tests__/app/appEvalRunner.js +13 -12
  106. package/package/components/copilot/chat/__tests__/flow/flowChat.eval.test.js +46 -29
  107. package/package/components/copilot/chat/__tests__/flow/flowEvalComparison.js +1 -4
  108. package/package/components/copilot/chat/__tests__/flow/flowEvalRunner.d.ts +14 -5
  109. package/package/components/copilot/chat/__tests__/flow/flowEvalRunner.js +13 -12
  110. package/package/components/copilot/chat/__tests__/shared/baseEvalRunner.d.ts +5 -8
  111. package/package/components/copilot/chat/__tests__/shared/baseEvalRunner.js +82 -108
  112. package/package/components/copilot/chat/__tests__/shared/baseLLMEvaluator.d.ts +4 -7
  113. package/package/components/copilot/chat/__tests__/shared/baseLLMEvaluator.js +19 -11
  114. package/package/components/copilot/chat/__tests__/shared/types.d.ts +3 -0
  115. package/package/components/copilot/chat/anthropic.d.ts +9 -2
  116. package/package/components/copilot/chat/anthropic.js +12 -6
  117. package/package/components/copilot/chat/app/core.js +5 -12
  118. package/package/components/copilot/chat/chatLoop.d.ts +40 -0
  119. package/package/components/copilot/chat/chatLoop.js +97 -0
  120. package/package/components/copilot/chat/openai-responses.d.ts +8 -2
  121. package/package/components/copilot/chat/openai-responses.js +17 -17
  122. package/package/components/copilot/chat/shared.d.ts +2 -1
  123. package/package/components/copilot/chat/shared.js +2 -2
  124. package/package/components/copilot/lib.d.ts +14 -5
  125. package/package/components/copilot/lib.js +68 -48
  126. package/package/components/dbOps.d.ts +2 -2
  127. package/package/components/dbOps.js +129 -53
  128. package/package/components/debug/debugUtils.d.ts +5 -0
  129. package/package/components/debug/debugUtils.js +20 -0
  130. package/package/components/debug/index.d.ts +1 -1
  131. package/package/components/debug/index.js +3 -7
  132. package/package/components/flows/CreateActionsFlow.svelte +221 -43
  133. package/package/components/flows/DebounceLimit.svelte +42 -9
  134. package/package/components/flows/common/FlowCard.svelte +2 -1
  135. package/package/components/flows/common/FlowCard.svelte.d.ts +1 -0
  136. package/package/components/flows/common/FlowCardHeader.svelte +14 -10
  137. package/package/components/flows/common/FlowCardHeader.svelte.d.ts +1 -0
  138. package/package/components/flows/content/AgentToolWrapper.svelte +2 -1
  139. package/package/components/flows/content/AgentToolWrapper.svelte.d.ts +1 -0
  140. package/package/components/flows/content/FlowEditorPanel.svelte +1 -0
  141. package/package/components/flows/content/FlowModuleComponent.svelte +32 -18
  142. package/package/components/flows/content/FlowModuleComponent.svelte.d.ts +1 -0
  143. package/package/components/flows/content/FlowModuleDebounce.svelte +46 -0
  144. package/package/components/flows/content/FlowModuleDebounce.svelte.d.ts +8 -0
  145. package/package/components/flows/content/FlowModuleEarlyStop.svelte +26 -5
  146. package/package/components/flows/content/FlowModuleWrapper.svelte +1 -0
  147. package/package/components/flows/content/FlowRetries.svelte +57 -57
  148. package/package/components/flows/content/FlowSelectionPanel.svelte +9 -14
  149. package/package/components/flows/content/FlowSelectionPanel.svelte.d.ts +1 -0
  150. package/package/components/flows/content/FlowSettings.svelte +6 -6
  151. package/package/components/flows/content/ScriptEditorDrawer.svelte +1 -1
  152. package/package/components/flows/content/SuspendDrawer.svelte +0 -18
  153. package/package/components/flows/header/FlowYamlEditor.svelte +20 -4
  154. package/package/components/flows/map/FlowErrorHandlerItem.svelte +32 -14
  155. package/package/components/flows/map/FlowErrorHandlerItem.svelte.d.ts +1 -0
  156. package/package/components/flows/map/FlowModuleSchemaItem.svelte +7 -10
  157. package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte +1 -8
  158. package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte.d.ts +0 -2
  159. package/package/components/flows/map/FlowModuleSchemaMap.svelte +343 -137
  160. package/package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +1 -0
  161. package/package/components/flows/map/FlowStickyNode.svelte +24 -16
  162. package/package/components/flows/map/FlowStickyNode.svelte.d.ts +1 -0
  163. package/package/components/flows/map/VirtualItemWrapper.svelte +1 -1
  164. package/package/components/flows/pickers/PickHubScriptQuick.svelte.d.ts +1 -1
  165. package/package/components/flows/propPicker/OutputPickerInner.svelte +5 -1
  166. package/package/components/flows/scheduleUtils.js +3 -1
  167. package/package/components/flows/utils.svelte.js +6 -1
  168. package/package/components/git_sync/GitSyncContext.svelte.js +13 -2
  169. package/package/components/git_sync/GitSyncSection.svelte +135 -99
  170. package/package/components/graph/DragGhost.svelte +11 -2
  171. package/package/components/graph/FlowGraphV2.svelte +138 -42
  172. package/package/components/graph/FlowGraphV2.svelte.d.ts +15 -1
  173. package/package/components/graph/GroupActionBar.svelte +124 -0
  174. package/package/components/graph/GroupActionBar.svelte.d.ts +20 -0
  175. package/package/components/graph/GroupHeader.svelte +98 -0
  176. package/package/components/graph/GroupHeader.svelte.d.ts +11 -0
  177. package/package/components/graph/GroupHeaderBlock.svelte +58 -0
  178. package/package/components/graph/GroupHeaderBlock.svelte.d.ts +13 -0
  179. package/package/components/graph/GroupModuleIcons.svelte +163 -0
  180. package/package/components/graph/GroupModuleIcons.svelte.d.ts +11 -0
  181. package/package/components/graph/GroupNodeCard.svelte +127 -0
  182. package/package/components/graph/GroupNodeCard.svelte.d.ts +18 -0
  183. package/package/components/graph/GroupNoteArea.svelte +132 -0
  184. package/package/components/graph/GroupNoteArea.svelte.d.ts +11 -0
  185. package/package/components/graph/GroupOverlay.svelte +71 -0
  186. package/package/components/graph/GroupOverlay.svelte.d.ts +12 -0
  187. package/package/components/graph/MiniFlowGraph.svelte +17 -2
  188. package/package/components/graph/SelectionBoundingBox.svelte +14 -14
  189. package/package/components/graph/compoundLayout.d.ts +17 -1
  190. package/package/components/graph/compoundLayout.js +129 -14
  191. package/package/components/graph/flowStructure.d.ts +63 -0
  192. package/package/components/graph/flowStructure.js +422 -0
  193. package/package/components/graph/flowStructure.test.d.ts +1 -0
  194. package/package/components/graph/flowStructure.test.js +205 -0
  195. package/package/components/graph/graphBuilder.svelte.d.ts +52 -3
  196. package/package/components/graph/graphBuilder.svelte.js +170 -67
  197. package/package/components/graph/graphContext.d.ts +7 -0
  198. package/package/components/graph/groupDetectionUtils.d.ts +24 -1
  199. package/package/components/graph/groupDetectionUtils.js +101 -1
  200. package/package/components/graph/groupEditor.svelte.d.ts +105 -0
  201. package/package/components/graph/groupEditor.svelte.js +253 -0
  202. package/package/components/graph/groupedModulesProxy.svelte.d.ts +55 -0
  203. package/package/components/graph/groupedModulesProxy.svelte.js +130 -0
  204. package/package/components/graph/model.d.ts +2 -1
  205. package/package/components/graph/moveManager.svelte.js +0 -3
  206. package/package/components/graph/nodeExtraSpace.d.ts +32 -0
  207. package/package/components/graph/nodeExtraSpace.js +113 -0
  208. package/package/components/graph/noteColors.d.ts +1 -0
  209. package/package/components/graph/noteColors.js +20 -10
  210. package/package/components/graph/noteUtils.svelte.d.ts +0 -18
  211. package/package/components/graph/noteUtils.svelte.js +6 -41
  212. package/package/components/graph/renderers/edges/BaseEdge.svelte +26 -11
  213. package/package/components/graph/renderers/nodes/AIToolNode.svelte +24 -49
  214. package/package/components/graph/renderers/nodes/AIToolNode.svelte.d.ts +1 -4
  215. package/package/components/graph/renderers/nodes/AssetNode.svelte +1 -27
  216. package/package/components/graph/renderers/nodes/AssetNode.svelte.d.ts +0 -4
  217. package/package/components/graph/renderers/nodes/CollapsedGroupNode.svelte +85 -0
  218. package/package/components/graph/renderers/nodes/CollapsedGroupNode.svelte.d.ts +8 -0
  219. package/package/components/graph/renderers/nodes/ForLoopStartNode.svelte +3 -2
  220. package/package/components/graph/renderers/nodes/GroupEndNode.svelte +9 -0
  221. package/package/components/graph/renderers/nodes/GroupEndNode.svelte.d.ts +6 -0
  222. package/package/components/graph/renderers/nodes/GroupHeadNode.svelte +20 -0
  223. package/package/components/graph/renderers/nodes/GroupHeadNode.svelte.d.ts +8 -0
  224. package/package/components/graph/renderers/nodes/ModuleNode.svelte +8 -5
  225. package/package/components/graph/renderers/triggers/TriggersWrapper.svelte +1 -1
  226. package/package/components/graph/util.d.ts +5 -1
  227. package/package/components/graph/util.js +7 -5
  228. package/package/components/home/Item.svelte +1 -0
  229. package/package/components/home/ItemsList.svelte +1 -1
  230. package/package/components/icons/ActiveCampaignIcon.svelte +10 -0
  231. package/package/components/icons/ActiveCampaignIcon.svelte.d.ts +7 -0
  232. package/package/components/icons/AlgoliaIcon.svelte +7 -0
  233. package/package/components/icons/AlgoliaIcon.svelte.d.ts +7 -0
  234. package/package/components/icons/ApolloIcon.svelte +7 -0
  235. package/package/components/icons/ApolloIcon.svelte.d.ts +7 -0
  236. package/package/components/icons/BambooHrIcon.svelte +7 -0
  237. package/package/components/icons/BambooHrIcon.svelte.d.ts +7 -0
  238. package/package/components/icons/BaremetricsIcon.svelte +7 -0
  239. package/package/components/icons/BaremetricsIcon.svelte.d.ts +7 -0
  240. package/package/components/icons/BitlyIcon.svelte +7 -0
  241. package/package/components/icons/BitlyIcon.svelte.d.ts +7 -0
  242. package/package/components/icons/BloggerIcon.svelte +7 -0
  243. package/package/components/icons/BloggerIcon.svelte.d.ts +7 -0
  244. package/package/components/icons/BlueskyIcon.svelte +7 -0
  245. package/package/components/icons/BlueskyIcon.svelte.d.ts +7 -0
  246. package/package/components/icons/BoxIcon.svelte +7 -0
  247. package/package/components/icons/BoxIcon.svelte.d.ts +7 -0
  248. package/package/components/icons/BrevoIcon.svelte +7 -0
  249. package/package/components/icons/BrevoIcon.svelte.d.ts +7 -0
  250. package/package/components/icons/BrexIcon.svelte +7 -0
  251. package/package/components/icons/BrexIcon.svelte.d.ts +7 -0
  252. package/package/components/icons/BrowserlessIcon.svelte +7 -0
  253. package/package/components/icons/BrowserlessIcon.svelte.d.ts +7 -0
  254. package/package/components/icons/BubbleIcon.svelte +11 -0
  255. package/package/components/icons/BubbleIcon.svelte.d.ts +7 -0
  256. package/package/components/icons/BuildkiteIcon.svelte +7 -0
  257. package/package/components/icons/BuildkiteIcon.svelte.d.ts +7 -0
  258. package/package/components/icons/CalcomIcon.svelte +1 -1
  259. package/package/components/icons/CalendlyIcon.svelte +7 -0
  260. package/package/components/icons/CalendlyIcon.svelte.d.ts +7 -0
  261. package/package/components/icons/CircleCiIcon.svelte +7 -0
  262. package/package/components/icons/CircleCiIcon.svelte.d.ts +7 -0
  263. package/package/components/icons/CiscoIcon.svelte +7 -0
  264. package/package/components/icons/CiscoIcon.svelte.d.ts +7 -0
  265. package/package/components/icons/ClearbitIcon.svelte +7 -0
  266. package/package/components/icons/ClearbitIcon.svelte.d.ts +7 -0
  267. package/package/components/icons/ClerkIcon.svelte +7 -0
  268. package/package/components/icons/ClerkIcon.svelte.d.ts +7 -0
  269. package/package/components/icons/CloseIcon.svelte +37 -0
  270. package/package/components/icons/CloseIcon.svelte.d.ts +7 -0
  271. package/package/components/icons/CloudinaryIcon.svelte +7 -0
  272. package/package/components/icons/CloudinaryIcon.svelte.d.ts +7 -0
  273. package/package/components/icons/CockroachDbIcon.svelte +7 -0
  274. package/package/components/icons/CockroachDbIcon.svelte.d.ts +7 -0
  275. package/package/components/icons/CodaIcon.svelte +7 -0
  276. package/package/components/icons/CodaIcon.svelte.d.ts +7 -0
  277. package/package/components/icons/CohereIcon.svelte +16 -0
  278. package/package/components/icons/CohereIcon.svelte.d.ts +7 -0
  279. package/package/components/icons/CoinMarketCapIcon.svelte +7 -0
  280. package/package/components/icons/CoinMarketCapIcon.svelte.d.ts +7 -0
  281. package/package/components/icons/CoinbaseIcon.svelte +7 -0
  282. package/package/components/icons/CoinbaseIcon.svelte.d.ts +7 -0
  283. package/package/components/icons/ConfluenceIcon.svelte +7 -0
  284. package/package/components/icons/ConfluenceIcon.svelte.d.ts +7 -0
  285. package/package/components/icons/ContentfulIcon.svelte +7 -0
  286. package/package/components/icons/ContentfulIcon.svelte.d.ts +7 -0
  287. package/package/components/icons/ConvertKitIcon.svelte +7 -0
  288. package/package/components/icons/ConvertKitIcon.svelte.d.ts +7 -0
  289. package/package/components/icons/DatoCmsIcon.svelte +7 -0
  290. package/package/components/icons/DatoCmsIcon.svelte.d.ts +7 -0
  291. package/package/components/icons/DeelIcon.svelte +7 -0
  292. package/package/components/icons/DeelIcon.svelte.d.ts +7 -0
  293. package/package/components/icons/DeepLIcon.svelte +7 -0
  294. package/package/components/icons/DeepLIcon.svelte.d.ts +7 -0
  295. package/package/components/icons/DigitalOceanIcon.svelte +7 -0
  296. package/package/components/icons/DigitalOceanIcon.svelte.d.ts +7 -0
  297. package/package/components/icons/DiscourseIcon.svelte +7 -0
  298. package/package/components/icons/DiscourseIcon.svelte.d.ts +7 -0
  299. package/package/components/icons/DocusignIcon.svelte +7 -0
  300. package/package/components/icons/DocusignIcon.svelte.d.ts +7 -0
  301. package/package/components/icons/DropboxIcon.svelte +7 -0
  302. package/package/components/icons/DropboxIcon.svelte.d.ts +7 -0
  303. package/package/components/icons/EdgeDbIcon.svelte +16 -20
  304. package/package/components/icons/EventbriteIcon.svelte +10 -0
  305. package/package/components/icons/EventbriteIcon.svelte.d.ts +7 -0
  306. package/package/components/icons/FigmaIcon.svelte +7 -0
  307. package/package/components/icons/FigmaIcon.svelte.d.ts +7 -0
  308. package/package/components/icons/FlyIcon.svelte +7 -0
  309. package/package/components/icons/FlyIcon.svelte.d.ts +7 -0
  310. package/package/components/icons/FreshdeskIcon.svelte +7 -0
  311. package/package/components/icons/FreshdeskIcon.svelte.d.ts +7 -0
  312. package/package/components/icons/FrontAppIcon.svelte +7 -0
  313. package/package/components/icons/FrontAppIcon.svelte.d.ts +7 -0
  314. package/package/components/icons/GhostCmsIcon.svelte +7 -0
  315. package/package/components/icons/GhostCmsIcon.svelte.d.ts +7 -0
  316. package/package/components/icons/GiphyIcon.svelte +7 -0
  317. package/package/components/icons/GiphyIcon.svelte.d.ts +7 -0
  318. package/package/components/icons/GitBookIcon.svelte +7 -0
  319. package/package/components/icons/GitBookIcon.svelte.d.ts +7 -0
  320. package/package/components/icons/GroqIcon.svelte +7 -0
  321. package/package/components/icons/GroqIcon.svelte.d.ts +7 -0
  322. package/package/components/icons/HoneybadgerIcon.svelte +7 -0
  323. package/package/components/icons/HoneybadgerIcon.svelte.d.ts +7 -0
  324. package/package/components/icons/HttpIcon.svelte +1 -0
  325. package/package/components/icons/IftttIcon.svelte +7 -0
  326. package/package/components/icons/IftttIcon.svelte.d.ts +7 -0
  327. package/package/components/icons/IntercomIcon.svelte +7 -0
  328. package/package/components/icons/IntercomIcon.svelte.d.ts +7 -0
  329. package/package/components/icons/JoomlaIcon.svelte +7 -0
  330. package/package/components/icons/JoomlaIcon.svelte.d.ts +7 -0
  331. package/package/components/icons/LineIcon.svelte +7 -0
  332. package/package/components/icons/LineIcon.svelte.d.ts +7 -0
  333. package/package/components/icons/LinearIcon.svelte +7 -0
  334. package/package/components/icons/LinearIcon.svelte.d.ts +7 -0
  335. package/package/components/icons/LinodeIcon.svelte +7 -0
  336. package/package/components/icons/LinodeIcon.svelte.d.ts +7 -0
  337. package/package/components/icons/LumaAiIcon.svelte +39 -0
  338. package/package/components/icons/LumaAiIcon.svelte.d.ts +7 -0
  339. package/package/components/icons/MSTeamsIcon.svelte +20 -38
  340. package/package/components/icons/MSTeamsIcon.svelte.d.ts +2 -0
  341. package/package/components/icons/MagentoIcon.svelte +7 -0
  342. package/package/components/icons/MagentoIcon.svelte.d.ts +7 -0
  343. package/package/components/icons/MailchimpIcon.svelte +25 -13
  344. package/package/components/icons/MandrillIcon.svelte +7 -0
  345. package/package/components/icons/MandrillIcon.svelte.d.ts +7 -0
  346. package/package/components/icons/MauticIcon.svelte +7 -0
  347. package/package/components/icons/MauticIcon.svelte.d.ts +7 -0
  348. package/package/components/icons/MediumIcon.svelte +7 -0
  349. package/package/components/icons/MediumIcon.svelte.d.ts +7 -0
  350. package/package/components/icons/MiroIcon.svelte +7 -0
  351. package/package/components/icons/MiroIcon.svelte.d.ts +7 -0
  352. package/package/components/icons/MistralIcon.svelte +7 -0
  353. package/package/components/icons/MistralIcon.svelte.d.ts +7 -0
  354. package/package/components/icons/MixpanelIcon.svelte +7 -0
  355. package/package/components/icons/MixpanelIcon.svelte.d.ts +7 -0
  356. package/package/components/icons/MondayIcon.svelte +7 -0
  357. package/package/components/icons/MondayIcon.svelte.d.ts +7 -0
  358. package/package/components/icons/NeonDbIcon.svelte +23 -0
  359. package/package/components/icons/NeonDbIcon.svelte.d.ts +7 -0
  360. package/package/components/icons/NetlifyIcon.svelte +7 -0
  361. package/package/components/icons/NetlifyIcon.svelte.d.ts +7 -0
  362. package/package/components/icons/OneSignalIcon.svelte +9 -0
  363. package/package/components/icons/OneSignalIcon.svelte.d.ts +7 -0
  364. package/package/components/icons/OpenWeatherIcon.svelte +7 -0
  365. package/package/components/icons/OpenWeatherIcon.svelte.d.ts +7 -0
  366. package/package/components/icons/PagerDutyIcon.svelte +7 -0
  367. package/package/components/icons/PagerDutyIcon.svelte.d.ts +7 -0
  368. package/package/components/icons/PandaDocIcon.svelte +7 -0
  369. package/package/components/icons/PandaDocIcon.svelte.d.ts +7 -0
  370. package/package/components/icons/PaypalIcon.svelte +7 -0
  371. package/package/components/icons/PaypalIcon.svelte.d.ts +7 -0
  372. package/package/components/icons/PersonioIcon.svelte +7 -0
  373. package/package/components/icons/PersonioIcon.svelte.d.ts +7 -0
  374. package/package/components/icons/PinterestIcon.svelte +7 -0
  375. package/package/components/icons/PinterestIcon.svelte.d.ts +7 -0
  376. package/package/components/icons/PipedriveIcon.svelte +11 -0
  377. package/package/components/icons/PipedriveIcon.svelte.d.ts +7 -0
  378. package/package/components/icons/PlanetScaleIcon.svelte +7 -0
  379. package/package/components/icons/PlanetScaleIcon.svelte.d.ts +7 -0
  380. package/package/components/icons/PostmarkIcon.svelte +7 -0
  381. package/package/components/icons/PostmarkIcon.svelte.d.ts +7 -0
  382. package/package/components/icons/PusherIcon.svelte +7 -0
  383. package/package/components/icons/PusherIcon.svelte.d.ts +7 -0
  384. package/package/components/icons/QuickbooksIcon.svelte +13 -1
  385. package/package/components/icons/RaindropIcon.svelte +27 -0
  386. package/package/components/icons/RaindropIcon.svelte.d.ts +7 -0
  387. package/package/components/icons/ReadwiseIcon.svelte +12 -0
  388. package/package/components/icons/ReadwiseIcon.svelte.d.ts +7 -0
  389. package/package/components/icons/RenderIcon.svelte +7 -0
  390. package/package/components/icons/RenderIcon.svelte.d.ts +7 -0
  391. package/package/components/icons/ReplicateIcon.svelte +7 -0
  392. package/package/components/icons/ReplicateIcon.svelte.d.ts +7 -0
  393. package/package/components/icons/ResendIcon.svelte +1 -1
  394. package/package/components/icons/RestIcon.svelte +1 -0
  395. package/package/components/icons/RingCentralIcon.svelte +7 -0
  396. package/package/components/icons/RingCentralIcon.svelte.d.ts +7 -0
  397. package/package/components/icons/RocketChatIcon.svelte +7 -0
  398. package/package/components/icons/RocketChatIcon.svelte.d.ts +7 -0
  399. package/package/components/icons/RunPodIcon.svelte +8 -0
  400. package/package/components/icons/RunPodIcon.svelte.d.ts +7 -0
  401. package/package/components/icons/RustIcon.svelte +74 -56
  402. package/package/components/icons/SalesforceIcon.svelte +7 -0
  403. package/package/components/icons/SalesforceIcon.svelte.d.ts +7 -0
  404. package/package/components/icons/SegmentIcon.svelte +7 -0
  405. package/package/components/icons/SegmentIcon.svelte.d.ts +7 -0
  406. package/package/components/icons/SentryIcon.svelte +7 -0
  407. package/package/components/icons/SentryIcon.svelte.d.ts +7 -0
  408. package/package/components/icons/ServiceNowIcon.svelte +7 -0
  409. package/package/components/icons/ServiceNowIcon.svelte.d.ts +7 -0
  410. package/package/components/icons/ShortcutIcon.svelte +7 -0
  411. package/package/components/icons/ShortcutIcon.svelte.d.ts +7 -0
  412. package/package/components/icons/SigNozIcon.svelte +8 -0
  413. package/package/components/icons/SigNozIcon.svelte.d.ts +7 -0
  414. package/package/components/icons/SmartsheetIcon.svelte +7 -0
  415. package/package/components/icons/SmartsheetIcon.svelte.d.ts +7 -0
  416. package/package/components/icons/SpeechifyIcon.svelte +7 -0
  417. package/package/components/icons/SpeechifyIcon.svelte.d.ts +7 -0
  418. package/package/components/icons/SplitwiseIcon.svelte +7 -0
  419. package/package/components/icons/SplitwiseIcon.svelte.d.ts +7 -0
  420. package/package/components/icons/StravaIcon.svelte +7 -0
  421. package/package/components/icons/StravaIcon.svelte.d.ts +7 -0
  422. package/package/components/icons/TallyIcon.svelte +7 -0
  423. package/package/components/icons/TallyIcon.svelte.d.ts +7 -0
  424. package/package/components/icons/TelnyxIcon.svelte +19 -0
  425. package/package/components/icons/TelnyxIcon.svelte.d.ts +7 -0
  426. package/package/components/icons/ThreadsIcon.svelte +7 -0
  427. package/package/components/icons/ThreadsIcon.svelte.d.ts +7 -0
  428. package/package/components/icons/TodoistIcon.svelte +7 -0
  429. package/package/components/icons/TodoistIcon.svelte.d.ts +7 -0
  430. package/package/components/icons/TogetherAiIcon.svelte +23 -0
  431. package/package/components/icons/TogetherAiIcon.svelte.d.ts +7 -0
  432. package/package/components/icons/TrelloIcon.svelte +22 -1
  433. package/package/components/icons/TursoIcon.svelte +7 -0
  434. package/package/components/icons/TursoIcon.svelte.d.ts +7 -0
  435. package/package/components/icons/TwitchIcon.svelte +7 -0
  436. package/package/components/icons/TwitchIcon.svelte.d.ts +7 -0
  437. package/package/components/icons/TwitterIcon.svelte +7 -0
  438. package/package/components/icons/TwitterIcon.svelte.d.ts +7 -0
  439. package/package/components/icons/TypeformIcon.svelte +1 -1
  440. package/package/components/icons/VercelIcon.svelte +7 -0
  441. package/package/components/icons/VercelIcon.svelte.d.ts +7 -0
  442. package/package/components/icons/WebflowIcon.svelte +7 -0
  443. package/package/components/icons/WebflowIcon.svelte.d.ts +7 -0
  444. package/package/components/icons/WooCommerceIcon.svelte +7 -0
  445. package/package/components/icons/WooCommerceIcon.svelte.d.ts +7 -0
  446. package/package/components/icons/WordpressIcon.svelte +7 -0
  447. package/package/components/icons/WordpressIcon.svelte.d.ts +7 -0
  448. package/package/components/icons/XataIcon.svelte +13 -0
  449. package/package/components/icons/XataIcon.svelte.d.ts +7 -0
  450. package/package/components/icons/YelpIcon.svelte +7 -0
  451. package/package/components/icons/YelpIcon.svelte.d.ts +7 -0
  452. package/package/components/icons/YnabIcon.svelte +7 -0
  453. package/package/components/icons/YnabIcon.svelte.d.ts +7 -0
  454. package/package/components/icons/YoutubeIcon.svelte +7 -0
  455. package/package/components/icons/YoutubeIcon.svelte.d.ts +7 -0
  456. package/package/components/icons/ZendeskIcon.svelte +1 -1
  457. package/package/components/icons/ZeroTierIcon.svelte +7 -0
  458. package/package/components/icons/ZeroTierIcon.svelte.d.ts +7 -0
  459. package/package/components/icons/ZoomIcon.svelte +7 -0
  460. package/package/components/icons/ZoomIcon.svelte.d.ts +7 -0
  461. package/package/components/icons/index.d.ts +111 -1
  462. package/package/components/icons/index.js +225 -2
  463. package/package/components/instanceSettings/GhesAppSettings.svelte +161 -0
  464. package/package/components/instanceSettings/GhesAppSettings.svelte.d.ts +8 -0
  465. package/package/components/instanceSettings/IndexerMemorySettings.svelte +19 -8
  466. package/package/components/instanceSettings/InstanceAISettings.svelte +132 -0
  467. package/package/components/instanceSettings/InstanceAISettings.svelte.d.ts +10 -0
  468. package/package/components/instanceSettings/WorkspaceRegistries.svelte +293 -0
  469. package/package/components/instanceSettings/WorkspaceRegistries.svelte.d.ts +8 -0
  470. package/package/components/instanceSettings/WsConnectivityTest.svelte +177 -0
  471. package/package/components/instanceSettings/WsConnectivityTest.svelte.d.ts +7 -0
  472. package/package/components/instanceSettings.d.ts +3 -1
  473. package/package/components/instanceSettings.js +92 -2
  474. package/package/components/mcp/McpScopeSelector.svelte +408 -0
  475. package/package/components/mcp/McpScopeSelector.svelte.d.ts +7 -0
  476. package/package/components/meltComponents/Popover.svelte +0 -1
  477. package/package/components/raw_apps/RawAppPreview.svelte +6 -2
  478. package/package/components/recording/FlowRecordingReplay.svelte +94 -52
  479. package/package/components/recording/FlowRecordingReplay.svelte.d.ts +10 -1
  480. package/package/components/recording/ScriptRecordingReplay.svelte +139 -76
  481. package/package/components/recording/ScriptRecordingReplay.svelte.d.ts +10 -1
  482. package/package/components/runs/JobRunsPreview.svelte +8 -1
  483. package/package/components/runs/TimeframeSelect.svelte +0 -1
  484. package/package/components/schema/JobSchemaPicker.svelte +8 -2
  485. package/package/components/schema/JobSchemaPicker.svelte.d.ts +1 -0
  486. package/package/components/schema/SchemaFormDND.svelte +15 -3
  487. package/package/components/scriptEditor/LogPanel.svelte +78 -68
  488. package/package/components/script_builder.d.ts +1 -1
  489. package/package/components/scripts/CreateActionsScript.svelte +3 -3
  490. package/package/components/scripts/WacExportDrawer.svelte +127 -0
  491. package/package/components/scripts/WacExportDrawer.svelte.d.ts +8 -0
  492. package/package/components/scripts/scriptStore.svelte.d.ts +2 -0
  493. package/package/components/scripts/scriptStore.svelte.js +2 -0
  494. package/package/components/select/SelectDropdown.svelte +1 -1
  495. package/package/components/settings/AIPromptsModal.svelte +5 -2
  496. package/package/components/settings/AIPromptsModal.svelte.d.ts +1 -1
  497. package/package/components/settings/CloudQuotas.svelte +152 -0
  498. package/package/components/settings/CloudQuotas.svelte.d.ts +3 -0
  499. package/package/components/settings/CreateToken.svelte +15 -430
  500. package/package/components/settings/Trashbin.svelte +248 -0
  501. package/package/components/settings/Trashbin.svelte.d.ts +3 -0
  502. package/package/components/sidebar/MultiplayerMenu.svelte +14 -4
  503. package/package/components/triggers/DeleteTriggerButton.svelte +1 -0
  504. package/package/components/triggers/PermissionedAsLine.svelte +66 -0
  505. package/package/components/triggers/PermissionedAsLine.svelte.d.ts +9 -0
  506. package/package/components/triggers/TriggerEditorToolbar.svelte +2 -2
  507. package/package/components/triggers/TriggerTokens.svelte +3 -3
  508. package/package/components/triggers/email/EmailTriggerEditorInner.svelte +19 -1
  509. package/package/components/triggers/email/utils.js +3 -1
  510. package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +24 -4
  511. package/package/components/triggers/gcp/utils.js +2 -0
  512. package/package/components/triggers/http/RouteEditorConfigSection.svelte +22 -3
  513. package/package/components/triggers/http/RouteEditorInner.svelte +28 -6
  514. package/package/components/triggers/http/RoutesGenerator.svelte +13 -2
  515. package/package/components/triggers/http/utils.js +3 -1
  516. package/package/components/triggers/kafka/KafkaTriggerEditorInner.svelte +23 -6
  517. package/package/components/triggers/kafka/utils.js +3 -1
  518. package/package/components/triggers/mqtt/MqttTriggerEditorInner.svelte +27 -5
  519. package/package/components/triggers/mqtt/utils.js +2 -0
  520. package/package/components/triggers/native/NativeTriggerEditor.svelte +23 -1
  521. package/package/components/triggers/native/NativeTriggerTable.svelte +14 -3
  522. package/package/components/triggers/native/utils.js +3 -2
  523. package/package/components/triggers/nats/NatsTriggerEditorInner.svelte +19 -1
  524. package/package/components/triggers/nats/utils.js +2 -0
  525. package/package/components/triggers/postgres/PostgresTriggerEditorInner.svelte +19 -1
  526. package/package/components/triggers/postgres/utils.js +2 -0
  527. package/package/components/triggers/schedules/ScheduleEditorInner.svelte +29 -7
  528. package/package/components/triggers/sqs/SqsTriggerEditorInner.svelte +19 -1
  529. package/package/components/triggers/sqs/utils.js +2 -0
  530. package/package/components/triggers/utils.js +9 -2
  531. package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +24 -4
  532. package/package/components/triggers/websocket/utils.js +3 -1
  533. package/package/components/workspaceSettings/AISettings.svelte +342 -214
  534. package/package/components/workspaceSettings/AISettings.svelte.d.ts +18 -10
  535. package/package/components/workspaceSettings/CreateWorkspace.svelte +304 -196
  536. package/package/components/workspaceSettings/CustomInstanceDbWizardModal.svelte +1 -2
  537. package/package/components/workspaceSettings/DucklakeSettings.svelte +1 -1
  538. package/package/components/workspaceSettings/InstanceFallbackSettings.svelte +75 -0
  539. package/package/components/workspaceSettings/InstanceFallbackSettings.svelte.d.ts +9 -0
  540. package/package/components/workspaceSettings/StorageSettings.svelte +4 -35
  541. package/package/components/workspaceSettings/VolumeStorageSettings.svelte +80 -0
  542. package/package/components/workspaceSettings/VolumeStorageSettings.svelte.d.ts +10 -0
  543. package/package/components/workspaceSettings/WorkspaceIntegrations.svelte +4 -1
  544. package/package/forLater.js +4 -0
  545. package/package/gen/core/OpenAPI.js +1 -1
  546. package/package/gen/schemas.gen.d.ts +294 -94
  547. package/package/gen/schemas.gen.js +294 -94
  548. package/package/gen/services.gen.d.ts +121 -5
  549. package/package/gen/services.gen.js +237 -5
  550. package/package/gen/types.gen.d.ts +715 -91
  551. package/package/githubApp.js +19 -1
  552. package/package/hubPaths.json +8 -4
  553. package/package/infer.d.ts +1 -1
  554. package/package/infer.js +5 -1
  555. package/package/logoutRedirect.d.ts +1 -0
  556. package/package/logoutRedirect.js +24 -0
  557. package/package/script_helpers.d.ts +8 -2
  558. package/package/script_helpers.js +15 -1
  559. package/package/services/trashService.d.ts +28 -0
  560. package/package/services/trashService.js +47 -0
  561. package/package/stores.d.ts +1 -0
  562. package/package/stores.js +1 -0
  563. package/package/system_prompts/index.d.ts +1 -0
  564. package/package/system_prompts/index.js +7 -0
  565. package/package/system_prompts/prompts.d.ts +7 -5
  566. package/package/system_prompts/prompts.js +182 -11
  567. package/package/templates/wac_python.py.template +42 -0
  568. package/package/templates/wac_typescript.ts.template +48 -0
  569. package/package/utils_deployable.d.ts +22 -21
  570. package/package/utils_deployable.js +58 -25
  571. package/package/utils_workspace_deploy.d.ts +15 -4
  572. package/package/utils_workspace_deploy.js +19 -15
  573. package/package/wsUrl.d.ts +1 -0
  574. package/package/wsUrl.js +15 -0
  575. package/package.json +13 -5
  576. package/dist/sharedUtils/assets/tokens/colorTokensConfig.d.ts +0 -2
  577. package/dist/sharedUtils/base.d.ts +0 -1
  578. package/dist/sharedUtils/cloud.d.ts +0 -1
  579. package/dist/sharedUtils/common.d.ts +0 -111
  580. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/count.d.ts +0 -5
  581. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/delete.d.ts +0 -5
  582. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/insert.d.ts +0 -5
  583. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/select.d.ts +0 -13
  584. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/update.d.ts +0 -11
  585. package/dist/sharedUtils/components/apps/components/display/dbtable/utils.d.ts +0 -95
  586. package/dist/sharedUtils/components/apps/editor/appPolicy.d.ts +0 -6
  587. package/dist/sharedUtils/components/apps/editor/appUtilsCore.d.ts +0 -7
  588. package/dist/sharedUtils/components/apps/editor/appUtilsS3.d.ts +0 -33
  589. package/dist/sharedUtils/components/apps/editor/commonAppUtils.d.ts +0 -10
  590. package/dist/sharedUtils/components/apps/editor/component/components.d.ts +0 -5371
  591. package/dist/sharedUtils/components/apps/editor/component/default-codes.d.ts +0 -3
  592. package/dist/sharedUtils/components/apps/editor/component/index.d.ts +0 -3
  593. package/dist/sharedUtils/components/apps/editor/component/sets.d.ts +0 -7
  594. package/dist/sharedUtils/components/apps/editor/componentsPanel/componentDefaultProps.d.ts +0 -3
  595. package/dist/sharedUtils/components/apps/gridUtils.d.ts +0 -14
  596. package/dist/sharedUtils/components/apps/inputType.d.ts +0 -178
  597. package/dist/sharedUtils/components/apps/rx.d.ts +0 -29
  598. package/dist/sharedUtils/components/apps/sharedTypes.d.ts +0 -21
  599. package/dist/sharedUtils/components/apps/types.d.ts +0 -274
  600. package/dist/sharedUtils/components/assets/lib.d.ts +0 -25
  601. package/dist/sharedUtils/components/common/alert/model.d.ts +0 -2
  602. package/dist/sharedUtils/components/common/badge/model.d.ts +0 -8
  603. package/dist/sharedUtils/components/common/button/model.d.ts +0 -45
  604. package/dist/sharedUtils/components/common/fileInput/model.d.ts +0 -1
  605. package/dist/sharedUtils/components/common/index.d.ts +0 -24
  606. package/dist/sharedUtils/components/common/skeleton/model.d.ts +0 -21
  607. package/dist/sharedUtils/components/dbTypes.d.ts +0 -14
  608. package/dist/sharedUtils/components/diff_drawer.d.ts +0 -26
  609. package/dist/sharedUtils/components/ducklake.d.ts +0 -1
  610. package/dist/sharedUtils/components/flows/scheduleUtils.d.ts +0 -7
  611. package/dist/sharedUtils/components/icons/index.d.ts +0 -101
  612. package/dist/sharedUtils/components/random_positive_adjetive.d.ts +0 -1
  613. package/dist/sharedUtils/components/raw_apps/rawAppPolicy.d.ts +0 -10
  614. package/dist/sharedUtils/components/raw_apps/utils.d.ts +0 -15
  615. package/dist/sharedUtils/components/triggers/email/utils.d.ts +0 -4
  616. package/dist/sharedUtils/components/triggers/gcp/utils.d.ts +0 -2
  617. package/dist/sharedUtils/components/triggers/http/utils.d.ts +0 -11
  618. package/dist/sharedUtils/components/triggers/kafka/utils.d.ts +0 -2
  619. package/dist/sharedUtils/components/triggers/mqtt/utils.d.ts +0 -2
  620. package/dist/sharedUtils/components/triggers/nats/utils.d.ts +0 -2
  621. package/dist/sharedUtils/components/triggers/postgres/utils.d.ts +0 -8
  622. package/dist/sharedUtils/components/triggers/sqs/utils.d.ts +0 -2
  623. package/dist/sharedUtils/components/triggers/triggers.svelte.d.ts +0 -32
  624. package/dist/sharedUtils/components/triggers/utils.d.ts +0 -80
  625. package/dist/sharedUtils/components/triggers/websocket/utils.d.ts +0 -2
  626. package/dist/sharedUtils/components/triggers.d.ts +0 -20
  627. package/dist/sharedUtils/gen/core/ApiError.d.ts +0 -10
  628. package/dist/sharedUtils/gen/core/ApiRequestOptions.d.ts +0 -13
  629. package/dist/sharedUtils/gen/core/ApiResult.d.ts +0 -7
  630. package/dist/sharedUtils/gen/core/CancelablePromise.d.ts +0 -26
  631. package/dist/sharedUtils/gen/core/OpenAPI.d.ts +0 -27
  632. package/dist/sharedUtils/gen/core/request.d.ts +0 -29
  633. package/dist/sharedUtils/gen/index.d.ts +0 -6
  634. package/dist/sharedUtils/gen/schemas.gen.d.ts +0 -7036
  635. package/dist/sharedUtils/gen/services.gen.d.ts +0 -6047
  636. package/dist/sharedUtils/gen/types.gen.d.ts +0 -21881
  637. package/dist/sharedUtils/history.svelte.d.ts +0 -9
  638. package/dist/sharedUtils/hub.d.ts +0 -49
  639. package/dist/sharedUtils/jsr.json +0 -6
  640. package/dist/sharedUtils/lib.d.ts +0 -5
  641. package/dist/sharedUtils/lib.es.js +0 -1588
  642. package/dist/sharedUtils/package.json +0 -12
  643. package/dist/sharedUtils/schema.d.ts +0 -3
  644. package/dist/sharedUtils/stores.d.ts +0 -97
  645. package/dist/sharedUtils/svelte5Utils.svelte.d.ts +0 -80
  646. package/dist/sharedUtils/toast.d.ts +0 -8
  647. package/dist/sharedUtils/utils.d.ts +0 -265
  648. package/package/components/graph/NodeContextMenu.svelte +0 -36
  649. package/package/components/graph/NodeContextMenu.svelte.d.ts +0 -8
  650. package/package/svelte5Utils.svelte.d.ts +0 -184
@@ -6,50 +6,66 @@ import { loadAppFixtureForEval } from './appFixtureLoader';
6
6
  import { dirname, join } from 'path';
7
7
  // @ts-ignore - Node.js url
8
8
  import { fileURLToPath } from 'url';
9
- // Get API key from environment - tests will be skipped if not set
9
+ // Get API keys from environment - tests will be skipped if none are set
10
10
  // @ts-ignore
11
- const OPENROUTER_API_KEY = process.env.OPENROUTER_API_KEY;
12
- // Skip all tests if no API key is provided
13
- const describeWithApiKey = OPENROUTER_API_KEY ? describe : describe.skip;
11
+ const OPENAI_API_KEY = process.env.OPENAI_API_KEY;
12
+ // @ts-ignore
13
+ const ANTHROPIC_API_KEY = process.env.ANTHROPIC_API_KEY;
14
+ const hasAnyKey = OPENAI_API_KEY || ANTHROPIC_API_KEY;
15
+ const describeWithApiKey = hasAnyKey ? describe : describe.skip;
14
16
  // Get __dirname equivalent for ES modules
15
17
  const __filename = fileURLToPath(import.meta.url);
16
18
  const __dirname = dirname(__filename);
17
- const MODELS = ['google/gemini-2.5-flash', 'anthropic/claude-haiku-4.5', 'openai/gpt-4o'];
19
+ const MODEL_VARIANTS = [
20
+ ...(OPENAI_API_KEY
21
+ ? [{ model: 'gpt-4o', provider: 'openai', apiKey: OPENAI_API_KEY }]
22
+ : []),
23
+ ...(ANTHROPIC_API_KEY
24
+ ? [
25
+ {
26
+ model: 'claude-haiku-4-5-20241022',
27
+ provider: 'anthropic',
28
+ apiKey: ANTHROPIC_API_KEY
29
+ }
30
+ ]
31
+ : [])
32
+ ];
18
33
  const VARIANTS = [
19
- ...MODELS.map((model) => ({
34
+ ...MODEL_VARIANTS.map((mv) => ({
20
35
  ...BASELINE_VARIANT,
21
- model,
22
- name: `baseline-${model.replace('/', '-')}`
36
+ model: mv.model,
37
+ name: `baseline-${mv.provider}-${mv.model}`,
38
+ _provider: mv.provider,
39
+ _apiKey: mv.apiKey
23
40
  })),
24
- ...MODELS.map((model) => ({
41
+ ...MODEL_VARIANTS.map((mv) => ({
25
42
  ...STREAMLINED_VARIANT,
26
- model,
27
- name: `streamlined-${model.replace('/', '-')}`
43
+ model: mv.model,
44
+ name: `streamlined-${mv.provider}-${mv.model}`,
45
+ _provider: mv.provider,
46
+ _apiKey: mv.apiKey
28
47
  }))
29
48
  ];
30
49
  describeWithApiKey('App Chat LLM Evaluation', () => {
31
50
  const TEST_TIMEOUT = 120_000;
32
- if (!OPENROUTER_API_KEY) {
33
- console.warn('OPENROUTER_API_KEY is not set, skipping tests');
51
+ if (!hasAnyKey) {
52
+ console.warn('No API keys set (OPENAI_API_KEY or ANTHROPIC_API_KEY), skipping tests');
34
53
  }
35
54
  it('test1: creates a simple counter app', async () => {
36
55
  const USER_PROMPT = `Create a counter app with increment/decrement buttons`;
37
- const results = await runVariantComparison(USER_PROMPT, VARIANTS, OPENROUTER_API_KEY);
38
- // Write results to files
56
+ const results = await runVariantComparison(USER_PROMPT, VARIANTS, VARIANTS[0]._apiKey, undefined, VARIANTS.map((v) => ({ provider: v._provider, apiKey: v._apiKey })));
39
57
  const { summaryPath, appPaths } = await writeAppComparisonResults(USER_PROMPT, results);
40
58
  console.log(`\nResults written to: ${summaryPath}`);
41
59
  console.log(`App files: ${appPaths.join(', ')}`);
42
60
  expect(true).toBe(true);
43
61
  }, TEST_TIMEOUT);
44
62
  it('test2: modifies existing counter app to add reset button', async () => {
45
- // Load initial app from fixture folder
46
63
  const { initialFrontend, initialBackend } = await loadAppFixtureForEval(join(__dirname, 'initial', 'test1_counter_app'));
47
64
  const USER_PROMPT = `Add a reset button that sets the counter back to 0`;
48
- const results = await runVariantComparison(USER_PROMPT, VARIANTS, OPENROUTER_API_KEY, {
65
+ const results = await runVariantComparison(USER_PROMPT, VARIANTS, VARIANTS[0]._apiKey, {
49
66
  initialFrontend,
50
67
  initialBackend
51
- });
52
- // Write results to files
68
+ }, VARIANTS.map((v) => ({ provider: v._provider, apiKey: v._apiKey })));
53
69
  const { summaryPath, appPaths } = await writeAppComparisonResults(USER_PROMPT, results);
54
70
  console.log(`\nResults written to: ${summaryPath}`);
55
71
  console.log(`App files: ${appPaths.join(', ')}`);
@@ -59,10 +75,10 @@ describeWithApiKey('App Chat LLM Evaluation', () => {
59
75
  it('test3: shopping cart - add quantity selector', async () => {
60
76
  const { initialFrontend, initialBackend } = await loadAppFixtureForEval(join(__dirname, 'initial', 'shopping_cart'));
61
77
  const USER_PROMPT = `Add a quantity selector (+ and - buttons) to each cart item so users can adjust quantities without removing and re-adding items`;
62
- const results = await runVariantComparison(USER_PROMPT, VARIANTS, OPENROUTER_API_KEY, {
78
+ const results = await runVariantComparison(USER_PROMPT, VARIANTS, VARIANTS[0]._apiKey, {
63
79
  initialFrontend,
64
80
  initialBackend
65
- });
81
+ }, VARIANTS.map((v) => ({ provider: v._provider, apiKey: v._apiKey })));
66
82
  const { summaryPath, appPaths } = await writeAppComparisonResults(USER_PROMPT, results);
67
83
  console.log(`\nResults written to: ${summaryPath}`);
68
84
  console.log(`App files: ${appPaths.join(', ')}`);
@@ -71,10 +87,10 @@ describeWithApiKey('App Chat LLM Evaluation', () => {
71
87
  it('test4: shopping cart - add discount code', async () => {
72
88
  const { initialFrontend, initialBackend } = await loadAppFixtureForEval(join(__dirname, 'initial', 'shopping_cart'));
73
89
  const USER_PROMPT = `Add a discount code input field in the cart. When the code "SAVE10" is entered, apply a 10% discount to the total`;
74
- const results = await runVariantComparison(USER_PROMPT, VARIANTS, OPENROUTER_API_KEY, {
90
+ const results = await runVariantComparison(USER_PROMPT, VARIANTS, VARIANTS[0]._apiKey, {
75
91
  initialFrontend,
76
92
  initialBackend
77
- });
93
+ }, VARIANTS.map((v) => ({ provider: v._provider, apiKey: v._apiKey })));
78
94
  const { summaryPath, appPaths } = await writeAppComparisonResults(USER_PROMPT, results);
79
95
  console.log(`\nResults written to: ${summaryPath}`);
80
96
  console.log(`App files: ${appPaths.join(', ')}`);
@@ -84,10 +100,10 @@ describeWithApiKey('App Chat LLM Evaluation', () => {
84
100
  it('test5: file manager - add search bar', async () => {
85
101
  const { initialFrontend, initialBackend } = await loadAppFixtureForEval(join(__dirname, 'initial', 'file_manager'));
86
102
  const USER_PROMPT = `Add a search bar in the toolbar that filters files and folders by name as the user types`;
87
- const results = await runVariantComparison(USER_PROMPT, VARIANTS, OPENROUTER_API_KEY, {
103
+ const results = await runVariantComparison(USER_PROMPT, VARIANTS, VARIANTS[0]._apiKey, {
88
104
  initialFrontend,
89
105
  initialBackend
90
- });
106
+ }, VARIANTS.map((v) => ({ provider: v._provider, apiKey: v._apiKey })));
91
107
  const { summaryPath, appPaths } = await writeAppComparisonResults(USER_PROMPT, results);
92
108
  console.log(`\nResults written to: ${summaryPath}`);
93
109
  console.log(`App files: ${appPaths.join(', ')}`);
@@ -96,10 +112,10 @@ describeWithApiKey('App Chat LLM Evaluation', () => {
96
112
  it('test6: file manager - show file details', async () => {
97
113
  const { initialFrontend, initialBackend } = await loadAppFixtureForEval(join(__dirname, 'initial', 'file_manager'));
98
114
  const USER_PROMPT = `Show file size (formatted as KB/MB) and modified date in the file list for each item`;
99
- const results = await runVariantComparison(USER_PROMPT, VARIANTS, OPENROUTER_API_KEY, {
115
+ const results = await runVariantComparison(USER_PROMPT, VARIANTS, VARIANTS[0]._apiKey, {
100
116
  initialFrontend,
101
117
  initialBackend
102
- });
118
+ }, VARIANTS.map((v) => ({ provider: v._provider, apiKey: v._apiKey })));
103
119
  const { summaryPath, appPaths } = await writeAppComparisonResults(USER_PROMPT, results);
104
120
  console.log(`\nResults written to: ${summaryPath}`);
105
121
  console.log(`App files: ${appPaths.join(', ')}`);
@@ -108,10 +124,10 @@ describeWithApiKey('App Chat LLM Evaluation', () => {
108
124
  it('test7: file manager - add select all checkbox', async () => {
109
125
  const { initialFrontend, initialBackend } = await loadAppFixtureForEval(join(__dirname, 'initial', 'file_manager'));
110
126
  const USER_PROMPT = `Add a "Select All" checkbox in the file list header and individual checkboxes for each file. Add a "Delete Selected" button that appears when items are selected`;
111
- const results = await runVariantComparison(USER_PROMPT, VARIANTS, OPENROUTER_API_KEY, {
127
+ const results = await runVariantComparison(USER_PROMPT, VARIANTS, VARIANTS[0]._apiKey, {
112
128
  initialFrontend,
113
129
  initialBackend
114
- });
130
+ }, VARIANTS.map((v) => ({ provider: v._provider, apiKey: v._apiKey })));
115
131
  const { summaryPath, appPaths } = await writeAppComparisonResults(USER_PROMPT, results);
116
132
  console.log(`\nResults written to: ${summaryPath}`);
117
133
  console.log(`App files: ${appPaths.join(', ')}`);
@@ -120,7 +136,7 @@ describeWithApiKey('App Chat LLM Evaluation', () => {
120
136
  // ==================== From-Scratch Creation Tests ====================
121
137
  it('test8: create quiz app from scratch', async () => {
122
138
  const USER_PROMPT = `Create a multiple choice quiz app with 5 questions about general knowledge. Show one question at a time with 4 answer options. Track the score and show results at the end with percentage correct.`;
123
- const results = await runVariantComparison(USER_PROMPT, VARIANTS, OPENROUTER_API_KEY);
139
+ const results = await runVariantComparison(USER_PROMPT, VARIANTS, VARIANTS[0]._apiKey, undefined, VARIANTS.map((v) => ({ provider: v._provider, apiKey: v._apiKey })));
124
140
  const { summaryPath, appPaths } = await writeAppComparisonResults(USER_PROMPT, results);
125
141
  console.log(`\nResults written to: ${summaryPath}`);
126
142
  console.log(`App files: ${appPaths.join(', ')}`);
@@ -128,7 +144,7 @@ describeWithApiKey('App Chat LLM Evaluation', () => {
128
144
  }, TEST_TIMEOUT);
129
145
  it('test9: create recipe book from scratch', async () => {
130
146
  const USER_PROMPT = `Create a recipe book app where users can add recipes with a name, ingredients list, and instructions. Include a search bar to filter recipes by name and the ability to delete recipes.`;
131
- const results = await runVariantComparison(USER_PROMPT, VARIANTS, OPENROUTER_API_KEY);
147
+ const results = await runVariantComparison(USER_PROMPT, VARIANTS, VARIANTS[0]._apiKey, undefined, VARIANTS.map((v) => ({ provider: v._provider, apiKey: v._apiKey })));
132
148
  const { summaryPath, appPaths } = await writeAppComparisonResults(USER_PROMPT, results);
133
149
  console.log(`\nResults written to: ${summaryPath}`);
134
150
  console.log(`App files: ${appPaths.join(', ')}`);
@@ -16,11 +16,6 @@ export interface InitialApp {
16
16
  }
17
17
  /**
18
18
  * Evaluates how well a generated app fulfills the user's request, considering any initial app state.
19
- * This evaluator does not require an expected reference app - it evaluates based on the request alone.
20
- *
21
- * @param userPrompt The original user request
22
- * @param generatedApp The app generated by the AI
23
- * @param initialApp Optional initial app state (what the app looked like before AI changes)
24
- * @returns Evaluation result with score, statement, and missing requirements
19
+ * Uses Anthropic API directly.
25
20
  */
26
21
  export declare function evaluateAppGeneration(userPrompt: string, generatedApp: AppFiles, initialApp?: InitialApp): Promise<EvaluationResult>;
@@ -1,4 +1,4 @@
1
- import OpenAI from 'openai';
1
+ import Anthropic from '@anthropic-ai/sdk';
2
2
  import { BASE_EVALUATOR_RESPONSE_FORMAT } from '../shared';
3
3
  /**
4
4
  * System prompt for evaluating app generation without a reference expected app.
@@ -51,17 +51,20 @@ const APP_GENERATION_EVALUATOR_SYSTEM_PROMPT = `You are an expert evaluator for
51
51
  ${BASE_EVALUATOR_RESPONSE_FORMAT}`;
52
52
  /**
53
53
  * Evaluates how well a generated app fulfills the user's request, considering any initial app state.
54
- * This evaluator does not require an expected reference app - it evaluates based on the request alone.
55
- *
56
- * @param userPrompt The original user request
57
- * @param generatedApp The app generated by the AI
58
- * @param initialApp Optional initial app state (what the app looked like before AI changes)
59
- * @returns Evaluation result with score, statement, and missing requirements
54
+ * Uses Anthropic API directly.
60
55
  */
61
56
  export async function evaluateAppGeneration(userPrompt, generatedApp, initialApp) {
62
57
  // @ts-ignore
63
- const apiKey = process.env.OPENROUTER_API_KEY;
64
- const client = new OpenAI({ baseURL: 'https://openrouter.ai/api/v1', apiKey });
58
+ const apiKey = process.env.ANTHROPIC_API_KEY;
59
+ if (!apiKey) {
60
+ return {
61
+ success: false,
62
+ resemblanceScore: 0,
63
+ statement: 'No API key available for evaluation',
64
+ error: 'ANTHROPIC_API_KEY not set'
65
+ };
66
+ }
67
+ const client = new Anthropic({ apiKey });
65
68
  let userMessage = `## User's Original Request
66
69
  ${userPrompt}
67
70
 
@@ -89,15 +92,17 @@ Please evaluate how well the generated app:
89
92
  1. Fulfills ALL requirements from the user's original request
90
93
  2. ${initialApp ? 'Makes appropriate modifications to the initial app state' : 'Implements a complete and correct new app'}`;
91
94
  try {
92
- const response = await client.chat.completions.create({
93
- model: 'anthropic/claude-sonnet-4.5',
95
+ const response = await client.messages.create({
96
+ model: 'claude-sonnet-4-5-20250514',
97
+ max_tokens: 2048,
98
+ system: APP_GENERATION_EVALUATOR_SYSTEM_PROMPT,
94
99
  messages: [
95
- { role: 'system', content: APP_GENERATION_EVALUATOR_SYSTEM_PROMPT },
96
100
  { role: 'user', content: userMessage }
97
101
  ],
98
102
  temperature: 0
99
103
  });
100
- const content = response.choices[0]?.message?.content;
104
+ const textBlock = response.content.find((block) => block.type === 'text');
105
+ const content = textBlock?.text;
101
106
  if (!content) {
102
107
  return {
103
108
  success: false,
@@ -1,5 +1,6 @@
1
1
  import type { AppFiles, BackendRunnable } from '../../app/core';
2
2
  import { type VariantConfig, type BaseEvalResult } from '../shared';
3
+ import type { AIProvider } from '../../../../../gen/types.gen';
3
4
  export type { InitialApp } from './appEvalComparison';
4
5
  /**
5
6
  * App-specific evaluation result.
@@ -20,17 +21,25 @@ export interface AppEvalOptions {
20
21
  variant?: VariantConfig;
21
22
  /** Whether to evaluate the generated app with LLM. Default: true. Set to false to skip evaluation. */
22
23
  evaluateWithLLM?: boolean;
24
+ /** AI provider (inferred from model name if omitted) */
25
+ provider?: AIProvider;
23
26
  }
24
27
  /**
25
- * Runs an app chat evaluation with real OpenAI API calls.
26
- * Executes tool calls using the actual app tools from core.ts or variant-configured tools.
28
+ * Runs an app chat evaluation using the shared chat loop (same code path as production).
27
29
  */
28
- export declare function runAppEval(userPrompt: string, openaiApiKey: string, options?: AppEvalOptions): Promise<AppEvalResult>;
30
+ export declare function runAppEval(userPrompt: string, apiKey: string, options?: AppEvalOptions): Promise<AppEvalResult>;
31
+ /**
32
+ * Per-variant provider override.
33
+ */
34
+ export interface VariantProviderOverride {
35
+ provider: AIProvider;
36
+ apiKey: string;
37
+ }
29
38
  /**
30
39
  * Runs the same prompt against multiple variants sequentially for comparison.
31
- * Returns results in the same order as the input variants.
40
+ * Accepts optional per-variant provider/apiKey overrides.
32
41
  */
33
- export declare function runVariantComparison(userPrompt: string, variants: VariantConfig[], openaiApiKey: string, baseOptions?: Omit<AppEvalOptions, 'variant'>): Promise<AppEvalResult[]>;
42
+ export declare function runVariantComparison(userPrompt: string, variants: VariantConfig[], defaultApiKey: string, baseOptions?: Omit<AppEvalOptions, 'variant'>, providerOverrides?: VariantProviderOverride[]): Promise<AppEvalResult[]>;
34
43
  /**
35
44
  * Writes app comparison results to a folder-based structure.
36
45
  * Each variant gets its own folder with frontend/, backend/, and details.json.
@@ -11,15 +11,14 @@ const appDefaults = {
11
11
  tools: getAppTools()
12
12
  };
13
13
  /**
14
- * Runs an app chat evaluation with real OpenAI API calls.
15
- * Executes tool calls using the actual app tools from core.ts or variant-configured tools.
14
+ * Runs an app chat evaluation using the shared chat loop (same code path as production).
16
15
  */
17
- export async function runAppEval(userPrompt, openaiApiKey, options) {
16
+ export async function runAppEval(userPrompt, apiKey, options) {
18
17
  const { helpers, getFiles } = createAppEvalHelpers(options?.initialFrontend ?? {}, options?.initialBackend ?? {});
19
18
  // Resolve variant configuration
20
19
  const variantName = options?.variant?.name ?? 'baseline';
21
20
  const systemMessage = resolveSystemPrompt(options?.variant, appDefaults, options?.customSystemPrompt);
22
- const { toolDefs, tools } = resolveTools(options?.variant, appDefaults);
21
+ const { tools } = resolveTools(options?.variant, appDefaults);
23
22
  const model = resolveModel(options?.variant, options?.model);
24
23
  // Build user message
25
24
  const userMessage = prepareAppUserMessage(userPrompt, helpers.getSelectedContext());
@@ -28,15 +27,15 @@ export async function runAppEval(userPrompt, openaiApiKey, options) {
28
27
  userPrompt,
29
28
  systemMessage,
30
29
  userMessage,
31
- toolDefs,
32
30
  tools,
33
31
  helpers,
34
- apiKey: openaiApiKey,
32
+ apiKey,
35
33
  getOutput: getFiles,
36
34
  options: {
37
35
  maxIterations: options?.maxIterations,
38
36
  model,
39
- workspace: 'test-workspace'
37
+ workspace: 'test-workspace',
38
+ provider: options?.provider
40
39
  }
41
40
  });
42
41
  // Run LLM evaluation unless explicitly disabled
@@ -60,13 +59,15 @@ export async function runAppEval(userPrompt, openaiApiKey, options) {
60
59
  }
61
60
  /**
62
61
  * Runs the same prompt against multiple variants sequentially for comparison.
63
- * Returns results in the same order as the input variants.
62
+ * Accepts optional per-variant provider/apiKey overrides.
64
63
  */
65
- export async function runVariantComparison(userPrompt, variants, openaiApiKey, baseOptions) {
66
- const results = await Promise.all(variants.map(async (variant) => {
67
- return await runAppEval(userPrompt, openaiApiKey, {
64
+ export async function runVariantComparison(userPrompt, variants, defaultApiKey, baseOptions, providerOverrides) {
65
+ const results = await Promise.all(variants.map(async (variant, i) => {
66
+ const override = providerOverrides?.[i];
67
+ return await runAppEval(userPrompt, override?.apiKey ?? defaultApiKey, {
68
68
  ...baseOptions,
69
- variant
69
+ variant,
70
+ provider: override?.provider ?? baseOptions?.provider
70
71
  });
71
72
  }));
72
73
  return results;
@@ -21,30 +21,47 @@ import initialTest5 from './initial/test5_initial.json';
21
21
  import initialTest6 from './initial/test6_initial.json';
22
22
  // @ts-ignore - JSON import
23
23
  import initialTest7 from './initial/test7_initial.json';
24
- // Get API key from environment - tests will be skipped if not set
24
+ // Get API keys from environment - tests will be skipped if none are set
25
25
  // @ts-ignore
26
- // const OPENAI_API_KEY = process.env.OPENAI_API_KEY
27
- const OPENROUTER_API_KEY = process.env.OPENROUTER_API_KEY;
28
- // Skip all tests if no API key is provided
29
- // const describeWithApiKey = OPENAI_API_KEY ? describe : describe.skip
30
- const describeWithApiKey = OPENROUTER_API_KEY ? describe : describe.skip;
31
- const MODELS = ['google/gemini-2.5-flash', 'anthropic/claude-haiku-4.5', 'openai/gpt-4o'];
26
+ const OPENAI_API_KEY = process.env.OPENAI_API_KEY;
27
+ // @ts-ignore
28
+ const ANTHROPIC_API_KEY = process.env.ANTHROPIC_API_KEY;
29
+ const hasAnyKey = OPENAI_API_KEY || ANTHROPIC_API_KEY;
30
+ const describeWithApiKey = hasAnyKey ? describe : describe.skip;
31
+ const MODEL_VARIANTS = [
32
+ ...(OPENAI_API_KEY
33
+ ? [{ model: 'gpt-4o', provider: 'openai', apiKey: OPENAI_API_KEY }]
34
+ : []),
35
+ ...(ANTHROPIC_API_KEY
36
+ ? [
37
+ {
38
+ model: 'claude-haiku-4-5-20241022',
39
+ provider: 'anthropic',
40
+ apiKey: ANTHROPIC_API_KEY
41
+ }
42
+ ]
43
+ : [])
44
+ ];
32
45
  const VARIANTS = [
33
- ...MODELS.map((model) => ({
46
+ ...MODEL_VARIANTS.map((mv) => ({
34
47
  ...BASELINE_VARIANT,
35
- model,
36
- name: `baseline-${model.replace('/', '-')}`
48
+ model: mv.model,
49
+ name: `baseline-${mv.provider}-${mv.model}`,
50
+ _provider: mv.provider,
51
+ _apiKey: mv.apiKey
37
52
  })),
38
- ...MODELS.map((model) => ({
53
+ ...MODEL_VARIANTS.map((mv) => ({
39
54
  ...MINIMAL_SINGLE_TOOL_VARIANT,
40
- model,
41
- name: `minimal-single-tool-${model.replace('/', '-')}`
55
+ model: mv.model,
56
+ name: `minimal-single-tool-${mv.provider}-${mv.model}`,
57
+ _provider: mv.provider,
58
+ _apiKey: mv.apiKey
42
59
  }))
43
60
  ];
44
61
  describeWithApiKey('Flow Chat LLM Evaluation', () => {
45
62
  const TEST_TIMEOUT = 120_000;
46
- if (!OPENROUTER_API_KEY) {
47
- console.warn('OPENROUTER_API_KEY is not set, skipping tests');
63
+ if (!hasAnyKey) {
64
+ console.warn('No API keys set (OPENAI_API_KEY or ANTHROPIC_API_KEY), skipping tests');
48
65
  }
49
66
  it('test1: user role-based actions with loop and branches', async () => {
50
67
  const USER_PROMPT = `
@@ -56,9 +73,9 @@ STEP 3: Loop on all users
56
73
  STEP 4: Do branches based on user's role, do different action based on that. Roles are admin, user, moderator
57
74
  STEP 5: Return action taken for each user
58
75
  `;
59
- const results = await runVariantComparison(USER_PROMPT, VARIANTS, OPENROUTER_API_KEY, {
76
+ const results = await runVariantComparison(USER_PROMPT, VARIANTS, VARIANTS[0]._apiKey, {
60
77
  expectedFlow: expectedTest1
61
- });
78
+ }, VARIANTS.map((v) => ({ provider: v._provider, apiKey: v._apiKey })));
62
79
  // Write results to files
63
80
  const { summaryPath, flowPaths } = await writeFlowComparisonResults(USER_PROMPT, results);
64
81
  console.log(`\nResults written to: ${summaryPath}`);
@@ -89,9 +106,9 @@ STEP 5: Branch based on inventory - if all items available, create shipment reco
89
106
  STEP 6: Send confirmation (mock email to customer_email)
90
107
  STEP 7: Return final order summary with status
91
108
  `;
92
- const results = await runVariantComparison(USER_PROMPT, VARIANTS, OPENROUTER_API_KEY, {
109
+ const results = await runVariantComparison(USER_PROMPT, VARIANTS, VARIANTS[0]._apiKey, {
93
110
  expectedFlow: expectedTest2
94
- });
111
+ }, VARIANTS.map((v) => ({ provider: v._provider, apiKey: v._apiKey })));
95
112
  const { summaryPath, flowPaths } = await writeFlowComparisonResults(USER_PROMPT, results);
96
113
  console.log(`\nResults written to: ${summaryPath}`);
97
114
  console.log(`Flow files: ${flowPaths.join(', ')}`);
@@ -124,9 +141,9 @@ STEP 5: Branch based on quality score:
124
141
  - If score < 70: Store in quarantine and send alert
125
142
  STEP 6: Return processing report with statistics (total records, quality score, destination)
126
143
  `;
127
- const results = await runVariantComparison(USER_PROMPT, VARIANTS, OPENROUTER_API_KEY, {
144
+ const results = await runVariantComparison(USER_PROMPT, VARIANTS, VARIANTS[0]._apiKey, {
128
145
  expectedFlow: expectedTest3
129
- });
146
+ }, VARIANTS.map((v) => ({ provider: v._provider, apiKey: v._apiKey })));
130
147
  const { summaryPath, flowPaths } = await writeFlowComparisonResults(USER_PROMPT, results);
131
148
  console.log(`\nResults written to: ${summaryPath}`);
132
149
  console.log(`Flow files: ${flowPaths.join(', ')}`);
@@ -159,9 +176,9 @@ STEP 3: Use an AI agent to handle the customer query. The agent should have acce
159
176
  STEP 4: Log the interaction to audit trail (customer_id, query, response summary)
160
177
  STEP 5: Return the agent's response and any actions taken
161
178
  `;
162
- const results = await runVariantComparison(USER_PROMPT, VARIANTS, OPENROUTER_API_KEY, {
179
+ const results = await runVariantComparison(USER_PROMPT, VARIANTS, VARIANTS[0]._apiKey, {
163
180
  expectedFlow: expectedTest4
164
- });
181
+ }, VARIANTS.map((v) => ({ provider: v._provider, apiKey: v._apiKey })));
165
182
  const { summaryPath, flowPaths } = await writeFlowComparisonResults(USER_PROMPT, results);
166
183
  console.log(`\nResults written to: ${summaryPath}`);
167
184
  console.log(`Flow files: ${flowPaths.join(', ')}`);
@@ -190,11 +207,11 @@ Modify this existing flow to add error handling:
190
207
  - If validation passes, return the data for the next step
191
208
  - Update save_results to handle the validation result appropriately
192
209
  `;
193
- const results = await runVariantComparison(USER_PROMPT, VARIANTS, OPENROUTER_API_KEY, {
210
+ const results = await runVariantComparison(USER_PROMPT, VARIANTS, VARIANTS[0]._apiKey, {
194
211
  initialModules: initialTest5.value.modules,
195
212
  initialSchema: initialTest5.schema,
196
213
  expectedFlow: expectedTest5
197
- });
214
+ }, VARIANTS.map((v) => ({ provider: v._provider, apiKey: v._apiKey })));
198
215
  const { summaryPath, flowPaths } = await writeFlowComparisonResults(USER_PROMPT, results);
199
216
  console.log(`\nResults written to: ${summaryPath}`);
200
217
  console.log(`Flow files: ${flowPaths.join(', ')}`);
@@ -222,11 +239,11 @@ Modify the order processing loop to handle different order types:
222
239
  - Move the original process_order step to the default branch for unknown order types
223
240
  - Each branch step should return the orderId, shipping cost, and shipping type
224
241
  `;
225
- const results = await runVariantComparison(USER_PROMPT, VARIANTS, OPENROUTER_API_KEY, {
242
+ const results = await runVariantComparison(USER_PROMPT, VARIANTS, VARIANTS[0]._apiKey, {
226
243
  initialModules: initialTest6.value.modules,
227
244
  initialSchema: initialTest6.schema,
228
245
  expectedFlow: expectedTest6
229
- });
246
+ }, VARIANTS.map((v) => ({ provider: v._provider, apiKey: v._apiKey })));
230
247
  const { summaryPath, flowPaths } = await writeFlowComparisonResults(USER_PROMPT, results);
231
248
  console.log(`\nResults written to: ${summaryPath}`);
232
249
  console.log(`Flow files: ${flowPaths.join(', ')}`);
@@ -254,11 +271,11 @@ Refactor this flow for better performance by parallelizing the enrichment steps:
254
271
  - The combine_data step should check if any enrichment used a fallback value and set a hasFallbacks flag
255
272
  - Keep get_item as the first step and return_result as the last step unchanged
256
273
  `;
257
- const results = await runVariantComparison(USER_PROMPT, VARIANTS, OPENROUTER_API_KEY, {
274
+ const results = await runVariantComparison(USER_PROMPT, VARIANTS, VARIANTS[0]._apiKey, {
258
275
  initialModules: initialTest7.value.modules,
259
276
  initialSchema: initialTest7.schema,
260
277
  expectedFlow: expectedTest7
261
- });
278
+ }, VARIANTS.map((v) => ({ provider: v._provider, apiKey: v._apiKey })));
262
279
  const { summaryPath, flowPaths } = await writeFlowComparisonResults(USER_PROMPT, results);
263
280
  console.log(`\nResults written to: ${summaryPath}`);
264
281
  console.log(`Flow files: ${flowPaths.join(', ')}`);
@@ -40,13 +40,10 @@ ${BASE_EVALUATOR_RESPONSE_FORMAT}`;
40
40
  * Returns a resemblance score (0-100), a qualitative statement, and any missing requirements.
41
41
  */
42
42
  export async function evaluateFlowComparison(generatedFlow, expectedFlow, userPrompt) {
43
- // @ts-ignore
44
- const apiKey = process.env.OPENROUTER_API_KEY;
45
43
  return evaluateWithLLM({
46
44
  userPrompt,
47
45
  generatedOutput: generatedFlow,
48
46
  expectedOutput: expectedFlow,
49
- evaluatorSystemPrompt: FLOW_EVALUATOR_SYSTEM_PROMPT,
50
- apiKey
47
+ evaluatorSystemPrompt: FLOW_EVALUATOR_SYSTEM_PROMPT
51
48
  });
52
49
  }
@@ -1,4 +1,5 @@
1
1
  import type { FlowModule } from '../../../../../gen';
2
+ import type { AIProvider } from '../../../../../gen/types.gen';
2
3
  import type { ExtendedOpenFlow } from '../../../../flows/types';
3
4
  import { type ExpectedFlow } from './flowEvalComparison';
4
5
  import { type VariantConfig, type BaseEvalResult } from '../shared';
@@ -21,17 +22,25 @@ export interface FlowEvalOptions {
21
22
  maxIterations?: number;
22
23
  variant?: VariantConfig;
23
24
  expectedFlow?: ExpectedFlow;
25
+ /** AI provider (inferred from model name if omitted) */
26
+ provider?: AIProvider;
24
27
  }
25
28
  /**
26
- * Runs a flow chat evaluation with real OpenAI API calls.
27
- * Executes tool calls using the actual flowTools from core.ts or variant-configured tools.
29
+ * Runs a flow chat evaluation using the shared chat loop (same code path as production).
28
30
  */
29
- export declare function runFlowEval(userPrompt: string, openaiApiKey: string, options?: FlowEvalOptions): Promise<FlowEvalResult>;
31
+ export declare function runFlowEval(userPrompt: string, apiKey: string, options?: FlowEvalOptions): Promise<FlowEvalResult>;
32
+ /**
33
+ * Per-variant provider override.
34
+ */
35
+ export interface VariantProviderOverride {
36
+ provider: AIProvider;
37
+ apiKey: string;
38
+ }
30
39
  /**
31
40
  * Runs the same prompt against multiple variants sequentially for comparison.
32
- * Returns results in the same order as the input variants.
41
+ * Accepts optional per-variant provider/apiKey overrides.
33
42
  */
34
- export declare function runVariantComparison(userPrompt: string, variants: VariantConfig[], openaiApiKey: string, baseOptions?: Omit<FlowEvalOptions, 'variant'>): Promise<FlowEvalResult[]>;
43
+ export declare function runVariantComparison(userPrompt: string, variants: VariantConfig[], defaultApiKey: string, baseOptions?: Omit<FlowEvalOptions, 'variant'>, providerOverrides?: VariantProviderOverride[]): Promise<FlowEvalResult[]>;
35
44
  /**
36
45
  * Writes flow comparison results to files.
37
46
  */
@@ -10,15 +10,14 @@ const flowDefaults = {
10
10
  tools: flowTools
11
11
  };
12
12
  /**
13
- * Runs a flow chat evaluation with real OpenAI API calls.
14
- * Executes tool calls using the actual flowTools from core.ts or variant-configured tools.
13
+ * Runs a flow chat evaluation using the shared chat loop (same code path as production).
15
14
  */
16
- export async function runFlowEval(userPrompt, openaiApiKey, options) {
15
+ export async function runFlowEval(userPrompt, apiKey, options) {
17
16
  const { helpers, getFlow } = createFlowEvalHelpers(options?.initialModules ?? [], options?.initialSchema);
18
17
  // Resolve variant configuration
19
18
  const variantName = options?.variant?.name ?? 'baseline';
20
19
  const systemMessage = resolveSystemPrompt(options?.variant, flowDefaults, options?.customSystemPrompt);
21
- const { toolDefs, tools } = resolveTools(options?.variant, flowDefaults);
20
+ const { tools } = resolveTools(options?.variant, flowDefaults);
22
21
  const model = resolveModel(options?.variant, options?.model);
23
22
  // Build user message
24
23
  const userMessage = prepareFlowUserMessage(userPrompt, helpers.getFlowAndSelectedId(), []);
@@ -27,15 +26,15 @@ export async function runFlowEval(userPrompt, openaiApiKey, options) {
27
26
  userPrompt,
28
27
  systemMessage,
29
28
  userMessage,
30
- toolDefs,
31
29
  tools,
32
30
  helpers,
33
- apiKey: openaiApiKey,
31
+ apiKey,
34
32
  getOutput: getFlow,
35
33
  options: {
36
34
  maxIterations: options?.maxIterations,
37
35
  model,
38
- workspace: 'test-workspace'
36
+ workspace: 'test-workspace',
37
+ provider: options?.provider
39
38
  }
40
39
  });
41
40
  // Run evaluation if expected flow is provided
@@ -57,13 +56,15 @@ export async function runFlowEval(userPrompt, openaiApiKey, options) {
57
56
  }
58
57
  /**
59
58
  * Runs the same prompt against multiple variants sequentially for comparison.
60
- * Returns results in the same order as the input variants.
59
+ * Accepts optional per-variant provider/apiKey overrides.
61
60
  */
62
- export async function runVariantComparison(userPrompt, variants, openaiApiKey, baseOptions) {
63
- const results = await Promise.all(variants.map(async (variant) => {
64
- return await runFlowEval(userPrompt, openaiApiKey, {
61
+ export async function runVariantComparison(userPrompt, variants, defaultApiKey, baseOptions, providerOverrides) {
62
+ const results = await Promise.all(variants.map(async (variant, i) => {
63
+ const override = providerOverrides?.[i];
64
+ return await runFlowEval(userPrompt, override?.apiKey ?? defaultApiKey, {
65
65
  ...baseOptions,
66
- variant
66
+ variant,
67
+ provider: override?.provider ?? baseOptions?.provider
67
68
  });
68
69
  }));
69
70
  return results;
@@ -1,5 +1,4 @@
1
1
  import type { ChatCompletionMessageParam, ChatCompletionSystemMessageParam } from 'openai/resources/chat/completions.mjs';
2
- import type { ChatCompletionTool } from 'openai/resources/chat/completions.mjs';
3
2
  import type { TokenUsage, ToolCallDetail, EvalRunnerOptions } from './types';
4
3
  import type { Tool } from './baseVariants';
5
4
  /**
@@ -26,13 +25,13 @@ export interface RunEvalParams<THelpers, TOutput> {
26
25
  systemMessage: ChatCompletionSystemMessageParam;
27
26
  /** User message for the LLM */
28
27
  userMessage: ChatCompletionMessageParam;
29
- /** Tool definitions for the LLM API */
30
- toolDefs: ChatCompletionTool[];
28
+ /** Tool definitions for the LLM API (unused — derived from tools) */
29
+ toolDefs?: unknown;
31
30
  /** Full tool implementations for execution */
32
31
  tools: Tool<THelpers>[];
33
32
  /** Domain-specific helpers for tool execution */
34
33
  helpers: THelpers;
35
- /** API key for OpenRouter */
34
+ /** API key for the provider */
36
35
  apiKey: string;
37
36
  /** Function to get the current output state */
38
37
  getOutput: () => TOutput;
@@ -40,9 +39,7 @@ export interface RunEvalParams<THelpers, TOutput> {
40
39
  options?: EvalRunnerOptions;
41
40
  }
42
41
  /**
43
- * Runs a generic evaluation with real LLM API calls.
44
- * Executes tool calls in a loop until the LLM stops calling tools.
45
- *
46
- * This is the core execution loop shared across all chat eval tests.
42
+ * Runs a generic evaluation using the shared chat loop (same code path as production).
43
+ * Uses streaming via real provider SDKs instead of OpenRouter non-streaming.
47
44
  */
48
45
  export declare function runEval<THelpers, TOutput>(params: RunEvalParams<THelpers, TOutput>): Promise<RawEvalResult<TOutput>>;