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
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4662],{6855:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>eC});var s=n(95155),i=n(94049),r=n(12115),a=n(48989),o=n(86973),l=n(49501),c=n(2300),d=n(80777),p=n(28548),x=n(25635),u=n(52641),g=n(95436),m=n(55606),h=n(41602),b=n(73707),y=n(17681),j=n(33567),f=n(8532),v=n(13538),A=n(43633),k=n(35465),w=n(33009),S=n(20814),C=n(37019),K=n(12267),E=n(47275),W=n(81685),F=n(66636),R=n(4097),D=n(61615),I=n(25766),T=n(22003),O=n(9562),z=n(56422),P=n(41983),B=n(91871),L=n(21422),X=n(87830),M=n(68212),N=n(42063),G=n(9164),H=n(36773),U=n(95070),V=n(99944),_=n(9957),Z=n(26842),$=n(14817),J=n(65187),Y=n(26796),q=n(73288);let Q=(0,q.h)("frontend/components/Settings/ThemeSettings"),ee=[{mode:"light",style:"modern",labelKey:"settings.theme.modernLight",descriptionKey:"settings.theme.modernLightDescription",base:"#F5F7FF",surface:"#FFFFFF",text:"#171A2B",accent:"#6355E8"},{mode:"dark",style:"modern",labelKey:"settings.theme.modernDark",descriptionKey:"settings.theme.modernDarkDescription",base:"#070912",surface:"#12182C",text:"#F4F6FF",accent:"#8B7CFF"},{mode:"light",style:"legacy",labelKey:"settings.theme.legacyLight",descriptionKey:"settings.theme.legacyLightDescription",base:"#FFFFFF",surface:"#F5F6FA",text:"#2C3E50",accent:"#007BFF"},{mode:"dark",style:"legacy",labelKey:"settings.theme.legacyDark",descriptionKey:"settings.theme.legacyDarkDescription",base:"#0F1319",surface:"#1A212B",text:"#EEF1F5",accent:"#4F93F5"}];var et=n(71892),en=n(52397),es=n(17325),ei=n(22822),er=n(4474),ea=n(21067),eo=n(2778),el=n(52363),ec=n(65036),ed=n(50001),ep=n(75912),ex=n(27156);let eu=(0,q.h)("frontend/components/Settings/BackupSettings"),eg=[{key:"models",labelKey:"settings.backup.option.models",descriptionKey:"settings.backup.option.modelsDescription",storageKey:ex.Z.MODELS},{key:"mcpServers",labelKey:"settings.backup.option.servers",descriptionKey:"settings.backup.option.serversDescription",storageKey:ex.Z.MCP_SERVERS},{key:"mcpServersFolder",labelKey:"settings.backup.option.serverFiles",descriptionKey:"settings.backup.option.serverFilesDescription",isFolder:!0},{key:"flows",labelKey:"settings.backup.option.flows",descriptionKey:"settings.backup.option.flowsDescription",storageKey:ex.Z.FLOWS},{key:"chatHistory",labelKey:"settings.backup.option.history",descriptionKey:"settings.backup.option.historyDescription",storageKey:ex.Z.CHAT_HISTORY},{key:"settings",labelKey:"settings.backup.option.settings",descriptionKey:"settings.backup.option.settingsDescription",storageKey:ex.Z.THEME},{key:"globalEnvVars",labelKey:"settings.backup.option.globals",descriptionKey:"settings.backup.option.globalsDescription",storageKey:ex.Z.GLOBAL_ENV_VARS},{key:"encryptionKey",labelKey:"settings.backup.option.encryption",descriptionKey:"settings.backup.option.encryptionDescription",storageKey:ex.Z.ENCRYPTION_KEY}];var em=n(84869);(0,q.h)("frontend/components/Settings/SpeechRecognitionSettings");let eh=(0,q.h)("frontend/components/Settings/UpdateSettings");var eb=n(8907),ey=n(69195);let ej=(0,q.h)("frontend/components/Settings/ExperimentalFeaturesSettings");var ef=n(16884),ev=n(22130);let eA=[{id:"globalEnv",titleKey:"settings.section.globalEnv",descriptionKey:"settings.section.globalEnvDescription",icon:k.A,component:function(){let{globalEnvVars:e,setGlobalEnvVars:t,deleteGlobalEnvVar:n}=(0,G.useStorage)(),{t:a}=(0,H.s9)(),[o,l]=(0,r.useState)(null),c=async e=>{try{let n=Object.fromEntries(Object.entries(e).filter(e=>{let[t,n]=e;return"string"==typeof n||!n.metadata.isSecret||n.value!==en.gF}));await t(n),l({type:"success",text:a("settings.globalEnv.success")}),setTimeout(()=>{l(null)},3e3)}catch(e){l({type:"error",text:a("settings.globalEnv.failed")})}};return(0,s.jsxs)(i.default,{sx:{width:"100%"},children:[(0,s.jsx)(x.A,{variant:"body2",color:"text.secondary",sx:{mb:2},children:a("settings.globalEnv.description")}),o&&(0,s.jsx)(T.A,{severity:o.type,sx:{mb:2},children:o.text}),(0,s.jsx)(et.A,{serverName:a("settings.globalEnv.serverName"),initialEnv:e,onSave:c,onDelete:n})]})}},{id:"encryption",titleKey:"settings.section.encryption",descriptionKey:"settings.section.encryptionDescription",icon:w.A,component:function(){let{setKey:e,changeKey:t,verifyKey:n,isEncryptionInitialized:a,isUserEncryptionEnabled:o}=(0,G.useStorage)(),{t:l}=(0,H.s9)(),[d,u]=(0,r.useState)(""),[g,m]=(0,r.useState)(""),[h,b]=(0,r.useState)(!1),[y,j]=(0,r.useState)(""),[f,v]=(0,r.useState)(""),[A,k]=(0,r.useState)(!1),[w,S]=(0,r.useState)(!1),[C,K]=(0,r.useState)(null),[E,W]=(0,r.useState)(!1),[F,R]=(0,r.useState)(!1),[D,I]=(0,r.useState)(!1),U=()=>{setTimeout(()=>window.location.reload(),800)};(0,r.useEffect)(()=>{(async()=>{let e=await a(),t=await o();W(e),R(t)})()},[a,o]);let V=async t=>{t.preventDefault(),I(!0),K(null);try{if(d.length<12){K({type:"error",text:l("settings.encryption.minLength")}),I(!1);return}if(d!==g){K({type:"error",text:l("settings.encryption.mismatch")}),I(!1);return}await e(d),K({type:"success",text:l("settings.encryption.setSuccess")}),u(""),m(""),W(!0),U()}catch(e){K({type:"error",text:l("settings.encryption.setFailed")})}finally{I(!1)}},_=async e=>{e.preventDefault(),I(!0),K(null);try{if(f.length<12){K({type:"error",text:l("settings.encryption.newMinLength")}),I(!1);return}if(!await n(y)){K({type:"error",text:l("settings.encryption.currentIncorrect")}),I(!1);return}await t(y,f)?(K({type:"success",text:l("settings.encryption.changeSuccess")}),j(""),v(""),U()):K({type:"error",text:l("settings.encryption.changeFailed")})}catch(e){K({type:"error",text:l("settings.encryption.changeError")})}finally{I(!1)}};return(0,s.jsxs)(i.default,{sx:{width:"100%"},children:[(0,s.jsx)(x.A,{variant:"h6",gutterBottom:!0,children:l("settings.encryption.title")}),(0,s.jsx)(x.A,{variant:"body2",color:"text.secondary",sx:{mb:3},children:l("settings.encryption.description")}),C&&(0,s.jsx)(T.A,{severity:C.type,sx:{mb:3},children:C.text}),(0,s.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",mb:3},children:[(0,s.jsx)(x.A,{variant:"body1",sx:{mr:2},children:l("settings.encryption.status")}),E?F?(0,s.jsx)(p.A,{icon:(0,s.jsx)(L.A,{}),label:l("settings.encryption.statusCustom"),color:"success",variant:"outlined"}):(0,s.jsx)(p.A,{icon:(0,s.jsx)(X.A,{}),label:l("settings.encryption.statusDefault"),color:"primary",variant:"outlined"}):(0,s.jsx)(p.A,{label:l("settings.encryption.statusNone"),color:"error",variant:"outlined"})]}),E&&F?F?(0,s.jsxs)(c.A,{elevation:2,sx:{p:3},children:[(0,s.jsx)(x.A,{variant:"subtitle1",gutterBottom:!0,fontWeight:"bold",children:l("settings.encryption.changeTitle")}),(0,s.jsx)(x.A,{variant:"body2",color:"text.secondary",sx:{mb:2},children:l("settings.encryption.changeHelp")}),(0,s.jsxs)(i.default,{component:"form",onSubmit:_,children:[(0,s.jsx)(O.A,{fullWidth:!0,label:l("settings.encryption.currentPassword"),variant:"outlined",value:y,onChange:e=>j(e.target.value),type:A?"text":"password",InputProps:{endAdornment:(0,s.jsx)(z.A,{position:"end",children:(0,s.jsx)(P.A,{"aria-label":A?l("encryption.unlock.hidePassword"):l("encryption.unlock.showPassword"),onClick:()=>k(!A),edge:"end",children:A?(0,s.jsx)(M.A,{}):(0,s.jsx)(N.A,{})})})},sx:{mb:2}}),(0,s.jsx)(O.A,{fullWidth:!0,label:l("settings.encryption.newPassword"),variant:"outlined",value:f,onChange:e=>v(e.target.value),type:w?"text":"password",InputProps:{endAdornment:(0,s.jsx)(z.A,{position:"end",children:(0,s.jsx)(P.A,{"aria-label":w?l("encryption.unlock.hidePassword"):l("encryption.unlock.showPassword"),onClick:()=>S(!w),edge:"end",children:w?(0,s.jsx)(M.A,{}):(0,s.jsx)(N.A,{})})})},sx:{mb:3}}),(0,s.jsx)(B.A,{type:"submit",variant:"contained",color:"primary",disabled:!y||!f||D,children:l("settings.encryption.changeAction")})]})]}):null:(0,s.jsxs)(c.A,{elevation:2,sx:{p:3,mb:4},children:[(0,s.jsx)(x.A,{variant:"subtitle1",gutterBottom:!0,fontWeight:"bold",children:l("settings.encryption.setTitle")}),(0,s.jsx)(x.A,{variant:"body2",color:"text.secondary",sx:{mb:2},children:l(E?"settings.encryption.defaultHelp":"settings.encryption.newHelp")}),(0,s.jsxs)(i.default,{component:"form",onSubmit:V,children:[(0,s.jsx)(O.A,{fullWidth:!0,label:l("settings.encryption.newPassword"),variant:"outlined",value:d,onChange:e=>u(e.target.value),type:h?"text":"password",InputProps:{endAdornment:(0,s.jsx)(z.A,{position:"end",children:(0,s.jsx)(P.A,{"aria-label":h?l("encryption.unlock.hidePassword"):l("encryption.unlock.showPassword"),onClick:()=>b(!h),edge:"end",children:h?(0,s.jsx)(M.A,{}):(0,s.jsx)(N.A,{})})})},sx:{mb:2}}),(0,s.jsx)(O.A,{fullWidth:!0,label:l("settings.encryption.confirmPassword"),variant:"outlined",value:g,onChange:e=>m(e.target.value),type:h?"text":"password",sx:{mb:3}}),(0,s.jsx)(B.A,{type:"submit",variant:"contained",color:"primary",disabled:!d||!g||D,children:l(E?"settings.encryption.upgrade":"settings.encryption.setAction")})]})]}),(0,s.jsx)(i.default,{sx:{mt:4},children:(0,s.jsxs)(T.A,{severity:F?"warning":"info",children:[(0,s.jsx)(x.A,{variant:"subtitle2",fontWeight:"bold",children:l(F?"settings.encryption.securityTitle":"settings.encryption.defaultTitle")}),F?(0,s.jsxs)(x.A,{variant:"body2",children:["• ",l("settings.encryption.security1"),(0,s.jsx)("br",{}),"• ",l("settings.encryption.security2"),(0,s.jsx)("br",{}),"• ",l("settings.encryption.security3")]}):(0,s.jsxs)(x.A,{variant:"body2",children:["• ",l("settings.encryption.default1"),(0,s.jsx)("br",{}),"• ",l("settings.encryption.default2"),(0,s.jsx)("br",{}),"• ",l("settings.encryption.default3")]})]})})]})}},{id:"backup",titleKey:"settings.section.backup",descriptionKey:"settings.section.backupDescription",icon:v.A,component:function(){let{t:e}=(0,H.s9)(),[t,n]=(0,r.useState)(eg.reduce((e,t)=>({...e,[t.key]:!0}),{})),[a,o]=(0,r.useState)(eg.reduce((e,t)=>({...e,[t.key]:!0}),{})),[l,d]=(0,r.useState)(null),p=(0,r.useRef)(null),[u,g]=(0,r.useState)(null),[m,h]=(0,r.useState)(!1),[b,y]=(0,r.useState)(!1),j=e=>{n({...t,[e.target.name]:e.target.checked})},f=e=>{o({...a,[e.target.name]:e.target.checked})},v=async()=>{eu.debug("Creating backup with selections:",t),h(!0),g(null);try{let n=Object.entries(t).filter(e=>{let[t,n]=e;return n}).map(e=>{let[t]=e;return t});if(0===n.length){g({type:"error",text:e("settings.backup.selectOne")}),h(!1);return}let s=await fetch("/api/backup",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({selections:n})});if(!s.ok)throw Error(e("settings.backup.createFailed"));let i=await s.blob(),r=window.URL.createObjectURL(i),a=document.createElement("a");a.style.display="none",a.href=r;let o=new Date().toISOString().replace(/[:.]/g,"-").substring(0,19);a.download="flujo-backup-".concat(o,".zip"),document.body.appendChild(a),a.click(),window.URL.revokeObjectURL(r),document.body.removeChild(a),g({type:"success",text:e("settings.backup.created")})}catch(t){eu.error("Error creating backup:",t),g({type:"error",text:t instanceof Error?t.message:e("settings.backup.createFailed")})}finally{h(!1)}},A=async()=>{eu.debug("Restoring from backup with selections:",a),h(!0),g(null),y(!1);try{let t=Object.entries(a).filter(e=>{let[t,n]=e;return n}).map(e=>{let[t]=e;return t}),n=new FormData;n.append("file",l),n.append("selections",JSON.stringify(t));let s=await fetch("/api/restore",{method:"POST",body:n});if(!s.ok){let t=await s.json();throw Error(t.error||e("settings.backup.restoreFailed"))}g({type:"success",text:e("settings.backup.restored")}),p.current&&(p.current.value=""),d(null)}catch(t){eu.error("Error restoring from backup:",t),g({type:"error",text:t instanceof Error?t.message:e("settings.backup.restoreFailed")})}finally{h(!1)}},k=e=>{let s={...t};eg.forEach(t=>{s[t.key]=e}),n(s)},w=e=>{let t={...a};eg.forEach(n=>{t[n.key]=e}),o(t)};return(0,s.jsxs)(i.default,{sx:{width:"100%"},children:[(0,s.jsx)(x.A,{variant:"h6",gutterBottom:!0,children:e("settings.backup.title")}),(0,s.jsx)(x.A,{variant:"body2",color:"text.secondary",sx:{mb:2},children:e("settings.backup.description")}),u&&(0,s.jsx)(T.A,{severity:u.type,sx:{mb:2},children:u.text}),(0,s.jsxs)(c.A,{sx:{p:3,mb:3},children:[(0,s.jsx)(x.A,{variant:"subtitle1",gutterBottom:!0,fontWeight:"bold",children:e("settings.backup.create")}),(0,s.jsx)(x.A,{variant:"body2",color:"text.secondary",sx:{mb:2},children:e("settings.backup.createHelp")}),(0,s.jsxs)(i.default,{sx:{mb:2},children:[(0,s.jsx)(B.A,{size:"small",onClick:()=>k(!0),sx:{mr:1},children:e("settings.backup.selectAll")}),(0,s.jsx)(B.A,{size:"small",onClick:()=>k(!1),children:e("settings.backup.deselectAll")})]}),(0,s.jsx)(es.A,{sx:{mb:3},children:eg.map(n=>(0,s.jsx)(V.A,{control:(0,s.jsx)(ei.A,{checked:t[n.key],onChange:j,name:n.key}),label:(0,s.jsxs)(i.default,{children:[(0,s.jsx)(x.A,{variant:"body1",children:e(n.labelKey)}),(0,s.jsx)(x.A,{variant:"body2",color:"text.secondary",children:e(n.descriptionKey)})]})},n.key))}),(0,s.jsx)(B.A,{variant:"contained",onClick:v,disabled:m||Object.values(t).every(e=>!e),startIcon:m?(0,s.jsx)(er.default,{size:20}):null,children:m?e("settings.backup.creating"):e("settings.backup.create")})]}),(0,s.jsxs)(c.A,{sx:{p:3},children:[(0,s.jsx)(x.A,{variant:"subtitle1",gutterBottom:!0,fontWeight:"bold",children:e("settings.backup.restore")}),(0,s.jsx)(x.A,{variant:"body2",color:"text.secondary",sx:{mb:2},children:e("settings.backup.restoreHelp")}),(0,s.jsxs)(i.default,{sx:{mb:3},children:[(0,s.jsxs)(B.A,{variant:"outlined",component:"label",sx:{mb:2},children:[e("settings.backup.selectFile"),(0,s.jsx)("input",{type:"file",hidden:!0,accept:".zip",onChange:e=>{let t=e.target.files;t&&t.length>0&&(d(t[0]),g(null))},ref:p})]}),l&&(0,s.jsx)(x.A,{variant:"body2",sx:{ml:1},children:e("settings.backup.selectedFile",{name:l.name})})]}),(0,s.jsx)(ea.A,{sx:{mb:2}}),(0,s.jsx)(x.A,{variant:"subtitle2",gutterBottom:!0,children:e("settings.backup.restoreOptions")}),(0,s.jsxs)(i.default,{sx:{mb:2},children:[(0,s.jsx)(B.A,{size:"small",onClick:()=>w(!0),sx:{mr:1},children:e("settings.backup.selectAll")}),(0,s.jsx)(B.A,{size:"small",onClick:()=>w(!1),children:e("settings.backup.deselectAll")})]}),(0,s.jsx)(es.A,{sx:{mb:3},children:eg.map(t=>(0,s.jsx)(V.A,{control:(0,s.jsx)(ei.A,{checked:a[t.key],onChange:f,name:t.key}),label:(0,s.jsxs)(i.default,{children:[(0,s.jsx)(x.A,{variant:"body1",children:e(t.labelKey)}),(0,s.jsx)(x.A,{variant:"body2",color:"text.secondary",children:e(t.descriptionKey)})]})},t.key))}),(0,s.jsx)(B.A,{variant:"contained",color:"warning",onClick:()=>l?0===Object.entries(a).filter(e=>{let[t,n]=e;return n}).map(e=>{let[t]=e;return t}).length?void g({type:"error",text:e("settings.backup.selectRestoreOne")}):void y(!0):void g({type:"error",text:e("settings.backup.fileRequired")}),disabled:m||!l||Object.values(a).every(e=>!e),startIcon:m?(0,s.jsx)(er.default,{size:20}):null,children:m?e("settings.backup.restoring"):e("settings.backup.restore")})]}),(0,s.jsxs)(eo.A,{open:b,onClose:()=>y(!1),children:[(0,s.jsx)(el.A,{children:e("settings.backup.confirmTitle")}),(0,s.jsx)(ec.A,{children:(0,s.jsx)(ed.A,{children:e("settings.backup.confirmBody")})}),(0,s.jsxs)(ep.A,{children:[(0,s.jsx)(B.A,{onClick:()=>y(!1),children:e("common.cancel")}),(0,s.jsx)(B.A,{onClick:A,color:"warning",variant:"contained",children:e("settings.backup.restoreAction")})]})]})]})}},{id:"theme",titleKey:"settings.section.theme",descriptionKey:"settings.section.themeDescription",icon:K.A,component:function(){let{isDarkMode:e,livingWorldEnabled:t,visualStyle:n,setLivingWorldEnabled:r,setThemePreset:a}=(0,Y.useTheme)(),o=(0,j.A)(),{t:l}=(0,H.s9)();return Q.debug("Rendering ThemeSettings with preset: ".concat(n,"/").concat(e?"dark":"light")),(0,s.jsxs)(i.default,{sx:{maxWidth:860},children:[(0,s.jsx)(x.A,{variant:"body2",color:"text.secondary",sx:{mb:2.5},children:l("settings.theme.help")}),(0,s.jsx)(i.default,{role:"radiogroup","aria-label":l("settings.theme.aria"),sx:{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"repeat(2, minmax(0, 1fr))"},gap:2,mb:2.5},children:ee.map(t=>{let r=n===t.style&&e===("dark"===t.mode),c="dark"===t.mode?$.A:J.A;return(0,s.jsxs)(U.A,{role:"radio","aria-checked":r,"aria-label":l(t.labelKey),onClick:()=>{r||a({mode:t.mode,style:t.style})},sx:{display:"block",overflow:"hidden",border:"1px solid",borderColor:r?"primary.main":"divider",borderRadius:"legacy"===n?2:3.5,textAlign:"left",boxShadow:r?"0 0 0 3px ".concat((0,f.X4)(o.palette.primary.main,.13)):"none",transition:"transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease","&:hover":{borderColor:"primary.main",transform:"modern"===t.style?"translateY(-2px)":"none"},"&:focus-visible":{outline:"3px solid ".concat((0,f.X4)(o.palette.primary.main,.3)),outlineOffset:2}},children:[(0,s.jsxs)(i.default,{sx:{height:126,p:2,color:t.text,bgcolor:t.base,backgroundImage:"modern"===t.style?"radial-gradient(circle at 20% 0%, ".concat((0,f.X4)(t.accent,.22),", transparent 48%)"):"none"},children:[(0,s.jsxs)(d.A,{direction:"row",spacing:1,alignItems:"center",children:[(0,s.jsx)(i.default,{sx:{width:50,height:8,borderRadius:999,bgcolor:t.text,opacity:.18}}),(0,s.jsx)(i.default,{sx:{width:8,height:8,ml:"auto !important",borderRadius:"50%",bgcolor:t.accent}})]}),(0,s.jsxs)(i.default,{sx:{mt:2,height:68,p:1.2,border:"1px solid ".concat((0,f.X4)(t.text,.1)),borderRadius:"modern"===t.style?2:1,bgcolor:t.surface,boxShadow:"modern"===t.style?"dark"===t.mode?"0 12px 30px rgba(0,0,0,.28)":"0 12px 30px rgba(55,50,105,.1)":"dark"===t.mode?"0 4px 6px rgba(0,0,0,.4)":"0 4px 6px rgba(0,0,0,.1)"},children:[(0,s.jsx)(i.default,{sx:{width:"62%",height:7,mb:1,borderRadius:999,bgcolor:t.text,opacity:.72}}),(0,s.jsx)(i.default,{sx:{width:"84%",height:5,mb:.7,borderRadius:999,bgcolor:t.text,opacity:.18}}),(0,s.jsx)(i.default,{sx:{width:"46%",height:5,borderRadius:999,bgcolor:t.accent,opacity:.65}})]})]}),(0,s.jsxs)(d.A,{direction:"row",spacing:1.2,alignItems:"flex-start",sx:{p:1.7},children:[(0,s.jsx)(c,{sx:{mt:.15,color:r?"primary.main":"text.secondary"}}),(0,s.jsxs)(i.default,{sx:{flex:1,minWidth:0},children:[(0,s.jsxs)(d.A,{direction:"row",spacing:.8,alignItems:"center",useFlexGap:!0,flexWrap:"wrap",children:[(0,s.jsx)(x.A,{variant:"subtitle2",sx:{fontWeight:"modern"===n?720:600},children:l(t.labelKey)}),"modern"===t.style&&(0,s.jsx)(p.A,{label:l("settings.theme.modern"),size:"small",variant:"outlined",sx:{height:21,fontSize:"0.65rem"}})]}),(0,s.jsx)(x.A,{variant:"caption",color:"text.secondary",children:l(t.descriptionKey)})]}),r&&(0,s.jsx)(Z.A,{color:"primary",fontSize:"small","aria-hidden":"true"})]})]},"".concat(t.style,"-").concat(t.mode))})}),(0,s.jsxs)(u.A,{fullWidth:!0,sx:{p:2,border:"1px solid",borderColor:"divider",borderRadius:"legacy"===n?2:3,bgcolor:(0,f.X4)(o.palette.background.paper,.58)},children:[(0,s.jsx)(V.A,{control:(0,s.jsx)(_.A,{checked:t,onChange:e=>r(e.target.checked),name:"livingWorldEnabled"}),label:l("settings.theme.animatedLandscape")}),(0,s.jsx)(x.A,{variant:"body2",color:"text.secondary",sx:{mt:.5},children:l("settings.theme.animatedLandscapeDescription")})]})]})}},{id:"language",titleKey:"language.title",descriptionKey:"language.description",icon:S.A,component:function(){let{locale:e,localeInfo:t,setLocale:n,t:a}=(0,H.s9)(),o=(0,j.A)(),l=(0,r.useMemo)(()=>new Intl.DisplayNames([t.languageTag],{type:"language"}),[t.languageTag]);return(0,s.jsxs)(i.default,{sx:{maxWidth:860},children:[(0,s.jsx)(x.A,{variant:"body2",color:"text.secondary",sx:{mb:2.5},children:a("language.help")}),(0,s.jsx)(i.default,{role:"radiogroup","aria-label":a("language.title"),sx:{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"repeat(2, minmax(0, 1fr))"},gap:1.5},children:ev.dI.map(t=>{var r;let c=t.code===e,u=null!=(r=l.of(t.languageTag))?r:t.englishName;return(0,s.jsxs)(U.A,{role:"radio","aria-checked":c,lang:t.languageTag,onClick:()=>n(t.code),sx:{display:"flex",justifyContent:"flex-start",minHeight:82,p:2,border:"1px solid",borderColor:c?"primary.main":"divider",borderRadius:3,textAlign:"left",bgcolor:c?(0,f.X4)(o.palette.primary.main,.08):"transparent",boxShadow:c?"0 0 0 3px ".concat((0,f.X4)(o.palette.primary.main,.12)):"none",transition:"border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease","&:hover":{borderColor:"primary.main",bgcolor:(0,f.X4)(o.palette.primary.main,c?.1:.04)},"&:focus-visible":{outline:"3px solid ".concat((0,f.X4)(o.palette.primary.main,.28)),outlineOffset:2}},children:[(0,s.jsx)(ef.A,{sx:{mr:1.5,color:c?"primary.main":"text.secondary"}}),(0,s.jsxs)(i.default,{sx:{flex:1,minWidth:0},children:[(0,s.jsxs)(d.A,{direction:"row",alignItems:"center",spacing:1,useFlexGap:!0,flexWrap:"wrap",children:[(0,s.jsx)(x.A,{variant:"subtitle1",fontWeight:700,children:t.nativeName}),c&&(0,s.jsx)(p.A,{size:"small",color:"primary",label:a("language.current"),sx:{height:22,fontSize:"0.68rem"}})]}),t.nativeName.toLocaleLowerCase()!==u.toLocaleLowerCase()&&(0,s.jsx)(x.A,{variant:"caption",color:"text.secondary",children:u})]}),c&&(0,s.jsx)(Z.A,{color:"primary","aria-hidden":"true"})]},t.code)})}),(0,s.jsxs)(x.A,{variant:"caption",color:"text.secondary",sx:{display:"block",mt:2},children:[a("language.current"),": ",t.nativeName]})]})}},{id:"speech",titleKey:"settings.section.speech",descriptionKey:"settings.section.speechDescription",icon:C.A,component:function(){let{settings:e,updateSettings:t}=(0,G.useStorage)(),{t:n}=(0,H.s9)(),r=(0,em.G)(),a=(null==e?void 0:e.speech)||{enabled:!0};return(0,s.jsxs)(i.default,{sx:{p:2},children:[!r.supported&&(0,s.jsx)(T.A,{severity:"warning",sx:{mb:3},children:n("settings.speech.unsupported")}),(0,s.jsxs)(u.A,{fullWidth:!0,sx:{mb:3},children:[(0,s.jsx)(V.A,{control:(0,s.jsx)(_.A,{checked:a.enabled,onChange:n=>{t({...e,speech:{...a,enabled:n.target.checked}})},name:"enabled",disabled:!r.supported}),label:n("settings.speech.enable")}),(0,s.jsx)(x.A,{variant:"body2",color:"text.secondary",sx:{mt:1},children:n("settings.speech.enableDescription")})]}),(0,s.jsxs)(c.A,{variant:"outlined",sx:{p:2,mb:3},children:[(0,s.jsx)(x.A,{variant:"subtitle2",gutterBottom:!0,children:n("settings.speech.infoTitle")}),(0,s.jsxs)(i.default,{sx:{display:"flex",justifyContent:"space-between",mb:1},children:[(0,s.jsx)(x.A,{variant:"body2",children:n("settings.speech.technology")}),(0,s.jsx)(x.A,{variant:"body2",children:"Web Speech API"})]}),(0,s.jsxs)(i.default,{sx:{display:"flex",justifyContent:"space-between",mb:1},children:[(0,s.jsx)(x.A,{variant:"body2",children:n("settings.speech.processing")}),(0,s.jsx)(x.A,{variant:"body2",children:n("settings.speech.browserBased")})]}),(0,s.jsxs)(i.default,{sx:{display:"flex",justifyContent:"space-between",mb:1},children:[(0,s.jsx)(x.A,{variant:"body2",children:n("settings.speech.language")}),(0,s.jsx)(x.A,{variant:"body2",children:n("settings.speech.autoLanguage")})]}),(0,s.jsxs)(i.default,{sx:{display:"flex",justifyContent:"space-between",mb:1},children:[(0,s.jsx)(x.A,{variant:"body2",children:n("settings.speech.privacy")}),(0,s.jsx)(x.A,{variant:"body2",children:n("settings.speech.browserPrivacy")})]})]}),(0,s.jsx)(T.A,{severity:"info",sx:{mt:3},children:(0,s.jsx)(x.A,{variant:"body2",children:n("settings.speech.quality")})})]})}},{id:"onboarding",titleKey:"settings.section.onboarding",descriptionKey:"settings.section.onboardingDescription",icon:W.A,component:function(){let{startTour:e}=(0,ey.useTour)(),{t}=(0,H.s9)();return(0,s.jsxs)(i.default,{sx:{p:2},children:[(0,s.jsx)(x.A,{variant:"body2",color:"text.secondary",sx:{mb:2},children:t("settings.onboarding.description")}),(0,s.jsx)(B.A,{variant:"outlined",startIcon:(0,s.jsx)(eb.A,{}),onClick:e,children:t("settings.onboarding.replay")})]})}},{id:"updates",titleKey:"settings.section.updates",descriptionKey:"settings.section.updatesDescription",icon:D.A,component:function(){let{settings:e,updateSettings:t}=(0,G.useStorage)(),{t:n,tp:a}=(0,H.s9)(),o=(null==e?void 0:e.update)||{checkOnStartup:!1},[l,c]=(0,r.useState)(!1),[d,p]=(0,r.useState)(!1),[g,m]=(0,r.useState)(null),[h,b]=(0,r.useState)(null),y=null===h||"git"===h,j=async()=>{c(!0),m(null);try{let e=await fetch("/api/update"),t=await e.json();if("string"==typeof t.updateMode&&b(t.updateMode),e.ok&&!1!==t.success)if(!1===t.isGitRepo){let e=t.updateMode;m({severity:"info",message:n("container"===e?"settings.update.container":"npm"===e?"settings.update.npm":"settings.update.notGit")})}else t.updateAvailable?m({severity:"warning",message:a("settings.update.available",t.behindBy,{branch:t.branch})}):m({severity:"success",message:n("settings.update.current",{version:t.currentVersion})});else m({severity:"error",message:t.error||n("settings.update.checkFailed")})}catch(e){eh.error("Update check failed",e),m({severity:"error",message:n("settings.update.checkFailed")})}finally{c(!1)}},f=async()=>{p(!0),m({severity:"info",message:n("settings.update.progress")});try{let e=await fetch("/api/update",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"apply"})}),t=await e.json();if(!e.ok||!1===t.success){m({severity:"error",message:t.error||n("home.updateFailed")}),p(!1);return}if(m({severity:"success",message:t.message||n("settings.update.complete")}),t.restarting){let e=!1,t=async()=>{try{if((await fetch("/api/cwd",{cache:"no-store"})).ok&&e)return void window.location.reload()}catch(t){e=!0}setTimeout(t,3e3)};setTimeout(t,5e3)}else p(!1)}catch(e){eh.error("Update failed",e),m({severity:"error",message:n("home.updateFailed")}),p(!1)}};return(0,s.jsxs)(i.default,{sx:{p:2},children:[(0,s.jsxs)(u.A,{fullWidth:!0,sx:{mb:2},children:[(0,s.jsx)(V.A,{control:(0,s.jsx)(_.A,{checked:o.checkOnStartup,onChange:n=>{t({...e,update:{...o,checkOnStartup:n.target.checked}})},name:"checkOnStartup"}),label:n("settings.update.checkStartup")}),(0,s.jsx)(x.A,{variant:"body2",color:"text.secondary",sx:{mt:1},children:n("settings.update.checkDescription")}),!y&&(0,s.jsx)(x.A,{variant:"body2",color:"text.secondary",sx:{mt:1},children:n("container"===h?"settings.update.container":"npm"===h?"settings.update.npm":"settings.update.notGit")})]}),(0,s.jsxs)(i.default,{sx:{display:"flex",gap:2,mb:2},children:[(0,s.jsxs)(B.A,{variant:"outlined",onClick:j,disabled:l||d,children:[l?(0,s.jsx)(er.default,{size:20,sx:{mr:1}}):null,n("settings.update.checkNow")]}),(0,s.jsxs)(B.A,{variant:"contained",onClick:f,disabled:d||!y,children:[d?(0,s.jsx)(er.default,{size:20,sx:{mr:1}}):null,n("home.updateNow")]})]}),g&&(0,s.jsx)(T.A,{severity:g.severity,sx:{mt:1},children:g.message})]})}},{id:"privacy",titleKey:"settings.section.privacy",descriptionKey:"settings.section.privacyDescription",icon:E.A,component:function(){var e,t;let{settings:n,updateSettings:a}=(0,G.useStorage)(),{t:o,tp:l}=(0,H.s9)(),[c,d]=(0,r.useState)(null),[p,g]=(0,r.useState)(!1),m={enabled:(null==(e=n.telemetry)?void 0:e.enabled)!==!1,notifyDaily:(null==(t=n.telemetry)?void 0:t.notifyDaily)!==!1},h=e=>a({...n,telemetry:{...m,...e}});return(0,r.useEffect)(()=>{let e=new AbortController;return fetch("/api/telemetry/daily-active",{headers:{Accept:"application/json"},signal:e.signal}).then(async e=>{if(!e.ok)throw Error("count request returned ".concat(e.status));return e.json()}).then(d).catch(e=>{"AbortError"!==e.name&&g(!0)}),()=>e.abort()},[]),(0,s.jsxs)(i.default,{sx:{p:2},children:[(0,s.jsx)(T.A,{severity:"info",sx:{mb:2},children:c?l("settings.privacy.count",c.count):o(p?"settings.privacy.countUnavailable":"settings.privacy.countLoading")}),(0,s.jsxs)(u.A,{fullWidth:!0,sx:{mb:2},children:[(0,s.jsx)(V.A,{control:(0,s.jsx)(_.A,{checked:m.enabled,onChange:e=>h({enabled:e.target.checked}),name:"anonymousDailyActivity"}),label:o("settings.privacy.shareLabel")}),(0,s.jsx)(x.A,{variant:"body2",color:"text.secondary",sx:{mt:1},children:o("settings.privacy.shareDescription")})]}),(0,s.jsxs)(u.A,{fullWidth:!0,sx:{mb:2},children:[(0,s.jsx)(V.A,{control:(0,s.jsx)(_.A,{checked:m.enabled&&m.notifyDaily,disabled:!m.enabled,onChange:e=>h({notifyDaily:e.target.checked}),name:"dailyTelemetryNotice"}),label:o("settings.privacy.notifyLabel")}),(0,s.jsx)(x.A,{variant:"body2",color:"text.secondary",sx:{mt:1},children:o("settings.privacy.notifyDescription")})]}),(0,s.jsx)(T.A,{severity:"info",children:o("settings.privacy.defaultInfo")})]})}},{id:"experimental",titleKey:"settings.section.experimental",descriptionKey:"settings.section.experimentalDescription",icon:F.A,component:function(){var e,t,n,r,a,o,l,c,d,p;let{settings:g,updateSettings:m}=(0,G.useStorage)(),{t:h}=(0,H.s9)(),b=null!=(e=null==g?void 0:g.experimental)?e:{enabled:!1};return(0,s.jsxs)(i.default,{sx:{p:2},children:[(0,s.jsxs)(u.A,{fullWidth:!0,sx:{mb:2},children:[(0,s.jsx)(V.A,{control:(0,s.jsx)(_.A,{checked:b.enabled,onChange:e=>{ej.debug("Experimental features toggled: ".concat(e.target.checked)),m({...g,experimental:{...b,enabled:e.target.checked}})},name:"experimentalEnabled"}),label:h("settings.experimental.enable")}),(0,s.jsx)(x.A,{variant:"body2",color:"text.secondary",sx:{mt:1},children:h("settings.experimental.enableDescription")})]}),(0,s.jsxs)(u.A,{fullWidth:!0,sx:{mb:2},children:[(0,s.jsx)(V.A,{control:(0,s.jsx)(_.A,{checked:null!=(t=b.claudeSessionResume)&&t,onChange:e=>{ej.debug("Claude session resume toggled: ".concat(e.target.checked)),m({...g,experimental:{...b,claudeSessionResume:e.target.checked}})},name:"claudeSessionResume"}),label:h("settings.experimental.claudeResume")}),(0,s.jsx)(x.A,{variant:"body2",color:"text.secondary",sx:{mt:1},children:h("settings.experimental.claudeResumeDescription")})]}),(0,s.jsxs)(u.A,{fullWidth:!0,sx:{mb:2},children:[(0,s.jsx)(V.A,{control:(0,s.jsx)(_.A,{checked:null!=(n=b.visualCompactionEnabled)&&n,onChange:e=>{ej.debug("Visual context compaction toggled: ".concat(e.target.checked)),m({...g,experimental:{...b,visualCompactionEnabled:e.target.checked}})},name:"visualCompactionEnabled"}),label:h("settings.experimental.visualCompaction")}),(0,s.jsx)(x.A,{variant:"body2",color:"text.secondary",sx:{mt:1},children:h("settings.experimental.visualCompactionDescription")})]}),(0,s.jsxs)(u.A,{fullWidth:!0,sx:{mb:2,ml:2},children:[(0,s.jsx)(V.A,{control:(0,s.jsx)(_.A,{checked:!1!==b.visualCompactionToolResultsOnly,onChange:e=>{ej.debug("Visual compaction tool-results-only toggled: ".concat(e.target.checked)),m({...g,experimental:{...b,visualCompactionToolResultsOnly:e.target.checked}})},name:"visualCompactionToolResultsOnly",disabled:!b.visualCompactionEnabled}),label:h("settings.experimental.toolResultsOnly")}),(0,s.jsx)(x.A,{variant:"body2",color:"text.secondary",sx:{mt:1},children:h("settings.experimental.toolResultsOnlyDescription")})]}),(0,s.jsxs)(u.A,{fullWidth:!0,sx:{mb:2,ml:2},children:[(0,s.jsx)(V.A,{control:(0,s.jsx)(_.A,{checked:null!=(r=b.visualCompactionEvaluationMode)&&r,onChange:e=>{ej.debug("Visual compaction evaluation mode toggled: ".concat(e.target.checked)),m({...g,experimental:{...b,visualCompactionEvaluationMode:e.target.checked}})},name:"visualCompactionEvaluationMode",disabled:!b.visualCompactionEnabled}),label:h("settings.experimental.evaluation")}),(0,s.jsx)(x.A,{variant:"body2",color:"text.secondary",sx:{mt:1},children:h("settings.experimental.evaluationDescription")})]}),(0,s.jsxs)(u.A,{fullWidth:!0,sx:{mb:2},children:[(0,s.jsx)(V.A,{control:(0,s.jsx)(_.A,{checked:null!=(a=b.autoUnloadOllamaModels)&&a,onChange:e=>{ej.debug("Auto-unload Ollama models toggled: ".concat(e.target.checked)),m({...g,experimental:{...b,autoUnloadOllamaModels:e.target.checked}})},name:"autoUnloadOllamaModels"}),label:h("settings.experimental.ollama")}),(0,s.jsx)(x.A,{variant:"body2",color:"text.secondary",sx:{mt:1},children:h("settings.experimental.ollamaDescription")})]}),(0,s.jsxs)(u.A,{fullWidth:!0,sx:{mb:2},children:[(0,s.jsx)(V.A,{control:(0,s.jsx)(_.A,{checked:null!=(o=b.showModelsWithoutToolCapabilities)&&o,onChange:e=>{ej.debug("Show models without tool capabilities toggled: ".concat(e.target.checked)),m({...g,experimental:{...b,showModelsWithoutToolCapabilities:e.target.checked}})},name:"showModelsWithoutToolCapabilities"}),label:h("settings.experimental.modelsWithoutTools")}),(0,s.jsx)(x.A,{variant:"body2",color:"text.secondary",sx:{mt:1},children:h("settings.experimental.modelsWithoutToolsDescription")})]}),(0,s.jsxs)(u.A,{fullWidth:!0,sx:{mb:2},children:[(0,s.jsx)(V.A,{control:(0,s.jsx)(_.A,{checked:null!=(l=b.mcpBetaProtocol)&&l,onChange:e=>{ej.debug("MCP beta protocol toggled: ".concat(e.target.checked)),m({...g,experimental:{...b,mcpBetaProtocol:e.target.checked}})},name:"mcpBetaProtocol"}),label:h("settings.experimental.mcpBeta")}),(0,s.jsx)(x.A,{variant:"body2",color:"text.secondary",sx:{mt:1},children:h("settings.experimental.mcpBetaDescription")})]}),(0,s.jsxs)(u.A,{fullWidth:!0,sx:{mb:2},children:[(0,s.jsx)(V.A,{control:(0,s.jsx)(_.A,{checked:null!=(c=b.flowBasedGenerator)&&c,onChange:e=>{ej.debug("Flow-based generator toggled: ".concat(e.target.checked)),m({...g,experimental:{...b,flowBasedGenerator:e.target.checked}})},name:"flowBasedGenerator",disabled:!b.enabled}),label:h("settings.experimental.flowGenerator")}),(0,s.jsx)(x.A,{variant:"body2",color:"text.secondary",sx:{mt:1},children:h("settings.experimental.flowGeneratorDescription")})]}),(0,s.jsxs)(u.A,{fullWidth:!0,sx:{mb:2},children:[(0,s.jsx)(V.A,{control:(0,s.jsx)(_.A,{checked:null!=(d=b.protectedPathsEnabled)&&d,onChange:e=>{ej.debug("Protected paths toggled: ".concat(e.target.checked)),m({...g,experimental:{...b,protectedPathsEnabled:e.target.checked}})},name:"protectedPathsEnabled"}),label:h("settings.experimental.protectedPaths")}),(0,s.jsx)(x.A,{variant:"body2",color:"text.secondary",sx:{mt:1},children:h("settings.experimental.protectedPathsDescription")})]}),(0,s.jsxs)(u.A,{fullWidth:!0,sx:{mb:2},children:[(0,s.jsx)(V.A,{control:(0,s.jsx)(_.A,{checked:null==(p=b.snapshotsEnabled)||p,onChange:e=>{ej.debug("Filesystem snapshots toggled: ".concat(e.target.checked)),m({...g,experimental:{...b,snapshotsEnabled:e.target.checked}})},name:"snapshotsEnabled"}),label:h("settings.experimental.snapshots")}),(0,s.jsx)(x.A,{variant:"body2",color:"text.secondary",sx:{mt:1},children:h("settings.experimental.snapshotsDescription")})]}),(0,s.jsx)(T.A,{severity:"info",children:(0,s.jsx)(x.A,{variant:"body2",children:h("settings.experimental.disableInfo")})})]})}}],ek=[{id:"security",titleKey:"settings.category.security",descriptionKey:"settings.category.securityDescription",sectionIds:["globalEnv","encryption","backup"]},{id:"experience",titleKey:"settings.category.experience",descriptionKey:"settings.category.experienceDescription",sectionIds:["theme","language","speech","onboarding"]},{id:"system",titleKey:"settings.category.system",descriptionKey:"settings.category.systemDescription",sectionIds:["updates","privacy","experimental"]}];function ew(){var e;let t=(0,j.A)(),{t:n}=(0,H.s9)(),[v,k]=(0,r.useState)("globalEnv"),w=(0,r.useMemo)(()=>new Map(eA.map(e=>[e.id,e])),[]),S=null!=(e=w.get(v))?e:eA[0],C=S.icon,K=ek.flatMap(e=>[(0,s.jsx)(a.A,{children:n(e.titleKey)},"".concat(e.id,"-heading")),...e.sectionIds.map(e=>{let t=w.get(e);if(!t)return null;let i=t.icon;return(0,s.jsxs)(o.A,{value:t.id,children:[(0,s.jsx)(l.A,{children:(0,s.jsx)(i,{fontSize:"small"})}),n(t.titleKey)]},t.id)})]);return(0,s.jsx)(i.default,{component:"section",sx:{minHeight:"100%",px:{xs:2,sm:3,lg:4},py:{xs:2,sm:3,lg:4},background:"dark"===t.palette.mode?"radial-gradient(circle at 12% 8%, ".concat((0,f.X4)(t.palette.primary.main,.1),", transparent 28%)"):"radial-gradient(circle at 12% 8%, ".concat((0,f.X4)(t.palette.primary.main,.07),", transparent 30%)")},children:(0,s.jsxs)(i.default,{sx:{width:"100%",maxWidth:1440,mx:"auto"},children:[(0,s.jsx)(c.A,{component:"header",variant:"outlined",sx:{position:"relative",overflow:"hidden",mb:{xs:2,md:3},p:{xs:2.5,sm:3.5,md:4},borderRadius:4,background:"linear-gradient(135deg, ".concat((0,f.X4)(t.palette.primary.main,"dark"===t.palette.mode?.2:.12)," 0%, ").concat((0,f.X4)(t.palette.background.paper,.96)," 58%, ").concat((0,f.X4)(t.palette.info.main,"dark"===t.palette.mode?.1:.06)," 100%)"),boxShadow:"dark"===t.palette.mode?"0 24px 70px rgba(0, 0, 0, 0.24)":"0 24px 70px rgba(31, 41, 55, 0.08)","&::after":{content:'""',position:"absolute",width:260,height:260,right:-90,top:-130,borderRadius:"50%",background:(0,f.X4)(t.palette.primary.main,"dark"===t.palette.mode?.12:.08),filter:"blur(2px)",pointerEvents:"none"}},children:(0,s.jsxs)(d.A,{direction:"row",alignItems:"center",justifyContent:"space-between",spacing:3,sx:{position:"relative",zIndex:1},children:[(0,s.jsxs)(i.default,{children:[(0,s.jsx)(p.A,{icon:(0,s.jsx)(I.A,{}),label:n("settings.controls"),size:"small",variant:"outlined",sx:{mb:1.5,borderColor:(0,f.X4)(t.palette.primary.main,.3),bgcolor:(0,f.X4)(t.palette.background.paper,.52),fontWeight:650}}),(0,s.jsx)(x.A,{component:"h1",variant:"h3",sx:{mb:1,fontSize:{xs:"2rem",sm:"2.5rem",md:"3rem"},letterSpacing:"-0.04em",lineHeight:1.04},children:n("settings.title")}),(0,s.jsx)(x.A,{color:"text.secondary",sx:{maxWidth:660,fontSize:{sm:"1.05rem"}},children:n("settings.intro")})]}),(0,s.jsx)(i.default,{"aria-hidden":!0,sx:{display:{xs:"none",sm:"grid"},placeItems:"center",flex:"0 0 auto",width:{sm:88,md:108},height:{sm:88,md:108},borderRadius:4,color:"primary.main",border:"1px solid ".concat((0,f.X4)(t.palette.primary.main,.22)),bgcolor:(0,f.X4)(t.palette.background.paper,.56),backdropFilter:"blur(14px)",boxShadow:"inset 0 1px 0 ".concat((0,f.X4)(t.palette.common.white,.15))},children:(0,s.jsx)(R.A,{sx:{fontSize:{sm:46,md:58}}})})]})}),(0,s.jsx)(c.A,{variant:"outlined",sx:{display:{xs:"block",md:"none"},p:1.5,mb:2,borderRadius:3,boxShadow:t.shadows[1]},children:(0,s.jsxs)(u.A,{fullWidth:!0,size:"small",children:[(0,s.jsx)(g.A,{id:"mobile-settings-section-label",children:n("settings.sectionLabel")}),(0,s.jsx)(m.A,{labelId:"mobile-settings-section-label",value:v,label:n("settings.sectionLabel"),onChange:e=>{k(e.target.value)},renderValue:()=>(0,s.jsxs)(d.A,{direction:"row",alignItems:"center",spacing:1.25,children:[(0,s.jsx)(C,{color:"primary",fontSize:"small"}),(0,s.jsx)(x.A,{variant:"body2",fontWeight:650,children:n(S.titleKey)})]}),children:K})]})}),(0,s.jsxs)(i.default,{sx:{display:"grid",gridTemplateColumns:{xs:"minmax(0, 1fr)",md:"300px minmax(0, 1fr)",lg:"320px minmax(0, 1fr)"},gap:{xs:2,md:3},alignItems:"start"},children:[(0,s.jsx)(d.A,{component:"nav","aria-label":n("settings.sectionsAria"),spacing:1.5,sx:{display:{xs:"none",md:"flex"}},children:ek.map(e=>(0,s.jsxs)(c.A,{variant:"outlined",sx:{p:1,borderRadius:3,boxShadow:t.shadows[1],bgcolor:(0,f.X4)(t.palette.background.paper,.88)},children:[(0,s.jsxs)(i.default,{sx:{px:1.25,pt:1,pb:1.25},children:[(0,s.jsx)(x.A,{variant:"overline",color:"text.secondary",sx:{fontWeight:750,letterSpacing:"0.1em"},children:n(e.titleKey)}),(0,s.jsx)(x.A,{variant:"caption",color:"text.secondary",display:"block",children:n(e.descriptionKey)})]}),(0,s.jsx)(h.A,{disablePadding:!0,children:e.sectionIds.map(e=>{let r=w.get(e);if(!r)return null;let a=r.icon,o=v===r.id;return(0,s.jsxs)(b.A,{id:"settings-nav-".concat(r.id),selected:o,"aria-current":o?"page":void 0,onClick:()=>k(r.id),sx:{mb:.5,minHeight:52,borderRadius:2,border:"1px solid transparent","&:last-of-type":{mb:0},"&.Mui-selected":{borderColor:(0,f.X4)(t.palette.primary.main,.24),bgcolor:(0,f.X4)(t.palette.primary.main,"dark"===t.palette.mode?.16:.09)},"&.Mui-selected:hover":{bgcolor:(0,f.X4)(t.palette.primary.main,"dark"===t.palette.mode?.2:.13)}},children:[(0,s.jsx)(l.A,{sx:{minWidth:44},children:(0,s.jsx)(i.default,{sx:{display:"grid",placeItems:"center",width:34,height:34,borderRadius:1.75,color:o?"primary.main":"text.secondary",bgcolor:o?(0,f.X4)(t.palette.primary.main,.13):(0,f.X4)(t.palette.text.primary,.05)},children:(0,s.jsx)(a,{fontSize:"small"})})}),(0,s.jsx)(y.A,{primary:n(r.titleKey),primaryTypographyProps:{fontSize:"0.9rem",fontWeight:o?700:550}}),(0,s.jsx)(A.A,{fontSize:"small",sx:{color:o?"primary.main":"text.disabled",transform:o?"translateX(2px)":"none",transition:"transform 160ms ease"}})]},r.id)})})]},e.id))}),(0,s.jsxs)(c.A,{component:"section","aria-labelledby":"settings-panel-title-".concat(S.id),variant:"outlined",sx:{minWidth:0,overflow:"hidden",borderRadius:{xs:3,md:4},bgcolor:(0,f.X4)(t.palette.background.paper,.94),boxShadow:"dark"===t.palette.mode?"0 24px 70px rgba(0, 0, 0, 0.2)":"0 24px 70px rgba(31, 41, 55, 0.07)"},children:[(0,s.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:{xs:1.5,sm:2},p:{xs:2,sm:3},borderBottom:1,borderColor:"divider",background:"linear-gradient(120deg, ".concat((0,f.X4)(t.palette.primary.main,.08),", transparent 58%)")},children:[(0,s.jsx)(i.default,{sx:{display:"grid",placeItems:"center",flex:"0 0 auto",width:{xs:44,sm:52},height:{xs:44,sm:52},borderRadius:2.5,color:"primary.main",bgcolor:(0,f.X4)(t.palette.primary.main,"dark"===t.palette.mode?.18:.1),border:"1px solid ".concat((0,f.X4)(t.palette.primary.main,.18))},children:(0,s.jsx)(C,{sx:{fontSize:{xs:24,sm:28}}})}),(0,s.jsxs)(i.default,{sx:{minWidth:0,flex:1},children:[(0,s.jsx)(x.A,{id:"settings-panel-title-".concat(S.id),component:"h2",variant:"h4",sx:{fontSize:{xs:"1.35rem",sm:"1.65rem"},letterSpacing:"-0.02em"},children:n(S.titleKey)}),(0,s.jsx)(x.A,{color:"text.secondary",variant:"body2",sx:{mt:.35},children:n(S.descriptionKey)})]}),(0,s.jsx)(p.A,{label:"".concat(eA.findIndex(e=>e.id===S.id)+1," / ").concat(eA.length),size:"small",variant:"outlined",sx:{display:{xs:"none",sm:"inline-flex"},color:"text.secondary"}})]}),(0,s.jsx)(i.default,{sx:{p:{xs:2,sm:3,lg:4}},children:eA.map(e=>{let t=e.component,n=S.id===e.id;return(0,s.jsx)(i.default,{hidden:!n,children:(0,s.jsx)(t,{})},e.id)})})]})]})]})})}let eS=(0,q.h)("app/settings/page");function eC(){return eS.debug("Rendering SettingsPage"),(0,s.jsx)(i.default,{component:"div",sx:{minHeight:"100%"},children:(0,s.jsx)(ew,{})})}},22130:(e,t,n)=>{"use strict";n.d(t,{Tl:()=>s.Tl,dI:()=>i.dI});var s=n(29485),i=n(40241)},52397:(e,t,n)=>{"use strict";n.d(t,{RJ:()=>i,gF:()=>s});let s="masked:********",i="********"},71892:(e,t,n)=>{"use strict";n.d(t,{A:()=>F});var s=n(95155),i=n(12115),r=n(2300),a=n(94049),o=n(25635),l=n(91871),c=n(80777),d=n(33077),p=n(9562),x=n(56422),u=n(28548),g=n(99944),m=n(22822),h=n(41983),b=n(56682),y=n(73288),j=n(9164),f=n(86946),v=n(21422),A=n(12857),k=n(48363),w=n(4484),S=n(1877),C=n(52397),K=n(36773);let E=(0,y.h)("frontend/components/mcp/MCPEnvManager/EnvEditor"),W=/^\$\{global:([A-Za-z0-9_.-]+)\}$/,F=e=>{let{serverName:t,initialEnv:n,onSave:y,onDelete:F,onServerRestart:R}=e,{t:D}=(0,K.s9)(),{globalEnvVars:I}=(0,j.useStorage)(),[T,O]=(0,i.useState)([]),[z,P]=(0,i.useState)(!1),[B,L]=(0,i.useState)(!1),[X,M]=(0,i.useState)(!1),[N,G]=(0,i.useState)(null);(0,i.useEffect)(()=>{E.debug("Initializing environment variables for server: ".concat(t),{variableCount:Object.keys(n).length}),O(Object.entries(n).map(e=>{let[t,n]=e,s="object"==typeof n&&null!==n&&"value"in n?n.value:n,i="object"==typeof n&&null!==n&&"metadata"in n?n.metadata:{isSecret:(0,S.xc)(t)},r=s.match(W);if(r){let e=r[1];return{key:t,value:s,isSecret:i.isSecret,isBound:!0,boundTo:e}}let a="string"==typeof s&&(s.startsWith("encrypted:")||s.startsWith("encrypted_failed:"));return{key:t,value:a?C.gF:s,isSecret:i.isSecret,isEncrypted:a}}))},[n]);let H=async e=>{E.debug("Removing environment variable at index: ".concat(e));let n=T[e];if("Global"===t&&F&&n.key)try{await F(n.key),O(T.filter((t,n)=>n!==e))}catch(e){E.error("Failed to delete environment variable: ".concat(n.key),e)}else O(T.filter((t,n)=>n!==e)),P(!0)},U=(e,t,n)=>{let s=[...T];if("isSecret"===t){let t=s[e];t.isSecret&&!n?s[e]={...t,isSecret:n,value:"",isEncrypted:!1,showWarning:!0}:s[e]={...t,isSecret:n}}else{let i={...s[e],[t]:n,isSecret:"key"===t?(0,S.xc)(n):s[e].isSecret};if("key"===t&&(i.isValidKey=""===n||/^[a-zA-Z0-9_]+$/.test(n)),"value"===t){let t=n.match(W);i.isBound=!!t,i.boundTo=null==t?void 0:t[1],s[e].isEncrypted&&(i.isEncrypted=!1),s[e].showWarning&&n&&(i.showWarning=!1)}s[e]=i}O(s),P(!0)},V=async()=>{if(T.some(e=>""!==e.key&&!1===e.isValidKey))return void E.error("Cannot save: Some variable names contain invalid characters");E.debug("Saving environment variables for server: ".concat(t),{variableCount:T.length}),L(!0);try{let e=T.reduce((e,t)=>{let{key:n,value:s,isBound:i,boundTo:r,isSecret:a,isEncrypted:o}=t;return n&&(i&&r?e[n]={value:"${global:".concat(r,"}"),metadata:{isSecret:a}}:a&&s===C.gF||(e[n]={value:s,metadata:{isSecret:a}})),e},{});await y(e),P(!1),R&&"Global"!==t&&(E.debug("Restarting server after env variable changes: ".concat(t)),await R(t))}catch(e){E.error("Failed to save environment variables:",e)}L(!1)};return(0,s.jsxs)(r.A,{sx:{p:3,borderRadius:2,border:1,borderColor:e=>"dark"===e.palette.mode?"#3a3a3a":"#e5e7eb"},children:[(0,s.jsxs)(a.default,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:3},children:[(0,s.jsx)(o.A,{variant:"h6",sx:{fontWeight:"semibold"},children:D("mcp.env.title",{server:t})}),(0,s.jsx)(l.A,{variant:"contained",color:"primary",size:"small",startIcon:(0,s.jsx)(f.A,{}),onClick:()=>{E.debug("Adding new environment variable"),O([...T,{key:"",value:"",isSecret:!1}]),P(!0)},children:D("mcp.env.add")})]}),(0,s.jsx)(c.A,{spacing:3,children:T.map((e,t)=>{var n;return(0,s.jsxs)(d.Ay,{container:!0,spacing:2,alignItems:"flex-start",children:[(0,s.jsx)(d.Ay,{item:!0,xs:12,sm:5,children:(0,s.jsx)(p.A,{fullWidth:!0,placeholder:D("mcp.env.name"),value:e.key,onChange:e=>U(t,"key",e.target.value),error:!1===e.isValidKey,helperText:!1===e.isValidKey?D("mcp.env.invalidName"):"",size:"small"})}),(0,s.jsx)(d.Ay,{item:!0,xs:12,sm:5,children:(0,s.jsx)(p.A,{fullWidth:!0,type:e.isSecret?"password":"text",placeholder:e.showWarning?D("mcp.env.reenter"):D("mcp.env.value"),value:e.value,onChange:e=>U(t,"value",e.target.value),InputProps:{readOnly:e.isBound,startAdornment:e.isEncrypted?(0,s.jsx)(x.A,{position:"start",children:(0,s.jsx)(v.A,{fontSize:"small",titleAccess:D("mcp.env.encrypted")})}):null,endAdornment:e.isBound?(0,s.jsx)(x.A,{position:"end",children:(0,s.jsx)(u.A,{size:"small",label:D("mcp.env.bound",{name:null!=(n=e.boundTo)?n:""}),color:"primary",variant:"outlined",onDelete:()=>(e=>{E.debug("Unbinding variable at index: ".concat(e));let t=[...T];t[e]={...t[e],isBound:!1,boundTo:void 0},O(t),P(!0)})(t),deleteIcon:(0,s.jsx)(A.A,{fontSize:"small"})})}):null},error:e.showWarning,helperText:e.showWarning?D("mcp.env.reenterHelp"):"",size:"small",sx:{bgcolor:t=>e.isBound?"dark"===t.palette.mode?"#1a1a1a":"#f9fafb":t.palette.background.paper}})}),(0,s.jsx)(d.Ay,{item:!0,xs:12,sm:2,children:(0,s.jsxs)(a.default,{sx:{display:"flex",alignItems:"center",mt:.5},children:[(0,s.jsx)(g.A,{control:(0,s.jsx)(m.A,{checked:e.isSecret,onChange:e=>U(t,"isSecret",e.target.checked),size:"small"}),label:D("mcp.env.secret"),sx:{mr:1}}),!e.isBound&&(0,s.jsx)(h.A,{size:"small",color:"primary",onClick:()=>(e=>{E.debug("Opening bind modal for variable at index: ".concat(e)),G(e),M(!0)})(t),title:D("mcp.env.bind"),sx:{mr:1},children:(0,s.jsx)(k.A,{fontSize:"small"})}),(0,s.jsx)(h.A,{size:"small",color:"error",onClick:()=>H(t),title:D("mcp.env.remove"),children:(0,s.jsx)(w.A,{fontSize:"small"})})]})})]},t)})}),(0,s.jsx)(b.A,{open:X,onClose:()=>{M(!1),G(null)},children:(0,s.jsxs)(a.default,{sx:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",width:400,maxWidth:"90%",bgcolor:"background.paper",boxShadow:24,p:4,borderRadius:2},children:[(0,s.jsx)(o.A,{variant:"h6",sx:{mb:2},children:D("mcp.env.bindTitle")}),0===Object.keys(I).length?(0,s.jsx)(o.A,{color:"text.secondary",sx:{mb:2},children:D("mcp.env.noGlobals")}):(0,s.jsx)(a.default,{sx:{maxHeight:300,overflow:"auto",mb:2},children:Object.entries(I).map(e=>{let[t,n]=e;return(0,s.jsxs)(l.A,{fullWidth:!0,variant:"text",onClick:()=>(e=>{if(null!==N){E.debug("Binding variable at index ".concat(N," to global variable: ").concat(e));let t=[...T];t[N]={...t[N],isBound:!0,boundTo:e,value:"${global:".concat(e,"}")},O(t),M(!1),G(null),P(!0)}})(t),sx:{justifyContent:"space-between",textAlign:"left",mb:1,p:1,borderRadius:1},children:[(0,s.jsx)(o.A,{variant:"body2",children:t}),(0,s.jsx)(o.A,{variant:"caption",color:"text.secondary",children:n&&"object"==typeof n&&n.metadata&&n.metadata.isSecret?C.gF:n&&"object"==typeof n?n.value:n})]},t)})}),(0,s.jsx)(a.default,{sx:{display:"flex",justifyContent:"flex-end"},children:(0,s.jsx)(l.A,{variant:"outlined",onClick:()=>{M(!1),G(null)},children:D("mcp.env.cancel")})})]})}),z&&(0,s.jsx)(a.default,{sx:{display:"flex",justifyContent:"flex-end",mt:3},children:(0,s.jsx)(l.A,{variant:"contained",color:"success",onClick:V,disabled:B||T.some(e=>""!==e.key&&!1===e.isValidKey),children:B?D("mcp.env.saving"):D("mcp.env.save")})})]})}},84869:(e,t,n)=>{"use strict";n.d(t,{G:()=>a,S:()=>r});let s=(0,n(73288).h)("frontend/services/transcription/webSpeech"),i=()=>"webkitSpeechRecognition"in window||"SpeechRecognition"in window;async function r(e,t){if(!i())throw Error("Web Speech API is not supported in this browser");s.debug("Starting Web Speech API transcription");try{let n=URL.createObjectURL(e),i=new Audio(n),r=new(window.SpeechRecognition||window.webkitSpeechRecognition);return r.continuous=!0,r.interimResults=!0,(null==t?void 0:t.language)&&(r.lang=t.language),new Promise((e,n)=>{let a="";r.onresult=e=>{let n="";for(let t=e.resultIndex;t<e.results.length;t++){let s=e.results[t][0].transcript;e.results[t].isFinal?a+=s+" ":n+=s}(null==t?void 0:t.onInterimResult)&&t.onInterimResult(a+n),s.debug("Recognition interim result",{finalLength:a.length,interimLength:n.length})},r.onend=()=>{s.debug("Recognition ended",{transcriptLength:a.length}),e(a.trim())},r.onerror=e=>{s.error("Recognition error",{error:e.error}),n(Error("Speech recognition error: ".concat(e.error)))},i.onplay=()=>{r.start(),s.debug("Recognition started")},i.onended=()=>{r.stop(),s.debug("Audio playback ended")},i.onerror=e=>{s.error("Audio playback error",{error:e}),r.stop(),n(Error("Error playing audio"))},i.play().catch(e=>{s.error("Error starting audio playback",{error:e}),n(e)})})}catch(e){throw s.error("Error in Web Speech API transcription",{error:e}),e}}function a(){return{supported:i(),message:i()?"Web Speech API is supported":"Web Speech API is not supported in this browser"}}},96040:(e,t,n)=>{Promise.resolve().then(n.bind(n,6855))}},e=>{e.O(0,[4754,7758,3392,2678,981,1983,1871,5954,9562,3272,155,4123,8598,9611,7203,2493,5148,8135,9195,8441,1255,7358],()=>e(e.s=96040)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3888],{1877:(e,t,s)=>{"use strict";s.d(t,{Hm:()=>r,xc:()=>a,yo:()=>n});let i=["key","secret","token","password"],a=e=>i.some(t=>e.toLowerCase().includes(t)),r=e=>a(e)||"authorization"===e.trim().toLowerCase(),n=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 s=e.indexOf("__");return s>0&&s+2<e.length?e.slice(s+2):e}},9164:(e,t,s)=>{"use strict";s.r(t),s.d(t,{StorageProvider:()=>p,default:()=>m,useStorage:()=>u});var i=s(95155),a=s(12115),r=s(29692),n=s(1877),o=s(73288),l=s(31373);let c=(0,o.h)("frontend/contexts/StorageContext"),d=(0,a.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,a.useContext)(d),p=e=>{let{children:t}=e,[s,o]=(0,a.useState)(!1),[u,p]=(0,a.useState)(!1),[m,h]=(0,a.useState)({}),[g,y]=(0,a.useState)({speech:{enabled:!0},update:{checkOnStartup:!1}}),f=(0,a.useCallback)(async()=>{c.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 c.warn("isEncryptionInitialized: Failed to check encryption status:",e),!1}},[]),x=(0,a.useCallback)(async e=>{c.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){c.warn("setKey: Failed to set encryption key:",e)}},[]),v=(0,a.useCallback)(async(e,t)=>{c.debug("changeKey: Entering method");try{let s=await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"change_password",oldPassword:e,newPassword:t})});if(!s.ok)throw Error("Failed to change encryption key");let i=await s.json();if(i.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===i.success}catch(e){return c.warn("changeKey: Failed to change encryption key:",e),!1}},[]),b=(0,a.useCallback)(async e=>{c.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 s=await t.json();return s.valid&&s.token&&(sessionStorage.setItem("encryption_token",s.token),sessionStorage.setItem("encryption_authenticated","true"),sessionStorage.removeItem("encryption_key")),!0===s.valid}catch(e){return c.warn("verifyKey: Failed to verify encryption key:",e),!1}},[]),j=(0,a.useCallback)(async()=>{let e={speech:{enabled:!0},update:{checkOnStartup:!1}};try{var t;let s=await fetch("/api/storage?key=".concat(encodeURIComponent(r.Zg.SPEECH_SETTINGS),"&defaultValue=").concat(encodeURIComponent(JSON.stringify(e))));if(!s.ok)return void c.debug("loadSettings: settings read not ok, keeping defaults",{status:s.status});let i=await s.json();c.debug("Loaded settings from storage",{settings:i.value}),y(null!=(t=i.value)?t:e),p(!0)}catch(e){c.warn("loadSettings: failed to load settings:",e)}},[]);(0,a.useEffect)(()=>{let e=()=>{c.info("Encryption unlocked signal received; reloading settings"),j()};return window.addEventListener(l.ZB,e),()=>window.removeEventListener(l.ZB,e)},[j]),(0,a.useEffect)(()=>{(async()=>{c.debug("loadData: Entering method");try{c.info("Calling initialization API to verify storage");let e=await fetch("/api/init");if(e.ok)c.info("Storage initialization completed successfully");else{let t=await e.json();c.warn("Storage initialization warning:",t.error)}await f()||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();c.debug("Loaded environment variables",{count:Object.keys(e.variables||{}).length}),h(e.variables||{})}else c.error("loadData: Failed to load environment variables"),h({});await j(),o(!0)}catch(e){c.error("loadData: Error loading data:",e),o(!0)}})()},[f,j]);let w=(0,a.useCallback)(async(e,t)=>{c.debug("encryptValue: Entering method");try{let s=sessionStorage.getItem("encryption_token"),i=sessionStorage.getItem("encryption_key"),a={action:"encrypt",data:e};s?a.token=s:t?a.password=t:i&&(a.password=i);let r=await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!r.ok)throw Error("Failed to encrypt value");return(await r.json()).result}catch(e){return c.warn("encryptValue: Failed to encrypt value:",e),null}},[]),S=(0,a.useCallback)(async(e,t)=>(c.debug("decryptValue: Entering method - THIS METHOD IS DEPRECATED"),c.warn("decryptValue: Frontend decryption is deprecated for security reasons"),null),[]),E=(0,a.useCallback)(async()=>{c.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 c.warn("isUserEncryptionEnabled: Failed to check user encryption status:",e),!1}},[]),A=(0,a.useCallback)(async e=>{c.debug("setGlobalEnvVars: Entering method");try{await f()||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();c.error("setGlobalEnvVars: Failed to set environment variables:",e.error);return}let s={};for(let[t,i]of Object.entries(e)){let e="object"==typeof i&&null!==i&&"value"in i?i.value:i,a="object"==typeof i&&null!==i&&"metadata"in i?i.metadata:{isSecret:(0,n.xc)(t)};a.isSecret?s[t]={value:"********",metadata:a}:s[t]={value:e,metadata:a}}h(s)}catch(e){c.error("setGlobalEnvVars: Error setting environment variables:",e)}},[f]),_=(0,a.useCallback)(async e=>{c.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();c.error("deleteGlobalEnvVar: Failed to delete environment variable:",e.error);return}h(t=>{let s={...t};return delete s[e],s})}catch(e){c.error("deleteGlobalEnvVar: Error deleting environment variable:",e)}},[]),k=(0,a.useCallback)(async e=>{c.debug("updateSettings: Updating settings",{newSettings:e});try{await (0,r.VH)(r.Zg.SPEECH_SETTINGS,e),y(e)}catch(e){c.error("updateSettings: Error updating settings:",e)}},[]);return(0,i.jsx)(d.Provider,{value:{setKey:x,changeKey:v,verifyKey:b,isEncryptionInitialized:f,globalEnvVars:m,setGlobalEnvVars:A,deleteGlobalEnvVar:_,encryptValue:w,decryptValue:S,isUserEncryptionEnabled:E,isLoading:!s,settings:g,settingsHydrated:u,updateSettings:k},children:t})},m=d},25094:(e,t,s)=>{Promise.resolve().then(s.bind(s,71769))},27156:(e,t,s)=>{"use strict";s.d(t,{Z:()=>i});var i=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,s)=>{"use strict";s.d(t,{Zg:()=>i.Z,YM:()=>l,VH:()=>o,Mj:()=>n});var i=s(27156),a=s(12115);let r=(0,s(73288).h)("utils/storage/frontend.ts");function n(e,t){r.verbose("useLocalStorage: Entering method");let[s,i]=(0,a.useState)(t),[n,o]=(0,a.useState)(!0),l=(0,a.useRef)(s);return(0,a.useEffect)(()=>{l.current=s},[s]),(0,a.useEffect)(()=>{(async()=>{r.verbose("loadValue: Entering method");try{let s=await fetch("/api/storage?key=".concat(encodeURIComponent(e),"&defaultValue=").concat(encodeURIComponent(JSON.stringify(t)))),a=await s.json();s.ok&&i(a.value)}catch(t){r.warn('Error reading storage key "'.concat(e,'":'),t)}finally{o(!1)}})()},[e]),[s,(0,a.useCallback)(async t=>{r.verbose("setValue: Entering method");try{let s=t instanceof Function?t(l.current):t;if(i(s),!(await fetch("/api/storage",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:e,value:s})})).ok)throw Error("Failed to save value")}catch(t){r.warn('Error setting storage key "'.concat(e,'":'),t)}},[e]),n]}let o=async(e,t)=>{r.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 r.error("Error saving to storage:",e),e}},l=async(e,t)=>{r.verbose("loadItem: Entering method");try{let s=await fetch("/api/storage?key=".concat(encodeURIComponent(e),"&defaultValue=").concat(encodeURIComponent(JSON.stringify(t))));if(!s.ok)throw Error("Failed to load item");return(await s.json()).value}catch(e){return r.error("Error loading from storage:",e),t}}},31373:(e,t,s)=>{"use strict";s.d(t,{UJ:()=>i,ZB:()=>a,bx:()=>n});let i="flujo:encryption-locked",a="flujo:encryption-unlocked",r=!1;function n(){if(r||"function"!=typeof window.fetch)return;r=!0;let e=window.fetch.bind(window);window.fetch=async function(){for(var t=arguments.length,s=Array(t),a=0;a<t;a++)s[a]=arguments[a];let r=await e(...s);return 423===r.status&&function(){try{sessionStorage.removeItem("encryption_authenticated"),sessionStorage.removeItem("encryption_token")}catch(e){}window.dispatchEvent(new CustomEvent(i))}(),r}}},71769:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>ee});var i=s(95155),a=s(12115),r=s(94049),n=s(20063),o=s(9562),l=s(29767),c=s(84578),d=s(25635),u=s(2300),p=s(78470),m=s(95070),h=s(43070),g=s(16963),y=s(2456),f=s(64792),x=s(71356),v=s(45202),b=s(28548),j=s(91871),w=s(52641),S=s(95436),E=s(55606),A=s(86973),_=s(80777),k=s(52005),I=s(22003),T=s(57813),C=s(26466),O=s(76530),N=s(25541),D=s(11587),R=s(94929),P=s(79508);let V=[{field:"flowIds",query:"flowId"},{field:"plannedExecutionIds",query:"plannedExecutionId"},{field:"sources",query:"source"},{field:"statuses",query:"status"},{field:"modelIds",query:"modelId"},{field:"providerIds",query:"providerId"},{field:"credentialIds",query:"credentialId"}];function F(e){return e.toISOString().slice(0,10)}function L(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Date,t=new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate())),s=new Date(t);return s.setUTCDate(s.getUTCDate()-6),{range:{from:F(s),to:F(t)}}}class M{async get(e,t){let s=await fetch(function(e){let t=new URLSearchParams;for(let{field:s,query:i}of(t.set("from",e.range.from),t.set("to",e.range.to),V)){let a=e[s];null==a||a.forEach(e=>t.append(i,e))}return"/api/statistics?".concat(t.toString())}(e),{method:"GET",cache:"no-store",signal:t}),i=await s.json().catch(()=>void 0);if(!s.ok)throw Error("string"==typeof(null==i?void 0:i.message)?i.message:"Statistics request failed (HTTP ".concat(s.status,")."));if(!function(e){if(!e||"object"!=typeof e)return!1;let t=e.range,s=e.summary,i=e.rankings;return!!t&&"string"==typeof t.from&&"string"==typeof t.to&&!!s&&"number"==typeof s.runs&&Array.isArray(e.daily)&&!!i&&Array.isArray(i.flows)&&Array.isArray(i.plannedExecutions)&&Array.isArray(i.models)&&Array.isArray(i.providers)&&Array.isArray(i.credentials)&&Array.isArray(i.nodes)&&Array.isArray(i.tools)}(i))throw Error("The statistics service returned an invalid response.");return i}}let U=new M;var W=s(36773);let z=["chat","api","schedule","trigger","subflow","mcp","internal","internal-tool"],G=["completed","error","capped","cancelled","paused","skipped"],H=[{field:"flowIds",labelKey:"statistics.filter.flowIds"},{field:"plannedExecutionIds",labelKey:"statistics.filter.executionIds"},{field:"modelIds",labelKey:"statistics.filter.modelIds"},{field:"providerIds",labelKey:"statistics.filter.providerIds"},{field:"credentialIds",labelKey:"statistics.filter.credentialIds"}];function K(e,t,s){if(e<1e3)return"".concat(t(Math.round(e))," ms");let i=e/1e3;if(i<60)return"".concat(t(i,{maximumFractionDigits:+(i<10)})," s");let a=i/60;if(a<60)return"".concat(t(a,{maximumFractionDigits:+(a<10)})," min");let r=a/60;return r<24?"".concat(t(r,{maximumFractionDigits:+(r<10)})," h"):s(r/24)}function J(e,t){return t(e,{style:"percent",maximumFractionDigits:+(e>0&&e<.1)})}function B(e){let{label:t,values:s,onChange:r}=e,{t:n}=(0,W.s9)(),[l,c]=(0,a.useState)(s.join(", "));(0,a.useEffect)(()=>{c(s.join(", "))},[s]);let d=()=>r(Array.from(new Set(l.split(",").map(e=>e.trim()).filter(Boolean))));return(0,i.jsx)(o.A,{label:t,value:l,onChange:e=>c(e.target.value),onBlur:d,onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d())},size:"small",fullWidth:!0,helperText:n("statistics.commaSeparated"),inputProps:{"aria-label":n("statistics.commaSeparatedAria",{label:t})}})}function q(e){let{label:t,value:s,detail:a}=e;return(0,i.jsx)(l.A,{variant:"outlined",sx:{minWidth:0},children:(0,i.jsxs)(c.A,{children:[(0,i.jsx)(d.A,{color:"text.secondary",variant:"body2",children:t}),(0,i.jsx)(d.A,{component:"p",variant:"h5",sx:{my:.5,fontWeight:650},children:s}),(0,i.jsx)(d.A,{color:"text.secondary",variant:"caption",children:a})]})})}function X(e){let{title:t,description:s,buckets:a,metric:n,formatValue:o,onSelectDate:l}=e,{t:c,formatDate:h}=(0,W.s9)(),g=a.map(n),y=Math.max(...g,1);return(0,i.jsxs)(u.A,{component:"section",variant:"outlined",sx:{p:2,minWidth:0},children:[(0,i.jsx)(d.A,{component:"h3",variant:"h6",children:t}),(0,i.jsx)(d.A,{color:"text.secondary",variant:"body2",sx:{mb:2},children:s}),(0,i.jsx)(r.default,{component:"ul","aria-label":c("statistics.byUtcDayAria",{title:t}),sx:{display:"grid",gridTemplateColumns:"repeat(".concat(Math.max(a.length,1),", minmax(40px, 1fr))"),gap:1,listStyle:"none",m:0,p:0,minWidth:Math.max(48*a.length,280)},children:a.map((e,s)=>{let a=g[s];return(0,i.jsx)(r.default,{component:"li",sx:{minWidth:0},children:(0,i.jsx)(p.A,{title:c("statistics.filterDayTooltip"),children:(0,i.jsxs)(m.A,{onClick:()=>l(e.date),"aria-label":c("statistics.filterDayAria",{title:t,value:o(a),date:e.date}),sx:{width:"100%",height:180,display:"flex",flexDirection:"column",justifyContent:"flex-end",borderRadius:1,px:.5,"&:focus-visible":{outline:"2px solid",outlineColor:"primary.main"}},children:[(0,i.jsx)(d.A,{variant:"caption",sx:{mb:.5},children:o(a)}),(0,i.jsx)(r.default,{"aria-hidden":"true",sx:{width:"70%",minHeight:4,height:"".concat(Math.max(4,a/y*125),"px"),maxHeight:125,bgcolor:"primary.main",borderRadius:"4px 4px 0 0"}}),(0,i.jsx)(d.A,{variant:"caption",color:"text.secondary",sx:{mt:.5},children:h("".concat(e.date,"T00:00:00Z"),{month:"short",day:"numeric",timeZone:"UTC"})})]})})},e.date)})})]})}function Y(e){let{title:t,rows:s,selectedIds:a,mode:n,onSelect:o,credentials:l=!1}=e,{t:c,tp:p,formatNumber:m}=(0,W.s9)(),b="providers"===n;return(0,i.jsxs)(u.A,{component:"section",variant:"outlined",sx:{minWidth:0},children:[(0,i.jsxs)(r.default,{sx:{px:2,pt:2},children:[(0,i.jsx)(d.A,{component:"h3",variant:"h6",children:t}),(0,i.jsx)(d.A,{color:"text.secondary",variant:"body2",children:c("statistics.rankingHint")})]}),(0,i.jsx)(h.A,{sx:{mt:1},children:(0,i.jsxs)(g.A,{size:"small","aria-label":c("statistics.rankingAria",{title:t}),children:[(0,i.jsx)(y.A,{children:(0,i.jsxs)(f.A,{children:[(0,i.jsx)(x.A,{children:c("statistics.name")}),(0,i.jsx)(x.A,{align:"right",children:b?c("statistics.attempts"):c("statistics.logicalRuns")}),(0,i.jsx)(x.A,{align:"right",children:b?c("statistics.providerFailures"):c("statistics.failures")}),!b&&(0,i.jsx)(x.A,{align:"right",children:c("statistics.skips")}),(0,i.jsx)(x.A,{align:"right",children:c("statistics.tokens")}),(0,i.jsx)(x.A,{align:"right",children:b?c("statistics.providerWallClock"):c("statistics.runWallClock")}),b?(0,i.jsx)(x.A,{align:"right",children:c("statistics.peakContext")}):(0,i.jsx)(x.A,{align:"right",children:c("statistics.toolFailures")})]})}),(0,i.jsx)(v.A,{children:0===s.length?(0,i.jsx)(f.A,{children:(0,i.jsx)(x.A,{colSpan:b?6:7,children:(0,i.jsx)(d.A,{color:"text.secondary",align:"center",sx:{py:2},children:c("statistics.noRankedItems")})})}):s.map(e=>{let s=l?e.id:e.name||e.id;return(0,i.jsxs)(f.A,{hover:!0,selected:a.includes(e.id),tabIndex:0,"aria-label":c("statistics.filterByAria",{title:t,label:s}),onClick:()=>o(e),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),o(e))},sx:{cursor:"pointer","&:focus-visible":{outline:"2px solid",outlineColor:"primary.main"}},children:[(0,i.jsxs)(x.A,{children:[(0,i.jsx)(d.A,{variant:"body2",fontWeight:600,children:s}),!l&&e.name&&(0,i.jsx)(d.A,{variant:"caption",color:"text.secondary",children:e.id})]}),(0,i.jsx)(x.A,{align:"right",children:m(b?e.providerAttempts:e.runs)}),(0,i.jsx)(x.A,{align:"right",children:m(b?e.providerErrors:e.errors)}),!b&&(0,i.jsx)(x.A,{align:"right",children:m(e.schedulerSkips)}),(0,i.jsx)(x.A,{align:"right",children:m(e.usage.totalTokens,{notation:"compact",maximumFractionDigits:1})}),(0,i.jsx)(x.A,{align:"right",children:K(b?e.providerDuration.totalMs:e.runDuration.totalMs,m,e=>p("statistics.duration.days",e,{value:m(e,{maximumFractionDigits:1})}))}),b?(0,i.jsx)(x.A,{align:"right",children:J(e.peakContextUtilization,m)}):(0,i.jsx)(x.A,{align:"right",children:m(e.toolFailures)})]},e.id)})})]})})]})}function Z(){var e,t,s,n,l,c,p;let{t:m,tp:h,formatNumber:g}=(0,W.s9)(),[y,f]=(0,a.useState)(()=>L()),[x,v]=(0,a.useState)(null),[V,F]=(0,a.useState)(!0),[M,Z]=(0,a.useState)(null),[Q,$]=(0,a.useState)(0),[ee,et]=(0,a.useState)("overview"),es=y.range.from&&y.range.to?y.range.from>y.range.to?m("statistics.invalidRange"):null:m("statistics.chooseBothDates");(0,a.useEffect)(()=>{if(es){F(!1),Z(es);return}let e=new AbortController;return F(!0),Z(null),U.get(y,e.signal).then(e=>v(e)).catch(t=>{e.signal.aborted||Z(t instanceof Error?t.message:m("statistics.unavailable"))}).finally(()=>{e.signal.aborted||F(!1)}),()=>e.abort()},[y,Q,es,m]);let ei=(e,t)=>{f(s=>({...s,[e]:t.length>0?Array.from(new Set(t)):void 0}))},ea=(0,a.useMemo)(()=>{let e=[],t={flowIds:m("statistics.field.flow"),plannedExecutionIds:m("statistics.field.execution"),sources:m("statistics.field.source"),statuses:m("statistics.field.status"),modelIds:m("statistics.field.model"),providerIds:m("statistics.field.provider"),credentialIds:m("statistics.field.credential")};return Object.keys(t).forEach(s=>{let i=y[s];null==i||i.forEach(i=>e.push({field:s,value:i,label:"".concat(t[s],": ").concat(i)}))}),e},[y,m]),er=e=>t=>{ei(e,[t.id])},en=e=>{f(t=>({...t,range:{from:e,to:e}}))},eo=!!x&&(x.summary.runs>0||x.summary.schedulerSkips>0||x.summary.providerAttempts>0||x.summary.nodeVisits>0||x.summary.toolCalls>0),el=x&&x.summary.runs>0?x.summary.successes/x.summary.runs:0,ec=e=>g(e,{notation:"compact",maximumFractionDigits:1}),ed=e=>K(e,g,e=>h("statistics.duration.days",e,{value:g(e,{maximumFractionDigits:1})})),eu={chat:"statistics.source.chat",api:"statistics.source.api",schedule:"statistics.source.schedule",trigger:"statistics.source.trigger",subflow:"statistics.source.subflow",mcp:"statistics.source.mcp",internal:"statistics.source.internal","internal-tool":"statistics.source.internalTool"},ep={completed:"statistics.status.completed",error:"statistics.status.error",capped:"statistics.status.capped",cancelled:"statistics.status.cancelled",paused:"statistics.status.paused",skipped:"statistics.status.skipped"};return(0,i.jsxs)(r.default,{component:"section",sx:{overflow:"auto"},children:[(0,i.jsx)(P.default,{eyebrow:m("statistics.header.eyebrow"),title:m("statistics.header.title"),description:m("statistics.header.description"),icon:D.A,badge:(0,i.jsx)(b.A,{label:m("statistics.experimental"),size:"small",color:"secondary",variant:"outlined"}),actions:(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(j.A,{variant:"outlined",startIcon:(0,i.jsx)(N.A,{}),onClick:()=>f(L()),disabled:V&&!x,children:m("statistics.reset")}),(0,i.jsx)(j.A,{variant:"contained",startIcon:(0,i.jsx)(O.A,{}),onClick:()=>$(e=>e+1),disabled:V||!!es,children:m("statistics.refresh")})]})}),(0,i.jsxs)(r.default,{sx:{p:{xs:2,md:3},width:"100%",maxWidth:1440,mx:"auto"},children:[(0,i.jsxs)(u.A,{component:"section",variant:"outlined",sx:{p:2,mb:2},children:[(0,i.jsx)(d.A,{component:"h2",variant:"h6",sx:{mb:1.5},children:m("statistics.sharedFilters")}),(0,i.jsxs)(r.default,{sx:{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"repeat(2, 1fr)",lg:"repeat(4, 1fr)"},gap:2,alignItems:"start"},children:[(0,i.jsx)(o.A,{label:m("statistics.fromUtc"),type:"date",value:y.range.from,onChange:e=>f(t=>({...t,range:{...t.range,from:e.target.value}})),size:"small",fullWidth:!0,InputLabelProps:{shrink:!0},inputProps:{"aria-label":m("statistics.startDateAria")}}),(0,i.jsx)(o.A,{label:m("statistics.toUtc"),type:"date",value:y.range.to,onChange:e=>f(t=>({...t,range:{...t.range,to:e.target.value}})),size:"small",fullWidth:!0,InputLabelProps:{shrink:!0},inputProps:{"aria-label":m("statistics.endDateAria")}}),(0,i.jsxs)(w.A,{size:"small",fullWidth:!0,children:[(0,i.jsx)(S.A,{id:"statistics-source-label",children:m("statistics.sources")}),(0,i.jsx)(E.A,{labelId:"statistics-source-label",multiple:!0,label:m("statistics.sources"),value:null!=(e=y.sources)?e:[],onChange:e=>ei("sources","string"==typeof e.target.value?e.target.value.split(","):e.target.value),renderValue:e=>e.join(", "),children:z.map(e=>(0,i.jsx)(A.A,{value:e,children:m(eu[e])},e))})]}),(0,i.jsxs)(w.A,{size:"small",fullWidth:!0,children:[(0,i.jsx)(S.A,{id:"statistics-status-label",children:m("statistics.statuses")}),(0,i.jsx)(E.A,{labelId:"statistics-status-label",multiple:!0,label:m("statistics.statuses"),value:null!=(t=y.statuses)?t:[],onChange:e=>ei("statuses","string"==typeof e.target.value?e.target.value.split(","):e.target.value),renderValue:e=>e.join(", "),children:G.map(e=>(0,i.jsx)(A.A,{value:e,children:m(ep[e])},e))})]}),H.map(e=>{var t;let{field:s,labelKey:a}=e;return(0,i.jsx)(B,{label:m(a),values:null!=(t=y[s])?t:[],onChange:e=>ei(s,e)},s)})]}),(0,i.jsx)(_.A,{direction:"row",flexWrap:"wrap",gap:1,alignItems:"center","aria-label":m("statistics.activeFiltersAria"),sx:{mt:ea.length>0?2:1},children:0===ea.length?(0,i.jsx)(d.A,{variant:"body2",color:"text.secondary",children:m("statistics.noDimensionFilters")}):ea.map(e=>(0,i.jsx)(b.A,{label:e.label,onDelete:()=>((e,t)=>{var s;let i=null!=(s=y[e])?s:[];ei(e,i.filter(e=>e!==t))})(e.field,e.value),size:"small"},"".concat(e.field,":").concat(e.value)))})]}),V&&(0,i.jsx)(k.A,{"aria-label":m("statistics.refreshingAria"),sx:{mb:2}}),M&&(0,i.jsx)(I.A,{severity:"error",sx:{mb:2},action:(0,i.jsx)(j.A,{color:"inherit",size:"small",onClick:()=>$(e=>e+1),children:m("statistics.retry")}),children:M}),V&&!x?(0,i.jsxs)(_.A,{alignItems:"center",spacing:1.5,sx:{py:8},children:[(0,i.jsx)(R.default,{size:"large"}),(0,i.jsx)(d.A,{children:m("statistics.loading")})]}):x?eo?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(r.default,{component:"section","aria-label":m("statistics.summaryAria"),sx:{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"repeat(2, 1fr)",lg:"repeat(5, 1fr)"},gap:2,mb:2},children:[(0,i.jsx)(q,{label:m("statistics.logicalRuns"),value:g(x.summary.runs),detail:m("statistics.schedulerSkips",{count:g(x.summary.schedulerSkips)})}),(0,i.jsx)(q,{label:m("statistics.successRate"),value:J(el,g),detail:m("statistics.completedSuccessfully",{count:g(x.summary.successes)})}),(0,i.jsx)(q,{label:m("statistics.tokens"),value:ec(x.summary.usage.totalTokens),detail:m("statistics.inputOutputTokens",{input:ec(x.summary.usage.inputTokens),output:ec(x.summary.usage.outputTokens)})}),(0,i.jsx)(q,{label:m("statistics.runWallClock"),value:ed(x.summary.runDuration.totalMs),detail:"P95 ".concat(ed(x.summary.runDuration.p95Ms))}),(0,i.jsx)(q,{label:m("statistics.failedToolCalls"),value:g(x.summary.toolFailures),detail:m("statistics.totalToolCalls",{count:g(x.summary.toolCalls)})})]}),(0,i.jsx)(u.A,{variant:"outlined",sx:{mb:2},children:(0,i.jsxs)(T.A,{value:ee,onChange:(e,t)=>et(t),variant:"scrollable",scrollButtons:"auto","aria-label":m("statistics.viewsAria"),children:[(0,i.jsx)(C.A,{value:"overview",label:m("statistics.tab.overview"),id:"statistics-tab-overview"}),(0,i.jsx)(C.A,{value:"flows",label:m("statistics.tab.flows"),id:"statistics-tab-flows"}),(0,i.jsx)(C.A,{value:"executions",label:m("statistics.tab.executions"),id:"statistics-tab-executions"}),(0,i.jsx)(C.A,{value:"models",label:m("statistics.tab.models"),id:"statistics-tab-models"}),(0,i.jsx)(C.A,{value:"providers",label:m("statistics.tab.providers"),id:"statistics-tab-providers"})]})}),(0,i.jsxs)(r.default,{role:"tabpanel","aria-labelledby":"statistics-tab-".concat(ee),children:["overview"===ee&&(0,i.jsxs)(r.default,{sx:{display:"grid",gridTemplateColumns:{xs:"1fr",lg:"repeat(2, minmax(0, 1fr))"},gap:2,overflowX:"auto"},children:[(0,i.jsx)(X,{title:m("statistics.executions"),description:m("statistics.executionsDescription"),buckets:x.daily,metric:e=>e.summary.runs,formatValue:e=>g(e),onSelectDate:en}),(0,i.jsx)(X,{title:m("statistics.tokens"),description:m("statistics.tokensDescription"),buckets:x.daily,metric:e=>e.summary.usage.totalTokens,formatValue:ec,onSelectDate:en})]}),"flows"===ee&&(0,i.jsx)(Y,{title:m("statistics.tab.flows"),rows:x.rankings.flows,selectedIds:null!=(s=y.flowIds)?s:[],mode:"runs",onSelect:er("flowIds")}),"executions"===ee&&(0,i.jsx)(Y,{title:m("statistics.plannedExecutions"),rows:x.rankings.plannedExecutions,selectedIds:null!=(n=y.plannedExecutionIds)?n:[],mode:"runs",onSelect:er("plannedExecutionIds")}),"models"===ee&&(0,i.jsxs)(r.default,{children:[(0,i.jsx)(I.A,{severity:"info",sx:{mb:2},children:m("statistics.modelMetricNote")}),(0,i.jsx)(Y,{title:m("statistics.tab.models"),rows:x.rankings.models,selectedIds:null!=(l=y.modelIds)?l:[],mode:"providers",onSelect:er("modelIds")})]}),"providers"===ee&&(0,i.jsxs)(_.A,{spacing:2,children:[(0,i.jsx)(I.A,{severity:"info",children:m("statistics.credentialMetricNote")}),(0,i.jsx)(Y,{title:m("statistics.providers"),rows:x.rankings.providers,selectedIds:null!=(c=y.providerIds)?c:[],mode:"providers",onSelect:er("providerIds")}),(0,i.jsx)(Y,{title:m("statistics.credentials"),rows:x.rankings.credentials,selectedIds:null!=(p=y.credentialIds)?p:[],mode:"providers",onSelect:er("credentialIds"),credentials:!0})]})]})]}):(0,i.jsxs)(u.A,{variant:"outlined",sx:{p:4,textAlign:"center"},children:[(0,i.jsx)(d.A,{component:"h2",variant:"h6",children:m("statistics.noTelemetry")}),(0,i.jsx)(d.A,{color:"text.secondary",sx:{mt:1,maxWidth:620,mx:"auto"},children:m("statistics.noTelemetryDescription")})]}):null]})]})}var Q=s(9164);let $=(0,s(73288).h)("app/statistics/page");function ee(){var e,t;let s=(0,n.useRouter)(),{settings:o,settingsHydrated:l}=(0,Q.useStorage)(),c=l&&null!=(t=null==o||null==(e=o.experimental)?void 0:e.enabled)&&t;return((0,a.useEffect)(()=>{l&&!c&&($.debug("Experimental features disabled — redirecting away from /statistics"),s.replace("/settings"))},[l,c,s]),l&&c)?(0,i.jsx)(r.default,{sx:{height:"100%",display:"flex",flexDirection:"column"},children:(0,i.jsx)(Z,{})}):(0,i.jsx)(R.default,{})}},79508:(e,t,s)=>{"use strict";s.d(t,{default:()=>d});var i=s(95155),a=s(33567),r=s(94049),n=s(80777),o=s(25635),l=s(8532),c=s(36773);function d(e){let{title:t,titleKey:s,description:d,descriptionKey:u,eyebrow:p,eyebrowKey:m,icon:h,leading:g,badge:y,actions:f,compact:x=!1,maxWidth:v=1440}=e,b=(0,a.A)(),{t:j}=(0,c.s9)(),w=s?j(s):t,S=u?j(u):d,E=m?j(m):p;return(0,i.jsx)(r.default,{component:"header",sx:{position:"relative",overflow:"hidden",borderBottom:1,borderColor:"divider",background:"linear-gradient(110deg, ".concat((0,l.X4)(b.palette.primary.main,"dark"===b.palette.mode?.09:.055),", transparent 38%, ").concat((0,l.X4)(b.palette.secondary.main,.045),")"),"&::after":{position:"absolute",top:-90,right:"8%",width:220,height:160,borderRadius:"50%",content:'""',pointerEvents:"none",background:"radial-gradient(circle, ".concat((0,l.X4)(b.palette.primary.main,.16),", transparent 68%)"),filter:"blur(20px)"}},children:(0,i.jsxs)(r.default,{sx:{position:"relative",zIndex:1,display:"flex",width:"100%",maxWidth:v,mx:"auto",px:{xs:2,sm:3,lg:4},py:x?{xs:1.8,sm:2}:{xs:2.2,sm:2.8},alignItems:{xs:"flex-start",md:"center"},justifyContent:"space-between",flexDirection:{xs:"column",md:"row"},gap:2},children:[(0,i.jsxs)(n.A,{direction:"row",spacing:1.5,alignItems:"center",sx:{minWidth:0},children:[g,h&&(0,i.jsx)(r.default,{"aria-hidden":"true",sx:{display:"grid",width:x?40:46,height:x?40:46,flexShrink:0,placeItems:"center",border:"1px solid ".concat((0,l.X4)(b.palette.primary.main,.24)),borderRadius:x?2.8:3.2,color:"primary.light",bgcolor:(0,l.X4)(b.palette.primary.main,.1),boxShadow:"inset 0 1px 0 ".concat((0,l.X4)(b.palette.common.white,.08),", 0 10px 30px ").concat((0,l.X4)(b.palette.primary.main,.12))},children:(0,i.jsx)(h,{sx:{fontSize:x?21:24}})}),(0,i.jsxs)(r.default,{sx:{minWidth:0},children:[(p||y)&&(0,i.jsxs)(n.A,{direction:"row",spacing:1,alignItems:"center",sx:{mb:.35},children:[E&&(0,i.jsx)(o.A,{sx:{color:"primary.light",fontSize:"0.67rem",fontWeight:780,letterSpacing:"0.13em",textTransform:"uppercase"},children:E}),y]}),(0,i.jsx)(o.A,{component:"h1",variant:"h5",sx:{overflow:"hidden",textOverflow:"ellipsis",fontSize:x?"1.2rem":void 0,whiteSpace:{xs:"normal",sm:"nowrap"}},children:w}),S&&(0,i.jsx)(o.A,{variant:"body2",color:"text.secondary",sx:{mt:.45,maxWidth:720,textWrap:"balance"},children:S})]})]}),f&&(0,i.jsx)(r.default,{sx:{display:"flex",width:{xs:"100%",md:"auto"},flexShrink:0,flexWrap:"wrap",alignItems:"center",gap:1,"& > .MuiButton-root":{flex:{xs:"1 1 auto",sm:"0 0 auto"}}},children:f})]})})}},94929:(e,t,s)=>{"use strict";s.d(t,{default:()=>n});var i=s(95155);s(12115);var a=s(94049),r=s(4474);let n=e=>{let{size:t="medium",color:s="primary",className:n="",sx:o={}}=e,l="white"===s?{color:"#fff",...o}:o;return(0,i.jsxs)(a.default,{component:"span",sx:{display:"inline-block",lineHeight:0,...l},className:n,role:"status",children:[(0,i.jsx)(r.default,{size:{small:16,medium:24,large:36}[t],color:"white"===s?"inherit":s,"aria-hidden":"true"}),(0,i.jsx)(a.default,{component:"span",sx:{position:"absolute",width:"1px",height:"1px",padding:0,margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:0},children:"Loading..."})]})}}},e=>{e.O(0,[4754,7758,3392,2678,981,1983,1871,5954,9562,3816,2005,4122,8853,5148,8441,1255,7358],()=>e(e.s=25094)),_N_E=e.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[603],{31087:(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=31087)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[603],{31087:(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=31087)),_N_E=e.O()}]);
@@ -1 +1 @@
1
- (()=>{"use strict";var e={},t={};function r(a){var c=t[a];if(void 0!==c)return c.exports;var n=t[a]={exports:{}},o=!0;try{e[a].call(n.exports,n,n.exports,r),o=!1}finally{o&&delete t[a]}return n.exports}r.m=e,(()=>{var e=[];r.O=(t,a,c,n)=>{if(a){n=n||0;for(var o=e.length;o>0&&e[o-1][2]>n;o--)e[o]=e[o-1];e[o]=[a,c,n];return}for(var s=1/0,o=0;o<e.length;o++){for(var[a,c,n]=e[o],i=!0,d=0;d<a.length;d++)(!1&n||s>=n)&&Object.keys(r.O).every(e=>r.O[e](a[d]))?a.splice(d--,1):(i=!1,n<s&&(s=n));if(i){e.splice(o--,1);var u=c();void 0!==u&&(t=u)}}return t}})(),r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;r.t=function(a,c){if(1&c&&(a=this(a)),8&c||"object"==typeof a&&a&&(4&c&&a.__esModule||16&c&&"function"==typeof a.then))return a;var n=Object.create(null);r.r(n);var o={};e=e||[null,t({}),t([]),t(t)];for(var s=2&c&&a;"object"==typeof s&&!~e.indexOf(s);s=t(s))Object.getOwnPropertyNames(s).forEach(e=>o[e]=()=>a[e]);return o.default=()=>a,r.d(n,o),n}})(),r.d=(e,t)=>{for(var a in t)r.o(t,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,a)=>(r.f[a](e,t),t),[])),r.u=e=>1646===e?"static/chunks/1646.a93085a0445ba909.js":5139===e?"static/chunks/5139.e4ff9cc3669129ed.js":6417===e?"static/chunks/6417.70056fe81ca21682.js":2005===e?"static/chunks/2005.300528b5119c2d38.js":8529===e?"static/chunks/8529.b5a43e728bb5bb8a.js":1576===e?"static/chunks/1576.bc6ae6c9e6d939d8.js":9140===e?"static/chunks/9140.6502327a2c098d33.js":3776===e?"static/chunks/3776.72638b35ce9bb874.js":361===e?"static/chunks/361.51d642c530c84295.js":4965===e?"static/chunks/4965.39e24b54c3c6ca58.js":8198===e?"static/chunks/8198.a9cc35771b354b03.js":3910===e?"static/chunks/3910.5c6885d7a5bd753e.js":"static/chunks/"+e+"-"+({155:"12f2a537db5dacec",760:"2ad13a61701630da",981:"dd289e60d81da0d1",1871:"dd8c10ed9d37100b",1983:"242862b3dc022a26",3272:"42d1acae08d1ef0a",3392:"6dd9ad3be66a7ce9",3816:"807978463638bb71",4122:"d82fad8d1fca26d6",4386:"e9621d3c94969a68",4754:"5c62bb61142f82d1",5954:"dd2b25224f389fc0",5962:"8c59d06b3ee1c42a",7758:"42ab0b9cce1dc0e3",9562:"5494feecd8c6f7a3"})[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={},t="_N_E:";r.l=(a,c,n,o)=>{if(e[a])return void e[a].push(c);if(void 0!==n)for(var s,i,d=document.getElementsByTagName("script"),u=0;u<d.length;u++){var f=d[u];if(f.getAttribute("src")==a||f.getAttribute("data-webpack")==t+n){s=f;break}}s||(i=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,r.nc&&s.setAttribute("nonce",r.nc),s.setAttribute("data-webpack",t+n),s.src=r.tu(a)),e[a]=[c];var l=(t,r)=>{s.onerror=s.onload=null,clearTimeout(b);var c=e[a];if(delete e[a],s.parentNode&&s.parentNode.removeChild(s),c&&c.forEach(e=>e(r)),t)return t(r)},b=setTimeout(l.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=l.bind(null,s.onerror),s.onload=l.bind(null,s.onload),i&&document.head.appendChild(s)}})(),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:e=>e},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("nextjs#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="/_next/",(()=>{var e={5687:0,6317:0,6714:0,5545:0,1137:0};r.f.j=(t,a)=>{var c=r.o(e,t)?e[t]:void 0;if(0!==c)if(c)a.push(c[2]);else if(/^((113|568|631)7|5545|6714)$/.test(t))e[t]=0;else{var n=new Promise((r,a)=>c=e[t]=[r,a]);a.push(c[2]=n);var o=r.p+r.u(t),s=Error();r.l(o,a=>{if(r.o(e,t)&&(0!==(c=e[t])&&(e[t]=void 0),c)){var n=a&&("load"===a.type?"missing":a.type),o=a&&a.target&&a.target.src;s.message="Loading chunk "+t+" failed.\n("+n+": "+o+")",s.name="ChunkLoadError",s.type=n,s.request=o,c[1](s)}},"chunk-"+t,t)}},r.O.j=t=>0===e[t];var t=(t,a)=>{var c,n,[o,s,i]=a,d=0;if(o.some(t=>0!==e[t])){for(c in s)r.o(s,c)&&(r.m[c]=s[c]);if(i)var u=i(r)}for(t&&t(a);d<o.length;d++)n=o[d],r.o(e,n)&&e[n]&&e[n][0](),e[n]=0;return r.O(u)},a=self.webpackChunk_N_E=self.webpackChunk_N_E||[];a.forEach(t.bind(null,0)),a.push=t.bind(null,a.push.bind(a))})()})();
1
+ (()=>{"use strict";var e={},t={};function r(a){var c=t[a];if(void 0!==c)return c.exports;var n=t[a]={exports:{}},o=!0;try{e[a].call(n.exports,n,n.exports,r),o=!1}finally{o&&delete t[a]}return n.exports}r.m=e,(()=>{var e=[];r.O=(t,a,c,n)=>{if(a){n=n||0;for(var o=e.length;o>0&&e[o-1][2]>n;o--)e[o]=e[o-1];e[o]=[a,c,n];return}for(var s=1/0,o=0;o<e.length;o++){for(var[a,c,n]=e[o],i=!0,f=0;f<a.length;f++)(!1&n||s>=n)&&Object.keys(r.O).every(e=>r.O[e](a[f]))?a.splice(f--,1):(i=!1,n<s&&(s=n));if(i){e.splice(o--,1);var u=c();void 0!==u&&(t=u)}}return t}})(),r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;r.t=function(a,c){if(1&c&&(a=this(a)),8&c||"object"==typeof a&&a&&(4&c&&a.__esModule||16&c&&"function"==typeof a.then))return a;var n=Object.create(null);r.r(n);var o={};e=e||[null,t({}),t([]),t(t)];for(var s=2&c&&a;"object"==typeof s&&!~e.indexOf(s);s=t(s))Object.getOwnPropertyNames(s).forEach(e=>o[e]=()=>a[e]);return o.default=()=>a,r.d(n,o),n}})(),r.d=(e,t)=>{for(var a in t)r.o(t,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,a)=>(r.f[a](e,t),t),[])),r.u=e=>1646===e?"static/chunks/1646.a93085a0445ba909.js":5139===e?"static/chunks/5139.e4ff9cc3669129ed.js":3781===e?"static/chunks/3781.5086bce03aa281f7.js":4167===e?"static/chunks/4167.2ce97ca450815df1.js":8529===e?"static/chunks/8529.6187e01de8e9a692.js":1576===e?"static/chunks/1576.06797b29a19fa26c.js":9140===e?"static/chunks/9140.9180b569c4b26168.js":3776===e?"static/chunks/3776.72638b35ce9bb874.js":361===e?"static/chunks/361.c88d43436e974006.js":4965===e?"static/chunks/4965.d401547984d71b7a.js":3910===e?"static/chunks/3910.5c6885d7a5bd753e.js":8198===e?"static/chunks/8198.a9cc35771b354b03.js":"static/chunks/"+e+"-"+({155:"12f2a537db5dacec",760:"2ad13a61701630da",981:"dd289e60d81da0d1",1871:"dd8c10ed9d37100b",1983:"242862b3dc022a26",2005:"f9d38c39f10c321f",3272:"42d1acae08d1ef0a",3392:"6dd9ad3be66a7ce9",3816:"807978463638bb71",4122:"d82fad8d1fca26d6",4754:"5c62bb61142f82d1",5954:"dd2b25224f389fc0",5962:"8c59d06b3ee1c42a",7758:"42ab0b9cce1dc0e3",9562:"5494feecd8c6f7a3"})[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={},t="_N_E:";r.l=(a,c,n,o)=>{if(e[a])return void e[a].push(c);if(void 0!==n)for(var s,i,f=document.getElementsByTagName("script"),u=0;u<f.length;u++){var d=f[u];if(d.getAttribute("src")==a||d.getAttribute("data-webpack")==t+n){s=d;break}}s||(i=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,r.nc&&s.setAttribute("nonce",r.nc),s.setAttribute("data-webpack",t+n),s.src=r.tu(a)),e[a]=[c];var l=(t,r)=>{s.onerror=s.onload=null,clearTimeout(b);var c=e[a];if(delete e[a],s.parentNode&&s.parentNode.removeChild(s),c&&c.forEach(e=>e(r)),t)return t(r)},b=setTimeout(l.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=l.bind(null,s.onerror),s.onload=l.bind(null,s.onload),i&&document.head.appendChild(s)}})(),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:e=>e},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("nextjs#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="/_next/",(()=>{var e={5687:0,6317:0,6714:0,5545:0,1137:0};r.f.j=(t,a)=>{var c=r.o(e,t)?e[t]:void 0;if(0!==c)if(c)a.push(c[2]);else if(/^((113|568|631)7|5545|6714)$/.test(t))e[t]=0;else{var n=new Promise((r,a)=>c=e[t]=[r,a]);a.push(c[2]=n);var o=r.p+r.u(t),s=Error();r.l(o,a=>{if(r.o(e,t)&&(0!==(c=e[t])&&(e[t]=void 0),c)){var n=a&&("load"===a.type?"missing":a.type),o=a&&a.target&&a.target.src;s.message="Loading chunk "+t+" failed.\n("+n+": "+o+")",s.name="ChunkLoadError",s.type=n,s.request=o,c[1](s)}},"chunk-"+t,t)}},r.O.j=t=>0===e[t];var t=(t,a)=>{var c,n,[o,s,i]=a,f=0;if(o.some(t=>0!==e[t])){for(c in s)r.o(s,c)&&(r.m[c]=s[c]);if(i)var u=i(r)}for(t&&t(a);f<o.length;f++)n=o[f],r.o(e,n)&&e[n]&&e[n][0](),e[n]=0;return r.O(u)},a=self.webpackChunk_N_E=self.webpackChunk_N_E||[];a.forEach(t.bind(null,0)),a.push=t.bind(null,a.push.bind(a))})()})();
@@ -1 +1 @@
1
- :root{color-scheme:light;--background:#f5f7ff;--foreground:#151726;--paper-background:#ffffff;--surface-raised:#ffffff;--surface-glass:rgba(255,255,255,0.78);--surface-glass-strong:rgba(255,255,255,0.92);--text-secondary:#626b84;--border:rgba(32,39,66,0.12);--border-strong:rgba(32,39,66,0.2);--accent:#6657f5;--accent-secondary:#16b8d8;--accent-soft:rgba(102,87,245,0.12);--focus-ring:rgba(102,87,245,0.28);--shadow-soft:0 18px 60px rgba(66,60,120,0.12);--shadow-lifted:0 28px 80px rgba(50,45,104,0.18);--app-bar-height:72px;--subnav-height:44px;--active-subnav-height:0px}:root.dark-theme{color-scheme:dark;--background:#070912;--foreground:#f4f6ff;--paper-background:#12182c;--surface-raised:#1c243b;--surface-glass:rgba(13,17,31,0.76);--surface-glass-strong:rgba(13,17,31,0.94);--text-secondary:#aab2c8;--border:rgba(153,166,205,0.16);--border-strong:rgba(153,166,205,0.28);--accent:#8b7cff;--accent-secondary:#31d2ed;--accent-soft:rgba(139,124,255,0.14);--focus-ring:rgba(139,124,255,0.34);--shadow-soft:0 22px 70px rgba(0,0,0,0.34);--shadow-lifted:0 34px 100px rgba(0,0,0,0.5)}:root.legacy-theme{--background:#ffffff;--foreground:#2c3e50;--paper-background:#f5f6fa;--surface-raised:#ffffff;--surface-glass:#f5f6fa;--surface-glass-strong:#ffffff;--text-secondary:#7f8c8d;--border:#e5e7eb;--border-strong:#d1d5db;--accent:#007bff;--accent-secondary:#6c757d;--accent-soft:rgba(0,123,255,0.1);--focus-ring:rgba(0,123,255,0.26);--shadow-soft:0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -1px rgba(0,0,0,0.06);--shadow-lifted:0 10px 24px rgba(0,0,0,0.14)}:root.legacy-theme.dark-theme{--background:#0f1319;--foreground:#eef1f5;--paper-background:#1a212b;--surface-raised:#242d3a;--surface-glass:#1a212b;--surface-glass-strong:#242d3a;--text-secondary:#b4bdca;--border:#37404e;--border-strong:#4b5563;--accent:#4f93f5;--accent-secondary:#a3adba;--accent-soft:rgba(79,147,245,0.12);--focus-ring:rgba(79,147,245,0.3);--shadow-soft:0 4px 6px -1px rgba(0,0,0,0.4),0 2px 4px -1px rgba(0,0,0,0.3);--shadow-lifted:0 12px 28px rgba(0,0,0,0.42)}*,:after,:before{box-sizing:border-box}html{min-width:320px;min-height:100%;background:var(--background);scroll-behavior:smooth}body{min-height:100dvh;margin:0;padding:0;color:var(--foreground);background:radial-gradient(circle at 8% -10%,rgba(102,87,245,.14),transparent 34rem),radial-gradient(circle at 96% 8%,rgba(22,184,216,.1),transparent 28rem),var(--background);font-family:var(--font-geist-sans),Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;line-height:1.5;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;isolation:isolate}body:before{z-index:-2;inset:-25vh -18vw auto;height:70vh;opacity:.72;filter:blur(80px);background:radial-gradient(circle at 32% 46%,rgba(121,92,255,.24),transparent 23%),radial-gradient(circle at 64% 26%,rgba(46,207,232,.16),transparent 22%),radial-gradient(circle at 78% 62%,rgba(244,98,177,.11),transparent 20%);transform:translateZ(0);animation:ambient-drift 22s ease-in-out infinite alternate}body:after,body:before{position:fixed;content:"";pointer-events:none}body:after{z-index:-1;inset:0;opacity:.2;background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.72),transparent 68%);mask-image:linear-gradient(180deg,rgba(0,0,0,.72),transparent 68%)}:root.legacy-theme body{background:var(--background)}:root.legacy-theme body:after,:root.legacy-theme body:before{display:none}button,input,select,textarea{font:inherit}a{color:inherit}::-moz-selection{color:#fff;background:rgba(102,87,245,.82)}::selection{color:#fff;background:rgba(102,87,245,.82)}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}*{scrollbar-color:color-mix(in srgb,var(--text-secondary) 45%,transparent) transparent;scrollbar-width:thin}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{border:3px solid transparent;border-radius:999px;background:color-mix(in srgb,var(--text-secondary) 42%,transparent);background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--text-secondary) 65%,transparent);background-clip:padding-box}.app-shell{position:relative;min-height:100dvh}.skip-link{position:fixed;z-index:9999;top:10px;left:12px;padding:10px 14px;border:1px solid var(--border-strong);border-radius:10px;color:var(--foreground);background:var(--surface-raised);box-shadow:var(--shadow-soft);text-decoration:none;transform:translateY(-160%);transition:transform .15s ease}.skip-link:focus{transform:translateY(0)}.app-main{position:relative;z-index:0;min-height:calc(100dvh - var(--app-bar-height) - var(--active-subnav-height))}.app-loading{display:grid;min-height:100dvh;place-items:center;color:var(--foreground);background:var(--background)}.app-loading__content{display:flex;flex-direction:column;align-items:center;gap:18px;font-size:.78rem;font-weight:650;letter-spacing:.16em;text-transform:uppercase}.app-loading__mark{position:relative;display:grid;width:54px;height:54px;place-items:center;overflow:hidden;border:1px solid var(--border-strong);border-radius:18px;color:#fff;background:linear-gradient(145deg,#8d7dff,#5042df 48%,#16b8d8);box-shadow:0 18px 50px rgba(102,87,245,.38);animation:loading-float 1.8s ease-in-out infinite}.app-loading__mark:after{position:absolute;inset:-40%;content:"";background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.65),transparent 62%);transform:translateX(-80%) rotate(12deg);animation:loading-shine 1.8s ease-in-out infinite}.app-loading__mark span{z-index:1;font-size:1.05rem;font-weight:850;letter-spacing:-.04em}.premium-page{width:min(100%,1440px);margin-inline:auto;padding:clamp(20px,3vw,42px)}.premium-surface{border:1px solid var(--border);background:var(--surface-glass);box-shadow:var(--shadow-soft);backdrop-filter:blur(22px) saturate(140%)}.premium-eyebrow{color:var(--accent);font-size:.72rem;font-weight:760;letter-spacing:.15em;text-transform:uppercase}.stagger-in{animation:reveal-up .62s cubic-bezier(.2,.75,.2,1) both}.stagger-in:nth-child(2){animation-delay:70ms}.stagger-in:nth-child(3){animation-delay:.14s}.stagger-in:nth-child(4){animation-delay:.21s}:root.legacy-theme .premium-surface{background:var(--paper-background);box-shadow:var(--shadow-soft);backdrop-filter:none}:root.legacy-theme .stagger-in{animation:none}:root.legacy-theme .app-loading__mark{border-radius:8px;background:var(--accent);box-shadow:var(--shadow-soft);animation:none}:root.legacy-theme .app-loading__mark:after{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}@keyframes ambient-drift{0%{transform:translate3d(-2%,-1%,0) scale(.98)}to{transform:translate3d(3%,4%,0) scale(1.08)}}@keyframes loading-float{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-6px) rotate(2deg)}}@keyframes loading-shine{0%,28%{transform:translateX(-90%) rotate(12deg)}72%,to{transform:translateX(90%) rotate(12deg)}}@keyframes reveal-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media (max-width:1199px){:root{--app-bar-height:64px}}@media (min-width:900px){:root.has-app-subnav{--active-subnav-height:var(--subnav-height)}}@media (max-width:599px){body:after{background-size:32px 32px}.premium-page{padding:18px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.living-watershed{z-index:0;inset:0;overflow:hidden}.living-watershed,.living-watershed__location{display:none;position:fixed;pointer-events:none}:root.modern-theme.living-world-active{--living-world-accent:var(--river-scene-accent,var(--accent-secondary));--living-world-glass:rgba(250,252,255,0.72);--living-world-glass-strong:rgba(250,252,255,0.88);--living-world-line:color-mix(in srgb,var(--living-world-accent) 44%,var(--border))}:root.modern-theme.living-world-active body{background:var(--background)}:root.modern-theme.living-world-active body:after,:root.modern-theme.living-world-active body:before{opacity:0;animation:none}:root.modern-theme.living-world-active .app-shell{isolation:isolate}:root.modern-theme.living-world-active .living-watershed{display:block;position:fixed;z-index:0;inset:0;contain:strict;overflow:hidden;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}:root.modern-theme.living-world-active .living-watershed__canvas{position:absolute;inset:0;display:block;width:100%;height:100%;opacity:.96;pointer-events:none}:root.modern-theme.living-world-active .living-watershed__atmosphere,:root.modern-theme.living-world-active .living-watershed__caustics{position:absolute;inset:-8%;pointer-events:none;transform:translateZ(0)}:root.modern-theme.living-world-active .living-watershed__atmosphere{opacity:.72;background:radial-gradient(circle at 20% 14%,color-mix(in srgb,var(--living-world-accent) 17%,transparent),transparent 28%),radial-gradient(circle at 82% 22%,rgba(255,255,255,.36),transparent 24%),linear-gradient(180deg,rgba(255,255,255,.12),transparent 46%,rgba(83,207,216,.06));background-size:115% 115%,108% 108%,100% 100%;filter:blur(24px) saturate(112%);animation:living-watershed-caustics 24s ease-in-out infinite alternate}:root.modern-theme.living-world-active .living-watershed__caustics{inset:10% -12% -18%;opacity:.2;background-image:repeating-radial-gradient(ellipse at 50% 45%,transparent 0 17px,rgba(255,255,255,.2) 19px,transparent 23px 42px),repeating-linear-gradient(112deg,transparent 0 76px,color-mix(in srgb,var(--living-world-accent) 18%,transparent) 82px,transparent 90px 158px);background-size:270px 118px,340px 190px;mix-blend-mode:screen;-webkit-mask-image:linear-gradient(180deg,transparent,#000 28%,#000 78%,transparent);mask-image:linear-gradient(180deg,transparent,#000 28%,#000 78%,transparent);animation:living-watershed-caustics 18s linear infinite alternate}:root.modern-theme.living-world-active .app-main{z-index:1}:root.modern-theme.living-world-active [data-app-navigation]{border-bottom-color:color-mix(in srgb,var(--living-world-line) 74%,transparent);background-color:var(--living-world-glass);background-image:linear-gradient(180deg,rgba(255,255,255,.2),transparent 72%),linear-gradient(90deg,color-mix(in srgb,var(--living-world-accent) 7%,transparent),transparent 42%);box-shadow:0 14px 46px rgba(47,72,100,.08);backdrop-filter:blur(26px) saturate(148%)}:root.modern-theme.living-world-active .living-watershed-brand{position:relative}:root.modern-theme.living-world-active .living-watershed-brand:after{position:absolute;right:4px;bottom:-6px;left:4px;height:2px;border-radius:999px;content:"";pointer-events:none;opacity:0;background:linear-gradient(90deg,transparent,var(--living-world-accent),transparent);transform:scaleX(.35);transition:opacity .22s ease,transform .32s cubic-bezier(.22,1,.36,1)}:root.modern-theme.living-world-active .living-watershed-brand:focus-visible:after,:root.modern-theme.living-world-active .living-watershed-brand:hover:after{opacity:.78;transform:scaleX(1)}:root.modern-theme.living-world-active .living-watershed-brand-mark{background-size:180% 180%;animation:living-watershed-current 9s ease-in-out infinite alternate;transition:filter .22s ease,box-shadow .22s ease,transform .22s ease}:root.modern-theme.living-world-active .living-watershed-brand:focus-visible .living-watershed-brand-mark,:root.modern-theme.living-world-active .living-watershed-brand:hover .living-watershed-brand-mark{filter:brightness(1.08) saturate(1.12);box-shadow:0 12px 32px color-mix(in srgb,var(--living-world-accent) 34%,transparent),0 0 0 1px color-mix(in srgb,var(--living-world-accent) 24%,transparent)}:root.modern-theme.living-world-active .living-watershed-nav-link{transition-property:color,background-color,border-color,box-shadow,filter,transform;transition-duration:.18s;transition-timing-function:ease}:root.modern-theme.living-world-active .living-watershed-nav-link:focus-visible,:root.modern-theme.living-world-active .living-watershed-nav-link:hover{filter:brightness(1.035) saturate(1.08)}:root.modern-theme.living-world-active .living-watershed-nav-link.is-active{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--living-world-accent) 20%,transparent),0 8px 24px color-mix(in srgb,var(--living-world-accent) 9%,transparent)}:root.modern-theme.living-world-active .living-watershed-nav-link.is-active:after{background:linear-gradient(90deg,var(--accent),var(--living-world-accent),var(--accent-secondary),var(--accent));background-size:240% 100%;animation:living-watershed-current 4.8s linear infinite}:root.modern-theme.living-world-active .living-watershed-mobile-nav-link.is-active{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--living-world-accent) 28%,transparent),0 8px 24px color-mix(in srgb,var(--living-world-accent) 10%,transparent)}:root.modern-theme.living-world-active :where(.MuiButton-root,.MuiIconButton-root){transition-property:transform,filter,box-shadow,background-color,border-color,color;transition-duration:.19s;transition-timing-function:ease}:root.modern-theme.living-world-active :where(.MuiCard-root,.premium-surface){transition-property:transform,filter,box-shadow,background-color,border-color;transition-duration:.22s;transition-timing-function:cubic-bezier(.22,1,.36,1)}:root.modern-theme.living-world-active :where(.MuiButton-root,.MuiIconButton-root):not(.Mui-disabled):hover,:root.modern-theme.living-world-active :where(.MuiCard-root,.premium-surface):hover{filter:brightness(1.018) saturate(1.045)}:root.modern-theme.living-world-active .premium-surface:hover{box-shadow:var(--shadow-soft),0 0 0 1px color-mix(in srgb,var(--living-world-accent) 14%,transparent)}:root.modern-theme.living-world-active .living-watershed__location{position:fixed;z-index:1200;top:calc((var(--app-bar-height) - 60px) / 2);right:clamp(300px,18vw,340px);bottom:auto;display:grid;grid-template-columns:42px minmax(0,auto) auto;align-items:center;grid-gap:12px;gap:12px;max-width:min(520px,calc(100vw - 40px));padding:10px 12px;border:1px solid var(--living-world-line);border-radius:18px;color:var(--foreground);background:var(--living-world-glass-strong);box-shadow:0 18px 54px rgba(37,66,91,.16),inset 0 1px 0 rgba(255,255,255,.38);backdrop-filter:blur(24px) saturate(150%);pointer-events:none;animation:living-watershed-location-arrival .52s cubic-bezier(.22,1,.36,1) both;transition:border-color .26s ease,box-shadow .26s ease,background-color .26s ease}:root.modern-theme.living-world-active .living-watershed__location.is-travelling{border-color:color-mix(in srgb,var(--living-world-accent) 66%,transparent);box-shadow:0 20px 62px color-mix(in srgb,var(--living-world-accent) 22%,rgba(37,66,91,.12)),inset 0 1px 0 rgba(255,255,255,.44)}:root.modern-theme.living-world-active .living-watershed__location-orbit{position:relative;display:grid;width:38px;height:38px;place-items:center;border:1px solid color-mix(in srgb,var(--living-world-accent) 58%,transparent);border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--living-world-accent) 25%,transparent),transparent 62%);animation:living-watershed-orbit 9s linear infinite}:root.modern-theme.living-world-active .living-watershed__location-orbit:before{position:absolute;top:3px;left:50%;width:6px;height:6px;border-radius:50%;content:"";background:var(--living-world-accent);box-shadow:0 0 12px var(--living-world-accent);transform:translateX(-50%)}:root.modern-theme.living-world-active .living-watershed__location-orbit:after{position:absolute;inset:8px;border:1px solid color-mix(in srgb,var(--living-world-accent) 48%,transparent);border-radius:50%;content:"";animation:living-watershed-ripple 2.8s ease-out infinite}:root.modern-theme.living-world-active .living-watershed__location-orbit>span{width:8px;height:8px;border-radius:50%;background:var(--living-world-accent);box-shadow:0 0 16px var(--living-world-accent)}:root.modern-theme.living-world-active .living-watershed__location.is-travelling .living-watershed__location-orbit{animation-duration:1.5s}:root.modern-theme.living-world-active .living-watershed__location-copy{display:flex;min-width:0;flex-direction:column;line-height:1.16;animation:living-watershed-location-arrival .44s cubic-bezier(.22,1,.36,1) both}:root.modern-theme.living-world-active .living-watershed__location-copy>span{color:var(--text-secondary);font-size:.61rem;font-weight:760;letter-spacing:.13em;text-transform:uppercase}:root.modern-theme.living-world-active .living-watershed__location-copy>strong{overflow:hidden;margin-top:3px;font-size:.8rem;font-weight:760;letter-spacing:-.012em;text-overflow:ellipsis;white-space:nowrap}:root.modern-theme.living-world-active .living-watershed__location.is-travelling .living-watershed__location-copy>strong{color:color-mix(in srgb,var(--living-world-accent) 78%,var(--foreground))}:root.modern-theme.living-world-active .living-watershed__experimental{padding:5px 8px;border:1px solid color-mix(in srgb,var(--living-world-accent) 28%,var(--border));border-radius:999px;color:var(--text-secondary);background:color-mix(in srgb,var(--living-world-accent) 7%,transparent);font-size:.58rem;font-weight:720;letter-spacing:.06em;white-space:nowrap;text-transform:uppercase}html.modern-theme.living-world-active[data-living-scene=home] [aria-label="Getting started"]{--living-current-from:0 0;--living-current-to:0 220%;position:relative;isolation:isolate}html.modern-theme.living-world-active[data-living-scene=home] [aria-label="Getting started"]:before{position:absolute;z-index:0;top:5%;bottom:5%;left:calc(50% - 2px);width:4px;border-radius:999px;content:"";pointer-events:none;opacity:.62;background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--accent-secondary) 74%,transparent),color-mix(in srgb,var(--accent) 72%,transparent),color-mix(in srgb,var(--living-world-accent) 76%,transparent),transparent);background-size:100% 220%;filter:drop-shadow(0 0 8px color-mix(in srgb,var(--living-world-accent) 34%,transparent));animation:living-watershed-current 7.5s linear infinite}html.modern-theme.living-world-active[data-living-scene=home] [aria-label="Getting started"]>*{position:relative;z-index:1}:root.modern-theme.dark-theme.living-world-active{--living-world-glass:rgba(8,13,25,0.72);--living-world-glass-strong:rgba(10,16,30,0.88);--living-world-line:color-mix(in srgb,var(--living-world-accent) 36%,var(--border))}:root.modern-theme.dark-theme.living-world-active .living-watershed__canvas{opacity:.92}:root.modern-theme.dark-theme.living-world-active .living-watershed__atmosphere{opacity:.58;background:radial-gradient(circle at 20% 14%,color-mix(in srgb,var(--living-world-accent) 20%,transparent),transparent 30%),radial-gradient(circle at 82% 18%,rgba(76,111,164,.16),transparent 27%),linear-gradient(180deg,rgba(11,24,42,.18),transparent 46%,rgba(26,212,220,.035))}:root.modern-theme.dark-theme.living-world-active .living-watershed__caustics{opacity:.14}:root.modern-theme.dark-theme.living-world-active [data-app-navigation]{border-bottom-color:color-mix(in srgb,var(--living-world-line) 78%,transparent);background-color:var(--living-world-glass);background-image:linear-gradient(180deg,rgba(255,255,255,.035),transparent 76%),linear-gradient(90deg,color-mix(in srgb,var(--living-world-accent) 8%,transparent),transparent 42%);box-shadow:0 18px 54px rgba(0,0,0,.24)}:root.modern-theme.dark-theme.living-world-active .living-watershed__location{box-shadow:0 20px 64px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.08)}:root.modern-theme.dark-theme.living-world-active .living-watershed__location.is-travelling{box-shadow:0 22px 72px color-mix(in srgb,var(--living-world-accent) 18%,rgba(0,0,0,.38)),inset 0 1px 0 rgba(255,255,255,.1)}:root.modern-theme.dark-theme.living-world-active .premium-surface:hover{box-shadow:var(--shadow-soft),0 0 0 1px color-mix(in srgb,var(--living-world-accent) 20%,transparent),0 18px 60px color-mix(in srgb,var(--living-world-accent) 8%,transparent)}@keyframes living-watershed-current{0%{background-position:var(--living-current-from,0 50%)}to{background-position:var(--living-current-to,220% 50%)}}@keyframes living-watershed-ripple{0%{opacity:.72;transform:scale(.68)}72%,to{opacity:0;transform:scale(1.8)}}@keyframes living-watershed-orbit{to{transform:rotate(1turn)}}@keyframes living-watershed-caustics{0%{transform:translate3d(-1.2%,-.6%,0) scale(1)}to{transform:translate3d(1.4%,1%,0) scale(1.035)}}@keyframes living-watershed-location-arrival{0%{opacity:0;transform:translate3d(12px,10px,0) scale(.96)}to{opacity:1;transform:translateZ(0) scale(1)}}@media (min-width:1200px){html.modern-theme.living-world-active[data-living-scene=home] [aria-label="Getting started"]{--living-current-from:0 0;--living-current-to:220% 0}html.modern-theme.living-world-active[data-living-scene=home] [aria-label="Getting started"]:before{top:calc(50% - 2px);right:5%;bottom:auto;left:5%;width:auto;height:4px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent-secondary) 74%,transparent),color-mix(in srgb,var(--accent) 72%,transparent),color-mix(in srgb,var(--living-world-accent) 76%,transparent),transparent);background-size:220% 100%}}@media (min-width:1280px) and (max-width:1599px){:root.modern-theme.living-world-active .living-watershed__location{grid-template-columns:42px minmax(0,auto)}:root.modern-theme.living-world-active .living-watershed__experimental{display:none}}@media (max-height:620px),(max-width:1279px){:root.modern-theme.living-world-active .living-watershed__location{display:none}}@media (prefers-reduced-motion:reduce){:root.modern-theme.living-world-active .living-watershed-brand-mark,:root.modern-theme.living-world-active .living-watershed-nav-link.is-active:after,:root.modern-theme.living-world-active .living-watershed__atmosphere,:root.modern-theme.living-world-active .living-watershed__caustics,:root.modern-theme.living-world-active .living-watershed__location,:root.modern-theme.living-world-active .living-watershed__location-copy,:root.modern-theme.living-world-active .living-watershed__location-orbit,:root.modern-theme.living-world-active .living-watershed__location-orbit:after,html.modern-theme.living-world-active[data-living-scene=home] [aria-label="Getting started"]:before{animation:none!important}:root.modern-theme.living-world-active .living-watershed__atmosphere,:root.modern-theme.living-world-active .living-watershed__caustics,:root.modern-theme.living-world-active .living-watershed__location,:root.modern-theme.living-world-active .living-watershed__location-copy,:root.modern-theme.living-world-active .living-watershed__location-orbit{transform:none!important}:root.modern-theme.living-world-active .living-watershed__location-orbit:after{opacity:0}}@media print{:root.modern-theme.living-world-active .living-watershed,:root.modern-theme.living-world-active .living-watershed__canvas,:root.modern-theme.living-world-active .living-watershed__location{display:none!important}}
1
+ :root{color-scheme:light;--background:#f5f7ff;--foreground:#151726;--paper-background:#ffffff;--surface-raised:#ffffff;--surface-glass:rgba(255,255,255,0.78);--surface-glass-strong:rgba(255,255,255,0.92);--text-secondary:#626b84;--border:rgba(32,39,66,0.12);--border-strong:rgba(32,39,66,0.2);--accent:#6657f5;--accent-secondary:#16b8d8;--accent-soft:rgba(102,87,245,0.12);--focus-ring:rgba(102,87,245,0.28);--shadow-soft:0 18px 60px rgba(66,60,120,0.12);--shadow-lifted:0 28px 80px rgba(50,45,104,0.18);--app-bar-height:72px;--subnav-height:44px;--active-subnav-height:0px}:root.dark-theme{color-scheme:dark;--background:#070912;--foreground:#f4f6ff;--paper-background:#12182c;--surface-raised:#1c243b;--surface-glass:rgba(13,17,31,0.76);--surface-glass-strong:rgba(13,17,31,0.94);--text-secondary:#aab2c8;--border:rgba(153,166,205,0.16);--border-strong:rgba(153,166,205,0.28);--accent:#8b7cff;--accent-secondary:#31d2ed;--accent-soft:rgba(139,124,255,0.14);--focus-ring:rgba(139,124,255,0.34);--shadow-soft:0 22px 70px rgba(0,0,0,0.34);--shadow-lifted:0 34px 100px rgba(0,0,0,0.5)}:root.legacy-theme{--background:#ffffff;--foreground:#2c3e50;--paper-background:#f5f6fa;--surface-raised:#ffffff;--surface-glass:#f5f6fa;--surface-glass-strong:#ffffff;--text-secondary:#7f8c8d;--border:#e5e7eb;--border-strong:#d1d5db;--accent:#007bff;--accent-secondary:#6c757d;--accent-soft:rgba(0,123,255,0.1);--focus-ring:rgba(0,123,255,0.26);--shadow-soft:0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -1px rgba(0,0,0,0.06);--shadow-lifted:0 10px 24px rgba(0,0,0,0.14)}:root.legacy-theme.dark-theme{--background:#0f1319;--foreground:#eef1f5;--paper-background:#1a212b;--surface-raised:#242d3a;--surface-glass:#1a212b;--surface-glass-strong:#242d3a;--text-secondary:#b4bdca;--border:#37404e;--border-strong:#4b5563;--accent:#4f93f5;--accent-secondary:#a3adba;--accent-soft:rgba(79,147,245,0.12);--focus-ring:rgba(79,147,245,0.3);--shadow-soft:0 4px 6px -1px rgba(0,0,0,0.4),0 2px 4px -1px rgba(0,0,0,0.3);--shadow-lifted:0 12px 28px rgba(0,0,0,0.42)}*,:after,:before{box-sizing:border-box}html{min-width:320px;min-height:100%;background:var(--background);scroll-behavior:smooth}body{min-height:100dvh;margin:0;padding:0;color:var(--foreground);background:radial-gradient(circle at 8% -10%,rgba(102,87,245,.14),transparent 34rem),radial-gradient(circle at 96% 8%,rgba(22,184,216,.1),transparent 28rem),var(--background);font-family:var(--font-geist-sans),Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;line-height:1.5;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;isolation:isolate}body:before{z-index:-2;inset:-25vh -18vw auto;height:70vh;opacity:.72;filter:blur(80px);background:radial-gradient(circle at 32% 46%,rgba(121,92,255,.24),transparent 23%),radial-gradient(circle at 64% 26%,rgba(46,207,232,.16),transparent 22%),radial-gradient(circle at 78% 62%,rgba(244,98,177,.11),transparent 20%);transform:translateZ(0);animation:ambient-drift 22s ease-in-out infinite alternate}body:after,body:before{position:fixed;content:"";pointer-events:none}body:after{z-index:-1;inset:0;opacity:.2;background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.72),transparent 68%);mask-image:linear-gradient(180deg,rgba(0,0,0,.72),transparent 68%)}:root.legacy-theme body{background:var(--background)}:root.legacy-theme body:after,:root.legacy-theme body:before{display:none}button,input,select,textarea{font:inherit}a{color:inherit}::-moz-selection{color:#fff;background:rgba(102,87,245,.82)}::selection{color:#fff;background:rgba(102,87,245,.82)}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}*{scrollbar-color:color-mix(in srgb,var(--text-secondary) 45%,transparent) transparent;scrollbar-width:thin}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{border:3px solid transparent;border-radius:999px;background:color-mix(in srgb,var(--text-secondary) 42%,transparent);background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--text-secondary) 65%,transparent);background-clip:padding-box}.app-shell{position:relative;min-height:100dvh}.skip-link{position:fixed;z-index:9999;top:10px;left:12px;padding:10px 14px;border:1px solid var(--border-strong);border-radius:10px;color:var(--foreground);background:var(--surface-raised);box-shadow:var(--shadow-soft);text-decoration:none;transform:translateY(-160%);transition:transform .15s ease}.skip-link:focus{transform:translateY(0)}.app-main{position:relative;z-index:0;min-height:calc(100dvh - var(--app-bar-height) - var(--active-subnav-height))}.app-loading{display:grid;min-height:100dvh;place-items:center;color:var(--foreground);background:var(--background)}.app-loading__content{display:flex;flex-direction:column;align-items:center;gap:18px;font-size:.78rem;font-weight:650;letter-spacing:.16em;text-transform:uppercase}.app-loading__mark{position:relative;display:grid;width:54px;height:54px;place-items:center;overflow:hidden;border:1px solid var(--border-strong);border-radius:18px;color:#fff;background:linear-gradient(145deg,#8d7dff,#5042df 48%,#16b8d8);box-shadow:0 18px 50px rgba(102,87,245,.38);animation:loading-float 1.8s ease-in-out infinite}.app-loading__mark:after{position:absolute;inset:-40%;content:"";background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.65),transparent 62%);transform:translateX(-80%) rotate(12deg);animation:loading-shine 1.8s ease-in-out infinite}.app-loading__mark span{z-index:1;font-size:1.05rem;font-weight:850;letter-spacing:-.04em}.premium-page{width:min(100%,1440px);margin-inline:auto;padding:clamp(20px,3vw,42px)}.premium-surface{border:1px solid var(--border);background:var(--surface-glass);box-shadow:var(--shadow-soft);backdrop-filter:blur(22px) saturate(140%)}.premium-eyebrow{color:var(--accent);font-size:.72rem;font-weight:760;letter-spacing:.15em;text-transform:uppercase}.stagger-in{animation:reveal-up .62s cubic-bezier(.2,.75,.2,1) both}.stagger-in:nth-child(2){animation-delay:70ms}.stagger-in:nth-child(3){animation-delay:.14s}.stagger-in:nth-child(4){animation-delay:.21s}:root.legacy-theme .premium-surface{background:var(--paper-background);box-shadow:var(--shadow-soft);backdrop-filter:none}:root.legacy-theme .stagger-in{animation:none}:root.legacy-theme .app-loading__mark{border-radius:8px;background:var(--accent);box-shadow:var(--shadow-soft);animation:none}:root.legacy-theme .app-loading__mark:after{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}@keyframes ambient-drift{0%{transform:translate3d(-2%,-1%,0) scale(.98)}to{transform:translate3d(3%,4%,0) scale(1.08)}}@keyframes loading-float{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-6px) rotate(2deg)}}@keyframes loading-shine{0%,28%{transform:translateX(-90%) rotate(12deg)}72%,to{transform:translateX(90%) rotate(12deg)}}@keyframes reveal-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media (max-width:1199px){:root{--app-bar-height:64px}}@media (min-width:900px){:root.has-app-subnav{--active-subnav-height:var(--subnav-height)}}@media (max-width:599px){body:after{background-size:32px 32px}.premium-page{padding:18px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.living-watershed{z-index:0;inset:0;overflow:hidden}.living-watershed,.living-watershed__location{display:none;position:fixed;pointer-events:none}:root.modern-theme.living-world-active{--living-world-accent:var(--river-scene-accent,var(--accent-secondary));--living-world-glass:rgba(250,252,255,0.72);--living-world-glass-strong:rgba(250,252,255,0.88);--living-world-line:color-mix(in srgb,var(--living-world-accent) 44%,var(--border))}:root.modern-theme.living-world-active body{background:var(--background)}:root.modern-theme.living-world-active body:after,:root.modern-theme.living-world-active body:before{opacity:0;animation:none}:root.modern-theme.living-world-active .app-shell{isolation:isolate}:root.modern-theme.living-world-active .living-watershed{display:block;position:fixed;z-index:0;inset:0;contain:strict;overflow:hidden;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}:root.modern-theme.living-world-active .living-watershed__canvas{position:absolute;inset:0;display:block;width:100%;height:100%;opacity:.96;pointer-events:none}:root.modern-theme.living-world-active .living-watershed__atmosphere,:root.modern-theme.living-world-active .living-watershed__caustics{position:absolute;inset:-8%;pointer-events:none;transform:translateZ(0)}:root.modern-theme.living-world-active .living-watershed__atmosphere{opacity:.72;background:radial-gradient(circle at 20% 14%,color-mix(in srgb,var(--living-world-accent) 17%,transparent),transparent 28%),radial-gradient(circle at 82% 22%,rgba(255,255,255,.36),transparent 24%),linear-gradient(180deg,rgba(255,255,255,.12),transparent 46%,rgba(83,207,216,.06));background-size:115% 115%,108% 108%,100% 100%;filter:blur(24px) saturate(112%);animation:living-watershed-caustics 24s ease-in-out infinite alternate}:root.modern-theme.living-world-active .living-watershed__caustics{inset:10% -12% -18%;opacity:.2;background-image:repeating-radial-gradient(ellipse at 50% 45%,transparent 0 17px,rgba(255,255,255,.2) 19px,transparent 23px 42px),repeating-linear-gradient(112deg,transparent 0 76px,color-mix(in srgb,var(--living-world-accent) 18%,transparent) 82px,transparent 90px 158px);background-size:270px 118px,340px 190px;mix-blend-mode:screen;-webkit-mask-image:linear-gradient(180deg,transparent,#000 28%,#000 78%,transparent);mask-image:linear-gradient(180deg,transparent,#000 28%,#000 78%,transparent);animation:living-watershed-caustics 18s linear infinite alternate}:root.modern-theme.living-world-active .app-main{z-index:1}:root.modern-theme.living-world-active [data-app-navigation]{border-bottom-color:color-mix(in srgb,var(--living-world-line) 74%,transparent);background-color:var(--living-world-glass);background-image:linear-gradient(180deg,rgba(255,255,255,.2),transparent 72%),linear-gradient(90deg,color-mix(in srgb,var(--living-world-accent) 7%,transparent),transparent 42%);box-shadow:0 14px 46px rgba(47,72,100,.08);backdrop-filter:blur(26px) saturate(148%)}:root.modern-theme.living-world-active .living-watershed-brand{position:relative}:root.modern-theme.living-world-active .living-watershed-brand:after{position:absolute;right:4px;bottom:-6px;left:4px;height:2px;border-radius:999px;content:"";pointer-events:none;opacity:0;background:linear-gradient(90deg,transparent,var(--living-world-accent),transparent);transform:scaleX(.35);transition:opacity .22s ease,transform .32s cubic-bezier(.22,1,.36,1)}:root.modern-theme.living-world-active .living-watershed-brand:focus-visible:after,:root.modern-theme.living-world-active .living-watershed-brand:hover:after{opacity:.78;transform:scaleX(1)}:root.modern-theme.living-world-active .living-watershed-brand-mark{background-size:180% 180%;animation:living-watershed-current 9s ease-in-out infinite alternate;transition:filter .22s ease,box-shadow .22s ease,transform .22s ease}:root.modern-theme.living-world-active .living-watershed-brand:focus-visible .living-watershed-brand-mark,:root.modern-theme.living-world-active .living-watershed-brand:hover .living-watershed-brand-mark{filter:brightness(1.08) saturate(1.12);box-shadow:0 12px 32px color-mix(in srgb,var(--living-world-accent) 34%,transparent),0 0 0 1px color-mix(in srgb,var(--living-world-accent) 24%,transparent)}:root.modern-theme.living-world-active .living-watershed-nav-link{transition-property:color,background-color,border-color,box-shadow,filter,transform;transition-duration:.18s;transition-timing-function:ease}:root.modern-theme.living-world-active .living-watershed-nav-link:focus-visible,:root.modern-theme.living-world-active .living-watershed-nav-link:hover{filter:brightness(1.035) saturate(1.08)}:root.modern-theme.living-world-active .living-watershed-nav-link.is-active{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--living-world-accent) 20%,transparent),0 8px 24px color-mix(in srgb,var(--living-world-accent) 9%,transparent)}:root.modern-theme.living-world-active .living-watershed-nav-link.is-active:after{background:linear-gradient(90deg,var(--accent),var(--living-world-accent),var(--accent-secondary),var(--accent));background-size:240% 100%;animation:living-watershed-current 4.8s linear infinite}:root.modern-theme.living-world-active .living-watershed-mobile-nav-link.is-active{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--living-world-accent) 28%,transparent),0 8px 24px color-mix(in srgb,var(--living-world-accent) 10%,transparent)}:root.modern-theme.living-world-active :where(.MuiButton-root,.MuiIconButton-root){transition-property:transform,filter,box-shadow,background-color,border-color,color;transition-duration:.19s;transition-timing-function:ease}:root.modern-theme.living-world-active :where(.MuiCard-root,.premium-surface){transition-property:transform,filter,box-shadow,background-color,border-color;transition-duration:.22s;transition-timing-function:cubic-bezier(.22,1,.36,1)}:root.modern-theme.living-world-active :where(.MuiButton-root,.MuiIconButton-root):not(.Mui-disabled):hover,:root.modern-theme.living-world-active :where(.MuiCard-root,.premium-surface):hover{filter:brightness(1.018) saturate(1.045)}:root.modern-theme.living-world-active .premium-surface:hover{box-shadow:var(--shadow-soft),0 0 0 1px color-mix(in srgb,var(--living-world-accent) 14%,transparent)}:root.modern-theme.living-world-active .living-watershed__location{position:fixed;z-index:1200;top:calc((var(--app-bar-height) - 60px) / 2);right:clamp(300px,18vw,340px);bottom:auto;display:grid;grid-template-columns:42px minmax(0,auto) auto;align-items:center;grid-gap:12px;gap:12px;max-width:min(520px,calc(100vw - 40px));padding:10px 12px;border:1px solid var(--living-world-line);border-radius:18px;color:var(--foreground);background:var(--living-world-glass-strong);box-shadow:0 18px 54px rgba(37,66,91,.16),inset 0 1px 0 rgba(255,255,255,.38);backdrop-filter:blur(24px) saturate(150%);pointer-events:none;animation:living-watershed-location-arrival .52s cubic-bezier(.22,1,.36,1) both;transition:border-color .26s ease,box-shadow .26s ease,background-color .26s ease}:root.modern-theme.living-world-active .living-watershed__location.is-travelling{border-color:color-mix(in srgb,var(--living-world-accent) 66%,transparent);box-shadow:0 20px 62px color-mix(in srgb,var(--living-world-accent) 22%,rgba(37,66,91,.12)),inset 0 1px 0 rgba(255,255,255,.44)}:root.modern-theme.living-world-active .living-watershed__location-orbit{position:relative;display:grid;width:38px;height:38px;place-items:center;border:1px solid color-mix(in srgb,var(--living-world-accent) 58%,transparent);border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--living-world-accent) 25%,transparent),transparent 62%);animation:living-watershed-orbit 9s linear infinite}:root.modern-theme.living-world-active .living-watershed__location-orbit:before{position:absolute;top:3px;left:50%;width:6px;height:6px;border-radius:50%;content:"";background:var(--living-world-accent);box-shadow:0 0 12px var(--living-world-accent);transform:translateX(-50%)}:root.modern-theme.living-world-active .living-watershed__location-orbit:after{position:absolute;inset:8px;border:1px solid color-mix(in srgb,var(--living-world-accent) 48%,transparent);border-radius:50%;content:"";animation:living-watershed-ripple 2.8s ease-out infinite}:root.modern-theme.living-world-active .living-watershed__location-orbit>span{width:8px;height:8px;border-radius:50%;background:var(--living-world-accent);box-shadow:0 0 16px var(--living-world-accent)}:root.modern-theme.living-world-active .living-watershed__location.is-travelling .living-watershed__location-orbit{animation-duration:1.5s}:root.modern-theme.living-world-active .living-watershed__location-copy{display:flex;min-width:0;flex-direction:column;line-height:1.16;animation:living-watershed-location-arrival .44s cubic-bezier(.22,1,.36,1) both}:root.modern-theme.living-world-active .living-watershed__location-copy>span{color:var(--text-secondary);font-size:.61rem;font-weight:760;letter-spacing:.13em;text-transform:uppercase}:root.modern-theme.living-world-active .living-watershed__location-copy>strong{overflow:hidden;margin-top:3px;font-size:.8rem;font-weight:760;letter-spacing:-.012em;text-overflow:ellipsis;white-space:nowrap}:root.modern-theme.living-world-active .living-watershed__location.is-travelling .living-watershed__location-copy>strong{color:color-mix(in srgb,var(--living-world-accent) 78%,var(--foreground))}:root.modern-theme.living-world-active .living-watershed__label{padding:5px 8px;border:1px solid color-mix(in srgb,var(--living-world-accent) 28%,var(--border));border-radius:999px;color:var(--text-secondary);background:color-mix(in srgb,var(--living-world-accent) 7%,transparent);font-size:.58rem;font-weight:720;letter-spacing:.06em;white-space:nowrap;text-transform:uppercase}html.modern-theme.living-world-active[data-living-scene=home] [aria-label="Getting started"]{--living-current-from:0 0;--living-current-to:0 220%;position:relative;isolation:isolate}html.modern-theme.living-world-active[data-living-scene=home] [aria-label="Getting started"]:before{position:absolute;z-index:0;top:5%;bottom:5%;left:calc(50% - 2px);width:4px;border-radius:999px;content:"";pointer-events:none;opacity:.62;background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--accent-secondary) 74%,transparent),color-mix(in srgb,var(--accent) 72%,transparent),color-mix(in srgb,var(--living-world-accent) 76%,transparent),transparent);background-size:100% 220%;filter:drop-shadow(0 0 8px color-mix(in srgb,var(--living-world-accent) 34%,transparent));animation:living-watershed-current 7.5s linear infinite}html.modern-theme.living-world-active[data-living-scene=home] [aria-label="Getting started"]>*{position:relative;z-index:1}:root.modern-theme.dark-theme.living-world-active{--living-world-glass:rgba(8,13,25,0.72);--living-world-glass-strong:rgba(10,16,30,0.88);--living-world-line:color-mix(in srgb,var(--living-world-accent) 36%,var(--border))}:root.modern-theme.dark-theme.living-world-active .living-watershed__canvas{opacity:.92}:root.modern-theme.dark-theme.living-world-active .living-watershed__atmosphere{opacity:.58;background:radial-gradient(circle at 20% 14%,color-mix(in srgb,var(--living-world-accent) 20%,transparent),transparent 30%),radial-gradient(circle at 82% 18%,rgba(76,111,164,.16),transparent 27%),linear-gradient(180deg,rgba(11,24,42,.18),transparent 46%,rgba(26,212,220,.035))}:root.modern-theme.dark-theme.living-world-active .living-watershed__caustics{opacity:.14}:root.modern-theme.dark-theme.living-world-active [data-app-navigation]{border-bottom-color:color-mix(in srgb,var(--living-world-line) 78%,transparent);background-color:var(--living-world-glass);background-image:linear-gradient(180deg,rgba(255,255,255,.035),transparent 76%),linear-gradient(90deg,color-mix(in srgb,var(--living-world-accent) 8%,transparent),transparent 42%);box-shadow:0 18px 54px rgba(0,0,0,.24)}:root.modern-theme.dark-theme.living-world-active .living-watershed__location{box-shadow:0 20px 64px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.08)}:root.modern-theme.dark-theme.living-world-active .living-watershed__location.is-travelling{box-shadow:0 22px 72px color-mix(in srgb,var(--living-world-accent) 18%,rgba(0,0,0,.38)),inset 0 1px 0 rgba(255,255,255,.1)}:root.modern-theme.dark-theme.living-world-active .premium-surface:hover{box-shadow:var(--shadow-soft),0 0 0 1px color-mix(in srgb,var(--living-world-accent) 20%,transparent),0 18px 60px color-mix(in srgb,var(--living-world-accent) 8%,transparent)}@keyframes living-watershed-current{0%{background-position:var(--living-current-from,0 50%)}to{background-position:var(--living-current-to,220% 50%)}}@keyframes living-watershed-ripple{0%{opacity:.72;transform:scale(.68)}72%,to{opacity:0;transform:scale(1.8)}}@keyframes living-watershed-orbit{to{transform:rotate(1turn)}}@keyframes living-watershed-caustics{0%{transform:translate3d(-1.2%,-.6%,0) scale(1)}to{transform:translate3d(1.4%,1%,0) scale(1.035)}}@keyframes living-watershed-location-arrival{0%{opacity:0;transform:translate3d(12px,10px,0) scale(.96)}to{opacity:1;transform:translateZ(0) scale(1)}}@media (min-width:1200px){html.modern-theme.living-world-active[data-living-scene=home] [aria-label="Getting started"]{--living-current-from:0 0;--living-current-to:220% 0}html.modern-theme.living-world-active[data-living-scene=home] [aria-label="Getting started"]:before{top:calc(50% - 2px);right:5%;bottom:auto;left:5%;width:auto;height:4px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent-secondary) 74%,transparent),color-mix(in srgb,var(--accent) 72%,transparent),color-mix(in srgb,var(--living-world-accent) 76%,transparent),transparent);background-size:220% 100%}}@media (min-width:1280px) and (max-width:1599px){:root.modern-theme.living-world-active .living-watershed__location{grid-template-columns:42px minmax(0,auto)}:root.modern-theme.living-world-active .living-watershed__label{display:none}}@media (max-height:620px),(max-width:1279px){:root.modern-theme.living-world-active .living-watershed__location{display:none}}@media (prefers-reduced-motion:reduce){:root.modern-theme.living-world-active .living-watershed-brand-mark,:root.modern-theme.living-world-active .living-watershed-nav-link.is-active:after,:root.modern-theme.living-world-active .living-watershed__atmosphere,:root.modern-theme.living-world-active .living-watershed__caustics,:root.modern-theme.living-world-active .living-watershed__location,:root.modern-theme.living-world-active .living-watershed__location-copy,:root.modern-theme.living-world-active .living-watershed__location-orbit,:root.modern-theme.living-world-active .living-watershed__location-orbit:after,html.modern-theme.living-world-active[data-living-scene=home] [aria-label="Getting started"]:before{animation:none!important}:root.modern-theme.living-world-active .living-watershed__atmosphere,:root.modern-theme.living-world-active .living-watershed__caustics,:root.modern-theme.living-world-active .living-watershed__location,:root.modern-theme.living-world-active .living-watershed__location-copy,:root.modern-theme.living-world-active .living-watershed__location-orbit{transform:none!important}:root.modern-theme.living-world-active .living-watershed__location-orbit:after{opacity:0}}@media print{:root.modern-theme.living-world-active .living-watershed,:root.modern-theme.living-world-active .living-watershed__canvas,:root.modern-theme.living-world-active .living-watershed__location{display:none!important}}