flujo-ai 3.31.0 → 3.34.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 (707) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +384 -342
  3. package/.next/app-path-routes-manifest.json +23 -19
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +24 -24
  6. package/.next/react-loadable-manifest.json +29 -14
  7. package/.next/server/app/_not-found/page.js +1 -1
  8. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/_not-found.html +1 -1
  10. package/.next/server/app/_not-found.rsc +2 -2
  11. package/.next/server/app/api/approvals/[id]/route.js +1 -1
  12. package/.next/server/app/api/approvals/[id]/route.js.nft.json +1 -1
  13. package/.next/server/app/api/approvals/[id]/route_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/approvals/route.js +2 -2
  15. package/.next/server/app/api/approvals/route.js.nft.json +1 -1
  16. package/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/backup/route.js +1 -1
  18. package/.next/server/app/api/backup/route.js.nft.json +1 -1
  19. package/.next/server/app/api/backup/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/browse/route.js +1 -1
  21. package/.next/server/app/api/browse/route.js.nft.json +1 -1
  22. package/.next/server/app/api/browse/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/bugs/enhance/route.js +3 -3
  24. package/.next/server/app/api/bugs/enhance/route.js.nft.json +1 -1
  25. package/.next/server/app/api/bugs/enhance/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/cwd/route.js +1 -1
  27. package/.next/server/app/api/cwd/route.js.nft.json +1 -1
  28. package/.next/server/app/api/cwd/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/encryption/secure/route.js +1 -1
  30. package/.next/server/app/api/encryption/secure/route.js.nft.json +1 -1
  31. package/.next/server/app/api/encryption/secure/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/env/route.js +2 -2
  33. package/.next/server/app/api/env/route.js.nft.json +1 -1
  34. package/.next/server/app/api/env/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/flow/[id]/route.js +1 -1
  36. package/.next/server/app/api/flow/[id]/route.js.nft.json +1 -1
  37. package/.next/server/app/api/flow/[id]/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/flow/[id]/versions/[versionId]/route.js +1 -1
  39. package/.next/server/app/api/flow/[id]/versions/[versionId]/route.js.nft.json +1 -1
  40. package/.next/server/app/api/flow/[id]/versions/[versionId]/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/flow/[id]/versions/route.js +1 -1
  42. package/.next/server/app/api/flow/[id]/versions/route.js.nft.json +1 -1
  43. package/.next/server/app/api/flow/[id]/versions/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/flow/compile/route.js +1 -1
  45. package/.next/server/app/api/flow/compile/route.js.nft.json +1 -1
  46. package/.next/server/app/api/flow/compile/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/flow/generate/route.js +1 -1
  48. package/.next/server/app/api/flow/generate/route.js.nft.json +1 -1
  49. package/.next/server/app/api/flow/generate/route_client-reference-manifest.js +1 -1
  50. package/.next/server/app/api/flow/generator/route.js +28 -0
  51. package/.next/server/app/api/flow/generator/route.js.nft.json +1 -0
  52. package/.next/server/app/api/flow/generator/route_client-reference-manifest.js +1 -0
  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 +1 -1
  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_client-reference-manifest.js +1 -1
  75. package/.next/server/app/api/local-models/pull/route_client-reference-manifest.js +1 -1
  76. package/.next/server/app/api/local-models/suggest/route_client-reference-manifest.js +1 -1
  77. package/.next/server/app/api/mcp/app-sandbox/route.js +1 -1
  78. package/.next/server/app/api/mcp/app-sandbox/route.js.nft.json +1 -1
  79. package/.next/server/app/api/mcp/app-sandbox/route_client-reference-manifest.js +1 -1
  80. package/.next/server/app/api/mcp/cancel/route.js +2 -2
  81. package/.next/server/app/api/mcp/cancel/route.js.nft.json +1 -1
  82. package/.next/server/app/api/mcp/cancel/route_client-reference-manifest.js +1 -1
  83. package/.next/server/app/api/mcp/oauth-capability/route.js +1 -1
  84. package/.next/server/app/api/mcp/oauth-capability/route.js.nft.json +1 -1
  85. package/.next/server/app/api/mcp/oauth-capability/route_client-reference-manifest.js +1 -1
  86. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js +1 -1
  87. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js.nft.json +1 -1
  88. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route_client-reference-manifest.js +1 -1
  89. package/.next/server/app/api/mcp/servers/[name]/prompts/route.js +1 -1
  90. package/.next/server/app/api/mcp/servers/[name]/prompts/route.js.nft.json +1 -1
  91. package/.next/server/app/api/mcp/servers/[name]/prompts/route_client-reference-manifest.js +1 -1
  92. package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js +1 -1
  93. package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js.nft.json +1 -1
  94. package/.next/server/app/api/mcp/servers/[name]/resources/read/route_client-reference-manifest.js +1 -1
  95. package/.next/server/app/api/mcp/servers/[name]/resources/route.js +1 -1
  96. package/.next/server/app/api/mcp/servers/[name]/resources/route.js.nft.json +1 -1
  97. package/.next/server/app/api/mcp/servers/[name]/resources/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/mcp/servers/[name]/route.js +1 -1
  99. package/.next/server/app/api/mcp/servers/[name]/route.js.nft.json +1 -1
  100. package/.next/server/app/api/mcp/servers/[name]/route_client-reference-manifest.js +1 -1
  101. package/.next/server/app/api/mcp/servers/[name]/status/route.js +1 -1
  102. package/.next/server/app/api/mcp/servers/[name]/status/route.js.nft.json +1 -1
  103. package/.next/server/app/api/mcp/servers/[name]/status/route_client-reference-manifest.js +1 -1
  104. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js +1 -1
  105. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js.nft.json +1 -1
  106. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route_client-reference-manifest.js +1 -1
  107. package/.next/server/app/api/mcp/servers/[name]/tools/route.js +1 -1
  108. package/.next/server/app/api/mcp/servers/[name]/tools/route.js.nft.json +1 -1
  109. package/.next/server/app/api/mcp/servers/[name]/tools/route_client-reference-manifest.js +1 -1
  110. package/.next/server/app/api/mcp/servers/route.js +1 -1
  111. package/.next/server/app/api/mcp/servers/route.js.nft.json +1 -1
  112. package/.next/server/app/api/mcp/servers/route_client-reference-manifest.js +1 -1
  113. package/.next/server/app/api/mcp/test-connection/route.js +1 -1
  114. package/.next/server/app/api/mcp/test-connection/route.js.nft.json +1 -1
  115. package/.next/server/app/api/mcp/test-connection/route_client-reference-manifest.js +1 -1
  116. package/.next/server/app/api/mcp/test-connection/stream/route.js +1 -1
  117. package/.next/server/app/api/mcp/test-connection/stream/route.js.nft.json +1 -1
  118. package/.next/server/app/api/mcp/test-connection/stream/route_client-reference-manifest.js +1 -1
  119. package/.next/server/app/api/mcp-registry/route.js +2 -2
  120. package/.next/server/app/api/mcp-registry/route.js.nft.json +1 -1
  121. package/.next/server/app/api/mcp-registry/route_client-reference-manifest.js +1 -1
  122. package/.next/server/app/api/mcp-registry/spotlight/route.js +1 -1
  123. package/.next/server/app/api/mcp-registry/spotlight/route.js.nft.json +1 -1
  124. package/.next/server/app/api/mcp-registry/spotlight/route_client-reference-manifest.js +1 -1
  125. package/.next/server/app/api/model/[id]/route.js +1 -1
  126. package/.next/server/app/api/model/[id]/route.js.nft.json +1 -1
  127. package/.next/server/app/api/model/[id]/route_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/model/provider/route.js +2 -2
  129. package/.next/server/app/api/model/provider/route.js.nft.json +1 -1
  130. package/.next/server/app/api/model/provider/route_client-reference-manifest.js +1 -1
  131. package/.next/server/app/api/model/route.js +1 -1
  132. package/.next/server/app/api/model/route.js.nft.json +1 -1
  133. package/.next/server/app/api/model/route_client-reference-manifest.js +1 -1
  134. package/.next/server/app/api/model/test/route.js +2 -2
  135. package/.next/server/app/api/model/test/route.js.nft.json +1 -1
  136. package/.next/server/app/api/model/test/route_client-reference-manifest.js +1 -1
  137. package/.next/server/app/api/oauth/callback/route.js +2 -2
  138. package/.next/server/app/api/oauth/callback/route.js.nft.json +1 -1
  139. package/.next/server/app/api/oauth/callback/route_client-reference-manifest.js +1 -1
  140. package/.next/server/app/api/oauth/initiate/route.js +2 -2
  141. package/.next/server/app/api/oauth/initiate/route.js.nft.json +1 -1
  142. package/.next/server/app/api/oauth/initiate/route_client-reference-manifest.js +1 -1
  143. package/.next/server/app/api/oauth/reset/route.js +2 -2
  144. package/.next/server/app/api/oauth/reset/route.js.nft.json +1 -1
  145. package/.next/server/app/api/oauth/reset/route_client-reference-manifest.js +1 -1
  146. package/.next/server/app/api/packages/build/route.js +1 -1
  147. package/.next/server/app/api/packages/build/route.js.nft.json +1 -1
  148. package/.next/server/app/api/packages/build/route_client-reference-manifest.js +1 -1
  149. package/.next/server/app/api/packages/derive-secrets/route.js +1 -1
  150. package/.next/server/app/api/packages/derive-secrets/route.js.nft.json +1 -1
  151. package/.next/server/app/api/packages/derive-secrets/route_client-reference-manifest.js +1 -1
  152. package/.next/server/app/api/packages/install/route.js +1 -1
  153. package/.next/server/app/api/packages/install/route.js.nft.json +1 -1
  154. package/.next/server/app/api/packages/install/route_client-reference-manifest.js +1 -1
  155. package/.next/server/app/api/packages/install/status/route.js +1 -1
  156. package/.next/server/app/api/packages/install/status/route.js.nft.json +1 -1
  157. package/.next/server/app/api/packages/install/status/route_client-reference-manifest.js +1 -1
  158. package/.next/server/app/api/packages/installed/route.js +1 -1
  159. package/.next/server/app/api/packages/installed/route.js.nft.json +1 -1
  160. package/.next/server/app/api/packages/installed/route_client-reference-manifest.js +1 -1
  161. package/.next/server/app/api/packages/resolve/route.js +1 -1
  162. package/.next/server/app/api/packages/resolve/route.js.nft.json +1 -1
  163. package/.next/server/app/api/packages/resolve/route_client-reference-manifest.js +1 -1
  164. package/.next/server/app/api/packages/scan-targets/route.js +1 -1
  165. package/.next/server/app/api/packages/scan-targets/route.js.nft.json +1 -1
  166. package/.next/server/app/api/packages/scan-targets/route_client-reference-manifest.js +1 -1
  167. package/.next/server/app/api/packages/search/route.js +1 -1
  168. package/.next/server/app/api/packages/search/route.js.nft.json +1 -1
  169. package/.next/server/app/api/packages/search/route_client-reference-manifest.js +1 -1
  170. package/.next/server/app/api/packages/uninstall/route.js +1 -1
  171. package/.next/server/app/api/packages/uninstall/route.js.nft.json +1 -1
  172. package/.next/server/app/api/packages/uninstall/route_client-reference-manifest.js +1 -1
  173. package/.next/server/app/api/planned-executions/[id]/route.js +2 -2
  174. package/.next/server/app/api/planned-executions/[id]/route.js.nft.json +1 -1
  175. package/.next/server/app/api/planned-executions/[id]/route_client-reference-manifest.js +1 -1
  176. package/.next/server/app/api/planned-executions/[id]/run/route.js +2 -2
  177. package/.next/server/app/api/planned-executions/[id]/run/route.js.nft.json +1 -1
  178. package/.next/server/app/api/planned-executions/[id]/run/route_client-reference-manifest.js +1 -1
  179. package/.next/server/app/api/planned-executions/[id]/runs/route.js +2 -2
  180. package/.next/server/app/api/planned-executions/[id]/runs/route.js.nft.json +1 -1
  181. package/.next/server/app/api/planned-executions/[id]/runs/route_client-reference-manifest.js +1 -1
  182. package/.next/server/app/api/planned-executions/preview-schedule/route.js +1 -1
  183. package/.next/server/app/api/planned-executions/preview-schedule/route.js.nft.json +1 -1
  184. package/.next/server/app/api/planned-executions/preview-schedule/route_client-reference-manifest.js +1 -1
  185. package/.next/server/app/api/planned-executions/reconcile/route.js +1 -1
  186. package/.next/server/app/api/planned-executions/reconcile/route.js.nft.json +1 -1
  187. package/.next/server/app/api/planned-executions/reconcile/route_client-reference-manifest.js +1 -1
  188. package/.next/server/app/api/planned-executions/route.js +1 -1
  189. package/.next/server/app/api/planned-executions/route.js.nft.json +1 -1
  190. package/.next/server/app/api/planned-executions/route_client-reference-manifest.js +1 -1
  191. package/.next/server/app/api/registry/auth/resend/route.js +1 -1
  192. package/.next/server/app/api/registry/auth/resend/route.js.nft.json +1 -1
  193. package/.next/server/app/api/registry/auth/resend/route_client-reference-manifest.js +1 -1
  194. package/.next/server/app/api/registry/auth/reset/route.js +1 -1
  195. package/.next/server/app/api/registry/auth/reset/route.js.nft.json +1 -1
  196. package/.next/server/app/api/registry/auth/reset/route_client-reference-manifest.js +1 -1
  197. package/.next/server/app/api/registry/auth/route.js +1 -1
  198. package/.next/server/app/api/registry/auth/route.js.nft.json +1 -1
  199. package/.next/server/app/api/registry/auth/route_client-reference-manifest.js +1 -1
  200. package/.next/server/app/api/registry/feedback/route.js +1 -0
  201. package/.next/server/app/api/registry/feedback/route.js.nft.json +1 -0
  202. package/.next/server/app/api/registry/feedback/route_client-reference-manifest.js +1 -0
  203. package/.next/server/app/api/registry/oauth/callback/route.js +1 -1
  204. package/.next/server/app/api/registry/oauth/callback/route.js.nft.json +1 -1
  205. package/.next/server/app/api/registry/oauth/callback/route_client-reference-manifest.js +1 -1
  206. package/.next/server/app/api/registry/oauth/initiate/route.js +1 -1
  207. package/.next/server/app/api/registry/oauth/initiate/route.js.nft.json +1 -1
  208. package/.next/server/app/api/registry/oauth/initiate/route_client-reference-manifest.js +1 -1
  209. package/.next/server/app/api/registry/packages/route.js +1 -0
  210. package/.next/server/app/api/registry/packages/route.js.nft.json +1 -0
  211. package/.next/server/app/api/registry/packages/route_client-reference-manifest.js +1 -0
  212. package/.next/server/app/api/registry/publish/route.js +1 -1
  213. package/.next/server/app/api/registry/publish/route.js.nft.json +1 -1
  214. package/.next/server/app/api/registry/publish/route_client-reference-manifest.js +1 -1
  215. package/.next/server/app/api/registry/settings/route.js +1 -1
  216. package/.next/server/app/api/registry/settings/route.js.nft.json +1 -1
  217. package/.next/server/app/api/registry/settings/route_client-reference-manifest.js +1 -1
  218. package/.next/server/app/api/restore/route.js +1 -1
  219. package/.next/server/app/api/restore/route.js.nft.json +1 -1
  220. package/.next/server/app/api/restore/route_client-reference-manifest.js +1 -1
  221. package/.next/server/app/api/runs/active/route.js +2 -2
  222. package/.next/server/app/api/runs/active/route.js.nft.json +1 -1
  223. package/.next/server/app/api/runs/active/route_client-reference-manifest.js +1 -1
  224. package/.next/server/app/api/storage/route.js +1 -1
  225. package/.next/server/app/api/storage/route.js.nft.json +1 -1
  226. package/.next/server/app/api/storage/route_client-reference-manifest.js +1 -1
  227. package/.next/server/app/api/telemetry/daily-active/route.js +1 -0
  228. package/.next/server/app/api/telemetry/daily-active/route.js.nft.json +1 -0
  229. package/.next/server/app/api/telemetry/daily-active/route_client-reference-manifest.js +1 -0
  230. package/.next/server/app/api/update/route.js +1 -1
  231. package/.next/server/app/api/update/route.js.nft.json +1 -1
  232. package/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  233. package/.next/server/app/api/waves/route.js +1 -1
  234. package/.next/server/app/api/waves/route.js.nft.json +1 -1
  235. package/.next/server/app/api/waves/route_client-reference-manifest.js +1 -1
  236. package/.next/server/app/api/webhooks/[id]/route.js +1 -1
  237. package/.next/server/app/api/webhooks/[id]/route.js.nft.json +1 -1
  238. package/.next/server/app/api/webhooks/[id]/route_client-reference-manifest.js +1 -1
  239. package/.next/server/app/chat/page.js +58 -10
  240. package/.next/server/app/chat/page.js.nft.json +1 -1
  241. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  242. package/.next/server/app/chat.html +1 -1
  243. package/.next/server/app/chat.rsc +3 -3
  244. package/.next/server/app/docs/page.js +4 -5
  245. package/.next/server/app/docs/page.js.nft.json +1 -1
  246. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  247. package/.next/server/app/docs.html +1 -1
  248. package/.next/server/app/docs.rsc +3 -3
  249. package/.next/server/app/executions/page.js +3 -2
  250. package/.next/server/app/executions/page.js.nft.json +1 -1
  251. package/.next/server/app/executions/page_client-reference-manifest.js +1 -1
  252. package/.next/server/app/executions.html +1 -1
  253. package/.next/server/app/executions.rsc +3 -3
  254. package/.next/server/app/flows/page.js +3 -3
  255. package/.next/server/app/flows/page.js.nft.json +1 -1
  256. package/.next/server/app/flows/page_client-reference-manifest.js +1 -1
  257. package/.next/server/app/flows.html +1 -1
  258. package/.next/server/app/flows.rsc +3 -3
  259. package/.next/server/app/index.html +1 -1
  260. package/.next/server/app/index.rsc +3 -3
  261. package/.next/server/app/mcp/page.js +56 -5
  262. package/.next/server/app/mcp/page.js.nft.json +1 -1
  263. package/.next/server/app/mcp/page_client-reference-manifest.js +1 -1
  264. package/.next/server/app/mcp-flows/route.js +1 -1
  265. package/.next/server/app/mcp-flows/route.js.nft.json +1 -1
  266. package/.next/server/app/mcp-flows/route_client-reference-manifest.js +1 -1
  267. package/.next/server/app/mcp-proxy/[server]/route.js +1 -1
  268. package/.next/server/app/mcp-proxy/[server]/route.js.nft.json +1 -1
  269. package/.next/server/app/mcp-proxy/[server]/route_client-reference-manifest.js +1 -1
  270. package/.next/server/app/mcp.html +1 -1
  271. package/.next/server/app/mcp.rsc +3 -3
  272. package/.next/server/app/models/page.js +2 -2
  273. package/.next/server/app/models/page.js.nft.json +1 -1
  274. package/.next/server/app/models/page_client-reference-manifest.js +1 -1
  275. package/.next/server/app/packages/page.js +2 -2
  276. package/.next/server/app/packages/page.js.nft.json +1 -1
  277. package/.next/server/app/packages/page_client-reference-manifest.js +1 -1
  278. package/.next/server/app/packages.html +1 -1
  279. package/.next/server/app/packages.rsc +3 -3
  280. package/.next/server/app/page.js +5 -3
  281. package/.next/server/app/page.js.nft.json +1 -1
  282. package/.next/server/app/page_client-reference-manifest.js +1 -1
  283. package/.next/server/app/settings/page.js +2 -2
  284. package/.next/server/app/settings/page.js.nft.json +1 -1
  285. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  286. package/.next/server/app/settings.html +1 -1
  287. package/.next/server/app/settings.rsc +3 -3
  288. package/.next/server/app/v1/chat/completions/route.js +1 -1
  289. package/.next/server/app/v1/chat/completions/route.js.nft.json +1 -1
  290. package/.next/server/app/v1/chat/completions/route_client-reference-manifest.js +1 -1
  291. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js +2 -2
  292. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js.nft.json +1 -1
  293. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route_client-reference-manifest.js +1 -1
  294. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js +2 -2
  295. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js.nft.json +1 -1
  296. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route_client-reference-manifest.js +1 -1
  297. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js +1 -1
  298. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js.nft.json +1 -1
  299. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route_client-reference-manifest.js +1 -1
  300. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js +1 -1
  301. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js.nft.json +1 -1
  302. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route_client-reference-manifest.js +1 -1
  303. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js +2 -2
  304. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js.nft.json +1 -1
  305. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route_client-reference-manifest.js +1 -1
  306. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js +2 -2
  307. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js.nft.json +1 -1
  308. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route_client-reference-manifest.js +1 -1
  309. package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route.js +2 -2
  310. package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route.js.nft.json +1 -1
  311. package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route_client-reference-manifest.js +1 -1
  312. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route.js +1 -1
  313. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route.js.nft.json +1 -1
  314. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route_client-reference-manifest.js +1 -1
  315. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js +1 -1
  316. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js.nft.json +1 -1
  317. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route_client-reference-manifest.js +1 -1
  318. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js +2 -2
  319. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js.nft.json +1 -1
  320. package/.next/server/app/v1/chat/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
  321. package/.next/server/app/v1/chat/conversations/route.js +2 -2
  322. package/.next/server/app/v1/chat/conversations/route.js.nft.json +1 -1
  323. package/.next/server/app/v1/chat/conversations/route_client-reference-manifest.js +1 -1
  324. package/.next/server/app/v1/chat/events/route.js +3 -3
  325. package/.next/server/app/v1/chat/events/route.js.nft.json +1 -1
  326. package/.next/server/app/v1/chat/events/route_client-reference-manifest.js +1 -1
  327. package/.next/server/app/v1/models/route.js +2 -2
  328. package/.next/server/app/v1/models/route.js.nft.json +1 -1
  329. package/.next/server/app/v1/models/route_client-reference-manifest.js +1 -1
  330. package/.next/server/app/waves/page.js +3 -3
  331. package/.next/server/app/waves/page.js.nft.json +1 -1
  332. package/.next/server/app/waves/page_client-reference-manifest.js +1 -1
  333. package/.next/server/app/waves.html +1 -1
  334. package/.next/server/app/waves.rsc +3 -3
  335. package/.next/server/app-paths-manifest.json +23 -19
  336. package/.next/server/chunks/1114.js +1 -1
  337. package/.next/server/chunks/1226.js +1 -1
  338. package/.next/server/chunks/1227.js +1 -0
  339. package/.next/server/chunks/1314.js +1 -1
  340. package/.next/server/chunks/1439.js +1 -0
  341. package/.next/server/chunks/1578.js +1 -1
  342. package/.next/server/chunks/1634.js +1 -1
  343. package/.next/server/chunks/166.js +5 -5
  344. package/.next/server/chunks/1664.js +2 -0
  345. package/.next/server/chunks/180.js +12 -0
  346. package/.next/server/chunks/227.js +1 -5
  347. package/.next/server/chunks/2273.js +2 -2
  348. package/.next/server/chunks/2372.js +2 -0
  349. package/.next/server/chunks/2859.js +1 -1
  350. package/.next/server/chunks/3128.js +4 -4
  351. package/.next/server/chunks/3653.js +2 -0
  352. package/.next/server/chunks/3717.js +1 -0
  353. package/.next/server/chunks/3855.js +1 -0
  354. package/.next/server/chunks/4013.js +1 -0
  355. package/.next/server/chunks/4308.js +4 -0
  356. package/.next/server/chunks/{4685.js → 4466.js} +1 -1
  357. package/.next/server/chunks/4551.js +1 -1
  358. package/.next/server/chunks/4663.js +1 -0
  359. package/.next/server/chunks/4771.js +1 -1
  360. package/.next/server/chunks/4822.js +1 -0
  361. package/.next/server/chunks/5067.js +1 -1
  362. package/.next/server/chunks/519.js +2 -0
  363. package/.next/server/chunks/5285.js +1 -0
  364. package/.next/server/chunks/5309.js +78 -0
  365. package/.next/server/chunks/544.js +28 -27
  366. package/.next/server/chunks/5463.js +1 -1
  367. package/.next/server/chunks/5544.js +5 -5
  368. package/.next/server/chunks/5703.js +2 -0
  369. package/.next/server/chunks/6034.js +1 -1
  370. package/.next/server/chunks/{5708.js → 6041.js} +3 -4
  371. package/.next/server/chunks/6226.js +1 -1
  372. package/.next/server/chunks/6747.js +435 -0
  373. package/.next/server/chunks/6967.js +82 -0
  374. package/.next/server/chunks/{5548.js → 7058.js} +2 -2
  375. package/.next/server/chunks/{4566.js → 7069.js} +3 -3
  376. package/.next/server/chunks/{2388.js → 7104.js} +1 -1
  377. package/.next/server/chunks/7519.js +1 -0
  378. package/.next/server/chunks/7628.js +1 -0
  379. package/.next/server/chunks/7630.js +11 -0
  380. package/.next/server/chunks/{3030.js → 7674.js} +1 -1
  381. package/.next/server/chunks/{2866.js → 7891.js} +2 -2
  382. package/.next/server/chunks/793.js +3 -3
  383. package/.next/server/chunks/7965.js +39 -0
  384. package/.next/server/chunks/{6404.js → 7993.js} +2 -2
  385. package/.next/server/chunks/8284.js +42 -0
  386. package/.next/server/chunks/8645.js +1 -1
  387. package/.next/server/chunks/87.js +1 -0
  388. package/.next/server/chunks/8739.js +1 -2
  389. package/.next/server/chunks/{3912.js → 9085.js} +2 -2
  390. package/.next/server/chunks/9235.js +29 -0
  391. package/.next/server/chunks/9724.js +3 -3
  392. package/.next/server/chunks/9983.js +1 -1
  393. package/.next/server/functions-config-manifest.json +1 -1
  394. package/.next/server/instrumentation.js +1 -1
  395. package/.next/server/instrumentation.js.nft.json +1 -1
  396. package/.next/server/middleware-build-manifest.js +1 -1
  397. package/.next/server/middleware-manifest.json +5 -5
  398. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  399. package/.next/server/pages/404.html +1 -1
  400. package/.next/server/pages/500.html +1 -1
  401. package/.next/server/server-reference-manifest.js +1 -1
  402. package/.next/server/server-reference-manifest.json +1 -1
  403. package/.next/static/Zz_Vh59XdtLIPcf-PxCpo/_buildManifest.js +1 -0
  404. package/.next/static/chunks/1675-773454288de4309d.js +1 -0
  405. package/.next/static/chunks/2005.4eea65c00d9a29cd.js +1 -0
  406. package/.next/static/chunks/2318-13ef0d3048e97834.js +1 -0
  407. package/.next/static/chunks/3429-34fb1a84aed96703.js +1 -0
  408. package/.next/static/chunks/361.bb75b03b740930cd.js +1 -0
  409. package/.next/static/chunks/3772-20197853c04a6993.js +1 -0
  410. package/.next/static/chunks/422-61b173ba64cf0c94.js +1 -0
  411. package/.next/static/chunks/{3189-fa8ec6d719d5e72b.js → 4386-e9621d3c94969a68.js} +1 -1
  412. package/.next/static/chunks/4555-c9070f8c79bccfad.js +39 -0
  413. package/.next/static/chunks/4919-6c8a48e3cc642349.js +1 -0
  414. package/.next/static/chunks/4929-150b03595474c9d8.js +1 -0
  415. package/.next/static/chunks/5733-1419095a28c1ddc3.js +1 -0
  416. package/.next/static/chunks/639-90ed75d402dc872b.js +1 -0
  417. package/.next/static/chunks/{3452-a639f121f2953f50.js → 6428-951188daa6f74b86.js} +3 -3
  418. package/.next/static/chunks/6430-8c6dac4a758119f2.js +1 -0
  419. package/.next/static/chunks/6539-118a0084e0bfae34.js +1 -0
  420. package/.next/static/chunks/6733-c9029143901e62e9.js +1 -0
  421. package/.next/static/chunks/7264-91d1fa99abcd91ad.js +1 -0
  422. package/.next/static/chunks/7328-c8a51bb8c7470d77.js +1 -0
  423. package/.next/static/chunks/7391-5a0abd837ba241f5.js +1 -0
  424. package/.next/static/chunks/7561-2b366ddcbc3cc0ec.js +1 -0
  425. package/.next/static/chunks/8124-4a80e3201b8e51b0.js +1 -0
  426. package/.next/static/chunks/{2969.eb9ff8cd2a5034b0.js → 8345.bc5534ec13abc9ee.js} +1 -1
  427. package/.next/static/chunks/8404-5aa8ea49197b98b8.js +1 -0
  428. package/.next/static/chunks/{8405.73e8be2c8e5b55c5.js → 8405.a425f94b6b13d2be.js} +1 -1
  429. package/.next/static/chunks/8551-a28272acfda62ac9.js +1 -0
  430. package/.next/static/chunks/8650-5294c6ed1173b014.js +1 -0
  431. package/.next/static/chunks/{9164-840f056a0e11d979.js → 9164-de1d167d87614a6d.js} +1 -1
  432. package/.next/static/chunks/9203-786f457ecf60b49c.js +1 -0
  433. package/.next/static/chunks/9345-11d6e48d892b1862.js +8 -0
  434. package/.next/static/chunks/9562-f8371be653010627.js +1 -0
  435. package/.next/static/chunks/981-dd289e60d81da0d1.js +1 -0
  436. package/.next/static/chunks/9951-566fc6b05c12209e.js +1 -0
  437. package/.next/static/chunks/app/api/approvals/[id]/route-9ea2990be4b67136.js +1 -0
  438. package/.next/static/chunks/app/api/approvals/route-9ea2990be4b67136.js +1 -0
  439. package/.next/static/chunks/app/api/backup/route-9ea2990be4b67136.js +1 -0
  440. package/.next/static/chunks/app/api/browse/route-9ea2990be4b67136.js +1 -0
  441. package/.next/static/chunks/app/api/bugs/enhance/route-9ea2990be4b67136.js +1 -0
  442. package/.next/static/chunks/app/api/cwd/route-9ea2990be4b67136.js +1 -0
  443. package/.next/static/chunks/app/api/encryption/secure/route-9ea2990be4b67136.js +1 -0
  444. package/.next/static/chunks/app/api/env/route-9ea2990be4b67136.js +1 -0
  445. package/.next/static/chunks/app/api/flow/[id]/route-9ea2990be4b67136.js +1 -0
  446. package/.next/static/chunks/app/api/flow/[id]/versions/[versionId]/route-9ea2990be4b67136.js +1 -0
  447. package/.next/static/chunks/app/api/flow/[id]/versions/route-9ea2990be4b67136.js +1 -0
  448. package/.next/static/chunks/app/api/flow/compile/route-9ea2990be4b67136.js +1 -0
  449. package/.next/static/chunks/app/api/flow/generate/route-9ea2990be4b67136.js +1 -0
  450. package/.next/static/chunks/app/api/flow/generator/route-9ea2990be4b67136.js +1 -0
  451. package/.next/static/chunks/app/api/flow/improve/route-9ea2990be4b67136.js +1 -0
  452. package/.next/static/chunks/app/api/flow/prompt-renderer/route-9ea2990be4b67136.js +1 -0
  453. package/.next/static/chunks/app/api/flow/quick-chat/route-9ea2990be4b67136.js +1 -0
  454. package/.next/static/chunks/app/api/flow/repair/route-9ea2990be4b67136.js +1 -0
  455. package/.next/static/chunks/app/api/flow/route-9ea2990be4b67136.js +1 -0
  456. package/.next/static/chunks/app/api/git/route-9ea2990be4b67136.js +1 -0
  457. package/.next/static/chunks/app/api/init/route-9ea2990be4b67136.js +1 -0
  458. package/.next/static/chunks/app/api/local-models/capability/route-9ea2990be4b67136.js +1 -0
  459. package/.next/static/chunks/app/api/local-models/pull/route-9ea2990be4b67136.js +1 -0
  460. package/.next/static/chunks/app/api/local-models/suggest/route-9ea2990be4b67136.js +1 -0
  461. package/.next/static/chunks/app/api/mcp/app-sandbox/route-9ea2990be4b67136.js +1 -0
  462. package/.next/static/chunks/app/api/mcp/cancel/route-9ea2990be4b67136.js +1 -0
  463. package/.next/static/chunks/app/api/mcp/oauth-capability/route-9ea2990be4b67136.js +1 -0
  464. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-9ea2990be4b67136.js +1 -0
  465. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-9ea2990be4b67136.js +1 -0
  466. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-9ea2990be4b67136.js +1 -0
  467. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-9ea2990be4b67136.js +1 -0
  468. package/.next/static/chunks/app/api/mcp/servers/[name]/route-9ea2990be4b67136.js +1 -0
  469. package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-9ea2990be4b67136.js +1 -0
  470. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-9ea2990be4b67136.js +1 -0
  471. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-9ea2990be4b67136.js +1 -0
  472. package/.next/static/chunks/app/api/mcp/servers/route-9ea2990be4b67136.js +1 -0
  473. package/.next/static/chunks/app/api/mcp/test-connection/route-9ea2990be4b67136.js +1 -0
  474. package/.next/static/chunks/app/api/mcp/test-connection/stream/route-9ea2990be4b67136.js +1 -0
  475. package/.next/static/chunks/app/api/mcp-registry/route-9ea2990be4b67136.js +1 -0
  476. package/.next/static/chunks/app/api/mcp-registry/spotlight/route-9ea2990be4b67136.js +1 -0
  477. package/.next/static/chunks/app/api/model/[id]/route-9ea2990be4b67136.js +1 -0
  478. package/.next/static/chunks/app/api/model/provider/route-9ea2990be4b67136.js +1 -0
  479. package/.next/static/chunks/app/api/model/route-9ea2990be4b67136.js +1 -0
  480. package/.next/static/chunks/app/api/model/test/route-9ea2990be4b67136.js +1 -0
  481. package/.next/static/chunks/app/api/oauth/callback/route-9ea2990be4b67136.js +1 -0
  482. package/.next/static/chunks/app/api/oauth/initiate/route-9ea2990be4b67136.js +1 -0
  483. package/.next/static/chunks/app/api/oauth/reset/route-9ea2990be4b67136.js +1 -0
  484. package/.next/static/chunks/app/api/packages/build/route-9ea2990be4b67136.js +1 -0
  485. package/.next/static/chunks/app/api/packages/derive-secrets/route-9ea2990be4b67136.js +1 -0
  486. package/.next/static/chunks/app/api/packages/install/route-9ea2990be4b67136.js +1 -0
  487. package/.next/static/chunks/app/api/packages/install/status/route-9ea2990be4b67136.js +1 -0
  488. package/.next/static/chunks/app/api/packages/installed/route-9ea2990be4b67136.js +1 -0
  489. package/.next/static/chunks/app/api/packages/resolve/route-9ea2990be4b67136.js +1 -0
  490. package/.next/static/chunks/app/api/packages/scan-targets/route-9ea2990be4b67136.js +1 -0
  491. package/.next/static/chunks/app/api/packages/search/route-9ea2990be4b67136.js +1 -0
  492. package/.next/static/chunks/app/api/packages/uninstall/route-9ea2990be4b67136.js +1 -0
  493. package/.next/static/chunks/app/api/planned-executions/[id]/route-9ea2990be4b67136.js +1 -0
  494. package/.next/static/chunks/app/api/planned-executions/[id]/run/route-9ea2990be4b67136.js +1 -0
  495. package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-9ea2990be4b67136.js +1 -0
  496. package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-9ea2990be4b67136.js +1 -0
  497. package/.next/static/chunks/app/api/planned-executions/reconcile/route-9ea2990be4b67136.js +1 -0
  498. package/.next/static/chunks/app/api/planned-executions/route-9ea2990be4b67136.js +1 -0
  499. package/.next/static/chunks/app/api/registry/auth/resend/route-9ea2990be4b67136.js +1 -0
  500. package/.next/static/chunks/app/api/registry/auth/reset/route-9ea2990be4b67136.js +1 -0
  501. package/.next/static/chunks/app/api/registry/auth/route-9ea2990be4b67136.js +1 -0
  502. package/.next/static/chunks/app/api/registry/feedback/route-9ea2990be4b67136.js +1 -0
  503. package/.next/static/chunks/app/api/registry/oauth/callback/route-9ea2990be4b67136.js +1 -0
  504. package/.next/static/chunks/app/api/registry/oauth/initiate/route-9ea2990be4b67136.js +1 -0
  505. package/.next/static/chunks/app/api/registry/packages/route-9ea2990be4b67136.js +1 -0
  506. package/.next/static/chunks/app/api/registry/publish/route-9ea2990be4b67136.js +1 -0
  507. package/.next/static/chunks/app/api/registry/settings/route-9ea2990be4b67136.js +1 -0
  508. package/.next/static/chunks/app/api/restore/route-9ea2990be4b67136.js +1 -0
  509. package/.next/static/chunks/app/api/runs/active/route-9ea2990be4b67136.js +1 -0
  510. package/.next/static/chunks/app/api/storage/route-9ea2990be4b67136.js +1 -0
  511. package/.next/static/chunks/app/api/telemetry/daily-active/route-9ea2990be4b67136.js +1 -0
  512. package/.next/static/chunks/app/api/update/route-9ea2990be4b67136.js +1 -0
  513. package/.next/static/chunks/app/api/waves/route-9ea2990be4b67136.js +1 -0
  514. package/.next/static/chunks/app/api/webhooks/[id]/route-9ea2990be4b67136.js +1 -0
  515. package/.next/static/chunks/app/chat/page-bc7807593b8b7394.js +1 -0
  516. package/.next/static/chunks/app/docs/page-3b9ce48854b2147d.js +1 -0
  517. package/.next/static/chunks/app/executions/page-8296fd69c439ccee.js +1 -0
  518. package/.next/static/chunks/app/flows/page-87fb466e491fc068.js +1 -0
  519. package/.next/static/chunks/app/layout-abed1f211e03152f.js +1 -0
  520. package/.next/static/chunks/app/mcp/page-1648e6fde0c41461.js +1 -0
  521. package/.next/static/chunks/app/mcp-flows/route-9ea2990be4b67136.js +1 -0
  522. package/.next/static/chunks/app/mcp-proxy/[server]/route-9ea2990be4b67136.js +1 -0
  523. package/.next/static/chunks/app/models/page-a5e2437356b06db8.js +1 -0
  524. package/.next/static/chunks/app/packages/page-fba5696f33d9cdfb.js +1 -0
  525. package/.next/static/chunks/app/page-2f9da78a4891731a.js +1 -0
  526. package/.next/static/chunks/app/settings/page-2fc3a70bfd25c48b.js +1 -0
  527. package/.next/static/chunks/app/v1/chat/completions/route-9ea2990be4b67136.js +1 -0
  528. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-9ea2990be4b67136.js +1 -0
  529. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-9ea2990be4b67136.js +1 -0
  530. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-9ea2990be4b67136.js +1 -0
  531. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-9ea2990be4b67136.js +1 -0
  532. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-9ea2990be4b67136.js +1 -0
  533. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-9ea2990be4b67136.js +1 -0
  534. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/inject/route-9ea2990be4b67136.js +1 -0
  535. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-9ea2990be4b67136.js +1 -0
  536. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-9ea2990be4b67136.js +1 -0
  537. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-9ea2990be4b67136.js +1 -0
  538. package/.next/static/chunks/app/v1/chat/conversations/route-9ea2990be4b67136.js +1 -0
  539. package/.next/static/chunks/app/v1/chat/events/route-9ea2990be4b67136.js +1 -0
  540. package/.next/static/chunks/app/v1/models/route-9ea2990be4b67136.js +1 -0
  541. package/.next/static/chunks/app/waves/{page-3cf4b47b12662196.js → page-dc99a16141dd902b.js} +1 -1
  542. package/.next/static/chunks/webpack-d5d737ff6a86674f.js +1 -0
  543. package/.next/trace +10 -10
  544. package/.next/types/app/api/flow/generator/route.ts +347 -0
  545. package/.next/types/app/api/registry/feedback/route.ts +347 -0
  546. package/.next/types/app/api/registry/packages/route.ts +347 -0
  547. package/.next/types/app/api/telemetry/daily-active/route.ts +347 -0
  548. package/.next/types/routes.d.ts +5 -1
  549. package/.next/types/validator.ts +36 -0
  550. package/README.md +58 -18
  551. package/next.config.mjs +2 -2
  552. package/package.json +3 -2
  553. package/.next/server/chunks/2180.js +0 -1
  554. package/.next/server/chunks/237.js +0 -1
  555. package/.next/server/chunks/3392.js +0 -82
  556. package/.next/server/chunks/3570.js +0 -372
  557. package/.next/server/chunks/4366.js +0 -2
  558. package/.next/server/chunks/4961.js +0 -2
  559. package/.next/server/chunks/5040.js +0 -53
  560. package/.next/server/chunks/510.js +0 -1
  561. package/.next/server/chunks/5150.js +0 -1
  562. package/.next/server/chunks/5561.js +0 -1
  563. package/.next/server/chunks/5705.js +0 -1
  564. package/.next/server/chunks/5829.js +0 -1
  565. package/.next/server/chunks/694.js +0 -3
  566. package/.next/server/chunks/7579.js +0 -83
  567. package/.next/server/chunks/7724.js +0 -1
  568. package/.next/server/chunks/8034.js +0 -1
  569. package/.next/server/chunks/8037.js +0 -1
  570. package/.next/server/chunks/8192.js +0 -12
  571. package/.next/server/chunks/826.js +0 -2
  572. package/.next/server/chunks/8366.js +0 -90
  573. package/.next/server/chunks/848.js +0 -39
  574. package/.next/server/chunks/8615.js +0 -1
  575. package/.next/server/chunks/8851.js +0 -1
  576. package/.next/server/chunks/9313.js +0 -1
  577. package/.next/server/chunks/9537.js +0 -39
  578. package/.next/server/chunks/9576.js +0 -2
  579. package/.next/server/chunks/9632.js +0 -1
  580. package/.next/server/chunks/9671.js +0 -1
  581. package/.next/server/chunks/9857.js +0 -1
  582. package/.next/static/chunks/1496-d478bce7d7c85080.js +0 -1
  583. package/.next/static/chunks/1572-b663a83bba28a0a1.js +0 -8
  584. package/.next/static/chunks/1641-e5ff8f112da0a335.js +0 -1
  585. package/.next/static/chunks/1988-bd73f26184e930c1.js +0 -1
  586. package/.next/static/chunks/2266-d812473724cc6643.js +0 -1
  587. package/.next/static/chunks/3089.a0856f8093b90939.js +0 -1
  588. package/.next/static/chunks/3560-5bdceef09b50e1c3.js +0 -1
  589. package/.next/static/chunks/3672-cd86ace43288da79.js +0 -1
  590. package/.next/static/chunks/3711-0050bb4d345c2c9c.js +0 -1
  591. package/.next/static/chunks/4147-20897d83b3cd3978.js +0 -39
  592. package/.next/static/chunks/435-17c79f3b9f8dd38d.js +0 -1
  593. package/.next/static/chunks/469-1f043fe082d9f475.js +0 -1
  594. package/.next/static/chunks/4740-62814d07b2b7f760.js +0 -1
  595. package/.next/static/chunks/5441-cb0c31de8bce65c3.js +0 -1
  596. package/.next/static/chunks/7111-44538f8a64241b74.js +0 -1
  597. package/.next/static/chunks/8041-05830e887c133085.js +0 -1
  598. package/.next/static/chunks/812-dfe7ba07ddb7a565.js +0 -1
  599. package/.next/static/chunks/8401-0f39d91810180a88.js +0 -1
  600. package/.next/static/chunks/8404-14ef0345dc401ac5.js +0 -1
  601. package/.next/static/chunks/8678-c6c6be2672f337f6.js +0 -1
  602. package/.next/static/chunks/8834-faf121e257b517d5.js +0 -1
  603. package/.next/static/chunks/8855-f802599c4af81cca.js +0 -1
  604. package/.next/static/chunks/9562-5494feecd8c6f7a3.js +0 -1
  605. package/.next/static/chunks/app/api/approvals/[id]/route-1a4c9e7a416ccbcf.js +0 -1
  606. package/.next/static/chunks/app/api/approvals/route-1a4c9e7a416ccbcf.js +0 -1
  607. package/.next/static/chunks/app/api/backup/route-1a4c9e7a416ccbcf.js +0 -1
  608. package/.next/static/chunks/app/api/browse/route-1a4c9e7a416ccbcf.js +0 -1
  609. package/.next/static/chunks/app/api/bugs/enhance/route-1a4c9e7a416ccbcf.js +0 -1
  610. package/.next/static/chunks/app/api/cwd/route-1a4c9e7a416ccbcf.js +0 -1
  611. package/.next/static/chunks/app/api/encryption/secure/route-1a4c9e7a416ccbcf.js +0 -1
  612. package/.next/static/chunks/app/api/env/route-1a4c9e7a416ccbcf.js +0 -1
  613. package/.next/static/chunks/app/api/flow/[id]/route-1a4c9e7a416ccbcf.js +0 -1
  614. package/.next/static/chunks/app/api/flow/[id]/versions/[versionId]/route-1a4c9e7a416ccbcf.js +0 -1
  615. package/.next/static/chunks/app/api/flow/[id]/versions/route-1a4c9e7a416ccbcf.js +0 -1
  616. package/.next/static/chunks/app/api/flow/compile/route-1a4c9e7a416ccbcf.js +0 -1
  617. package/.next/static/chunks/app/api/flow/generate/route-1a4c9e7a416ccbcf.js +0 -1
  618. package/.next/static/chunks/app/api/flow/improve/route-1a4c9e7a416ccbcf.js +0 -1
  619. package/.next/static/chunks/app/api/flow/prompt-renderer/route-1a4c9e7a416ccbcf.js +0 -1
  620. package/.next/static/chunks/app/api/flow/quick-chat/route-1a4c9e7a416ccbcf.js +0 -1
  621. package/.next/static/chunks/app/api/flow/repair/route-1a4c9e7a416ccbcf.js +0 -1
  622. package/.next/static/chunks/app/api/flow/route-1a4c9e7a416ccbcf.js +0 -1
  623. package/.next/static/chunks/app/api/git/route-1a4c9e7a416ccbcf.js +0 -1
  624. package/.next/static/chunks/app/api/init/route-1a4c9e7a416ccbcf.js +0 -1
  625. package/.next/static/chunks/app/api/local-models/capability/route-1a4c9e7a416ccbcf.js +0 -1
  626. package/.next/static/chunks/app/api/local-models/pull/route-1a4c9e7a416ccbcf.js +0 -1
  627. package/.next/static/chunks/app/api/local-models/suggest/route-1a4c9e7a416ccbcf.js +0 -1
  628. package/.next/static/chunks/app/api/mcp/app-sandbox/route-1a4c9e7a416ccbcf.js +0 -1
  629. package/.next/static/chunks/app/api/mcp/cancel/route-1a4c9e7a416ccbcf.js +0 -1
  630. package/.next/static/chunks/app/api/mcp/oauth-capability/route-1a4c9e7a416ccbcf.js +0 -1
  631. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-1a4c9e7a416ccbcf.js +0 -1
  632. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-1a4c9e7a416ccbcf.js +0 -1
  633. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-1a4c9e7a416ccbcf.js +0 -1
  634. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-1a4c9e7a416ccbcf.js +0 -1
  635. package/.next/static/chunks/app/api/mcp/servers/[name]/route-1a4c9e7a416ccbcf.js +0 -1
  636. package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-1a4c9e7a416ccbcf.js +0 -1
  637. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-1a4c9e7a416ccbcf.js +0 -1
  638. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-1a4c9e7a416ccbcf.js +0 -1
  639. package/.next/static/chunks/app/api/mcp/servers/route-1a4c9e7a416ccbcf.js +0 -1
  640. package/.next/static/chunks/app/api/mcp/test-connection/route-1a4c9e7a416ccbcf.js +0 -1
  641. package/.next/static/chunks/app/api/mcp/test-connection/stream/route-1a4c9e7a416ccbcf.js +0 -1
  642. package/.next/static/chunks/app/api/mcp-registry/route-1a4c9e7a416ccbcf.js +0 -1
  643. package/.next/static/chunks/app/api/mcp-registry/spotlight/route-1a4c9e7a416ccbcf.js +0 -1
  644. package/.next/static/chunks/app/api/model/[id]/route-1a4c9e7a416ccbcf.js +0 -1
  645. package/.next/static/chunks/app/api/model/provider/route-1a4c9e7a416ccbcf.js +0 -1
  646. package/.next/static/chunks/app/api/model/route-1a4c9e7a416ccbcf.js +0 -1
  647. package/.next/static/chunks/app/api/model/test/route-1a4c9e7a416ccbcf.js +0 -1
  648. package/.next/static/chunks/app/api/oauth/callback/route-1a4c9e7a416ccbcf.js +0 -1
  649. package/.next/static/chunks/app/api/oauth/initiate/route-1a4c9e7a416ccbcf.js +0 -1
  650. package/.next/static/chunks/app/api/oauth/reset/route-1a4c9e7a416ccbcf.js +0 -1
  651. package/.next/static/chunks/app/api/packages/build/route-1a4c9e7a416ccbcf.js +0 -1
  652. package/.next/static/chunks/app/api/packages/derive-secrets/route-1a4c9e7a416ccbcf.js +0 -1
  653. package/.next/static/chunks/app/api/packages/install/route-1a4c9e7a416ccbcf.js +0 -1
  654. package/.next/static/chunks/app/api/packages/install/status/route-1a4c9e7a416ccbcf.js +0 -1
  655. package/.next/static/chunks/app/api/packages/installed/route-1a4c9e7a416ccbcf.js +0 -1
  656. package/.next/static/chunks/app/api/packages/resolve/route-1a4c9e7a416ccbcf.js +0 -1
  657. package/.next/static/chunks/app/api/packages/scan-targets/route-1a4c9e7a416ccbcf.js +0 -1
  658. package/.next/static/chunks/app/api/packages/search/route-1a4c9e7a416ccbcf.js +0 -1
  659. package/.next/static/chunks/app/api/packages/uninstall/route-1a4c9e7a416ccbcf.js +0 -1
  660. package/.next/static/chunks/app/api/planned-executions/[id]/route-1a4c9e7a416ccbcf.js +0 -1
  661. package/.next/static/chunks/app/api/planned-executions/[id]/run/route-1a4c9e7a416ccbcf.js +0 -1
  662. package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-1a4c9e7a416ccbcf.js +0 -1
  663. package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-1a4c9e7a416ccbcf.js +0 -1
  664. package/.next/static/chunks/app/api/planned-executions/reconcile/route-1a4c9e7a416ccbcf.js +0 -1
  665. package/.next/static/chunks/app/api/planned-executions/route-1a4c9e7a416ccbcf.js +0 -1
  666. package/.next/static/chunks/app/api/registry/auth/resend/route-1a4c9e7a416ccbcf.js +0 -1
  667. package/.next/static/chunks/app/api/registry/auth/reset/route-1a4c9e7a416ccbcf.js +0 -1
  668. package/.next/static/chunks/app/api/registry/auth/route-1a4c9e7a416ccbcf.js +0 -1
  669. package/.next/static/chunks/app/api/registry/oauth/callback/route-1a4c9e7a416ccbcf.js +0 -1
  670. package/.next/static/chunks/app/api/registry/oauth/initiate/route-1a4c9e7a416ccbcf.js +0 -1
  671. package/.next/static/chunks/app/api/registry/publish/route-1a4c9e7a416ccbcf.js +0 -1
  672. package/.next/static/chunks/app/api/registry/settings/route-1a4c9e7a416ccbcf.js +0 -1
  673. package/.next/static/chunks/app/api/restore/route-1a4c9e7a416ccbcf.js +0 -1
  674. package/.next/static/chunks/app/api/runs/active/route-1a4c9e7a416ccbcf.js +0 -1
  675. package/.next/static/chunks/app/api/storage/route-1a4c9e7a416ccbcf.js +0 -1
  676. package/.next/static/chunks/app/api/update/route-1a4c9e7a416ccbcf.js +0 -1
  677. package/.next/static/chunks/app/api/waves/route-1a4c9e7a416ccbcf.js +0 -1
  678. package/.next/static/chunks/app/api/webhooks/[id]/route-1a4c9e7a416ccbcf.js +0 -1
  679. package/.next/static/chunks/app/chat/page-558edb21321a32d0.js +0 -1
  680. package/.next/static/chunks/app/docs/page-fc30f613607b8a26.js +0 -1
  681. package/.next/static/chunks/app/executions/page-e71689c7256af1e8.js +0 -1
  682. package/.next/static/chunks/app/flows/page-e90e8d7b4c1bd1c8.js +0 -1
  683. package/.next/static/chunks/app/layout-038b35b382eef11d.js +0 -1
  684. package/.next/static/chunks/app/mcp/page-6041156fc67ef361.js +0 -1
  685. package/.next/static/chunks/app/mcp-flows/route-1a4c9e7a416ccbcf.js +0 -1
  686. package/.next/static/chunks/app/mcp-proxy/[server]/route-1a4c9e7a416ccbcf.js +0 -1
  687. package/.next/static/chunks/app/models/page-d16f2721e7a93b43.js +0 -1
  688. package/.next/static/chunks/app/packages/page-c6b0e7aa95bc1064.js +0 -1
  689. package/.next/static/chunks/app/page-5c7fccd019942d46.js +0 -1
  690. package/.next/static/chunks/app/settings/page-e3d9ffd69d16873a.js +0 -1
  691. package/.next/static/chunks/app/v1/chat/completions/route-1a4c9e7a416ccbcf.js +0 -1
  692. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-1a4c9e7a416ccbcf.js +0 -1
  693. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-1a4c9e7a416ccbcf.js +0 -1
  694. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-1a4c9e7a416ccbcf.js +0 -1
  695. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-1a4c9e7a416ccbcf.js +0 -1
  696. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-1a4c9e7a416ccbcf.js +0 -1
  697. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-1a4c9e7a416ccbcf.js +0 -1
  698. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/inject/route-1a4c9e7a416ccbcf.js +0 -1
  699. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-1a4c9e7a416ccbcf.js +0 -1
  700. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-1a4c9e7a416ccbcf.js +0 -1
  701. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-1a4c9e7a416ccbcf.js +0 -1
  702. package/.next/static/chunks/app/v1/chat/conversations/route-1a4c9e7a416ccbcf.js +0 -1
  703. package/.next/static/chunks/app/v1/chat/events/route-1a4c9e7a416ccbcf.js +0 -1
  704. package/.next/static/chunks/app/v1/models/route-1a4c9e7a416ccbcf.js +0 -1
  705. package/.next/static/chunks/webpack-2d8e0c13c0b865fe.js +0 -1
  706. package/.next/static/eaxwKaaFHlA1_FLDIyFGi/_buildManifest.js +0 -1
  707. /package/.next/static/{eaxwKaaFHlA1_FLDIyFGi → Zz_Vh59XdtLIPcf-PxCpo}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/waves/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"4474":{"*":{"id":"8521","name":"*","chunks":[],"async":false}},"4682":{"*":{"id":"35729","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"55145","name":"*","chunks":[],"async":false}},"12818":{"*":{"id":"53025","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"22054":{"*":{"id":"4778","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"34644","name":"*","chunks":[],"async":false}},"24437":{"*":{"id":"24207","name":"*","chunks":[],"async":false}},"25635":{"*":{"id":"79515","name":"*","chunks":[],"async":false}},"27879":{"*":{"id":"92093","name":"*","chunks":[],"async":false}},"36388":{"*":{"id":"35352","name":"*","chunks":[],"async":false}},"36552":{"*":{"id":"52402","name":"*","chunks":[],"async":false}},"36982":{"*":{"id":"20150","name":"*","chunks":[],"async":false}},"43856":{"*":{"id":"96014","name":"*","chunks":[],"async":false}},"49215":{"*":{"id":"99193","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"57938":{"*":{"id":"43416","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"71113":{"*":{"id":"63904","name":"*","chunks":[],"async":false}},"72403":{"*":{"id":"49428","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"89547":{"*":{"id":"71779","name":"*","chunks":[],"async":false}},"94049":{"*":{"id":"81637","name":"*","chunks":[],"async":false}},"94929":{"*":{"id":"61615","name":"*","chunks":[],"async":false}},"98060":{"*":{"id":"85823","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\client\\components\\builtin\\global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\esm\\client\\components\\builtin\\global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\client\\components\\client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\esm\\client\\components\\client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\client\\components\\client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\esm\\client\\components\\client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\client\\components\\http-access-fallback\\error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\esm\\client\\components\\http-access-fallback\\error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\client\\components\\layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\esm\\client\\components\\layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\client\\components\\metadata\\async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\esm\\client\\components\\metadata\\async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\client\\components\\render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\esm\\client\\components\\render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\lib\\framework\\boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\esm\\lib\\framework\\boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\lib\\metadata\\generate\\icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\esm\\lib\\metadata\\generate\\icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\font\\google\\target.css?{\"path\":\"src\\\\app\\\\layout.tsx\",\"import\":\"Geist\",\"arguments\":[{\"variable\":\"--font-geist-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"geistSans\"}":{"id":59742,"name":"*","chunks":["7177","static/chunks/app/layout-038b35b382eef11d.js"],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\font\\google\\target.css?{\"path\":\"src\\\\app\\\\layout.tsx\",\"import\":\"Geist_Mono\",\"arguments\":[{\"variable\":\"--font-geist-mono\",\"subsets\":[\"latin\"]}],\"variableName\":\"geistMono\"}":{"id":3946,"name":"*","chunks":["7177","static/chunks/app/layout-038b35b382eef11d.js"],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\globals.css":{"id":13673,"name":"*","chunks":["7177","static/chunks/app/layout-038b35b382eef11d.js"],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\frontend\\components\\AppWrapper.tsx":{"id":72403,"name":"*","chunks":["7177","static/chunks/app/layout-038b35b382eef11d.js"],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\chat\\page.tsx":{"id":98060,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\docs\\page.tsx":{"id":71113,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\executions\\page.tsx":{"id":57938,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\packages\\page.tsx":{"id":4682,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\page.tsx":{"id":89547,"name":"*","chunks":["2678","static/chunks/2678-c88052addfb0478a.js","4754","static/chunks/4754-5c62bb61142f82d1.js","9244","static/chunks/9244-3281f7fd02003a2c.js","3392","static/chunks/3392-6dd9ad3be66a7ce9.js","1871","static/chunks/1871-14c3e63ca865d85e.js","2003","static/chunks/2003-f826c607d609d1fa.js","3077","static/chunks/3077-565833c67440a7fa.js","4523","static/chunks/4523-a540747aa2ed34e8.js","8834","static/chunks/8834-faf121e257b517d5.js","9164","static/chunks/9164-840f056a0e11d979.js","8974","static/chunks/app/page-5c7fccd019942d46.js"],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\flows\\page.tsx":{"id":22054,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\settings\\page.tsx":{"id":49215,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\waves\\page.tsx":{"id":12818,"name":"*","chunks":["3862","static/chunks/1a258343-bcffff1604e3797c.js","2678","static/chunks/2678-c88052addfb0478a.js","4754","static/chunks/4754-5c62bb61142f82d1.js","9244","static/chunks/9244-3281f7fd02003a2c.js","3392","static/chunks/3392-6dd9ad3be66a7ce9.js","7111","static/chunks/7111-44538f8a64241b74.js","2003","static/chunks/2003-f826c607d609d1fa.js","488","static/chunks/488-7ab54d8ae2b4b550.js","8470","static/chunks/8470-72cf748472d4d501.js","5418","static/chunks/5418-45aa7e646ad024be.js","8401","static/chunks/8401-0f39d91810180a88.js","2266","static/chunks/2266-d812473724cc6643.js","603","static/chunks/app/waves/page-3cf4b47b12662196.js"],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\mcp\\page.tsx":{"id":36388,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\models\\error.tsx":{"id":27879,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\@mui\\material\\Box\\Box.js":{"id":94049,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\@mui\\material\\CircularProgress\\CircularProgress.js":{"id":4474,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\@mui\\material\\Typography\\Typography.js":{"id":25635,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\shared\\lib\\lazy-dynamic\\dynamic-bailout-to-csr.js":{"id":24437,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\esm\\shared\\lib\\lazy-dynamic\\dynamic-bailout-to-csr.js":{"id":24437,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\shared\\lib\\lazy-dynamic\\preload-chunks.js":{"id":36552,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\esm\\shared\\lib\\lazy-dynamic\\preload-chunks.js":{"id":36552,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\models\\ModelClient.tsx":{"id":43856,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\frontend\\components\\shared\\ScrollArea.tsx":{"id":36982,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\frontend\\components\\shared\\Spinner.tsx":{"id":94929,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\":[],"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\layout":[{"inlined":false,"path":"static/css/b496025c9cd768cc.css"},{"inlined":false,"path":"static/css/599369d853c61df7.css"},{"inlined":false,"path":"static/css/30253fcfa8035221.css"}],"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\page":[],"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\waves\\page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}]},"rscModuleMapping":{"4474":{"*":{"id":"65251","name":"*","chunks":[],"async":false}},"4682":{"*":{"id":"60399","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"12818":{"*":{"id":"71494","name":"*","chunks":[],"async":false}},"13673":{"*":{"id":"61135","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"22054":{"*":{"id":"10057","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"24437":{"*":{"id":"69389","name":"*","chunks":[],"async":false}},"25635":{"*":{"id":"16825","name":"*","chunks":[],"async":false}},"27879":{"*":{"id":"14867","name":"*","chunks":[],"async":false}},"36388":{"*":{"id":"51016","name":"*","chunks":[],"async":false}},"36552":{"*":{"id":"63112","name":"*","chunks":[],"async":false}},"36982":{"*":{"id":"24676","name":"*","chunks":[],"async":false}},"43856":{"*":{"id":"2671","name":"*","chunks":[],"async":false}},"49215":{"*":{"id":"85431","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"57938":{"*":{"id":"42389","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"71113":{"*":{"id":"65793","name":"*","chunks":[],"async":false}},"72403":{"*":{"id":"41306","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"89547":{"*":{"id":"60967","name":"*","chunks":[],"async":false}},"94049":{"*":{"id":"73737","name":"*","chunks":[],"async":false}},"94929":{"*":{"id":"37997","name":"*","chunks":[],"async":false}},"98060":{"*":{"id":"22516","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/waves/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"4474":{"*":{"id":"8521","name":"*","chunks":[],"async":false}},"4969":{"*":{"id":"9396","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"55145","name":"*","chunks":[],"async":false}},"12818":{"*":{"id":"53025","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17711":{"*":{"id":"11824","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"34644","name":"*","chunks":[],"async":false}},"24437":{"*":{"id":"24207","name":"*","chunks":[],"async":false}},"25635":{"*":{"id":"79515","name":"*","chunks":[],"async":false}},"27879":{"*":{"id":"92093","name":"*","chunks":[],"async":false}},"36388":{"*":{"id":"35352","name":"*","chunks":[],"async":false}},"36552":{"*":{"id":"52402","name":"*","chunks":[],"async":false}},"36982":{"*":{"id":"20150","name":"*","chunks":[],"async":false}},"43856":{"*":{"id":"96014","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"69645":{"*":{"id":"60325","name":"*","chunks":[],"async":false}},"70479":{"*":{"id":"77531","name":"*","chunks":[],"async":false}},"71113":{"*":{"id":"63904","name":"*","chunks":[],"async":false}},"72403":{"*":{"id":"49428","name":"*","chunks":[],"async":false}},"72853":{"*":{"id":"24909","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"88495":{"*":{"id":"87158","name":"*","chunks":[],"async":false}},"94049":{"*":{"id":"81637","name":"*","chunks":[],"async":false}},"94929":{"*":{"id":"61615","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\client\\components\\builtin\\global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\esm\\client\\components\\builtin\\global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\client\\components\\client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\esm\\client\\components\\client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\client\\components\\client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\esm\\client\\components\\client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\client\\components\\http-access-fallback\\error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\esm\\client\\components\\http-access-fallback\\error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\client\\components\\layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\esm\\client\\components\\layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\client\\components\\metadata\\async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\esm\\client\\components\\metadata\\async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\client\\components\\render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\esm\\client\\components\\render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\lib\\framework\\boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\esm\\lib\\framework\\boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\lib\\metadata\\generate\\icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\esm\\lib\\metadata\\generate\\icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\font\\google\\target.css?{\"path\":\"src\\\\app\\\\layout.tsx\",\"import\":\"Geist\",\"arguments\":[{\"variable\":\"--font-geist-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"geistSans\"}":{"id":59742,"name":"*","chunks":["7177","static/chunks/app/layout-abed1f211e03152f.js"],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\font\\google\\target.css?{\"path\":\"src\\\\app\\\\layout.tsx\",\"import\":\"Geist_Mono\",\"arguments\":[{\"variable\":\"--font-geist-mono\",\"subsets\":[\"latin\"]}],\"variableName\":\"geistMono\"}":{"id":3946,"name":"*","chunks":["7177","static/chunks/app/layout-abed1f211e03152f.js"],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\globals.css":{"id":13673,"name":"*","chunks":["7177","static/chunks/app/layout-abed1f211e03152f.js"],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\frontend\\components\\AppWrapper.tsx":{"id":72403,"name":"*","chunks":["7177","static/chunks/app/layout-abed1f211e03152f.js"],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\docs\\page.tsx":{"id":71113,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\executions\\page.tsx":{"id":17711,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\chat\\page.tsx":{"id":69645,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\flows\\page.tsx":{"id":72853,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\page.tsx":{"id":4969,"name":"*","chunks":["2678","static/chunks/2678-c88052addfb0478a.js","4754","static/chunks/4754-5c62bb61142f82d1.js","9244","static/chunks/9244-3281f7fd02003a2c.js","3392","static/chunks/3392-6dd9ad3be66a7ce9.js","1871","static/chunks/1871-14c3e63ca865d85e.js","981","static/chunks/981-dd289e60d81da0d1.js","2003","static/chunks/2003-f826c607d609d1fa.js","9562","static/chunks/9562-f8371be653010627.js","3077","static/chunks/3077-565833c67440a7fa.js","1675","static/chunks/1675-773454288de4309d.js","4523","static/chunks/4523-a540747aa2ed34e8.js","4929","static/chunks/4929-150b03595474c9d8.js","9164","static/chunks/9164-de1d167d87614a6d.js","8974","static/chunks/app/page-2f9da78a4891731a.js"],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\settings\\page.tsx":{"id":88495,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\mcp\\page.tsx":{"id":36388,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\waves\\page.tsx":{"id":12818,"name":"*","chunks":["3862","static/chunks/1a258343-bcffff1604e3797c.js","2678","static/chunks/2678-c88052addfb0478a.js","4754","static/chunks/4754-5c62bb61142f82d1.js","9244","static/chunks/9244-3281f7fd02003a2c.js","3392","static/chunks/3392-6dd9ad3be66a7ce9.js","981","static/chunks/981-dd289e60d81da0d1.js","2003","static/chunks/2003-f826c607d609d1fa.js","488","static/chunks/488-7ab54d8ae2b4b550.js","8470","static/chunks/8470-72cf748472d4d501.js","1675","static/chunks/1675-773454288de4309d.js","5418","static/chunks/5418-45aa7e646ad024be.js","7391","static/chunks/7391-5a0abd837ba241f5.js","603","static/chunks/app/waves/page-dc99a16141dd902b.js"],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\packages\\page.tsx":{"id":70479,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\models\\error.tsx":{"id":27879,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\@mui\\material\\Box\\Box.js":{"id":94049,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\@mui\\material\\CircularProgress\\CircularProgress.js":{"id":4474,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\@mui\\material\\Typography\\Typography.js":{"id":25635,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\shared\\lib\\lazy-dynamic\\dynamic-bailout-to-csr.js":{"id":24437,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\esm\\shared\\lib\\lazy-dynamic\\dynamic-bailout-to-csr.js":{"id":24437,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\shared\\lib\\lazy-dynamic\\preload-chunks.js":{"id":36552,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\node_modules\\next\\dist\\esm\\shared\\lib\\lazy-dynamic\\preload-chunks.js":{"id":36552,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\models\\ModelClient.tsx":{"id":43856,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\frontend\\components\\shared\\ScrollArea.tsx":{"id":36982,"name":"*","chunks":[],"async":false},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\frontend\\components\\shared\\Spinner.tsx":{"id":94929,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\":[],"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\layout":[{"inlined":false,"path":"static/css/b496025c9cd768cc.css"},{"inlined":false,"path":"static/css/599369d853c61df7.css"},{"inlined":false,"path":"static/css/30253fcfa8035221.css"}],"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\page":[],"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\waves\\page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}]},"rscModuleMapping":{"4474":{"*":{"id":"65251","name":"*","chunks":[],"async":false}},"4969":{"*":{"id":"60967","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"12818":{"*":{"id":"71494","name":"*","chunks":[],"async":false}},"13673":{"*":{"id":"61135","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17711":{"*":{"id":"42389","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"24437":{"*":{"id":"69389","name":"*","chunks":[],"async":false}},"25635":{"*":{"id":"16825","name":"*","chunks":[],"async":false}},"27879":{"*":{"id":"14867","name":"*","chunks":[],"async":false}},"36388":{"*":{"id":"51016","name":"*","chunks":[],"async":false}},"36552":{"*":{"id":"63112","name":"*","chunks":[],"async":false}},"36982":{"*":{"id":"24676","name":"*","chunks":[],"async":false}},"43856":{"*":{"id":"2671","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"69645":{"*":{"id":"22516","name":"*","chunks":[],"async":false}},"70479":{"*":{"id":"60399","name":"*","chunks":[],"async":false}},"71113":{"*":{"id":"65793","name":"*","chunks":[],"async":false}},"72403":{"*":{"id":"41306","name":"*","chunks":[],"async":false}},"72853":{"*":{"id":"10057","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"88495":{"*":{"id":"85431","name":"*","chunks":[],"async":false}},"94049":{"*":{"id":"73737","name":"*","chunks":[],"async":false}},"94929":{"*":{"id":"37997","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
@@ -1 +1 @@
1
- <!DOCTYPE html><!--eaxwKaaFHlA1_FLDIyFGi--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/b496025c9cd768cc.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/599369d853c61df7.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/30253fcfa8035221.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-2d8e0c13c0b865fe.js"/><script src="/_next/static/chunks/4bd1b696-182b6b13bdad92e3.js" async=""></script><script src="/_next/static/chunks/1255-13d973e0759ea6d6.js" async=""></script><script src="/_next/static/chunks/main-app-2de821d2899bb841.js" async=""></script><script src="/_next/static/chunks/app/layout-038b35b382eef11d.js" async=""></script><script src="/_next/static/chunks/1a258343-bcffff1604e3797c.js" async=""></script><script src="/_next/static/chunks/2678-c88052addfb0478a.js" async=""></script><script src="/_next/static/chunks/4754-5c62bb61142f82d1.js" async=""></script><script src="/_next/static/chunks/9244-3281f7fd02003a2c.js" async=""></script><script src="/_next/static/chunks/3392-6dd9ad3be66a7ce9.js" async=""></script><script src="/_next/static/chunks/7111-44538f8a64241b74.js" async=""></script><script src="/_next/static/chunks/2003-f826c607d609d1fa.js" async=""></script><script src="/_next/static/chunks/488-7ab54d8ae2b4b550.js" async=""></script><script src="/_next/static/chunks/8470-72cf748472d4d501.js" async=""></script><script src="/_next/static/chunks/5418-45aa7e646ad024be.js" async=""></script><script src="/_next/static/chunks/8401-0f39d91810180a88.js" async=""></script><script src="/_next/static/chunks/2266-d812473724cc6643.js" async=""></script><script src="/_next/static/chunks/app/waves/page-3cf4b47b12662196.js" async=""></script><title>FLUJO</title><meta name="description" content="A browser-based application for managing models, MCP servers, flows and chat interactions"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_246ccd __variable_c29908 antialiased"><div hidden=""><!--$--><!--/$--></div><!--$--><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><div>Loading theme...</div><!--/$--><!--/$--><script src="/_next/static/chunks/webpack-2d8e0c13c0b865fe.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[72403,[\"7177\",\"static/chunks/app/layout-038b35b382eef11d.js\"],\"default\"]\n3:I[9766,[],\"\"]\n4:I[98924,[],\"\"]\n5:I[81959,[],\"ClientPageRoot\"]\n6:I[12818,[\"3862\",\"static/chunks/1a258343-bcffff1604e3797c.js\",\"2678\",\"static/chunks/2678-c88052addfb0478a.js\",\"4754\",\"static/chunks/4754-5c62bb61142f82d1.js\",\"9244\",\"static/chunks/9244-3281f7fd02003a2c.js\",\"3392\",\"static/chunks/3392-6dd9ad3be66a7ce9.js\",\"7111\",\"static/chunks/7111-44538f8a64241b74.js\",\"2003\",\"static/chunks/2003-f826c607d609d1fa.js\",\"488\",\"static/chunks/488-7ab54d8ae2b4b550.js\",\"8470\",\"static/chunks/8470-72cf748472d4d501.js\",\"5418\",\"static/chunks/5418-45aa7e646ad024be.js\",\"8401\",\"static/chunks/8401-0f39d91810180a88.js\",\"2266\",\"static/chunks/2266-d812473724cc6643.js\",\"603\",\"static/chunks/app/waves/page-3cf4b47b12662196.js\"],\"default\"]\n9:I[24431,[],\"OutletBoundary\"]\nb:I[15278,[],\"AsyncMetadataOutlet\"]\nd:I[24431,[],\"ViewportBoundary\"]\nf:I[24431,[],\"MetadataBoundary\"]\n10:\"$Sreact.suspense\"\n12:I[57150,[],\"\"]\n:HL[\"/_next/static/css/b496025c9cd768cc.css\",\"style\"]\n:HL[\"/_next/static/css/599369d853c61df7.css\",\"style\"]\n:HL[\"/_next/static/css/30253fcfa8035221.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"eaxwKaaFHlA1_FLDIyFGi\",\"p\":\"\",\"c\":[\"\",\"waves\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"waves\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/b496025c9cd768cc.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/599369d853c61df7.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/30253fcfa8035221.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"__variable_246ccd __variable_c29908 antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]]}],{\"children\":[\"waves\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L5\",null,{\"Component\":\"$6\",\"searchParams\":{},\"params\":{},\"promises\":[\"$@7\",\"$@8\"]}],null,[\"$\",\"$L9\",null,{\"children\":[\"$La\",[\"$\",\"$Lb\",null,{\"promise\":\"$@c\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$Ld\",null,{\"children\":\"$Le\"}],null],[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$10\",null,{\"fallback\":null,\"children\":\"$L11\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$12\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"7:{}\n8:\"$0:f:0:1:2:children:2:children:1:props:children:0:props:params\"\n"])</script><script>self.__next_f.push([1,"e:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\na:null\n"])</script><script>self.__next_f.push([1,"c:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"FLUJO\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"A browser-based application for managing models, MCP servers, flows and chat interactions\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"11:\"$c:metadata\"\n"])</script></body></html>
1
+ <!DOCTYPE html><!--Zz_Vh59XdtLIPcf_PxCpo--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/b496025c9cd768cc.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/599369d853c61df7.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/30253fcfa8035221.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-d5d737ff6a86674f.js"/><script src="/_next/static/chunks/4bd1b696-182b6b13bdad92e3.js" async=""></script><script src="/_next/static/chunks/1255-13d973e0759ea6d6.js" async=""></script><script src="/_next/static/chunks/main-app-2de821d2899bb841.js" async=""></script><script src="/_next/static/chunks/app/layout-abed1f211e03152f.js" async=""></script><script src="/_next/static/chunks/1a258343-bcffff1604e3797c.js" async=""></script><script src="/_next/static/chunks/2678-c88052addfb0478a.js" async=""></script><script src="/_next/static/chunks/4754-5c62bb61142f82d1.js" async=""></script><script src="/_next/static/chunks/9244-3281f7fd02003a2c.js" async=""></script><script src="/_next/static/chunks/3392-6dd9ad3be66a7ce9.js" async=""></script><script src="/_next/static/chunks/981-dd289e60d81da0d1.js" async=""></script><script src="/_next/static/chunks/2003-f826c607d609d1fa.js" async=""></script><script src="/_next/static/chunks/488-7ab54d8ae2b4b550.js" async=""></script><script src="/_next/static/chunks/8470-72cf748472d4d501.js" async=""></script><script src="/_next/static/chunks/1675-773454288de4309d.js" async=""></script><script src="/_next/static/chunks/5418-45aa7e646ad024be.js" async=""></script><script src="/_next/static/chunks/7391-5a0abd837ba241f5.js" async=""></script><script src="/_next/static/chunks/app/waves/page-dc99a16141dd902b.js" async=""></script><title>FLUJO</title><meta name="description" content="A browser-based application for managing models, MCP servers, flows and chat interactions"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_246ccd __variable_c29908 antialiased"><div hidden=""><!--$--><!--/$--></div><!--$--><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><div>Loading theme...</div><!--/$--><!--/$--><script src="/_next/static/chunks/webpack-d5d737ff6a86674f.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[72403,[\"7177\",\"static/chunks/app/layout-abed1f211e03152f.js\"],\"default\"]\n3:I[9766,[],\"\"]\n4:I[98924,[],\"\"]\n5:I[81959,[],\"ClientPageRoot\"]\n6:I[12818,[\"3862\",\"static/chunks/1a258343-bcffff1604e3797c.js\",\"2678\",\"static/chunks/2678-c88052addfb0478a.js\",\"4754\",\"static/chunks/4754-5c62bb61142f82d1.js\",\"9244\",\"static/chunks/9244-3281f7fd02003a2c.js\",\"3392\",\"static/chunks/3392-6dd9ad3be66a7ce9.js\",\"981\",\"static/chunks/981-dd289e60d81da0d1.js\",\"2003\",\"static/chunks/2003-f826c607d609d1fa.js\",\"488\",\"static/chunks/488-7ab54d8ae2b4b550.js\",\"8470\",\"static/chunks/8470-72cf748472d4d501.js\",\"1675\",\"static/chunks/1675-773454288de4309d.js\",\"5418\",\"static/chunks/5418-45aa7e646ad024be.js\",\"7391\",\"static/chunks/7391-5a0abd837ba241f5.js\",\"603\",\"static/chunks/app/waves/page-dc99a16141dd902b.js\"],\"default\"]\n9:I[24431,[],\"OutletBoundary\"]\nb:I[15278,[],\"AsyncMetadataOutlet\"]\nd:I[24431,[],\"ViewportBoundary\"]\nf:I[24431,[],\"MetadataBoundary\"]\n10:\"$Sreact.suspense\"\n12:I[57150,[],\"\"]\n:HL[\"/_next/static/css/b496025c9cd768cc.css\",\"style\"]\n:HL[\"/_next/static/css/599369d853c61df7.css\",\"style\"]\n:HL[\"/_next/static/css/30253fcfa8035221.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"Zz_Vh59XdtLIPcf-PxCpo\",\"p\":\"\",\"c\":[\"\",\"waves\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"waves\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/b496025c9cd768cc.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/599369d853c61df7.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/30253fcfa8035221.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"__variable_246ccd __variable_c29908 antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]]}],{\"children\":[\"waves\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L5\",null,{\"Component\":\"$6\",\"searchParams\":{},\"params\":{},\"promises\":[\"$@7\",\"$@8\"]}],null,[\"$\",\"$L9\",null,{\"children\":[\"$La\",[\"$\",\"$Lb\",null,{\"promise\":\"$@c\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$Ld\",null,{\"children\":\"$Le\"}],null],[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$10\",null,{\"fallback\":null,\"children\":\"$L11\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$12\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"7:{}\n8:\"$0:f:0:1:2:children:2:children:1:props:children:0:props:params\"\n"])</script><script>self.__next_f.push([1,"e:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\na:null\n"])</script><script>self.__next_f.push([1,"c:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"FLUJO\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"A browser-based application for managing models, MCP servers, flows and chat interactions\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"11:\"$c:metadata\"\n"])</script></body></html>
@@ -1,9 +1,9 @@
1
1
  1:"$Sreact.fragment"
2
- 2:I[72403,["7177","static/chunks/app/layout-038b35b382eef11d.js"],"default"]
2
+ 2:I[72403,["7177","static/chunks/app/layout-abed1f211e03152f.js"],"default"]
3
3
  3:I[9766,[],""]
4
4
  4:I[98924,[],""]
5
5
  5:I[81959,[],"ClientPageRoot"]
6
- 6:I[12818,["3862","static/chunks/1a258343-bcffff1604e3797c.js","2678","static/chunks/2678-c88052addfb0478a.js","4754","static/chunks/4754-5c62bb61142f82d1.js","9244","static/chunks/9244-3281f7fd02003a2c.js","3392","static/chunks/3392-6dd9ad3be66a7ce9.js","7111","static/chunks/7111-44538f8a64241b74.js","2003","static/chunks/2003-f826c607d609d1fa.js","488","static/chunks/488-7ab54d8ae2b4b550.js","8470","static/chunks/8470-72cf748472d4d501.js","5418","static/chunks/5418-45aa7e646ad024be.js","8401","static/chunks/8401-0f39d91810180a88.js","2266","static/chunks/2266-d812473724cc6643.js","603","static/chunks/app/waves/page-3cf4b47b12662196.js"],"default"]
6
+ 6:I[12818,["3862","static/chunks/1a258343-bcffff1604e3797c.js","2678","static/chunks/2678-c88052addfb0478a.js","4754","static/chunks/4754-5c62bb61142f82d1.js","9244","static/chunks/9244-3281f7fd02003a2c.js","3392","static/chunks/3392-6dd9ad3be66a7ce9.js","981","static/chunks/981-dd289e60d81da0d1.js","2003","static/chunks/2003-f826c607d609d1fa.js","488","static/chunks/488-7ab54d8ae2b4b550.js","8470","static/chunks/8470-72cf748472d4d501.js","1675","static/chunks/1675-773454288de4309d.js","5418","static/chunks/5418-45aa7e646ad024be.js","7391","static/chunks/7391-5a0abd837ba241f5.js","603","static/chunks/app/waves/page-dc99a16141dd902b.js"],"default"]
7
7
  9:I[24431,[],"OutletBoundary"]
8
8
  b:I[15278,[],"AsyncMetadataOutlet"]
9
9
  d:I[24431,[],"ViewportBoundary"]
@@ -13,7 +13,7 @@ f:I[24431,[],"MetadataBoundary"]
13
13
  :HL["/_next/static/css/b496025c9cd768cc.css","style"]
14
14
  :HL["/_next/static/css/599369d853c61df7.css","style"]
15
15
  :HL["/_next/static/css/30253fcfa8035221.css","style"]
16
- 0:{"P":null,"b":"eaxwKaaFHlA1_FLDIyFGi","p":"","c":["","waves"],"i":false,"f":[[["",{"children":["waves",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/b496025c9cd768cc.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","2",{"rel":"stylesheet","href":"/_next/static/css/30253fcfa8035221.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"__variable_246ccd __variable_c29908 antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":["waves",["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","searchParams":{},"params":{},"promises":["$@7","$@8"]}],null,["$","$L9",null,{"children":["$La",["$","$Lb",null,{"promise":"$@c"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Ld",null,{"children":"$Le"}],null],["$","$Lf",null,{"children":["$","div",null,{"hidden":true,"children":["$","$10",null,{"fallback":null,"children":"$L11"}]}]}]]}],false]],"m":"$undefined","G":["$12",[]],"s":false,"S":true}
16
+ 0:{"P":null,"b":"Zz_Vh59XdtLIPcf-PxCpo","p":"","c":["","waves"],"i":false,"f":[[["",{"children":["waves",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/b496025c9cd768cc.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","2",{"rel":"stylesheet","href":"/_next/static/css/30253fcfa8035221.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"__variable_246ccd __variable_c29908 antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":["waves",["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","searchParams":{},"params":{},"promises":["$@7","$@8"]}],null,["$","$L9",null,{"children":["$La",["$","$Lb",null,{"promise":"$@c"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Ld",null,{"children":"$Le"}],null],["$","$Lf",null,{"children":["$","div",null,{"hidden":true,"children":["$","$10",null,{"fallback":null,"children":"$L11"}]}]}]]}],false]],"m":"$undefined","G":["$12",[]],"s":false,"S":true}
17
17
  7:{}
18
18
  8:"$0:f:0:1:2:children:2:children:1:props:children:0:props:params"
19
19
  e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
@@ -1,26 +1,27 @@
1
1
  {
2
2
  "/api/approvals/[id]/route": "app/api/approvals/[id]/route.js",
3
3
  "/api/approvals/route": "app/api/approvals/route.js",
4
- "/api/browse/route": "app/api/browse/route.js",
5
4
  "/api/backup/route": "app/api/backup/route.js",
5
+ "/api/browse/route": "app/api/browse/route.js",
6
6
  "/api/bugs/enhance/route": "app/api/bugs/enhance/route.js",
7
+ "/_not-found/page": "app/_not-found/page.js",
7
8
  "/api/cwd/route": "app/api/cwd/route.js",
8
9
  "/api/encryption/secure/route": "app/api/encryption/secure/route.js",
9
10
  "/api/env/route": "app/api/env/route.js",
10
11
  "/api/flow/[id]/route": "app/api/flow/[id]/route.js",
11
- "/api/flow/[id]/versions/route": "app/api/flow/[id]/versions/route.js",
12
12
  "/api/flow/[id]/versions/[versionId]/route": "app/api/flow/[id]/versions/[versionId]/route.js",
13
+ "/api/flow/[id]/versions/route": "app/api/flow/[id]/versions/route.js",
13
14
  "/api/flow/compile/route": "app/api/flow/compile/route.js",
14
15
  "/api/flow/generate/route": "app/api/flow/generate/route.js",
16
+ "/api/flow/generator/route": "app/api/flow/generator/route.js",
15
17
  "/api/flow/improve/route": "app/api/flow/improve/route.js",
16
18
  "/api/flow/prompt-renderer/route": "app/api/flow/prompt-renderer/route.js",
17
19
  "/api/flow/quick-chat/route": "app/api/flow/quick-chat/route.js",
18
- "/api/flow/repair/route": "app/api/flow/repair/route.js",
19
20
  "/api/flow/route": "app/api/flow/route.js",
21
+ "/api/flow/repair/route": "app/api/flow/repair/route.js",
20
22
  "/api/init/route": "app/api/init/route.js",
21
23
  "/api/git/route": "app/api/git/route.js",
22
24
  "/api/mcp-registry/route": "app/api/mcp-registry/route.js",
23
- "/_not-found/page": "app/_not-found/page.js",
24
25
  "/api/mcp-registry/spotlight/route": "app/api/mcp-registry/spotlight/route.js",
25
26
  "/api/mcp/app-sandbox/route": "app/api/mcp/app-sandbox/route.js",
26
27
  "/api/mcp/cancel/route": "app/api/mcp/cancel/route.js",
@@ -36,31 +37,33 @@
36
37
  "/api/mcp/test-connection/route": "app/api/mcp/test-connection/route.js",
37
38
  "/api/model/[id]/route": "app/api/model/[id]/route.js",
38
39
  "/api/model/provider/route": "app/api/model/provider/route.js",
39
- "/api/model/test/route": "app/api/model/test/route.js",
40
40
  "/api/model/route": "app/api/model/route.js",
41
- "/api/packages/derive-secrets/route": "app/api/packages/derive-secrets/route.js",
42
- "/api/oauth/initiate/route": "app/api/oauth/initiate/route.js",
41
+ "/api/model/test/route": "app/api/model/test/route.js",
42
+ "/api/oauth/callback/route": "app/api/oauth/callback/route.js",
43
43
  "/api/oauth/reset/route": "app/api/oauth/reset/route.js",
44
+ "/api/oauth/initiate/route": "app/api/oauth/initiate/route.js",
45
+ "/api/packages/build/route": "app/api/packages/build/route.js",
46
+ "/api/packages/derive-secrets/route": "app/api/packages/derive-secrets/route.js",
44
47
  "/api/packages/install/route": "app/api/packages/install/route.js",
45
48
  "/api/packages/install/status/route": "app/api/packages/install/status/route.js",
46
49
  "/api/packages/installed/route": "app/api/packages/installed/route.js",
47
50
  "/api/packages/resolve/route": "app/api/packages/resolve/route.js",
48
- "/api/oauth/callback/route": "app/api/oauth/callback/route.js",
49
51
  "/api/packages/scan-targets/route": "app/api/packages/scan-targets/route.js",
50
52
  "/api/packages/search/route": "app/api/packages/search/route.js",
51
53
  "/api/packages/uninstall/route": "app/api/packages/uninstall/route.js",
52
54
  "/api/planned-executions/[id]/route": "app/api/planned-executions/[id]/route.js",
53
- "/api/packages/build/route": "app/api/packages/build/route.js",
54
55
  "/api/planned-executions/[id]/run/route": "app/api/planned-executions/[id]/run/route.js",
55
56
  "/api/planned-executions/[id]/runs/route": "app/api/planned-executions/[id]/runs/route.js",
56
57
  "/api/planned-executions/preview-schedule/route": "app/api/planned-executions/preview-schedule/route.js",
57
58
  "/api/planned-executions/reconcile/route": "app/api/planned-executions/reconcile/route.js",
58
59
  "/api/planned-executions/route": "app/api/planned-executions/route.js",
60
+ "/api/registry/auth/reset/route": "app/api/registry/auth/reset/route.js",
59
61
  "/api/registry/auth/resend/route": "app/api/registry/auth/resend/route.js",
60
62
  "/api/registry/auth/route": "app/api/registry/auth/route.js",
61
- "/api/registry/auth/reset/route": "app/api/registry/auth/reset/route.js",
63
+ "/api/registry/feedback/route": "app/api/registry/feedback/route.js",
62
64
  "/api/registry/oauth/callback/route": "app/api/registry/oauth/callback/route.js",
63
65
  "/api/registry/oauth/initiate/route": "app/api/registry/oauth/initiate/route.js",
66
+ "/api/registry/packages/route": "app/api/registry/packages/route.js",
64
67
  "/api/registry/publish/route": "app/api/registry/publish/route.js",
65
68
  "/api/registry/settings/route": "app/api/registry/settings/route.js",
66
69
  "/api/restore/route": "app/api/restore/route.js",
@@ -71,8 +74,8 @@
71
74
  "/v1/chat/completions/route": "app/v1/chat/completions/route.js",
72
75
  "/v1/chat/conversations/[conversationId]/breakpoints/route": "app/v1/chat/conversations/[conversationId]/breakpoints/route.js",
73
76
  "/v1/chat/conversations/[conversationId]/cancel/route": "app/v1/chat/conversations/[conversationId]/cancel/route.js",
74
- "/v1/chat/conversations/[conversationId]/debug/continue/route": "app/v1/chat/conversations/[conversationId]/debug/continue/route.js",
75
77
  "/v1/chat/conversations/[conversationId]/debug/step/route": "app/v1/chat/conversations/[conversationId]/debug/step/route.js",
78
+ "/v1/chat/conversations/[conversationId]/debug/continue/route": "app/v1/chat/conversations/[conversationId]/debug/continue/route.js",
76
79
  "/v1/chat/conversations/[conversationId]/edit-state/route": "app/v1/chat/conversations/[conversationId]/edit-state/route.js",
77
80
  "/v1/chat/conversations/[conversationId]/inject/route": "app/v1/chat/conversations/[conversationId]/inject/route.js",
78
81
  "/v1/chat/conversations/[conversationId]/resources/route": "app/v1/chat/conversations/[conversationId]/resources/route.js",
@@ -81,23 +84,24 @@
81
84
  "/v1/chat/conversations/route": "app/v1/chat/conversations/route.js",
82
85
  "/v1/models/route": "app/v1/models/route.js",
83
86
  "/api/local-models/capability/route": "app/api/local-models/capability/route.js",
87
+ "/api/local-models/pull/route": "app/api/local-models/pull/route.js",
84
88
  "/api/mcp/oauth-capability/route": "app/api/mcp/oauth-capability/route.js",
85
- "/api/mcp/test-connection/stream/route": "app/api/mcp/test-connection/stream/route.js",
86
89
  "/api/local-models/suggest/route": "app/api/local-models/suggest/route.js",
87
- "/api/local-models/pull/route": "app/api/local-models/pull/route.js",
88
- "/mcp-proxy/[server]/route": "app/mcp-proxy/[server]/route.js",
90
+ "/api/mcp/test-connection/stream/route": "app/api/mcp/test-connection/stream/route.js",
91
+ "/api/telemetry/daily-active/route": "app/api/telemetry/daily-active/route.js",
89
92
  "/api/update/route": "app/api/update/route.js",
90
93
  "/mcp-flows/route": "app/mcp-flows/route.js",
91
- "/v1/chat/events/route": "app/v1/chat/events/route.js",
94
+ "/mcp-proxy/[server]/route": "app/mcp-proxy/[server]/route.js",
92
95
  "/v1/chat/conversations/[conversationId]/events/route": "app/v1/chat/conversations/[conversationId]/events/route.js",
93
- "/chat/page": "app/chat/page.js",
96
+ "/v1/chat/events/route": "app/v1/chat/events/route.js",
94
97
  "/docs/page": "app/docs/page.js",
95
98
  "/executions/page": "app/executions/page.js",
96
- "/packages/page": "app/packages/page.js",
97
- "/page": "app/page.js",
99
+ "/chat/page": "app/chat/page.js",
98
100
  "/flows/page": "app/flows/page.js",
101
+ "/page": "app/page.js",
99
102
  "/settings/page": "app/settings/page.js",
100
- "/waves/page": "app/waves/page.js",
101
103
  "/mcp/page": "app/mcp/page.js",
104
+ "/waves/page": "app/waves/page.js",
105
+ "/packages/page": "app/packages/page.js",
102
106
  "/models/page": "app/models/page.js"
103
107
  }
@@ -1 +1 @@
1
- "use strict";exports.id=1114,exports.ids=[1114],exports.modules={91114:(a,b,c)=>{c.d(b,{internalCallToolFor:()=>g,internalToolDefinitionsFor:()=>f});var d=c(92018),e=c(94749);async function f(a){switch(a){case d._:{let{internalToolDefinitions:a}=await Promise.all([c.e(4551),c.e(7579)]).then(c.bind(c,17579));return a()}case e.K3:{let{filesystemToolDefinitions:a}=await Promise.all([c.e(848),c.e(9724),c.e(94)]).then(c.bind(c,50094));return a()}case e.PA:{let{bashToolDefinitions:a}=await c.e(166).then(c.bind(c,40166));return a()}default:return[]}}async function g(a,b,f,g,h){switch(b){case d._:{let{internalCallTool:b}=await Promise.all([c.e(4551),c.e(7579)]).then(c.bind(c,17579));return b(a,f,g)}case e.K3:{let{filesystemCallTool:a}=await Promise.all([c.e(848),c.e(9724),c.e(94)]).then(c.bind(c,50094));return a(f,g,h)}case e.PA:{let{bashCallTool:a}=await c.e(166).then(c.bind(c,40166));return a(f,g,h)}default:return{content:[{type:"text",text:`Unknown built-in server: ${b}`}],isError:!0}}}}};
1
+ "use strict";exports.id=1114,exports.ids=[1114],exports.modules={91114:(a,b,c)=>{c.d(b,{internalCallToolFor:()=>g,internalToolDefinitionsFor:()=>f});var d=c(92018),e=c(94749);async function f(a){switch(a){case d._:{let{internalToolDefinitions:a}=await Promise.all([c.e(4551),c.e(5309)]).then(c.bind(c,85309));return a()}case e.K3:{let{filesystemToolDefinitions:a}=await Promise.all([c.e(9724),c.e(94)]).then(c.bind(c,50094));return a()}case e.PA:{let{bashToolDefinitions:a}=await c.e(166).then(c.bind(c,40166));return a()}default:return[]}}async function g(a,b,f,h,i,j="host"){switch(b){case d._:{let{internalCallTool:b}=await Promise.all([c.e(4551),c.e(5309)]).then(c.bind(c,85309));return b(a,f,h,j)}case e.K3:{let{filesystemCallTool:a}=await Promise.all([c.e(9724),c.e(94)]).then(c.bind(c,50094));return a(f,h,i)}case e.PA:{let{bashCallTool:a}=await c.e(166).then(c.bind(c,40166));return a(f,h,i)}default:return{content:[{type:"text",text:`Unknown built-in server: ${b}`}],isError:!0}}}}};
@@ -1 +1 @@
1
- "use strict";exports.id=1226,exports.ids=[1226],exports.modules={81226:(a,b,c)=>{c.d(b,{A_:()=>h,FH:()=>w,Zn:()=>x,dM:()=>v,lk:()=>i,pX:()=>u});var d=c(32524),e=c(49181),f=c(67512),g=c(89224);let h=3,i=8;function j(a,b,c,d){return"number"!=typeof a||Number.isNaN(a)?d:Math.max(b,Math.min(c,Math.floor(a)))}let k={type:"arrowclosed",width:20,height:20,color:"#1976d2"},l={stroke:"#1976d2",strokeWidth:2},m={type:"arrowclosed",width:20,height:20,color:"#009688"},n={stroke:"#009688",strokeWidth:2},o=new Set(["full-history","latest-message","isolated"]),p=new Set(["steps","final-only"]),q=new Set(["full-conversation","latest-message"]);function r(a,b={}){let{keepPills:c=!1,wiredServers:d=new Set,validHandoffNames:f=new Set}=b,g=(0,e.A$)(a);if(0===g.length)return{text:a,stripped:!1,unresolved:[]};let h="",i=0,j=!1,k=[];for(let b of g){h+=a.slice(i,b.index),i=b.index+b.fullMatch.length;let e=!1;c&&(e="handoff"===b.server?f.has(b.name):d.has(b.server)),e?h+=b.fullMatch:(h+=b.name,j=!0,c&&k.push(b.fullMatch))}return{text:h+=a.slice(i),stripped:j,unresolved:k}}function s(a,b,c){let d=b.filter(b=>b.from===a).map(a=>c.get(a.to)).filter(Boolean).map(a=>({id:a.key??"",label:a.label,type:a.type}));return new Set((0,g.E9)(d).values())}function t(a,b){if(b.some(b=>b.id===a))return a;let c=a.toLowerCase(),d=b.find(a=>a.name.toLowerCase()===c);return d?d.id:null}function u(a,b,c,d){let e=`${a.type}-bottom`,f=`${b.type}-top`;return{id:`${a.id}:${e}->${b.id}:${f}`,source:a.id,sourceHandle:e,target:b.id,targetHandle:f,type:"custom",data:{edgeType:"standard",...c?{bidirectional:!0}:{},...d?{condition:d}:{}},animated:!0}}function v(a,b={},c={}){let e=[],g=(a,b,c)=>e.push({severity:"error",code:a,message:b,nodeKey:c}),w=(a,b,c)=>e.push({severity:"warning",code:a,message:b,nodeKey:c}),x=b.models??[],y=new Set((b.servers??[]).map(a=>a.name)),z=b.serverTools??{},A=j(c.maxDepth,0,h,h),B=j(c.maxFlows,1,i,i),C=[],D=[...(b.flows??[]).map(a=>a.name)],E=[],F=0;var G=function a(e,h,i){let v=Array.isArray(e?.nodes)?e.nodes:[],G=Array.isArray(e?.edges)?e.edges:[],H=function(a,b){let c=(a??"").trim().replace(/[^\w-]+/g,"_").replace(/^_+|_+$/g,"");c||(c="generated_flow");let d=new Set(b.map(a=>a.toLowerCase()));if(!d.has(c.toLowerCase()))return c;for(let a=2;;a++){let b=`${c}_${a}`;if(!d.has(b.toLowerCase()))return b}}(e?.name,D);D.push(H),F++;let I=(0,d.A)(),J=[...i,H],L=new Map,M=[],N=[],O=new Map(v.filter(a=>a?.key&&"string"==typeof a.key).map(a=>[a.key,a]));for(let e of v){let f=e?.key;if(!f||"string"!=typeof f){g("node-missing-key",'A node is missing its "key" — every node needs a unique key.');continue}if(L.has(f)){g("node-duplicate-key",`Duplicate node key "${f}" — keys must be unique; the later node was dropped.`,f);continue}let i=e.type;if("mcp"===i){g("mcp-node-not-allowed",`Node "${f}": do not emit "mcp" nodes — attach servers to a process node via its "servers" list instead.`,f);continue}if("start"!==i&&"process"!==i&&"finish"!==i&&"subflow"!==i&&"resource"!==i&&"signal"!==i){g("unknown-node-type",`Node "${f}" has unknown type "${String(i)}".`,f);continue}let k={},l="string"==typeof e.prompt?e.prompt:void 0;if("start"===i){let{text:a,stripped:b,unresolved:d}=r(l??"",c.keepPills?{keepPills:!0,wiredServers:new Set((e.servers??[]).map(a=>a.name)),validHandoffNames:s(f,G,O)}:{});for(let a of(b&&!c.keepPills&&w("pill-stripped",`Node "${f}": binding pills are not supported in generated prompts and were replaced with plain names.`,f),d))w("pill-unresolved",`Node "${f}": pill "${a}" not resolved against wired servers — stripped.`,f);k.promptTemplate=a}else if("process"===i){let{text:a,stripped:b,unresolved:d}=r(l??"",c.keepPills?{keepPills:!0,wiredServers:new Set((e.servers??[]).map(a=>a.name)),validHandoffNames:s(f,G,O)}:{});for(let a of(b&&!c.keepPills&&w("pill-stripped",`Node "${f}": binding pills are not supported in generated prompts and were replaced with plain names.`,f),d))w("pill-unresolved",`Node "${f}": pill "${a}" not resolved against wired servers — stripped.`,f);if(k.promptTemplate=a,e.model){let a=function(a,b){if(b.some(b=>b.id===a))return a;let c=a.toLowerCase(),d=b.find(a=>a.displayName?.toLowerCase()===c);if(d)return d.id;let e=b.find(a=>a.name?.toLowerCase()===c);return e?e.id:null}(e.model,x);a?k.boundModel=a:(k.boundModel=e.model,w("model-unresolved",`Node "${f}": model "${e.model}" does not match any configured model (by id, display name, or name).`,f))}void 0!==e.inputMode&&(o.has(e.inputMode)?(k.inputMode=e.inputMode,"isolated"===e.inputMode&&"string"==typeof e.isolatedPrompt&&(k.isolatedPrompt=e.isolatedPrompt)):w("invalid-input-mode",`Node "${f}": inputMode "${String(e.inputMode)}" is not valid (full-history | latest-message | isolated); omitted.`,f)),"boolean"==typeof e.allowCallerPrompt&&(k.allowCallerPrompt=e.allowCallerPrompt),void 0!==e.outputMode&&(q.has(e.outputMode)?k.outputMode=e.outputMode:w("invalid-output-mode",`Node "${f}": outputMode "${String(e.outputMode)}" is not valid on a process node (full-conversation | latest-message); omitted.`,f)),void 0!==e.maxTurns&&("number"!=typeof e.maxTurns||Number.isNaN(e.maxTurns)?w("invalid-max-turns",`Node "${f}": maxTurns "${String(e.maxTurns)}" is not a number; omitted.`,f):k.maxTurns=j(e.maxTurns,1,1e3,1)),"boolean"==typeof e.excludeModelPrompt&&(k.excludeModelPrompt=e.excludeModelPrompt),"boolean"==typeof e.excludeStartNodePrompt&&(k.excludeStartNodePrompt=e.excludeStartNodePrompt),"boolean"==typeof e.excludeSystemPrompt&&(k.excludeSystemPrompt=e.excludeSystemPrompt),Array.isArray(e.allowedTools)&&(k.allowedTools=e.allowedTools.filter(a=>"string"==typeof a&&a)),"string"==typeof e.captureVariable&&e.captureVariable.trim()&&(k.captureVariable=e.captureVariable.trim()),"string"==typeof e.captureResource&&e.captureResource.trim()&&(k.captureResource=e.captureResource.trim()),"string"==typeof e.captureKv&&e.captureKv.trim()&&(k.captureKv=e.captureKv.trim())}else if("subflow"===i){if(function(c,d,e,f,h){let i=Array.isArray(c.parallelFlows)&&c.parallelFlows.length>0,j=Array.isArray(c.parallelSubflowSpecs)&&c.parallelSubflowSpecs.length>0,k="string"==typeof c.parallelFlowsVariable?c.parallelFlowsVariable.trim():"";if([void 0!==c.flow&&null!==c.flow?"flow":null,void 0!==c.subflowSpec&&null!==c.subflowSpec?"subflowSpec":null,i?"parallelFlows":null,j?"parallelSubflowSpecs":null,void 0!==c.generateSubflow&&null!==c.generateSubflow?"generateSubflow":null].filter(Boolean).length>1&&w("subflow-multiple-sources",`Node "${d}": a subflow node should have only one target source ("flow", "subflowSpec", "parallelFlows", "parallelSubflowSpecs", or "generateSubflow"); applying precedence flow > subflowSpec > parallelFlows > parallelSubflowSpecs > generateSubflow.`,d),!0===c.mapOverList){let a=void 0!==c.flow&&null!==c.flow||void 0!==c.subflowSpec&&null!==c.subflowSpec;(i||j)&&g("subflow-map-and-parallel",`Node "${d}": "mapOverList" runs a SINGLE child once per item and cannot be combined with "parallelFlows"/"parallelSubflowSpecs".`,d),a?(h.mapOverList=!0,void 0!==c.itemSplit&&("json-array"===c.itemSplit||"lines"===c.itemSplit?h.itemSplit=c.itemSplit:w("invalid-item-split",`Node "${d}": itemSplit "${String(c.itemSplit)}" is not valid (json-array | lines); using json-array.`,d)),!0===c.sequential&&(h.sequential=!0),K(c,h)):g("subflow-map-no-child",`Node "${d}": "mapOverList" needs a single child ("flow" or "subflowSpec") to run once per item.`,d)}let l=Array.isArray(c.spawnBriefs)?c.spawnBriefs.filter(a=>"string"==typeof a&&""!==a.trim()):[];if(l.length>0){let a=void 0!==c.flow&&null!==c.flow||void 0!==c.subflowSpec&&null!==c.subflowSpec;i||j?g("subflow-spawn-and-parallel",`Node "${d}": "spawnBriefs" runs a SINGLE child once per brief and cannot be combined with "parallelFlows"/"parallelSubflowSpecs".`,d):!0===c.mapOverList?g("subflow-spawn-and-map",`Node "${d}": "spawnBriefs" cannot be combined with "mapOverList"; use one lane source or the other.`,d):a?(h.spawnBriefs=l,K(c,h)):g("subflow-spawn-no-child",`Node "${d}": "spawnBriefs" needs a single child ("flow" or "subflowSpec") to spawn once per brief.`,d)}if(k&&(!0===c.mapOverList?g("subflow-map-and-parallel-var",`Node "${d}": "parallelFlowsVariable" (dynamic fan-out) cannot be combined with "mapOverList".`,d):h.parallelSubflowIdsVar=k),c.flow){if(f.some(a=>a.toLowerCase()===c.flow.toLowerCase()))return g("subflow-cycle",`Node "${d}": flow "${c.flow}" refers to an ancestor flow, which would create a cycle.`,d);let a=t(c.flow,[...b.flows??[],...E]);return a?h.subflowId=a:g("subflow-unresolved",`Node "${d}": flow "${c.flow}" does not match any existing flow (by id or name).`,d)}if(c.subflowSpec){if(e+1>A)return g("subflow-too-deep",`Node "${d}": nested subflows may not go deeper than ${A} level(s); this inline subflow was not compiled.`,d);if(F>=B)return g("subflow-too-many",`Node "${d}": compiling this inline subflow would exceed the maximum of ${B} flows in one bundle; it was not compiled.`,d);let b=a(c.subflowSpec,e+1,f);return b?h.subflowId=b.id:g("subflow-child-empty",`Node "${d}": the inline "subflowSpec" produced no usable flow.`,d)}if(i){let a=[];for(let e of c.parallelFlows){if("string"!=typeof e||!e){g("parallel-flow-invalid",`Node "${d}": a "parallelFlows" entry is missing or not a string.`,d);continue}if(f.some(a=>a.toLowerCase()===e.toLowerCase())){g("subflow-cycle",`Node "${d}": parallel flow "${e}" refers to an ancestor flow, which would create a cycle.`,d);continue}let c=t(e,[...b.flows??[],...E]);c?a.includes(c)||a.push(c):g("parallel-flow-unresolved",`Node "${d}": parallel flow "${e}" does not match any existing flow (by id or name).`,d)}a.length>0?(h.parallelSubflowIds=a,K(c,h)):g("parallel-empty",`Node "${d}": "parallelFlows" resolved to no runnable lanes.`,d);return}if(j){let b=[];for(let h of c.parallelSubflowSpecs){if(!h||"object"!=typeof h){g("parallel-spec-invalid",`Node "${d}": a "parallelSubflowSpecs" entry is not a FlowSpec object.`,d);continue}if(e+1>A){g("subflow-too-deep",`Node "${d}": nested subflows may not go deeper than ${A} level(s); a parallel inline subflow was not compiled.`,d);continue}if(F>=B){g("subflow-too-many",`Node "${d}": compiling a parallel inline subflow would exceed the maximum of ${B} flows in one bundle; it was not compiled.`,d);continue}let c=a(h,e+1,f);c?b.push(c.id):g("subflow-child-empty",`Node "${d}": a "parallelSubflowSpecs" entry produced no usable flow.`,d)}b.length>0?(h.parallelSubflowIds=b,K(c,h)):g("parallel-empty",`Node "${d}": "parallelSubflowSpecs" produced no runnable lanes.`,d);return}k&&h.parallelSubflowIdsVar?K(c,h):void 0!==c.generateSubflow&&null!==c.generateSubflow?g("subflow-generate-unsupported",`Node "${d}": "generateSubflow" is only available through the AI flow generator. Use "subflowSpec" for deterministic nested authoring, or "flow" to reference an existing flow.`,d):g("subflow-missing-flow",`Node "${d}": subflow nodes need a "flow" (existing flow), a "subflowSpec" (inline child), "parallelFlows"/"parallelSubflowSpecs" (concurrent children), or "generateSubflow".`,d)}(e,f,h,J,k),void 0!==e.inputMode&&(o.has(e.inputMode)?k.inputMode=e.inputMode:w("invalid-input-mode",`Node "${f}": inputMode "${String(e.inputMode)}" is not valid (full-history | latest-message | isolated); omitted.`,f)),void 0!==e.outputMode&&(p.has(e.outputMode)?k.outputMode=e.outputMode:w("invalid-output-mode",`Node "${f}": outputMode "${String(e.outputMode)}" is not valid (steps | final-only); omitted.`,f)),void 0!==l){let{text:a,stripped:b,unresolved:d}=r(l,c.keepPills?{keepPills:!0}:{});for(let a of(b&&!c.keepPills&&w("pill-stripped",`Node "${f}": binding pills are not supported in generated prompts and were replaced with plain names.`,f),d))w("pill-unresolved",`Node "${f}": pill "${a}" not resolved against wired servers — stripped.`,f);k.promptTemplate=a}"boolean"==typeof e.allowCallerPrompt&&(k.allowCallerPrompt=e.allowCallerPrompt),"boolean"==typeof e.allowCallerFanout&&(k.allowCallerFanout=e.allowCallerFanout),"string"==typeof e.captureVariable&&e.captureVariable.trim()&&(k.captureVariable=e.captureVariable.trim()),"string"==typeof e.captureResource&&e.captureResource.trim()&&(k.captureResource=e.captureResource.trim()),"string"==typeof e.captureKv&&e.captureKv.trim()&&(k.captureKv=e.captureKv.trim())}else if("resource"===i){let a="string"==typeof e.runName?e.runName.trim():"",b="string"==typeof e.server?e.server.trim():"",c="string"==typeof e.uri?e.uri.trim():"";a?(k.scope="run",k.runName=a,(b||c)&&w("resource-both-bindings",`Node "${f}": a resource node is EITHER a run artifact ("runName") or a static MCP resource ("server"+"uri"); kept the run artifact.`,f)):(k.scope="mcp",b&&(k.boundServer=b),c&&(k.uri=c),b&&c?y.has(b)||w("server-unknown",`Node "${f}": MCP server "${b}" is not configured in FLUJO.`,f):w("resource-missing-binding",`Node "${f}": a static resource node needs both "server" and "uri" (or a "runName" for a run artifact).`,f))}else if("signal"===i){let a="string"==typeof e.topic?e.topic.trim():"";a?k.topic=a:w("signal-missing-topic",`Node "${f}": a signal node needs a "topic" to emit.`,f),"string"==typeof e.payloadTemplate&&e.payloadTemplate?k.payloadTemplate=e.payloadTemplate:void 0!==l&&(k.payloadTemplate=l)}let m={id:(0,d.A)(),type:i,position:{x:0,y:0},data:{label:"finish"===i?"Finish Node":e.label||`${i.charAt(0).toUpperCase()}${i.slice(1)} Node`,type:i,...e.description?{description:e.description}:{},properties:k}};if(L.set(f,m),M.push(m),"process"===i&&Array.isArray(e.servers)){let a=new Set;for(let b of e.servers){let c,e=b?.name;if(!e||"string"!=typeof e){w("server-missing-name",`Node "${f}": a server reference is missing its "name"; skipped.`,f);continue}if(a.has(e))continue;a.add(e),y.has(e)||w("server-unknown",`Node "${f}": MCP server "${e}" is not configured in FLUJO.`,f);let g=z[e];if(Array.isArray(b.tools)){if(c=b.tools.filter(a=>"string"==typeof a&&a),g){let a=c.filter(a=>!g.includes(a));a.length>0&&w("tool-unknown",`Node "${f}": server "${e}" does not report tool(s): ${a.join(", ")}.`,f)}}else c=g?[...g]:[];let h={id:(0,d.A)(),type:"mcp",position:{x:0,y:0},data:{label:e,type:"mcp",properties:{boundServer:e,enabledTools:c}}};M.push(h),N.push({processKey:f,mcpNode:h})}}else"process"!==i&&Array.isArray(e.servers)&&e.servers.length>0&&w("servers-on-non-process",`Node "${f}": only process nodes can have "servers"; ignored.`,f)}if(0===L.size)return g("no-usable-nodes","No usable nodes — the spec must contain at least a start node and one step."),null;let P=[],Q=new Set;for(let a of G){let b,c=a?.from,d=a?.to,e=c?L.get(c):void 0,h=d?L.get(d):void 0;if(!e||!h){g("edge-unknown-node",`Edge "${String(c)}" -> "${String(d)}" references a node key that does not exist (or was dropped).`);continue}if(e===h){g("edge-self-loop",`Edge "${c}" -> "${d}": a node cannot connect to itself.`);continue}if("resource"===e.type||"resource"===h.type){if(("resource"!==e.type||"process"!==h.type)&&("process"!==e.type||"resource"!==h.type)){g("resource-edge-invalid",`Edge "${c}" -> "${d}": resource nodes connect only to process nodes.`);continue}a.condition&&w("resource-edge-condition",`Edge "${c}" -> "${d}": conditions do not apply to resource wiring; dropped.`),!0===a.bidirectional&&w("resource-edge-bidirectional",`Edge "${c}" -> "${d}": resource wiring is directional (read vs write); "bidirectional" was ignored — add the opposite edge explicitly if the step both reads and writes.`);let b=`${c}->${d}`;if(Q.has(b)){w("edge-duplicate",`Edge "${c}" -> "${d}" appears more than once; kept the first.`);continue}Q.add(b),P.push(function(a,b){let c="resource"===a.type?"resource-out":"process-right-resource",d="resource"===b.type?"resource-in":"process-left-resource";return{id:`${a.id}:${c}->${b.id}:${d}`,source:a.id,sourceHandle:c,target:b.id,targetHandle:d,type:"resourceEdge",data:{edgeType:"resource"},animated:!1,markerEnd:{...m},style:{...n}}}(e,h));continue}if("start"===h.type){g("edge-into-start",`Edge "${c}" -> "${d}": nothing may connect INTO a start node.`);continue}if("finish"===e.type){g("edge-out-of-finish",`Edge "${c}" -> "${d}": nothing may connect OUT OF a finish node.`);continue}let i=`${c}->${d}`;if(Q.has(i)){w("edge-duplicate",`Edge "${c}" -> "${d}" appears more than once; kept the first.`);continue}Q.add(i);let j=!0===a.bidirectional;j&&("start"===e.type||"finish"===h.type)&&(w("bidirectional-illegal",`Edge "${c}" -> "${d}" cannot be bidirectional; downgraded to one-way.`),j=!1);let k=a.condition;k&&"object"==typeof k&&("process"!==e.type?w("edge-condition-non-process",`Edge "${c}" -> "${d}" has a condition but leaves a ${e.type} node; conditions only route from process nodes and were dropped.`):(0,f.C)(k.kind)?"always"===k.kind?b={kind:"always",..."last-message"===k.target?{target:"last-message"}:{},...!0===k.negate?{negate:!0}:{}}:"string"!=typeof k.value||0===k.value.length?w("edge-condition-value",`Edge "${c}" -> "${d}" has a condition with no "value"; the condition was dropped.`):("regex"!==k.kind||(0,f.wM)(k.value)||w("edge-condition-regex",`Edge "${c}" -> "${d}" has a regex condition that does not compile; it is kept but will never match at runtime.`),b={kind:k.kind,value:k.value,..."last-message"===k.target?{target:"last-message"}:{},...!0===k.ignoreCase?{ignoreCase:!0}:{},...!0===k.negate?{negate:!0}:{}}):w("edge-condition-kind",`Edge "${c}" -> "${d}" has an unknown condition kind "${String(k.kind)}"; the condition was dropped.`)),P.push(u(e,h,j,b))}for(let{processKey:a,mcpNode:b}of N){let c=L.get(a);P.push(function(a,b){let c="process-right-mcp",d="mcp-left";return{id:`${a.id}:${c}->${b.id}:${d}`,source:a.id,sourceHandle:c,target:b.id,targetHandle:d,type:"mcpEdge",data:{edgeType:"mcp"},animated:!1,markerEnd:{...k},markerStart:{...k},style:{...l}}}(c,b))}!function(a,b,c,d,e){let f=new Map;for(let a of c){let b=a.data?.edgeType;"mcp"!==b&&"resource"!==b&&(f.has(a.source)||f.set(a.source,[]),f.get(a.source).push(a.target))}let g=[...b.values()],h=g.filter(a=>"resource"===a.type),i=g.filter(a=>"resource"!==a.type),j=i.filter(a=>"start"===a.type),k=j.length>0?j:i.slice(0,1),l=new Map,m=k.map(a=>({id:a.id,depth:0}));for(let a of m)l.set(a.id,0);for(;m.length;){let{id:a,depth:b}=m.shift();for(let c of f.get(a)??[])l.has(c)||(l.set(c,b+1),m.push({id:c,depth:b+1}))}let n=0;for(let a of l.values())n=Math.max(n,a);for(let a of i)l.has(a.id)||l.set(a.id,n+1);let o=new Map;for(let[a,c]of b)o.set(c.id,a);let p=new Map;for(let a of i){let b=o.get(a.id),c=e&&b?e[b]:void 0;if(c&&"number"==typeof c.x&&"number"==typeof c.y){a.position={x:c.x,y:c.y};continue}let d=l.get(a.id),f=p.get(d)??0;p.set(d,f+1),a.position={x:250+280*f,y:150+170*d}}let q=new Map;for(let{processKey:a,mcpNode:c}of d){let d=b.get(a),e=q.get(a)??0;q.set(a,e+1),c.position={x:d.position.x+320,y:d.position.y+150*e}}let r=new Map(g.map(a=>[a.id,a])),s=new Map,t=0;for(let a of h){let b=o.get(a.id),d=e&&b?e[b]:void 0;if(d&&"number"==typeof d.x&&"number"==typeof d.y){a.position={x:d.x,y:d.y};continue}let f=c.find(b=>b.data?.edgeType==="resource"&&(b.source===a.id||b.target===a.id)),g=f?f.source===a.id?f.target:f.source:void 0,h=g?r.get(g):void 0;if(h){let b=s.get(h.id)??0;s.set(h.id,b+1),a.position={x:h.position.x-320,y:h.position.y+150*b}}else{let b=0;for(let a of i)b=Math.max(b,a.position.y);a.position={x:250+280*t,y:b+170},t++}}}(0,L,P,N,0===h?c.positions:void 0);let R={id:I,name:H,...e?.description?{description:e.description}:{},nodes:M,edges:P};return C.push(R),E.push({id:R.id,name:R.name}),R}(a,0,[]),H=C,I=e;let J=I.filter(a=>"error"===a.severity).length;return{flow:G,flows:H,issues:I,errorCount:J,warningCount:I.length-J};function K(a,b){void 0!==a.concurrencyLimit&&("number"!=typeof a.concurrencyLimit||Number.isNaN(a.concurrencyLimit)?w("invalid-concurrency-limit",`Node "${a.key}": concurrencyLimit "${String(a.concurrencyLimit)}" is not a number; using the runtime default.`,a.key):b.concurrencyLimit=Math.max(1,Math.floor(a.concurrencyLimit))),"string"==typeof a.joinSeparator&&(b.joinSeparator=a.joinSeparator),void 0!==a.errorStrategy&&("fail-fast"===a.errorStrategy||"collect-all"===a.errorStrategy?b.errorStrategy=a.errorStrategy:w("invalid-error-strategy",`Node "${a.key}": errorStrategy "${String(a.errorStrategy)}" is not valid (fail-fast | collect-all); using collect-all.`,a.key))}}function w(a){let b=Array.isArray(a?.nodes)?a.nodes:[],c=Array.isArray(a?.edges)?a.edges:[],d=new Map;for(let a of b)"mcp"===a.type&&d.set(a.id,a);let e=new Map;for(let a of c){if(a.data?.edgeType!=="mcp")continue;let b=d.get(a.target);if(!b)continue;let c=b.data?.properties??{},f="string"==typeof c.boundServer&&c.boundServer?c.boundServer:b.data?.label;if(!f||"string"!=typeof f)continue;let g=Array.isArray(c.enabledTools)?c.enabledTools.filter(a=>"string"==typeof a&&!!a):void 0,h=e.get(a.source)??[];h.push({name:f,...g?{tools:g}:{}}),e.set(a.source,h)}let f=[];for(let a of b){if("mcp"===a.type)continue;let b=a.type;if("start"!==b&&"process"!==b&&"finish"!==b&&"subflow"!==b&&"resource"!==b&&"signal"!==b)continue;let c=a.data?.properties??{},d={key:a.id,type:b,..."finish"!==b&&a.data?.label?{label:a.data.label}:{},...a.data?.description?{description:a.data.description}:{}};if("start"===b)"string"==typeof c.promptTemplate&&c.promptTemplate&&(d.prompt=c.promptTemplate);else if("process"===b){"string"==typeof c.promptTemplate&&c.promptTemplate&&(d.prompt=c.promptTemplate),"string"==typeof c.boundModel&&c.boundModel&&(d.model=c.boundModel),"string"==typeof c.inputMode&&(d.inputMode=c.inputMode),"string"==typeof c.isolatedPrompt&&c.isolatedPrompt&&(d.isolatedPrompt=c.isolatedPrompt),!1===c.allowCallerPrompt&&(d.allowCallerPrompt=!1),"string"==typeof c.outputMode&&(d.outputMode=c.outputMode),"number"==typeof c.maxTurns&&c.maxTurns>0&&(d.maxTurns=c.maxTurns),!0===c.excludeModelPrompt&&(d.excludeModelPrompt=!0),!0===c.excludeStartNodePrompt&&(d.excludeStartNodePrompt=!0),!0===c.excludeSystemPrompt&&(d.excludeSystemPrompt=!0),Array.isArray(c.allowedTools)&&c.allowedTools.length>0&&(d.allowedTools=c.allowedTools.filter(a=>"string"==typeof a&&!!a)),"string"==typeof c.captureVariable&&c.captureVariable&&(d.captureVariable=c.captureVariable),"string"==typeof c.captureResource&&c.captureResource&&(d.captureResource=c.captureResource),"string"==typeof c.captureKv&&c.captureKv&&(d.captureKv=c.captureKv);let b=e.get(a.id);b&&b.length>0&&(d.servers=b)}else if("subflow"===b){if(Array.isArray(c.parallelSubflowIds)&&c.parallelSubflowIds.length>0)d.parallelFlows=c.parallelSubflowIds.filter(a=>"string"==typeof a&&!!a),"number"==typeof c.concurrencyLimit&&c.concurrencyLimit>0&&(d.concurrencyLimit=c.concurrencyLimit),"string"==typeof c.joinSeparator&&(d.joinSeparator=c.joinSeparator),("fail-fast"===c.errorStrategy||"collect-all"===c.errorStrategy)&&(d.errorStrategy=c.errorStrategy);else if("string"==typeof c.subflowId&&c.subflowId){d.flow=c.subflowId,!0===c.mapOverList&&(d.mapOverList=!0,("json-array"===c.itemSplit||"lines"===c.itemSplit)&&(d.itemSplit=c.itemSplit),!0===c.sequential&&(d.sequential=!0),"number"==typeof c.concurrencyLimit&&c.concurrencyLimit>0&&(d.concurrencyLimit=c.concurrencyLimit),"string"==typeof c.joinSeparator&&(d.joinSeparator=c.joinSeparator),("fail-fast"===c.errorStrategy||"collect-all"===c.errorStrategy)&&(d.errorStrategy=c.errorStrategy));let a=Array.isArray(c.spawnBriefs)?c.spawnBriefs.filter(a=>"string"==typeof a&&""!==a.trim()):[];a.length>0&&(d.spawnBriefs=a,"number"==typeof c.concurrencyLimit&&c.concurrencyLimit>0&&(d.concurrencyLimit=c.concurrencyLimit),"string"==typeof c.joinSeparator&&(d.joinSeparator=c.joinSeparator),("fail-fast"===c.errorStrategy||"collect-all"===c.errorStrategy)&&(d.errorStrategy=c.errorStrategy))}"string"==typeof c.parallelSubflowIdsVar&&c.parallelSubflowIdsVar&&(d.parallelFlowsVariable=c.parallelSubflowIdsVar,d.parallelFlows||d.flow||("number"==typeof c.concurrencyLimit&&c.concurrencyLimit>0&&(d.concurrencyLimit=c.concurrencyLimit),"string"==typeof c.joinSeparator&&(d.joinSeparator=c.joinSeparator),("fail-fast"===c.errorStrategy||"collect-all"===c.errorStrategy)&&(d.errorStrategy=c.errorStrategy))),"string"==typeof c.inputMode&&(d.inputMode=c.inputMode),"string"==typeof c.outputMode&&(d.outputMode=c.outputMode),"string"==typeof c.promptTemplate&&c.promptTemplate&&(d.prompt=c.promptTemplate),!0===c.allowCallerPrompt&&(d.allowCallerPrompt=!0),!0===c.allowCallerFanout&&(d.allowCallerFanout=!0),"string"==typeof c.captureVariable&&c.captureVariable&&(d.captureVariable=c.captureVariable),"string"==typeof c.captureResource&&c.captureResource&&(d.captureResource=c.captureResource),"string"==typeof c.captureKv&&c.captureKv&&(d.captureKv=c.captureKv)}else"resource"===b?"run"===c.scope&&"string"==typeof c.runName&&c.runName?d.runName=c.runName:("string"==typeof c.boundServer&&c.boundServer&&(d.server=c.boundServer),"string"==typeof c.uri&&c.uri&&(d.uri=c.uri)):"signal"===b&&("string"==typeof c.topic&&c.topic&&(d.topic=c.topic),"string"==typeof c.payloadTemplate&&c.payloadTemplate&&(d.payloadTemplate=c.payloadTemplate));f.push(d)}let g=[];for(let a of c){if(a.data?.edgeType==="mcp"||!a.source||!a.target||d.has(a.source)||d.has(a.target))continue;let b=a.data;g.push({from:a.source,to:a.target,...b?.bidirectional?{bidirectional:!0}:{},...b?.condition?{condition:b.condition}:{}})}return{...a?.name?{name:a.name}:{},...a?.description?{description:a.description}:{},nodes:f,edges:g}}function x(a){for(let b of a.nodes){if("finish"===b.type){b.data.label="Finish Node";continue}if("process"!==b.type)continue;let a=b.data.properties??{};void 0===a.inputMode&&(a.inputMode="latest-message"),void 0===a.outputMode&&(a.outputMode="latest-message"),b.data.properties=a}}}};
1
+ "use strict";exports.id=1226,exports.ids=[1226],exports.modules={81226:(a,b,c)=>{c.d(b,{A_:()=>h,FH:()=>w,Zn:()=>x,dM:()=>v,lk:()=>i,pX:()=>u});var d=c(32524),e=c(49181),f=c(67512),g=c(89224);let h=3,i=8;function j(a,b,c,d){return"number"!=typeof a||Number.isNaN(a)?d:Math.max(b,Math.min(c,Math.floor(a)))}let k={type:"arrowclosed",width:20,height:20,color:"#1976d2"},l={stroke:"#1976d2",strokeWidth:2},m={type:"arrowclosed",width:20,height:20,color:"#009688"},n={stroke:"#009688",strokeWidth:2},o=new Set(["full-history","latest-message","isolated"]),p=new Set(["steps","final-only"]),q=new Set(["full-conversation","latest-message"]);function r(a,b={}){let{keepPills:c=!1,wiredServers:d=new Set,validHandoffNames:f=new Set}=b,g=(0,e.A$)(a);if(0===g.length)return{text:a,stripped:!1,unresolved:[]};let h="",i=0,j=!1,k=[];for(let b of g){h+=a.slice(i,b.index),i=b.index+b.fullMatch.length;let e=!1;c&&(e="handoff"===b.server?f.has(b.name):d.has(b.server)),e?h+=b.fullMatch:(h+=b.name,j=!0,c&&k.push(b.fullMatch))}return{text:h+=a.slice(i),stripped:j,unresolved:k}}function s(a,b,c){let d=b.filter(b=>b.from===a).map(a=>c.get(a.to)).filter(Boolean).map(a=>({id:a.key??"",label:a.label,type:a.type}));return new Set((0,g.E9)(d).values())}function t(a,b){if(b.some(b=>b.id===a))return a;let c=a.toLowerCase(),d=b.find(a=>a.name.toLowerCase()===c);return d?d.id:null}function u(a,b,c,d){let e=`${a.type}-bottom`,f=`${b.type}-top`;return{id:`${a.id}:${e}->${b.id}:${f}`,source:a.id,sourceHandle:e,target:b.id,targetHandle:f,type:"custom",data:{edgeType:"standard",...c?{bidirectional:!0}:{},...d?{condition:d}:{}},animated:!0}}function v(a,b={},c={}){let e=[],g=(a,b,c)=>e.push({severity:"error",code:a,message:b,nodeKey:c}),w=(a,b,c)=>e.push({severity:"warning",code:a,message:b,nodeKey:c}),x=b.models??[],y=new Set((b.servers??[]).map(a=>a.name)),z=b.serverTools??{},A=j(c.maxDepth,0,h,h),B=j(c.maxFlows,1,i,i),C=[],D=[...(b.flows??[]).map(a=>a.name)],E=[],F=0;var G=function a(e,h,i){let v=Array.isArray(e?.nodes)?e.nodes:[],G=Array.isArray(e?.edges)?e.edges:[],H=function(a,b){let c=(a??"").trim().replace(/[^\w-]+/g,"_").replace(/^_+|_+$/g,"");c||(c="generated_flow");let d=new Set(b.map(a=>a.toLowerCase()));if(!d.has(c.toLowerCase()))return c;for(let a=2;;a++){let b=`${c}_${a}`;if(!d.has(b.toLowerCase()))return b}}(e?.name,D);D.push(H),F++;let I=(0,d.A)(),J=[...i,H],L=new Map,M=[],N=[],O=new Map(v.filter(a=>a?.key&&"string"==typeof a.key).map(a=>[a.key,a]));for(let e of v){let f=e?.key;if(!f||"string"!=typeof f){g("node-missing-key",'A node is missing its "key" — every node needs a unique key.');continue}if(L.has(f)){g("node-duplicate-key",`Duplicate node key "${f}" — keys must be unique; the later node was dropped.`,f);continue}let i=e.type;if("mcp"===i){g("mcp-node-not-allowed",`Node "${f}": do not emit "mcp" nodes — attach servers to a process node via its "servers" list instead.`,f);continue}if("start"!==i&&"process"!==i&&"finish"!==i&&"subflow"!==i&&"resource"!==i&&"signal"!==i){g("unknown-node-type",`Node "${f}" has unknown type "${String(i)}".`,f);continue}let k={},l="string"==typeof e.prompt?e.prompt:void 0;if("start"===i){let{text:a,stripped:b,unresolved:d}=r(l??"",c.keepPills?{keepPills:!0,wiredServers:new Set((e.servers??[]).map(a=>a.name)),validHandoffNames:s(f,G,O)}:{});for(let a of(b&&!c.keepPills&&w("pill-stripped",`Node "${f}": binding pills are not supported in generated prompts and were replaced with plain names.`,f),d))w("pill-unresolved",`Node "${f}": pill "${a}" not resolved against wired servers — stripped.`,f);k.promptTemplate=a}else if("process"===i){let{text:a,stripped:b,unresolved:d}=r(l??"",c.keepPills?{keepPills:!0,wiredServers:new Set((e.servers??[]).map(a=>a.name)),validHandoffNames:s(f,G,O)}:{});for(let a of(b&&!c.keepPills&&w("pill-stripped",`Node "${f}": binding pills are not supported in generated prompts and were replaced with plain names.`,f),d))w("pill-unresolved",`Node "${f}": pill "${a}" not resolved against wired servers — stripped.`,f);if(k.promptTemplate=a,e.model){let a=function(a,b){if(b.some(b=>b.id===a))return a;let c=a.toLowerCase(),d=b.find(a=>a.displayName?.toLowerCase()===c);if(d)return d.id;let e=b.find(a=>a.name?.toLowerCase()===c);return e?e.id:null}(e.model,x);a?k.boundModel=a:(k.boundModel=e.model,w("model-unresolved",`Node "${f}": model "${e.model}" does not match any configured model (by id, display name, or name).`,f))}void 0!==e.inputMode&&(o.has(e.inputMode)?(k.inputMode=e.inputMode,"isolated"===e.inputMode&&"string"==typeof e.isolatedPrompt&&(k.isolatedPrompt=e.isolatedPrompt)):w("invalid-input-mode",`Node "${f}": inputMode "${String(e.inputMode)}" is not valid (full-history | latest-message | isolated); omitted.`,f)),"boolean"==typeof e.allowCallerPrompt&&(k.allowCallerPrompt=e.allowCallerPrompt),void 0!==e.outputMode&&(q.has(e.outputMode)?k.outputMode=e.outputMode:w("invalid-output-mode",`Node "${f}": outputMode "${String(e.outputMode)}" is not valid on a process node (full-conversation | latest-message); omitted.`,f)),void 0!==e.maxTurns&&("number"!=typeof e.maxTurns||Number.isNaN(e.maxTurns)?w("invalid-max-turns",`Node "${f}": maxTurns "${String(e.maxTurns)}" is not a number; omitted.`,f):k.maxTurns=j(e.maxTurns,1,1e3,1)),"boolean"==typeof e.excludeModelPrompt&&(k.excludeModelPrompt=e.excludeModelPrompt),"boolean"==typeof e.excludeStartNodePrompt&&(k.excludeStartNodePrompt=e.excludeStartNodePrompt),"boolean"==typeof e.excludeSystemPrompt&&(k.excludeSystemPrompt=e.excludeSystemPrompt),Array.isArray(e.allowedTools)&&(k.allowedTools=e.allowedTools.filter(a=>"string"==typeof a&&a)),"string"==typeof e.captureVariable&&e.captureVariable.trim()&&(k.captureVariable=e.captureVariable.trim()),"string"==typeof e.captureResource&&e.captureResource.trim()&&w("process-capture-resource-unsupported",`Node "${f}": process captureResource is not supported; connect the process to a Resource node so it can call write_resource.`,f),"string"==typeof e.captureKv&&e.captureKv.trim()&&(k.captureKv=e.captureKv.trim())}else if("subflow"===i){if(function(c,d,e,f,h){let i=Array.isArray(c.parallelFlows)&&c.parallelFlows.length>0,j=Array.isArray(c.parallelSubflowSpecs)&&c.parallelSubflowSpecs.length>0,k="string"==typeof c.parallelFlowsVariable?c.parallelFlowsVariable.trim():"";if([void 0!==c.flow&&null!==c.flow?"flow":null,void 0!==c.subflowSpec&&null!==c.subflowSpec?"subflowSpec":null,i?"parallelFlows":null,j?"parallelSubflowSpecs":null,void 0!==c.generateSubflow&&null!==c.generateSubflow?"generateSubflow":null].filter(Boolean).length>1&&w("subflow-multiple-sources",`Node "${d}": a subflow node should have only one target source ("flow", "subflowSpec", "parallelFlows", "parallelSubflowSpecs", or "generateSubflow"); applying precedence flow > subflowSpec > parallelFlows > parallelSubflowSpecs > generateSubflow.`,d),!0===c.mapOverList){let a=void 0!==c.flow&&null!==c.flow||void 0!==c.subflowSpec&&null!==c.subflowSpec;(i||j)&&g("subflow-map-and-parallel",`Node "${d}": "mapOverList" runs a SINGLE child once per item and cannot be combined with "parallelFlows"/"parallelSubflowSpecs".`,d),a?(h.mapOverList=!0,void 0!==c.itemSplit&&("json-array"===c.itemSplit||"lines"===c.itemSplit?h.itemSplit=c.itemSplit:w("invalid-item-split",`Node "${d}": itemSplit "${String(c.itemSplit)}" is not valid (json-array | lines); using json-array.`,d)),!0===c.sequential&&(h.sequential=!0),K(c,h)):g("subflow-map-no-child",`Node "${d}": "mapOverList" needs a single child ("flow" or "subflowSpec") to run once per item.`,d)}let l=Array.isArray(c.spawnBriefs)?c.spawnBriefs.filter(a=>"string"==typeof a&&""!==a.trim()):[];if(l.length>0){let a=void 0!==c.flow&&null!==c.flow||void 0!==c.subflowSpec&&null!==c.subflowSpec;i||j?g("subflow-spawn-and-parallel",`Node "${d}": "spawnBriefs" runs a SINGLE child once per brief and cannot be combined with "parallelFlows"/"parallelSubflowSpecs".`,d):!0===c.mapOverList?g("subflow-spawn-and-map",`Node "${d}": "spawnBriefs" cannot be combined with "mapOverList"; use one lane source or the other.`,d):a?(h.spawnBriefs=l,K(c,h)):g("subflow-spawn-no-child",`Node "${d}": "spawnBriefs" needs a single child ("flow" or "subflowSpec") to spawn once per brief.`,d)}if(k&&(!0===c.mapOverList?g("subflow-map-and-parallel-var",`Node "${d}": "parallelFlowsVariable" (dynamic fan-out) cannot be combined with "mapOverList".`,d):h.parallelSubflowIdsVar=k),c.flow){if(f.some(a=>a.toLowerCase()===c.flow.toLowerCase()))return g("subflow-cycle",`Node "${d}": flow "${c.flow}" refers to an ancestor flow, which would create a cycle.`,d);let a=t(c.flow,[...b.flows??[],...E]);return a?h.subflowId=a:g("subflow-unresolved",`Node "${d}": flow "${c.flow}" does not match any existing flow (by id or name).`,d)}if(c.subflowSpec){if(e+1>A)return g("subflow-too-deep",`Node "${d}": nested subflows may not go deeper than ${A} level(s); this inline subflow was not compiled.`,d);if(F>=B)return g("subflow-too-many",`Node "${d}": compiling this inline subflow would exceed the maximum of ${B} flows in one bundle; it was not compiled.`,d);let b=a(c.subflowSpec,e+1,f);return b?h.subflowId=b.id:g("subflow-child-empty",`Node "${d}": the inline "subflowSpec" produced no usable flow.`,d)}if(i){let a=[];for(let e of c.parallelFlows){if("string"!=typeof e||!e){g("parallel-flow-invalid",`Node "${d}": a "parallelFlows" entry is missing or not a string.`,d);continue}if(f.some(a=>a.toLowerCase()===e.toLowerCase())){g("subflow-cycle",`Node "${d}": parallel flow "${e}" refers to an ancestor flow, which would create a cycle.`,d);continue}let c=t(e,[...b.flows??[],...E]);c?a.includes(c)||a.push(c):g("parallel-flow-unresolved",`Node "${d}": parallel flow "${e}" does not match any existing flow (by id or name).`,d)}a.length>0?(h.parallelSubflowIds=a,K(c,h)):g("parallel-empty",`Node "${d}": "parallelFlows" resolved to no runnable lanes.`,d);return}if(j){let b=[];for(let h of c.parallelSubflowSpecs){if(!h||"object"!=typeof h){g("parallel-spec-invalid",`Node "${d}": a "parallelSubflowSpecs" entry is not a FlowSpec object.`,d);continue}if(e+1>A){g("subflow-too-deep",`Node "${d}": nested subflows may not go deeper than ${A} level(s); a parallel inline subflow was not compiled.`,d);continue}if(F>=B){g("subflow-too-many",`Node "${d}": compiling a parallel inline subflow would exceed the maximum of ${B} flows in one bundle; it was not compiled.`,d);continue}let c=a(h,e+1,f);c?b.push(c.id):g("subflow-child-empty",`Node "${d}": a "parallelSubflowSpecs" entry produced no usable flow.`,d)}b.length>0?(h.parallelSubflowIds=b,K(c,h)):g("parallel-empty",`Node "${d}": "parallelSubflowSpecs" produced no runnable lanes.`,d);return}k&&h.parallelSubflowIdsVar?K(c,h):void 0!==c.generateSubflow&&null!==c.generateSubflow?g("subflow-generate-unsupported",`Node "${d}": "generateSubflow" is only available through the AI flow generator. Use "subflowSpec" for deterministic nested authoring, or "flow" to reference an existing flow.`,d):g("subflow-missing-flow",`Node "${d}": subflow nodes need a "flow" (existing flow), a "subflowSpec" (inline child), "parallelFlows"/"parallelSubflowSpecs" (concurrent children), or "generateSubflow".`,d)}(e,f,h,J,k),void 0!==e.inputMode&&(o.has(e.inputMode)?k.inputMode=e.inputMode:w("invalid-input-mode",`Node "${f}": inputMode "${String(e.inputMode)}" is not valid (full-history | latest-message | isolated); omitted.`,f)),void 0!==e.outputMode&&(p.has(e.outputMode)?k.outputMode=e.outputMode:w("invalid-output-mode",`Node "${f}": outputMode "${String(e.outputMode)}" is not valid (steps | final-only); omitted.`,f)),void 0!==l){let{text:a,stripped:b,unresolved:d}=r(l,c.keepPills?{keepPills:!0}:{});for(let a of(b&&!c.keepPills&&w("pill-stripped",`Node "${f}": binding pills are not supported in generated prompts and were replaced with plain names.`,f),d))w("pill-unresolved",`Node "${f}": pill "${a}" not resolved against wired servers — stripped.`,f);k.promptTemplate=a}"boolean"==typeof e.allowCallerPrompt&&(k.allowCallerPrompt=e.allowCallerPrompt),"boolean"==typeof e.allowCallerFanout&&(k.allowCallerFanout=e.allowCallerFanout),"string"==typeof e.captureVariable&&e.captureVariable.trim()&&(k.captureVariable=e.captureVariable.trim()),"string"==typeof e.captureResource&&e.captureResource.trim()&&(k.captureResource=e.captureResource.trim()),"string"==typeof e.captureKv&&e.captureKv.trim()&&(k.captureKv=e.captureKv.trim())}else if("resource"===i){let a="string"==typeof e.runName?e.runName.trim():"",b="string"==typeof e.server?e.server.trim():"",c="string"==typeof e.uri?e.uri.trim():"";a?(k.scope="run",k.runName=a,(b||c)&&w("resource-both-bindings",`Node "${f}": a resource node is EITHER a run artifact ("runName") or a static MCP resource ("server"+"uri"); kept the run artifact.`,f)):(k.scope="mcp",b&&(k.boundServer=b),c&&(k.uri=c),b&&c?y.has(b)||w("server-unknown",`Node "${f}": MCP server "${b}" is not configured in FLUJO.`,f):w("resource-missing-binding",`Node "${f}": a static resource node needs both "server" and "uri" (or a "runName" for a run artifact).`,f))}else if("signal"===i){let a="string"==typeof e.topic?e.topic.trim():"";a?k.topic=a:w("signal-missing-topic",`Node "${f}": a signal node needs a "topic" to emit.`,f),"string"==typeof e.payloadTemplate&&e.payloadTemplate?k.payloadTemplate=e.payloadTemplate:void 0!==l&&(k.payloadTemplate=l)}let m={id:(0,d.A)(),type:i,position:{x:0,y:0},data:{label:"finish"===i?"Finish Node":e.label||`${i.charAt(0).toUpperCase()}${i.slice(1)} Node`,type:i,...e.description?{description:e.description}:{},properties:k}};if(L.set(f,m),M.push(m),"process"===i&&Array.isArray(e.servers)){let a=new Set;for(let b of e.servers){let c,e=b?.name;if(!e||"string"!=typeof e){w("server-missing-name",`Node "${f}": a server reference is missing its "name"; skipped.`,f);continue}if(a.has(e))continue;a.add(e),y.has(e)||w("server-unknown",`Node "${f}": MCP server "${e}" is not configured in FLUJO.`,f);let g=z[e];if(Array.isArray(b.tools)){if(c=b.tools.filter(a=>"string"==typeof a&&a),g){let a=c.filter(a=>!g.includes(a));a.length>0&&w("tool-unknown",`Node "${f}": server "${e}" does not report tool(s): ${a.join(", ")}.`,f)}}else c=g?[...g]:[];let h={id:(0,d.A)(),type:"mcp",position:{x:0,y:0},data:{label:e,type:"mcp",properties:{boundServer:e,enabledTools:c}}};M.push(h),N.push({processKey:f,mcpNode:h})}}else"process"!==i&&Array.isArray(e.servers)&&e.servers.length>0&&w("servers-on-non-process",`Node "${f}": only process nodes can have "servers"; ignored.`,f)}if(0===L.size)return g("no-usable-nodes","No usable nodes — the spec must contain at least a start node and one step."),null;let P=[],Q=new Set;for(let a of G){let b,c=a?.from,d=a?.to,e=c?L.get(c):void 0,h=d?L.get(d):void 0;if(!e||!h){g("edge-unknown-node",`Edge "${String(c)}" -> "${String(d)}" references a node key that does not exist (or was dropped).`);continue}if(e===h){g("edge-self-loop",`Edge "${c}" -> "${d}": a node cannot connect to itself.`);continue}if("resource"===e.type||"resource"===h.type){if(("resource"!==e.type||"process"!==h.type)&&("process"!==e.type||"resource"!==h.type)){g("resource-edge-invalid",`Edge "${c}" -> "${d}": resource nodes connect only to process nodes.`);continue}a.condition&&w("resource-edge-condition",`Edge "${c}" -> "${d}": conditions do not apply to resource wiring; dropped.`),!0===a.bidirectional&&w("resource-edge-bidirectional",`Edge "${c}" -> "${d}": resource wiring is directional (read vs write); "bidirectional" was ignored — add the opposite edge explicitly if the step both reads and writes.`);let b=`${c}->${d}`;if(Q.has(b)){w("edge-duplicate",`Edge "${c}" -> "${d}" appears more than once; kept the first.`);continue}Q.add(b),P.push(function(a,b){let c="resource"===a.type?"resource-out":"process-right-resource",d="resource"===b.type?"resource-in":"process-left-resource";return{id:`${a.id}:${c}->${b.id}:${d}`,source:a.id,sourceHandle:c,target:b.id,targetHandle:d,type:"resourceEdge",data:{edgeType:"resource"},animated:!1,markerEnd:{...m},style:{...n}}}(e,h));continue}if("start"===h.type){g("edge-into-start",`Edge "${c}" -> "${d}": nothing may connect INTO a start node.`);continue}if("finish"===e.type){g("edge-out-of-finish",`Edge "${c}" -> "${d}": nothing may connect OUT OF a finish node.`);continue}let i=`${c}->${d}`;if(Q.has(i)){w("edge-duplicate",`Edge "${c}" -> "${d}" appears more than once; kept the first.`);continue}Q.add(i);let j=!0===a.bidirectional;j&&("start"===e.type||"finish"===h.type)&&(w("bidirectional-illegal",`Edge "${c}" -> "${d}" cannot be bidirectional; downgraded to one-way.`),j=!1);let k=a.condition;k&&"object"==typeof k&&("process"!==e.type?w("edge-condition-non-process",`Edge "${c}" -> "${d}" has a condition but leaves a ${e.type} node; conditions only route from process nodes and were dropped.`):(0,f.C)(k.kind)?"always"===k.kind?b={kind:"always",..."last-message"===k.target?{target:"last-message"}:{},...!0===k.negate?{negate:!0}:{}}:"string"!=typeof k.value||0===k.value.length?w("edge-condition-value",`Edge "${c}" -> "${d}" has a condition with no "value"; the condition was dropped.`):("regex"!==k.kind||(0,f.wM)(k.value)||w("edge-condition-regex",`Edge "${c}" -> "${d}" has a regex condition that does not compile; it is kept but will never match at runtime.`),b={kind:k.kind,value:k.value,..."last-message"===k.target?{target:"last-message"}:{},...!0===k.ignoreCase?{ignoreCase:!0}:{},...!0===k.negate?{negate:!0}:{}}):w("edge-condition-kind",`Edge "${c}" -> "${d}" has an unknown condition kind "${String(k.kind)}"; the condition was dropped.`)),P.push(u(e,h,j,b))}for(let{processKey:a,mcpNode:b}of N){let c=L.get(a);P.push(function(a,b){let c="process-right-mcp",d="mcp-left";return{id:`${a.id}:${c}->${b.id}:${d}`,source:a.id,sourceHandle:c,target:b.id,targetHandle:d,type:"mcpEdge",data:{edgeType:"mcp"},animated:!1,markerEnd:{...k},markerStart:{...k},style:{...l}}}(c,b))}!function(a,b,c,d,e){let f=new Map;for(let a of c){let b=a.data?.edgeType;"mcp"!==b&&"resource"!==b&&(f.has(a.source)||f.set(a.source,[]),f.get(a.source).push(a.target))}let g=[...b.values()],h=g.filter(a=>"resource"===a.type),i=g.filter(a=>"resource"!==a.type),j=i.filter(a=>"start"===a.type),k=j.length>0?j:i.slice(0,1),l=new Map,m=k.map(a=>({id:a.id,depth:0}));for(let a of m)l.set(a.id,0);for(;m.length;){let{id:a,depth:b}=m.shift();for(let c of f.get(a)??[])l.has(c)||(l.set(c,b+1),m.push({id:c,depth:b+1}))}let n=0;for(let a of l.values())n=Math.max(n,a);for(let a of i)l.has(a.id)||l.set(a.id,n+1);let o=new Map;for(let[a,c]of b)o.set(c.id,a);let p=new Map;for(let a of i){let b=o.get(a.id),c=e&&b?e[b]:void 0;if(c&&"number"==typeof c.x&&"number"==typeof c.y){a.position={x:c.x,y:c.y};continue}let d=l.get(a.id),f=p.get(d)??0;p.set(d,f+1),a.position={x:250+280*f,y:150+170*d}}let q=new Map;for(let{processKey:a,mcpNode:c}of d){let d=b.get(a),e=q.get(a)??0;q.set(a,e+1),c.position={x:d.position.x+320,y:d.position.y+150*e}}let r=new Map(g.map(a=>[a.id,a])),s=new Map,t=0;for(let a of h){let b=o.get(a.id),d=e&&b?e[b]:void 0;if(d&&"number"==typeof d.x&&"number"==typeof d.y){a.position={x:d.x,y:d.y};continue}let f=c.find(b=>b.data?.edgeType==="resource"&&(b.source===a.id||b.target===a.id)),g=f?f.source===a.id?f.target:f.source:void 0,h=g?r.get(g):void 0;if(h){let b=s.get(h.id)??0;s.set(h.id,b+1),a.position={x:h.position.x-320,y:h.position.y+150*b}}else{let b=0;for(let a of i)b=Math.max(b,a.position.y);a.position={x:250+280*t,y:b+170},t++}}}(0,L,P,N,0===h?c.positions:void 0);let R={id:I,name:H,...e?.description?{description:e.description}:{},nodes:M,edges:P};return C.push(R),E.push({id:R.id,name:R.name}),R}(a,0,[]),H=C,I=e;let J=I.filter(a=>"error"===a.severity).length;return{flow:G,flows:H,issues:I,errorCount:J,warningCount:I.length-J};function K(a,b){void 0!==a.concurrencyLimit&&("number"!=typeof a.concurrencyLimit||Number.isNaN(a.concurrencyLimit)?w("invalid-concurrency-limit",`Node "${a.key}": concurrencyLimit "${String(a.concurrencyLimit)}" is not a number; using the runtime default.`,a.key):b.concurrencyLimit=Math.max(1,Math.floor(a.concurrencyLimit))),"string"==typeof a.joinSeparator&&(b.joinSeparator=a.joinSeparator),void 0!==a.errorStrategy&&("fail-fast"===a.errorStrategy||"collect-all"===a.errorStrategy?b.errorStrategy=a.errorStrategy:w("invalid-error-strategy",`Node "${a.key}": errorStrategy "${String(a.errorStrategy)}" is not valid (fail-fast | collect-all); using collect-all.`,a.key))}}function w(a){let b=Array.isArray(a?.nodes)?a.nodes:[],c=Array.isArray(a?.edges)?a.edges:[],d=new Map;for(let a of b)"mcp"===a.type&&d.set(a.id,a);let e=new Map;for(let a of c){if(a.data?.edgeType!=="mcp")continue;let b=d.get(a.target);if(!b)continue;let c=b.data?.properties??{},f="string"==typeof c.boundServer&&c.boundServer?c.boundServer:b.data?.label;if(!f||"string"!=typeof f)continue;let g=Array.isArray(c.enabledTools)?c.enabledTools.filter(a=>"string"==typeof a&&!!a):void 0,h=e.get(a.source)??[];h.push({name:f,...g?{tools:g}:{}}),e.set(a.source,h)}let f=[];for(let a of b){if("mcp"===a.type)continue;let b=a.type;if("start"!==b&&"process"!==b&&"finish"!==b&&"subflow"!==b&&"resource"!==b&&"signal"!==b)continue;let c=a.data?.properties??{},d={key:a.id,type:b,..."finish"!==b&&a.data?.label?{label:a.data.label}:{},...a.data?.description?{description:a.data.description}:{}};if("start"===b)"string"==typeof c.promptTemplate&&c.promptTemplate&&(d.prompt=c.promptTemplate);else if("process"===b){"string"==typeof c.promptTemplate&&c.promptTemplate&&(d.prompt=c.promptTemplate),"string"==typeof c.boundModel&&c.boundModel&&(d.model=c.boundModel),"string"==typeof c.inputMode&&(d.inputMode=c.inputMode),"string"==typeof c.isolatedPrompt&&c.isolatedPrompt&&(d.isolatedPrompt=c.isolatedPrompt),!1===c.allowCallerPrompt&&(d.allowCallerPrompt=!1),"string"==typeof c.outputMode&&(d.outputMode=c.outputMode),"number"==typeof c.maxTurns&&c.maxTurns>0&&(d.maxTurns=c.maxTurns),!0===c.excludeModelPrompt&&(d.excludeModelPrompt=!0),!0===c.excludeStartNodePrompt&&(d.excludeStartNodePrompt=!0),!0===c.excludeSystemPrompt&&(d.excludeSystemPrompt=!0),Array.isArray(c.allowedTools)&&c.allowedTools.length>0&&(d.allowedTools=c.allowedTools.filter(a=>"string"==typeof a&&!!a)),"string"==typeof c.captureVariable&&c.captureVariable&&(d.captureVariable=c.captureVariable),"string"==typeof c.captureResource&&c.captureResource&&(d.captureResource=c.captureResource),"string"==typeof c.captureKv&&c.captureKv&&(d.captureKv=c.captureKv);let b=e.get(a.id);b&&b.length>0&&(d.servers=b)}else if("subflow"===b){if(Array.isArray(c.parallelSubflowIds)&&c.parallelSubflowIds.length>0)d.parallelFlows=c.parallelSubflowIds.filter(a=>"string"==typeof a&&!!a),"number"==typeof c.concurrencyLimit&&c.concurrencyLimit>0&&(d.concurrencyLimit=c.concurrencyLimit),"string"==typeof c.joinSeparator&&(d.joinSeparator=c.joinSeparator),("fail-fast"===c.errorStrategy||"collect-all"===c.errorStrategy)&&(d.errorStrategy=c.errorStrategy);else if("string"==typeof c.subflowId&&c.subflowId){d.flow=c.subflowId,!0===c.mapOverList&&(d.mapOverList=!0,("json-array"===c.itemSplit||"lines"===c.itemSplit)&&(d.itemSplit=c.itemSplit),!0===c.sequential&&(d.sequential=!0),"number"==typeof c.concurrencyLimit&&c.concurrencyLimit>0&&(d.concurrencyLimit=c.concurrencyLimit),"string"==typeof c.joinSeparator&&(d.joinSeparator=c.joinSeparator),("fail-fast"===c.errorStrategy||"collect-all"===c.errorStrategy)&&(d.errorStrategy=c.errorStrategy));let a=Array.isArray(c.spawnBriefs)?c.spawnBriefs.filter(a=>"string"==typeof a&&""!==a.trim()):[];a.length>0&&(d.spawnBriefs=a,"number"==typeof c.concurrencyLimit&&c.concurrencyLimit>0&&(d.concurrencyLimit=c.concurrencyLimit),"string"==typeof c.joinSeparator&&(d.joinSeparator=c.joinSeparator),("fail-fast"===c.errorStrategy||"collect-all"===c.errorStrategy)&&(d.errorStrategy=c.errorStrategy))}"string"==typeof c.parallelSubflowIdsVar&&c.parallelSubflowIdsVar&&(d.parallelFlowsVariable=c.parallelSubflowIdsVar,d.parallelFlows||d.flow||("number"==typeof c.concurrencyLimit&&c.concurrencyLimit>0&&(d.concurrencyLimit=c.concurrencyLimit),"string"==typeof c.joinSeparator&&(d.joinSeparator=c.joinSeparator),("fail-fast"===c.errorStrategy||"collect-all"===c.errorStrategy)&&(d.errorStrategy=c.errorStrategy))),"string"==typeof c.inputMode&&(d.inputMode=c.inputMode),"string"==typeof c.outputMode&&(d.outputMode=c.outputMode),"string"==typeof c.promptTemplate&&c.promptTemplate&&(d.prompt=c.promptTemplate),!0===c.allowCallerPrompt&&(d.allowCallerPrompt=!0),!0===c.allowCallerFanout&&(d.allowCallerFanout=!0),"string"==typeof c.captureVariable&&c.captureVariable&&(d.captureVariable=c.captureVariable),"string"==typeof c.captureResource&&c.captureResource&&(d.captureResource=c.captureResource),"string"==typeof c.captureKv&&c.captureKv&&(d.captureKv=c.captureKv)}else"resource"===b?"run"===c.scope&&"string"==typeof c.runName&&c.runName?d.runName=c.runName:("string"==typeof c.boundServer&&c.boundServer&&(d.server=c.boundServer),"string"==typeof c.uri&&c.uri&&(d.uri=c.uri)):"signal"===b&&("string"==typeof c.topic&&c.topic&&(d.topic=c.topic),"string"==typeof c.payloadTemplate&&c.payloadTemplate&&(d.payloadTemplate=c.payloadTemplate));f.push(d)}let g=[];for(let a of c){if(a.data?.edgeType==="mcp"||!a.source||!a.target||d.has(a.source)||d.has(a.target))continue;let b=a.data;g.push({from:a.source,to:a.target,...b?.bidirectional?{bidirectional:!0}:{},...b?.condition?{condition:b.condition}:{}})}return{...a?.name?{name:a.name}:{},...a?.description?{description:a.description}:{},nodes:f,edges:g}}function x(a){for(let b of a.nodes){if("finish"===b.type){b.data.label="Finish Node";continue}if("process"!==b.type)continue;let a=b.data.properties??{};(void 0===a.inputMode||"latest-message"===a.inputMode)&&(a.inputMode="full-history"),void 0===a.outputMode&&(a.outputMode="latest-message"),b.data.properties=a}}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=1227,exports.ids=[1227],exports.modules={34641:(a,b,c)=>{c.d(b,{uJ:()=>B,Ay:()=>L,Yw:()=>C});var d=c(21124),e=c(38301),f=c(60839),g=c(81637),h=c(8521),i=c(79515),j=c(88745),k=c(43312),l=c(68730),m=c(99561),n=c(5748),o=c(1994),p=c(17332),q=c(63908),r=c(36636),s=c(93516),t=c(92543),u=c(28055),v=c(59060);let w=(0,c(19815).h)("frontend/components/Chat/McpAppFrame"),x={name:"FLUJO",version:"3.34.0"},y=new Set(["https:","http:"]),z=["inline","fullscreen","pip"],A=new Set(["text"]),B=262144;function C(a){try{return new TextEncoder().encode(JSON.stringify(a)).length}catch{return 1/0}}let D=null;async function E(){return D||(D=fetch("/api/mcp/app-sandbox").then(async a=>{if(!a.ok)throw Error(`Sandbox endpoint discovery failed (${a.status})`);return await a.json()}).catch(a=>{throw D=null,a})),function(a,b){let c;if("string"!=typeof a.token||0===a.token.length)throw Error("Sandbox endpoint discovery returned invalid credentials");if(void 0!==a.url){if("string"!=typeof a.url)throw Error("Sandbox endpoint discovery returned an invalid public URL");try{c=new URL(a.url)}catch{throw Error("Sandbox endpoint discovery returned an invalid public URL")}if("http:"!==c.protocol&&"https:"!==c.protocol||c.username||c.password)throw Error("Sandbox public URL must be an absolute HTTP(S) URL without credentials");if("https:"===b.protocol&&"https:"!==c.protocol)throw Error("HTTPS FLUJO deployments require an HTTPS MCP Apps sandbox URL")}else{if("http:"!==b.protocol)throw Error("MCP Apps on HTTPS require FLUJO_MCP_APP_SANDBOX_PUBLIC_URL to be configured");if(!Number.isInteger(a.port)||a.port<1||a.port>65535)throw Error("Sandbox endpoint discovery returned an invalid port");(c=new URL("/sandbox.html",b.origin)).port=String(a.port)}if(c.origin===b.origin)throw Error("MCP Apps sandbox must use a distinct origin from FLUJO");return c.searchParams.set("token",a.token),c.href}(await D,window.location)}function F(a,b){let c=[],d=new Set;for(let e of a??[]){if(0===e.length||e.length>2048||/[^\x21-\x7e]/.test(e))continue;let a=/^(https|wss):\/\/(\*\.)?([^/:?#]+)(?::(\d{1,5}))?$/i.exec(e);if(!a||!b.includes(a[1].toLowerCase()))continue;let f=a[3].split(".");if(a[3].length>253||f.some(a=>0===a.length||a.length>63||!/^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i.test(a)))continue;let g=a[4]?Number(a[4]):void 0;if(void 0!==g&&(!Number.isInteger(g)||g<1||g>65535))continue;let h=e.toLowerCase();if(!d.has(h)&&(d.add(h),c.push(e),c.length>=64))break}return c}function G(a){if(a)try{return JSON.parse(a)}catch{return}}async function H(a,b,c,d,e){if(await a.sendToolInput({arguments:function(a){let b=G(a);return b&&"object"==typeof b&&!Array.isArray(b)?b:{}}(b)}),void 0!==d)return void await a.sendToolCancelled({reason:d});let f=function(a,b){if(void 0===a)return!0===b?{content:[],isError:!0}:null;let c=G(a);return c&&"object"==typeof c&&Array.isArray(c.content)?{...c,...!0===b?{isError:!0}:{}}:{content:[{type:"text",text:a}],...!0===b?{isError:!0}:{}}}(c,e);f&&await a.sendToolResult(f)}function I(a,b,c){return b.includes(a)&&c.includes(a)}function J(a,b){let c=a.getBoundingClientRect(),d=Math.max(1,Math.round(c.width||a.clientWidth||1));return b?{width:d,height:Math.max(1,Math.round(c.height||a.clientHeight||1))}:{width:d,maxHeight:6e3}}async function K(a,b,c){try{let d=await u.S.listServerTools(a),e=Array.isArray(d.tools)?d.tools:[],f=c?e.find(a=>a?.name===c):e.find(a=>(0,v.Gt)(a?._meta)===b);if(f?.name&&f?.inputSchema&&(0,v.Gt)(f._meta)===b)return{tool:f}}catch(a){w.debug("Could not resolve the full MCP App tool definition",a)}}let L=({serverName:a,uri:b,toolName:c,toolArgs:D,toolResultContent:G,toolUpdateId:L,toolCancelledReason:M,toolIsError:N,onAppMessage:O,onUpdateModelContext:P,onRequestDock:Q,onDockable:R,onAvailableDisplayModes:S,hostDisplayMode:T,onRequestDisplayMode:U,onRequestClose:V,onRegisterTeardown:W,teardownRegistrationKey:X,docked:Y=!1,visible:Z=!0})=>{let $=(0,f.A)(),[_,aa]=(0,e.useState)(!1),[ab,ac]=(0,e.useState)(!1),[ad,ae]=(0,e.useState)(null),[af,ag]=(0,e.useState)(Y?"pip":"inline"),[ah,ai]=(0,e.useState)([]),aj=T??af,ak=(0,e.useMemo)(()=>Y?["pip","fullscreen"]:["inline","fullscreen",...Q?["pip"]:[]],[Y,Q]),al=(0,e.useRef)(null),am=(0,e.useRef)(null),an=(0,e.useRef)(null),ao=(0,e.useRef)(!1),ap=(0,e.useRef)(0),aq=(0,e.useRef)(!1),ar=(0,e.useRef)(null),as=(0,e.useRef)(null),at=(0,e.useRef)(!1),au=(0,e.useRef)(!0),av=(0,e.useRef)([]),aw=(0,e.useRef)(aj),ax=(0,e.useRef)(ak),ay=(0,e.useRef)(Promise.resolve()),az=(0,e.useRef)(void 0),aA=(0,e.useRef)({args:D,resultContent:G,cancelledReason:M,isError:N,updateId:L});aA.current={args:D,resultContent:G,cancelledReason:M,isError:N,updateId:L};let aB=(0,e.useRef)(O);(0,e.useEffect)(()=>{aB.current=O},[O]);let aC=(0,e.useRef)(P);(0,e.useEffect)(()=>{aC.current=P},[P]);let aD=(0,e.useRef)(Q);(0,e.useEffect)(()=>{aD.current=Q},[Q]);let aE=(0,e.useRef)(R);(0,e.useEffect)(()=>{aE.current=R},[R]);let aF=(0,e.useRef)(S);(0,e.useEffect)(()=>{aF.current=S},[S]);let aG=(0,e.useRef)(U);(0,e.useEffect)(()=>{aG.current=U},[U]);let aH=(0,e.useRef)(V);(0,e.useEffect)(()=>{aH.current=V},[V]);let aI=(0,e.useRef)(Y);(0,e.useEffect)(()=>{aI.current=Y},[Y]),(0,e.useEffect)(()=>{aw.current=aj},[aj]),(0,e.useEffect)(()=>{ax.current=ak},[ak]);let aJ=(0,e.useCallback)(()=>{if(as.current)return as.current;ap.current+=1;let a=an.current,b=am.current,c=aq.current;an.current=null,am.current=null,aq.current=!1,ao.current=!1,av.current=[],ar.current?.disconnect(),ar.current=null;let d=(async()=>{if(a&&c){let b;try{await Promise.race([a.teardownResource({},{timeout:1e3}),new Promise(a=>{b=setTimeout(a,1e3)})])}catch(a){w.debug("MCP App did not acknowledge resource teardown",a)}finally{b&&clearTimeout(b)}}try{await a?.close()}catch{}b?.remove()})();return as.current=d,d.finally(()=>{as.current===d&&(as.current=null)}),d},[]),aK=(0,e.useCallback)(()=>{!at.current&&aD.current&&(at.current=!0,aJ().then(()=>{au.current&&(aD.current?.(),aa(!1))}).finally(()=>{at.current=!1}))},[aJ]),aL=(0,e.useCallback)((a,b,c,d,e)=>{ay.current=ay.current.catch(()=>void 0).then(async()=>{an.current===a&&aq.current&&await H(a,b,c,d,e)}).catch(a=>{w.warn("MCP App tool delivery failed",a)})},[]),aM=(0,e.useCallback)(async()=>{if(as.current&&await as.current,ao.current||!al.current)return;let d=ap.current+1;ap.current=d;let e=()=>ap.current===d&&ao.current;ao.current=!0,ai([]),ac(!0),ae(null);try{let f,[g,h]=await Promise.all([u.S.readResourceFromApp(a,b),K(a,b,c)]);if(!e())return;if(g?.httpStatus===403)throw Error(g?.error||"MCP Apps access was disabled for this server");if(!g||!1===g.success)throw Error(g?.error||"Failed to read the UI resource.");let i=function(a,b){var c;let d,e=a?.contents;if(!Array.isArray(e)||0===e.length)throw Error("Resource has no contents");let f=e.find(a=>a.uri===b&&"string"==typeof a.mimeType&&(0,v.q$)(a.mimeType)&&("string"==typeof a.text||"string"==typeof a.blob));if(!f)throw Error(`Resource ${b} did not return MCP App HTML`);try{d="string"==typeof f.text?f.text:function(a){let b=Uint8Array.from(atob(a),a=>a.charCodeAt(0));return new TextDecoder("utf-8",{fatal:!0}).decode(b)}(f.blob)}catch{throw Error(`Resource ${b} contains invalid base64 UTF-8 HTML`)}if(new TextEncoder().encode(d).length>v.Pt)throw Error(`Resource exceeds the ${Math.round(v.Pt/1024)} KiB size cap`);let g=(f._meta??f.meta)?.ui,h=t.c0.safeParse(g?.csp);if(g?.csp!==void 0&&!h.success)throw Error(`Resource ${b} declares an invalid CSP policy`);let i=t.Ml.safeParse(g?.permissions);if(g?.permissions!==void 0&&!i.success)throw Error(`Resource ${b} declares invalid sandbox permissions`);return{html:d,csp:h.success?{connectDomains:F((c=h.data).connectDomains,["https","wss"]),resourceDomains:F(c.resourceDomains,["https"]),frameDomains:F(c.frameDomains,["https"]),baseUriDomains:F(c.baseUriDomains,["https"])}:void 0,permissions:i.success&&i.data.clipboardWrite?{clipboardWrite:{}}:void 0}}(g.data,b),j=await E();if(!e()||!al.current)return;let k=document.createElement("iframe");k.title=`MCP App: ${b}`,k.setAttribute("sandbox","allow-scripts allow-same-origin"),k.referrerPolicy="origin";let l=(0,t.Sy)(i.permissions);l&&k.setAttribute("allow",l),k.style.cssText=aI.current?"width:100%;height:100%;border:none;background:#fff;":"width:100%;min-height:120px;height:200px;border:none;border-radius:4px;background:#fff;",al.current.appendChild(k),am.current=k;let m=new URL(j);i.csp&&m.searchParams.set("csp",JSON.stringify(i.csp));let n=m.origin,o=new Promise((a,b)=>{let c=setTimeout(()=>{window.removeEventListener("message",d),b(Error("Timed out waiting for the sandbox proxy."))},1e4),d=b=>{b.source===k.contentWindow&&b.origin===n&&b.data?.jsonrpc==="2.0"&&b.data?.method==="ui/notifications/sandbox-proxy-ready"&&(clearTimeout(c),window.removeEventListener("message",d),a())};window.addEventListener("message",d)});if(k.src=m.href,await o,!e()||am.current!==k)return;let p=aw.current,q="inline";aw.current=q,f=new t.T1(function(a,b){return{getServerCapabilities:()=>({tools:{},resources:{}}),setNotificationHandler:()=>{},request:async(c,d,e)=>{let{method:f,params:g}=c;if("tools/call"===f){w.info(`MCP App tools/call: ${a}/${g?.name}`);let c=await u.S.callToolFromApp(a,g.name,g.arguments??{},void 0,e?.signal);if(c?.httpStatus===403){let a=c?.error||"MCP Apps access was disabled for this server";throw b(a),Error(a)}if(!c||!1===c.success)throw Error(c?.error||`Tool call failed: ${g?.name}`);return c.data}if("resources/read"===f){let c=await u.S.readResourceFromApp(a,g.uri);if(c?.httpStatus===403){let a=c?.error||"MCP Apps access was disabled for this server";throw b(a),Error(a)}if(!c||!1===c.success)throw Error(c?.error||`Resource read failed: ${g?.uri}`);return c.data}if("resources/list"===f)return{resources:[]};if("resources/templates/list"===f)return{resourceTemplates:[]};throw Error(`MCP App requested unsupported method: ${f}`)}}}(a,a=>{ap.current===d&&an.current===f&&(ae(a),ac(!1),aJ())}),x,{openLinks:{},serverTools:{},serverResources:{},logging:{},...aB.current?{message:{text:{}}}:{},...aC.current?{updateModelContext:{text:{},structuredContent:{}}}:{},sandbox:{csp:i.csp,permissions:i.permissions}},{hostContext:{...h?{toolInfo:h}:{},theme:"dark"===$.palette.mode?"dark":"light",platform:"web",displayMode:q,availableDisplayModes:ax.current,containerDimensions:J(al.current,aI.current),locale:navigator.language,timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,userAgent:navigator.userAgent,deviceCapabilities:{touch:navigator.maxTouchPoints>0,hover:window.matchMedia?.("(hover: hover)").matches??!1}}}),an.current=f;let r=()=>e()&&an.current===f;if(f.onopenlink=async({url:c})=>{if(!r())return{isError:!0};let d=function(a){try{let b=new URL(a);if(!y.has(b.protocol)||b.username||b.password)return null;return b.href}catch{return null}}(c);if(!d)return w.warn("MCP App open-link rejected by URL policy",{serverName:a,uri:b}),{isError:!0};let e=window.open(d,"_blank","noopener,noreferrer");return e?(e.opener=null,{}):{isError:!0}},f.ondownloadfile=async({contents:a})=>{if(!r())return{isError:!0};try{for(let b of a??[]){let a,c=b?.resource;if(!c)continue;let d=("string"==typeof c.uri?c.uri.split("/").pop():"")||"download",e="string"==typeof c.mimeType?c.mimeType:"application/octet-stream";if("string"==typeof c.blob){let b=Uint8Array.from(atob(c.blob),a=>a.charCodeAt(0));a=new Blob([b],{type:e})}else a=new Blob([String(c.text??"")],{type:e});let f=URL.createObjectURL(a),g=document.createElement("a");g.href=f,g.download=d,document.body.appendChild(g),g.click(),g.remove(),setTimeout(()=>URL.revokeObjectURL(f),4e3)}return{}}catch(a){return w.warn("MCP App download failed",a),{isError:!0}}},f.onloggingmessage=a=>{r()&&w.debug("MCP App log",a?.data)},f.onmessage=async a=>{if(!r())return{};if(!aB.current)throw Error("This host cannot deliver ui/message in this surface");let b=function(a){if(a?.role!=="user")throw Error('This host accepts ui/message only with role "user"');let b=a?.content,c=Array.isArray(b)?b:b&&"object"==typeof b?[b]:[];if(0===c.length||c.some(a=>a?.type!=="text"||"string"!=typeof a.text))throw Error("This host accepts text-only ui/message content");let d=c.map(a=>a.text).join("\n").trim();if(!d)throw Error("ui/message text must not be empty");return d}(a);if(!await aB.current(b))throw Error("ui/message was not delivered");return{}},f.onupdatemodelcontext=async c=>{if(!r())return{};let d=function(a){if(!a||"object"!=typeof a||Array.isArray(a))return"ui/update-model-context params must be an object";if(void 0!==a.content){if(!Array.isArray(a.content))return"Model context content must be an array";for(let b of a.content)if(!b||"object"!=typeof b||Array.isArray(b)||!A.has(b.type))return"Model context contains a modality this host did not advertise"}return void 0!==a.structuredContent&&(!a.structuredContent||"object"!=typeof a.structuredContent||Array.isArray(a.structuredContent))?"Model structuredContent must be an object":C(a)>B?`Model context exceeds ${B} bytes`:null}(c);if(d)throw Error(d);let e=`${a}::${b}`;if(!aC.current)throw Error("This host cannot preserve model context in this surface");if(!await aC.current(e,c))throw Error("MCP App model context was not stored");return{}},f.onsizechange=async({width:a,height:b})=>{if(!r()||aI.current)return;let c=al.current?.getBoundingClientRect().width||al.current?.clientWidth||0,d=function(a,b){let c={};if(Number.isFinite(a.width)&&a.width>0){let d=Number.isFinite(b)&&b>0?b:6e3;c.width=Math.min(a.width,d,6e3)}return Number.isFinite(a.height)&&a.height>0&&(c.height=Math.min(a.height,6e3)),c}({width:a,height:b},c);void 0!==d.height&&(k.style.height=`${d.height}px`),void 0!==d.width&&(k.style.width=`${d.width}px`,k.style.maxWidth="100%")},f.onrequestdisplaymode=async({mode:a})=>{if(!r())return{mode:aw.current};let b=aw.current,c=av.current;if(!I(a,ax.current,c))return{mode:b};if("pip"===a&&!aI.current&&aD.current)return setTimeout(aK,0),{mode:b};let d=b;return(d=aG.current?await aG.current(a,[...c]):a)===b||I(d,ax.current,c)||(d=b),d!==b&&(aw.current=d,ag(d),await f.sendHostContextChange({displayMode:d})),{mode:d}},f.onrequestteardown=()=>{r()&&aJ().finally(()=>{aH.current?aH.current():(aw.current="inline",ag("inline"),aa(!1))})},f.oninitialized=()=>{if(!r())return;let a=f.getAppCapabilities()?.availableDisplayModes,b=Array.isArray(a)?[...new Set(a.filter(a=>z.includes(a)))]:[];av.current=b,ai(b),aE.current?.(b.includes("pip")),aF.current?.([...b]),aq.current=!0;let c=function(a,b,c,d){return b?I("pip",c,d)?"fullscreen"===a&&I("fullscreen",c,d)?"fullscreen":"pip":null:"fullscreen"===a&&I("fullscreen",c,d)?"fullscreen":"inline"}(p,aI.current,ax.current,b);if(null===c){ae("This app does not declare support for the canvas (pip) display mode."),ac(!1),aJ();return}aw.current=c,ag(c),c!==q&&f.sendHostContextChange({displayMode:c});let d=al.current;if(d&&"undefined"!=typeof ResizeObserver){let a=()=>{if(!r()||!aq.current)return;let a=d.getBoundingClientRect();a.width<=0||aI.current&&a.height<=0||f.sendHostContextChange({containerDimensions:J(d,aI.current)})};ar.current?.disconnect(),ar.current=new ResizeObserver(a),ar.current.observe(d),a()}let e=aA.current;az.current=e.updateId??`${e.args??""}\u0000${e.resultContent??""}\u0000${e.cancelledReason??""}\u0000${e.isError??""}`,(void 0!==e.args||void 0!==e.resultContent||void 0!==e.cancelledReason||!0===e.isError)&&aL(f,e.args,e.resultContent,e.cancelledReason,e.isError),ac(!1)},await f.connect(function(a,b){let c=new t.hJ(a,b),d={start:async()=>{c.onmessage=(a,b)=>{d.onmessage?.("ui/message"!==a.method||!a.params||Array.isArray(a.params.content)||!a.params.content||"object"!=typeof a.params.content?a:{...a,params:{...a.params,content:[a.params.content]}},b)},c.onerror=a=>d.onerror?.(a),c.onclose=()=>d.onclose?.(),await c.start()},send:(a,b)=>c.send(a,b),close:()=>c.close(),setProtocolVersion:a=>c.setProtocolVersion?.(a)};return d}(k.contentWindow,k.contentWindow)),!r())return;await f.sendSandboxResourceReady({html:i.html,csp:i.csp,permissions:i.permissions})}catch(c){if(!e())return;w.warn(`Failed to mount MCP App ${b} from ${a}`,c),ae(c instanceof Error?c.message:"Failed to load the app."),ac(!1),aJ()}},[aK,aL,a,aJ,$.palette.mode,c,b]),aN=(0,e.useCallback)(()=>{let a=!_;a||"fullscreen"!==aw.current||(aw.current="inline",ag("inline"),an.current?.sendHostContextChange({displayMode:"inline"})),aa(a),a&&setTimeout(()=>{aM()},0)},[_,aM]);if((0,e.useEffect)(()=>{Y&&!ao.current&&aM()},[Y,aM]),(0,e.useEffect)(()=>{let a=L??`${D??""}\u0000${G??""}\u0000${M??""}\u0000${N??""}`;aq.current&&an.current&&a!==az.current&&(az.current=a,aJ().then(()=>{au.current&&(aI.current||_)&&aM()}))},[_,aM,aJ,D,M,N,G,L]),(0,e.useEffect)(()=>{T&&aq.current&&an.current&&aw.current!==T&&I(T,ax.current,av.current)&&(aw.current=T,ag(T),an.current.sendHostContextChange({displayMode:T}))},[T]),(0,e.useEffect)(()=>{aq.current&&an.current&&an.current?.sendHostContextChange({theme:"dark"===$.palette.mode?"dark":"light"})},[$.palette.mode]),(0,e.useEffect)(()=>{let c=X??`${a}::${b}`;return W?.(c,aJ),()=>W?.(c,null)},[W,a,aJ,X,b]),(0,e.useEffect)(()=>{let b=b=>{let c=b.detail;c?.serverName===a&&(c.config?.enableMcpApps===!1||c.config?.disabled===!0)&&(ae("MCP Apps access was disabled for this server."),ac(!1),aJ().finally(()=>{aI.current&&aH.current?.()}))};return window.addEventListener("flujo:mcp-server-config-changed",b),()=>{window.removeEventListener("flujo:mcp-server-config-changed",b)}},[a,aJ]),(0,e.useEffect)(()=>(au.current=!0,()=>{au.current=!1,aJ()}),[aJ]),Y)return(0,d.jsxs)(g.default,{sx:{height:"100%",width:"100%",minHeight:0,display:"flex",visibility:Z?"visible":"hidden",pointerEvents:Z?"auto":"none",flexDirection:"column"},children:[ab&&(0,d.jsxs)(g.default,{sx:{display:"flex",alignItems:"center",gap:1,py:2,justifyContent:"center"},children:[(0,d.jsx)(h.default,{size:16,thickness:6}),(0,d.jsx)(i.default,{variant:"body2",color:"text.secondary",children:"Loading the app…"})]}),ad&&(0,d.jsx)(j.A,{severity:"error",sx:{m:1},children:ad}),(0,d.jsx)(g.default,{ref:al,sx:{flex:1,minHeight:0,width:"100%",display:ad?"none":"block"}})]});let aO=ah.includes("inline")&&ah.includes("fullscreen")&&ak.includes("fullscreen"),aP=ah.includes("inline")&&ah.includes("pip")&&ak.includes("pip")&&!!Q;return(0,d.jsxs)(g.default,{sx:{mt:1,border:"1px solid",borderColor:"divider",borderRadius:1,overflow:"hidden",..."fullscreen"===af?{position:"fixed",inset:16,zIndex:1300,bgcolor:"background.paper",boxShadow:6}:{}},children:[(0,d.jsxs)(g.default,{sx:{display:"flex",alignItems:"center",gap:1,px:1,py:.5,bgcolor:"action.hover"},children:[(0,d.jsx)(n.A,{fontSize:"small",color:"primary"}),(0,d.jsxs)(i.default,{variant:"body2",sx:{fontWeight:500},children:["Interactive app from ",a]}),(0,d.jsx)(k.A,{title:"Runs in a separate-origin sandbox (no access to FLUJO's origin, cookies, storage, or DOM). Its tool calls are brokered through this server only.",children:(0,d.jsx)(o.A,{fontSize:"small",color:"action"})}),(0,d.jsx)(g.default,{sx:{flex:1}}),_&&aP&&(0,d.jsx)(l.A,{size:"small",onClick:aK,children:"Canvas"}),_&&(0,d.jsx)(k.A,{title:aO?"fullscreen"===af?"Exit fullscreen":"Fullscreen":"This app did not declare inline and fullscreen support",children:(0,d.jsx)("span",{children:(0,d.jsx)(l.A,{size:"small",disabled:!aO,onClick:()=>{let a="fullscreen"===af?"inline":"fullscreen";I(a,ak,ah)&&(aw.current=a,ag(a),an.current?.sendHostContextChange({displayMode:a}))},sx:{minWidth:0},children:"fullscreen"===af?(0,d.jsx)(s.A,{fontSize:"small"}):(0,d.jsx)(r.A,{fontSize:"small"})})})}),(0,d.jsx)(l.A,{size:"small",onClick:aN,startIcon:_?(0,d.jsx)(q.A,{}):(0,d.jsx)(p.A,{}),children:_?"Hide":"Open app"})]}),(0,d.jsx)(m.A,{in:_,onExited:()=>{aJ()},children:(0,d.jsxs)(g.default,{sx:{p:1,height:"fullscreen"===af?"calc(100vh - 100px)":"auto"},children:[ab&&(0,d.jsxs)(g.default,{sx:{display:"flex",alignItems:"center",gap:1,py:2,justifyContent:"center"},children:[(0,d.jsx)(h.default,{size:16,thickness:6}),(0,d.jsx)(i.default,{variant:"body2",color:"text.secondary",children:"Loading the app…"})]}),ad&&(0,d.jsx)(j.A,{severity:"error",sx:{my:1},children:ad}),(0,d.jsx)(g.default,{ref:al,sx:{width:"100%",height:"fullscreen"===af?"100%":"auto",display:ad?"none":"block"}})]})})]})}},59060:(a,b,c)=>{c.d(b,{Gt:()=>h,Pt:()=>e,q$:()=>g});let d="ui://",e=2097152;function f(a){return"string"==typeof a&&a.length>d.length&&a.slice(0,d.length).toLowerCase()===d&&!/\s/.test(a)}function g(a){if("string"!=typeof a)return!1;let[b,...c]=a.toLowerCase().split(";");if("text/html"!==b.trim())return!1;let d=!1;for(let a of c){let b=a.indexOf("=");if(b<=0)return!1;let c=a.slice(0,b).trim(),e=a.slice(b+1).trim();if(!c||!e)return!1;if("profile"===c){if(d||"mcp-app"!==e)return!1;d=!0}}return d}function h(a){if(!a||"object"!=typeof a)return;let b=a["ui/resourceUri"];if(f(b))return b;for(let b of[a.ui,a["io.modelcontextprotocol/ui"]])if(b&&"object"==typeof b){let a=b.resourceUri;if(f(a))return a}}},82571:(a,b,c)=>{c.d(b,{Hm:()=>f,xc:()=>e,yo:()=>g});let d=["key","secret","token","password"],e=a=>d.some(b=>a.toLowerCase().includes(b)),f=a=>e(a)||"authorization"===a.trim().toLowerCase(),g=a=>{if(!a)return a;if(a.includes("_-_-_")){let b=a.split("_-_-_");return 3===b.length?b[2]:a}let b=/^mcp_(.+)_[0-9a-z]+$/.exec(a);if(b&&b[1])return b[1];let c=a.indexOf("__");return c>0&&c+2<a.length?a.slice(c+2):a}}};