flujo-ai 3.10.0 → 3.11.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 (260) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +110 -110
  3. package/.next/app-path-routes-manifest.json +5 -5
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +15 -15
  6. package/.next/react-loadable-manifest.json +7 -7
  7. package/.next/server/app/_not-found/page.js +1 -1
  8. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  9. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/_not-found.html +1 -1
  11. package/.next/server/app/_not-found.rsc +1 -1
  12. package/.next/server/app/api/backup/route.js +1 -1
  13. package/.next/server/app/api/backup/route.js.nft.json +1 -1
  14. package/.next/server/app/api/backup/route_client-reference-manifest.js +1 -1
  15. package/.next/server/app/api/browse/route.js +1 -2
  16. package/.next/server/app/api/browse/route.js.nft.json +1 -1
  17. package/.next/server/app/api/browse/route_client-reference-manifest.js +1 -1
  18. package/.next/server/app/api/cwd/route.js +1 -2
  19. package/.next/server/app/api/cwd/route.js.nft.json +1 -1
  20. package/.next/server/app/api/cwd/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/encryption/secure/route.js +1 -1
  22. package/.next/server/app/api/encryption/secure/route.js.nft.json +1 -1
  23. package/.next/server/app/api/encryption/secure/route_client-reference-manifest.js +1 -1
  24. package/.next/server/app/api/env/route.js +2 -2
  25. package/.next/server/app/api/env/route.js.nft.json +1 -1
  26. package/.next/server/app/api/env/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/flow/[id]/route.js +1 -1
  28. package/.next/server/app/api/flow/[id]/route.js.nft.json +1 -1
  29. package/.next/server/app/api/flow/[id]/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/flow/prompt-renderer/route.js +2 -2
  31. package/.next/server/app/api/flow/prompt-renderer/route.js.nft.json +1 -1
  32. package/.next/server/app/api/flow/prompt-renderer/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/flow/route.js +1 -1
  34. package/.next/server/app/api/flow/route.js.nft.json +1 -1
  35. package/.next/server/app/api/flow/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/git/route.js +4 -5
  37. package/.next/server/app/api/git/route.js.nft.json +1 -1
  38. package/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/init/route.js +1 -1
  40. package/.next/server/app/api/init/route.js.nft.json +1 -1
  41. package/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/mcp/cancel/route.js +2 -2
  43. package/.next/server/app/api/mcp/cancel/route.js.nft.json +1 -1
  44. package/.next/server/app/api/mcp/cancel/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js +1 -1
  46. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js.nft.json +1 -1
  47. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route_client-reference-manifest.js +1 -1
  48. package/.next/server/app/api/mcp/servers/[name]/prompts/route.js +1 -1
  49. package/.next/server/app/api/mcp/servers/[name]/prompts/route.js.nft.json +1 -1
  50. package/.next/server/app/api/mcp/servers/[name]/prompts/route_client-reference-manifest.js +1 -1
  51. package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js +1 -1
  52. package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js.nft.json +1 -1
  53. package/.next/server/app/api/mcp/servers/[name]/resources/read/route_client-reference-manifest.js +1 -1
  54. package/.next/server/app/api/mcp/servers/[name]/resources/route.js +1 -1
  55. package/.next/server/app/api/mcp/servers/[name]/resources/route.js.nft.json +1 -1
  56. package/.next/server/app/api/mcp/servers/[name]/resources/route_client-reference-manifest.js +1 -1
  57. package/.next/server/app/api/mcp/servers/[name]/route.js +1 -1
  58. package/.next/server/app/api/mcp/servers/[name]/route.js.nft.json +1 -1
  59. package/.next/server/app/api/mcp/servers/[name]/route_client-reference-manifest.js +1 -1
  60. package/.next/server/app/api/mcp/servers/[name]/status/route.js +1 -1
  61. package/.next/server/app/api/mcp/servers/[name]/status/route.js.nft.json +1 -1
  62. package/.next/server/app/api/mcp/servers/[name]/status/route_client-reference-manifest.js +1 -1
  63. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js +1 -1
  64. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js.nft.json +1 -1
  65. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route_client-reference-manifest.js +1 -1
  66. package/.next/server/app/api/mcp/servers/[name]/tools/route.js +1 -1
  67. package/.next/server/app/api/mcp/servers/[name]/tools/route.js.nft.json +1 -1
  68. package/.next/server/app/api/mcp/servers/[name]/tools/route_client-reference-manifest.js +1 -1
  69. package/.next/server/app/api/mcp/servers/route.js +1 -1
  70. package/.next/server/app/api/mcp/servers/route.js.nft.json +1 -1
  71. package/.next/server/app/api/mcp/servers/route_client-reference-manifest.js +1 -1
  72. package/.next/server/app/api/mcp/test-connection/route.js +1 -1
  73. package/.next/server/app/api/mcp/test-connection/route.js.nft.json +1 -1
  74. package/.next/server/app/api/mcp/test-connection/route_client-reference-manifest.js +1 -1
  75. package/.next/server/app/api/mcp/test-connection/stream/route.js +1 -1
  76. package/.next/server/app/api/mcp/test-connection/stream/route.js.nft.json +1 -1
  77. package/.next/server/app/api/mcp/test-connection/stream/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/mcp-registry/route.js +1 -2
  79. package/.next/server/app/api/mcp-registry/route.js.nft.json +1 -1
  80. package/.next/server/app/api/mcp-registry/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/mcp-registry/spotlight/route.js +1 -1
  82. package/.next/server/app/api/mcp-registry/spotlight/route.js.nft.json +1 -1
  83. package/.next/server/app/api/mcp-registry/spotlight/route_client-reference-manifest.js +1 -1
  84. package/.next/server/app/api/model/[id]/route.js +1 -1
  85. package/.next/server/app/api/model/[id]/route.js.nft.json +1 -1
  86. package/.next/server/app/api/model/[id]/route_client-reference-manifest.js +1 -1
  87. package/.next/server/app/api/model/provider/route.js +2 -2
  88. package/.next/server/app/api/model/provider/route.js.nft.json +1 -1
  89. package/.next/server/app/api/model/provider/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/model/route.js +1 -1
  91. package/.next/server/app/api/model/route.js.nft.json +1 -1
  92. package/.next/server/app/api/model/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/model/test/route.js +2 -2
  94. package/.next/server/app/api/model/test/route.js.nft.json +1 -1
  95. package/.next/server/app/api/model/test/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/oauth/callback/route.js +2 -2
  97. package/.next/server/app/api/oauth/callback/route.js.nft.json +1 -1
  98. package/.next/server/app/api/oauth/callback/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/oauth/initiate/route.js +2 -2
  100. package/.next/server/app/api/oauth/initiate/route.js.nft.json +1 -1
  101. package/.next/server/app/api/oauth/initiate/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/oauth/reset/route.js +2 -2
  103. package/.next/server/app/api/oauth/reset/route.js.nft.json +1 -1
  104. package/.next/server/app/api/oauth/reset/route_client-reference-manifest.js +1 -1
  105. package/.next/server/app/api/planned-executions/[id]/route.js +1 -1
  106. package/.next/server/app/api/planned-executions/[id]/route.js.nft.json +1 -1
  107. package/.next/server/app/api/planned-executions/[id]/route_client-reference-manifest.js +1 -1
  108. package/.next/server/app/api/planned-executions/[id]/run/route.js +1 -1
  109. package/.next/server/app/api/planned-executions/[id]/run/route.js.nft.json +1 -1
  110. package/.next/server/app/api/planned-executions/[id]/run/route_client-reference-manifest.js +1 -1
  111. package/.next/server/app/api/planned-executions/[id]/runs/route.js +1 -1
  112. package/.next/server/app/api/planned-executions/[id]/runs/route.js.nft.json +1 -1
  113. package/.next/server/app/api/planned-executions/[id]/runs/route_client-reference-manifest.js +1 -1
  114. package/.next/server/app/api/planned-executions/preview-schedule/route.js +1 -2
  115. package/.next/server/app/api/planned-executions/preview-schedule/route.js.nft.json +1 -1
  116. package/.next/server/app/api/planned-executions/preview-schedule/route_client-reference-manifest.js +1 -1
  117. package/.next/server/app/api/planned-executions/route.js +1 -1
  118. package/.next/server/app/api/planned-executions/route.js.nft.json +1 -1
  119. package/.next/server/app/api/planned-executions/route_client-reference-manifest.js +1 -1
  120. package/.next/server/app/api/restore/route.js +1 -1
  121. package/.next/server/app/api/restore/route.js.nft.json +1 -1
  122. package/.next/server/app/api/restore/route_client-reference-manifest.js +1 -1
  123. package/.next/server/app/api/storage/route.js +1 -1
  124. package/.next/server/app/api/storage/route.js.nft.json +1 -1
  125. package/.next/server/app/api/storage/route_client-reference-manifest.js +1 -1
  126. package/.next/server/app/api/update/route.js +1 -2
  127. package/.next/server/app/api/update/route.js.nft.json +1 -1
  128. package/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  129. package/.next/server/app/api/webhooks/[id]/route.js +1 -1
  130. package/.next/server/app/api/webhooks/[id]/route.js.nft.json +1 -1
  131. package/.next/server/app/api/webhooks/[id]/route_client-reference-manifest.js +1 -1
  132. package/.next/server/app/chat/page.js +1 -1
  133. package/.next/server/app/chat/page.js.nft.json +1 -1
  134. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  135. package/.next/server/app/chat.html +1 -1
  136. package/.next/server/app/chat.rsc +2 -2
  137. package/.next/server/app/docs/page.js +1 -1
  138. package/.next/server/app/docs/page.js.nft.json +1 -1
  139. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  140. package/.next/server/app/docs.html +1 -1
  141. package/.next/server/app/docs.rsc +1 -1
  142. package/.next/server/app/executions/page.js +1 -1
  143. package/.next/server/app/executions/page.js.nft.json +1 -1
  144. package/.next/server/app/executions/page_client-reference-manifest.js +1 -1
  145. package/.next/server/app/executions.html +1 -1
  146. package/.next/server/app/executions.rsc +1 -1
  147. package/.next/server/app/flows/page.js +1 -1
  148. package/.next/server/app/flows/page.js.nft.json +1 -1
  149. package/.next/server/app/flows/page_client-reference-manifest.js +1 -1
  150. package/.next/server/app/flows.html +1 -1
  151. package/.next/server/app/flows.rsc +1 -1
  152. package/.next/server/app/index.html +1 -1
  153. package/.next/server/app/index.rsc +2 -2
  154. package/.next/server/app/mcp/page.js +1 -1
  155. package/.next/server/app/mcp/page.js.nft.json +1 -1
  156. package/.next/server/app/mcp/page_client-reference-manifest.js +1 -1
  157. package/.next/server/app/mcp-flows/route.js +1 -1
  158. package/.next/server/app/mcp-flows/route.js.nft.json +1 -1
  159. package/.next/server/app/mcp-flows/route_client-reference-manifest.js +1 -1
  160. package/.next/server/app/mcp-proxy/[server]/route.js +1 -1
  161. package/.next/server/app/mcp-proxy/[server]/route.js.nft.json +1 -1
  162. package/.next/server/app/mcp-proxy/[server]/route_client-reference-manifest.js +1 -1
  163. package/.next/server/app/mcp.html +1 -1
  164. package/.next/server/app/mcp.rsc +2 -2
  165. package/.next/server/app/models/page.js +2 -2
  166. package/.next/server/app/models/page.js.nft.json +1 -1
  167. package/.next/server/app/models/page_client-reference-manifest.js +1 -1
  168. package/.next/server/app/page.js +1 -1
  169. package/.next/server/app/page.js.nft.json +1 -1
  170. package/.next/server/app/page_client-reference-manifest.js +1 -1
  171. package/.next/server/app/settings/page.js +2 -2
  172. package/.next/server/app/settings/page.js.nft.json +1 -1
  173. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  174. package/.next/server/app/settings.html +1 -1
  175. package/.next/server/app/settings.rsc +2 -2
  176. package/.next/server/app/v1/chat/completions/route.js +2 -2
  177. package/.next/server/app/v1/chat/completions/route.js.nft.json +1 -1
  178. package/.next/server/app/v1/chat/completions/route_client-reference-manifest.js +1 -1
  179. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js +1 -1
  180. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js.nft.json +1 -1
  181. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route_client-reference-manifest.js +1 -1
  182. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js +2 -2
  183. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js.nft.json +1 -1
  184. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route_client-reference-manifest.js +1 -1
  185. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js +1 -1
  186. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js.nft.json +1 -1
  187. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route_client-reference-manifest.js +1 -1
  188. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js +1 -1
  189. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js.nft.json +1 -1
  190. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route_client-reference-manifest.js +1 -1
  191. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js +1 -1
  192. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js.nft.json +1 -1
  193. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route_client-reference-manifest.js +1 -1
  194. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js +6 -6
  195. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js.nft.json +1 -1
  196. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route_client-reference-manifest.js +1 -1
  197. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js +1 -1
  198. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js.nft.json +1 -1
  199. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route_client-reference-manifest.js +1 -1
  200. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js +2 -2
  201. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js.nft.json +1 -1
  202. package/.next/server/app/v1/chat/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
  203. package/.next/server/app/v1/chat/conversations/route.js +2 -2
  204. package/.next/server/app/v1/chat/conversations/route.js.nft.json +1 -1
  205. package/.next/server/app/v1/chat/conversations/route_client-reference-manifest.js +1 -1
  206. package/.next/server/app/v1/models/route.js +2 -2
  207. package/.next/server/app/v1/models/route.js.nft.json +1 -1
  208. package/.next/server/app/v1/models/route_client-reference-manifest.js +1 -1
  209. package/.next/server/app-paths-manifest.json +5 -5
  210. package/.next/server/chunks/{5873.js → 1331.js} +3 -3
  211. package/.next/server/chunks/1403.js +2 -2
  212. package/.next/server/chunks/1692.js +1 -1
  213. package/.next/server/chunks/1905.js +2 -2
  214. package/.next/server/chunks/{5547.js → 2287.js} +2 -2
  215. package/.next/server/chunks/3984.js +2 -2
  216. package/.next/server/chunks/4706.js +1 -1
  217. package/.next/server/chunks/4729.js +2 -2
  218. package/.next/server/chunks/5389.js +4 -4
  219. package/.next/server/chunks/5504.js +17 -0
  220. package/.next/server/chunks/5734.js +2 -2
  221. package/.next/server/chunks/7214.js +1 -1
  222. package/.next/server/chunks/724.js +1 -1
  223. package/.next/server/chunks/7506.js +1 -1
  224. package/.next/server/chunks/{473.js → 7731.js} +2 -2
  225. package/.next/server/chunks/{4323.js → 8126.js} +1 -1
  226. package/.next/server/chunks/8739.js +2 -1
  227. package/.next/server/chunks/9343.js +1 -1
  228. package/.next/server/chunks/{120.js → 9387.js} +2 -2
  229. package/.next/server/chunks/{6637.js → 9688.js} +2 -2
  230. package/.next/server/chunks/9938.js +1 -1
  231. package/.next/server/chunks/9989.js +1 -1
  232. package/.next/server/functions-config-manifest.json +2 -2
  233. package/.next/server/middleware-build-manifest.js +1 -1
  234. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  235. package/.next/server/pages/404.html +1 -1
  236. package/.next/server/pages/500.html +1 -1
  237. package/.next/server/server-reference-manifest.js +1 -1
  238. package/.next/server/server-reference-manifest.json +1 -1
  239. package/.next/static/chunks/3217.1a7e24fd70294370.js +1 -0
  240. package/.next/static/chunks/3545.d3a512315a9fce3e.js +1 -0
  241. package/.next/static/chunks/9164-d15e4dab0a1bf282.js +1 -0
  242. package/.next/static/chunks/9195.294887f083b1a11b.js +1 -0
  243. package/.next/static/chunks/app/models/page-d81d2b1fe2f1d063.js +1 -0
  244. package/.next/static/chunks/app/page-6e18a8cd78b2050e.js +1 -0
  245. package/.next/static/chunks/app/settings/page-d03a168f6efbf7fd.js +1 -0
  246. package/.next/static/chunks/{webpack-6f17a022ac16e8bd.js → webpack-63a4c59e84967e90.js} +1 -1
  247. package/.next/trace +7 -7
  248. package/README.md +1 -1
  249. package/package.json +1 -1
  250. package/.next/server/chunks/2181.js +0 -17
  251. package/.next/server/chunks/2372.js +0 -2
  252. package/.next/static/chunks/3217.79ca74c918fc772c.js +0 -1
  253. package/.next/static/chunks/3545.c3fbe14528517a75.js +0 -1
  254. package/.next/static/chunks/9164-81ca1a1bccdc5ed2.js +0 -1
  255. package/.next/static/chunks/9195.01a57af6d6cdf1a5.js +0 -1
  256. package/.next/static/chunks/app/models/page-f43476ea07d5b501.js +0 -1
  257. package/.next/static/chunks/app/page-471879d3918aeeb6.js +0 -1
  258. package/.next/static/chunks/app/settings/page-88f7e1b65a6681ec.js +0 -1
  259. /package/.next/static/{geAgl8xNIf0s1v2mfu4tE → 9Pzu8N65j3JuRQ7zVUtwD}/_buildManifest.js +0 -0
  260. /package/.next/static/{geAgl8xNIf0s1v2mfu4tE → 9Pzu8N65j3JuRQ7zVUtwD}/_ssgManifest.js +0 -0
@@ -1,2 +1,2 @@
1
- exports.id=6637,exports.ids=[4323,6637,9989],exports.modules={947:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"40520b537d1d43f510acbccd60e3e7d42ce215c157":()=>d.c,"60de87c4c5950c080550cb766970e88ae9c9a0ca25":()=>d.G});var d=c(73456)},29715:(a,b,c)=>{"use strict";c.d(b,{N:()=>h});var d=c(91403),e=c(92372),f=c(60184);let g=(0,c(50846).h)("backend/execution/flow/loadConversationState");async function h(a){if(d.FlowExecutor.conversationStates.has(a))return g.debug("Loaded state from memory",{conversationId:a}),d.FlowExecutor.conversationStates.get(a);let b=`conversations/${a}`;try{let c=await (0,e.YM)(b,void 0);if(c)return g.debug("Loaded state from storage",{conversationId:a}),await (0,f.jM)(c),d.FlowExecutor.conversationStates.set(a,c),c}catch(b){g.warn("Error loading conversation state from storage",{conversationId:a,error:b})}}},51669:(a,b)=>{"use strict";function c(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
2
- Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(b,"D",{enumerable:!0,get:function(){return c}})},68633:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{decryptActionBoundArgs:function(){return s},encryptActionBoundArgs:function(){return r}}),c(77925);let d=c(97954),e=c(27825),f=c(47686),g=c(77533),h=c(63033),i=c(26906),j=function(a){return a&&a.__esModule?a:{default:a}}(c(74515)),k=new TextEncoder,l=new TextDecoder,m=void 0,n=void 0;async function o(a,b){let c=await (0,g.getActionEncryptionKey)();if(void 0===c)throw Object.defineProperty(Error("Missing encryption key for Server Action. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E65",enumerable:!1,configurable:!0});let d=atob(b),e=d.slice(0,16),f=d.slice(16),h=l.decode(await (0,g.decrypt)(c,(0,g.stringToUint8Array)(e),(0,g.stringToUint8Array)(f)));if(!h.startsWith(a))throw Object.defineProperty(Error("Invalid Server Action payload: failed to decrypt."),"__NEXT_ERROR_CODE",{value:"E191",enumerable:!1,configurable:!0});return h.slice(a.length)}async function p(a,b){let c=await (0,g.getActionEncryptionKey)();if(void 0===c)throw Object.defineProperty(Error("Missing encryption key for Server Action. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E65",enumerable:!1,configurable:!0});let d=new Uint8Array(16);h.workUnitAsyncStorage.exit(()=>crypto.getRandomValues(d));let e=(0,g.arrayBufferToString)(d.buffer),f=await (0,g.encrypt)(c,d,k.encode(a+b));return btoa(e+(0,g.arrayBufferToString)(f))}var q=function(a){return a[a.Ready=0]="Ready",a[a.Pending=1]="Pending",a[a.Complete=2]="Complete",a}(q||{});let r=j.default.cache(async function a(b,...c){let e=h.workUnitAsyncStorage.getStore(),j=e?(0,h.getCacheSignal)(e):void 0,{clientModules:k}=(0,g.getClientReferenceManifestForRsc)(),l=Error();Error.captureStackTrace(l,a);let n=!1,o=e?(0,i.createHangingInputAbortSignal)(e):void 0,q=0;function r(){0===q&&(q=1,null==j||j.beginRead())}function s(){1===q&&(null==j||j.endRead()),q=2}o&&j&&o.addEventListener("abort",r,{once:!0});let t=await (0,f.streamToString)((0,d.renderToReadableStream)(c,k,{filterStackFrame:m,signal:o,onError(a){(null==o||!o.aborted)&&(n||(n=!0,l.message=a instanceof Error?a.message:String(a)))}}),o);if(n)throw s(),l;if(!e)return p(b,t);r();let u=(0,h.getPrerenderResumeDataCache)(e),v=(0,h.getRenderResumeDataCache)(e),w=b+t,x=(null==u?void 0:u.encryptedBoundArgs.get(w))??(null==v?void 0:v.encryptedBoundArgs.get(w));if(x)return x;let y=await p(b,t);return s(),null==u||u.encryptedBoundArgs.set(w,y),y});async function s(a,b){let c,d=await b,f=h.workUnitAsyncStorage.getStore();if(f){let b=(0,h.getCacheSignal)(f),e=(0,h.getPrerenderResumeDataCache)(f),g=(0,h.getRenderResumeDataCache)(f);(c=(null==e?void 0:e.decryptedBoundArgs.get(d))??(null==g?void 0:g.decryptedBoundArgs.get(d)))||(null==b||b.beginRead(),c=await o(a,d),null==b||b.endRead(),null==e||e.decryptedBoundArgs.set(d,c))}else c=await o(a,d);let{edgeRscModuleMapping:i,rscModuleMapping:j}=(0,g.getClientReferenceManifestForRsc)();return await (0,e.createFromReadableStream)(new ReadableStream({start(a){switch(a.enqueue(k.encode(c)),null==f?void 0:f.type){case"prerender":case"prerender-runtime":f.renderSignal.aborted?a.close():f.renderSignal.addEventListener("abort",()=>a.close(),{once:!0});break;case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"private-cache":case"unstable-cache":case void 0:return a.close()}}}),{findSourceMapURL:n,serverConsumerManifest:{moduleLoading:null,moduleMap:j,serverModuleMap:(0,g.getServerModuleMap)()}})}},73456:(a,b,c)=>{"use strict";c.d(b,{G:()=>l,c:()=>k});var d=c(75879);c(68633);var e=c(50846),f=c(92372),g=c(46480),h=c(58739),i=c(51669);let j=(0,e.h)("backend/utils/resolveGlobalVars");async function k(a){j.debug("Entering resolveGlobalVars method");let b=await (0,f.YM)(g.Z.GLOBAL_ENV_VARS,{}),c=function(a){if(!a||"object"!=typeof a)return!1;let b=Object.keys(a);if(0===b.length)return!0;let c=a[b[0]];return c&&"object"==typeof c&&"value"in c&&"metadata"in c&&"object"==typeof c.metadata&&"isSecret"in c.metadata}(b);j.debug(`Loaded ${Object.keys(b).length} global environment variables (${c?"new":"old"} format)`);let d={};if(c)for(let[a,c]of Object.entries(b))d[a]=c.value;else d={...b};let e=async a=>{let b=a.match(/\$\{global:([^}]+)\}/g);if(!b)return a;let c=a;for(let a of b){let b=a.substring(9,a.length-1);if(void 0!==d[b]){let e=d[b];if(e.startsWith("encrypted:")){j.debug(`Decrypting encrypted global variable: ${b}`);try{let a=e.substring(10),c=await (0,h.decryptWithPassword)(a);if(c)e=c,j.debug(`Successfully decrypted global variable: ${b}`);else{j.warn(`Failed to decrypt global variable: ${b}`);continue}}catch(a){j.error(`Error decrypting global variable: ${b}`,a);continue}}else if(e.startsWith("encrypted_failed:")){j.warn(`Skipping failed encrypted global variable: ${b}`);continue}j.debug(`Resolved global variable: ${b}`),c=c.replace(a,e)}else j.warn(`Global variable not found: ${b}`)}return c},i=async a=>{if("string"==typeof a)return await e(a);if(Array.isArray(a))return await Promise.all(a.map(a=>i(a)));if(null!==a&&"object"==typeof a){let b={};for(let[c,d]of Object.entries(a))b[c]=await i(d);return b}return a},k=await i(a);return"object"==typeof a&&null!==a&&j.debug("Resolved global variables result:",JSON.stringify(k,null,2)),j.debug("Completed global variable resolution"),k}async function l(a,b=0){if(j.debug(`Entering resolveAndDecryptApiKey method (depth: ${b})`),!a)return j.warn("Empty value provided"),null;if(b>=10)return j.warn(`Maximum resolution depth reached (10) for value: ${a}`),a;let c=a;if(c.startsWith("encrypted:")){j.debug(`Decrypting encrypted value at depth ${b}`);try{let a=c.substring(10),d=await (0,h.decryptWithPassword)(a);if(!d)return j.warn(`Failed to decrypt value at depth ${b}`),null;j.debug(`Successfully decrypted value at depth ${b}`),j.verbose(d),c=d}catch(a){return j.error(`Error decrypting value at depth ${b}:`,a),null}}else c.startsWith("encrypted_failed:")&&(j.warn(`Skipping failed encrypted value at depth ${b}`),c=c.substring(17));if(c.includes("${global:")){j.debug(`Resolving global variables at depth ${b}`);try{let a=await k(c);if(j.verbose(a),a!==c)return j.debug(`Value changed after resolving globals at depth ${b}, processing recursively`),l(a,b+1);c=a}catch(a){return j.error(`Error resolving global variables at depth ${b}:`,a),null}}return j.debug(`Completed resolveAndDecryptApiKey at depth ${b}`),c}(0,i.D)([k,l]),(0,d.A)(k,"40520b537d1d43f510acbccd60e3e7d42ce215c157",null),(0,d.A)(l,"60de87c4c5950c080550cb766970e88ae9c9a0ca25",null)},75879:(a,b,c)=>{"use strict";Object.defineProperty(b,"A",{enumerable:!0,get:function(){return d.registerServerReference}});let d=c(97954)},78335:()=>{},79989:(a,b,c)=>{"use strict";c.d(b,{flowService:()=>k});var d=c(32524),e=c(92372),f=c(46480);let g=(0,c(50846).h)("backend/services/flow/index"),h=f.Z.FLOWS;async function i(){return global.__flujo_flowsMigration||(global.__flujo_flowsMigration=(async()=>{try{await (0,e.w5)(f.Z.FLOWS,h,a=>a.id)}catch(a){g.error("Flow storage migration failed",a),global.__flujo_flowsMigration=void 0}})()),global.__flujo_flowsMigration}class j{get flowsCache(){return global.__flujo_flowsCache??null}set flowsCache(a){global.__flujo_flowsCache=a}async loadFlows(){try{if(this.flowsCache)return g.debug("Using cached flows"),this.flowsCache;g.debug("Loading flows from storage"),await i();let a=await (0,e.pL)(h);return this.flowsCache=a,g.info("Loaded flows from storage",{count:a.length}),a}catch(a){return g.error("Failed to load flows",a),[]}}async getFlow(a){try{g.debug(`Getting flow by ID: ${a}`);let b=this.flowsCache?.find(b=>b.id===a)||null;if(b)return g.debug(`Flow ${a} found in cache`),b;await i();let c=null;try{c=await (0,e.EI)(h,a,null)}catch(b){g.debug(`getFlow: could not load flow ${a}`,b),c=null}if(c&&this.flowsCache){let a=this.flowsCache,b=a.findIndex(a=>a.id===c.id);b>=0?a[b]=c:a.push(c),this.flowsCache=a}return g.debug(`Flow ${a} ${c?"found":"not found"}`),c}catch(b){return g.error(`Failed to get flow ${a}`,b),null}}async invalidateExecutionCache(a){try{let{FlowExecutor:b}=await Promise.all([c.e(6996),c.e(1223),c.e(5734),c.e(1373),c.e(2181),c.e(724),c.e(1403)]).then(c.bind(c,91403));b.clearFlowCache(a),g.debug("Invalidated execution flow cache",{flowId:a??"all"})}catch(a){g.warn("Failed to invalidate execution flow cache",a)}}async saveFlow(a){try{g.debug(`Saving flow: ${a.id}`,{name:a.name}),(0,e.ln)(a.id),await i(),await (0,e.Vt)(h,a.id,a);let b=this.flowsCache;if(b){let c=b.findIndex(b=>b.id===a.id);c>=0?b[c]=a:b.push(a),this.flowsCache=b}return await this.invalidateExecutionCache(a.id),g.info(`Flow ${a.id} saved successfully`),{success:!0}}catch(a){return g.error("Failed to save flow",a),{success:!1,error:a instanceof Error?a.message:"Failed to save flow"}}}async deleteFlow(a){try{g.debug(`Deleting flow: ${a}`),await i(),await (0,e.bB)(h,a);let b=this.flowsCache;return b&&(this.flowsCache=b.filter(b=>b.id!==a)),await this.invalidateExecutionCache(a),g.info(`Flow ${a} deleted successfully`),{success:!0}}catch(b){return g.error(`Failed to delete flow: ${a}`,b),{success:!1,error:b instanceof Error?b.message:"Failed to delete flow"}}}createNode(a,b){g.debug(`Creating new node of type: ${a}`,{position:b});let c={id:(0,d.A)(),type:a,position:b,data:{label:`${"mcp"===a?"MCP":a.charAt(0).toUpperCase()+a.slice(1)} Node`,type:a,properties:{}}};return g.debug(`Node created with ID: ${c.id}`),c}createNewFlow(a="NewFlow"){g.debug(`Creating new flow: ${a}`);let b={id:(0,d.A)(),type:"start",position:{x:250,y:150},data:{label:"Start Node",type:"start",properties:{promptTemplate:""}}},c={id:(0,d.A)(),name:a,nodes:[b],edges:[]};return g.info(`New flow created with ID: ${c.id}`,{name:a}),c}createHistoryEntry(a,b){return g.debug("Creating history entry",{nodeCount:a.length,edgeCount:b.length}),{nodes:[...a],edges:[...b]}}generateSampleFlow(a="Sample Flow"){g.debug(`Generating sample flow: ${a}`);let b={id:(0,d.A)(),name:a,nodes:[{id:"1",type:"start",position:{x:250,y:50},data:{label:"Start Node",type:"start",properties:{prompt:"Enter your query here",systemMessage:"You are a helpful assistant",temperature:0}}},{id:"2",type:"process",position:{x:250,y:200},data:{label:"Process Node",type:"process",properties:{operation:"transform",enabled:!0}}},{id:"3",type:"finish",position:{x:250,y:350},data:{label:"Finish Node",type:"finish",properties:{format:"json",template:'{ "result": {{data}} }'}}},{id:"4",type:"mcp",position:{x:450,y:200},data:{label:"MCP Node",type:"mcp",properties:{channels:2,mode:"parallel"}}}],edges:[{id:"e1-2",source:"1",target:"2",type:"custom"},{id:"e2-3",source:"2",target:"3",type:"custom"}]};return g.info(`Sample flow generated with ID: ${b.id}`,{name:a}),b}async listFlows(){g.debug("listFlows: Entering method");try{let a=await this.loadFlows();return{success:!0,flows:a}}catch(a){return g.warn("listFlows: Failed to list flows:",a),{success:!1,error:a instanceof Error?a.message:"Failed to list flows"}}}}let k=new j},96487:()=>{}};
1
+ exports.id=9688,exports.ids=[8126,9688,9989],exports.modules={947:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"40520b537d1d43f510acbccd60e3e7d42ce215c157":()=>d.c,"60de87c4c5950c080550cb766970e88ae9c9a0ca25":()=>d.G});var d=c(73456)},3676:(a,b,c)=>{"use strict";c.d(b,{Wj:()=>h,ln:()=>g});var d=c(10641),e=c(58739);let f="encryption_locked";async function g(){return(0,e.isEncryptionLocked)()}async function h(a){return await g()?a?.openai?d.NextResponse.json({error:{message:"Encryption is locked. Unlock FLUJO to continue.",type:f,code:f,param:null}},{status:423}):d.NextResponse.json({error:f},{status:423}):null}},29715:(a,b,c)=>{"use strict";c.d(b,{N:()=>h});var d=c(91403),e=c(92372),f=c(60184);let g=(0,c(50846).h)("backend/execution/flow/loadConversationState");async function h(a){if(d.FlowExecutor.conversationStates.has(a))return g.debug("Loaded state from memory",{conversationId:a}),d.FlowExecutor.conversationStates.get(a);let b=`conversations/${a}`;try{let c=await (0,e.YM)(b,void 0);if(c)return g.debug("Loaded state from storage",{conversationId:a}),await (0,f.jM)(c),d.FlowExecutor.conversationStates.set(a,c),c}catch(b){g.warn("Error loading conversation state from storage",{conversationId:a,error:b})}}},51669:(a,b)=>{"use strict";function c(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
2
+ Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(b,"D",{enumerable:!0,get:function(){return c}})},68633:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{decryptActionBoundArgs:function(){return s},encryptActionBoundArgs:function(){return r}}),c(77925);let d=c(97954),e=c(27825),f=c(47686),g=c(77533),h=c(63033),i=c(26906),j=function(a){return a&&a.__esModule?a:{default:a}}(c(74515)),k=new TextEncoder,l=new TextDecoder,m=void 0,n=void 0;async function o(a,b){let c=await (0,g.getActionEncryptionKey)();if(void 0===c)throw Object.defineProperty(Error("Missing encryption key for Server Action. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E65",enumerable:!1,configurable:!0});let d=atob(b),e=d.slice(0,16),f=d.slice(16),h=l.decode(await (0,g.decrypt)(c,(0,g.stringToUint8Array)(e),(0,g.stringToUint8Array)(f)));if(!h.startsWith(a))throw Object.defineProperty(Error("Invalid Server Action payload: failed to decrypt."),"__NEXT_ERROR_CODE",{value:"E191",enumerable:!1,configurable:!0});return h.slice(a.length)}async function p(a,b){let c=await (0,g.getActionEncryptionKey)();if(void 0===c)throw Object.defineProperty(Error("Missing encryption key for Server Action. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E65",enumerable:!1,configurable:!0});let d=new Uint8Array(16);h.workUnitAsyncStorage.exit(()=>crypto.getRandomValues(d));let e=(0,g.arrayBufferToString)(d.buffer),f=await (0,g.encrypt)(c,d,k.encode(a+b));return btoa(e+(0,g.arrayBufferToString)(f))}var q=function(a){return a[a.Ready=0]="Ready",a[a.Pending=1]="Pending",a[a.Complete=2]="Complete",a}(q||{});let r=j.default.cache(async function a(b,...c){let e=h.workUnitAsyncStorage.getStore(),j=e?(0,h.getCacheSignal)(e):void 0,{clientModules:k}=(0,g.getClientReferenceManifestForRsc)(),l=Error();Error.captureStackTrace(l,a);let n=!1,o=e?(0,i.createHangingInputAbortSignal)(e):void 0,q=0;function r(){0===q&&(q=1,null==j||j.beginRead())}function s(){1===q&&(null==j||j.endRead()),q=2}o&&j&&o.addEventListener("abort",r,{once:!0});let t=await (0,f.streamToString)((0,d.renderToReadableStream)(c,k,{filterStackFrame:m,signal:o,onError(a){(null==o||!o.aborted)&&(n||(n=!0,l.message=a instanceof Error?a.message:String(a)))}}),o);if(n)throw s(),l;if(!e)return p(b,t);r();let u=(0,h.getPrerenderResumeDataCache)(e),v=(0,h.getRenderResumeDataCache)(e),w=b+t,x=(null==u?void 0:u.encryptedBoundArgs.get(w))??(null==v?void 0:v.encryptedBoundArgs.get(w));if(x)return x;let y=await p(b,t);return s(),null==u||u.encryptedBoundArgs.set(w,y),y});async function s(a,b){let c,d=await b,f=h.workUnitAsyncStorage.getStore();if(f){let b=(0,h.getCacheSignal)(f),e=(0,h.getPrerenderResumeDataCache)(f),g=(0,h.getRenderResumeDataCache)(f);(c=(null==e?void 0:e.decryptedBoundArgs.get(d))??(null==g?void 0:g.decryptedBoundArgs.get(d)))||(null==b||b.beginRead(),c=await o(a,d),null==b||b.endRead(),null==e||e.decryptedBoundArgs.set(d,c))}else c=await o(a,d);let{edgeRscModuleMapping:i,rscModuleMapping:j}=(0,g.getClientReferenceManifestForRsc)();return await (0,e.createFromReadableStream)(new ReadableStream({start(a){switch(a.enqueue(k.encode(c)),null==f?void 0:f.type){case"prerender":case"prerender-runtime":f.renderSignal.aborted?a.close():f.renderSignal.addEventListener("abort",()=>a.close(),{once:!0});break;case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"private-cache":case"unstable-cache":case void 0:return a.close()}}}),{findSourceMapURL:n,serverConsumerManifest:{moduleLoading:null,moduleMap:j,serverModuleMap:(0,g.getServerModuleMap)()}})}},73456:(a,b,c)=>{"use strict";c.d(b,{G:()=>l,c:()=>k});var d=c(75879);c(68633);var e=c(50846),f=c(92372),g=c(46480),h=c(58739),i=c(51669);let j=(0,e.h)("backend/utils/resolveGlobalVars");async function k(a){j.debug("Entering resolveGlobalVars method");let b=await (0,f.YM)(g.Z.GLOBAL_ENV_VARS,{}),c=function(a){if(!a||"object"!=typeof a)return!1;let b=Object.keys(a);if(0===b.length)return!0;let c=a[b[0]];return c&&"object"==typeof c&&"value"in c&&"metadata"in c&&"object"==typeof c.metadata&&"isSecret"in c.metadata}(b);j.debug(`Loaded ${Object.keys(b).length} global environment variables (${c?"new":"old"} format)`);let d={};if(c)for(let[a,c]of Object.entries(b))d[a]=c.value;else d={...b};let e=async a=>{let b=a.match(/\$\{global:([^}]+)\}/g);if(!b)return a;let c=a;for(let a of b){let b=a.substring(9,a.length-1);if(void 0!==d[b]){let e=d[b];if(e.startsWith("encrypted:")){j.debug(`Decrypting encrypted global variable: ${b}`);try{let a=e.substring(10),c=await (0,h.decryptWithPassword)(a);if(c)e=c,j.debug(`Successfully decrypted global variable: ${b}`);else{j.warn(`Failed to decrypt global variable: ${b}`);continue}}catch(a){j.error(`Error decrypting global variable: ${b}`,a);continue}}else if(e.startsWith("encrypted_failed:")){j.warn(`Skipping failed encrypted global variable: ${b}`);continue}j.debug(`Resolved global variable: ${b}`),c=c.replace(a,e)}else j.warn(`Global variable not found: ${b}`)}return c},i=async a=>{if("string"==typeof a)return await e(a);if(Array.isArray(a))return await Promise.all(a.map(a=>i(a)));if(null!==a&&"object"==typeof a){let b={};for(let[c,d]of Object.entries(a))b[c]=await i(d);return b}return a},k=await i(a);return"object"==typeof a&&null!==a&&j.debug("Resolved global variables result:",JSON.stringify(k,null,2)),j.debug("Completed global variable resolution"),k}async function l(a,b=0){if(j.debug(`Entering resolveAndDecryptApiKey method (depth: ${b})`),!a)return j.warn("Empty value provided"),null;if(b>=10)return j.warn(`Maximum resolution depth reached (10) for value: ${a}`),a;let c=a;if(c.startsWith("encrypted:")){j.debug(`Decrypting encrypted value at depth ${b}`);try{let a=c.substring(10),d=await (0,h.decryptWithPassword)(a);if(!d)return j.warn(`Failed to decrypt value at depth ${b}`),null;j.debug(`Successfully decrypted value at depth ${b}`),j.verbose(d),c=d}catch(a){return j.error(`Error decrypting value at depth ${b}:`,a),null}}else c.startsWith("encrypted_failed:")&&(j.warn(`Skipping failed encrypted value at depth ${b}`),c=c.substring(17));if(c.includes("${global:")){j.debug(`Resolving global variables at depth ${b}`);try{let a=await k(c);if(j.verbose(a),a!==c)return j.debug(`Value changed after resolving globals at depth ${b}, processing recursively`),l(a,b+1);c=a}catch(a){return j.error(`Error resolving global variables at depth ${b}:`,a),null}}return j.debug(`Completed resolveAndDecryptApiKey at depth ${b}`),c}(0,i.D)([k,l]),(0,d.A)(k,"40520b537d1d43f510acbccd60e3e7d42ce215c157",null),(0,d.A)(l,"60de87c4c5950c080550cb766970e88ae9c9a0ca25",null)},75879:(a,b,c)=>{"use strict";Object.defineProperty(b,"A",{enumerable:!0,get:function(){return d.registerServerReference}});let d=c(97954)},78335:()=>{},79989:(a,b,c)=>{"use strict";c.d(b,{flowService:()=>k});var d=c(32524),e=c(92372),f=c(46480);let g=(0,c(50846).h)("backend/services/flow/index"),h=f.Z.FLOWS;async function i(){return global.__flujo_flowsMigration||(global.__flujo_flowsMigration=(async()=>{try{await (0,e.w5)(f.Z.FLOWS,h,a=>a.id)}catch(a){g.error("Flow storage migration failed",a),global.__flujo_flowsMigration=void 0}})()),global.__flujo_flowsMigration}class j{get flowsCache(){return global.__flujo_flowsCache??null}set flowsCache(a){global.__flujo_flowsCache=a}async loadFlows(){try{if(this.flowsCache)return g.debug("Using cached flows"),this.flowsCache;g.debug("Loading flows from storage"),await i();let a=await (0,e.pL)(h);return this.flowsCache=a,g.info("Loaded flows from storage",{count:a.length}),a}catch(a){return g.error("Failed to load flows",a),[]}}async getFlow(a){try{g.debug(`Getting flow by ID: ${a}`);let b=this.flowsCache?.find(b=>b.id===a)||null;if(b)return g.debug(`Flow ${a} found in cache`),b;await i();let c=null;try{c=await (0,e.EI)(h,a,null)}catch(b){g.debug(`getFlow: could not load flow ${a}`,b),c=null}if(c&&this.flowsCache){let a=this.flowsCache,b=a.findIndex(a=>a.id===c.id);b>=0?a[b]=c:a.push(c),this.flowsCache=a}return g.debug(`Flow ${a} ${c?"found":"not found"}`),c}catch(b){return g.error(`Failed to get flow ${a}`,b),null}}async invalidateExecutionCache(a){try{let{FlowExecutor:b}=await Promise.all([c.e(6996),c.e(1223),c.e(5734),c.e(1373),c.e(5504),c.e(724),c.e(1403)]).then(c.bind(c,91403));b.clearFlowCache(a),g.debug("Invalidated execution flow cache",{flowId:a??"all"})}catch(a){g.warn("Failed to invalidate execution flow cache",a)}}async saveFlow(a){try{g.debug(`Saving flow: ${a.id}`,{name:a.name}),(0,e.ln)(a.id),await i(),await (0,e.Vt)(h,a.id,a);let b=this.flowsCache;if(b){let c=b.findIndex(b=>b.id===a.id);c>=0?b[c]=a:b.push(a),this.flowsCache=b}return await this.invalidateExecutionCache(a.id),g.info(`Flow ${a.id} saved successfully`),{success:!0}}catch(a){return g.error("Failed to save flow",a),{success:!1,error:a instanceof Error?a.message:"Failed to save flow"}}}async deleteFlow(a){try{g.debug(`Deleting flow: ${a}`),await i(),await (0,e.bB)(h,a);let b=this.flowsCache;return b&&(this.flowsCache=b.filter(b=>b.id!==a)),await this.invalidateExecutionCache(a),g.info(`Flow ${a} deleted successfully`),{success:!0}}catch(b){return g.error(`Failed to delete flow: ${a}`,b),{success:!1,error:b instanceof Error?b.message:"Failed to delete flow"}}}createNode(a,b){g.debug(`Creating new node of type: ${a}`,{position:b});let c={id:(0,d.A)(),type:a,position:b,data:{label:`${"mcp"===a?"MCP":a.charAt(0).toUpperCase()+a.slice(1)} Node`,type:a,properties:{}}};return g.debug(`Node created with ID: ${c.id}`),c}createNewFlow(a="NewFlow"){g.debug(`Creating new flow: ${a}`);let b={id:(0,d.A)(),type:"start",position:{x:250,y:150},data:{label:"Start Node",type:"start",properties:{promptTemplate:""}}},c={id:(0,d.A)(),name:a,nodes:[b],edges:[]};return g.info(`New flow created with ID: ${c.id}`,{name:a}),c}createHistoryEntry(a,b){return g.debug("Creating history entry",{nodeCount:a.length,edgeCount:b.length}),{nodes:[...a],edges:[...b]}}generateSampleFlow(a="Sample Flow"){g.debug(`Generating sample flow: ${a}`);let b={id:(0,d.A)(),name:a,nodes:[{id:"1",type:"start",position:{x:250,y:50},data:{label:"Start Node",type:"start",properties:{prompt:"Enter your query here",systemMessage:"You are a helpful assistant",temperature:0}}},{id:"2",type:"process",position:{x:250,y:200},data:{label:"Process Node",type:"process",properties:{operation:"transform",enabled:!0}}},{id:"3",type:"finish",position:{x:250,y:350},data:{label:"Finish Node",type:"finish",properties:{format:"json",template:'{ "result": {{data}} }'}}},{id:"4",type:"mcp",position:{x:450,y:200},data:{label:"MCP Node",type:"mcp",properties:{channels:2,mode:"parallel"}}}],edges:[{id:"e1-2",source:"1",target:"2",type:"custom"},{id:"e2-3",source:"2",target:"3",type:"custom"}]};return g.info(`Sample flow generated with ID: ${b.id}`,{name:a}),b}async listFlows(){g.debug("listFlows: Entering method");try{let a=await this.loadFlows();return{success:!0,flows:a}}catch(a){return g.warn("listFlows: Failed to list flows:",a),{success:!1,error:a instanceof Error?a.message:"Failed to list flows"}}}}let k=new j},96487:()=>{}};
@@ -1 +1 @@
1
- "use strict";exports.id=9938,exports.ids=[9938],exports.modules={9718:(a,b,c)=>{c.d(b,{Zg:()=>d.Z,Mj:()=>g});var d=c(60418),e=c(38301);let f=(0,c(19815).h)("utils/storage/frontend.ts");function g(a,b){f.verbose("useLocalStorage: Entering method");let[c,d]=(0,e.useState)(b),[g,h]=(0,e.useState)(!0),i=(0,e.useRef)(c);return[c,(0,e.useCallback)(async b=>{f.verbose("setValue: Entering method");try{let c=b instanceof Function?b(i.current):b;if(d(c),!(await fetch("/api/storage",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:a,value:c})})).ok)throw Error("Failed to save value")}catch(b){f.warn(`Error setting storage key "${a}":`,b)}},[a]),g]}},49938:(a,b,c)=>{c.d(b,{rX:()=>f}),c(21124);var d=c(38301);c(9718),(0,c(19815).h)("frontend/contexts/StorageContext");let e=(0,d.createContext)({setKey:async()=>{},changeKey:async()=>!1,verifyKey:async()=>!1,isEncryptionInitialized:async()=>!1,globalEnvVars:{},setGlobalEnvVars:async()=>{},deleteGlobalEnvVar:async()=>{},encryptValue:async()=>null,decryptValue:async()=>null,isUserEncryptionEnabled:async()=>!1,isLoading:!0,settings:{speech:{enabled:!0},update:{checkOnStartup:!1}},updateSettings:async()=>{}}),f=()=>(0,d.useContext)(e)},60418:(a,b,c)=>{c.d(b,{Z:()=>d});var d=function(a){return a.MODELS="models",a.FLOWS="flows",a.CHAT_HISTORY="history",a.THEME="theme",a.ENCRYPTION_KEY="encryption_key",a.MCP_SERVERS="mcp_servers",a.GLOBAL_ENV_VARS="global_env_vars",a.CURRENT_CONVERSATION_ID="current_conversation_id",a.SELECTED_FLOW_ID="selected_flow_id",a.SPEECH_SETTINGS="speech_settings",a.SPOTLIGHT_SERVERS="spotlight_servers",a.PLANNED_EXECUTIONS="planned_executions",a}({})}};
1
+ "use strict";exports.id=9938,exports.ids=[9938],exports.modules={9718:(a,b,c)=>{c.d(b,{Zg:()=>d.Z,Mj:()=>g});var d=c(60418),e=c(38301);let f=(0,c(19815).h)("utils/storage/frontend.ts");function g(a,b){f.verbose("useLocalStorage: Entering method");let[c,d]=(0,e.useState)(b),[g,h]=(0,e.useState)(!0),i=(0,e.useRef)(c);return[c,(0,e.useCallback)(async b=>{f.verbose("setValue: Entering method");try{let c=b instanceof Function?b(i.current):b;if(d(c),!(await fetch("/api/storage",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:a,value:c})})).ok)throw Error("Failed to save value")}catch(b){f.warn(`Error setting storage key "${a}":`,b)}},[a]),g]}},49938:(a,b,c)=>{c.d(b,{rX:()=>f}),c(21124);var d=c(38301);c(9718),(0,c(19815).h)("frontend/contexts/StorageContext");let e=(0,d.createContext)({setKey:async()=>{},changeKey:async()=>!1,verifyKey:async()=>!1,isEncryptionInitialized:async()=>!1,globalEnvVars:{},setGlobalEnvVars:async()=>{},deleteGlobalEnvVar:async()=>{},encryptValue:async()=>null,decryptValue:async()=>null,isUserEncryptionEnabled:async()=>!1,isLoading:!0,settings:{speech:{enabled:!0},update:{checkOnStartup:!1}},settingsHydrated:!1,updateSettings:async()=>{}}),f=()=>(0,d.useContext)(e)},60418:(a,b,c)=>{c.d(b,{Z:()=>d});var d=function(a){return a.MODELS="models",a.FLOWS="flows",a.CHAT_HISTORY="history",a.THEME="theme",a.ENCRYPTION_KEY="encryption_key",a.MCP_SERVERS="mcp_servers",a.GLOBAL_ENV_VARS="global_env_vars",a.CURRENT_CONVERSATION_ID="current_conversation_id",a.SELECTED_FLOW_ID="selected_flow_id",a.SPEECH_SETTINGS="speech_settings",a.SPOTLIGHT_SERVERS="spotlight_servers",a.PLANNED_EXECUTIONS="planned_executions",a}({})}};
@@ -1 +1 @@
1
- "use strict";exports.id=9989,exports.ids=[9989],exports.modules={79989:(a,b,c)=>{c.d(b,{flowService:()=>k});var d=c(32524),e=c(92372),f=c(46480);let g=(0,c(50846).h)("backend/services/flow/index"),h=f.Z.FLOWS;async function i(){return global.__flujo_flowsMigration||(global.__flujo_flowsMigration=(async()=>{try{await (0,e.w5)(f.Z.FLOWS,h,a=>a.id)}catch(a){g.error("Flow storage migration failed",a),global.__flujo_flowsMigration=void 0}})()),global.__flujo_flowsMigration}class j{get flowsCache(){return global.__flujo_flowsCache??null}set flowsCache(a){global.__flujo_flowsCache=a}async loadFlows(){try{if(this.flowsCache)return g.debug("Using cached flows"),this.flowsCache;g.debug("Loading flows from storage"),await i();let a=await (0,e.pL)(h);return this.flowsCache=a,g.info("Loaded flows from storage",{count:a.length}),a}catch(a){return g.error("Failed to load flows",a),[]}}async getFlow(a){try{g.debug(`Getting flow by ID: ${a}`);let b=this.flowsCache?.find(b=>b.id===a)||null;if(b)return g.debug(`Flow ${a} found in cache`),b;await i();let c=null;try{c=await (0,e.EI)(h,a,null)}catch(b){g.debug(`getFlow: could not load flow ${a}`,b),c=null}if(c&&this.flowsCache){let a=this.flowsCache,b=a.findIndex(a=>a.id===c.id);b>=0?a[b]=c:a.push(c),this.flowsCache=a}return g.debug(`Flow ${a} ${c?"found":"not found"}`),c}catch(b){return g.error(`Failed to get flow ${a}`,b),null}}async invalidateExecutionCache(a){try{let{FlowExecutor:b}=await Promise.all([c.e(6996),c.e(1223),c.e(5734),c.e(1373),c.e(2181),c.e(724),c.e(1403)]).then(c.bind(c,91403));b.clearFlowCache(a),g.debug("Invalidated execution flow cache",{flowId:a??"all"})}catch(a){g.warn("Failed to invalidate execution flow cache",a)}}async saveFlow(a){try{g.debug(`Saving flow: ${a.id}`,{name:a.name}),(0,e.ln)(a.id),await i(),await (0,e.Vt)(h,a.id,a);let b=this.flowsCache;if(b){let c=b.findIndex(b=>b.id===a.id);c>=0?b[c]=a:b.push(a),this.flowsCache=b}return await this.invalidateExecutionCache(a.id),g.info(`Flow ${a.id} saved successfully`),{success:!0}}catch(a){return g.error("Failed to save flow",a),{success:!1,error:a instanceof Error?a.message:"Failed to save flow"}}}async deleteFlow(a){try{g.debug(`Deleting flow: ${a}`),await i(),await (0,e.bB)(h,a);let b=this.flowsCache;return b&&(this.flowsCache=b.filter(b=>b.id!==a)),await this.invalidateExecutionCache(a),g.info(`Flow ${a} deleted successfully`),{success:!0}}catch(b){return g.error(`Failed to delete flow: ${a}`,b),{success:!1,error:b instanceof Error?b.message:"Failed to delete flow"}}}createNode(a,b){g.debug(`Creating new node of type: ${a}`,{position:b});let c={id:(0,d.A)(),type:a,position:b,data:{label:`${"mcp"===a?"MCP":a.charAt(0).toUpperCase()+a.slice(1)} Node`,type:a,properties:{}}};return g.debug(`Node created with ID: ${c.id}`),c}createNewFlow(a="NewFlow"){g.debug(`Creating new flow: ${a}`);let b={id:(0,d.A)(),type:"start",position:{x:250,y:150},data:{label:"Start Node",type:"start",properties:{promptTemplate:""}}},c={id:(0,d.A)(),name:a,nodes:[b],edges:[]};return g.info(`New flow created with ID: ${c.id}`,{name:a}),c}createHistoryEntry(a,b){return g.debug("Creating history entry",{nodeCount:a.length,edgeCount:b.length}),{nodes:[...a],edges:[...b]}}generateSampleFlow(a="Sample Flow"){g.debug(`Generating sample flow: ${a}`);let b={id:(0,d.A)(),name:a,nodes:[{id:"1",type:"start",position:{x:250,y:50},data:{label:"Start Node",type:"start",properties:{prompt:"Enter your query here",systemMessage:"You are a helpful assistant",temperature:0}}},{id:"2",type:"process",position:{x:250,y:200},data:{label:"Process Node",type:"process",properties:{operation:"transform",enabled:!0}}},{id:"3",type:"finish",position:{x:250,y:350},data:{label:"Finish Node",type:"finish",properties:{format:"json",template:'{ "result": {{data}} }'}}},{id:"4",type:"mcp",position:{x:450,y:200},data:{label:"MCP Node",type:"mcp",properties:{channels:2,mode:"parallel"}}}],edges:[{id:"e1-2",source:"1",target:"2",type:"custom"},{id:"e2-3",source:"2",target:"3",type:"custom"}]};return g.info(`Sample flow generated with ID: ${b.id}`,{name:a}),b}async listFlows(){g.debug("listFlows: Entering method");try{let a=await this.loadFlows();return{success:!0,flows:a}}catch(a){return g.warn("listFlows: Failed to list flows:",a),{success:!1,error:a instanceof Error?a.message:"Failed to list flows"}}}}let k=new j}};
1
+ "use strict";exports.id=9989,exports.ids=[9989],exports.modules={79989:(a,b,c)=>{c.d(b,{flowService:()=>k});var d=c(32524),e=c(92372),f=c(46480);let g=(0,c(50846).h)("backend/services/flow/index"),h=f.Z.FLOWS;async function i(){return global.__flujo_flowsMigration||(global.__flujo_flowsMigration=(async()=>{try{await (0,e.w5)(f.Z.FLOWS,h,a=>a.id)}catch(a){g.error("Flow storage migration failed",a),global.__flujo_flowsMigration=void 0}})()),global.__flujo_flowsMigration}class j{get flowsCache(){return global.__flujo_flowsCache??null}set flowsCache(a){global.__flujo_flowsCache=a}async loadFlows(){try{if(this.flowsCache)return g.debug("Using cached flows"),this.flowsCache;g.debug("Loading flows from storage"),await i();let a=await (0,e.pL)(h);return this.flowsCache=a,g.info("Loaded flows from storage",{count:a.length}),a}catch(a){return g.error("Failed to load flows",a),[]}}async getFlow(a){try{g.debug(`Getting flow by ID: ${a}`);let b=this.flowsCache?.find(b=>b.id===a)||null;if(b)return g.debug(`Flow ${a} found in cache`),b;await i();let c=null;try{c=await (0,e.EI)(h,a,null)}catch(b){g.debug(`getFlow: could not load flow ${a}`,b),c=null}if(c&&this.flowsCache){let a=this.flowsCache,b=a.findIndex(a=>a.id===c.id);b>=0?a[b]=c:a.push(c),this.flowsCache=a}return g.debug(`Flow ${a} ${c?"found":"not found"}`),c}catch(b){return g.error(`Failed to get flow ${a}`,b),null}}async invalidateExecutionCache(a){try{let{FlowExecutor:b}=await Promise.all([c.e(6996),c.e(1223),c.e(5734),c.e(1373),c.e(5504),c.e(724),c.e(1403)]).then(c.bind(c,91403));b.clearFlowCache(a),g.debug("Invalidated execution flow cache",{flowId:a??"all"})}catch(a){g.warn("Failed to invalidate execution flow cache",a)}}async saveFlow(a){try{g.debug(`Saving flow: ${a.id}`,{name:a.name}),(0,e.ln)(a.id),await i(),await (0,e.Vt)(h,a.id,a);let b=this.flowsCache;if(b){let c=b.findIndex(b=>b.id===a.id);c>=0?b[c]=a:b.push(a),this.flowsCache=b}return await this.invalidateExecutionCache(a.id),g.info(`Flow ${a.id} saved successfully`),{success:!0}}catch(a){return g.error("Failed to save flow",a),{success:!1,error:a instanceof Error?a.message:"Failed to save flow"}}}async deleteFlow(a){try{g.debug(`Deleting flow: ${a}`),await i(),await (0,e.bB)(h,a);let b=this.flowsCache;return b&&(this.flowsCache=b.filter(b=>b.id!==a)),await this.invalidateExecutionCache(a),g.info(`Flow ${a} deleted successfully`),{success:!0}}catch(b){return g.error(`Failed to delete flow: ${a}`,b),{success:!1,error:b instanceof Error?b.message:"Failed to delete flow"}}}createNode(a,b){g.debug(`Creating new node of type: ${a}`,{position:b});let c={id:(0,d.A)(),type:a,position:b,data:{label:`${"mcp"===a?"MCP":a.charAt(0).toUpperCase()+a.slice(1)} Node`,type:a,properties:{}}};return g.debug(`Node created with ID: ${c.id}`),c}createNewFlow(a="NewFlow"){g.debug(`Creating new flow: ${a}`);let b={id:(0,d.A)(),type:"start",position:{x:250,y:150},data:{label:"Start Node",type:"start",properties:{promptTemplate:""}}},c={id:(0,d.A)(),name:a,nodes:[b],edges:[]};return g.info(`New flow created with ID: ${c.id}`,{name:a}),c}createHistoryEntry(a,b){return g.debug("Creating history entry",{nodeCount:a.length,edgeCount:b.length}),{nodes:[...a],edges:[...b]}}generateSampleFlow(a="Sample Flow"){g.debug(`Generating sample flow: ${a}`);let b={id:(0,d.A)(),name:a,nodes:[{id:"1",type:"start",position:{x:250,y:50},data:{label:"Start Node",type:"start",properties:{prompt:"Enter your query here",systemMessage:"You are a helpful assistant",temperature:0}}},{id:"2",type:"process",position:{x:250,y:200},data:{label:"Process Node",type:"process",properties:{operation:"transform",enabled:!0}}},{id:"3",type:"finish",position:{x:250,y:350},data:{label:"Finish Node",type:"finish",properties:{format:"json",template:'{ "result": {{data}} }'}}},{id:"4",type:"mcp",position:{x:450,y:200},data:{label:"MCP Node",type:"mcp",properties:{channels:2,mode:"parallel"}}}],edges:[{id:"e1-2",source:"1",target:"2",type:"custom"},{id:"e2-3",source:"2",target:"3",type:"custom"}]};return g.info(`Sample flow generated with ID: ${b.id}`,{name:a}),b}async listFlows(){g.debug("listFlows: Entering method");try{let a=await this.loadFlows();return{success:!0,flows:a}}catch(a){return g.warn("listFlows: Failed to list flows:",a),{success:!1,error:a instanceof Error?a.message:"Failed to list flows"}}}}let k=new j}};
@@ -5,7 +5,7 @@
5
5
  "/api/update": {
6
6
  "maxDuration": 600
7
7
  },
8
- "/mcp-proxy/[server]": {},
9
- "/mcp-flows": {}
8
+ "/mcp-flows": {},
9
+ "/mcp-proxy/[server]": {}
10
10
  }
11
11
  }
@@ -1 +1 @@
1
- globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:["static/chunks/webpack-6f17a022ac16e8bd.js","static/chunks/4bd1b696-182b6b13bdad92e3.js","static/chunks/1255-13d973e0759ea6d6.js","static/chunks/main-app-faff38c77cb00119.js"],rootMainFilesTree:{},pages:{"/_app":["static/chunks/webpack-6f17a022ac16e8bd.js","static/chunks/framework-1548034a53843b9f.js","static/chunks/main-be8e823624954fab.js","static/chunks/pages/_app-e8b861c87f6f033c.js"],"/_error":["static/chunks/webpack-6f17a022ac16e8bd.js","static/chunks/framework-1548034a53843b9f.js","static/chunks/main-be8e823624954fab.js","static/chunks/pages/_error-c8f84f7bd11d43d4.js"]},ampFirstPages:[]},globalThis.__BUILD_MANIFEST.lowPriorityFiles=["/static/"+process.env.__NEXT_BUILD_ID+"/_buildManifest.js",,"/static/"+process.env.__NEXT_BUILD_ID+"/_ssgManifest.js"];
1
+ globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:["static/chunks/webpack-63a4c59e84967e90.js","static/chunks/4bd1b696-182b6b13bdad92e3.js","static/chunks/1255-13d973e0759ea6d6.js","static/chunks/main-app-faff38c77cb00119.js"],rootMainFilesTree:{},pages:{"/_app":["static/chunks/webpack-63a4c59e84967e90.js","static/chunks/framework-1548034a53843b9f.js","static/chunks/main-be8e823624954fab.js","static/chunks/pages/_app-e8b861c87f6f033c.js"],"/_error":["static/chunks/webpack-63a4c59e84967e90.js","static/chunks/framework-1548034a53843b9f.js","static/chunks/main-be8e823624954fab.js","static/chunks/pages/_error-c8f84f7bd11d43d4.js"]},ampFirstPages:[]},globalThis.__BUILD_MANIFEST.lowPriorityFiles=["/static/"+process.env.__NEXT_BUILD_ID+"/_buildManifest.js",,"/static/"+process.env.__NEXT_BUILD_ID+"/_ssgManifest.js"];
@@ -1 +1 @@
1
- self.__REACT_LOADABLE_MANIFEST='{"..\\\\node_modules\\\\next\\\\dist\\\\client\\\\index.js -> ../pages/_app":{"id":45139,"files":["static/chunks/5139.e4ff9cc3669129ed.js"]},"..\\\\node_modules\\\\next\\\\dist\\\\client\\\\index.js -> ../pages/_error":{"id":31646,"files":["static/chunks/1646.a93085a0445ba909.js"]},"frontend\\\\components\\\\AppWrapper.tsx -> ../contexts/StorageContext":{"id":9164,"files":["static/chunks/9164-81ca1a1bccdc5ed2.js"]},"frontend\\\\components\\\\AppWrapper.tsx -> ../contexts/ThemeContext":{"id":26796,"files":["static/chunks/2678-c88052addfb0478a.js","static/chunks/8598-1b627b3d682b364a.js","static/chunks/7583.8a518353bd072db9.js"]},"frontend\\\\components\\\\AppWrapper.tsx -> ../contexts/TourContext":{"id":69195,"files":["static/chunks/9164-81ca1a1bccdc5ed2.js","static/chunks/9195.01a57af6d6cdf1a5.js"]},"frontend\\\\components\\\\AppWrapper.tsx -> ./EncryptionAuthDialog":{"id":23217,"files":["static/chunks/2678-c88052addfb0478a.js","static/chunks/4754-5c62bb61142f82d1.js","static/chunks/9244-3281f7fd02003a2c.js","static/chunks/8548-8e4a95334064e8b2.js","static/chunks/690-391bc0f482a9f67c.js","static/chunks/9562-93cc45aef3630781.js","static/chunks/2003-7710c23acaef11c9.js","static/chunks/3272-fd8d59523f61da96.js","static/chunks/9164-81ca1a1bccdc5ed2.js","static/chunks/3217.79ca74c918fc772c.js"]},"frontend\\\\components\\\\AppWrapper.tsx -> ./Navigation":{"id":48187,"files":["static/chunks/2678-c88052addfb0478a.js","static/chunks/4754-5c62bb61142f82d1.js","static/chunks/9244-3281f7fd02003a2c.js","static/chunks/8548-8e4a95334064e8b2.js","static/chunks/8598-1b627b3d682b364a.js","static/chunks/2619-04bc32f026a0d946.js","static/chunks/7539.41f0448cf9783388.js","static/chunks/8187.5d6523f30e705998.js"]},"frontend\\\\components\\\\AppWrapper.tsx -> ./Tour/TourOverlay":{"id":83545,"files":["static/chunks/2678-c88052addfb0478a.js","static/chunks/4754-5c62bb61142f82d1.js","static/chunks/9244-3281f7fd02003a2c.js","static/chunks/8548-8e4a95334064e8b2.js","static/chunks/690-391bc0f482a9f67c.js","static/chunks/2005-f9d38c39f10c321f.js","static/chunks/8345.76f420453fc0dee7.js","static/chunks/9164-81ca1a1bccdc5ed2.js","static/chunks/3545.c3fbe14528517a75.js"]},"frontend\\\\components\\\\mcp\\\\MCPServerManager\\\\ServerCard.tsx -> @/frontend/utils/oauth":{"id":68198,"files":["static/chunks/8198.cd0d3f8429c02862.js"]}}';
1
+ self.__REACT_LOADABLE_MANIFEST='{"..\\\\node_modules\\\\next\\\\dist\\\\client\\\\index.js -> ../pages/_app":{"id":45139,"files":["static/chunks/5139.e4ff9cc3669129ed.js"]},"..\\\\node_modules\\\\next\\\\dist\\\\client\\\\index.js -> ../pages/_error":{"id":31646,"files":["static/chunks/1646.a93085a0445ba909.js"]},"frontend\\\\components\\\\AppWrapper.tsx -> ../contexts/StorageContext":{"id":9164,"files":["static/chunks/9164-d15e4dab0a1bf282.js"]},"frontend\\\\components\\\\AppWrapper.tsx -> ../contexts/ThemeContext":{"id":26796,"files":["static/chunks/2678-c88052addfb0478a.js","static/chunks/8598-1b627b3d682b364a.js","static/chunks/7583.8a518353bd072db9.js"]},"frontend\\\\components\\\\AppWrapper.tsx -> ../contexts/TourContext":{"id":69195,"files":["static/chunks/9164-d15e4dab0a1bf282.js","static/chunks/9195.294887f083b1a11b.js"]},"frontend\\\\components\\\\AppWrapper.tsx -> ./EncryptionAuthDialog":{"id":23217,"files":["static/chunks/2678-c88052addfb0478a.js","static/chunks/4754-5c62bb61142f82d1.js","static/chunks/9244-3281f7fd02003a2c.js","static/chunks/8548-8e4a95334064e8b2.js","static/chunks/690-391bc0f482a9f67c.js","static/chunks/9562-93cc45aef3630781.js","static/chunks/2003-7710c23acaef11c9.js","static/chunks/3272-fd8d59523f61da96.js","static/chunks/9164-d15e4dab0a1bf282.js","static/chunks/3217.1a7e24fd70294370.js"]},"frontend\\\\components\\\\AppWrapper.tsx -> ./Navigation":{"id":48187,"files":["static/chunks/2678-c88052addfb0478a.js","static/chunks/4754-5c62bb61142f82d1.js","static/chunks/9244-3281f7fd02003a2c.js","static/chunks/8548-8e4a95334064e8b2.js","static/chunks/8598-1b627b3d682b364a.js","static/chunks/2619-04bc32f026a0d946.js","static/chunks/7539.41f0448cf9783388.js","static/chunks/8187.5d6523f30e705998.js"]},"frontend\\\\components\\\\AppWrapper.tsx -> ./Tour/TourOverlay":{"id":83545,"files":["static/chunks/2678-c88052addfb0478a.js","static/chunks/4754-5c62bb61142f82d1.js","static/chunks/9244-3281f7fd02003a2c.js","static/chunks/8548-8e4a95334064e8b2.js","static/chunks/690-391bc0f482a9f67c.js","static/chunks/2005-f9d38c39f10c321f.js","static/chunks/8345.76f420453fc0dee7.js","static/chunks/9164-d15e4dab0a1bf282.js","static/chunks/3545.d3a512315a9fce3e.js"]},"frontend\\\\components\\\\mcp\\\\MCPServerManager\\\\ServerCard.tsx -> @/frontend/utils/oauth":{"id":68198,"files":["static/chunks/8198.cd0d3f8429c02862.js"]}}';
@@ -1 +1 @@
1
- <!DOCTYPE html><!--geAgl8xNIf0s1v2mfu4tE--><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/d1484588c616b291.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-6f17a022ac16e8bd.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-faff38c77cb00119.js" async=""></script><script src="/_next/static/chunks/app/layout-2878f13d7e253503.js" async=""></script><meta name="robots" content="noindex"/><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-6f17a022ac16e8bd.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-2878f13d7e253503.js\"],\"default\"]\n3:I[9766,[],\"\"]\n4:I[98924,[],\"\"]\n5:I[24431,[],\"OutletBoundary\"]\n7:I[15278,[],\"AsyncMetadataOutlet\"]\n9:I[24431,[],\"ViewportBoundary\"]\nb:I[24431,[],\"MetadataBoundary\"]\nc:\"$Sreact.suspense\"\ne:I[57150,[],\"\"]\n:HL[\"/_next/static/css/d1484588c616b291.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"geAgl8xNIf0s1v2mfu4tE\",\"p\":\"\",\"c\":[\"\",\"_not-found\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/d1484588c616b291.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\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$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\":[[[\"$\",\"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.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$L6\",[\"$\",\"$L7\",null,{\"promise\":\"$@8\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$L9\",null,{\"children\":\"$La\"}],null],[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$c\",null,{\"fallback\":null,\"children\":\"$Ld\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n6:null\n"])</script><script>self.__next_f.push([1,"8:{\"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,"d:\"$8:metadata\"\n"])</script></body></html>
1
+ <!DOCTYPE html><!--9Pzu8N65j3JuRQ7zVUtwD--><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/d1484588c616b291.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-63a4c59e84967e90.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-faff38c77cb00119.js" async=""></script><script src="/_next/static/chunks/app/layout-2878f13d7e253503.js" async=""></script><meta name="robots" content="noindex"/><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-63a4c59e84967e90.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-2878f13d7e253503.js\"],\"default\"]\n3:I[9766,[],\"\"]\n4:I[98924,[],\"\"]\n5:I[24431,[],\"OutletBoundary\"]\n7:I[15278,[],\"AsyncMetadataOutlet\"]\n9:I[24431,[],\"ViewportBoundary\"]\nb:I[24431,[],\"MetadataBoundary\"]\nc:\"$Sreact.suspense\"\ne:I[57150,[],\"\"]\n:HL[\"/_next/static/css/d1484588c616b291.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"9Pzu8N65j3JuRQ7zVUtwD\",\"p\":\"\",\"c\":[\"\",\"_not-found\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/d1484588c616b291.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\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$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\":[[[\"$\",\"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.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$L6\",[\"$\",\"$L7\",null,{\"promise\":\"$@8\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$L9\",null,{\"children\":\"$La\"}],null],[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$c\",null,{\"fallback\":null,\"children\":\"$Ld\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n6:null\n"])</script><script>self.__next_f.push([1,"8:{\"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,"d:\"$8:metadata\"\n"])</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-6f17a022ac16e8bd.js" defer=""></script><script src="/_next/static/chunks/framework-1548034a53843b9f.js" defer=""></script><script src="/_next/static/chunks/main-be8e823624954fab.js" defer=""></script><script src="/_next/static/chunks/pages/_app-e8b861c87f6f033c.js" defer=""></script><script src="/_next/static/chunks/pages/_error-c8f84f7bd11d43d4.js" defer=""></script><script src="/_next/static/geAgl8xNIf0s1v2mfu4tE/_buildManifest.js" defer=""></script><script src="/_next/static/geAgl8xNIf0s1v2mfu4tE/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>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)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"geAgl8xNIf0s1v2mfu4tE","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-63a4c59e84967e90.js" defer=""></script><script src="/_next/static/chunks/framework-1548034a53843b9f.js" defer=""></script><script src="/_next/static/chunks/main-be8e823624954fab.js" defer=""></script><script src="/_next/static/chunks/pages/_app-e8b861c87f6f033c.js" defer=""></script><script src="/_next/static/chunks/pages/_error-c8f84f7bd11d43d4.js" defer=""></script><script src="/_next/static/9Pzu8N65j3JuRQ7zVUtwD/_buildManifest.js" defer=""></script><script src="/_next/static/9Pzu8N65j3JuRQ7zVUtwD/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>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)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"9Pzu8N65j3JuRQ7zVUtwD","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- self.__RSC_SERVER_MANIFEST="{\"node\":{\"40520b537d1d43f510acbccd60e3e7d42ce215c157\":{\"workers\":{\"app/api/env/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/flow/[id]/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/flow/prompt-renderer/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/flow/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/init/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/cancel/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/[name]/prompts/get/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/[name]/prompts/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/[name]/resources/read/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/[name]/resources/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/[name]/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/[name]/status/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/[name]/tools/[toolName]/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/[name]/tools/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/test-connection/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/model/[id]/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/model/provider/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/model/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/model/test/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/oauth/callback/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/oauth/initiate/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/oauth/reset/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/planned-executions/[id]/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/planned-executions/[id]/run/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/planned-executions/[id]/runs/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/planned-executions/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/restore/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/webhooks/[id]/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/completions/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/[conversationId]/breakpoints/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/[conversationId]/cancel/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/[conversationId]/debug/continue/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/[conversationId]/debug/step/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/[conversationId]/edit-state/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/[conversationId]/respond/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/[conversationId]/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/models/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/backup/route\":{\"moduleId\":\"947\",\"async\":false},\"app/mcp-flows/route\":{\"moduleId\":\"947\",\"async\":false},\"app/mcp-proxy/[server]/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/[conversationId]/events/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/test-connection/stream/route\":{\"moduleId\":\"947\",\"async\":false},\"app/models/page\":{\"moduleId\":\"947\",\"async\":false},\"app/settings/page\":{\"moduleId\":\"9047\",\"async\":false},\"app/mcp/page\":{\"moduleId\":\"9047\",\"async\":false}},\"layer\":{\"app/api/env/route\":\"rsc\",\"app/api/flow/[id]/route\":\"rsc\",\"app/api/flow/prompt-renderer/route\":\"rsc\",\"app/api/flow/route\":\"rsc\",\"app/api/init/route\":\"rsc\",\"app/api/mcp/cancel/route\":\"rsc\",\"app/api/mcp/servers/[name]/prompts/get/route\":\"rsc\",\"app/api/mcp/servers/[name]/prompts/route\":\"rsc\",\"app/api/mcp/servers/[name]/resources/read/route\":\"rsc\",\"app/api/mcp/servers/[name]/resources/route\":\"rsc\",\"app/api/mcp/servers/[name]/route\":\"rsc\",\"app/api/mcp/servers/[name]/status/route\":\"rsc\",\"app/api/mcp/servers/[name]/tools/[toolName]/route\":\"rsc\",\"app/api/mcp/servers/[name]/tools/route\":\"rsc\",\"app/api/mcp/servers/route\":\"rsc\",\"app/api/mcp/test-connection/route\":\"rsc\",\"app/api/model/[id]/route\":\"rsc\",\"app/api/model/provider/route\":\"rsc\",\"app/api/model/route\":\"rsc\",\"app/api/model/test/route\":\"rsc\",\"app/api/oauth/callback/route\":\"rsc\",\"app/api/oauth/initiate/route\":\"rsc\",\"app/api/oauth/reset/route\":\"rsc\",\"app/api/planned-executions/[id]/route\":\"rsc\",\"app/api/planned-executions/[id]/run/route\":\"rsc\",\"app/api/planned-executions/[id]/runs/route\":\"rsc\",\"app/api/planned-executions/route\":\"rsc\",\"app/api/restore/route\":\"rsc\",\"app/api/webhooks/[id]/route\":\"rsc\",\"app/v1/chat/completions/route\":\"rsc\",\"app/v1/chat/conversations/[conversationId]/breakpoints/route\":\"rsc\",\"app/v1/chat/conversations/[conversationId]/cancel/route\":\"rsc\",\"app/v1/chat/conversations/[conversationId]/debug/continue/route\":\"rsc\",\"app/v1/chat/conversations/[conversationId]/debug/step/route\":\"rsc\",\"app/v1/chat/conversations/[conversationId]/edit-state/route\":\"rsc\",\"app/v1/chat/conversations/[conversationId]/respond/route\":\"rsc\",\"app/v1/chat/conversations/[conversationId]/route\":\"rsc\",\"app/v1/chat/conversations/route\":\"rsc\",\"app/v1/models/route\":\"rsc\",\"app/api/backup/route\":\"rsc\",\"app/mcp-flows/route\":\"rsc\",\"app/mcp-proxy/[server]/route\":\"rsc\",\"app/v1/chat/conversations/[conversationId]/events/route\":\"rsc\",\"app/api/mcp/test-connection/stream/route\":\"rsc\",\"app/models/page\":\"rsc\",\"app/settings/page\":\"action-browser\",\"app/mcp/page\":\"action-browser\"},\"filename\":\"../C:\\\\Users\\\\MarioAndreschak\\\\Documents\\\\GitHub\\\\FLUJO\\\\src\\\\backend\\\\utils\\\\resolveGlobalVars.ts\",\"exportedName\":\"resolveGlobalVars\"},\"60de87c4c5950c080550cb766970e88ae9c9a0ca25\":{\"workers\":{\"app/api/env/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/flow/[id]/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/flow/prompt-renderer/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/flow/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/init/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/cancel/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/[name]/prompts/get/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/[name]/prompts/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/[name]/resources/read/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/[name]/resources/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/[name]/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/[name]/status/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/[name]/tools/[toolName]/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/[name]/tools/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/test-connection/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/model/[id]/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/model/provider/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/model/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/model/test/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/oauth/callback/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/oauth/initiate/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/oauth/reset/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/planned-executions/[id]/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/planned-executions/[id]/run/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/planned-executions/[id]/runs/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/planned-executions/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/restore/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/webhooks/[id]/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/completions/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/[conversationId]/breakpoints/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/[conversationId]/cancel/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/[conversationId]/debug/continue/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/[conversationId]/debug/step/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/[conversationId]/edit-state/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/[conversationId]/respond/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/[conversationId]/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/models/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/backup/route\":{\"moduleId\":\"947\",\"async\":false},\"app/mcp-flows/route\":{\"moduleId\":\"947\",\"async\":false},\"app/mcp-proxy/[server]/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/[conversationId]/events/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/test-connection/stream/route\":{\"moduleId\":\"947\",\"async\":false},\"app/models/page\":{\"moduleId\":\"947\",\"async\":false},\"app/settings/page\":{\"moduleId\":\"9047\",\"async\":false},\"app/mcp/page\":{\"moduleId\":\"9047\",\"async\":false}},\"layer\":{\"app/api/env/route\":\"rsc\",\"app/api/flow/[id]/route\":\"rsc\",\"app/api/flow/prompt-renderer/route\":\"rsc\",\"app/api/flow/route\":\"rsc\",\"app/api/init/route\":\"rsc\",\"app/api/mcp/cancel/route\":\"rsc\",\"app/api/mcp/servers/[name]/prompts/get/route\":\"rsc\",\"app/api/mcp/servers/[name]/prompts/route\":\"rsc\",\"app/api/mcp/servers/[name]/resources/read/route\":\"rsc\",\"app/api/mcp/servers/[name]/resources/route\":\"rsc\",\"app/api/mcp/servers/[name]/route\":\"rsc\",\"app/api/mcp/servers/[name]/status/route\":\"rsc\",\"app/api/mcp/servers/[name]/tools/[toolName]/route\":\"rsc\",\"app/api/mcp/servers/[name]/tools/route\":\"rsc\",\"app/api/mcp/servers/route\":\"rsc\",\"app/api/mcp/test-connection/route\":\"rsc\",\"app/api/model/[id]/route\":\"rsc\",\"app/api/model/provider/route\":\"rsc\",\"app/api/model/route\":\"rsc\",\"app/api/model/test/route\":\"rsc\",\"app/api/oauth/callback/route\":\"rsc\",\"app/api/oauth/initiate/route\":\"rsc\",\"app/api/oauth/reset/route\":\"rsc\",\"app/api/planned-executions/[id]/route\":\"rsc\",\"app/api/planned-executions/[id]/run/route\":\"rsc\",\"app/api/planned-executions/[id]/runs/route\":\"rsc\",\"app/api/planned-executions/route\":\"rsc\",\"app/api/restore/route\":\"rsc\",\"app/api/webhooks/[id]/route\":\"rsc\",\"app/v1/chat/completions/route\":\"rsc\",\"app/v1/chat/conversations/[conversationId]/breakpoints/route\":\"rsc\",\"app/v1/chat/conversations/[conversationId]/cancel/route\":\"rsc\",\"app/v1/chat/conversations/[conversationId]/debug/continue/route\":\"rsc\",\"app/v1/chat/conversations/[conversationId]/debug/step/route\":\"rsc\",\"app/v1/chat/conversations/[conversationId]/edit-state/route\":\"rsc\",\"app/v1/chat/conversations/[conversationId]/respond/route\":\"rsc\",\"app/v1/chat/conversations/[conversationId]/route\":\"rsc\",\"app/v1/chat/conversations/route\":\"rsc\",\"app/v1/models/route\":\"rsc\",\"app/api/backup/route\":\"rsc\",\"app/mcp-flows/route\":\"rsc\",\"app/mcp-proxy/[server]/route\":\"rsc\",\"app/v1/chat/conversations/[conversationId]/events/route\":\"rsc\",\"app/api/mcp/test-connection/stream/route\":\"rsc\",\"app/models/page\":\"rsc\",\"app/settings/page\":\"action-browser\",\"app/mcp/page\":\"action-browser\"},\"filename\":\"../C:\\\\Users\\\\MarioAndreschak\\\\Documents\\\\GitHub\\\\FLUJO\\\\src\\\\backend\\\\utils\\\\resolveGlobalVars.ts\",\"exportedName\":\"resolveAndDecryptApiKey\"}},\"edge\":{},\"encryptionKey\":\"process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY\"}"
1
+ self.__RSC_SERVER_MANIFEST="{\"node\":{\"40520b537d1d43f510acbccd60e3e7d42ce215c157\":{\"workers\":{\"app/api/backup/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/encryption/secure/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/env/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/flow/[id]/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/flow/prompt-renderer/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/flow/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/init/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/cancel/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/[name]/prompts/get/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/[name]/prompts/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/[name]/resources/read/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/[name]/resources/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/[name]/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/[name]/status/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/[name]/tools/[toolName]/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/[name]/tools/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/test-connection/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/model/[id]/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/model/provider/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/model/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/model/test/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/oauth/callback/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/oauth/initiate/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/oauth/reset/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/planned-executions/[id]/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/planned-executions/[id]/run/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/planned-executions/[id]/runs/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/planned-executions/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/restore/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/webhooks/[id]/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/completions/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/[conversationId]/breakpoints/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/[conversationId]/cancel/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/[conversationId]/debug/continue/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/[conversationId]/debug/step/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/[conversationId]/edit-state/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/[conversationId]/respond/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/[conversationId]/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/models/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/test-connection/stream/route\":{\"moduleId\":\"947\",\"async\":false},\"app/mcp-flows/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/[conversationId]/events/route\":{\"moduleId\":\"947\",\"async\":false},\"app/mcp-proxy/[server]/route\":{\"moduleId\":\"947\",\"async\":false},\"app/models/page\":{\"moduleId\":\"947\",\"async\":false},\"app/mcp/page\":{\"moduleId\":\"9047\",\"async\":false},\"app/settings/page\":{\"moduleId\":\"9047\",\"async\":false}},\"layer\":{\"app/api/backup/route\":\"rsc\",\"app/api/encryption/secure/route\":\"rsc\",\"app/api/env/route\":\"rsc\",\"app/api/flow/[id]/route\":\"rsc\",\"app/api/flow/prompt-renderer/route\":\"rsc\",\"app/api/flow/route\":\"rsc\",\"app/api/init/route\":\"rsc\",\"app/api/mcp/cancel/route\":\"rsc\",\"app/api/mcp/servers/[name]/prompts/get/route\":\"rsc\",\"app/api/mcp/servers/[name]/prompts/route\":\"rsc\",\"app/api/mcp/servers/[name]/resources/read/route\":\"rsc\",\"app/api/mcp/servers/[name]/resources/route\":\"rsc\",\"app/api/mcp/servers/[name]/route\":\"rsc\",\"app/api/mcp/servers/[name]/status/route\":\"rsc\",\"app/api/mcp/servers/[name]/tools/[toolName]/route\":\"rsc\",\"app/api/mcp/servers/[name]/tools/route\":\"rsc\",\"app/api/mcp/servers/route\":\"rsc\",\"app/api/mcp/test-connection/route\":\"rsc\",\"app/api/model/[id]/route\":\"rsc\",\"app/api/model/provider/route\":\"rsc\",\"app/api/model/route\":\"rsc\",\"app/api/model/test/route\":\"rsc\",\"app/api/oauth/callback/route\":\"rsc\",\"app/api/oauth/initiate/route\":\"rsc\",\"app/api/oauth/reset/route\":\"rsc\",\"app/api/planned-executions/[id]/route\":\"rsc\",\"app/api/planned-executions/[id]/run/route\":\"rsc\",\"app/api/planned-executions/[id]/runs/route\":\"rsc\",\"app/api/planned-executions/route\":\"rsc\",\"app/api/restore/route\":\"rsc\",\"app/api/webhooks/[id]/route\":\"rsc\",\"app/v1/chat/completions/route\":\"rsc\",\"app/v1/chat/conversations/[conversationId]/breakpoints/route\":\"rsc\",\"app/v1/chat/conversations/[conversationId]/cancel/route\":\"rsc\",\"app/v1/chat/conversations/[conversationId]/debug/continue/route\":\"rsc\",\"app/v1/chat/conversations/[conversationId]/debug/step/route\":\"rsc\",\"app/v1/chat/conversations/[conversationId]/edit-state/route\":\"rsc\",\"app/v1/chat/conversations/[conversationId]/respond/route\":\"rsc\",\"app/v1/chat/conversations/[conversationId]/route\":\"rsc\",\"app/v1/chat/conversations/route\":\"rsc\",\"app/v1/models/route\":\"rsc\",\"app/api/mcp/test-connection/stream/route\":\"rsc\",\"app/mcp-flows/route\":\"rsc\",\"app/v1/chat/conversations/[conversationId]/events/route\":\"rsc\",\"app/mcp-proxy/[server]/route\":\"rsc\",\"app/models/page\":\"rsc\",\"app/mcp/page\":\"action-browser\",\"app/settings/page\":\"action-browser\"},\"filename\":\"../C:\\\\Users\\\\MarioAndreschak\\\\Documents\\\\GitHub\\\\FLUJO\\\\src\\\\backend\\\\utils\\\\resolveGlobalVars.ts\",\"exportedName\":\"resolveGlobalVars\"},\"60de87c4c5950c080550cb766970e88ae9c9a0ca25\":{\"workers\":{\"app/api/backup/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/encryption/secure/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/env/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/flow/[id]/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/flow/prompt-renderer/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/flow/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/init/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/cancel/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/[name]/prompts/get/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/[name]/prompts/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/[name]/resources/read/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/[name]/resources/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/[name]/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/[name]/status/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/[name]/tools/[toolName]/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/[name]/tools/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/servers/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/test-connection/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/model/[id]/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/model/provider/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/model/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/model/test/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/oauth/callback/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/oauth/initiate/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/oauth/reset/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/planned-executions/[id]/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/planned-executions/[id]/run/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/planned-executions/[id]/runs/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/planned-executions/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/restore/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/webhooks/[id]/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/completions/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/[conversationId]/breakpoints/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/[conversationId]/cancel/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/[conversationId]/debug/continue/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/[conversationId]/debug/step/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/[conversationId]/edit-state/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/[conversationId]/respond/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/[conversationId]/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/models/route\":{\"moduleId\":\"947\",\"async\":false},\"app/api/mcp/test-connection/stream/route\":{\"moduleId\":\"947\",\"async\":false},\"app/mcp-flows/route\":{\"moduleId\":\"947\",\"async\":false},\"app/v1/chat/conversations/[conversationId]/events/route\":{\"moduleId\":\"947\",\"async\":false},\"app/mcp-proxy/[server]/route\":{\"moduleId\":\"947\",\"async\":false},\"app/models/page\":{\"moduleId\":\"947\",\"async\":false},\"app/mcp/page\":{\"moduleId\":\"9047\",\"async\":false},\"app/settings/page\":{\"moduleId\":\"9047\",\"async\":false}},\"layer\":{\"app/api/backup/route\":\"rsc\",\"app/api/encryption/secure/route\":\"rsc\",\"app/api/env/route\":\"rsc\",\"app/api/flow/[id]/route\":\"rsc\",\"app/api/flow/prompt-renderer/route\":\"rsc\",\"app/api/flow/route\":\"rsc\",\"app/api/init/route\":\"rsc\",\"app/api/mcp/cancel/route\":\"rsc\",\"app/api/mcp/servers/[name]/prompts/get/route\":\"rsc\",\"app/api/mcp/servers/[name]/prompts/route\":\"rsc\",\"app/api/mcp/servers/[name]/resources/read/route\":\"rsc\",\"app/api/mcp/servers/[name]/resources/route\":\"rsc\",\"app/api/mcp/servers/[name]/route\":\"rsc\",\"app/api/mcp/servers/[name]/status/route\":\"rsc\",\"app/api/mcp/servers/[name]/tools/[toolName]/route\":\"rsc\",\"app/api/mcp/servers/[name]/tools/route\":\"rsc\",\"app/api/mcp/servers/route\":\"rsc\",\"app/api/mcp/test-connection/route\":\"rsc\",\"app/api/model/[id]/route\":\"rsc\",\"app/api/model/provider/route\":\"rsc\",\"app/api/model/route\":\"rsc\",\"app/api/model/test/route\":\"rsc\",\"app/api/oauth/callback/route\":\"rsc\",\"app/api/oauth/initiate/route\":\"rsc\",\"app/api/oauth/reset/route\":\"rsc\",\"app/api/planned-executions/[id]/route\":\"rsc\",\"app/api/planned-executions/[id]/run/route\":\"rsc\",\"app/api/planned-executions/[id]/runs/route\":\"rsc\",\"app/api/planned-executions/route\":\"rsc\",\"app/api/restore/route\":\"rsc\",\"app/api/webhooks/[id]/route\":\"rsc\",\"app/v1/chat/completions/route\":\"rsc\",\"app/v1/chat/conversations/[conversationId]/breakpoints/route\":\"rsc\",\"app/v1/chat/conversations/[conversationId]/cancel/route\":\"rsc\",\"app/v1/chat/conversations/[conversationId]/debug/continue/route\":\"rsc\",\"app/v1/chat/conversations/[conversationId]/debug/step/route\":\"rsc\",\"app/v1/chat/conversations/[conversationId]/edit-state/route\":\"rsc\",\"app/v1/chat/conversations/[conversationId]/respond/route\":\"rsc\",\"app/v1/chat/conversations/[conversationId]/route\":\"rsc\",\"app/v1/chat/conversations/route\":\"rsc\",\"app/v1/models/route\":\"rsc\",\"app/api/mcp/test-connection/stream/route\":\"rsc\",\"app/mcp-flows/route\":\"rsc\",\"app/v1/chat/conversations/[conversationId]/events/route\":\"rsc\",\"app/mcp-proxy/[server]/route\":\"rsc\",\"app/models/page\":\"rsc\",\"app/mcp/page\":\"action-browser\",\"app/settings/page\":\"action-browser\"},\"filename\":\"../C:\\\\Users\\\\MarioAndreschak\\\\Documents\\\\GitHub\\\\FLUJO\\\\src\\\\backend\\\\utils\\\\resolveGlobalVars.ts\",\"exportedName\":\"resolveAndDecryptApiKey\"}},\"edge\":{},\"encryptionKey\":\"process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY\"}"
@@ -1 +1 @@
1
- {"node":{"40520b537d1d43f510acbccd60e3e7d42ce215c157":{"workers":{"app/api/env/route":{"moduleId":"947","async":false},"app/api/flow/[id]/route":{"moduleId":"947","async":false},"app/api/flow/prompt-renderer/route":{"moduleId":"947","async":false},"app/api/flow/route":{"moduleId":"947","async":false},"app/api/init/route":{"moduleId":"947","async":false},"app/api/mcp/cancel/route":{"moduleId":"947","async":false},"app/api/mcp/servers/[name]/prompts/get/route":{"moduleId":"947","async":false},"app/api/mcp/servers/[name]/prompts/route":{"moduleId":"947","async":false},"app/api/mcp/servers/[name]/resources/read/route":{"moduleId":"947","async":false},"app/api/mcp/servers/[name]/resources/route":{"moduleId":"947","async":false},"app/api/mcp/servers/[name]/route":{"moduleId":"947","async":false},"app/api/mcp/servers/[name]/status/route":{"moduleId":"947","async":false},"app/api/mcp/servers/[name]/tools/[toolName]/route":{"moduleId":"947","async":false},"app/api/mcp/servers/[name]/tools/route":{"moduleId":"947","async":false},"app/api/mcp/servers/route":{"moduleId":"947","async":false},"app/api/mcp/test-connection/route":{"moduleId":"947","async":false},"app/api/model/[id]/route":{"moduleId":"947","async":false},"app/api/model/provider/route":{"moduleId":"947","async":false},"app/api/model/route":{"moduleId":"947","async":false},"app/api/model/test/route":{"moduleId":"947","async":false},"app/api/oauth/callback/route":{"moduleId":"947","async":false},"app/api/oauth/initiate/route":{"moduleId":"947","async":false},"app/api/oauth/reset/route":{"moduleId":"947","async":false},"app/api/planned-executions/[id]/route":{"moduleId":"947","async":false},"app/api/planned-executions/[id]/run/route":{"moduleId":"947","async":false},"app/api/planned-executions/[id]/runs/route":{"moduleId":"947","async":false},"app/api/planned-executions/route":{"moduleId":"947","async":false},"app/api/restore/route":{"moduleId":"947","async":false},"app/api/webhooks/[id]/route":{"moduleId":"947","async":false},"app/v1/chat/completions/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/[conversationId]/breakpoints/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/[conversationId]/cancel/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/[conversationId]/debug/continue/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/[conversationId]/debug/step/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/[conversationId]/edit-state/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/[conversationId]/respond/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/[conversationId]/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/route":{"moduleId":"947","async":false},"app/v1/models/route":{"moduleId":"947","async":false},"app/api/backup/route":{"moduleId":"947","async":false},"app/mcp-flows/route":{"moduleId":"947","async":false},"app/mcp-proxy/[server]/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/[conversationId]/events/route":{"moduleId":"947","async":false},"app/api/mcp/test-connection/stream/route":{"moduleId":"947","async":false},"app/models/page":{"moduleId":"947","async":false},"app/settings/page":{"moduleId":"9047","async":false},"app/mcp/page":{"moduleId":"9047","async":false}},"layer":{"app/api/env/route":"rsc","app/api/flow/[id]/route":"rsc","app/api/flow/prompt-renderer/route":"rsc","app/api/flow/route":"rsc","app/api/init/route":"rsc","app/api/mcp/cancel/route":"rsc","app/api/mcp/servers/[name]/prompts/get/route":"rsc","app/api/mcp/servers/[name]/prompts/route":"rsc","app/api/mcp/servers/[name]/resources/read/route":"rsc","app/api/mcp/servers/[name]/resources/route":"rsc","app/api/mcp/servers/[name]/route":"rsc","app/api/mcp/servers/[name]/status/route":"rsc","app/api/mcp/servers/[name]/tools/[toolName]/route":"rsc","app/api/mcp/servers/[name]/tools/route":"rsc","app/api/mcp/servers/route":"rsc","app/api/mcp/test-connection/route":"rsc","app/api/model/[id]/route":"rsc","app/api/model/provider/route":"rsc","app/api/model/route":"rsc","app/api/model/test/route":"rsc","app/api/oauth/callback/route":"rsc","app/api/oauth/initiate/route":"rsc","app/api/oauth/reset/route":"rsc","app/api/planned-executions/[id]/route":"rsc","app/api/planned-executions/[id]/run/route":"rsc","app/api/planned-executions/[id]/runs/route":"rsc","app/api/planned-executions/route":"rsc","app/api/restore/route":"rsc","app/api/webhooks/[id]/route":"rsc","app/v1/chat/completions/route":"rsc","app/v1/chat/conversations/[conversationId]/breakpoints/route":"rsc","app/v1/chat/conversations/[conversationId]/cancel/route":"rsc","app/v1/chat/conversations/[conversationId]/debug/continue/route":"rsc","app/v1/chat/conversations/[conversationId]/debug/step/route":"rsc","app/v1/chat/conversations/[conversationId]/edit-state/route":"rsc","app/v1/chat/conversations/[conversationId]/respond/route":"rsc","app/v1/chat/conversations/[conversationId]/route":"rsc","app/v1/chat/conversations/route":"rsc","app/v1/models/route":"rsc","app/api/backup/route":"rsc","app/mcp-flows/route":"rsc","app/mcp-proxy/[server]/route":"rsc","app/v1/chat/conversations/[conversationId]/events/route":"rsc","app/api/mcp/test-connection/stream/route":"rsc","app/models/page":"rsc","app/settings/page":"action-browser","app/mcp/page":"action-browser"},"filename":"../C:\\Users\\MarioAndreschak\\Documents\\GitHub\\FLUJO\\src\\backend\\utils\\resolveGlobalVars.ts","exportedName":"resolveGlobalVars"},"60de87c4c5950c080550cb766970e88ae9c9a0ca25":{"workers":{"app/api/env/route":{"moduleId":"947","async":false},"app/api/flow/[id]/route":{"moduleId":"947","async":false},"app/api/flow/prompt-renderer/route":{"moduleId":"947","async":false},"app/api/flow/route":{"moduleId":"947","async":false},"app/api/init/route":{"moduleId":"947","async":false},"app/api/mcp/cancel/route":{"moduleId":"947","async":false},"app/api/mcp/servers/[name]/prompts/get/route":{"moduleId":"947","async":false},"app/api/mcp/servers/[name]/prompts/route":{"moduleId":"947","async":false},"app/api/mcp/servers/[name]/resources/read/route":{"moduleId":"947","async":false},"app/api/mcp/servers/[name]/resources/route":{"moduleId":"947","async":false},"app/api/mcp/servers/[name]/route":{"moduleId":"947","async":false},"app/api/mcp/servers/[name]/status/route":{"moduleId":"947","async":false},"app/api/mcp/servers/[name]/tools/[toolName]/route":{"moduleId":"947","async":false},"app/api/mcp/servers/[name]/tools/route":{"moduleId":"947","async":false},"app/api/mcp/servers/route":{"moduleId":"947","async":false},"app/api/mcp/test-connection/route":{"moduleId":"947","async":false},"app/api/model/[id]/route":{"moduleId":"947","async":false},"app/api/model/provider/route":{"moduleId":"947","async":false},"app/api/model/route":{"moduleId":"947","async":false},"app/api/model/test/route":{"moduleId":"947","async":false},"app/api/oauth/callback/route":{"moduleId":"947","async":false},"app/api/oauth/initiate/route":{"moduleId":"947","async":false},"app/api/oauth/reset/route":{"moduleId":"947","async":false},"app/api/planned-executions/[id]/route":{"moduleId":"947","async":false},"app/api/planned-executions/[id]/run/route":{"moduleId":"947","async":false},"app/api/planned-executions/[id]/runs/route":{"moduleId":"947","async":false},"app/api/planned-executions/route":{"moduleId":"947","async":false},"app/api/restore/route":{"moduleId":"947","async":false},"app/api/webhooks/[id]/route":{"moduleId":"947","async":false},"app/v1/chat/completions/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/[conversationId]/breakpoints/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/[conversationId]/cancel/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/[conversationId]/debug/continue/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/[conversationId]/debug/step/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/[conversationId]/edit-state/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/[conversationId]/respond/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/[conversationId]/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/route":{"moduleId":"947","async":false},"app/v1/models/route":{"moduleId":"947","async":false},"app/api/backup/route":{"moduleId":"947","async":false},"app/mcp-flows/route":{"moduleId":"947","async":false},"app/mcp-proxy/[server]/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/[conversationId]/events/route":{"moduleId":"947","async":false},"app/api/mcp/test-connection/stream/route":{"moduleId":"947","async":false},"app/models/page":{"moduleId":"947","async":false},"app/settings/page":{"moduleId":"9047","async":false},"app/mcp/page":{"moduleId":"9047","async":false}},"layer":{"app/api/env/route":"rsc","app/api/flow/[id]/route":"rsc","app/api/flow/prompt-renderer/route":"rsc","app/api/flow/route":"rsc","app/api/init/route":"rsc","app/api/mcp/cancel/route":"rsc","app/api/mcp/servers/[name]/prompts/get/route":"rsc","app/api/mcp/servers/[name]/prompts/route":"rsc","app/api/mcp/servers/[name]/resources/read/route":"rsc","app/api/mcp/servers/[name]/resources/route":"rsc","app/api/mcp/servers/[name]/route":"rsc","app/api/mcp/servers/[name]/status/route":"rsc","app/api/mcp/servers/[name]/tools/[toolName]/route":"rsc","app/api/mcp/servers/[name]/tools/route":"rsc","app/api/mcp/servers/route":"rsc","app/api/mcp/test-connection/route":"rsc","app/api/model/[id]/route":"rsc","app/api/model/provider/route":"rsc","app/api/model/route":"rsc","app/api/model/test/route":"rsc","app/api/oauth/callback/route":"rsc","app/api/oauth/initiate/route":"rsc","app/api/oauth/reset/route":"rsc","app/api/planned-executions/[id]/route":"rsc","app/api/planned-executions/[id]/run/route":"rsc","app/api/planned-executions/[id]/runs/route":"rsc","app/api/planned-executions/route":"rsc","app/api/restore/route":"rsc","app/api/webhooks/[id]/route":"rsc","app/v1/chat/completions/route":"rsc","app/v1/chat/conversations/[conversationId]/breakpoints/route":"rsc","app/v1/chat/conversations/[conversationId]/cancel/route":"rsc","app/v1/chat/conversations/[conversationId]/debug/continue/route":"rsc","app/v1/chat/conversations/[conversationId]/debug/step/route":"rsc","app/v1/chat/conversations/[conversationId]/edit-state/route":"rsc","app/v1/chat/conversations/[conversationId]/respond/route":"rsc","app/v1/chat/conversations/[conversationId]/route":"rsc","app/v1/chat/conversations/route":"rsc","app/v1/models/route":"rsc","app/api/backup/route":"rsc","app/mcp-flows/route":"rsc","app/mcp-proxy/[server]/route":"rsc","app/v1/chat/conversations/[conversationId]/events/route":"rsc","app/api/mcp/test-connection/stream/route":"rsc","app/models/page":"rsc","app/settings/page":"action-browser","app/mcp/page":"action-browser"},"filename":"../C:\\Users\\MarioAndreschak\\Documents\\GitHub\\FLUJO\\src\\backend\\utils\\resolveGlobalVars.ts","exportedName":"resolveAndDecryptApiKey"}},"edge":{},"encryptionKey":"d34suOUYcHmh7KN6f1Lco7DLyXwlel7jYb4XH/DNEks="}
1
+ {"node":{"40520b537d1d43f510acbccd60e3e7d42ce215c157":{"workers":{"app/api/backup/route":{"moduleId":"947","async":false},"app/api/encryption/secure/route":{"moduleId":"947","async":false},"app/api/env/route":{"moduleId":"947","async":false},"app/api/flow/[id]/route":{"moduleId":"947","async":false},"app/api/flow/prompt-renderer/route":{"moduleId":"947","async":false},"app/api/flow/route":{"moduleId":"947","async":false},"app/api/init/route":{"moduleId":"947","async":false},"app/api/mcp/cancel/route":{"moduleId":"947","async":false},"app/api/mcp/servers/[name]/prompts/get/route":{"moduleId":"947","async":false},"app/api/mcp/servers/[name]/prompts/route":{"moduleId":"947","async":false},"app/api/mcp/servers/[name]/resources/read/route":{"moduleId":"947","async":false},"app/api/mcp/servers/[name]/resources/route":{"moduleId":"947","async":false},"app/api/mcp/servers/[name]/route":{"moduleId":"947","async":false},"app/api/mcp/servers/[name]/status/route":{"moduleId":"947","async":false},"app/api/mcp/servers/[name]/tools/[toolName]/route":{"moduleId":"947","async":false},"app/api/mcp/servers/[name]/tools/route":{"moduleId":"947","async":false},"app/api/mcp/servers/route":{"moduleId":"947","async":false},"app/api/mcp/test-connection/route":{"moduleId":"947","async":false},"app/api/model/[id]/route":{"moduleId":"947","async":false},"app/api/model/provider/route":{"moduleId":"947","async":false},"app/api/model/route":{"moduleId":"947","async":false},"app/api/model/test/route":{"moduleId":"947","async":false},"app/api/oauth/callback/route":{"moduleId":"947","async":false},"app/api/oauth/initiate/route":{"moduleId":"947","async":false},"app/api/oauth/reset/route":{"moduleId":"947","async":false},"app/api/planned-executions/[id]/route":{"moduleId":"947","async":false},"app/api/planned-executions/[id]/run/route":{"moduleId":"947","async":false},"app/api/planned-executions/[id]/runs/route":{"moduleId":"947","async":false},"app/api/planned-executions/route":{"moduleId":"947","async":false},"app/api/restore/route":{"moduleId":"947","async":false},"app/api/webhooks/[id]/route":{"moduleId":"947","async":false},"app/v1/chat/completions/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/[conversationId]/breakpoints/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/[conversationId]/cancel/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/[conversationId]/debug/continue/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/[conversationId]/debug/step/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/[conversationId]/edit-state/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/[conversationId]/respond/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/[conversationId]/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/route":{"moduleId":"947","async":false},"app/v1/models/route":{"moduleId":"947","async":false},"app/api/mcp/test-connection/stream/route":{"moduleId":"947","async":false},"app/mcp-flows/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/[conversationId]/events/route":{"moduleId":"947","async":false},"app/mcp-proxy/[server]/route":{"moduleId":"947","async":false},"app/models/page":{"moduleId":"947","async":false},"app/mcp/page":{"moduleId":"9047","async":false},"app/settings/page":{"moduleId":"9047","async":false}},"layer":{"app/api/backup/route":"rsc","app/api/encryption/secure/route":"rsc","app/api/env/route":"rsc","app/api/flow/[id]/route":"rsc","app/api/flow/prompt-renderer/route":"rsc","app/api/flow/route":"rsc","app/api/init/route":"rsc","app/api/mcp/cancel/route":"rsc","app/api/mcp/servers/[name]/prompts/get/route":"rsc","app/api/mcp/servers/[name]/prompts/route":"rsc","app/api/mcp/servers/[name]/resources/read/route":"rsc","app/api/mcp/servers/[name]/resources/route":"rsc","app/api/mcp/servers/[name]/route":"rsc","app/api/mcp/servers/[name]/status/route":"rsc","app/api/mcp/servers/[name]/tools/[toolName]/route":"rsc","app/api/mcp/servers/[name]/tools/route":"rsc","app/api/mcp/servers/route":"rsc","app/api/mcp/test-connection/route":"rsc","app/api/model/[id]/route":"rsc","app/api/model/provider/route":"rsc","app/api/model/route":"rsc","app/api/model/test/route":"rsc","app/api/oauth/callback/route":"rsc","app/api/oauth/initiate/route":"rsc","app/api/oauth/reset/route":"rsc","app/api/planned-executions/[id]/route":"rsc","app/api/planned-executions/[id]/run/route":"rsc","app/api/planned-executions/[id]/runs/route":"rsc","app/api/planned-executions/route":"rsc","app/api/restore/route":"rsc","app/api/webhooks/[id]/route":"rsc","app/v1/chat/completions/route":"rsc","app/v1/chat/conversations/[conversationId]/breakpoints/route":"rsc","app/v1/chat/conversations/[conversationId]/cancel/route":"rsc","app/v1/chat/conversations/[conversationId]/debug/continue/route":"rsc","app/v1/chat/conversations/[conversationId]/debug/step/route":"rsc","app/v1/chat/conversations/[conversationId]/edit-state/route":"rsc","app/v1/chat/conversations/[conversationId]/respond/route":"rsc","app/v1/chat/conversations/[conversationId]/route":"rsc","app/v1/chat/conversations/route":"rsc","app/v1/models/route":"rsc","app/api/mcp/test-connection/stream/route":"rsc","app/mcp-flows/route":"rsc","app/v1/chat/conversations/[conversationId]/events/route":"rsc","app/mcp-proxy/[server]/route":"rsc","app/models/page":"rsc","app/mcp/page":"action-browser","app/settings/page":"action-browser"},"filename":"../C:\\Users\\MarioAndreschak\\Documents\\GitHub\\FLUJO\\src\\backend\\utils\\resolveGlobalVars.ts","exportedName":"resolveGlobalVars"},"60de87c4c5950c080550cb766970e88ae9c9a0ca25":{"workers":{"app/api/backup/route":{"moduleId":"947","async":false},"app/api/encryption/secure/route":{"moduleId":"947","async":false},"app/api/env/route":{"moduleId":"947","async":false},"app/api/flow/[id]/route":{"moduleId":"947","async":false},"app/api/flow/prompt-renderer/route":{"moduleId":"947","async":false},"app/api/flow/route":{"moduleId":"947","async":false},"app/api/init/route":{"moduleId":"947","async":false},"app/api/mcp/cancel/route":{"moduleId":"947","async":false},"app/api/mcp/servers/[name]/prompts/get/route":{"moduleId":"947","async":false},"app/api/mcp/servers/[name]/prompts/route":{"moduleId":"947","async":false},"app/api/mcp/servers/[name]/resources/read/route":{"moduleId":"947","async":false},"app/api/mcp/servers/[name]/resources/route":{"moduleId":"947","async":false},"app/api/mcp/servers/[name]/route":{"moduleId":"947","async":false},"app/api/mcp/servers/[name]/status/route":{"moduleId":"947","async":false},"app/api/mcp/servers/[name]/tools/[toolName]/route":{"moduleId":"947","async":false},"app/api/mcp/servers/[name]/tools/route":{"moduleId":"947","async":false},"app/api/mcp/servers/route":{"moduleId":"947","async":false},"app/api/mcp/test-connection/route":{"moduleId":"947","async":false},"app/api/model/[id]/route":{"moduleId":"947","async":false},"app/api/model/provider/route":{"moduleId":"947","async":false},"app/api/model/route":{"moduleId":"947","async":false},"app/api/model/test/route":{"moduleId":"947","async":false},"app/api/oauth/callback/route":{"moduleId":"947","async":false},"app/api/oauth/initiate/route":{"moduleId":"947","async":false},"app/api/oauth/reset/route":{"moduleId":"947","async":false},"app/api/planned-executions/[id]/route":{"moduleId":"947","async":false},"app/api/planned-executions/[id]/run/route":{"moduleId":"947","async":false},"app/api/planned-executions/[id]/runs/route":{"moduleId":"947","async":false},"app/api/planned-executions/route":{"moduleId":"947","async":false},"app/api/restore/route":{"moduleId":"947","async":false},"app/api/webhooks/[id]/route":{"moduleId":"947","async":false},"app/v1/chat/completions/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/[conversationId]/breakpoints/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/[conversationId]/cancel/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/[conversationId]/debug/continue/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/[conversationId]/debug/step/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/[conversationId]/edit-state/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/[conversationId]/respond/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/[conversationId]/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/route":{"moduleId":"947","async":false},"app/v1/models/route":{"moduleId":"947","async":false},"app/api/mcp/test-connection/stream/route":{"moduleId":"947","async":false},"app/mcp-flows/route":{"moduleId":"947","async":false},"app/v1/chat/conversations/[conversationId]/events/route":{"moduleId":"947","async":false},"app/mcp-proxy/[server]/route":{"moduleId":"947","async":false},"app/models/page":{"moduleId":"947","async":false},"app/mcp/page":{"moduleId":"9047","async":false},"app/settings/page":{"moduleId":"9047","async":false}},"layer":{"app/api/backup/route":"rsc","app/api/encryption/secure/route":"rsc","app/api/env/route":"rsc","app/api/flow/[id]/route":"rsc","app/api/flow/prompt-renderer/route":"rsc","app/api/flow/route":"rsc","app/api/init/route":"rsc","app/api/mcp/cancel/route":"rsc","app/api/mcp/servers/[name]/prompts/get/route":"rsc","app/api/mcp/servers/[name]/prompts/route":"rsc","app/api/mcp/servers/[name]/resources/read/route":"rsc","app/api/mcp/servers/[name]/resources/route":"rsc","app/api/mcp/servers/[name]/route":"rsc","app/api/mcp/servers/[name]/status/route":"rsc","app/api/mcp/servers/[name]/tools/[toolName]/route":"rsc","app/api/mcp/servers/[name]/tools/route":"rsc","app/api/mcp/servers/route":"rsc","app/api/mcp/test-connection/route":"rsc","app/api/model/[id]/route":"rsc","app/api/model/provider/route":"rsc","app/api/model/route":"rsc","app/api/model/test/route":"rsc","app/api/oauth/callback/route":"rsc","app/api/oauth/initiate/route":"rsc","app/api/oauth/reset/route":"rsc","app/api/planned-executions/[id]/route":"rsc","app/api/planned-executions/[id]/run/route":"rsc","app/api/planned-executions/[id]/runs/route":"rsc","app/api/planned-executions/route":"rsc","app/api/restore/route":"rsc","app/api/webhooks/[id]/route":"rsc","app/v1/chat/completions/route":"rsc","app/v1/chat/conversations/[conversationId]/breakpoints/route":"rsc","app/v1/chat/conversations/[conversationId]/cancel/route":"rsc","app/v1/chat/conversations/[conversationId]/debug/continue/route":"rsc","app/v1/chat/conversations/[conversationId]/debug/step/route":"rsc","app/v1/chat/conversations/[conversationId]/edit-state/route":"rsc","app/v1/chat/conversations/[conversationId]/respond/route":"rsc","app/v1/chat/conversations/[conversationId]/route":"rsc","app/v1/chat/conversations/route":"rsc","app/v1/models/route":"rsc","app/api/mcp/test-connection/stream/route":"rsc","app/mcp-flows/route":"rsc","app/v1/chat/conversations/[conversationId]/events/route":"rsc","app/mcp-proxy/[server]/route":"rsc","app/models/page":"rsc","app/mcp/page":"action-browser","app/settings/page":"action-browser"},"filename":"../C:\\Users\\MarioAndreschak\\Documents\\GitHub\\FLUJO\\src\\backend\\utils\\resolveGlobalVars.ts","exportedName":"resolveAndDecryptApiKey"}},"edge":{},"encryptionKey":"d34suOUYcHmh7KN6f1Lco7DLyXwlel7jYb4XH/DNEks="}
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3217],{21422:(e,t,n)=>{n.d(t,{A:()=>a});var i=n(36697),r=n(95155);let a=(0,i.A)((0,r.jsx)("path",{d:"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2M9 6c0-1.66 1.34-3 3-3s3 1.34 3 3v2H9zm9 14H6V10h12zm-6-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2"}),"LockOutlined")},23217:(e,t,n)=>{n.r(t),n.d(t,{default:()=>E});var i=n(95155),r=n(12115),a=n(87021),s=n(2778),o=n(52363),l=n(94049),d=n(25635),c=n(65036),u=n(22003),p=n(9562),h=n(56422),v=n(41983),y=n(75912),f=n(70690),A=n(4474),m=n(21422),w=n(68212),g=n(42063),x=n(9164),b=n(31373);let j=(0,a.h)("frontend/components/EncryptionAuthDialog");function E(){let{verifyKey:e,isEncryptionInitialized:t,isUserEncryptionEnabled:n}=(0,x.useStorage)(),[a,E]=(0,r.useState)(""),[S,k]=(0,r.useState)(!1),[P,z]=(0,r.useState)(null),[C,I]=(0,r.useState)(!1),[M,L]=(0,r.useState)(!1),[V,N]=(0,r.useState)(!1),[R,U]=(0,r.useState)(!0);(0,r.useEffect)(()=>{(async()=>{j.debug("Checking encryption status");try{U(!0);let e=await t();if(j.debug("Encryption initialized: ".concat(e)),!e){j.info("No encryption initialized, skipping authentication"),N(!0),L(!1),U(!1);return}let i=await n();if(j.debug("User encryption enabled: ".concat(i)),!i){j.info("Default encryption in use, skipping authentication"),N(!0),L(!1),U(!1);return}let r=sessionStorage.getItem("encryption_authenticated");if(j.debug("Session authentication status: ".concat(r)),"true"===r){j.info("Already authenticated in this session"),N(!0),L(!1),U(!1);return}j.info("User encryption enabled and not authenticated, showing dialog"),L(!0),U(!1)}catch(e){j.error("Failed to check encryption status:",e),U(!1),N(!0)}})()},[t,n]),(0,r.useEffect)(()=>{(0,b.bx)();let e=()=>{j.info("Encryption locked signal received; showing lock screen"),N(!1),U(!1),L(!0)};return window.addEventListener(b.UJ,e),()=>window.removeEventListener(b.UJ,e)},[]);let _=async()=>{if(!a.trim()){j.warn("Empty password submitted"),z("Password is required");return}j.debug("Verifying encryption password"),I(!0),z(null);try{let t=await e(a);j.debug("Password verification result: ".concat(t)),t?(j.info("Authentication successful"),N(!0),L(!1),window.dispatchEvent(new CustomEvent(b.ZB))):(j.warn("Invalid password provided"),z("Invalid password"))}catch(e){j.error("Failed to verify password:",e),z("An error occurred while verifying the password")}finally{I(!1)}};return R||V?null:(0,i.jsxs)(s.A,{open:M,maxWidth:"sm",fullWidth:!0,disableEscapeKeyDown:!0,onClose:()=>{},children:[(0,i.jsx)(o.A,{component:"div",children:(0,i.jsxs)(l.default,{display:"flex",alignItems:"center",children:[(0,i.jsx)(m.A,{sx:{mr:1}}),(0,i.jsx)(d.default,{variant:"h6",children:"Encryption Password Required"})]})}),(0,i.jsxs)(c.A,{children:[P&&(0,i.jsx)(u.A,{severity:"error",sx:{mb:2},children:P}),(0,i.jsx)(d.default,{variant:"body1",paragraph:!0,children:"This application is configured with custom encryption. Please enter your encryption password to access your encrypted data."}),(0,i.jsx)(p.A,{autoFocus:!0,fullWidth:!0,label:"Encryption Password",variant:"outlined",type:S?"text":"password",value:a,onChange:e=>E(e.target.value),onKeyDown:e=>{"Enter"===e.key&&_()},InputProps:{endAdornment:(0,i.jsx)(h.A,{position:"end",children:(0,i.jsx)(v.A,{"aria-label":"toggle password visibility",onClick:()=>k(!S),edge:"end",children:S?(0,i.jsx)(w.A,{}):(0,i.jsx)(g.A,{})})})},sx:{mt:2}})]}),(0,i.jsx)(y.A,{children:(0,i.jsx)(f.A,{variant:"contained",color:"primary",onClick:_,disabled:C,startIcon:C?(0,i.jsx)(A.default,{size:20}):null,children:C?"Verifying...":"Unlock"})})]})}},42063:(e,t,n)=>{n.d(t,{A:()=>a});var i=n(36697),r=n(95155);let a=(0,i.A)((0,r.jsx)("path",{d:"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5M12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5m0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3"}),"Visibility")},56422:(e,t,n)=>{n.d(t,{A:()=>g});var i,r=n(12115),a=n(2821),s=n(57001),o=n(81852),l=n(25635),d=n(45222),c=n(45918),u=n(48116),p=n(66964),h=n(16625),v=n(85795),y=n(95195);function f(e){return(0,y.Ay)("MuiInputAdornment",e)}let A=(0,v.A)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]);var m=n(95155);let w=(0,u.Ay)("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t["position".concat((0,o.A)(n.position))],!0===n.disablePointerEvents&&t.disablePointerEvents,t[n.variant]]}})((0,p.A)(e=>{let{theme:t}=e;return{display:"flex",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:(t.vars||t).palette.action.active,variants:[{props:{variant:"filled"},style:{["&.".concat(A.positionStart,"&:not(.").concat(A.hiddenLabel,")")]:{marginTop:16}}},{props:{position:"start"},style:{marginRight:8}},{props:{position:"end"},style:{marginLeft:8}},{props:{disablePointerEvents:!0},style:{pointerEvents:"none"}}]}})),g=r.forwardRef(function(e,t){let n=(0,h.b)({props:e,name:"MuiInputAdornment"}),{children:u,className:p,component:v="div",disablePointerEvents:y=!1,disableTypography:A=!1,position:g,variant:x,...b}=n,j=(0,c.A)()||{},E=x;x&&j.variant,j&&!E&&(E=j.variant);let S={...n,hiddenLabel:j.hiddenLabel,size:j.size,disablePointerEvents:y,position:g,variant:E},k=(e=>{let{classes:t,disablePointerEvents:n,hiddenLabel:i,position:r,size:a,variant:l}=e,d={root:["root",n&&"disablePointerEvents",r&&"position".concat((0,o.A)(r)),l,i&&"hiddenLabel",a&&"size".concat((0,o.A)(a))]};return(0,s.A)(d,f,t)})(S);return(0,m.jsx)(d.A.Provider,{value:null,children:(0,m.jsx)(w,{as:v,ownerState:S,className:(0,a.A)(k.root,p),ref:t,...b,children:"string"!=typeof u||A?(0,m.jsxs)(r.Fragment,{children:["start"===g?i||(i=(0,m.jsx)("span",{className:"notranslate","aria-hidden":!0,children:"​"})):null,u]}):(0,m.jsx)(l.default,{color:"textSecondary",children:u})})})})},68212:(e,t,n)=>{n.d(t,{A:()=>a});var i=n(36697),r=n(95155);let a=(0,i.A)((0,r.jsx)("path",{d:"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7M2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2m4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3z"}),"VisibilityOff")}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3545,9195],{69195:(e,t,o)=>{o.r(t),o.d(t,{TourProvider:()=>u,useTour:()=>d});var n=o(95155),a=o(12115),l=o(9164),r=o(77326);let i=(0,o(87021).h)("frontend/contexts/TourContext"),s=(0,a.createContext)({isActive:!1,stepIndex:0,startTour:()=>{},next:()=>{},back:()=>{},endTour:()=>{}}),d=()=>(0,a.useContext)(s),u=e=>{var t;let{children:o}=e,{settings:d,updateSettings:u,isLoading:c,settingsHydrated:h}=(0,l.useStorage)(),[p,m]=(0,a.useState)(!1),[f,g]=(0,a.useState)(0),b=(0,a.useRef)(!1),w=(0,a.useCallback)(()=>{var e;u({...d,onboarding:{...null!=(e=d.onboarding)?e:{},completed:!0}}).catch(e=>i.warn("Failed to persist onboarding completion",e))},[d,u]),x=(0,a.useCallback)(()=>{i.info("Starting guided tour"),g(0),m(!0)},[]),v=(0,a.useCallback)(()=>{i.info("Ending guided tour"),m(!1),w()},[w]),y=(0,a.useCallback)(()=>{g(e=>e>=r.$.length-1?(m(!1),w(),e):e+1)},[w]),k=(0,a.useCallback)(()=>{g(e=>Math.max(0,e-1))},[]);return(0,a.useEffect)(()=>{var e;c||!h||b.current||(b.current=!0,(null==(e=d.onboarding)?void 0:e.completed)!==!0&&(i.info("First run detected — auto-starting guided tour"),x()))},[c,h,null==(t=d.onboarding)?void 0:t.completed,x]),(0,n.jsx)(s.Provider,{value:{isActive:p,stepIndex:f,startTour:x,next:y,back:k,endTour:v},children:o})}},77326:(e,t,o)=>{o.d(t,{$:()=>n});let n=[{id:"welcome",path:"/",placement:"center",title:"Welcome to FLUJO \uD83D\uDC4B",body:"This quick tour walks you through going from zero to a running AI flow.\n\nYou'll add a model, connect a tool server, build a flow, and run it in chat. It takes about a minute — you can skip any time."},{id:"add-model",path:"/models",target:'[data-tour="add-model"]',placement:"bottom",title:"1. Add a model",body:'FLUJO needs at least one AI model to think with. Click "Add Model" to configure one.\n\nTip: an OpenRouter API key gives you access to several free models — paste the key, name the model, pick a free one, and add a custom instruction.'},{id:"add-mcp-server",path:"/mcp",target:'[data-tour="add-mcp-server"]',placement:"bottom",title:"2. Connect a tool server (MCP)",body:'MCP servers give your model real tools — file access, image generation, web search, and more.\n\nClick "Add Server" and install the "Everything" reference server to try the full range of capabilities while you learn.'},{id:"new-flow",path:"/flows",target:'[data-tour="new-flow"]',placement:"bottom",title:"3. Build a flow",body:'A flow wires everything together. Click "New Flow" to open the builder.\n\nConnect Start → Process → Finish, attach your model to the Process node, and bind the Everything MCP server so the model can use its tools.'},{id:"chat-input",path:"/chat",target:'[data-tour="chat-input"]',placement:"top",title:"4. Run it in chat",body:"Pick your flow from the selector, then send a message here.\n\nTry asking it to generate an image with the MCP server and tell you a joke — you'll see the flow execute live, step by step."},{id:"docs",path:"/chat",target:'[data-tour="nav-docs"]',placement:"bottom",title:"Need the API?",body:"FLUJO exposes an OpenAI-compatible API and a full REST surface. The Docs page lists every endpoint with its method, parameters, and response shape.\n\nYou can re-run this tour any time from Settings → Onboarding."},{id:"finish",path:"/chat",placement:"center",title:"You're all set \uD83C\uDF89",body:"That's the whole loop: models, tools, flows, and chat.\n\nExplore at your own pace — and remember the Docs page and Settings are there when you need them."}]},83545:(e,t,o)=>{o.r(t),o.d(t,{default:()=>g});var n=o(95155),a=o(12115),l=o(94049),r=o(2300),i=o(25635),s=o(2411),d=o(70690),u=o(77073),c=o(41983),h=o(20063),p=o(69195),m=o(77326);function f(e){let{top:t,left:o,vw:n,transform:a}=e,l=o;return(a.includes("-50%, -100%")||a.includes("-50%, 0"))&&(l=Math.min(Math.max(o,188),n-180-8)),{top:t,left:l,transform:a}}function g(){let{isActive:e,stepIndex:t,next:o,back:g,endTour:b}=(0,p.useTour)(),w=(0,h.usePathname)(),x=(0,h.useRouter)(),[v,y]=(0,a.useState)(null),k=e?m.$[t]:void 0;if((0,a.useEffect)(()=>{k&&w!==k.path&&x.push(k.path)},[k,w,x]),(0,a.useLayoutEffect)(()=>{if(!k||w!==k.path)return void y(null);let e=0,t=!1,o=()=>{if(k.target){let e=document.querySelector(k.target);if(e){t||(e.scrollIntoView({block:"center",behavior:"smooth"}),t=!0);let o=e.getBoundingClientRect();y({top:o.top,left:o.left,width:o.width,height:o.height})}else y(null)}else y(null);e=window.setTimeout(o,200)};return o(),()=>window.clearTimeout(e)},[k,w,t]),!e||!k)return null;let C=w===k.path&&null!==v,A=function(e,t){let o,n=window.innerWidth,a=window.innerHeight;if(!e||"center"===t)return{top:"50%",left:"50%",transform:"translate(-50%, -50%)"};switch(t){case"top":return f({top:o=e.top-16,left:e.left+e.width/2,vw:n,vh:a,transform:"translate(-50%, -100%)"});case"left":return f({top:o=e.top+e.height/2,left:e.left-16,vw:n,vh:a,transform:"translate(-100%, -50%)"});case"right":return f({top:o=e.top+e.height/2,left:e.left+e.width+16,vw:n,vh:a,transform:"translate(0, -50%)"});default:return f({top:o=e.top+e.height+16,left:e.left+e.width/2,vw:n,vh:a,transform:"translate(-50%, 0)"})}}(C?v:null,k.placement),j=0===t,S=t===m.$.length-1;return(0,n.jsxs)(l.default,{sx:{position:"fixed",inset:0,zIndex:e=>e.zIndex.modal+200,pointerEvents:"none"},children:[!C&&(0,n.jsx)(l.default,{sx:{position:"absolute",inset:0,backgroundColor:"rgba(0,0,0,0.55)",pointerEvents:"auto"}}),C&&v&&(0,n.jsx)(l.default,{sx:{position:"absolute",top:v.top-8,left:v.left-8,width:v.width+16,height:v.height+16,borderRadius:1.5,boxShadow:"0 0 0 9999px rgba(0,0,0,0.55)",outline:e=>"2px solid ".concat(e.palette.primary.main),transition:"all 0.2s ease",pointerEvents:"none"}}),(0,n.jsxs)(r.A,{elevation:8,sx:{position:"absolute",width:360,maxWidth:"calc(100vw - 32px)",p:2.5,pointerEvents:"auto",...A},children:[(0,n.jsx)(c.A,{"aria-label":"Close tour",size:"small",onClick:b,sx:{position:"absolute",top:6,right:6},children:(0,n.jsx)(u.A,{fontSize:"small"})}),(0,n.jsx)(i.default,{variant:"h6",gutterBottom:!0,sx:{pr:3},children:k.title}),k.body.split("\n\n").map((e,t)=>(0,n.jsx)(i.default,{variant:"body2",color:"text.secondary",sx:{mb:1.5},children:e},t)),(0,n.jsx)(s.A,{variant:"dots",steps:m.$.length,position:"static",activeStep:t,sx:{background:"transparent",px:0,mt:1},nextButton:(0,n.jsx)(d.A,{size:"small",variant:"contained",onClick:o,children:S?"Finish":"Next"}),backButton:(0,n.jsx)(d.A,{size:"small",onClick:g,disabled:j,children:"Back"})}),(0,n.jsx)(l.default,{sx:{display:"flex",justifyContent:"center",mt:.5},children:!S&&(0,n.jsx)(d.A,{size:"small",color:"inherit",onClick:b,sx:{opacity:.7},children:"Skip tour"})})]})]})}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9164],{1877:(e,t,n)=>{n.d(t,{xc:()=>r,yo:()=>o});let a=["key","secret","token","password"],r=e=>a.some(t=>e.toLowerCase().includes(t)),o=e=>{if(!e)return e;if(e.includes("_-_-_")){let t=e.split("_-_-_");return 3===t.length?t[2]:e}let t=/^mcp_(.+)_[0-9a-z]+$/.exec(e);if(t&&t[1])return t[1];let n=e.indexOf("__");return n>0&&n+2<e.length?e.slice(n+2):e}},9164:(e,t,n)=>{n.r(t),n.d(t,{StorageProvider:()=>u,default:()=>p,useStorage:()=>y});var a=n(95155),r=n(12115),o=n(29692),i=n(1877),s=n(87021),c=n(31373);let l=(0,s.h)("frontend/contexts/StorageContext"),d=(0,r.createContext)({setKey:async()=>{},changeKey:async()=>!1,verifyKey:async()=>!1,isEncryptionInitialized:async()=>!1,globalEnvVars:{},setGlobalEnvVars:async()=>{},deleteGlobalEnvVar:async()=>{},encryptValue:async()=>null,decryptValue:async()=>null,isUserEncryptionEnabled:async()=>!1,isLoading:!0,settings:{speech:{enabled:!0},update:{checkOnStartup:!1}},settingsHydrated:!1,updateSettings:async()=>{}}),y=()=>(0,r.useContext)(d),u=e=>{let{children:t}=e,[n,s]=(0,r.useState)(!1),[y,u]=(0,r.useState)(!1),[p,g]=(0,r.useState)({}),[h,f]=(0,r.useState)({speech:{enabled:!0},update:{checkOnStartup:!1}}),E=(0,r.useCallback)(async()=>{l.debug("isEncryptionInitialized: Entering method");try{let e=await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"check_initialized"})});if(!e.ok)throw Error("Failed to check encryption status");let t=await e.json();return!0===t.initialized}catch(e){return l.warn("isEncryptionInitialized: Failed to check encryption status:",e),!1}},[]),w=(0,r.useCallback)(async e=>{l.debug("setKey: Entering method");try{if(!(await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"initialize",password:e})})).ok)throw Error("Failed to set encryption key")}catch(e){l.warn("setKey: Failed to set encryption key:",e)}},[]),S=(0,r.useCallback)(async(e,t)=>{l.debug("changeKey: Entering method");try{let n=await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"change_password",oldPassword:e,newPassword:t})});if(!n.ok)throw Error("Failed to change encryption key");let a=await n.json();if(a.success&&sessionStorage.getItem("encryption_token")){let e=await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"authenticate",password:t})});if(e.ok){let t=await e.json();t.success&&t.token&&(sessionStorage.setItem("encryption_token",t.token),sessionStorage.setItem("encryption_authenticated","true"),sessionStorage.removeItem("encryption_key"))}}return!0===a.success}catch(e){return l.warn("changeKey: Failed to change encryption key:",e),!1}},[]),v=(0,r.useCallback)(async e=>{l.debug("verifyKey: Entering method");try{let t=await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"verify_password",password:e})});if(!t.ok)throw Error("Failed to verify encryption key");let n=await t.json();return n.valid&&n.token&&(sessionStorage.setItem("encryption_token",n.token),sessionStorage.setItem("encryption_authenticated","true"),sessionStorage.removeItem("encryption_key")),!0===n.valid}catch(e){return l.warn("verifyKey: Failed to verify encryption key:",e),!1}},[]),b=(0,r.useCallback)(async()=>{let e={speech:{enabled:!0},update:{checkOnStartup:!1}};try{var t;let n=await fetch("/api/storage?key=".concat(encodeURIComponent(o.Zg.SPEECH_SETTINGS),"&defaultValue=").concat(encodeURIComponent(JSON.stringify(e))));if(!n.ok)return void l.debug("loadSettings: settings read not ok, keeping defaults",{status:n.status});let a=await n.json();l.debug("Loaded settings from storage",{settings:a.value}),f(null!=(t=a.value)?t:e),u(!0)}catch(e){l.warn("loadSettings: failed to load settings:",e)}},[]);(0,r.useEffect)(()=>{let e=()=>{l.info("Encryption unlocked signal received; reloading settings"),b()};return window.addEventListener(c.ZB,e),()=>window.removeEventListener(c.ZB,e)},[b]),(0,r.useEffect)(()=>{(async()=>{l.debug("loadData: Entering method");try{l.info("Calling initialization API to verify storage");let e=await fetch("/api/init");if(e.ok)l.info("Storage initialization completed successfully");else{let t=await e.json();l.warn("Storage initialization warning:",t.error)}await E()||await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"initialize_default"})});let t=await fetch("/api/env?includeSecrets=false");if(t.ok){let e=await t.json();l.debug("Loaded environment variables",{count:Object.keys(e.variables||{}).length}),g(e.variables||{})}else l.error("loadData: Failed to load environment variables"),g({});await b(),s(!0)}catch(e){l.error("loadData: Error loading data:",e),s(!0)}})()},[E,b]);let k=(0,r.useCallback)(async(e,t)=>{l.debug("encryptValue: Entering method");try{let n=sessionStorage.getItem("encryption_token"),a=sessionStorage.getItem("encryption_key"),r={action:"encrypt",data:e};n?r.token=n:t?r.password=t:a&&(r.password=a);let o=await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});if(!o.ok)throw Error("Failed to encrypt value");return(await o.json()).result}catch(e){return l.warn("encryptValue: Failed to encrypt value:",e),null}},[]),m=(0,r.useCallback)(async(e,t)=>(l.debug("decryptValue: Entering method - THIS METHOD IS DEPRECATED"),l.warn("decryptValue: Frontend decryption is deprecated for security reasons"),null),[]),_=(0,r.useCallback)(async()=>{l.debug("isUserEncryptionEnabled: Entering method");try{let e=await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"check_user_encryption"})});if(!e.ok)throw Error("Failed to check user encryption status");let t=await e.json();return!0===t.userEncryption}catch(e){return l.warn("isUserEncryptionEnabled: Failed to check user encryption status:",e),!1}},[]),C=(0,r.useCallback)(async e=>{l.debug("setGlobalEnvVars: Entering method");try{await E()||await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"initialize_default"})});let t=await fetch("/api/env",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"setAll",variables:e})});if(!t.ok){let e=await t.json();l.error("setGlobalEnvVars: Failed to set environment variables:",e.error);return}let n={};for(let[t,a]of Object.entries(e)){let e="object"==typeof a&&null!==a&&"value"in a?a.value:a,r="object"==typeof a&&null!==a&&"metadata"in a?a.metadata:{isSecret:(0,i.xc)(t)};r.isSecret?n[t]={value:"********",metadata:r}:n[t]={value:e,metadata:r}}g(n)}catch(e){l.error("setGlobalEnvVars: Error setting environment variables:",e)}},[E]),O=(0,r.useCallback)(async e=>{l.debug("deleteGlobalEnvVar: Deleting environment variable: ".concat(e));try{let t=await fetch("/api/env",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"delete",key:e})});if(!t.ok){let e=await t.json();l.error("deleteGlobalEnvVar: Failed to delete environment variable:",e.error);return}g(t=>{let n={...t};return delete n[e],n})}catch(e){l.error("deleteGlobalEnvVar: Error deleting environment variable:",e)}},[]),T=(0,r.useCallback)(async e=>{l.debug("updateSettings: Updating settings",{newSettings:e});try{await (0,o.VH)(o.Zg.SPEECH_SETTINGS,e),f(e)}catch(e){l.error("updateSettings: Error updating settings:",e)}},[]);return(0,a.jsx)(d.Provider,{value:{setKey:w,changeKey:S,verifyKey:v,isEncryptionInitialized:E,globalEnvVars:p,setGlobalEnvVars:C,deleteGlobalEnvVar:O,encryptValue:k,decryptValue:m,isUserEncryptionEnabled:_,isLoading:!n,settings:h,settingsHydrated:y,updateSettings:T},children:t})},p=d},27156:(e,t,n)=>{n.d(t,{Z:()=>a});var a=function(e){return e.MODELS="models",e.FLOWS="flows",e.CHAT_HISTORY="history",e.THEME="theme",e.ENCRYPTION_KEY="encryption_key",e.MCP_SERVERS="mcp_servers",e.GLOBAL_ENV_VARS="global_env_vars",e.CURRENT_CONVERSATION_ID="current_conversation_id",e.SELECTED_FLOW_ID="selected_flow_id",e.SPEECH_SETTINGS="speech_settings",e.SPOTLIGHT_SERVERS="spotlight_servers",e.PLANNED_EXECUTIONS="planned_executions",e}({})},29692:(e,t,n)=>{n.d(t,{Zg:()=>a.Z,YM:()=>c,VH:()=>s,Mj:()=>i});var a=n(27156),r=n(12115);let o=(0,n(87021).h)("utils/storage/frontend.ts");function i(e,t){o.verbose("useLocalStorage: Entering method");let[n,a]=(0,r.useState)(t),[i,s]=(0,r.useState)(!0),c=(0,r.useRef)(n);return(0,r.useEffect)(()=>{c.current=n},[n]),(0,r.useEffect)(()=>{(async()=>{o.verbose("loadValue: Entering method");try{let n=await fetch("/api/storage?key=".concat(encodeURIComponent(e),"&defaultValue=").concat(encodeURIComponent(JSON.stringify(t)))),r=await n.json();n.ok&&a(r.value)}catch(t){o.warn('Error reading storage key "'.concat(e,'":'),t)}finally{s(!1)}})()},[e]),[n,(0,r.useCallback)(async t=>{o.verbose("setValue: Entering method");try{let n=t instanceof Function?t(c.current):t;if(a(n),!(await fetch("/api/storage",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:e,value:n})})).ok)throw Error("Failed to save value")}catch(t){o.warn('Error setting storage key "'.concat(e,'":'),t)}},[e]),i]}let s=async(e,t)=>{o.verbose("saveItem: Entering method");try{if(!(await fetch("/api/storage",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:e,value:t})})).ok)throw Error("Failed to save item")}catch(e){throw o.error("Error saving to storage:",e),e}},c=async(e,t)=>{o.verbose("loadItem: Entering method");try{let n=await fetch("/api/storage?key=".concat(encodeURIComponent(e),"&defaultValue=").concat(encodeURIComponent(JSON.stringify(t))));if(!n.ok)throw Error("Failed to load item");return(await n.json()).value}catch(e){return o.error("Error loading from storage:",e),t}}},31373:(e,t,n)=>{n.d(t,{UJ:()=>a,ZB:()=>r,bx:()=>i});let a="flujo:encryption-locked",r="flujo:encryption-unlocked",o=!1;function i(){if(o||"function"!=typeof window.fetch)return;o=!0;let e=window.fetch.bind(window);window.fetch=async function(){for(var t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];let o=await e(...n);return 423===o.status&&function(){try{sessionStorage.removeItem("encryption_authenticated"),sessionStorage.removeItem("encryption_token")}catch(e){}window.dispatchEvent(new CustomEvent(a))}(),o}}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9195],{69195:(e,t,o)=>{o.r(t),o.d(t,{TourProvider:()=>c,useTour:()=>s});var a=o(95155),n=o(12115),r=o(9164),l=o(77326);let d=(0,o(87021).h)("frontend/contexts/TourContext"),i=(0,n.createContext)({isActive:!1,stepIndex:0,startTour:()=>{},next:()=>{},back:()=>{},endTour:()=>{}}),s=()=>(0,n.useContext)(i),c=e=>{var t;let{children:o}=e,{settings:s,updateSettings:c,isLoading:u,settingsHydrated:h}=(0,r.useStorage)(),[m,p]=(0,n.useState)(!1),[g,b]=(0,n.useState)(0),f=(0,n.useRef)(!1),y=(0,n.useCallback)(()=>{var e;c({...s,onboarding:{...null!=(e=s.onboarding)?e:{},completed:!0}}).catch(e=>d.warn("Failed to persist onboarding completion",e))},[s,c]),v=(0,n.useCallback)(()=>{d.info("Starting guided tour"),b(0),p(!0)},[]),w=(0,n.useCallback)(()=>{d.info("Ending guided tour"),p(!1),y()},[y]),k=(0,n.useCallback)(()=>{b(e=>e>=l.$.length-1?(p(!1),y(),e):e+1)},[y]),C=(0,n.useCallback)(()=>{b(e=>Math.max(0,e-1))},[]);return(0,n.useEffect)(()=>{var e;u||!h||f.current||(f.current=!0,(null==(e=s.onboarding)?void 0:e.completed)!==!0&&(d.info("First run detected — auto-starting guided tour"),v()))},[u,h,null==(t=s.onboarding)?void 0:t.completed,v]),(0,a.jsx)(i.Provider,{value:{isActive:m,stepIndex:g,startTour:v,next:k,back:C,endTour:w},children:o})}},77326:(e,t,o)=>{o.d(t,{$:()=>a});let a=[{id:"welcome",path:"/",placement:"center",title:"Welcome to FLUJO \uD83D\uDC4B",body:"This quick tour walks you through going from zero to a running AI flow.\n\nYou'll add a model, connect a tool server, build a flow, and run it in chat. It takes about a minute — you can skip any time."},{id:"add-model",path:"/models",target:'[data-tour="add-model"]',placement:"bottom",title:"1. Add a model",body:'FLUJO needs at least one AI model to think with. Click "Add Model" to configure one.\n\nTip: an OpenRouter API key gives you access to several free models — paste the key, name the model, pick a free one, and add a custom instruction.'},{id:"add-mcp-server",path:"/mcp",target:'[data-tour="add-mcp-server"]',placement:"bottom",title:"2. Connect a tool server (MCP)",body:'MCP servers give your model real tools — file access, image generation, web search, and more.\n\nClick "Add Server" and install the "Everything" reference server to try the full range of capabilities while you learn.'},{id:"new-flow",path:"/flows",target:'[data-tour="new-flow"]',placement:"bottom",title:"3. Build a flow",body:'A flow wires everything together. Click "New Flow" to open the builder.\n\nConnect Start → Process → Finish, attach your model to the Process node, and bind the Everything MCP server so the model can use its tools.'},{id:"chat-input",path:"/chat",target:'[data-tour="chat-input"]',placement:"top",title:"4. Run it in chat",body:"Pick your flow from the selector, then send a message here.\n\nTry asking it to generate an image with the MCP server and tell you a joke — you'll see the flow execute live, step by step."},{id:"docs",path:"/chat",target:'[data-tour="nav-docs"]',placement:"bottom",title:"Need the API?",body:"FLUJO exposes an OpenAI-compatible API and a full REST surface. The Docs page lists every endpoint with its method, parameters, and response shape.\n\nYou can re-run this tour any time from Settings → Onboarding."},{id:"finish",path:"/chat",placement:"center",title:"You're all set \uD83C\uDF89",body:"That's the whole loop: models, tools, flows, and chat.\n\nExplore at your own pace — and remember the Docs page and Settings are there when you need them."}]}}]);