flujo-ai 3.17.0 → 3.19.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 (513) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +239 -210
  3. package/.next/app-path-routes-manifest.json +6 -3
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +9 -9
  6. package/.next/react-loadable-manifest.json +12 -12
  7. package/.next/server/app/_not-found/page.js +3 -3
  8. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  9. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/_not-found.html +1 -1
  11. package/.next/server/app/_not-found.rsc +2 -2
  12. package/.next/server/app/api/backup/route.js +1 -1
  13. package/.next/server/app/api/backup/route.js.nft.json +1 -1
  14. package/.next/server/app/api/backup/route_client-reference-manifest.js +1 -1
  15. package/.next/server/app/api/browse/route.js +1 -1
  16. package/.next/server/app/api/browse/route.js.nft.json +1 -1
  17. package/.next/server/app/api/browse/route_client-reference-manifest.js +1 -1
  18. package/.next/server/app/api/cwd/route.js +1 -1
  19. package/.next/server/app/api/cwd/route.js.nft.json +1 -1
  20. package/.next/server/app/api/cwd/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/encryption/secure/route.js +1 -1
  22. package/.next/server/app/api/encryption/secure/route.js.nft.json +1 -1
  23. package/.next/server/app/api/encryption/secure/route_client-reference-manifest.js +1 -1
  24. package/.next/server/app/api/env/route.js +2 -2
  25. package/.next/server/app/api/env/route.js.nft.json +1 -1
  26. package/.next/server/app/api/env/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/flow/[id]/route.js +1 -1
  28. package/.next/server/app/api/flow/[id]/route.js.nft.json +1 -1
  29. package/.next/server/app/api/flow/[id]/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/flow/compile/route.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 +1 -19
  34. package/.next/server/app/api/flow/generate/route.js.nft.json +1 -1
  35. package/.next/server/app/api/flow/generate/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/flow/improve/route.js +1 -0
  37. package/.next/server/app/api/flow/improve/route.js.nft.json +1 -0
  38. package/.next/server/app/api/flow/improve/route_client-reference-manifest.js +1 -0
  39. package/.next/server/app/api/flow/prompt-renderer/route.js +2 -2
  40. package/.next/server/app/api/flow/prompt-renderer/route.js.nft.json +1 -1
  41. package/.next/server/app/api/flow/prompt-renderer/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/flow/quick-chat/route.js +1 -0
  43. package/.next/server/app/api/flow/quick-chat/route.js.nft.json +1 -0
  44. package/.next/server/app/api/flow/quick-chat/route_client-reference-manifest.js +1 -0
  45. package/.next/server/app/api/flow/repair/route.js +1 -0
  46. package/.next/server/app/api/flow/repair/route.js.nft.json +1 -0
  47. package/.next/server/app/api/flow/repair/route_client-reference-manifest.js +1 -0
  48. package/.next/server/app/api/flow/route.js +1 -1
  49. package/.next/server/app/api/flow/route.js.nft.json +1 -1
  50. package/.next/server/app/api/flow/route_client-reference-manifest.js +1 -1
  51. package/.next/server/app/api/git/route.js +4 -4
  52. package/.next/server/app/api/git/route.js.nft.json +1 -1
  53. package/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  54. package/.next/server/app/api/init/route.js +1 -1
  55. package/.next/server/app/api/init/route.js.nft.json +1 -1
  56. package/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  57. package/.next/server/app/api/local-models/capability/route_client-reference-manifest.js +1 -1
  58. package/.next/server/app/api/local-models/pull/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/local-models/suggest/route_client-reference-manifest.js +1 -1
  60. package/.next/server/app/api/mcp/cancel/route.js +2 -2
  61. package/.next/server/app/api/mcp/cancel/route.js.nft.json +1 -1
  62. package/.next/server/app/api/mcp/cancel/route_client-reference-manifest.js +1 -1
  63. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js +1 -1
  64. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js.nft.json +1 -1
  65. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route_client-reference-manifest.js +1 -1
  66. package/.next/server/app/api/mcp/servers/[name]/prompts/route.js +1 -1
  67. package/.next/server/app/api/mcp/servers/[name]/prompts/route.js.nft.json +1 -1
  68. package/.next/server/app/api/mcp/servers/[name]/prompts/route_client-reference-manifest.js +1 -1
  69. package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js +1 -1
  70. package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js.nft.json +1 -1
  71. package/.next/server/app/api/mcp/servers/[name]/resources/read/route_client-reference-manifest.js +1 -1
  72. package/.next/server/app/api/mcp/servers/[name]/resources/route.js +1 -1
  73. package/.next/server/app/api/mcp/servers/[name]/resources/route.js.nft.json +1 -1
  74. package/.next/server/app/api/mcp/servers/[name]/resources/route_client-reference-manifest.js +1 -1
  75. package/.next/server/app/api/mcp/servers/[name]/route.js +1 -1
  76. package/.next/server/app/api/mcp/servers/[name]/route.js.nft.json +1 -1
  77. package/.next/server/app/api/mcp/servers/[name]/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/mcp/servers/[name]/status/route.js +1 -1
  79. package/.next/server/app/api/mcp/servers/[name]/status/route.js.nft.json +1 -1
  80. package/.next/server/app/api/mcp/servers/[name]/status/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js +1 -1
  82. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js.nft.json +1 -1
  83. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route_client-reference-manifest.js +1 -1
  84. package/.next/server/app/api/mcp/servers/[name]/tools/route.js +1 -1
  85. package/.next/server/app/api/mcp/servers/[name]/tools/route.js.nft.json +1 -1
  86. package/.next/server/app/api/mcp/servers/[name]/tools/route_client-reference-manifest.js +1 -1
  87. package/.next/server/app/api/mcp/servers/route.js +1 -1
  88. package/.next/server/app/api/mcp/servers/route.js.nft.json +1 -1
  89. package/.next/server/app/api/mcp/servers/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/mcp/test-connection/route.js +1 -1
  91. package/.next/server/app/api/mcp/test-connection/route.js.nft.json +1 -1
  92. package/.next/server/app/api/mcp/test-connection/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/mcp/test-connection/stream/route.js +1 -1
  94. package/.next/server/app/api/mcp/test-connection/stream/route.js.nft.json +1 -1
  95. package/.next/server/app/api/mcp/test-connection/stream/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/mcp-registry/route.js +2 -1
  97. package/.next/server/app/api/mcp-registry/route.js.nft.json +1 -1
  98. package/.next/server/app/api/mcp-registry/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/mcp-registry/spotlight/route.js +1 -1
  100. package/.next/server/app/api/mcp-registry/spotlight/route.js.nft.json +1 -1
  101. package/.next/server/app/api/mcp-registry/spotlight/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/model/[id]/route.js +1 -1
  103. package/.next/server/app/api/model/[id]/route.js.nft.json +1 -1
  104. package/.next/server/app/api/model/[id]/route_client-reference-manifest.js +1 -1
  105. package/.next/server/app/api/model/provider/route.js +2 -2
  106. package/.next/server/app/api/model/provider/route.js.nft.json +1 -1
  107. package/.next/server/app/api/model/provider/route_client-reference-manifest.js +1 -1
  108. package/.next/server/app/api/model/route.js +1 -1
  109. package/.next/server/app/api/model/route.js.nft.json +1 -1
  110. package/.next/server/app/api/model/route_client-reference-manifest.js +1 -1
  111. package/.next/server/app/api/model/test/route.js +2 -2
  112. package/.next/server/app/api/model/test/route.js.nft.json +1 -1
  113. package/.next/server/app/api/model/test/route_client-reference-manifest.js +1 -1
  114. package/.next/server/app/api/oauth/callback/route.js +2 -2
  115. package/.next/server/app/api/oauth/callback/route.js.nft.json +1 -1
  116. package/.next/server/app/api/oauth/callback/route_client-reference-manifest.js +1 -1
  117. package/.next/server/app/api/oauth/initiate/route.js +2 -2
  118. package/.next/server/app/api/oauth/initiate/route.js.nft.json +1 -1
  119. package/.next/server/app/api/oauth/initiate/route_client-reference-manifest.js +1 -1
  120. package/.next/server/app/api/oauth/reset/route.js +2 -2
  121. package/.next/server/app/api/oauth/reset/route.js.nft.json +1 -1
  122. package/.next/server/app/api/oauth/reset/route_client-reference-manifest.js +1 -1
  123. package/.next/server/app/api/planned-executions/[id]/route.js +2 -2
  124. package/.next/server/app/api/planned-executions/[id]/route.js.nft.json +1 -1
  125. package/.next/server/app/api/planned-executions/[id]/route_client-reference-manifest.js +1 -1
  126. package/.next/server/app/api/planned-executions/[id]/run/route.js +2 -2
  127. package/.next/server/app/api/planned-executions/[id]/run/route.js.nft.json +1 -1
  128. package/.next/server/app/api/planned-executions/[id]/run/route_client-reference-manifest.js +1 -1
  129. package/.next/server/app/api/planned-executions/[id]/runs/route.js +2 -2
  130. package/.next/server/app/api/planned-executions/[id]/runs/route.js.nft.json +1 -1
  131. package/.next/server/app/api/planned-executions/[id]/runs/route_client-reference-manifest.js +1 -1
  132. package/.next/server/app/api/planned-executions/preview-schedule/route.js +1 -1
  133. package/.next/server/app/api/planned-executions/preview-schedule/route.js.nft.json +1 -1
  134. package/.next/server/app/api/planned-executions/preview-schedule/route_client-reference-manifest.js +1 -1
  135. package/.next/server/app/api/planned-executions/route.js +1 -1
  136. package/.next/server/app/api/planned-executions/route.js.nft.json +1 -1
  137. package/.next/server/app/api/planned-executions/route_client-reference-manifest.js +1 -1
  138. package/.next/server/app/api/restore/route.js +1 -1
  139. package/.next/server/app/api/restore/route.js.nft.json +1 -1
  140. package/.next/server/app/api/restore/route_client-reference-manifest.js +1 -1
  141. package/.next/server/app/api/storage/route.js +1 -1
  142. package/.next/server/app/api/storage/route.js.nft.json +1 -1
  143. package/.next/server/app/api/storage/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/update/route.js +1 -1
  145. package/.next/server/app/api/update/route.js.nft.json +1 -1
  146. package/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  147. package/.next/server/app/api/webhooks/[id]/route.js +1 -1
  148. package/.next/server/app/api/webhooks/[id]/route.js.nft.json +1 -1
  149. package/.next/server/app/api/webhooks/[id]/route_client-reference-manifest.js +1 -1
  150. package/.next/server/app/chat/page.js +10 -9
  151. package/.next/server/app/chat/page.js.nft.json +1 -1
  152. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  153. package/.next/server/app/chat.html +1 -1
  154. package/.next/server/app/chat.rsc +3 -3
  155. package/.next/server/app/docs/page.js +34 -7
  156. package/.next/server/app/docs/page.js.nft.json +1 -1
  157. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  158. package/.next/server/app/docs.html +1 -1
  159. package/.next/server/app/docs.rsc +3 -3
  160. package/.next/server/app/executions/page.js +3 -5
  161. package/.next/server/app/executions/page.js.nft.json +1 -1
  162. package/.next/server/app/executions/page_client-reference-manifest.js +1 -1
  163. package/.next/server/app/executions.html +1 -1
  164. package/.next/server/app/executions.rsc +3 -3
  165. package/.next/server/app/flows/page.js +3 -39
  166. package/.next/server/app/flows/page.js.nft.json +1 -1
  167. package/.next/server/app/flows/page_client-reference-manifest.js +1 -1
  168. package/.next/server/app/flows.html +1 -1
  169. package/.next/server/app/flows.rsc +3 -3
  170. package/.next/server/app/index.html +1 -1
  171. package/.next/server/app/index.rsc +3 -3
  172. package/.next/server/app/mcp/page.js +23 -27
  173. package/.next/server/app/mcp/page.js.nft.json +1 -1
  174. package/.next/server/app/mcp/page_client-reference-manifest.js +1 -1
  175. package/.next/server/app/mcp-flows/route.js +1 -5
  176. package/.next/server/app/mcp-flows/route.js.nft.json +1 -1
  177. package/.next/server/app/mcp-flows/route_client-reference-manifest.js +1 -1
  178. package/.next/server/app/mcp-proxy/[server]/route.js +1 -1
  179. package/.next/server/app/mcp-proxy/[server]/route.js.nft.json +1 -1
  180. package/.next/server/app/mcp-proxy/[server]/route_client-reference-manifest.js +1 -1
  181. package/.next/server/app/mcp.html +1 -1
  182. package/.next/server/app/mcp.rsc +3 -3
  183. package/.next/server/app/models/page.js +2 -3
  184. package/.next/server/app/models/page.js.nft.json +1 -1
  185. package/.next/server/app/models/page_client-reference-manifest.js +1 -1
  186. package/.next/server/app/page.js +3 -2
  187. package/.next/server/app/page.js.nft.json +1 -1
  188. package/.next/server/app/page_client-reference-manifest.js +1 -1
  189. package/.next/server/app/settings/page.js +4 -3
  190. package/.next/server/app/settings/page.js.nft.json +1 -1
  191. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  192. package/.next/server/app/settings.html +1 -1
  193. package/.next/server/app/settings.rsc +3 -3
  194. package/.next/server/app/v1/chat/completions/route.js +1 -1
  195. package/.next/server/app/v1/chat/completions/route.js.nft.json +1 -1
  196. package/.next/server/app/v1/chat/completions/route_client-reference-manifest.js +1 -1
  197. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js +2 -2
  198. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js.nft.json +1 -1
  199. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route_client-reference-manifest.js +1 -1
  200. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js +2 -2
  201. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js.nft.json +1 -1
  202. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route_client-reference-manifest.js +1 -1
  203. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js +1 -1
  204. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js.nft.json +1 -1
  205. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route_client-reference-manifest.js +1 -1
  206. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js +1 -1
  207. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js.nft.json +1 -1
  208. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route_client-reference-manifest.js +1 -1
  209. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js +2 -2
  210. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js.nft.json +1 -1
  211. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route_client-reference-manifest.js +1 -1
  212. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js +3 -3
  213. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js.nft.json +1 -1
  214. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route_client-reference-manifest.js +1 -1
  215. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js +1 -1
  216. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js.nft.json +1 -1
  217. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route_client-reference-manifest.js +1 -1
  218. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js +2 -2
  219. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js.nft.json +1 -1
  220. package/.next/server/app/v1/chat/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
  221. package/.next/server/app/v1/chat/conversations/route.js +2 -2
  222. package/.next/server/app/v1/chat/conversations/route.js.nft.json +1 -1
  223. package/.next/server/app/v1/chat/conversations/route_client-reference-manifest.js +1 -1
  224. package/.next/server/app/v1/models/route.js +2 -2
  225. package/.next/server/app/v1/models/route.js.nft.json +1 -1
  226. package/.next/server/app/v1/models/route_client-reference-manifest.js +1 -1
  227. package/.next/server/app-paths-manifest.json +6 -3
  228. package/.next/server/chunks/{2776.js → 1083.js} +2 -3
  229. package/.next/server/chunks/1119.js +1 -0
  230. package/.next/server/chunks/{7731.js → 1152.js} +2 -2
  231. package/.next/server/chunks/1197.js +2 -0
  232. package/.next/server/chunks/1373.js +1 -1
  233. package/.next/server/chunks/1491.js +1 -0
  234. package/.next/server/chunks/1746.js +1 -1
  235. package/.next/server/chunks/1912.js +38 -0
  236. package/.next/server/chunks/{8460.js → 1991.js} +1 -1
  237. package/.next/server/chunks/2194.js +1 -0
  238. package/.next/server/chunks/2246.js +1 -0
  239. package/.next/server/chunks/227.js +5 -0
  240. package/.next/server/chunks/2350.js +1 -0
  241. package/.next/server/chunks/2430.js +1 -0
  242. package/.next/server/chunks/{5504.js → 264.js} +2 -2
  243. package/.next/server/chunks/2859.js +3 -7
  244. package/.next/server/chunks/3304.js +1 -1
  245. package/.next/server/chunks/3310.js +42 -0
  246. package/.next/server/chunks/3511.js +1 -0
  247. package/.next/server/chunks/3574.js +6 -0
  248. package/.next/server/chunks/3648.js +1 -0
  249. package/.next/server/chunks/38.js +2 -0
  250. package/.next/server/chunks/3953.js +1 -0
  251. package/.next/server/chunks/3984.js +4 -4
  252. package/.next/server/chunks/4028.js +1 -0
  253. package/.next/server/chunks/4239.js +1 -0
  254. package/.next/server/chunks/4265.js +1 -0
  255. package/.next/server/chunks/4372.js +1 -0
  256. package/.next/server/chunks/4456.js +2 -0
  257. package/.next/server/chunks/4637.js +63 -0
  258. package/.next/server/chunks/4681.js +1 -1
  259. package/.next/server/chunks/4949.js +1 -0
  260. package/.next/server/chunks/5148.js +1 -0
  261. package/.next/server/chunks/5625.js +28 -0
  262. package/.next/server/chunks/{805.js → 5662.js} +2 -2
  263. package/.next/server/chunks/5708.js +57 -0
  264. package/.next/server/chunks/6088.js +52 -0
  265. package/.next/server/chunks/{5888.js → 6136.js} +1 -1
  266. package/.next/server/chunks/62.js +1 -0
  267. package/.next/server/chunks/6465.js +1 -0
  268. package/.next/server/chunks/6772.js +1 -0
  269. package/.next/server/chunks/6826.js +1 -0
  270. package/.next/server/chunks/6901.js +6 -0
  271. package/.next/server/chunks/701.js +1 -1
  272. package/.next/server/chunks/7214.js +2 -2
  273. package/.next/server/chunks/7362.js +7 -7
  274. package/.next/server/chunks/7403.js +38 -0
  275. package/.next/server/chunks/7506.js +1 -1
  276. package/.next/server/chunks/7635.js +1 -1
  277. package/.next/server/chunks/7821.js +1 -1
  278. package/.next/server/chunks/7865.js +9 -0
  279. package/.next/server/chunks/8739.js +1 -1
  280. package/.next/server/chunks/9509.js +2 -2
  281. package/.next/server/chunks/9632.js +1 -0
  282. package/.next/server/instrumentation.js.nft.json +1 -1
  283. package/.next/server/middleware-build-manifest.js +1 -1
  284. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  285. package/.next/server/pages/404.html +1 -1
  286. package/.next/server/pages/500.html +1 -1
  287. package/.next/server/server-reference-manifest.js +1 -1
  288. package/.next/server/server-reference-manifest.json +1 -1
  289. package/.next/static/chunks/1161-970b105d0ab11425.js +1 -0
  290. package/.next/static/chunks/1620-0d8ecd877f123f7b.js +1 -0
  291. package/.next/static/chunks/{7126-2bafddf1b09cacac.js → 1634-d4019c4a5cac2ed0.js} +1 -1
  292. package/.next/static/chunks/1711-ccf5eba61d618a1a.js +1 -0
  293. package/.next/static/chunks/1871-14c3e63ca865d85e.js +1 -0
  294. package/.next/static/chunks/1892-a0f5ec7152540dc3.js +1 -0
  295. package/.next/static/chunks/3217.058098140ec3f563.js +1 -0
  296. package/.next/static/chunks/{3272-fd8d59523f61da96.js → 3272-ab88dd195ea61b65.js} +1 -1
  297. package/.next/static/chunks/{3545.d3a512315a9fce3e.js → 3545.353a62a68d3b7fd1.js} +1 -1
  298. package/.next/static/chunks/3625-74c77250d64d1cd3.js +1 -0
  299. package/.next/static/chunks/3736-5e2b3f6cda1bb923.js +1 -0
  300. package/.next/static/chunks/3930-cc8d73c953811b97.js +1 -0
  301. package/.next/static/chunks/4365-5d0e3d01c1bc0fdc.js +1 -0
  302. package/.next/static/chunks/5134-e21bd33daaf14ecf.js +1 -0
  303. package/.next/static/chunks/5501-7d6e38c7c8cc3c5a.js +1 -0
  304. package/.next/static/chunks/5619-82fc5c3133837739.js +1 -0
  305. package/.next/static/chunks/6013-cb423bc438256acb.js +1 -0
  306. package/.next/static/chunks/6920-a83ad5c0d5a54cf3.js +1 -0
  307. package/.next/static/chunks/{7583.8a518353bd072db9.js → 7583.5355a64005f2b265.js} +1 -1
  308. package/.next/static/chunks/7687-7edf1a6e1f063b08.js +1 -0
  309. package/.next/static/chunks/7829-b843e80f32a83256.js +1 -0
  310. package/.next/static/chunks/8066-c202a83aef15143a.js +1 -0
  311. package/.next/static/chunks/{8187.5d6523f30e705998.js → 8187.57929e3f925fe538.js} +1 -1
  312. package/.next/static/chunks/{9164-36fedeb944fa71e9.js → 9164-14dc5889cb7478c0.js} +1 -1
  313. package/.next/static/chunks/924-64f908860caf1a35.js +1 -0
  314. package/.next/static/chunks/9747-ffb8be5e59700c27.js +8 -0
  315. package/.next/static/chunks/app/api/backup/route-ff084c1cc278df77.js +1 -0
  316. package/.next/static/chunks/app/api/browse/route-ff084c1cc278df77.js +1 -0
  317. package/.next/static/chunks/app/api/cwd/route-ff084c1cc278df77.js +1 -0
  318. package/.next/static/chunks/app/api/encryption/secure/route-ff084c1cc278df77.js +1 -0
  319. package/.next/static/chunks/app/api/env/route-ff084c1cc278df77.js +1 -0
  320. package/.next/static/chunks/app/api/flow/[id]/route-ff084c1cc278df77.js +1 -0
  321. package/.next/static/chunks/app/api/flow/compile/route-ff084c1cc278df77.js +1 -0
  322. package/.next/static/chunks/app/api/flow/generate/route-ff084c1cc278df77.js +1 -0
  323. package/.next/static/chunks/app/api/flow/improve/route-ff084c1cc278df77.js +1 -0
  324. package/.next/static/chunks/app/api/flow/prompt-renderer/route-ff084c1cc278df77.js +1 -0
  325. package/.next/static/chunks/app/api/flow/quick-chat/route-ff084c1cc278df77.js +1 -0
  326. package/.next/static/chunks/app/api/flow/repair/route-ff084c1cc278df77.js +1 -0
  327. package/.next/static/chunks/app/api/flow/route-ff084c1cc278df77.js +1 -0
  328. package/.next/static/chunks/app/api/git/route-ff084c1cc278df77.js +1 -0
  329. package/.next/static/chunks/app/api/init/route-ff084c1cc278df77.js +1 -0
  330. package/.next/static/chunks/app/api/local-models/capability/route-ff084c1cc278df77.js +1 -0
  331. package/.next/static/chunks/app/api/local-models/pull/route-ff084c1cc278df77.js +1 -0
  332. package/.next/static/chunks/app/api/local-models/suggest/route-ff084c1cc278df77.js +1 -0
  333. package/.next/static/chunks/app/api/mcp/cancel/route-ff084c1cc278df77.js +1 -0
  334. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-ff084c1cc278df77.js +1 -0
  335. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-ff084c1cc278df77.js +1 -0
  336. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-ff084c1cc278df77.js +1 -0
  337. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-ff084c1cc278df77.js +1 -0
  338. package/.next/static/chunks/app/api/mcp/servers/[name]/route-ff084c1cc278df77.js +1 -0
  339. package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-ff084c1cc278df77.js +1 -0
  340. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-ff084c1cc278df77.js +1 -0
  341. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-ff084c1cc278df77.js +1 -0
  342. package/.next/static/chunks/app/api/mcp/servers/route-ff084c1cc278df77.js +1 -0
  343. package/.next/static/chunks/app/api/mcp/test-connection/route-ff084c1cc278df77.js +1 -0
  344. package/.next/static/chunks/app/api/mcp/test-connection/stream/route-ff084c1cc278df77.js +1 -0
  345. package/.next/static/chunks/app/api/mcp-registry/route-ff084c1cc278df77.js +1 -0
  346. package/.next/static/chunks/app/api/mcp-registry/spotlight/route-ff084c1cc278df77.js +1 -0
  347. package/.next/static/chunks/app/api/model/[id]/route-ff084c1cc278df77.js +1 -0
  348. package/.next/static/chunks/app/api/model/provider/route-ff084c1cc278df77.js +1 -0
  349. package/.next/static/chunks/app/api/model/route-ff084c1cc278df77.js +1 -0
  350. package/.next/static/chunks/app/api/model/test/route-ff084c1cc278df77.js +1 -0
  351. package/.next/static/chunks/app/api/oauth/callback/route-ff084c1cc278df77.js +1 -0
  352. package/.next/static/chunks/app/api/oauth/initiate/route-ff084c1cc278df77.js +1 -0
  353. package/.next/static/chunks/app/api/oauth/reset/route-ff084c1cc278df77.js +1 -0
  354. package/.next/static/chunks/app/api/planned-executions/[id]/route-ff084c1cc278df77.js +1 -0
  355. package/.next/static/chunks/app/api/planned-executions/[id]/run/route-ff084c1cc278df77.js +1 -0
  356. package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-ff084c1cc278df77.js +1 -0
  357. package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-ff084c1cc278df77.js +1 -0
  358. package/.next/static/chunks/app/api/planned-executions/route-ff084c1cc278df77.js +1 -0
  359. package/.next/static/chunks/app/api/restore/route-ff084c1cc278df77.js +1 -0
  360. package/.next/static/chunks/app/api/storage/route-ff084c1cc278df77.js +1 -0
  361. package/.next/static/chunks/app/api/update/route-ff084c1cc278df77.js +1 -0
  362. package/.next/static/chunks/app/api/webhooks/[id]/route-ff084c1cc278df77.js +1 -0
  363. package/.next/static/chunks/app/chat/page-1d764d1de5ad5d2f.js +1 -0
  364. package/.next/static/chunks/app/docs/page-d670c1ec8af5cb54.js +1 -0
  365. package/.next/static/chunks/app/executions/page-109274291811d467.js +1 -0
  366. package/.next/static/chunks/app/flows/page-df8eda0e83934fb2.js +1 -0
  367. package/.next/static/chunks/app/{layout-2878f13d7e253503.js → layout-64fc0ae7efe81e3c.js} +1 -1
  368. package/.next/static/chunks/app/mcp/page-9a612d0be5a3336d.js +1 -0
  369. package/.next/static/chunks/app/mcp-flows/route-ff084c1cc278df77.js +1 -0
  370. package/.next/static/chunks/app/mcp-proxy/[server]/route-ff084c1cc278df77.js +1 -0
  371. package/.next/static/chunks/app/models/{error-2b00c98abf1e02cf.js → error-5732fbb053e182c5.js} +1 -1
  372. package/.next/static/chunks/app/models/page-616950f93a1e0027.js +1 -0
  373. package/.next/static/chunks/app/{page-6e18a8cd78b2050e.js → page-77e1ba238b0ee1d0.js} +1 -1
  374. package/.next/static/chunks/app/settings/page-199d0ffae9ec7263.js +1 -0
  375. package/.next/static/chunks/app/v1/chat/completions/route-ff084c1cc278df77.js +1 -0
  376. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-ff084c1cc278df77.js +1 -0
  377. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-ff084c1cc278df77.js +1 -0
  378. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-ff084c1cc278df77.js +1 -0
  379. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-ff084c1cc278df77.js +1 -0
  380. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-ff084c1cc278df77.js +1 -0
  381. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-ff084c1cc278df77.js +1 -0
  382. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-ff084c1cc278df77.js +1 -0
  383. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-ff084c1cc278df77.js +1 -0
  384. package/.next/static/chunks/app/v1/chat/conversations/route-ff084c1cc278df77.js +1 -0
  385. package/.next/static/chunks/app/v1/models/route-ff084c1cc278df77.js +1 -0
  386. package/.next/static/chunks/webpack-3e8560996ac8c1e0.js +1 -0
  387. package/.next/static/itJEX_uJ7hJ7oF-igwwK9/_buildManifest.js +1 -0
  388. package/.next/trace +7 -7
  389. package/.next/types/app/api/flow/improve/route.ts +347 -0
  390. package/.next/types/app/api/flow/quick-chat/route.ts +347 -0
  391. package/.next/types/app/api/flow/repair/route.ts +347 -0
  392. package/.next/types/routes.d.ts +4 -1
  393. package/.next/types/validator.ts +27 -0
  394. package/README.md +1 -1
  395. package/package.json +1 -1
  396. package/.next/server/chunks/1050.js +0 -1
  397. package/.next/server/chunks/117.js +0 -1
  398. package/.next/server/chunks/1403.js +0 -6
  399. package/.next/server/chunks/1519.js +0 -1
  400. package/.next/server/chunks/1690.js +0 -1
  401. package/.next/server/chunks/1877.js +0 -32
  402. package/.next/server/chunks/1905.js +0 -2
  403. package/.next/server/chunks/2666.js +0 -1
  404. package/.next/server/chunks/3243.js +0 -1
  405. package/.next/server/chunks/3309.js +0 -2
  406. package/.next/server/chunks/3370.js +0 -38
  407. package/.next/server/chunks/407.js +0 -6
  408. package/.next/server/chunks/4322.js +0 -1
  409. package/.next/server/chunks/5558.js +0 -1
  410. package/.next/server/chunks/5587.js +0 -1
  411. package/.next/server/chunks/5838.js +0 -1
  412. package/.next/server/chunks/5935.js +0 -2
  413. package/.next/server/chunks/6283.js +0 -2
  414. package/.next/server/chunks/6390.js +0 -28
  415. package/.next/server/chunks/6523.js +0 -1
  416. package/.next/server/chunks/6760.js +0 -1
  417. package/.next/server/chunks/6936.js +0 -35
  418. package/.next/server/chunks/7328.js +0 -1
  419. package/.next/server/chunks/7531.js +0 -52
  420. package/.next/server/chunks/7982.js +0 -1
  421. package/.next/server/chunks/8298.js +0 -1
  422. package/.next/server/chunks/8434.js +0 -1
  423. package/.next/server/chunks/9188.js +0 -1
  424. package/.next/server/chunks/9938.js +0 -1
  425. package/.next/server/chunks/9957.js +0 -1
  426. package/.next/static/KMEKXonxBXI3WzCfozXx4/_buildManifest.js +0 -1
  427. package/.next/static/chunks/1226-af62e7a89fa9032e.js +0 -1
  428. package/.next/static/chunks/1979-e2d922370ecef69f.js +0 -1
  429. package/.next/static/chunks/2158-0d6bb5a428ed0688.js +0 -1
  430. package/.next/static/chunks/2380-5696e0dc0469f6a5.js +0 -1
  431. package/.next/static/chunks/2709-29f91a54eef90221.js +0 -1
  432. package/.next/static/chunks/3217.1a7e24fd70294370.js +0 -1
  433. package/.next/static/chunks/510-e39ad4e1fae6dd1f.js +0 -1
  434. package/.next/static/chunks/539-8ddf886986877cfc.js +0 -1
  435. package/.next/static/chunks/5781-4328d17aad13f908.js +0 -8
  436. package/.next/static/chunks/5961-828f4f7efc3e1381.js +0 -1
  437. package/.next/static/chunks/6582-6735fdd6b42b5c35.js +0 -1
  438. package/.next/static/chunks/687-98ba5f5043866f48.js +0 -1
  439. package/.next/static/chunks/690-391bc0f482a9f67c.js +0 -1
  440. package/.next/static/chunks/6902-cba4e59c4295b4a0.js +0 -1
  441. package/.next/static/chunks/8862-1170dad1d6f3cd39.js +0 -1
  442. package/.next/static/chunks/8867-3f7163974605427b.js +0 -1
  443. package/.next/static/chunks/8989-401559d9f3bc80a0.js +0 -1
  444. package/.next/static/chunks/9414-3cd5c3976cba66b2.js +0 -1
  445. package/.next/static/chunks/9562-93cc45aef3630781.js +0 -1
  446. package/.next/static/chunks/9984-1ed094ea9f5b1f17.js +0 -1
  447. package/.next/static/chunks/app/api/backup/route-7248529e02c31012.js +0 -1
  448. package/.next/static/chunks/app/api/browse/route-7248529e02c31012.js +0 -1
  449. package/.next/static/chunks/app/api/cwd/route-7248529e02c31012.js +0 -1
  450. package/.next/static/chunks/app/api/encryption/secure/route-7248529e02c31012.js +0 -1
  451. package/.next/static/chunks/app/api/env/route-7248529e02c31012.js +0 -1
  452. package/.next/static/chunks/app/api/flow/[id]/route-7248529e02c31012.js +0 -1
  453. package/.next/static/chunks/app/api/flow/compile/route-7248529e02c31012.js +0 -1
  454. package/.next/static/chunks/app/api/flow/generate/route-7248529e02c31012.js +0 -1
  455. package/.next/static/chunks/app/api/flow/prompt-renderer/route-7248529e02c31012.js +0 -1
  456. package/.next/static/chunks/app/api/flow/route-7248529e02c31012.js +0 -1
  457. package/.next/static/chunks/app/api/git/route-7248529e02c31012.js +0 -1
  458. package/.next/static/chunks/app/api/init/route-7248529e02c31012.js +0 -1
  459. package/.next/static/chunks/app/api/local-models/capability/route-7248529e02c31012.js +0 -1
  460. package/.next/static/chunks/app/api/local-models/pull/route-7248529e02c31012.js +0 -1
  461. package/.next/static/chunks/app/api/local-models/suggest/route-7248529e02c31012.js +0 -1
  462. package/.next/static/chunks/app/api/mcp/cancel/route-7248529e02c31012.js +0 -1
  463. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-7248529e02c31012.js +0 -1
  464. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-7248529e02c31012.js +0 -1
  465. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-7248529e02c31012.js +0 -1
  466. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-7248529e02c31012.js +0 -1
  467. package/.next/static/chunks/app/api/mcp/servers/[name]/route-7248529e02c31012.js +0 -1
  468. package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-7248529e02c31012.js +0 -1
  469. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-7248529e02c31012.js +0 -1
  470. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-7248529e02c31012.js +0 -1
  471. package/.next/static/chunks/app/api/mcp/servers/route-7248529e02c31012.js +0 -1
  472. package/.next/static/chunks/app/api/mcp/test-connection/route-7248529e02c31012.js +0 -1
  473. package/.next/static/chunks/app/api/mcp/test-connection/stream/route-7248529e02c31012.js +0 -1
  474. package/.next/static/chunks/app/api/mcp-registry/route-7248529e02c31012.js +0 -1
  475. package/.next/static/chunks/app/api/mcp-registry/spotlight/route-7248529e02c31012.js +0 -1
  476. package/.next/static/chunks/app/api/model/[id]/route-7248529e02c31012.js +0 -1
  477. package/.next/static/chunks/app/api/model/provider/route-7248529e02c31012.js +0 -1
  478. package/.next/static/chunks/app/api/model/route-7248529e02c31012.js +0 -1
  479. package/.next/static/chunks/app/api/model/test/route-7248529e02c31012.js +0 -1
  480. package/.next/static/chunks/app/api/oauth/callback/route-7248529e02c31012.js +0 -1
  481. package/.next/static/chunks/app/api/oauth/initiate/route-7248529e02c31012.js +0 -1
  482. package/.next/static/chunks/app/api/oauth/reset/route-7248529e02c31012.js +0 -1
  483. package/.next/static/chunks/app/api/planned-executions/[id]/route-7248529e02c31012.js +0 -1
  484. package/.next/static/chunks/app/api/planned-executions/[id]/run/route-7248529e02c31012.js +0 -1
  485. package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-7248529e02c31012.js +0 -1
  486. package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-7248529e02c31012.js +0 -1
  487. package/.next/static/chunks/app/api/planned-executions/route-7248529e02c31012.js +0 -1
  488. package/.next/static/chunks/app/api/restore/route-7248529e02c31012.js +0 -1
  489. package/.next/static/chunks/app/api/storage/route-7248529e02c31012.js +0 -1
  490. package/.next/static/chunks/app/api/update/route-7248529e02c31012.js +0 -1
  491. package/.next/static/chunks/app/api/webhooks/[id]/route-7248529e02c31012.js +0 -1
  492. package/.next/static/chunks/app/chat/page-c759cf382bcabd77.js +0 -1
  493. package/.next/static/chunks/app/docs/page-fca894f60b9174e9.js +0 -1
  494. package/.next/static/chunks/app/executions/page-4155f9f682ee6f84.js +0 -1
  495. package/.next/static/chunks/app/flows/page-4e1ec20653e5dc86.js +0 -1
  496. package/.next/static/chunks/app/mcp/page-5234695929980171.js +0 -1
  497. package/.next/static/chunks/app/mcp-flows/route-7248529e02c31012.js +0 -1
  498. package/.next/static/chunks/app/mcp-proxy/[server]/route-7248529e02c31012.js +0 -1
  499. package/.next/static/chunks/app/models/page-4fc4d100a8b1d4b4.js +0 -1
  500. package/.next/static/chunks/app/settings/page-9a2bfb8d5bdba29e.js +0 -1
  501. package/.next/static/chunks/app/v1/chat/completions/route-7248529e02c31012.js +0 -1
  502. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-7248529e02c31012.js +0 -1
  503. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-7248529e02c31012.js +0 -1
  504. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-7248529e02c31012.js +0 -1
  505. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-7248529e02c31012.js +0 -1
  506. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-7248529e02c31012.js +0 -1
  507. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-7248529e02c31012.js +0 -1
  508. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-7248529e02c31012.js +0 -1
  509. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-7248529e02c31012.js +0 -1
  510. package/.next/static/chunks/app/v1/chat/conversations/route-7248529e02c31012.js +0 -1
  511. package/.next/static/chunks/app/v1/models/route-7248529e02c31012.js +0 -1
  512. package/.next/static/chunks/webpack-4015bd6f241940a1.js +0 -1
  513. /package/.next/static/{KMEKXonxBXI3WzCfozXx4 → itJEX_uJ7hJ7oF-igwwK9}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ "use strict";exports.id=6772,exports.ids=[6772],exports.modules={1509:(a,b,c)=>{c.d(b,{A:()=>j});var d=c(38301),e=c(23312),f=c(67943),g=c(51939),h=c(75249),i=c(10005);let j=d.forwardRef(function(a,b){let{children:c,container:j,disablePortal:k=!1}=a,[l,m]=d.useState(null),n=(0,f.A)(d.isValidElement(c)?(0,g.A)(c):null,b);return((0,h.A)(()=>{k||m(("function"==typeof j?j():j)||document.body)},[j,k]),(0,h.A)(()=>{if(l&&!k)return(0,i.A)(b,l),()=>{(0,i.A)(b,null)}},[b,l,k]),k)?d.isValidElement(c)?d.cloneElement(c,{ref:n}):c:l?e.createPortal(c,l):l})},4927:(a,b,c)=>{c.d(b,{A:()=>p});var d=c(38301),e=c(74846),f=c(51939),g=c(65823),h=c(60839),i=c(28366),j=c(26636),k=c(21124);function l(a){return`scale(${a}, ${a**2})`}let m={entering:{opacity:1,transform:l(1)},entered:{opacity:1,transform:"none"}},n="undefined"!=typeof navigator&&/^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent)&&/(os |version\/)15(.|_)4/i.test(navigator.userAgent),o=d.forwardRef(function(a,b){let{addEndListener:c,appear:o=!0,children:p,easing:q,in:r,onEnter:s,onEntered:t,onEntering:u,onExit:v,onExited:w,onExiting:x,style:y,timeout:z="auto",TransitionComponent:A=g.Ay,...B}=a,C=(0,e.A)(),D=d.useRef(),E=(0,h.A)(),F=d.useRef(null),G=(0,j.A)(F,(0,f.A)(p),b),H=a=>b=>{if(a){let c=F.current;void 0===b?a(c):a(c,b)}},I=H(u),J=H((a,b)=>{let c;(0,i.q)(a);let{duration:d,delay:e,easing:f}=(0,i.c)({style:y,timeout:z,easing:q},{mode:"enter"});"auto"===z?D.current=c=E.transitions.getAutoHeightDuration(a.clientHeight):c=d,a.style.transition=[E.transitions.create("opacity",{duration:c,delay:e}),E.transitions.create("transform",{duration:n?c:.666*c,delay:e,easing:f})].join(","),s&&s(a,b)}),K=H(t),L=H(x),M=H(a=>{let b,{duration:c,delay:d,easing:e}=(0,i.c)({style:y,timeout:z,easing:q},{mode:"exit"});"auto"===z?D.current=b=E.transitions.getAutoHeightDuration(a.clientHeight):b=c,a.style.transition=[E.transitions.create("opacity",{duration:b,delay:d}),E.transitions.create("transform",{duration:n?b:.666*b,delay:n?d:d||.333*b,easing:e})].join(","),a.style.opacity=0,a.style.transform=l(.75),v&&v(a)}),N=H(w);return(0,k.jsx)(A,{appear:o,in:r,nodeRef:F,onEnter:J,onEntered:K,onEntering:I,onExit:M,onExited:N,onExiting:L,addEndListener:a=>{"auto"===z&&C.start(D.current||0,a),c&&c(F.current,a)},timeout:"auto"===z?null:z,...B,children:(a,{ownerState:b,...c})=>d.cloneElement(p,{style:{opacity:0,transform:l(.75),visibility:"exited"!==a||r?void 0:"hidden",...m[a],...y,...p.props.style},ref:G,...c})})});o&&(o.muiSupportAuto=!0);let p=o},5141:(a,b,c)=>{c.d(b,{A:()=>d});let d=c(24029).A},7103:(a,b,c)=>{c.d(b,{A:()=>d});let d=function(a){return"string"==typeof a}},7118:(a,b,c)=>{c.d(b,{A:()=>H});var d=c(38301),e=c(43249),f=c(2783),g=c(38404),h=c(94633),i=c(97896),j=c(89490);let k=c(32437).A;var l=c(26636),m=c(14758),n=c(5141),o=c(21124);function p(a,b,c){return a===b?a.firstChild:b&&b.nextElementSibling?b.nextElementSibling:c?null:a.firstChild}function q(a,b,c){return a===b?c?a.firstChild:a.lastChild:b&&b.previousElementSibling?b.previousElementSibling:c?null:a.lastChild}function r(a,b){if(void 0===b)return!0;let c=a.innerText;return void 0===c&&(c=a.textContent),0!==(c=c.trim().toLowerCase()).length&&(b.repeating?c[0]===b.keys[0]:c.startsWith(b.keys.join("")))}function s(a,b,c,d,e,f){let g=!1,h=e(a,b,!!b&&c);for(;h;){if(h===a.firstChild){if(g)return!1;g=!0}let b=!d&&(h.disabled||"true"===h.getAttribute("aria-disabled"));if(h.hasAttribute("tabindex")&&r(h,f)&&!b)return h.focus(),!0;h=e(a,h,c)}return!1}let t=d.forwardRef(function(a,b){let{actions:c,autoFocus:e=!1,autoFocusItem:f=!1,children:g,className:h,disabledItemsFocusable:t=!1,disableListWrap:u=!1,onKeyDown:v,variant:w="selectedMenu",...x}=a,y=d.useRef(null),z=d.useRef({keys:[],repeating:!0,previousKeyMatched:!0,lastTime:null});(0,m.A)(()=>{e&&y.current.focus()},[e]),d.useImperativeHandle(c,()=>({adjustStyleForScrollbar:(a,{direction:b})=>{let c=!y.current.style.width;if(a.clientHeight<y.current.clientHeight&&c){let c=`${k((0,n.A)(a))}px`;y.current.style["rtl"===b?"paddingLeft":"paddingRight"]=c,y.current.style.width=`calc(100% + ${c})`}return y.current}}),[]);let A=(0,l.A)(y,b),B=-1;d.Children.forEach(g,(a,b)=>{if(!d.isValidElement(a)){B===b&&(B+=1)>=g.length&&(B=-1);return}a.props.disabled||("selectedMenu"===w&&a.props.selected?B=b:-1===B&&(B=b)),B===b&&(a.props.disabled||a.props.muiSkipListHighlight||a.type.muiSkipListHighlight)&&(B+=1)>=g.length&&(B=-1)});let C=d.Children.map(g,(a,b)=>{if(b===B){let b={};return f&&(b.autoFocus=!0),void 0===a.props.tabIndex&&"selectedMenu"===w&&(b.tabIndex=0),d.cloneElement(a,b)}return a});return(0,o.jsx)(j.A,{role:"menu",ref:A,className:h,onKeyDown:a=>{let b=y.current,c=a.key;if(a.ctrlKey||a.metaKey||a.altKey){v&&v(a);return}let d=(0,i.A)(b).activeElement;if("ArrowDown"===c)a.preventDefault(),s(b,d,u,t,p);else if("ArrowUp"===c)a.preventDefault(),s(b,d,u,t,q);else if("Home"===c)a.preventDefault(),s(b,null,u,t,p);else if("End"===c)a.preventDefault(),s(b,null,u,t,q);else if(1===c.length){let e=z.current,f=c.toLowerCase(),g=performance.now();e.keys.length>0&&(g-e.lastTime>500?(e.keys=[],e.repeating=!0,e.previousKeyMatched=!0):e.repeating&&f!==e.keys[0]&&(e.repeating=!1)),e.lastTime=g,e.keys.push(f);let h=d&&!e.repeating&&r(d,e);e.previousKeyMatched&&(h||s(b,d,!1,t,p,e))?a.preventDefault():e.previousKeyMatched=!1}v&&v(a)},tabIndex:e?0:-1,...x,children:C})});var u=c(53151),v=c(41126),w=c(18168),x=c(6636),y=c(29565),z=c(33105);function A(a){return(0,z.Ay)("MuiMenu",a)}(0,y.A)("MuiMenu",["root","paper","list"]);var B=c(20385);let C={vertical:"top",horizontal:"right"},D={vertical:"top",horizontal:"left"},E=(0,w.Ay)(u.Ay,{shouldForwardProp:a=>(0,v.A)(a)||"classes"===a,name:"MuiMenu",slot:"Root",overridesResolver:(a,b)=>b.root})({}),F=(0,w.Ay)(u.IJ,{name:"MuiMenu",slot:"Paper",overridesResolver:(a,b)=>b.paper})({maxHeight:"calc(100% - 96px)",WebkitOverflowScrolling:"touch"}),G=(0,w.Ay)(t,{name:"MuiMenu",slot:"List",overridesResolver:(a,b)=>b.list})({outline:0}),H=d.forwardRef(function(a,b){let c=(0,x.b)({props:a,name:"MuiMenu"}),{autoFocus:i=!0,children:j,className:k,disableAutoFocusItem:l=!1,MenuListProps:m={},onClose:n,open:p,PaperProps:q={},PopoverClasses:r,transitionDuration:s="auto",TransitionProps:{onEntering:t,...u}={},variant:v="selectedMenu",slots:w={},slotProps:y={},...z}=c,H=(0,g.I)(),I={...c,autoFocus:i,disableAutoFocusItem:l,MenuListProps:m,onEntering:t,PaperProps:q,transitionDuration:s,TransitionProps:u,variant:v},J=(a=>{let{classes:b}=a;return(0,f.A)({root:["root"],paper:["paper"],list:["list"]},A,b)})(I),K=i&&!l&&p,L=d.useRef(null),M=-1;d.Children.map(j,(a,b)=>{d.isValidElement(a)&&(a.props.disabled||("selectedMenu"===v&&a.props.selected?M=b:-1===M&&(M=b)))});let N={slots:w,slotProps:{list:m,transition:u,paper:q,...y}},O=(0,h.A)({elementType:w.root,externalSlotProps:y.root,ownerState:I,className:[J.root,k]}),[P,Q]=(0,B.A)("paper",{className:J.paper,elementType:F,externalForwardedProps:N,shouldForwardComponentProp:!0,ownerState:I}),[R,S]=(0,B.A)("list",{className:(0,e.A)(J.list,m.className),elementType:G,shouldForwardComponentProp:!0,externalForwardedProps:N,getSlotProps:a=>({...a,onKeyDown:b=>{"Tab"===b.key&&(b.preventDefault(),n&&n(b,"tabKeyDown")),a.onKeyDown?.(b)}}),ownerState:I}),T="function"==typeof N.slotProps.transition?N.slotProps.transition(I):N.slotProps.transition;return(0,o.jsx)(E,{onClose:n,anchorOrigin:{vertical:"bottom",horizontal:H?"right":"left"},transformOrigin:H?C:D,slots:{root:w.root,paper:P,backdrop:w.backdrop,...w.transition&&{transition:w.transition}},slotProps:{root:O,paper:Q,backdrop:"function"==typeof y.backdrop?y.backdrop(I):y.backdrop,transition:{...T,onEntering:(...a)=>{((a,b)=>{L.current&&L.current.adjustStyleForScrollbar(a,{direction:H?"rtl":"ltr"}),t&&t(a,b)})(...a),T?.onEntering?.(...a)}}},open:p,ref:b,transitionDuration:s,ownerState:I,...z,classes:r,children:(0,o.jsx)(R,{actions:L,autoFocus:i&&(-1===M||l),autoFocusItem:K,variant:v,...S,children:j})})})},7675:(a,b,c)=>{c.d(b,{A:()=>X});var d,e=c(38301),f=c(43249),g=c(3253),h=c(2783),i=c(51939),j=c(33757),k=c(92869),l=c(97896),m=c(6638),n=c(7118),o=c(29565),p=c(33105);function q(a){return(0,p.Ay)("MuiNativeSelect",a)}let r=(0,o.A)("MuiNativeSelect",["root","select","multiple","filled","outlined","standard","disabled","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]);var s=c(18168),t=c(41126),u=c(21124);let v=(0,s.Ay)("select",{name:"MuiNativeSelect"})(({theme:a})=>({MozAppearance:"none",WebkitAppearance:"none",userSelect:"none",borderRadius:0,cursor:"pointer","&:focus":{borderRadius:0},[`&.${r.disabled}`]:{cursor:"default"},"&[multiple]":{height:"auto"},"&:not([multiple]) option, &:not([multiple]) optgroup":{backgroundColor:(a.vars||a).palette.background.paper},variants:[{props:({ownerState:a})=>"filled"!==a.variant&&"outlined"!==a.variant,style:{"&&&":{paddingRight:24,minWidth:16}}},{props:{variant:"filled"},style:{"&&&":{paddingRight:32}}},{props:{variant:"outlined"},style:{borderRadius:(a.vars||a).shape.borderRadius,"&:focus":{borderRadius:(a.vars||a).shape.borderRadius},"&&&":{paddingRight:32}}}]})),w=(0,s.Ay)(v,{name:"MuiNativeSelect",slot:"Select",shouldForwardProp:t.A,overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.select,b[c.variant],c.error&&b.error,{[`&.${r.multiple}`]:b.multiple}]}})({}),x=(0,s.Ay)("svg",{name:"MuiNativeSelect"})(({theme:a})=>({position:"absolute",right:0,top:"calc(50% - .5em)",pointerEvents:"none",color:(a.vars||a).palette.action.active,[`&.${r.disabled}`]:{color:(a.vars||a).palette.action.disabled},variants:[{props:({ownerState:a})=>a.open,style:{transform:"rotate(180deg)"}},{props:{variant:"filled"},style:{right:7}},{props:{variant:"outlined"},style:{right:7}}]})),y=(0,s.Ay)(x,{name:"MuiNativeSelect",slot:"Icon",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.icon,c.variant&&b[`icon${(0,m.A)(c.variant)}`],c.open&&b.iconOpen]}})({}),z=e.forwardRef(function(a,b){let{className:c,disabled:d,error:g,IconComponent:i,inputRef:j,variant:k="standard",...l}=a,n={...a,disabled:d,variant:k,error:g},o=(a=>{let{classes:b,variant:c,disabled:d,multiple:e,open:f,error:g}=a,i={select:["select",c,d&&"disabled",e&&"multiple",g&&"error"],icon:["icon",`icon${(0,m.A)(c)}`,f&&"iconOpen",d&&"disabled"]};return(0,h.A)(i,q,b)})(n);return(0,u.jsxs)(e.Fragment,{children:[(0,u.jsx)(w,{ownerState:n,className:(0,f.A)(o.select,c),disabled:d,ref:j||b,...l}),a.multiple?null:(0,u.jsx)(y,{as:i,ownerState:n,className:o.icon})]})});var A=c(49055),B=c(12330),C=c(26636),D=c(65603);function E(a){return(0,p.Ay)("MuiSelect",a)}let F=(0,o.A)("MuiSelect",["root","select","multiple","filled","outlined","standard","disabled","focused","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]),G=(0,s.Ay)(v,{name:"MuiSelect",slot:"Select",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[{[`&.${F.select}`]:b.select},{[`&.${F.select}`]:b[c.variant]},{[`&.${F.error}`]:b.error},{[`&.${F.multiple}`]:b.multiple}]}})({[`&.${F.select}`]:{height:"auto",minHeight:"1.4375em",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"}}),H=(0,s.Ay)(x,{name:"MuiSelect",slot:"Icon",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.icon,c.variant&&b[`icon${(0,m.A)(c.variant)}`],c.open&&b.iconOpen]}})({}),I=(0,s.Ay)("input",{shouldForwardProp:a=>(0,B.A)(a)&&"classes"!==a,name:"MuiSelect",slot:"NativeInput",overridesResolver:(a,b)=>b.nativeInput})({bottom:0,left:0,position:"absolute",opacity:0,pointerEvents:"none",width:"100%",boxSizing:"border-box"});function J(a,b){return"object"==typeof b&&null!==b?a===b:String(a)===String(b)}let K=e.forwardRef(function(a,b){var c;let g,i,{"aria-describedby":o,"aria-label":p,autoFocus:q,autoWidth:r,children:s,className:t,defaultOpen:v,defaultValue:w,disabled:x,displayEmpty:y,error:z=!1,IconComponent:B,inputRef:F,labelId:K,MenuProps:L={},multiple:M,name:N,onBlur:O,onChange:P,onClose:Q,onFocus:R,onOpen:S,open:T,readOnly:U,renderValue:V,required:W,SelectDisplayProps:X={},tabIndex:Y,type:Z,value:$,variant:_="standard",...aa}=a,[ab,ac]=(0,D.A)({controlled:$,default:w,name:"Select"}),[ad,ae]=(0,D.A)({controlled:T,default:v,name:"Select"}),af=e.useRef(null),ag=e.useRef(null),[ah,ai]=e.useState(null),{current:aj}=e.useRef(null!=T),[ak,al]=e.useState(),am=(0,C.A)(b,F),an=e.useCallback(a=>{ag.current=a,a&&ai(a)},[]),ao=ah?.parentNode;e.useImperativeHandle(am,()=>({focus:()=>{ag.current.focus()},node:af.current,value:ab}),[ab]),e.useEffect(()=>{v&&ad&&ah&&!aj&&(al(r?null:ao.clientWidth),ag.current.focus())},[ah,r]),e.useEffect(()=>{q&&ag.current.focus()},[q]),e.useEffect(()=>{if(!K)return;let a=(0,l.A)(ag.current).getElementById(K);if(a){let b=()=>{getSelection().isCollapsed&&ag.current.focus()};return a.addEventListener("click",b),()=>{a.removeEventListener("click",b)}}},[K]);let ap=(a,b)=>{a?S&&S(b):Q&&Q(b),aj||(al(r?null:ao.clientWidth),ae(a))},aq=e.Children.toArray(s),ar=null!==ah&&ad;delete aa["aria-invalid"];let as=[],at=!1;((0,A.lq)({value:ab})||y)&&(V?g=V(ab):at=!0);let au=aq.map(a=>{let b;if(!e.isValidElement(a))return null;if(M){if(!Array.isArray(ab))throw Error((0,j.A)(2));(b=ab.some(b=>J(b,a.props.value)))&&at&&as.push(a.props.children)}else(b=J(ab,a.props.value))&&at&&(i=a.props.children);return e.cloneElement(a,{"aria-selected":b?"true":"false",onClick:b=>{let c;if(b.currentTarget.hasAttribute("tabindex")){if(M){c=Array.isArray(ab)?ab.slice():[];let b=ab.indexOf(a.props.value);-1===b?c.push(a.props.value):c.splice(b,1)}else c=a.props.value;if(a.props.onClick&&a.props.onClick(b),ab!==c&&(ac(c),P)){let d=b.nativeEvent||b,e=new d.constructor(d.type,d);Object.defineProperty(e,"target",{writable:!0,value:{value:c,name:N}}),P(e,a)}M||ap(!1,b)}},onKeyUp:b=>{" "===b.key&&b.preventDefault(),a.props.onKeyUp&&a.props.onKeyUp(b)},role:"option",selected:b,value:void 0,"data-value":a.props.value})});at&&(g=M?0===as.length?null:as.reduce((a,b,c)=>(a.push(b),c<as.length-1&&a.push(", "),a),[]):i);let av=ak;!r&&aj&&ah&&(av=ao.clientWidth);let aw=X.id||(N?`mui-component-select-${N}`:void 0),ax={...a,variant:_,value:ab,open:ar,error:z},ay=(a=>{let{classes:b,variant:c,disabled:d,multiple:e,open:f,error:g}=a,i={select:["select",c,d&&"disabled",e&&"multiple",g&&"error"],icon:["icon",`icon${(0,m.A)(c)}`,f&&"iconOpen",d&&"disabled"],nativeInput:["nativeInput"]};return(0,h.A)(i,E,b)})(ax),az={...L.PaperProps,...L.slotProps?.paper},aA=(0,k.A)();return(0,u.jsxs)(e.Fragment,{children:[(0,u.jsx)(G,{as:"div",ref:an,tabIndex:void 0!==Y?Y:x?null:0,role:"combobox","aria-controls":ar?aA:void 0,"aria-disabled":x?"true":void 0,"aria-expanded":ar?"true":"false","aria-haspopup":"listbox","aria-label":p,"aria-labelledby":[K,aw].filter(Boolean).join(" ")||void 0,"aria-describedby":o,"aria-required":W?"true":void 0,"aria-invalid":z?"true":void 0,onKeyDown:a=>{!U&&[" ","ArrowUp","ArrowDown","Enter"].includes(a.key)&&(a.preventDefault(),ap(!0,a))},onMouseDown:x||U?null:a=>{0===a.button&&(a.preventDefault(),ag.current.focus(),ap(!0,a))},onBlur:a=>{!ar&&O&&(Object.defineProperty(a,"target",{writable:!0,value:{value:ab,name:N}}),O(a))},onFocus:R,...X,ownerState:ax,className:(0,f.A)(X.className,ay.select,t),id:aw,children:null!=(c=g)&&("string"!=typeof c||c.trim())?g:d||(d=(0,u.jsx)("span",{className:"notranslate","aria-hidden":!0,children:"​"}))}),(0,u.jsx)(I,{"aria-invalid":z,value:Array.isArray(ab)?ab.join(","):ab,name:N,ref:af,"aria-hidden":!0,onChange:a=>{let b=aq.find(b=>b.props.value===a.target.value);void 0!==b&&(ac(b.props.value),P&&P(a,b))},tabIndex:-1,disabled:x,className:ay.nativeInput,autoFocus:q,required:W,...aa,ownerState:ax}),(0,u.jsx)(H,{as:B,className:ay.icon,ownerState:ax}),(0,u.jsx)(n.A,{id:`menu-${N||""}`,anchorEl:ao,open:ar,onClose:a=>{ap(!1,a)},anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"center"},...L,slotProps:{...L.slotProps,list:{"aria-labelledby":K,role:"listbox","aria-multiselectable":M?"true":void 0,disableListWrap:!0,id:aA,...L.MenuListProps},paper:{...az,style:{minWidth:av,...null!=az?az.style:null}}},children:au})]})});var L=c(83738),M=c(49628),N=c(41606),O=c(27923),P=c(36335),Q=c(58563),R=c(6636);let S={name:"MuiSelect",overridesResolver:(a,b)=>b.root,shouldForwardProp:a=>(0,t.A)(a)&&"variant"!==a,slot:"Root"},T=(0,s.Ay)(O.A,S)(""),U=(0,s.Ay)(Q.A,S)(""),V=(0,s.Ay)(P.A,S)(""),W=e.forwardRef(function(a,b){let c=(0,R.b)({name:"MuiSelect",props:a}),{autoWidth:d=!1,children:j,classes:k={},className:l,defaultOpen:m=!1,displayEmpty:n=!1,IconComponent:o=N.A,id:p,input:q,inputProps:r,label:s,labelId:t,MenuProps:v,multiple:w=!1,native:x=!1,onClose:y,onOpen:A,open:B,renderValue:D,SelectDisplayProps:F,variant:G="outlined",...H}=c,I=(0,M.A)(),J=(0,L.A)({props:c,muiFormControl:I,states:["variant","error"]}),O=J.variant||G,P={...c,variant:O,classes:k},Q=(a=>{let{classes:b}=a,c=(0,h.A)({root:["root"]},E,b);return{...b,...c}})(P),{root:S,...W}=Q,X=q||({standard:(0,u.jsx)(T,{ownerState:P}),outlined:(0,u.jsx)(U,{label:s,ownerState:P}),filled:(0,u.jsx)(V,{ownerState:P})})[O],Y=(0,C.A)(b,(0,i.A)(X));return(0,u.jsx)(e.Fragment,{children:e.cloneElement(X,{inputComponent:x?z:K,inputProps:{children:j,error:J.error,IconComponent:o,variant:O,type:void 0,multiple:w,...x?{id:p}:{autoWidth:d,defaultOpen:m,displayEmpty:n,labelId:t,MenuProps:v,onClose:y,onOpen:A,open:B,renderValue:D,SelectDisplayProps:{id:p,...F}},...r,classes:r?(0,g.A)(W,r.classes):W,...q?q.props.inputProps:{}},...(w&&x||n)&&"outlined"===O?{notched:!0}:{},ref:Y,className:(0,f.A)(X.props.className,l,Q.root),...!q&&{variant:O},...H})})});W.muiName="Select";let X=W},10005:(a,b,c)=>{c.d(b,{A:()=>d});function d(a,b){"function"==typeof a?a(b):a&&(a.current=b)}},13763:(a,b,c)=>{c.d(b,{A:()=>g,g:()=>f});var d=c(29565),e=c(33105);function f(a){return(0,e.Ay)("MuiInputBase",a)}let g=(0,d.A)("MuiInputBase",["root","formControl","focused","disabled","adornedStart","adornedEnd","error","sizeSmall","multiline","colorSecondary","fullWidth","hiddenLabel","readOnly","input","inputSizeSmall","inputMultiline","inputTypeSearch","inputAdornedStart","inputAdornedEnd","inputHiddenLabel"])},14758:(a,b,c)=>{c.d(b,{A:()=>d});let d=c(75249).A},14992:(a,b,c)=>{c.d(b,{ck:()=>I,Sh:()=>H,Ay:()=>K,Oj:()=>G,WC:()=>F});var d,e=c(33757),f=c(38301),g=c(43249),h=c(2783),i=c(67943),j=c(24029),k=c(62383),l=c(75249),m=c(79257),n=c(21124);function o(a){return parseInt(a,10)||0}let p={shadow:{visibility:"hidden",position:"absolute",overflow:"hidden",height:0,top:0,left:0,transform:"translateZ(0)"}};function q(a){return function(a){for(let b in a)return!1;return!0}(a)||0===a.outerHeightStyle&&!a.overflowing}let r=f.forwardRef(function(a,b){let{onChange:c,maxRows:d,minRows:e=1,style:g,value:h,...r}=a,{current:s}=f.useRef(null!=h),t=f.useRef(null),u=(0,i.A)(b,t),v=f.useRef(null),w=f.useRef(null),x=f.useCallback(()=>{let b=t.current,c=w.current;if(!b||!c)return;let f=(0,j.A)(b).getComputedStyle(b);if("0px"===f.width)return{outerHeightStyle:0,overflowing:!1};c.style.width=f.width,c.value=b.value||a.placeholder||"x","\n"===c.value.slice(-1)&&(c.value+=" ");let g=f.boxSizing,h=o(f.paddingBottom)+o(f.paddingTop),i=o(f.borderBottomWidth)+o(f.borderTopWidth),k=c.scrollHeight;c.value="x";let l=c.scrollHeight,m=k;return e&&(m=Math.max(Number(e)*l,m)),d&&(m=Math.min(Number(d)*l,m)),{outerHeightStyle:(m=Math.max(m,l))+("border-box"===g?h+i:0),overflowing:1>=Math.abs(m-k)}},[d,e,a.placeholder]),y=(0,k.A)(()=>{let a=t.current,b=x();if(!a||!b||q(b))return!1;let c=b.outerHeightStyle;return null!=v.current&&v.current!==c}),z=f.useCallback(()=>{let a=t.current,b=x();if(!a||!b||q(b))return;let c=b.outerHeightStyle;v.current!==c&&(v.current=c,a.style.height=`${c}px`),a.style.overflow=b.overflowing?"hidden":""},[x]),A=f.useRef(-1);return(0,l.A)(()=>{let a,b=(0,m.A)(z),c=t?.current;if(!c)return;let d=(0,j.A)(c);return d.addEventListener("resize",b),"undefined"!=typeof ResizeObserver&&(a=new ResizeObserver(()=>{y()&&(a.unobserve(c),cancelAnimationFrame(A.current),z(),A.current=requestAnimationFrame(()=>{a.observe(c)}))})).observe(c),()=>{b.clear(),cancelAnimationFrame(A.current),d.removeEventListener("resize",b),a&&a.disconnect()}},[x,z,y]),(0,l.A)(()=>{z()}),(0,n.jsxs)(f.Fragment,{children:[(0,n.jsx)("textarea",{value:h,onChange:a=>{s||z(),c&&c(a)},ref:u,rows:e,style:g,...r}),(0,n.jsx)("textarea",{"aria-hidden":!0,className:a.className,readOnly:!0,ref:w,tabIndex:-1,style:{...p.shadow,...g,paddingTop:0,paddingBottom:0}})]})});var s=c(7103),t=c(83738),u=c(78104),v=c(49628),w=c(18168),x=c(91873),y=c(68333),z=c(6636),A=c(6638),B=c(26636),C=c(14758),D=c(49055),E=c(13763);let F=(a,b)=>{let{ownerState:c}=a;return[b.root,c.formControl&&b.formControl,c.startAdornment&&b.adornedStart,c.endAdornment&&b.adornedEnd,c.error&&b.error,"small"===c.size&&b.sizeSmall,c.multiline&&b.multiline,c.color&&b[`color${(0,A.A)(c.color)}`],c.fullWidth&&b.fullWidth,c.hiddenLabel&&b.hiddenLabel]},G=(a,b)=>{let{ownerState:c}=a;return[b.input,"small"===c.size&&b.inputSizeSmall,c.multiline&&b.inputMultiline,"search"===c.type&&b.inputTypeSearch,c.startAdornment&&b.inputAdornedStart,c.endAdornment&&b.inputAdornedEnd,c.hiddenLabel&&b.inputHiddenLabel]},H=(0,w.Ay)("div",{name:"MuiInputBase",slot:"Root",overridesResolver:F})((0,y.A)(({theme:a})=>({...a.typography.body1,color:(a.vars||a).palette.text.primary,lineHeight:"1.4375em",boxSizing:"border-box",position:"relative",cursor:"text",display:"inline-flex",alignItems:"center",[`&.${E.A.disabled}`]:{color:(a.vars||a).palette.text.disabled,cursor:"default"},variants:[{props:({ownerState:a})=>a.multiline,style:{padding:"4px 0 5px"}},{props:({ownerState:a,size:b})=>a.multiline&&"small"===b,style:{paddingTop:1}},{props:({ownerState:a})=>a.fullWidth,style:{width:"100%"}}]}))),I=(0,w.Ay)("input",{name:"MuiInputBase",slot:"Input",overridesResolver:G})((0,y.A)(({theme:a})=>{let b="light"===a.palette.mode,c={color:"currentColor",...a.vars?{opacity:a.vars.opacity.inputPlaceholder}:{opacity:b?.42:.5},transition:a.transitions.create("opacity",{duration:a.transitions.duration.shorter})},d={opacity:"0 !important"},e=a.vars?{opacity:a.vars.opacity.inputPlaceholder}:{opacity:b?.42:.5};return{font:"inherit",letterSpacing:"inherit",color:"currentColor",padding:"4px 0 5px",border:0,boxSizing:"content-box",background:"none",height:"1.4375em",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,width:"100%","&::-webkit-input-placeholder":c,"&::-moz-placeholder":c,"&::-ms-input-placeholder":c,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{WebkitAppearance:"none"},[`label[data-shrink=false] + .${E.A.formControl} &`]:{"&::-webkit-input-placeholder":d,"&::-moz-placeholder":d,"&::-ms-input-placeholder":d,"&:focus::-webkit-input-placeholder":e,"&:focus::-moz-placeholder":e,"&:focus::-ms-input-placeholder":e},[`&.${E.A.disabled}`]:{opacity:1,WebkitTextFillColor:(a.vars||a).palette.text.disabled},variants:[{props:({ownerState:a})=>!a.disableInjectingGlobalStyles,style:{animationName:"mui-auto-fill-cancel",animationDuration:"10ms","&:-webkit-autofill":{animationDuration:"5000s",animationName:"mui-auto-fill"}}},{props:{size:"small"},style:{paddingTop:1}},{props:({ownerState:a})=>a.multiline,style:{height:"auto",resize:"none",padding:0,paddingTop:0}},{props:{type:"search"},style:{MozAppearance:"textfield"}}]}})),J=(0,x.Dp)({"@keyframes mui-auto-fill":{from:{display:"block"}},"@keyframes mui-auto-fill-cancel":{from:{display:"block"}}}),K=f.forwardRef(function(a,b){let c=(0,z.b)({props:a,name:"MuiInputBase"}),{"aria-describedby":i,autoComplete:j,autoFocus:k,className:l,color:m,components:o={},componentsProps:p={},defaultValue:q,disabled:w,disableInjectingGlobalStyles:x,endAdornment:y,error:F,fullWidth:G=!1,id:K,inputComponent:L="input",inputProps:M={},inputRef:N,margin:O,maxRows:P,minRows:Q,multiline:R=!1,name:S,onBlur:T,onChange:U,onClick:V,onFocus:W,onKeyDown:X,onKeyUp:Y,placeholder:Z,readOnly:$,renderSuffix:_,rows:aa,size:ab,slotProps:ac={},slots:ad={},startAdornment:ae,type:af="text",value:ag,...ah}=c,ai=null!=M.value?M.value:ag,{current:aj}=f.useRef(null!=ai),ak=f.useRef(),al=f.useCallback(a=>{},[]),am=(0,B.A)(ak,N,M.ref,al),[an,ao]=f.useState(!1),ap=(0,v.A)(),aq=(0,t.A)({props:c,muiFormControl:ap,states:["color","disabled","error","hiddenLabel","size","required","filled"]});aq.focused=ap?ap.focused:an,f.useEffect(()=>{!ap&&w&&an&&(ao(!1),T&&T())},[ap,w,an,T]);let ar=ap&&ap.onFilled,as=ap&&ap.onEmpty,at=f.useCallback(a=>{(0,D.lq)(a)?ar&&ar():as&&as()},[ar,as]);(0,C.A)(()=>{aj&&at({value:ai})},[ai,at,aj]),f.useEffect(()=>{at(ak.current)},[]);let au=L,av=M;R&&"input"===au&&(av=aa?{type:void 0,minRows:aa,maxRows:aa,...av}:{type:void 0,maxRows:P,minRows:Q,...av},au=r),f.useEffect(()=>{ap&&ap.setAdornedStart(!!ae)},[ap,ae]);let aw={...c,color:aq.color||"primary",disabled:aq.disabled,endAdornment:y,error:aq.error,focused:aq.focused,formControl:ap,fullWidth:G,hiddenLabel:aq.hiddenLabel,multiline:R,size:aq.size,startAdornment:ae,type:af},ax=(a=>{let{classes:b,color:c,disabled:d,error:e,endAdornment:f,focused:g,formControl:i,fullWidth:j,hiddenLabel:k,multiline:l,readOnly:m,size:n,startAdornment:o,type:p}=a,q={root:["root",`color${(0,A.A)(c)}`,d&&"disabled",e&&"error",j&&"fullWidth",g&&"focused",i&&"formControl",n&&"medium"!==n&&`size${(0,A.A)(n)}`,l&&"multiline",o&&"adornedStart",f&&"adornedEnd",k&&"hiddenLabel",m&&"readOnly"],input:["input",d&&"disabled","search"===p&&"inputTypeSearch",l&&"inputMultiline","small"===n&&"inputSizeSmall",k&&"inputHiddenLabel",o&&"inputAdornedStart",f&&"inputAdornedEnd",m&&"readOnly"]};return(0,h.A)(q,E.g,b)})(aw),ay=ad.root||o.Root||H,az=ac.root||p.root||{},aA=ad.input||o.Input||I;return av={...av,...ac.input??p.input},(0,n.jsxs)(f.Fragment,{children:[!x&&"function"==typeof J&&(d||(d=(0,n.jsx)(J,{}))),(0,n.jsxs)(ay,{...az,ref:b,onClick:a=>{ak.current&&a.currentTarget===a.target&&ak.current.focus(),V&&V(a)},...ah,...!(0,s.A)(ay)&&{ownerState:{...aw,...az.ownerState}},className:(0,g.A)(ax.root,az.className,l,$&&"MuiInputBase-readOnly"),children:[ae,(0,n.jsx)(u.A.Provider,{value:null,children:(0,n.jsx)(aA,{"aria-invalid":aq.error,"aria-describedby":i,autoComplete:j,autoFocus:k,defaultValue:q,disabled:aq.disabled,id:K,onAnimationStart:a=>{at("mui-auto-fill-cancel"===a.animationName?ak.current:{value:"x"})},name:S,placeholder:Z,readOnly:$,required:aq.required,rows:aa,value:ai,onKeyDown:X,onKeyUp:Y,type:af,...av,...!(0,s.A)(aA)&&{as:au,ownerState:{...aw,...av.ownerState}},ref:am,className:(0,g.A)(ax.input,av.className,$&&"MuiInputBase-readOnly"),onBlur:a=>{T&&T(a),M.onBlur&&M.onBlur(a),ap&&ap.onBlur?ap.onBlur(a):ao(!1)},onChange:(a,...b)=>{if(!aj){let b=a.target||ak.current;if(null==b)throw Error((0,e.A)(1));at({value:b.value})}M.onChange&&M.onChange(a,...b),U&&U(a,...b)},onFocus:a=>{W&&W(a),M.onFocus&&M.onFocus(a),ap&&ap.onFocus?ap.onFocus(a):ao(!0)}})}),y,_?_({...aq,startAdornment:ae}):null]})]})})},19902:(a,b,c)=>{c.d(b,{A:()=>e});var d=c(43249);function e(a,b){if(!a)return b;if("function"==typeof a||"function"==typeof b)return c=>{let e="function"==typeof b?b(c):b,f="function"==typeof a?a({...c,...e}):a,g=(0,d.A)(c?.className,e?.className,f?.className);return{...e,...f,...!!g&&{className:g},...e?.style&&f?.style&&{style:{...e.style,...f.style}},...e?.sx&&f?.sx&&{sx:[...Array.isArray(e.sx)?e.sx:[e.sx],...Array.isArray(f.sx)?f.sx:[f.sx]]}}};let c=(0,d.A)(b?.className,a?.className);return{...b,...a,...!!c&&{className:c},...b?.style&&a?.style&&{style:{...b.style,...a.style}},...b?.sx&&a?.sx&&{sx:[...Array.isArray(b.sx)?b.sx:[b.sx],...Array.isArray(a.sx)?a.sx:[a.sx]]}}}},20456:(a,b,c)=>{c.d(b,{A:()=>L});var d=c(38301),e=c(43249),f=c(2783),g=c(67943),h=c(51939),i=c(46757),j=c(21124);function k(a){let b=[],c=[];return Array.from(a.querySelectorAll('input,select,textarea,a[href],button,[tabindex],audio[controls],video[controls],[contenteditable]:not([contenteditable="false"])')).forEach((a,d)=>{let e=function(a){let b=parseInt(a.getAttribute("tabindex")||"",10);return Number.isNaN(b)?"true"===a.contentEditable||("AUDIO"===a.nodeName||"VIDEO"===a.nodeName||"DETAILS"===a.nodeName)&&null===a.getAttribute("tabindex")?0:a.tabIndex:b}(a);-1===e||a.disabled||"INPUT"===a.tagName&&"hidden"===a.type||function(a){if("INPUT"!==a.tagName||"radio"!==a.type||!a.name)return!1;let b=b=>a.ownerDocument.querySelector(`input[type="radio"]${b}`),c=b(`[name="${a.name}"]:checked`);return c||(c=b(`[name="${a.name}"]`)),c!==a}(a)||(0===e?b.push(a):c.push({documentOrder:d,tabIndex:e,node:a}))}),c.sort((a,b)=>a.tabIndex===b.tabIndex?a.documentOrder-b.documentOrder:a.tabIndex-b.tabIndex).map(a=>a.node).concat(b)}function l(){return!0}let m=function(a){let{children:b,disableAutoFocus:c=!1,disableEnforceFocus:e=!1,disableRestoreFocus:f=!1,getTabbable:m=k,isEnabled:n=l,open:o}=a,p=d.useRef(!1),q=d.useRef(null),r=d.useRef(null),s=d.useRef(null),t=d.useRef(null),u=d.useRef(!1),v=d.useRef(null),w=(0,g.A)((0,h.A)(b),v),x=d.useRef(null);d.useEffect(()=>{o&&v.current&&(u.current=!c)},[c,o]),d.useEffect(()=>{if(!o||!v.current)return;let a=(0,i.A)(v.current);return!v.current.contains(a.activeElement)&&(v.current.hasAttribute("tabIndex")||v.current.setAttribute("tabIndex","-1"),u.current&&v.current.focus()),()=>{f||(s.current&&s.current.focus&&(p.current=!0,s.current.focus()),s.current=null)}},[o]),d.useEffect(()=>{if(!o||!v.current)return;let a=(0,i.A)(v.current),b=b=>{x.current=b,!e&&n()&&"Tab"===b.key&&a.activeElement===v.current&&b.shiftKey&&(p.current=!0,r.current&&r.current.focus())},c=()=>{let b=v.current;if(null===b)return;if(!a.hasFocus()||!n()||p.current){p.current=!1;return}if(b.contains(a.activeElement)||e&&a.activeElement!==q.current&&a.activeElement!==r.current)return;if(a.activeElement!==t.current)t.current=null;else if(null!==t.current)return;if(!u.current)return;let c=[];if((a.activeElement===q.current||a.activeElement===r.current)&&(c=m(v.current)),c.length>0){let a=!!(x.current?.shiftKey&&x.current?.key==="Tab"),b=c[0],d=c[c.length-1];"string"!=typeof b&&"string"!=typeof d&&(a?d.focus():b.focus())}else b.focus()};a.addEventListener("focusin",c),a.addEventListener("keydown",b,!0);let d=setInterval(()=>{a.activeElement&&"BODY"===a.activeElement.tagName&&c()},50);return()=>{clearInterval(d),a.removeEventListener("focusin",c),a.removeEventListener("keydown",b,!0)}},[c,e,f,n,o,m]);let y=a=>{null===s.current&&(s.current=a.relatedTarget),u.current=!0};return(0,j.jsxs)(d.Fragment,{children:[(0,j.jsx)("div",{tabIndex:o?0:-1,onFocus:y,ref:q,"data-testid":"sentinelStart"}),d.cloneElement(b,{ref:w,onFocus:a=>{null===s.current&&(s.current=a.relatedTarget),u.current=!0,t.current=a.target;let c=b.props.onFocus;c&&c(a)}}),(0,j.jsx)("div",{tabIndex:o?0:-1,onFocus:y,ref:r,"data-testid":"sentinelEnd"})]})};var n=c(1509),o=c(18168),p=c(68333),q=c(6636),r=c(65012),s=c(62383);function t(...a){return a.reduce((a,b)=>null==b?a:function(...c){a.apply(this,c),b.apply(this,c)},()=>{})}var u=c(69979),v=c(24029),w=c(32437);function x(a,b){b?a.setAttribute("aria-hidden","true"):a.removeAttribute("aria-hidden")}function y(a){return parseInt((0,v.A)(a).getComputedStyle(a).paddingRight,10)||0}function z(a,b,c,d,e){let f=[b,c,...d];[].forEach.call(a.children,a=>{let b=!f.includes(a),c=!function(a){let b=["TEMPLATE","SCRIPT","STYLE","LINK","MAP","META","NOSCRIPT","PICTURE","COL","COLGROUP","PARAM","SLOT","SOURCE","TRACK"].includes(a.tagName),c="INPUT"===a.tagName&&"hidden"===a.getAttribute("type");return b||c}(a);b&&c&&x(a,e)})}function A(a,b){let c=-1;return a.some((a,d)=>!!b(a)&&(c=d,!0)),c}class B{constructor(){this.modals=[],this.containers=[]}add(a,b){let c=this.modals.indexOf(a);if(-1!==c)return c;c=this.modals.length,this.modals.push(a),a.modalRef&&x(a.modalRef,!1);let d=function(a){let b=[];return[].forEach.call(a.children,a=>{"true"===a.getAttribute("aria-hidden")&&b.push(a)}),b}(b);z(b,a.mount,a.modalRef,d,!0);let e=A(this.containers,a=>a.container===b);return -1!==e?this.containers[e].modals.push(a):this.containers.push({modals:[a],container:b,restore:null,hiddenSiblings:d}),c}mount(a,b){let c=A(this.containers,b=>b.modals.includes(a)),d=this.containers[c];d.restore||(d.restore=function(a,b){let c=[],d=a.container;if(!b.disableScrollLock){let a;if(function(a){let b=(0,i.A)(a);return b.body===a?(0,v.A)(a).innerWidth>b.documentElement.clientWidth:a.scrollHeight>a.clientHeight}(d)){let a=(0,w.A)((0,v.A)(d));c.push({value:d.style.paddingRight,property:"padding-right",el:d}),d.style.paddingRight=`${y(d)+a}px`;let b=(0,i.A)(d).querySelectorAll(".mui-fixed");[].forEach.call(b,b=>{c.push({value:b.style.paddingRight,property:"padding-right",el:b}),b.style.paddingRight=`${y(b)+a}px`})}if(d.parentNode instanceof DocumentFragment)a=(0,i.A)(d).body;else{let b=d.parentElement,c=(0,v.A)(d);a=b?.nodeName==="HTML"&&"scroll"===c.getComputedStyle(b).overflowY?b:d}c.push({value:a.style.overflow,property:"overflow",el:a},{value:a.style.overflowX,property:"overflow-x",el:a},{value:a.style.overflowY,property:"overflow-y",el:a}),a.style.overflow="hidden"}return()=>{c.forEach(({value:a,el:b,property:c})=>{a?b.style.setProperty(c,a):b.style.removeProperty(c)})}}(d,b))}remove(a,b=!0){let c=this.modals.indexOf(a);if(-1===c)return c;let d=A(this.containers,b=>b.modals.includes(a)),e=this.containers[d];if(e.modals.splice(e.modals.indexOf(a),1),this.modals.splice(c,1),0===e.modals.length)e.restore&&e.restore(),a.modalRef&&x(a.modalRef,b),z(e.container,a.mount,a.modalRef,e.hiddenSiblings,!1),this.containers.splice(d,1);else{let a=e.modals[e.modals.length-1];a.modalRef&&x(a.modalRef,!1)}return c}isTopModal(a){return this.modals.length>0&&this.modals[this.modals.length-1]===a}}let C=()=>{},D=new B,E=function(a){let{container:b,disableEscapeKeyDown:c=!1,disableScrollLock:e=!1,closeAfterTransition:f=!1,onTransitionEnter:h,onTransitionExited:j,children:k,onClose:l,open:m,rootRef:n}=a,o=d.useRef({}),p=d.useRef(null),q=d.useRef(null),r=(0,g.A)(q,n),[v,w]=d.useState(!m),y=!!k&&k.props.hasOwnProperty("in"),z=!0;("false"===a["aria-hidden"]||!1===a["aria-hidden"])&&(z=!1);let A=()=>(o.current.modalRef=q.current,o.current.mount=p.current,o.current),B=()=>{D.mount(A(),{disableScrollLock:e}),q.current&&(q.current.scrollTop=0)},E=(0,s.A)(()=>{let a=("function"==typeof b?b():b)||(0,i.A)(p.current).body;D.add(A(),a),q.current&&B()}),F=()=>D.isTopModal(A()),G=(0,s.A)(a=>{p.current=a,a&&(m&&F()?B():q.current&&x(q.current,z))}),H=d.useCallback(()=>{D.remove(A(),z)},[z]);return d.useEffect(()=>()=>{H()},[H]),d.useEffect(()=>{m?E():y&&f||H()},[m,H,y,f,E]),{getRootProps:(b={})=>{let d=(0,u.A)(a);delete d.onTransitionEnter,delete d.onTransitionExited;let e={...d,...b};return{role:"presentation",...e,onKeyDown:a=>{e.onKeyDown?.(a),"Escape"===a.key&&229!==a.which&&F()&&!c&&(a.stopPropagation(),l&&l(a,"escapeKeyDown"))},ref:r}},getBackdropProps:(a={})=>({"aria-hidden":!0,...a,onClick:b=>{a.onClick?.(b),b.target===b.currentTarget&&l&&l(b,"backdropClick")},open:m}),getTransitionProps:()=>({onEnter:t(()=>{w(!1),h&&h()},k?.props.onEnter??C),onExited:t(()=>{w(!0),j&&j(),f&&H()},k?.props.onExited??C)}),rootRef:r,portalRef:G,isTopModal:F,exited:v,hasTransition:y}};var F=c(29565),G=c(33105);function H(a){return(0,G.Ay)("MuiModal",a)}(0,F.A)("MuiModal",["root","hidden","backdrop"]);var I=c(20385);let J=(0,o.Ay)("div",{name:"MuiModal",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,!c.open&&c.exited&&b.hidden]}})((0,p.A)(({theme:a})=>({position:"fixed",zIndex:(a.vars||a).zIndex.modal,right:0,bottom:0,top:0,left:0,variants:[{props:({ownerState:a})=>!a.open&&a.exited,style:{visibility:"hidden"}}]}))),K=(0,o.Ay)(r.A,{name:"MuiModal",slot:"Backdrop",overridesResolver:(a,b)=>b.backdrop})({zIndex:-1}),L=d.forwardRef(function(a,b){let c=(0,q.b)({name:"MuiModal",props:a}),{BackdropComponent:g=K,BackdropProps:h,classes:i,className:k,closeAfterTransition:l=!1,children:o,container:p,component:r,components:s={},componentsProps:t={},disableAutoFocus:u=!1,disableEnforceFocus:v=!1,disableEscapeKeyDown:w=!1,disablePortal:x=!1,disableRestoreFocus:y=!1,disableScrollLock:z=!1,hideBackdrop:A=!1,keepMounted:B=!1,onBackdropClick:C,onClose:D,onTransitionEnter:F,onTransitionExited:G,open:L,slotProps:M={},slots:N={},theme:O,...P}=c,Q={...c,closeAfterTransition:l,disableAutoFocus:u,disableEnforceFocus:v,disableEscapeKeyDown:w,disablePortal:x,disableRestoreFocus:y,disableScrollLock:z,hideBackdrop:A,keepMounted:B},{getRootProps:R,getBackdropProps:S,getTransitionProps:T,portalRef:U,isTopModal:V,exited:W,hasTransition:X}=E({...Q,rootRef:b}),Y={...Q,exited:W},Z=(a=>{let{open:b,exited:c,classes:d}=a;return(0,f.A)({root:["root",!b&&c&&"hidden"],backdrop:["backdrop"]},H,d)})(Y),$={};if(void 0===o.props.tabIndex&&($.tabIndex="-1"),X){let{onEnter:a,onExited:b}=T();$.onEnter=a,$.onExited=b}let _={slots:{root:s.Root,backdrop:s.Backdrop,...N},slotProps:{...t,...M}},[aa,ab]=(0,I.A)("root",{ref:b,elementType:J,externalForwardedProps:{..._,...P,component:r},getSlotProps:R,ownerState:Y,className:(0,e.A)(k,Z?.root,!Y.open&&Y.exited&&Z?.hidden)}),[ac,ad]=(0,I.A)("backdrop",{ref:h?.ref,elementType:g,externalForwardedProps:_,shouldForwardComponentProp:!0,additionalProps:h,getSlotProps:a=>S({...a,onClick:b=>{C&&C(b),a?.onClick&&a.onClick(b)}}),className:(0,e.A)(h?.className,Z?.backdrop),ownerState:Y});return B||L||X&&!W?(0,j.jsx)(n.A,{ref:U,container:p,disablePortal:x,children:(0,j.jsxs)(aa,{...ab,children:[!A&&g?(0,j.jsx)(ac,{...ad}):null,(0,j.jsx)(m,{disableEnforceFocus:v,disableAutoFocus:u,disableRestoreFocus:y,isEnabled:V,open:L,children:d.cloneElement(o,$)})]})}):null})},24029:(a,b,c)=>{c.d(b,{A:()=>e});var d=c(46757);function e(a){return(0,d.A)(a).defaultView||window}},27923:(a,b,c)=>{c.d(b,{A:()=>r});var d=c(38301),e=c(2783),f=c(3253),g=c(14992),h=c(41126),i=c(18168),j=c(68333),k=c(54716),l=c(6636),m=c(88679),n=c(21124);let o=(0,i.Ay)(g.Sh,{shouldForwardProp:a=>(0,h.A)(a)||"classes"===a,name:"MuiInput",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[...(0,g.WC)(a,b),!c.disableUnderline&&b.underline]}})((0,j.A)(({theme:a})=>{let b="light"===a.palette.mode?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)";return a.vars&&(b=`rgba(${a.vars.palette.common.onBackgroundChannel} / ${a.vars.opacity.inputUnderline})`),{position:"relative",variants:[{props:({ownerState:a})=>a.formControl,style:{"label + &":{marginTop:16}}},{props:({ownerState:a})=>!a.disableUnderline,style:{"&::after":{left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:a.transitions.create("transform",{duration:a.transitions.duration.shorter,easing:a.transitions.easing.easeOut}),pointerEvents:"none"},[`&.${m.A.focused}:after`]:{transform:"scaleX(1) translateX(0)"},[`&.${m.A.error}`]:{"&::before, &::after":{borderBottomColor:(a.vars||a).palette.error.main}},"&::before":{borderBottom:`1px solid ${b}`,left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:a.transitions.create("border-bottom-color",{duration:a.transitions.duration.shorter}),pointerEvents:"none"},[`&:hover:not(.${m.A.disabled}, .${m.A.error}):before`]:{borderBottom:`2px solid ${(a.vars||a).palette.text.primary}`,"@media (hover: none)":{borderBottom:`1px solid ${b}`}},[`&.${m.A.disabled}:before`]:{borderBottomStyle:"dotted"}}},...Object.entries(a.palette).filter((0,k.A)()).map(([b])=>({props:{color:b,disableUnderline:!1},style:{"&::after":{borderBottom:`2px solid ${(a.vars||a).palette[b].main}`}}}))]}})),p=(0,i.Ay)(g.ck,{name:"MuiInput",slot:"Input",overridesResolver:g.Oj})({}),q=d.forwardRef(function(a,b){let c=(0,l.b)({props:a,name:"MuiInput"}),{disableUnderline:d=!1,components:h={},componentsProps:i,fullWidth:j=!1,inputComponent:k="input",multiline:q=!1,slotProps:r,slots:s={},type:t="text",...u}=c,v=(a=>{let{classes:b,disableUnderline:c}=a,d=(0,e.A)({root:["root",!c&&"underline"],input:["input"]},m.B,b);return{...b,...d}})(c),w={root:{ownerState:{disableUnderline:d}}},x=r??i?(0,f.A)(r??i,w):w,y=s.root??h.Root??o,z=s.input??h.Input??p;return(0,n.jsx)(g.Ay,{slots:{root:y,input:z},slotProps:x,fullWidth:j,inputComponent:k,multiline:q,ref:b,type:t,...u,classes:v})});q.muiName="Input";let r=q},28366:(a,b,c)=>{c.d(b,{c:()=>e,q:()=>d});let d=a=>a.scrollTop;function e(a,b){let{timeout:c,easing:d,style:e={}}=a;return{duration:e.transitionDuration??("number"==typeof c?c:c[b.mode]||0),easing:e.transitionTimingFunction??("object"==typeof d?d[b.mode]:d),delay:e.transitionDelay}}},32437:(a,b,c)=>{c.d(b,{A:()=>d});function d(a=window){let b=a.document.documentElement.clientWidth;return a.innerWidth-b}},36335:(a,b,c)=>{c.d(b,{A:()=>s});var d=c(38301),e=c(3253),f=c(2783),g=c(14992),h=c(41126),i=c(18168),j=c(68333),k=c(54716),l=c(6636),m=c(37659),n=c(6638),o=c(21124);let p=(0,i.Ay)(g.Sh,{shouldForwardProp:a=>(0,h.A)(a)||"classes"===a,name:"MuiFilledInput",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[...(0,g.WC)(a,b),!c.disableUnderline&&b.underline]}})((0,j.A)(({theme:a})=>{let b="light"===a.palette.mode,c=b?"rgba(0, 0, 0, 0.06)":"rgba(255, 255, 255, 0.09)";return{position:"relative",backgroundColor:a.vars?a.vars.palette.FilledInput.bg:c,borderTopLeftRadius:(a.vars||a).shape.borderRadius,borderTopRightRadius:(a.vars||a).shape.borderRadius,transition:a.transitions.create("background-color",{duration:a.transitions.duration.shorter,easing:a.transitions.easing.easeOut}),"&:hover":{backgroundColor:a.vars?a.vars.palette.FilledInput.hoverBg:b?"rgba(0, 0, 0, 0.09)":"rgba(255, 255, 255, 0.13)","@media (hover: none)":{backgroundColor:a.vars?a.vars.palette.FilledInput.bg:c}},[`&.${m.A.focused}`]:{backgroundColor:a.vars?a.vars.palette.FilledInput.bg:c},[`&.${m.A.disabled}`]:{backgroundColor:a.vars?a.vars.palette.FilledInput.disabledBg:b?"rgba(0, 0, 0, 0.12)":"rgba(255, 255, 255, 0.12)"},variants:[{props:({ownerState:a})=>!a.disableUnderline,style:{"&::after":{left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:a.transitions.create("transform",{duration:a.transitions.duration.shorter,easing:a.transitions.easing.easeOut}),pointerEvents:"none"},[`&.${m.A.focused}:after`]:{transform:"scaleX(1) translateX(0)"},[`&.${m.A.error}`]:{"&::before, &::after":{borderBottomColor:(a.vars||a).palette.error.main}},"&::before":{borderBottom:`1px solid ${a.vars?`rgba(${a.vars.palette.common.onBackgroundChannel} / ${a.vars.opacity.inputUnderline})`:b?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)"}`,left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:a.transitions.create("border-bottom-color",{duration:a.transitions.duration.shorter}),pointerEvents:"none"},[`&:hover:not(.${m.A.disabled}, .${m.A.error}):before`]:{borderBottom:`1px solid ${(a.vars||a).palette.text.primary}`},[`&.${m.A.disabled}:before`]:{borderBottomStyle:"dotted"}}},...Object.entries(a.palette).filter((0,k.A)()).map(([b])=>({props:{disableUnderline:!1,color:b},style:{"&::after":{borderBottom:`2px solid ${(a.vars||a).palette[b]?.main}`}}})),{props:({ownerState:a})=>a.startAdornment,style:{paddingLeft:12}},{props:({ownerState:a})=>a.endAdornment,style:{paddingRight:12}},{props:({ownerState:a})=>a.multiline,style:{padding:"25px 12px 8px"}},{props:({ownerState:a,size:b})=>a.multiline&&"small"===b,style:{paddingTop:21,paddingBottom:4}},{props:({ownerState:a})=>a.multiline&&a.hiddenLabel,style:{paddingTop:16,paddingBottom:17}},{props:({ownerState:a})=>a.multiline&&a.hiddenLabel&&"small"===a.size,style:{paddingTop:8,paddingBottom:9}}]}})),q=(0,i.Ay)(g.ck,{name:"MuiFilledInput",slot:"Input",overridesResolver:g.Oj})((0,j.A)(({theme:a})=>({paddingTop:25,paddingRight:12,paddingBottom:8,paddingLeft:12,...!a.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:"light"===a.palette.mode?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:"light"===a.palette.mode?null:"#fff",caretColor:"light"===a.palette.mode?null:"#fff",borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"}},...a.vars&&{"&:-webkit-autofill":{borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"},[a.getColorSchemeSelector("dark")]:{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}},variants:[{props:{size:"small"},style:{paddingTop:21,paddingBottom:4}},{props:({ownerState:a})=>a.hiddenLabel,style:{paddingTop:16,paddingBottom:17}},{props:({ownerState:a})=>a.startAdornment,style:{paddingLeft:0}},{props:({ownerState:a})=>a.endAdornment,style:{paddingRight:0}},{props:({ownerState:a})=>a.hiddenLabel&&"small"===a.size,style:{paddingTop:8,paddingBottom:9}},{props:({ownerState:a})=>a.multiline,style:{paddingTop:0,paddingBottom:0,paddingLeft:0,paddingRight:0}}]}))),r=d.forwardRef(function(a,b){let c=(0,l.b)({props:a,name:"MuiFilledInput"}),{disableUnderline:d=!1,components:h={},componentsProps:i,fullWidth:j=!1,hiddenLabel:k,inputComponent:r="input",multiline:s=!1,slotProps:t,slots:u={},type:v="text",...w}=c,x={...c,disableUnderline:d,fullWidth:j,inputComponent:r,multiline:s,type:v},y=(a=>{let{classes:b,disableUnderline:c,startAdornment:d,endAdornment:e,size:g,hiddenLabel:h,multiline:i}=a,j={root:["root",!c&&"underline",d&&"adornedStart",e&&"adornedEnd","small"===g&&`size${(0,n.A)(g)}`,h&&"hiddenLabel",i&&"multiline"],input:["input"]},k=(0,f.A)(j,m.N,b);return{...b,...k}})(c),z={root:{ownerState:x},input:{ownerState:x}},A=t??i?(0,e.A)(z,t??i):z,B=u.root??h.Root??p,C=u.input??h.Input??q;return(0,o.jsx)(g.Ay,{slots:{root:B,input:C},slotProps:A,fullWidth:j,inputComponent:r,multiline:s,ref:b,type:v,...w,classes:y})});r.muiName="Input";let s=r},37659:(a,b,c)=>{c.d(b,{A:()=>g,N:()=>f});var d=c(29565),e=c(33105);function f(a){return(0,e.Ay)("MuiFilledInput",a)}let g={...c(13763).A,...(0,d.A)("MuiFilledInput",["root","underline","input","adornedStart","adornedEnd","sizeSmall","multiline","hiddenLabel"])}},37674:(a,b,c)=>{c.d(b,{A:()=>x});var d=c(38301),e=c(43249),f=c(2783),g=c(92869),h=c(18168),i=c(6636),j=c(27923),k=c(36335),l=c(58563),m=c(98256),n=c(82605),o=c(38233),p=c(7675),q=c(29565),r=c(33105);function s(a){return(0,r.Ay)("MuiTextField",a)}(0,q.A)("MuiTextField",["root"]);var t=c(20385),u=c(21124);let v={standard:j.A,filled:k.A,outlined:l.A},w=(0,h.Ay)(n.A,{name:"MuiTextField",slot:"Root",overridesResolver:(a,b)=>b.root})({}),x=d.forwardRef(function(a,b){let c=(0,i.b)({props:a,name:"MuiTextField"}),{autoComplete:d,autoFocus:h=!1,children:j,className:k,color:l="primary",defaultValue:n,disabled:q=!1,error:r=!1,FormHelperTextProps:x,fullWidth:y=!1,helperText:z,id:A,InputLabelProps:B,inputProps:C,InputProps:D,inputRef:E,label:F,maxRows:G,minRows:H,multiline:I=!1,name:J,onBlur:K,onChange:L,onFocus:M,placeholder:N,required:O=!1,rows:P,select:Q=!1,SelectProps:R,slots:S={},slotProps:T={},type:U,value:V,variant:W="outlined",...X}=c,Y={...c,autoFocus:h,color:l,disabled:q,error:r,fullWidth:y,multiline:I,required:O,select:Q,variant:W},Z=(a=>{let{classes:b}=a;return(0,f.A)({root:["root"]},s,b)})(Y),$=(0,g.A)(A),_=z&&$?`${$}-helper-text`:void 0,aa=F&&$?`${$}-label`:void 0,ab=v[W],ac={slots:S,slotProps:{input:D,inputLabel:B,htmlInput:C,formHelperText:x,select:R,...T}},ad={},ae=ac.slotProps.inputLabel;"outlined"===W&&(ae&&void 0!==ae.shrink&&(ad.notched=ae.shrink),ad.label=F),Q&&(R&&R.native||(ad.id=void 0),ad["aria-describedby"]=void 0);let[af,ag]=(0,t.A)("root",{elementType:w,shouldForwardComponentProp:!0,externalForwardedProps:{...ac,...X},ownerState:Y,className:(0,e.A)(Z.root,k),ref:b,additionalProps:{disabled:q,error:r,fullWidth:y,required:O,color:l,variant:W}}),[ah,ai]=(0,t.A)("input",{elementType:ab,externalForwardedProps:ac,additionalProps:ad,ownerState:Y}),[aj,ak]=(0,t.A)("inputLabel",{elementType:m.A,externalForwardedProps:ac,ownerState:Y}),[al,am]=(0,t.A)("htmlInput",{elementType:"input",externalForwardedProps:ac,ownerState:Y}),[an,ao]=(0,t.A)("formHelperText",{elementType:o.A,externalForwardedProps:ac,ownerState:Y}),[ap,aq]=(0,t.A)("select",{elementType:p.A,externalForwardedProps:ac,ownerState:Y}),ar=(0,u.jsx)(ah,{"aria-describedby":_,autoComplete:d,autoFocus:h,defaultValue:n,fullWidth:y,multiline:I,name:J,rows:P,maxRows:G,minRows:H,type:U,value:V,id:$,inputRef:E,onBlur:K,onChange:L,onFocus:M,placeholder:N,inputProps:am,slots:{input:S.htmlInput?al:void 0},...ai});return(0,u.jsxs)(af,{...ag,children:[null!=F&&""!==F&&(0,u.jsx)(aj,{htmlFor:$,id:aa,...ak,children:F}),Q?(0,u.jsx)(ap,{"aria-describedby":_,id:$,labelId:aa,value:V,input:ar,...aq,children:j}):ar,z&&(0,u.jsx)(an,{id:_,...ao,children:z})]})})},38233:(a,b,c)=>{c.d(b,{A:()=>t});var d,e=c(38301),f=c(43249),g=c(2783),h=c(83738),i=c(49628),j=c(18168),k=c(68333),l=c(6636),m=c(6638),n=c(29565),o=c(33105);function p(a){return(0,o.Ay)("MuiFormHelperText",a)}let q=(0,n.A)("MuiFormHelperText",["root","error","disabled","sizeSmall","sizeMedium","contained","focused","filled","required"]);var r=c(21124);let s=(0,j.Ay)("p",{name:"MuiFormHelperText",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,c.size&&b[`size${(0,m.A)(c.size)}`],c.contained&&b.contained,c.filled&&b.filled]}})((0,k.A)(({theme:a})=>({color:(a.vars||a).palette.text.secondary,...a.typography.caption,textAlign:"left",marginTop:3,marginRight:0,marginBottom:0,marginLeft:0,[`&.${q.disabled}`]:{color:(a.vars||a).palette.text.disabled},[`&.${q.error}`]:{color:(a.vars||a).palette.error.main},variants:[{props:{size:"small"},style:{marginTop:4}},{props:({ownerState:a})=>a.contained,style:{marginLeft:14,marginRight:14}}]}))),t=e.forwardRef(function(a,b){let c=(0,l.b)({props:a,name:"MuiFormHelperText"}),{children:e,className:j,component:k="p",disabled:n,error:o,filled:q,focused:t,margin:u,required:v,variant:w,...x}=c,y=(0,i.A)(),z=(0,h.A)({props:c,muiFormControl:y,states:["variant","size","disabled","error","filled","focused","required"]}),A={...c,component:k,contained:"filled"===z.variant||"outlined"===z.variant,variant:z.variant,size:z.size,disabled:z.disabled,error:z.error,filled:z.filled,focused:z.focused,required:z.required};delete A.ownerState;let B=(a=>{let{classes:b,contained:c,size:d,disabled:e,error:f,filled:h,focused:i,required:j}=a,k={root:["root",e&&"disabled",f&&"error",d&&`size${(0,m.A)(d)}`,c&&"contained",i&&"focused",h&&"filled",j&&"required"]};return(0,g.A)(k,p,b)})(A);return(0,r.jsx)(s,{as:k,className:(0,f.A)(B.root,j),ref:b,...x,ownerState:A,children:" "===e?d||(d=(0,r.jsx)("span",{className:"notranslate","aria-hidden":!0,children:"​"})):e})})},38404:(a,b,c)=>{c.d(b,{I:()=>f});var d=c(38301);c(21124);let e=d.createContext(),f=()=>d.useContext(e)??!1},41606:(a,b,c)=>{c.d(b,{A:()=>f}),c(38301);var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M7 10l5 5 5-5z"}),"ArrowDropDown")},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]})})},46757:(a,b,c)=>{c.d(b,{A:()=>d});function d(a){return a&&a.ownerDocument||document}},49055:(a,b,c)=>{function d(a){return null!=a&&!(Array.isArray(a)&&0===a.length)}function e(a,b=!1){return a&&(d(a.value)&&""!==a.value||b&&d(a.defaultValue)&&""!==a.defaultValue)}function f(a){return a.startAdornment}c.d(b,{gr:()=>f,lq:()=>e})},49565:(a,b,c)=>{c.d(b,{A:()=>l});var d=c(38301),e=c(65823),f=c(51939),g=c(60839),h=c(28366),i=c(26636),j=c(21124);let k={entering:{opacity:1},entered:{opacity:1}},l=d.forwardRef(function(a,b){let c=(0,g.A)(),l={enter:c.transitions.duration.enteringScreen,exit:c.transitions.duration.leavingScreen},{addEndListener:m,appear:n=!0,children:o,easing:p,in:q,onEnter:r,onEntered:s,onEntering:t,onExit:u,onExited:v,onExiting:w,style:x,timeout:y=l,TransitionComponent:z=e.Ay,...A}=a,B=d.useRef(null),C=(0,i.A)(B,(0,f.A)(o),b),D=a=>b=>{if(a){let c=B.current;void 0===b?a(c):a(c,b)}},E=D(t),F=D((a,b)=>{(0,h.q)(a);let d=(0,h.c)({style:x,timeout:y,easing:p},{mode:"enter"});a.style.webkitTransition=c.transitions.create("opacity",d),a.style.transition=c.transitions.create("opacity",d),r&&r(a,b)}),G=D(s),H=D(w),I=D(a=>{let b=(0,h.c)({style:x,timeout:y,easing:p},{mode:"exit"});a.style.webkitTransition=c.transitions.create("opacity",b),a.style.transition=c.transitions.create("opacity",b),u&&u(a)}),J=D(v);return(0,j.jsx)(z,{appear:n,in:q,nodeRef:B,onEnter:F,onEntered:G,onEntering:E,onExit:I,onExited:J,onExiting:H,addEndListener:a=>{m&&m(B.current,a)},timeout:y,...A,children:(a,{ownerState:b,...c})=>d.cloneElement(o,{style:{opacity:0,visibility:"exited"!==a||q?void 0:"hidden",...k[a],...x,...o.props.style},ref:C,...c})})})},49628:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(38301),e=c(78104);function f(){return d.useContext(e.A)}},51939:(a,b,c)=>{c.d(b,{A:()=>e});var d=c(38301);function e(a){return parseInt(d.version,10)>=19?a?.props?.ref||null:a?.ref||null}},53151:(a,b,c)=>{c.d(b,{IJ:()=>A,Ay:()=>B});var d=c(38301),e=c(43249),f=c(2783),g=c(7103),h=c(18168),i=c(6636),j=c(74907),k=c(97896),l=c(5141),m=c(4927),n=c(20456),o=c(54573),p=c(29565),q=c(33105);function r(a){return(0,q.Ay)("MuiPopover",a)}(0,p.A)("MuiPopover",["root","paper"]);var s=c(20385),t=c(19902),u=c(21124);function v(a,b){let c=0;return"number"==typeof b?c=b:"center"===b?c=a.height/2:"bottom"===b&&(c=a.height),c}function w(a,b){let c=0;return"number"==typeof b?c=b:"center"===b?c=a.width/2:"right"===b&&(c=a.width),c}function x(a){return[a.horizontal,a.vertical].map(a=>"number"==typeof a?`${a}px`:a).join(" ")}function y(a){return"function"==typeof a?a():a}let z=(0,h.Ay)(n.A,{name:"MuiPopover",slot:"Root",overridesResolver:(a,b)=>b.root})({}),A=(0,h.Ay)(o.A,{name:"MuiPopover",slot:"Paper",overridesResolver:(a,b)=>b.paper})({position:"absolute",overflowY:"auto",overflowX:"hidden",minWidth:16,minHeight:16,maxWidth:"calc(100% - 32px)",maxHeight:"calc(100% - 32px)",outline:0}),B=d.forwardRef(function(a,b){let c=(0,i.b)({props:a,name:"MuiPopover"}),{action:h,anchorEl:n,anchorOrigin:o={vertical:"top",horizontal:"left"},anchorPosition:p,anchorReference:q="anchorEl",children:B,className:C,container:D,elevation:E=8,marginThreshold:F=16,open:G,PaperProps:H={},slots:I={},slotProps:J={},transformOrigin:K={vertical:"top",horizontal:"left"},TransitionComponent:L,transitionDuration:M="auto",TransitionProps:N={},disableScrollLock:O=!1,...P}=c,Q=d.useRef(),R={...c,anchorOrigin:o,anchorReference:q,elevation:E,marginThreshold:F,transformOrigin:K,TransitionComponent:L,transitionDuration:M,TransitionProps:N},S=(a=>{let{classes:b}=a;return(0,f.A)({root:["root"],paper:["paper"]},r,b)})(R),T=d.useCallback(()=>{if("anchorPosition"===q)return p;let a=y(n),b=(a&&1===a.nodeType?a:(0,k.A)(Q.current).body).getBoundingClientRect();return{top:b.top+v(b,o.vertical),left:b.left+w(b,o.horizontal)}},[n,o.horizontal,o.vertical,p,q]),U=d.useCallback(a=>({vertical:v(a,K.vertical),horizontal:w(a,K.horizontal)}),[K.horizontal,K.vertical]),V=d.useCallback(a=>{let b={width:a.offsetWidth,height:a.offsetHeight},c=U(b);if("none"===q)return{top:null,left:null,transformOrigin:x(c)};let d=T(),e=d.top-c.vertical,f=d.left-c.horizontal,g=e+b.height,h=f+b.width,i=(0,l.A)(y(n)),j=i.innerHeight-F,k=i.innerWidth-F;if(null!==F&&e<F){let a=e-F;e-=a,c.vertical+=a}else if(null!==F&&g>j){let a=g-j;e-=a,c.vertical+=a}if(null!==F&&f<F){let a=f-F;f-=a,c.horizontal+=a}else if(h>k){let a=h-k;f-=a,c.horizontal+=a}return{top:`${Math.round(e)}px`,left:`${Math.round(f)}px`,transformOrigin:x(c)}},[n,q,T,U,F]),[W,X]=d.useState(G),Y=d.useCallback(()=>{let a=Q.current;if(!a)return;let b=V(a);null!==b.top&&a.style.setProperty("top",b.top),null!==b.left&&(a.style.left=b.left),a.style.transformOrigin=b.transformOrigin,X(!0)},[V]);d.useEffect(()=>(O&&window.addEventListener("scroll",Y),()=>window.removeEventListener("scroll",Y)),[n,O,Y]),d.useEffect(()=>{G&&Y()}),d.useImperativeHandle(h,()=>G?{updatePosition:()=>{Y()}}:null,[G,Y]),d.useEffect(()=>{if(!G)return;let a=(0,j.A)(()=>{Y()}),b=(0,l.A)(y(n));return b.addEventListener("resize",a),()=>{a.clear(),b.removeEventListener("resize",a)}},[n,G,Y]);let Z=M,$={slots:{transition:L,...I},slotProps:{transition:N,paper:H,...J}},[_,aa]=(0,s.A)("transition",{elementType:m.A,externalForwardedProps:$,ownerState:R,getSlotProps:a=>({...a,onEntering:(b,c)=>{a.onEntering?.(b,c),Y()},onExited:b=>{a.onExited?.(b),X(!1)}}),additionalProps:{appear:!0,in:G}});"auto"!==M||_.muiSupportAuto||(Z=void 0);let ab=D||(n?(0,k.A)(y(n)).body:void 0),[ac,{slots:ad,slotProps:ae,...af}]=(0,s.A)("root",{ref:b,elementType:z,externalForwardedProps:{...$,...P},shouldForwardComponentProp:!0,additionalProps:{slots:{backdrop:I.backdrop},slotProps:{backdrop:(0,t.A)("function"==typeof J.backdrop?J.backdrop(R):J.backdrop,{invisible:!0})},container:ab,open:G},ownerState:R,className:(0,e.A)(S.root,C)}),[ag,ah]=(0,s.A)("paper",{ref:Q,className:S.paper,elementType:A,externalForwardedProps:$,shouldForwardComponentProp:!0,additionalProps:{elevation:E,style:W?void 0:{opacity:0}},ownerState:R});return(0,u.jsx)(ac,{...af,...!(0,g.A)(ac)&&{slots:ad,slotProps:ae,disableScrollLock:O},children:(0,u.jsx)(_,{...aa,timeout:Z,children:(0,u.jsx)(ag,{...ah,children:B})})})})},55470:(a,b,c)=>{c.d(b,{A:()=>d});let d=c(38301).createContext({})},55973:(a,b,c)=>{c.d(b,{A:()=>e});var d=c(38301);function e({controlled:a,default:b,name:c,state:e="value"}){let{current:f}=d.useRef(void 0!==a),[g,h]=d.useState(b),i=d.useCallback(a=>{f||h(a)},[]);return[f?a:g,i]}},58563:(a,b,c)=>{c.d(b,{A:()=>x});var d,e=c(38301),f=c(2783),g=c(41126),h=c(18168),i=c(68333),j=c(21124);let k=(0,h.Ay)("fieldset",{name:"MuiNotchedOutlined",shouldForwardProp:g.A})({textAlign:"left",position:"absolute",bottom:0,right:0,top:-5,left:0,margin:0,padding:"0 8px",pointerEvents:"none",borderRadius:"inherit",borderStyle:"solid",borderWidth:1,overflow:"hidden",minWidth:"0%"}),l=(0,h.Ay)("legend",{name:"MuiNotchedOutlined",shouldForwardProp:g.A})((0,i.A)(({theme:a})=>({float:"unset",width:"auto",overflow:"hidden",variants:[{props:({ownerState:a})=>!a.withLabel,style:{padding:0,lineHeight:"11px",transition:a.transitions.create("width",{duration:150,easing:a.transitions.easing.easeOut})}},{props:({ownerState:a})=>a.withLabel,style:{display:"block",padding:0,height:11,fontSize:"0.75em",visibility:"hidden",maxWidth:.01,transition:a.transitions.create("max-width",{duration:50,easing:a.transitions.easing.easeOut}),whiteSpace:"nowrap","& > span":{paddingLeft:5,paddingRight:5,display:"inline-block",opacity:0,visibility:"visible"}}},{props:({ownerState:a})=>a.withLabel&&a.notched,style:{maxWidth:"100%",transition:a.transitions.create("max-width",{duration:100,easing:a.transitions.easing.easeOut,delay:50})}}]})));var m=c(49628),n=c(83738),o=c(54716),p=c(6636),q=c(91003),r=c(14992),s=c(20385);let t=(0,h.Ay)(r.Sh,{shouldForwardProp:a=>(0,g.A)(a)||"classes"===a,name:"MuiOutlinedInput",slot:"Root",overridesResolver:r.WC})((0,i.A)(({theme:a})=>{let b="light"===a.palette.mode?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{position:"relative",borderRadius:(a.vars||a).shape.borderRadius,[`&:hover .${q.A.notchedOutline}`]:{borderColor:(a.vars||a).palette.text.primary},"@media (hover: none)":{[`&:hover .${q.A.notchedOutline}`]:{borderColor:a.vars?`rgba(${a.vars.palette.common.onBackgroundChannel} / 0.23)`:b}},[`&.${q.A.focused} .${q.A.notchedOutline}`]:{borderWidth:2},variants:[...Object.entries(a.palette).filter((0,o.A)()).map(([b])=>({props:{color:b},style:{[`&.${q.A.focused} .${q.A.notchedOutline}`]:{borderColor:(a.vars||a).palette[b].main}}})),{props:{},style:{[`&.${q.A.error} .${q.A.notchedOutline}`]:{borderColor:(a.vars||a).palette.error.main},[`&.${q.A.disabled} .${q.A.notchedOutline}`]:{borderColor:(a.vars||a).palette.action.disabled}}},{props:({ownerState:a})=>a.startAdornment,style:{paddingLeft:14}},{props:({ownerState:a})=>a.endAdornment,style:{paddingRight:14}},{props:({ownerState:a})=>a.multiline,style:{padding:"16.5px 14px"}},{props:({ownerState:a,size:b})=>a.multiline&&"small"===b,style:{padding:"8.5px 14px"}}]}})),u=(0,h.Ay)(function(a){let{children:b,classes:c,className:e,label:f,notched:g,...h}=a,i=null!=f&&""!==f,m={...a,notched:g,withLabel:i};return(0,j.jsx)(k,{"aria-hidden":!0,className:e,ownerState:m,...h,children:(0,j.jsx)(l,{ownerState:m,children:i?(0,j.jsx)("span",{children:f}):d||(d=(0,j.jsx)("span",{className:"notranslate","aria-hidden":!0,children:"​"}))})})},{name:"MuiOutlinedInput",slot:"NotchedOutline",overridesResolver:(a,b)=>b.notchedOutline})((0,i.A)(({theme:a})=>{let b="light"===a.palette.mode?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{borderColor:a.vars?`rgba(${a.vars.palette.common.onBackgroundChannel} / 0.23)`:b}})),v=(0,h.Ay)(r.ck,{name:"MuiOutlinedInput",slot:"Input",overridesResolver:r.Oj})((0,i.A)(({theme:a})=>({padding:"16.5px 14px",...!a.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:"light"===a.palette.mode?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:"light"===a.palette.mode?null:"#fff",caretColor:"light"===a.palette.mode?null:"#fff",borderRadius:"inherit"}},...a.vars&&{"&:-webkit-autofill":{borderRadius:"inherit"},[a.getColorSchemeSelector("dark")]:{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}},variants:[{props:{size:"small"},style:{padding:"8.5px 14px"}},{props:({ownerState:a})=>a.multiline,style:{padding:0}},{props:({ownerState:a})=>a.startAdornment,style:{paddingLeft:0}},{props:({ownerState:a})=>a.endAdornment,style:{paddingRight:0}}]}))),w=e.forwardRef(function(a,b){let c=(0,p.b)({props:a,name:"MuiOutlinedInput"}),{components:d={},fullWidth:g=!1,inputComponent:h="input",label:i,multiline:k=!1,notched:l,slots:o={},slotProps:w={},type:x="text",...y}=c,z=(a=>{let{classes:b}=a,c=(0,f.A)({root:["root"],notchedOutline:["notchedOutline"],input:["input"]},q.v,b);return{...b,...c}})(c),A=(0,m.A)(),B=(0,n.A)({props:c,muiFormControl:A,states:["color","disabled","error","focused","hiddenLabel","size","required"]}),C={...c,color:B.color||"primary",disabled:B.disabled,error:B.error,focused:B.focused,formControl:A,fullWidth:g,hiddenLabel:B.hiddenLabel,multiline:k,size:B.size,type:x},D=o.root??d.Root??t,E=o.input??d.Input??v,[F,G]=(0,s.A)("notchedOutline",{elementType:u,className:z.notchedOutline,shouldForwardComponentProp:!0,ownerState:C,externalForwardedProps:{slots:o,slotProps:w},additionalProps:{label:null!=i&&""!==i&&B.required?(0,j.jsxs)(e.Fragment,{children:[i," ","*"]}):i}});return(0,j.jsx)(r.Ay,{slots:{root:D,input:E},slotProps:w,renderSuffix:a=>(0,j.jsx)(F,{...G,notched:void 0!==l?l:!!(a.startAdornment||a.filled||a.focused)}),fullWidth:g,inputComponent:h,multiline:k,ref:b,type:x,...y,classes:{...z,notchedOutline:null}})});w.muiName="Input";let x=w},65012:(a,b,c)=>{c.d(b,{A:()=>p});var d=c(38301),e=c(43249),f=c(2783),g=c(18168),h=c(6636),i=c(20385),j=c(49565),k=c(29565),l=c(33105);function m(a){return(0,l.Ay)("MuiBackdrop",a)}(0,k.A)("MuiBackdrop",["root","invisible"]);var n=c(21124);let o=(0,g.Ay)("div",{name:"MuiBackdrop",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,c.invisible&&b.invisible]}})({position:"fixed",display:"flex",alignItems:"center",justifyContent:"center",right:0,bottom:0,top:0,left:0,backgroundColor:"rgba(0, 0, 0, 0.5)",WebkitTapHighlightColor:"transparent",variants:[{props:{invisible:!0},style:{backgroundColor:"transparent"}}]}),p=d.forwardRef(function(a,b){let c=(0,h.b)({props:a,name:"MuiBackdrop"}),{children:d,className:g,component:k="div",invisible:l=!1,open:p,components:q={},componentsProps:r={},slotProps:s={},slots:t={},TransitionComponent:u,transitionDuration:v,...w}=c,x={...c,component:k,invisible:l},y=(a=>{let{classes:b,invisible:c}=a;return(0,f.A)({root:["root",c&&"invisible"]},m,b)})(x),z={slots:{transition:u,root:q.Root,...t},slotProps:{...r,...s}},[A,B]=(0,i.A)("root",{elementType:o,externalForwardedProps:z,className:(0,e.A)(y.root,g),ownerState:x}),[C,D]=(0,i.A)("transition",{elementType:j.A,externalForwardedProps:z,ownerState:x});return(0,n.jsx)(C,{in:p,timeout:v,...w,...D,children:(0,n.jsx)(A,{"aria-hidden":!0,...B,classes:y,ref:b,children:d})})})},65603:(a,b,c)=>{c.d(b,{A:()=>d});let d=c(55973).A},65823:(a,b,c)=>{c.d(b,{Ay:()=>s});var d=c(45430),e=c(57188),f=c(38301),g=c.n(f),h=c(23312),i=c.n(h);let j={disabled:!1};var k=c(35153),l="unmounted",m="exited",n="entering",o="entered",p="exiting",q=function(a){function b(b,c){var d,e=a.call(this,b,c)||this,f=c&&!c.isMounting?b.enter:b.appear;return e.appearStatus=null,b.in?f?(d=m,e.appearStatus=n):d=o:d=b.unmountOnExit||b.mountOnEnter?l:m,e.state={status:d},e.nextCallback=null,e}(0,e.A)(b,a),b.getDerivedStateFromProps=function(a,b){return a.in&&b.status===l?{status:m}:null};var c=b.prototype;return c.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},c.componentDidUpdate=function(a){var b=null;if(a!==this.props){var c=this.state.status;this.props.in?c!==n&&c!==o&&(b=n):(c===n||c===o)&&(b=p)}this.updateStatus(!1,b)},c.componentWillUnmount=function(){this.cancelNextCallback()},c.getTimeouts=function(){var a,b,c,d=this.props.timeout;return a=b=c=d,null!=d&&"number"!=typeof d&&(a=d.exit,b=d.enter,c=void 0!==d.appear?d.appear:b),{exit:a,enter:b,appear:c}},c.updateStatus=function(a,b){if(void 0===a&&(a=!1),null!==b)if(this.cancelNextCallback(),b===n){if(this.props.unmountOnExit||this.props.mountOnEnter){var c=this.props.nodeRef?this.props.nodeRef.current:i().findDOMNode(this);c&&c.scrollTop}this.performEnter(a)}else this.performExit();else this.props.unmountOnExit&&this.state.status===m&&this.setState({status:l})},c.performEnter=function(a){var b=this,c=this.props.enter,d=this.context?this.context.isMounting:a,e=this.props.nodeRef?[d]:[i().findDOMNode(this),d],f=e[0],g=e[1],h=this.getTimeouts(),k=d?h.appear:h.enter;if(!a&&!c||j.disabled)return void this.safeSetState({status:o},function(){b.props.onEntered(f)});this.props.onEnter(f,g),this.safeSetState({status:n},function(){b.props.onEntering(f,g),b.onTransitionEnd(k,function(){b.safeSetState({status:o},function(){b.props.onEntered(f,g)})})})},c.performExit=function(){var a=this,b=this.props.exit,c=this.getTimeouts(),d=this.props.nodeRef?void 0:i().findDOMNode(this);if(!b||j.disabled)return void this.safeSetState({status:m},function(){a.props.onExited(d)});this.props.onExit(d),this.safeSetState({status:p},function(){a.props.onExiting(d),a.onTransitionEnd(c.exit,function(){a.safeSetState({status:m},function(){a.props.onExited(d)})})})},c.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},c.safeSetState=function(a,b){b=this.setNextCallback(b),this.setState(a,b)},c.setNextCallback=function(a){var b=this,c=!0;return this.nextCallback=function(d){c&&(c=!1,b.nextCallback=null,a(d))},this.nextCallback.cancel=function(){c=!1},this.nextCallback},c.onTransitionEnd=function(a,b){this.setNextCallback(b);var c=this.props.nodeRef?this.props.nodeRef.current:i().findDOMNode(this),d=null==a&&!this.props.addEndListener;if(!c||d)return void setTimeout(this.nextCallback,0);if(this.props.addEndListener){var e=this.props.nodeRef?[this.nextCallback]:[c,this.nextCallback],f=e[0],g=e[1];this.props.addEndListener(f,g)}null!=a&&setTimeout(this.nextCallback,a)},c.render=function(){var a=this.state.status;if(a===l)return null;var b=this.props,c=b.children,e=(b.in,b.mountOnEnter,b.unmountOnExit,b.appear,b.enter,b.exit,b.timeout,b.addEndListener,b.onEnter,b.onEntering,b.onEntered,b.onExit,b.onExiting,b.onExited,b.nodeRef,(0,d.A)(b,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]));return g().createElement(k.A.Provider,{value:null},"function"==typeof c?c(a,e):g().cloneElement(g().Children.only(c),e))},b}(g().Component);function r(){}q.contextType=k.A,q.propTypes={},q.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:r,onEntering:r,onEntered:r,onExit:r,onExiting:r,onExited:r},q.UNMOUNTED=l,q.EXITED=m,q.ENTERING=n,q.ENTERED=o,q.EXITING=p;let s=q},67101:(a,b,c)=>{c.d(b,{A:()=>u});var d,e=c(38301),f=c(43249),g=c(2783),h=c(6638),i=c(79515),j=c(78104),k=c(49628),l=c(18168),m=c(68333),n=c(6636),o=c(29565),p=c(33105);function q(a){return(0,p.Ay)("MuiInputAdornment",a)}let r=(0,o.A)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]);var s=c(21124);let t=(0,l.Ay)("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,b[`position${(0,h.A)(c.position)}`],!0===c.disablePointerEvents&&b.disablePointerEvents,b[c.variant]]}})((0,m.A)(({theme:a})=>({display:"flex",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:(a.vars||a).palette.action.active,variants:[{props:{variant:"filled"},style:{[`&.${r.positionStart}&:not(.${r.hiddenLabel})`]:{marginTop:16}}},{props:{position:"start"},style:{marginRight:8}},{props:{position:"end"},style:{marginLeft:8}},{props:{disablePointerEvents:!0},style:{pointerEvents:"none"}}]}))),u=e.forwardRef(function(a,b){let c=(0,n.b)({props:a,name:"MuiInputAdornment"}),{children:l,className:m,component:o="div",disablePointerEvents:p=!1,disableTypography:r=!1,position:u,variant:v,...w}=c,x=(0,k.A)()||{},y=v;v&&x.variant,x&&!y&&(y=x.variant);let z={...c,hiddenLabel:x.hiddenLabel,size:x.size,disablePointerEvents:p,position:u,variant:y},A=(a=>{let{classes:b,disablePointerEvents:c,hiddenLabel:d,position:e,size:f,variant:i}=a,j={root:["root",c&&"disablePointerEvents",e&&`position${(0,h.A)(e)}`,i,d&&"hiddenLabel",f&&`size${(0,h.A)(f)}`]};return(0,g.A)(j,q,b)})(z);return(0,s.jsx)(j.A.Provider,{value:null,children:(0,s.jsx)(t,{as:o,ownerState:z,className:(0,f.A)(A.root,m),ref:b,...w,children:"string"!=typeof l||r?(0,s.jsxs)(e.Fragment,{children:["start"===u?d||(d=(0,s.jsx)("span",{className:"notranslate","aria-hidden":!0,children:"​"})):null,l]}):(0,s.jsx)(i.default,{color:"textSecondary",children:l})})})})},67934:(a,b,c)=>{c.d(b,{A:()=>e});var d=c(38301);let e=function(a,b){return d.isValidElement(a)&&-1!==b.indexOf(a.type.muiName??a.type?._payload?.value?.muiName)}},74907:(a,b,c)=>{c.d(b,{A:()=>d});let d=c(79257).A},78104:(a,b,c)=>{c.d(b,{A:()=>d});let d=c(38301).createContext(void 0)},79257:(a,b,c)=>{c.d(b,{A:()=>d});function d(a,b=166){let c;function e(...d){let f=()=>{a.apply(this,d)};clearTimeout(c),c=setTimeout(f,b)}return e.clear=()=>{clearTimeout(c)},e}},82605:(a,b,c)=>{c.d(b,{A:()=>r});var d=c(38301),e=c(43249),f=c(2783),g=c(18168),h=c(6636),i=c(49055),j=c(6638),k=c(67934),l=c(78104),m=c(29565),n=c(33105);function o(a){return(0,n.Ay)("MuiFormControl",a)}(0,m.A)("MuiFormControl",["root","marginNone","marginNormal","marginDense","fullWidth","disabled"]);var p=c(21124);let q=(0,g.Ay)("div",{name:"MuiFormControl",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,b[`margin${(0,j.A)(c.margin)}`],c.fullWidth&&b.fullWidth]}})({display:"inline-flex",flexDirection:"column",position:"relative",minWidth:0,padding:0,margin:0,border:0,verticalAlign:"top",variants:[{props:{margin:"normal"},style:{marginTop:16,marginBottom:8}},{props:{margin:"dense"},style:{marginTop:8,marginBottom:4}},{props:{fullWidth:!0},style:{width:"100%"}}]}),r=d.forwardRef(function(a,b){let c,g=(0,h.b)({props:a,name:"MuiFormControl"}),{children:m,className:n,color:r="primary",component:s="div",disabled:t=!1,error:u=!1,focused:v,fullWidth:w=!1,hiddenLabel:x=!1,margin:y="none",required:z=!1,size:A="medium",variant:B="outlined",...C}=g,D={...g,color:r,component:s,disabled:t,error:u,fullWidth:w,hiddenLabel:x,margin:y,required:z,size:A,variant:B},E=(a=>{let{classes:b,margin:c,fullWidth:d}=a,e={root:["root","none"!==c&&`margin${(0,j.A)(c)}`,d&&"fullWidth"]};return(0,f.A)(e,o,b)})(D),[F,G]=d.useState(()=>{let a=!1;return m&&d.Children.forEach(m,b=>{if(!(0,k.A)(b,["Input","Select"]))return;let c=(0,k.A)(b,["Select"])?b.props.input:b;c&&(0,i.gr)(c.props)&&(a=!0)}),a}),[H,I]=d.useState(()=>{let a=!1;return m&&d.Children.forEach(m,b=>{(0,k.A)(b,["Input","Select"])&&((0,i.lq)(b.props,!0)||(0,i.lq)(b.props.inputProps,!0))&&(a=!0)}),a}),[J,K]=d.useState(!1);t&&J&&K(!1);let L=void 0===v||t?J:v;d.useRef(!1);let M=d.useCallback(()=>{I(!0)},[]),N=d.useCallback(()=>{I(!1)},[]),O=d.useMemo(()=>({adornedStart:F,setAdornedStart:G,color:r,disabled:t,error:u,filled:H,focused:L,fullWidth:w,hiddenLabel:x,size:A,onBlur:()=>{K(!1)},onFocus:()=>{K(!0)},onEmpty:N,onFilled:M,registerEffect:c,required:z,variant:B}),[F,r,t,u,H,L,w,x,c,N,M,z,A,B]);return(0,p.jsx)(l.A.Provider,{value:O,children:(0,p.jsx)(q,{as:s,ownerState:D,className:(0,e.A)(E.root,n),ref:b,...C,children:m})})})},83738:(a,b,c)=>{c.d(b,{A:()=>d});function d({props:a,states:b,muiFormControl:c}){return b.reduce((b,d)=>(b[d]=a[d],c&&void 0===a[d]&&(b[d]=c[d]),b),{})}},88679:(a,b,c)=>{c.d(b,{A:()=>g,B:()=>f});var d=c(29565),e=c(33105);function f(a){return(0,e.Ay)("MuiInput",a)}let g={...c(13763).A,...(0,d.A)("MuiInput",["root","underline","input"])}},89490:(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(55470),j=c(29565),k=c(33105);function l(a){return(0,k.Ay)("MuiList",a)}(0,j.A)("MuiList",["root","padding","dense","subheader"]);var m=c(21124);let n=(0,g.Ay)("ul",{name:"MuiList",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,!c.disablePadding&&b.padding,c.dense&&b.dense,c.subheader&&b.subheader]}})({listStyle:"none",margin:0,padding:0,position:"relative",variants:[{props:({ownerState:a})=>!a.disablePadding,style:{paddingTop:8,paddingBottom:8}},{props:({ownerState:a})=>a.subheader,style:{paddingTop:0}}]}),o=d.forwardRef(function(a,b){let c=(0,h.b)({props:a,name:"MuiList"}),{children:g,className:j,component:k="ul",dense:o=!1,disablePadding:p=!1,subheader:q,...r}=c,s=d.useMemo(()=>({dense:o}),[o]),t={...c,component:k,dense:o,disablePadding:p},u=(a=>{let{classes:b,disablePadding:c,dense:d,subheader:e}=a;return(0,f.A)({root:["root",!c&&"padding",d&&"dense",e&&"subheader"]},l,b)})(t);return(0,m.jsx)(i.A.Provider,{value:s,children:(0,m.jsxs)(n,{as:k,className:(0,e.A)(u.root,j),ref:b,ownerState:t,...r,children:[q,g]})})})},91003:(a,b,c)=>{c.d(b,{A:()=>g,v:()=>f});var d=c(29565),e=c(33105);function f(a){return(0,e.Ay)("MuiOutlinedInput",a)}let g={...c(13763).A,...(0,d.A)("MuiOutlinedInput",["root","notchedOutline","input"])}},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"])},94633:(a,b,c)=>{c.d(b,{A:()=>h});var d=c(67943),e=c(99829),f=c(76240),g=c(66469);let h=function(a){let{elementType:b,externalSlotProps:c,ownerState:h,skipResolvingSlotProps:i=!1,...j}=a,k=i?{}:(0,g.A)(c,h),{props:l,internalRef:m}=(0,f.A)({...j,externalSlotProps:k}),n=(0,d.A)(m,k?.ref,a.additionalProps?.ref);return(0,e.A)(b,{...l,ref:n},h)}},97896:(a,b,c)=>{c.d(b,{A:()=>d});let d=c(46757).A},98256:(a,b,c)=>{c.d(b,{A:()=>y});var d=c(38301),e=c(2783),f=c(43249),g=c(83738),h=c(49628),i=c(6638),j=c(18168),k=c(68333),l=c(54716),m=c(6636),n=c(29565),o=c(33105);function p(a){return(0,o.Ay)("MuiFormLabel",a)}let q=(0,n.A)("MuiFormLabel",["root","colorSecondary","focused","disabled","error","filled","required","asterisk"]);var r=c(21124);let s=(0,j.Ay)("label",{name:"MuiFormLabel",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,"secondary"===c.color&&b.colorSecondary,c.filled&&b.filled]}})((0,k.A)(({theme:a})=>({color:(a.vars||a).palette.text.secondary,...a.typography.body1,lineHeight:"1.4375em",padding:0,position:"relative",variants:[...Object.entries(a.palette).filter((0,l.A)()).map(([b])=>({props:{color:b},style:{[`&.${q.focused}`]:{color:(a.vars||a).palette[b].main}}})),{props:{},style:{[`&.${q.disabled}`]:{color:(a.vars||a).palette.text.disabled},[`&.${q.error}`]:{color:(a.vars||a).palette.error.main}}}]}))),t=(0,j.Ay)("span",{name:"MuiFormLabel",slot:"Asterisk",overridesResolver:(a,b)=>b.asterisk})((0,k.A)(({theme:a})=>({[`&.${q.error}`]:{color:(a.vars||a).palette.error.main}}))),u=d.forwardRef(function(a,b){let c=(0,m.b)({props:a,name:"MuiFormLabel"}),{children:d,className:j,color:k,component:l="label",disabled:n,error:o,filled:q,focused:u,required:v,...w}=c,x=(0,h.A)(),y=(0,g.A)({props:c,muiFormControl:x,states:["color","required","focused","disabled","error","filled"]}),z={...c,color:y.color||"primary",component:l,disabled:y.disabled,error:y.error,filled:y.filled,focused:y.focused,required:y.required},A=(a=>{let{classes:b,color:c,focused:d,disabled:f,error:g,filled:h,required:j}=a,k={root:["root",`color${(0,i.A)(c)}`,f&&"disabled",g&&"error",h&&"filled",d&&"focused",j&&"required"],asterisk:["asterisk",g&&"error"]};return(0,e.A)(k,p,b)})(z);return(0,r.jsxs)(s,{as:l,ownerState:z,className:(0,f.A)(A.root,j),ref:b,...w,children:[d,y.required&&(0,r.jsxs)(t,{ownerState:z,"aria-hidden":!0,className:A.asterisk,children:[" ","*"]})]})});var v=c(41126);function w(a){return(0,o.Ay)("MuiInputLabel",a)}(0,n.A)("MuiInputLabel",["root","focused","disabled","error","required","asterisk","formControl","sizeSmall","shrink","animated","standard","filled","outlined"]);let x=(0,j.Ay)(u,{shouldForwardProp:a=>(0,v.A)(a)||"classes"===a,name:"MuiInputLabel",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[{[`& .${q.asterisk}`]:b.asterisk},b.root,c.formControl&&b.formControl,"small"===c.size&&b.sizeSmall,c.shrink&&b.shrink,!c.disableAnimation&&b.animated,c.focused&&b.focused,b[c.variant]]}})((0,k.A)(({theme:a})=>({display:"block",transformOrigin:"top left",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%",variants:[{props:({ownerState:a})=>a.formControl,style:{position:"absolute",left:0,top:0,transform:"translate(0, 20px) scale(1)"}},{props:{size:"small"},style:{transform:"translate(0, 17px) scale(1)"}},{props:({ownerState:a})=>a.shrink,style:{transform:"translate(0, -1.5px) scale(0.75)",transformOrigin:"top left",maxWidth:"133%"}},{props:({ownerState:a})=>!a.disableAnimation,style:{transition:a.transitions.create(["color","transform","max-width"],{duration:a.transitions.duration.shorter,easing:a.transitions.easing.easeOut})}},{props:{variant:"filled"},style:{zIndex:1,pointerEvents:"none",transform:"translate(12px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"}},{props:{variant:"filled",size:"small"},style:{transform:"translate(12px, 13px) scale(1)"}},{props:({variant:a,ownerState:b})=>"filled"===a&&b.shrink,style:{userSelect:"none",pointerEvents:"auto",transform:"translate(12px, 7px) scale(0.75)",maxWidth:"calc(133% - 24px)"}},{props:({variant:a,ownerState:b,size:c})=>"filled"===a&&b.shrink&&"small"===c,style:{transform:"translate(12px, 4px) scale(0.75)"}},{props:{variant:"outlined"},style:{zIndex:1,pointerEvents:"none",transform:"translate(14px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"}},{props:{variant:"outlined",size:"small"},style:{transform:"translate(14px, 9px) scale(1)"}},{props:({variant:a,ownerState:b})=>"outlined"===a&&b.shrink,style:{userSelect:"none",pointerEvents:"auto",maxWidth:"calc(133% - 32px)",transform:"translate(14px, -9px) scale(0.75)"}}]}))),y=d.forwardRef(function(a,b){let c=(0,m.b)({name:"MuiInputLabel",props:a}),{disableAnimation:d=!1,margin:j,shrink:k,variant:l,className:n,...o}=c,p=(0,h.A)(),q=k;void 0===q&&p&&(q=p.filled||p.focused||p.adornedStart);let s=(0,g.A)({props:c,muiFormControl:p,states:["size","variant","required","focused"]}),t={...c,disableAnimation:d,formControl:p,shrink:q,size:s.size,variant:s.variant,required:s.required,focused:s.focused},u=(a=>{let{classes:b,formControl:c,size:d,shrink:f,disableAnimation:g,variant:h,required:j}=a,k={root:["root",c&&"formControl",!g&&"animated",f&&"shrink",d&&"normal"!==d&&`size${(0,i.A)(d)}`,h],asterisk:[j&&"asterisk"]},l=(0,e.A)(k,w,b);return{...b,...l}})(t);return(0,r.jsx)(x,{"data-shrink":q,ref:b,className:(0,f.A)(u.root,n),...o,ownerState:t,classes:u})})}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=6826,exports.ids=[6826],exports.modules={8665:(a,b,c)=>{c.d(b,{ED:()=>i,Ws:()=>j,jD:()=>g});var d=c(73496),e=c.n(d);let f=(0,c(50846).h)("backend/utils/registryClient"),g="https://registry.modelcontextprotocol.io";async function h(a,b){let c=new AbortController,d=setTimeout(()=>c.abort(),b);try{let b=await fetch(a,{headers:{Accept:"application/json"},signal:c.signal,cache:"no-store"});return{status:b.status,body:await b.text()}}finally{clearTimeout(d)}}async function i(a,b){try{return await new Promise((c,d)=>{let f=e().connect(a.origin),g=!1,h=a=>{g||(g=!0,a(),f.close())};f.setTimeout(b,()=>h(()=>d(Error(`HTTP/2 session timed out after ${b}ms`)))),f.on("error",a=>h(()=>d(a)));let i=f.request({":method":"GET",":path":a.pathname+a.search,accept:"application/json"});i.setTimeout(b,()=>h(()=>d(Error(`HTTP/2 request timed out after ${b}ms`)))),i.on("error",a=>h(()=>d(a)));let j=0,k="";i.setEncoding("utf8"),i.on("response",a=>{j=Number(a[":status"]||0)}),i.on("data",a=>{k+=a}),i.on("end",()=>h(()=>c({status:j,body:k}))),i.end()})}catch(c){return f.warn("HTTP/2 request to registry failed, retrying over HTTP/1.1",c instanceof Error?c.message:c),await h(a,b)}}async function j(a,b){let c=await i(a,b);if(c.status<200||c.status>=300)throw Error(`MCP Registry responded with status ${c.status}`);return JSON.parse(c.body)}},25250:(a,b,c)=>{c.d(b,{AH:()=>f,O$:()=>p,XQ:()=>q,Yr:()=>m,cy:()=>s,jg:()=>t,nO:()=>n,vf:()=>o,zz:()=>r});let d={npm:"npx",pypi:"uvx",oci:"docker",nuget:"dnx"},e={npm:"npm",pypi:"PyPI",oci:"Docker",nuget:"NuGet",mcpb:"MCPB",cargo:"Cargo"};function f(a){var b;let c=[];for(let f of a.packages??[])(function(a){if(!a.identifier||!d[a.registryType]&&!a.runtimeHint)return!1;let b=a.transport?.type;return!b||"stdio"===b})(f)&&c.push({kind:"package",label:`${e[b=f.registryType]||b}: ${f.identifier}`,pkg:f});for(let b of a.remotes??[])b.url&&("streamable-http"===b.type||"sse"===b.type)&&c.push({kind:"remote",label:`Remote (${"sse"===b.type?"SSE":"Streamable HTTP"}): ${b.url}`,remote:b});return c}let g=new Set(["mcp","server","mcp-server","mcpserver"]);function h(a){return(function(a){let b=a.indexOf("/"),c=b>=0?a.slice(0,b):"",d=b>=0?a.slice(b+1):a;if(!g.has(d.toLowerCase())||!c)return d;let e=c.split(".").pop()||"";return e?`${e}-${d}`:d})(a).replace(/[^a-zA-Z0-9_-]+/g,"-").replace(/^-+|-+$/g,"")||"mcp-server"}function i(a){let b=a.value??a.default;return"named"===a.type?a.name?void 0!==b&&""!==b?[a.name,b]:a.isRequired&&a.valueHint?[a.name,`<${a.valueHint}>`]:a.isRequired?[a.name]:[]:[]:void 0!==b&&""!==b?[b]:a.isRequired?[`<${a.valueHint||"value"}>`]:[]}function j(a){return(a??[]).flatMap(i)}function k(a){return{name:h(a.name),disabled:!1,autoApprove:[],env:{},_buildCommand:"",_installCommand:""}}function l(a){return a.version?`${a.identifier}@${a.version}`:a.identifier}function m(a,b){return"package"===b.kind?function(a,b){let c,e=b.runtimeHint||d[b.registryType],f=j(b.packageArguments),g=j(b.runtimeArguments),h=function(a){let b={};for(let c of a??[]){if(!c.name)continue;let a=c.value??c.default??"";b[c.name]=c.isSecret?{value:a,metadata:{isSecret:!0}}:a}return b}(b.environmentVariables);switch(b.registryType){case"npm":c=[...g,"-y",l(b),...f];break;case"pypi":c=[...g,b.version?`${b.identifier}==${b.version}`:b.identifier,...f];break;case"oci":{let a=Object.keys(h).flatMap(a=>["-e",a]);c=[..."run"===g[0]?[]:["run","-i","--rm"],...g,...a,function(a){let b=a.identifier.split("/").pop()||a.identifier;return!(b.includes(":")||b.includes("@"))&&a.version?`${a.identifier}:${a.version}`:a.identifier}(b),...f];break}case"nuget":c=[...g,l(b),"--yes",...f];break;default:c=[...g,l(b),...f]}return{...k(a),transport:"stdio",command:e,args:c,env:h,rootPath:"."}}(a,b.pkg):function(a,b){let c={};for(let a of b.headers??[])a.name&&(c[a.name]=a.value??a.default??"");let d=k(a);return{...d,transport:"sse"===b.type?"sse":"streamable",serverUrl:b.url,headers:c,rootPath:`mcp-servers/${d.name}`}}(a,b.remote)}function n(a){return"active"===a}function o(a){let b=a?._meta?.["io.modelcontextprotocol.registry/official"]?.status;return"string"==typeof b&&b.length>0?b:"unverified"}function p(a,b,c,d){let e=m(b,c),f=e.transport??"stdio";return{registryName:a,resolvedName:b.name,serverName:e.name??h(b.name),transport:f,...e.command?{command:e.command}:{},...Array.isArray(e.args)?{args:e.args}:{},...e.serverUrl?{serverUrl:e.serverUrl}:{},requiredEnvNames:"package"===c.kind?(c.pkg.environmentVariables??[]).filter(a=>a.isRequired&&a.name).map(a=>a.name):(c.remote.headers??[]).filter(a=>a.isRequired&&a.name).map(a=>a.name),verificationStatus:d}}function q(a){let b;try{b=new URL(a)}catch{return null}let c=b.searchParams.get("q");if(c)return`/v0.1/servers?search=${encodeURIComponent(c)}&version=latest&limit=1`;if(/^\/v[\d.]+\/servers\/[^/]+\/versions\/[^/]+$/.test(b.pathname))return b.pathname;let d=b.pathname.match(/^\/v[\d.]+\/servers\/([^/]+)(?:\/versions)?\/?$/);if(d){let a=decodeURIComponent(d[1]);return`/v0.1/servers?search=${encodeURIComponent(a)}&version=latest&limit=1`}return null}function r(a){return a?.servers&&a.servers.length>0?a.servers[0]:a?.server?.name?a:null}function s(a,b){if(!b||0===Object.keys(b).length)return a;let c={...a.env??{}};for(let[a,d]of Object.entries(b)){let b=c[a];b&&"object"==typeof b&&b.metadata?.isSecret?c[a]={value:d,metadata:{isSecret:!0}}:c[a]=d}return{...a,env:c}}function t(a,b){return"package"===a.kind?(a.pkg.environmentVariables??[]).filter(a=>a.isRequired&&!(a.value??a.default)&&!b?.[a.name]).map(a=>a.name):(a.remote.headers??[]).filter(a=>a.isRequired&&!(a.value??a.default)).map(a=>a.name)}}};
@@ -0,0 +1,6 @@
1
+ "use strict";exports.id=6901,exports.ids=[6901],exports.modules={2560:(a,b,c)=>{c.d(b,{Xk:()=>e});var d=c(38301);function e(a,b){let[c,e]=(0,d.useState)(()=>b);return[c,(0,d.useCallback)(a=>{e(b=>"function"==typeof a?a(b):a)},[a])]}},7329:(a,b,c)=>{function d(a,b){let c=[],d=new Map;for(let e of a){let{key:a,label:f}=b(e),g=d.get(a);g||(g={key:a,label:f,items:[]},d.set(a,g),c.push(g)),g.items.push(e)}return c}function e(a){let b=(a??"").trim().charAt(0).toUpperCase();return b>="A"&&b<="Z"?{key:`letter:${b}`,label:b}:{key:"letter:#",label:"#"}}function f(a,b,c="Ungrouped"){let d=new Map,e=[];for(let c of a){let a=b(c)?.trim();if(a){let b=d.get(a);b?b.push(c):d.set(a,[c])}else e.push(c)}let g=Array.from(d.keys()).sort((a,b)=>a.localeCompare(b)).map(a=>({key:`folder:${a}`,label:a,items:d.get(a)}));return e.length>0&&g.push({key:"folder:__ungrouped__",label:c,items:e}),g}function g(a,b){let c=new Set;for(let d of a){let a=b(d)?.trim();a&&c.add(a)}return Array.from(c).sort((a,b)=>a.localeCompare(b))}c.d(b,{Az:()=>d,Je:()=>f,po:()=>e,yF:()=>g})},13516:(a,b,c)=>{c.d(b,{G:()=>d});let d={LOG_LEVEL:3,INCLUDE_TOOL_CALLS_IN_RESPONSE:!0,ENABLE_EXECUTION_TRACKER:!1}},32631:(a,b,c)=>{c.d(b,{D:()=>h}),c(21124);var d=c(38301),e=c(19815);c(84040),c(9718);let f=(0,e.h)("frontend/contexts/ThemeContext"),g=(0,d.createContext)(void 0),h=()=>{let a=(0,d.useContext)(g);if(!a)throw f.error("useTheme hook used outside of ThemeProvider"),Error("useTheme must be used within a ThemeProvider");return f.debug("useTheme hook accessed"),a}},32720:(a,b,c)=>{c.d(b,{A:()=>B});var d=c(21124),e=c(38301),f=c(40512),g=c(83899),h=c(52327),i=c(81637),j=c(43312),k=c(44079),l=c(37674),m=c(41893),n=c(88745),o=c(8521),p=c(79515),q=c(89490),r=c(75983),s=c(50553),t=c(84233),u=c(19925),v=c(68730),w=c(30717),x=c(98810),y=c(52399),z=c(91314);let A=(0,c(19815).h)("frontend/components/shared/FolderPickerDialog"),B=({open:a,title:b="Choose a folder",selectFiles:c=!1,initialPath:B,onClose:C,onSelect:D})=>{let[E,F]=(0,e.useState)(null),[G,H]=(0,e.useState)(""),[I,J]=(0,e.useState)(!1),[K,L]=(0,e.useState)(null),M=(0,e.useCallback)(async a=>{J(!0),L(null);try{let b=a?`?path=${encodeURIComponent(a)}`:"",c=await fetch(`/api/browse${b}`),d=await c.json();if(!c.ok||d.error)return void L(d.error||`HTTP ${c.status}`);F(d),H(d.path)}catch(a){A.warn("Browse failed",a),L("Could not reach the backend to browse folders.")}finally{J(!1)}},[]);(0,e.useEffect)(()=>{a?M(B||void 0):(F(null),L(null))},[a,B,M]);let N=a=>{D(a),C()};return(0,d.jsxs)(f.A,{open:a,onClose:C,maxWidth:"sm",fullWidth:!0,children:[(0,d.jsx)(g.A,{children:b}),(0,d.jsxs)(h.A,{dividers:!0,sx:{display:"flex",flexDirection:"column",gap:1.5},children:[(0,d.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,d.jsx)(j.A,{title:"Up one folder",children:(0,d.jsx)("span",{children:(0,d.jsx)(k.A,{size:"small",disabled:!E?.parent||I,onClick:()=>E?.parent&&void M(E.parent),children:(0,d.jsx)(y.A,{fontSize:"small"})})})}),(0,d.jsx)(j.A,{title:"Home folder",children:(0,d.jsx)("span",{children:(0,d.jsx)(k.A,{size:"small",disabled:I,onClick:()=>void M(),children:(0,d.jsx)(z.A,{fontSize:"small"})})})}),(0,d.jsx)(l.A,{fullWidth:!0,size:"small",value:G,onChange:a=>H(a.target.value),onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),M(G))},placeholder:"Type a path and press Enter"})]}),E&&E.drives.length>0&&(0,d.jsx)(i.default,{sx:{display:"flex",gap:.75,flexWrap:"wrap"},children:E.drives.map(a=>(0,d.jsx)(m.A,{label:a,size:"small",variant:E.path.toLowerCase().startsWith(a.toLowerCase())?"filled":"outlined",onClick:()=>void M(a)},a))}),K&&(0,d.jsx)(n.A,{severity:"error",children:K}),(0,d.jsxs)(i.default,{sx:{minHeight:240,maxHeight:"45vh",overflow:"auto",border:1,borderColor:"divider",borderRadius:1},children:[I&&(0,d.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",py:4},children:(0,d.jsx)(o.default,{size:24})}),!I&&E&&0===E.entries.length&&(0,d.jsx)(p.default,{variant:"body2",color:"text.secondary",sx:{p:2},children:"This folder is empty."}),!I&&(0,d.jsx)(q.A,{dense:!0,disablePadding:!0,children:E?.entries.map(a=>(0,d.jsxs)(r.A,{disabled:!a.isDirectory&&!c,onClick:()=>a.isDirectory?void M(a.path):N(a.path),children:[(0,d.jsx)(s.A,{sx:{minWidth:34},children:a.isDirectory?(0,d.jsx)(w.A,{fontSize:"small",color:"primary"}):(0,d.jsx)(x.A,{fontSize:"small"})}),(0,d.jsx)(t.A,{primary:a.name,primaryTypographyProps:{noWrap:!0}})]},a.path))})]})]}),(0,d.jsxs)(u.A,{children:[(0,d.jsx)(v.A,{onClick:C,children:"Cancel"}),(0,d.jsx)(v.A,{variant:"contained",disabled:!E||I,onClick:()=>E&&N(E.path),children:"Select this folder"})]})]})}},33799:(a,b,c)=>{c.d(b,{b:()=>f,c:()=>g});var d=c(50648);async function e(a,b){try{let c=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!c.ok||!c.body)return null;let e=null;return await (0,d.z)(c,a=>{"stdout"===a.type||"stderr"===a.type?b(a.data):"result"===a.type&&(e={success:a.success,output:a.commandOutput??""})}),e}catch(a){return console.error("Error streaming git command:",a),null}}let f=async(a,b,c)=>{if(c){let d=await e({action:"installStream",savePath:a,installCommand:b},c);if(d)return{success:d.success,message:d.success?{type:"success",text:"Dependencies installed successfully. You can now build the server."}:{type:"error",text:"Error installing dependencies. You can still try to build the server."},output:d.output||"No output was returned from the installation process."}}try{let c=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"install",savePath:a,installCommand:b})}),d=await c.json();if(!c.ok)throw Error(d.error||"Failed to install dependencies");return{success:!0,message:{type:"success",text:"Dependencies installed successfully. You can now build the server."},output:d.commandOutput||"No output was returned from the installation process."}}catch(a){return console.error("Error installing dependencies:",a),{success:!1,message:{type:"error",text:`Error installing dependencies: ${a.message||"Unknown error"}. You can still try to build the server.`},output:a instanceof Response?await a.text():a?.message||"Unknown error"}}},g=async(a,b,c)=>{if(c){let d=await e({action:"buildStream",savePath:a,buildCommand:b},c);if(d)return{success:d.success,message:d.success?{type:"success",text:"Server built successfully."}:{type:"error",text:"Error building server."},output:d.output||"No output was returned from the build process."}}try{let c=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"build",savePath:a,buildCommand:b})}),d=await c.json();if(!c.ok)throw Error(d.error||"Failed to build repository");return{success:!0,message:{type:"success",text:"Server built successfully."},output:d.commandOutput||"No output was returned from the build process."}}catch(a){return console.error("Error building server:",a),{success:!1,message:{type:"error",text:`Error building server: ${a.message||"Unknown error"}.`},output:a instanceof Response?await a.text():a?.message||"Unknown error"}}}},46393:(a,b,c)=>{c.d(b,{A:()=>ae});var d=c(21124),e=c(38301),f=c(19815),g=c(84040),h=c(8165),i=c(93083),j=c(65343),k=c(53222),l=c(12033),m=c(91034),n=c(95786),o=c(64956),p=c(55641),q=c(29320),r=c(5748),s=c(38941),t=c(1312),u=c(25750),v=c(61615),w=c(78352),x=c(28055),y=c(41893),z=c(56685),A=c(71756),B=c(91901),C=c(83013);let D=({transport:a,size:b="small"})=>{let c=(()=>{switch(a){case"stdio":return{label:"STDIO",icon:(0,d.jsx)(z.A,{fontSize:"small"}),color:"#1976d2",bgColor:"#e3f2fd"};case"websocket":return{label:"WebSocket",icon:(0,d.jsx)(A.A,{fontSize:"small"}),color:"#2e7d32",bgColor:"#e8f5e8"};case"sse":return{label:"SSE",icon:(0,d.jsx)(B.A,{fontSize:"small"}),color:"#f57c00",bgColor:"#fff3e0"};case"streamable":return{label:"HTTP Stream",icon:(0,d.jsx)(C.A,{fontSize:"small"}),color:"#00796b",bgColor:"#e0f2f1"};default:return{label:"UNKNOWN",icon:(0,d.jsx)(z.A,{fontSize:"small"}),color:"#757575",bgColor:"#f5f5f5"}}})();return(0,d.jsx)(y.A,{icon:c.icon,label:c.label,size:b,sx:{backgroundColor:c.bgColor,color:c.color,fontWeight:500,fontSize:"small"===b?"0.75rem":"0.875rem",height:"small"===b?24:32,"& .MuiChip-icon":{color:c.color}}})};var E=c(40512),F=c(83899),G=c(52327),H=c(19925),I=c(68730),J=c(81637),K=c(79515),L=c(88745),M=c(95587),N=c(77028),O=c(89490),P=c(71439),Q=c(50553),R=c(84233),S=c(72264),T=c(53455),U=c(33799);let V=(0,f.h)("frontend/components/mcp/MCPServerManager/ServerUpdateDialog"),W=({open:a,onClose:b,serverName:c,rootPath:f,installCommand:g,buildCommand:i,enabled:k,updateInfo:l,onToggle:m,onUpdated:n})=>{let[o,p]=(0,e.useState)(null),[q,r]=(0,e.useState)(!1),[s,t]=(0,e.useState)(!1),[w,x]=(0,e.useState)(!1),[z,A]=(0,e.useState)(null),[B,C]=(0,e.useState)({}),[D,W]=(0,e.useState)(""),X=!!(g&&g.trim()),Y=!!(i&&i.trim()),Z=[{key:"stop",label:"Stop server",active:k},{key:"pull",label:"Pull latest changes",active:!0},{key:"install",label:`Install dependencies (${g})`,active:X},{key:"build",label:`Build (${i})`,active:Y},{key:"restart",label:"Restart server",active:k}];(0,e.useEffect)(()=>{a&&(r(!1),t(!1),x(!1),A(null),C({}),W(""))},[a,c]),(0,e.useEffect)(()=>{if(a&&l.remoteUrl&&l.localSha&&l.remoteSha){let a=!1;return(0,T.Qz)(l.remoteUrl,l.localSha,l.remoteSha).then(b=>{a||p(b)}),()=>{a=!0}}p(null)},[a,l.remoteUrl,l.localSha,l.remoteSha]);let $=(0,e.useCallback)((a,b)=>{C(c=>({...c,[a]:b}))},[]),_=(0,e.useCallback)((a,b)=>{W(c=>c+(c?"\n":"")+`--- ${a} ---
2
+ `+(b||"").trim()+"\n")},[]),aa=async()=>{t(!0),A(null),V.info(`Starting update for server ${c}`);let a=(a,b)=>{$(a,"error"),A(b),t(!1)};try{k&&($("stop","running"),await Promise.resolve(m(!1)),$("stop","done")),$("pull","running");let b=await (0,T.Qv)(f);if(!b.success)return void a("pull",b.error||"Failed to pull updates");if(_("Pull",`Updated ${(0,T.Fu)(b.oldSha)} -> ${(0,T.Fu)(b.newSha)}`),$("pull","done"),X){$("install","running");let b=await (0,U.b)(f,g.trim());if(_("Install",b.output),!b.success)return void a("install",b.message.text);$("install","done")}if(Y){$("build","running");let b=await (0,U.c)(f,i.trim());if(_("Build",b.output),!b.success)return void a("build",b.message.text);$("build","done")}k&&($("restart","running"),await Promise.resolve(m(!0)),$("restart","done")),V.info(`Update completed for server ${c}`),x(!0),t(!1),n?.()}catch(a){V.error(`Update failed for server ${c}`,a),A(a.message||"Update failed"),t(!1)}},ab=s||w||Object.keys(B).length>0,ac=l.hasLocalChanges&&!q;return(0,d.jsxs)(E.A,{open:a,onClose:s?void 0:b,maxWidth:"sm",fullWidth:!0,onClick:a=>a.stopPropagation(),children:[(0,d.jsxs)(F.A,{component:"div",sx:{display:"flex",alignItems:"center",gap:1},children:[(0,d.jsx)(u.A,{color:"primary"}),"Update ",c]}),(0,d.jsxs)(G.A,{children:[(0,d.jsxs)(J.default,{sx:{display:"flex",alignItems:"center",gap:1,mb:1,flexWrap:"wrap"},children:[(0,d.jsx)(y.A,{size:"small",label:(0,T.Fu)(l.localSha),sx:{fontFamily:"monospace"}}),(0,d.jsx)(K.default,{variant:"body2",color:"text.secondary",children:"→"}),(0,d.jsx)(y.A,{size:"small",color:"primary",label:(0,T.Fu)(l.remoteSha),sx:{fontFamily:"monospace"}}),l.branch&&"HEAD"!==l.branch&&(0,d.jsxs)(K.default,{variant:"body2",color:"text.secondary",children:["on ",(0,d.jsx)("code",{children:l.branch})]}),o?.behindBy!=null&&(0,d.jsxs)(K.default,{variant:"body2",color:"text.secondary",children:["(",o.behindBy," commit",1===o.behindBy?"":"s"," behind)"]})]}),l.repoRoot&&l.repoRoot.replace(/\\/g,"/").replace(/\/+$/,"").toLowerCase()!==f.replace(/\\/g,"/").replace(/\/+$/,"").toLowerCase()&&(0,d.jsxs)(K.default,{variant:"body2",color:"text.secondary",sx:{mb:1},children:["This server lives inside a larger repository — the update pulls"," ",(0,d.jsx)("code",{children:l.repoRoot})," as a whole (other servers from the same repository are updated along with it)."]}),o&&o.commits.length>0&&!ab&&(0,d.jsx)(J.default,{sx:{mb:2,p:1,borderRadius:1,border:"1px solid",borderColor:"divider",maxHeight:160,overflow:"auto"},children:o.commits.map(a=>(0,d.jsxs)(K.default,{variant:"body2",sx:{fontSize:"0.8rem"},noWrap:!0,title:a.message,children:[(0,d.jsx)("code",{children:a.sha})," ",a.message]},a.sha))}),l.hasLocalChanges&&!ab&&(0,d.jsxs)(L.A,{severity:"warning",sx:{mb:2},children:[(0,d.jsxs)(K.default,{variant:"body2",sx:{mb:1},children:["This repository has local changes to tracked files. Updating will ",(0,d.jsx)("strong",{children:"discard"})," them. Untracked files (e.g. a ",(0,d.jsx)("code",{children:".env"})," you created) and all FLUJO settings for this server are kept."]}),(0,d.jsx)(J.default,{component:"ul",sx:{m:0,pl:3,maxHeight:100,overflow:"auto"},children:l.dirtyFiles.map(a=>(0,d.jsx)("li",{children:(0,d.jsx)(K.default,{variant:"body2",component:"span",sx:{fontFamily:"monospace",fontSize:"0.8rem"},children:a})},a))}),(0,d.jsx)(M.A,{sx:{mt:1},control:(0,d.jsx)(N.A,{size:"small",checked:q,onChange:a=>r(a.target.checked)}),label:(0,d.jsx)(K.default,{variant:"body2",children:"Discard my local changes and update"})})]}),(0,d.jsx)(O.A,{dense:!0,disablePadding:!0,children:Z.filter(a=>a.active).map(a=>(0,d.jsxs)(P.Ay,{disableGutters:!0,sx:{py:.25},children:[(0,d.jsx)(Q.A,{sx:{minWidth:32},children:(a=>{switch(a){case"running":return(0,d.jsx)(v.default,{size:"small",color:"primary"});case"done":return(0,d.jsx)(h.A,{color:"success",fontSize:"small"});case"error":return(0,d.jsx)(j.A,{color:"error",fontSize:"small"});default:return(0,d.jsx)(S.A,{color:"disabled",fontSize:"small"})}})(B[a.key])}),(0,d.jsx)(R.A,{primary:a.label,primaryTypographyProps:{variant:"body2",noWrap:!0,title:a.label}})]},a.key))}),z&&(0,d.jsxs)(L.A,{severity:"error",sx:{mt:2,whiteSpace:"pre-wrap"},children:[z,k&&(0,d.jsx)(K.default,{variant:"body2",sx:{mt:1},children:"The server was left stopped. Adjust the install/build commands via Edit, then re-enable it."})]}),w&&(0,d.jsxs)(L.A,{severity:"success",sx:{mt:2},children:["Server updated successfully",k?" and restarted":"","."]}),D&&(0,d.jsx)(J.default,{sx:{mt:2,p:1,borderRadius:1,bgcolor:"background.paper",border:"1px solid",borderColor:"divider",fontFamily:"monospace",fontSize:"0.75rem",whiteSpace:"pre-wrap",overflow:"auto",maxHeight:200},children:D})]}),(0,d.jsxs)(H.A,{children:[(0,d.jsx)(I.A,{onClick:b,disabled:s,children:w?"Close":"Cancel"}),!w&&(0,d.jsx)(I.A,{variant:"contained",color:"primary",startIcon:(0,d.jsx)(u.A,{}),onClick:aa,disabled:s||ac,children:s?"Updating…":z?"Retry Update":"Update"})]})]})};var X=c(30873),Y=c(60839),Z=c(30818),$=c(27114),_=c(43312),aa=c(44079),ab=c(67191),ac=c(98463);let ad=(0,f.h)("frontend/components/mcp/MCPServerManager/ServerCard"),ae=({name:a,status:b,path:f,enabled:z,transport:A,onToggle:B=()=>{},onRetry:C=()=>{},onDelete:M=()=>{},onClick:O,onEdit:P=()=>{},onAuthenticate:Q,pickerMode:R=!1,error:S,stderrOutput:U,authorizationUrl:V,selected:ae=!1,onSelect:af,selectionMode:ag=!1,hasOAuthTokens:ah=!1,exposeAsMcpServer:ai=!1,enableMcpApps:aj=!1,updateInfo:ak,installCommand:al,buildCommand:am,onUpdated:an,folder:ao,folders:ap=[],onSetFolder:aq,builtIn:ar=!1})=>{let[as,at]=(0,e.useState)(!1),[au,av]=(0,e.useState)(null),[aw,ax]=(0,e.useState)(!1),[ay,az]=(0,e.useState)(!1),[aA,aB]=(0,e.useState)(""),[aC,aD]=(0,e.useState)("success"),[aE,aF]=(0,e.useState)(!1),[aG,aH]=(0,e.useState)(!1),[aI,aJ]=(0,e.useState)(ai),[aK,aL]=(0,e.useState)(aj);(0,Y.A)(),(0,e.useEffect)(()=>{aJ(ai)},[ai]),(0,e.useEffect)(()=>{aL(aj)},[aj]);let aM=async b=>{aJ(b);let c=await x.S.updateServerConfig(a,{exposeAsMcpServer:b});"success"in c&&c.success?(aB(b?"Server is now exposed to external apps.":"Server is no longer exposed."),aD("success")):(aJ(!b),aB("Failed to update exposure setting."),aD("error")),az(!0)},aN=async b=>{aL(b);let c=await x.S.updateServerConfig(a,{enableMcpApps:b});"success"in c&&c.success?(aB(b?"This server may now render interactive apps in chat (sandboxed).":"Interactive apps disabled for this server."),aD("success")):(aL(!b),aB("Failed to update the MCP Apps setting."),aD("error")),az(!0)},aO=()=>{navigator.clipboard.writeText(""),aB("Endpoint URL copied to clipboard."),aD("success"),az(!0)},aP={connected:"success.main",disconnected:"text.secondary",error:"error.main",connecting:"info.main",initialization:"info.main",requires_authentication:"warning.main"}[b];(0,e.useEffect)(()=>{if(("connecting"===b||"initialization"===b)&&z&&!R){aF(!0);let b=setTimeout(()=>{ad.debug(`Polling status for server: ${a}`),C()},2e3);return()=>{clearTimeout(b),aF(!1)}}"connecting"!==b&&"initialization"!==b&&aF(!1)},[b,z,a,C]);let[aQ,aR]=(0,e.useState)(null);(0,e.useEffect)(()=>()=>{aQ&&clearTimeout(aQ)},[aQ]);let aS=async b=>{b.stopPropagation(),ad.debug(`Reset OAuth tokens button clicked for server: ${a}`),aH(!0);try{let b=await fetch("/api/oauth/reset",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({serverName:a})});if(!b.ok){let a=await b.json();throw Error(a.error||"Failed to reset OAuth tokens")}let c=await b.json();ad.info(`OAuth tokens reset successfully for ${a}`,c),aB("OAuth tokens reset successfully. Server will require re-authentication."),aD("success"),az(!0),setTimeout(()=>{C()},500)}catch(b){ad.error(`Failed to reset OAuth tokens for ${a}`,b),aB(`Failed to reset OAuth tokens: ${b instanceof Error?b.message:"Unknown error"}`),aD("error"),az(!0)}finally{aH(!1)}},{getThemeValue:aT,getThemeColor:aU,colors:aV}=(0,g.Ic)(),aW=()=>{ad.debug(`Server restart initiated for: ${a}`),B(!1),setTimeout(()=>{B(!0),ad.info(`Server ${a} restarted`)},1e3)};return(0,d.jsxs)(Z.A,{role:R?"button":void 0,"aria-pressed":R?ae:void 0,sx:{cursor:"pointer",height:R?"100%":void 0,transition:"box-shadow 0.3s ease, border-color 0.12s ease",border:a=>R&&ae?`2px solid ${a.palette.primary.main}`:"2px solid transparent","&:hover":{boxShadow:3}},onClick:()=>{ad.debug(`Server card clicked: ${a}`),O()},children:[(0,d.jsxs)($.A,{sx:{pb:1},children:[(0,d.jsxs)(J.default,{sx:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",mb:1},children:[(0,d.jsxs)(J.default,{sx:{display:"flex",alignItems:"center",flex:1},children:[ag&&af&&(0,d.jsx)(N.A,{checked:ae,onClick:a=>a.stopPropagation(),onChange:a=>af(a.target.checked),size:"small",sx:{mr:1,p:.5}}),(0,d.jsx)(K.default,{variant:"h6",component:"h3",sx:{flex:1},children:a})]}),(0,d.jsxs)(J.default,{sx:{display:"flex",flexDirection:"column",alignItems:"flex-end",gap:.5},children:[(0,d.jsxs)(J.default,{sx:{display:"flex",alignItems:"center",gap:.5},children:[ak?.updateAvailable&&(0,d.jsx)(_.A,{title:`Update available: ${(0,T.Fu)(ak.localSha)} → ${(0,T.Fu)(ak.remoteSha)}. Click to update.`,children:(0,d.jsx)(y.A,{icon:(0,d.jsx)(u.A,{}),label:"Update",color:"warning",size:"small",onClick:b=>{b.stopPropagation(),ad.debug(`Update badge clicked for server: ${a}`),ax(!0)}})}),ar?(0,d.jsx)(_.A,{title:"FLUJO's built-in server — always available, cannot be edited or removed.",children:(0,d.jsx)(y.A,{label:"Built-in",color:"primary",size:"small"})}):(0,d.jsx)(D,{transport:A,size:"small"})]}),(0,d.jsxs)(J.default,{sx:{display:"flex",alignItems:"center"},children:["connected"===b&&(0,d.jsx)(h.A,{color:"success",sx:{mr:.5},fontSize:"small"}),"disconnected"===b&&(0,d.jsx)(i.A,{color:"action",sx:{mr:.5},fontSize:"small"}),"error"===b&&(0,d.jsx)(j.A,{color:"error",sx:{mr:.5},fontSize:"small"}),"requires_authentication"===b&&(0,d.jsx)(n.A,{color:"warning",sx:{mr:.5},fontSize:"small"}),("connecting"===b||"initialization"===b)&&(0,d.jsx)(v.default,{size:"small",color:"primary",sx:{mr:.5}}),(0,d.jsx)(K.default,{variant:"body2",color:aP,children:"requires_authentication"===b?"Requires Authentication":b})]})]})]}),(0,d.jsx)(K.default,{variant:"body2",color:"text.secondary",sx:{mb:1,fontSize:"0.875rem"},noWrap:!0,title:ar?void 0:f,children:ar?"FLUJO's own backend API — flow authoring, execution and server management as MCP tools.":f}),ar&&!R&&(0,d.jsxs)(J.default,{sx:{mt:1,mb:1,p:1,borderRadius:1,border:"1px solid",borderColor:"divider"},onClick:a=>a.stopPropagation(),children:[(0,d.jsxs)(J.default,{sx:{display:"flex",alignItems:"center"},children:[(0,d.jsx)(q.A,{fontSize:"small",sx:{mr:.5,color:"primary.main"}}),(0,d.jsx)(_.A,{title:"External MCP clients (Claude Code, Claude Desktop, Cursor, …) can drive FLUJO through this local endpoint.",children:(0,d.jsx)(K.default,{variant:"body2",sx:{fontWeight:500},children:"Exposed to external apps"})})]}),(0,d.jsxs)(J.default,{sx:{display:"flex",alignItems:"center",mt:.5},children:[(0,d.jsx)(K.default,{variant:"caption",sx:{flex:1,fontFamily:"monospace",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:"",children:""}),(0,d.jsx)(_.A,{title:"Copy endpoint URL",children:(0,d.jsx)(aa.A,{size:"small",onClick:aO,children:(0,d.jsx)(s.A,{fontSize:"small"})})})]})]}),!ar&&!R&&(0,d.jsxs)(J.default,{sx:{mt:1,mb:1,p:1,borderRadius:1,border:"1px solid",borderColor:"divider"},onClick:a=>a.stopPropagation(),children:[(0,d.jsxs)(J.default,{sx:{display:"flex",alignItems:"center"},children:[(0,d.jsx)(q.A,{fontSize:"small",sx:{mr:.5,color:aI?"primary.main":"text.disabled"}}),(0,d.jsx)(ab.A,{checked:aI,onChange:a=>aM(a.target.checked),size:"small"}),(0,d.jsx)(_.A,{title:"Re-expose this server's tools to external MCP clients (Claude Desktop, Cursor, …) at a local URL.",children:(0,d.jsx)(K.default,{variant:"body2",sx:{fontWeight:500},children:"Expose to external apps"})})]}),aI&&(0,d.jsxs)(J.default,{sx:{display:"flex",alignItems:"center",mt:.5},children:[(0,d.jsx)(K.default,{variant:"caption",sx:{flex:1,fontFamily:"monospace",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:"",children:""}),(0,d.jsx)(_.A,{title:"Copy endpoint URL",children:(0,d.jsx)(aa.A,{size:"small",onClick:aO,children:(0,d.jsx)(s.A,{fontSize:"small"})})})]})]}),!ar&&!R&&(0,d.jsx)(J.default,{sx:{mt:1,mb:1,p:1,borderRadius:1,border:"1px solid",borderColor:"divider"},onClick:a=>a.stopPropagation(),children:(0,d.jsxs)(J.default,{sx:{display:"flex",alignItems:"center"},children:[(0,d.jsx)(r.A,{fontSize:"small",sx:{mr:.5,color:aK?"primary.main":"text.disabled"}}),(0,d.jsx)(ab.A,{checked:aK,onChange:a=>aN(a.target.checked),size:"small"}),(0,d.jsx)(_.A,{title:"Allow this server's tools to render interactive apps (MCP Apps / ui:// resources) in chat. Rendered read-only in a strict sandbox. Only enable for servers you trust.",children:(0,d.jsx)(K.default,{variant:"body2",sx:{fontWeight:500},children:"Render interactive apps"})})]})}),"error"===b&&(0,d.jsxs)(J.default,{sx:{mt:1,mb:1},children:[(0,d.jsxs)(J.default,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:.5},children:[(0,d.jsx)(K.default,{variant:"body2",fontWeight:"medium",color:"error",children:"Error:"}),(0,d.jsx)(I.A,{size:"small",color:"primary",onClick:b=>{b.stopPropagation(),ad.debug(`View full error clicked for server: ${a}`),at(!0)},children:"View Full Error"})]}),(0,d.jsx)(J.default,{sx:{maxHeight:"80px",overflow:"auto",p:1,borderRadius:1,bgcolor:a=>aU("error.background"),color:a=>aU("error.text"),border:"1px solid",borderColor:a=>aU("error.border"),fontSize:"0.75rem",fontWeight:500,whiteSpace:"pre-wrap"},children:S||"Unknown error"})]}),"requires_authentication"===b&&!R&&(0,d.jsxs)(J.default,{sx:{mt:1,mb:1},children:[(0,d.jsx)(J.default,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:1},children:(0,d.jsx)(K.default,{variant:"body2",fontWeight:"medium",color:"warning.main",children:"Authentication Required"})}),(0,d.jsxs)(I.A,{variant:"contained",color:"warning",size:"small",startIcon:(0,d.jsx)(o.A,{}),onClick:async b=>{if(b.stopPropagation(),ad.debug(`Authenticate button clicked for server: ${a}`),Q)Q();else try{let b=await fetch("/api/oauth/initiate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({serverName:a})});if(!b.ok){let a=await b.json();throw Error(a.error||"Failed to initiate OAuth")}let{authorizationUrl:d,alreadyAuthorized:e}=await b.json();if(e||!d){ad.info(`Server ${a} already authorized, no popup needed`),aW();return}let{openOAuthPopup:f}=await c.e(558).then(c.bind(c,60558));await f({url:d,windowName:`oauth_${a}`,onSuccess:b=>{ad.info(`OAuth authentication successful for ${a}`,b),ad.info(`Automatically restarting server ${a} after OAuth completion`),aW()},onError:b=>{ad.error(`OAuth authentication failed for ${a}`,b),aB("OAuth authentication failed"),aD("error"),az(!0)}})}catch(b){ad.error(`Failed to start OAuth authentication for ${a}`,b),aB("Failed to start OAuth authentication"),aD("error"),az(!0)}},sx:{width:"100%"},children:["Authenticate with ",a]})]})]}),!ar&&!R&&(0,d.jsxs)(ac.A,{sx:{justifyContent:"space-between",px:2,py:1},children:[(0,d.jsxs)(J.default,{sx:{display:"flex",alignItems:"center"},children:[(0,d.jsx)(ab.A,{checked:z,onClick:a=>a.stopPropagation(),onChange:b=>{ad.debug(`Server ${a} toggle changed to: ${b.target.checked}`),B(b.target.checked)},color:"primary",size:"small"}),(0,d.jsx)(K.default,{variant:"body2",sx:{ml:.5,fontWeight:500,color:z?"primary.main":"text.secondary"},children:z?"Enabled":"Disabled"}),z&&(0,d.jsx)(_.A,{title:"Restart server",children:(0,d.jsx)(aa.A,{size:"small",onClick:b=>{b.stopPropagation(),ad.debug(`Restart button clicked for server: ${a}`),aW()},sx:{ml:1},children:(0,d.jsx)(k.A,{fontSize:"small"})})})]}),(0,d.jsxs)(J.default,{children:[(0,d.jsx)(_.A,{title:"Retry connection",children:(0,d.jsx)(aa.A,{color:"primary",onClick:c=>{c.stopPropagation(),ad.debug(`Retry button clicked for server: ${a}`),aQ&&clearTimeout(aQ),aF(!0),C();let d=setTimeout(()=>{"connecting"!==b&&"initialization"!==b&&aF(!1),aR(null)},1e4);aR(d)},disabled:aE,size:"small",children:aE?(0,d.jsx)(v.default,{size:"small",color:"primary"}):(0,d.jsx)(k.A,{})})}),"streamable"===A&&ah&&(0,d.jsx)(_.A,{title:"Reset OAuth tokens",children:(0,d.jsx)(aa.A,{color:"warning",onClick:aS,disabled:aG,size:"small",children:aG?(0,d.jsx)(v.default,{size:"small",color:"primary"}):(0,d.jsx)(p.A,{})})}),aq&&(0,d.jsx)(_.A,{title:ao?`Folder: ${ao}`:"Move to folder",children:(0,d.jsx)(aa.A,{color:ao?"primary":"default",onClick:a=>{a.stopPropagation(),av(a.currentTarget)},size:"small",children:(0,d.jsx)(t.A,{})})}),(0,d.jsx)(_.A,{title:"Edit server",children:(0,d.jsx)(aa.A,{color:"primary",onClick:a=>{a.stopPropagation(),P()},size:"small",children:(0,d.jsx)(l.A,{})})}),(0,d.jsx)(_.A,{title:"Delete server",children:(0,d.jsx)(aa.A,{color:"error",onClick:a=>{a.stopPropagation(),M()},size:"small",children:(0,d.jsx)(m.A,{})})})]})]}),aq&&(0,d.jsx)(w.A,{anchorEl:au,open:!!au,currentFolder:ao,folders:ap,onClose:()=>av(null),onAssign:a=>aq(a)}),(0,d.jsxs)(E.A,{open:as,onClose:()=>{ad.debug(`Error modal closed for server: ${a}`),at(!1)},maxWidth:"md",fullWidth:!0,onClick:a=>a.stopPropagation(),children:[(0,d.jsxs)(F.A,{component:"div",children:["Error Details for ",a]}),(0,d.jsxs)(G.A,{children:[(0,d.jsx)(J.default,{sx:{p:2,borderRadius:1,bgcolor:a=>aU("error.background"),color:a=>aU("error.text"),border:"1px solid",borderColor:a=>aU("error.border"),fontFamily:"monospace",fontSize:"0.875rem",fontWeight:500,whiteSpace:"pre-wrap",overflow:"auto",maxHeight:"300px",mb:2},children:S||"Unknown error"}),U&&(0,d.jsxs)(J.default,{sx:{mt:2},children:[(0,d.jsx)(K.default,{variant:"h6",gutterBottom:!0,children:"Stderr Output:"}),(0,d.jsx)(J.default,{sx:{p:2,borderRadius:1,bgcolor:"background.paper",border:"1px solid",borderColor:"divider",fontFamily:"monospace",fontSize:"0.875rem",whiteSpace:"pre-wrap",overflow:"auto",maxHeight:"300px"},children:U})]})]}),(0,d.jsxs)(H.A,{children:[(0,d.jsx)(I.A,{onClick:()=>at(!1),children:"Close"}),(0,d.jsx)(I.A,{onClick:()=>{let b=[S||"Unknown error",U?`
3
+
4
+ Stderr Output:
5
+ ${U}`:""].join("");navigator.clipboard.writeText(b),ad.debug(`Error copied to clipboard for server: ${a}`),aB("Error message copied to clipboard"),aD("success"),az(!0)},color:"primary",children:"Copy to Clipboard"})]})]}),ak&&(0,d.jsx)(W,{open:aw,onClose:()=>ax(!1),serverName:a,rootPath:f,installCommand:al,buildCommand:am,enabled:z,updateInfo:ak,onToggle:B,onUpdated:an}),(0,d.jsx)(X.A,{open:ay,autoHideDuration:3e3,onClose:()=>az(!1),anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,d.jsx)(L.A,{onClose:()=>az(!1),severity:aC,sx:{width:"100%"},children:aA||"Error message copied to clipboard"})})]})}},50846:(a,b,c)=>{c.d(b,{h:()=>i});var d=c(13516);let e={VERBOSE:-1,DEBUG:0,INFO:1,WARN:2,ERROR:3},f="number"==typeof d.G.LOG_LEVEL?d.G.LOG_LEVEL:e.ERROR;function g(a,b=0){if(b>6)return String(a);if(!(a instanceof Error))return a;let c={name:a.name,message:a.message};for(let d of Object.getOwnPropertyNames(a)){if("name"===d||"message"===d)continue;let e=a[d];"function"!=typeof e&&("stack"===d?c.stack=e:"cause"===d?c.cause=g(e,b+1):"errors"===d&&Array.isArray(e)?c.errors=e.map(a=>g(a,b+1)):c[d]=e)}return c}function h(a,b,c,d,h){if(a>=("number"==typeof h?h:f)){if("function"==typeof d)try{d=d()}catch{d="[lazy log data threw]"}let f=new Date().toISOString(),h=`[${f}] [${b}]`,i=`${h} ${c}`;if(void 0!==d)if(d instanceof Error||"object"==typeof d)try{let a=d instanceof Error?g(d):d,b=JSON.stringify(a,(a,b)=>b instanceof Error?g(b):b,2);i+=`:
6
+ ${b}`}catch(a){i+=": [Object cannot be stringified]"}else i+=`: ${d}`;switch(a){case e.VERBOSE:console.debug(`[VERBOSE] ${i}`);break;case e.DEBUG:console.debug(i);break;case e.INFO:console.info(i);break;case e.WARN:console.warn(i);break;case e.ERROR:console.error(i);break;default:console.log(i)}}}function i(a,b){let c,d=((c=a.replace(/^src\//,"")).startsWith("/")&&(c=c.substring(1)),c);return{verbose:(a,c)=>{h(e.VERBOSE,d,a,c,b)},debug:(a,c)=>{h(e.DEBUG,d,a,c,b)},info:(a,c)=>{h(e.INFO,d,a,c,b)},warn:(a,c)=>{h(e.WARN,d,a,c,b)},error:(a,c)=>{h(e.ERROR,d,a,c,b)}}}},53455:(a,b,c)=>{c.d(b,{Fu:()=>i,M8:()=>f,Qv:()=>g,Qz:()=>h});let d=(0,c(19815).h)("frontend/components/mcp/MCPServerManager/utils/serverUpdates"),e=new Map;async function f(a,b=!1){let c=Date.now(),g={},h=[];for(let d of new Set(a.filter(Boolean))){let a=e.get(d);!b&&a&&c-a.at<6e5?g[d]=a.info:h.push(d)}if(h.length>0)try{let a=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"checkUpdatesBatch",paths:h})}),b=await a.json();if(a.ok&&b.results)for(let[a,d]of Object.entries(b.results))e.set(a,{at:c,info:d}),g[a]=d;else d.warn("Batch update check failed",b.error)}catch(a){d.warn("Batch update check request failed",a)}return g}async function g(a){try{let b=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"pullUpdates",savePath:a})}),c=await b.json();if(!b.ok)return{success:!1,error:c.error||"Failed to pull updates"};return{success:!0,oldSha:c.oldSha,newSha:c.newSha,updated:c.updated}}catch(a){return{success:!1,error:a.message||"Failed to pull updates"}}}async function h(a,b,c){let e=a.match(/github\.com[:/]([^/]+)\/([^/]+?)(?:\.git)?\/?$/i);if(!e)return null;try{let a=await fetch(`https://api.github.com/repos/${e[1]}/${e[2]}/compare/${b}...${c}`);if(!a.ok)return null;let d=await a.json(),f=Array.isArray(d.commits)?d.commits:[];return{behindBy:"number"==typeof d.total_commits?d.total_commits:null,commits:f.slice(-10).reverse().map(a=>({sha:(a.sha||"").slice(0,7),message:(a.commit?.message||"").split("\n")[0]}))}}catch(a){return d.debug("GitHub compare preview failed (non-fatal)",a),null}}function i(a){return a?a.slice(0,7):""}},61160:(a,b,c)=>{c.d(b,{mO:()=>f,rI:()=>g});var d=c(7329);let e=["stdio","websocket","sse","streamable"];function f(a,b){switch(b){case"name-asc":case"name-desc":return(0,d.po)(a.name);case"status-connected":case"status-disconnected":{let b=a.status;if("connected"===b)return{key:"status:connected",label:"Connected"};if("error"===b)return{key:"status:error",label:"Error"};if("requires_authentication"===b)return{key:"status:auth",label:"Requires authentication"};return{key:"status:disconnected",label:"Disconnected"}}case"transport":{let b=a.transport||"unknown";return{key:`transport:${b}`,label:({stdio:"Stdio",websocket:"WebSocket",sse:"SSE",streamable:"Streamable HTTP"})[b]||b}}default:return{key:"all",label:"All servers"}}}function g(a,b){return[...a].sort((a,c)=>{switch(b){case"name-asc":return a.name.localeCompare(c.name);case"name-desc":return c.name.localeCompare(a.name);case"status-connected":if("connected"===a.status&&"connected"!==c.status)return -1;if("connected"!==a.status&&"connected"===c.status)return 1;return a.name.localeCompare(c.name);case"status-disconnected":if("disconnected"===a.status&&"disconnected"!==c.status)return -1;if("disconnected"!==a.status&&"disconnected"===c.status)return 1;return a.name.localeCompare(c.name);case"transport":{let b=e.indexOf(a.transport??""),d=e.indexOf(c.transport??"");if(b!==d)return b-d;return a.name.localeCompare(c.name)}default:return 0}})}},84040:(a,b,c)=>{c.d(b,{Ic:()=>g});var d=c(32631);let e=(0,c(19815).h)("frontend/utils/theme"),f={light:{background:"#FFFFFF",foreground:"#2C3E50",paperBackground:"#F5F6FA",textSecondary:"#7F8C8D",border:"#e5e7eb",heading:"#111",text:"#333",secondaryText:"#666",error:{background:"#fef2f2",border:"#fecaca",text:"#dc2626"}},dark:{background:"#1a1a1a",foreground:"#f0f0f0",paperBackground:"#2a2a2a",textSecondary:"#aaaaaa",border:"#3a3a3a",heading:"#f8f8f8",text:"#f0f0f0",secondaryText:"#aaa",error:{background:"#3a2222",border:"#5a3333",text:"#f87171"}}};function g(){let{isDarkMode:a}=(0,d.D)();return e.debug(`useThemeUtils called with isDarkMode: ${a}`),{getThemeValue:(b,c)=>a?c:b,getThemeColor:b=>{let c=b.split("."),d=f[a?"dark":"light"];for(let a of c)if(!d||"object"!=typeof d||!(a in d))return e.warn(`Theme color path not found: ${b}`),"";else d=d[a];return d},colors:a?f.dark:f.light,isDarkMode:a}}}};
@@ -5,6 +5,6 @@ ${b.condition}
5
5
  Tool result (untrusted data):
6
6
  \`\`\`json
7
7
  ${m}
8
- \`\`\``;try{let c="llm-gate"===b.mode?await j(b.modelId,n):await k(b.flowId,n),g=function(a){let b=a.match(/\{[\s\S]*\}/);if(!b)return null;try{let a=JSON.parse(b[0]);if("boolean"!=typeof a?.fire)return null;return{fire:a.fire,reason:"string"==typeof a.reason?a.reason:""}}catch{return null}}(c);if(!g)return f.warn(`Gate returned unparseable output: ${c.slice(0,200)}`),{fire:!1,newState:{lastHash:d,...l},error:"The AI check returned an unreadable answer — did not run the flow"};if(!g.fire)return{fire:!1,newState:{lastHash:d,...l}};return{fire:!0,summary:"flow-gate"===b.mode?"Flow condition met":"AI condition met",context:{result:(0,e.Je)(a),aiReason:g.reason},newState:{lastHash:d,...l}}}catch(b){let a=b instanceof Error?b.message:String(b);return f.warn(`Gate check failed: ${a}`),{fire:!1,newState:a.startsWith("config:")?{lastHash:d}:l,error:a.replace(/^config:\s*/,"")}}}async function j(a,b){let{modelService:d}=await Promise.resolve().then(c.bind(c,12763)),{getCompletionAdapter:e}=await Promise.resolve().then(c.bind(c,31351)),f=await d.getModel(a);if(!f)throw Error(`config: The AI-check model no longer exists (${a})`);let g=await d.resolveAndDecryptApiKey(f.ApiKey);if(!g)throw Error("config: Could not resolve the AI-check model API key");let i=e(f),{completion:j}=await i.createCompletion({model:f,apiKey:g,temperature:0,messages:[{role:"system",content:h},{role:"user",content:b}]}),k=j.choices?.[0]?.message?.content;return"string"==typeof k?k:""}async function k(a,b){let{runFlow:d}=await Promise.all([c.e(3304),c.e(6936)]).then(c.bind(c,67463)),e=await d({flowId:a,prompt:`${b}
8
+ \`\`\``;try{let c="llm-gate"===b.mode?await j(b.modelId,n):await k(b.flowId,n),g=function(a){let b=a.match(/\{[\s\S]*\}/);if(!b)return null;try{let a=JSON.parse(b[0]);if("boolean"!=typeof a?.fire)return null;return{fire:a.fire,reason:"string"==typeof a.reason?a.reason:""}}catch{return null}}(c);if(!g)return f.warn(`Gate returned unparseable output: ${c.slice(0,200)}`),{fire:!1,newState:{lastHash:d,...l},error:"The AI check returned an unreadable answer — did not run the flow"};if(!g.fire)return{fire:!1,newState:{lastHash:d,...l}};return{fire:!0,summary:"flow-gate"===b.mode?"Flow condition met":"AI condition met",context:{result:(0,e.Je)(a),aiReason:g.reason},newState:{lastHash:d,...l}}}catch(b){let a=b instanceof Error?b.message:String(b);return f.warn(`Gate check failed: ${a}`),{fire:!1,newState:a.startsWith("config:")?{lastHash:d}:l,error:a.replace(/^config:\s*/,"")}}}async function j(a,b){let{modelService:d}=await Promise.resolve().then(c.bind(c,12763)),{getCompletionAdapter:e}=await Promise.resolve().then(c.bind(c,25713)),f=await d.getModel(a);if(!f)throw Error(`config: The AI-check model no longer exists (${a})`);let g=await d.resolveAndDecryptApiKey(f.ApiKey);if(!g)throw Error("config: Could not resolve the AI-check model API key");let i=e(f),{completion:j}=await i.createCompletion({model:f,apiKey:g,temperature:0,messages:[{role:"system",content:h},{role:"user",content:b}]}),k=j.choices?.[0]?.message?.content;return"string"==typeof k?k:""}async function k(a,b){let{runFlow:d}=await Promise.all([c.e(3304),c.e(7403)]).then(c.bind(c,67463)),e=await d({flowId:a,prompt:`${b}
9
9
 
10
10
  ${g}`,mode:"ephemeral",requireApproval:!1,debug:!1,userTurn:!0});if("completed"!==e.status)throw Error(e.error?.message??`The checker flow ended with status "${e.status}"`);return e.outputText??""}}};
@@ -1,6 +1,6 @@
1
- "use strict";exports.id=7214,exports.ids=[7214],exports.modules={38291:(a,b,c)=>{c.d(b,{n:()=>f});var d=c(92372);let e=(0,c(50846).h)("backend/execution/flow/persistConversationState");function f(a,b){return b.ephemeral?(e.debug(`Refusing to persist ephemeral state (key ${a}); ephemeral runs never reach the conversations store.`),Promise.resolve()):(0,d.VH)(a,{...b,executionTrace:void 0,emit:void 0})}},44681:(a,b,c)=>{c.d(b,{validateFlowForRun:()=>j});var d=c(50846),e=c(87821),f=c(20433),g=c(23514),h=c(84671);let i=(0,d.h)("backend/execution/flow/validateFlowForRun");async function j(a){let b,c,d=await e.flowService.getFlow(a);if(!d)return i.warn(`validateFlowForRun: flow ${a} could not be loaded; skipping pre-run checks`),{issues:[],errorCount:0,warningCount:0,isRunnable:!0};try{b=await f.modelService.loadModels()}catch(a){i.warn("validateFlowForRun: could not load models; skipping model checks",a)}try{let a=await g.mcpService.loadServerConfigs();Array.isArray(a)&&(c=a.map(a=>({name:a.name,status:a.disabled?"disabled":void 0})))}catch(a){i.warn("validateFlowForRun: could not load servers; skipping server checks",a)}return(0,h.nC)(d,{models:b,servers:c})}},57214:(a,b,c)=>{c.d(b,{runFlow:()=>t});var d=c(50846),e=c(91403),f=c(38291),g=c(60184),h=c(14214),i=c(99978),j=c(64841),k=c(75312),l=c(87821),m=c(92372),n=c(13516),o=c(44681),p=c(67490);let q=(0,d.h)("backend/execution/flow/runFlow");l.flowService.getFlowByName||(l.flowService.getFlowByName=async a=>(await l.flowService.loadFlows()).find(b=>b.name===a)||null,q.info("Added getFlowByName method directly to flowService instance."));let r=l.flowService,s=f.n;async function t(a){let b,c,d,f=Date.now(),l=a.flujo??!0,t=a.requireApproval??!1,u=a.debug??!1,v=a.continueDebug??!1,w=a.userTurn??!1,x="ephemeral"===a.mode,y=a.messages??(void 0!==a.prompt?[{role:"user",content:a.prompt}]:[]),z={model:a.modelName,messages:y,processNodeId:a.processNodeId};q.info("runFlow invoked",{flowId:a.flowId,model:a.modelName,messageCount:y.length,mode:x?"ephemeral":"conversation",flujo:l,requireApproval:t,flujodebug:u,conversationId:a.conversationId});let A=a.conversationId||crypto.randomUUID(),B=`conversations/${A}`,C="new";if(q.info(`Effective Conversation ID for this run: ${A}`,{providedId:a.conversationId}),e.FlowExecutor.conversationStates.has(A))c=e.FlowExecutor.conversationStates.get(A),q.info(`Resuming conversation ${A} from memory`,{currentNodeId:c.currentNodeId}),C="memory";else if(!x)try{(c=await (0,m.YM)(B,void 0))?(q.info(`Loaded conversation state from storage: ${A}`),C="storage",await (0,g.jM)(c),e.FlowExecutor.conversationStates.set(A,c)):q.info(`No state found in storage for conversation: ${A}. Will create new state.`)}catch(a){q.warn(`Error loading conversation state from storage for ${A}:`,a)}if(c?((b=c).conversationId!==A&&(q.warn(`Loaded state's internal conversationId (${b.conversationId}) differs from effectiveConvId (${A}). Using effectiveConvId.`),b.conversationId=A),"new"!==C&&("completed"===b.status||"error"===b.status)&&(q.info(`Resuming completed/errored conversation ${A}. Resetting status to 'running'.`),b.status="running",b.lastResponse=void 0,b.isCancelled=!1,"storage"===C&&e.FlowExecutor.conversationStates.set(A,b)),z.processNodeId&&"new"!==C&&(q.info(`Edit detected: Resetting currentNodeId for conversation ${A} to provided processNodeId: ${z.processNodeId}`),b.currentNodeId=z.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:[]},n.G.ENABLE_EXECUTION_TRACKER&&b.executionTrace&&(b.executionTrace=[]),e.FlowExecutor.conversationStates.set(A,b),q.verbose(`State updated in memory with reset currentNodeId: ${b.currentNodeId}`))):(q.info(`Creating new conversation state object for ID: ${A}`),b={trackingInfo:{executionId:crypto.randomUUID(),startTime:Date.now(),nodeExecutionTracker:(n.G.ENABLE_EXECUTION_TRACKER,[])},messages:[],flowId:"",conversationId:A,currentNodeId:void 0,status:"running",title:"New Conversation",createdAt:Date.now(),updatedAt:Date.now(),debugMode:u,executionTrace:u&&n.G.ENABLE_EXECUTION_TRACKER?[]:void 0}),b.requireApproval=t,x&&(b.ephemeral=!0),b.runDepth=a.depth??b.runDepth??0,b.runDepth>p.A)return q.error(`runFlow aborted: subflow depth ${b.runDepth} exceeds max ${p.A}`),b.status="error",{status:"error",conversationId:A,outputText:"",messages:b.messages,error:{message:`Subflow recursion limit (${p.A}) exceeded`,statusCode:500},finalAction:i.O,sharedState:b};let D=[...b.messages??[]];if("new"===C){let c=a.flowId;if(!c&&z.model){let a=z.model.substring(5),d=await r.getFlowByName(a);if(!d)return q.error(`Flow not found: ${a}`),{status:"error",conversationId:A,outputText:"",messages:b.messages,flowNotFound:{name:a},error:{message:`Flow not found: ${a}`,statusCode:400},finalAction:i.O,sharedState:b};c=d.id}if(!c)return q.error("No flow specified for run (neither flowId nor model provided)."),{status:"error",conversationId:A,outputText:"",messages:b.messages,error:{message:"No flow specified (provide flowId or model).",statusCode:400},finalAction:i.O,sharedState:b};b.flowId=c;let d=(z.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=a.content.split(" ").slice(0,5).join(" ")+"...",q.verbose(`Updated conversation title for ${A} during init to: ${b.title}`))}await s(B,b),q.debug(`Saved initial state for new conversation ${A}.`)}catch(a){q.error(`Failed to save initial state for new conversation ${A}:`,a)}e.FlowExecutor.conversationStates.set(A,b)}else z.messages&&z.messages.length>0&&(b.messages=z.messages.filter(a=>!(a.depth>0)).map(a=>({...a,id:a.id||crypto.randomUUID(),timestamp:a.timestamp||Date.now(),processNodeId:a.processNodeId||void 0})),q.info(`Updated conversation ${b.conversationId} with ${b.messages.length} messages from request`)),(w||void 0===b.debugMode)&&(b.debugMode=u),w&&(b.debugPendingToolCalls=void 0),b.debugMode&&n.G.ENABLE_EXECUTION_TRACKER&&!b.executionTrace&&(b.executionTrace=[]);try{await (0,g.UG)(b,D)}catch(a){q.warn(`Conversation-log reconcile failed for ${A}; continuing`,a)}if(w&&"new"!==C&&!z.processNodeId){let a=b.messages.length>0?b.messages[b.messages.length-1]:void 0;a?.role==="user"&&a.processNodeId&&a.processNodeId!==b.currentNodeId&&(q.info(`New user turn for ${A}: directing execution to node ${a.processNodeId} (was ${b.currentNodeId}).`),b.currentNodeId=a.processNodeId,e.FlowExecutor.conversationStates.set(A,b))}w&&b.flowId&&(e.FlowExecutor.clearFlowCache(b.flowId),q.debug(`Cleared compiled-flow cache for ${b.flowId} at start of user turn ${A}.`));let E=!1,F=0,G=a.emit??h.$.emitterFor(A),H=new Set(b.messages.map(a=>a.id).filter(a=>!!a)),I=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.processNodeId||"unknown",e=c.byNode[d]??{promptTokens:0,completionTokens:0,totalTokens:0,costUsd:0};e.promptTokens+=a.usage.promptTokens,e.completionTokens+=a.usage.completionTokens,e.totalTokens+=a.usage.totalTokens,c.byNode[d]=e,b.usage=c,G({type:"usage",node:a.processNodeId?{nodeId:a.processNodeId}:void 0,promptTokens:a.usage.promptTokens,completionTokens:a.usage.completionTokens,totalTokens:a.usage.totalTokens,costUsd:0})},J=()=>{for(let a of b.messages)a.id||(a.id=crypto.randomUUID()),H.has(a.id)||(H.add(a.id),"system"!==a.role&&(G({type:"message",message:a,node:a.processNodeId?{nodeId:a.processNodeId}:void 0}),I(a)))};if(G({type:"run:start",flowId:b.flowId}),(w||"new"===C)&&b.flowId)try{let a=await (0,o.validateFlowForRun)(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:
1
+ "use strict";exports.id=7214,exports.ids=[7214],exports.modules={38291:(a,b,c)=>{c.d(b,{n:()=>f});var d=c(92372);let e=(0,c(50846).h)("backend/execution/flow/persistConversationState");function f(a,b){return b.ephemeral?(e.debug(`Refusing to persist ephemeral state (key ${a}); ephemeral runs never reach the conversations store.`),Promise.resolve()):(0,d.VH)(a,{...b,executionTrace:void 0,emit:void 0})}},57214:(a,b,c)=>{c.d(b,{runFlow:()=>t});var d=c(50846),e=c(77865),f=c(38291),g=c(60184),h=c(14214),i=c(99978),j=c(8193),k=c(75312),l=c(87821),m=c(92372),n=c(13516),o=c(44681),p=c(67490);let q=(0,d.h)("backend/execution/flow/runFlow");l.flowService.getFlowByName||(l.flowService.getFlowByName=async a=>(await l.flowService.loadFlows()).find(b=>b.name===a)||null,q.info("Added getFlowByName method directly to flowService instance."));let r=l.flowService,s=f.n;async function t(a){let b,c,d,f=Date.now(),l=a.flujo??!0,t=a.requireApproval??!1,u=a.debug??!1,v=a.continueDebug??!1,w=a.userTurn??!1,x="ephemeral"===a.mode,y=a.messages??(void 0!==a.prompt?[{role:"user",content:a.prompt}]:[]),z={model:a.modelName,messages:y,processNodeId:a.processNodeId};q.info("runFlow invoked",{flowId:a.flowId,model:a.modelName,messageCount:y.length,mode:x?"ephemeral":"conversation",flujo:l,requireApproval:t,flujodebug:u,conversationId:a.conversationId});let A=a.conversationId||crypto.randomUUID(),B=`conversations/${A}`,C="new";if(q.info(`Effective Conversation ID for this run: ${A}`,{providedId:a.conversationId}),e.FlowExecutor.conversationStates.has(A))c=e.FlowExecutor.conversationStates.get(A),q.info(`Resuming conversation ${A} from memory`,{currentNodeId:c.currentNodeId}),C="memory";else if(!x)try{(c=await (0,m.YM)(B,void 0))?(q.info(`Loaded conversation state from storage: ${A}`),C="storage",await (0,g.jM)(c),e.FlowExecutor.conversationStates.set(A,c)):q.info(`No state found in storage for conversation: ${A}. Will create new state.`)}catch(a){q.warn(`Error loading conversation state from storage for ${A}:`,a)}if(c?((b=c).conversationId!==A&&(q.warn(`Loaded state's internal conversationId (${b.conversationId}) differs from effectiveConvId (${A}). Using effectiveConvId.`),b.conversationId=A),"new"!==C&&("completed"===b.status||"error"===b.status)&&(q.info(`Resuming completed/errored conversation ${A}. Resetting status to 'running'.`),b.status="running",b.lastResponse=void 0,b.isCancelled=!1,"storage"===C&&e.FlowExecutor.conversationStates.set(A,b)),z.processNodeId&&"new"!==C&&(q.info(`Edit detected: Resetting currentNodeId for conversation ${A} to provided processNodeId: ${z.processNodeId}`),b.currentNodeId=z.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:[]},n.G.ENABLE_EXECUTION_TRACKER&&b.executionTrace&&(b.executionTrace=[]),e.FlowExecutor.conversationStates.set(A,b),q.verbose(`State updated in memory with reset currentNodeId: ${b.currentNodeId}`))):(q.info(`Creating new conversation state object for ID: ${A}`),b={trackingInfo:{executionId:crypto.randomUUID(),startTime:Date.now(),nodeExecutionTracker:(n.G.ENABLE_EXECUTION_TRACKER,[])},messages:[],flowId:"",conversationId:A,currentNodeId:void 0,status:"running",title:"New Conversation",createdAt:Date.now(),updatedAt:Date.now(),debugMode:u,executionTrace:u&&n.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=t,x&&(b.ephemeral=!0),b.runDepth=a.depth??b.runDepth??0,b.runDepth>p.A)return q.error(`runFlow aborted: subflow depth ${b.runDepth} exceeds max ${p.A}`),b.status="error",{status:"error",conversationId:A,outputText:"",messages:b.messages,error:{message:`Subflow recursion limit (${p.A}) exceeded`,statusCode:500},finalAction:i.O,sharedState:b};let D=[...b.messages??[]];if("new"===C){a.flowDefinition&&(b.flowSnapshot=a.flowDefinition,b.flowId=a.flowDefinition.id);let c=a.flowDefinition?a.flowDefinition.id:a.flowId;if(!c&&z.model){let a=z.model.substring(5),d=await r.getFlowByName(a);if(!d)return q.error(`Flow not found: ${a}`),{status:"error",conversationId:A,outputText:"",messages:b.messages,flowNotFound:{name:a},error:{message:`Flow not found: ${a}`,statusCode:400},finalAction:i.O,sharedState:b};c=d.id}if(!c)return q.error("No flow specified for run (neither flowId nor model provided)."),{status:"error",conversationId:A,outputText:"",messages:b.messages,error:{message:"No flow specified (provide flowId or model).",statusCode:400},finalAction:i.O,sharedState:b};b.flowId=c;let d=(z.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=a.content.split(" ").slice(0,5).join(" ")+"...",q.verbose(`Updated conversation title for ${A} during init to: ${b.title}`))}await s(B,b),q.debug(`Saved initial state for new conversation ${A}.`)}catch(a){q.error(`Failed to save initial state for new conversation ${A}:`,a)}e.FlowExecutor.conversationStates.set(A,b)}else z.messages&&z.messages.length>0&&(b.messages=z.messages.filter(a=>!(a.depth>0)).map(a=>({...a,id:a.id||crypto.randomUUID(),timestamp:a.timestamp||Date.now(),processNodeId:a.processNodeId||void 0})),q.info(`Updated conversation ${b.conversationId} with ${b.messages.length} messages from request`)),(w||void 0===b.debugMode)&&(b.debugMode=u),w&&(b.debugPendingToolCalls=void 0),b.debugMode&&n.G.ENABLE_EXECUTION_TRACKER&&!b.executionTrace&&(b.executionTrace=[]);try{await (0,g.UG)(b,D)}catch(a){q.warn(`Conversation-log reconcile failed for ${A}; continuing`,a)}if(w&&"new"!==C&&!z.processNodeId){let a=b.messages.length>0?b.messages[b.messages.length-1]:void 0;a?.role==="user"&&a.processNodeId&&a.processNodeId!==b.currentNodeId&&(q.info(`New user turn for ${A}: directing execution to node ${a.processNodeId} (was ${b.currentNodeId}).`),b.currentNodeId=a.processNodeId,e.FlowExecutor.conversationStates.set(A,b))}w&&b.flowId&&(e.FlowExecutor.clearFlowCache(b.flowId),q.debug(`Cleared compiled-flow cache for ${b.flowId} at start of user turn ${A}.`));let E=!1,F=0,G=a.emit??h.$.emitterFor(A),H=new Set(b.messages.map(a=>a.id).filter(a=>!!a)),I=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,G({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}:{}})},J=()=>{for(let a of b.messages)a.id||(a.id=crypto.randomUUID()),H.has(a.id)||(H.add(a.id),"system"!==a.role&&(G({type:"message",message:a,node:a.processNodeId?{nodeId:a.processNodeId}:void 0}),I(a)))};if(G({type:"run:start",flowId:b.flowId}),(w||"new"===C)&&b.flowId)try{let a=b.flowSnapshot?await (0,o.Q)(b.flowSnapshot):await (0,o.validateFlowForRun)(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
2
  `+c.map(a=>`• ${a.message}`).join("\n");q.warn(`Pre-run validation blocked flow ${b.flowId} for conv ${A}`,{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=i.O,E=!0}}catch(a){q.warn(`Pre-run validation could not complete for ${b.flowId}; proceeding`,a)}let K=!!b.debugMode&&!v,L=()=>{b.status="paused_debug",G({type:"run:paused",reason:"debug",node:b.currentNodeId?{nodeId:b.currentNodeId}:void 0})};try{if(!E)for(;;){if(F++,q.debug(`--- Starting Execution Step ${F} for Conv ${A} ---`),F>150){q.warn(`Max internal iterations (150) reached for conv ${A}. Breaking loop.`),d!==i.O&&(b.lastResponse={success:!1,error:"Maximum internal iterations (150) reached."},d=i.O);break}if(b.isCancelled){q.info(`Cancellation flag detected for conv ${A}. Terminating execution.`),b.status="error",b.lastResponse={success:!1,error:"Execution cancelled by user."},d=i.O;break}if(b.debugPendingToolCalls&&b.debugPendingToolCalls.length>0){let a=b.debugPendingToolCalls;b.debugPendingToolCalls=void 0,q.info(`[Debug Step] Executing ${a.length} pending tool call(s) for conv ${A}.`);let c=await j.s.processToolCalls({toolCalls:a,toolNameMap:b.toolNameMap,emit:G});if(!c.success){q.error(`Debug tool processing failed for conv ${A}`,{error:c.error}),b.lastResponse={success:!1,error:"Tool processing failed",errorDetails:c.error},d=i.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(A,b),J();try{b.updatedAt=Date.now(),await s(B,b)}catch(a){q.error(`Failed to save state after debug tool execution for conv ${A}:`,a)}if(K){q.info(`[Debug Step] Paused after tool execution for conv ${A}.`),L();break}continue}if(!K&&b.breakpoints&&b.breakpoints.length>0){let a=await e.FlowExecutor.peekNextNodeId(b);if(a&&b.breakpoints.includes(a)&&b.lastBreakNodeId!==a){q.info(`Breakpoint hit at node ${a} for conv ${A}. Pausing.`),b.status="paused_debug",b.debugMode=!0,b.lastBreakNodeId=a,G({type:"breakpoint:hit",node:{nodeId:a}}),G({type:"run:paused",reason:"breakpoint",node:{nodeId:a}});try{b.updatedAt=Date.now(),await s(B,b)}catch(a){q.error(`Failed to save state on breakpoint for conv ${A}:`,a)}break}a&&b.lastBreakNodeId&&a!==b.lastBreakNodeId&&(b.lastBreakNodeId=void 0)}if(b.messages.length>0){let a=b.messages.slice(-3);q.verbose(`Message history before step ${F}`,a)}else q.verbose(`No messages in history before step ${F}`);let a=await e.FlowExecutor.executeStep(b,G);if(b=a.sharedState,d=a.action,J(),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=a.content.split(" ").slice(0,5).join(" ")+"...",q.verbose(`Updated conversation title for ${A} after step ${F} to: ${b.title}`))}if(q.info(`Step ${F} completed for conv ${A}. Action: ${d}`,{currentNodeId:b.currentNodeId}),q.verbose(`Shared state after step ${F}`,b),q.debug(`[Action Handling] Step ${F}: Received action "${d}" for conv ${A}`),d===i.O){q.info(`[Action Handling] Step ${F}: Handling ERROR_ACTION for conv ${A}`),q.error(`Error action received during step ${F} for conv ${A}`,{error:b.lastResponse});break}if(d===i.g4){q.info(`[Action Handling] Step ${F}: Handling FINAL_RESPONSE_ACTION for conv ${A}`),q.info(`Final response action received at step ${F} for conv ${A}`),b.status="completed",q.info(`Setting conversation status to 'completed' for conv ${A}`);break}if(d===i.Jp){q.info(`[Action Handling] Step ${F}: Handling TOOL_CALL_ACTION for conv ${A}`),q.info(`Tool call action received at step ${F} for conv ${A}`);let a=b.messages.length>0?b.messages[b.messages.length-1]:null;if(a?.role==="assistant"&&a.tool_calls)if(l)if(t){q.info(`[flujo=true, requireApproval=true] Pausing execution for tool approval for conv ${A}`),b.status="awaiting_tool_approval",b.pendingToolCalls=a.tool_calls,b.lastResponse=void 0,e.FlowExecutor.conversationStates.set(A,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=a.content.split(" ").slice(0,5).join(" ")+"...",q.verbose(`Updated conversation title for ${A} before pausing to: ${b.title}`))}await s(B,b),q.verbose(`Saved state before pausing for approval for conv ${A}`)}catch(a){q.error(`Failed to save state before pausing for approval for conv ${A}:`,a)}G({type:"run:awaiting_approval",pendingToolCalls:a.tool_calls});break}else if(K){q.info(`[Debug Step] Paused before executing ${a.tool_calls.length} tool call(s) for conv ${A}.`),b.debugPendingToolCalls=a.tool_calls,e.FlowExecutor.conversationStates.set(A,b);try{b.updatedAt=Date.now(),await s(B,b)}catch(a){q.error(`Failed to save state before debug tool pause for conv ${A}:`,a)}L();break}else{q.info(`[flujo=true, requireApproval=false] Processing ${a.tool_calls.length} tools internally for conv ${A}`);let c=await j.s.processToolCalls({toolCalls:a.tool_calls,toolNameMap:b.toolNameMap,emit:G});if(!c.success){q.error(`Internal tool processing failed for conv ${A}`,{error:c.error}),b.lastResponse={success:!1,error:"Tool processing failed",errorDetails:c.error},d=i.O;break}q.info(`Adding ${c.value.toolCallMessages.length} tool result messages for conv ${A}`);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(A,b),J(),q.info(`Continuing loop for conv ${A} after internal tool processing (no approval needed).`);continue}else{q.info(`[flujo=false] Tool call action received for conv ${A}. Checking tool types.`);let c=a.tool_calls||[],f=[],g=[];if(c.forEach(a=>{"function"===a.type&&(0,k.$9)(a.function.name,b.toolNameMap)?(q.verbose("tool is internal:",a.function.name),f.push(a)):(q.verbose("tool is external:",a.function.name),g.push(a))}),f.length>0){q.info(`[flujo=false] Processing ${f.length} internal tools for conv ${A}. External tools (${g.length}) will be ignored this step.`);let a=await j.s.processToolCalls({toolCalls:f,toolNameMap:b.toolNameMap,emit:G});if(!a.success){q.error(`[flujo=false] Internal tool processing failed for conv ${A}`,{error:a.error}),b.lastResponse={success:!1,error:"Internal tool processing failed",errorDetails:a.error},d=i.O;break}q.info(`Adding ${a.value.toolCallMessages.length} internal tool result messages for conv ${A}`);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(A,b),q.info(`Continuing loop for conv ${A} after internal tool processing (flujo=false).`);continue}if(g.length>0){q.info(`[flujo=false] Found ${g.length} external tools for conv ${A}. 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
3
  <${a}>${b}</${a}>`}a.push(`<${b.function.name}>${d}
4
4
  </${b.function.name}>`)}catch(c){q.error(`[flujo=false] Failed to parse arguments for external tool ${b.function.name}`,{args:b.function.arguments,error:c,convId:A}),a.push(`<${b.function.name}>
5
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=i.g4,q.info(`[flujo=false] Prepared XML for external tools. Exiting loop for conv ${A}.`);break}q.warn(`[flujo=false] TOOL_CALL_ACTION received for conv ${A} but no tools found after classification. Treating as final.`),d=i.g4;break}q.warn(`TOOL_CALL_ACTION received for conv ${A} but no tool_calls found in last message. Treating as final.`),d=i.g4;break}let c=await e.FlowExecutor.resolveHandoff(b,d);if(c.isSuccessorEdge){q.info(`[Action Handling] Step ${F}: Handling Handoff Action (Edge ID) for conv ${A}`),q.info(`Handoff action received for conv ${A}. 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){c=e.id,q.debug(`Found handoff tool call ID: ${c} for edge ${d}`);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),q.info(`Appended tool result message for handoff tool call ${c}`)}else q.warn(`Handoff action received for edge ${d}, but could not find corresponding handoff tool call in last assistant message.`)}else q.warn(`Handoff action received for edge ${d}, but the last message was not an assistant message with tool calls.`);J();let g=b.currentNodeId;if(b.currentNodeId=a,b.handoffRequested=void 0,G({type:"handoff",from:g?{nodeId:g}:void 0,toNodeId:a,edgeId:d}),q.info(`Transitioning conv ${A} to node ${b.currentNodeId}`),e.FlowExecutor.conversationStates.set(A,b),K){q.info(`[Debug Step] Paused after handoff to node ${b.currentNodeId} for conv ${A}.`),L();break}q.info(`Continuing loop for conv ${A} after handoff.`);continue}q.error(`Handoff failed for conv ${A}: Successor node for edge ${d} has invalid ID.`),b.lastResponse={success:!1,error:`Handoff failed: Target node for edge ${d} has invalid ID.`},d=i.O;break}if(d===i.E5){q.info(`[Action Handling] Step ${F}: Handling STAY_ON_NODE_ACTION for conv ${A}`),q.info(`Stay on node action received for conv ${A} at step ${F}`);break}q.warn(`Unrecognized action '${d}' received at step ${F} for conv ${A}. Treating as final response.`),d=i.g4;break}}catch(a){if(q.error(`Unhandled error during execution loop for conv ${A}`,{loopError:a}),d!==i.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=i.O}}d===i.O&&"error"!==b.status&&(b.status="error");let M=Date.now()-f,N=b.status||(d===i.g4?"completed":d===i.O?"error":"running");q.info(`Execution finished for conv ${A}. Final Action: ${d}, Final Status: ${N}`,{duration:`${M}ms`}),J(),("completed"===N||"error"===N)&&G({type:"run:done",status:N});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=a.content.split(" ").slice(0,5).join(" ")+"...",q.verbose(`Updated conversation title for ${A} before final return to: ${b.title}`))}await s(B,b),q.debug(`Saved final state for conversation ${A} before returning.`)}catch(a){q.error(`Failed to save final state for conversation ${A}:`,a)}e.FlowExecutor.conversationStates.set(A,b);let O=()=>{x&&("completed"===b.status||"error"===b.status)&&e.FlowExecutor.conversationStates.delete(A)},P={conversationId:b.conversationId||A,messages:b.messages,usage:b.usage,finalAction:d,sharedState:b};if("paused_debug"===b.status)return q.info(`Returning paused debug state for conv ${A}`),{...P,status:"paused_debug",outputText:"",pendingToolCalls:b.pendingToolCalls};if("error"===b.status||d===i.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},q.error(`Returning error result for conv ${A}`,{errorMessage:c,errorDetails:a,statusCode:d}),"error"!==b.status&&(b.status="error"),O(),{...P,status:"error",outputText:"",error:{message:c,details:a,statusCode:d}}}let Q=b.messages.length>0?b.messages[b.messages.length-1]:null,R="",S="";"object"==typeof b.lastResponse&&null!==b.lastResponse&&"_flujo_xml_tools"in b.lastResponse?(S=b.lastResponse._flujo_xml_tools,R=Q?.role==="assistant"&&"string"==typeof Q.content?Q.content:"",R+=(R?"\n\n":"")+S,b.lastResponse=R):R="string"==typeof b.lastResponse?b.lastResponse:Q?.role==="assistant"&&"string"==typeof Q.content?Q.content:d!==i.Jp||l?"Processing complete.":"";let T=S?void 0:Q?.role==="assistant"?Q.tool_calls:void 0;return q.info(`Returning success result for conv ${A}`,{action:d,status:b.status,flujo:l,requireApproval:t,flujodebug:u}),O(),{...P,status:b.status||(d===i.g4?"completed":"running"),outputText:R,toolCalls:T,pendingToolCalls:b.pendingToolCalls}}},84671:(a,b,c)=>{c.d(b,{nC:()=>h});var d=c(49181);function e(a){return a.data?.type??a.type??"unknown"}function f(a){return a.data?.label||a.id}function g(a){return a.data?.edgeType==="mcp"}function h(a,b={}){let c=[],i=Array.isArray(a?.nodes)?a.nodes:[],j=Array.isArray(a?.edges)?a.edges:[],k=(a,b,d,e)=>c.push({severity:a,code:b,message:d,nodeId:e?.id,nodeLabel:e?f(e):void 0}),l=new Map((b.models??[]).map(a=>[a.id,a])),m=new Map((b.servers??[]).map(a=>[a.name,a])),n=!!b.models,o=!!b.servers,p=i.filter(a=>"start"===e(a)),q=i.filter(a=>"finish"===e(a)),r=i.filter(a=>"process"===e(a)),s=i.filter(a=>"mcp"===e(a));if(0===p.length)k("error","no-start-node","The flow has no Start node, so it has no entry point.");else if(p.length>1)for(let a of p.slice(1))k("error","multiple-start-nodes","The flow has more than one Start node; only one is allowed.",a);for(let a of(0===q.length&&k("warning","no-finish-node","The flow has no Finish node; it will run but never reaches a defined end."),r)){let b=a.data?.properties??{},c=b.boundModel;if(c){if(n&&!l.has(c)){let c="string"==typeof b.modelName&&b.modelName?` (was "${b.modelName}")`:"";k("error","process-model-missing",`Process node "${f(a)}" is bound to a model that no longer exists${c}.`,a)}}else k("error","process-missing-model",`Process node "${f(a)}" has no model bound.`,a)}for(let a of s){let b=(a.data?.properties??{}).boundServer;if(b){if(o&&!m.has(b))k("warning","mcp-server-missing",`MCP node "${f(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(o){let c=m.get(b);if(c.status&&"connected"!==c.status){let d="disabled"===c.status?"disabled":`not connected (${c.status})`;k("warning","mcp-server-disconnected",`MCP node "${f(a)}" is bound to server "${b}", which is currently ${d}. It will provide tools again once it reconnects.`,a)}}}else k("warning","mcp-missing-server",`MCP node "${f(a)}" is not bound to a server.`,a);j.some(b=>g(b)&&(b.source===a.id||b.target===a.id))||k("warning","mcp-node-unconnected",`MCP node "${f(a)}" is not connected to any Process node.`,a)}if(p.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)!g(b)&&(c(b.source,b.target),b.data?.bidirectional&&c(b.target,b.source));return b}(j);for(let b of p)a.get(b.id)?.length||k("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}(p.map(a=>a.id),a);for(let a of[...r,...q])b.has(a.id)||k("warning","unreachable-node",`${"finish"===e(a)?"Finish":"Process"} node "${f(a)}" is not reachable from the Start node.`,a)}for(let a of i.filter(a=>"subflow"===e(a))){let b=j.filter(b=>!g(b)&&(b.source===a.id||b.target===a.id&&!!b.data?.bidirectional));b.length>1&&k("error","subflow-multiple-outgoing",`Subflow node "${f(a)}" has ${b.length} outgoing connections; a subflow can only have one (either A > B > C or a bidirectional A <> B).`,a)}for(let a of r){let c=a.data?.properties?.promptTemplate;if("string"!=typeof c||!c)continue;let h=function(a,b,c){let d=new Map(b.map(a=>[a.id,a])),f=new Set;for(let b of c){if(!g(b))continue;let c=null;if(b.source===a?c=b.target:b.target===a&&(c=b.source),!c)continue;let h=d.get(c);if(!h||"mcp"!==e(h))continue;let i=h.data?.properties?.boundServer;"string"==typeof i&&i&&f.add(i)}return f}(a.id,i,j),l=new Set;for(let e of(0,d.A$)(c)){if("handoff"===e.server)continue;let c=`${e.kind}:${e.server}:${e.name}`;!l.has(c)&&(l.add(c),h.has(e.server)?"tool"===e.kind&&b.serverTools&&b.serverTools[e.server]&&!b.serverTools[e.server].includes(e.name)&&k("warning","tool-unavailable",`Process node "${f(a)}" references tool "${e.name}" which server "${e.server}" no longer provides.`,a):k("error","tool-pill-disconnected",`Process node "${f(a)}" references ${e.kind} "${e.name}" from server "${e.server}", but it is not connected to that server (the MCP node was removed or the server was renamed).`,a))}}let t=c.filter(a=>"error"===a.severity).length,u=c.length-t;return{issues:c,errorCount:t,warningCount:u,isRunnable:0===t}}}};
6
+ </${b.function.name}>`)}b.lastResponse={_flujo_xml_tools:a.join("\n\n")},d=i.g4,q.info(`[flujo=false] Prepared XML for external tools. Exiting loop for conv ${A}.`);break}q.warn(`[flujo=false] TOOL_CALL_ACTION received for conv ${A} but no tools found after classification. Treating as final.`),d=i.g4;break}q.warn(`TOOL_CALL_ACTION received for conv ${A} but no tool_calls found in last message. Treating as final.`),d=i.g4;break}let c=await e.FlowExecutor.resolveHandoff(b,d);if(c.isSuccessorEdge){q.info(`[Action Handling] Step ${F}: Handling Handoff Action (Edge ID) for conv ${A}`),q.info(`Handoff action received for conv ${A}. 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,q.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():"";d&&(b.handoffInput={targetNodeId:a,prompt:d},q.info(`Captured caller prompt for handoff to node ${a} (${d.length} chars)`))}catch(a){q.warn(`Could not parse handoff tool-call arguments for edge ${d}; ignoring caller prompt`,{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),q.info(`Appended tool result message for handoff tool call ${c}`)}else q.warn(`Handoff action received for edge ${d}, but could not find corresponding handoff tool call in last assistant message.`)}else q.warn(`Handoff action received for edge ${d}, but the last message was not an assistant message with tool calls.`);J();let g=b.currentNodeId;if(b.currentNodeId=a,b.handoffRequested=void 0,G({type:"handoff",from:g?{nodeId:g}:void 0,toNodeId:a,edgeId:d}),q.info(`Transitioning conv ${A} to node ${b.currentNodeId}`),e.FlowExecutor.conversationStates.set(A,b),K){q.info(`[Debug Step] Paused after handoff to node ${b.currentNodeId} for conv ${A}.`),L();break}q.info(`Continuing loop for conv ${A} after handoff.`);continue}q.error(`Handoff failed for conv ${A}: Successor node for edge ${d} has invalid ID.`),b.lastResponse={success:!1,error:`Handoff failed: Target node for edge ${d} has invalid ID.`},d=i.O;break}if(d===i.E5){q.info(`[Action Handling] Step ${F}: Handling STAY_ON_NODE_ACTION for conv ${A}`),q.info(`Stay on node action received for conv ${A} at step ${F}`);break}q.warn(`Unrecognized action '${d}' received at step ${F} for conv ${A}. Treating as final response.`),d=i.g4;break}}catch(a){if(q.error(`Unhandled error during execution loop for conv ${A}`,{loopError:a}),d!==i.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=i.O}}d===i.O&&"error"!==b.status&&(b.status="error");let M=Date.now()-f,N=b.status||(d===i.g4?"completed":d===i.O?"error":"running");q.info(`Execution finished for conv ${A}. Final Action: ${d}, Final Status: ${N}`,{duration:`${M}ms`}),J(),("completed"===N||"error"===N)&&G({type:"run:done",status:N});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=a.content.split(" ").slice(0,5).join(" ")+"...",q.verbose(`Updated conversation title for ${A} before final return to: ${b.title}`))}await s(B,b),q.debug(`Saved final state for conversation ${A} before returning.`)}catch(a){q.error(`Failed to save final state for conversation ${A}:`,a)}e.FlowExecutor.conversationStates.set(A,b);let O=()=>{x&&("completed"===b.status||"error"===b.status)&&e.FlowExecutor.conversationStates.delete(A)},P={conversationId:b.conversationId||A,messages:b.messages,usage:b.usage,finalAction:d,sharedState:b};if("paused_debug"===b.status)return q.info(`Returning paused debug state for conv ${A}`),{...P,status:"paused_debug",outputText:"",pendingToolCalls:b.pendingToolCalls};if("error"===b.status||d===i.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},q.error(`Returning error result for conv ${A}`,{errorMessage:c,errorDetails:a,statusCode:d}),"error"!==b.status&&(b.status="error"),O(),{...P,status:"error",outputText:"",error:{message:c,details:a,statusCode:d}}}let Q=b.messages.length>0?b.messages[b.messages.length-1]:null,R="",S="";"object"==typeof b.lastResponse&&null!==b.lastResponse&&"_flujo_xml_tools"in b.lastResponse?(S=b.lastResponse._flujo_xml_tools,R=Q?.role==="assistant"&&"string"==typeof Q.content?Q.content:"",R+=(R?"\n\n":"")+S,b.lastResponse=R):R="string"==typeof b.lastResponse?b.lastResponse:Q?.role==="assistant"&&"string"==typeof Q.content?Q.content:d!==i.Jp||l?"Processing complete.":"";let T=S?void 0:Q?.role==="assistant"?Q.tool_calls:void 0;return q.info(`Returning success result for conv ${A}`,{action:d,status:b.status,flujo:l,requireApproval:t,flujodebug:u}),O(),{...P,status:b.status||(d===i.g4?"completed":"running"),outputText:R,toolCalls:T,pendingToolCalls:b.pendingToolCalls}}}};