flujo-ai 3.24.0 → 3.26.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 (363) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +233 -217
  3. package/.next/app-path-routes-manifest.json +8 -8
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/react-loadable-manifest.json +25 -20
  6. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  7. package/.next/server/app/_not-found.html +1 -1
  8. package/.next/server/app/_not-found.rsc +3 -3
  9. package/.next/server/app/api/approvals/[id]/route.js +1 -1
  10. package/.next/server/app/api/approvals/[id]/route.js.nft.json +1 -1
  11. package/.next/server/app/api/approvals/[id]/route_client-reference-manifest.js +1 -1
  12. package/.next/server/app/api/approvals/route.js.nft.json +1 -1
  13. package/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/backup/route.js +1 -1
  15. package/.next/server/app/api/backup/route.js.nft.json +1 -1
  16. package/.next/server/app/api/backup/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/browse/route.js +1 -1
  18. package/.next/server/app/api/browse/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/bugs/enhance/route.js +1 -1
  20. package/.next/server/app/api/bugs/enhance/route.js.nft.json +1 -1
  21. package/.next/server/app/api/bugs/enhance/route_client-reference-manifest.js +1 -1
  22. package/.next/server/app/api/cwd/route.js +1 -1
  23. package/.next/server/app/api/cwd/route_client-reference-manifest.js +1 -1
  24. package/.next/server/app/api/encryption/secure/route.js +1 -1
  25. package/.next/server/app/api/encryption/secure/route.js.nft.json +1 -1
  26. package/.next/server/app/api/encryption/secure/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/env/route.js +1 -1
  28. package/.next/server/app/api/env/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/flow/[id]/route.js.nft.json +1 -1
  30. package/.next/server/app/api/flow/[id]/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/flow/compile/route.js.nft.json +1 -1
  32. package/.next/server/app/api/flow/compile/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/flow/generate/route.js.nft.json +1 -1
  34. package/.next/server/app/api/flow/generate/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/flow/improve/route.js.nft.json +1 -1
  36. package/.next/server/app/api/flow/improve/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/flow/prompt-renderer/route.js.nft.json +1 -1
  38. package/.next/server/app/api/flow/prompt-renderer/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/flow/quick-chat/route.js.nft.json +1 -1
  40. package/.next/server/app/api/flow/quick-chat/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/flow/repair/route.js.nft.json +1 -1
  42. package/.next/server/app/api/flow/repair/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/flow/route.js.nft.json +1 -1
  44. package/.next/server/app/api/flow/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/git/route.js +1 -1
  46. package/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/init/route.js.nft.json +1 -1
  48. package/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  49. package/.next/server/app/api/local-models/capability/route_client-reference-manifest.js +1 -1
  50. package/.next/server/app/api/local-models/pull/route_client-reference-manifest.js +1 -1
  51. package/.next/server/app/api/local-models/suggest/route_client-reference-manifest.js +1 -1
  52. package/.next/server/app/api/mcp/cancel/route.js.nft.json +1 -1
  53. package/.next/server/app/api/mcp/cancel/route_client-reference-manifest.js +1 -1
  54. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js.nft.json +1 -1
  55. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route_client-reference-manifest.js +1 -1
  56. package/.next/server/app/api/mcp/servers/[name]/prompts/route.js.nft.json +1 -1
  57. package/.next/server/app/api/mcp/servers/[name]/prompts/route_client-reference-manifest.js +1 -1
  58. package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js.nft.json +1 -1
  59. package/.next/server/app/api/mcp/servers/[name]/resources/read/route_client-reference-manifest.js +1 -1
  60. package/.next/server/app/api/mcp/servers/[name]/resources/route.js.nft.json +1 -1
  61. package/.next/server/app/api/mcp/servers/[name]/resources/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/mcp/servers/[name]/route.js +1 -1
  63. package/.next/server/app/api/mcp/servers/[name]/route.js.nft.json +1 -1
  64. package/.next/server/app/api/mcp/servers/[name]/route_client-reference-manifest.js +1 -1
  65. package/.next/server/app/api/mcp/servers/[name]/status/route.js.nft.json +1 -1
  66. package/.next/server/app/api/mcp/servers/[name]/status/route_client-reference-manifest.js +1 -1
  67. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js.nft.json +1 -1
  68. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route_client-reference-manifest.js +1 -1
  69. package/.next/server/app/api/mcp/servers/[name]/tools/route.js.nft.json +1 -1
  70. package/.next/server/app/api/mcp/servers/[name]/tools/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/mcp/servers/route.js +1 -1
  72. package/.next/server/app/api/mcp/servers/route.js.nft.json +1 -1
  73. package/.next/server/app/api/mcp/servers/route_client-reference-manifest.js +1 -1
  74. package/.next/server/app/api/mcp/test-connection/route.js +1 -1
  75. package/.next/server/app/api/mcp/test-connection/route.js.nft.json +1 -1
  76. package/.next/server/app/api/mcp/test-connection/route_client-reference-manifest.js +1 -1
  77. package/.next/server/app/api/mcp/test-connection/stream/route.js +1 -1
  78. package/.next/server/app/api/mcp/test-connection/stream/route.js.nft.json +1 -1
  79. package/.next/server/app/api/mcp/test-connection/stream/route_client-reference-manifest.js +1 -1
  80. package/.next/server/app/api/mcp-registry/route.js.nft.json +1 -1
  81. package/.next/server/app/api/mcp-registry/route_client-reference-manifest.js +1 -1
  82. package/.next/server/app/api/mcp-registry/spotlight/route_client-reference-manifest.js +1 -1
  83. package/.next/server/app/api/model/[id]/route.js.nft.json +1 -1
  84. package/.next/server/app/api/model/[id]/route_client-reference-manifest.js +1 -1
  85. package/.next/server/app/api/model/provider/route.js.nft.json +1 -1
  86. package/.next/server/app/api/model/provider/route_client-reference-manifest.js +1 -1
  87. package/.next/server/app/api/model/route.js.nft.json +1 -1
  88. package/.next/server/app/api/model/route_client-reference-manifest.js +1 -1
  89. package/.next/server/app/api/model/test/route.js.nft.json +1 -1
  90. package/.next/server/app/api/model/test/route_client-reference-manifest.js +1 -1
  91. package/.next/server/app/api/oauth/callback/route_client-reference-manifest.js +1 -1
  92. package/.next/server/app/api/oauth/initiate/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/oauth/reset/route.js.nft.json +1 -1
  94. package/.next/server/app/api/oauth/reset/route_client-reference-manifest.js +1 -1
  95. package/.next/server/app/api/planned-executions/[id]/route.js.nft.json +1 -1
  96. package/.next/server/app/api/planned-executions/[id]/route_client-reference-manifest.js +1 -1
  97. package/.next/server/app/api/planned-executions/[id]/run/route.js.nft.json +1 -1
  98. package/.next/server/app/api/planned-executions/[id]/run/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/planned-executions/[id]/runs/route.js.nft.json +1 -1
  100. package/.next/server/app/api/planned-executions/[id]/runs/route_client-reference-manifest.js +1 -1
  101. package/.next/server/app/api/planned-executions/preview-schedule/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/planned-executions/reconcile/route.js.nft.json +1 -1
  103. package/.next/server/app/api/planned-executions/reconcile/route_client-reference-manifest.js +1 -1
  104. package/.next/server/app/api/planned-executions/route.js.nft.json +1 -1
  105. package/.next/server/app/api/planned-executions/route_client-reference-manifest.js +1 -1
  106. package/.next/server/app/api/restore/route.js +1 -1
  107. package/.next/server/app/api/restore/route.js.nft.json +1 -1
  108. package/.next/server/app/api/restore/route_client-reference-manifest.js +1 -1
  109. package/.next/server/app/api/runs/active/route.js.nft.json +1 -1
  110. package/.next/server/app/api/runs/active/route_client-reference-manifest.js +1 -1
  111. package/.next/server/app/api/storage/route_client-reference-manifest.js +1 -1
  112. package/.next/server/app/api/update/route.js +1 -1
  113. package/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  114. package/.next/server/app/api/waves/route.js +1 -1
  115. package/.next/server/app/api/waves/route.js.nft.json +1 -1
  116. package/.next/server/app/api/waves/route_client-reference-manifest.js +1 -1
  117. package/.next/server/app/api/webhooks/[id]/route.js +1 -1
  118. package/.next/server/app/api/webhooks/[id]/route.js.nft.json +1 -1
  119. package/.next/server/app/api/webhooks/[id]/route_client-reference-manifest.js +1 -1
  120. package/.next/server/app/chat/page.js +9 -9
  121. package/.next/server/app/chat/page.js.nft.json +1 -1
  122. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  123. package/.next/server/app/chat.html +1 -1
  124. package/.next/server/app/chat.rsc +4 -4
  125. package/.next/server/app/docs/page.js +11 -8
  126. package/.next/server/app/docs/page.js.nft.json +1 -1
  127. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  128. package/.next/server/app/docs.html +1 -1
  129. package/.next/server/app/docs.rsc +4 -4
  130. package/.next/server/app/executions/page.js +3 -3
  131. package/.next/server/app/executions/page.js.nft.json +1 -1
  132. package/.next/server/app/executions/page_client-reference-manifest.js +1 -1
  133. package/.next/server/app/executions.html +1 -1
  134. package/.next/server/app/executions.rsc +4 -4
  135. package/.next/server/app/flows/page.js +3 -3
  136. package/.next/server/app/flows/page.js.nft.json +1 -1
  137. package/.next/server/app/flows/page_client-reference-manifest.js +1 -1
  138. package/.next/server/app/flows.html +1 -1
  139. package/.next/server/app/flows.rsc +4 -4
  140. package/.next/server/app/index.html +1 -1
  141. package/.next/server/app/index.rsc +4 -4
  142. package/.next/server/app/mcp/page.js +5 -5
  143. package/.next/server/app/mcp/page.js.nft.json +1 -1
  144. package/.next/server/app/mcp/page_client-reference-manifest.js +1 -1
  145. package/.next/server/app/mcp-flows/route.js +1 -1
  146. package/.next/server/app/mcp-flows/route.js.nft.json +1 -1
  147. package/.next/server/app/mcp-flows/route_client-reference-manifest.js +1 -1
  148. package/.next/server/app/mcp-proxy/[server]/route.js +1 -1
  149. package/.next/server/app/mcp-proxy/[server]/route.js.nft.json +1 -1
  150. package/.next/server/app/mcp-proxy/[server]/route_client-reference-manifest.js +1 -1
  151. package/.next/server/app/mcp.html +1 -1
  152. package/.next/server/app/mcp.rsc +4 -4
  153. package/.next/server/app/models/page.js +2 -2
  154. package/.next/server/app/models/page.js.nft.json +1 -1
  155. package/.next/server/app/models/page_client-reference-manifest.js +1 -1
  156. package/.next/server/app/page.js +2 -2
  157. package/.next/server/app/page_client-reference-manifest.js +1 -1
  158. package/.next/server/app/settings/page.js +2 -57
  159. package/.next/server/app/settings/page.js.nft.json +1 -1
  160. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  161. package/.next/server/app/settings.html +1 -1
  162. package/.next/server/app/settings.rsc +4 -4
  163. package/.next/server/app/v1/chat/completions/route.js +1 -1
  164. package/.next/server/app/v1/chat/completions/route.js.nft.json +1 -1
  165. package/.next/server/app/v1/chat/completions/route_client-reference-manifest.js +1 -1
  166. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js +1 -1
  167. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js.nft.json +1 -1
  168. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route_client-reference-manifest.js +1 -1
  169. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js +1 -1
  170. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js.nft.json +1 -1
  171. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route_client-reference-manifest.js +1 -1
  172. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js +1 -1
  173. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js.nft.json +1 -1
  174. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route_client-reference-manifest.js +1 -1
  175. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js +1 -1
  176. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js.nft.json +1 -1
  177. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route_client-reference-manifest.js +1 -1
  178. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js +1 -1
  179. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js.nft.json +1 -1
  180. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route_client-reference-manifest.js +1 -1
  181. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js.nft.json +1 -1
  182. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route_client-reference-manifest.js +1 -1
  183. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route_client-reference-manifest.js +1 -1
  184. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js +1 -1
  185. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js.nft.json +1 -1
  186. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route_client-reference-manifest.js +1 -1
  187. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js +1 -1
  188. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js.nft.json +1 -1
  189. package/.next/server/app/v1/chat/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
  190. package/.next/server/app/v1/chat/conversations/route.js +1 -1
  191. package/.next/server/app/v1/chat/conversations/route.js.nft.json +1 -1
  192. package/.next/server/app/v1/chat/conversations/route_client-reference-manifest.js +1 -1
  193. package/.next/server/app/v1/models/route.js.nft.json +1 -1
  194. package/.next/server/app/v1/models/route_client-reference-manifest.js +1 -1
  195. package/.next/server/app/waves/page.js +3 -3
  196. package/.next/server/app/waves/page.js.nft.json +1 -1
  197. package/.next/server/app/waves/page_client-reference-manifest.js +1 -1
  198. package/.next/server/app/waves.html +1 -1
  199. package/.next/server/app/waves.rsc +4 -4
  200. package/.next/server/app-paths-manifest.json +8 -8
  201. package/.next/server/chunks/1083.js +1 -1
  202. package/.next/server/chunks/1114.js +1 -0
  203. package/.next/server/chunks/1197.js +2 -2
  204. package/.next/server/chunks/1226.js +1 -1
  205. package/.next/server/chunks/166.js +5 -0
  206. package/.next/server/chunks/2373.js +1 -0
  207. package/.next/server/chunks/2859.js +1 -3
  208. package/.next/server/chunks/289.js +1 -1
  209. package/.next/server/chunks/3030.js +1 -1
  210. package/.next/server/chunks/3298.js +2 -0
  211. package/.next/server/chunks/3312.js +1 -0
  212. package/.next/server/chunks/3774.js +1 -1
  213. package/.next/server/chunks/3823.js +7 -7
  214. package/.next/server/chunks/3855.js +1 -0
  215. package/.next/server/chunks/3924.js +52 -0
  216. package/.next/server/chunks/4545.js +6 -2
  217. package/.next/server/chunks/4561.js +7 -7
  218. package/.next/server/chunks/4578.js +1 -0
  219. package/.next/server/chunks/4671.js +1 -1
  220. package/.next/server/chunks/4677.js +37 -0
  221. package/.next/server/chunks/4771.js +2 -2
  222. package/.next/server/chunks/4793.js +2 -0
  223. package/.next/server/chunks/4836.js +1 -0
  224. package/.next/server/chunks/5311.js +1 -1
  225. package/.next/server/chunks/5463.js +1 -0
  226. package/.next/server/chunks/5544.js +5 -0
  227. package/.next/server/chunks/5708.js +11 -8
  228. package/.next/server/chunks/584.js +1 -0
  229. package/.next/server/chunks/62.js +1 -1
  230. package/.next/server/chunks/6240.js +1 -0
  231. package/.next/server/chunks/6306.js +1 -0
  232. package/.next/server/chunks/{3928.js → 6745.js} +1 -1
  233. package/.next/server/chunks/6908.js +2 -2
  234. package/.next/server/chunks/701.js +1 -1
  235. package/.next/server/chunks/7214.js +6 -0
  236. package/.next/server/chunks/7362.js +9 -5
  237. package/.next/server/chunks/7463.js +6 -0
  238. package/.next/server/chunks/7506.js +1 -1
  239. package/.next/server/chunks/7579.js +82 -0
  240. package/.next/server/chunks/8216.js +1 -0
  241. package/.next/server/chunks/8387.js +1 -0
  242. package/.next/server/chunks/856.js +5 -0
  243. package/.next/server/chunks/8739.js +2 -2
  244. package/.next/server/chunks/9165.js +1 -0
  245. package/.next/server/chunks/94.js +1 -0
  246. package/.next/server/chunks/9427.js +1 -0
  247. package/.next/server/functions-config-manifest.json +2 -2
  248. package/.next/server/instrumentation.js.nft.json +1 -1
  249. package/.next/server/middleware-build-manifest.js +1 -1
  250. package/.next/server/middleware-manifest.json +1 -1
  251. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  252. package/.next/server/pages/404.html +1 -1
  253. package/.next/server/pages/500.html +1 -1
  254. package/.next/server/server-reference-manifest.js +1 -1
  255. package/.next/server/server-reference-manifest.json +1 -1
  256. package/.next/server/src/middleware.js +2 -2
  257. package/.next/server/src/middleware.js.map +1 -1
  258. package/.next/static/chunks/1675-773454288de4309d.js +1 -0
  259. package/.next/static/chunks/1731-6e45fb529f9044a3.js +1 -0
  260. package/.next/static/chunks/1871-14c3e63ca865d85e.js +1 -0
  261. package/.next/static/chunks/2003-7710c23acaef11c9.js +1 -0
  262. package/.next/static/chunks/2318-76fcb6c769b1a569.js +1 -0
  263. package/.next/static/chunks/2566-6e2b9d9349814789.js +1 -0
  264. package/.next/static/chunks/2734-59fbe2f62a59df86.js +1 -0
  265. package/.next/static/chunks/3089.6b4e21e1faa304e2.js +1 -0
  266. package/.next/static/chunks/3109-11bdec9bdfd996c3.js +1 -0
  267. package/.next/static/chunks/3217.f728df99ab5da33c.js +1 -0
  268. package/.next/static/chunks/333-5f3c5be57c80c48c.js +1 -0
  269. package/.next/static/chunks/3333-b7b3e5758a568013.js +1 -0
  270. package/.next/static/chunks/3556-3b6f7c99b015b752.js +1 -0
  271. package/.next/static/chunks/{6257-ee5d8d88050d7705.js → 4003-3b3768446ae333df.js} +1 -1
  272. package/.next/static/chunks/4523-a540747aa2ed34e8.js +1 -0
  273. package/.next/static/chunks/4635-0fe310d3be64e71e.js +1 -0
  274. package/.next/static/chunks/4690-ec7d397cfacedac3.js +1 -0
  275. package/.next/static/chunks/4775-cb9c0be621363a08.js +8 -0
  276. package/.next/static/chunks/5336-81da1080de29ebfc.js +1 -0
  277. package/.next/static/chunks/5512.d01d565f73109a1a.js +1 -0
  278. package/.next/static/chunks/6691-117567b2b40cd9f4.js +1 -0
  279. package/.next/static/chunks/7274-1184563607f2b5f5.js +1 -0
  280. package/.next/static/chunks/8166-e75acdc559b34fcd.js +1 -0
  281. package/.next/static/chunks/8345.fbc0af16acce7256.js +1 -0
  282. package/.next/static/chunks/8405.e728bc83a7c9fed6.js +1 -0
  283. package/.next/static/chunks/8470-72cf748472d4d501.js +1 -0
  284. package/.next/static/chunks/8607-5787e42775fc3acb.js +1 -0
  285. package/.next/static/chunks/8610-660d5088bc1dd7a7.js +1 -0
  286. package/.next/static/chunks/8834-faf121e257b517d5.js +1 -0
  287. package/.next/static/chunks/8989-401559d9f3bc80a0.js +1 -0
  288. package/.next/static/chunks/{9164-d9f1abba780231e0.js → 9164-829ab5b085ec06d6.js} +1 -1
  289. package/.next/static/chunks/9240-d0a51f4d504f34b1.js +1 -0
  290. package/.next/static/chunks/9562-b7922ceb400ec536.js +1 -0
  291. package/.next/static/chunks/9704-6b7415964d7c042a.js +1 -0
  292. package/.next/static/chunks/app/chat/page-04ad1fad78048afb.js +1 -0
  293. package/.next/static/chunks/app/docs/page-5475c616764dbb18.js +1 -0
  294. package/.next/static/chunks/app/executions/page-c18708ed96d228ec.js +1 -0
  295. package/.next/static/chunks/app/flows/page-f7e44aa545bcc56e.js +1 -0
  296. package/.next/static/chunks/app/layout-e6fbae80e0f456a6.js +1 -0
  297. package/.next/static/chunks/app/mcp/page-3638fbee04a3a6ea.js +1 -0
  298. package/.next/static/chunks/app/models/error-5732fbb053e182c5.js +1 -0
  299. package/.next/static/chunks/app/models/page-e690a986047b1e62.js +1 -0
  300. package/.next/static/chunks/app/{page-a859e4dbd180df98.js → page-0a95c40a65dbd2eb.js} +1 -1
  301. package/.next/static/chunks/app/settings/page-3ef9b95187e18a5a.js +1 -0
  302. package/.next/static/chunks/app/waves/page-c9a307e2236423a4.js +1 -0
  303. package/.next/static/chunks/webpack-a6844e1074885c2f.js +1 -0
  304. package/.next/static/css/40f9bef305b11bf5.css +1 -0
  305. package/.next/trace +10 -8
  306. package/README.md +31 -1
  307. package/package.json +1 -1
  308. package/.next/server/chunks/1119.js +0 -1
  309. package/.next/server/chunks/1439.js +0 -1
  310. package/.next/server/chunks/1910.js +0 -37
  311. package/.next/server/chunks/1999.js +0 -1
  312. package/.next/server/chunks/2246.js +0 -1
  313. package/.next/server/chunks/2823.js +0 -6
  314. package/.next/server/chunks/2998.js +0 -52
  315. package/.next/server/chunks/3286.js +0 -6
  316. package/.next/server/chunks/3291.js +0 -1
  317. package/.next/server/chunks/4637.js +0 -81
  318. package/.next/server/chunks/6644.js +0 -1
  319. package/.next/server/chunks/7427.js +0 -1
  320. package/.next/server/chunks/7723.js +0 -1
  321. package/.next/server/chunks/7769.js +0 -6
  322. package/.next/server/chunks/8518.js +0 -2
  323. package/.next/static/chunks/1620-0d8ecd877f123f7b.js +0 -1
  324. package/.next/static/chunks/1871-dd8c10ed9d37100b.js +0 -1
  325. package/.next/static/chunks/1983-242862b3dc022a26.js +0 -1
  326. package/.next/static/chunks/2003-460f30484998c05d.js +0 -1
  327. package/.next/static/chunks/2619-04bc32f026a0d946.js +0 -1
  328. package/.next/static/chunks/3217.058098140ec3f563.js +0 -1
  329. package/.next/static/chunks/3454-a8db9caba457e5fa.js +0 -1
  330. package/.next/static/chunks/3730-149f2f058529f75f.js +0 -1
  331. package/.next/static/chunks/3736-5e2b3f6cda1bb923.js +0 -1
  332. package/.next/static/chunks/4207-41abb9622eb4b4f8.js +0 -1
  333. package/.next/static/chunks/4749-f8796d16ff604d54.js +0 -1
  334. package/.next/static/chunks/4812-4a9aceb49632a973.js +0 -1
  335. package/.next/static/chunks/5501-f5b093c8dfd74196.js +0 -1
  336. package/.next/static/chunks/6016.8201fa15ab6aa90e.js +0 -1
  337. package/.next/static/chunks/6288-a285bbbd701e0dbf.js +0 -1
  338. package/.next/static/chunks/6731-c230e88cf0032609.js +0 -1
  339. package/.next/static/chunks/7430-6e78aaeac66988a9.js +0 -1
  340. package/.next/static/chunks/7583.7af90b94e3c263f2.js +0 -1
  341. package/.next/static/chunks/7687-7edf1a6e1f063b08.js +0 -1
  342. package/.next/static/chunks/8083.16fda2c7f6d10d0c.js +0 -1
  343. package/.next/static/chunks/8480-229fd353b68b570f.js +0 -1
  344. package/.next/static/chunks/8548-8e4a95334064e8b2.js +0 -1
  345. package/.next/static/chunks/8611-f6d51119761d52ff.js +0 -8
  346. package/.next/static/chunks/8834-bda798efab40c60a.js +0 -1
  347. package/.next/static/chunks/9356-99ba407b60b9dfe9.js +0 -1
  348. package/.next/static/chunks/9451-680fa09f81f18806.js +0 -1
  349. package/.next/static/chunks/9659-a279e3aaba407251.js +0 -1
  350. package/.next/static/chunks/app/chat/page-6a5b5f9ea2542fb3.js +0 -1
  351. package/.next/static/chunks/app/docs/page-935b0386917b91bb.js +0 -1
  352. package/.next/static/chunks/app/executions/page-d72027b0179e8fa2.js +0 -1
  353. package/.next/static/chunks/app/flows/page-fbce5abe34500f28.js +0 -1
  354. package/.next/static/chunks/app/layout-2ebf01d97702a18a.js +0 -1
  355. package/.next/static/chunks/app/mcp/page-8666173926cabf31.js +0 -1
  356. package/.next/static/chunks/app/models/error-a3183f168e8a9b04.js +0 -1
  357. package/.next/static/chunks/app/models/page-18dbd8e01cf87e98.js +0 -1
  358. package/.next/static/chunks/app/settings/page-7a68583660508ffd.js +0 -1
  359. package/.next/static/chunks/app/waves/page-ec33cf79f6103a9e.js +0 -1
  360. package/.next/static/chunks/webpack-f4a471ab560eb19e.js +0 -1
  361. package/.next/static/css/39393a79f7cb0dee.css +0 -1
  362. /package/.next/static/{eUM7C1boixGI469h5wtIk → Il6IDWxf3CN0dv-P6QQrp}/_buildManifest.js +0 -0
  363. /package/.next/static/{eUM7C1boixGI469h5wtIk → Il6IDWxf3CN0dv-P6QQrp}/_ssgManifest.js +0 -0
package/README.md CHANGED
@@ -37,7 +37,7 @@ For *anything* that you struggle with (MCP Installation, Application Issues, Usa
37
37
  # FLUJO
38
38
 
39
39
  [![MIT License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
40
- [![Version](https://img.shields.io/badge/version-3.24.0-green.svg)](package.json)
40
+ [![Version](https://img.shields.io/badge/version-3.26.0-green.svg)](package.json)
41
41
 
42
42
  FLUJO is an open-source, local-first platform for building **MCP-powered AI workflows**. It brings together model management, Model-Context-Protocol (MCP) servers, a visual flow builder, and a chat interface in one app — so you can wire models and tools together, run them headlessly on triggers, and expose the result to other apps, without giving up control of your keys and data.
43
43
 
@@ -239,6 +239,36 @@ Then open http://localhost:4200.
239
239
  > Do **not** expose it on `0.0.0.0` / publish it publicly unless it sits behind
240
240
  > your own authenticating reverse proxy on a trusted network.
241
241
 
242
+ ### Hosted deployments behind a trusted proxy (`FLUJO_EXTRA_LOCAL_HOSTS`)
243
+
244
+ FLUJO's `/api/*` routes are guarded by a fail-closed **localhost origin check**
245
+ (the defense against drive-by, cross-origin RCE on its command/secret sinks). By
246
+ default only the localhost family (`localhost`, `127.0.0.1`, `::1`) counts as
247
+ "local", so a request that arrives with any other Host — e.g. an internal DNS
248
+ name like `http://<id>.vm.<tenants>.internal:4200` — gets a `403`. That is a
249
+ problem only when FLUJO is deliberately run **one instance per tenant on a
250
+ private network, reached exclusively by an authenticating reverse proxy /
251
+ control plane** over an internal name. A standalone install never needs this.
252
+
253
+ For that hosted posture, set the opt-in env var `FLUJO_EXTRA_LOCAL_HOSTS` to
254
+ extend what counts as "local" for **both** the Host and the Origin hostname
255
+ checks:
256
+
257
+ - **Format:** a comma-separated list. Each entry is either an **exact hostname**
258
+ (`flujo-box`) or, when it starts with a dot, a **domain suffix**
259
+ (`.vm.my-tenants.internal` matches any `<sub>.vm.my-tenants.internal`, but not
260
+ the bare apex and not `...internal.evil.com`). Entries are trimmed and
261
+ case-insensitive.
262
+ - **Default:** **unset** — behavior is unchanged (localhost family only), so
263
+ every standalone install is unaffected.
264
+ - **Example:** `FLUJO_EXTRA_LOCAL_HOSTS=.vm.my-tenants.internal`
265
+
266
+ > ⚠️ **Security precondition:** only set this when **nothing untrusted can reach
267
+ > FLUJO's port at those names**. The DNS-rebinding protection is still enforced
268
+ > — an attacker page's Origin never matches these entries — but widening the
269
+ > trusted-host set is only safe on a private network fronted by your own
270
+ > authenticating proxy.
271
+
242
272
  ### Run via npx (npm package)
243
273
 
244
274
  ```bash
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flujo-ai",
3
- "version": "3.24.0",
3
+ "version": "3.26.0",
4
4
  "bin": {
5
5
  "flujo": "bin/flujo.mjs"
6
6
  },
@@ -1 +0,0 @@
1
- "use strict";exports.id=1119,exports.ids=[1119],exports.modules={22042:(a,b,c)=>{c.d(b,{A:()=>Q});var d=c(38301),e=c(43249),f=c(2783),g=c(38404),h=c(94633),i=c(18168),j=c(60839),k=c(68333),l=c(6636),m=c(74907);function n(a){return(1+Math.sin(Math.PI*a-Math.PI/2))/2}var o=c(14758),p=c(5141),q=c(21124);let r={width:99,height:99,position:"absolute",top:-9999,overflow:"scroll"};var s=c(27080);let t=(0,s.A)((0,q.jsx)("path",{d:"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"}),"KeyboardArrowLeft"),u=(0,s.A)((0,q.jsx)("path",{d:"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"}),"KeyboardArrowRight");var v=c(14328),w=c(29565),x=c(33105);function y(a){return(0,x.Ay)("MuiTabScrollButton",a)}let z=(0,w.A)("MuiTabScrollButton",["root","vertical","horizontal","disabled"]),A=(0,i.Ay)(v.A,{name:"MuiTabScrollButton",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,c.orientation&&b[c.orientation]]}})({width:40,flexShrink:0,opacity:.8,[`&.${z.disabled}`]:{opacity:0},variants:[{props:{orientation:"vertical"},style:{width:"100%",height:40,"& svg":{transform:"var(--TabScrollButton-svgRotate)"}}}]}),B=d.forwardRef(function(a,b){let c=(0,l.b)({props:a,name:"MuiTabScrollButton"}),{className:d,slots:i={},slotProps:j={},direction:k,orientation:m,disabled:n,...o}=c,p=(0,g.I)(),r={isRtl:p,...c},s=(a=>{let{classes:b,orientation:c,disabled:d}=a;return(0,f.A)({root:["root",c,d&&"disabled"]},y,b)})(r),v=i.StartScrollButtonIcon??t,w=i.EndScrollButtonIcon??u,x=(0,h.A)({elementType:v,externalSlotProps:j.startScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:r}),z=(0,h.A)({elementType:w,externalSlotProps:j.endScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:r});return(0,q.jsx)(A,{component:"div",className:(0,e.A)(s.root,d),ref:b,role:null,ownerState:r,tabIndex:null,...o,style:{...o.style,..."vertical"===m&&{"--TabScrollButton-svgRotate":`rotate(${p?-90:90}deg)`}},children:"left"===k?(0,q.jsx)(v,{...x}):(0,q.jsx)(w,{...z})})});var C=c(87974);function D(a){return(0,x.Ay)("MuiTabs",a)}let E=(0,w.A)("MuiTabs",["root","vertical","list","flexContainer","flexContainerVertical","centered","scroller","fixed","scrollableX","scrollableY","hideScrollbar","scrollButtons","scrollButtonsHideMobile","indicator"]);var F=c(97896),G=c(20385);let H=(a,b)=>a===b?a.firstChild:b&&b.nextElementSibling?b.nextElementSibling:a.firstChild,I=(a,b)=>a===b?a.lastChild:b&&b.previousElementSibling?b.previousElementSibling:a.lastChild,J=(a,b,c)=>{let d=!1,e=c(a,b);for(;e;){if(e===a.firstChild){if(d)return;d=!0}let b=e.disabled||"true"===e.getAttribute("aria-disabled");if(e.hasAttribute("tabindex")&&!b)return void e.focus();e=c(a,e)}},K=(0,i.Ay)("div",{name:"MuiTabs",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[{[`& .${E.scrollButtons}`]:b.scrollButtons},{[`& .${E.scrollButtons}`]:c.scrollButtonsHideMobile&&b.scrollButtonsHideMobile},b.root,c.vertical&&b.vertical]}})((0,k.A)(({theme:a})=>({overflow:"hidden",minHeight:48,WebkitOverflowScrolling:"touch",display:"flex",variants:[{props:({ownerState:a})=>a.vertical,style:{flexDirection:"column"}},{props:({ownerState:a})=>a.scrollButtonsHideMobile,style:{[`& .${E.scrollButtons}`]:{[a.breakpoints.down("sm")]:{display:"none"}}}}]}))),L=(0,i.Ay)("div",{name:"MuiTabs",slot:"Scroller",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.scroller,c.fixed&&b.fixed,c.hideScrollbar&&b.hideScrollbar,c.scrollableX&&b.scrollableX,c.scrollableY&&b.scrollableY]}})({position:"relative",display:"inline-block",flex:"1 1 auto",whiteSpace:"nowrap",variants:[{props:({ownerState:a})=>a.fixed,style:{overflowX:"hidden",width:"100%"}},{props:({ownerState:a})=>a.hideScrollbar,style:{scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}},{props:({ownerState:a})=>a.scrollableX,style:{overflowX:"auto",overflowY:"hidden"}},{props:({ownerState:a})=>a.scrollableY,style:{overflowY:"auto",overflowX:"hidden"}}]}),M=(0,i.Ay)("div",{name:"MuiTabs",slot:"List",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.list,b.flexContainer,c.vertical&&b.flexContainerVertical,c.centered&&b.centered]}})({display:"flex",variants:[{props:({ownerState:a})=>a.vertical,style:{flexDirection:"column"}},{props:({ownerState:a})=>a.centered,style:{justifyContent:"center"}}]}),N=(0,i.Ay)("span",{name:"MuiTabs",slot:"Indicator",overridesResolver:(a,b)=>b.indicator})((0,k.A)(({theme:a})=>({position:"absolute",height:2,bottom:0,width:"100%",transition:a.transitions.create(),variants:[{props:{indicatorColor:"primary"},style:{backgroundColor:(a.vars||a).palette.primary.main}},{props:{indicatorColor:"secondary"},style:{backgroundColor:(a.vars||a).palette.secondary.main}},{props:({ownerState:a})=>a.vertical,style:{height:"100%",width:2,right:0}}]}))),O=(0,i.Ay)(function(a){let{onChange:b,...c}=a,e=d.useRef(),f=d.useRef(null),g=()=>{e.current=f.current.offsetHeight-f.current.clientHeight};return(0,o.A)(()=>{let a=(0,m.A)(()=>{let a=e.current;g(),a!==e.current&&b(e.current)}),c=(0,p.A)(f.current);return c.addEventListener("resize",a),()=>{a.clear(),c.removeEventListener("resize",a)}},[b]),d.useEffect(()=>{g(),b(e.current)},[b]),(0,q.jsx)("div",{style:r,...c,ref:f})})({overflowX:"auto",overflowY:"hidden",scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}),P={},Q=d.forwardRef(function(a,b){let c=(0,l.b)({props:a,name:"MuiTabs"}),i=(0,j.A)(),k=(0,g.I)(),{"aria-label":o,"aria-labelledby":r,action:s,centered:t=!1,children:u,className:v,component:w="div",allowScrollButtonsMobile:x=!1,indicatorColor:y="primary",onChange:z,orientation:A="horizontal",ScrollButtonComponent:E,scrollButtons:Q="auto",selectionFollowsFocus:R,slots:S={},slotProps:T={},TabIndicatorProps:U={},TabScrollButtonProps:V={},textColor:W="primary",value:X,variant:Y="standard",visibleScrollbar:Z=!1,...$}=c,_="scrollable"===Y,aa="vertical"===A,ab=aa?"scrollTop":"scrollLeft",ac=aa?"top":"left",ad=aa?"bottom":"right",ae=aa?"clientHeight":"clientWidth",af=aa?"height":"width",ag={...c,component:w,allowScrollButtonsMobile:x,indicatorColor:y,orientation:A,vertical:aa,scrollButtons:Q,textColor:W,variant:Y,visibleScrollbar:Z,fixed:!_,hideScrollbar:_&&!Z,scrollableX:_&&!aa,scrollableY:_&&aa,centered:t&&!_,scrollButtonsHideMobile:!x},ah=(a=>{let{vertical:b,fixed:c,hideScrollbar:d,scrollableX:e,scrollableY:g,centered:h,scrollButtonsHideMobile:i,classes:j}=a;return(0,f.A)({root:["root",b&&"vertical"],scroller:["scroller",c&&"fixed",d&&"hideScrollbar",e&&"scrollableX",g&&"scrollableY"],list:["list","flexContainer",b&&"flexContainerVertical",b&&"vertical",h&&"centered"],indicator:["indicator"],scrollButtons:["scrollButtons",i&&"scrollButtonsHideMobile"],scrollableX:[e&&"scrollableX"],hideScrollbar:[d&&"hideScrollbar"]},D,j)})(ag),ai=(0,h.A)({elementType:S.StartScrollButtonIcon,externalSlotProps:T.startScrollButtonIcon,ownerState:ag}),aj=(0,h.A)({elementType:S.EndScrollButtonIcon,externalSlotProps:T.endScrollButtonIcon,ownerState:ag}),[ak,al]=d.useState(!1),[am,an]=d.useState(P),[ao,ap]=d.useState(!1),[aq,ar]=d.useState(!1),[as,at]=d.useState(!1),[au,av]=d.useState({overflow:"hidden",scrollbarWidth:0}),aw=new Map,ax=d.useRef(null),ay=d.useRef(null),az={slots:S,slotProps:{indicator:U,scrollButton:V,...T}},aA=()=>{let a,b,c=ax.current;if(c){let b=c.getBoundingClientRect();a={clientWidth:c.clientWidth,scrollLeft:c.scrollLeft,scrollTop:c.scrollTop,scrollWidth:c.scrollWidth,top:b.top,bottom:b.bottom,left:b.left,right:b.right}}if(c&&!1!==X){let a=ay.current.children;if(a.length>0){let c=a[aw.get(X)];b=c?c.getBoundingClientRect():null}}return{tabsMeta:a,tabMeta:b}},aB=(0,C.A)(()=>{let a,{tabsMeta:b,tabMeta:c}=aA(),d=0;aa?(a="top",c&&b&&(d=c.top-b.top+b.scrollTop)):(a=k?"right":"left",c&&b&&(d=(k?-1:1)*(c[a]-b[a]+b.scrollLeft)));let e={[a]:d,[af]:c?c[af]:0};if("number"!=typeof am[a]||"number"!=typeof am[af])an(e);else{let b=Math.abs(am[a]-e[a]),c=Math.abs(am[af]-e[af]);(b>=1||c>=1)&&an(e)}}),aC=(a,{animation:b=!0}={})=>{b?function(a,b,c,d={},e=()=>{}){let{ease:f=n,duration:g=300}=d,h=null,i=b[a],j=!1,k=d=>{if(j)return void e(Error("Animation cancelled"));null===h&&(h=d);let l=Math.min(1,(d-h)/g);if(b[a]=f(l)*(c-i)+i,l>=1)return void requestAnimationFrame(()=>{e(null)});requestAnimationFrame(k)};i===c?e(Error("Element already at target position")):requestAnimationFrame(k)}(ab,ax.current,a,{duration:i.transitions.duration.standard}):ax.current[ab]=a},aD=a=>{let b=ax.current[ab];aa?b+=a:b+=a*(k?-1:1),aC(b)},aE=()=>{let a=ax.current[ae],b=0,c=Array.from(ay.current.children);for(let d=0;d<c.length;d+=1){let e=c[d];if(b+e[ae]>a){0===d&&(b=a);break}b+=e[ae]}return b},aF=()=>{aD(-1*aE())},aG=()=>{aD(aE())},[aH,{onChange:aI,...aJ}]=(0,G.A)("scrollbar",{className:(0,e.A)(ah.scrollableX,ah.hideScrollbar),elementType:O,shouldForwardComponentProp:!0,externalForwardedProps:az,ownerState:ag}),aK=d.useCallback(a=>{aI?.(a),av({overflow:null,scrollbarWidth:a})},[aI]),[aL,aM]=(0,G.A)("scrollButtons",{className:(0,e.A)(ah.scrollButtons,V.className),elementType:B,externalForwardedProps:az,ownerState:ag,additionalProps:{orientation:A,slots:{StartScrollButtonIcon:S.startScrollButtonIcon||S.StartScrollButtonIcon,EndScrollButtonIcon:S.endScrollButtonIcon||S.EndScrollButtonIcon},slotProps:{startScrollButtonIcon:ai,endScrollButtonIcon:aj}}}),aN=(0,C.A)(a=>{let{tabsMeta:b,tabMeta:c}=aA();c&&b&&(c[ac]<b[ac]?aC(b[ab]+(c[ac]-b[ac]),{animation:a}):c[ad]>b[ad]&&aC(b[ab]+(c[ad]-b[ad]),{animation:a}))}),aO=(0,C.A)(()=>{_&&!1!==Q&&at(!as)});d.useEffect(()=>{let a,b,c=(0,m.A)(()=>{ax.current&&aB()}),d=(0,p.A)(ax.current);return d.addEventListener("resize",c),"undefined"!=typeof ResizeObserver&&(a=new ResizeObserver(c),Array.from(ay.current.children).forEach(b=>{a.observe(b)})),"undefined"!=typeof MutationObserver&&(b=new MutationObserver(b=>{b.forEach(b=>{b.removedNodes.forEach(b=>{a?.unobserve(b)}),b.addedNodes.forEach(b=>{a?.observe(b)})}),c(),aO()})).observe(ay.current,{childList:!0}),()=>{c.clear(),d.removeEventListener("resize",c),b?.disconnect(),a?.disconnect()}},[aB,aO]),d.useEffect(()=>{let a=Array.from(ay.current.children),b=a.length;if("undefined"!=typeof IntersectionObserver&&b>0&&_&&!1!==Q){let c=a[0],d=a[b-1],e={root:ax.current,threshold:.99},f=new IntersectionObserver(a=>{ap(!a[0].isIntersecting)},e);f.observe(c);let g=new IntersectionObserver(a=>{ar(!a[0].isIntersecting)},e);return g.observe(d),()=>{f.disconnect(),g.disconnect()}}},[_,Q,as,u?.length]),d.useEffect(()=>{al(!0)},[]),d.useEffect(()=>{aB()}),d.useEffect(()=>{aN(P!==am)},[aN,am]),d.useImperativeHandle(s,()=>({updateIndicator:aB,updateScrollButtons:aO}),[aB,aO]);let[aP,aQ]=(0,G.A)("indicator",{className:(0,e.A)(ah.indicator,U.className),elementType:N,externalForwardedProps:az,ownerState:ag,additionalProps:{style:am}}),aR=(0,q.jsx)(aP,{...aQ}),aS=0,aT=d.Children.map(u,a=>{if(!d.isValidElement(a))return null;let b=void 0===a.props.value?aS:a.props.value;aw.set(b,aS);let c=b===X;return aS+=1,d.cloneElement(a,{fullWidth:"fullWidth"===Y,indicator:c&&!ak&&aR,selected:c,selectionFollowsFocus:R,onChange:z,textColor:W,value:b,...1===aS&&!1===X&&!a.props.tabIndex?{tabIndex:0}:{}})}),aU=(()=>{let a={};a.scrollbarSizeListener=_?(0,q.jsx)(aH,{...aJ,onChange:aK}):null;let b=_&&("auto"===Q&&(ao||aq)||!0===Q);return a.scrollButtonStart=b?(0,q.jsx)(aL,{direction:k?"right":"left",onClick:aF,disabled:!ao,...aM}):null,a.scrollButtonEnd=b?(0,q.jsx)(aL,{direction:k?"left":"right",onClick:aG,disabled:!aq,...aM}):null,a})(),[aV,aW]=(0,G.A)("root",{ref:b,className:(0,e.A)(ah.root,v),elementType:K,externalForwardedProps:{...az,...$,component:w},ownerState:ag}),[aX,aY]=(0,G.A)("scroller",{ref:ax,className:ah.scroller,elementType:L,externalForwardedProps:az,ownerState:ag,additionalProps:{style:{overflow:au.overflow,[aa?`margin${k?"Left":"Right"}`:"marginBottom"]:Z?void 0:-au.scrollbarWidth}}}),[aZ,a$]=(0,G.A)("list",{ref:ay,className:(0,e.A)(ah.list,ah.flexContainer),elementType:M,externalForwardedProps:az,ownerState:ag,getSlotProps:a=>({...a,onKeyDown:b=>{(a=>{if(a.altKey||a.shiftKey||a.ctrlKey||a.metaKey)return;let b=ay.current,c=(0,F.A)(b).activeElement;if("tab"!==c.getAttribute("role"))return;let d="horizontal"===A?"ArrowLeft":"ArrowUp",e="horizontal"===A?"ArrowRight":"ArrowDown";switch("horizontal"===A&&k&&(d="ArrowRight",e="ArrowLeft"),a.key){case d:a.preventDefault(),J(b,c,I);break;case e:a.preventDefault(),J(b,c,H);break;case"Home":a.preventDefault(),J(b,null,H);break;case"End":a.preventDefault(),J(b,null,I)}})(b),a.onKeyDown?.(b)}})});return(0,q.jsxs)(aV,{...aW,children:[aU.scrollButtonStart,aU.scrollbarSizeListener,(0,q.jsxs)(aX,{...aY,children:[(0,q.jsx)(aZ,{"aria-label":o,"aria-labelledby":r,"aria-orientation":"vertical"===A?"vertical":null,role:"tablist",...a$,children:aT}),ak&&aR]}),aU.scrollButtonEnd]})})},27409:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown")},34304:(a,b,c)=>{c.d(b,{A:()=>r});var d=c(38301),e=c(43249),f=c(2783),g=c(14328),h=c(6638),i=c(18168),j=c(68333),k=c(6636),l=c(29565),m=c(33105);function n(a){return(0,m.Ay)("MuiTab",a)}let o=(0,l.A)("MuiTab",["root","labelIcon","textColorInherit","textColorPrimary","textColorSecondary","selected","disabled","fullWidth","wrapped","iconWrapper","icon"]);var p=c(21124);let q=(0,i.Ay)(g.A,{name:"MuiTab",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,c.label&&c.icon&&b.labelIcon,b[`textColor${(0,h.A)(c.textColor)}`],c.fullWidth&&b.fullWidth,c.wrapped&&b.wrapped,{[`& .${o.iconWrapper}`]:b.iconWrapper},{[`& .${o.icon}`]:b.icon}]}})((0,j.A)(({theme:a})=>({...a.typography.button,maxWidth:360,minWidth:90,position:"relative",minHeight:48,flexShrink:0,padding:"12px 16px",overflow:"hidden",whiteSpace:"normal",textAlign:"center",lineHeight:1.25,variants:[{props:({ownerState:a})=>a.label&&("top"===a.iconPosition||"bottom"===a.iconPosition),style:{flexDirection:"column"}},{props:({ownerState:a})=>a.label&&"top"!==a.iconPosition&&"bottom"!==a.iconPosition,style:{flexDirection:"row"}},{props:({ownerState:a})=>a.icon&&a.label,style:{minHeight:72,paddingTop:9,paddingBottom:9}},{props:({ownerState:a,iconPosition:b})=>a.icon&&a.label&&"top"===b,style:{[`& > .${o.icon}`]:{marginBottom:6}}},{props:({ownerState:a,iconPosition:b})=>a.icon&&a.label&&"bottom"===b,style:{[`& > .${o.icon}`]:{marginTop:6}}},{props:({ownerState:a,iconPosition:b})=>a.icon&&a.label&&"start"===b,style:{[`& > .${o.icon}`]:{marginRight:a.spacing(1)}}},{props:({ownerState:a,iconPosition:b})=>a.icon&&a.label&&"end"===b,style:{[`& > .${o.icon}`]:{marginLeft:a.spacing(1)}}},{props:{textColor:"inherit"},style:{color:"inherit",opacity:.6,[`&.${o.selected}`]:{opacity:1},[`&.${o.disabled}`]:{opacity:(a.vars||a).palette.action.disabledOpacity}}},{props:{textColor:"primary"},style:{color:(a.vars||a).palette.text.secondary,[`&.${o.selected}`]:{color:(a.vars||a).palette.primary.main},[`&.${o.disabled}`]:{color:(a.vars||a).palette.text.disabled}}},{props:{textColor:"secondary"},style:{color:(a.vars||a).palette.text.secondary,[`&.${o.selected}`]:{color:(a.vars||a).palette.secondary.main},[`&.${o.disabled}`]:{color:(a.vars||a).palette.text.disabled}}},{props:({ownerState:a})=>a.fullWidth,style:{flexShrink:1,flexGrow:1,flexBasis:0,maxWidth:"none"}},{props:({ownerState:a})=>a.wrapped,style:{fontSize:a.typography.pxToRem(12)}}]}))),r=d.forwardRef(function(a,b){let c=(0,k.b)({props:a,name:"MuiTab"}),{className:g,disabled:i=!1,disableFocusRipple:j=!1,fullWidth:l,icon:m,iconPosition:o="top",indicator:r,label:s,onChange:t,onClick:u,onFocus:v,selected:w,selectionFollowsFocus:x,textColor:y="inherit",value:z,wrapped:A=!1,...B}=c,C={...c,disabled:i,disableFocusRipple:j,selected:w,icon:!!m,iconPosition:o,label:!!s,fullWidth:l,textColor:y,wrapped:A},D=(a=>{let{classes:b,textColor:c,fullWidth:d,wrapped:e,icon:g,label:i,selected:j,disabled:k}=a,l={root:["root",g&&i&&"labelIcon",`textColor${(0,h.A)(c)}`,d&&"fullWidth",e&&"wrapped",j&&"selected",k&&"disabled"],icon:["iconWrapper","icon"]};return(0,f.A)(l,n,b)})(C),E=m&&s&&d.isValidElement(m)?d.cloneElement(m,{className:(0,e.A)(D.icon,m.props.className)}):m;return(0,p.jsxs)(q,{focusRipple:!j,className:(0,e.A)(D.root,g),ref:b,role:"tab","aria-selected":w,disabled:i,onClick:a=>{!w&&t&&t(a,z),u&&u(a)},onFocus:a=>{x&&!w&&t&&t(a,z),v&&v(a)},ownerState:C,tabIndex:w?0:-1,...B,children:["top"===o||"start"===o?(0,p.jsxs)(d.Fragment,{children:[E,s]}):(0,p.jsxs)(d.Fragment,{children:[s,E]}),r]})})},95345:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M19 2h-4.18C14.4.84 13.3 0 12 0S9.6.84 9.18 2H5c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2m-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1m7 18H5V4h2v3h10V4h2z"}),"ContentPaste")}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=1439,exports.ids=[1439],exports.modules={41893:(a,b,c)=>{c.d(b,{A:()=>y});var d=c(38301),e=c(43249),f=c(2783),g=c(37489),h=c(27080),i=c(21124);let j=(0,h.A)((0,i.jsx)("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"}),"Cancel");var k=c(26636),l=c(6638),m=c(14328),n=c(18168),o=c(68333),p=c(54716),q=c(6636),r=c(29565),s=c(33105);function t(a){return(0,s.Ay)("MuiChip",a)}let u=(0,r.A)("MuiChip",["root","sizeSmall","sizeMedium","colorDefault","colorError","colorInfo","colorPrimary","colorSecondary","colorSuccess","colorWarning","disabled","clickable","clickableColorPrimary","clickableColorSecondary","deletable","deletableColorPrimary","deletableColorSecondary","outlined","filled","outlinedPrimary","outlinedSecondary","filledPrimary","filledSecondary","avatar","avatarSmall","avatarMedium","avatarColorPrimary","avatarColorSecondary","icon","iconSmall","iconMedium","iconColorPrimary","iconColorSecondary","label","labelSmall","labelMedium","deleteIcon","deleteIconSmall","deleteIconMedium","deleteIconColorPrimary","deleteIconColorSecondary","deleteIconOutlinedColorPrimary","deleteIconOutlinedColorSecondary","deleteIconFilledColorPrimary","deleteIconFilledColorSecondary","focusVisible"]),v=(0,n.Ay)("div",{name:"MuiChip",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a,{color:d,iconColor:e,clickable:f,onDelete:g,size:h,variant:i}=c;return[{[`& .${u.avatar}`]:b.avatar},{[`& .${u.avatar}`]:b[`avatar${(0,l.A)(h)}`]},{[`& .${u.avatar}`]:b[`avatarColor${(0,l.A)(d)}`]},{[`& .${u.icon}`]:b.icon},{[`& .${u.icon}`]:b[`icon${(0,l.A)(h)}`]},{[`& .${u.icon}`]:b[`iconColor${(0,l.A)(e)}`]},{[`& .${u.deleteIcon}`]:b.deleteIcon},{[`& .${u.deleteIcon}`]:b[`deleteIcon${(0,l.A)(h)}`]},{[`& .${u.deleteIcon}`]:b[`deleteIconColor${(0,l.A)(d)}`]},{[`& .${u.deleteIcon}`]:b[`deleteIcon${(0,l.A)(i)}Color${(0,l.A)(d)}`]},b.root,b[`size${(0,l.A)(h)}`],b[`color${(0,l.A)(d)}`],f&&b.clickable,f&&"default"!==d&&b[`clickableColor${(0,l.A)(d)})`],g&&b.deletable,g&&"default"!==d&&b[`deletableColor${(0,l.A)(d)}`],b[i],b[`${i}${(0,l.A)(d)}`]]}})((0,o.A)(({theme:a})=>{let b="light"===a.palette.mode?a.palette.grey[700]:a.palette.grey[300];return{maxWidth:"100%",fontFamily:a.typography.fontFamily,fontSize:a.typography.pxToRem(13),display:"inline-flex",alignItems:"center",justifyContent:"center",height:32,color:(a.vars||a).palette.text.primary,backgroundColor:(a.vars||a).palette.action.selected,borderRadius:16,whiteSpace:"nowrap",transition:a.transitions.create(["background-color","box-shadow"]),cursor:"unset",outline:0,textDecoration:"none",border:0,padding:0,verticalAlign:"middle",boxSizing:"border-box",[`&.${u.disabled}`]:{opacity:(a.vars||a).palette.action.disabledOpacity,pointerEvents:"none"},[`& .${u.avatar}`]:{marginLeft:5,marginRight:-6,width:24,height:24,color:a.vars?a.vars.palette.Chip.defaultAvatarColor:b,fontSize:a.typography.pxToRem(12)},[`& .${u.avatarColorPrimary}`]:{color:(a.vars||a).palette.primary.contrastText,backgroundColor:(a.vars||a).palette.primary.dark},[`& .${u.avatarColorSecondary}`]:{color:(a.vars||a).palette.secondary.contrastText,backgroundColor:(a.vars||a).palette.secondary.dark},[`& .${u.avatarSmall}`]:{marginLeft:4,marginRight:-4,width:18,height:18,fontSize:a.typography.pxToRem(10)},[`& .${u.icon}`]:{marginLeft:5,marginRight:-6},[`& .${u.deleteIcon}`]:{WebkitTapHighlightColor:"transparent",color:a.vars?`rgba(${a.vars.palette.text.primaryChannel} / 0.26)`:(0,g.X4)(a.palette.text.primary,.26),fontSize:22,cursor:"pointer",margin:"0 5px 0 -6px","&:hover":{color:a.vars?`rgba(${a.vars.palette.text.primaryChannel} / 0.4)`:(0,g.X4)(a.palette.text.primary,.4)}},variants:[{props:{size:"small"},style:{height:24,[`& .${u.icon}`]:{fontSize:18,marginLeft:4,marginRight:-4},[`& .${u.deleteIcon}`]:{fontSize:16,marginRight:4,marginLeft:-4}}},...Object.entries(a.palette).filter((0,p.A)(["contrastText"])).map(([b])=>({props:{color:b},style:{backgroundColor:(a.vars||a).palette[b].main,color:(a.vars||a).palette[b].contrastText,[`& .${u.deleteIcon}`]:{color:a.vars?`rgba(${a.vars.palette[b].contrastTextChannel} / 0.7)`:(0,g.X4)(a.palette[b].contrastText,.7),"&:hover, &:active":{color:(a.vars||a).palette[b].contrastText}}}})),{props:a=>a.iconColor===a.color,style:{[`& .${u.icon}`]:{color:a.vars?a.vars.palette.Chip.defaultIconColor:b}}},{props:a=>a.iconColor===a.color&&"default"!==a.color,style:{[`& .${u.icon}`]:{color:"inherit"}}},{props:{onDelete:!0},style:{[`&.${u.focusVisible}`]:{backgroundColor:a.vars?`rgba(${a.vars.palette.action.selectedChannel} / calc(${a.vars.palette.action.selectedOpacity} + ${a.vars.palette.action.focusOpacity}))`:(0,g.X4)(a.palette.action.selected,a.palette.action.selectedOpacity+a.palette.action.focusOpacity)}}},...Object.entries(a.palette).filter((0,p.A)(["dark"])).map(([b])=>({props:{color:b,onDelete:!0},style:{[`&.${u.focusVisible}`]:{background:(a.vars||a).palette[b].dark}}})),{props:{clickable:!0},style:{userSelect:"none",WebkitTapHighlightColor:"transparent",cursor:"pointer","&:hover":{backgroundColor:a.vars?`rgba(${a.vars.palette.action.selectedChannel} / calc(${a.vars.palette.action.selectedOpacity} + ${a.vars.palette.action.hoverOpacity}))`:(0,g.X4)(a.palette.action.selected,a.palette.action.selectedOpacity+a.palette.action.hoverOpacity)},[`&.${u.focusVisible}`]:{backgroundColor:a.vars?`rgba(${a.vars.palette.action.selectedChannel} / calc(${a.vars.palette.action.selectedOpacity} + ${a.vars.palette.action.focusOpacity}))`:(0,g.X4)(a.palette.action.selected,a.palette.action.selectedOpacity+a.palette.action.focusOpacity)},"&:active":{boxShadow:(a.vars||a).shadows[1]}}},...Object.entries(a.palette).filter((0,p.A)(["dark"])).map(([b])=>({props:{color:b,clickable:!0},style:{[`&:hover, &.${u.focusVisible}`]:{backgroundColor:(a.vars||a).palette[b].dark}}})),{props:{variant:"outlined"},style:{backgroundColor:"transparent",border:a.vars?`1px solid ${a.vars.palette.Chip.defaultBorder}`:`1px solid ${"light"===a.palette.mode?a.palette.grey[400]:a.palette.grey[700]}`,[`&.${u.clickable}:hover`]:{backgroundColor:(a.vars||a).palette.action.hover},[`&.${u.focusVisible}`]:{backgroundColor:(a.vars||a).palette.action.focus},[`& .${u.avatar}`]:{marginLeft:4},[`& .${u.avatarSmall}`]:{marginLeft:2},[`& .${u.icon}`]:{marginLeft:4},[`& .${u.iconSmall}`]:{marginLeft:2},[`& .${u.deleteIcon}`]:{marginRight:5},[`& .${u.deleteIconSmall}`]:{marginRight:3}}},...Object.entries(a.palette).filter((0,p.A)()).map(([b])=>({props:{variant:"outlined",color:b},style:{color:(a.vars||a).palette[b].main,border:`1px solid ${a.vars?`rgba(${a.vars.palette[b].mainChannel} / 0.7)`:(0,g.X4)(a.palette[b].main,.7)}`,[`&.${u.clickable}:hover`]:{backgroundColor:a.vars?`rgba(${a.vars.palette[b].mainChannel} / ${a.vars.palette.action.hoverOpacity})`:(0,g.X4)(a.palette[b].main,a.palette.action.hoverOpacity)},[`&.${u.focusVisible}`]:{backgroundColor:a.vars?`rgba(${a.vars.palette[b].mainChannel} / ${a.vars.palette.action.focusOpacity})`:(0,g.X4)(a.palette[b].main,a.palette.action.focusOpacity)},[`& .${u.deleteIcon}`]:{color:a.vars?`rgba(${a.vars.palette[b].mainChannel} / 0.7)`:(0,g.X4)(a.palette[b].main,.7),"&:hover, &:active":{color:(a.vars||a).palette[b].main}}}}))]}})),w=(0,n.Ay)("span",{name:"MuiChip",slot:"Label",overridesResolver:(a,b)=>{let{ownerState:c}=a,{size:d}=c;return[b.label,b[`label${(0,l.A)(d)}`]]}})({overflow:"hidden",textOverflow:"ellipsis",paddingLeft:12,paddingRight:12,whiteSpace:"nowrap",variants:[{props:{variant:"outlined"},style:{paddingLeft:11,paddingRight:11}},{props:{size:"small"},style:{paddingLeft:8,paddingRight:8}},{props:{size:"small",variant:"outlined"},style:{paddingLeft:7,paddingRight:7}}]});function x(a){return"Backspace"===a.key||"Delete"===a.key}let y=d.forwardRef(function(a,b){let c=(0,q.b)({props:a,name:"MuiChip"}),{avatar:g,className:h,clickable:n,color:o="default",component:p,deleteIcon:r,disabled:s=!1,icon:u,label:y,onClick:z,onDelete:A,onKeyDown:B,onKeyUp:C,size:D="medium",variant:E="filled",tabIndex:F,skipFocusWhenDisabled:G=!1,...H}=c,I=d.useRef(null),J=(0,k.A)(I,b),K=a=>{a.stopPropagation(),A&&A(a)},L=!1!==n&&!!z||n,M=L||A?m.A:p||"div",N={...c,component:M,disabled:s,size:D,color:o,iconColor:d.isValidElement(u)&&u.props.color||o,onDelete:!!A,clickable:L,variant:E},O=(a=>{let{classes:b,disabled:c,size:d,color:e,iconColor:g,onDelete:h,clickable:i,variant:j}=a,k={root:["root",j,c&&"disabled",`size${(0,l.A)(d)}`,`color${(0,l.A)(e)}`,i&&"clickable",i&&`clickableColor${(0,l.A)(e)}`,h&&"deletable",h&&`deletableColor${(0,l.A)(e)}`,`${j}${(0,l.A)(e)}`],label:["label",`label${(0,l.A)(d)}`],avatar:["avatar",`avatar${(0,l.A)(d)}`,`avatarColor${(0,l.A)(e)}`],icon:["icon",`icon${(0,l.A)(d)}`,`iconColor${(0,l.A)(g)}`],deleteIcon:["deleteIcon",`deleteIcon${(0,l.A)(d)}`,`deleteIconColor${(0,l.A)(e)}`,`deleteIcon${(0,l.A)(j)}Color${(0,l.A)(e)}`]};return(0,f.A)(k,t,b)})(N),P=M===m.A?{component:p||"div",focusVisibleClassName:O.focusVisible,...A&&{disableRipple:!0}}:{},Q=null;A&&(Q=r&&d.isValidElement(r)?d.cloneElement(r,{className:(0,e.A)(r.props.className,O.deleteIcon),onClick:K}):(0,i.jsx)(j,{className:(0,e.A)(O.deleteIcon),onClick:K}));let R=null;g&&d.isValidElement(g)&&(R=d.cloneElement(g,{className:(0,e.A)(O.avatar,g.props.className)}));let S=null;return u&&d.isValidElement(u)&&(S=d.cloneElement(u,{className:(0,e.A)(O.icon,u.props.className)})),(0,i.jsxs)(v,{as:M,className:(0,e.A)(O.root,h),disabled:!!L&&!!s||void 0,onClick:z,onKeyDown:a=>{a.currentTarget===a.target&&x(a)&&a.preventDefault(),B&&B(a)},onKeyUp:a=>{a.currentTarget===a.target&&A&&x(a)&&A(a),C&&C(a)},ref:J,tabIndex:G&&s?-1:F,ownerState:N,...P,...H,children:[R||S,(0,i.jsx)(w,{className:(0,e.A)(O.label),ownerState:N,children:y}),Q]})})},91059:(a,b,c)=>{c.d(b,{A:()=>p});var d=c(38301),e=c(43249),f=c(2783),g=c(37489),h=c(18168),i=c(68333),j=c(6636),k=c(93895),l=c(21124);let m=(0,h.Ay)("div",{name:"MuiDivider",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,c.absolute&&b.absolute,b[c.variant],c.light&&b.light,"vertical"===c.orientation&&b.vertical,c.flexItem&&b.flexItem,c.children&&b.withChildren,c.children&&"vertical"===c.orientation&&b.withChildrenVertical,"right"===c.textAlign&&"vertical"!==c.orientation&&b.textAlignRight,"left"===c.textAlign&&"vertical"!==c.orientation&&b.textAlignLeft]}})((0,i.A)(({theme:a})=>({margin:0,flexShrink:0,borderWidth:0,borderStyle:"solid",borderColor:(a.vars||a).palette.divider,borderBottomWidth:"thin",variants:[{props:{absolute:!0},style:{position:"absolute",bottom:0,left:0,width:"100%"}},{props:{light:!0},style:{borderColor:a.vars?`rgba(${a.vars.palette.dividerChannel} / 0.08)`:(0,g.X4)(a.palette.divider,.08)}},{props:{variant:"inset"},style:{marginLeft:72}},{props:{variant:"middle",orientation:"horizontal"},style:{marginLeft:a.spacing(2),marginRight:a.spacing(2)}},{props:{variant:"middle",orientation:"vertical"},style:{marginTop:a.spacing(1),marginBottom:a.spacing(1)}},{props:{orientation:"vertical"},style:{height:"100%",borderBottomWidth:0,borderRightWidth:"thin"}},{props:{flexItem:!0},style:{alignSelf:"stretch",height:"auto"}},{props:({ownerState:a})=>!!a.children,style:{display:"flex",textAlign:"center",border:0,borderTopStyle:"solid",borderLeftStyle:"solid","&::before, &::after":{content:'""',alignSelf:"center"}}},{props:({ownerState:a})=>a.children&&"vertical"!==a.orientation,style:{"&::before, &::after":{width:"100%",borderTop:`thin solid ${(a.vars||a).palette.divider}`,borderTopStyle:"inherit"}}},{props:({ownerState:a})=>"vertical"===a.orientation&&a.children,style:{flexDirection:"column","&::before, &::after":{height:"100%",borderLeft:`thin solid ${(a.vars||a).palette.divider}`,borderLeftStyle:"inherit"}}},{props:({ownerState:a})=>"right"===a.textAlign&&"vertical"!==a.orientation,style:{"&::before":{width:"90%"},"&::after":{width:"10%"}}},{props:({ownerState:a})=>"left"===a.textAlign&&"vertical"!==a.orientation,style:{"&::before":{width:"10%"},"&::after":{width:"90%"}}}]}))),n=(0,h.Ay)("span",{name:"MuiDivider",slot:"Wrapper",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.wrapper,"vertical"===c.orientation&&b.wrapperVertical]}})((0,i.A)(({theme:a})=>({display:"inline-block",paddingLeft:`calc(${a.spacing(1)} * 1.2)`,paddingRight:`calc(${a.spacing(1)} * 1.2)`,whiteSpace:"nowrap",variants:[{props:{orientation:"vertical"},style:{paddingTop:`calc(${a.spacing(1)} * 1.2)`,paddingBottom:`calc(${a.spacing(1)} * 1.2)`}}]}))),o=d.forwardRef(function(a,b){let c=(0,j.b)({props:a,name:"MuiDivider"}),{absolute:d=!1,children:g,className:h,orientation:i="horizontal",component:o=g||"vertical"===i?"div":"hr",flexItem:p=!1,light:q=!1,role:r="hr"!==o?"separator":void 0,textAlign:s="center",variant:t="fullWidth",...u}=c,v={...c,absolute:d,component:o,flexItem:p,light:q,orientation:i,role:r,textAlign:s,variant:t},w=(a=>{let{absolute:b,children:c,classes:d,flexItem:e,light:g,orientation:h,textAlign:i,variant:j}=a;return(0,f.A)({root:["root",b&&"absolute",j,g&&"light","vertical"===h&&"vertical",e&&"flexItem",c&&"withChildren",c&&"vertical"===h&&"withChildrenVertical","right"===i&&"vertical"!==h&&"textAlignRight","left"===i&&"vertical"!==h&&"textAlignLeft"],wrapper:["wrapper","vertical"===h&&"wrapperVertical"]},k.K,d)})(v);return(0,l.jsx)(m,{as:o,className:(0,e.A)(w.root,h),role:r,ref:b,ownerState:v,"aria-orientation":"separator"===r&&("hr"!==o||"vertical"===i)?i:void 0,...u,children:g?(0,l.jsx)(n,{className:w.wrapper,ownerState:v,children:g}):null})});o&&(o.muiSkipListHighlight=!0);let p=o},93895:(a,b,c)=>{c.d(b,{A:()=>g,K:()=>f});var d=c(29565),e=c(33105);function f(a){return(0,e.Ay)("MuiDivider",a)}let g=(0,d.A)("MuiDivider",["root","absolute","fullWidth","inset","middle","flexItem","light","vertical","withChildren","withChildrenVertical","textAlignRight","textAlignLeft","wrapper","wrapperVertical"])}};
@@ -1,37 +0,0 @@
1
- "use strict";exports.id=1910,exports.ids=[1910],exports.modules={22797:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2M12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8"}),"ErrorOutline")},24856:(a,b,c)=>{c.d(b,{pX:()=>d});function d(a,b,c,d){let e=`${a.type}-bottom`,f=`${b.type}-top`;return{id:`${a.id}:${e}->${b.id}:${f}`,source:a.id,sourceHandle:e,target:b.id,targetHandle:f,type:"custom",data:{edgeType:"standard",...c?{bidirectional:!0}:{},...d?{condition:d}:{}},animated:!0}}},31164:(a,b,c)=>{c.d(b,{jY:()=>f,oY:()=>g,sZ:()=>h});var d=c(21124);c(38301);var e=c(97004);let f=a=>(0,d.jsx)(e.A,{...a,variant:"standard"}),g=a=>(0,d.jsx)(e.A,{...a,variant:"mcp"}),h=a=>(0,d.jsx)(e.A,{...a,variant:"resource"})},37498:(a,b,c)=>{c.d(b,{IK:()=>N,v2:()=>O,Uw:()=>M,nH:()=>w,z9:()=>Q,vp:()=>x,z3:()=>R,vm:()=>L,lA:()=>P,M6:()=>F});var d=c(21124),e=c(38301),f=c(95791),g=c(46973),h=c(18168),i=c(60839),j=c(54573),k=c(81637),l=c(79515),m=c(44079),n=c(99561);let o=(0,c(27080).A)((0,d.jsx)("path",{d:"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2M6 9h12v2H6zm8 5H6v-2h8zm4-6H6V6h12z"}),"Chat");var p=c(98540),q=c(83144),r=c(88970),s=c(87351),t=c(93995),u=c(17332),v=c(63908);let w="#009688",x="#7E57C2",y={start:{main:()=>"#795548",light:()=>"#A1887F"},process:{main:a=>a.palette.secondary.main,light:a=>a.palette.secondary.light},finish:{main:a=>a.palette.success.main,light:a=>a.palette.success.light},mcp:{main:a=>a.palette.info.main,light:a=>a.palette.info.light},subflow:{main:a=>a.palette.warning.main,light:a=>a.palette.warning.light},resource:{main:()=>w,light:()=>"#4DB6AC"},signal:{main:()=>x,light:()=>"#B39DDB"}},z=(a,b)=>(y[a]??y.start).main(b),A=(0,h.Ay)(j.A,{shouldForwardProp:a=>!["nodeType","selected"].includes(a)})(({theme:a,nodeType:b,selected:c})=>({padding:a.spacing(1.5),width:"200px",borderRadius:"8px",backgroundColor:a.palette.background.paper,border:`2px solid ${z(b,a)}`,boxShadow:c?`0 0 0 2px ${a.palette.primary.main}, 0 3px 10px rgba(0,0,0,0.2)`:a.shadows[2],transition:"all 0.2s ease","&:hover":{boxShadow:`0 0 0 1px ${z(b,a)}, 0 3px 10px rgba(0,0,0,0.1)`}})),B=(0,h.Ay)(k.default,{shouldForwardProp:a=>"nodeType"!==a})(({theme:a,nodeType:b})=>({display:"flex",alignItems:"center",justifyContent:"space-between",borderBottom:`1px solid ${(y[b]??y.start).light(a)}`,marginBottom:a.spacing(1),paddingBottom:a.spacing(.5)})),C=(0,h.Ay)(k.default)({display:"flex",alignItems:"center",gap:"8px"}),D=(0,h.Ay)(k.default)(({theme:a})=>({marginTop:a.spacing(1),fontSize:"0.8rem"})),E=(0,h.Ay)(k.default)(({theme:a})=>({display:"flex",justifyContent:"space-between",padding:a.spacing(.5,0),borderBottom:`1px dashed ${"dark"===a.palette.mode?"rgba(255,255,255,0.1)":"rgba(0,0,0,0.1)"}`})),F=(a,b)=>z(a,b),G=a=>({backgroundColor:a.palette.info.main,borderColor:"dark"===a.palette.mode?a.palette.background.paper:"white",width:16,height:16,borderRadius:8,borderWidth:2}),H=a=>({backgroundColor:a.palette.secondary.main,borderColor:"dark"===a.palette.mode?a.palette.background.paper:"white",width:16,height:16,borderRadius:8,borderWidth:2}),I=a=>({backgroundColor:a.palette.primary.main,borderColor:"dark"===a.palette.mode?a.palette.background.paper:"white",width:16,height:16,borderRadius:8,borderWidth:2}),J=a=>({backgroundColor:w,borderColor:"dark"===a.palette.mode?a.palette.background.paper:"white",width:16,height:16,borderRadius:8,borderWidth:2}),K=({data:a,nodeType:b,selected:c})=>{let h=(0,i.A)(),[j,k]=(0,e.useState)(!1),y=a||{label:"No Label",properties:{}},z="string"==typeof y.label?y.label:"No Label",F=y.properties||{},K=Object.keys(F).length;return(0,d.jsx)(d.Fragment,{children:(0,d.jsxs)(A,{elevation:2,nodeType:b,selected:c,children:[(()=>{if("mcp"===b)return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.h7,{id:"mcp-top",type:"target",position:g.yX.Top,style:G(h)}),(0,d.jsx)(f.h7,{id:"mcp-right",type:"target",position:g.yX.Right,style:G(h)}),(0,d.jsx)(f.h7,{id:"mcp-bottom",type:"source",position:g.yX.Bottom,style:G(h)}),(0,d.jsx)(f.h7,{id:"mcp-left",type:"target",position:g.yX.Left,style:G(h)})]});if("process"===b)return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.h7,{id:"process-top",type:"target",position:g.yX.Top,style:H(h)}),(0,d.jsx)(f.h7,{id:"process-bottom",type:"source",position:g.yX.Bottom,style:H(h)}),(0,d.jsx)(f.h7,{id:"process-left-mcp",type:"source",position:g.yX.Left,style:{...I(h),top:"30%"}}),(0,d.jsx)(f.h7,{id:"process-right-mcp",type:"source",position:g.yX.Right,style:{...I(h),top:"30%"}}),(0,d.jsx)(f.h7,{id:"process-left-resource",type:"target",position:g.yX.Left,style:{...J(h),top:"70%"}}),(0,d.jsx)(f.h7,{id:"process-right-resource",type:"source",position:g.yX.Right,style:{...J(h),top:"70%"}})]});if("resource"===b)return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.h7,{id:"resource-in",type:"target",position:g.yX.Left,style:J(h)}),(0,d.jsx)(f.h7,{id:"resource-out",type:"source",position:g.yX.Right,style:J(h)})]});if("start"===b)return(0,d.jsx)(f.h7,{id:"start-bottom",type:"source",position:g.yX.Bottom,style:H(h)});if("finish"===b)return(0,d.jsx)(f.h7,{id:"finish-top",type:"target",position:g.yX.Top,style:H(h)});else if("subflow"===b)return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.h7,{id:"subflow-top",type:"target",position:g.yX.Top,style:H(h)}),(0,d.jsx)(f.h7,{id:"subflow-bottom",type:"source",position:g.yX.Bottom,style:H(h)})]});else if("signal"===b)return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.h7,{id:"signal-top",type:"target",position:g.yX.Top,style:H(h)}),(0,d.jsx)(f.h7,{id:"signal-bottom",type:"source",position:g.yX.Bottom,style:H(h)})]});return null})(),(0,d.jsxs)(B,{nodeType:b,children:[(0,d.jsxs)(C,{children:[(a=>{switch(a){case"start":default:return(0,d.jsx)(o,{sx:{color:"#795548"}});case"process":return(0,d.jsx)(p.A,{color:"secondary"});case"finish":return(0,d.jsx)(q.A,{color:"success"});case"mcp":return(0,d.jsx)(p.A,{color:"info"});case"subflow":return(0,d.jsx)(r.A,{sx:{color:"warning.main"}});case"resource":return(0,d.jsx)(s.A,{sx:{color:w}});case"signal":return(0,d.jsx)(t.A,{sx:{color:x}})}})(b),(0,d.jsx)(l.default,{variant:"subtitle2",fontWeight:"bold",children:z})]}),K>0&&(0,d.jsx)(m.A,{size:"small",onClick:a=>{a.stopPropagation(),k(!j)},sx:{padding:.5},children:j?(0,d.jsx)(v.A,{fontSize:"small"}):(0,d.jsx)(u.A,{fontSize:"small"})})]}),(0,d.jsx)(n.A,{in:j,children:(0,d.jsx)(D,{children:Object.entries(F).map(([a,b])=>(0,d.jsxs)(E,{children:[(0,d.jsxs)(l.default,{variant:"caption",sx:{fontWeight:"bold"},children:[a,":"]}),(0,d.jsxs)(l.default,{variant:"caption",children:[String(b).substring(0,30),String(b).length>30?"...":""]})]},a))})}),K>0&&!j&&(0,d.jsx)(l.default,{variant:"caption",color:"text.secondary",children:`${K} properties configured`})]})})},L=(0,e.memo)(function(a){return(0,d.jsx)(K,{...a,nodeType:"start",selected:a.selected})}),M=(0,e.memo)(function(a){return(0,d.jsx)(K,{...a,nodeType:"process",selected:a.selected})}),N=(0,e.memo)(function(a){return(0,d.jsx)(K,{...a,nodeType:"finish",selected:a.selected})}),O=(0,e.memo)(function(a){return(0,d.jsx)(K,{...a,nodeType:"mcp",selected:a.selected})}),P=(0,e.memo)(function(a){return(0,d.jsx)(K,{...a,nodeType:"subflow",selected:a.selected})}),Q=(0,e.memo)(function(a){return(0,d.jsx)(K,{...a,nodeType:"resource",selected:a.selected})}),R=(0,e.memo)(function(a){return(0,d.jsx)(K,{...a,nodeType:"signal",selected:a.selected})})},40216:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M22 11V3h-7v3H9V3H2v8h7V8h2v10h4v3h7v-8h-7v3h-2V8h2v3zM7 9H4V5h3zm10 6h3v4h-3zm0-10h3v4h-3z"}),"AccountTreeOutlined")},55498:(a,b,c)=>{c.d(b,{o:()=>S,A:()=>T});var d=c(21124),e=c(38301),f=c(18168),g=c(30818),h=c(81637),i=c(37489),j=c(60839),k=c(79515),l=c(43312),m=c(44079),n=c(423),o=c(27114),p=c(41893),q=c(98463),r=c(43249),s=c(2783),t=c(78871),u=c(68333),v=c(6636),w=c(29565),x=c(33105);function y(a){return(0,x.Ay)("MuiSkeleton",a)}(0,w.A)("MuiSkeleton",["root","text","rectangular","rounded","circular","pulse","wave","withChildren","fitContent","heightAuto"]);let z=(0,t.i7)`
2
- 0% {
3
- opacity: 1;
4
- }
5
-
6
- 50% {
7
- opacity: 0.4;
8
- }
9
-
10
- 100% {
11
- opacity: 1;
12
- }
13
- `,A=(0,t.i7)`
14
- 0% {
15
- transform: translateX(-100%);
16
- }
17
-
18
- 50% {
19
- /* +0.5s of delay between each loop */
20
- transform: translateX(100%);
21
- }
22
-
23
- 100% {
24
- transform: translateX(100%);
25
- }
26
- `,B="string"!=typeof z?(0,t.AH)`
27
- animation: ${z} 2s ease-in-out 0.5s infinite;
28
- `:null,C="string"!=typeof A?(0,t.AH)`
29
- &::after {
30
- animation: ${A} 2s linear 0.5s infinite;
31
- }
32
- `:null,D=(0,f.Ay)("span",{name:"MuiSkeleton",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,b[c.variant],!1!==c.animation&&b[c.animation],c.hasChildren&&b.withChildren,c.hasChildren&&!c.width&&b.fitContent,c.hasChildren&&!c.height&&b.heightAuto]}})((0,u.A)(({theme:a})=>{let b=String(a.shape.borderRadius).match(/[\d.\-+]*\s*(.*)/)[1]||"px",c=parseFloat(a.shape.borderRadius);return{display:"block",backgroundColor:a.vars?a.vars.palette.Skeleton.bg:(0,i.X4)(a.palette.text.primary,"light"===a.palette.mode?.11:.13),height:"1.2em",variants:[{props:{variant:"text"},style:{marginTop:0,marginBottom:0,height:"auto",transformOrigin:"0 55%",transform:"scale(1, 0.60)",borderRadius:`${c}${b}/${Math.round(c/.6*10)/10}${b}`,"&:empty:before":{content:'"\\00a0"'}}},{props:{variant:"circular"},style:{borderRadius:"50%"}},{props:{variant:"rounded"},style:{borderRadius:(a.vars||a).shape.borderRadius}},{props:({ownerState:a})=>a.hasChildren,style:{"& > *":{visibility:"hidden"}}},{props:({ownerState:a})=>a.hasChildren&&!a.width,style:{maxWidth:"fit-content"}},{props:({ownerState:a})=>a.hasChildren&&!a.height,style:{height:"auto"}},{props:{animation:"pulse"},style:B||{animation:`${z} 2s ease-in-out 0.5s infinite`}},{props:{animation:"wave"},style:{position:"relative",overflow:"hidden",WebkitMaskImage:"-webkit-radial-gradient(white, black)","&::after":{background:`linear-gradient(
33
- 90deg,
34
- transparent,
35
- ${(a.vars||a).palette.action.hover},
36
- transparent
37
- )`,content:'""',position:"absolute",transform:"translateX(-100%)",bottom:0,left:0,right:0,top:0}}},{props:{animation:"wave"},style:C||{"&::after":{animation:`${A} 2s linear 0.5s infinite`}}}]}})),E=e.forwardRef(function(a,b){let c=(0,v.b)({props:a,name:"MuiSkeleton"}),{animation:e="pulse",className:f,component:g="span",height:h,style:i,variant:j="text",width:k,...l}=c,m={...c,animation:e,component:g,variant:j,hasChildren:!!l.children},n=(a=>{let{classes:b,variant:c,animation:d,hasChildren:e,width:f,height:g}=a;return(0,s.A)({root:["root",c,d,e&&"withChildren",e&&!f&&"fitContent",e&&!g&&"heightAuto"]},y,b)})(m);return(0,d.jsx)(D,{as:g,ref:b,className:(0,r.A)(n.root,f),ownerState:m,...l,style:{width:k,height:h,...i}})});var F=c(91034),G=c(38941),H=c(12033),I=c(1312),J=c(5501);let K=(0,c(27080).A)((0,d.jsx)("path",{d:"m22 9.24-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28z"}),"StarBorder");var L=c(22797),M=c(21358),N=c(37498),O=c(78352);let P=(0,c(19815).h)("components/Flow/FlowDashboard/FlowCard"),Q=(0,f.Ay)(g.A,{shouldForwardProp:a=>"selected"!==a})(({theme:a,selected:b})=>({display:"flex",flexDirection:"column",height:"100%",transition:"all 0.3s cubic-bezier(0.4, 0, 0.2, 1)",position:"relative",border:b?`2px solid ${a.palette.primary.main}`:"none",boxShadow:b?a.shadows[4]:a.shadows[1],"&:hover":{boxShadow:a.shadows[6],transform:"translateY(-4px)"},"&::before":b?{content:'""',position:"absolute",top:0,left:0,width:"100%",height:"4px",backgroundColor:a.palette.primary.main}:{}})),R=(0,f.Ay)(h.default)(({theme:a})=>({height:"140px",backgroundColor:(0,i.X4)(a.palette.background.default,.7),borderRadius:a.shape.borderRadius,display:"flex",alignItems:"center",justifyContent:"center",margin:a.spacing(1),overflow:"hidden",position:"relative"})),S=()=>(0,d.jsxs)(g.A,{sx:{height:"100%",display:"flex",flexDirection:"column"},children:[(0,d.jsx)(h.default,{sx:{p:1},children:(0,d.jsx)(E,{variant:"rectangular",height:140})}),(0,d.jsxs)(o.A,{sx:{flexGrow:1},children:[(0,d.jsx)(E,{variant:"text",width:"80%",height:30}),(0,d.jsxs)(h.default,{sx:{display:"flex",gap:1,mt:1},children:[(0,d.jsx)(E,{variant:"rectangular",width:60,height:20}),(0,d.jsx)(E,{variant:"rectangular",width:90,height:20})]})]}),(0,d.jsxs)(q.A,{sx:{justifyContent:"flex-end",p:1},children:[(0,d.jsx)(E,{variant:"circular",width:28,height:28}),(0,d.jsx)(E,{variant:"circular",width:28,height:28}),(0,d.jsx)(E,{variant:"circular",width:28,height:28})]})]}),T=({flow:a,selected:b,onSelect:c,onDelete:f,onCopy:g,onEdit:r,onSetFolder:s,onToggleFavorite:t,folders:u=[],validation:v,pickerMode:w=!1})=>{P.debug("Rendering FlowCard",{flowId:a.id,flowName:a.name});let x=(0,j.A)(),[y,z]=(0,e.useState)(null),A=v?.errorCount??0,B=v?.warningCount??0,C=A>0?"error":B>0?"warning":null,D=v?(0,d.jsxs)(h.default,{children:[(0,d.jsx)(k.default,{variant:"caption",sx:{fontWeight:600,display:"block",mb:.5},children:A>0?`${A} problem${1===A?"":"s"} — won't run`:`${B} warning${1===B?"":"s"}`}),v.issues.slice(0,5).map((a,b)=>(0,d.jsxs)(k.default,{variant:"caption",sx:{display:"block"},children:["• ",a.message]},b)),v.issues.length>5&&(0,d.jsxs)(k.default,{variant:"caption",sx:{display:"block",fontStyle:"italic"},children:["…and ",v.issues.length-5," more"]})]}):null;return(0,d.jsxs)(Q,{selected:b,children:[t&&(0,d.jsx)(l.A,{title:a.favorite?"Remove from favorites":"Add to favorites",arrow:!0,placement:"top",children:(0,d.jsx)(m.A,{size:"small",onClick:b=>{b.stopPropagation(),t&&t(a.id)},sx:{position:"absolute",top:4,left:4,zIndex:2,color:a.favorite?x.palette.warning.main:x.palette.text.secondary,backgroundColor:(0,i.X4)(x.palette.background.paper,.6),"&:hover":{backgroundColor:(0,i.X4)(x.palette.background.paper,.9)}},children:a.favorite?(0,d.jsx)(J.A,{fontSize:"small"}):(0,d.jsx)(K,{fontSize:"small"})})}),C&&(0,d.jsx)(l.A,{title:D,arrow:!0,placement:"top",children:(0,d.jsxs)(h.default,{sx:{position:"absolute",top:8,right:8,zIndex:2,display:"flex",alignItems:"center",gap:.5,px:.75,py:.25,borderRadius:1,color:"#fff",backgroundColor:"error"===C?x.palette.error.main:x.palette.warning.main,boxShadow:x.shadows[2],pointerEvents:"auto"},children:["error"===C?(0,d.jsx)(L.A,{sx:{fontSize:16}}):(0,d.jsx)(M.A,{sx:{fontSize:16}}),(0,d.jsx)(k.default,{variant:"caption",sx:{fontWeight:700,lineHeight:1},children:"error"===C?A:B})]})}),(0,d.jsxs)(n.A,{onClick:()=>c(a.id),sx:{display:"flex",flexDirection:"column",alignItems:"stretch",height:"100%",position:"relative"},children:[(0,d.jsx)(R,{children:(()=>{if(0===a.nodes.length)return(0,d.jsx)(h.default,{sx:{width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center"},children:(0,d.jsx)(k.default,{color:"textSecondary",align:"center",children:"Empty Flow"})});let b=a.nodes.map(a=>a.position?.x??0),c=a.nodes.map(a=>a.position?.y??0),e=Math.min(...b),f=Math.min(...c),g=Math.max(...b)+180,i=Math.max(...c)+70,j=`${e-40} ${f-40} ${g-e+80} ${i-f+80}`,l=a=>({cx:(a.position?.x??0)+90,cy:(a.position?.y??0)+35});return(0,d.jsx)(h.default,{sx:{width:"100%",height:"100%",p:1},children:(0,d.jsxs)("svg",{width:"100%",height:"100%",viewBox:j,preserveAspectRatio:"xMidYMid meet",style:{display:"block"},children:[a.edges.map((b,c)=>{let e=a.nodes.find(a=>a.id===b.source),f=a.nodes.find(a=>a.id===b.target);if(!e||!f)return null;let g=l(e),h=l(f);return(0,d.jsx)("line",{x1:g.cx,y1:g.cy,x2:h.cx,y2:h.cy,stroke:x.palette.text.secondary,strokeWidth:2,opacity:.5,vectorEffect:"non-scaling-stroke"},b.id||c)}),a.nodes.map(a=>{let b=a.position?.x??0,c=a.position?.y??0,e=a.data?.type??"process",f=(0,N.M6)(e,x);return(0,d.jsxs)("g",{children:[(0,d.jsx)("rect",{x:b,y:c,width:180,height:70,rx:12,fill:f,opacity:.85,stroke:x.palette.background.paper,strokeWidth:2,vectorEffect:"non-scaling-stroke"}),(0,d.jsx)("text",{x:b+90,y:c+35,textAnchor:"middle",dominantBaseline:"central",fill:"#fff",fontSize:35,fontWeight:"bold",children:e.substring(0,1).toUpperCase()})]},a.id)})]})})})()}),(0,d.jsxs)(o.A,{sx:{flexGrow:1,pb:0},children:[(0,d.jsx)(k.default,{variant:"h6",component:"div",noWrap:!0,children:a.name}),a.description&&(0,d.jsx)(l.A,{title:a.description,placement:"bottom-start",children:(0,d.jsx)(k.default,{variant:"body2",color:"text.secondary",sx:{mt:.5,display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden"},children:a.description})}),(0,d.jsxs)(h.default,{sx:{display:"flex",gap:.5,mt:1,flexWrap:"wrap"},children:[(0,d.jsx)(p.A,{size:"small",label:`${a.nodes.length} nodes`,color:"primary",variant:"outlined",sx:{fontSize:"0.7rem",height:20}}),(0,d.jsx)(p.A,{size:"small",label:`${a.edges.length} connections`,color:"secondary",variant:"outlined",sx:{fontSize:"0.7rem",height:20}})]})]})]}),!w&&(0,d.jsxs)(q.A,{sx:{justifyContent:"flex-end",p:1,opacity:.7,"&:hover":{opacity:1}},children:[r&&(0,d.jsx)(l.A,{title:"Edit flow metadata",children:(0,d.jsx)(m.A,{size:"small",onClick:b=>{b.stopPropagation(),r&&r(a.id)},children:(0,d.jsx)(H.A,{fontSize:"small"})})}),g&&(0,d.jsx)(l.A,{title:"Copy flow",children:(0,d.jsx)(m.A,{size:"small",onClick:b=>{b.stopPropagation(),g&&g(a.id)},children:(0,d.jsx)(G.A,{fontSize:"small"})})}),s&&(0,d.jsx)(l.A,{title:a.folder?`Folder: ${a.folder}`:"Move to folder",children:(0,d.jsx)(m.A,{size:"small",onClick:a=>{a.stopPropagation(),z(a.currentTarget)},color:a.folder?"primary":"default",children:(0,d.jsx)(I.A,{fontSize:"small"})})}),f&&(0,d.jsx)(l.A,{title:"Delete flow",children:(0,d.jsx)(m.A,{size:"small",onClick:b=>{b.stopPropagation(),f&&f(a.id)},color:"error",children:(0,d.jsx)(F.A,{fontSize:"small"})})})]}),!w&&s&&(0,d.jsx)(O.A,{anchorEl:y,open:!!y,currentFolder:a.folder,folders:u,onClose:()=>z(null),onAssign:b=>s(a.id,b)})]})}},83144:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)([(0,e.jsx)("path",{d:"m17 17 5-5-5-5-1.41 1.41L18.17 11H9v2h9.17l-2.58 2.59z"},"0"),(0,e.jsx)("path",{d:"M19 19H5V5h14v2h2V5c0-1.1-.89-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.11 0 2-.9 2-2v-2h-2z"},"1")],"Output")},87351:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8zm2 16H8v-2h8zm0-4H8v-2h8zm-3-5V3.5L18.5 9z"}),"Description")},93995:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M7.58 4.08 6.15 2.65C3.75 4.48 2.17 7.3 2.03 10.5h2c.15-2.65 1.51-4.97 3.55-6.42m12.39 6.42h2c-.15-3.2-1.73-6.02-4.12-7.85l-1.42 1.43c2.02 1.45 3.39 3.77 3.54 6.42M18 11c0-3.07-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2zm-6 11c.14 0 .27-.01.4-.04.65-.14 1.18-.58 1.44-1.18q.15-.36.15-.78h-4c.01 1.1.9 2 2.01 2"}),"NotificationsActive")},97004:(a,b,c)=>{c.d(b,{R:()=>k,A:()=>o});var d=c(21124),e=c(38301),f=c(95791),g=c(46973),h=c(18168),i=c(60839);function j(a){return a===g.yX.Left||a===g.yX.Right?"h":"v"}let k="flowEdgeWaypoint",l={x:16,y:-16},m=(0,h.Ay)("button")(({theme:a})=>({background:a.palette.background.paper,border:`1px solid ${a.palette.divider}`,cursor:"pointer",borderRadius:"50%",fontSize:"10px",width:"20px",height:"20px",display:"flex",justifyContent:"center",alignItems:"center",color:a.palette.text.secondary,boxShadow:"dark"===a.palette.mode?"0 2px 4px rgba(0,0,0,0.3)":"0 2px 4px rgba(0,0,0,0.1)","&:hover":{background:a.palette.error.main,borderColor:a.palette.error.main,color:a.palette.error.contrastText}})),n=(0,h.Ay)(f.tE)({"&&.animated":{strokeDasharray:5,animation:"flowPathAnimation 500ms infinite linear"},"&&.animated-both":{strokeDasharray:5,animation:"flowPathAnimation 750ms infinite linear alternate"},"@keyframes flowPathAnimation":{"0%":{strokeDashoffset:10},"100%":{strokeDashoffset:0}}}),o=({variant:a,id:b,sourceX:c,sourceY:h,targetX:o,targetY:p,sourcePosition:q,targetPosition:r,style:s={},markerEnd:t,markerStart:u,data:v,selected:w})=>{let x,y,z=(0,i.A)(),{deleteElements:A,screenToFlowPosition:B}=(0,f.VH)(),[C,D]=(0,e.useState)(!1),[E,F]=(0,e.useState)(null),G=(0,e.useRef)(null),H=(0,e.useRef)(!1),I=v?.waypoints??(v?.waypoint?[v.waypoint]:[]),J=E??I,K="standard"===a&&!!v?.bidirectional,L="mcp"===a||"resource"===a,M=q||(L?g.yX.Left:g.yX.Bottom),N=r||(L?g.yX.Right:g.yX.Top),O=null;if(J.length>0)x=(O=function(a,b,c,d,e,f=8){let g=[a,...e,c],h=[a],i=[],j=b,k=(a,b)=>{let c;c=h[h.length-1],.01>Math.abs(c.x-a.x)&&.01>Math.abs(c.y-a.y)||(h.push(a),i.push(b))};for(let a=1;a<g.length;a++){let b=h[h.length-1],c=g[a],e=a-1;if(a===g.length-1){if("v"===d)if("h"===j)k({x:c.x,y:b.y},e);else{let a=(b.y+c.y)/2;k({x:b.x,y:a},e),k({x:c.x,y:a},e)}else if("v"===j)k({x:b.x,y:c.y},e);else{let a=(b.x+c.x)/2;k({x:a,y:b.y},e),k({x:a,y:c.y},e)}k(c,e)}else k("v"===j?{x:b.x,y:c.y}:{x:c.x,y:b.y},e),k(c,e),j="v"===j?"h":"v"}!function(a,b){for(let c=1;c<a.length-1;c++){let d=a[c-1],e=a[c],f=a[c+1],g=.01>Math.abs(d.x-e.x)&&.01>Math.abs(f.x-e.x)&&(e.y-d.y)*(f.y-e.y)<0,h=.01>Math.abs(d.y-e.y)&&.01>Math.abs(f.y-e.y)&&(e.x-d.x)*(f.x-e.x)<0;if(g||h){if(g){let g=(a[c-2]?.x??e.x-1)<=e.x,h=g?e.x-12:e.x+12,i=g?e.x+12:e.x-12,j=b[c-1];a.splice(c-1,3,{x:h,y:d.y},{x:h,y:e.y},{x:i,y:e.y},{x:i,y:f.y}),b.splice(c-1,2,j,j,j)}else{let g=(a[c-2]?.y??e.y-1)<=e.y,h=g?e.y-12:e.y+12,i=g?e.y+12:e.y-12,j=b[c-1];a.splice(c-1,3,{x:d.x,y:h},{x:e.x,y:h},{x:e.x,y:i},{x:f.x,y:i}),b.splice(c-1,2,j,j,j)}c++}}}(h,i);let l=[];for(let a=0;a<h.length-1;a++)l.push({a:h[a],b:h[a+1],gap:i[a]});return{d:function(a,b){if(0===a.length)return"";let c=`M ${a[0].x},${a[0].y}`;for(let d=1;d<a.length-1;d++){let e=a[d-1],f=a[d],g=a[d+1],h=Math.hypot(f.x-e.x,f.y-e.y),i=Math.hypot(g.x-f.x,g.y-f.y),j=Math.min(b,h/2,i/2);if(j<.5){c+=` L ${f.x},${f.y}`;continue}let k={x:f.x-(f.x-e.x)/h*j,y:f.y-(f.y-e.y)/h*j},l={x:f.x+(g.x-f.x)/i*j,y:f.y+(g.y-f.y)/i*j};c+=` L ${k.x},${k.y} Q ${f.x},${f.y} ${l.x},${l.y}`}let d=a[a.length-1];return c+` L ${d.x},${d.y}`}(h,f),points:h,segments:l,midpoint:function(a,b){let c=0;for(let b=0;b<a.length-1;b++)c+=Math.hypot(a[b+1].x-a[b].x,a[b+1].y-a[b].y);if(0===c)return a[0];let d=.5*c;for(let b=0;b<a.length-1;b++){let c=Math.hypot(a[b+1].x-a[b].x,a[b+1].y-a[b].y);if(d<=c){let e=0===c?0:d/c;return{x:a[b].x+(a[b+1].x-a[b].x)*e,y:a[b].y+(a[b+1].y-a[b].y)*e}}d-=c}return a[a.length-1]}(h,.5)}}({x:c,y:h},j(M),{x:o,y:p},j(N),J,16)).d,y=O.midpoint;else{let[a,b,d]=(0,g.oN)({sourceX:c,sourceY:h,sourcePosition:M,targetX:o,targetY:p,targetPosition:N,borderRadius:16});x=a,y={x:b,y:d}}let P=L?"":K?"animated-both":v?.animated!==!1?"animated":"",Q={...s,strokeWidth:w?3:2,stroke:"mcp"===a?w?z.palette.info.light:z.palette.info.main:"resource"===a?w?"#4DB6AC":"#009688":w?z.palette.primary.main:z.palette.text.secondary,...P?{animationDuration:`${Math.round((K?750:500)*(a=>{let b=0;for(let c=0;c<a.length;c++)b=31*b+a.charCodeAt(c)|0;return .9+Math.abs(b)%1e3/1e3*.2})(b))}ms`}:{}},R=a=>{document.dispatchEvent(new CustomEvent(k,{detail:{edgeId:b,waypoints:a&&a.length>0?a:null}}))},S=a=>{if(0!==a.button)return;let b=B({x:a.clientX,y:a.clientY}),c=O?function(a,b){let c=0,d=1/0;for(let e of b){let b=function(a,b,c){let d=c.x-b.x,e=c.y-b.y,f=d*d+e*e,g=0===f?0:Math.max(0,Math.min(1,((a.x-b.x)*d+(a.y-b.y)*e)/f));return Math.hypot(a.x-(b.x+d*g),a.y-(b.y+e*g))}(a,e.a,e.b);b<d&&(d=b,c=e.gap)}return c}(b,O.segments):0,d=[...J];d.splice(c,0,b),G.current={index:c,pointerId:a.pointerId,startClient:{x:a.clientX,y:a.clientY},base:d,active:!1,fromPath:!0},a.target.setPointerCapture(a.pointerId)},T=a=>{let b=G.current;if(!b||a.pointerId!==b.pointerId)return;if(!b.active){if(4>Math.hypot(a.clientX-b.startClient.x,a.clientY-b.startClient.y))return;b.active=!0}let c=[...b.base];c[b.index]=B({x:a.clientX,y:a.clientY}),F(c)},U=a=>{let b=G.current;if(!b||a.pointerId!==b.pointerId||(G.current=null,a.target.releasePointerCapture(a.pointerId),H.current=b.active,!b.active))return;let c=[...b.base];c[b.index]=B({x:a.clientX,y:a.clientY}),R(c),F(null)},V=null!==E,W=w||C||V;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(n,{path:x,markerEnd:t,markerStart:u,style:Q,id:b,className:P}),(0,d.jsx)("path",{d:x,fill:"none",stroke:"transparent",strokeWidth:20,style:{cursor:V?"grabbing":"grab"},onMouseEnter:()=>D(!0),onMouseLeave:()=>D(!1),onPointerDown:S,onPointerMove:T,onPointerUp:U}),(0,d.jsxs)(f.rV,{children:[W&&J.map((a,b)=>(0,d.jsx)("div",{style:{position:"absolute",transform:`translate(-50%, -50%) translate(${a.x}px,${a.y}px)`,width:12,height:12,borderRadius:"50%",background:z.palette.primary.main,border:`2px solid ${z.palette.background.paper}`,boxShadow:z.shadows[1],cursor:"move",pointerEvents:"all",touchAction:"none",zIndex:1001},className:"nodrag nopan",title:"Drag to move; double-click to remove this bend",onMouseEnter:()=>D(!0),onMouseLeave:()=>D(!1),onPointerDown:a=>{0===a.button&&(a.stopPropagation(),G.current={index:b,pointerId:a.pointerId,startClient:{x:a.clientX,y:a.clientY},base:[...J],active:!1,fromPath:!1},a.target.setPointerCapture(a.pointerId))},onPointerMove:T,onPointerUp:U,onDoubleClick:a=>{a.stopPropagation(),(a=>{let b=J.filter((b,c)=>c!==a);F(null),R(b)})(b)}},b)),(0,d.jsx)("div",{style:{position:"absolute",transform:`translate(-50%, -50%) translate(${y.x+l.x}px,${y.y+l.y}px)`,pointerEvents:W&&!V?"all":"none",opacity:W&&!V?1:0,transition:"opacity 120ms ease",zIndex:1e3},className:"nodrag nopan",onMouseEnter:()=>D(!0),onMouseLeave:()=>D(!1),children:(0,d.jsx)(m,{title:"Delete connection (drag to re-route)",style:{touchAction:"none"},onPointerDown:S,onPointerMove:T,onPointerUp:U,onClick:a=>{if(a.stopPropagation(),H.current){H.current=!1;return}A({edges:[{id:b}]})},children:"\xd7"})})]})]})}},98502:(a,b,c)=>{c.d(b,{E9:()=>f,RN:()=>e,n9:()=>d});let d="handoff_to_";function e(a,b){let c=(a&&a.trim()||b&&b.trim()||"node").toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/_+/g,"_").replace(/^_+|_+$/g,"");return c.length>48&&(c=c.slice(0,48).replace(/_+$/g,"")),c||(c=b&&b.trim().toLowerCase().replace(/[^a-z0-9]+/g,"_")||"node"),c||"node"}function f(a){let b=new Set,c=new Map;for(let f of a){if(c.has(f.id))continue;let a=e(f.label,f.type),g=`${d}${a}`;if(b.has(g)){let c=2;for(;b.has(`${d}${a}_${c}`);)c++;g=`${d}${a}_${c}`}b.add(g),c.set(f.id,g)}return c}},98540:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6"}),"Settings")}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=1999,exports.ids=[1999],exports.modules={354:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M20 6h-8l-2-2H7.17l4 4H20v9.17l1.76 1.76c.15-.28.24-.59.24-.93V8c0-1.1-.9-2-2-2M2.1 2.1.69 3.51l1.56 1.56c-.15.28-.24.59-.24.93L2 18c0 1.1.9 2 2 2h13.17l3.31 3.31 1.41-1.41zM4 18V6.83L15.17 18z"}),"FolderOffOutlined")},8165:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m-2 15-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8z"}),"CheckCircle")},12033:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75z"}),"Edit")},18467:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"m9.17 6 2 2H20v10H4V6zM10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8z"}),"FolderOutlined")},27114:(a,b,c)=>{c.d(b,{A:()=>n});var d=c(38301),e=c(43249),f=c(2783),g=c(18168),h=c(6636),i=c(29565),j=c(33105);function k(a){return(0,j.Ay)("MuiCardContent",a)}(0,i.A)("MuiCardContent",["root"]);var l=c(21124);let m=(0,g.Ay)("div",{name:"MuiCardContent",slot:"Root",overridesResolver:(a,b)=>b.root})({padding:16,"&:last-child":{paddingBottom:24}}),n=d.forwardRef(function(a,b){let c=(0,h.b)({props:a,name:"MuiCardContent"}),{className:d,component:g="div",...i}=c,j={...c,component:g},n=(a=>{let{classes:b}=a;return(0,f.A)({root:["root"]},k,b)})(j);return(0,l.jsx)(m,{as:g,className:(0,e.A)(n.root,d),ownerState:j,ref:b,...i})})},30818:(a,b,c)=>{c.d(b,{A:()=>o});var d=c(38301),e=c(43249),f=c(2783),g=c(18168),h=c(6636),i=c(54573),j=c(29565),k=c(33105);function l(a){return(0,k.Ay)("MuiCard",a)}(0,j.A)("MuiCard",["root"]);var m=c(21124);let n=(0,g.Ay)(i.A,{name:"MuiCard",slot:"Root",overridesResolver:(a,b)=>b.root})({overflow:"hidden"}),o=d.forwardRef(function(a,b){let c=(0,h.b)({props:a,name:"MuiCard"}),{className:d,raised:g=!1,...i}=c,j={...c,raised:g},k=(a=>{let{classes:b}=a;return(0,f.A)({root:["root"]},l,b)})(j);return(0,m.jsx)(n,{className:(0,e.A)(k.root,d),elevation:g?8:void 0,ref:b,ownerState:j,...i})})},31605:(a,b,c)=>{c.d(b,{A:()=>ay});var d=c(38404),e=c(38301),f=c(67943),g=c(75249),h=c(46757);function i(a){if(null==a)return window;if("[object Window]"!==a.toString()){var b=a.ownerDocument;return b&&b.defaultView||window}return a}function j(a){var b=i(a).Element;return a instanceof b||a instanceof Element}function k(a){var b=i(a).HTMLElement;return a instanceof b||a instanceof HTMLElement}function l(a){if("undefined"==typeof ShadowRoot)return!1;var b=i(a).ShadowRoot;return a instanceof b||a instanceof ShadowRoot}var m=Math.max,n=Math.min,o=Math.round;function p(){var a=navigator.userAgentData;return null!=a&&a.brands&&Array.isArray(a.brands)?a.brands.map(function(a){return a.brand+"/"+a.version}).join(" "):navigator.userAgent}function q(){return!/^((?!chrome|android).)*safari/i.test(p())}function r(a,b,c){void 0===b&&(b=!1),void 0===c&&(c=!1);var d=a.getBoundingClientRect(),e=1,f=1;b&&k(a)&&(e=a.offsetWidth>0&&o(d.width)/a.offsetWidth||1,f=a.offsetHeight>0&&o(d.height)/a.offsetHeight||1);var g=(j(a)?i(a):window).visualViewport,h=!q()&&c,l=(d.left+(h&&g?g.offsetLeft:0))/e,m=(d.top+(h&&g?g.offsetTop:0))/f,n=d.width/e,p=d.height/f;return{width:n,height:p,top:m,right:l+n,bottom:m+p,left:l,x:l,y:m}}function s(a){var b=i(a);return{scrollLeft:b.pageXOffset,scrollTop:b.pageYOffset}}function t(a){return a?(a.nodeName||"").toLowerCase():null}function u(a){return((j(a)?a.ownerDocument:a.document)||window.document).documentElement}function v(a){return r(u(a)).left+s(a).scrollLeft}function w(a){return i(a).getComputedStyle(a)}function x(a){var b=w(a),c=b.overflow,d=b.overflowX,e=b.overflowY;return/auto|scroll|overlay|hidden/.test(c+e+d)}function y(a){var b=r(a),c=a.offsetWidth,d=a.offsetHeight;return 1>=Math.abs(b.width-c)&&(c=b.width),1>=Math.abs(b.height-d)&&(d=b.height),{x:a.offsetLeft,y:a.offsetTop,width:c,height:d}}function z(a){return"html"===t(a)?a:a.assignedSlot||a.parentNode||(l(a)?a.host:null)||u(a)}function A(a,b){void 0===b&&(b=[]);var c,d=function a(b){return["html","body","#document"].indexOf(t(b))>=0?b.ownerDocument.body:k(b)&&x(b)?b:a(z(b))}(a),e=d===(null==(c=a.ownerDocument)?void 0:c.body),f=i(d),g=e?[f].concat(f.visualViewport||[],x(d)?d:[]):d,h=b.concat(g);return e?h:h.concat(A(z(g)))}function B(a){return k(a)&&"fixed"!==w(a).position?a.offsetParent:null}function C(a){for(var b=i(a),c=B(a);c&&["table","td","th"].indexOf(t(c))>=0&&"static"===w(c).position;)c=B(c);return c&&("html"===t(c)||"body"===t(c)&&"static"===w(c).position)?b:c||function(a){var b=/firefox/i.test(p());if(/Trident/i.test(p())&&k(a)&&"fixed"===w(a).position)return null;var c=z(a);for(l(c)&&(c=c.host);k(c)&&0>["html","body"].indexOf(t(c));){var d=w(c);if("none"!==d.transform||"none"!==d.perspective||"paint"===d.contain||-1!==["transform","perspective"].indexOf(d.willChange)||b&&"filter"===d.willChange||b&&d.filter&&"none"!==d.filter)return c;c=c.parentNode}return null}(a)||b}var D="bottom",E="right",F="left",G="auto",H=["top",D,E,F],I="start",J="viewport",K="popper",L=H.reduce(function(a,b){return a.concat([b+"-"+I,b+"-end"])},[]),M=[].concat(H,[G]).reduce(function(a,b){return a.concat([b,b+"-"+I,b+"-end"])},[]),N=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"],O={placement:"bottom",modifiers:[],strategy:"absolute"};function P(){for(var a=arguments.length,b=Array(a),c=0;c<a;c++)b[c]=arguments[c];return!b.some(function(a){return!(a&&"function"==typeof a.getBoundingClientRect)})}var Q={passive:!0};function R(a){return a.split("-")[0]}function S(a){return a.split("-")[1]}function T(a){return["top","bottom"].indexOf(a)>=0?"x":"y"}function U(a){var b,c=a.reference,d=a.element,e=a.placement,f=e?R(e):null,g=e?S(e):null,h=c.x+c.width/2-d.width/2,i=c.y+c.height/2-d.height/2;switch(f){case"top":b={x:h,y:c.y-d.height};break;case D:b={x:h,y:c.y+c.height};break;case E:b={x:c.x+c.width,y:i};break;case F:b={x:c.x-d.width,y:i};break;default:b={x:c.x,y:c.y}}var j=f?T(f):null;if(null!=j){var k="y"===j?"height":"width";switch(g){case I:b[j]=b[j]-(c[k]/2-d[k]/2);break;case"end":b[j]=b[j]+(c[k]/2-d[k]/2)}}return b}var V={top:"auto",right:"auto",bottom:"auto",left:"auto"};function W(a){var b,c,d,e,f,g,h,j=a.popper,k=a.popperRect,l=a.placement,m=a.variation,n=a.offsets,p=a.position,q=a.gpuAcceleration,r=a.adaptive,s=a.roundOffsets,t=a.isFixed,v=n.x,x=void 0===v?0:v,y=n.y,z=void 0===y?0:y,A="function"==typeof s?s({x:x,y:z}):{x:x,y:z};x=A.x,z=A.y;var B=n.hasOwnProperty("x"),G=n.hasOwnProperty("y"),H=F,I="top",J=window;if(r){var K=C(j),L="clientHeight",M="clientWidth";K===i(j)&&"static"!==w(K=u(j)).position&&"absolute"===p&&(L="scrollHeight",M="scrollWidth"),("top"===l||(l===F||l===E)&&"end"===m)&&(I=D,z-=(t&&K===J&&J.visualViewport?J.visualViewport.height:K[L])-k.height,z*=q?1:-1),(l===F||("top"===l||l===D)&&"end"===m)&&(H=E,x-=(t&&K===J&&J.visualViewport?J.visualViewport.width:K[M])-k.width,x*=q?1:-1)}var N=Object.assign({position:p},r&&V),O=!0===s?(b={x:x,y:z},c=i(j),d=b.x,e=b.y,{x:o(d*(f=c.devicePixelRatio||1))/f||0,y:o(e*f)/f||0}):{x:x,y:z};return(x=O.x,z=O.y,q)?Object.assign({},N,((h={})[I]=G?"0":"",h[H]=B?"0":"",h.transform=1>=(J.devicePixelRatio||1)?"translate("+x+"px, "+z+"px)":"translate3d("+x+"px, "+z+"px, 0)",h)):Object.assign({},N,((g={})[I]=G?z+"px":"",g[H]=B?x+"px":"",g.transform="",g))}var X={left:"right",right:"left",bottom:"top",top:"bottom"};function Y(a){return a.replace(/left|right|bottom|top/g,function(a){return X[a]})}var Z={start:"end",end:"start"};function $(a){return a.replace(/start|end/g,function(a){return Z[a]})}function _(a,b){var c=b.getRootNode&&b.getRootNode();if(a.contains(b))return!0;if(c&&l(c)){var d=b;do{if(d&&a.isSameNode(d))return!0;d=d.parentNode||d.host}while(d)}return!1}function aa(a){return Object.assign({},a,{left:a.x,top:a.y,right:a.x+a.width,bottom:a.y+a.height})}function ab(a,b,c){var d,e,f,g,h,k,l,n,o,p;return b===J?aa(function(a,b){var c=i(a),d=u(a),e=c.visualViewport,f=d.clientWidth,g=d.clientHeight,h=0,j=0;if(e){f=e.width,g=e.height;var k=q();(k||!k&&"fixed"===b)&&(h=e.offsetLeft,j=e.offsetTop)}return{width:f,height:g,x:h+v(a),y:j}}(a,c)):j(b)?((d=r(b,!1,"fixed"===c)).top=d.top+b.clientTop,d.left=d.left+b.clientLeft,d.bottom=d.top+b.clientHeight,d.right=d.left+b.clientWidth,d.width=b.clientWidth,d.height=b.clientHeight,d.x=d.left,d.y=d.top,d):aa((e=u(a),g=u(e),h=s(e),k=null==(f=e.ownerDocument)?void 0:f.body,l=m(g.scrollWidth,g.clientWidth,k?k.scrollWidth:0,k?k.clientWidth:0),n=m(g.scrollHeight,g.clientHeight,k?k.scrollHeight:0,k?k.clientHeight:0),o=-h.scrollLeft+v(e),p=-h.scrollTop,"rtl"===w(k||g).direction&&(o+=m(g.clientWidth,k?k.clientWidth:0)-l),{width:l,height:n,x:o,y:p}))}function ac(){return{top:0,right:0,bottom:0,left:0}}function ad(a){return Object.assign({},ac(),a)}function ae(a,b){return b.reduce(function(b,c){return b[c]=a,b},{})}function af(a,b){void 0===b&&(b={});var c,d,e,f,g,h,i,l,o=b,p=o.placement,q=void 0===p?a.placement:p,s=o.strategy,v=void 0===s?a.strategy:s,x=o.boundary,y=o.rootBoundary,B=o.elementContext,F=void 0===B?K:B,G=o.altBoundary,I=o.padding,L=void 0===I?0:I,M=ad("number"!=typeof L?L:ae(L,H)),N=a.rects.popper,O=a.elements[void 0!==G&&G?F===K?"reference":K:F],P=(c=j(O)?O:O.contextElement||u(a.elements.popper),d=void 0===x?"clippingParents":x,e=void 0===y?J:y,i=(h=[].concat("clippingParents"===d?(f=A(z(c)),!j(g=["absolute","fixed"].indexOf(w(c).position)>=0&&k(c)?C(c):c)?[]:f.filter(function(a){return j(a)&&_(a,g)&&"body"!==t(a)})):[].concat(d),[e]))[0],(l=h.reduce(function(a,b){var d=ab(c,b,v);return a.top=m(d.top,a.top),a.right=n(d.right,a.right),a.bottom=n(d.bottom,a.bottom),a.left=m(d.left,a.left),a},ab(c,i,v))).width=l.right-l.left,l.height=l.bottom-l.top,l.x=l.left,l.y=l.top,l),Q=r(a.elements.reference),R=U({reference:Q,element:N,strategy:"absolute",placement:q}),S=aa(Object.assign({},N,R)),T=F===K?S:Q,V={top:P.top-T.top+M.top,bottom:T.bottom-P.bottom+M.bottom,left:P.left-T.left+M.left,right:T.right-P.right+M.right},W=a.modifiersData.offset;if(F===K&&W){var X=W[q];Object.keys(V).forEach(function(a){var b=[E,D].indexOf(a)>=0?1:-1,c=["top",D].indexOf(a)>=0?"y":"x";V[a]+=X[c]*b})}return V}function ag(a,b,c){return m(a,n(b,c))}function ah(a,b,c){return void 0===c&&(c={x:0,y:0}),{top:a.top-b.height-c.y,right:a.right-b.width+c.x,bottom:a.bottom-b.height+c.y,left:a.left-b.width-c.x}}function ai(a){return["top",E,D,F].some(function(b){return a[b]>=0})}var aj=function(a){void 0===a&&(a={});var b=a,c=b.defaultModifiers,d=void 0===c?[]:c,e=b.defaultOptions,f=void 0===e?O:e;return function(a,b,c){void 0===c&&(c=f);var e,g,h={placement:"bottom",orderedModifiers:[],options:Object.assign({},O,f),modifiersData:{},elements:{reference:a,popper:b},attributes:{},styles:{}},l=[],m=!1,n={state:h,setOptions:function(c){var e,g,i,k,m,o,q="function"==typeof c?c(h.options):c;p(),h.options=Object.assign({},f,h.options,q),h.scrollParents={reference:j(a)?A(a):a.contextElement?A(a.contextElement):[],popper:A(b)};var r=(g=Object.keys(e=[].concat(d,h.options.modifiers).reduce(function(a,b){var c=a[b.name];return a[b.name]=c?Object.assign({},c,b,{options:Object.assign({},c.options,b.options),data:Object.assign({},c.data,b.data)}):b,a},{})).map(function(a){return e[a]}),i=new Map,k=new Set,m=[],g.forEach(function(a){i.set(a.name,a)}),g.forEach(function(a){k.has(a.name)||function a(b){k.add(b.name),[].concat(b.requires||[],b.requiresIfExists||[]).forEach(function(b){if(!k.has(b)){var c=i.get(b);c&&a(c)}}),m.push(b)}(a)}),o=m,N.reduce(function(a,b){return a.concat(o.filter(function(a){return a.phase===b}))},[]));return h.orderedModifiers=r.filter(function(a){return a.enabled}),h.orderedModifiers.forEach(function(a){var b=a.name,c=a.options,d=a.effect;if("function"==typeof d){var e=d({state:h,name:b,instance:n,options:void 0===c?{}:c});l.push(e||function(){})}}),n.update()},forceUpdate:function(){if(!m){var a=h.elements,b=a.reference,c=a.popper;if(P(b,c)){h.rects={reference:(d=C(c),e="fixed"===h.options.strategy,f=k(d),p=k(d)&&(j=o((g=d.getBoundingClientRect()).width)/d.offsetWidth||1,l=o(g.height)/d.offsetHeight||1,1!==j||1!==l),q=u(d),w=r(b,p,e),z={scrollLeft:0,scrollTop:0},A={x:0,y:0},(f||!f&&!e)&&(("body"!==t(d)||x(q))&&(z=function(a){return a!==i(a)&&k(a)?{scrollLeft:a.scrollLeft,scrollTop:a.scrollTop}:s(a)}(d)),k(d)?(A=r(d,!0),A.x+=d.clientLeft,A.y+=d.clientTop):q&&(A.x=v(q))),{x:w.left+z.scrollLeft-A.x,y:w.top+z.scrollTop-A.y,width:w.width,height:w.height}),popper:y(c)},h.reset=!1,h.placement=h.options.placement,h.orderedModifiers.forEach(function(a){return h.modifiersData[a.name]=Object.assign({},a.data)});for(var d,e,f,g,j,l,p,q,w,z,A,B=0;B<h.orderedModifiers.length;B++){if(!0===h.reset){h.reset=!1,B=-1;continue}var D=h.orderedModifiers[B],E=D.fn,F=D.options,G=void 0===F?{}:F,H=D.name;"function"==typeof E&&(h=E({state:h,options:G,name:H,instance:n})||h)}}}},update:(e=function(){return new Promise(function(a){n.forceUpdate(),a(h)})},function(){return g||(g=new Promise(function(a){Promise.resolve().then(function(){g=void 0,a(e())})})),g}),destroy:function(){p(),m=!0}};if(!P(a,b))return n;function p(){l.forEach(function(a){return a()}),l=[]}return n.setOptions(c).then(function(a){!m&&c.onFirstUpdate&&c.onFirstUpdate(a)}),n}}({defaultModifiers:[{name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(a){var b=a.state,c=a.instance,d=a.options,e=d.scroll,f=void 0===e||e,g=d.resize,h=void 0===g||g,j=i(b.elements.popper),k=[].concat(b.scrollParents.reference,b.scrollParents.popper);return f&&k.forEach(function(a){a.addEventListener("scroll",c.update,Q)}),h&&j.addEventListener("resize",c.update,Q),function(){f&&k.forEach(function(a){a.removeEventListener("scroll",c.update,Q)}),h&&j.removeEventListener("resize",c.update,Q)}},data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(a){var b=a.state,c=a.name;b.modifiersData[c]=U({reference:b.rects.reference,element:b.rects.popper,strategy:"absolute",placement:b.placement})},data:{}},{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(a){var b=a.state,c=a.options,d=c.gpuAcceleration,e=c.adaptive,f=c.roundOffsets,g=void 0===f||f,h={placement:R(b.placement),variation:S(b.placement),popper:b.elements.popper,popperRect:b.rects.popper,gpuAcceleration:void 0===d||d,isFixed:"fixed"===b.options.strategy};null!=b.modifiersData.popperOffsets&&(b.styles.popper=Object.assign({},b.styles.popper,W(Object.assign({},h,{offsets:b.modifiersData.popperOffsets,position:b.options.strategy,adaptive:void 0===e||e,roundOffsets:g})))),null!=b.modifiersData.arrow&&(b.styles.arrow=Object.assign({},b.styles.arrow,W(Object.assign({},h,{offsets:b.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:g})))),b.attributes.popper=Object.assign({},b.attributes.popper,{"data-popper-placement":b.placement})},data:{}},{name:"applyStyles",enabled:!0,phase:"write",fn:function(a){var b=a.state;Object.keys(b.elements).forEach(function(a){var c=b.styles[a]||{},d=b.attributes[a]||{},e=b.elements[a];k(e)&&t(e)&&(Object.assign(e.style,c),Object.keys(d).forEach(function(a){var b=d[a];!1===b?e.removeAttribute(a):e.setAttribute(a,!0===b?"":b)}))})},effect:function(a){var b=a.state,c={popper:{position:b.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(b.elements.popper.style,c.popper),b.styles=c,b.elements.arrow&&Object.assign(b.elements.arrow.style,c.arrow),function(){Object.keys(b.elements).forEach(function(a){var d=b.elements[a],e=b.attributes[a]||{},f=Object.keys(b.styles.hasOwnProperty(a)?b.styles[a]:c[a]).reduce(function(a,b){return a[b]="",a},{});k(d)&&t(d)&&(Object.assign(d.style,f),Object.keys(e).forEach(function(a){d.removeAttribute(a)}))})}},requires:["computeStyles"]},{name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(a){var b=a.state,c=a.options,d=a.name,e=c.offset,f=void 0===e?[0,0]:e,g=M.reduce(function(a,c){var d,e,g,h,i,j;return a[c]=(d=b.rects,g=[F,"top"].indexOf(e=R(c))>=0?-1:1,i=(h="function"==typeof f?f(Object.assign({},d,{placement:c})):f)[0],j=h[1],i=i||0,j=(j||0)*g,[F,E].indexOf(e)>=0?{x:j,y:i}:{x:i,y:j}),a},{}),h=g[b.placement],i=h.x,j=h.y;null!=b.modifiersData.popperOffsets&&(b.modifiersData.popperOffsets.x+=i,b.modifiersData.popperOffsets.y+=j),b.modifiersData[d]=g}},{name:"flip",enabled:!0,phase:"main",fn:function(a){var b=a.state,c=a.options,d=a.name;if(!b.modifiersData[d]._skip){for(var e=c.mainAxis,f=void 0===e||e,g=c.altAxis,h=void 0===g||g,i=c.fallbackPlacements,j=c.padding,k=c.boundary,l=c.rootBoundary,m=c.altBoundary,n=c.flipVariations,o=void 0===n||n,p=c.allowedAutoPlacements,q=b.options.placement,r=R(q)===q,s=i||(r||!o?[Y(q)]:function(a){if(R(a)===G)return[];var b=Y(a);return[$(a),b,$(b)]}(q)),t=[q].concat(s).reduce(function(a,c){var d,e,f,g,h,i,m,n,q,r,s,t;return a.concat(R(c)===G?(e=(d={placement:c,boundary:k,rootBoundary:l,padding:j,flipVariations:o,allowedAutoPlacements:p}).placement,f=d.boundary,g=d.rootBoundary,h=d.padding,i=d.flipVariations,n=void 0===(m=d.allowedAutoPlacements)?M:m,0===(s=(r=(q=S(e))?i?L:L.filter(function(a){return S(a)===q}):H).filter(function(a){return n.indexOf(a)>=0})).length&&(s=r),Object.keys(t=s.reduce(function(a,c){return a[c]=af(b,{placement:c,boundary:f,rootBoundary:g,padding:h})[R(c)],a},{})).sort(function(a,b){return t[a]-t[b]})):c)},[]),u=b.rects.reference,v=b.rects.popper,w=new Map,x=!0,y=t[0],z=0;z<t.length;z++){var A=t[z],B=R(A),C=S(A)===I,J=["top",D].indexOf(B)>=0,K=J?"width":"height",N=af(b,{placement:A,boundary:k,rootBoundary:l,altBoundary:m,padding:j}),O=J?C?E:F:C?D:"top";u[K]>v[K]&&(O=Y(O));var P=Y(O),Q=[];if(f&&Q.push(N[B]<=0),h&&Q.push(N[O]<=0,N[P]<=0),Q.every(function(a){return a})){y=A,x=!1;break}w.set(A,Q)}if(x)for(var T=o?3:1,U=function(a){var b=t.find(function(b){var c=w.get(b);if(c)return c.slice(0,a).every(function(a){return a})});if(b)return y=b,"break"},V=T;V>0&&"break"!==U(V);V--);b.placement!==y&&(b.modifiersData[d]._skip=!0,b.placement=y,b.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}},{name:"preventOverflow",enabled:!0,phase:"main",fn:function(a){var b=a.state,c=a.options,d=a.name,e=c.mainAxis,f=c.altAxis,g=c.boundary,h=c.rootBoundary,i=c.altBoundary,j=c.padding,k=c.tether,l=void 0===k||k,o=c.tetherOffset,p=void 0===o?0:o,q=af(b,{boundary:g,rootBoundary:h,padding:j,altBoundary:i}),r=R(b.placement),s=S(b.placement),t=!s,u=T(r),v="x"===u?"y":"x",w=b.modifiersData.popperOffsets,x=b.rects.reference,z=b.rects.popper,A="function"==typeof p?p(Object.assign({},b.rects,{placement:b.placement})):p,B="number"==typeof A?{mainAxis:A,altAxis:A}:Object.assign({mainAxis:0,altAxis:0},A),G=b.modifiersData.offset?b.modifiersData.offset[b.placement]:null,H={x:0,y:0};if(w){if(void 0===e||e){var J,K="y"===u?"top":F,L="y"===u?D:E,M="y"===u?"height":"width",N=w[u],O=N+q[K],P=N-q[L],Q=l?-z[M]/2:0,U=s===I?x[M]:z[M],V=s===I?-z[M]:-x[M],W=b.elements.arrow,X=l&&W?y(W):{width:0,height:0},Y=b.modifiersData["arrow#persistent"]?b.modifiersData["arrow#persistent"].padding:ac(),Z=Y[K],$=Y[L],_=ag(0,x[M],X[M]),aa=t?x[M]/2-Q-_-Z-B.mainAxis:U-_-Z-B.mainAxis,ab=t?-x[M]/2+Q+_+$+B.mainAxis:V+_+$+B.mainAxis,ad=b.elements.arrow&&C(b.elements.arrow),ae=ad?"y"===u?ad.clientTop||0:ad.clientLeft||0:0,ah=null!=(J=null==G?void 0:G[u])?J:0,ai=ag(l?n(O,N+aa-ah-ae):O,N,l?m(P,N+ab-ah):P);w[u]=ai,H[u]=ai-N}if(void 0!==f&&f){var aj,ak,al="x"===u?"top":F,am="x"===u?D:E,an=w[v],ao="y"===v?"height":"width",ap=an+q[al],aq=an-q[am],ar=-1!==["top",F].indexOf(r),as=null!=(ak=null==G?void 0:G[v])?ak:0,at=ar?ap:an-x[ao]-z[ao]-as+B.altAxis,au=ar?an+x[ao]+z[ao]-as-B.altAxis:aq,av=l&&ar?(aj=ag(at,an,au))>au?au:aj:ag(l?at:ap,an,l?au:aq);w[v]=av,H[v]=av-an}b.modifiersData[d]=H}},requiresIfExists:["offset"]},{name:"arrow",enabled:!0,phase:"main",fn:function(a){var b,c=a.state,d=a.name,e=a.options,f=c.elements.arrow,g=c.modifiersData.popperOffsets,h=R(c.placement),i=T(h),j=[F,E].indexOf(h)>=0?"height":"width";if(f&&g){var k,l=(k=e.padding,ad("number"!=typeof(k="function"==typeof k?k(Object.assign({},c.rects,{placement:c.placement})):k)?k:ae(k,H))),m=y(f),n="y"===i?"top":F,o="y"===i?D:E,p=c.rects.reference[j]+c.rects.reference[i]-g[i]-c.rects.popper[j],q=g[i]-c.rects.reference[i],r=C(f),s=r?"y"===i?r.clientHeight||0:r.clientWidth||0:0,t=l[n],u=s-m[j]-l[o],v=s/2-m[j]/2+(p/2-q/2),w=ag(t,v,u);c.modifiersData[d]=((b={})[i]=w,b.centerOffset=w-v,b)}},effect:function(a){var b=a.state,c=a.options.element,d=void 0===c?"[data-popper-arrow]":c;if(null!=d)("string"!=typeof d||(d=b.elements.popper.querySelector(d)))&&_(b.elements.popper,d)&&(b.elements.arrow=d)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]},{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(a){var b=a.state,c=a.name,d=b.rects.reference,e=b.rects.popper,f=b.modifiersData.preventOverflow,g=af(b,{elementContext:"reference"}),h=af(b,{altBoundary:!0}),i=ah(g,d),j=ah(h,e,f),k=ai(i),l=ai(j);b.modifiersData[c]={referenceClippingOffsets:i,popperEscapeOffsets:j,isReferenceHidden:k,hasPopperEscaped:l},b.attributes.popper=Object.assign({},b.attributes.popper,{"data-popper-reference-hidden":k,"data-popper-escaped":l})}}]}),ak=c(2783),al=c(94633),am=c(1509),an=c(29565),ao=c(33105);function ap(a){return(0,ao.Ay)("MuiPopper",a)}(0,an.A)("MuiPopper",["root"]);var aq=c(21124);function ar(a){return"function"==typeof a?a():a}let as={},at=e.forwardRef(function(a,b){let{anchorEl:c,children:d,direction:h,disablePortal:i,modifiers:j,open:k,placement:l,popperOptions:m,popperRef:n,slotProps:o={},slots:p={},TransitionProps:q,ownerState:r,...s}=a,t=e.useRef(null),u=(0,f.A)(t,b),v=e.useRef(null),w=(0,f.A)(v,n),x=e.useRef(w);(0,g.A)(()=>{x.current=w},[w]),e.useImperativeHandle(n,()=>v.current,[]);let y=function(a,b){if("ltr"===b)return a;switch(a){case"bottom-end":return"bottom-start";case"bottom-start":return"bottom-end";case"top-end":return"top-start";case"top-start":return"top-end";default:return a}}(l,h),[z,A]=e.useState(y),[B,C]=e.useState(ar(c));e.useEffect(()=>{v.current&&v.current.forceUpdate()}),e.useEffect(()=>{c&&C(ar(c))},[c]),(0,g.A)(()=>{if(!B||!k)return;let a=[{name:"preventOverflow",options:{altBoundary:i}},{name:"flip",options:{altBoundary:i}},{name:"onUpdate",enabled:!0,phase:"afterWrite",fn:({state:a})=>{A(a.placement)}}];null!=j&&(a=a.concat(j)),m&&null!=m.modifiers&&(a=a.concat(m.modifiers));let b=aj(B,t.current,{placement:y,...m,modifiers:a});return x.current(b),()=>{b.destroy(),x.current(null)}},[B,i,j,k,m,y]);let D={placement:z};null!==q&&(D.TransitionProps=q);let E=(a=>{let{classes:b}=a;return(0,ak.A)({root:["root"]},ap,b)})(a),F=p.root??"div",G=(0,al.A)({elementType:F,externalSlotProps:o.root,externalForwardedProps:s,additionalProps:{role:"tooltip",ref:u},ownerState:a,className:E.root});return(0,aq.jsx)(F,{...G,children:"function"==typeof d?d(D):d})}),au=e.forwardRef(function(a,b){let c,{anchorEl:d,children:f,container:g,direction:i="ltr",disablePortal:j=!1,keepMounted:k=!1,modifiers:l,open:m,placement:n="bottom",popperOptions:o=as,popperRef:p,style:q,transition:r=!1,slotProps:s={},slots:t={},...u}=a,[v,w]=e.useState(!0);if(!k&&!m&&(!r||v))return null;if(g)c=g;else if(d){let a=ar(d);c=a&&void 0!==a.nodeType?(0,h.A)(a).body:(0,h.A)(null).body}let x=!m&&k&&(!r||v)?"none":void 0,y=r?{in:m,onEnter:()=>{w(!1)},onExited:()=>{w(!0)}}:void 0;return(0,aq.jsx)(am.A,{disablePortal:j,container:c,children:(0,aq.jsx)(at,{anchorEl:d,direction:i,disablePortal:j,modifiers:l,ref:b,open:r?!v:m,placement:n,popperOptions:o,popperRef:p,slotProps:s,slots:t,...u,style:{position:"fixed",top:0,left:0,display:x,...q},TransitionProps:y,children:f})})});var av=c(18168),aw=c(6636);let ax=(0,av.Ay)(au,{name:"MuiPopper",slot:"Root",overridesResolver:(a,b)=>b.root})({}),ay=e.forwardRef(function(a,b){let c=(0,d.I)(),{anchorEl:e,component:f,components:g,componentsProps:h,container:i,disablePortal:j,keepMounted:k,modifiers:l,open:m,placement:n,popperOptions:o,popperRef:p,transition:q,slots:r,slotProps:s,...t}=(0,aw.b)({props:a,name:"MuiPopper"}),u=r?.root??g?.Root,v={anchorEl:e,container:i,disablePortal:j,keepMounted:k,modifiers:l,open:m,placement:n,popperOptions:o,popperRef:p,transition:q,...t};return(0,aq.jsx)(ax,{as:f,direction:c?"rtl":"ltr",slots:{root:u},slotProps:s??h,...v,ref:b})})},31973:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M20 6h-8l-2-2H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2m0 12H4V6h5.17l2 2H20zm-8-4h2v2h2v-2h2v-2h-2v-2h-2v2h-2z"}),"CreateNewFolderOutlined")},36698:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"}),"Check")},40973:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14"}),"Search")},43312:(a,b,c)=>{c.d(b,{A:()=>J});var d=c(38301),e=c(43249),f=c(74846),g=c(2783),h=c(37489),i=c(38404),j=c(4007),k=c(51939),l=c(18168),m=c(60839),n=c(68333),o=c(6636),p=c(6638),q=c(4927),r=c(31605),s=c(87974),t=c(26636),u=c(70300),v=c(65603),w=c(20385),x=c(29565),y=c(33105);function z(a){return(0,y.Ay)("MuiTooltip",a)}let A=(0,x.A)("MuiTooltip",["popper","popperInteractive","popperArrow","popperClose","tooltip","tooltipArrow","touch","tooltipPlacementLeft","tooltipPlacementRight","tooltipPlacementTop","tooltipPlacementBottom","arrow"]);var B=c(21124);let C=(0,l.Ay)(r.A,{name:"MuiTooltip",slot:"Popper",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.popper,!c.disableInteractive&&b.popperInteractive,c.arrow&&b.popperArrow,!c.open&&b.popperClose]}})((0,n.A)(({theme:a})=>({zIndex:(a.vars||a).zIndex.tooltip,pointerEvents:"none",variants:[{props:({ownerState:a})=>!a.disableInteractive,style:{pointerEvents:"auto"}},{props:({open:a})=>!a,style:{pointerEvents:"none"}},{props:({ownerState:a})=>a.arrow,style:{[`&[data-popper-placement*="bottom"] .${A.arrow}`]:{top:0,marginTop:"-0.71em","&::before":{transformOrigin:"0 100%"}},[`&[data-popper-placement*="top"] .${A.arrow}`]:{bottom:0,marginBottom:"-0.71em","&::before":{transformOrigin:"100% 0"}},[`&[data-popper-placement*="right"] .${A.arrow}`]:{height:"1em",width:"0.71em","&::before":{transformOrigin:"100% 100%"}},[`&[data-popper-placement*="left"] .${A.arrow}`]:{height:"1em",width:"0.71em","&::before":{transformOrigin:"0 0"}}}},{props:({ownerState:a})=>a.arrow&&!a.isRtl,style:{[`&[data-popper-placement*="right"] .${A.arrow}`]:{left:0,marginLeft:"-0.71em"}}},{props:({ownerState:a})=>a.arrow&&!!a.isRtl,style:{[`&[data-popper-placement*="right"] .${A.arrow}`]:{right:0,marginRight:"-0.71em"}}},{props:({ownerState:a})=>a.arrow&&!a.isRtl,style:{[`&[data-popper-placement*="left"] .${A.arrow}`]:{right:0,marginRight:"-0.71em"}}},{props:({ownerState:a})=>a.arrow&&!!a.isRtl,style:{[`&[data-popper-placement*="left"] .${A.arrow}`]:{left:0,marginLeft:"-0.71em"}}}]}))),D=(0,l.Ay)("div",{name:"MuiTooltip",slot:"Tooltip",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.tooltip,c.touch&&b.touch,c.arrow&&b.tooltipArrow,b[`tooltipPlacement${(0,p.A)(c.placement.split("-")[0])}`]]}})((0,n.A)(({theme:a})=>({backgroundColor:a.vars?a.vars.palette.Tooltip.bg:(0,h.X4)(a.palette.grey[700],.92),borderRadius:(a.vars||a).shape.borderRadius,color:(a.vars||a).palette.common.white,fontFamily:a.typography.fontFamily,padding:"4px 8px",fontSize:a.typography.pxToRem(11),maxWidth:300,margin:2,wordWrap:"break-word",fontWeight:a.typography.fontWeightMedium,[`.${A.popper}[data-popper-placement*="left"] &`]:{transformOrigin:"right center"},[`.${A.popper}[data-popper-placement*="right"] &`]:{transformOrigin:"left center"},[`.${A.popper}[data-popper-placement*="top"] &`]:{transformOrigin:"center bottom",marginBottom:"14px"},[`.${A.popper}[data-popper-placement*="bottom"] &`]:{transformOrigin:"center top",marginTop:"14px"},variants:[{props:({ownerState:a})=>a.arrow,style:{position:"relative",margin:0}},{props:({ownerState:a})=>a.touch,style:{padding:"8px 16px",fontSize:a.typography.pxToRem(14),lineHeight:`${Math.round(16/14*1e5)/1e5}em`,fontWeight:a.typography.fontWeightRegular}},{props:({ownerState:a})=>!a.isRtl,style:{[`.${A.popper}[data-popper-placement*="left"] &`]:{marginRight:"14px"},[`.${A.popper}[data-popper-placement*="right"] &`]:{marginLeft:"14px"}}},{props:({ownerState:a})=>!a.isRtl&&a.touch,style:{[`.${A.popper}[data-popper-placement*="left"] &`]:{marginRight:"24px"},[`.${A.popper}[data-popper-placement*="right"] &`]:{marginLeft:"24px"}}},{props:({ownerState:a})=>!!a.isRtl,style:{[`.${A.popper}[data-popper-placement*="left"] &`]:{marginLeft:"14px"},[`.${A.popper}[data-popper-placement*="right"] &`]:{marginRight:"14px"}}},{props:({ownerState:a})=>!!a.isRtl&&a.touch,style:{[`.${A.popper}[data-popper-placement*="left"] &`]:{marginLeft:"24px"},[`.${A.popper}[data-popper-placement*="right"] &`]:{marginRight:"24px"}}},{props:({ownerState:a})=>a.touch,style:{[`.${A.popper}[data-popper-placement*="top"] &`]:{marginBottom:"24px"}}},{props:({ownerState:a})=>a.touch,style:{[`.${A.popper}[data-popper-placement*="bottom"] &`]:{marginTop:"24px"}}}]}))),E=(0,l.Ay)("span",{name:"MuiTooltip",slot:"Arrow",overridesResolver:(a,b)=>b.arrow})((0,n.A)(({theme:a})=>({overflow:"hidden",position:"absolute",width:"1em",height:"0.71em",boxSizing:"border-box",color:a.vars?a.vars.palette.Tooltip.bg:(0,h.X4)(a.palette.grey[700],.9),"&::before":{content:'""',margin:"auto",display:"block",width:"100%",height:"100%",backgroundColor:"currentColor",transform:"rotate(45deg)"}}))),F=!1,G=new f.E,H={x:0,y:0};function I(a,b){return(c,...d)=>{b&&b(c,...d),a(c,...d)}}let J=d.forwardRef(function(a,b){let c=(0,o.b)({props:a,name:"MuiTooltip"}),{arrow:h=!1,children:l,classes:n,components:x={},componentsProps:y={},describeChild:A=!1,disableFocusListener:J=!1,disableHoverListener:K=!1,disableInteractive:L=!1,disableTouchListener:M=!1,enterDelay:N=100,enterNextDelay:O=0,enterTouchDelay:P=700,followCursor:Q=!1,id:R,leaveDelay:S=0,leaveTouchDelay:T=1500,onClose:U,onOpen:V,open:W,placement:X="bottom",PopperComponent:Y,PopperProps:Z={},slotProps:$={},slots:_={},title:aa,TransitionComponent:ab,TransitionProps:ac,...ad}=c,ae=d.isValidElement(l)?l:(0,B.jsx)("span",{children:l}),af=(0,m.A)(),ag=(0,i.I)(),[ah,ai]=d.useState(),[aj,ak]=d.useState(null),al=d.useRef(!1),am=L||Q,an=(0,f.A)(),ao=(0,f.A)(),ap=(0,f.A)(),aq=(0,f.A)(),[ar,as]=(0,v.A)({controlled:W,default:!1,name:"Tooltip",state:"open"}),at=ar,au=(0,u.A)(R),av=d.useRef(),aw=(0,s.A)(()=>{void 0!==av.current&&(document.body.style.WebkitUserSelect=av.current,av.current=void 0),aq.clear()});d.useEffect(()=>aw,[aw]);let ax=a=>{G.clear(),F=!0,as(!0),V&&!at&&V(a)},ay=(0,s.A)(a=>{G.start(800+S,()=>{F=!1}),as(!1),U&&at&&U(a),an.start(af.transitions.duration.shortest,()=>{al.current=!1})}),az=a=>{al.current&&"touchstart"!==a.type||(ah&&ah.removeAttribute("title"),ao.clear(),ap.clear(),N||F&&O?ao.start(F?O:N,()=>{ax(a)}):ax(a))},aA=a=>{ao.clear(),ap.start(S,()=>{ay(a)})},[,aB]=d.useState(!1),aC=a=>{(0,j.A)(a.target)||(aB(!1),aA(a))},aD=a=>{ah||ai(a.currentTarget),(0,j.A)(a.target)&&(aB(!0),az(a))},aE=a=>{al.current=!0;let b=ae.props;b.onTouchStart&&b.onTouchStart(a)};d.useEffect(()=>{if(at)return document.addEventListener("keydown",a),()=>{document.removeEventListener("keydown",a)};function a(a){"Escape"===a.key&&ay(a)}},[ay,at]);let aF=(0,t.A)((0,k.A)(ae),ai,b);aa||0===aa||(at=!1);let aG=d.useRef(),aH={},aI="string"==typeof aa;A?(aH.title=at||!aI||K?null:aa,aH["aria-describedby"]=at?au:null):(aH["aria-label"]=aI?aa:null,aH["aria-labelledby"]=at&&!aI?au:null);let aJ={...aH,...ad,...ae.props,className:(0,e.A)(ad.className,ae.props.className),onTouchStart:aE,ref:aF,...Q?{onMouseMove:a=>{let b=ae.props;b.onMouseMove&&b.onMouseMove(a),H={x:a.clientX,y:a.clientY},aG.current&&aG.current.update()}}:{}},aK={};M||(aJ.onTouchStart=a=>{aE(a),ap.clear(),an.clear(),aw(),av.current=document.body.style.WebkitUserSelect,document.body.style.WebkitUserSelect="none",aq.start(P,()=>{document.body.style.WebkitUserSelect=av.current,az(a)})},aJ.onTouchEnd=a=>{ae.props.onTouchEnd&&ae.props.onTouchEnd(a),aw(),ap.start(T,()=>{ay(a)})}),!K&&(aJ.onMouseOver=I(az,aJ.onMouseOver),aJ.onMouseLeave=I(aA,aJ.onMouseLeave),am||(aK.onMouseOver=az,aK.onMouseLeave=aA)),!J&&(aJ.onFocus=I(aD,aJ.onFocus),aJ.onBlur=I(aC,aJ.onBlur),am||(aK.onFocus=aD,aK.onBlur=aC));let aL={...c,isRtl:ag,arrow:h,disableInteractive:am,placement:X,PopperComponentProp:Y,touch:al.current},aM="function"==typeof $.popper?$.popper(aL):$.popper,aN=d.useMemo(()=>{let a=[{name:"arrow",enabled:!!aj,options:{element:aj,padding:4}}];return Z.popperOptions?.modifiers&&(a=a.concat(Z.popperOptions.modifiers)),aM?.popperOptions?.modifiers&&(a=a.concat(aM.popperOptions.modifiers)),{...Z.popperOptions,...aM?.popperOptions,modifiers:a}},[aj,Z.popperOptions,aM?.popperOptions]),aO=(a=>{let{classes:b,disableInteractive:c,arrow:d,touch:e,placement:f}=a,h={popper:["popper",!c&&"popperInteractive",d&&"popperArrow"],tooltip:["tooltip",d&&"tooltipArrow",e&&"touch",`tooltipPlacement${(0,p.A)(f.split("-")[0])}`],arrow:["arrow"]};return(0,g.A)(h,z,b)})(aL),aP="function"==typeof $.transition?$.transition(aL):$.transition,aQ={slots:{popper:x.Popper,transition:x.Transition??ab,tooltip:x.Tooltip,arrow:x.Arrow,..._},slotProps:{arrow:$.arrow??y.arrow,popper:{...Z,...aM??y.popper},tooltip:$.tooltip??y.tooltip,transition:{...ac,...aP??y.transition}}},[aR,aS]=(0,w.A)("popper",{elementType:C,externalForwardedProps:aQ,ownerState:aL,className:(0,e.A)(aO.popper,Z?.className)}),[aT,aU]=(0,w.A)("transition",{elementType:q.A,externalForwardedProps:aQ,ownerState:aL}),[aV,aW]=(0,w.A)("tooltip",{elementType:D,className:aO.tooltip,externalForwardedProps:aQ,ownerState:aL}),[aX,aY]=(0,w.A)("arrow",{elementType:E,className:aO.arrow,externalForwardedProps:aQ,ownerState:aL,ref:ak});return(0,B.jsxs)(d.Fragment,{children:[d.cloneElement(ae,aJ),(0,B.jsx)(aR,{as:Y??r.A,placement:X,anchorEl:Q?{getBoundingClientRect:()=>({top:H.y,left:H.x,right:H.x,bottom:H.y,width:0,height:0})}:ah,popperRef:aG,open:!!ah&&at,id:au,transition:!0,...aK,...aS,popperOptions:aN,children:({TransitionProps:a})=>(0,B.jsx)(aT,{timeout:af.transitions.duration.shorter,...a,...aU,children:(0,B.jsxs)(aV,{...aW,children:[aa,h?(0,B.jsx)(aX,{...aY}):null]})})})]})})},50553:(a,b,c)=>{c.d(b,{A:()=>n});var d=c(38301),e=c(43249),f=c(2783),g=c(18168),h=c(68333),i=c(6636),j=c(38313),k=c(55470),l=c(21124);let m=(0,g.Ay)("div",{name:"MuiListItemIcon",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,"flex-start"===c.alignItems&&b.alignItemsFlexStart]}})((0,h.A)(({theme:a})=>({minWidth:56,color:(a.vars||a).palette.action.active,flexShrink:0,display:"inline-flex",variants:[{props:{alignItems:"flex-start"},style:{marginTop:8}}]}))),n=d.forwardRef(function(a,b){let c=(0,i.b)({props:a,name:"MuiListItemIcon"}),{className:g,...h}=c,n=d.useContext(k.A),o={...c,alignItems:n.alignItems},p=(a=>{let{alignItems:b,classes:c}=a;return(0,f.A)({root:["root","flex-start"===b&&"alignItemsFlexStart"]},j.f,c)})(o);return(0,l.jsx)(m,{className:(0,e.A)(p.root,g),ownerState:o,ref:b,...h})})},84233:(a,b,c)=>{c.d(b,{A:()=>p});var d=c(38301),e=c(43249),f=c(2783),g=c(29071),h=c(79515),i=c(55470),j=c(18168),k=c(6636),l=c(76345),m=c(20385),n=c(21124);let o=(0,j.Ay)("div",{name:"MuiListItemText",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[{[`& .${l.A.primary}`]:b.primary},{[`& .${l.A.secondary}`]:b.secondary},b.root,c.inset&&b.inset,c.primary&&c.secondary&&b.multiline,c.dense&&b.dense]}})({flex:"1 1 auto",minWidth:0,marginTop:4,marginBottom:4,[`.${g.A.root}:where(& .${l.A.primary})`]:{display:"block"},[`.${g.A.root}:where(& .${l.A.secondary})`]:{display:"block"},variants:[{props:({ownerState:a})=>a.primary&&a.secondary,style:{marginTop:6,marginBottom:6}},{props:({ownerState:a})=>a.inset,style:{paddingLeft:56}}]}),p=d.forwardRef(function(a,b){let c=(0,k.b)({props:a,name:"MuiListItemText"}),{children:g,className:j,disableTypography:p=!1,inset:q=!1,primary:r,primaryTypographyProps:s,secondary:t,secondaryTypographyProps:u,slots:v={},slotProps:w={},...x}=c,{dense:y}=d.useContext(i.A),z=null!=r?r:g,A=t,B={...c,disableTypography:p,inset:q,primary:!!z,secondary:!!A,dense:y},C=(a=>{let{classes:b,inset:c,primary:d,secondary:e,dense:g}=a;return(0,f.A)({root:["root",c&&"inset",g&&"dense",d&&e&&"multiline"],primary:["primary"],secondary:["secondary"]},l.b,b)})(B),D={slots:v,slotProps:{primary:s,secondary:u,...w}},[E,F]=(0,m.A)("root",{className:(0,e.A)(C.root,j),elementType:o,externalForwardedProps:{...D,...x},ownerState:B,ref:b}),[G,H]=(0,m.A)("primary",{className:C.primary,elementType:h.default,externalForwardedProps:D,ownerState:B}),[I,J]=(0,m.A)("secondary",{className:C.secondary,elementType:h.default,externalForwardedProps:D,ownerState:B});return null==z||z.type===h.default||p||(z=(0,n.jsx)(G,{variant:y?"body2":"body1",component:H?.variant?void 0:"span",...H,children:z})),null==A||A.type===h.default||p||(A=(0,n.jsx)(I,{variant:"body2",color:"textSecondary",...J,children:A})),(0,n.jsxs)(E,{...F,children:[z,A]})})},98463:(a,b,c)=>{c.d(b,{A:()=>n});var d=c(38301),e=c(43249),f=c(2783),g=c(18168),h=c(6636),i=c(29565),j=c(33105);function k(a){return(0,j.Ay)("MuiCardActions",a)}(0,i.A)("MuiCardActions",["root","spacing"]);var l=c(21124);let m=(0,g.Ay)("div",{name:"MuiCardActions",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,!c.disableSpacing&&b.spacing]}})({display:"flex",alignItems:"center",padding:8,variants:[{props:{disableSpacing:!1},style:{"& > :not(style) ~ :not(style)":{marginLeft:8}}}]}),n=d.forwardRef(function(a,b){let c=(0,h.b)({props:a,name:"MuiCardActions"}),{disableSpacing:d=!1,className:g,...i}=c,j={...c,disableSpacing:d},n=(a=>{let{classes:b,disableSpacing:c}=a;return(0,f.A)({root:["root",!c&&"spacing"]},k,b)})(j);return(0,l.jsx)(m,{className:(0,e.A)(n.root,g),ownerState:j,ref:b,...i})})}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=2246,exports.ids=[2246],exports.modules={1312:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M20 6h-8l-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2m0 12H4V6h5.17l1.41 1.41.59.59H20zm-7.84-6H8v2h4.16l-1.59 1.59L11.99 17 16 13.01 11.99 9l-1.41 1.41z"}),"DriveFileMoveOutlined")},5748:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M13 13v8h8v-8zM3 21h8v-8H3zM3 3v8h8V3zm13.66-1.31L11 7.34 16.66 13l5.66-5.66z"}),"Widgets")},30137:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close")},38941:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2m0 16H8V7h11z"}),"ContentCopy")},40443:(a,b,c)=>{c.d(b,{A:()=>g,Y:()=>f});var d=c(29565),e=c(33105);function f(a){return(0,e.Ay)("MuiListItemButton",a)}let g=(0,d.A)("MuiListItemButton",["root","focusVisible","dense","alignItemsFlexStart","disabled","divider","gutters","selected"])},53222:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4z"}),"Refresh")},56685:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M20 4H4c-1.11 0-2 .9-2 2v12c0 1.1.89 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.89-2-2-2m0 14H4V8h16zm-2-1h-6v-2h6zM7.5 17l-1.41-1.41L8.67 13l-2.59-2.59L7.5 9l4 4z"}),"Terminal")},71439:(a,b,c)=>{c.d(b,{Ay:()=>x});var d=c(38301),e=c(43249),f=c(2783),g=c(7103),h=c(18168),i=c(68333),j=c(6636),k=c(67934),l=c(26636),m=c(55470),n=c(29565),o=c(33105);function p(a){return(0,o.Ay)("MuiListItem",a)}(0,n.A)("MuiListItem",["root","container","dense","alignItemsFlexStart","divider","gutters","padding","secondaryAction"]);var q=c(40443);function r(a){return(0,o.Ay)("MuiListItemSecondaryAction",a)}(0,n.A)("MuiListItemSecondaryAction",["root","disableGutters"]);var s=c(21124);let t=(0,h.Ay)("div",{name:"MuiListItemSecondaryAction",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,c.disableGutters&&b.disableGutters]}})({position:"absolute",right:16,top:"50%",transform:"translateY(-50%)",variants:[{props:({ownerState:a})=>a.disableGutters,style:{right:0}}]}),u=d.forwardRef(function(a,b){let c=(0,j.b)({props:a,name:"MuiListItemSecondaryAction"}),{className:g,...h}=c,i=d.useContext(m.A),k={...c,disableGutters:i.disableGutters},l=(a=>{let{disableGutters:b,classes:c}=a;return(0,f.A)({root:["root",b&&"disableGutters"]},r,c)})(k);return(0,s.jsx)(t,{className:(0,e.A)(l.root,g),ownerState:k,ref:b,...h})});u.muiName="ListItemSecondaryAction";let v=(0,h.Ay)("div",{name:"MuiListItem",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,c.dense&&b.dense,"flex-start"===c.alignItems&&b.alignItemsFlexStart,c.divider&&b.divider,!c.disableGutters&&b.gutters,!c.disablePadding&&b.padding,c.hasSecondaryAction&&b.secondaryAction]}})((0,i.A)(({theme:a})=>({display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",width:"100%",boxSizing:"border-box",textAlign:"left",variants:[{props:({ownerState:a})=>!a.disablePadding,style:{paddingTop:8,paddingBottom:8}},{props:({ownerState:a})=>!a.disablePadding&&a.dense,style:{paddingTop:4,paddingBottom:4}},{props:({ownerState:a})=>!a.disablePadding&&!a.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:a})=>!a.disablePadding&&!!a.secondaryAction,style:{paddingRight:48}},{props:({ownerState:a})=>!!a.secondaryAction,style:{[`& > .${q.A.root}`]:{paddingRight:48}}},{props:{alignItems:"flex-start"},style:{alignItems:"flex-start"}},{props:({ownerState:a})=>a.divider,style:{borderBottom:`1px solid ${(a.vars||a).palette.divider}`,backgroundClip:"padding-box"}},{props:({ownerState:a})=>a.button,style:{transition:a.transitions.create("background-color",{duration:a.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:(a.vars||a).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}}}},{props:({ownerState:a})=>a.hasSecondaryAction,style:{paddingRight:48}}]}))),w=(0,h.Ay)("li",{name:"MuiListItem",slot:"Container",overridesResolver:(a,b)=>b.container})({position:"relative"}),x=d.forwardRef(function(a,b){let c=(0,j.b)({props:a,name:"MuiListItem"}),{alignItems:h="center",children:i,className:n,component:o,components:q={},componentsProps:r={},ContainerComponent:t="li",ContainerProps:{className:x,...y}={},dense:z=!1,disableGutters:A=!1,disablePadding:B=!1,divider:C=!1,secondaryAction:D,slotProps:E={},slots:F={},...G}=c,H=d.useContext(m.A),I=d.useMemo(()=>({dense:z||H.dense||!1,alignItems:h,disableGutters:A}),[h,H.dense,z,A]),J=d.useRef(null),K=d.Children.toArray(i),L=K.length&&(0,k.A)(K[K.length-1],["ListItemSecondaryAction"]),M={...c,alignItems:h,dense:I.dense,disableGutters:A,disablePadding:B,divider:C,hasSecondaryAction:L},N=(a=>{let{alignItems:b,classes:c,dense:d,disableGutters:e,disablePadding:g,divider:h,hasSecondaryAction:i}=a;return(0,f.A)({root:["root",d&&"dense",!e&&"gutters",!g&&"padding",h&&"divider","flex-start"===b&&"alignItemsFlexStart",i&&"secondaryAction"],container:["container"]},p,c)})(M),O=(0,l.A)(J,b),P=F.root||q.Root||v,Q=E.root||r.root||{},R={className:(0,e.A)(N.root,Q.className,n),...G},S=o||"li";return L?(S=R.component||o?S:"div","li"===t&&("li"===S?S="div":"li"===R.component&&(R.component="div")),(0,s.jsx)(m.A.Provider,{value:I,children:(0,s.jsxs)(w,{as:t,className:(0,e.A)(N.container,x),ref:O,ownerState:M,...y,children:[(0,s.jsx)(P,{...Q,...!(0,g.A)(P)&&{as:S,ownerState:{...M,...Q.ownerState}},...R,children:K}),K.pop()]})})):(0,s.jsx)(m.A.Provider,{value:I,children:(0,s.jsxs)(P,{...Q,as:S,ref:O,...!(0,g.A)(P)&&{ownerState:{...M,...Q.ownerState}},...R,children:[K,D&&(0,s.jsx)(u,{children:D})]})})})},75983:(a,b,c)=>{c.d(b,{A:()=>s});var d=c(38301),e=c(43249),f=c(2783),g=c(37489),h=c(18168),i=c(68333),j=c(6636),k=c(41126),l=c(14328),m=c(14758),n=c(26636),o=c(55470),p=c(40443),q=c(21124);let r=(0,h.Ay)(l.A,{shouldForwardProp:a=>(0,k.A)(a)||"classes"===a,name:"MuiListItemButton",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,c.dense&&b.dense,"flex-start"===c.alignItems&&b.alignItemsFlexStart,c.divider&&b.divider,!c.disableGutters&&b.gutters]}})((0,i.A)(({theme:a})=>({display:"flex",flexGrow:1,justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minWidth:0,boxSizing:"border-box",textAlign:"left",paddingTop:8,paddingBottom:8,transition:a.transitions.create("background-color",{duration:a.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:(a.vars||a).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${p.A.selected}`]:{backgroundColor:a.vars?`rgba(${a.vars.palette.primary.mainChannel} / ${a.vars.palette.action.selectedOpacity})`:(0,g.X4)(a.palette.primary.main,a.palette.action.selectedOpacity),[`&.${p.A.focusVisible}`]:{backgroundColor:a.vars?`rgba(${a.vars.palette.primary.mainChannel} / calc(${a.vars.palette.action.selectedOpacity} + ${a.vars.palette.action.focusOpacity}))`:(0,g.X4)(a.palette.primary.main,a.palette.action.selectedOpacity+a.palette.action.focusOpacity)}},[`&.${p.A.selected}:hover`]:{backgroundColor:a.vars?`rgba(${a.vars.palette.primary.mainChannel} / calc(${a.vars.palette.action.selectedOpacity} + ${a.vars.palette.action.hoverOpacity}))`:(0,g.X4)(a.palette.primary.main,a.palette.action.selectedOpacity+a.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:a.vars?`rgba(${a.vars.palette.primary.mainChannel} / ${a.vars.palette.action.selectedOpacity})`:(0,g.X4)(a.palette.primary.main,a.palette.action.selectedOpacity)}},[`&.${p.A.focusVisible}`]:{backgroundColor:(a.vars||a).palette.action.focus},[`&.${p.A.disabled}`]:{opacity:(a.vars||a).palette.action.disabledOpacity},variants:[{props:({ownerState:a})=>a.divider,style:{borderBottom:`1px solid ${(a.vars||a).palette.divider}`,backgroundClip:"padding-box"}},{props:{alignItems:"flex-start"},style:{alignItems:"flex-start"}},{props:({ownerState:a})=>!a.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:a})=>a.dense,style:{paddingTop:4,paddingBottom:4}}]}))),s=d.forwardRef(function(a,b){let c=(0,j.b)({props:a,name:"MuiListItemButton"}),{alignItems:g="center",autoFocus:h=!1,component:i="div",children:k,dense:l=!1,disableGutters:s=!1,divider:t=!1,focusVisibleClassName:u,selected:v=!1,className:w,...x}=c,y=d.useContext(o.A),z=d.useMemo(()=>({dense:l||y.dense||!1,alignItems:g,disableGutters:s}),[g,y.dense,l,s]),A=d.useRef(null);(0,m.A)(()=>{h&&A.current&&A.current.focus()},[h]);let B={...c,alignItems:g,dense:z.dense,disableGutters:s,divider:t,selected:v},C=(a=>{let{alignItems:b,classes:c,dense:d,disabled:e,disableGutters:g,divider:h,selected:i}=a,j=(0,f.A)({root:["root",d&&"dense",!g&&"gutters",h&&"divider",e&&"disabled","flex-start"===b&&"alignItemsFlexStart",i&&"selected"]},p.Y,c);return{...c,...j}})(B),D=(0,n.A)(A,b);return(0,q.jsx)(o.A.Provider,{value:z,children:(0,q.jsx)(r,{ref:D,href:x.href||x.to,component:(x.href||x.to)&&"div"===i?"button":i,focusVisibleClassName:(0,e.A)(C.focusVisible,u),ownerState:B,className:(0,e.A)(C.root,w),...x,classes:C,children:k})})})}};
@@ -1,6 +0,0 @@
1
- "use strict";exports.id=2823,exports.ids=[2823],exports.modules={52823:(a,b,c)=>{c.d(b,{runFlow:()=>C});var d=c(18230),e=c(44561),f=c(79111),g=c(44479);let h=(0,d.h)("backend/execution/flow/persistConversationState");async function i(a,b){let c="conversations/",d=String(a).startsWith(c)?String(a).slice(c.length):String(a);return((0,f.ln)(d),null!=b.conversationId&&(0,f.ln)(b.conversationId),b.ephemeral)?(h.debug(`Refusing to persist ephemeral state (key ${a}); ephemeral runs never reach the conversations store.`),Promise.resolve()):(0,g.isConversationDeleted)(b.conversationId)?(h.info(`Refusing to persist state for deleted conversation ${b.conversationId} (key ${a}).`),Promise.resolve()):(0,f.VH)(a,{...b,executionTrace:void 0,emit:void 0})}var j=c(34115),k=c(96249),l=c(37860),m=c(26485),n=c(80808),o=c(59448),p=c(11659),q=c(86028),r=c(12763),s=c(82464),t=c(54898);let u=(0,d.h)("backend/execution/flow/validateFlowForRun");async function v(a){let b,c;try{b=await r.modelService.loadModels()}catch(a){u.warn("validateFlowObjectForRun: could not load models; skipping model checks",a)}try{let a=await s.mcpService.loadServerConfigs();Array.isArray(a)&&(c=a.map(a=>({name:a.name,status:a.disabled?"disabled":void 0})))}catch(a){u.warn("validateFlowObjectForRun: could not load servers; skipping server checks",a)}return(0,t.nC)(a,{models:b,servers:c})}async function w(a){let b=await p.flowService.getFlow(a);return b?v(b):(u.warn(`validateFlowForRun: flow ${a} could not be loaded; skipping pre-run checks`),{issues:[],errorCount:0,warningCount:0,isRunnable:!0})}var x=c(85701);function y(a){let b=(a??"").replace(/\s+/g," ").trim();if(!b)return"New Conversation";let c=b,d=!1,e=c.split(" ");if(e.length>10&&(c=e.slice(0,10).join(" "),d=!0),c.length>60){let a=c.slice(0,60),b=a.lastIndexOf(" ");c=(b>0?a.slice(0,b):a).trimEnd(),d=!0}return d?`${c}…`:c}let z=(0,d.h)("backend/execution/flow/runFlow");p.flowService.getFlowByName||(p.flowService.getFlowByName=async a=>(await p.flowService.loadFlows()).find(b=>b.name===a)||null,z.info("Added getFlowByName method directly to flowService instance."));let A=p.flowService;async function B(a,b,c){try{let d,e=a.flowId;if(!e)return;try{d=(await p.flowService.getFlow(e))?.name??void 0}catch{}let f="api"===a.source?"api":"chat",g=c&&c.length>4096?`${c.slice(0,4096)}…`:c;(0,l.eh)().publish({flowId:e,flowName:d,executionId:a.plannedExecutionId,runId:a.conversationId||"",conversationId:a.conversationId||"",status:b,outputText:g,firedBy:f,chainDepth:a.chainDepth??0,timestamp:new Date().toISOString()})}catch(a){z.warn("Failed to publish runFlow flow-run event:",a)}}async function C(a){let b,c,d,h=Date.now(),l=a.flujo??!0,p=a.requireApproval??!1,r=a.debug??!1,s=a.continueDebug??!1,t=a.userTurn??!1,u="ephemeral"===a.mode,C=a.messages??(void 0!==a.prompt?[{role:"user",content:a.prompt}]:[]),D={model:a.modelName,messages:C,processNodeId:a.processNodeId};z.info("runFlow invoked",{flowId:a.flowId,model:a.modelName,messageCount:C.length,mode:u?"ephemeral":"conversation",flujo:l,requireApproval:p,flujodebug:r,conversationId:a.conversationId});let E=a.conversationId||crypto.randomUUID(),F=`conversations/${E}`,G="new";if(z.info(`Effective Conversation ID for this run: ${E}`,{providedId:a.conversationId}),e.FlowExecutor.conversationStates.has(E))c=e.FlowExecutor.conversationStates.get(E),z.info(`Resuming conversation ${E} from memory`,{currentNodeId:c.currentNodeId}),G="memory";else if(!u)try{(c=await (0,f.YM)(F,void 0))?(z.info(`Loaded conversation state from storage: ${E}`),G="storage",await (0,j.jM)(c),e.FlowExecutor.conversationStates.set(E,c)):z.info(`No state found in storage for conversation: ${E}. Will create new state.`)}catch(a){z.warn(`Error loading conversation state from storage for ${E}:`,a)}if(c?((b=c).conversationId!==E&&(z.warn(`Loaded state's internal conversationId (${b.conversationId}) differs from effectiveConvId (${E}). Using effectiveConvId.`),b.conversationId=E),"new"!==G&&("completed"===b.status||"error"===b.status||void 0===b.status)&&(z.info(`Resuming completed/errored/fresh conversation ${E}. Resetting status to 'running'.`),b.status="running",b.lastResponse=void 0,b.isCancelled=!1,"storage"===G&&e.FlowExecutor.conversationStates.set(E,b)),D.processNodeId&&"new"!==G&&(z.info(`Edit detected: Resetting currentNodeId for conversation ${E} to provided processNodeId: ${D.processNodeId}`),b.currentNodeId=D.processNodeId,b.status="running",b.lastResponse=void 0,b.pendingToolCalls=void 0,b.handoffRequested=void 0,b.isCancelled=!1,b.trackingInfo={executionId:crypto.randomUUID(),startTime:Date.now(),nodeExecutionTracker:[]},q.G.ENABLE_EXECUTION_TRACKER&&b.executionTrace&&(b.executionTrace=[]),e.FlowExecutor.conversationStates.set(E,b),z.verbose(`State updated in memory with reset currentNodeId: ${b.currentNodeId}`))):(z.info(`Creating new conversation state object for ID: ${E}`),b={trackingInfo:{executionId:crypto.randomUUID(),startTime:Date.now(),nodeExecutionTracker:(q.G.ENABLE_EXECUTION_TRACKER,[])},messages:[],flowId:"",conversationId:E,currentNodeId:void 0,status:"running",title:"New Conversation",createdAt:Date.now(),updatedAt:Date.now(),debugMode:r,executionTrace:r&&q.G.ENABLE_EXECUTION_TRACKER?[]:void 0,variables:{}}),a.variables&&"object"==typeof a.variables)for(let[c,d]of(b.variables=b.variables??{},Object.entries(a.variables)))null!=d&&(b.variables[c]="string"==typeof d?d:String(d));if(b.requireApproval=p,a.source&&(b.source=a.source),a.plannedExecutionId&&(b.plannedExecutionId=a.plannedExecutionId),u&&(b.ephemeral=!0),a.parentRunId&&(b.parentRunId=a.parentRunId),b.runDepth=a.depth??b.runDepth??0,b.chainDepth=a.chainDepth??b.chainDepth??0,b.onApprovalRequired=a.onApprovalRequired??b.onApprovalRequired??"auto",b.runDepth>x.A)return z.error(`runFlow aborted: subflow depth ${b.runDepth} exceeds max ${x.A}`),b.status="error",{status:"error",conversationId:E,outputText:"",messages:b.messages,error:{message:`Subflow recursion limit (${x.A}) exceeded`,statusCode:500},finalAction:m.O,sharedState:b};let H=[...b.messages??[]];if("new"===G){a.flowDefinition&&(b.flowSnapshot=a.flowDefinition,b.flowId=a.flowDefinition.id);let c=a.flowDefinition?a.flowDefinition.id:a.flowId;if(!c&&D.model){let a=D.model.substring(5),d=await A.getFlowByName(a);if(!d)return z.error(`Flow not found: ${a}`),{status:"error",conversationId:E,outputText:"",messages:b.messages,flowNotFound:{name:a},error:{message:`Flow not found: ${a}`,statusCode:400},finalAction:m.O,sharedState:b};c=d.id}if(!c)return z.error("No flow specified for run (neither flowId nor model provided)."),{status:"error",conversationId:E,outputText:"",messages:b.messages,error:{message:"No flow specified (provide flowId or model).",statusCode:400},finalAction:m.O,sharedState:b};b.flowId=c;let d=(D.messages||[]).filter(a=>!(a.depth>0)).map(a=>({...a,id:a.id||crypto.randomUUID(),timestamp:a.timestamp||Date.now(),processNodeId:a.processNodeId||void 0}));b.messages=d;try{if(b.updatedAt=Date.now(),"New Conversation"===b.title&&b.messages.length>0){let a=b.messages.find(a=>"user"===a.role);a&&"string"==typeof a.content&&(b.title=y(a.content),z.verbose(`Updated conversation title for ${E} during init to: ${b.title}`))}await i(F,b),z.debug(`Saved initial state for new conversation ${E}.`)}catch(a){z.error(`Failed to save initial state for new conversation ${E}:`,a)}e.FlowExecutor.conversationStates.set(E,b)}else D.messages&&D.messages.length>0&&(b.messages=D.messages.filter(a=>!(a.depth>0)).map(a=>({...a,id:a.id||crypto.randomUUID(),timestamp:a.timestamp||Date.now(),processNodeId:a.processNodeId||void 0})),z.info(`Updated conversation ${b.conversationId} with ${b.messages.length} messages from request`)),(t||void 0===b.debugMode)&&(b.debugMode=r),t&&(b.debugPendingToolCalls=void 0),b.debugMode&&q.G.ENABLE_EXECUTION_TRACKER&&!b.executionTrace&&(b.executionTrace=[]);try{await (0,j.UG)(b,H)}catch(a){z.warn(`Conversation-log reconcile failed for ${E}; continuing`,a)}if(t&&"new"!==G&&!D.processNodeId){let a=b.messages.length>0?b.messages[b.messages.length-1]:void 0;a?.role==="user"&&a.processNodeId&&a.processNodeId!==b.currentNodeId&&(z.info(`New user turn for ${E}: directing execution to node ${a.processNodeId} (was ${b.currentNodeId}).`),b.currentNodeId=a.processNodeId,e.FlowExecutor.conversationStates.set(E,b))}t&&b.flowId&&(e.FlowExecutor.clearFlowCache(b.flowId),z.debug(`Cleared compiled-flow cache for ${b.flowId} at start of user turn ${E}.`));let I=!1,J=0,K=a.emit??k.$.emitterFor(E),L=new Set(b.messages.map(a=>a.id).filter(a=>!!a)),M=a=>{if(!a.usage)return;let c=b.usage??{promptTokens:0,completionTokens:0,totalTokens:0,costUsd:0,byNode:{}};c.promptTokens+=a.usage.promptTokens,c.completionTokens+=a.usage.completionTokens,c.totalTokens+=a.usage.totalTokens;let d=a.usage.cacheReadTokens??0;d&&(c.cacheReadTokens=(c.cacheReadTokens??0)+d);let e=a.processNodeId||"unknown",f=c.byNode[e]??{promptTokens:0,completionTokens:0,totalTokens:0,costUsd:0};f.promptTokens+=a.usage.promptTokens,f.completionTokens+=a.usage.completionTokens,f.totalTokens+=a.usage.totalTokens,d&&(f.cacheReadTokens=(f.cacheReadTokens??0)+d),c.byNode[e]=f,b.usage=c,K({type:"usage",node:a.processNodeId?{nodeId:a.processNodeId}:void 0,promptTokens:a.usage.promptTokens,completionTokens:a.usage.completionTokens,totalTokens:a.usage.totalTokens,costUsd:0,...d?{cacheReadTokens:d}:{}})},N=()=>{for(let a of b.messages)a.id||(a.id=crypto.randomUUID()),L.has(a.id)||(L.add(a.id),"system"!==a.role&&(K({type:"message",message:a,node:a.processNodeId?{nodeId:a.processNodeId}:void 0}),M(a)))};if(K({type:"run:start",flowId:b.flowId}),(t||"new"===G)&&b.flowId)try{let a=b.flowSnapshot?await v(b.flowSnapshot):await w(b.flowId);if(!a.isRunnable){let c=a.issues.filter(a=>"error"===a.severity),e=`This flow can't run yet — please fix the following before running:
2
- `+c.map(a=>`• ${a.message}`).join("\n");z.warn(`Pre-run validation blocked flow ${b.flowId} for conv ${E}`,{errorCount:c.length,codes:c.map(a=>a.code)}),b.lastResponse={success:!1,error:e,errorDetails:{message:e,type:"invalid_request_error",code:"flow_invalid",status:400}},d=m.O,I=!0}}catch(a){z.warn(`Pre-run validation could not complete for ${b.flowId}; proceeding`,a)}let O=()=>!!b.isCancelled||!!(0,g.isCancelledByAncestry)(b.parentRunId,e.FlowExecutor.conversationStates)&&(b.isCancelled=!0,!0),P=!!b.debugMode&&!s,Q=()=>{b.status="paused_debug",K({type:"run:paused",reason:"debug",node:b.currentNodeId?{nodeId:b.currentNodeId}:void 0})};try{if(!I)for(;;){if(J++,z.debug(`--- Starting Execution Step ${J} for Conv ${E} ---`),J>150){z.warn(`Max internal iterations (150) reached for conv ${E}. Breaking loop.`),d!==m.O&&(b.lastResponse={success:!1,error:"Maximum internal iterations (150) reached."},d=m.O);break}if(O()){z.info(`Cancellation flag detected for conv ${E}. Terminating execution.`),b.status="error",b.lastResponse={success:!1,error:"Execution cancelled by user."},d=m.O;break}if(b.debugPendingToolCalls&&b.debugPendingToolCalls.length>0){let a=b.debugPendingToolCalls;b.debugPendingToolCalls=void 0,z.info(`[Debug Step] Executing ${a.length} pending tool call(s) for conv ${E}.`);let c=await n.s.processToolCalls({toolCalls:a,toolNameMap:b.toolNameMap,emit:K,conversationId:b.ephemeral?void 0:b.conversationId,node:b.currentNodeId?{nodeId:b.currentNodeId}:void 0,shouldAbort:O});if(!c.success){z.error(`Debug tool processing failed for conv ${E}`,{error:c.error}),b.lastResponse={success:!1,error:"Tool processing failed",errorDetails:c.error},d=m.O;break}let f=c.value.toolCallMessages.map(a=>({...a,id:crypto.randomUUID(),timestamp:Date.now(),processNodeId:b.currentNodeId}));b.messages.push(...f),e.FlowExecutor.conversationStates.set(E,b),N();try{b.updatedAt=Date.now(),await i(F,b)}catch(a){z.error(`Failed to save state after debug tool execution for conv ${E}:`,a)}if(P){z.info(`[Debug Step] Paused after tool execution for conv ${E}.`),Q();break}continue}if(!P&&b.breakpoints&&b.breakpoints.length>0){let a=await e.FlowExecutor.peekNextNodeId(b);if(a&&b.breakpoints.includes(a)&&b.lastBreakNodeId!==a){z.info(`Breakpoint hit at node ${a} for conv ${E}. Pausing.`),b.status="paused_debug",b.debugMode=!0,b.lastBreakNodeId=a,K({type:"breakpoint:hit",node:{nodeId:a}}),K({type:"run:paused",reason:"breakpoint",node:{nodeId:a}});try{b.updatedAt=Date.now(),await i(F,b)}catch(a){z.error(`Failed to save state on breakpoint for conv ${E}:`,a)}break}a&&b.lastBreakNodeId&&a!==b.lastBreakNodeId&&(b.lastBreakNodeId=void 0)}if(b.messages.length>0){let a=b.messages.slice(-3);z.verbose(`Message history before step ${J}`,a)}else z.verbose(`No messages in history before step ${J}`);let a=await e.FlowExecutor.executeStep(b,K);if(b=a.sharedState,d=a.action,N(),b.updatedAt=Date.now(),"New Conversation"===b.title&&b.messages.length>0){let a=b.messages.find(a=>"user"===a.role);a&&"string"==typeof a.content&&(b.title=y(a.content),z.verbose(`Updated conversation title for ${E} after step ${J} to: ${b.title}`))}if(z.info(`Step ${J} completed for conv ${E}. Action: ${d}`,{currentNodeId:b.currentNodeId}),z.verbose(`Shared state after step ${J}`,b),z.debug(`[Action Handling] Step ${J}: Received action "${d}" for conv ${E}`),d===m.O){z.info(`[Action Handling] Step ${J}: Handling ERROR_ACTION for conv ${E}`),z.error(`Error action received during step ${J} for conv ${E}`,{error:b.lastResponse});break}if(d===m.g4){z.info(`[Action Handling] Step ${J}: Handling FINAL_RESPONSE_ACTION for conv ${E}`),z.info(`Final response action received at step ${J} for conv ${E}`),b.status="completed",z.info(`Setting conversation status to 'completed' for conv ${E}`);break}if(d===m.Jp){z.info(`[Action Handling] Step ${J}: Handling TOOL_CALL_ACTION for conv ${E}`),z.info(`Tool call action received at step ${J} for conv ${E}`);let a=b.messages.length>0?b.messages[b.messages.length-1]:null;if(a?.role==="assistant"&&a.tool_calls)if(l){if(p&&"fail"===b.onApprovalRequired){let c=a.tool_calls[0],e=c&&"function"===c.type?c.function.name:"unknown";z.info(`[flujo=true, onApprovalRequired=fail] Failing fast for tool "${e}" (conv ${E})`),b.status="error",b.pendingToolCalls=a.tool_calls,b.lastResponse={success:!1,error:`Headless run requires approval for tool "${e}" but no approver is available (approvalPolicy: fail).`,errorDetails:{message:`Headless run requires approval for tool "${e}" but no approver is available (approvalPolicy: fail).`,type:"approval_required",name:e}},d=m.O;break}if(p){z.info(`[flujo=true, requireApproval=true] Pausing execution for tool approval for conv ${E}`),b.status="awaiting_tool_approval",b.pendingToolCalls=a.tool_calls,b.lastResponse=void 0,e.FlowExecutor.conversationStates.set(E,b);try{if(b.updatedAt=Date.now(),"New Conversation"===b.title&&b.messages.length>0){let a=b.messages.find(a=>"user"===a.role);a&&"string"==typeof a.content&&(b.title=y(a.content),z.verbose(`Updated conversation title for ${E} before pausing to: ${b.title}`))}await i(F,b),z.verbose(`Saved state before pausing for approval for conv ${E}`)}catch(a){z.error(`Failed to save state before pausing for approval for conv ${E}:`,a)}K({type:"run:awaiting_approval",pendingToolCalls:a.tool_calls});break}if(P){z.info(`[Debug Step] Paused before executing ${a.tool_calls.length} tool call(s) for conv ${E}.`),b.debugPendingToolCalls=a.tool_calls,e.FlowExecutor.conversationStates.set(E,b);try{b.updatedAt=Date.now(),await i(F,b)}catch(a){z.error(`Failed to save state before debug tool pause for conv ${E}:`,a)}Q();break}{z.info(`[flujo=true, requireApproval=false] Processing ${a.tool_calls.length} tools internally for conv ${E}`);let c=await n.s.processToolCalls({toolCalls:a.tool_calls,toolNameMap:b.toolNameMap,emit:K,conversationId:b.ephemeral?void 0:b.conversationId,node:b.currentNodeId?{nodeId:b.currentNodeId}:void 0,shouldAbort:O});if(!c.success){z.error(`Internal tool processing failed for conv ${E}`,{error:c.error}),b.lastResponse={success:!1,error:"Tool processing failed",errorDetails:c.error},d=m.O;break}z.info(`Adding ${c.value.toolCallMessages.length} tool result messages for conv ${E}`);let f=c.value.toolCallMessages.map(a=>({...a,id:crypto.randomUUID(),timestamp:Date.now(),processNodeId:b.currentNodeId}));b.messages.push(...f),e.FlowExecutor.conversationStates.set(E,b),N(),z.info(`Continuing loop for conv ${E} after internal tool processing (no approval needed).`);continue}}else{z.info(`[flujo=false] Tool call action received for conv ${E}. Checking tool types.`);let c=a.tool_calls||[],f=[],g=[];if(c.forEach(a=>{"function"===a.type&&(0,o.$9)(a.function.name,b.toolNameMap)?(z.verbose("tool is internal:",a.function.name),f.push(a)):(z.verbose("tool is external:",a.function.name),g.push(a))}),f.length>0){z.info(`[flujo=false] Processing ${f.length} internal tools for conv ${E}. External tools (${g.length}) will be ignored this step.`);let a=await n.s.processToolCalls({toolCalls:f,toolNameMap:b.toolNameMap,emit:K,conversationId:b.ephemeral?void 0:b.conversationId,node:b.currentNodeId?{nodeId:b.currentNodeId}:void 0,shouldAbort:O});if(!a.success){z.error(`[flujo=false] Internal tool processing failed for conv ${E}`,{error:a.error}),b.lastResponse={success:!1,error:"Internal tool processing failed",errorDetails:a.error},d=m.O;break}z.info(`Adding ${a.value.toolCallMessages.length} internal tool result messages for conv ${E}`);let c=a.value.toolCallMessages.map(a=>({...a,id:crypto.randomUUID(),timestamp:Date.now(),processNodeId:b.currentNodeId}));b.messages.push(...c),e.FlowExecutor.conversationStates.set(E,b),z.info(`Continuing loop for conv ${E} after internal tool processing (flujo=false).`);continue}if(g.length>0){z.info(`[flujo=false] Found ${g.length} external tools for conv ${E}. Wrapping in XML and returning.`);let a=[];for(let b of g)if("function"===b.type)try{let c=JSON.parse(b.function.arguments||"{}"),d="";for(let a in c){let b=String(c[a]).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;");d+=`
3
- <${a}>${b}</${a}>`}a.push(`<${b.function.name}>${d}
4
- </${b.function.name}>`)}catch(c){z.error(`[flujo=false] Failed to parse arguments for external tool ${b.function.name}`,{args:b.function.arguments,error:c,convId:E}),a.push(`<${b.function.name}>
5
- <error>Failed to parse arguments: ${c instanceof Error?c.message:String(c)}</error>
6
- </${b.function.name}>`)}b.lastResponse={_flujo_xml_tools:a.join("\n\n")},d=m.g4,z.info(`[flujo=false] Prepared XML for external tools. Exiting loop for conv ${E}.`);break}z.warn(`[flujo=false] TOOL_CALL_ACTION received for conv ${E} but no tools found after classification. Treating as final.`),d=m.g4;break}z.warn(`TOOL_CALL_ACTION received for conv ${E} but no tool_calls found in last message. Treating as final.`),d=m.g4;break}let c=await e.FlowExecutor.resolveHandoff(b,d);if(c.isSuccessorEdge){z.info(`[Action Handling] Step ${J}: Handling Handoff Action (Edge ID) for conv ${E}`),z.info(`Handoff action received for conv ${E}. Edge: ${d}`);let a=c.targetNodeId;if("string"==typeof a&&a.length>0){let c,f=b.messages.length>0?b.messages[b.messages.length-1]:null;if(f?.role==="assistant"&&f.tool_calls){let e=f.tool_calls.find(a=>"function"===a.type&&("handoff"===a.function.name||a.function.name.startsWith("handoff_to_")));if(e){if(c=e.id,z.debug(`Found handoff tool call ID: ${c} for edge ${d}`),"function"===e.type)try{let c=JSON.parse(e.function.arguments||"{}"),d="string"==typeof c?.prompt?c.prompt.trim():"",f=Array.isArray(c?.parallelFlows)?c.parallelFlows.filter(a=>"string"==typeof a&&""!==a.trim()):void 0,g=c?.concurrencyLimit,h="number"==typeof g&&g>=1?Math.floor(g):void 0;(d||f&&f.length>0)&&(b.handoffInput={targetNodeId:a,prompt:d,...f&&f.length>0?{parallelFlows:f}:{},...void 0!==h?{concurrencyLimit:h}:{}},z.info(`Captured caller handoff input for node ${a}`,{promptChars:d.length,fanoutCount:f?.length??0}))}catch(a){z.warn(`Could not parse handoff tool-call arguments for edge ${d}; ignoring caller input`,{parseError:a})}let f={id:crypto.randomUUID(),role:"tool",tool_call_id:c,content:JSON.stringify({status:"Handoff processed",targetNodeId:a}),timestamp:Date.now(),processNodeId:b.currentNodeId};b.messages.push(f),z.info(`Appended tool result message for handoff tool call ${c}`)}else z.warn(`Handoff action received for edge ${d}, but could not find corresponding handoff tool call in last assistant message.`)}else z.warn(`Handoff action received for edge ${d}, but the last message was not an assistant message with tool calls.`);N();let g=b.currentNodeId;if(b.currentNodeId=a,b.handoffRequested=void 0,K({type:"handoff",from:g?{nodeId:g}:void 0,toNodeId:a,edgeId:d}),z.info(`Transitioning conv ${E} to node ${b.currentNodeId}`),e.FlowExecutor.conversationStates.set(E,b),P){z.info(`[Debug Step] Paused after handoff to node ${b.currentNodeId} for conv ${E}.`),Q();break}z.info(`Continuing loop for conv ${E} after handoff.`);continue}z.error(`Handoff failed for conv ${E}: Successor node for edge ${d} has invalid ID.`),b.lastResponse={success:!1,error:`Handoff failed: Target node for edge ${d} has invalid ID.`},d=m.O;break}if(d===m.E5){z.info(`[Action Handling] Step ${J}: Handling STAY_ON_NODE_ACTION for conv ${E}`),z.info(`Stay on node action received for conv ${E} at step ${J}`);break}z.warn(`Unrecognized action '${d}' received at step ${J} for conv ${E}. Treating as final response.`),d=m.g4;break}}catch(a){if(z.error(`Unhandled error during execution loop for conv ${E}`,{loopError:a}),d!==m.O&&O()&&(b.status="error",b.lastResponse={success:!1,error:"Execution cancelled by user."},d=m.O),d!==m.O){let c=a?.details;b.lastResponse={success:!1,error:a instanceof Error?a.message:String(a),errorDetails:a instanceof Error?{name:a.name,message:a.message,stack:a.stack,...c&&"object"==typeof c?c:{}}:void 0},d=m.O}}d!==m.O&&O()&&(z.info(`Cancellation flag set at run end for conv ${E}; reporting cancelled instead of '${b.status}'.`),b.status="error",b.lastResponse={success:!1,error:"Execution cancelled by user."},d=m.O),d===m.O&&"error"!==b.status&&(b.status="error");let R=Date.now()-h,S=b.status||(d===m.g4?"completed":d===m.O?"error":"running");if(z.info(`Execution finished for conv ${E}. Final Action: ${d}, Final Status: ${S}`,{duration:`${R}ms`}),N(),("completed"===S||"error"===S)&&(K({type:"run:done",status:S}),"schedule"!==b.source&&(b.runDepth??0)===0)){let a=b.messages[b.messages.length-1],c=a&&"assistant"===a.role&&"string"==typeof a.content?a.content:void 0;B(b,S,c)}try{if(b.updatedAt=Date.now(),"New Conversation"===b.title&&b.messages.length>0){let a=b.messages.find(a=>"user"===a.role);a&&"string"==typeof a.content&&(b.title=y(a.content),z.verbose(`Updated conversation title for ${E} before final return to: ${b.title}`))}await i(F,b),z.debug(`Saved final state for conversation ${E} before returning.`)}catch(a){z.error(`Failed to save final state for conversation ${E}:`,a)}(0,g.isConversationDeleted)(E)?e.FlowExecutor.conversationStates.delete(E):e.FlowExecutor.conversationStates.set(E,b);let T=()=>{u&&("completed"===b.status||"error"===b.status)&&e.FlowExecutor.conversationStates.delete(E)},U={conversationId:b.conversationId||E,messages:b.messages,usage:b.usage,finalAction:d,sharedState:b};if("paused_debug"===b.status)return z.info(`Returning paused debug state for conv ${E}`),{...U,status:"paused_debug",outputText:"",pendingToolCalls:b.pendingToolCalls};if("error"===b.status||d===m.O){let a,c="Unknown error during execution",d=500;if("object"==typeof b.lastResponse&&null!==b.lastResponse)if("success"in b.lastResponse&&!1===b.lastResponse.success&&"error"in b.lastResponse&&"string"==typeof b.lastResponse.error){if(c=b.lastResponse.error,"errorDetails"in b.lastResponse&&"object"==typeof b.lastResponse.errorDetails&&null!==b.lastResponse.errorDetails){let e=b.lastResponse.errorDetails;(a={message:"string"==typeof e.message?e.message:c,type:"string"==typeof e.type?e.type:void 0,code:"string"==typeof e.code?e.code:void 0,param:"string"==typeof e.param?e.param:void 0,status:"number"==typeof e.status?e.status:void 0,stack:"string"==typeof e.stack?e.stack:void 0,name:"string"==typeof e.name?e.name:void 0}).status&&(d=a.status)}}else try{c=`Unexpected error state object: ${JSON.stringify(b.lastResponse)}`}catch{c="Unexpected error state object (unserializable)"}else"string"==typeof b.lastResponse&&(c=b.lastResponse);return a?a.message=a.message||c:a={message:c},z.error(`Returning error result for conv ${E}`,{errorMessage:c,errorDetails:a,statusCode:d}),"error"!==b.status&&(b.status="error"),T(),{...U,status:"error",outputText:"",error:{message:c,details:a,statusCode:d}}}let V=b.messages.length>0?b.messages[b.messages.length-1]:null,W="",X="";"object"==typeof b.lastResponse&&null!==b.lastResponse&&"_flujo_xml_tools"in b.lastResponse?(X=b.lastResponse._flujo_xml_tools,W=V?.role==="assistant"&&"string"==typeof V.content?V.content:"",W+=(W?"\n\n":"")+X,b.lastResponse=W):W="string"==typeof b.lastResponse?b.lastResponse:V?.role==="assistant"&&"string"==typeof V.content?V.content:d!==m.Jp||l?"Processing complete.":"";let Y=X?void 0:V?.role==="assistant"?V.tool_calls:void 0;return z.info(`Returning success result for conv ${E}`,{action:d,status:b.status,flujo:l,requireApproval:p,flujodebug:r}),T(),{...U,status:b.status||(d===m.g4?"completed":"running"),outputText:W,toolCalls:Y,pendingToolCalls:b.pendingToolCalls}}},54898:(a,b,c)=>{c.d(b,{nC:()=>m});var d=c(8336),e=c(78606),f=c(27386),g=c(33132);function h(a){return a.data?.type??a.type??"unknown"}function i(a){return a.data?.label||a.id}function j(a){return a.data?.edgeType==="mcp"}function k(a){return a.data?.edgeType==="resource"}function l(a){return j(a)||k(a)}function m(a,b={}){let c=[],n=Array.isArray(a?.nodes)?a.nodes:[],o=Array.isArray(a?.edges)?a.edges:[],p=(a,b,d,e)=>c.push({severity:a,code:b,message:d,nodeId:e?.id,nodeLabel:e?i(e):void 0}),q=new Map((b.models??[]).map(a=>[a.id,a])),r=new Map((b.servers??[]).map(a=>[a.name,a])),s=!!b.models,t=!!b.servers,u=n.filter(a=>"start"===h(a)),v=n.filter(a=>"finish"===h(a)),w=n.filter(a=>"process"===h(a)),x=n.filter(a=>"mcp"===h(a));if(0===u.length)p("error","no-start-node","The flow has no Start node, so it has no entry point.");else if(u.length>1)for(let a of u.slice(1))p("error","multiple-start-nodes","The flow has more than one Start node; only one is allowed.",a);for(let a of(0===v.length&&p("warning","no-finish-node","The flow has no Finish node; it will run but never reaches a defined end."),w)){let b=a.data?.properties??{},c=b.boundModel;if(c){if(s&&!q.has(c)){let c="string"==typeof b.modelName&&b.modelName?` (was "${b.modelName}")`:"";p("error","process-model-missing",`Process node "${i(a)}" is bound to a model that no longer exists${c}.`,a)}}else p("error","process-missing-model",`Process node "${i(a)}" has no model bound.`,a)}for(let a of x){let b=(a.data?.properties??{}).boundServer;if(b){if(t&&!r.has(b))p("warning","mcp-server-missing",`MCP node "${i(a)}" is bound to server "${b}", which isn't in your current MCP server list. It may be offline (e.g. not connected), renamed, or removed — if it was renamed or removed, rebind this node.`,a);else if(t){let c=r.get(b);if(c.status&&"connected"!==c.status){let d="disabled"===c.status?"disabled":`not connected (${c.status})`;p("warning","mcp-server-disconnected",`MCP node "${i(a)}" is bound to server "${b}", which is currently ${d}. It will provide tools again once it reconnects.`,a)}}}else p("warning","mcp-missing-server",`MCP node "${i(a)}" is not bound to a server.`,a);o.some(b=>j(b)&&(b.source===a.id||b.target===a.id))||p("warning","mcp-node-unconnected",`MCP node "${i(a)}" is not connected to any Process node.`,a)}for(let a of n.filter(a=>"resource"===h(a))){let b=a.data?.properties??{},c="run"===b.scope?"run":"mcp",d="string"==typeof b.boundServer?b.boundServer:"",e="string"==typeof b.uri?b.uri:"",g="string"==typeof b.runName?b.runName.trim():"";"mcp"!==c||d&&e||p("warning","resource-missing-binding",`Resource node "${i(a)}" has no ${!d?"server":"resource URI"} bound; connected steps will receive nothing.`,a),"run"!==c||g||p("warning","resource-missing-binding",`Resource node "${i(a)}" is a run artifact with no name; give it a name so steps can produce/consume it.`,a),"run"===c&&g&&!(0,f.qW)(g)&&p("warning","resource-run-name",`Resource node "${i(a)}" is named "${g}", which is not a valid artifact name (letters, digits, _ and - only, not starting with a digit); it will be awkward to reference with \${res:...}.`,a),"mcp"===c&&d&&t&&!r.has(d)&&p("warning","resource-server-missing",`Resource node "${i(a)}" is bound to server "${d}", which isn't in your current MCP server list.`,a);let h=o.filter(b=>k(b)&&(b.source===a.id||b.target===a.id));0===h.length&&p("warning","resource-node-unconnected",`Resource node "${i(a)}" is not connected to any Process node.`,a);let j=h.filter(b=>b.target===a.id);"mcp"===c&&j.length>0&&p("error","resource-produce-static",`Resource node "${i(a)}" is a static MCP resource, but a step writes INTO it. Only run artifacts (scope "run") can be produced by a step — flip the edge or make this a run artifact.`,a),"run"===c&&j.length>1&&p("warning","resource-multiple-producers",`Resource node "${i(a)}" is produced by ${j.length} steps; the last writer wins. Consider one producer per artifact.`,a),"run"===c&&0===j.length&&h.length>0&&p("warning","resource-consumed-never-produced",`Resource node "${i(a)}" is consumed but no step in this flow produces it; it resolves to nothing unless an earlier run captured it.`,a)}for(let a of n.filter(a=>"signal"===h(a))){let b=a.data?.properties??{};("string"==typeof b.topic?b.topic.trim():"")||p("warning","signal-missing-topic",`Signal node "${i(a)}" has no topic; it emits nothing. Give it a topic that a flow-event trigger can listen for.`,a)}if(u.length>0){let a=function(a){let b=new Map,c=(a,c)=>{b.has(a)||b.set(a,[]),b.get(a).push(c)};for(let b of a)!l(b)&&(c(b.source,b.target),b.data?.bidirectional&&c(b.target,b.source));return b}(o);for(let b of u)a.get(b.id)?.length||p("error","start-no-outgoing","The Start node is not connected to anything; the flow cannot run.",b);let b=function(a,b){let c=new Set(a),d=[...a];for(;d.length;){let a=d.shift();for(let e of b.get(a)??[])c.has(e)||(c.add(e),d.push(e))}return c}(u.map(a=>a.id),a);for(let a of[...w,...v])b.has(a.id)||p("warning","unreachable-node",`${"finish"===h(a)?"Finish":"Process"} node "${i(a)}" is not reachable from the Start node.`,a)}for(let a of n.filter(a=>"subflow"===h(a))){let b=o.filter(b=>!l(b)&&(b.source===a.id||b.target===a.id&&!!b.data?.bidirectional));b.length>1&&p("error","subflow-multiple-outgoing",`Subflow node "${i(a)}" has ${b.length} outgoing connections; a subflow can only have one (either A > B > C or a bidirectional A <> B).`,a);let c=a.data?.properties??{},d="string"==typeof c.subflowId&&c.subflowId?c.subflowId:void 0,e=Array.isArray(c.parallelSubflowIds)?c.parallelSubflowIds.filter(a=>"string"==typeof a&&!!a):[];d&&e.length>0&&p("error","subflow-both-targets",`Subflow node "${i(a)}" sets both a single "subflowId" and "parallelSubflowIds"; use one or the other.`,a);let g=!0===c.mapOverList;g&&e.length>0&&p("error","subflow-map-and-parallel",`Subflow node "${i(a)}" combines "mapOverList" with "parallelSubflowIds"; map-over-list runs a single child once per item and cannot be combined with parallel fan-out.`,a),g&&!d&&0===e.length&&p("error","subflow-map-no-child",`Subflow node "${i(a)}" has "mapOverList" but no child flow ("subflowId"); select a flow to run once per item.`,a);let h="string"==typeof c.parallelSubflowIdsVar?c.parallelSubflowIdsVar.trim():"";if(h&&((0,f.qW)(h)||p("warning","subflow-parallel-var-name",`Subflow node "${i(a)}" reads dynamic fan-out targets from "${h}", which is not a valid variable name (letters, digits, _ and - only, not starting with a digit); it will be awkward to capture with \${var:...}.`,a),g&&p("error","subflow-map-and-parallel-var",`Subflow node "${i(a)}" combines "mapOverList" with dynamic fan-out ("parallelSubflowIdsVar"); map-over-list runs a single child once per item and cannot be combined with fan-out.`,a),n.some(a=>{let b=a.data?.properties?.captureVariable;return"string"==typeof b&&b.trim()===h})||p("warning","subflow-parallel-var-uncaptured",`Subflow node "${i(a)}" reads dynamic fan-out targets from variable "${h}", but no node captures it (captureVariable). It may be seeded by the caller; otherwise it resolves to no targets and the node falls back to its static parallel list.`,a)),!0===c.allowCallerFanout&&g&&p("error","subflow-map-and-caller-fanout",`Subflow node "${i(a)}" combines "mapOverList" with agentic fan-out ("allowCallerFanout"); map-over-list runs a single child once per item and cannot be combined with fan-out.`,a),e.length>0){let b=c.concurrencyLimit;"number"==typeof b&&b<1&&p("warning","subflow-concurrency-limit",`Subflow node "${i(a)}" has a concurrencyLimit of ${b}; it must be at least 1 (the runtime default will be used).`,a)}}{let a=new Map(n.map(a=>[a.id,a])),b=new Set;for(let c of o){if(l(c))continue;let d=c.data?.condition;if(!d||"object"!=typeof d)continue;let f=a.get(c.source),g=f?h(f):"unknown";if("process"!==g){p("error","edge-condition-non-process",`An edge leaving ${"unknown"===g?"an unknown":`the ${g}`} node "${f?i(f):c.source}" has a routing condition, but only process nodes can route on a condition.`,f??void 0);continue}b.add(c.source),(0,e.C)(d.kind)?"always"===d.kind||("string"!=typeof d.value||0===d.value.length?p("warning","edge-condition-value",`Process node "${i(f)}" has an outgoing edge condition with no "value"; it will never match.`,f):"regex"!==d.kind||(0,e.wM)(d.value)||p("warning","edge-condition-regex",`Process node "${i(f)}" has an outgoing edge with a regex condition that does not compile; it will never match.`,f)):p("warning","edge-condition-kind",`Process node "${i(f)}" has an outgoing edge whose condition kind "${String(d.kind)}" is unknown; it will never match.`,f)}for(let c of b){let b=a.get(c);b&&(o.some(a=>!l(a)&&(a.source===c?!a.data?.condition||"always"===a.data.condition.kind&&!a.data.condition.negate:!!(a.target===c&&a.data?.bidirectional)))||p("warning","edge-condition-no-fallback",`Process node "${i(b)}" has conditioned outgoing edges but no bare fallback edge; if no condition matches, the flow ends here.`,b))}}{let a=new Set;for(let b of n){let c=b.data?.properties?.captureVariable;if("string"==typeof c&&c.trim()){let d=c.trim();a.add(d),(0,f.qW)(d)||p("warning","capture-var-name",`${"subflow"===h(b)?"Subflow":"Process"} node "${i(b)}" captures into "${d}", which is not a valid variable name (letters, digits, _ and - only, not starting with a digit); it will be awkward to reference with \${var:...}.`,b)}}let b=["promptTemplate","isolatedPrompt"],c=new Set;for(let d of n){let e=d.data?.properties??{};for(let g of b){let b=e[g];if("string"==typeof b&&b)for(let e of(0,f.T9)(b)){if(a.has(e))continue;let b=`${d.id}:${e}`;c.has(b)||(c.add(b),p("warning","var-ref-uncaptured",`${i(d)} references \${var:${e}} but no step in this flow captures "${e}" (via captureVariable). It resolves to empty unless supplied as a run input — check for a typo or a step ordered after this one.`,d))}}}}{for(let a of n){let b=a.data?.properties?.captureKv;if("string"==typeof b&&b.trim()){let{key:c}=(0,g.g2)(b.trim());(0,g.ng)(c)||p("warning","capture-kv-name",`${"subflow"===h(a)?"Subflow":"Process"} node "${i(a)}" captures into kv "${b.trim()}", whose key is not a valid name (letters, digits, _ and - only, not starting with a digit); it will be awkward to reference with \${kv:...}.`,a)}}let a=["promptTemplate","isolatedPrompt"],b=new Set;for(let c of n){let d=c.data?.properties??{};for(let e of a){let a=d[e];if("string"==typeof a&&a)for(let d of(0,g.pf)(a)){let{key:a}=(0,g.g2)(d);if((0,g.ng)(a))continue;let e=`${c.id}:${d}`;b.has(e)||(b.add(e),p("warning","kv-ref-name",`${i(c)} references \${kv:${d}}, whose key is not a valid name (letters, digits, _ and - only, not starting with a digit); it resolves to empty.`,c))}}}}for(let a of w){let c=a.data?.properties?.promptTemplate;if("string"!=typeof c||!c)continue;let e=function(a,b,c){let d=new Map(b.map(a=>[a.id,a])),e=new Set;for(let b of c){if(!j(b))continue;let c=null;if(b.source===a?c=b.target:b.target===a&&(c=b.source),!c)continue;let f=d.get(c);if(!f||"mcp"!==h(f))continue;let g=f.data?.properties?.boundServer;"string"==typeof g&&g&&e.add(g)}return e}(a.id,n,o),f=new Set;for(let g of(0,d.A$)(c)){if("handoff"===g.server)continue;let c=`${g.kind}:${g.server}:${g.name}`;!f.has(c)&&(f.add(c),e.has(g.server)?"tool"===g.kind&&b.serverTools&&b.serverTools[g.server]&&!b.serverTools[g.server].includes(g.name)&&p("warning","tool-unavailable",`Process node "${i(a)}" references tool "${g.name}" which server "${g.server}" no longer provides.`,a):p("error","tool-pill-disconnected",`Process node "${i(a)}" references ${g.kind} "${g.name}" from server "${g.server}", but it is not connected to that server (the MCP node was removed or the server was renamed).`,a))}}let y=c.filter(a=>"error"===a.severity).length,z=c.length-y;return{issues:c,errorCount:y,warningCount:z,isRunnable:0===y}}}};