flujo-ai 3.40.0 → 3.41.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 (278) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +400 -384
  3. package/.next/app-path-routes-manifest.json +53 -53
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +33 -33
  6. package/.next/react-loadable-manifest.json +9 -9
  7. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/_not-found.html +1 -1
  9. package/.next/server/app/_not-found.rsc +3 -3
  10. package/.next/server/app/api/approvals/[id]/route_client-reference-manifest.js +1 -1
  11. package/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
  12. package/.next/server/app/api/backup/route_client-reference-manifest.js +1 -1
  13. package/.next/server/app/api/browse/route_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/bugs/enhance/route_client-reference-manifest.js +1 -1
  15. package/.next/server/app/api/cwd/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/encryption/secure/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/env/route_client-reference-manifest.js +1 -1
  18. package/.next/server/app/api/flow/[id]/convert-process-to-subflow/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/flow/[id]/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/flow/[id]/versions/[versionId]/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/flow/[id]/versions/route_client-reference-manifest.js +1 -1
  22. package/.next/server/app/api/flow/assist/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/flow/compile/route_client-reference-manifest.js +1 -1
  24. package/.next/server/app/api/flow/generate/route_client-reference-manifest.js +1 -1
  25. package/.next/server/app/api/flow/generator/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/flow/improve/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/flow/prompt-renderer/route_client-reference-manifest.js +1 -1
  28. package/.next/server/app/api/flow/quick-chat/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/flow/repair/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/flow/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/local-models/capability/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/local-models/pull/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/local-models/suggest/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/mcp/app-sandbox/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/mcp/cancel/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/mcp/flujo/authoring/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/mcp/flujo/automation/route_client-reference-manifest.js +1 -1
  40. package/.next/server/app/api/mcp/flujo/flows/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/mcp/flujo/resources/read/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/mcp/flujo/resources/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/mcp/flujo/servers/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/mcp/flujo/state/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/mcp/flujo/tools/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/mcp/oauth-capability/route_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
  49. package/.next/server/app/api/mcp/servers/[name]/resources/read/route_client-reference-manifest.js +1 -1
  50. package/.next/server/app/api/mcp/servers/[name]/resources/route_client-reference-manifest.js +1 -1
  51. package/.next/server/app/api/mcp/servers/[name]/route_client-reference-manifest.js +1 -1
  52. package/.next/server/app/api/mcp/servers/[name]/status/route_client-reference-manifest.js +1 -1
  53. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route_client-reference-manifest.js +1 -1
  54. package/.next/server/app/api/mcp/servers/[name]/tools/route_client-reference-manifest.js +1 -1
  55. package/.next/server/app/api/mcp/servers/route_client-reference-manifest.js +1 -1
  56. package/.next/server/app/api/mcp/test-connection/route_client-reference-manifest.js +1 -1
  57. package/.next/server/app/api/mcp/test-connection/stream/route_client-reference-manifest.js +1 -1
  58. package/.next/server/app/api/mcp-registry/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/mcp-registry/spotlight/route_client-reference-manifest.js +1 -1
  60. package/.next/server/app/api/model/[id]/route_client-reference-manifest.js +1 -1
  61. package/.next/server/app/api/model/provider/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/model/route_client-reference-manifest.js +1 -1
  63. package/.next/server/app/api/model/test/route_client-reference-manifest.js +1 -1
  64. package/.next/server/app/api/oauth/callback/route_client-reference-manifest.js +1 -1
  65. package/.next/server/app/api/oauth/initiate/route_client-reference-manifest.js +1 -1
  66. package/.next/server/app/api/oauth/reset/route_client-reference-manifest.js +1 -1
  67. package/.next/server/app/api/packages/build/route_client-reference-manifest.js +1 -1
  68. package/.next/server/app/api/packages/derive-secrets/route_client-reference-manifest.js +1 -1
  69. package/.next/server/app/api/packages/install/route_client-reference-manifest.js +1 -1
  70. package/.next/server/app/api/packages/install/status/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/packages/installed/route_client-reference-manifest.js +1 -1
  72. package/.next/server/app/api/packages/resolve/route_client-reference-manifest.js +1 -1
  73. package/.next/server/app/api/packages/scan-targets/route_client-reference-manifest.js +1 -1
  74. package/.next/server/app/api/packages/search/route_client-reference-manifest.js +1 -1
  75. package/.next/server/app/api/packages/uninstall/route_client-reference-manifest.js +1 -1
  76. package/.next/server/app/api/planned-executions/[id]/route_client-reference-manifest.js +1 -1
  77. package/.next/server/app/api/planned-executions/[id]/run/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/planned-executions/[id]/runs/route_client-reference-manifest.js +1 -1
  79. package/.next/server/app/api/planned-executions/preview-schedule/route_client-reference-manifest.js +1 -1
  80. package/.next/server/app/api/planned-executions/reconcile/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/planned-executions/route_client-reference-manifest.js +1 -1
  82. package/.next/server/app/api/registry/auth/resend/route_client-reference-manifest.js +1 -1
  83. package/.next/server/app/api/registry/auth/reset/route_client-reference-manifest.js +1 -1
  84. package/.next/server/app/api/registry/auth/route_client-reference-manifest.js +1 -1
  85. package/.next/server/app/api/registry/feedback/route_client-reference-manifest.js +1 -1
  86. package/.next/server/app/api/registry/oauth/callback/route_client-reference-manifest.js +1 -1
  87. package/.next/server/app/api/registry/oauth/initiate/route_client-reference-manifest.js +1 -1
  88. package/.next/server/app/api/registry/packages/route_client-reference-manifest.js +1 -1
  89. package/.next/server/app/api/registry/publish/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/registry/settings/route_client-reference-manifest.js +1 -1
  91. package/.next/server/app/api/restore/route_client-reference-manifest.js +1 -1
  92. package/.next/server/app/api/runs/active/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/setup/ai-cli/route_client-reference-manifest.js +1 -1
  94. package/.next/server/app/api/statistics/route_client-reference-manifest.js +1 -1
  95. package/.next/server/app/api/storage/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/telemetry/daily-active/route.js +1 -1
  97. package/.next/server/app/api/telemetry/daily-active/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/waves/route_client-reference-manifest.js +1 -1
  100. package/.next/server/app/api/webhooks/[id]/route_client-reference-manifest.js +1 -1
  101. package/.next/server/app/automation/triggers/page.js +1 -1
  102. package/.next/server/app/automation/triggers/page.js.nft.json +1 -1
  103. package/.next/server/app/automation/triggers/page_client-reference-manifest.js +1 -1
  104. package/.next/server/app/automation/triggers.html +1 -1
  105. package/.next/server/app/automation/triggers.rsc +4 -4
  106. package/.next/server/app/automation/waves/page_client-reference-manifest.js +1 -1
  107. package/.next/server/app/automation/waves.html +1 -1
  108. package/.next/server/app/automation/waves.rsc +4 -4
  109. package/.next/server/app/chat/page.js +2 -2
  110. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  111. package/.next/server/app/chat.html +1 -1
  112. package/.next/server/app/chat.rsc +4 -4
  113. package/.next/server/app/docs/page.js +3 -3
  114. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  115. package/.next/server/app/docs.html +1 -1
  116. package/.next/server/app/docs.rsc +4 -4
  117. package/.next/server/app/executions/page.js +1 -1
  118. package/.next/server/app/executions/page.js.nft.json +1 -1
  119. package/.next/server/app/executions/page_client-reference-manifest.js +1 -1
  120. package/.next/server/app/executions.html +1 -1
  121. package/.next/server/app/executions.rsc +4 -4
  122. package/.next/server/app/flows/page.js +5 -3
  123. package/.next/server/app/flows/page.js.nft.json +1 -1
  124. package/.next/server/app/flows/page_client-reference-manifest.js +1 -1
  125. package/.next/server/app/flows.html +1 -1
  126. package/.next/server/app/flows.rsc +4 -4
  127. package/.next/server/app/index.html +1 -1
  128. package/.next/server/app/index.rsc +4 -4
  129. package/.next/server/app/mcp/page.js +73 -44
  130. package/.next/server/app/mcp/page.js.nft.json +1 -1
  131. package/.next/server/app/mcp/page_client-reference-manifest.js +1 -1
  132. package/.next/server/app/mcp-flows/route.js +1 -1
  133. package/.next/server/app/mcp-flows/route_client-reference-manifest.js +1 -1
  134. package/.next/server/app/mcp-proxy/[server]/route.js +1 -1
  135. package/.next/server/app/mcp-proxy/[server]/route_client-reference-manifest.js +1 -1
  136. package/.next/server/app/mcp.html +1 -1
  137. package/.next/server/app/mcp.rsc +4 -4
  138. package/.next/server/app/models/page.js +7 -7
  139. package/.next/server/app/models/page_client-reference-manifest.js +1 -1
  140. package/.next/server/app/packages/page.js +1 -1
  141. package/.next/server/app/packages/page_client-reference-manifest.js +1 -1
  142. package/.next/server/app/packages.html +1 -1
  143. package/.next/server/app/packages.rsc +4 -4
  144. package/.next/server/app/page.js +2 -2
  145. package/.next/server/app/page_client-reference-manifest.js +1 -1
  146. package/.next/server/app/settings/page.js +2 -2
  147. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  148. package/.next/server/app/settings.html +1 -1
  149. package/.next/server/app/settings.rsc +4 -4
  150. package/.next/server/app/statistics/page.js +2 -2
  151. package/.next/server/app/statistics/page_client-reference-manifest.js +1 -1
  152. package/.next/server/app/statistics.html +1 -1
  153. package/.next/server/app/statistics.rsc +4 -4
  154. package/.next/server/app/v1/chat/completions/route_client-reference-manifest.js +1 -1
  155. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route_client-reference-manifest.js +1 -1
  156. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route_client-reference-manifest.js +1 -1
  157. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route_client-reference-manifest.js +1 -1
  158. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route_client-reference-manifest.js +1 -1
  159. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route_client-reference-manifest.js +1 -1
  160. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route_client-reference-manifest.js +1 -1
  161. package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route_client-reference-manifest.js +1 -1
  162. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/[resourceId]/content/route_client-reference-manifest.js +1 -1
  163. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route_client-reference-manifest.js +1 -1
  164. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route_client-reference-manifest.js +1 -1
  165. package/.next/server/app/v1/chat/conversations/[conversationId]/revert/route_client-reference-manifest.js +1 -1
  166. package/.next/server/app/v1/chat/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
  167. package/.next/server/app/v1/chat/conversations/route_client-reference-manifest.js +1 -1
  168. package/.next/server/app/v1/chat/events/route_client-reference-manifest.js +1 -1
  169. package/.next/server/app/v1/models/route_client-reference-manifest.js +1 -1
  170. package/.next/server/app/waves/page_client-reference-manifest.js +1 -1
  171. package/.next/server/app/waves.html +1 -1
  172. package/.next/server/app/waves.rsc +4 -4
  173. package/.next/server/app-paths-manifest.json +53 -53
  174. package/.next/server/chunks/1227.js +1 -1
  175. package/.next/server/chunks/1403.js +2 -2
  176. package/.next/server/chunks/1539.js +1 -1
  177. package/.next/server/chunks/2069.js +1 -1
  178. package/.next/server/chunks/2372.js +1 -1
  179. package/.next/server/chunks/2828.js +2 -2
  180. package/.next/server/chunks/3422.js +1 -0
  181. package/.next/server/chunks/3945.js +3 -3
  182. package/.next/server/chunks/519.js +2 -2
  183. package/.next/server/chunks/5444.js +2 -2
  184. package/.next/server/chunks/5750.js +1 -1
  185. package/.next/server/chunks/5918.js +10 -10
  186. package/.next/server/chunks/6226.js +2 -2
  187. package/.next/server/chunks/9088.js +2 -2
  188. package/.next/server/chunks/9490.js +5 -0
  189. package/.next/server/chunks/9543.js +3 -3
  190. package/.next/server/chunks/9624.js +8 -8
  191. package/.next/server/middleware-build-manifest.js +1 -1
  192. package/.next/server/middleware-manifest.json +1 -1
  193. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  194. package/.next/server/pages/404.html +1 -1
  195. package/.next/server/pages/500.html +1 -1
  196. package/.next/server/server-reference-manifest.js +1 -1
  197. package/.next/server/server-reference-manifest.json +1 -1
  198. package/.next/static/chunks/{1161-19176c3e7c655121.js → 1161-563a8028f59f00de.js} +1 -1
  199. package/.next/static/chunks/1521-9ad145dcb8e3abfc.js +1 -0
  200. package/.next/static/chunks/1576.06797b29a19fa26c.js +1 -0
  201. package/.next/static/chunks/{4386-e9621d3c94969a68.js → 2005-f9d38c39f10c321f.js} +1 -1
  202. package/.next/static/chunks/2493-da85c47ef972c066.js +1 -0
  203. package/.next/static/chunks/361.c88d43436e974006.js +1 -0
  204. package/.next/static/chunks/3731-c18f48522b159d7f.js +1 -0
  205. package/.next/static/chunks/3781.5086bce03aa281f7.js +1 -0
  206. package/.next/static/chunks/3969-15a32253b112652c.js +1 -0
  207. package/.next/static/chunks/4167.2ce97ca450815df1.js +1 -0
  208. package/.next/static/chunks/4814-52b7254ab573a455.js +1 -0
  209. package/.next/static/chunks/4965.d401547984d71b7a.js +1 -0
  210. package/.next/static/chunks/5148-9174ba300221fd1b.js +1 -0
  211. package/.next/static/chunks/5417-fb7d3760cc288ab1.js +1 -0
  212. package/.next/static/chunks/5967-34735763d1b03ccc.js +1 -0
  213. package/.next/static/chunks/7260-743e4b0cc4211dcb.js +1 -0
  214. package/.next/static/chunks/7711-7323dabe7dc02311.js +1 -0
  215. package/.next/static/chunks/8124-f99060fe1dfc119e.js +1 -0
  216. package/.next/static/chunks/8135-7fe07a34a8c49967.js +1 -0
  217. package/.next/static/chunks/8529.6187e01de8e9a692.js +1 -0
  218. package/.next/static/chunks/9136-e9ee57cc581ddd50.js +1 -0
  219. package/.next/static/chunks/9140.9180b569c4b26168.js +1 -0
  220. package/.next/static/chunks/9195-6a18a5867bb76c64.js +1 -0
  221. package/.next/static/chunks/app/automation/triggers/{page-594a6294c58344bf.js → page-34b9a8a2e6f28c2f.js} +1 -1
  222. package/.next/static/chunks/app/automation/waves/{page-ce2fef4996cad8e6.js → page-fd4929ea308183b2.js} +1 -1
  223. package/.next/static/chunks/app/chat/page-fb8a33db7628ecd0.js +1 -0
  224. package/.next/static/chunks/app/docs/page-3e21583b1cd5d7ca.js +1 -0
  225. package/.next/static/chunks/app/executions/{page-fcc848de86714386.js → page-56ecca56c17c05d7.js} +1 -1
  226. package/.next/static/chunks/app/flows/page-8c1a656197b15894.js +1 -0
  227. package/.next/static/chunks/app/layout-6e2756704ddc9f39.js +1 -0
  228. package/.next/static/chunks/app/mcp/page-4c4390354fdd94c8.js +1 -0
  229. package/.next/static/chunks/app/models/error-ea477f0ad52f4dcb.js +1 -0
  230. package/.next/static/chunks/app/models/page-e237ac64a0f62c3d.js +1 -0
  231. package/.next/static/chunks/app/packages/page-8680e4bea6b7ea45.js +1 -0
  232. package/.next/static/chunks/app/page-6dca06b6b7667181.js +1 -0
  233. package/.next/static/chunks/app/settings/page-a5f7fedcbf9e3a7f.js +1 -0
  234. package/.next/static/chunks/app/statistics/page-f9f9627d1c1ff963.js +1 -0
  235. package/.next/static/chunks/app/waves/{page-5b53af3eb9409414.js → page-7529febc48eb473d.js} +1 -1
  236. package/.next/static/chunks/{webpack-9fbd3587b9ef4dca.js → webpack-f3df493faa0bd612.js} +1 -1
  237. package/.next/static/css/{400b1b927c3ffaf6.css → 9f9b7f1374ac2d01.css} +1 -1
  238. package/.next/trace +11 -11
  239. package/README.md +1 -1
  240. package/mcp-servers/bash/package.json +1 -1
  241. package/mcp-servers/browser/package.json +1 -1
  242. package/mcp-servers/filesystem/package.json +1 -1
  243. package/mcp-servers/flujo/package.json +1 -1
  244. package/package.json +5 -5
  245. package/.next/server/chunks/7508.js +0 -5
  246. package/.next/server/chunks/8598.js +0 -1
  247. package/.next/static/chunks/1521-1c98c9a56726e053.js +0 -1
  248. package/.next/static/chunks/1576.bc6ae6c9e6d939d8.js +0 -1
  249. package/.next/static/chunks/2005.300528b5119c2d38.js +0 -1
  250. package/.next/static/chunks/2499-92cd97ce4993999f.js +0 -1
  251. package/.next/static/chunks/361.51d642c530c84295.js +0 -1
  252. package/.next/static/chunks/3731-64070760ae44448f.js +0 -1
  253. package/.next/static/chunks/4814-31eb5f3b10c651c1.js +0 -1
  254. package/.next/static/chunks/4965.39e24b54c3c6ca58.js +0 -1
  255. package/.next/static/chunks/5967-59fde8c214c9ca9f.js +0 -1
  256. package/.next/static/chunks/6417.70056fe81ca21682.js +0 -1
  257. package/.next/static/chunks/7711-4b017720ec49c96d.js +0 -1
  258. package/.next/static/chunks/8124-94140ee1dd8ed87c.js +0 -1
  259. package/.next/static/chunks/8135-5b975b9014f8920b.js +0 -1
  260. package/.next/static/chunks/8529.b5a43e728bb5bb8a.js +0 -1
  261. package/.next/static/chunks/9001-4c27a608feddb878.js +0 -1
  262. package/.next/static/chunks/9136-9c415453ec02519c.js +0 -1
  263. package/.next/static/chunks/9140.6502327a2c098d33.js +0 -1
  264. package/.next/static/chunks/9195-3c9c4300e7505d9e.js +0 -1
  265. package/.next/static/chunks/9524-b9d2c7e4426edd07.js +0 -1
  266. package/.next/static/chunks/app/chat/page-203cb7bf21638ada.js +0 -1
  267. package/.next/static/chunks/app/docs/page-c466a58caf5e3336.js +0 -1
  268. package/.next/static/chunks/app/flows/page-172c759ca81ba02f.js +0 -1
  269. package/.next/static/chunks/app/layout-a6ca531683a518a7.js +0 -1
  270. package/.next/static/chunks/app/mcp/page-0a96e6b30e45b1e6.js +0 -1
  271. package/.next/static/chunks/app/models/error-1964203c5c6e7d0e.js +0 -1
  272. package/.next/static/chunks/app/models/page-ad1cbea6d3324966.js +0 -1
  273. package/.next/static/chunks/app/packages/page-dda48425be9fc137.js +0 -1
  274. package/.next/static/chunks/app/page-04189aa1b1318c2d.js +0 -1
  275. package/.next/static/chunks/app/settings/page-906c229c87011ead.js +0 -1
  276. package/.next/static/chunks/app/statistics/page-9b13a95549f438c0.js +0 -1
  277. /package/.next/static/{b1aMk0634gkkiunttd1SQ → utOrEUSzguWncIosxgCeR}/_buildManifest.js +0 -0
  278. /package/.next/static/{b1aMk0634gkkiunttd1SQ → utOrEUSzguWncIosxgCeR}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9136],{9136:(e,t,n)=>{n.r(t),n.d(t,{default:()=>U});var l=n(95155),i=n(12115),a=n(2300),o=n(25635),r=n(80777),s=n(28548),c=n(94049),d=n(4474),u=n(22003),f=n(21067),h=n(2975),x=n(26922),p=n(73288);let m=(0,p.h)("frontend/services/waves");class g{async list(){try{let e=await fetch("/api/waves");if(!e.ok)throw Error("HTTP ".concat(e.status));return await e.json()}catch(e){return m.warn("Failed to list waves",e),{paused:!1,generatedAt:new Date().toISOString(),waves:[],orphans:[]}}}}let v=new g;var w=n(64598),b=n(97104),y=n(23201),j=n(76122),A=n(22539);n(8301);var k=n(14913),I=n(57883),S=n(78470),E=n(11096),C=n(28874),z=n(64410);let M={schedule:{label:"Periodic",labelKey:"waves.kind.schedule",color:"#1976d2",timeline:!0},"mcp-poll":{label:"MCP Poll",labelKey:"waves.kind.mcpPoll",color:"#7b1fa2",timeline:!0},"url-watch":{label:"URL Watch",labelKey:"waves.kind.urlWatch",color:"#0288d1",timeline:!0},webhook:{label:"Webhook",labelKey:"waves.kind.webhook",color:"#2e7d32",timeline:!1},"file-watch":{label:"File Watcher",labelKey:"waves.kind.fileWatch",color:"#ed6c02",timeline:!1},"flow-event":{label:"Event",labelKey:"waves.kind.event",color:"#616161",timeline:!1}};var N=n(14976);let W={"1h":36e5,"6h":216e5,"1d":864e5},T=["1h","6h","1d"];function R(e,t,n){let l=arguments.length>3&&void 0!==arguments[3]?arguments[3]:24,i=arguments.length>4?arguments[4]:void 0;if(!e||"string"!=typeof e||!e.trim()||!Number.isFinite(t)||!Number.isFinite(n)||n<=0)return[];let a=t+n,o=[];try{let n=i?new N.l4(e.trim(),{timezone:i}):new N.l4(e.trim()),r=new Date(t-1);for(let e=0;e<l;e++){let e=n.nextRun(r);if(!e)break;let t=e.getTime();if(t>a)break;o.push(t),r=e}}catch(e){return[]}return o}function D(e,t,n){if(null==e||!Number.isFinite(e))return n?n("waves.noScheduledRun"):"no scheduled run";let l=e-t;if(l<=0)return n?n("waves.dueNow"):"due now";let i=Math.floor(l/6e4),a=Math.floor(i/1440),o=Math.floor(i%1440/60),r=i%60;if(a>0)return n?n("waves.inDaysHours",{days:a,hours:o}):"in ".concat(a,"d ").concat(o,"h");if(o>0){let e=String(r).padStart(2,"0");return n?n("waves.inHoursMinutes",{hours:o,minutes:e}):"in ".concat(o,"h ").concat(e,"m")}return n?n("waves.inMinutes",{minutes:r}):"in ".concat(r,"m")}var F=n(55930),H=n(36773);function O(e){let{subflows:t,depth:n=0}=e,{t:i}=(0,H.s9)();return t&&0!==t.length?(0,l.jsx)(c.default,{sx:{pl:1.5*(0!==n),mt:.25},children:t.map((e,t)=>{var a;return(0,l.jsxs)(c.default,{sx:{borderLeft:n>0?"1px dashed rgba(0,0,0,0.2)":"none",pl:+(n>0)},children:[(0,l.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:.5},children:[(0,l.jsx)(F.A,{sx:{fontSize:12,opacity:.6}}),(0,l.jsxs)(o.A,{variant:"caption",sx:{opacity:e.missing?.6:.85,fontStyle:e.missing?"italic":"normal"},children:[null!=(a=e.flowName)?a:e.flowId,e.missing?" (".concat(i("waves.missing"),")"):"",e.truncated?" …":""]})]}),e.children.length>0&&(0,l.jsx)(O,{subflows:e.children,depth:n+1})]},"".concat(e.flowId,"-").concat(t))})}):null}var _=n(67404);function P(e,t){return"".concat(e,"#").concat(t)}let K={trigger:function(e){var t,n,i,a,d,u;let{data:f}=e,{t:h}=(0,H.s9)(),{chainNode:x,now:p,runAt:m,isRoot:g,hasSuccessors:v,expanded:w,pinned:b}=f,y=null!=(u=M[d=x.triggerKind])?u:{label:d,color:"#616161",timeline:!1},k="";"timeline"===x.timing.mode?k=g?D(m,p,h):h("waves.onSchedule"):"fixed"===x.timing.mode?k=h("waves.firesWhenHappens"):"event"===x.timing.mode&&(k="signal"===x.timing.via?h("waves.onSignal",{topic:null!=(t=x.timing.topic)?t:""}):h("waves.whenUpstreamRuns"));let I=null!=(n=x.emittedSignals)?n:[];return(0,l.jsxs)(c.default,{sx:{minWidth:220,maxWidth:260,borderRadius:1,border:"1px solid rgba(0,0,0,0.15)",borderTop:"4px solid ".concat(y.color),outline:b||w?"2px solid ".concat(y.color):"none",outlineOffset:2*!!b,bgcolor:"background.paper",boxShadow:b?6:w?4:2,p:1,opacity:x.enabled?1:.55,transition:"box-shadow 120ms ease, outline-color 120ms ease"},children:[(0,l.jsx)(A.h7,{type:"target",position:j.yX.Left,style:{background:y.color}}),(0,l.jsx)(A.h7,{type:"target",position:j.yX.Top,id:"up",style:{background:y.color}}),(0,l.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:.5},children:[(0,l.jsx)(s.A,{label:y.labelKey?h(y.labelKey):y.label,size:"small",sx:{bgcolor:y.color,color:"#fff",height:18,fontSize:10}}),g&&(0,l.jsx)(o.A,{variant:"caption",sx:{opacity:.6},children:h("waves.root")})]}),(0,l.jsx)(o.A,{variant:"subtitle2",sx:{mt:.5,fontWeight:600,lineHeight:1.2},noWrap:!0,title:x.name,children:x.name}),(0,l.jsx)(o.A,{variant:"caption",sx:{display:"block",opacity:.75},noWrap:!0,title:null!=(i=x.flowName)?i:x.flowId,children:null!=(a=x.flowName)?a:x.flowId}),(0,l.jsx)(o.A,{variant:"caption",sx:{display:"block",mt:.25,color:y.color,fontWeight:500},children:k}),I.length>0&&(0,l.jsxs)(c.default,{sx:{mt:.5},children:[(0,l.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:.5,mb:.25},children:[(0,l.jsx)(E.A,{sx:{fontSize:13,color:"#7b1fa2"}}),(0,l.jsx)(o.A,{variant:"caption",sx:{opacity:.7},children:h("waves.signals")})]}),(0,l.jsx)(r.A,{direction:"row",spacing:.5,flexWrap:"wrap",useFlexGap:!0,children:I.map(e=>(0,l.jsx)(S.A,{title:e.direct?h("waves.signalDirect"):h("waves.signalSubflow"),arrow:!0,children:(0,l.jsx)(s.A,{label:e.topic,size:"small",variant:e.direct?"filled":"outlined",sx:{height:18,fontSize:10,bgcolor:e.direct?"rgba(123,31,162,0.12)":"transparent",borderColor:"rgba(123,31,162,0.4)",color:"#7b1fa2"}})},e.topic))})]}),(0,l.jsx)(O,{subflows:x.subflows}),b&&(0,l.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:.25,mt:.5,color:y.color},children:[(0,l.jsx)(z.A,{sx:{fontSize:13}}),(0,l.jsx)(o.A,{variant:"caption",sx:{fontSize:10,fontWeight:600},children:h("waves.pinned")})]}),v&&!w&&!b&&(0,l.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:.25,mt:.5,opacity:.55},children:[(0,l.jsx)(C.A,{sx:{fontSize:13,transform:"rotate(90deg)"}}),(0,l.jsx)(o.A,{variant:"caption",sx:{fontSize:10},children:h("waves.hoverFollow")})]}),(0,l.jsx)(A.h7,{type:"source",position:j.yX.Right,style:{background:y.color}}),(0,l.jsx)(A.h7,{type:"source",position:j.yX.Bottom,id:"down",style:{background:y.color}})]})},clock:function(){let{t:e}=(0,H.s9)();return(0,l.jsxs)(c.default,{sx:{display:"flex",flexDirection:"column",alignItems:"center",gap:.25,width:84},children:[(0,l.jsx)(c.default,{sx:{width:56,height:56,borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",bgcolor:"primary.main",color:"primary.contrastText",boxShadow:3},children:(0,l.jsx)(_.A,{})}),(0,l.jsx)(o.A,{variant:"caption",sx:{fontWeight:600},children:e("waves.now")}),(0,l.jsx)(o.A,{variant:"caption",sx:{opacity:.6,fontSize:10,textAlign:"center"},children:e("waves.timeDirection")})]})},tick:function(e){let{data:t}=e,{label:n}=t;return(0,l.jsxs)(c.default,{sx:{display:"flex",flexDirection:"column",alignItems:"center",transform:"translateX(-50%)",pointerEvents:"none",userSelect:"none"},children:[(0,l.jsx)(o.A,{variant:"caption",sx:{fontSize:10,opacity:.55,whiteSpace:"nowrap"},children:n}),(0,l.jsx)(c.default,{sx:{width:"1px",height:14,bgcolor:"rgba(0,0,0,0.25)",mt:.25}})]})}};function L(e){let{wave:t,height:n=460}=e,{t:a}=(0,H.s9)(),[r,s]=(0,i.useState)(()=>Date.now()),[d,u]=(0,i.useState)(()=>(function(e,t){let n=1/0;for(let l of e.nodes){if("timeline"!==l.timing.mode)continue;let e=l.timing.cron;if(!e)continue;let i=R(e,t,864e5,3);if(i.length>=2){let e=i[1]-i[0];e<n&&(n=e)}}if(!Number.isFinite(n))return"6h";let l=6*n;return l<=W["1h"]?"1h":l<=W["6h"]?"6h":"1d"})(t,Date.now())),[f,h]=(0,i.useState)(null),[x,p]=(0,i.useState)(null),m=(0,i.useRef)(null),g=null!=x?x:f,v=(0,i.useMemo)(()=>t.nodes.some(e=>"timeline"===e.timing.mode),[t]);(0,i.useEffect)(()=>{if(!v)return;let e=setInterval(()=>s(Date.now()),3e4);return()=>clearInterval(e)},[v]),(0,i.useEffect)(()=>()=>{m.current&&clearTimeout(m.current)},[]);let w=W[d],b=(0,i.useMemo)(()=>{let e=new Map;for(let n of t.nodes)e.set(n.executionId,n.name);return e},[t]),y=(0,i.useMemo)(()=>(function(e){let{wave:t,now:n,windowMs:l,hoveredKey:i,timezone:a}=e,{nodeById:o,succ:r,edgeByPair:s,rootIds:c,parentOf:d}=function(e){let t=new Map;for(let n of e.nodes)t.set(n.executionId,n);let n=new Map,l=new Map;for(let t of e.nodes)n.set(t.executionId,[]),l.set(t.executionId,[]);let i=new Map;for(let a of e.edges)t.has(a.fromExecutionId)&&t.has(a.toExecutionId)&&(n.get(a.fromExecutionId).push(a.toExecutionId),l.get(a.toExecutionId).push(a.fromExecutionId),i.set("".concat(a.fromExecutionId,"->").concat(a.toExecutionId),a));for(let[,e]of n)e.sort();let a=e.rootExecutionIds.filter(e=>t.has(e));0===a.length&&(a=e.nodes.filter(e=>{var t,n;return(null!=(n=null==(t=l.get(e.executionId))?void 0:t.length)?n:0)===0}).map(e=>e.executionId)),a=[...a].sort();let o=new Map;{let e=new Set(a),t=[...a];for(;t.length>0;){var r;let l=t.shift();for(let i of null!=(r=n.get(l))?r:[])e.has(i)||(e.add(i),o.set(i,l),t.push(i))}}return{nodeById:t,succ:n,preds:l,edgeByPair:i,rootIds:a,parentOf:o}}(t),u=[];for(let e of c){let t=o.get(e);if("timeline"===t.timing.mode){let i=R(t.timing.cron,n,l,void 0,a);if(i.length>0)i.forEach((t,n)=>u.push({baseId:e,occ:n,runAt:t}));else{let n=t.timing.nextRun?Date.parse(t.timing.nextRun):NaN;u.push({baseId:e,occ:0,runAt:Number.isFinite(n)?n:null})}}else u.push({baseId:e,occ:0,runAt:null})}let f=i?function(e){let t=e.lastIndexOf("#");return t>=0?e.slice(0,t):e}(i):null,h=i?function(e){let t=e.lastIndexOf("#");return t>=0?Number(e.slice(t+1)):0}(i):null,x=new Set,p=null;if(f){let e=f,t=new Set;for(;e&&!t.has(e);){t.add(e),x.add(e);let n=d.get(e);if(!n){p=e;break}e=n}}let m=new Map,g=e=>{if("timeline"!==o.get(e.baseId).timing.mode)return 0;if(null==e.runAt)return 1;var t=e.runAt;if(null==t||!Number.isFinite(t)||l<=0)return 0;let i=t-n;return i<=0?0:Math.min(1,i/l)},v=(e,t,n,l,i,a)=>{var s,c;let d=P(e,t);if(m.has(d))return;let u=o.get(e);m.set(d,{key:d,baseId:e,occ:t,chainNode:u,isRoot:a,runAt:i,level:n,x:l,y:24+220*n,hasSuccessors:(null!=(c=null==(s=r.get(e))?void 0:s.length)?c:0)>0,expanded:x.has(e)&&t===h})},w=(e,t,n,l)=>{var i;if(!(x.has(e)&&t===h))return;let a=(null!=(i=r.get(e))?i:[]).filter(e=>!m.has(P(e,t)));if(0===a.length)return;let o=(a.length-1)*320;a.forEach((e,i)=>{let a=l-o/2+320*i;v(e,t,n+1,a,null,!1),w(e,t,n+1,a)})};for(let e of u){if(i&&(e.baseId!==p||e.occ!==h))continue;let t=160+620*g(e);v(e.baseId,e.occ,0,t,e.runAt,!0),w(e.baseId,e.occ,0,t)}let b=[];for(let[e,t]of m){var y;let n=t.occ;for(let l of null!=(y=r.get(t.baseId))?y:[]){let i=P(l,n),a=m.get(i);if(!a)continue;let o=s.get("".concat(t.baseId,"->").concat(l));o&&b.push({id:"".concat(e,"->").concat(i),source:e,target:i,chainEdge:o,recursive:a.level<=t.level})}}return{nodes:[...m.values()],edges:b}})({wave:t,now:r,windowMs:w,hoveredKey:g}),[t,r,w,g]),S=(0,i.useMemo)(()=>{let e=y.nodes.map(e=>({id:e.key,type:"trigger",position:{x:e.x,y:e.y},data:{chainNode:e.chainNode,now:r,runAt:e.runAt,isRoot:e.isRoot,hasSuccessors:e.hasSuccessors,expanded:e.expanded,pinned:e.key===x},draggable:!1,connectable:!1}));return[{id:"__clock__",type:"clock",position:{x:16,y:24},data:{},draggable:!1,selectable:!1,connectable:!1},...v?(function(e,t,n,l){if(!Number.isFinite(e)||!Number.isFinite(t)||t<=0)return[];let i=n&&n>0?n:t<=W["1h"]?6e5:t<=W["6h"]?36e5:t<=W["1d"]?144e5:Math.max(6e4,Math.round(t/6)),a=[];for(let n=0;n<=t+1&&a.length<200;n+=i)a.push({atMs:e+n,fraction:Math.min(1,n/t),label:function(e,t){if(e<=0)return t?t("waves.now"):"now";let n=Math.round(e/6e4),l=Math.floor(n/60),i=n%60;return 0===l?"".concat(i,"m"):0===i?"".concat(l,"h"):"".concat(l,"h ").concat(i,"m")}(n,l)});return a})(r,w,void 0,a).map((e,t)=>({id:"__tick_".concat(t,"__"),type:"tick",position:{x:160+620*e.fraction,y:-24},data:{label:e.label},draggable:!1,selectable:!1,connectable:!1})):[],...e]},[y,r,x,v,w,a]),E=(0,i.useMemo)(()=>y.edges.map(e=>{let t=e.recursive?"#ed6c02":"signal"===e.chainEdge.via?"#7b1fa2":"#616161",n="".concat(e.recursive?"↻ ":"").concat(function(e,t,n){var l;if("signal"===e.via)return"⚡ ".concat(null!=(l=e.topic)?l:n?n("waves.signalFallback"):"signal");let i=e.on&&e.on.length>0?e.on.map(e=>n?n("completed"===e?"waves.edgeCompleted":"waves.edgeError"):e).join(" / "):n?n("waves.edgeCompleted"):"completes",a=t?"".concat(t," "):"";return n?n("waves.edgeWhen",{condition:"".concat(a).concat(i)}):"when ".concat(a).concat(i)}(e.chainEdge,b.get(e.chainEdge.fromExecutionId),a));return{id:e.id,source:e.source,target:e.target,sourceHandle:"down",targetHandle:"up",label:n,animated:!e.recursive,markerEnd:{type:j.TG.ArrowClosed,color:t},style:{stroke:t,strokeDasharray:e.recursive?"6 4":void 0},labelStyle:{fontSize:10,fill:t},labelBgStyle:{fill:"#fff",fillOpacity:.85}}}),[y,b,a]);return(0,l.jsx)(c.default,{sx:{height:n,width:"100%",border:"1px solid rgba(0,0,0,0.1)",borderRadius:1},children:(0,l.jsxs)(A.Gc,{nodes:S,edges:E,nodeTypes:K,fitView:!0,fitViewOptions:{padding:.15},minZoom:.2,nodesDraggable:!1,nodesConnectable:!1,elementsSelectable:!1,zoomOnScroll:!0,zoomOnPinch:!0,zoomOnDoubleClick:!0,panOnScroll:!1,preventScrolling:!0,panOnDrag:!0,onNodeMouseEnter:(e,t)=>{if(m.current&&clearTimeout(m.current),"clock"===t.type||"tick"===t.type)return void h(null);h(t.id)},onNodeMouseLeave:()=>{m.current&&clearTimeout(m.current),m.current=setTimeout(()=>h(null),800)},onNodeClick:(e,t)=>{"clock"!==t.type&&"tick"!==t.type&&p(e=>e===t.id?null:t.id)},onPaneClick:()=>p(null),proOptions:{hideAttribution:!0},children:[(0,l.jsx)(A.VS,{}),(0,l.jsx)(A.H2,{showInteractive:!1}),v&&(0,l.jsx)(A.Zk,{position:"top-right",children:(0,l.jsx)(k.A,{size:"small",exclusive:!0,value:d,onChange:(e,t)=>t&&u(t),sx:{bgcolor:"background.paper",boxShadow:1},children:T.map(e=>(0,l.jsx)(I.A,{value:e,sx:{px:1,py:.25},children:e},e))})}),(0,l.jsx)(A.Zk,{position:"bottom-right",children:(0,l.jsx)(o.A,{variant:"caption",sx:{opacity:.55,bgcolor:"background.paper",px:.5,borderRadius:.5},children:x?a("waves.canvasPinnedHelp"):a("waves.canvasHoverHelp")})})]})})}function X(e){return(0,l.jsx)(A.Ln,{children:(0,l.jsx)(L,{...e})})}let G=(0,p.h)("frontend/components/Waves");function q(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Wave",n=e.nodes.filter(t=>e.rootExecutionIds.includes(t.executionId)).map(e=>e.name);return n.length>0?n.join(", "):t}function B(e){let{wave:t,selected:n,now:i,onSelect:d}=e,{t:u,tp:f}=(0,H.s9)(),h=t.nodes.some(e=>"timeline"===e.timing.mode),p=h?function(e){let t=null;for(let n of e.nodes)if("timeline"===n.timing.mode&&n.timing.nextRun){let e=Date.parse(n.timing.nextRun);Number.isFinite(e)&&(null===t||e<t)&&(t=e)}return t}(t):null,m=q(t,u("waves.fallbackName"));return(0,l.jsxs)(a.A,{variant:"outlined",onClick:d,sx:{p:1.25,cursor:"pointer",borderColor:n?"primary.main":void 0,borderWidth:n?2:1,bgcolor:n?"action.selected":"background.paper",transition:"border-color 120ms ease, background-color 120ms ease","&:hover":{borderColor:"primary.light"}},children:[(0,l.jsx)(o.A,{variant:"subtitle2",sx:{fontWeight:600,lineHeight:1.25},noWrap:!0,title:m,children:m}),(0,l.jsxs)(r.A,{direction:"row",spacing:.5,flexWrap:"wrap",useFlexGap:!0,sx:{mt:.75},children:[(0,l.jsx)(s.A,{label:f("waves.triggerCount",t.nodes.length),size:"small",variant:"outlined"}),h&&(0,l.jsx)(s.A,{label:u("waves.timeBased"),size:"small",color:"info",variant:"outlined"}),t.hasCycle&&(0,l.jsx)(s.A,{label:u("waves.recursive"),color:"warning",size:"small"})]}),h&&(0,l.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:.5,mt:.75,opacity:.75},children:[(0,l.jsx)(x.A,{sx:{fontSize:14}}),(0,l.jsx)(o.A,{variant:"caption",children:u("waves.nextRun",{time:p?D(p,i,u):u("waves.notScheduled")})})]})]})}function V(e){var t;let{height:n="100%"}=e,{t:x,tp:p}=(0,H.s9)(),[m,g]=(0,i.useState)(null),[j,A]=(0,i.useState)(!0),[k,I]=(0,i.useState)(()=>Date.now()),[S,E]=(0,b.Xk)("flujo-ui:waves:selected",null),{ref:C,showBackToTop:z,scrollToTop:M}=(0,w.R)("flujo-ui:scroll:waves",{deps:[m]}),N=(0,i.useCallback)(async()=>{g(await v.list()),A(!1)},[]);(0,i.useEffect)(()=>{N().catch(e=>{G.warn("Initial waves load failed",e),A(!1)});let e=setInterval(()=>{N().catch(e=>G.warn("Waves refresh failed",e))},3e4);return()=>clearInterval(e)},[N]),(0,i.useEffect)(()=>{let e=setInterval(()=>I(Date.now()),3e4);return()=>clearInterval(e)},[]);let W=(0,i.useMemo)(()=>{var e;return null!=(e=null==m?void 0:m.waves)?e:[]},[m]),T=null!=(t=null==m?void 0:m.orphans)?t:[],R=(0,i.useMemo)(()=>{var e;return 0===W.length?null:null!=(e=W.find(e=>e.id===S))?e:W[0]},[W,S]);return j?(0,l.jsx)(c.default,{sx:{display:"flex",justifyContent:"center",alignItems:"center",height:n,minHeight:0},children:(0,l.jsx)(d.default,{})}):(0,l.jsxs)(c.default,{sx:{p:3,height:n,boxSizing:"border-box",display:"flex",flexDirection:"column",minHeight:0},children:[(0,l.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:1,mb:1},children:[(0,l.jsx)(h.A,{color:"primary"}),(0,l.jsx)(o.A,{variant:"h5",sx:{fontWeight:600},children:x("waves.title")}),(0,l.jsx)(s.A,{label:x("waves.experimental"),size:"small",color:"warning",variant:"outlined"}),(null==m?void 0:m.paused)&&(0,l.jsx)(s.A,{label:x("waves.schedulerPaused"),color:"warning",size:"small"})]}),(0,l.jsx)(o.A,{variant:"body2",sx:{opacity:.75,mb:2},children:x("waves.description")}),0===W.length&&0===T.length&&(0,l.jsx)(u.A,{severity:"info",children:x("waves.empty")}),(W.length>0||T.length>0)&&(0,l.jsxs)(c.default,{sx:{flex:1,minHeight:0,display:"flex",gap:2},children:[(0,l.jsxs)(c.default,{ref:C,sx:{width:320,flexShrink:0,overflow:"auto",pr:.5},children:[(0,l.jsx)(r.A,{spacing:1,children:W.map(e=>(0,l.jsx)(B,{wave:e,now:k,selected:(null==R?void 0:R.id)===e.id,onSelect:()=>E(e.id)},e.id))}),T.length>0&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(f.A,{sx:{my:2}}),(0,l.jsx)(o.A,{variant:"subtitle2",sx:{fontWeight:600,mb:.5},children:x("waves.unlinkedTitle")}),(0,l.jsx)(o.A,{variant:"caption",sx:{display:"block",opacity:.75,mb:1},children:x("waves.unlinkedDescription")}),(0,l.jsx)(r.A,{direction:"row",spacing:.5,flexWrap:"wrap",useFlexGap:!0,children:T.map(e=>{var t;return(0,l.jsx)(s.A,{label:"".concat(e.name," → ").concat(null!=(t=e.flowName)?t:e.flowId),size:"small"},e.executionId)})})]}),(0,l.jsx)(y.A,{show:z,onClick:M})]}),(0,l.jsx)(c.default,{sx:{flex:1,minHeight:0},children:R?(0,l.jsxs)(a.A,{variant:"outlined",sx:{p:1.5,height:"100%",display:"flex",flexDirection:"column",minHeight:0},children:[(0,l.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:1,mb:1},children:[(0,l.jsx)(o.A,{variant:"subtitle1",sx:{fontWeight:600},noWrap:!0,title:q(R,x("waves.fallbackName")),children:q(R,x("waves.fallbackName"))}),(0,l.jsx)(s.A,{label:p("waves.triggerCount",R.nodes.length),size:"small",variant:"outlined"}),R.hasCycle&&(0,l.jsx)(s.A,{label:x("waves.recursive"),color:"warning",size:"small"})]}),(0,l.jsx)(c.default,{sx:{flex:1,minHeight:0},children:(0,l.jsx)(X,{wave:R,height:"100%"},R.id)})]}):(0,l.jsx)(c.default,{sx:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",opacity:.6},children:(0,l.jsx)(o.A,{variant:"body2",children:x("waves.selectPrompt")})})})]})]})}let Z={xs:"calc(100dvh - var(--app-bar-height))",md:"calc(100dvh - var(--app-bar-height) - var(--active-subnav-height))"},J=(0,p.h)("app/waves/page");function U(){return J.debug("Rendering WavesPage"),(0,l.jsx)(V,{height:Z})}},23201:(e,t,n)=>{n.d(t,{A:()=>s});var l=n(95155);n(12115);var i=n(5421),a=n(67895),o=n(97430),r=n(36773);function s(e){let{show:t,onClick:n,sx:s}=e,{t:c}=(0,r.s9)();return(0,l.jsx)(i.A,{in:t,unmountOnExit:!0,children:(0,l.jsx)(a.A,{size:"small",color:"primary","aria-label":c("backToTop.action"),onClick:n,sx:{position:"fixed",bottom:24,right:24,zIndex:1200,...s},children:(0,l.jsx)(o.A,{})})})}},64598:(e,t,n)=>{n.d(t,{R:()=>a});var l=n(12115),i=n(97104);function a(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{threshold:n=200,deps:a=[]}=t,o=(0,l.useRef)(null),[r,s]=(0,l.useState)(!1),c=(0,l.useRef)(!1),d=(0,l.useCallback)(()=>{let e=o.current;return e&&e.scrollHeight>e.clientHeight+1?e:null},[]),u=(0,l.useCallback)(()=>{let e=d();return e?e.scrollTop:window.scrollY||document.documentElement.scrollTop||0},[d]),f=(0,l.useCallback)(e=>{let t=d();t?t.scrollTop=e:window.scrollTo(0,e)},[d]);return(0,l.useEffect)(()=>{let t=o.current,l=0,a="function"==typeof window.requestAnimationFrame?window.requestAnimationFrame.bind(window):e=>window.setTimeout(()=>e(0),16),r="function"==typeof window.cancelAnimationFrame?window.cancelAnimationFrame.bind(window):e=>window.clearTimeout(e),c=()=>{let t=u();s(t>n),l&&r(l),l=a(()=>(0,i.vi)(e,t))};return null==t||t.addEventListener("scroll",c,{passive:!0}),window.addEventListener("scroll",c,{passive:!0}),()=>{l&&r(l),null==t||t.removeEventListener("scroll",c),window.removeEventListener("scroll",c)}},[e,n,u]),(0,l.useEffect)(()=>{if(c.current)return;let t=(0,i.Aq)(e,0);if(t<=0){c.current=!0;return}f(t);let l=u();l>0&&(c.current=!0,s(l>n))},a),{ref:o,showBackToTop:r,scrollToTop:(0,l.useCallback)(()=>{let e=d();e?e.scrollTo({top:0,behavior:"smooth"}):window.scrollTo({top:0,behavior:"smooth"}),s(!1)},[d])}}},97104:(e,t,n)=>{n.d(t,{Aq:()=>i,Xk:()=>o,vi:()=>a});var l=n(12115);function i(e,t){try{let n=window.localStorage.getItem(e);if(null===n)return t;return JSON.parse(n)}catch(e){return t}}function a(e,t){try{window.localStorage.setItem(e,JSON.stringify(t))}catch(e){}}function o(e,t){let[n,o]=(0,l.useState)(()=>i(e,t));return[n,(0,l.useCallback)(t=>{o(n=>{let l="function"==typeof t?t(n):t;return a(e,l),l})},[e])]}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1576,9140],{19140:(t,e,o)=>{o.r(e),o.d(e,{default:()=>F});var r=o(95155),n=o(12115),i=o(94049),s=o(2300),a=o(25635),l=o(2821),d=o(57001),p=o(81852),u=o(52005),c=o(48116),h=o(66964),m=o(16625),f=o(5356),b=o(85795),g=o(95195);function x(t){return(0,g.Ay)("MuiMobileStepper",t)}(0,b.A)("MuiMobileStepper",["root","positionBottom","positionTop","positionStatic","dots","dot","dotActive","progress"]);var v=o(77765);let A=(0,c.Ay)(s.A,{name:"MuiMobileStepper",slot:"Root",overridesResolver:(t,e)=>{let{ownerState:o}=t;return[e.root,e["position".concat((0,p.A)(o.position))]]}})((0,h.A)(t=>{let{theme:e}=t;return{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",background:(e.vars||e).palette.background.default,padding:8,variants:[{props:t=>{let{position:e}=t;return"top"===e||"bottom"===e},style:{position:"fixed",left:0,right:0,zIndex:(e.vars||e).zIndex.mobileStepper}},{props:{position:"top"},style:{top:0}},{props:{position:"bottom"},style:{bottom:0}}]}})),w=(0,c.Ay)("div",{name:"MuiMobileStepper",slot:"Dots",overridesResolver:(t,e)=>e.dots})({variants:[{props:{variant:"dots"},style:{display:"flex",flexDirection:"row"}}]}),y=(0,c.Ay)("div",{name:"MuiMobileStepper",slot:"Dot",shouldForwardProp:t=>(0,f.A)(t)&&"dotActive"!==t,overridesResolver:(t,e)=>{let{dotActive:o}=t;return[e.dot,o&&e.dotActive]}})((0,h.A)(t=>{let{theme:e}=t;return{variants:[{props:{variant:"dots"},style:{transition:e.transitions.create("background-color",{duration:e.transitions.duration.shortest}),backgroundColor:(e.vars||e).palette.action.disabled,borderRadius:"50%",width:8,height:8,margin:"0 2px"}},{props:{variant:"dots",dotActive:!0},style:{backgroundColor:(e.vars||e).palette.primary.main}}]}})),k=(0,c.Ay)(u.A,{name:"MuiMobileStepper",slot:"Progress",overridesResolver:(t,e)=>e.progress})({variants:[{props:{variant:"progress"},style:{width:"50%"}}]}),C=n.forwardRef(function(t,e){let o,i=(0,m.b)({props:t,name:"MuiMobileStepper"}),{activeStep:s=0,backButton:a,className:u,LinearProgressProps:c,nextButton:h,position:f="bottom",steps:b,variant:g="dots",slots:C={},slotProps:j={},...M}=i,S={...i,activeStep:s,position:f,variant:g};"progress"===g&&(o=1===b?100:Math.ceil(s/(b-1)*100));let T=(t=>{let{classes:e,position:o}=t,r={root:["root","position".concat((0,p.A)(o))],dots:["dots"],dot:["dot"],dotActive:["dotActive"],progress:["progress"]};return(0,d.A)(r,x,e)})(S),P={slots:C,slotProps:{progress:c,...j}},[R,z]=(0,v.A)("root",{ref:e,elementType:A,shouldForwardComponentProp:!0,className:(0,l.A)(T.root,u),externalForwardedProps:{...P,...M},ownerState:S,additionalProps:{square:!0,elevation:0}}),[E,F]=(0,v.A)("dots",{className:T.dots,elementType:w,externalForwardedProps:P,ownerState:S}),[I,N]=(0,v.A)("dot",{elementType:y,externalForwardedProps:P,ownerState:S}),[B,$]=(0,v.A)("progress",{className:T.progress,elementType:k,shouldForwardComponentProp:!0,externalForwardedProps:P,ownerState:S,additionalProps:{value:o,variant:"determinate"}});return(0,r.jsxs)(R,{...z,children:[a,"text"===g&&(0,r.jsxs)(n.Fragment,{children:[s+1," / ",b]}),"dots"===g&&(0,r.jsx)(E,{...F,children:[...Array(b)].map((t,e)=>(0,r.jsx)(I,{...N,className:(0,l.A)(T.dot,N.className,e===s&&T.dotActive),dotActive:e===s},e))}),"progress"===g&&(0,r.jsx)(B,{...$}),h]})});var j=o(91871),M=o(77073),S=o(41983),T=o(20063),P=o(69195),R=o(77326),z=o(36773);function E(t){let{top:e,left:o,vw:r,transform:n}=t,i=o;return(n.includes("-50%, -100%")||n.includes("-50%, 0"))&&(i=Math.min(Math.max(o,188),r-180-8)),{top:e,left:i,transform:n}}function F(){let{isActive:t,stepIndex:e,next:o,back:l,endTour:d}=(0,P.useTour)(),{t:p}=(0,z.s9)(),u=(0,T.usePathname)(),c=(0,T.useRouter)(),[h,m]=(0,n.useState)(null),f=t?R.$[e]:void 0;if((0,n.useEffect)(()=>{f&&u!==f.path&&c.push(f.path)},[f,u,c]),(0,n.useLayoutEffect)(()=>{if(!f||u!==f.path)return void m(null);let t=0,e=!1,o=()=>{if(f.target){let t=document.querySelector(f.target);if(t){e||(t.scrollIntoView({block:"center",behavior:"smooth"}),e=!0);let o=t.getBoundingClientRect();m({top:o.top,left:o.left,width:o.width,height:o.height})}else m(null)}else m(null);t=window.setTimeout(o,200)};return o(),()=>window.clearTimeout(t)},[f,u,e]),!t||!f)return null;let b=u===f.path&&null!==h,g=function(t,e){let o,r=window.innerWidth,n=window.innerHeight;if(!t||"center"===e)return{top:"50%",left:"50%",transform:"translate(-50%, -50%)"};switch(e){case"top":return E({top:o=t.top-16,left:t.left+t.width/2,vw:r,vh:n,transform:"translate(-50%, -100%)"});case"left":return E({top:o=t.top+t.height/2,left:t.left-16,vw:r,vh:n,transform:"translate(-100%, -50%)"});case"right":return E({top:o=t.top+t.height/2,left:t.left+t.width+16,vw:r,vh:n,transform:"translate(0, -50%)"});default:return E({top:o=t.top+t.height+16,left:t.left+t.width/2,vw:r,vh:n,transform:"translate(-50%, 0)"})}}(b?h:null,f.placement),x=0===e,v=e===R.$.length-1;return(0,r.jsxs)(i.default,{sx:{position:"fixed",inset:0,zIndex:t=>t.zIndex.modal+200,pointerEvents:"none"},children:[!b&&(0,r.jsx)(i.default,{sx:{position:"absolute",inset:0,backgroundColor:"rgba(0,0,0,0.55)",pointerEvents:"auto"}}),b&&h&&(0,r.jsx)(i.default,{sx:{position:"absolute",top:h.top-8,left:h.left-8,width:h.width+16,height:h.height+16,borderRadius:1.5,boxShadow:"0 0 0 9999px rgba(0,0,0,0.55)",outline:t=>"2px solid ".concat(t.palette.primary.main),transition:"all 0.2s ease",pointerEvents:"none"}}),(0,r.jsxs)(s.A,{elevation:8,sx:{position:"absolute",width:360,maxWidth:"calc(100vw - 32px)",p:2.5,pointerEvents:"auto",...g},children:[(0,r.jsx)(S.A,{"aria-label":p("tour.close"),size:"small",onClick:d,sx:{position:"absolute",top:6,right:6},children:(0,r.jsx)(M.A,{fontSize:"small"})}),(0,r.jsx)(a.A,{variant:"h6",gutterBottom:!0,sx:{pr:3},children:p(f.title)}),p(f.body).split("\n\n").map((t,e)=>(0,r.jsx)(a.A,{variant:"body2",color:"text.secondary",sx:{mb:1.5},children:t},e)),(0,r.jsx)(C,{variant:"dots",steps:R.$.length,position:"static",activeStep:e,sx:{background:"transparent",px:0,mt:1},nextButton:(0,r.jsx)(j.A,{size:"small",variant:"contained",onClick:o,children:p(v?"common.finish":"common.next")}),backButton:(0,r.jsx)(j.A,{size:"small",onClick:l,disabled:x,children:p("common.back")})}),(0,r.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",mt:.5},children:!v&&(0,r.jsx)(j.A,{size:"small",color:"inherit",onClick:d,sx:{opacity:.7},children:p("tour.skip")})})]})]})}},69195:(t,e,o)=>{o.r(e),o.d(e,{TourProvider:()=>p,useTour:()=>d});var r=o(95155),n=o(12115),i=o(9164),s=o(77326);let a=(0,o(73288).h)("frontend/contexts/TourContext"),l=(0,n.createContext)({isActive:!1,stepIndex:0,startTour:()=>{},next:()=>{},back:()=>{},endTour:()=>{}}),d=()=>(0,n.useContext)(l),p=t=>{var e;let{children:o}=t,{settings:d,updateSettings:p,isLoading:u,settingsHydrated:c}=(0,i.useStorage)(),[h,m]=(0,n.useState)(!1),[f,b]=(0,n.useState)(0),g=(0,n.useRef)(!1),x=(0,n.useCallback)(()=>{var t;p({...d,onboarding:{...null!=(t=d.onboarding)?t:{},completed:!0}}).catch(t=>a.warn("Failed to persist onboarding completion",t))},[d,p]),v=(0,n.useCallback)(()=>{a.info("Starting guided tour"),b(0),m(!0)},[]),A=(0,n.useCallback)(()=>{a.info("Ending guided tour"),m(!1),x()},[x]),w=(0,n.useCallback)(()=>{b(t=>t>=s.$.length-1?(m(!1),x(),t):t+1)},[x]),y=(0,n.useCallback)(()=>{b(t=>Math.max(0,t-1))},[]);return(0,n.useEffect)(()=>{var t;u||!c||g.current||(g.current=!0,(null==(t=d.onboarding)?void 0:t.completed)!==!0&&(a.info("First run detected — auto-starting guided tour"),v()))},[u,c,null==(e=d.onboarding)?void 0:e.completed,v]),(0,r.jsx)(l.Provider,{value:{isActive:h,stepIndex:f,startTour:v,next:w,back:y,endTour:A},children:o})}},77073:(t,e,o)=>{o.d(e,{A:()=>i});var r=o(15485),n=o(95155);let i=(0,r.A)((0,n.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close")},77326:(t,e,o)=>{o.d(e,{$:()=>r});let r=[{id:"add-model",path:"/models",target:'[data-tour="add-model"]',placement:"bottom",title:"tour.connectAi.title",body:"tour.connectAi.body"},{id:"new-flow",path:"/flows",target:'[data-tour="new-flow"]',placement:"bottom",title:"tour.createAgent.title",body:"tour.createAgent.body"},{id:"chat-input",path:"/chat",target:'[data-tour="chat-input"]',placement:"top",title:"tour.talk.title",body:"tour.talk.body"}]}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1576,9195],{1877:(e,t,n)=>{n.d(t,{Hm:()=>o,xc:()=>r,yo:()=>i});let a=["key","secret","token","password"],r=e=>a.some(t=>e.toLowerCase().includes(t)),o=e=>r(e)||"authorization"===e.trim().toLowerCase(),i=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:()=>y,default:()=>p,useStorage:()=>u});var a=n(95155),r=n(12115),o=n(29692),i=n(1877),s=n(73288),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()=>{}}),u=()=>(0,r.useContext)(d),y=e=>{let{children:t}=e,[n,s]=(0,r.useState)(!1),[u,y]=(0,r.useState)(!1),[p,g]=(0,r.useState)({}),[h,_]=(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}},[]),f=(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}),_(null!=(t=a.value)?t:e),y(!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 m=(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}},[]),w=(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),[]),T=(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}},[]),k=(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]),C=(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)}},[]),I=(0,r.useCallback)(async e=>{l.debug("updateSettings: Updating settings",{newSettings:e});try{await (0,o.VH)(o.Zg.SPEECH_SETTINGS,e),_(e)}catch(e){l.error("updateSettings: Error updating settings:",e)}},[]);return(0,a.jsx)(d.Provider,{value:{setKey:f,changeKey:S,verifyKey:v,isEncryptionInitialized:E,globalEnvVars:p,setGlobalEnvVars:k,deleteGlobalEnvVar:C,encryptValue:m,decryptValue:w,isUserEncryptionEnabled:T,isLoading:!n,settings:h,settingsHydrated:u,updateSettings:I},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.THEME_STYLE="theme_style",e.LIVING_WORLD_ENABLED="living_world_enabled",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.LAST_PICKED_FLOW_ID="last_picked_flow_id",e.SPEECH_SETTINGS="speech_settings",e.SPOTLIGHT_SERVERS="spotlight_servers",e.PLANNED_EXECUTIONS="planned_executions",e.MCP_AUTO_INSTALL_SETTINGS="mcp_auto_install_settings",e.MCP_QUALITY_SETTINGS="mcp_quality_settings",e.RUN_RESOURCE_SETTINGS="run_resource_settings",e.KV_STORE_SETTINGS="kv_store_settings",e.PENDING_APPROVALS="pending_approvals",e.MCP_INTERNAL_OVERRIDES="mcp_internal_overrides",e.MCP_INTERNAL_SERVERS_MIGRATION_V1="mcp_internal_servers_migration_v1",e.MCP_INTERNAL_CAPABILITIES_MIGRATION_V2="mcp_internal_capabilities_migration_v2",e.MCP_INTERNAL_BROWSER_MIGRATION_V3="mcp_internal_browser_migration_v3",e.MCP_SHIPPED_SERVERS_MIGRATION_V4="mcp_shipped_servers_migration_v4",e.PACKAGE_INSTALLS="package_installs",e.EXPERIMENTAL_SETTINGS="experimental_settings",e.REGISTRY_ACCOUNT="registry_account",e.REGISTRY_SETTINGS="registry_settings",e.TELEMETRY_STATE="telemetry_state",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(73288).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}}},69195:(e,t,n)=>{n.r(t),n.d(t,{TourProvider:()=>d,useTour:()=>l});var a=n(95155),r=n(12115),o=n(9164),i=n(77326);let s=(0,n(73288).h)("frontend/contexts/TourContext"),c=(0,r.createContext)({isActive:!1,stepIndex:0,startTour:()=>{},next:()=>{},back:()=>{},endTour:()=>{}}),l=()=>(0,r.useContext)(c),d=e=>{var t;let{children:n}=e,{settings:l,updateSettings:d,isLoading:u,settingsHydrated:y}=(0,o.useStorage)(),[p,g]=(0,r.useState)(!1),[h,_]=(0,r.useState)(0),E=(0,r.useRef)(!1),f=(0,r.useCallback)(()=>{var e;d({...l,onboarding:{...null!=(e=l.onboarding)?e:{},completed:!0}}).catch(e=>s.warn("Failed to persist onboarding completion",e))},[l,d]),S=(0,r.useCallback)(()=>{s.info("Starting guided tour"),_(0),g(!0)},[]),v=(0,r.useCallback)(()=>{s.info("Ending guided tour"),g(!1),f()},[f]),b=(0,r.useCallback)(()=>{_(e=>e>=i.$.length-1?(g(!1),f(),e):e+1)},[f]),m=(0,r.useCallback)(()=>{_(e=>Math.max(0,e-1))},[]);return(0,r.useEffect)(()=>{var e;u||!y||E.current||(E.current=!0,(null==(e=l.onboarding)?void 0:e.completed)!==!0&&(s.info("First run detected — auto-starting guided tour"),S()))},[u,y,null==(t=l.onboarding)?void 0:t.completed,S]),(0,a.jsx)(c.Provider,{value:{isActive:p,stepIndex:h,startTour:S,next:b,back:m,endTour:v},children:n})}},77326:(e,t,n)=>{n.d(t,{$:()=>a});let a=[{id:"add-model",path:"/models",target:'[data-tour="add-model"]',placement:"bottom",title:"tour.connectAi.title",body:"tour.connectAi.body"},{id:"new-flow",path:"/flows",target:'[data-tour="new-flow"]',placement:"bottom",title:"tour.createAgent.title",body:"tour.createAgent.body"},{id:"chat-input",path:"/chat",target:'[data-tour="chat-input"]',placement:"top",title:"tour.talk.title",body:"tour.talk.body"}]}}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3652],{68289:(e,s,_)=>{Promise.resolve().then(_.bind(_,17711))}},e=>{e.O(0,[1137,3862,7926,4754,7758,3392,2678,981,1983,1871,5954,9562,3816,3272,155,4123,8598,9611,3303,5418,6547,8326,2141,9050,1161,4814,1521,9524,8124,7711,8441,1255,7358],()=>e(e.s=68289)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3652],{68289:(e,s,_)=>{Promise.resolve().then(_.bind(_,17711))}},e=>{e.O(0,[1137,3862,7926,4754,7758,3392,2678,981,1983,1871,5954,9562,3816,3272,155,4123,8598,9611,3303,5418,6547,8326,2141,9050,5148,1161,4814,1521,3969,8124,7711,8441,1255,7358],()=>e(e.s=68289)),_N_E=e.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6165],{17182:(e,s,_)=>{Promise.resolve().then(_.bind(_,9136))}},e=>{e.O(0,[6714,3862,4754,7758,3392,2678,981,1983,5954,3816,5418,1675,2498,9136,8441,1255,7358],()=>e(e.s=17182)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6165],{17182:(e,s,_)=>{Promise.resolve().then(_.bind(_,9136))}},e=>{e.O(0,[6714,3862,4754,7758,3392,2678,981,1983,5954,3816,5418,1675,2498,5148,9136,8441,1255,7358],()=>e(e.s=17182)),_N_E=e.O()}]);