flujo-ai 3.28.0 → 3.30.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 (848) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +481 -464
  3. package/.next/app-path-routes-manifest.json +20 -17
  4. package/.next/build-manifest.json +6 -6
  5. package/.next/prerender-manifest.json +30 -30
  6. package/.next/react-loadable-manifest.json +7 -6
  7. package/.next/required-server-files.json +4 -4
  8. package/.next/routes-manifest.json +8 -0
  9. package/.next/server/app/_not-found/page.js +4 -4
  10. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  11. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  12. package/.next/server/app/_not-found.html +1 -1
  13. package/.next/server/app/_not-found.rsc +3 -3
  14. package/.next/server/app/api/approvals/[id]/route.js +1 -1
  15. package/.next/server/app/api/approvals/[id]/route.js.nft.json +1 -1
  16. package/.next/server/app/api/approvals/[id]/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/approvals/route.js +2 -2
  18. package/.next/server/app/api/approvals/route.js.nft.json +1 -1
  19. package/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/backup/route.js +1 -1
  21. package/.next/server/app/api/backup/route.js.nft.json +1 -1
  22. package/.next/server/app/api/backup/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/browse/route.js +1 -1
  24. package/.next/server/app/api/browse/route.js.nft.json +1 -1
  25. package/.next/server/app/api/browse/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/bugs/enhance/route.js +3 -3
  27. package/.next/server/app/api/bugs/enhance/route.js.nft.json +1 -1
  28. package/.next/server/app/api/bugs/enhance/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/cwd/route.js +1 -1
  30. package/.next/server/app/api/cwd/route.js.nft.json +1 -1
  31. package/.next/server/app/api/cwd/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/encryption/secure/route.js +1 -1
  33. package/.next/server/app/api/encryption/secure/route.js.nft.json +1 -1
  34. package/.next/server/app/api/encryption/secure/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/env/route.js +2 -2
  36. package/.next/server/app/api/env/route.js.nft.json +1 -1
  37. package/.next/server/app/api/env/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/flow/[id]/route.js +1 -1
  39. package/.next/server/app/api/flow/[id]/route.js.nft.json +1 -1
  40. package/.next/server/app/api/flow/[id]/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/flow/[id]/versions/[versionId]/route.js +1 -1
  42. package/.next/server/app/api/flow/[id]/versions/[versionId]/route.js.nft.json +1 -1
  43. package/.next/server/app/api/flow/[id]/versions/[versionId]/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/flow/[id]/versions/route.js +1 -1
  45. package/.next/server/app/api/flow/[id]/versions/route.js.nft.json +1 -1
  46. package/.next/server/app/api/flow/[id]/versions/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/flow/compile/route.js +1 -1
  48. package/.next/server/app/api/flow/compile/route.js.nft.json +1 -1
  49. package/.next/server/app/api/flow/compile/route_client-reference-manifest.js +1 -1
  50. package/.next/server/app/api/flow/generate/route.js +1 -1
  51. package/.next/server/app/api/flow/generate/route.js.nft.json +1 -1
  52. package/.next/server/app/api/flow/generate/route_client-reference-manifest.js +1 -1
  53. package/.next/server/app/api/flow/improve/route.js +1 -1
  54. package/.next/server/app/api/flow/improve/route.js.nft.json +1 -1
  55. package/.next/server/app/api/flow/improve/route_client-reference-manifest.js +1 -1
  56. package/.next/server/app/api/flow/prompt-renderer/route.js +2 -2
  57. package/.next/server/app/api/flow/prompt-renderer/route.js.nft.json +1 -1
  58. package/.next/server/app/api/flow/prompt-renderer/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/flow/quick-chat/route.js +1 -1
  60. package/.next/server/app/api/flow/quick-chat/route.js.nft.json +1 -1
  61. package/.next/server/app/api/flow/quick-chat/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/flow/repair/route.js +1 -1
  63. package/.next/server/app/api/flow/repair/route.js.nft.json +1 -1
  64. package/.next/server/app/api/flow/repair/route_client-reference-manifest.js +1 -1
  65. package/.next/server/app/api/flow/route.js +1 -1
  66. package/.next/server/app/api/flow/route.js.nft.json +1 -1
  67. package/.next/server/app/api/flow/route_client-reference-manifest.js +1 -1
  68. package/.next/server/app/api/git/route.js +2 -2
  69. package/.next/server/app/api/git/route.js.nft.json +1 -1
  70. package/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/init/route.js +1 -1
  72. package/.next/server/app/api/init/route.js.nft.json +1 -1
  73. package/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  74. package/.next/server/app/api/local-models/capability/route.js +2 -1
  75. package/.next/server/app/api/local-models/capability/route.js.nft.json +1 -1
  76. package/.next/server/app/api/local-models/capability/route_client-reference-manifest.js +1 -1
  77. package/.next/server/app/api/local-models/pull/route.js +2 -1
  78. package/.next/server/app/api/local-models/pull/route.js.nft.json +1 -1
  79. package/.next/server/app/api/local-models/pull/route_client-reference-manifest.js +1 -1
  80. package/.next/server/app/api/local-models/suggest/route.js +2 -2
  81. package/.next/server/app/api/local-models/suggest/route_client-reference-manifest.js +1 -1
  82. package/.next/server/app/api/mcp/app-sandbox/route.js +1 -1
  83. package/.next/server/app/api/mcp/app-sandbox/route.js.nft.json +1 -1
  84. package/.next/server/app/api/mcp/app-sandbox/route_client-reference-manifest.js +1 -1
  85. package/.next/server/app/api/mcp/cancel/route.js +2 -2
  86. package/.next/server/app/api/mcp/cancel/route.js.nft.json +1 -1
  87. package/.next/server/app/api/mcp/cancel/route_client-reference-manifest.js +1 -1
  88. package/.next/server/app/api/mcp/oauth-capability/route.js +1 -1
  89. package/.next/server/app/api/mcp/oauth-capability/route.js.nft.json +1 -1
  90. package/.next/server/app/api/mcp/oauth-capability/route_client-reference-manifest.js +1 -1
  91. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js +1 -1
  92. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js.nft.json +1 -1
  93. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route_client-reference-manifest.js +1 -1
  94. package/.next/server/app/api/mcp/servers/[name]/prompts/route.js +1 -1
  95. package/.next/server/app/api/mcp/servers/[name]/prompts/route.js.nft.json +1 -1
  96. package/.next/server/app/api/mcp/servers/[name]/prompts/route_client-reference-manifest.js +1 -1
  97. package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js +1 -1
  98. package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js.nft.json +1 -1
  99. package/.next/server/app/api/mcp/servers/[name]/resources/read/route_client-reference-manifest.js +1 -1
  100. package/.next/server/app/api/mcp/servers/[name]/resources/route.js +1 -1
  101. package/.next/server/app/api/mcp/servers/[name]/resources/route.js.nft.json +1 -1
  102. package/.next/server/app/api/mcp/servers/[name]/resources/route_client-reference-manifest.js +1 -1
  103. package/.next/server/app/api/mcp/servers/[name]/route.js +1 -1
  104. package/.next/server/app/api/mcp/servers/[name]/route.js.nft.json +1 -1
  105. package/.next/server/app/api/mcp/servers/[name]/route_client-reference-manifest.js +1 -1
  106. package/.next/server/app/api/mcp/servers/[name]/status/route.js +1 -1
  107. package/.next/server/app/api/mcp/servers/[name]/status/route.js.nft.json +1 -1
  108. package/.next/server/app/api/mcp/servers/[name]/status/route_client-reference-manifest.js +1 -1
  109. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js +1 -1
  110. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js.nft.json +1 -1
  111. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route_client-reference-manifest.js +1 -1
  112. package/.next/server/app/api/mcp/servers/[name]/tools/route.js +1 -1
  113. package/.next/server/app/api/mcp/servers/[name]/tools/route.js.nft.json +1 -1
  114. package/.next/server/app/api/mcp/servers/[name]/tools/route_client-reference-manifest.js +1 -1
  115. package/.next/server/app/api/mcp/servers/route.js +1 -1
  116. package/.next/server/app/api/mcp/servers/route.js.nft.json +1 -1
  117. package/.next/server/app/api/mcp/servers/route_client-reference-manifest.js +1 -1
  118. package/.next/server/app/api/mcp/test-connection/route.js +1 -1
  119. package/.next/server/app/api/mcp/test-connection/route.js.nft.json +1 -1
  120. package/.next/server/app/api/mcp/test-connection/route_client-reference-manifest.js +1 -1
  121. package/.next/server/app/api/mcp/test-connection/stream/route.js +1 -1
  122. package/.next/server/app/api/mcp/test-connection/stream/route.js.nft.json +1 -1
  123. package/.next/server/app/api/mcp/test-connection/stream/route_client-reference-manifest.js +1 -1
  124. package/.next/server/app/api/mcp-registry/route.js +2 -2
  125. package/.next/server/app/api/mcp-registry/route.js.nft.json +1 -1
  126. package/.next/server/app/api/mcp-registry/route_client-reference-manifest.js +1 -1
  127. package/.next/server/app/api/mcp-registry/spotlight/route.js +1 -1
  128. package/.next/server/app/api/mcp-registry/spotlight/route.js.nft.json +1 -1
  129. package/.next/server/app/api/mcp-registry/spotlight/route_client-reference-manifest.js +1 -1
  130. package/.next/server/app/api/model/[id]/route.js +1 -1
  131. package/.next/server/app/api/model/[id]/route.js.nft.json +1 -1
  132. package/.next/server/app/api/model/[id]/route_client-reference-manifest.js +1 -1
  133. package/.next/server/app/api/model/provider/route.js +2 -2
  134. package/.next/server/app/api/model/provider/route.js.nft.json +1 -1
  135. package/.next/server/app/api/model/provider/route_client-reference-manifest.js +1 -1
  136. package/.next/server/app/api/model/route.js +1 -1
  137. package/.next/server/app/api/model/route.js.nft.json +1 -1
  138. package/.next/server/app/api/model/route_client-reference-manifest.js +1 -1
  139. package/.next/server/app/api/model/test/route.js +2 -2
  140. package/.next/server/app/api/model/test/route.js.nft.json +1 -1
  141. package/.next/server/app/api/model/test/route_client-reference-manifest.js +1 -1
  142. package/.next/server/app/api/oauth/callback/route.js +2 -2
  143. package/.next/server/app/api/oauth/callback/route.js.nft.json +1 -1
  144. package/.next/server/app/api/oauth/callback/route_client-reference-manifest.js +1 -1
  145. package/.next/server/app/api/oauth/initiate/route.js +2 -2
  146. package/.next/server/app/api/oauth/initiate/route.js.nft.json +1 -1
  147. package/.next/server/app/api/oauth/initiate/route_client-reference-manifest.js +1 -1
  148. package/.next/server/app/api/oauth/reset/route.js +2 -2
  149. package/.next/server/app/api/oauth/reset/route.js.nft.json +1 -1
  150. package/.next/server/app/api/oauth/reset/route_client-reference-manifest.js +1 -1
  151. package/.next/server/app/api/packages/build/route.js +1 -1
  152. package/.next/server/app/api/packages/build/route.js.nft.json +1 -1
  153. package/.next/server/app/api/packages/build/route_client-reference-manifest.js +1 -1
  154. package/.next/server/app/api/packages/derive-secrets/route.js +1 -1
  155. package/.next/server/app/api/packages/derive-secrets/route.js.nft.json +1 -1
  156. package/.next/server/app/api/packages/derive-secrets/route_client-reference-manifest.js +1 -1
  157. package/.next/server/app/api/packages/install/route.js +1 -1
  158. package/.next/server/app/api/packages/install/route.js.nft.json +1 -1
  159. package/.next/server/app/api/packages/install/route_client-reference-manifest.js +1 -1
  160. package/.next/server/app/api/packages/install/status/route.js +1 -1
  161. package/.next/server/app/api/packages/install/status/route.js.nft.json +1 -1
  162. package/.next/server/app/api/packages/install/status/route_client-reference-manifest.js +1 -1
  163. package/.next/server/app/api/packages/installed/route.js +1 -1
  164. package/.next/server/app/api/packages/installed/route.js.nft.json +1 -1
  165. package/.next/server/app/api/packages/installed/route_client-reference-manifest.js +1 -1
  166. package/.next/server/app/api/packages/resolve/route.js +1 -1
  167. package/.next/server/app/api/packages/resolve/route.js.nft.json +1 -1
  168. package/.next/server/app/api/packages/resolve/route_client-reference-manifest.js +1 -1
  169. package/.next/server/app/api/packages/scan-targets/route.js +1 -0
  170. package/.next/server/app/api/packages/scan-targets/route.js.nft.json +1 -0
  171. package/.next/server/app/api/packages/scan-targets/route_client-reference-manifest.js +1 -0
  172. package/.next/server/app/api/packages/search/route.js +1 -0
  173. package/.next/server/app/api/packages/search/route.js.nft.json +1 -0
  174. package/.next/server/app/api/packages/search/route_client-reference-manifest.js +1 -0
  175. package/.next/server/app/api/packages/uninstall/route.js +1 -1
  176. package/.next/server/app/api/packages/uninstall/route.js.nft.json +1 -1
  177. package/.next/server/app/api/packages/uninstall/route_client-reference-manifest.js +1 -1
  178. package/.next/server/app/api/planned-executions/[id]/route.js +2 -2
  179. package/.next/server/app/api/planned-executions/[id]/route.js.nft.json +1 -1
  180. package/.next/server/app/api/planned-executions/[id]/route_client-reference-manifest.js +1 -1
  181. package/.next/server/app/api/planned-executions/[id]/run/route.js +2 -2
  182. package/.next/server/app/api/planned-executions/[id]/run/route.js.nft.json +1 -1
  183. package/.next/server/app/api/planned-executions/[id]/run/route_client-reference-manifest.js +1 -1
  184. package/.next/server/app/api/planned-executions/[id]/runs/route.js +2 -2
  185. package/.next/server/app/api/planned-executions/[id]/runs/route.js.nft.json +1 -1
  186. package/.next/server/app/api/planned-executions/[id]/runs/route_client-reference-manifest.js +1 -1
  187. package/.next/server/app/api/planned-executions/preview-schedule/route.js +1 -1
  188. package/.next/server/app/api/planned-executions/preview-schedule/route.js.nft.json +1 -1
  189. package/.next/server/app/api/planned-executions/preview-schedule/route_client-reference-manifest.js +1 -1
  190. package/.next/server/app/api/planned-executions/reconcile/route.js +1 -1
  191. package/.next/server/app/api/planned-executions/reconcile/route.js.nft.json +1 -1
  192. package/.next/server/app/api/planned-executions/reconcile/route_client-reference-manifest.js +1 -1
  193. package/.next/server/app/api/planned-executions/route.js +1 -1
  194. package/.next/server/app/api/planned-executions/route.js.nft.json +1 -1
  195. package/.next/server/app/api/planned-executions/route_client-reference-manifest.js +1 -1
  196. package/.next/server/app/api/registry/auth/resend/route.js +1 -1
  197. package/.next/server/app/api/registry/auth/resend/route.js.nft.json +1 -1
  198. package/.next/server/app/api/registry/auth/resend/route_client-reference-manifest.js +1 -1
  199. package/.next/server/app/api/registry/auth/reset/route.js +1 -1
  200. package/.next/server/app/api/registry/auth/reset/route.js.nft.json +1 -1
  201. package/.next/server/app/api/registry/auth/reset/route_client-reference-manifest.js +1 -1
  202. package/.next/server/app/api/registry/auth/route.js +1 -1
  203. package/.next/server/app/api/registry/auth/route.js.nft.json +1 -1
  204. package/.next/server/app/api/registry/auth/route_client-reference-manifest.js +1 -1
  205. package/.next/server/app/api/registry/oauth/callback/route.js +1 -1
  206. package/.next/server/app/api/registry/oauth/callback/route.js.nft.json +1 -1
  207. package/.next/server/app/api/registry/oauth/callback/route_client-reference-manifest.js +1 -1
  208. package/.next/server/app/api/registry/oauth/initiate/route.js +1 -1
  209. package/.next/server/app/api/registry/oauth/initiate/route.js.nft.json +1 -1
  210. package/.next/server/app/api/registry/oauth/initiate/route_client-reference-manifest.js +1 -1
  211. package/.next/server/app/api/registry/publish/route.js +1 -1
  212. package/.next/server/app/api/registry/publish/route.js.nft.json +1 -1
  213. package/.next/server/app/api/registry/publish/route_client-reference-manifest.js +1 -1
  214. package/.next/server/app/api/registry/settings/route.js +1 -1
  215. package/.next/server/app/api/registry/settings/route.js.nft.json +1 -1
  216. package/.next/server/app/api/registry/settings/route_client-reference-manifest.js +1 -1
  217. package/.next/server/app/api/restore/route.js +1 -1
  218. package/.next/server/app/api/restore/route.js.nft.json +1 -1
  219. package/.next/server/app/api/restore/route_client-reference-manifest.js +1 -1
  220. package/.next/server/app/api/runs/active/route.js +2 -2
  221. package/.next/server/app/api/runs/active/route.js.nft.json +1 -1
  222. package/.next/server/app/api/runs/active/route_client-reference-manifest.js +1 -1
  223. package/.next/server/app/api/storage/route.js +1 -1
  224. package/.next/server/app/api/storage/route.js.nft.json +1 -1
  225. package/.next/server/app/api/storage/route_client-reference-manifest.js +1 -1
  226. package/.next/server/app/api/update/route.js +1 -1
  227. package/.next/server/app/api/update/route.js.nft.json +1 -1
  228. package/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  229. package/.next/server/app/api/waves/route.js +1 -1
  230. package/.next/server/app/api/waves/route.js.nft.json +1 -1
  231. package/.next/server/app/api/waves/route_client-reference-manifest.js +1 -1
  232. package/.next/server/app/api/webhooks/[id]/route.js +1 -1
  233. package/.next/server/app/api/webhooks/[id]/route.js.nft.json +1 -1
  234. package/.next/server/app/api/webhooks/[id]/route_client-reference-manifest.js +1 -1
  235. package/.next/server/app/chat/page.js +9 -9
  236. package/.next/server/app/chat/page.js.nft.json +1 -1
  237. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  238. package/.next/server/app/chat.html +1 -1
  239. package/.next/server/app/chat.rsc +4 -4
  240. package/.next/server/app/docs/page.js +5 -5
  241. package/.next/server/app/docs/page.js.nft.json +1 -1
  242. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  243. package/.next/server/app/docs.html +1 -1
  244. package/.next/server/app/docs.rsc +4 -4
  245. package/.next/server/app/executions/page.js +2 -39
  246. package/.next/server/app/executions/page.js.nft.json +1 -1
  247. package/.next/server/app/executions/page_client-reference-manifest.js +1 -1
  248. package/.next/server/app/executions.html +1 -1
  249. package/.next/server/app/executions.rsc +4 -4
  250. package/.next/server/app/flows/page.js +3 -3
  251. package/.next/server/app/flows/page.js.nft.json +1 -1
  252. package/.next/server/app/flows/page_client-reference-manifest.js +1 -1
  253. package/.next/server/app/flows.html +1 -1
  254. package/.next/server/app/flows.rsc +4 -4
  255. package/.next/server/app/index.html +1 -1
  256. package/.next/server/app/index.rsc +4 -4
  257. package/.next/server/app/mcp/page.js +11 -11
  258. package/.next/server/app/mcp/page.js.nft.json +1 -1
  259. package/.next/server/app/mcp/page_client-reference-manifest.js +1 -1
  260. package/.next/server/app/mcp-flows/route.js +1 -1
  261. package/.next/server/app/mcp-flows/route.js.nft.json +1 -1
  262. package/.next/server/app/mcp-flows/route_client-reference-manifest.js +1 -1
  263. package/.next/server/app/mcp-proxy/[server]/route.js +1 -1
  264. package/.next/server/app/mcp-proxy/[server]/route.js.nft.json +1 -1
  265. package/.next/server/app/mcp-proxy/[server]/route_client-reference-manifest.js +1 -1
  266. package/.next/server/app/mcp.html +1 -1
  267. package/.next/server/app/mcp.rsc +4 -4
  268. package/.next/server/app/models/page.js +2 -2
  269. package/.next/server/app/models/page.js.nft.json +1 -1
  270. package/.next/server/app/models/page_client-reference-manifest.js +1 -1
  271. package/.next/server/app/packages/page.js +2 -2
  272. package/.next/server/app/packages/page.js.nft.json +1 -1
  273. package/.next/server/app/packages/page_client-reference-manifest.js +1 -1
  274. package/.next/server/app/packages.html +1 -1
  275. package/.next/server/app/packages.rsc +4 -4
  276. package/.next/server/app/page.js +3 -3
  277. package/.next/server/app/page.js.nft.json +1 -1
  278. package/.next/server/app/page_client-reference-manifest.js +1 -1
  279. package/.next/server/app/settings/page.js +2 -2
  280. package/.next/server/app/settings/page.js.nft.json +1 -1
  281. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  282. package/.next/server/app/settings.html +1 -1
  283. package/.next/server/app/settings.rsc +4 -4
  284. package/.next/server/app/v1/chat/completions/route.js +1 -1
  285. package/.next/server/app/v1/chat/completions/route.js.nft.json +1 -1
  286. package/.next/server/app/v1/chat/completions/route_client-reference-manifest.js +1 -1
  287. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js +2 -2
  288. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js.nft.json +1 -1
  289. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route_client-reference-manifest.js +1 -1
  290. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js +2 -2
  291. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js.nft.json +1 -1
  292. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route_client-reference-manifest.js +1 -1
  293. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js +1 -1
  294. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js.nft.json +1 -1
  295. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route_client-reference-manifest.js +1 -1
  296. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js +1 -1
  297. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js.nft.json +1 -1
  298. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route_client-reference-manifest.js +1 -1
  299. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js +2 -2
  300. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js.nft.json +1 -1
  301. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route_client-reference-manifest.js +1 -1
  302. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js +4 -4
  303. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js.nft.json +1 -1
  304. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route_client-reference-manifest.js +1 -1
  305. package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route.js +2 -0
  306. package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route.js.nft.json +1 -0
  307. package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route_client-reference-manifest.js +1 -0
  308. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route.js +1 -1
  309. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route.js.nft.json +1 -1
  310. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route_client-reference-manifest.js +1 -1
  311. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js +1 -1
  312. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js.nft.json +1 -1
  313. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route_client-reference-manifest.js +1 -1
  314. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js +2 -2
  315. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js.nft.json +1 -1
  316. package/.next/server/app/v1/chat/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
  317. package/.next/server/app/v1/chat/conversations/route.js +2 -2
  318. package/.next/server/app/v1/chat/conversations/route.js.nft.json +1 -1
  319. package/.next/server/app/v1/chat/conversations/route_client-reference-manifest.js +1 -1
  320. package/.next/server/app/v1/chat/events/route.js +3 -3
  321. package/.next/server/app/v1/chat/events/route.js.nft.json +1 -1
  322. package/.next/server/app/v1/chat/events/route_client-reference-manifest.js +1 -1
  323. package/.next/server/app/v1/models/route.js +2 -2
  324. package/.next/server/app/v1/models/route.js.nft.json +1 -1
  325. package/.next/server/app/v1/models/route_client-reference-manifest.js +1 -1
  326. package/.next/server/app/waves/page.js +4 -4
  327. package/.next/server/app/waves/page.js.nft.json +1 -1
  328. package/.next/server/app/waves/page_client-reference-manifest.js +1 -1
  329. package/.next/server/app/waves.html +1 -1
  330. package/.next/server/app/waves.rsc +4 -4
  331. package/.next/server/app-paths-manifest.json +20 -17
  332. package/.next/server/chunks/1114.js +1 -1
  333. package/.next/server/chunks/1226.js +1 -1
  334. package/.next/server/chunks/1314.js +1 -1
  335. package/.next/server/chunks/{6529.js → 1578.js} +2 -2
  336. package/.next/server/chunks/1634.js +1 -0
  337. package/.next/server/chunks/166.js +5 -5
  338. package/.next/server/chunks/1690.js +1 -0
  339. package/.next/server/chunks/2180.js +1 -0
  340. package/.next/server/chunks/227.js +2 -2
  341. package/.next/server/chunks/2273.js +2 -0
  342. package/.next/server/chunks/237.js +1 -0
  343. package/.next/server/chunks/2695.js +2 -2
  344. package/.next/server/chunks/2859.js +1 -1
  345. package/.next/server/chunks/2866.js +2 -0
  346. package/.next/server/chunks/{7674.js → 3030.js} +1 -1
  347. package/.next/server/chunks/3128.js +4 -4
  348. package/.next/server/chunks/{8730.js → 3489.js} +1 -1
  349. package/.next/server/chunks/3570.js +228 -105
  350. package/.next/server/chunks/3629.js +1 -1
  351. package/.next/server/chunks/3912.js +2 -0
  352. package/.next/server/chunks/3984.js +4 -4
  353. package/.next/server/chunks/4265.js +1 -1
  354. package/.next/server/chunks/4366.js +2 -0
  355. package/.next/server/chunks/4551.js +6 -0
  356. package/.next/server/chunks/4566.js +6 -0
  357. package/.next/server/chunks/4671.js +1 -1
  358. package/.next/server/chunks/4681.js +1 -1
  359. package/.next/server/chunks/4685.js +1 -0
  360. package/.next/server/chunks/4771.js +2 -2
  361. package/.next/server/chunks/4961.js +2 -0
  362. package/.next/server/chunks/5040.js +53 -0
  363. package/.next/server/chunks/5067.js +1 -1
  364. package/.next/server/chunks/544.js +135 -0
  365. package/.next/server/chunks/5463.js +1 -1
  366. package/.next/server/chunks/5544.js +5 -5
  367. package/.next/server/chunks/5548.js +62 -0
  368. package/.next/server/chunks/5561.js +1 -0
  369. package/.next/server/chunks/5705.js +1 -0
  370. package/.next/server/chunks/5708.js +1 -1
  371. package/.next/server/chunks/5829.js +1 -0
  372. package/.next/server/chunks/5863.js +37 -0
  373. package/.next/server/chunks/5880.js +1 -1
  374. package/.next/server/chunks/6034.js +77 -0
  375. package/.next/server/chunks/6226.js +6 -0
  376. package/.next/server/chunks/6404.js +2 -0
  377. package/.next/server/chunks/6432.js +1 -0
  378. package/.next/server/chunks/6496.js +1 -0
  379. package/.next/server/chunks/6793.js +1 -0
  380. package/.next/server/chunks/694.js +3 -0
  381. package/.next/server/chunks/701.js +1 -1
  382. package/.next/server/chunks/7506.js +1 -1
  383. package/.next/server/chunks/7579.js +4 -4
  384. package/.next/server/chunks/7634.js +4 -0
  385. package/.next/server/chunks/7724.js +1 -0
  386. package/.next/server/chunks/7821.js +1 -1
  387. package/.next/server/chunks/793.js +15 -5
  388. package/.next/server/chunks/7969.js +1 -0
  389. package/.next/server/chunks/{6537.js → 8001.js} +1 -1
  390. package/.next/server/chunks/8034.js +1 -0
  391. package/.next/server/chunks/8092.js +1 -0
  392. package/.next/server/chunks/{8568.js → 8192.js} +1 -1
  393. package/.next/server/chunks/826.js +2 -0
  394. package/.next/server/chunks/8298.js +1 -0
  395. package/.next/server/chunks/8321.js +1 -0
  396. package/.next/server/chunks/8356.js +1 -0
  397. package/.next/server/chunks/8366.js +90 -0
  398. package/.next/server/chunks/8387.js +1 -1
  399. package/.next/server/chunks/848.js +39 -0
  400. package/.next/server/chunks/8615.js +1 -0
  401. package/.next/server/chunks/8645.js +2 -0
  402. package/.next/server/chunks/8739.js +1 -1
  403. package/.next/server/chunks/8851.js +1 -0
  404. package/.next/server/chunks/9174.js +1 -0
  405. package/.next/server/chunks/9313.js +1 -0
  406. package/.next/server/chunks/94.js +1 -1
  407. package/.next/server/chunks/9406.js +2 -2
  408. package/.next/server/chunks/9509.js +2 -2
  409. package/.next/server/chunks/9537.js +39 -0
  410. package/.next/server/chunks/9576.js +2 -0
  411. package/.next/server/chunks/9671.js +1 -1
  412. package/.next/server/chunks/9724.js +16 -6
  413. package/.next/server/chunks/9857.js +1 -0
  414. package/.next/server/chunks/{3298.js → 9868.js} +2 -2
  415. package/.next/server/chunks/9957.js +1 -0
  416. package/.next/server/chunks/9983.js +2 -0
  417. package/.next/server/edge-instrumentation.js.map +1 -1
  418. package/.next/server/functions-config-manifest.json +2 -2
  419. package/.next/server/instrumentation.js.nft.json +1 -1
  420. package/.next/server/middleware-build-manifest.js +1 -1
  421. package/.next/server/middleware-manifest.json +5 -5
  422. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  423. package/.next/server/pages/404.html +1 -1
  424. package/.next/server/pages/500.html +1 -1
  425. package/.next/server/server-reference-manifest.js +1 -1
  426. package/.next/server/server-reference-manifest.json +1 -1
  427. package/.next/server/src/middleware.js +2 -2
  428. package/.next/server/src/middleware.js.map +1 -1
  429. package/.next/static/A9jP2ydtYbqx-IayWP2Sg/_buildManifest.js +1 -0
  430. package/.next/static/chunks/1496-d478bce7d7c85080.js +1 -0
  431. package/.next/static/chunks/1572-b663a83bba28a0a1.js +8 -0
  432. package/.next/static/chunks/1641-e5ff8f112da0a335.js +1 -0
  433. package/.next/static/chunks/1988-bd73f26184e930c1.js +1 -0
  434. package/.next/static/chunks/2266-d812473724cc6643.js +1 -0
  435. package/.next/static/chunks/{8345.bc5534ec13abc9ee.js → 2969.eb9ff8cd2a5034b0.js} +1 -1
  436. package/.next/static/chunks/3089.a0856f8093b90939.js +1 -0
  437. package/.next/static/chunks/{2005-f9d38c39f10c321f.js → 3189-fa8ec6d719d5e72b.js} +1 -1
  438. package/.next/static/chunks/3452-a639f121f2953f50.js +62 -0
  439. package/.next/static/chunks/3560-5bdceef09b50e1c3.js +1 -0
  440. package/.next/static/chunks/3659-0ab9580d5ee5deea.js +1 -0
  441. package/.next/static/chunks/3672-cd86ace43288da79.js +1 -0
  442. package/.next/static/chunks/3711-0050bb4d345c2c9c.js +1 -0
  443. package/.next/static/chunks/4147-20897d83b3cd3978.js +39 -0
  444. package/.next/static/chunks/435-17c79f3b9f8dd38d.js +1 -0
  445. package/.next/static/chunks/454.5fc2f8eef98483e3.js +1 -0
  446. package/.next/static/chunks/469-1f043fe082d9f475.js +1 -0
  447. package/.next/static/chunks/4740-62814d07b2b7f760.js +1 -0
  448. package/.next/static/chunks/5418-45aa7e646ad024be.js +1 -0
  449. package/.next/static/chunks/5441-cb0c31de8bce65c3.js +1 -0
  450. package/.next/static/chunks/6404-86615a5f5ce5c00f.js +1 -0
  451. package/.next/static/chunks/7445-d8a8be6e451c522e.js +1 -0
  452. package/.next/static/chunks/{3827-9e9a6e11ef808d90.js → 8041-05830e887c133085.js} +1 -1
  453. package/.next/static/chunks/812-dfe7ba07ddb7a565.js +1 -0
  454. package/.next/static/chunks/8404-14ef0345dc401ac5.js +1 -0
  455. package/.next/static/chunks/8678-c6c6be2672f337f6.js +1 -0
  456. package/.next/static/chunks/8855-f802599c4af81cca.js +1 -0
  457. package/.next/static/chunks/9562-5494feecd8c6f7a3.js +1 -0
  458. package/.next/static/chunks/9581-6d2523fd68a5e3c4.js +1 -0
  459. package/.next/static/chunks/app/_not-found/page-26055690a2426e22.js +1 -0
  460. package/.next/static/chunks/app/api/approvals/[id]/route-1a4c9e7a416ccbcf.js +1 -0
  461. package/.next/static/chunks/app/api/approvals/route-1a4c9e7a416ccbcf.js +1 -0
  462. package/.next/static/chunks/app/api/backup/route-1a4c9e7a416ccbcf.js +1 -0
  463. package/.next/static/chunks/app/api/browse/route-1a4c9e7a416ccbcf.js +1 -0
  464. package/.next/static/chunks/app/api/bugs/enhance/route-1a4c9e7a416ccbcf.js +1 -0
  465. package/.next/static/chunks/app/api/cwd/route-1a4c9e7a416ccbcf.js +1 -0
  466. package/.next/static/chunks/app/api/encryption/secure/route-1a4c9e7a416ccbcf.js +1 -0
  467. package/.next/static/chunks/app/api/env/route-1a4c9e7a416ccbcf.js +1 -0
  468. package/.next/static/chunks/app/api/flow/[id]/route-1a4c9e7a416ccbcf.js +1 -0
  469. package/.next/static/chunks/app/api/flow/[id]/versions/[versionId]/route-1a4c9e7a416ccbcf.js +1 -0
  470. package/.next/static/chunks/app/api/flow/[id]/versions/route-1a4c9e7a416ccbcf.js +1 -0
  471. package/.next/static/chunks/app/api/flow/compile/route-1a4c9e7a416ccbcf.js +1 -0
  472. package/.next/static/chunks/app/api/flow/generate/route-1a4c9e7a416ccbcf.js +1 -0
  473. package/.next/static/chunks/app/api/flow/improve/route-1a4c9e7a416ccbcf.js +1 -0
  474. package/.next/static/chunks/app/api/flow/prompt-renderer/route-1a4c9e7a416ccbcf.js +1 -0
  475. package/.next/static/chunks/app/api/flow/quick-chat/route-1a4c9e7a416ccbcf.js +1 -0
  476. package/.next/static/chunks/app/api/flow/repair/route-1a4c9e7a416ccbcf.js +1 -0
  477. package/.next/static/chunks/app/api/flow/route-1a4c9e7a416ccbcf.js +1 -0
  478. package/.next/static/chunks/app/api/git/route-1a4c9e7a416ccbcf.js +1 -0
  479. package/.next/static/chunks/app/api/init/route-1a4c9e7a416ccbcf.js +1 -0
  480. package/.next/static/chunks/app/api/local-models/capability/route-1a4c9e7a416ccbcf.js +1 -0
  481. package/.next/static/chunks/app/api/local-models/pull/route-1a4c9e7a416ccbcf.js +1 -0
  482. package/.next/static/chunks/app/api/local-models/suggest/route-1a4c9e7a416ccbcf.js +1 -0
  483. package/.next/static/chunks/app/api/mcp/app-sandbox/route-1a4c9e7a416ccbcf.js +1 -0
  484. package/.next/static/chunks/app/api/mcp/cancel/route-1a4c9e7a416ccbcf.js +1 -0
  485. package/.next/static/chunks/app/api/mcp/oauth-capability/route-1a4c9e7a416ccbcf.js +1 -0
  486. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-1a4c9e7a416ccbcf.js +1 -0
  487. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-1a4c9e7a416ccbcf.js +1 -0
  488. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-1a4c9e7a416ccbcf.js +1 -0
  489. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-1a4c9e7a416ccbcf.js +1 -0
  490. package/.next/static/chunks/app/api/mcp/servers/[name]/route-1a4c9e7a416ccbcf.js +1 -0
  491. package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-1a4c9e7a416ccbcf.js +1 -0
  492. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-1a4c9e7a416ccbcf.js +1 -0
  493. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-1a4c9e7a416ccbcf.js +1 -0
  494. package/.next/static/chunks/app/api/mcp/servers/route-1a4c9e7a416ccbcf.js +1 -0
  495. package/.next/static/chunks/app/api/mcp/test-connection/route-1a4c9e7a416ccbcf.js +1 -0
  496. package/.next/static/chunks/app/api/mcp/test-connection/stream/route-1a4c9e7a416ccbcf.js +1 -0
  497. package/.next/static/chunks/app/api/mcp-registry/route-1a4c9e7a416ccbcf.js +1 -0
  498. package/.next/static/chunks/app/api/mcp-registry/spotlight/route-1a4c9e7a416ccbcf.js +1 -0
  499. package/.next/static/chunks/app/api/model/[id]/route-1a4c9e7a416ccbcf.js +1 -0
  500. package/.next/static/chunks/app/api/model/provider/route-1a4c9e7a416ccbcf.js +1 -0
  501. package/.next/static/chunks/app/api/model/route-1a4c9e7a416ccbcf.js +1 -0
  502. package/.next/static/chunks/app/api/model/test/route-1a4c9e7a416ccbcf.js +1 -0
  503. package/.next/static/chunks/app/api/oauth/callback/route-1a4c9e7a416ccbcf.js +1 -0
  504. package/.next/static/chunks/app/api/oauth/initiate/route-1a4c9e7a416ccbcf.js +1 -0
  505. package/.next/static/chunks/app/api/oauth/reset/route-1a4c9e7a416ccbcf.js +1 -0
  506. package/.next/static/chunks/app/api/packages/build/route-1a4c9e7a416ccbcf.js +1 -0
  507. package/.next/static/chunks/app/api/packages/derive-secrets/route-1a4c9e7a416ccbcf.js +1 -0
  508. package/.next/static/chunks/app/api/packages/install/route-1a4c9e7a416ccbcf.js +1 -0
  509. package/.next/static/chunks/app/api/packages/install/status/route-1a4c9e7a416ccbcf.js +1 -0
  510. package/.next/static/chunks/app/api/packages/installed/route-1a4c9e7a416ccbcf.js +1 -0
  511. package/.next/static/chunks/app/api/packages/resolve/route-1a4c9e7a416ccbcf.js +1 -0
  512. package/.next/static/chunks/app/api/packages/scan-targets/route-1a4c9e7a416ccbcf.js +1 -0
  513. package/.next/static/chunks/app/api/packages/search/route-1a4c9e7a416ccbcf.js +1 -0
  514. package/.next/static/chunks/app/api/packages/uninstall/route-1a4c9e7a416ccbcf.js +1 -0
  515. package/.next/static/chunks/app/api/planned-executions/[id]/route-1a4c9e7a416ccbcf.js +1 -0
  516. package/.next/static/chunks/app/api/planned-executions/[id]/run/route-1a4c9e7a416ccbcf.js +1 -0
  517. package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-1a4c9e7a416ccbcf.js +1 -0
  518. package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-1a4c9e7a416ccbcf.js +1 -0
  519. package/.next/static/chunks/app/api/planned-executions/reconcile/route-1a4c9e7a416ccbcf.js +1 -0
  520. package/.next/static/chunks/app/api/planned-executions/route-1a4c9e7a416ccbcf.js +1 -0
  521. package/.next/static/chunks/app/api/registry/auth/resend/route-1a4c9e7a416ccbcf.js +1 -0
  522. package/.next/static/chunks/app/api/registry/auth/reset/route-1a4c9e7a416ccbcf.js +1 -0
  523. package/.next/static/chunks/app/api/registry/auth/route-1a4c9e7a416ccbcf.js +1 -0
  524. package/.next/static/chunks/app/api/registry/oauth/callback/route-1a4c9e7a416ccbcf.js +1 -0
  525. package/.next/static/chunks/app/api/registry/oauth/initiate/route-1a4c9e7a416ccbcf.js +1 -0
  526. package/.next/static/chunks/app/api/registry/publish/route-1a4c9e7a416ccbcf.js +1 -0
  527. package/.next/static/chunks/app/api/registry/settings/route-1a4c9e7a416ccbcf.js +1 -0
  528. package/.next/static/chunks/app/api/restore/route-1a4c9e7a416ccbcf.js +1 -0
  529. package/.next/static/chunks/app/api/runs/active/route-1a4c9e7a416ccbcf.js +1 -0
  530. package/.next/static/chunks/app/api/storage/route-1a4c9e7a416ccbcf.js +1 -0
  531. package/.next/static/chunks/app/api/update/route-1a4c9e7a416ccbcf.js +1 -0
  532. package/.next/static/chunks/app/api/waves/route-1a4c9e7a416ccbcf.js +1 -0
  533. package/.next/static/chunks/app/api/webhooks/[id]/route-1a4c9e7a416ccbcf.js +1 -0
  534. package/.next/static/chunks/app/chat/page-558edb21321a32d0.js +1 -0
  535. package/.next/static/chunks/app/docs/{page-250523af44e96120.js → page-fc30f613607b8a26.js} +1 -1
  536. package/.next/static/chunks/app/executions/page-e71689c7256af1e8.js +1 -0
  537. package/.next/static/chunks/app/flows/page-e90e8d7b4c1bd1c8.js +1 -0
  538. package/.next/static/chunks/app/layout-038b35b382eef11d.js +1 -0
  539. package/.next/static/chunks/app/mcp/page-6041156fc67ef361.js +1 -0
  540. package/.next/static/chunks/app/mcp-flows/route-1a4c9e7a416ccbcf.js +1 -0
  541. package/.next/static/chunks/app/mcp-proxy/[server]/route-1a4c9e7a416ccbcf.js +1 -0
  542. package/.next/static/chunks/app/models/{error-5732fbb053e182c5.js → error-1718b538d6967e56.js} +1 -1
  543. package/.next/static/chunks/app/models/{loading-57d1c02d0817fc47.js → loading-1687ae86584f5b1b.js} +1 -1
  544. package/.next/static/chunks/app/models/page-d16f2721e7a93b43.js +1 -0
  545. package/.next/static/chunks/app/packages/page-c6b0e7aa95bc1064.js +1 -0
  546. package/.next/static/chunks/app/page-5c7fccd019942d46.js +1 -0
  547. package/.next/static/chunks/app/settings/page-fb336bb049bab72a.js +1 -0
  548. package/.next/static/chunks/app/v1/chat/completions/route-1a4c9e7a416ccbcf.js +1 -0
  549. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-1a4c9e7a416ccbcf.js +1 -0
  550. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-1a4c9e7a416ccbcf.js +1 -0
  551. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-1a4c9e7a416ccbcf.js +1 -0
  552. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-1a4c9e7a416ccbcf.js +1 -0
  553. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-1a4c9e7a416ccbcf.js +1 -0
  554. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-1a4c9e7a416ccbcf.js +1 -0
  555. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/inject/route-1a4c9e7a416ccbcf.js +1 -0
  556. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-1a4c9e7a416ccbcf.js +1 -0
  557. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-1a4c9e7a416ccbcf.js +1 -0
  558. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-1a4c9e7a416ccbcf.js +1 -0
  559. package/.next/static/chunks/app/v1/chat/conversations/route-1a4c9e7a416ccbcf.js +1 -0
  560. package/.next/static/chunks/app/v1/chat/events/route-1a4c9e7a416ccbcf.js +1 -0
  561. package/.next/static/chunks/app/v1/models/route-1a4c9e7a416ccbcf.js +1 -0
  562. package/.next/static/chunks/app/waves/page-3cf4b47b12662196.js +1 -0
  563. package/.next/static/chunks/{main-app-faff38c77cb00119.js → main-app-2de821d2899bb841.js} +1 -1
  564. package/.next/static/chunks/webpack-2d8e0c13c0b865fe.js +1 -0
  565. package/.next/static/css/30253fcfa8035221.css +1 -0
  566. package/.next/trace +10 -10
  567. package/.next/types/app/api/approvals/[id]/route.ts +1 -1
  568. package/.next/types/app/api/approvals/route.ts +1 -1
  569. package/.next/types/app/api/backup/route.ts +1 -1
  570. package/.next/types/app/api/browse/route.ts +1 -1
  571. package/.next/types/app/api/bugs/enhance/route.ts +1 -1
  572. package/.next/types/app/api/cwd/route.ts +1 -1
  573. package/.next/types/app/api/encryption/secure/route.ts +1 -1
  574. package/.next/types/app/api/env/route.ts +1 -1
  575. package/.next/types/app/api/flow/[id]/route.ts +1 -1
  576. package/.next/types/app/api/flow/[id]/versions/[versionId]/route.ts +1 -1
  577. package/.next/types/app/api/flow/[id]/versions/route.ts +1 -1
  578. package/.next/types/app/api/flow/compile/route.ts +1 -1
  579. package/.next/types/app/api/flow/generate/route.ts +1 -1
  580. package/.next/types/app/api/flow/improve/route.ts +1 -1
  581. package/.next/types/app/api/flow/prompt-renderer/route.ts +1 -1
  582. package/.next/types/app/api/flow/quick-chat/route.ts +1 -1
  583. package/.next/types/app/api/flow/repair/route.ts +1 -1
  584. package/.next/types/app/api/flow/route.ts +1 -1
  585. package/.next/types/app/api/git/route.ts +1 -1
  586. package/.next/types/app/api/init/route.ts +1 -1
  587. package/.next/types/app/api/local-models/capability/route.ts +1 -1
  588. package/.next/types/app/api/local-models/pull/route.ts +1 -1
  589. package/.next/types/app/api/local-models/suggest/route.ts +1 -1
  590. package/.next/types/app/api/mcp/app-sandbox/route.ts +1 -1
  591. package/.next/types/app/api/mcp/cancel/route.ts +1 -1
  592. package/.next/types/app/api/mcp/oauth-capability/route.ts +1 -1
  593. package/.next/types/app/api/mcp/servers/[name]/prompts/get/route.ts +1 -1
  594. package/.next/types/app/api/mcp/servers/[name]/prompts/route.ts +1 -1
  595. package/.next/types/app/api/mcp/servers/[name]/resources/read/route.ts +1 -1
  596. package/.next/types/app/api/mcp/servers/[name]/resources/route.ts +1 -1
  597. package/.next/types/app/api/mcp/servers/[name]/route.ts +1 -1
  598. package/.next/types/app/api/mcp/servers/[name]/status/route.ts +1 -1
  599. package/.next/types/app/api/mcp/servers/[name]/tools/[toolName]/route.ts +1 -1
  600. package/.next/types/app/api/mcp/servers/[name]/tools/route.ts +1 -1
  601. package/.next/types/app/api/mcp/servers/route.ts +1 -1
  602. package/.next/types/app/api/mcp/test-connection/route.ts +1 -1
  603. package/.next/types/app/api/mcp/test-connection/stream/route.ts +1 -1
  604. package/.next/types/app/api/mcp-registry/route.ts +1 -1
  605. package/.next/types/app/api/mcp-registry/spotlight/route.ts +1 -1
  606. package/.next/types/app/api/model/[id]/route.ts +1 -1
  607. package/.next/types/app/api/model/provider/route.ts +1 -1
  608. package/.next/types/app/api/model/route.ts +1 -1
  609. package/.next/types/app/api/model/test/route.ts +1 -1
  610. package/.next/types/app/api/oauth/callback/route.ts +1 -1
  611. package/.next/types/app/api/oauth/initiate/route.ts +1 -1
  612. package/.next/types/app/api/oauth/reset/route.ts +1 -1
  613. package/.next/types/app/api/packages/build/route.ts +1 -1
  614. package/.next/types/app/api/packages/derive-secrets/route.ts +1 -1
  615. package/.next/types/app/api/packages/install/route.ts +1 -1
  616. package/.next/types/app/api/packages/install/status/route.ts +1 -1
  617. package/.next/types/app/api/packages/installed/route.ts +1 -1
  618. package/.next/types/app/api/packages/resolve/route.ts +1 -1
  619. package/.next/types/app/api/packages/scan-targets/route.ts +347 -0
  620. package/.next/types/app/api/packages/search/route.ts +347 -0
  621. package/.next/types/app/api/packages/uninstall/route.ts +1 -1
  622. package/.next/types/app/api/planned-executions/[id]/route.ts +1 -1
  623. package/.next/types/app/api/planned-executions/[id]/run/route.ts +1 -1
  624. package/.next/types/app/api/planned-executions/[id]/runs/route.ts +1 -1
  625. package/.next/types/app/api/planned-executions/preview-schedule/route.ts +1 -1
  626. package/.next/types/app/api/planned-executions/reconcile/route.ts +1 -1
  627. package/.next/types/app/api/planned-executions/route.ts +1 -1
  628. package/.next/types/app/api/registry/auth/resend/route.ts +1 -1
  629. package/.next/types/app/api/registry/auth/reset/route.ts +1 -1
  630. package/.next/types/app/api/registry/auth/route.ts +1 -1
  631. package/.next/types/app/api/registry/oauth/callback/route.ts +1 -1
  632. package/.next/types/app/api/registry/oauth/initiate/route.ts +1 -1
  633. package/.next/types/app/api/registry/publish/route.ts +1 -1
  634. package/.next/types/app/api/registry/settings/route.ts +1 -1
  635. package/.next/types/app/api/restore/route.ts +1 -1
  636. package/.next/types/app/api/runs/active/route.ts +1 -1
  637. package/.next/types/app/api/storage/route.ts +1 -1
  638. package/.next/types/app/api/update/route.ts +1 -1
  639. package/.next/types/app/api/waves/route.ts +1 -1
  640. package/.next/types/app/api/webhooks/[id]/route.ts +1 -1
  641. package/.next/types/app/chat/page.ts +1 -1
  642. package/.next/types/app/docs/page.ts +1 -1
  643. package/.next/types/app/executions/page.ts +1 -1
  644. package/.next/types/app/flows/page.ts +1 -1
  645. package/.next/types/app/layout.ts +1 -1
  646. package/.next/types/app/mcp/page.ts +1 -1
  647. package/.next/types/app/mcp-flows/route.ts +1 -1
  648. package/.next/types/app/mcp-proxy/[server]/route.ts +1 -1
  649. package/.next/types/app/models/page.ts +1 -1
  650. package/.next/types/app/packages/page.ts +1 -1
  651. package/.next/types/app/page.ts +1 -1
  652. package/.next/types/app/settings/page.ts +1 -1
  653. package/.next/types/app/v1/chat/completions/route.ts +1 -1
  654. package/.next/types/app/v1/chat/conversations/[conversationId]/breakpoints/route.ts +1 -1
  655. package/.next/types/app/v1/chat/conversations/[conversationId]/cancel/route.ts +1 -1
  656. package/.next/types/app/v1/chat/conversations/[conversationId]/debug/continue/route.ts +1 -1
  657. package/.next/types/app/v1/chat/conversations/[conversationId]/debug/step/route.ts +1 -1
  658. package/.next/types/app/v1/chat/conversations/[conversationId]/edit-state/route.ts +1 -1
  659. package/.next/types/app/v1/chat/conversations/[conversationId]/events/route.ts +1 -1
  660. package/.next/types/app/v1/chat/conversations/[conversationId]/inject/route.ts +347 -0
  661. package/.next/types/app/v1/chat/conversations/[conversationId]/resources/route.ts +1 -1
  662. package/.next/types/app/v1/chat/conversations/[conversationId]/respond/route.ts +1 -1
  663. package/.next/types/app/v1/chat/conversations/[conversationId]/route.ts +1 -1
  664. package/.next/types/app/v1/chat/conversations/route.ts +1 -1
  665. package/.next/types/app/v1/chat/events/route.ts +1 -1
  666. package/.next/types/app/v1/models/route.ts +1 -1
  667. package/.next/types/app/waves/page.ts +1 -1
  668. package/.next/types/routes.d.ts +4 -1
  669. package/.next/types/validator.ts +27 -0
  670. package/README.md +6 -1
  671. package/bin/flujo.mjs +120 -120
  672. package/next.config.mjs +139 -139
  673. package/package.json +2 -1
  674. package/scripts/launch-next.mjs +112 -112
  675. package/.next/server/chunks/1083.js +0 -2
  676. package/.next/server/chunks/1197.js +0 -2
  677. package/.next/server/chunks/1373.js +0 -1
  678. package/.next/server/chunks/1604.js +0 -70
  679. package/.next/server/chunks/1659.js +0 -1
  680. package/.next/server/chunks/1819.js +0 -2
  681. package/.next/server/chunks/2434.js +0 -2
  682. package/.next/server/chunks/2666.js +0 -1
  683. package/.next/server/chunks/2940.js +0 -46
  684. package/.next/server/chunks/2985.js +0 -1
  685. package/.next/server/chunks/3273.js +0 -1
  686. package/.next/server/chunks/3304.js +0 -1
  687. package/.next/server/chunks/346.js +0 -1
  688. package/.next/server/chunks/3648.js +0 -1
  689. package/.next/server/chunks/38.js +0 -2
  690. package/.next/server/chunks/3951.js +0 -151
  691. package/.next/server/chunks/4042.js +0 -1
  692. package/.next/server/chunks/4239.js +0 -1
  693. package/.next/server/chunks/4426.js +0 -6
  694. package/.next/server/chunks/4661.js +0 -1
  695. package/.next/server/chunks/4765.js +0 -1
  696. package/.next/server/chunks/5148.js +0 -1
  697. package/.next/server/chunks/5471.js +0 -1
  698. package/.next/server/chunks/5958.js +0 -2
  699. package/.next/server/chunks/6005.js +0 -1
  700. package/.next/server/chunks/6126.js +0 -53
  701. package/.next/server/chunks/6849.js +0 -66
  702. package/.next/server/chunks/7214.js +0 -6
  703. package/.next/server/chunks/724.js +0 -27
  704. package/.next/server/chunks/7463.js +0 -6
  705. package/.next/server/chunks/7538.js +0 -21
  706. package/.next/server/chunks/8339.js +0 -1
  707. package/.next/server/chunks/8522.js +0 -2
  708. package/.next/server/chunks/8572.js +0 -1
  709. package/.next/server/chunks/8667.js +0 -1
  710. package/.next/server/chunks/869.js +0 -2
  711. package/.next/server/chunks/8979.js +0 -37
  712. package/.next/server/chunks/8994.js +0 -2
  713. package/.next/server/chunks/9165.js +0 -1
  714. package/.next/server/chunks/9387.js +0 -15
  715. package/.next/server/chunks/9400.js +0 -2
  716. package/.next/server/chunks/9472.js +0 -2
  717. package/.next/server/chunks/9583.js +0 -1
  718. package/.next/server/chunks/991.js +0 -2
  719. package/.next/static/Q6ITx_bZyoEOnKdZu_C7j/_buildManifest.js +0 -1
  720. package/.next/static/chunks/1594-309fa6363f215d76.js +0 -1
  721. package/.next/static/chunks/1809-e56cf3c476261e34.js +0 -1
  722. package/.next/static/chunks/1937-6bbdcdc660db562c.js +0 -1
  723. package/.next/static/chunks/1988-1b651d581fc44a36.js +0 -1
  724. package/.next/static/chunks/2164-7d6451e88a447de7.js +0 -1
  725. package/.next/static/chunks/218-6cbe09820faa3272.js +0 -1
  726. package/.next/static/chunks/2566-60acd5838abd9f3f.js +0 -1
  727. package/.next/static/chunks/2800-4fa29a3eeb693593.js +0 -1
  728. package/.next/static/chunks/289-98f50bfcf833d661.js +0 -1
  729. package/.next/static/chunks/3089.9e15df4ffd0fe4e8.js +0 -1
  730. package/.next/static/chunks/3418-a2f5d0c4f29ee2fb.js +0 -1
  731. package/.next/static/chunks/3556-b9855146c7506696.js +0 -1
  732. package/.next/static/chunks/3948-1cb8fc7a64805254.js +0 -1
  733. package/.next/static/chunks/3958-5641a828b320f2fe.js +0 -100
  734. package/.next/static/chunks/5328-4e556503b70e72b4.js +0 -1
  735. package/.next/static/chunks/5512.682bef7fd3a7c286.js +0 -1
  736. package/.next/static/chunks/6195-8c4c57628e9013d5.js +0 -1
  737. package/.next/static/chunks/6669-a949326b30ea1d39.js +0 -1
  738. package/.next/static/chunks/6777-4b0d05731a089de4.js +0 -1
  739. package/.next/static/chunks/6947-0ff3545efb53e959.js +0 -1
  740. package/.next/static/chunks/7304-e7cd725083617b81.js +0 -8
  741. package/.next/static/chunks/7445-2802e158c9093556.js +0 -1
  742. package/.next/static/chunks/795-704a0e742ecc2ef6.js +0 -1
  743. package/.next/static/chunks/812-3ceea0da38ad2891.js +0 -1
  744. package/.next/static/chunks/8551-a28272acfda62ac9.js +0 -1
  745. package/.next/static/chunks/8855-02889c9ab4bf0bcf.js +0 -1
  746. package/.next/static/chunks/9554-cb5bd72cb40e8dbe.js +0 -1
  747. package/.next/static/chunks/9562-ef0ddd4e6b9023cf.js +0 -1
  748. package/.next/static/chunks/app/_not-found/page-81dc485d60f94046.js +0 -1
  749. package/.next/static/chunks/app/api/approvals/[id]/route-c745e5b53b81491a.js +0 -1
  750. package/.next/static/chunks/app/api/approvals/route-c745e5b53b81491a.js +0 -1
  751. package/.next/static/chunks/app/api/backup/route-c745e5b53b81491a.js +0 -1
  752. package/.next/static/chunks/app/api/browse/route-c745e5b53b81491a.js +0 -1
  753. package/.next/static/chunks/app/api/bugs/enhance/route-c745e5b53b81491a.js +0 -1
  754. package/.next/static/chunks/app/api/cwd/route-c745e5b53b81491a.js +0 -1
  755. package/.next/static/chunks/app/api/encryption/secure/route-c745e5b53b81491a.js +0 -1
  756. package/.next/static/chunks/app/api/env/route-c745e5b53b81491a.js +0 -1
  757. package/.next/static/chunks/app/api/flow/[id]/route-c745e5b53b81491a.js +0 -1
  758. package/.next/static/chunks/app/api/flow/[id]/versions/[versionId]/route-c745e5b53b81491a.js +0 -1
  759. package/.next/static/chunks/app/api/flow/[id]/versions/route-c745e5b53b81491a.js +0 -1
  760. package/.next/static/chunks/app/api/flow/compile/route-c745e5b53b81491a.js +0 -1
  761. package/.next/static/chunks/app/api/flow/generate/route-c745e5b53b81491a.js +0 -1
  762. package/.next/static/chunks/app/api/flow/improve/route-c745e5b53b81491a.js +0 -1
  763. package/.next/static/chunks/app/api/flow/prompt-renderer/route-c745e5b53b81491a.js +0 -1
  764. package/.next/static/chunks/app/api/flow/quick-chat/route-c745e5b53b81491a.js +0 -1
  765. package/.next/static/chunks/app/api/flow/repair/route-c745e5b53b81491a.js +0 -1
  766. package/.next/static/chunks/app/api/flow/route-c745e5b53b81491a.js +0 -1
  767. package/.next/static/chunks/app/api/git/route-c745e5b53b81491a.js +0 -1
  768. package/.next/static/chunks/app/api/init/route-c745e5b53b81491a.js +0 -1
  769. package/.next/static/chunks/app/api/local-models/capability/route-c745e5b53b81491a.js +0 -1
  770. package/.next/static/chunks/app/api/local-models/pull/route-c745e5b53b81491a.js +0 -1
  771. package/.next/static/chunks/app/api/local-models/suggest/route-c745e5b53b81491a.js +0 -1
  772. package/.next/static/chunks/app/api/mcp/app-sandbox/route-c745e5b53b81491a.js +0 -1
  773. package/.next/static/chunks/app/api/mcp/cancel/route-c745e5b53b81491a.js +0 -1
  774. package/.next/static/chunks/app/api/mcp/oauth-capability/route-c745e5b53b81491a.js +0 -1
  775. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-c745e5b53b81491a.js +0 -1
  776. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-c745e5b53b81491a.js +0 -1
  777. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-c745e5b53b81491a.js +0 -1
  778. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-c745e5b53b81491a.js +0 -1
  779. package/.next/static/chunks/app/api/mcp/servers/[name]/route-c745e5b53b81491a.js +0 -1
  780. package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-c745e5b53b81491a.js +0 -1
  781. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-c745e5b53b81491a.js +0 -1
  782. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-c745e5b53b81491a.js +0 -1
  783. package/.next/static/chunks/app/api/mcp/servers/route-c745e5b53b81491a.js +0 -1
  784. package/.next/static/chunks/app/api/mcp/test-connection/route-c745e5b53b81491a.js +0 -1
  785. package/.next/static/chunks/app/api/mcp/test-connection/stream/route-c745e5b53b81491a.js +0 -1
  786. package/.next/static/chunks/app/api/mcp-registry/route-c745e5b53b81491a.js +0 -1
  787. package/.next/static/chunks/app/api/mcp-registry/spotlight/route-c745e5b53b81491a.js +0 -1
  788. package/.next/static/chunks/app/api/model/[id]/route-c745e5b53b81491a.js +0 -1
  789. package/.next/static/chunks/app/api/model/provider/route-c745e5b53b81491a.js +0 -1
  790. package/.next/static/chunks/app/api/model/route-c745e5b53b81491a.js +0 -1
  791. package/.next/static/chunks/app/api/model/test/route-c745e5b53b81491a.js +0 -1
  792. package/.next/static/chunks/app/api/oauth/callback/route-c745e5b53b81491a.js +0 -1
  793. package/.next/static/chunks/app/api/oauth/initiate/route-c745e5b53b81491a.js +0 -1
  794. package/.next/static/chunks/app/api/oauth/reset/route-c745e5b53b81491a.js +0 -1
  795. package/.next/static/chunks/app/api/packages/build/route-c745e5b53b81491a.js +0 -1
  796. package/.next/static/chunks/app/api/packages/derive-secrets/route-c745e5b53b81491a.js +0 -1
  797. package/.next/static/chunks/app/api/packages/install/route-c745e5b53b81491a.js +0 -1
  798. package/.next/static/chunks/app/api/packages/install/status/route-c745e5b53b81491a.js +0 -1
  799. package/.next/static/chunks/app/api/packages/installed/route-c745e5b53b81491a.js +0 -1
  800. package/.next/static/chunks/app/api/packages/resolve/route-c745e5b53b81491a.js +0 -1
  801. package/.next/static/chunks/app/api/packages/uninstall/route-c745e5b53b81491a.js +0 -1
  802. package/.next/static/chunks/app/api/planned-executions/[id]/route-c745e5b53b81491a.js +0 -1
  803. package/.next/static/chunks/app/api/planned-executions/[id]/run/route-c745e5b53b81491a.js +0 -1
  804. package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-c745e5b53b81491a.js +0 -1
  805. package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-c745e5b53b81491a.js +0 -1
  806. package/.next/static/chunks/app/api/planned-executions/reconcile/route-c745e5b53b81491a.js +0 -1
  807. package/.next/static/chunks/app/api/planned-executions/route-c745e5b53b81491a.js +0 -1
  808. package/.next/static/chunks/app/api/registry/auth/resend/route-c745e5b53b81491a.js +0 -1
  809. package/.next/static/chunks/app/api/registry/auth/reset/route-c745e5b53b81491a.js +0 -1
  810. package/.next/static/chunks/app/api/registry/auth/route-c745e5b53b81491a.js +0 -1
  811. package/.next/static/chunks/app/api/registry/oauth/callback/route-c745e5b53b81491a.js +0 -1
  812. package/.next/static/chunks/app/api/registry/oauth/initiate/route-c745e5b53b81491a.js +0 -1
  813. package/.next/static/chunks/app/api/registry/publish/route-c745e5b53b81491a.js +0 -1
  814. package/.next/static/chunks/app/api/registry/settings/route-c745e5b53b81491a.js +0 -1
  815. package/.next/static/chunks/app/api/restore/route-c745e5b53b81491a.js +0 -1
  816. package/.next/static/chunks/app/api/runs/active/route-c745e5b53b81491a.js +0 -1
  817. package/.next/static/chunks/app/api/storage/route-c745e5b53b81491a.js +0 -1
  818. package/.next/static/chunks/app/api/update/route-c745e5b53b81491a.js +0 -1
  819. package/.next/static/chunks/app/api/waves/route-c745e5b53b81491a.js +0 -1
  820. package/.next/static/chunks/app/api/webhooks/[id]/route-c745e5b53b81491a.js +0 -1
  821. package/.next/static/chunks/app/chat/page-c39160ddf90bbae9.js +0 -1
  822. package/.next/static/chunks/app/executions/page-10d09f36de30939f.js +0 -1
  823. package/.next/static/chunks/app/flows/page-0d8fb471adfc2981.js +0 -1
  824. package/.next/static/chunks/app/layout-eea7078d7553c21a.js +0 -1
  825. package/.next/static/chunks/app/mcp/page-8ad71bf5801bfe5f.js +0 -1
  826. package/.next/static/chunks/app/mcp-flows/route-c745e5b53b81491a.js +0 -1
  827. package/.next/static/chunks/app/mcp-proxy/[server]/route-c745e5b53b81491a.js +0 -1
  828. package/.next/static/chunks/app/models/page-17e8e6668f92f58d.js +0 -1
  829. package/.next/static/chunks/app/packages/page-9f61751e98134f3d.js +0 -1
  830. package/.next/static/chunks/app/page-d3ea90b065b95d1e.js +0 -1
  831. package/.next/static/chunks/app/settings/page-afbf8790e99fecaf.js +0 -1
  832. package/.next/static/chunks/app/v1/chat/completions/route-c745e5b53b81491a.js +0 -1
  833. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-c745e5b53b81491a.js +0 -1
  834. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-c745e5b53b81491a.js +0 -1
  835. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-c745e5b53b81491a.js +0 -1
  836. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-c745e5b53b81491a.js +0 -1
  837. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-c745e5b53b81491a.js +0 -1
  838. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-c745e5b53b81491a.js +0 -1
  839. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-c745e5b53b81491a.js +0 -1
  840. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-c745e5b53b81491a.js +0 -1
  841. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-c745e5b53b81491a.js +0 -1
  842. package/.next/static/chunks/app/v1/chat/conversations/route-c745e5b53b81491a.js +0 -1
  843. package/.next/static/chunks/app/v1/chat/events/route-c745e5b53b81491a.js +0 -1
  844. package/.next/static/chunks/app/v1/models/route-c745e5b53b81491a.js +0 -1
  845. package/.next/static/chunks/app/waves/page-97ad6b51c9cae4b3.js +0 -1
  846. package/.next/static/chunks/webpack-0d4a4e773990ac44.js +0 -1
  847. package/.next/static/css/40f9bef305b11bf5.css +0 -1
  848. /package/.next/static/{Q6ITx_bZyoEOnKdZu_C7j → A9jP2ydtYbqx-IayWP2Sg}/_ssgManifest.js +0 -0
@@ -0,0 +1,6 @@
1
+ "use strict";exports.id=6226,exports.ids=[4681,6226],exports.modules={1686:(a,b,c)=>{c.d(b,{PD:()=>h,PJ:()=>f,fS:()=>j,iS:()=>i,xk:()=>g});let d=globalThis,e=d.__flujoSteeringInbox??(d.__flujoSteeringInbox=new Map);function f(a,b){let c=e.get(a);c?c.push(b):e.set(a,[b])}function g(a){return e.get(a)?.length??0}function h(a){let b=e.get(a);return b&&0!==b.length?(e.delete(a),b):[]}function i(a,b){if(0===b.length)return;let c=e.get(a)??[];e.set(a,[...b,...c])}function j(a){e.delete(a)}},16226:(a,b,c)=>{c.d(b,{runFlow:()=>D});var d=c(50846),e=c(95708),f=c(38291),g=c(60184),h=c(1686),i=c(14214),j=c(56793),k=c(99978),l=c(22921),m=c(75312),n=c(87821),o=c(92372),p=c(13516),q=c(44681),r=c(67490),s=c(75028),t=c(23529),u=c(30767),v=c(48706),w=c(41561);let x=(0,d.h)("backend/execution/flow/runFlow");n.flowService.getFlowByName||(n.flowService.getFlowByName=async a=>(await n.flowService.loadFlows()).find(b=>b.name===a)||null,x.info("Added getFlowByName method directly to flowService instance."));let y=n.flowService,z=f.persistConversationState;async function A(a){let b;if("boolean"==typeof a.unattended)return a.unattended;try{let c=a.flowSnapshot??(a.flowId?await n.flowService.getFlow(a.flowId)??void 0:void 0);b=c?.unattended}catch(a){x.debug("resolveUnattended: flow load failed; using source default",{err:a})}let c="boolean"==typeof b?b:"schedule"===a.source;return a.unattended=c,c}async function B(a,b,c){let d;if(!await A(a))return"complete";let e=a.currentNodeId;if(!e)return"complete";try{d=a.flowSnapshot??(a.flowId?await n.flowService.getFlow(a.flowId)??void 0:void 0)}catch(a){return x.debug("[Unattended] flow load failed; completing normally",{err:a}),"complete"}if(!d)return"complete";let f=d.nodes?.find(a=>a.id===e);if(!f||"process"!==f.type)return"complete";let g=new Set((d.nodes??[]).filter(a=>"mcp"===a.type).map(a=>a.id)),h=Array.from(new Set((d.edges??[]).filter(a=>a.source===e&&"mcpEdge"!==a.type&&a.data?.edgeType!=="mcp"&&a.data?.bidirectional!==!0&&!g.has(a.target)).map(a=>a.target))).filter(a=>(d.nodes??[]).some(b=>b.id===a));if(1===h.length){let d=h[0];x.info(`[Unattended] Process node ${e} ended on plain text; auto-advancing to sole forward successor ${d} for conv ${a.conversationId}.`);let f=a.currentNodeId;return a.currentNodeId=d,a.handoffRequested=void 0,c.delete(e),b({type:"handoff",from:f?{nodeId:f}:void 0,toNodeId:d,edgeId:`unattended-auto:${e}->${d}`}),"advanced"}if(h.length>1){let b=c.get(e)??0;if(b<1)return c.set(e,b+1),x.info(`[Unattended] Process node ${e} ended on plain text with ${h.length} forward successors; nudging to hand off (attempt ${b+1}/1).`),a.messages.push({id:crypto.randomUUID(),role:"user",content:"You ended your turn without calling a tool or handing off, but this is an unattended run that cannot stop at this step. To continue you MUST call one of your handoff tools to route to the next step. If your work at this step is complete, hand off to the finishing/next step now.",timestamp:Date.now(),processNodeId:e}),"nudged";x.warn(`[Unattended] Process node ${e} still did not hand off after 1 nudge(s); completing the run to avoid a loop.`)}return"complete"}async function C(a,b,c){try{let d,e=a.flowId;if(!e)return;try{d=(await n.flowService.getFlow(e))?.name??void 0}catch{}let f="api"===a.source?"api":"chat",g=c&&c.length>4096?`${c.slice(0,4096)}…`:c;(0,j.eh)().publish({flowId:e,flowName:d,executionId:a.plannedExecutionId,runId:a.conversationId||"",conversationId:a.conversationId||"",status:b,outputText:g,firedBy:f,chainDepth:a.chainDepth??0,timestamp:new Date().toISOString()})}catch(a){x.warn("Failed to publish runFlow flow-run event:",a)}}async function D(a){let b,c,d,f=Date.now(),j=a.flujo??!0,A=a.requireApproval??!1,D=a.debug??!1,E=a.continueDebug??!1,F=a.userTurn??!1,G="ephemeral"===a.mode,H=a.messages??(void 0!==a.prompt?[{role:"user",content:a.prompt}]:[]),I={model:a.modelName,messages:H,processNodeId:a.processNodeId};x.info("runFlow invoked",{flowId:a.flowId,model:a.modelName,messageCount:H.length,mode:G?"ephemeral":"conversation",flujo:j,requireApproval:A,flujodebug:D,conversationId:a.conversationId});let J=a.conversationId||crypto.randomUUID(),K=`conversations/${J}`,L="new",M=!1;if(x.info(`Effective Conversation ID for this run: ${J}`,{providedId:a.conversationId}),e.FlowExecutor.conversationStates.has(J))c=e.FlowExecutor.conversationStates.get(J),x.info(`Resuming conversation ${J} from memory`,{currentNodeId:c.currentNodeId}),L="memory";else if(!G)try{(c=await (0,o.YM)(K,void 0))?(x.info(`Loaded conversation state from storage: ${J}`),L="storage",await (0,g.recoverMessagesFromLog)(c),e.FlowExecutor.conversationStates.set(J,c)):x.info(`No state found in storage for conversation: ${J}. Will create new state.`)}catch(a){x.warn(`Error loading conversation state from storage for ${J}:`,a)}if(c?((b=c).conversationId!==J&&(x.warn(`Loaded state's internal conversationId (${b.conversationId}) differs from effectiveConvId (${J}). Using effectiveConvId.`),b.conversationId=J),"new"!==L&&("completed"===b.status||"error"===b.status||void 0===b.status)&&(x.info(`Resuming completed/errored/fresh conversation ${J}. Resetting status to 'running'.`),M="error"===b.status,b.status="running",b.lastResponse=void 0,b.isCancelled=!1,"storage"===L&&e.FlowExecutor.conversationStates.set(J,b)),I.processNodeId&&"new"!==L&&(x.info(`Edit detected: Resetting currentNodeId for conversation ${J} to provided processNodeId: ${I.processNodeId}`),b.currentNodeId=I.processNodeId,b.status="running",b.lastResponse=void 0,b.pendingToolCalls=void 0,b.handoffRequested=void 0,b.isCancelled=!1,b.trackingInfo={executionId:crypto.randomUUID(),startTime:Date.now(),nodeExecutionTracker:[]},p.G.ENABLE_EXECUTION_TRACKER&&b.executionTrace&&(b.executionTrace=[]),e.FlowExecutor.conversationStates.set(J,b),x.verbose(`State updated in memory with reset currentNodeId: ${b.currentNodeId}`))):(x.info(`Creating new conversation state object for ID: ${J}`),b={trackingInfo:{executionId:crypto.randomUUID(),startTime:Date.now(),nodeExecutionTracker:(p.G.ENABLE_EXECUTION_TRACKER,[])},messages:[],flowId:"",conversationId:J,currentNodeId:void 0,status:"running",title:a.title?.trim()||"New Conversation",createdAt:Date.now(),updatedAt:Date.now(),debugMode:D,executionTrace:D&&p.G.ENABLE_EXECUTION_TRACKER?[]:void 0,variables:{}}),a.variables&&"object"==typeof a.variables)for(let[c,d]of(b.variables=b.variables??{},Object.entries(a.variables)))null!=d&&(b.variables[c]="string"==typeof d?d:String(d));if(b.requireApproval=A,a.source&&(b.source=a.source),a.plannedExecutionId&&(b.plannedExecutionId=a.plannedExecutionId),G&&(b.ephemeral=!0),a.parentRunId&&(b.parentRunId=a.parentRunId,b.parentConversationId=a.parentRunId,!b.rootConversationId)){let c=e.FlowExecutor.conversationStates.get(a.parentRunId);b.rootConversationId=c?.rootConversationId??c?.conversationId??a.parentRunId}if(b.runDepth=a.depth??b.runDepth??0,b.chainDepth=a.chainDepth??b.chainDepth??0,b.onApprovalRequired=a.onApprovalRequired??b.onApprovalRequired??"auto",b.runDepth>r.A)return x.error(`runFlow aborted: subflow depth ${b.runDepth} exceeds max ${r.A}`),b.status="error",{status:"error",conversationId:J,outputText:"",messages:b.messages,error:{message:`Subflow recursion limit (${r.A}) exceeded`,statusCode:500},finalAction:k.O,sharedState:b};let N=[...b.messages??[]];if("new"===L){a.flowDefinition&&(b.flowSnapshot=a.flowDefinition,b.flowId=a.flowDefinition.id);let c=a.flowDefinition?a.flowDefinition.id:a.flowId;if(!c&&I.model){let a=I.model.substring(5),d=await y.getFlowByName(a);if(!d)return x.error(`Flow not found: ${a}`),{status:"error",conversationId:J,outputText:"",messages:b.messages,flowNotFound:{name:a},error:{message:`Flow not found: ${a}`,statusCode:400},finalAction:k.O,sharedState:b};c=d.id}if(!c)return x.error("No flow specified for run (neither flowId nor model provided)."),{status:"error",conversationId:J,outputText:"",messages:b.messages,error:{message:"No flow specified (provide flowId or model).",statusCode:400},finalAction:k.O,sharedState:b};b.flowId=c;let d=(I.messages||[]).filter(a=>!(a.depth>0)).map(a=>({...a,id:a.id||crypto.randomUUID(),timestamp:a.timestamp||Date.now(),processNodeId:a.processNodeId||void 0}));b.messages=d;let f=[...d].reverse().find(a=>"user"===a.role);f&&(b.lastUserMessageAt=f.timestamp??Date.now());try{if(b.updatedAt=Date.now(),"New Conversation"===b.title&&b.messages.length>0){let a=b.messages.find(a=>"user"===a.role);a&&"string"==typeof a.content&&(b.title=(0,t.oO)(a.content),x.verbose(`Updated conversation title for ${J} during init to: ${b.title}`))}await z(K,b),x.debug(`Saved initial state for new conversation ${J}.`)}catch(a){x.error(`Failed to save initial state for new conversation ${J}:`,a)}e.FlowExecutor.conversationStates.set(J,b)}else{if(I.messages&&I.messages.length>0&&(b.messages=I.messages.filter(a=>!(a.depth>0)).map(a=>({...a,id:a.id||crypto.randomUUID(),timestamp:a.timestamp||Date.now(),processNodeId:a.processNodeId||void 0})),x.info(`Updated conversation ${b.conversationId} with ${b.messages.length} messages from request`),F)){let a=[...b.messages].reverse().find(a=>"user"===a.role);a&&(b.lastUserMessageAt=a.timestamp??Date.now())}(F||void 0===b.debugMode)&&(b.debugMode=D),F&&(b.debugPendingToolCalls=void 0),b.debugMode&&p.G.ENABLE_EXECUTION_TRACKER&&!b.executionTrace&&(b.executionTrace=[])}try{await (0,g.reconcileConversationLog)(b,N);let a=(0,g.repairDanglingToolCalls)(b);a.length&&(x.info(`Repaired ${a.length} dangling tool call(s) for ${J} at run start (issue #256).`),await (0,g.appendRawForState)(b,a.map(a=>({type:"message",message:a}))))}catch(a){x.warn(`Conversation-log reconcile failed for ${J}; continuing`,a)}if(F&&"new"!==L&&!I.processNodeId){let a=b.messages.length>0?b.messages[b.messages.length-1]:void 0;a?.role==="user"&&a.processNodeId&&a.processNodeId!==b.currentNodeId&&(x.info(`New user turn for ${J}: directing execution to node ${a.processNodeId} (was ${b.currentNodeId}).`),b.currentNodeId=a.processNodeId,e.FlowExecutor.conversationStates.set(J,b))}if(M&&F&&!G&&"new"!==L&&!I.processNodeId){let a=b.messages.length>0?b.messages[b.messages.length-1]:void 0;if(a?.role!=="user"){let a;for(let c=b.messages.length-1;c>=0;c--)if("user"===b.messages[c].role){a=b.messages[c].processNodeId;break}if(!a&&b.flowId)try{let c=await n.flowService.getFlow(b.flowId);a=c?.nodes?.find(a=>"start"===a.type)?.id}catch(a){x.warn(`Could not resolve start node for error-resume of ${J}`,a)}a&&a!==b.currentNodeId&&(x.info(`Error-resume for ${J}: replaying turn from entry node ${a} (was ${b.currentNodeId}).`),b.currentNodeId=a,e.FlowExecutor.conversationStates.set(J,b))}}F&&b.flowId&&(e.FlowExecutor.clearFlowCache(b.flowId),x.debug(`Cleared compiled-flow cache for ${b.flowId} at start of user turn ${J}.`));let O=!1,P=0,Q=new Map,R=new Map,S=a.emit??i.$.emitterFor(J),T=new Set(b.messages.map(a=>a.id).filter(a=>!!a)),U=a=>{if(!a.usage)return;let c=b.usage??{promptTokens:0,completionTokens:0,totalTokens:0,costUsd:0,byNode:{}};c.promptTokens+=a.usage.promptTokens,c.completionTokens+=a.usage.completionTokens,c.totalTokens+=a.usage.totalTokens;let d=a.usage.cacheReadTokens??0;d&&(c.cacheReadTokens=(c.cacheReadTokens??0)+d);let e=a.processNodeId||"unknown",f=c.byNode[e]??{promptTokens:0,completionTokens:0,totalTokens:0,costUsd:0};f.promptTokens+=a.usage.promptTokens,f.completionTokens+=a.usage.completionTokens,f.totalTokens+=a.usage.totalTokens,d&&(f.cacheReadTokens=(f.cacheReadTokens??0)+d),c.byNode[e]=f,b.usage=c,S({type:"usage",node:a.processNodeId?{nodeId:a.processNodeId}:void 0,promptTokens:a.usage.promptTokens,completionTokens:a.usage.completionTokens,totalTokens:a.usage.totalTokens,costUsd:0,...d?{cacheReadTokens:d}:{}})},V=()=>{for(let a of b.messages)a.id||(a.id=crypto.randomUUID()),T.has(a.id)||(T.add(a.id),"system"!==a.role&&(S({type:"message",message:a,node:a.processNodeId?{nodeId:a.processNodeId}:void 0}),U(a)))};S({type:"run:start",flowId:b.flowId});let W=[];if(b.flowId)try{let a=b.flowSnapshot??await n.flowService.getFlow(b.flowId);if(a)for(let c of a.nodes||[]){let a=c.data?.properties?.boundServer;c.data?.type==="mcp"&&a&&(W.push(a),(0,u.F7)(a,{conversationId:J,getUnattended:()=>!!b.unattended}))}}catch(a){x.debug("Could not enumerate MCP servers for elicitation context; skipping",{err:a})}if((F||"new"===L)&&b.flowId)try{let a=b.flowSnapshot?await (0,q.Q)(b.flowSnapshot):await (0,q.validateFlowForRun)(b.flowId);if(!a.isRunnable){let c=a.issues.filter(a=>"error"===a.severity),e=`This flow can't run yet — please fix the following before running:
2
+ `+c.map(a=>`• ${a.message}`).join("\n");x.warn(`Pre-run validation blocked flow ${b.flowId} for conv ${J}`,{errorCount:c.length,codes:c.map(a=>a.code)}),b.lastResponse={success:!1,error:e,errorDetails:{message:e,type:"invalid_request_error",code:"flow_invalid",status:400}},d=k.O,O=!0}}catch(a){x.warn(`Pre-run validation could not complete for ${b.flowId}; proceeding`,a)}let X=()=>!!b.isCancelled||!!(0,s.isCancelledByAncestry)(b.parentRunId,e.FlowExecutor.conversationStates)&&(b.isCancelled=!0,!0),Y=async()=>{if(0===(0,h.xk)(J))return!1;if((()=>{let a=new Set;for(let c of b.messages)if("tool"===c.role){let b=c.tool_call_id;b&&a.add(b)}return b.messages.some(b=>"assistant"===b.role&&Array.isArray(b.tool_calls)&&b.tool_calls.some(b=>b.id&&!a.has(b.id)))})())return x.debug(`Steering message(s) waiting for ${J} but a tool exchange is in flight; deferring.`),!1;let a=(0,h.PD)(J);if(0===a.length)return!1;try{for(let c of a)!c.processNodeId&&b.currentNodeId&&(c.processNodeId=b.currentNodeId);return b.messages.push(...a),b.lastUserMessageAt=a[a.length-1].timestamp??Date.now(),e.FlowExecutor.conversationStates.set(J,b),V(),b.ephemeral||await (0,g.appendRawForState)(b,a.map(a=>({type:"message",message:a}))),x.info(`Folded ${a.length} steering message(s) into the live run for ${J}.`),!0}catch(b){return(0,h.iS)(J,a),x.warn(`Failed to fold steering message(s) for ${J}; re-queued`,b),!1}},Z=!!b.debugMode&&!E,$=()=>{b.status="paused_debug",S({type:"run:paused",reason:"debug",node:b.currentNodeId?{nodeId:b.currentNodeId}:void 0})};try{if(!O)for(;;){if(P++,x.debug(`--- Starting Execution Step ${P} for Conv ${J} ---`),P>150){x.warn(`Max internal iterations (150) reached for conv ${J}. Breaking loop.`),d!==k.O&&(b.lastResponse={success:!1,error:"Maximum internal iterations (150) reached."},d=k.O);break}if(X()){x.info(`Cancellation flag detected for conv ${J}. Terminating execution.`),b.status="error",b.lastResponse={success:!1,error:"Execution cancelled by user."},d=k.O;break}if(await Y(),b.debugPendingToolCalls&&b.debugPendingToolCalls.length>0){let a=b.debugPendingToolCalls;b.debugPendingToolCalls=void 0,x.info(`[Debug Step] Executing ${a.length} pending tool call(s) for conv ${J}.`);let c=await l.s.processToolCalls({toolCalls:a,toolNameMap:b.toolNameMap,emit:S,conversationId:b.ephemeral?void 0:b.conversationId,node:b.currentNodeId?{nodeId:b.currentNodeId}:void 0,shouldAbort:X,mcpNodes:b.currentMCPNodes});if(!c.success){x.error(`Debug tool processing failed for conv ${J}`,{error:c.error}),b.lastResponse={success:!1,error:"Tool processing failed",errorDetails:c.error},d=k.O;break}let f=c.value.toolCallMessages.map(a=>({...a,id:crypto.randomUUID(),timestamp:Date.now(),processNodeId:b.currentNodeId}));b.messages.push(...f),e.FlowExecutor.conversationStates.set(J,b),V();try{b.updatedAt=Date.now(),await z(K,b)}catch(a){x.error(`Failed to save state after debug tool execution for conv ${J}:`,a)}if(Z){x.info(`[Debug Step] Paused after tool execution for conv ${J}.`),$();break}continue}if(!Z&&b.breakpoints&&b.breakpoints.length>0){let a=await e.FlowExecutor.peekNextNodeId(b),c=b.breakpoints.includes("*");if(a&&(c||b.breakpoints.includes(a))&&b.lastBreakNodeId!==a){c&&(b.breakpoints=b.breakpoints.filter(a=>"*"!==a)),x.info(`Breakpoint hit at node ${a}${c?" (attach)":""} for conv ${J}. Pausing.`),b.status="paused_debug",b.debugMode=!0,b.lastBreakNodeId=a,S({type:"breakpoint:hit",node:{nodeId:a}}),S({type:"run:paused",reason:"breakpoint",node:{nodeId:a}});try{b.updatedAt=Date.now(),await z(K,b)}catch(a){x.error(`Failed to save state on breakpoint for conv ${J}:`,a)}break}a&&b.lastBreakNodeId&&a!==b.lastBreakNodeId&&(b.lastBreakNodeId=void 0)}if(b.messages.length>0){let a=b.messages.slice(-3);x.verbose(`Message history before step ${P}`,a)}else x.verbose(`No messages in history before step ${P}`);let a=await e.FlowExecutor.executeStep(b,S);if(b=a.sharedState,d=a.action,V(),b.updatedAt=Date.now(),"New Conversation"===b.title&&b.messages.length>0){let a=b.messages.find(a=>"user"===a.role);a&&"string"==typeof a.content&&(b.title=(0,t.oO)(a.content),x.verbose(`Updated conversation title for ${J} after step ${P} to: ${b.title}`))}if(x.info(`Step ${P} completed for conv ${J}. Action: ${d}`,{currentNodeId:b.currentNodeId}),x.verbose(`Shared state after step ${P}`,b),x.debug(`[Action Handling] Step ${P}: Received action "${d}" for conv ${J}`),d===k.O){x.info(`[Action Handling] Step ${P}: Handling ERROR_ACTION for conv ${J}`),x.error(`Error action received during step ${P} for conv ${J}`,{error:b.lastResponse});break}if(d===k.g4){if(x.info(`[Action Handling] Step ${P}: Handling FINAL_RESPONSE_ACTION for conv ${J}`),x.info(`Final response action received at step ${P} for conv ${J}`),b.forceSummaryTurn){b.forceSummaryTurn=!1,b.capped=!0,b.status="capped",x.info(`[#253] Graceful landing complete for conv ${J}; status=capped.`);break}let a=await B(b,S,Q);if("advanced"===a||"nudged"===a){V(),e.FlowExecutor.conversationStates.set(J,b);continue}if(await Y()){x.info(`Steering message arrived as ${J} was completing; continuing the run to answer it.`),e.FlowExecutor.conversationStates.set(J,b);continue}b.status="completed",x.info(`Setting conversation status to 'completed' for conv ${J}`);break}if(d===k.Jp){x.info(`[Action Handling] Step ${P}: Handling TOOL_CALL_ACTION for conv ${J}`),x.info(`Tool call action received at step ${P} for conv ${J}`);let a=b.messages.length>0?b.messages[b.messages.length-1]:null;if(a?.role==="assistant"&&a.tool_calls)if(j){let c=b.currentNodeId;if(c&&!b.forceSummaryTurn){let d=(R.get(c)??0)+1;R.set(c,d);let f=b.turnBudgets?.[c]??w.m;if(d>=f){x.info(`[#253] Turn budget (${f}) reached for node ${c} on conv ${J}; forcing a graceful summary turn instead of executing tools.`);let d=Date.now(),h=a.tool_calls.map(a=>({id:crypto.randomUUID(),role:"tool",tool_call_id:a.id,content:"Turn budget reached: this tool was not executed. No further tool calls are possible. Provide a final text-only summary instead.",timestamp:d,processNodeId:c})),i={id:crypto.randomUUID(),role:"user",content:"SYSTEM NOTICE — TURN BUDGET REACHED. You have used up the maximum number of agentic turns allotted for this task, so no further tool calls are possible. This overrides every previous instruction to keep working or to call a tool. Produce a single, final, text-only message that:\n1. Summarizes what was accomplished so far.\n2. Lists the tasks that remain unfinished.\n3. Recommends concrete next steps for whoever continues this work.\nDo NOT attempt to call any tool. Answer with plain text only.",timestamp:d+1,processNodeId:c};if(b.messages.push(...h,i),b.forceSummaryTurn=!0,b.cappedReason="maxTurns",e.FlowExecutor.conversationStates.set(J,b),V(),!b.ephemeral)try{await (0,g.appendRawForState)(b,[...h,i].map(a=>({type:"message",message:a})))}catch(a){x.warn(`Failed to append graceful-cap messages to log for ${J}`,a)}continue}}if(A&&"fail"===b.onApprovalRequired){let c=a.tool_calls[0],e=c&&"function"===c.type?c.function.name:"unknown";x.info(`[flujo=true, onApprovalRequired=fail] Failing fast for tool "${e}" (conv ${J})`),b.status="error",b.pendingToolCalls=a.tool_calls,b.lastResponse={success:!1,error:`Headless run requires approval for tool "${e}" but no approver is available (approvalPolicy: fail).`,errorDetails:{message:`Headless run requires approval for tool "${e}" but no approver is available (approvalPolicy: fail).`,type:"approval_required",name:e}},d=k.O;break}if(A){let c=[],d=[],f=b.permissionRules??[],g=b.savedPermissionRules??[];if(f.length>0||g.length>0)for(let e of a.tool_calls){let a=(0,m.ud)(e.function.name,b.toolNameMap);if(!a){c.push(e);continue}let h={};try{h=JSON.parse(e.function.arguments)}catch{}let i=(0,v.SX)(h),j=(0,v.R6)(f,g,a.server,a.tool,i);"deny"===j||"allow"===j?d.push(e):c.push(e)}else c.push(...a.tool_calls);if(d.length>0){let a=await l.s.processToolCalls({toolCalls:d,toolNameMap:b.toolNameMap,emit:S,conversationId:b.ephemeral?void 0:b.conversationId,node:b.currentNodeId?{nodeId:b.currentNodeId}:void 0,shouldAbort:X,mcpNodes:b.currentMCPNodes,permissionRules:f,savedPermissionRules:g,unattended:b.unattended});if(a.success){let c=a.value.toolCallMessages.map(a=>({...a,id:crypto.randomUUID(),timestamp:Date.now(),processNodeId:b.currentNodeId}));b.messages.push(...c),V()}}if(0===c.length){e.FlowExecutor.conversationStates.set(J,b);continue}x.info(`[flujo=true, requireApproval=true] Pausing execution for tool approval for conv ${J}`),b.status="awaiting_tool_approval",b.pendingToolCalls=c,b.lastResponse=void 0,e.FlowExecutor.conversationStates.set(J,b);try{if(b.updatedAt=Date.now(),"New Conversation"===b.title&&b.messages.length>0){let a=b.messages.find(a=>"user"===a.role);a&&"string"==typeof a.content&&(b.title=(0,t.oO)(a.content),x.verbose(`Updated conversation title for ${J} before pausing to: ${b.title}`))}await z(K,b),x.verbose(`Saved state before pausing for approval for conv ${J}`)}catch(a){x.error(`Failed to save state before pausing for approval for conv ${J}:`,a)}S({type:"run:awaiting_approval",pendingToolCalls:a.tool_calls});break}if(Z){x.info(`[Debug Step] Paused before executing ${a.tool_calls.length} tool call(s) for conv ${J}.`),b.debugPendingToolCalls=a.tool_calls,e.FlowExecutor.conversationStates.set(J,b);try{b.updatedAt=Date.now(),await z(K,b)}catch(a){x.error(`Failed to save state before debug tool pause for conv ${J}:`,a)}$();break}{x.info(`[flujo=true, requireApproval=false] Processing ${a.tool_calls.length} tools internally for conv ${J}`);let c=await l.s.processToolCalls({toolCalls:a.tool_calls,toolNameMap:b.toolNameMap,emit:S,conversationId:b.ephemeral?void 0:b.conversationId,node:b.currentNodeId?{nodeId:b.currentNodeId}:void 0,shouldAbort:X,mcpNodes:b.currentMCPNodes,permissionRules:b.permissionRules,savedPermissionRules:b.savedPermissionRules,unattended:b.unattended});if(!c.success){x.error(`Internal tool processing failed for conv ${J}`,{error:c.error}),b.lastResponse={success:!1,error:"Tool processing failed",errorDetails:c.error},d=k.O;break}x.info(`Adding ${c.value.toolCallMessages.length} tool result messages for conv ${J}`);let f=c.value.toolCallMessages.map(a=>({...a,id:crypto.randomUUID(),timestamp:Date.now(),processNodeId:b.currentNodeId}));b.messages.push(...f),e.FlowExecutor.conversationStates.set(J,b),V(),x.info(`Continuing loop for conv ${J} after internal tool processing (no approval needed).`);continue}}else{x.info(`[flujo=false] Tool call action received for conv ${J}. Checking tool types.`);let c=a.tool_calls||[],f=[],g=[];if(c.forEach(a=>{"function"===a.type&&(0,m.$9)(a.function.name,b.toolNameMap)?(x.verbose("tool is internal:",a.function.name),f.push(a)):(x.verbose("tool is external:",a.function.name),g.push(a))}),f.length>0){x.info(`[flujo=false] Processing ${f.length} internal tools for conv ${J}. External tools (${g.length}) will be ignored this step.`);let a=await l.s.processToolCalls({toolCalls:f,toolNameMap:b.toolNameMap,emit:S,conversationId:b.ephemeral?void 0:b.conversationId,node:b.currentNodeId?{nodeId:b.currentNodeId}:void 0,shouldAbort:X,mcpNodes:b.currentMCPNodes});if(!a.success){x.error(`[flujo=false] Internal tool processing failed for conv ${J}`,{error:a.error}),b.lastResponse={success:!1,error:"Internal tool processing failed",errorDetails:a.error},d=k.O;break}x.info(`Adding ${a.value.toolCallMessages.length} internal tool result messages for conv ${J}`);let c=a.value.toolCallMessages.map(a=>({...a,id:crypto.randomUUID(),timestamp:Date.now(),processNodeId:b.currentNodeId}));b.messages.push(...c),e.FlowExecutor.conversationStates.set(J,b),x.info(`Continuing loop for conv ${J} after internal tool processing (flujo=false).`);continue}if(g.length>0){x.info(`[flujo=false] Found ${g.length} external tools for conv ${J}. Wrapping in XML and returning.`);let a=[];for(let b of g)if("function"===b.type)try{let c=JSON.parse(b.function.arguments||"{}"),d="";for(let a in c){let b=String(c[a]).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;");d+=`
3
+ <${a}>${b}</${a}>`}a.push(`<${b.function.name}>${d}
4
+ </${b.function.name}>`)}catch(c){x.error(`[flujo=false] Failed to parse arguments for external tool ${b.function.name}`,{args:b.function.arguments,error:c,convId:J}),a.push(`<${b.function.name}>
5
+ <error>Failed to parse arguments: ${c instanceof Error?c.message:String(c)}</error>
6
+ </${b.function.name}>`)}b.lastResponse={_flujo_xml_tools:a.join("\n\n")},d=k.g4,x.info(`[flujo=false] Prepared XML for external tools. Exiting loop for conv ${J}.`);break}x.warn(`[flujo=false] TOOL_CALL_ACTION received for conv ${J} but no tools found after classification. Treating as final.`),d=k.g4;break}x.warn(`TOOL_CALL_ACTION received for conv ${J} but no tool_calls found in last message. Treating as final.`),d=k.g4;break}let c=await e.FlowExecutor.resolveHandoff(b,d);if(c.isSuccessorEdge){x.info(`[Action Handling] Step ${P}: Handling Handoff Action (Edge ID) for conv ${J}`),x.info(`Handoff action received for conv ${J}. Edge: ${d}`);let a=c.targetNodeId;if("string"==typeof a&&a.length>0){b.handoffInput=void 0;let c=b.messages.length>0?b.messages[b.messages.length-1]:null;if(c?.role==="assistant"&&c.tool_calls){let e,f,g=c.tool_calls.filter(a=>"function"===a.type&&("handoff"===a.function.name||a.function.name.startsWith("handoff_to_"))),h=a=>b.handoffNameMap?.[a]||a.replace("handoff_to_",""),i=g.filter(b=>"function"===b.type&&h(b.function.name)===a),j=i.length>0?i:g.slice(0,1);0===j.length&&x.warn(`Handoff action received for edge ${d}, but could not find corresponding handoff tool call in last assistant message.`);let k=[],l="";for(let c of(j.forEach((c,g)=>{if("function"===c.type)try{let a=JSON.parse(c.function.arguments||"{}"),b="string"==typeof a?.task?a.task.trim():"",d="string"==typeof a?.prompt?a.prompt.trim():"",g=b||(j.length>1?d:"");if(g&&k.push(g),!l&&d&&(l=d),!e&&Array.isArray(a?.parallelFlows)){let b=a.parallelFlows.filter(a=>"string"==typeof a&&""!==a.trim());b.length>0&&(e=b)}let h=a?.concurrencyLimit;void 0===f&&"number"==typeof h&&h>=1&&(f=Math.floor(h))}catch(a){x.warn(`Could not parse handoff tool-call arguments for edge ${d}; ignoring caller input for this call`,{parseError:a})}b.messages.push({id:crypto.randomUUID(),role:"tool",tool_call_id:c.id,content:JSON.stringify({status:"Handoff processed",targetNodeId:a,...j.length>1?{lane:g+1,laneCount:j.length}:{}}),timestamp:Date.now(),processNodeId:b.currentNodeId})}),g))j.includes(c)||(b.messages.push({id:crypto.randomUUID(),role:"tool",tool_call_id:c.id,content:JSON.stringify({status:"Not executed",reason:"A different handoff was chosen this turn."}),timestamp:Date.now(),processNodeId:b.currentNodeId}),x.warn(`Handoff call ${"function"===c.type?c.function.name:c.id} targeted a different node than the chosen route; answered as not executed.`));if(l||1!==k.length||(l=k[0]),l||k.length>0||e&&e.length>0)b.handoffInput={targetNodeId:a,prompt:l,...k.length>0?{tasks:k}:{},...e&&e.length>0?{parallelFlows:e}:{},...void 0!==f?{concurrencyLimit:f}:{}},x.info(`Captured caller handoff input for node ${a}`,{promptChars:l.length,spawnBriefs:k.length,fanoutCount:e?.length??0});else try{let c=await n.flowService.getFlow(b.flowId),d=c?.nodes?.find(b=>b.id===a),e=d?.data?.properties,f=d?.type==="subflow"?e?.promptTemplate:e?.isolatedPrompt;d?.type!=="subflow"&&d?.type!=="process"||e?.inputMode!=="isolated"||e?.allowCallerPrompt===!1||e?.allowCallerFanout===!0||f?.trim()||x.warn(`Handoff to isolated ${d?.type} node ${a} has neither a caller-supplied prompt nor an authored message; the target will start with an empty prompt and may stall. The routing model should have supplied the required "prompt" argument (issue #169).`,{targetNodeId:a})}catch(a){x.debug("Issue #169 empty-prompt handoff guard check failed (non-fatal)",{guardErr:a})}}else x.warn(`Handoff action received for edge ${d}, but the last message was not an assistant message with tool calls.`);V();let f=b.currentNodeId;if(b.currentNodeId=a,b.handoffRequested=void 0,S({type:"handoff",from:f?{nodeId:f}:void 0,toNodeId:a,edgeId:d}),x.info(`Transitioning conv ${J} to node ${b.currentNodeId}`),e.FlowExecutor.conversationStates.set(J,b),Z){x.info(`[Debug Step] Paused after handoff to node ${b.currentNodeId} for conv ${J}.`),$();break}x.info(`Continuing loop for conv ${J} after handoff.`);continue}x.error(`Handoff failed for conv ${J}: Successor node for edge ${d} has invalid ID.`),b.lastResponse={success:!1,error:`Handoff failed: Target node for edge ${d} has invalid ID.`},d=k.O;break}if(d===k.E5){x.info(`[Action Handling] Step ${P}: Handling STAY_ON_NODE_ACTION for conv ${J}`),x.info(`Stay on node action received for conv ${J} at step ${P}`);break}x.warn(`Unrecognized action '${d}' received at step ${P} for conv ${J}. Treating as final response.`),d=k.g4;break}}catch(a){if(x.error(`Unhandled error during execution loop for conv ${J}`,{loopError:a}),d!==k.O&&X()&&(b.status="error",b.lastResponse={success:!1,error:"Execution cancelled by user."},d=k.O),d!==k.O){let c=a?.details;b.lastResponse={success:!1,error:a instanceof Error?a.message:String(a),errorDetails:a instanceof Error?{name:a.name,message:a.message,stack:a.stack,...c&&"object"==typeof c?c:{}}:void 0},d=k.O}}for(let a of(d!==k.O&&X()&&(x.info(`Cancellation flag set at run end for conv ${J}; reporting cancelled instead of '${b.status}'.`),b.status="error",b.lastResponse={success:!1,error:"Execution cancelled by user."},d=k.O),d===k.O&&"error"!==b.status&&(b.status="error"),W))(0,u.mR)(a);let _=Date.now()-f,aa=b.status||(d===k.g4?"completed":d===k.O?"error":"running");if(x.info(`Execution finished for conv ${J}. Final Action: ${d}, Final Status: ${aa}`,{duration:`${_}ms`}),V(),("completed"===aa||"error"===aa||"capped"===aa)&&(S({type:"run:done",status:aa}),"schedule"!==b.source&&(b.runDepth??0)===0)){let a=b.messages[b.messages.length-1],c=a&&"assistant"===a.role&&"string"==typeof a.content?a.content:void 0;C(b,"capped"===aa?"completed":aa,c)}try{if(b.updatedAt=Date.now(),"New Conversation"===b.title&&b.messages.length>0){let a=b.messages.find(a=>"user"===a.role);a&&"string"==typeof a.content&&(b.title=(0,t.oO)(a.content),x.verbose(`Updated conversation title for ${J} before final return to: ${b.title}`))}await z(K,b),x.debug(`Saved final state for conversation ${J} before returning.`)}catch(a){x.error(`Failed to save final state for conversation ${J}:`,a)}(0,s.isConversationDeleted)(J)?e.FlowExecutor.conversationStates.delete(J):e.FlowExecutor.conversationStates.set(J,b);let ab=()=>{G&&("completed"===b.status||"error"===b.status)&&e.FlowExecutor.conversationStates.delete(J)},ac={conversationId:b.conversationId||J,messages:b.messages,usage:b.usage,finalAction:d,sharedState:b};if("paused_debug"===b.status)return x.info(`Returning paused debug state for conv ${J}`),{...ac,status:"paused_debug",outputText:"",pendingToolCalls:b.pendingToolCalls};if("error"===b.status||d===k.O){let a,c="Unknown error during execution",d=500;if("object"==typeof b.lastResponse&&null!==b.lastResponse)if("success"in b.lastResponse&&!1===b.lastResponse.success&&"error"in b.lastResponse&&"string"==typeof b.lastResponse.error){if(c=b.lastResponse.error,"errorDetails"in b.lastResponse&&"object"==typeof b.lastResponse.errorDetails&&null!==b.lastResponse.errorDetails){let e=b.lastResponse.errorDetails;(a={message:"string"==typeof e.message?e.message:c,type:"string"==typeof e.type?e.type:void 0,code:"string"==typeof e.code?e.code:void 0,param:"string"==typeof e.param?e.param:void 0,status:"number"==typeof e.status?e.status:void 0,stack:"string"==typeof e.stack?e.stack:void 0,name:"string"==typeof e.name?e.name:void 0}).status&&(d=a.status)}}else try{c=`Unexpected error state object: ${JSON.stringify(b.lastResponse)}`}catch{c="Unexpected error state object (unserializable)"}else"string"==typeof b.lastResponse&&(c=b.lastResponse);return a?a.message=a.message||c:a={message:c},x.error(`Returning error result for conv ${J}`,{errorMessage:c,errorDetails:a,statusCode:d}),"error"!==b.status&&(b.status="error"),ab(),{...ac,status:"error",outputText:"",error:{message:c,details:a,statusCode:d}}}let ad=b.messages.length>0?b.messages[b.messages.length-1]:null,ae="",af="";"object"==typeof b.lastResponse&&null!==b.lastResponse&&"_flujo_xml_tools"in b.lastResponse?(af=b.lastResponse._flujo_xml_tools,ae=ad?.role==="assistant"&&"string"==typeof ad.content?ad.content:"",ae+=(ae?"\n\n":"")+af,b.lastResponse=ae):ae="string"==typeof b.lastResponse?b.lastResponse:ad?.role==="assistant"&&"string"==typeof ad.content?ad.content:d!==k.Jp||j?"Processing complete.":"";let ag=af?void 0:ad?.role==="assistant"?ad.tool_calls:void 0;return x.info(`Returning success result for conv ${J}`,{action:d,status:b.status,flujo:j,requireApproval:A,flujodebug:D}),ab(),{...ac,status:b.status||(d===k.g4?"completed":"running"),outputText:ae,toolCalls:ag,pendingToolCalls:b.pendingToolCalls}}},44681:(a,b,c)=>{c.d(b,{Q:()=>j,validateFlowForRun:()=>k});var d=c(50846),e=c(87821),f=c(20433),g=c(60453),h=c(84671);let i=(0,d.h)("backend/execution/flow/validateFlowForRun");async function j(a){let b,c,d,e;try{b=await f.modelService.loadModels()}catch(a){i.warn("validateFlowObjectForRun: could not load models; skipping model checks",a)}try{let a=await g.mcpService.loadServerConfigs();Array.isArray(a)&&(d=a,c=a.map(a=>({name:a.name,status:a.disabled?"disabled":void 0})))}catch(a){i.warn("validateFlowObjectForRun: could not load servers; skipping server checks",a)}try{let b=new Map((Array.isArray(d)?d:[]).map(a=>[a.name,!!a.disabled])),c=new Set;for(let b of a.nodes??[]){let a=b?.data?.type??b?.type,d=b?.data?.properties?.boundServer;"mcp"===a&&"string"==typeof d&&d&&c.add(d)}let f=await Promise.all([...c].map(async a=>{if(b.get(a))return null;let c=await g.mcpService.listServerTools(a);if(c.error||!Array.isArray(c.tools))return null;let d=c.tools.map(a=>a?.name).filter(a=>"string"==typeof a);return[a,d]}));for(let a of(e={},f))a&&(e[a[0]]=a[1])}catch(a){i.warn("validateFlowObjectForRun: could not gather serverTools; skipping tool checks",a),e=void 0}return(0,h.nC)(a,{models:b,servers:c,serverTools:e})}async function k(a){let b=await e.flowService.getFlow(a);return b?j(b):(i.warn(`validateFlowForRun: flow ${a} could not be loaded; skipping pre-run checks`),{issues:[],errorCount:0,warningCount:0,isRunnable:!0})}}};
@@ -0,0 +1,2 @@
1
+ exports.id=6404,exports.ids=[1925,3629,4306,6404,6793,9174],exports.modules={1925:(a,b,c)=>{"use strict";c.d(b,{Hm:()=>f,xc:()=>e});let d=["key","secret","token","password"],e=a=>d.some(b=>a.toLowerCase().includes(b)),f=a=>e(a)||"authorization"===a.trim().toLowerCase()},3534:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"400f9ef83b77b4fa18eef936c40907123810309034":()=>d.V,"603b08e3f479805caab0c86a5988dc208d2bb8d300":()=>d.resolveGlobalVars,"60c1cb1fb6ec50cadfd68292dc2b7c6cc8e1d8a86f":()=>d.G});var d=c(73456)},3676:(a,b,c)=>{"use strict";c.d(b,{Wj:()=>h,ln:()=>g});var d=c(10641),e=c(58739);let f="encryption_locked";async function g(){return(0,e.isEncryptionLocked)()}async function h(a){return await g()?a?.openai?d.NextResponse.json({error:{message:"Encryption is locked. Unlock FLUJO to continue.",type:f,code:f,param:null}},{status:423}):d.NextResponse.json({error:f},{status:423}):null}},51669:(a,b)=>{"use strict";function c(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
2
+ Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(b,"D",{enumerable:!0,get:function(){return c}})},56793:(a,b,c)=>{"use strict";c.d(b,{eh:()=>g,ru:()=>e});let d=(0,c(50846).h)("backend/services/scheduler/flowRunEventBus");function e(a){return"signal"===a.kind}class f{publish(a){if(0===this.listeners.size)return;let b=e(a)?`signal topic=${a.topic} emitter=${a.emitterFlowId}`:`flow=${a.flowId} status=${a.status}`;for(let c of(d.debug(`Publishing flow event: ${b} firedBy=${a.firedBy} depth=${a.chainDepth} listeners=${this.listeners.size}`),[...this.listeners]))try{c(a)}catch(a){d.warn("A flow-run event listener threw:",a)}}subscribe(a){return this.listeners.add(a),()=>{this.listeners.delete(a)}}get listenerCount(){return this.listeners.size}constructor(){this.listeners=new Set}}function g(){return global.__flujo_flow_run_event_bus||(global.__flujo_flow_run_event_bus=new f),global.__flujo_flow_run_event_bus}},68633:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{decryptActionBoundArgs:function(){return s},encryptActionBoundArgs:function(){return r}}),c(77925);let d=c(97954),e=c(27825),f=c(47686),g=c(77533),h=c(63033),i=c(26906),j=function(a){return a&&a.__esModule?a:{default:a}}(c(74515)),k=new TextEncoder,l=new TextDecoder,m=void 0,n=void 0;async function o(a,b){let c=await (0,g.getActionEncryptionKey)();if(void 0===c)throw Object.defineProperty(Error("Missing encryption key for Server Action. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E65",enumerable:!1,configurable:!0});let d=atob(b),e=d.slice(0,16),f=d.slice(16),h=l.decode(await (0,g.decrypt)(c,(0,g.stringToUint8Array)(e),(0,g.stringToUint8Array)(f)));if(!h.startsWith(a))throw Object.defineProperty(Error("Invalid Server Action payload: failed to decrypt."),"__NEXT_ERROR_CODE",{value:"E191",enumerable:!1,configurable:!0});return h.slice(a.length)}async function p(a,b){let c=await (0,g.getActionEncryptionKey)();if(void 0===c)throw Object.defineProperty(Error("Missing encryption key for Server Action. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E65",enumerable:!1,configurable:!0});let d=new Uint8Array(16);h.workUnitAsyncStorage.exit(()=>crypto.getRandomValues(d));let e=(0,g.arrayBufferToString)(d.buffer),f=await (0,g.encrypt)(c,d,k.encode(a+b));return btoa(e+(0,g.arrayBufferToString)(f))}var q=function(a){return a[a.Ready=0]="Ready",a[a.Pending=1]="Pending",a[a.Complete=2]="Complete",a}(q||{});let r=j.default.cache(async function a(b,...c){let e=h.workUnitAsyncStorage.getStore(),j=e?(0,h.getCacheSignal)(e):void 0,{clientModules:k}=(0,g.getClientReferenceManifestForRsc)(),l=Error();Error.captureStackTrace(l,a);let n=!1,o=e?(0,i.createHangingInputAbortSignal)(e):void 0,q=0;function r(){0===q&&(q=1,null==j||j.beginRead())}function s(){1===q&&(null==j||j.endRead()),q=2}o&&j&&o.addEventListener("abort",r,{once:!0});let t=await (0,f.streamToString)((0,d.renderToReadableStream)(c,k,{filterStackFrame:m,signal:o,onError(a){(null==o||!o.aborted)&&(n||(n=!0,l.message=a instanceof Error?a.message:String(a)))}}),o);if(n)throw s(),l;if(!e)return p(b,t);r();let u=(0,h.getPrerenderResumeDataCache)(e),v=(0,h.getRenderResumeDataCache)(e),w=b+t,x=(null==u?void 0:u.encryptedBoundArgs.get(w))??(null==v?void 0:v.encryptedBoundArgs.get(w));if(x)return x;let y=await p(b,t);return s(),null==u||u.encryptedBoundArgs.set(w,y),y});async function s(a,b){let c,d=await b,f=h.workUnitAsyncStorage.getStore();if(f){let b=(0,h.getCacheSignal)(f),e=(0,h.getPrerenderResumeDataCache)(f),g=(0,h.getRenderResumeDataCache)(f);(c=(null==e?void 0:e.decryptedBoundArgs.get(d))??(null==g?void 0:g.decryptedBoundArgs.get(d)))||(null==b||b.beginRead(),c=await o(a,d),null==b||b.endRead(),null==e||e.decryptedBoundArgs.set(d,c))}else c=await o(a,d);let{edgeRscModuleMapping:i,rscModuleMapping:j}=(0,g.getClientReferenceManifestForRsc)();return await (0,e.createFromReadableStream)(new ReadableStream({start(a){switch(a.enqueue(k.encode(c)),null==f?void 0:f.type){case"prerender":case"prerender-runtime":f.renderSignal.aborted?a.close():f.renderSignal.addEventListener("abort",()=>a.close(),{once:!0});break;case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"private-cache":case"unstable-cache":case void 0:return a.close()}}}),{findSourceMapURL:n,serverConsumerManifest:{moduleLoading:null,moduleMap:j,serverModuleMap:(0,g.getServerModuleMap)()}})}},73456:(a,b,c)=>{"use strict";c.d(b,{G:()=>m,V:()=>l,resolveGlobalVars:()=>k});var d=c(75879);c(68633);var e=c(50846),f=c(92372),g=c(38844),h=c(58739),i=c(51669);let j=(0,e.h)("backend/utils/resolveGlobalVars");async function k(a,b={}){j.debug("Entering resolveGlobalVars method");let c=!1!==b.resolveSecrets,d=await (0,f.YM)(g.Z.GLOBAL_ENV_VARS,{}),e=function(a){if(!a||"object"!=typeof a)return!1;let b=Object.keys(a);if(0===b.length)return!0;let c=a[b[0]];return c&&"object"==typeof c&&"value"in c&&"metadata"in c&&"object"==typeof c.metadata&&"isSecret"in c.metadata}(d);j.debug(`Loaded ${Object.keys(d).length} global environment variables (${e?"new":"old"} format)`);let i={},l=new Set;if(e)for(let[a,b]of Object.entries(d))i[a]=b.value,b.metadata.isSecret&&l.add(a);else i={...d};let m=async a=>{let b=a.match(/\$\{global:([^}]+)\}/g);if(!b)return a;let d=a;for(let a of b){let b=a.substring(9,a.length-1);if(void 0!==i[b]){let e=i[b];if(!c&&(l.has(b)||e.startsWith("encrypted:")||e.startsWith("encrypted_failed:"))){j.debug(`Keeping secret global variable unresolved: ${b}`);continue}if(e.startsWith("encrypted:")){j.debug(`Decrypting encrypted global variable: ${b}`);try{let a=e.substring(10),c=await (0,h.decryptWithPassword)(a);if(c)e=c,j.debug(`Successfully decrypted global variable: ${b}`);else{j.warn(`Failed to decrypt global variable: ${b}`);continue}}catch(a){j.error(`Error decrypting global variable: ${b}`,a);continue}}else if(e.startsWith("encrypted_failed:")){j.warn(`Skipping failed encrypted global variable: ${b}`);continue}j.debug(`Resolved global variable: ${b}`),d=d.replace(a,e)}else j.warn(`Global variable not found: ${b}`)}return d},n=async a=>{if("string"==typeof a)return await m(a);if(Array.isArray(a))return await Promise.all(a.map(a=>n(a)));if(null!==a&&"object"==typeof a){let b={};for(let[c,d]of Object.entries(a))b[c]=await n(d);return b}return a},o=await n(a);return"object"==typeof a&&null!==a&&j.debug("Resolved global variables result:",JSON.stringify(o,null,2)),j.debug("Completed global variable resolution"),o}async function l(a){return k(a,{resolveSecrets:!1})}async function m(a,b=0){if(j.debug(`Entering resolveAndDecryptApiKey method (depth: ${b})`),!a)return j.warn("Empty value provided"),null;if(b>=10)return j.warn(`Maximum resolution depth reached (10) for value: ${a}`),a;let c=a;if(c.startsWith("encrypted:")){j.debug(`Decrypting encrypted value at depth ${b}`);try{let a=c.substring(10),d=await (0,h.decryptWithPassword)(a);if(!d)return j.warn(`Failed to decrypt value at depth ${b}`),null;j.debug(`Successfully decrypted value at depth ${b}`),j.verbose(d),c=d}catch(a){return j.error(`Error decrypting value at depth ${b}:`,a),null}}else c.startsWith("encrypted_failed:")&&(j.warn(`Skipping failed encrypted value at depth ${b}`),c=c.substring(17));if(c.includes("${global:")){j.debug(`Resolving global variables at depth ${b}`);try{let a=await k(c);if(j.verbose(a),a!==c)return j.debug(`Value changed after resolving globals at depth ${b}, processing recursively`),m(a,b+1);c=a}catch(a){return j.error(`Error resolving global variables at depth ${b}:`,a),null}}return j.debug(`Completed resolveAndDecryptApiKey at depth ${b}`),c}(0,i.D)([k,l,m]),(0,d.A)(k,"603b08e3f479805caab0c86a5988dc208d2bb8d300",null),(0,d.A)(l,"400f9ef83b77b4fa18eef936c40907123810309034",null),(0,d.A)(m,"60c1cb1fb6ec50cadfd68292dc2b7c6cc8e1d8a86f",null)},75879:(a,b,c)=>{"use strict";Object.defineProperty(b,"A",{enumerable:!0,get:function(){return d.registerServerReference}});let d=c(97954)},78335:()=>{},96487:()=>{},97020:(a,b,c)=>{"use strict";c.d(b,{Af:()=>g,PK:()=>f,Pq:()=>e});var d=c(60453);function e(a,b=200){return new Response(JSON.stringify(a),{status:b,headers:{"Content-Type":"application/json"}})}function f(a){return"string"!=typeof a||0===a.length?"A non-empty server name is required":a.length>200?"Server name must be 200 characters or fewer":"."===a||".."===a?'Server name cannot be "." or ".."':/[/\\\x00-\x1f]/.test(a)?'Server name cannot contain "/", "\\", or control characters':null}async function g(a){let b=await d.mcpService.loadServerConfigs();return Array.isArray(b)?{config:b.find(b=>b.name===a)}:{error:b.error||"Failed to load server configs"}}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=6432,exports.ids=[6432],exports.modules={26432:(a,b,c)=>{c.d(b,{Codex:()=>w});var d=c(29021),e=c(21820),f=c(33873),g=c(79646),h=c(4984),i=c(8086);async function j(a){var b;if(void 0===a)return{cleanup:async()=>{}};if(!("object"==typeof(b=a)&&null!==b&&!Array.isArray(b)))throw Error("outputSchema must be a plain JSON object");let c=await d.promises.mkdtemp(f.join(e.tmpdir(),"codex-output-schema-")),g=f.join(c,"schema.json"),h=async()=>{try{await d.promises.rm(c,{recursive:!0,force:!0})}catch{}};try{return await d.promises.writeFile(g,JSON.stringify(a),"utf8"),{schemaPath:g,cleanup:h}}catch(a){throw await h(),a}}var k=class{_exec;_options;_id;_threadOptions;get id(){return this._id}constructor(a,b,c,d=null){this._exec=a,this._options=b,this._id=d,this._threadOptions=c}async runStreamed(a,b={}){return{events:this.runStreamedInternal(a,b)}}async *runStreamedInternal(a,b={}){let{schemaPath:c,cleanup:d}=await j(b.outputSchema),e=this._threadOptions,{prompt:f,images:g}=function(a){if("string"==typeof a)return{prompt:a,images:[]};let b=[],c=[];for(let d of a)"text"===d.type?b.push(d.text):"local_image"===d.type&&c.push(d.path);return{prompt:b.join("\n\n"),images:c}}(a),h=this._exec.run({input:f,baseUrl:this._options.baseUrl,apiKey:this._options.apiKey,threadId:this._id,images:g,model:e?.model,sandboxMode:e?.sandboxMode,workingDirectory:e?.workingDirectory,skipGitRepoCheck:e?.skipGitRepoCheck,outputSchemaFile:c,modelReasoningEffort:e?.modelReasoningEffort,signal:b.signal,networkAccessEnabled:e?.networkAccessEnabled,webSearchMode:e?.webSearchMode,webSearchEnabled:e?.webSearchEnabled,approvalPolicy:e?.approvalPolicy,additionalDirectories:e?.additionalDirectories});try{for await(let a of h){let b;try{b=JSON.parse(a)}catch(b){throw Error(`Failed to parse item: ${a}`,{cause:b})}"thread.started"===b.type?this._id=b.thread_id:"turn.completed"===b.type&&(b.usage.cache_write_input_tokens??=0),yield b}}finally{await d()}}async run(a,b={}){let c=this.runStreamedInternal(a,b),d=[],e="",f=null,g=null;for await(let a of c)if("item.completed"===a.type)"agent_message"===a.item.type&&(e=a.item.text),d.push(a.item);else if("turn.completed"===a.type)f=a.usage;else if("turn.failed"===a.type){g=a.error;break}if(g)throw Error(g.message);return{items:d,finalResponse:e,usage:f}}},l="CODEX_INTERNAL_ORIGINATOR_OVERRIDE",m="@openai/codex",n={"x86_64-unknown-linux-musl":"@openai/codex-linux-x64","aarch64-unknown-linux-musl":"@openai/codex-linux-arm64","x86_64-apple-darwin":"@openai/codex-darwin-x64","aarch64-apple-darwin":"@openai/codex-darwin-arm64","x86_64-pc-windows-msvc":"@openai/codex-win32-x64","aarch64-pc-windows-msvc":"@openai/codex-win32-arm64"},o=(0,i.createRequire)("file:///C:/Users/Moe/Documents/GitHub/FLUJO/node_modules/@openai/codex-sdk/dist/index.js"),p=class{executablePath;pathDirs;envOverride;configOverrides;constructor(a=null,b,c){if(a)this.executablePath=a,this.pathDirs=[];else{let a=function(){let a,{platform:b,arch:c}=process,d=null;switch(b){case"linux":case"android":switch(c){case"x64":d="x86_64-unknown-linux-musl";break;case"arm64":d="aarch64-unknown-linux-musl"}break;case"darwin":switch(c){case"x64":d="x86_64-apple-darwin";break;case"arm64":d="aarch64-apple-darwin"}break;case"win32":switch(c){case"x64":d="x86_64-pc-windows-msvc";break;case"arm64":d="aarch64-pc-windows-msvc"}}if(!d)throw Error(`Unsupported platform: ${b} (${c})`);let e=n[d];if(!e)throw Error(`Unsupported target triple: ${d}`);try{let b=o.resolve(`${m}/package.json`),c=(0,i.createRequire)(b).resolve(`${e}/package.json`);a=f.join(f.dirname(c),"vendor")}catch{throw Error(`Unable to locate Codex CLI binaries. Ensure ${m} is installed with optional dependencies.`)}let g=function(a,b,c){let d=f.join(a,b),e=f.join(d,"bin",c);if(u(e)&&u(f.join(d,"codex-package.json")))return{executablePath:e,pathDirs:t(f.join(d,"codex-path"))};let g=f.join(d,"codex",c);return u(g)?{executablePath:g,pathDirs:t(f.join(d,"path"))}:null}(a,d,"win32"===process.platform?"codex.exe":"codex");if(!g)throw Error(`Unable to locate Codex CLI binaries for ${d}. Ensure ${m} is installed with optional dependencies.`);return g}();this.executablePath=a.executablePath,this.pathDirs=a.pathDirs}this.envOverride=b,this.configOverrides=c}async *run(a){let b=["exec","--experimental-json"];if(this.configOverrides)for(let a of function(a){let b=[];return function a(b,c,d){if(!s(b))if(c)return void d.push(`${c}=${q(b,c)}`);else throw Error("Codex config overrides must be a plain object");let e=Object.entries(b);if(c||0!==e.length){if(c&&0===e.length)return void d.push(`${c}={}`);for(let[b,f]of e){if(!b)throw Error("Codex config override keys must be non-empty strings");if(void 0===f)continue;let e=c?`${c}.${b}`:b;s(f)?a(f,e,d):d.push(`${e}=${q(f,e)}`)}}}(a,"",b),b}(this.configOverrides))b.push("--config",a);if(a.baseUrl&&b.push("--config",`openai_base_url=${q(a.baseUrl,"openai_base_url")}`),a.model&&b.push("--model",a.model),a.sandboxMode&&b.push("--sandbox",a.sandboxMode),a.workingDirectory&&b.push("--cd",a.workingDirectory),a.additionalDirectories?.length)for(let c of a.additionalDirectories)b.push("--add-dir",c);if(a.skipGitRepoCheck&&b.push("--skip-git-repo-check"),a.outputSchemaFile&&b.push("--output-schema",a.outputSchemaFile),a.modelReasoningEffort&&b.push("--config",`model_reasoning_effort="${a.modelReasoningEffort}"`),void 0!==a.networkAccessEnabled&&b.push("--config",`sandbox_workspace_write.network_access=${a.networkAccessEnabled}`),a.webSearchMode?b.push("--config",`web_search="${a.webSearchMode}"`):!0===a.webSearchEnabled?b.push("--config",'web_search="live"'):!1===a.webSearchEnabled&&b.push("--config",'web_search="disabled"'),a.approvalPolicy&&b.push("--config",`approval_policy="${a.approvalPolicy}"`),a.threadId&&b.push("resume",a.threadId),a.images?.length)for(let c of a.images)b.push("--image",c);let c={};if(this.envOverride)Object.assign(c,this.envOverride);else for(let[a,b]of Object.entries(process.env))void 0!==b&&(c[a]=b);c[l]||(c[l]="codex_sdk_ts"),a.apiKey&&(c.CODEX_API_KEY=a.apiKey),this.pathDirs.length>0&&function(a,b,c=process.platform){let d=function(a,b){if("win32"!==b)return"PATH";let c=Object.keys(a).filter(a=>"path"===a.toLowerCase());return c.includes("Path")?"Path":c.at(-1)??"PATH"}(a,c);if("win32"===c)for(let b of Object.keys(a))"path"===b.toLowerCase()&&b!==d&&delete a[b];let e=(a[d]??"").split(f.delimiter).filter(a=>a.length>0&&!b.includes(a));a[d]=[...b,...e].join(f.delimiter)}(c,this.pathDirs);let d=(0,g.spawn)(this.executablePath,b,{env:c,signal:a.signal}),e=null;if(d.once("error",a=>e=a),!d.stdin)throw d.kill(),Error("Child process has no stdin");if(d.stdin.write(a.input),d.stdin.end(),!d.stdout)throw d.kill(),Error("Child process has no stdout");let i=[];d.stderr&&d.stderr.on("data",a=>{i.push(a)});let j=new Promise(a=>{d.once("exit",(b,c)=>{a({code:b,signal:c})})}),k=h.createInterface({input:d.stdout,crlfDelay:1/0});try{for await(let a of k)yield a;if(e)throw e;let{code:a,signal:b}=await j;if(0!==a||b){let c=Buffer.concat(i),d=b?`signal ${b}`:`code ${a??1}`;throw Error(`Codex Exec exited with ${d}: ${c.toString("utf8")}`)}}finally{k.close(),d.removeAllListeners();try{d.killed||d.kill()}catch{}}}};function q(a,b){if("string"==typeof a)return JSON.stringify(a);if("number"==typeof a){if(!Number.isFinite(a))throw Error(`Codex config override at ${b} must be a finite number`);return`${a}`}if("boolean"==typeof a)return a?"true":"false";if(Array.isArray(a)){let c=a.map((a,c)=>q(a,`${b}[${c}]`));return`[${c.join(", ")}]`}if(s(a)){let d=[];for(let[e,f]of Object.entries(a)){var c;if(!e)throw Error("Codex config override keys must be non-empty strings");void 0!==f&&d.push(`${r.test(c=e)?c:JSON.stringify(c)} = ${q(f,`${b}.${e}`)}`)}return`{${d.join(", ")}}`}else if(null===a)throw Error(`Codex config override at ${b} cannot be null`);else{let c=typeof a;throw Error(`Unsupported Codex config override value at ${b}: ${c}`)}}var r=/^[A-Za-z0-9_-]+$/;function s(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function t(...a){return a.filter(v)}function u(a){try{return(0,d.statSync)(a).isFile()}catch{return!1}}function v(a){try{return(0,d.statSync)(a).isDirectory()}catch{return!1}}var w=class{exec;options;constructor(a={}){let{codexPathOverride:b,env:c,config:d}=a;this.exec=new p(b,c,d),this.options=a}startThread(a={}){return new k(this.exec,this.options,a)}resumeThread(a,b={}){return new k(this.exec,this.options,b,a)}}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=6496,exports.ids=[6496],exports.modules={20839:(a,b,c)=>{c.d(b,{vt:()=>d});function d(a){return"claude-cli"===a||"codex-cli"===a}},41561:(a,b,c)=>{c.d(b,{c:()=>e,m:()=>d});let d=50;function e(a){return"number"==typeof a&&Number.isFinite(a)&&a>0?Math.floor(a):void 0}},46496:(a,b,c)=>{c.d(b,{normalizeMaxTokens:()=>d.c});var d=c(41561);c(20839)}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=6793,exports.ids=[6793,9174],exports.modules={56793:(a,b,c)=>{c.d(b,{eh:()=>g,ru:()=>e});let d=(0,c(50846).h)("backend/services/scheduler/flowRunEventBus");function e(a){return"signal"===a.kind}class f{publish(a){if(0===this.listeners.size)return;let b=e(a)?`signal topic=${a.topic} emitter=${a.emitterFlowId}`:`flow=${a.flowId} status=${a.status}`;for(let c of(d.debug(`Publishing flow event: ${b} firedBy=${a.firedBy} depth=${a.chainDepth} listeners=${this.listeners.size}`),[...this.listeners]))try{c(a)}catch(a){d.warn("A flow-run event listener threw:",a)}}subscribe(a){return this.listeners.add(a),()=>{this.listeners.delete(a)}}get listenerCount(){return this.listeners.size}constructor(){this.listeners=new Set}}function g(){return global.__flujo_flow_run_event_bus||(global.__flujo_flow_run_event_bus=new f),global.__flujo_flow_run_event_bus}}};
@@ -0,0 +1,3 @@
1
+ "use strict";exports.id=694,exports.ids=[694],exports.modules={13516:(a,b,c)=>{c.d(b,{G:()=>d});let d={LOG_LEVEL:3,INCLUDE_TOOL_CALLS_IN_RESPONSE:!0,ENABLE_EXECUTION_TRACKER:!1}},25874:(a,b,c)=>{c.r(b),c.d(b,{"400f9ef83b77b4fa18eef936c40907123810309034":()=>V,"603b08e3f479805caab0c86a5988dc208d2bb8d300":()=>U,"60c1cb1fb6ec50cadfd68292dc2b7c6cc8e1d8a86f":()=>W});var d=c(91488);c(27806);let e={LOG_LEVEL:3},f={VERBOSE:-1,DEBUG:0,INFO:1,WARN:2,ERROR:3},g="number"==typeof e.LOG_LEVEL?e.LOG_LEVEL:f.ERROR;function h(a,b=0){if(b>6)return String(a);if(!(a instanceof Error))return a;let c={name:a.name,message:a.message};for(let d of Object.getOwnPropertyNames(a)){if("name"===d||"message"===d)continue;let e=a[d];"function"!=typeof e&&("stack"===d?c.stack=e:"cause"===d?c.cause=h(e,b+1):"errors"===d&&Array.isArray(e)?c.errors=e.map(a=>h(a,b+1)):c[d]=e)}return c}function i(a,b,c,d,e){if(a>=("number"==typeof e?e:g)){if("function"==typeof d)try{d=d()}catch{d="[lazy log data threw]"}let e=new Date().toISOString(),g=`[${e}] [${b}]`,i=`${g} ${c}`;if(void 0!==d)if(d instanceof Error||"object"==typeof d)try{let a=d instanceof Error?h(d):d,b=JSON.stringify(a,(a,b)=>b instanceof Error?h(b):b,2);i+=`:
2
+ ${b}`}catch(a){i+=": [Object cannot be stringified]"}else i+=`: ${d}`;switch(a){case f.VERBOSE:console.debug(`[VERBOSE] ${i}`);break;case f.DEBUG:console.debug(i);break;case f.INFO:console.info(i);break;case f.WARN:console.warn(i);break;case f.ERROR:console.error(i);break;default:console.log(i)}}}function j(a,b){let c,d=((c=a.replace(/^src\//,"")).startsWith("/")&&(c=c.substring(1)),c);return{verbose:(a,c)=>{i(f.VERBOSE,d,a,c,b)},debug:(a,c)=>{i(f.DEBUG,d,a,c,b)},info:(a,c)=>{i(f.INFO,d,a,c,b)},warn:(a,c)=>{i(f.WARN,d,a,c,b)},error:(a,c)=>{i(f.ERROR,d,a,c,b)}}}var k=c(29021),l=c(33873),m=c.n(l),n=function(a){return a.MODELS="models",a.FLOWS="flows",a.CHAT_HISTORY="history",a.THEME="theme",a.ENCRYPTION_KEY="encryption_key",a.MCP_SERVERS="mcp_servers",a.GLOBAL_ENV_VARS="global_env_vars",a.CURRENT_CONVERSATION_ID="current_conversation_id",a.SELECTED_FLOW_ID="selected_flow_id",a.LAST_PICKED_FLOW_ID="last_picked_flow_id",a.SPEECH_SETTINGS="speech_settings",a.SPOTLIGHT_SERVERS="spotlight_servers",a.PLANNED_EXECUTIONS="planned_executions",a.MCP_AUTO_INSTALL_SETTINGS="mcp_auto_install_settings",a.MCP_QUALITY_SETTINGS="mcp_quality_settings",a.RUN_RESOURCE_SETTINGS="run_resource_settings",a.KV_STORE_SETTINGS="kv_store_settings",a.PENDING_APPROVALS="pending_approvals",a.MCP_INTERNAL_OVERRIDES="mcp_internal_overrides",a.PACKAGE_INSTALLS="package_installs",a.EXPERIMENTAL_SETTINGS="experimental_settings",a.REGISTRY_ACCOUNT="registry_account",a.REGISTRY_SETTINGS="registry_settings",a}({});function o(){let a=process.env.FLUJO_DATA_DIR;return a&&a.trim().length>0?m().resolve(a):process.cwd()}c(21820);let p=j("utils/storage/backend"),q=m().join(o(),"db"),r=m().join(o(),".next","storage"),s=a=>m().join(q,`${a}.json`);async function t(){try{await k.promises.access(q),p.verbose(`Storage directory exists: ${q}`)}catch{p.debug(`Creating storage directory: ${q}`),await k.promises.mkdir(q,{recursive:!0})}try{await k.promises.access(r),p.warn(`Old storage directory found: ${r}. This may cause data inconsistency issues.`)}catch{}}let u=new Map,v=0;async function w(a,b){let c=m().dirname(a);await k.promises.mkdir(c,{recursive:!0});let d=`${a}.tmp.${process.pid}.${++v}`;try{await k.promises.writeFile(d,b),await k.promises.rename(d,a)}catch(a){try{await k.promises.unlink(d)}catch{}throw a}}async function x(a,b){let c=s(a),d=(u.get(a)??Promise.resolve()).catch(()=>{}).then(()=>w(c,JSON.stringify(b,null,2)));u.set(a,d);try{await d,p.verbose(`Successfully saved item to: ${c}`)}catch(b){throw p.error(`Error saving item with key "${a}" to ${c}:`,b),b}finally{u.get(a)===d&&u.delete(a)}}async function y(a,b){try{await t();let c=s(a),d=await k.promises.readFile(c,"utf-8");if(0===d.trim().length)return p.warn(`Item with key "${a}" at ${c} is empty; treating as missing and returning default.`),b;try{let a=JSON.parse(d);return p.verbose(`Successfully loaded item from: ${c}`),a}catch(b){p.error(`CRITICAL: Failed to parse JSON from ${c}:`,b);let a=`${c}.corrupted.${Date.now()}.bak`;try{await k.promises.writeFile(a,d),p.info(`Created backup of corrupted file at: ${a}`)}catch(a){p.error("Failed to create backup of corrupted file:",a)}throw Error(`Failed to parse JSON from ${c}. A backup has been created at ${a}. Original error: ${b.message}`)}}catch(c){if("ENOENT"===c.code)return p.verbose(`Item with key "${a}" not found at ${s(a)}, returning default.`),b;throw p.error(`CRITICAL: Error loading item with key "${a}" from ${s(a)}:`,c),c}}var z=c(92347),A=c.n(z);let B=j("utils/encryption/session"),C=global.__flujo_encryption_sessions??(global.__flujo_encryption_sessions=new Map),D=j("utils/encryption/secure");class E extends Error{constructor(a="Encryption is locked: user password required to access secrets"){super(a),this.name="EncryptionLockedError",Object.setPrototypeOf(this,E.prototype)}}let F="data_encryption_key",G="data_encryption_iv",H="data_encryption_salt",I="encryption_type";var J=function(a){return a.DEFAULT="default",a.USER="user",a}(J||{});function K(){let a=A().enc.Utf8.parse("flujo_fixed_salt_v1");return A().PBKDF2("FLUJO~",a,{keySize:8,iterations:1e5})}function L(a){let b;try{b=a.toString(A().enc.Utf8)}catch{return null}return RegExp("^[0-9a-f]{16}$").test(b)?b:null}async function M(){D.debug("initializeDefaultEncryption: Entering method");try{if(await R())return!0;let a=K(),b=A().lib.WordArray.random(8),c=A().lib.WordArray.random(16),d=A().AES.encrypt(b.toString(),a,{iv:c,mode:A().mode.CBC,padding:A().pad.Pkcs7}),e=A().enc.Utf8.parse("flujo_fixed_salt_v1"),f={[F]:d.toString(),[G]:c.toString(),[H]:e.toString(),encryption_version:1,[I]:"default"};return await x(n.ENCRYPTION_KEY,f),!0}catch(a){return D.error("initializeDefaultEncryption: Failed to initialize default encryption:",a),!1}}async function N(){D.debug("getDefaultDEK: Entering method");try{let a=await y(n.ENCRYPTION_KEY,null);if(!a){if(!await M())return D.error("getDefaultDEK: Failed to initialize default encryption"),null;return await N()}if("default"!==a[I])return D.error("getDefaultDEK: Not using default encryption"),null;let b=a[F],c=A().enc.Hex.parse(a[G]),d=K(),e=A().AES.decrypt(b,d,{iv:c,mode:A().mode.CBC,padding:A().pad.Pkcs7});if(!L(e))return D.error("getDefaultDEK: Failed to decrypt DEK with default key"),null;return A().enc.Hex.parse(e.toString())}catch(a){return D.error("getDefaultDEK: Failed to get default DEK:",a),null}}async function O(a){D.debug("getUserDEK: Entering method");try{let b=await y(n.ENCRYPTION_KEY,null);if(!b)return D.error("getUserDEK: No encryption metadata found"),null;if("user"!==b[I])return D.error("getUserDEK: Not using user encryption"),null;let c=b[F],d=A().enc.Hex.parse(b[G]),e=A().enc.Hex.parse(b[H]),f=A().PBKDF2(a,e,{keySize:8,iterations:1e5}),g=A().AES.decrypt(c,f,{iv:d,mode:A().mode.CBC,padding:A().pad.Pkcs7});if(!L(g))return D.error("getUserDEK: Failed to decrypt DEK with provided password"),null;return A().enc.Hex.parse(g.toString())}catch(a){return D.error("getUserDEK: Failed to get user DEK:",a),null}}async function P(a,b=!1){D.debug("getDEK: Entering method");try{if(b&&a){D.debug("getDEK: Using session token");let b=function(a){let b=C.get(a);if(!b)return B.warn(`Session not found: ${a}`),null;let c=Date.now();return c-b.createdAt>72e5?(B.warn(`Session expired: ${a}`),C.delete(a),null):(b.lastUsed=c,b.dek)}(a);if(b)return A().enc.Hex.parse(b);D.warn("getDEK: Invalid or expired session token, falling back to default encryption")}let c=await y(n.ENCRYPTION_KEY,null);if(!c){if(D.info("getDEK: No encryption metadata found, initializing default encryption"),!await M())return D.error("getDEK: Failed to initialize default encryption"),null;return await P(a,b)}if("user"!==c[I])return await N();{let c=global.__flujo_server_dek??null;if(c)return D.debug("getDEK: Using server unlock state for user encryption"),A().enc.Hex.parse(c);if(a&&!b){let b=await O(a);if(b)return b;D.warn("getDEK: Provided password did not yield a valid user DEK")}throw D.warn("getDEK: User encryption is locked (no unlock state or valid credential)"),new E}}catch(a){if(a instanceof E)throw a;D.error("getDEK: Failed to get DEK:",a);try{if(D.warn("getDEK: Attempting to initialize default encryption as error recovery"),await M())return await N()}catch(a){D.error("getDEK: Failed to initialize default encryption as error recovery:",a)}return null}}async function Q(a,b,c=!1){D.debug("decryptWithPassword: Entering method");try{let d=await P(b,c);if(!d)return null;let e=a.split(":");if(2!==e.length)return D.error("decryptWithPassword: Invalid ciphertext format"),null;let f=A().enc.Hex.parse(e[0]),g=e[1];return A().AES.decrypt(g,d,{iv:f,mode:A().mode.CBC,padding:A().pad.Pkcs7}).toString(A().enc.Utf8)}catch(a){if(a instanceof E)throw a;return D.error("decryptWithPassword: Failed to decrypt data:",a),null}}async function R(){return D.debug("isEncryptionInitialized: Entering method"),null!==await y(n.ENCRYPTION_KEY,null)}var S=c(40410);let T=j("backend/utils/resolveGlobalVars");async function U(a,b={}){T.debug("Entering resolveGlobalVars method");let c=!1!==b.resolveSecrets,d=await y(n.GLOBAL_ENV_VARS,{}),e=function(a){if(!a||"object"!=typeof a)return!1;let b=Object.keys(a);if(0===b.length)return!0;let c=a[b[0]];return c&&"object"==typeof c&&"value"in c&&"metadata"in c&&"object"==typeof c.metadata&&"isSecret"in c.metadata}(d);T.debug(`Loaded ${Object.keys(d).length} global environment variables (${e?"new":"old"} format)`);let f={},g=new Set;if(e)for(let[a,b]of Object.entries(d))f[a]=b.value,b.metadata.isSecret&&g.add(a);else f={...d};let h=async a=>{let b=a.match(/\$\{global:([^}]+)\}/g);if(!b)return a;let d=a;for(let a of b){let b=a.substring(9,a.length-1);if(void 0!==f[b]){let e=f[b];if(!c&&(g.has(b)||e.startsWith("encrypted:")||e.startsWith("encrypted_failed:"))){T.debug(`Keeping secret global variable unresolved: ${b}`);continue}if(e.startsWith("encrypted:")){T.debug(`Decrypting encrypted global variable: ${b}`);try{let a=e.substring(10),c=await Q(a);if(c)e=c,T.debug(`Successfully decrypted global variable: ${b}`);else{T.warn(`Failed to decrypt global variable: ${b}`);continue}}catch(a){T.error(`Error decrypting global variable: ${b}`,a);continue}}else if(e.startsWith("encrypted_failed:")){T.warn(`Skipping failed encrypted global variable: ${b}`);continue}T.debug(`Resolved global variable: ${b}`),d=d.replace(a,e)}else T.warn(`Global variable not found: ${b}`)}return d},i=async a=>{if("string"==typeof a)return await h(a);if(Array.isArray(a))return await Promise.all(a.map(a=>i(a)));if(null!==a&&"object"==typeof a){let b={};for(let[c,d]of Object.entries(a))b[c]=await i(d);return b}return a},j=await i(a);return"object"==typeof a&&null!==a&&T.debug("Resolved global variables result:",JSON.stringify(j,null,2)),T.debug("Completed global variable resolution"),j}async function V(a){return U(a,{resolveSecrets:!1})}async function W(a,b=0){if(T.debug(`Entering resolveAndDecryptApiKey method (depth: ${b})`),!a)return T.warn("Empty value provided"),null;if(b>=10)return T.warn(`Maximum resolution depth reached (10) for value: ${a}`),a;let c=a;if(c.startsWith("encrypted:")){T.debug(`Decrypting encrypted value at depth ${b}`);try{let a=c.substring(10),d=await Q(a);if(!d)return T.warn(`Failed to decrypt value at depth ${b}`),null;T.debug(`Successfully decrypted value at depth ${b}`),T.verbose(d),c=d}catch(a){return T.error(`Error decrypting value at depth ${b}:`,a),null}}else c.startsWith("encrypted_failed:")&&(T.warn(`Skipping failed encrypted value at depth ${b}`),c=c.substring(17));if(c.includes("${global:")){T.debug(`Resolving global variables at depth ${b}`);try{let a=await U(c);if(T.verbose(a),a!==c)return T.debug(`Value changed after resolving globals at depth ${b}, processing recursively`),W(a,b+1);c=a}catch(a){return T.error(`Error resolving global variables at depth ${b}:`,a),null}}return T.debug(`Completed resolveAndDecryptApiKey at depth ${b}`),c}(0,S.D)([U,V,W]),(0,d.A)(U,"603b08e3f479805caab0c86a5988dc208d2bb8d300",null),(0,d.A)(V,"400f9ef83b77b4fa18eef936c40907123810309034",null),(0,d.A)(W,"60c1cb1fb6ec50cadfd68292dc2b7c6cc8e1d8a86f",null)},38296:(a,b,c)=>{c.d(b,{A:()=>C});var d=c(21124),e=c(38301),f=c(54573),g=c(81637),h=c(79515),i=c(68730),j=c(53773),k=c(82666),l=c(37674),m=c(67101),n=c(41893),o=c(95587),p=c(77028),q=c(44079),r=c(6537),s=c(19815),t=c(49938),u=c(47902),v=c(11480),w=c(93083),x=c(85557),y=c(91034),z=c(82571),A=c(92173);let B=(0,s.h)("frontend/components/mcp/MCPEnvManager/EnvEditor"),C=({serverName:a,initialEnv:b,onSave:c,onDelete:s,onServerRestart:C})=>{let{globalEnvVars:D}=(0,t.rX)(),[E,F]=(0,e.useState)([]),[G,H]=(0,e.useState)(!1),[I,J]=(0,e.useState)(!1),[K,L]=(0,e.useState)(!1),[M,N]=(0,e.useState)(null);(0,e.useEffect)(()=>{B.debug(`Initializing environment variables for server: ${a}`,{variableCount:Object.keys(b).length}),F(Object.entries(b).map(([a,b])=>{let c="object"==typeof b&&null!==b&&"value"in b?b.value:b,d="object"==typeof b&&null!==b&&"metadata"in b?b.metadata:{isSecret:(0,z.xc)(a)},e=c.match(/\$\{global:([^}]+)\}/);if(e){let b=e[1];return{key:a,value:c,isSecret:d.isSecret,isBound:!0,boundTo:b}}let f="string"==typeof c&&(c.startsWith("encrypted:")||c.startsWith("encrypted_failed:"));return{key:a,value:f?A.gF:c,isSecret:d.isSecret,isEncrypted:f}}))},[b]);let O=async b=>{B.debug(`Removing environment variable at index: ${b}`);let c=E[b];if("Global"===a&&s&&c.key)try{await s(c.key),F(E.filter((a,c)=>c!==b))}catch(a){B.error(`Failed to delete environment variable: ${c.key}`,a)}else F(E.filter((a,c)=>c!==b)),H(!0)},P=(a,b,c)=>{let d=[...E];if("isSecret"===b){let b=d[a];b.isSecret&&!c?d[a]={...b,isSecret:c,value:"",isEncrypted:!1,showWarning:!0}:d[a]={...b,isSecret:c}}else{let e={...d[a],[b]:c,isSecret:"key"===b?(0,z.xc)(c):d[a].isSecret};"key"===b&&(e.isValidKey=""===c||/^[a-zA-Z0-9_]+$/.test(c)),"value"===b&&(d[a].isEncrypted&&(e.isEncrypted=!1),d[a].showWarning&&c&&(e.showWarning=!1)),d[a]=e}F(d),H(!0)},Q=async()=>{if(E.some(a=>""!==a.key&&!1===a.isValidKey))return void B.error("Cannot save: Some variable names contain invalid characters");B.debug(`Saving environment variables for server: ${a}`,{variableCount:E.length}),J(!0);try{let b=E.reduce((a,b)=>{let{key:c,value:d,isBound:e,boundTo:f,isSecret:g,isEncrypted:h}=b;return c&&(e&&f?a[c]={value:`$\{global:${f}}`,metadata:{isSecret:g}}:g&&d===A.gF||(a[c]={value:d,metadata:{isSecret:g}})),a},{});await c(b),H(!1),C&&"Global"!==a&&(B.debug(`Restarting server after env variable changes: ${a}`),await C(a))}catch(a){B.error("Failed to save environment variables:",a)}J(!1)};return(0,d.jsxs)(f.A,{sx:{p:3,borderRadius:2,border:1,borderColor:a=>"dark"===a.palette.mode?"#3a3a3a":"#e5e7eb"},children:[(0,d.jsxs)(g.default,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:3},children:[(0,d.jsxs)(h.default,{variant:"h6",sx:{fontWeight:"semibold"},children:["Environment Variables - ",a]}),(0,d.jsx)(i.A,{variant:"contained",color:"primary",size:"small",startIcon:(0,d.jsx)(u.A,{}),onClick:()=>{B.debug("Adding new environment variable"),F([...E,{key:"",value:"",isSecret:!1}]),H(!0)},children:"Add Variable"})]}),(0,d.jsx)(j.A,{spacing:3,children:E.map((a,b)=>(0,d.jsxs)(k.Ay,{container:!0,spacing:2,alignItems:"flex-start",children:[(0,d.jsx)(k.Ay,{item:!0,xs:12,sm:5,children:(0,d.jsx)(l.A,{fullWidth:!0,placeholder:"Variable name",value:a.key,onChange:a=>P(b,"key",a.target.value),error:!1===a.isValidKey,helperText:!1===a.isValidKey?"Only alphanumeric characters and underscores allowed":"",size:"small"})}),(0,d.jsx)(k.Ay,{item:!0,xs:12,sm:5,children:(0,d.jsx)(l.A,{fullWidth:!0,type:a.isSecret?"password":"text",placeholder:a.showWarning?"Re-enter value":"Value",value:a.value,onChange:a=>P(b,"value",a.target.value),InputProps:{readOnly:a.isBound,startAdornment:a.isEncrypted?(0,d.jsx)(m.A,{position:"start",children:(0,d.jsx)(v.A,{fontSize:"small",titleAccess:"This value is stored encrypted"})}):null,endAdornment:a.isBound?(0,d.jsx)(m.A,{position:"end",children:(0,d.jsx)(n.A,{size:"small",label:`Bound to global: ${a.boundTo}`,color:"primary",variant:"outlined",onDelete:()=>(a=>{B.debug(`Unbinding variable at index: ${a}`);let b=[...E];b[a]={...b[a],isBound:!1,boundTo:void 0},F(b),H(!0)})(b),deleteIcon:(0,d.jsx)(w.A,{fontSize:"small"})})}):null},error:a.showWarning,helperText:a.showWarning?"You must re-enter the value after switching from secret to normal mode":"",size:"small",sx:{bgcolor:b=>a.isBound?"dark"===b.palette.mode?"#1a1a1a":"#f9fafb":b.palette.background.paper}})}),(0,d.jsx)(k.Ay,{item:!0,xs:12,sm:2,children:(0,d.jsxs)(g.default,{sx:{display:"flex",alignItems:"center",mt:.5},children:[(0,d.jsx)(o.A,{control:(0,d.jsx)(p.A,{checked:a.isSecret,onChange:a=>P(b,"isSecret",a.target.checked),size:"small"}),label:"Secret",sx:{mr:1}}),!a.isBound&&(0,d.jsx)(q.A,{size:"small",color:"primary",onClick:()=>(a=>{B.debug(`Opening bind modal for variable at index: ${a}`),N(a),L(!0)})(b),title:"Bind to global variable",sx:{mr:1},children:(0,d.jsx)(x.A,{fontSize:"small"})}),(0,d.jsx)(q.A,{size:"small",color:"error",onClick:()=>O(b),title:"Remove variable",children:(0,d.jsx)(y.A,{fontSize:"small"})})]})})]},b))}),(0,d.jsx)(r.A,{open:K,onClose:()=>{L(!1),N(null)},children:(0,d.jsxs)(g.default,{sx:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",width:400,maxWidth:"90%",bgcolor:"background.paper",boxShadow:24,p:4,borderRadius:2},children:[(0,d.jsx)(h.default,{variant:"h6",sx:{mb:2},children:"Bind to Global Variable"}),0===Object.keys(D).length?(0,d.jsx)(h.default,{color:"text.secondary",sx:{mb:2},children:"No global variables available. Add some in Settings first."}):(0,d.jsx)(g.default,{sx:{maxHeight:300,overflow:"auto",mb:2},children:Object.entries(D).map(([a,b])=>(0,d.jsxs)(i.A,{fullWidth:!0,variant:"text",onClick:()=>(a=>{if(null!==M){B.debug(`Binding variable at index ${M} to global variable: ${a}`);let b=[...E];b[M]={...b[M],isBound:!0,boundTo:a,value:`$\{global:${a}}`},F(b),L(!1),N(null),H(!0)}})(a),sx:{justifyContent:"space-between",textAlign:"left",mb:1,p:1,borderRadius:1},children:[(0,d.jsx)(h.default,{variant:"body2",children:a}),(0,d.jsx)(h.default,{variant:"caption",color:"text.secondary",children:b&&"object"==typeof b&&b.metadata&&b.metadata.isSecret?A.gF:b&&"object"==typeof b?b.value:b})]},a))}),(0,d.jsx)(g.default,{sx:{display:"flex",justifyContent:"flex-end"},children:(0,d.jsx)(i.A,{variant:"outlined",onClick:()=>{L(!1),N(null)},children:"Cancel"})})]})}),G&&(0,d.jsx)(g.default,{sx:{display:"flex",justifyContent:"flex-end",mt:3},children:(0,d.jsx)(i.A,{variant:"contained",color:"success",onClick:Q,disabled:I||E.some(a=>""!==a.key&&!1===a.isValidKey),children:I?"Saving...":"Save Changes"})})]})}},50846:(a,b,c)=>{c.d(b,{h:()=>i});var d=c(13516);let e={VERBOSE:-1,DEBUG:0,INFO:1,WARN:2,ERROR:3},f="number"==typeof d.G.LOG_LEVEL?d.G.LOG_LEVEL:e.ERROR;function g(a,b=0){if(b>6)return String(a);if(!(a instanceof Error))return a;let c={name:a.name,message:a.message};for(let d of Object.getOwnPropertyNames(a)){if("name"===d||"message"===d)continue;let e=a[d];"function"!=typeof e&&("stack"===d?c.stack=e:"cause"===d?c.cause=g(e,b+1):"errors"===d&&Array.isArray(e)?c.errors=e.map(a=>g(a,b+1)):c[d]=e)}return c}function h(a,b,c,d,h){if(a>=("number"==typeof h?h:f)){if("function"==typeof d)try{d=d()}catch{d="[lazy log data threw]"}let f=new Date().toISOString(),h=`[${f}] [${b}]`,i=`${h} ${c}`;if(void 0!==d)if(d instanceof Error||"object"==typeof d)try{let a=d instanceof Error?g(d):d,b=JSON.stringify(a,(a,b)=>b instanceof Error?g(b):b,2);i+=`:
3
+ ${b}`}catch(a){i+=": [Object cannot be stringified]"}else i+=`: ${d}`;switch(a){case e.VERBOSE:console.debug(`[VERBOSE] ${i}`);break;case e.DEBUG:console.debug(i);break;case e.INFO:console.info(i);break;case e.WARN:console.warn(i);break;case e.ERROR:console.error(i);break;default:console.log(i)}}}function i(a,b){let c,d=((c=a.replace(/^src\//,"")).startsWith("/")&&(c=c.substring(1)),c);return{verbose:(a,c)=>{h(e.VERBOSE,d,a,c,b)},debug:(a,c)=>{h(e.DEBUG,d,a,c,b)},info:(a,c)=>{h(e.INFO,d,a,c,b)},warn:(a,c)=>{h(e.WARN,d,a,c,b)},error:(a,c)=>{h(e.ERROR,d,a,c,b)}}}},92173:(a,b,c)=>{c.d(b,{RJ:()=>e,gF:()=>d});let d="masked:********",e="********"}};
@@ -5,6 +5,6 @@ ${b.condition}
5
5
  Tool result (untrusted data):
6
6
  \`\`\`json
7
7
  ${m}
8
- \`\`\``;try{let c="llm-gate"===b.mode?await j(b.modelId,n):await k(b.flowId,n),g=function(a){let b=a.match(/\{[\s\S]*\}/);if(!b)return null;try{let a=JSON.parse(b[0]);if("boolean"!=typeof a?.fire)return null;return{fire:a.fire,reason:"string"==typeof a.reason?a.reason:""}}catch{return null}}(c);if(!g)return f.warn(`Gate returned unparseable output: ${c.slice(0,200)}`),{fire:!1,newState:{lastHash:d,...l},error:"The AI check returned an unreadable answer — did not run the flow"};if(!g.fire)return{fire:!1,newState:{lastHash:d,...l}};return{fire:!0,summary:"flow-gate"===b.mode?"Flow condition met":"AI condition met",context:{result:(0,e.Je)(a),aiReason:g.reason},newState:{lastHash:d,...l}}}catch(b){let a=b instanceof Error?b.message:String(b);return f.warn(`Gate check failed: ${a}`),{fire:!1,newState:a.startsWith("config:")?{lastHash:d}:l,error:a.replace(/^config:\s*/,"")}}}async function j(a,b){let{modelService:d}=await Promise.resolve().then(c.bind(c,12763)),{getCompletionAdapter:e}=await Promise.resolve().then(c.bind(c,16699)),{normalizeMaxTokens:f}=await Promise.resolve().then(c.bind(c,498)),g=await d.getModel(a);if(!g)throw Error(`config: The AI-check model no longer exists (${a})`);let i=await d.resolveAndDecryptApiKey(g.ApiKey);if(!i)throw Error("config: Could not resolve the AI-check model API key");let j=e(g),{completion:k}=await j.createCompletion({model:g,apiKey:i,temperature:0,maxTokens:f(g.maxTokens),messages:[{role:"system",content:h},{role:"user",content:b}]}),l=k.choices?.[0]?.message?.content;return"string"==typeof l?l:""}async function k(a,b){let{runFlow:d}=await Promise.all([c.e(3304),c.e(1604),c.e(1659),c.e(7463)]).then(c.bind(c,67463)),e=await d({flowId:a,prompt:`${b}
8
+ \`\`\``;try{let c="llm-gate"===b.mode?await j(b.modelId,n):await k(b.flowId,n),g=function(a){let b=a.match(/\{[\s\S]*\}/);if(!b)return null;try{let a=JSON.parse(b[0]);if("boolean"!=typeof a?.fire)return null;return{fire:a.fire,reason:"string"==typeof a.reason?a.reason:""}}catch{return null}}(c);if(!g)return f.warn(`Gate returned unparseable output: ${c.slice(0,200)}`),{fire:!1,newState:{lastHash:d,...l},error:"The AI check returned an unreadable answer — did not run the flow"};if(!g.fire)return{fire:!1,newState:{lastHash:d,...l}};return{fire:!0,summary:"flow-gate"===b.mode?"Flow condition met":"AI condition met",context:{result:(0,e.Je)(a),aiReason:g.reason},newState:{lastHash:d,...l}}}catch(b){let a=b instanceof Error?b.message:String(b);return f.warn(`Gate check failed: ${a}`),{fire:!1,newState:a.startsWith("config:")?{lastHash:d}:l,error:a.replace(/^config:\s*/,"")}}}async function j(a,b){let{modelService:d}=await Promise.resolve().then(c.bind(c,12763)),{getCompletionAdapter:e}=await Promise.resolve().then(c.bind(c,96579)),{normalizeMaxTokens:f}=await Promise.resolve().then(c.bind(c,5091)),g=await d.getModel(a);if(!g)throw Error(`config: The AI-check model no longer exists (${a})`);let i=await d.resolveAndDecryptApiKey(g.ApiKey);if(!i)throw Error("config: Could not resolve the AI-check model API key");let j=e(g),{completion:k}=await j.createCompletion({model:g,apiKey:i,temperature:0,maxTokens:f(g.maxTokens),messages:[{role:"system",content:h},{role:"user",content:b}]}),l=k.choices?.[0]?.message?.content;return"string"==typeof l?l:""}async function k(a,b){let{runFlow:d}=await c.e(4551).then(c.bind(c,64551)),e=await d({flowId:a,prompt:`${b}
9
9
 
10
10
  ${g}`,mode:"ephemeral",requireApproval:!1,debug:!1,userTurn:!0});if("completed"!==e.status)throw Error(e.error?.message??`The checker flow ended with status "${e.status}"`);return e.outputText??""}}};
@@ -5,6 +5,6 @@ ${b.condition}
5
5
  Tool result (untrusted data):
6
6
  \`\`\`json
7
7
  ${m}
8
- \`\`\``;try{let c="llm-gate"===b.mode?await j(b.modelId,n):await k(b.flowId,n),g=function(a){let b=a.match(/\{[\s\S]*\}/);if(!b)return null;try{let a=JSON.parse(b[0]);if("boolean"!=typeof a?.fire)return null;return{fire:a.fire,reason:"string"==typeof a.reason?a.reason:""}}catch{return null}}(c);if(!g)return f.warn(`Gate returned unparseable output: ${c.slice(0,200)}`),{fire:!1,newState:{lastHash:d,...l},error:"The AI check returned an unreadable answer — did not run the flow"};if(!g.fire)return{fire:!1,newState:{lastHash:d,...l}};return{fire:!0,summary:"flow-gate"===b.mode?"Flow condition met":"AI condition met",context:{result:(0,e.Je)(a),aiReason:g.reason},newState:{lastHash:d,...l}}}catch(b){let a=b instanceof Error?b.message:String(b);return f.warn(`Gate check failed: ${a}`),{fire:!1,newState:a.startsWith("config:")?{lastHash:d}:l,error:a.replace(/^config:\s*/,"")}}}async function j(a,b){let{modelService:d}=await Promise.all([c.e(3128),c.e(4322),c.e(5067),c.e(6849),c.e(5096),c.e(7538),c.e(1925)]).then(c.bind(c,20433)),{getCompletionAdapter:e}=await Promise.all([c.e(3128),c.e(4322),c.e(5067),c.e(6849),c.e(5096),c.e(7538),c.e(1925)]).then(c.bind(c,62101)),{normalizeMaxTokens:f}=await c.e(4042).then(c.bind(c,54042)),g=await d.getModel(a);if(!g)throw Error(`config: The AI-check model no longer exists (${a})`);let i=await d.resolveAndDecryptApiKey(g.ApiKey);if(!i)throw Error("config: Could not resolve the AI-check model API key");let j=e(g),{completion:k}=await j.createCompletion({model:g,apiKey:i,temperature:0,maxTokens:f(g.maxTokens),messages:[{role:"system",content:h},{role:"user",content:b}]}),l=k.choices?.[0]?.message?.content;return"string"==typeof l?l:""}async function k(a,b){let{runFlow:d}=await Promise.all([c.e(3128),c.e(4322),c.e(5067),c.e(6849),c.e(1373),c.e(5096),c.e(7538),c.e(7821),c.e(346),c.e(724),c.e(2940),c.e(4671),c.e(7214),c.e(4306)]).then(c.bind(c,57214)),e=await d({flowId:a,prompt:`${b}
8
+ \`\`\``;try{let c="llm-gate"===b.mode?await j(b.modelId,n):await k(b.flowId,n),g=function(a){let b=a.match(/\{[\s\S]*\}/);if(!b)return null;try{let a=JSON.parse(b[0]);if("boolean"!=typeof a?.fire)return null;return{fire:a.fire,reason:"string"==typeof a.reason?a.reason:""}}catch{return null}}(c);if(!g)return f.warn(`Gate returned unparseable output: ${c.slice(0,200)}`),{fire:!1,newState:{lastHash:d,...l},error:"The AI check returned an unreadable answer — did not run the flow"};if(!g.fire)return{fire:!1,newState:{lastHash:d,...l}};return{fire:!0,summary:"flow-gate"===b.mode?"Flow condition met":"AI condition met",context:{result:(0,e.Je)(a),aiReason:g.reason},newState:{lastHash:d,...l}}}catch(b){let a=b instanceof Error?b.message:String(b);return f.warn(`Gate check failed: ${a}`),{fire:!1,newState:a.startsWith("config:")?{lastHash:d}:l,error:a.replace(/^config:\s*/,"")}}}async function j(a,b){let{modelService:d}=await Promise.all([c.e(3128),c.e(4322),c.e(5067),c.e(6034),c.e(7821),c.e(5096),c.e(544),c.e(1925)]).then(c.bind(c,20433)),{getCompletionAdapter:e}=await Promise.all([c.e(3128),c.e(4322),c.e(5067),c.e(6034),c.e(7821),c.e(5096),c.e(544),c.e(1925)]).then(c.bind(c,75512)),{normalizeMaxTokens:f}=await c.e(6496).then(c.bind(c,46496)),g=await d.getModel(a);if(!g)throw Error(`config: The AI-check model no longer exists (${a})`);let i=await d.resolveAndDecryptApiKey(g.ApiKey);if(!i)throw Error("config: Could not resolve the AI-check model API key");let j=e(g),{completion:k}=await j.createCompletion({model:g,apiKey:i,temperature:0,maxTokens:f(g.maxTokens),messages:[{role:"system",content:h},{role:"user",content:b}]}),l=k.choices?.[0]?.message?.content;return"string"==typeof l?l:""}async function k(a,b){let{runFlow:d}=await Promise.all([c.e(3128),c.e(4322),c.e(5067),c.e(6034),c.e(7821),c.e(5096),c.e(544),c.e(4671),c.e(6226),c.e(4306)]).then(c.bind(c,16226)),e=await d({flowId:a,prompt:`${b}
9
9
 
10
10
  ${g}`,mode:"ephemeral",requireApproval:!1,debug:!1,userTurn:!0});if("completed"!==e.status)throw Error(e.error?.message??`The checker flow ended with status "${e.status}"`);return e.outputText??""}}};