flujo-ai 3.28.0 → 3.30.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 (848) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +481 -464
  3. package/.next/app-path-routes-manifest.json +20 -17
  4. package/.next/build-manifest.json +6 -6
  5. package/.next/prerender-manifest.json +30 -30
  6. package/.next/react-loadable-manifest.json +7 -6
  7. package/.next/required-server-files.json +4 -4
  8. package/.next/routes-manifest.json +8 -0
  9. package/.next/server/app/_not-found/page.js +4 -4
  10. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  11. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  12. package/.next/server/app/_not-found.html +1 -1
  13. package/.next/server/app/_not-found.rsc +3 -3
  14. package/.next/server/app/api/approvals/[id]/route.js +1 -1
  15. package/.next/server/app/api/approvals/[id]/route.js.nft.json +1 -1
  16. package/.next/server/app/api/approvals/[id]/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/approvals/route.js +2 -2
  18. package/.next/server/app/api/approvals/route.js.nft.json +1 -1
  19. package/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/backup/route.js +1 -1
  21. package/.next/server/app/api/backup/route.js.nft.json +1 -1
  22. package/.next/server/app/api/backup/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/browse/route.js +1 -1
  24. package/.next/server/app/api/browse/route.js.nft.json +1 -1
  25. package/.next/server/app/api/browse/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/bugs/enhance/route.js +3 -3
  27. package/.next/server/app/api/bugs/enhance/route.js.nft.json +1 -1
  28. package/.next/server/app/api/bugs/enhance/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/cwd/route.js +1 -1
  30. package/.next/server/app/api/cwd/route.js.nft.json +1 -1
  31. package/.next/server/app/api/cwd/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/encryption/secure/route.js +1 -1
  33. package/.next/server/app/api/encryption/secure/route.js.nft.json +1 -1
  34. package/.next/server/app/api/encryption/secure/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/env/route.js +2 -2
  36. package/.next/server/app/api/env/route.js.nft.json +1 -1
  37. package/.next/server/app/api/env/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/flow/[id]/route.js +1 -1
  39. package/.next/server/app/api/flow/[id]/route.js.nft.json +1 -1
  40. package/.next/server/app/api/flow/[id]/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/flow/[id]/versions/[versionId]/route.js +1 -1
  42. package/.next/server/app/api/flow/[id]/versions/[versionId]/route.js.nft.json +1 -1
  43. package/.next/server/app/api/flow/[id]/versions/[versionId]/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/flow/[id]/versions/route.js +1 -1
  45. package/.next/server/app/api/flow/[id]/versions/route.js.nft.json +1 -1
  46. package/.next/server/app/api/flow/[id]/versions/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/flow/compile/route.js +1 -1
  48. package/.next/server/app/api/flow/compile/route.js.nft.json +1 -1
  49. package/.next/server/app/api/flow/compile/route_client-reference-manifest.js +1 -1
  50. package/.next/server/app/api/flow/generate/route.js +1 -1
  51. package/.next/server/app/api/flow/generate/route.js.nft.json +1 -1
  52. package/.next/server/app/api/flow/generate/route_client-reference-manifest.js +1 -1
  53. package/.next/server/app/api/flow/improve/route.js +1 -1
  54. package/.next/server/app/api/flow/improve/route.js.nft.json +1 -1
  55. package/.next/server/app/api/flow/improve/route_client-reference-manifest.js +1 -1
  56. package/.next/server/app/api/flow/prompt-renderer/route.js +2 -2
  57. package/.next/server/app/api/flow/prompt-renderer/route.js.nft.json +1 -1
  58. package/.next/server/app/api/flow/prompt-renderer/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/flow/quick-chat/route.js +1 -1
  60. package/.next/server/app/api/flow/quick-chat/route.js.nft.json +1 -1
  61. package/.next/server/app/api/flow/quick-chat/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/flow/repair/route.js +1 -1
  63. package/.next/server/app/api/flow/repair/route.js.nft.json +1 -1
  64. package/.next/server/app/api/flow/repair/route_client-reference-manifest.js +1 -1
  65. package/.next/server/app/api/flow/route.js +1 -1
  66. package/.next/server/app/api/flow/route.js.nft.json +1 -1
  67. package/.next/server/app/api/flow/route_client-reference-manifest.js +1 -1
  68. package/.next/server/app/api/git/route.js +2 -2
  69. package/.next/server/app/api/git/route.js.nft.json +1 -1
  70. package/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/init/route.js +1 -1
  72. package/.next/server/app/api/init/route.js.nft.json +1 -1
  73. package/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  74. package/.next/server/app/api/local-models/capability/route.js +2 -1
  75. package/.next/server/app/api/local-models/capability/route.js.nft.json +1 -1
  76. package/.next/server/app/api/local-models/capability/route_client-reference-manifest.js +1 -1
  77. package/.next/server/app/api/local-models/pull/route.js +2 -1
  78. package/.next/server/app/api/local-models/pull/route.js.nft.json +1 -1
  79. package/.next/server/app/api/local-models/pull/route_client-reference-manifest.js +1 -1
  80. package/.next/server/app/api/local-models/suggest/route.js +2 -2
  81. package/.next/server/app/api/local-models/suggest/route_client-reference-manifest.js +1 -1
  82. package/.next/server/app/api/mcp/app-sandbox/route.js +1 -1
  83. package/.next/server/app/api/mcp/app-sandbox/route.js.nft.json +1 -1
  84. package/.next/server/app/api/mcp/app-sandbox/route_client-reference-manifest.js +1 -1
  85. package/.next/server/app/api/mcp/cancel/route.js +2 -2
  86. package/.next/server/app/api/mcp/cancel/route.js.nft.json +1 -1
  87. package/.next/server/app/api/mcp/cancel/route_client-reference-manifest.js +1 -1
  88. package/.next/server/app/api/mcp/oauth-capability/route.js +1 -1
  89. package/.next/server/app/api/mcp/oauth-capability/route.js.nft.json +1 -1
  90. package/.next/server/app/api/mcp/oauth-capability/route_client-reference-manifest.js +1 -1
  91. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js +1 -1
  92. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js.nft.json +1 -1
  93. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route_client-reference-manifest.js +1 -1
  94. package/.next/server/app/api/mcp/servers/[name]/prompts/route.js +1 -1
  95. package/.next/server/app/api/mcp/servers/[name]/prompts/route.js.nft.json +1 -1
  96. package/.next/server/app/api/mcp/servers/[name]/prompts/route_client-reference-manifest.js +1 -1
  97. package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js +1 -1
  98. package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js.nft.json +1 -1
  99. package/.next/server/app/api/mcp/servers/[name]/resources/read/route_client-reference-manifest.js +1 -1
  100. package/.next/server/app/api/mcp/servers/[name]/resources/route.js +1 -1
  101. package/.next/server/app/api/mcp/servers/[name]/resources/route.js.nft.json +1 -1
  102. package/.next/server/app/api/mcp/servers/[name]/resources/route_client-reference-manifest.js +1 -1
  103. package/.next/server/app/api/mcp/servers/[name]/route.js +1 -1
  104. package/.next/server/app/api/mcp/servers/[name]/route.js.nft.json +1 -1
  105. package/.next/server/app/api/mcp/servers/[name]/route_client-reference-manifest.js +1 -1
  106. package/.next/server/app/api/mcp/servers/[name]/status/route.js +1 -1
  107. package/.next/server/app/api/mcp/servers/[name]/status/route.js.nft.json +1 -1
  108. package/.next/server/app/api/mcp/servers/[name]/status/route_client-reference-manifest.js +1 -1
  109. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js +1 -1
  110. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js.nft.json +1 -1
  111. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route_client-reference-manifest.js +1 -1
  112. package/.next/server/app/api/mcp/servers/[name]/tools/route.js +1 -1
  113. package/.next/server/app/api/mcp/servers/[name]/tools/route.js.nft.json +1 -1
  114. package/.next/server/app/api/mcp/servers/[name]/tools/route_client-reference-manifest.js +1 -1
  115. package/.next/server/app/api/mcp/servers/route.js +1 -1
  116. package/.next/server/app/api/mcp/servers/route.js.nft.json +1 -1
  117. package/.next/server/app/api/mcp/servers/route_client-reference-manifest.js +1 -1
  118. package/.next/server/app/api/mcp/test-connection/route.js +1 -1
  119. package/.next/server/app/api/mcp/test-connection/route.js.nft.json +1 -1
  120. package/.next/server/app/api/mcp/test-connection/route_client-reference-manifest.js +1 -1
  121. package/.next/server/app/api/mcp/test-connection/stream/route.js +1 -1
  122. package/.next/server/app/api/mcp/test-connection/stream/route.js.nft.json +1 -1
  123. package/.next/server/app/api/mcp/test-connection/stream/route_client-reference-manifest.js +1 -1
  124. package/.next/server/app/api/mcp-registry/route.js +2 -2
  125. package/.next/server/app/api/mcp-registry/route.js.nft.json +1 -1
  126. package/.next/server/app/api/mcp-registry/route_client-reference-manifest.js +1 -1
  127. package/.next/server/app/api/mcp-registry/spotlight/route.js +1 -1
  128. package/.next/server/app/api/mcp-registry/spotlight/route.js.nft.json +1 -1
  129. package/.next/server/app/api/mcp-registry/spotlight/route_client-reference-manifest.js +1 -1
  130. package/.next/server/app/api/model/[id]/route.js +1 -1
  131. package/.next/server/app/api/model/[id]/route.js.nft.json +1 -1
  132. package/.next/server/app/api/model/[id]/route_client-reference-manifest.js +1 -1
  133. package/.next/server/app/api/model/provider/route.js +2 -2
  134. package/.next/server/app/api/model/provider/route.js.nft.json +1 -1
  135. package/.next/server/app/api/model/provider/route_client-reference-manifest.js +1 -1
  136. package/.next/server/app/api/model/route.js +1 -1
  137. package/.next/server/app/api/model/route.js.nft.json +1 -1
  138. package/.next/server/app/api/model/route_client-reference-manifest.js +1 -1
  139. package/.next/server/app/api/model/test/route.js +2 -2
  140. package/.next/server/app/api/model/test/route.js.nft.json +1 -1
  141. package/.next/server/app/api/model/test/route_client-reference-manifest.js +1 -1
  142. package/.next/server/app/api/oauth/callback/route.js +2 -2
  143. package/.next/server/app/api/oauth/callback/route.js.nft.json +1 -1
  144. package/.next/server/app/api/oauth/callback/route_client-reference-manifest.js +1 -1
  145. package/.next/server/app/api/oauth/initiate/route.js +2 -2
  146. package/.next/server/app/api/oauth/initiate/route.js.nft.json +1 -1
  147. package/.next/server/app/api/oauth/initiate/route_client-reference-manifest.js +1 -1
  148. package/.next/server/app/api/oauth/reset/route.js +2 -2
  149. package/.next/server/app/api/oauth/reset/route.js.nft.json +1 -1
  150. package/.next/server/app/api/oauth/reset/route_client-reference-manifest.js +1 -1
  151. package/.next/server/app/api/packages/build/route.js +1 -1
  152. package/.next/server/app/api/packages/build/route.js.nft.json +1 -1
  153. package/.next/server/app/api/packages/build/route_client-reference-manifest.js +1 -1
  154. package/.next/server/app/api/packages/derive-secrets/route.js +1 -1
  155. package/.next/server/app/api/packages/derive-secrets/route.js.nft.json +1 -1
  156. package/.next/server/app/api/packages/derive-secrets/route_client-reference-manifest.js +1 -1
  157. package/.next/server/app/api/packages/install/route.js +1 -1
  158. package/.next/server/app/api/packages/install/route.js.nft.json +1 -1
  159. package/.next/server/app/api/packages/install/route_client-reference-manifest.js +1 -1
  160. package/.next/server/app/api/packages/install/status/route.js +1 -1
  161. package/.next/server/app/api/packages/install/status/route.js.nft.json +1 -1
  162. package/.next/server/app/api/packages/install/status/route_client-reference-manifest.js +1 -1
  163. package/.next/server/app/api/packages/installed/route.js +1 -1
  164. package/.next/server/app/api/packages/installed/route.js.nft.json +1 -1
  165. package/.next/server/app/api/packages/installed/route_client-reference-manifest.js +1 -1
  166. package/.next/server/app/api/packages/resolve/route.js +1 -1
  167. package/.next/server/app/api/packages/resolve/route.js.nft.json +1 -1
  168. package/.next/server/app/api/packages/resolve/route_client-reference-manifest.js +1 -1
  169. package/.next/server/app/api/packages/scan-targets/route.js +1 -0
  170. package/.next/server/app/api/packages/scan-targets/route.js.nft.json +1 -0
  171. package/.next/server/app/api/packages/scan-targets/route_client-reference-manifest.js +1 -0
  172. package/.next/server/app/api/packages/search/route.js +1 -0
  173. package/.next/server/app/api/packages/search/route.js.nft.json +1 -0
  174. package/.next/server/app/api/packages/search/route_client-reference-manifest.js +1 -0
  175. package/.next/server/app/api/packages/uninstall/route.js +1 -1
  176. package/.next/server/app/api/packages/uninstall/route.js.nft.json +1 -1
  177. package/.next/server/app/api/packages/uninstall/route_client-reference-manifest.js +1 -1
  178. package/.next/server/app/api/planned-executions/[id]/route.js +2 -2
  179. package/.next/server/app/api/planned-executions/[id]/route.js.nft.json +1 -1
  180. package/.next/server/app/api/planned-executions/[id]/route_client-reference-manifest.js +1 -1
  181. package/.next/server/app/api/planned-executions/[id]/run/route.js +2 -2
  182. package/.next/server/app/api/planned-executions/[id]/run/route.js.nft.json +1 -1
  183. package/.next/server/app/api/planned-executions/[id]/run/route_client-reference-manifest.js +1 -1
  184. package/.next/server/app/api/planned-executions/[id]/runs/route.js +2 -2
  185. package/.next/server/app/api/planned-executions/[id]/runs/route.js.nft.json +1 -1
  186. package/.next/server/app/api/planned-executions/[id]/runs/route_client-reference-manifest.js +1 -1
  187. package/.next/server/app/api/planned-executions/preview-schedule/route.js +1 -1
  188. package/.next/server/app/api/planned-executions/preview-schedule/route.js.nft.json +1 -1
  189. package/.next/server/app/api/planned-executions/preview-schedule/route_client-reference-manifest.js +1 -1
  190. package/.next/server/app/api/planned-executions/reconcile/route.js +1 -1
  191. package/.next/server/app/api/planned-executions/reconcile/route.js.nft.json +1 -1
  192. package/.next/server/app/api/planned-executions/reconcile/route_client-reference-manifest.js +1 -1
  193. package/.next/server/app/api/planned-executions/route.js +1 -1
  194. package/.next/server/app/api/planned-executions/route.js.nft.json +1 -1
  195. package/.next/server/app/api/planned-executions/route_client-reference-manifest.js +1 -1
  196. package/.next/server/app/api/registry/auth/resend/route.js +1 -1
  197. package/.next/server/app/api/registry/auth/resend/route.js.nft.json +1 -1
  198. package/.next/server/app/api/registry/auth/resend/route_client-reference-manifest.js +1 -1
  199. package/.next/server/app/api/registry/auth/reset/route.js +1 -1
  200. package/.next/server/app/api/registry/auth/reset/route.js.nft.json +1 -1
  201. package/.next/server/app/api/registry/auth/reset/route_client-reference-manifest.js +1 -1
  202. package/.next/server/app/api/registry/auth/route.js +1 -1
  203. package/.next/server/app/api/registry/auth/route.js.nft.json +1 -1
  204. package/.next/server/app/api/registry/auth/route_client-reference-manifest.js +1 -1
  205. package/.next/server/app/api/registry/oauth/callback/route.js +1 -1
  206. package/.next/server/app/api/registry/oauth/callback/route.js.nft.json +1 -1
  207. package/.next/server/app/api/registry/oauth/callback/route_client-reference-manifest.js +1 -1
  208. package/.next/server/app/api/registry/oauth/initiate/route.js +1 -1
  209. package/.next/server/app/api/registry/oauth/initiate/route.js.nft.json +1 -1
  210. package/.next/server/app/api/registry/oauth/initiate/route_client-reference-manifest.js +1 -1
  211. package/.next/server/app/api/registry/publish/route.js +1 -1
  212. package/.next/server/app/api/registry/publish/route.js.nft.json +1 -1
  213. package/.next/server/app/api/registry/publish/route_client-reference-manifest.js +1 -1
  214. package/.next/server/app/api/registry/settings/route.js +1 -1
  215. package/.next/server/app/api/registry/settings/route.js.nft.json +1 -1
  216. package/.next/server/app/api/registry/settings/route_client-reference-manifest.js +1 -1
  217. package/.next/server/app/api/restore/route.js +1 -1
  218. package/.next/server/app/api/restore/route.js.nft.json +1 -1
  219. package/.next/server/app/api/restore/route_client-reference-manifest.js +1 -1
  220. package/.next/server/app/api/runs/active/route.js +2 -2
  221. package/.next/server/app/api/runs/active/route.js.nft.json +1 -1
  222. package/.next/server/app/api/runs/active/route_client-reference-manifest.js +1 -1
  223. package/.next/server/app/api/storage/route.js +1 -1
  224. package/.next/server/app/api/storage/route.js.nft.json +1 -1
  225. package/.next/server/app/api/storage/route_client-reference-manifest.js +1 -1
  226. package/.next/server/app/api/update/route.js +1 -1
  227. package/.next/server/app/api/update/route.js.nft.json +1 -1
  228. package/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  229. package/.next/server/app/api/waves/route.js +1 -1
  230. package/.next/server/app/api/waves/route.js.nft.json +1 -1
  231. package/.next/server/app/api/waves/route_client-reference-manifest.js +1 -1
  232. package/.next/server/app/api/webhooks/[id]/route.js +1 -1
  233. package/.next/server/app/api/webhooks/[id]/route.js.nft.json +1 -1
  234. package/.next/server/app/api/webhooks/[id]/route_client-reference-manifest.js +1 -1
  235. package/.next/server/app/chat/page.js +9 -9
  236. package/.next/server/app/chat/page.js.nft.json +1 -1
  237. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  238. package/.next/server/app/chat.html +1 -1
  239. package/.next/server/app/chat.rsc +4 -4
  240. package/.next/server/app/docs/page.js +5 -5
  241. package/.next/server/app/docs/page.js.nft.json +1 -1
  242. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  243. package/.next/server/app/docs.html +1 -1
  244. package/.next/server/app/docs.rsc +4 -4
  245. package/.next/server/app/executions/page.js +2 -39
  246. package/.next/server/app/executions/page.js.nft.json +1 -1
  247. package/.next/server/app/executions/page_client-reference-manifest.js +1 -1
  248. package/.next/server/app/executions.html +1 -1
  249. package/.next/server/app/executions.rsc +4 -4
  250. package/.next/server/app/flows/page.js +3 -3
  251. package/.next/server/app/flows/page.js.nft.json +1 -1
  252. package/.next/server/app/flows/page_client-reference-manifest.js +1 -1
  253. package/.next/server/app/flows.html +1 -1
  254. package/.next/server/app/flows.rsc +4 -4
  255. package/.next/server/app/index.html +1 -1
  256. package/.next/server/app/index.rsc +4 -4
  257. package/.next/server/app/mcp/page.js +11 -11
  258. package/.next/server/app/mcp/page.js.nft.json +1 -1
  259. package/.next/server/app/mcp/page_client-reference-manifest.js +1 -1
  260. package/.next/server/app/mcp-flows/route.js +1 -1
  261. package/.next/server/app/mcp-flows/route.js.nft.json +1 -1
  262. package/.next/server/app/mcp-flows/route_client-reference-manifest.js +1 -1
  263. package/.next/server/app/mcp-proxy/[server]/route.js +1 -1
  264. package/.next/server/app/mcp-proxy/[server]/route.js.nft.json +1 -1
  265. package/.next/server/app/mcp-proxy/[server]/route_client-reference-manifest.js +1 -1
  266. package/.next/server/app/mcp.html +1 -1
  267. package/.next/server/app/mcp.rsc +4 -4
  268. package/.next/server/app/models/page.js +2 -2
  269. package/.next/server/app/models/page.js.nft.json +1 -1
  270. package/.next/server/app/models/page_client-reference-manifest.js +1 -1
  271. package/.next/server/app/packages/page.js +2 -2
  272. package/.next/server/app/packages/page.js.nft.json +1 -1
  273. package/.next/server/app/packages/page_client-reference-manifest.js +1 -1
  274. package/.next/server/app/packages.html +1 -1
  275. package/.next/server/app/packages.rsc +4 -4
  276. package/.next/server/app/page.js +3 -3
  277. package/.next/server/app/page.js.nft.json +1 -1
  278. package/.next/server/app/page_client-reference-manifest.js +1 -1
  279. package/.next/server/app/settings/page.js +2 -2
  280. package/.next/server/app/settings/page.js.nft.json +1 -1
  281. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  282. package/.next/server/app/settings.html +1 -1
  283. package/.next/server/app/settings.rsc +4 -4
  284. package/.next/server/app/v1/chat/completions/route.js +1 -1
  285. package/.next/server/app/v1/chat/completions/route.js.nft.json +1 -1
  286. package/.next/server/app/v1/chat/completions/route_client-reference-manifest.js +1 -1
  287. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js +2 -2
  288. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js.nft.json +1 -1
  289. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route_client-reference-manifest.js +1 -1
  290. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js +2 -2
  291. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js.nft.json +1 -1
  292. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route_client-reference-manifest.js +1 -1
  293. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js +1 -1
  294. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js.nft.json +1 -1
  295. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route_client-reference-manifest.js +1 -1
  296. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js +1 -1
  297. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js.nft.json +1 -1
  298. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route_client-reference-manifest.js +1 -1
  299. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js +2 -2
  300. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js.nft.json +1 -1
  301. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route_client-reference-manifest.js +1 -1
  302. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js +4 -4
  303. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js.nft.json +1 -1
  304. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route_client-reference-manifest.js +1 -1
  305. package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route.js +2 -0
  306. package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route.js.nft.json +1 -0
  307. package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route_client-reference-manifest.js +1 -0
  308. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route.js +1 -1
  309. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route.js.nft.json +1 -1
  310. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route_client-reference-manifest.js +1 -1
  311. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js +1 -1
  312. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js.nft.json +1 -1
  313. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route_client-reference-manifest.js +1 -1
  314. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js +2 -2
  315. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js.nft.json +1 -1
  316. package/.next/server/app/v1/chat/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
  317. package/.next/server/app/v1/chat/conversations/route.js +2 -2
  318. package/.next/server/app/v1/chat/conversations/route.js.nft.json +1 -1
  319. package/.next/server/app/v1/chat/conversations/route_client-reference-manifest.js +1 -1
  320. package/.next/server/app/v1/chat/events/route.js +3 -3
  321. package/.next/server/app/v1/chat/events/route.js.nft.json +1 -1
  322. package/.next/server/app/v1/chat/events/route_client-reference-manifest.js +1 -1
  323. package/.next/server/app/v1/models/route.js +2 -2
  324. package/.next/server/app/v1/models/route.js.nft.json +1 -1
  325. package/.next/server/app/v1/models/route_client-reference-manifest.js +1 -1
  326. package/.next/server/app/waves/page.js +4 -4
  327. package/.next/server/app/waves/page.js.nft.json +1 -1
  328. package/.next/server/app/waves/page_client-reference-manifest.js +1 -1
  329. package/.next/server/app/waves.html +1 -1
  330. package/.next/server/app/waves.rsc +4 -4
  331. package/.next/server/app-paths-manifest.json +20 -17
  332. package/.next/server/chunks/1114.js +1 -1
  333. package/.next/server/chunks/1226.js +1 -1
  334. package/.next/server/chunks/1314.js +1 -1
  335. package/.next/server/chunks/{6529.js → 1578.js} +2 -2
  336. package/.next/server/chunks/1634.js +1 -0
  337. package/.next/server/chunks/166.js +5 -5
  338. package/.next/server/chunks/1690.js +1 -0
  339. package/.next/server/chunks/2180.js +1 -0
  340. package/.next/server/chunks/227.js +2 -2
  341. package/.next/server/chunks/2273.js +2 -0
  342. package/.next/server/chunks/237.js +1 -0
  343. package/.next/server/chunks/2695.js +2 -2
  344. package/.next/server/chunks/2859.js +1 -1
  345. package/.next/server/chunks/2866.js +2 -0
  346. package/.next/server/chunks/{7674.js → 3030.js} +1 -1
  347. package/.next/server/chunks/3128.js +4 -4
  348. package/.next/server/chunks/{8730.js → 3489.js} +1 -1
  349. package/.next/server/chunks/3570.js +228 -105
  350. package/.next/server/chunks/3629.js +1 -1
  351. package/.next/server/chunks/3912.js +2 -0
  352. package/.next/server/chunks/3984.js +4 -4
  353. package/.next/server/chunks/4265.js +1 -1
  354. package/.next/server/chunks/4366.js +2 -0
  355. package/.next/server/chunks/4551.js +6 -0
  356. package/.next/server/chunks/4566.js +6 -0
  357. package/.next/server/chunks/4671.js +1 -1
  358. package/.next/server/chunks/4681.js +1 -1
  359. package/.next/server/chunks/4685.js +1 -0
  360. package/.next/server/chunks/4771.js +2 -2
  361. package/.next/server/chunks/4961.js +2 -0
  362. package/.next/server/chunks/5040.js +53 -0
  363. package/.next/server/chunks/5067.js +1 -1
  364. package/.next/server/chunks/544.js +135 -0
  365. package/.next/server/chunks/5463.js +1 -1
  366. package/.next/server/chunks/5544.js +5 -5
  367. package/.next/server/chunks/5548.js +62 -0
  368. package/.next/server/chunks/5561.js +1 -0
  369. package/.next/server/chunks/5705.js +1 -0
  370. package/.next/server/chunks/5708.js +1 -1
  371. package/.next/server/chunks/5829.js +1 -0
  372. package/.next/server/chunks/5863.js +37 -0
  373. package/.next/server/chunks/5880.js +1 -1
  374. package/.next/server/chunks/6034.js +77 -0
  375. package/.next/server/chunks/6226.js +6 -0
  376. package/.next/server/chunks/6404.js +2 -0
  377. package/.next/server/chunks/6432.js +1 -0
  378. package/.next/server/chunks/6496.js +1 -0
  379. package/.next/server/chunks/6793.js +1 -0
  380. package/.next/server/chunks/694.js +3 -0
  381. package/.next/server/chunks/701.js +1 -1
  382. package/.next/server/chunks/7506.js +1 -1
  383. package/.next/server/chunks/7579.js +4 -4
  384. package/.next/server/chunks/7634.js +4 -0
  385. package/.next/server/chunks/7724.js +1 -0
  386. package/.next/server/chunks/7821.js +1 -1
  387. package/.next/server/chunks/793.js +15 -5
  388. package/.next/server/chunks/7969.js +1 -0
  389. package/.next/server/chunks/{6537.js → 8001.js} +1 -1
  390. package/.next/server/chunks/8034.js +1 -0
  391. package/.next/server/chunks/8092.js +1 -0
  392. package/.next/server/chunks/{8568.js → 8192.js} +1 -1
  393. package/.next/server/chunks/826.js +2 -0
  394. package/.next/server/chunks/8298.js +1 -0
  395. package/.next/server/chunks/8321.js +1 -0
  396. package/.next/server/chunks/8356.js +1 -0
  397. package/.next/server/chunks/8366.js +90 -0
  398. package/.next/server/chunks/8387.js +1 -1
  399. package/.next/server/chunks/848.js +39 -0
  400. package/.next/server/chunks/8615.js +1 -0
  401. package/.next/server/chunks/8645.js +2 -0
  402. package/.next/server/chunks/8739.js +1 -1
  403. package/.next/server/chunks/8851.js +1 -0
  404. package/.next/server/chunks/9174.js +1 -0
  405. package/.next/server/chunks/9313.js +1 -0
  406. package/.next/server/chunks/94.js +1 -1
  407. package/.next/server/chunks/9406.js +2 -2
  408. package/.next/server/chunks/9509.js +2 -2
  409. package/.next/server/chunks/9537.js +39 -0
  410. package/.next/server/chunks/9576.js +2 -0
  411. package/.next/server/chunks/9671.js +1 -1
  412. package/.next/server/chunks/9724.js +16 -6
  413. package/.next/server/chunks/9857.js +1 -0
  414. package/.next/server/chunks/{3298.js → 9868.js} +2 -2
  415. package/.next/server/chunks/9957.js +1 -0
  416. package/.next/server/chunks/9983.js +2 -0
  417. package/.next/server/edge-instrumentation.js.map +1 -1
  418. package/.next/server/functions-config-manifest.json +2 -2
  419. package/.next/server/instrumentation.js.nft.json +1 -1
  420. package/.next/server/middleware-build-manifest.js +1 -1
  421. package/.next/server/middleware-manifest.json +5 -5
  422. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  423. package/.next/server/pages/404.html +1 -1
  424. package/.next/server/pages/500.html +1 -1
  425. package/.next/server/server-reference-manifest.js +1 -1
  426. package/.next/server/server-reference-manifest.json +1 -1
  427. package/.next/server/src/middleware.js +2 -2
  428. package/.next/server/src/middleware.js.map +1 -1
  429. package/.next/static/A9jP2ydtYbqx-IayWP2Sg/_buildManifest.js +1 -0
  430. package/.next/static/chunks/1496-d478bce7d7c85080.js +1 -0
  431. package/.next/static/chunks/1572-b663a83bba28a0a1.js +8 -0
  432. package/.next/static/chunks/1641-e5ff8f112da0a335.js +1 -0
  433. package/.next/static/chunks/1988-bd73f26184e930c1.js +1 -0
  434. package/.next/static/chunks/2266-d812473724cc6643.js +1 -0
  435. package/.next/static/chunks/{8345.bc5534ec13abc9ee.js → 2969.eb9ff8cd2a5034b0.js} +1 -1
  436. package/.next/static/chunks/3089.a0856f8093b90939.js +1 -0
  437. package/.next/static/chunks/{2005-f9d38c39f10c321f.js → 3189-fa8ec6d719d5e72b.js} +1 -1
  438. package/.next/static/chunks/3452-a639f121f2953f50.js +62 -0
  439. package/.next/static/chunks/3560-5bdceef09b50e1c3.js +1 -0
  440. package/.next/static/chunks/3659-0ab9580d5ee5deea.js +1 -0
  441. package/.next/static/chunks/3672-cd86ace43288da79.js +1 -0
  442. package/.next/static/chunks/3711-0050bb4d345c2c9c.js +1 -0
  443. package/.next/static/chunks/4147-20897d83b3cd3978.js +39 -0
  444. package/.next/static/chunks/435-17c79f3b9f8dd38d.js +1 -0
  445. package/.next/static/chunks/454.5fc2f8eef98483e3.js +1 -0
  446. package/.next/static/chunks/469-1f043fe082d9f475.js +1 -0
  447. package/.next/static/chunks/4740-62814d07b2b7f760.js +1 -0
  448. package/.next/static/chunks/5418-45aa7e646ad024be.js +1 -0
  449. package/.next/static/chunks/5441-cb0c31de8bce65c3.js +1 -0
  450. package/.next/static/chunks/6404-86615a5f5ce5c00f.js +1 -0
  451. package/.next/static/chunks/7445-d8a8be6e451c522e.js +1 -0
  452. package/.next/static/chunks/{3827-9e9a6e11ef808d90.js → 8041-05830e887c133085.js} +1 -1
  453. package/.next/static/chunks/812-dfe7ba07ddb7a565.js +1 -0
  454. package/.next/static/chunks/8404-14ef0345dc401ac5.js +1 -0
  455. package/.next/static/chunks/8678-c6c6be2672f337f6.js +1 -0
  456. package/.next/static/chunks/8855-f802599c4af81cca.js +1 -0
  457. package/.next/static/chunks/9562-5494feecd8c6f7a3.js +1 -0
  458. package/.next/static/chunks/9581-6d2523fd68a5e3c4.js +1 -0
  459. package/.next/static/chunks/app/_not-found/page-26055690a2426e22.js +1 -0
  460. package/.next/static/chunks/app/api/approvals/[id]/route-1a4c9e7a416ccbcf.js +1 -0
  461. package/.next/static/chunks/app/api/approvals/route-1a4c9e7a416ccbcf.js +1 -0
  462. package/.next/static/chunks/app/api/backup/route-1a4c9e7a416ccbcf.js +1 -0
  463. package/.next/static/chunks/app/api/browse/route-1a4c9e7a416ccbcf.js +1 -0
  464. package/.next/static/chunks/app/api/bugs/enhance/route-1a4c9e7a416ccbcf.js +1 -0
  465. package/.next/static/chunks/app/api/cwd/route-1a4c9e7a416ccbcf.js +1 -0
  466. package/.next/static/chunks/app/api/encryption/secure/route-1a4c9e7a416ccbcf.js +1 -0
  467. package/.next/static/chunks/app/api/env/route-1a4c9e7a416ccbcf.js +1 -0
  468. package/.next/static/chunks/app/api/flow/[id]/route-1a4c9e7a416ccbcf.js +1 -0
  469. package/.next/static/chunks/app/api/flow/[id]/versions/[versionId]/route-1a4c9e7a416ccbcf.js +1 -0
  470. package/.next/static/chunks/app/api/flow/[id]/versions/route-1a4c9e7a416ccbcf.js +1 -0
  471. package/.next/static/chunks/app/api/flow/compile/route-1a4c9e7a416ccbcf.js +1 -0
  472. package/.next/static/chunks/app/api/flow/generate/route-1a4c9e7a416ccbcf.js +1 -0
  473. package/.next/static/chunks/app/api/flow/improve/route-1a4c9e7a416ccbcf.js +1 -0
  474. package/.next/static/chunks/app/api/flow/prompt-renderer/route-1a4c9e7a416ccbcf.js +1 -0
  475. package/.next/static/chunks/app/api/flow/quick-chat/route-1a4c9e7a416ccbcf.js +1 -0
  476. package/.next/static/chunks/app/api/flow/repair/route-1a4c9e7a416ccbcf.js +1 -0
  477. package/.next/static/chunks/app/api/flow/route-1a4c9e7a416ccbcf.js +1 -0
  478. package/.next/static/chunks/app/api/git/route-1a4c9e7a416ccbcf.js +1 -0
  479. package/.next/static/chunks/app/api/init/route-1a4c9e7a416ccbcf.js +1 -0
  480. package/.next/static/chunks/app/api/local-models/capability/route-1a4c9e7a416ccbcf.js +1 -0
  481. package/.next/static/chunks/app/api/local-models/pull/route-1a4c9e7a416ccbcf.js +1 -0
  482. package/.next/static/chunks/app/api/local-models/suggest/route-1a4c9e7a416ccbcf.js +1 -0
  483. package/.next/static/chunks/app/api/mcp/app-sandbox/route-1a4c9e7a416ccbcf.js +1 -0
  484. package/.next/static/chunks/app/api/mcp/cancel/route-1a4c9e7a416ccbcf.js +1 -0
  485. package/.next/static/chunks/app/api/mcp/oauth-capability/route-1a4c9e7a416ccbcf.js +1 -0
  486. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-1a4c9e7a416ccbcf.js +1 -0
  487. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-1a4c9e7a416ccbcf.js +1 -0
  488. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-1a4c9e7a416ccbcf.js +1 -0
  489. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-1a4c9e7a416ccbcf.js +1 -0
  490. package/.next/static/chunks/app/api/mcp/servers/[name]/route-1a4c9e7a416ccbcf.js +1 -0
  491. package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-1a4c9e7a416ccbcf.js +1 -0
  492. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-1a4c9e7a416ccbcf.js +1 -0
  493. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-1a4c9e7a416ccbcf.js +1 -0
  494. package/.next/static/chunks/app/api/mcp/servers/route-1a4c9e7a416ccbcf.js +1 -0
  495. package/.next/static/chunks/app/api/mcp/test-connection/route-1a4c9e7a416ccbcf.js +1 -0
  496. package/.next/static/chunks/app/api/mcp/test-connection/stream/route-1a4c9e7a416ccbcf.js +1 -0
  497. package/.next/static/chunks/app/api/mcp-registry/route-1a4c9e7a416ccbcf.js +1 -0
  498. package/.next/static/chunks/app/api/mcp-registry/spotlight/route-1a4c9e7a416ccbcf.js +1 -0
  499. package/.next/static/chunks/app/api/model/[id]/route-1a4c9e7a416ccbcf.js +1 -0
  500. package/.next/static/chunks/app/api/model/provider/route-1a4c9e7a416ccbcf.js +1 -0
  501. package/.next/static/chunks/app/api/model/route-1a4c9e7a416ccbcf.js +1 -0
  502. package/.next/static/chunks/app/api/model/test/route-1a4c9e7a416ccbcf.js +1 -0
  503. package/.next/static/chunks/app/api/oauth/callback/route-1a4c9e7a416ccbcf.js +1 -0
  504. package/.next/static/chunks/app/api/oauth/initiate/route-1a4c9e7a416ccbcf.js +1 -0
  505. package/.next/static/chunks/app/api/oauth/reset/route-1a4c9e7a416ccbcf.js +1 -0
  506. package/.next/static/chunks/app/api/packages/build/route-1a4c9e7a416ccbcf.js +1 -0
  507. package/.next/static/chunks/app/api/packages/derive-secrets/route-1a4c9e7a416ccbcf.js +1 -0
  508. package/.next/static/chunks/app/api/packages/install/route-1a4c9e7a416ccbcf.js +1 -0
  509. package/.next/static/chunks/app/api/packages/install/status/route-1a4c9e7a416ccbcf.js +1 -0
  510. package/.next/static/chunks/app/api/packages/installed/route-1a4c9e7a416ccbcf.js +1 -0
  511. package/.next/static/chunks/app/api/packages/resolve/route-1a4c9e7a416ccbcf.js +1 -0
  512. package/.next/static/chunks/app/api/packages/scan-targets/route-1a4c9e7a416ccbcf.js +1 -0
  513. package/.next/static/chunks/app/api/packages/search/route-1a4c9e7a416ccbcf.js +1 -0
  514. package/.next/static/chunks/app/api/packages/uninstall/route-1a4c9e7a416ccbcf.js +1 -0
  515. package/.next/static/chunks/app/api/planned-executions/[id]/route-1a4c9e7a416ccbcf.js +1 -0
  516. package/.next/static/chunks/app/api/planned-executions/[id]/run/route-1a4c9e7a416ccbcf.js +1 -0
  517. package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-1a4c9e7a416ccbcf.js +1 -0
  518. package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-1a4c9e7a416ccbcf.js +1 -0
  519. package/.next/static/chunks/app/api/planned-executions/reconcile/route-1a4c9e7a416ccbcf.js +1 -0
  520. package/.next/static/chunks/app/api/planned-executions/route-1a4c9e7a416ccbcf.js +1 -0
  521. package/.next/static/chunks/app/api/registry/auth/resend/route-1a4c9e7a416ccbcf.js +1 -0
  522. package/.next/static/chunks/app/api/registry/auth/reset/route-1a4c9e7a416ccbcf.js +1 -0
  523. package/.next/static/chunks/app/api/registry/auth/route-1a4c9e7a416ccbcf.js +1 -0
  524. package/.next/static/chunks/app/api/registry/oauth/callback/route-1a4c9e7a416ccbcf.js +1 -0
  525. package/.next/static/chunks/app/api/registry/oauth/initiate/route-1a4c9e7a416ccbcf.js +1 -0
  526. package/.next/static/chunks/app/api/registry/publish/route-1a4c9e7a416ccbcf.js +1 -0
  527. package/.next/static/chunks/app/api/registry/settings/route-1a4c9e7a416ccbcf.js +1 -0
  528. package/.next/static/chunks/app/api/restore/route-1a4c9e7a416ccbcf.js +1 -0
  529. package/.next/static/chunks/app/api/runs/active/route-1a4c9e7a416ccbcf.js +1 -0
  530. package/.next/static/chunks/app/api/storage/route-1a4c9e7a416ccbcf.js +1 -0
  531. package/.next/static/chunks/app/api/update/route-1a4c9e7a416ccbcf.js +1 -0
  532. package/.next/static/chunks/app/api/waves/route-1a4c9e7a416ccbcf.js +1 -0
  533. package/.next/static/chunks/app/api/webhooks/[id]/route-1a4c9e7a416ccbcf.js +1 -0
  534. package/.next/static/chunks/app/chat/page-558edb21321a32d0.js +1 -0
  535. package/.next/static/chunks/app/docs/{page-250523af44e96120.js → page-fc30f613607b8a26.js} +1 -1
  536. package/.next/static/chunks/app/executions/page-e71689c7256af1e8.js +1 -0
  537. package/.next/static/chunks/app/flows/page-e90e8d7b4c1bd1c8.js +1 -0
  538. package/.next/static/chunks/app/layout-038b35b382eef11d.js +1 -0
  539. package/.next/static/chunks/app/mcp/page-6041156fc67ef361.js +1 -0
  540. package/.next/static/chunks/app/mcp-flows/route-1a4c9e7a416ccbcf.js +1 -0
  541. package/.next/static/chunks/app/mcp-proxy/[server]/route-1a4c9e7a416ccbcf.js +1 -0
  542. package/.next/static/chunks/app/models/{error-5732fbb053e182c5.js → error-1718b538d6967e56.js} +1 -1
  543. package/.next/static/chunks/app/models/{loading-57d1c02d0817fc47.js → loading-1687ae86584f5b1b.js} +1 -1
  544. package/.next/static/chunks/app/models/page-d16f2721e7a93b43.js +1 -0
  545. package/.next/static/chunks/app/packages/page-c6b0e7aa95bc1064.js +1 -0
  546. package/.next/static/chunks/app/page-5c7fccd019942d46.js +1 -0
  547. package/.next/static/chunks/app/settings/page-fb336bb049bab72a.js +1 -0
  548. package/.next/static/chunks/app/v1/chat/completions/route-1a4c9e7a416ccbcf.js +1 -0
  549. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-1a4c9e7a416ccbcf.js +1 -0
  550. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-1a4c9e7a416ccbcf.js +1 -0
  551. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-1a4c9e7a416ccbcf.js +1 -0
  552. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-1a4c9e7a416ccbcf.js +1 -0
  553. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-1a4c9e7a416ccbcf.js +1 -0
  554. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-1a4c9e7a416ccbcf.js +1 -0
  555. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/inject/route-1a4c9e7a416ccbcf.js +1 -0
  556. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-1a4c9e7a416ccbcf.js +1 -0
  557. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-1a4c9e7a416ccbcf.js +1 -0
  558. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-1a4c9e7a416ccbcf.js +1 -0
  559. package/.next/static/chunks/app/v1/chat/conversations/route-1a4c9e7a416ccbcf.js +1 -0
  560. package/.next/static/chunks/app/v1/chat/events/route-1a4c9e7a416ccbcf.js +1 -0
  561. package/.next/static/chunks/app/v1/models/route-1a4c9e7a416ccbcf.js +1 -0
  562. package/.next/static/chunks/app/waves/page-3cf4b47b12662196.js +1 -0
  563. package/.next/static/chunks/{main-app-faff38c77cb00119.js → main-app-2de821d2899bb841.js} +1 -1
  564. package/.next/static/chunks/webpack-2d8e0c13c0b865fe.js +1 -0
  565. package/.next/static/css/30253fcfa8035221.css +1 -0
  566. package/.next/trace +10 -10
  567. package/.next/types/app/api/approvals/[id]/route.ts +1 -1
  568. package/.next/types/app/api/approvals/route.ts +1 -1
  569. package/.next/types/app/api/backup/route.ts +1 -1
  570. package/.next/types/app/api/browse/route.ts +1 -1
  571. package/.next/types/app/api/bugs/enhance/route.ts +1 -1
  572. package/.next/types/app/api/cwd/route.ts +1 -1
  573. package/.next/types/app/api/encryption/secure/route.ts +1 -1
  574. package/.next/types/app/api/env/route.ts +1 -1
  575. package/.next/types/app/api/flow/[id]/route.ts +1 -1
  576. package/.next/types/app/api/flow/[id]/versions/[versionId]/route.ts +1 -1
  577. package/.next/types/app/api/flow/[id]/versions/route.ts +1 -1
  578. package/.next/types/app/api/flow/compile/route.ts +1 -1
  579. package/.next/types/app/api/flow/generate/route.ts +1 -1
  580. package/.next/types/app/api/flow/improve/route.ts +1 -1
  581. package/.next/types/app/api/flow/prompt-renderer/route.ts +1 -1
  582. package/.next/types/app/api/flow/quick-chat/route.ts +1 -1
  583. package/.next/types/app/api/flow/repair/route.ts +1 -1
  584. package/.next/types/app/api/flow/route.ts +1 -1
  585. package/.next/types/app/api/git/route.ts +1 -1
  586. package/.next/types/app/api/init/route.ts +1 -1
  587. package/.next/types/app/api/local-models/capability/route.ts +1 -1
  588. package/.next/types/app/api/local-models/pull/route.ts +1 -1
  589. package/.next/types/app/api/local-models/suggest/route.ts +1 -1
  590. package/.next/types/app/api/mcp/app-sandbox/route.ts +1 -1
  591. package/.next/types/app/api/mcp/cancel/route.ts +1 -1
  592. package/.next/types/app/api/mcp/oauth-capability/route.ts +1 -1
  593. package/.next/types/app/api/mcp/servers/[name]/prompts/get/route.ts +1 -1
  594. package/.next/types/app/api/mcp/servers/[name]/prompts/route.ts +1 -1
  595. package/.next/types/app/api/mcp/servers/[name]/resources/read/route.ts +1 -1
  596. package/.next/types/app/api/mcp/servers/[name]/resources/route.ts +1 -1
  597. package/.next/types/app/api/mcp/servers/[name]/route.ts +1 -1
  598. package/.next/types/app/api/mcp/servers/[name]/status/route.ts +1 -1
  599. package/.next/types/app/api/mcp/servers/[name]/tools/[toolName]/route.ts +1 -1
  600. package/.next/types/app/api/mcp/servers/[name]/tools/route.ts +1 -1
  601. package/.next/types/app/api/mcp/servers/route.ts +1 -1
  602. package/.next/types/app/api/mcp/test-connection/route.ts +1 -1
  603. package/.next/types/app/api/mcp/test-connection/stream/route.ts +1 -1
  604. package/.next/types/app/api/mcp-registry/route.ts +1 -1
  605. package/.next/types/app/api/mcp-registry/spotlight/route.ts +1 -1
  606. package/.next/types/app/api/model/[id]/route.ts +1 -1
  607. package/.next/types/app/api/model/provider/route.ts +1 -1
  608. package/.next/types/app/api/model/route.ts +1 -1
  609. package/.next/types/app/api/model/test/route.ts +1 -1
  610. package/.next/types/app/api/oauth/callback/route.ts +1 -1
  611. package/.next/types/app/api/oauth/initiate/route.ts +1 -1
  612. package/.next/types/app/api/oauth/reset/route.ts +1 -1
  613. package/.next/types/app/api/packages/build/route.ts +1 -1
  614. package/.next/types/app/api/packages/derive-secrets/route.ts +1 -1
  615. package/.next/types/app/api/packages/install/route.ts +1 -1
  616. package/.next/types/app/api/packages/install/status/route.ts +1 -1
  617. package/.next/types/app/api/packages/installed/route.ts +1 -1
  618. package/.next/types/app/api/packages/resolve/route.ts +1 -1
  619. package/.next/types/app/api/packages/scan-targets/route.ts +347 -0
  620. package/.next/types/app/api/packages/search/route.ts +347 -0
  621. package/.next/types/app/api/packages/uninstall/route.ts +1 -1
  622. package/.next/types/app/api/planned-executions/[id]/route.ts +1 -1
  623. package/.next/types/app/api/planned-executions/[id]/run/route.ts +1 -1
  624. package/.next/types/app/api/planned-executions/[id]/runs/route.ts +1 -1
  625. package/.next/types/app/api/planned-executions/preview-schedule/route.ts +1 -1
  626. package/.next/types/app/api/planned-executions/reconcile/route.ts +1 -1
  627. package/.next/types/app/api/planned-executions/route.ts +1 -1
  628. package/.next/types/app/api/registry/auth/resend/route.ts +1 -1
  629. package/.next/types/app/api/registry/auth/reset/route.ts +1 -1
  630. package/.next/types/app/api/registry/auth/route.ts +1 -1
  631. package/.next/types/app/api/registry/oauth/callback/route.ts +1 -1
  632. package/.next/types/app/api/registry/oauth/initiate/route.ts +1 -1
  633. package/.next/types/app/api/registry/publish/route.ts +1 -1
  634. package/.next/types/app/api/registry/settings/route.ts +1 -1
  635. package/.next/types/app/api/restore/route.ts +1 -1
  636. package/.next/types/app/api/runs/active/route.ts +1 -1
  637. package/.next/types/app/api/storage/route.ts +1 -1
  638. package/.next/types/app/api/update/route.ts +1 -1
  639. package/.next/types/app/api/waves/route.ts +1 -1
  640. package/.next/types/app/api/webhooks/[id]/route.ts +1 -1
  641. package/.next/types/app/chat/page.ts +1 -1
  642. package/.next/types/app/docs/page.ts +1 -1
  643. package/.next/types/app/executions/page.ts +1 -1
  644. package/.next/types/app/flows/page.ts +1 -1
  645. package/.next/types/app/layout.ts +1 -1
  646. package/.next/types/app/mcp/page.ts +1 -1
  647. package/.next/types/app/mcp-flows/route.ts +1 -1
  648. package/.next/types/app/mcp-proxy/[server]/route.ts +1 -1
  649. package/.next/types/app/models/page.ts +1 -1
  650. package/.next/types/app/packages/page.ts +1 -1
  651. package/.next/types/app/page.ts +1 -1
  652. package/.next/types/app/settings/page.ts +1 -1
  653. package/.next/types/app/v1/chat/completions/route.ts +1 -1
  654. package/.next/types/app/v1/chat/conversations/[conversationId]/breakpoints/route.ts +1 -1
  655. package/.next/types/app/v1/chat/conversations/[conversationId]/cancel/route.ts +1 -1
  656. package/.next/types/app/v1/chat/conversations/[conversationId]/debug/continue/route.ts +1 -1
  657. package/.next/types/app/v1/chat/conversations/[conversationId]/debug/step/route.ts +1 -1
  658. package/.next/types/app/v1/chat/conversations/[conversationId]/edit-state/route.ts +1 -1
  659. package/.next/types/app/v1/chat/conversations/[conversationId]/events/route.ts +1 -1
  660. package/.next/types/app/v1/chat/conversations/[conversationId]/inject/route.ts +347 -0
  661. package/.next/types/app/v1/chat/conversations/[conversationId]/resources/route.ts +1 -1
  662. package/.next/types/app/v1/chat/conversations/[conversationId]/respond/route.ts +1 -1
  663. package/.next/types/app/v1/chat/conversations/[conversationId]/route.ts +1 -1
  664. package/.next/types/app/v1/chat/conversations/route.ts +1 -1
  665. package/.next/types/app/v1/chat/events/route.ts +1 -1
  666. package/.next/types/app/v1/models/route.ts +1 -1
  667. package/.next/types/app/waves/page.ts +1 -1
  668. package/.next/types/routes.d.ts +4 -1
  669. package/.next/types/validator.ts +27 -0
  670. package/README.md +6 -1
  671. package/bin/flujo.mjs +120 -120
  672. package/next.config.mjs +139 -139
  673. package/package.json +2 -1
  674. package/scripts/launch-next.mjs +112 -112
  675. package/.next/server/chunks/1083.js +0 -2
  676. package/.next/server/chunks/1197.js +0 -2
  677. package/.next/server/chunks/1373.js +0 -1
  678. package/.next/server/chunks/1604.js +0 -70
  679. package/.next/server/chunks/1659.js +0 -1
  680. package/.next/server/chunks/1819.js +0 -2
  681. package/.next/server/chunks/2434.js +0 -2
  682. package/.next/server/chunks/2666.js +0 -1
  683. package/.next/server/chunks/2940.js +0 -46
  684. package/.next/server/chunks/2985.js +0 -1
  685. package/.next/server/chunks/3273.js +0 -1
  686. package/.next/server/chunks/3304.js +0 -1
  687. package/.next/server/chunks/346.js +0 -1
  688. package/.next/server/chunks/3648.js +0 -1
  689. package/.next/server/chunks/38.js +0 -2
  690. package/.next/server/chunks/3951.js +0 -151
  691. package/.next/server/chunks/4042.js +0 -1
  692. package/.next/server/chunks/4239.js +0 -1
  693. package/.next/server/chunks/4426.js +0 -6
  694. package/.next/server/chunks/4661.js +0 -1
  695. package/.next/server/chunks/4765.js +0 -1
  696. package/.next/server/chunks/5148.js +0 -1
  697. package/.next/server/chunks/5471.js +0 -1
  698. package/.next/server/chunks/5958.js +0 -2
  699. package/.next/server/chunks/6005.js +0 -1
  700. package/.next/server/chunks/6126.js +0 -53
  701. package/.next/server/chunks/6849.js +0 -66
  702. package/.next/server/chunks/7214.js +0 -6
  703. package/.next/server/chunks/724.js +0 -27
  704. package/.next/server/chunks/7463.js +0 -6
  705. package/.next/server/chunks/7538.js +0 -21
  706. package/.next/server/chunks/8339.js +0 -1
  707. package/.next/server/chunks/8522.js +0 -2
  708. package/.next/server/chunks/8572.js +0 -1
  709. package/.next/server/chunks/8667.js +0 -1
  710. package/.next/server/chunks/869.js +0 -2
  711. package/.next/server/chunks/8979.js +0 -37
  712. package/.next/server/chunks/8994.js +0 -2
  713. package/.next/server/chunks/9165.js +0 -1
  714. package/.next/server/chunks/9387.js +0 -15
  715. package/.next/server/chunks/9400.js +0 -2
  716. package/.next/server/chunks/9472.js +0 -2
  717. package/.next/server/chunks/9583.js +0 -1
  718. package/.next/server/chunks/991.js +0 -2
  719. package/.next/static/Q6ITx_bZyoEOnKdZu_C7j/_buildManifest.js +0 -1
  720. package/.next/static/chunks/1594-309fa6363f215d76.js +0 -1
  721. package/.next/static/chunks/1809-e56cf3c476261e34.js +0 -1
  722. package/.next/static/chunks/1937-6bbdcdc660db562c.js +0 -1
  723. package/.next/static/chunks/1988-1b651d581fc44a36.js +0 -1
  724. package/.next/static/chunks/2164-7d6451e88a447de7.js +0 -1
  725. package/.next/static/chunks/218-6cbe09820faa3272.js +0 -1
  726. package/.next/static/chunks/2566-60acd5838abd9f3f.js +0 -1
  727. package/.next/static/chunks/2800-4fa29a3eeb693593.js +0 -1
  728. package/.next/static/chunks/289-98f50bfcf833d661.js +0 -1
  729. package/.next/static/chunks/3089.9e15df4ffd0fe4e8.js +0 -1
  730. package/.next/static/chunks/3418-a2f5d0c4f29ee2fb.js +0 -1
  731. package/.next/static/chunks/3556-b9855146c7506696.js +0 -1
  732. package/.next/static/chunks/3948-1cb8fc7a64805254.js +0 -1
  733. package/.next/static/chunks/3958-5641a828b320f2fe.js +0 -100
  734. package/.next/static/chunks/5328-4e556503b70e72b4.js +0 -1
  735. package/.next/static/chunks/5512.682bef7fd3a7c286.js +0 -1
  736. package/.next/static/chunks/6195-8c4c57628e9013d5.js +0 -1
  737. package/.next/static/chunks/6669-a949326b30ea1d39.js +0 -1
  738. package/.next/static/chunks/6777-4b0d05731a089de4.js +0 -1
  739. package/.next/static/chunks/6947-0ff3545efb53e959.js +0 -1
  740. package/.next/static/chunks/7304-e7cd725083617b81.js +0 -8
  741. package/.next/static/chunks/7445-2802e158c9093556.js +0 -1
  742. package/.next/static/chunks/795-704a0e742ecc2ef6.js +0 -1
  743. package/.next/static/chunks/812-3ceea0da38ad2891.js +0 -1
  744. package/.next/static/chunks/8551-a28272acfda62ac9.js +0 -1
  745. package/.next/static/chunks/8855-02889c9ab4bf0bcf.js +0 -1
  746. package/.next/static/chunks/9554-cb5bd72cb40e8dbe.js +0 -1
  747. package/.next/static/chunks/9562-ef0ddd4e6b9023cf.js +0 -1
  748. package/.next/static/chunks/app/_not-found/page-81dc485d60f94046.js +0 -1
  749. package/.next/static/chunks/app/api/approvals/[id]/route-c745e5b53b81491a.js +0 -1
  750. package/.next/static/chunks/app/api/approvals/route-c745e5b53b81491a.js +0 -1
  751. package/.next/static/chunks/app/api/backup/route-c745e5b53b81491a.js +0 -1
  752. package/.next/static/chunks/app/api/browse/route-c745e5b53b81491a.js +0 -1
  753. package/.next/static/chunks/app/api/bugs/enhance/route-c745e5b53b81491a.js +0 -1
  754. package/.next/static/chunks/app/api/cwd/route-c745e5b53b81491a.js +0 -1
  755. package/.next/static/chunks/app/api/encryption/secure/route-c745e5b53b81491a.js +0 -1
  756. package/.next/static/chunks/app/api/env/route-c745e5b53b81491a.js +0 -1
  757. package/.next/static/chunks/app/api/flow/[id]/route-c745e5b53b81491a.js +0 -1
  758. package/.next/static/chunks/app/api/flow/[id]/versions/[versionId]/route-c745e5b53b81491a.js +0 -1
  759. package/.next/static/chunks/app/api/flow/[id]/versions/route-c745e5b53b81491a.js +0 -1
  760. package/.next/static/chunks/app/api/flow/compile/route-c745e5b53b81491a.js +0 -1
  761. package/.next/static/chunks/app/api/flow/generate/route-c745e5b53b81491a.js +0 -1
  762. package/.next/static/chunks/app/api/flow/improve/route-c745e5b53b81491a.js +0 -1
  763. package/.next/static/chunks/app/api/flow/prompt-renderer/route-c745e5b53b81491a.js +0 -1
  764. package/.next/static/chunks/app/api/flow/quick-chat/route-c745e5b53b81491a.js +0 -1
  765. package/.next/static/chunks/app/api/flow/repair/route-c745e5b53b81491a.js +0 -1
  766. package/.next/static/chunks/app/api/flow/route-c745e5b53b81491a.js +0 -1
  767. package/.next/static/chunks/app/api/git/route-c745e5b53b81491a.js +0 -1
  768. package/.next/static/chunks/app/api/init/route-c745e5b53b81491a.js +0 -1
  769. package/.next/static/chunks/app/api/local-models/capability/route-c745e5b53b81491a.js +0 -1
  770. package/.next/static/chunks/app/api/local-models/pull/route-c745e5b53b81491a.js +0 -1
  771. package/.next/static/chunks/app/api/local-models/suggest/route-c745e5b53b81491a.js +0 -1
  772. package/.next/static/chunks/app/api/mcp/app-sandbox/route-c745e5b53b81491a.js +0 -1
  773. package/.next/static/chunks/app/api/mcp/cancel/route-c745e5b53b81491a.js +0 -1
  774. package/.next/static/chunks/app/api/mcp/oauth-capability/route-c745e5b53b81491a.js +0 -1
  775. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-c745e5b53b81491a.js +0 -1
  776. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-c745e5b53b81491a.js +0 -1
  777. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-c745e5b53b81491a.js +0 -1
  778. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-c745e5b53b81491a.js +0 -1
  779. package/.next/static/chunks/app/api/mcp/servers/[name]/route-c745e5b53b81491a.js +0 -1
  780. package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-c745e5b53b81491a.js +0 -1
  781. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-c745e5b53b81491a.js +0 -1
  782. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-c745e5b53b81491a.js +0 -1
  783. package/.next/static/chunks/app/api/mcp/servers/route-c745e5b53b81491a.js +0 -1
  784. package/.next/static/chunks/app/api/mcp/test-connection/route-c745e5b53b81491a.js +0 -1
  785. package/.next/static/chunks/app/api/mcp/test-connection/stream/route-c745e5b53b81491a.js +0 -1
  786. package/.next/static/chunks/app/api/mcp-registry/route-c745e5b53b81491a.js +0 -1
  787. package/.next/static/chunks/app/api/mcp-registry/spotlight/route-c745e5b53b81491a.js +0 -1
  788. package/.next/static/chunks/app/api/model/[id]/route-c745e5b53b81491a.js +0 -1
  789. package/.next/static/chunks/app/api/model/provider/route-c745e5b53b81491a.js +0 -1
  790. package/.next/static/chunks/app/api/model/route-c745e5b53b81491a.js +0 -1
  791. package/.next/static/chunks/app/api/model/test/route-c745e5b53b81491a.js +0 -1
  792. package/.next/static/chunks/app/api/oauth/callback/route-c745e5b53b81491a.js +0 -1
  793. package/.next/static/chunks/app/api/oauth/initiate/route-c745e5b53b81491a.js +0 -1
  794. package/.next/static/chunks/app/api/oauth/reset/route-c745e5b53b81491a.js +0 -1
  795. package/.next/static/chunks/app/api/packages/build/route-c745e5b53b81491a.js +0 -1
  796. package/.next/static/chunks/app/api/packages/derive-secrets/route-c745e5b53b81491a.js +0 -1
  797. package/.next/static/chunks/app/api/packages/install/route-c745e5b53b81491a.js +0 -1
  798. package/.next/static/chunks/app/api/packages/install/status/route-c745e5b53b81491a.js +0 -1
  799. package/.next/static/chunks/app/api/packages/installed/route-c745e5b53b81491a.js +0 -1
  800. package/.next/static/chunks/app/api/packages/resolve/route-c745e5b53b81491a.js +0 -1
  801. package/.next/static/chunks/app/api/packages/uninstall/route-c745e5b53b81491a.js +0 -1
  802. package/.next/static/chunks/app/api/planned-executions/[id]/route-c745e5b53b81491a.js +0 -1
  803. package/.next/static/chunks/app/api/planned-executions/[id]/run/route-c745e5b53b81491a.js +0 -1
  804. package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-c745e5b53b81491a.js +0 -1
  805. package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-c745e5b53b81491a.js +0 -1
  806. package/.next/static/chunks/app/api/planned-executions/reconcile/route-c745e5b53b81491a.js +0 -1
  807. package/.next/static/chunks/app/api/planned-executions/route-c745e5b53b81491a.js +0 -1
  808. package/.next/static/chunks/app/api/registry/auth/resend/route-c745e5b53b81491a.js +0 -1
  809. package/.next/static/chunks/app/api/registry/auth/reset/route-c745e5b53b81491a.js +0 -1
  810. package/.next/static/chunks/app/api/registry/auth/route-c745e5b53b81491a.js +0 -1
  811. package/.next/static/chunks/app/api/registry/oauth/callback/route-c745e5b53b81491a.js +0 -1
  812. package/.next/static/chunks/app/api/registry/oauth/initiate/route-c745e5b53b81491a.js +0 -1
  813. package/.next/static/chunks/app/api/registry/publish/route-c745e5b53b81491a.js +0 -1
  814. package/.next/static/chunks/app/api/registry/settings/route-c745e5b53b81491a.js +0 -1
  815. package/.next/static/chunks/app/api/restore/route-c745e5b53b81491a.js +0 -1
  816. package/.next/static/chunks/app/api/runs/active/route-c745e5b53b81491a.js +0 -1
  817. package/.next/static/chunks/app/api/storage/route-c745e5b53b81491a.js +0 -1
  818. package/.next/static/chunks/app/api/update/route-c745e5b53b81491a.js +0 -1
  819. package/.next/static/chunks/app/api/waves/route-c745e5b53b81491a.js +0 -1
  820. package/.next/static/chunks/app/api/webhooks/[id]/route-c745e5b53b81491a.js +0 -1
  821. package/.next/static/chunks/app/chat/page-c39160ddf90bbae9.js +0 -1
  822. package/.next/static/chunks/app/executions/page-10d09f36de30939f.js +0 -1
  823. package/.next/static/chunks/app/flows/page-0d8fb471adfc2981.js +0 -1
  824. package/.next/static/chunks/app/layout-eea7078d7553c21a.js +0 -1
  825. package/.next/static/chunks/app/mcp/page-8ad71bf5801bfe5f.js +0 -1
  826. package/.next/static/chunks/app/mcp-flows/route-c745e5b53b81491a.js +0 -1
  827. package/.next/static/chunks/app/mcp-proxy/[server]/route-c745e5b53b81491a.js +0 -1
  828. package/.next/static/chunks/app/models/page-17e8e6668f92f58d.js +0 -1
  829. package/.next/static/chunks/app/packages/page-9f61751e98134f3d.js +0 -1
  830. package/.next/static/chunks/app/page-d3ea90b065b95d1e.js +0 -1
  831. package/.next/static/chunks/app/settings/page-afbf8790e99fecaf.js +0 -1
  832. package/.next/static/chunks/app/v1/chat/completions/route-c745e5b53b81491a.js +0 -1
  833. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-c745e5b53b81491a.js +0 -1
  834. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-c745e5b53b81491a.js +0 -1
  835. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-c745e5b53b81491a.js +0 -1
  836. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-c745e5b53b81491a.js +0 -1
  837. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-c745e5b53b81491a.js +0 -1
  838. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-c745e5b53b81491a.js +0 -1
  839. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-c745e5b53b81491a.js +0 -1
  840. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-c745e5b53b81491a.js +0 -1
  841. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-c745e5b53b81491a.js +0 -1
  842. package/.next/static/chunks/app/v1/chat/conversations/route-c745e5b53b81491a.js +0 -1
  843. package/.next/static/chunks/app/v1/chat/events/route-c745e5b53b81491a.js +0 -1
  844. package/.next/static/chunks/app/v1/models/route-c745e5b53b81491a.js +0 -1
  845. package/.next/static/chunks/app/waves/page-97ad6b51c9cae4b3.js +0 -1
  846. package/.next/static/chunks/webpack-0d4a4e773990ac44.js +0 -1
  847. package/.next/static/css/40f9bef305b11bf5.css +0 -1
  848. /package/.next/static/{Q6ITx_bZyoEOnKdZu_C7j → A9jP2ydtYbqx-IayWP2Sg}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[435],{14368:(e,t,l)=>{l.d(t,{A:()=>d});var a=l(95155);l(12115);var n=l(94049),o=l(9562),r=l(25635),s=l(22003),i=l(84765);let d=e=>{let{config:t,onChange:l}=e;return(0,a.jsxs)(n.default,{sx:{mt:1},children:[(0,a.jsx)(o.A,{fullWidth:!0,label:"URL to watch",value:t.url,onChange:e=>l({...t,url:e.target.value}),placeholder:"https://example.com/status or an API/feed URL",margin:"normal",type:"url"}),(0,a.jsx)(r.default,{variant:"subtitle2",sx:{mt:1},children:"How often to check"}),(0,a.jsx)(i.A,{verb:"Check",cron:t.cron,timezone:t.timezone,onChange:e=>{let{cron:a,timezone:n}=e;return l({...t,cron:a,timezone:n})}}),(0,a.jsx)(s.A,{severity:"info",sx:{mt:1},children:"The first check only takes a snapshot; the flow runs when a later check finds different content, and the fetched content is handed to the flow. Pages that embed ever-changing bits (timestamps, session tokens) look “changed” on every check — plain APIs, feeds, and raw files work best."})]})}},21997:(e,t,l)=>{l.d(t,{A:()=>A});var a=l(95155),n=l(12115),o=l(94049),r=l(9562),s=l(56422),i=l(78470),d=l(41983),c=l(25635),u=l(17325),h=l(99944),m=l(22822),f=l(22003),x=l(98267),p=l(20537),g=l(37960),v=l(63186),y=l(80007),w=l(62640);let b=[{value:"add",label:"A file appears"},{value:"change",label:"A file changes"},{value:"unlink",label:"A file is deleted"}],A=e=>{var t;let{config:l,onChange:A}=e,[j,k]=(0,n.useState)(!1);return(0,a.jsxs)(o.default,{sx:{mt:1},children:[(0,a.jsx)(r.A,{fullWidth:!0,label:"Folder (or file) to watch",value:l.path,onChange:e=>A({...l,path:e.target.value}),placeholder:"e.g. C:\\Users\\me\\Documents\\inbox",margin:"normal",InputProps:{endAdornment:(0,a.jsx)(s.A,{position:"end",children:(0,a.jsx)(i.A,{title:"Browse folders (on the FLUJO machine)",children:(0,a.jsx)(d.A,{edge:"end",onClick:()=>k(!0),children:(0,a.jsx)(y.A,{})})})})}}),(0,a.jsx)(w.A,{open:j,title:"Choose what to watch",selectFiles:!0,initialPath:l.path||void 0,onClose:()=>k(!1),onSelect:e=>A({...l,path:e})}),(0,a.jsx)(r.A,{fullWidth:!0,label:"Only files matching (optional)",value:l.glob||"",onChange:e=>A({...l,glob:e.target.value||void 0}),placeholder:"e.g. *.pdf or reports/**/*.csv",helperText:"Simple patterns: * matches within a folder, ** across folders, ? one character.",margin:"normal"}),(0,a.jsx)(c.default,{variant:"subtitle2",sx:{mt:1},children:"Run when…"}),(0,a.jsx)(u.A,{row:!0,children:b.map(e=>(0,a.jsx)(h.A,{control:(0,a.jsx)(m.A,{checked:l.events.includes(e.value),onChange:t=>((e,t)=>{let a=t?[...l.events,e]:l.events.filter(t=>t!==e);A({...l,events:a})})(e.value,t.target.checked)}),label:e.label},e.value))}),(0,a.jsx)(f.A,{severity:"info",sx:{mt:1},children:"Bursts are batched: many files changing at once produce one run with all changes listed. If this flow writes into the watched folder, it will trigger itself in a loop — point its output somewhere else."}),(0,a.jsxs)(x.A,{disableGutters:!0,elevation:0,sx:{mt:1,"&:before":{display:"none"}},children:[(0,a.jsx)(p.A,{expandIcon:(0,a.jsx)(v.A,{}),sx:{px:0},children:(0,a.jsx)(c.default,{variant:"body2",color:"text.secondary",children:"Advanced"})}),(0,a.jsx)(g.A,{sx:{px:0},children:(0,a.jsx)(r.A,{label:"Quiet window (ms)",type:"number",value:null!=(t=l.debounceMs)?t:2e3,onChange:e=>A({...l,debounceMs:Math.max(0,Number(e.target.value)||0)}),helperText:"How long to wait after the last change before running.",inputProps:{min:0,step:500},sx:{width:220}})})]})]})}},23143:(e,t,l)=>{l.d(t,{A:()=>s});var a=l(95155);l(12115);var n=l(94049),o=l(25635),r=l(36741);let s=e=>{let{selected:t,icon:l,title:s,description:i,onClick:d}=e;return(0,a.jsxs)(n.default,{role:"radio","aria-checked":t,tabIndex:0,onClick:d,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),d())},sx:{flex:1,minWidth:200,position:"relative",p:2,borderRadius:2,border:2,borderColor:t?"primary.main":"divider",bgcolor:t?"action.selected":"background.paper",cursor:"pointer",transition:"border-color 120ms, background-color 120ms","&:hover":{borderColor:t?"primary.main":"text.disabled"},outline:"none","&:focus-visible":{boxShadow:e=>"0 0 0 3px ".concat(e.palette.primary.light)}},children:[t&&(0,a.jsx)(r.A,{color:"primary",fontSize:"small",sx:{position:"absolute",top:8,right:8}}),(0,a.jsxs)(n.default,{sx:{display:"flex",alignItems:"center",gap:1,mb:.5,color:t?"primary.main":"text.secondary"},children:[l,(0,a.jsx)(o.default,{variant:"subtitle1",sx:{fontWeight:600,color:"text.primary"},children:s})]}),(0,a.jsx)(o.default,{variant:"body2",color:"text.secondary",children:i})]})}},23833:(e,t,l)=>{l.d(t,{A:()=>b});var a=l(95155),n=l(12115),o=l(94049),r=l(25635),s=l(52641),i=l(95436),d=l(55606),c=l(86973),u=l(63109),h=l(9562),m=l(17325),f=l(99944),x=l(22822),p=l(21067),g=l(22003),v=l(93632);function y(e){if(!e||!Array.isArray(e.nodes))return[];let t=[];for(let n of e.nodes){var l,a;if((null==n||null==(l=n.data)?void 0:l.type)!=="signal")continue;let e=null==(a=n.data.properties)?void 0:a.topic;"string"==typeof e&&e.trim()&&t.push(e.trim())}return t}let w=(0,l(87021).h)("frontend/components/PlannedExecutions/FlowEventPanel"),b=e=>{var t,l,b,A,j,k,S,C,I,N,E,T,_,M,P,R,O,W;let{config:L,onChange:D,flows:F,currentExecutionId:U}=e,[G,z]=(0,n.useState)([]),[J,V]=(0,n.useState)(void 0!==L.maxChainDepth||void 0!==L.minIntervalMs),H=(null==(t=L.source)?void 0:t.topic)!==void 0?"topic":(null==(l=L.source)?void 0:l.executionId)!==void 0?"execution":"flow",K="topic"===H,Y=(0,n.useMemo)(()=>(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10,l=new Map;for(let t of e)t&&"string"==typeof t.id&&l.set(t.id,t);let a=new Map,n=(e,t)=>{a.has(e)||a.set(e,[]),a.get(e).push(t)};for(let a of e){if(!a||"string"!=typeof a.id)continue;let e=new Map;for(let t of y(a)){var o;e.set(t,(null!=(o=e.get(t))?o:0)+1)}for(let[t,l]of e)n(t,{flowId:a.id,flowName:a.name,signalNodeCount:l,viaSubflow:!1});for(let o of function(e,t){let l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,a=new Set,n=new Set,o=(e,r)=>{if(n.has(e)||r>l)return;n.add(e);let s=t.get(e);for(let e of y(s))a.add(e);for(let e of function(e){if(!e||!Array.isArray(e.nodes))return[];let t=[];for(let n of e.nodes){var l,a;if((null==n||null==(l=n.data)?void 0:l.type)!=="subflow")continue;let e=null!=(a=n.data.properties)?a:{};if("string"==typeof e.subflowId&&e.subflowId.trim()&&t.push(e.subflowId.trim()),Array.isArray(e.parallelSubflowIds))for(let l of e.parallelSubflowIds)"string"==typeof l&&l.trim()&&t.push(l.trim())}return Array.from(new Set(t))}(s))o(e,r+1)};return o(e,0),a}(a.id,l,t))e.has(o)||n(o,{flowId:a.id,flowName:a.name,signalNodeCount:0,viaSubflow:!0})}return a})(F),[F]),$=(0,n.useMemo)(()=>{let e=new Map;for(let t of F)(null==t?void 0:t.id)&&e.set(t.id,t.name);return e},[F]),q=(0,n.useMemo)(()=>{let e=new Map;for(let a of G){var t,l;let n=a.execution;if(n.id===U||(null==(t=n.trigger)?void 0:t.type)!=="flow-event")continue;let o=null==(l=n.trigger.source)?void 0:l.topic;if("string"!=typeof o||!o.trim())continue;let r=o.trim();e.has(r)||e.set(r,[]),e.get(r).push({executionId:n.id,executionName:n.name,flowId:n.flowId,flowName:$.get(n.flowId)})}return e},[G,U,$]),B=(0,n.useMemo)(()=>Array.from(new Set([...Y.keys(),...q.keys()])).sort((e,t)=>e.localeCompare(t)),[Y,q]),X=e=>{let t=Y.get(e);if(!t||0===t.length)return null;let l=Array.from(new Set(t.map(e=>(e.flowName||e.flowId)+(e.viaSubflow?" (via subflow)":""))));return"Emitted in: ".concat(l.join(", "))},Z=(null!=(I=null==(b=L.source)?void 0:b.topic)?I:"").trim(),Q=!Z||Y.has(Z);(0,n.useEffect)(()=>{let e=!1;return v.P.list().then(t=>{e||z(t.executions||[])}).catch(t=>{w.warn("Failed to load planned executions for source picker",t),e||z([])}),()=>{e=!0}},[]);let ee=(e,t)=>{var l;let a=new Set(null!=(l=L.on)?l:[]);t?a.add(e):a.delete(e),D({...L,on:Array.from(a)})};return(0,a.jsxs)(o.default,{sx:{mt:1},children:[(0,a.jsx)(r.default,{variant:"subtitle2",sx:{mt:1},children:"React to"}),(0,a.jsxs)(o.default,{sx:{display:"flex",gap:2,mt:1},children:[(0,a.jsxs)(s.A,{sx:{minWidth:180},children:[(0,a.jsx)(i.A,{id:"flow-event-source-kind",children:"Source"}),(0,a.jsxs)(d.A,{labelId:"flow-event-source-kind",label:"Source",value:H,onChange:e=>(e=>{D({...L,source:"flow"===e?{flowId:""}:"execution"===e?{executionId:""}:{topic:""}})})(e.target.value),children:[(0,a.jsx)(c.A,{value:"flow",children:"A flow (any run)"}),(0,a.jsx)(c.A,{value:"execution",children:"A planned execution"}),(0,a.jsx)(c.A,{value:"topic",children:"A signal topic"})]})]}),"topic"===H?(0,a.jsx)(s.A,{fullWidth:!0,children:(0,a.jsx)(u.A,{freeSolo:!0,autoHighlight:!0,options:B,value:null!=(N=null==(A=L.source)?void 0:A.topic)?N:"",inputValue:null!=(E=null==(j=L.source)?void 0:j.topic)?E:"",onInputChange:(e,t)=>D({...L,source:{topic:t}}),renderOption:(e,t)=>{let l=X(t),s=(e=>{let t=q.get(e);if(!t||0===t.length)return null;let l=Array.from(new Set(t.map(e=>e.flowName||e.flowId)));return"Used by ".concat(t.length," trigger").concat(1===t.length?"":"s"," → starts ").concat(l.join(", "))})(t);return(0,n.createElement)(o.default,{component:"li",...e,key:t},(0,a.jsxs)(o.default,{sx:{display:"flex",flexDirection:"column",py:.25},children:[(0,a.jsx)(r.default,{variant:"body2",sx:{fontWeight:600},children:t}),l&&(0,a.jsx)(r.default,{variant:"caption",color:"text.secondary",children:l}),s&&(0,a.jsx)(r.default,{variant:"caption",color:"text.secondary",children:s}),!l&&(0,a.jsx)(r.default,{variant:"caption",color:"warning.main",children:"No flow currently emits this signal"})]}))},renderInput:e=>{var t;return(0,a.jsx)(h.A,{...e,label:"Signal topic",placeholder:"e.g. review-blocked",helperText:Z?Q?null!=(t=X(Z))?t:"React when this signal is emitted.":"No flow currently emits this signal — the trigger will stay idle until one does.":"React when a signal node in any flow emits this topic. Suggestions come from your existing flows."})}})}):"flow"===H?(0,a.jsxs)(s.A,{fullWidth:!0,children:[(0,a.jsx)(i.A,{id:"flow-event-flow",children:"Flow to watch"}),(0,a.jsxs)(d.A,{labelId:"flow-event-flow",label:"Flow to watch",value:null!=(T=null==(k=L.source)?void 0:k.flowId)?T:"",onChange:e=>D({...L,source:{flowId:e.target.value}}),displayEmpty:!0,children:[0===F.length&&(0,a.jsx)(c.A,{value:"",disabled:!0,children:"No flows available"}),F.map(e=>(0,a.jsx)(c.A,{value:e.id,children:e.name},e.id))]})]}):(0,a.jsxs)(s.A,{fullWidth:!0,children:[(0,a.jsx)(i.A,{id:"flow-event-execution",children:"Planned execution to watch"}),(0,a.jsxs)(d.A,{labelId:"flow-event-execution",label:"Planned execution to watch",value:null!=(_=null==(S=L.source)?void 0:S.executionId)?_:"",onChange:e=>D({...L,source:{executionId:e.target.value}}),displayEmpty:!0,children:[0===G.filter(e=>e.execution.id!==U).length&&(0,a.jsx)(c.A,{value:"",disabled:!0,children:"No other planned executions"}),G.filter(e=>e.execution.id!==U).map(e=>(0,a.jsx)(c.A,{value:e.execution.id,children:e.execution.name},e.execution.id))]})]})]}),!K&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.default,{variant:"subtitle2",sx:{mt:2},children:"When it…"}),(0,a.jsxs)(m.A,{row:!0,children:[(0,a.jsx)(f.A,{control:(0,a.jsx)(x.A,{checked:(null!=(M=L.on)?M:[]).includes("completed"),onChange:e=>ee("completed",e.target.checked)}),label:"completes"}),(0,a.jsx)(f.A,{control:(0,a.jsx)(x.A,{checked:(null!=(P=L.on)?P:[]).includes("error"),onChange:e=>ee("error",e.target.checked)}),label:"errors"})]})]}),(0,a.jsx)(h.A,{fullWidth:!0,label:K?"Only when the payload contains (optional)":"Only when the output contains (optional)",value:null!=(R=null==(C=L.outputMatch)?void 0:C.contains)?R:"",onChange:e=>{let t=e.target.value,l={...L.outputMatch,contains:t||void 0},a=l.contains||l.regex?l:void 0;D({...L,outputMatch:a})},margin:"normal",placeholder:"e.g. FAILED, or leave empty to react to every matching run"}),(0,a.jsx)(f.A,{sx:{mt:1},control:(0,a.jsx)(x.A,{checked:J,onChange:e=>V(e.target.checked)}),label:"Advanced (loop safety)"}),J&&(0,a.jsxs)(o.default,{sx:{display:"flex",gap:2,mt:1},children:[(0,a.jsx)(h.A,{label:"Max chain depth",type:"number",value:null!=(O=L.maxChainDepth)?O:"",onChange:e=>D({...L,maxChainDepth:""===e.target.value?void 0:Number(e.target.value)}),helperText:"Stop after this many hops (default 5)",inputProps:{min:1}}),(0,a.jsx)(h.A,{label:"Cooldown (ms)",type:"number",value:null!=(W=L.minIntervalMs)?W:"",onChange:e=>D({...L,minIntervalMs:""===e.target.value?void 0:Number(e.target.value)}),helperText:"Minimum gap between fires",inputProps:{min:0}})]}),(0,a.jsx)(p.A,{sx:{mt:2}}),(0,a.jsx)(g.A,{severity:"info",sx:{mt:2},children:K?"The signal’s payload is handed to this flow. Emit a signal from a signal node in any flow to fire this one — fire-and-forget. To avoid runaway loops, a chain of fires stops at the max depth above, and the overlap-skip prevents a single execution from re-triggering itself while it’s still running.":"The upstream run’s output is handed to this flow, so it can build on what the other flow produced. To avoid runaway loops, a chain of flow-event fires stops at the max depth above, and the existing overlap-skip prevents a single execution from re-triggering itself while it’s still running."})]})}},27156:(e,t,l)=>{l.d(t,{Z:()=>a});var a=function(e){return e.MODELS="models",e.FLOWS="flows",e.CHAT_HISTORY="history",e.THEME="theme",e.ENCRYPTION_KEY="encryption_key",e.MCP_SERVERS="mcp_servers",e.GLOBAL_ENV_VARS="global_env_vars",e.CURRENT_CONVERSATION_ID="current_conversation_id",e.SELECTED_FLOW_ID="selected_flow_id",e.LAST_PICKED_FLOW_ID="last_picked_flow_id",e.SPEECH_SETTINGS="speech_settings",e.SPOTLIGHT_SERVERS="spotlight_servers",e.PLANNED_EXECUTIONS="planned_executions",e.MCP_AUTO_INSTALL_SETTINGS="mcp_auto_install_settings",e.MCP_QUALITY_SETTINGS="mcp_quality_settings",e.RUN_RESOURCE_SETTINGS="run_resource_settings",e.KV_STORE_SETTINGS="kv_store_settings",e.PENDING_APPROVALS="pending_approvals",e.MCP_INTERNAL_OVERRIDES="mcp_internal_overrides",e.PACKAGE_INSTALLS="package_installs",e.EXPERIMENTAL_SETTINGS="experimental_settings",e.REGISTRY_ACCOUNT="registry_account",e.REGISTRY_SETTINGS="registry_settings",e}({})},29692:(e,t,l)=>{l.d(t,{Zg:()=>a.Z,YM:()=>i,VH:()=>s,Mj:()=>r});var a=l(27156),n=l(12115);let o=(0,l(87021).h)("utils/storage/frontend.ts");function r(e,t){o.verbose("useLocalStorage: Entering method");let[l,a]=(0,n.useState)(t),[r,s]=(0,n.useState)(!0),i=(0,n.useRef)(l);return(0,n.useEffect)(()=>{i.current=l},[l]),(0,n.useEffect)(()=>{(async()=>{o.verbose("loadValue: Entering method");try{let l=await fetch("/api/storage?key=".concat(encodeURIComponent(e),"&defaultValue=").concat(encodeURIComponent(JSON.stringify(t)))),n=await l.json();l.ok&&a(n.value)}catch(t){o.warn('Error reading storage key "'.concat(e,'":'),t)}finally{s(!1)}})()},[e]),[l,(0,n.useCallback)(async t=>{o.verbose("setValue: Entering method");try{let l=t instanceof Function?t(i.current):t;if(a(l),!(await fetch("/api/storage",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:e,value:l})})).ok)throw Error("Failed to save value")}catch(t){o.warn('Error setting storage key "'.concat(e,'":'),t)}},[e]),r]}let s=async(e,t)=>{o.verbose("saveItem: Entering method");try{if(!(await fetch("/api/storage",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:e,value:t})})).ok)throw Error("Failed to save item")}catch(e){throw o.error("Error saving to storage:",e),e}},i=async(e,t)=>{o.verbose("loadItem: Entering method");try{let l=await fetch("/api/storage?key=".concat(encodeURIComponent(e),"&defaultValue=").concat(encodeURIComponent(JSON.stringify(t))));if(!l.ok)throw Error("Failed to load item");return(await l.json()).value}catch(e){return o.error("Error loading from storage:",e),t}}},43673:(e,t,l)=>{l.d(t,{A:()=>p});var a=l(95155),n=l(12115),o=l(94049),r=l(22003),s=l(9562),i=l(78470),d=l(41983),c=l(91871),u=l(25635),h=l(99944),m=l(22822),f=l(52277),x=l(9693);let p=e=>{let{config:t,onChange:l,executionId:p,saved:g}=e,[v,y]=(0,n.useState)(null),w=window.location.origin,b="".concat(w,"/api/webhooks/").concat(p),A=async(e,t)=>{try{await navigator.clipboard.writeText(t),y(e),setTimeout(()=>y(null),1500)}catch(e){}};return(0,a.jsxs)(o.default,{sx:{mt:1},children:[!g&&(0,a.jsx)(r.A,{severity:"info",sx:{mb:2},children:"This URL and token are ready to copy now — they become active when you save."}),(0,a.jsxs)(o.default,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,a.jsx)(s.A,{fullWidth:!0,label:"Webhook URL",value:b,InputProps:{readOnly:!0},size:"small"}),(0,a.jsx)(i.A,{title:"Copy URL",children:(0,a.jsx)(d.A,{onClick:()=>A("url",b),children:"url"===v?(0,a.jsx)(x.A,{color:"success"}):(0,a.jsx)(f.A,{})})})]}),(0,a.jsxs)(o.default,{sx:{display:"flex",alignItems:"center",gap:1,mt:2},children:[(0,a.jsx)(s.A,{fullWidth:!0,label:"Secret token",value:t.token,InputProps:{readOnly:!0},size:"small",type:"password"}),(0,a.jsx)(i.A,{title:"Copy token",children:(0,a.jsx)(d.A,{onClick:()=>A("token",t.token),disabled:!t.token,children:"token"===v?(0,a.jsx)(x.A,{color:"success"}):(0,a.jsx)(f.A,{})})}),(0,a.jsx)(c.A,{size:"small",onClick:()=>l({...t,token:crypto.randomUUID()}),sx:{whiteSpace:"nowrap"},children:"New token"})]}),(0,a.jsx)(u.default,{variant:"caption",color:"text.secondary",children:g?"A new token takes effect when you save — callers using the old one are cut off.":""}),(0,a.jsxs)(u.default,{variant:"body2",color:"text.secondary",sx:{mt:1.5},children:["Callers send a POST with the token in the ",(0,a.jsx)("code",{children:"X-Flujo-Token"})," ","header (or ",(0,a.jsx)("code",{children:"?token=…"}),"). The request body becomes part of the flow's input — treat it as untrusted data in your prompt."]}),(0,a.jsx)(h.A,{sx:{mt:1,display:"flex"},control:(0,a.jsx)(m.A,{checked:!0===t.allowExternal,onChange:e=>l({...t,allowExternal:e.target.checked})}),label:"Allow calls from other machines (default: this computer only)"}),t.allowExternal&&(0,a.jsx)(r.A,{severity:"warning",children:"FLUJO assumes a single user on this machine. If you expose it beyond localhost (port forwarding, tunnels), securing that access is your responsibility — anyone with the URL and token can run this flow."})]})}},80811:(e,t,l)=>{l.d(t,{A:()=>N});var a=l(95155),n=l(12115),o=l(94049),r=l(25635),s=l(91871),i=l(52641),d=l(95436),c=l(55606),u=l(86973),h=l(9562),m=l(4474),f=l(22003),x=l(41356),p=l(24610),g=l(17897),v=l(43076),y=l(90057),w=l(87021),b=l(23143),A=l(84765),j=l(17427),k=l(96362),S=l(40962),C=l(68503);let I=(0,w.h)("frontend/components/PlannedExecutions/WatchToolPanel"),N=e=>{var t,l;let{config:w,onChange:N}=e,[E,T]=(0,n.useState)([]),[_,M]=(0,n.useState)(!1),[P,R]=(0,n.useState)([]),[O,W]=(0,n.useState)(!1),[L,D]=(0,n.useState)(Object.keys(w.args||{}).length>0?JSON.stringify(w.args,null,2):""),[F,U]=(0,n.useState)(null),[G,z]=(0,n.useState)(!1),[J,V]=(0,n.useState)(null),[H,K]=(0,n.useState)(null),[Y,$]=(0,n.useState)([]),[q,B]=(0,n.useState)([]);(0,n.useEffect)(()=>{let e=!1;return g.S.loadServerConfigs().then(t=>{e||(Array.isArray(t)?T(t.filter(e=>!e.disabled)):(I.warn("Failed to load MCP servers for watch-tool panel",t),T([])))}),()=>{e=!0}},[]),(0,n.useEffect)(()=>{if(!w.serverName)return void R([]);let e=!1;return W(!0),g.S.listServerTools(w.serverName).then(t=>{let{tools:l}=t;e||R(l||[])}).finally(()=>{e||W(!1)}),()=>{e=!0}},[w.serverName]),(0,n.useEffect)(()=>{let e=!1;return v.N.loadModels().then(t=>{e||$(Array.isArray(t)?t:[])}).catch(()=>{e||$([])}),y.g.loadFlows().then(t=>{e||B(t||[])}).catch(()=>{e||B([])}),()=>{e=!0}},[]);let X=async()=>{z(!0),V(null),K(null);try{let l=await g.S.callTool(w.serverName,w.toolName,w.args||{});if(null==l?void 0:l.error)K("string"==typeof l.error?l.error:"Tool call failed");else{var e,t;let a=null!=(e=null==l?void 0:l.data)?e:l,n=null!=(t=JSON.stringify(a,null,2))?t:"";V(n.length>6e3?"".concat(n.slice(0,6e3),"\n… (truncated)"):n)}}catch(e){K(e instanceof Error?e.message:"Tool call failed")}finally{z(!1)}},Z=w.evaluate,Q=P.find(e=>e.name===w.toolName),ee=(0,C.E)("mcp",E),et=e=>({key:e.name,content:(e=>(0,a.jsx)(S.A,{name:e.name,status:e.status||"disconnected",path:e.rootPath||"",enabled:!e.disabled,transport:e.transport||"stdio",pickerMode:!0,selected:w.serverName===e.name,onClick:()=>{var t;return t=e.name,void(N({...w,serverName:t,toolName:""}),M(!1))}}))(e)}),el=ee.items.map(et),ea=ee.groups?ee.groups.map(e=>({...e,items:e.items.map(et)})):null;return(0,a.jsxs)(o.default,{sx:{mt:1},children:[(0,a.jsxs)(o.default,{sx:{display:"flex",gap:2,flexWrap:"wrap"},children:[(0,a.jsxs)(o.default,{sx:{minWidth:220,flex:1,mt:2,mb:1},children:[(0,a.jsx)(r.default,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:.5},children:"Server"}),(0,a.jsx)(s.A,{variant:"outlined",fullWidth:!0,onClick:()=>M(!0),sx:{justifyContent:"flex-start",textTransform:"none"},children:w.serverName?"".concat(w.serverName," — change"):"Choose an MCP server…"}),(0,a.jsx)(k.A,{open:_,onClose:()=>M(!1),title:"Choose an MCP server",description:"Pick the server whose tool you want to watch.",emptyMessage:"No MCP servers configured.",searchable:!0,searchPlaceholder:"Search servers…",searchTerm:ee.searchTerm,onSearchChange:ee.setSearchTerm,columns:{xs:12,sm:6},items:el,groups:ea,collapsedKeys:ee.collapsedKeys,onToggleGroup:ee.toggleGroup})]}),(0,a.jsxs)(i.A,{sx:{minWidth:220,flex:1},margin:"normal",disabled:!w.serverName,children:[(0,a.jsx)(d.A,{id:"watch-tool-label",children:"Tool"}),(0,a.jsxs)(c.A,{labelId:"watch-tool-label",label:"Tool",value:P.some(e=>e.name===w.toolName)?w.toolName:"",onChange:e=>N({...w,toolName:e.target.value,args:{}}),children:[0===P.length&&(0,a.jsx)(u.A,{value:"",disabled:!0,children:O?"Loading tools…":"Pick a server first"}),P.map(e=>(0,a.jsx)(u.A,{value:e.name,children:e.name},e.name))]})]})]}),(0,a.jsx)(r.default,{variant:"subtitle2",sx:{mt:1},children:"How often to check"}),(0,a.jsx)(A.A,{verb:"Check",cron:null!=(t=w.cron)?t:function(e){let t=Math.max(5,Math.round((null!=e?e:6e4)/1e3));if(t<60)return"*/".concat(t," * * * * *");let l=Math.max(1,Math.round(t/60));if(l<60)return"*/".concat(l," * * * *");let a=Math.max(1,Math.min(23,Math.round(l/60)));return"0 */".concat(a," * * *")}(w.intervalMs),timezone:w.timezone,onChange:e=>{let{cron:t,timezone:l}=e;return N({...w,cron:t,timezone:l})}}),Q?(0,a.jsxs)(o.default,{sx:{my:1.5},children:[(0,a.jsx)(r.default,{variant:"subtitle2",sx:{mb:1.5},children:"Tool parameters — sent on every check"}),(0,a.jsx)(j.A,{schema:Q.inputSchema,values:w.args||{},onChange:e=>N({...w,args:e})})]}):(0,a.jsx)(h.A,{fullWidth:!0,label:"Tool arguments (JSON, optional)",value:L,onChange:e=>(e=>{if(D(e),!e.trim()){U(null),N({...w,args:{}});return}try{let t=JSON.parse(e);if(null===t||"object"!=typeof t||Array.isArray(t))return void U('Arguments must be a JSON object, e.g. { "query": "…" }');U(null),N({...w,args:t})}catch(e){U("Not valid JSON yet")}})(e.target.value),margin:"normal",multiline:!0,minRows:2,placeholder:'{ "query": "is:unread" }',error:!!F,helperText:null!=F?F:"Sent to the tool on every check.",slotProps:{input:{sx:{fontFamily:"monospace",fontSize:14}}}}),(0,a.jsxs)(o.default,{sx:{display:"flex",alignItems:"center",gap:2,mb:1},children:[(0,a.jsx)(s.A,{variant:"outlined",size:"small",onClick:X,disabled:!w.serverName||!w.toolName||G||!!F,startIcon:G?(0,a.jsx)(m.default,{size:16}):void 0,children:"Test: call the tool now"}),(0,a.jsx)(r.default,{variant:"caption",color:"text.secondary",children:"See what the result looks like — useful for the settings below."})]}),H&&(0,a.jsx)(f.A,{severity:"error",sx:{mb:1},children:H}),J&&(0,a.jsx)(o.default,{component:"pre",sx:{maxHeight:240,overflow:"auto",bgcolor:"action.hover",borderRadius:1,p:1.5,fontSize:12,m:0,mb:1},children:J}),(0,a.jsx)(r.default,{variant:"subtitle2",sx:{mt:2,mb:1},children:"Run the flow when…"}),(0,a.jsxs)(o.default,{role:"radiogroup","aria-label":"Poll condition",sx:{display:"flex",gap:2,flexWrap:"wrap"},children:[(0,a.jsx)(b.A,{selected:"on-change"===Z.mode,onClick:()=>N({...w,evaluate:{mode:"on-change"}}),icon:(0,a.jsx)(x.A,{}),title:"The result changes",description:"Any difference from the last check runs the flow. Simplest — no setup."}),(0,a.jsx)(b.A,{selected:"llm-gate"===Z.mode||"flow-gate"===Z.mode,onClick:()=>{"llm-gate"!==Z.mode&&"flow-gate"!==Z.mode&&N({...w,evaluate:{mode:"llm-gate",condition:"",modelId:""}})},icon:(0,a.jsx)(p.A,{}),title:"AI decides",description:"Describe the condition in plain language; a model — or one of your flows — checks the result whenever it changes."})]}),("llm-gate"===Z.mode||"flow-gate"===Z.mode)&&(0,a.jsxs)(o.default,{sx:{mt:1},children:[(0,a.jsx)(h.A,{fullWidth:!0,label:"Run the flow if…",value:Z.condition,onChange:e=>N({...w,evaluate:{...Z,condition:e.target.value}}),multiline:!0,minRows:2,margin:"normal",placeholder:"e.g. any email mentions an invoice or a payment reminder"}),(0,a.jsxs)(o.default,{sx:{display:"flex",gap:2,flexWrap:"wrap",alignItems:"flex-start"},children:[(0,a.jsxs)(i.A,{sx:{minWidth:170},children:[(0,a.jsx)(d.A,{id:"gate-checker-label",children:"Checked by"}),(0,a.jsxs)(c.A,{labelId:"gate-checker-label",label:"Checked by",value:Z.mode,onChange:e=>{let t=e.target.value;if(t===Z.mode)return;let l={condition:Z.condition,maxCallsPerDay:Z.maxCallsPerDay};N({...w,evaluate:"llm-gate"===t?{mode:t,...l,modelId:""}:{mode:t,...l,flowId:""}})},children:[(0,a.jsx)(u.A,{value:"llm-gate",children:"A model"}),(0,a.jsx)(u.A,{value:"flow-gate",children:"One of my flows"})]})]}),"llm-gate"===Z.mode&&(0,a.jsxs)(i.A,{sx:{minWidth:240,flex:1},children:[(0,a.jsx)(d.A,{id:"gate-model-label",children:"Model that checks"}),(0,a.jsxs)(c.A,{labelId:"gate-model-label",label:"Model that checks",value:Y.some(e=>e.id===Z.modelId)?Z.modelId:"",onChange:e=>N({...w,evaluate:{...Z,modelId:e.target.value}}),children:[0===Y.length&&(0,a.jsx)(u.A,{value:"",disabled:!0,children:"No models configured"}),Y.map(e=>(0,a.jsx)(u.A,{value:e.id,children:e.displayName||e.name},e.id))]})]}),"flow-gate"===Z.mode&&(0,a.jsxs)(i.A,{sx:{minWidth:240,flex:1},children:[(0,a.jsx)(d.A,{id:"gate-flow-label",children:"Flow that checks"}),(0,a.jsxs)(c.A,{labelId:"gate-flow-label",label:"Flow that checks",value:q.some(e=>e.id===Z.flowId)?Z.flowId:"",onChange:e=>N({...w,evaluate:{...Z,flowId:e.target.value}}),children:[0===q.length&&(0,a.jsx)(u.A,{value:"",disabled:!0,children:"No flows available"}),q.map(e=>(0,a.jsx)(u.A,{value:e.id,children:e.name},e.id))]})]}),(0,a.jsx)(h.A,{label:"Max checks per day",type:"number",value:null!=(l=Z.maxCallsPerDay)?l:500,onChange:e=>N({...w,evaluate:{...Z,maxCallsPerDay:Math.max(1,Number(e.target.value)||1)}}),inputProps:{min:1},helperText:"Cost guard per check.",sx:{width:180}})]}),(0,a.jsx)(r.default,{variant:"caption",color:"text.secondary",sx:{display:"block",mt:.5},children:"flow-gate"===Z.mode?'The checker flow runs invisibly (never in the chat), gets the condition + tool result, and must answer with {"fire": true/false, "reason": "…"} — it can use its own tools to verify before deciding.':"The model is only asked when the result actually changed since the last check — an idle feed costs nothing. Pick a small, cheap model."})]}),(0,a.jsx)(f.A,{severity:"info",sx:{mt:2},children:"The first check only takes a snapshot — the flow runs from the second check onwards, when something actually changed. FLUJO must be running for checks to happen."})]})}},84765:(e,t,l)=>{l.d(t,{A:()=>b});var a=l(95155),n=l(12115),o=l(94049),r=l(52641),s=l(95436),i=l(55606),d=l(86973),c=l(9562),u=l(22003),h=l(25635),m=l(99944),f=l(22822),x=l(98267),p=l(20537),g=l(37960),v=l(63186),y=l(93632);let w=e=>String(e).padStart(2,"0"),b=e=>{let{cron:t,timezone:l,onChange:b,verb:A="Runs",catchUp:j,onCatchUpChange:k}=e,S=(0,n.useMemo)(()=>(function(e){let t=/^\*\/(\d+) \* \* \* \* \*$/.exec(e);return t?{mode:"seconds",n:Number(t[1]),time:"09:00"}:(t=/^\*\/(\d+) \* \* \* \*$/.exec(e))?{mode:"minutes",n:Number(t[1]),time:"09:00"}:(t=/^0 \*\/(\d+) \* \* \*$/.exec(e))?{mode:"hours",n:Number(t[1]),time:"09:00"}:(t=/^(\d+) (\d+) \* \* \*$/.exec(e))?{mode:"daily",n:1,time:"".concat(w(Number(t[2])),":").concat(w(Number(t[1])))}:(t=/^(\d+) (\d+) \* \* 1-5$/.exec(e))?{mode:"weekdays",n:1,time:"".concat(w(Number(t[2])),":").concat(w(Number(t[1])))}:{mode:"custom",n:15,time:"09:00"}})(t),[]),[C,I]=(0,n.useState)(S.mode),[N,E]=(0,n.useState)(S.n),[T,_]=(0,n.useState)(S.time),[M,P]=(0,n.useState)(t),[R,O]=(0,n.useState)(null),W=function(e,t,l,a){let[n,o]=l.split(":").map(Number);switch(e){case"seconds":return"*/".concat(Math.max(1,Math.min(59,Math.floor(t)||1))," * * * * *");case"minutes":return"*/".concat(Math.max(1,Math.min(59,Math.floor(t)||1))," * * * *");case"hours":return"0 */".concat(Math.max(1,Math.min(23,Math.floor(t)||1))," * * *");case"daily":return"".concat(o||0," ").concat(n||0," * * *");case"weekdays":return"".concat(o||0," ").concat(n||0," * * 1-5");default:return a}}(C,N,T,M);return(0,n.useEffect)(()=>{W!==t&&b({cron:W,timezone:l})},[W]),(0,n.useEffect)(()=>{let e=!1,t=setTimeout(()=>{y.P.previewSchedule(W,l).then(t=>{e||O(t)})},300);return()=>{e=!0,clearTimeout(t)}},[W,l]),(0,a.jsxs)(o.default,{children:[(0,a.jsxs)(o.default,{sx:{display:"flex",gap:2,flexWrap:"wrap",alignItems:"center",mt:1},children:[(0,a.jsxs)(r.A,{sx:{minWidth:180},children:[(0,a.jsx)(s.A,{id:"schedule-preset-label",children:A}),(0,a.jsxs)(i.A,{labelId:"schedule-preset-label",label:A,value:C,onChange:e=>I(e.target.value),children:[(0,a.jsx)(d.A,{value:"seconds",children:"Every N seconds"}),(0,a.jsx)(d.A,{value:"minutes",children:"Every N minutes"}),(0,a.jsx)(d.A,{value:"hours",children:"Every N hours"}),(0,a.jsx)(d.A,{value:"daily",children:"Daily at a time"}),(0,a.jsx)(d.A,{value:"weekdays",children:"Weekdays at a time"}),(0,a.jsx)(d.A,{value:"custom",children:"Custom (cron)"})]})]}),("seconds"===C||"minutes"===C||"hours"===C)&&(0,a.jsx)(c.A,{label:"seconds"===C?"Seconds":"minutes"===C?"Minutes":"Hours",type:"number",value:N,onChange:e=>E(Number(e.target.value)),inputProps:{min:1,max:"hours"===C?23:59},sx:{width:120}}),("daily"===C||"weekdays"===C)&&(0,a.jsx)(c.A,{label:"Time",type:"time",value:T,onChange:e=>_(e.target.value),sx:{width:150},InputLabelProps:{shrink:!0}}),"custom"===C&&(0,a.jsx)(c.A,{label:"Cron pattern",value:M,onChange:e=>P(e.target.value),sx:{minWidth:220},placeholder:"*/15 * * * *"})]}),R&&!R.valid&&(0,a.jsx)(u.A,{severity:"error",sx:{mt:2},children:R.error||"This schedule is not valid."}),R&&R.valid&&R.nextRuns.length>0&&(0,a.jsxs)(h.default,{variant:"body2",color:"text.secondary",sx:{mt:2},children:["Next: ",R.nextRuns.map(e=>new Date(e).toLocaleString()).join(" \xb7 ")]}),k&&(0,a.jsx)(m.A,{sx:{mt:1,display:"flex"},control:(0,a.jsx)(f.A,{checked:!0===j,onChange:e=>k(e.target.checked)}),label:"If FLUJO was closed at a scheduled time, run once on startup"}),(0,a.jsxs)(x.A,{disableGutters:!0,elevation:0,sx:{mt:1,"&:before":{display:"none"}},children:[(0,a.jsx)(p.A,{expandIcon:(0,a.jsx)(v.A,{}),sx:{px:0},children:(0,a.jsx)(h.default,{variant:"body2",color:"text.secondary",children:"Advanced"})}),(0,a.jsx)(g.A,{sx:{px:0},children:(0,a.jsxs)(o.default,{sx:{display:"flex",gap:2,flexWrap:"wrap"},children:[(0,a.jsx)(c.A,{label:"Timezone (optional)",value:l||"",onChange:e=>b({cron:W,timezone:e.target.value||void 0}),placeholder:"e.g. Europe/Berlin",helperText:"IANA timezone name. Empty = this computer's timezone.",sx:{minWidth:260}}),(0,a.jsx)(c.A,{label:"Generated cron pattern",value:W,InputProps:{readOnly:"custom"!==C},onChange:e=>{I("custom"),P(e.target.value)},helperText:"Editing switches to Custom mode.",sx:{minWidth:220}})]})})]})]})}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[454],{12164:(e,t,r)=>{r.d(t,{A:()=>n});var o=r(15485),a=r(95155);let n=(0,o.A)((0,a.jsx)("path",{d:"M3 18h18v-2H3zm0-5h18v-2H3zm0-7v2h18V6z"}),"Menu")},12609:(e,t,r)=>{r.d(t,{A:()=>i,K:()=>n});var o=r(85795),a=r(95195);function n(e){return(0,a.Ay)("MuiDivider",e)}let i=(0,o.A)("MuiDivider",["root","absolute","fullWidth","inset","middle","flexItem","light","vertical","withChildren","withChildrenVertical","textAlignRight","textAlignLeft","wrapper","wrapperVertical"])},13315:(e,t,r)=>{r.d(t,{Ay:()=>P});var o=r(12115),a=r(2821),n=r(57001),i=r(46320),l=r(56682),s=r(9488),p=r(12549),c=r(44017),d=r(69582),u=r(33567),h=r(47250),v=r(29149),f=r(95155);function m(e,t,r){let o=function(e,t,r){let o,a=t.getBoundingClientRect(),n=r&&r.getBoundingClientRect(),i=(0,v.A)(t);if(t.fakeTransform)o=t.fakeTransform;else{let e=i.getComputedStyle(t);o=e.getPropertyValue("-webkit-transform")||e.getPropertyValue("transform")}let l=0,s=0;if(o&&"none"!==o&&"string"==typeof o){let e=o.split("(")[1].split(")")[0].split(",");l=parseInt(e[4],10),s=parseInt(e[5],10)}return"left"===e?n?"translateX(".concat(n.right+l-a.left,"px)"):"translateX(".concat(i.innerWidth+l-a.left,"px)"):"right"===e?n?"translateX(-".concat(a.right-n.left-l,"px)"):"translateX(-".concat(a.left+a.width-l,"px)"):"up"===e?n?"translateY(".concat(n.bottom+s-a.top,"px)"):"translateY(".concat(i.innerHeight+s-a.top,"px)"):n?"translateY(-".concat(a.top-n.top+a.height-s,"px)"):"translateY(-".concat(a.top+a.height-s,"px)")}(e,t,"function"==typeof r?r():r);o&&(t.style.webkitTransform=o,t.style.transform=o)}let g=o.forwardRef(function(e,t){let r=(0,u.A)(),a={enter:r.transitions.easing.easeOut,exit:r.transitions.easing.sharp},n={enter:r.transitions.duration.enteringScreen,exit:r.transitions.duration.leavingScreen},{addEndListener:i,appear:l=!0,children:g,container:y,direction:A="down",easing:b=a,in:x,onEnter:k,onEntered:w,onEntering:B,onExit:L,onExited:C,onExiting:M,style:R,timeout:S=n,TransitionComponent:I=s.Ay,...T}=e,z=o.useRef(null),D=(0,d.A)((0,p.A)(g),z,t),P=e=>t=>{e&&(void 0===t?e(z.current):e(z.current,t))},j=P((e,t)=>{m(A,e,y),(0,h.q)(e),k&&k(e,t)}),E=P((e,t)=>{let o=(0,h.c)({timeout:S,style:R,easing:b},{mode:"enter"});e.style.webkitTransition=r.transitions.create("-webkit-transform",{...o}),e.style.transition=r.transitions.create("transform",{...o}),e.style.webkitTransform="none",e.style.transform="none",B&&B(e,t)}),O=P(w),V=P(M),H=P(e=>{let t=(0,h.c)({timeout:S,style:R,easing:b},{mode:"exit"});e.style.webkitTransition=r.transitions.create("-webkit-transform",t),e.style.transition=r.transitions.create("transform",t),m(A,e,y),L&&L(e)}),W=P(e=>{e.style.webkitTransition="",e.style.transition="",C&&C(e)}),N=o.useCallback(()=>{z.current&&m(A,z.current,y)},[A,y]);return o.useEffect(()=>{if(x||"down"===A||"right"===A)return;let e=(0,c.A)(()=>{z.current&&m(A,z.current,y)}),t=(0,v.A)(z.current);return t.addEventListener("resize",e),()=>{e.clear(),t.removeEventListener("resize",e)}},[A,x,y]),o.useEffect(()=>{x||N()},[x,N]),(0,f.jsx)(I,{nodeRef:z,onEnter:j,onEntered:O,onEntering:E,onExit:H,onExited:W,onExiting:V,addEndListener:e=>{i&&i(z.current,e)},appear:l,in:x,timeout:S,...T,children:(e,t)=>{let{ownerState:r,...a}=t;return o.cloneElement(g,{ref:D,style:{visibility:"exited"!==e||x?void 0:"hidden",...R,...g.props.style},...a})}})});var y=r(2300),A=r(81852),b=r(30424),x=r(48116),k=r(66964),w=r(16625),B=r(85795),L=r(95195);function C(e){return(0,L.Ay)("MuiDrawer",e)}(0,B.A)("MuiDrawer",["root","docked","paper","anchorLeft","anchorRight","anchorTop","anchorBottom","paperAnchorLeft","paperAnchorRight","paperAnchorTop","paperAnchorBottom","paperAnchorDockedLeft","paperAnchorDockedRight","paperAnchorDockedTop","paperAnchorDockedBottom","modal"]);var M=r(77765),R=r(85560);let S=(e,t)=>{let{ownerState:r}=e;return[t.root,("permanent"===r.variant||"persistent"===r.variant)&&t.docked,t.modal]},I=(0,x.Ay)(l.A,{name:"MuiDrawer",slot:"Root",overridesResolver:S})((0,k.A)(e=>{let{theme:t}=e;return{zIndex:(t.vars||t).zIndex.drawer}})),T=(0,x.Ay)("div",{shouldForwardProp:b.A,name:"MuiDrawer",slot:"Docked",skipVariantsResolver:!1,overridesResolver:S})({flex:"0 0 auto"}),z=(0,x.Ay)(y.A,{name:"MuiDrawer",slot:"Paper",overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.paper,t["paperAnchor".concat((0,A.A)(r.anchor))],"temporary"!==r.variant&&t["paperAnchorDocked".concat((0,A.A)(r.anchor))]]}})((0,k.A)(e=>{let{theme:t}=e;return{overflowY:"auto",display:"flex",flexDirection:"column",height:"100%",flex:"1 0 auto",zIndex:(t.vars||t).zIndex.drawer,WebkitOverflowScrolling:"touch",position:"fixed",top:0,outline:0,variants:[{props:{anchor:"left"},style:{left:0}},{props:{anchor:"top"},style:{top:0,left:0,right:0,height:"auto",maxHeight:"100%"}},{props:{anchor:"right"},style:{right:0}},{props:{anchor:"bottom"},style:{top:"auto",left:0,bottom:0,right:0,height:"auto",maxHeight:"100%"}},{props:e=>{let{ownerState:t}=e;return"left"===t.anchor&&"temporary"!==t.variant},style:{borderRight:"1px solid ".concat((t.vars||t).palette.divider)}},{props:e=>{let{ownerState:t}=e;return"top"===t.anchor&&"temporary"!==t.variant},style:{borderBottom:"1px solid ".concat((t.vars||t).palette.divider)}},{props:e=>{let{ownerState:t}=e;return"right"===t.anchor&&"temporary"!==t.variant},style:{borderLeft:"1px solid ".concat((t.vars||t).palette.divider)}},{props:e=>{let{ownerState:t}=e;return"bottom"===t.anchor&&"temporary"!==t.variant},style:{borderTop:"1px solid ".concat((t.vars||t).palette.divider)}}]}})),D={left:"right",right:"left",top:"down",bottom:"up"},P=o.forwardRef(function(e,t){let r=(0,w.b)({props:e,name:"MuiDrawer"}),l=(0,u.A)(),s=(0,i.I)(),p={enter:l.transitions.duration.enteringScreen,exit:l.transitions.duration.leavingScreen},{anchor:c="left",BackdropProps:d,children:h,className:v,elevation:m=16,hideBackdrop:y=!1,ModalProps:{BackdropProps:b,...x}={},onClose:k,open:B=!1,PaperProps:L={},SlideProps:S,TransitionComponent:P,transitionDuration:j=p,variant:E="temporary",slots:O={},slotProps:V={},...H}=r,W=o.useRef(!1);o.useEffect(()=>{W.current=!0},[]);let N=function(e,t){let{direction:r}=e;return"rtl"===r&&["left","right"].includes(t)?D[t]:t}({direction:s?"rtl":"ltr"},c),F={...r,anchor:c,elevation:m,open:B,variant:E,...H},X=(e=>{let{classes:t,anchor:r,variant:o}=e,a={root:["root","anchor".concat((0,A.A)(r))],docked:[("permanent"===o||"persistent"===o)&&"docked"],modal:["modal"],paper:["paper","paperAnchor".concat((0,A.A)(r)),"temporary"!==o&&"paperAnchorDocked".concat((0,A.A)(r))]};return(0,n.A)(a,C,t)})(F),Y={slots:{transition:P,...O},slotProps:{paper:L,transition:S,...V,backdrop:(0,R.A)(V.backdrop||{...d,...b},{transitionDuration:j})}},[G,_]=(0,M.A)("root",{ref:t,elementType:I,className:(0,a.A)(X.root,X.modal,v),shouldForwardComponentProp:!0,ownerState:F,externalForwardedProps:{...Y,...H,...x},additionalProps:{open:B,onClose:k,hideBackdrop:y,slots:{backdrop:Y.slots.backdrop},slotProps:{backdrop:Y.slotProps.backdrop}}}),[q,U]=(0,M.A)("paper",{elementType:z,shouldForwardComponentProp:!0,className:(0,a.A)(X.paper,L.className),ownerState:F,externalForwardedProps:Y,additionalProps:{elevation:"temporary"===E?m:0,square:!0}}),[K,Q]=(0,M.A)("docked",{elementType:T,ref:t,className:(0,a.A)(X.root,X.docked,v),ownerState:F,externalForwardedProps:Y,additionalProps:H}),[Z,J]=(0,M.A)("transition",{elementType:g,ownerState:F,externalForwardedProps:Y,additionalProps:{in:B,direction:D[N],timeout:j,appear:W.current}}),$=(0,f.jsx)(q,{...U,children:h});if("permanent"===E)return(0,f.jsx)(K,{...Q,children:$});let ee=(0,f.jsx)(Z,{...J,children:$});return"persistent"===E?(0,f.jsx)(K,{...Q,children:ee}):(0,f.jsx)(G,{..._,children:ee})})},15712:(e,t,r)=>{r.d(t,{A:()=>c});var o=r(12115),a=r.t(o,2),n=r(89255),i=r(19868),l=r(9027);let s={...a}.useSyncExternalStore;function p(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{themeId:t}=e;return function(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=(0,l.A)();a&&t&&(a=a[t]||a);let p="undefined"!=typeof window&&void 0!==window.matchMedia,{defaultMatches:c=!1,matchMedia:d=p?window.matchMedia:null,ssrMatchMedia:u=null,noSsr:h=!1}=(0,i.A)({name:"MuiUseMediaQuery",props:r,theme:a}),v="function"==typeof e?e(a):e;return(v=v.replace(/^@media( ?)/m,"")).includes("print")&&console.warn("MUI: You have provided a `print` query to the `useMediaQuery` hook.\nUsing the print media query to modify print styles can lead to unexpected results.\nConsider using the `displayPrint` field in the `sx` prop instead.\nMore information about `displayPrint` on our docs: https://mui.com/system/display/#display-in-print."),(void 0!==s?function(e,t,r,a,n){let i=o.useCallback(()=>t,[t]),l=o.useMemo(()=>{if(n&&r)return()=>r(e).matches;if(null!==a){let{matches:t}=a(e);return()=>t}return i},[i,e,a,n,r]),[p,c]=o.useMemo(()=>{if(null===r)return[i,()=>()=>{}];let t=r(e);return[()=>t.matches,e=>(t.addEventListener("change",e),()=>{t.removeEventListener("change",e)})]},[i,r,e]);return s(c,p,l)}:function(e,t,r,a,i){let[l,s]=o.useState(()=>i&&r?r(e).matches:a?a(e).matches:t);return(0,n.A)(()=>{if(!r)return;let t=r(e),o=()=>{s(t.matches)};return o(),t.addEventListener("change",o),()=>{t.removeEventListener("change",o)}},[e,r]),l})(v,c,d,u,h)}}p();let c=p({themeId:r(46892).A})},20063:(e,t,r)=>{var o=r(47260);r.o(o,"usePathname")&&r.d(t,{usePathname:function(){return o.usePathname}}),r.o(o,"useRouter")&&r.d(t,{useRouter:function(){return o.useRouter}}),r.o(o,"useSearchParams")&&r.d(t,{useSearchParams:function(){return o.useSearchParams}})},21067:(e,t,r)=>{r.d(t,{A:()=>f});var o=r(12115),a=r(2821),n=r(57001),i=r(8532),l=r(48116),s=r(66964),p=r(16625),c=r(12609),d=r(95155);let u=(0,l.Ay)("div",{name:"MuiDivider",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.root,r.absolute&&t.absolute,t[r.variant],r.light&&t.light,"vertical"===r.orientation&&t.vertical,r.flexItem&&t.flexItem,r.children&&t.withChildren,r.children&&"vertical"===r.orientation&&t.withChildrenVertical,"right"===r.textAlign&&"vertical"!==r.orientation&&t.textAlignRight,"left"===r.textAlign&&"vertical"!==r.orientation&&t.textAlignLeft]}})((0,s.A)(e=>{let{theme:t}=e;return{margin:0,flexShrink:0,borderWidth:0,borderStyle:"solid",borderColor:(t.vars||t).palette.divider,borderBottomWidth:"thin",variants:[{props:{absolute:!0},style:{position:"absolute",bottom:0,left:0,width:"100%"}},{props:{light:!0},style:{borderColor:t.vars?"rgba(".concat(t.vars.palette.dividerChannel," / 0.08)"):(0,i.X4)(t.palette.divider,.08)}},{props:{variant:"inset"},style:{marginLeft:72}},{props:{variant:"middle",orientation:"horizontal"},style:{marginLeft:t.spacing(2),marginRight:t.spacing(2)}},{props:{variant:"middle",orientation:"vertical"},style:{marginTop:t.spacing(1),marginBottom:t.spacing(1)}},{props:{orientation:"vertical"},style:{height:"100%",borderBottomWidth:0,borderRightWidth:"thin"}},{props:{flexItem:!0},style:{alignSelf:"stretch",height:"auto"}},{props:e=>{let{ownerState:t}=e;return!!t.children},style:{display:"flex",textAlign:"center",border:0,borderTopStyle:"solid",borderLeftStyle:"solid","&::before, &::after":{content:'""',alignSelf:"center"}}},{props:e=>{let{ownerState:t}=e;return t.children&&"vertical"!==t.orientation},style:{"&::before, &::after":{width:"100%",borderTop:"thin solid ".concat((t.vars||t).palette.divider),borderTopStyle:"inherit"}}},{props:e=>{let{ownerState:t}=e;return"vertical"===t.orientation&&t.children},style:{flexDirection:"column","&::before, &::after":{height:"100%",borderLeft:"thin solid ".concat((t.vars||t).palette.divider),borderLeftStyle:"inherit"}}},{props:e=>{let{ownerState:t}=e;return"right"===t.textAlign&&"vertical"!==t.orientation},style:{"&::before":{width:"90%"},"&::after":{width:"10%"}}},{props:e=>{let{ownerState:t}=e;return"left"===t.textAlign&&"vertical"!==t.orientation},style:{"&::before":{width:"10%"},"&::after":{width:"90%"}}}]}})),h=(0,l.Ay)("span",{name:"MuiDivider",slot:"Wrapper",overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.wrapper,"vertical"===r.orientation&&t.wrapperVertical]}})((0,s.A)(e=>{let{theme:t}=e;return{display:"inline-block",paddingLeft:"calc(".concat(t.spacing(1)," * 1.2)"),paddingRight:"calc(".concat(t.spacing(1)," * 1.2)"),whiteSpace:"nowrap",variants:[{props:{orientation:"vertical"},style:{paddingTop:"calc(".concat(t.spacing(1)," * 1.2)"),paddingBottom:"calc(".concat(t.spacing(1)," * 1.2)")}}]}})),v=o.forwardRef(function(e,t){let r=(0,p.b)({props:e,name:"MuiDivider"}),{absolute:o=!1,children:i,className:l,orientation:s="horizontal",component:v=i||"vertical"===s?"div":"hr",flexItem:f=!1,light:m=!1,role:g="hr"!==v?"separator":void 0,textAlign:y="center",variant:A="fullWidth",...b}=r,x={...r,absolute:o,component:v,flexItem:f,light:m,orientation:s,role:g,textAlign:y,variant:A},k=(e=>{let{absolute:t,children:r,classes:o,flexItem:a,light:i,orientation:l,textAlign:s,variant:p}=e;return(0,n.A)({root:["root",t&&"absolute",p,i&&"light","vertical"===l&&"vertical",a&&"flexItem",r&&"withChildren",r&&"vertical"===l&&"withChildrenVertical","right"===s&&"vertical"!==l&&"textAlignRight","left"===s&&"vertical"!==l&&"textAlignLeft"],wrapper:["wrapper","vertical"===l&&"wrapperVertical"]},c.K,o)})(x);return(0,d.jsx)(u,{as:v,className:(0,a.A)(k.root,l),role:g,ref:t,ownerState:x,"aria-orientation":"separator"===g&&("hr"!==v||"vertical"===s)?s:void 0,...b,children:i?(0,d.jsx)(h,{className:k.wrapper,ownerState:x,children:i}):null})});v&&(v.muiSkipListHighlight=!0);let f=v},30354:(e,t,r)=>{r.d(t,{A:()=>v});var o=r(12115),a=r(2821),n=r(57001),i=r(48116),l=r(66964),s=r(16625),p=r(85795),c=r(95195);function d(e){return(0,c.Ay)("MuiToolbar",e)}(0,p.A)("MuiToolbar",["root","gutters","regular","dense"]);var u=r(95155);let h=(0,i.Ay)("div",{name:"MuiToolbar",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.root,!r.disableGutters&&t.gutters,t[r.variant]]}})((0,l.A)(e=>{let{theme:t}=e;return{position:"relative",display:"flex",alignItems:"center",variants:[{props:e=>{let{ownerState:t}=e;return!t.disableGutters},style:{paddingLeft:t.spacing(2),paddingRight:t.spacing(2),[t.breakpoints.up("sm")]:{paddingLeft:t.spacing(3),paddingRight:t.spacing(3)}}},{props:{variant:"dense"},style:{minHeight:48}},{props:{variant:"regular"},style:t.mixins.toolbar}]}})),v=o.forwardRef(function(e,t){let r=(0,s.b)({props:e,name:"MuiToolbar"}),{className:o,component:i="div",disableGutters:l=!1,variant:p="regular",...c}=r,v={...r,component:i,disableGutters:l,variant:p},f=(e=>{let{classes:t,disableGutters:r,variant:o}=e;return(0,n.A)({root:["root",!r&&"gutters",o]},d,t)})(v);return(0,u.jsx)(h,{as:i,className:(0,a.A)(f.root,o),ref:t,ownerState:v,...c})})},35620:(e,t,r)=>{r.d(t,{A:()=>n});var o=r(15485),a=r(95155);let n=(0,o.A)((0,a.jsx)("path",{d:"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zM12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6c3.31 0 6 2.69 6 6s-2.69 6-6 6"}),"Brightness4")},36525:(e,t,r)=>{r.d(t,{A:()=>n});var o=r(15485),a=r(95155);let n=(0,o.A)((0,a.jsx)("path",{d:"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6m0-10c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4"}),"Brightness7")},58081:(e,t,r)=>{r.d(t,{A:()=>i,Y:()=>n});var o=r(85795),a=r(95195);function n(e){return(0,a.Ay)("MuiListItemButton",e)}let i=(0,o.A)("MuiListItemButton",["root","focusVisible","dense","alignItemsFlexStart","disabled","divider","gutters","selected"])},62617:(e,t,r)=>{r.d(t,{A:()=>n});var o=r(15485),a=r(95155);let n=(0,o.A)((0,a.jsx)("path",{d:"M20 8h-2.81c-.45-.78-1.07-1.45-1.82-1.96L17 4.41 15.59 3l-2.17 2.17C12.96 5.06 12.49 5 12 5s-.96.06-1.41.17L8.41 3 7 4.41l1.62 1.63C7.88 6.55 7.26 7.22 6.81 8H4v2h2.09c-.05.33-.09.66-.09 1v1H4v2h2v1c0 .34.04.67.09 1H4v2h2.81c1.04 1.79 2.97 3 5.19 3s4.15-1.21 5.19-3H20v-2h-2.09c.05-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.34-.04-.67-.09-1H20zm-6 8h-4v-2h4zm0-4h-4v-2h4z"}),"BugReport")},63417:(e,t,r)=>{r.d(t,{A:()=>y});var o=r(12115),a=r(2821),n=r(57001),i=r(48116),l=r(66964),s=r(16625),p=r(81852),c=r(74798),d=r(2300),u=r(85795),h=r(95195);function v(e){return(0,h.Ay)("MuiAppBar",e)}(0,u.A)("MuiAppBar",["root","positionFixed","positionAbsolute","positionSticky","positionStatic","positionRelative","colorDefault","colorPrimary","colorSecondary","colorInherit","colorTransparent","colorError","colorInfo","colorSuccess","colorWarning"]);var f=r(95155);let m=(e,t)=>e?"".concat(null==e?void 0:e.replace(")",""),", ").concat(t,")"):t,g=(0,i.Ay)(d.A,{name:"MuiAppBar",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.root,t["position".concat((0,p.A)(r.position))],t["color".concat((0,p.A)(r.color))]]}})((0,l.A)(e=>{let{theme:t}=e;return{display:"flex",flexDirection:"column",width:"100%",boxSizing:"border-box",flexShrink:0,variants:[{props:{position:"fixed"},style:{position:"fixed",zIndex:(t.vars||t).zIndex.appBar,top:0,left:"auto",right:0,"@media print":{position:"absolute"}}},{props:{position:"absolute"},style:{position:"absolute",zIndex:(t.vars||t).zIndex.appBar,top:0,left:"auto",right:0}},{props:{position:"sticky"},style:{position:"sticky",zIndex:(t.vars||t).zIndex.appBar,top:0,left:"auto",right:0}},{props:{position:"static"},style:{position:"static"}},{props:{position:"relative"},style:{position:"relative"}},{props:{color:"inherit"},style:{"--AppBar-color":"inherit"}},{props:{color:"default"},style:{"--AppBar-background":t.vars?t.vars.palette.AppBar.defaultBg:t.palette.grey[100],"--AppBar-color":t.vars?t.vars.palette.text.primary:t.palette.getContrastText(t.palette.grey[100]),...t.applyStyles("dark",{"--AppBar-background":t.vars?t.vars.palette.AppBar.defaultBg:t.palette.grey[900],"--AppBar-color":t.vars?t.vars.palette.text.primary:t.palette.getContrastText(t.palette.grey[900])})}},...Object.entries(t.palette).filter((0,c.A)(["contrastText"])).map(e=>{var r,o;let[a]=e;return{props:{color:a},style:{"--AppBar-background":(null!=(r=t.vars)?r:t).palette[a].main,"--AppBar-color":(null!=(o=t.vars)?o:t).palette[a].contrastText}}}),{props:e=>!0===e.enableColorOnDark&&!["inherit","transparent"].includes(e.color),style:{backgroundColor:"var(--AppBar-background)",color:"var(--AppBar-color)"}},{props:e=>!1===e.enableColorOnDark&&!["inherit","transparent"].includes(e.color),style:{backgroundColor:"var(--AppBar-background)",color:"var(--AppBar-color)",...t.applyStyles("dark",{backgroundColor:t.vars?m(t.vars.palette.AppBar.darkBg,"var(--AppBar-background)"):null,color:t.vars?m(t.vars.palette.AppBar.darkColor,"var(--AppBar-color)"):null})}},{props:{color:"transparent"},style:{"--AppBar-background":"transparent","--AppBar-color":"inherit",backgroundColor:"var(--AppBar-background)",color:"var(--AppBar-color)",...t.applyStyles("dark",{backgroundImage:"none"})}}]}})),y=o.forwardRef(function(e,t){let r=(0,s.b)({props:e,name:"MuiAppBar"}),{className:o,color:i="primary",enableColorOnDark:l=!1,position:c="fixed",...d}=r,u={...r,color:i,position:c,enableColorOnDark:l},h=(e=>{let{color:t,position:r,classes:o}=e,a={root:["root","color".concat((0,p.A)(t)),"position".concat((0,p.A)(r))]};return(0,n.A)(a,v,o)})(u);return(0,f.jsx)(g,{square:!0,component:"header",ownerState:u,elevation:4,className:(0,a.A)(h.root,o,"fixed"===c&&"mui-fixed"),ref:t,...d})})},73707:(e,t,r)=>{r.d(t,{A:()=>y});var o=r(12115),a=r(2821),n=r(57001),i=r(8532),l=r(48116),s=r(66964),p=r(16625),c=r(30424),d=r(95070),u=r(36766),h=r(69582),v=r(14028),f=r(58081),m=r(95155);let g=(0,l.Ay)(d.A,{shouldForwardProp:e=>(0,c.A)(e)||"classes"===e,name:"MuiListItemButton",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.root,r.dense&&t.dense,"flex-start"===r.alignItems&&t.alignItemsFlexStart,r.divider&&t.divider,!r.disableGutters&&t.gutters]}})((0,s.A)(e=>{let{theme:t}=e;return{display:"flex",flexGrow:1,justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minWidth:0,boxSizing:"border-box",textAlign:"left",paddingTop:8,paddingBottom:8,transition:t.transitions.create("background-color",{duration:t.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:(t.vars||t).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},["&.".concat(f.A.selected)]:{backgroundColor:t.vars?"rgba(".concat(t.vars.palette.primary.mainChannel," / ").concat(t.vars.palette.action.selectedOpacity,")"):(0,i.X4)(t.palette.primary.main,t.palette.action.selectedOpacity),["&.".concat(f.A.focusVisible)]:{backgroundColor:t.vars?"rgba(".concat(t.vars.palette.primary.mainChannel," / calc(").concat(t.vars.palette.action.selectedOpacity," + ").concat(t.vars.palette.action.focusOpacity,"))"):(0,i.X4)(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.focusOpacity)}},["&.".concat(f.A.selected,":hover")]:{backgroundColor:t.vars?"rgba(".concat(t.vars.palette.primary.mainChannel," / calc(").concat(t.vars.palette.action.selectedOpacity," + ").concat(t.vars.palette.action.hoverOpacity,"))"):(0,i.X4)(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:t.vars?"rgba(".concat(t.vars.palette.primary.mainChannel," / ").concat(t.vars.palette.action.selectedOpacity,")"):(0,i.X4)(t.palette.primary.main,t.palette.action.selectedOpacity)}},["&.".concat(f.A.focusVisible)]:{backgroundColor:(t.vars||t).palette.action.focus},["&.".concat(f.A.disabled)]:{opacity:(t.vars||t).palette.action.disabledOpacity},variants:[{props:e=>{let{ownerState:t}=e;return t.divider},style:{borderBottom:"1px solid ".concat((t.vars||t).palette.divider),backgroundClip:"padding-box"}},{props:{alignItems:"flex-start"},style:{alignItems:"flex-start"}},{props:e=>{let{ownerState:t}=e;return!t.disableGutters},style:{paddingLeft:16,paddingRight:16}},{props:e=>{let{ownerState:t}=e;return t.dense},style:{paddingTop:4,paddingBottom:4}}]}})),y=o.forwardRef(function(e,t){let r=(0,p.b)({props:e,name:"MuiListItemButton"}),{alignItems:i="center",autoFocus:l=!1,component:s="div",children:c,dense:d=!1,disableGutters:y=!1,divider:A=!1,focusVisibleClassName:b,selected:x=!1,className:k,...w}=r,B=o.useContext(v.A),L=o.useMemo(()=>({dense:d||B.dense||!1,alignItems:i,disableGutters:y}),[i,B.dense,d,y]),C=o.useRef(null);(0,u.A)(()=>{l&&C.current&&C.current.focus()},[l]);let M={...r,alignItems:i,dense:L.dense,disableGutters:y,divider:A,selected:x},R=(e=>{let{alignItems:t,classes:r,dense:o,disabled:a,disableGutters:i,divider:l,selected:s}=e,p=(0,n.A)({root:["root",o&&"dense",!i&&"gutters",l&&"divider",a&&"disabled","flex-start"===t&&"alignItemsFlexStart",s&&"selected"]},f.Y,r);return{...r,...p}})(M),S=(0,h.A)(C,t);return(0,m.jsx)(v.A.Provider,{value:L,children:(0,m.jsx)(g,{ref:S,href:w.href||w.to,component:(w.href||w.to)&&"div"===s?"button":s,focusVisibleClassName:(0,a.A)(R.focusVisible,b),ownerState:M,className:(0,a.A)(R.root,k),...w,classes:R,children:c})})})},80777:(e,t,r)=>{r.d(t,{A:()=>x});var o=r(12115),a=r(2821),n=r(46779),i=r(95195),l=r(57001),s=r(78831),p=r(11947),c=r(33065),d=r(41934),u=r(13419),h=r(36473),v=r(95155);let f=(0,d.A)(),m=(0,s.A)("div",{name:"MuiStack",slot:"Root",overridesResolver:(e,t)=>t.root});function g(e){return(0,p.A)({props:e,name:"MuiStack",defaultTheme:f})}let y=e=>{let{ownerState:t,theme:r}=e,o={display:"flex",flexDirection:"column",...(0,u.NI)({theme:r},(0,u.kW)({values:t.direction,breakpoints:r.breakpoints.values}),e=>({flexDirection:e}))};if(t.spacing){let e=(0,h.LX)(r),a=Object.keys(r.breakpoints.values).reduce((e,r)=>(("object"==typeof t.spacing&&null!=t.spacing[r]||"object"==typeof t.direction&&null!=t.direction[r])&&(e[r]=!0),e),{}),i=(0,u.kW)({values:t.direction,base:a}),l=(0,u.kW)({values:t.spacing,base:a});"object"==typeof i&&Object.keys(i).forEach((e,t,r)=>{if(!i[e]){let o=t>0?i[r[t-1]]:"column";i[e]=o}}),o=(0,n.A)(o,(0,u.NI)({theme:r},l,(r,o)=>t.useFlexGap?{gap:(0,h._W)(e,r)}:{"& > :not(style):not(style)":{margin:0},"& > :not(style) ~ :not(style)":{["margin".concat({row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"}[o?i[o]:t.direction])]:(0,h._W)(e,r)}}))}return(0,u.iZ)(r.breakpoints,o)};var A=r(48116),b=r(16625);let x=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{createStyledComponent:t=m,useThemeProps:r=g,componentName:n="MuiStack"}=e,s=t(y);return o.forwardRef(function(e,t){let p=r(e),{component:d="div",direction:u="column",spacing:h=0,divider:f,children:m,className:g,useFlexGap:y=!1,...A}=(0,c.A)(p),b=(0,l.A)({root:["root"]},e=>(0,i.Ay)(n,e),{});return(0,v.jsx)(s,{as:d,ownerState:{direction:u,spacing:h,useFlexGap:y},ref:t,className:(0,a.A)(b.root,g),...A,children:f?function(e,t){let r=o.Children.toArray(e).filter(Boolean);return r.reduce((e,a,n)=>(e.push(a),n<r.length-1&&e.push(o.cloneElement(t,{key:"separator-".concat(n)})),e),[])}(m,f):m})})}({createStyledComponent:(0,A.Ay)("div",{name:"MuiStack",slot:"Root",overridesResolver:(e,t)=>t.root}),useThemeProps:e=>(0,b.b)({props:e,name:"MuiStack"})})},90363:(e,t,r)=>{r.d(t,{A:()=>n});var o=r(15485),a=r(95155);let n=(0,o.A)((0,a.jsx)("path",{d:"M7.5 5.6 10 7 8.6 4.5 10 2 7.5 3.4 5 2l1.4 2.5L5 7zm12 9.8L17 14l1.4 2.5L17 19l2.5-1.4L22 19l-1.4-2.5L22 14zM22 2l-2.5 1.4L17 2l1.4 2.5L17 7l2.5-1.4L22 7l-1.4-2.5zm-7.63 5.29a.996.996 0 0 0-1.41 0L1.29 18.96c-.39.39-.39 1.02 0 1.41l2.34 2.34c.39.39 1.02.39 1.41 0L16.7 11.05c.39-.39.39-1.02 0-1.41zm-1.03 5.49-2.12-2.12 2.44-2.44 2.12 2.12z"}),"AutoFixHigh")}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[469],{23820:(t,e,r)=>{r.d(e,{Ay:()=>I});var o=r(12115),a=r(2821),n=r(57001),i=r(86251),s=r(48116),l=r(66964),d=r(16625),c=r(43850),u=r(69582),p=r(14028),m=r(85795),v=r(95195);function A(t){return(0,v.Ay)("MuiListItem",t)}(0,m.A)("MuiListItem",["root","container","dense","alignItemsFlexStart","divider","gutters","padding","secondaryAction"]);var g=r(58081);function f(t){return(0,v.Ay)("MuiListItemSecondaryAction",t)}(0,m.A)("MuiListItemSecondaryAction",["root","disableGutters"]);var h=r(95155);let y=(0,s.Ay)("div",{name:"MuiListItemSecondaryAction",slot:"Root",overridesResolver:(t,e)=>{let{ownerState:r}=t;return[e.root,r.disableGutters&&e.disableGutters]}})({position:"absolute",right:16,top:"50%",transform:"translateY(-50%)",variants:[{props:t=>{let{ownerState:e}=t;return e.disableGutters},style:{right:0}}]}),b=o.forwardRef(function(t,e){let r=(0,d.b)({props:t,name:"MuiListItemSecondaryAction"}),{className:i,...s}=r,l=o.useContext(p.A),c={...r,disableGutters:l.disableGutters},u=(t=>{let{disableGutters:e,classes:r}=t;return(0,n.A)({root:["root",e&&"disableGutters"]},f,r)})(c);return(0,h.jsx)(y,{className:(0,a.A)(u.root,i),ownerState:c,ref:e,...s})});b.muiName="ListItemSecondaryAction";let x=(0,s.Ay)("div",{name:"MuiListItem",slot:"Root",overridesResolver:(t,e)=>{let{ownerState:r}=t;return[e.root,r.dense&&e.dense,"flex-start"===r.alignItems&&e.alignItemsFlexStart,r.divider&&e.divider,!r.disableGutters&&e.gutters,!r.disablePadding&&e.padding,r.hasSecondaryAction&&e.secondaryAction]}})((0,l.A)(t=>{let{theme:e}=t;return{display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",width:"100%",boxSizing:"border-box",textAlign:"left",variants:[{props:t=>{let{ownerState:e}=t;return!e.disablePadding},style:{paddingTop:8,paddingBottom:8}},{props:t=>{let{ownerState:e}=t;return!e.disablePadding&&e.dense},style:{paddingTop:4,paddingBottom:4}},{props:t=>{let{ownerState:e}=t;return!e.disablePadding&&!e.disableGutters},style:{paddingLeft:16,paddingRight:16}},{props:t=>{let{ownerState:e}=t;return!e.disablePadding&&!!e.secondaryAction},style:{paddingRight:48}},{props:t=>{let{ownerState:e}=t;return!!e.secondaryAction},style:{["& > .".concat(g.A.root)]:{paddingRight:48}}},{props:{alignItems:"flex-start"},style:{alignItems:"flex-start"}},{props:t=>{let{ownerState:e}=t;return e.divider},style:{borderBottom:"1px solid ".concat((e.vars||e).palette.divider),backgroundClip:"padding-box"}},{props:t=>{let{ownerState:e}=t;return e.button},style:{transition:e.transitions.create("background-color",{duration:e.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}}}},{props:t=>{let{ownerState:e}=t;return e.hasSecondaryAction},style:{paddingRight:48}}]}})),C=(0,s.Ay)("li",{name:"MuiListItem",slot:"Container",overridesResolver:(t,e)=>e.container})({position:"relative"}),I=o.forwardRef(function(t,e){let r=(0,d.b)({props:t,name:"MuiListItem"}),{alignItems:s="center",children:l,className:m,component:v,components:g={},componentsProps:f={},ContainerComponent:y="li",ContainerProps:{className:I,...R}={},dense:S=!1,disableGutters:M=!1,disablePadding:w=!1,divider:L=!1,secondaryAction:k,slotProps:j={},slots:N={},...O}=r,P=o.useContext(p.A),F=o.useMemo(()=>({dense:S||P.dense||!1,alignItems:s,disableGutters:M}),[s,P.dense,S,M]),G=o.useRef(null),B=o.Children.toArray(l),V=B.length&&(0,c.A)(B[B.length-1],["ListItemSecondaryAction"]),H={...r,alignItems:s,dense:F.dense,disableGutters:M,disablePadding:w,divider:L,hasSecondaryAction:V},T=(t=>{let{alignItems:e,classes:r,dense:o,disableGutters:a,disablePadding:i,divider:s,hasSecondaryAction:l}=t;return(0,n.A)({root:["root",o&&"dense",!a&&"gutters",!i&&"padding",s&&"divider","flex-start"===e&&"alignItemsFlexStart",l&&"secondaryAction"],container:["container"]},A,r)})(H),z=(0,u.A)(G,e),D=N.root||g.Root||x,X=j.root||f.root||{},_={className:(0,a.A)(T.root,X.className,m),...O},E=v||"li";return V?(E=_.component||v?E:"div","li"===y&&("li"===E?E="div":"li"===_.component&&(_.component="div")),(0,h.jsx)(p.A.Provider,{value:F,children:(0,h.jsxs)(C,{as:y,className:(0,a.A)(T.container,I),ref:z,ownerState:H,...R,children:[(0,h.jsx)(D,{...X,...!(0,i.A)(D)&&{as:E,ownerState:{...H,...X.ownerState}},..._,children:B}),B.pop()]})})):(0,h.jsx)(p.A.Provider,{value:F,children:(0,h.jsxs)(D,{...X,as:E,ref:z,...!(0,i.A)(D)&&{ownerState:{...H,...X.ownerState}},..._,children:[B,k&&(0,h.jsx)(b,{children:k})]})})})},29767:(t,e,r)=>{r.d(e,{A:()=>v});var o=r(12115),a=r(2821),n=r(57001),i=r(48116),s=r(16625),l=r(2300),d=r(85795),c=r(95195);function u(t){return(0,c.Ay)("MuiCard",t)}(0,d.A)("MuiCard",["root"]);var p=r(95155);let m=(0,i.Ay)(l.A,{name:"MuiCard",slot:"Root",overridesResolver:(t,e)=>e.root})({overflow:"hidden"}),v=o.forwardRef(function(t,e){let r=(0,s.b)({props:t,name:"MuiCard"}),{className:o,raised:i=!1,...l}=r,d={...r,raised:i},c=(t=>{let{classes:e}=t;return(0,n.A)({root:["root"]},u,e)})(d);return(0,p.jsx)(m,{className:(0,a.A)(c.root,o),elevation:i?8:void 0,ref:e,ownerState:d,...l})})},49501:(t,e,r)=>{r.d(e,{A:()=>m});var o=r(12115),a=r(2821),n=r(57001),i=r(48116),s=r(66964),l=r(16625),d=r(2319),c=r(14028),u=r(95155);let p=(0,i.Ay)("div",{name:"MuiListItemIcon",slot:"Root",overridesResolver:(t,e)=>{let{ownerState:r}=t;return[e.root,"flex-start"===r.alignItems&&e.alignItemsFlexStart]}})((0,s.A)(t=>{let{theme:e}=t;return{minWidth:56,color:(e.vars||e).palette.action.active,flexShrink:0,display:"inline-flex",variants:[{props:{alignItems:"flex-start"},style:{marginTop:8}}]}})),m=o.forwardRef(function(t,e){let r=(0,l.b)({props:t,name:"MuiListItemIcon"}),{className:i,...s}=r,m=o.useContext(c.A),v={...r,alignItems:m.alignItems},A=(t=>{let{alignItems:e,classes:r}=t;return(0,n.A)({root:["root","flex-start"===e&&"alignItemsFlexStart"]},d.f,r)})(v);return(0,u.jsx)(p,{className:(0,a.A)(A.root,i),ownerState:v,ref:e,...s})})},51611:(t,e,r)=>{r.d(e,{A:()=>n});var o=r(15485),a=r(95155);let n=(0,o.A)((0,a.jsx)("path",{d:"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14"}),"Search")},53062:(t,e,r)=>{r.d(e,{A:()=>h});var o=r(12115),a=r(2821),n=r(57001),i=r(48116),s=r(66964),l=r(16625),d=r(85795),c=r(95195);function u(t){return(0,c.Ay)("MuiCardActionArea",t)}let p=(0,d.A)("MuiCardActionArea",["root","focusVisible","focusHighlight"]);var m=r(95070),v=r(77765),A=r(95155);let g=(0,i.Ay)(m.A,{name:"MuiCardActionArea",slot:"Root",overridesResolver:(t,e)=>e.root})((0,s.A)(t=>{let{theme:e}=t;return{display:"block",textAlign:"inherit",borderRadius:"inherit",width:"100%",["&:hover .".concat(p.focusHighlight)]:{opacity:(e.vars||e).palette.action.hoverOpacity,"@media (hover: none)":{opacity:0}},["&.".concat(p.focusVisible," .").concat(p.focusHighlight)]:{opacity:(e.vars||e).palette.action.focusOpacity}}})),f=(0,i.Ay)("span",{name:"MuiCardActionArea",slot:"FocusHighlight",overridesResolver:(t,e)=>e.focusHighlight})((0,s.A)(t=>{let{theme:e}=t;return{overflow:"hidden",pointerEvents:"none",position:"absolute",top:0,right:0,bottom:0,left:0,borderRadius:"inherit",opacity:0,backgroundColor:"currentcolor",transition:e.transitions.create("opacity",{duration:e.transitions.duration.short})}})),h=o.forwardRef(function(t,e){let r=(0,l.b)({props:t,name:"MuiCardActionArea"}),{children:o,className:i,focusVisibleClassName:s,slots:d={},slotProps:c={},...p}=r,m=(t=>{let{classes:e}=t;return(0,n.A)({root:["root"],focusHighlight:["focusHighlight"]},u,e)})(r),h={slots:d,slotProps:c},[y,b]=(0,v.A)("root",{elementType:g,externalForwardedProps:{...h,...p},shouldForwardComponentProp:!0,ownerState:r,ref:e,className:(0,a.A)(m.root,i),additionalProps:{focusVisibleClassName:(0,a.A)(s,m.focusVisible)}}),[x,C]=(0,v.A)("focusHighlight",{elementType:f,externalForwardedProps:h,ownerState:r,ref:e,className:m.focusHighlight});return(0,A.jsxs)(y,{...b,children:[o,(0,A.jsx)(x,{...C})]})})},58081:(t,e,r)=>{r.d(e,{A:()=>i,Y:()=>n});var o=r(85795),a=r(95195);function n(t){return(0,a.Ay)("MuiListItemButton",t)}let i=(0,o.A)("MuiListItemButton",["root","focusVisible","dense","alignItemsFlexStart","disabled","divider","gutters","selected"])},73707:(t,e,r)=>{r.d(e,{A:()=>h});var o=r(12115),a=r(2821),n=r(57001),i=r(8532),s=r(48116),l=r(66964),d=r(16625),c=r(30424),u=r(95070),p=r(36766),m=r(69582),v=r(14028),A=r(58081),g=r(95155);let f=(0,s.Ay)(u.A,{shouldForwardProp:t=>(0,c.A)(t)||"classes"===t,name:"MuiListItemButton",slot:"Root",overridesResolver:(t,e)=>{let{ownerState:r}=t;return[e.root,r.dense&&e.dense,"flex-start"===r.alignItems&&e.alignItemsFlexStart,r.divider&&e.divider,!r.disableGutters&&e.gutters]}})((0,l.A)(t=>{let{theme:e}=t;return{display:"flex",flexGrow:1,justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minWidth:0,boxSizing:"border-box",textAlign:"left",paddingTop:8,paddingBottom:8,transition:e.transitions.create("background-color",{duration:e.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},["&.".concat(A.A.selected)]:{backgroundColor:e.vars?"rgba(".concat(e.vars.palette.primary.mainChannel," / ").concat(e.vars.palette.action.selectedOpacity,")"):(0,i.X4)(e.palette.primary.main,e.palette.action.selectedOpacity),["&.".concat(A.A.focusVisible)]:{backgroundColor:e.vars?"rgba(".concat(e.vars.palette.primary.mainChannel," / calc(").concat(e.vars.palette.action.selectedOpacity," + ").concat(e.vars.palette.action.focusOpacity,"))"):(0,i.X4)(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}},["&.".concat(A.A.selected,":hover")]:{backgroundColor:e.vars?"rgba(".concat(e.vars.palette.primary.mainChannel," / calc(").concat(e.vars.palette.action.selectedOpacity," + ").concat(e.vars.palette.action.hoverOpacity,"))"):(0,i.X4)(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:e.vars?"rgba(".concat(e.vars.palette.primary.mainChannel," / ").concat(e.vars.palette.action.selectedOpacity,")"):(0,i.X4)(e.palette.primary.main,e.palette.action.selectedOpacity)}},["&.".concat(A.A.focusVisible)]:{backgroundColor:(e.vars||e).palette.action.focus},["&.".concat(A.A.disabled)]:{opacity:(e.vars||e).palette.action.disabledOpacity},variants:[{props:t=>{let{ownerState:e}=t;return e.divider},style:{borderBottom:"1px solid ".concat((e.vars||e).palette.divider),backgroundClip:"padding-box"}},{props:{alignItems:"flex-start"},style:{alignItems:"flex-start"}},{props:t=>{let{ownerState:e}=t;return!e.disableGutters},style:{paddingLeft:16,paddingRight:16}},{props:t=>{let{ownerState:e}=t;return e.dense},style:{paddingTop:4,paddingBottom:4}}]}})),h=o.forwardRef(function(t,e){let r=(0,d.b)({props:t,name:"MuiListItemButton"}),{alignItems:i="center",autoFocus:s=!1,component:l="div",children:c,dense:u=!1,disableGutters:h=!1,divider:y=!1,focusVisibleClassName:b,selected:x=!1,className:C,...I}=r,R=o.useContext(v.A),S=o.useMemo(()=>({dense:u||R.dense||!1,alignItems:i,disableGutters:h}),[i,R.dense,u,h]),M=o.useRef(null);(0,p.A)(()=>{s&&M.current&&M.current.focus()},[s]);let w={...r,alignItems:i,dense:S.dense,disableGutters:h,divider:y,selected:x},L=(t=>{let{alignItems:e,classes:r,dense:o,disabled:a,disableGutters:i,divider:s,selected:l}=t,d=(0,n.A)({root:["root",o&&"dense",!i&&"gutters",s&&"divider",a&&"disabled","flex-start"===e&&"alignItemsFlexStart",l&&"selected"]},A.Y,r);return{...r,...d}})(w),k=(0,m.A)(M,e);return(0,g.jsx)(v.A.Provider,{value:S,children:(0,g.jsx)(f,{ref:k,href:I.href||I.to,component:(I.href||I.to)&&"div"===l?"button":l,focusVisibleClassName:(0,a.A)(L.focusVisible,b),ownerState:w,className:(0,a.A)(L.root,C),...I,classes:L,children:c})})})},76530:(t,e,r)=>{r.d(e,{A:()=>n});var o=r(15485),a=r(95155);let n=(0,o.A)((0,a.jsx)("path",{d:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4z"}),"Refresh")},84578:(t,e,r)=>{r.d(e,{A:()=>m});var o=r(12115),a=r(2821),n=r(57001),i=r(48116),s=r(16625),l=r(85795),d=r(95195);function c(t){return(0,d.Ay)("MuiCardContent",t)}(0,l.A)("MuiCardContent",["root"]);var u=r(95155);let p=(0,i.Ay)("div",{name:"MuiCardContent",slot:"Root",overridesResolver:(t,e)=>e.root})({padding:16,"&:last-child":{paddingBottom:24}}),m=o.forwardRef(function(t,e){let r=(0,s.b)({props:t,name:"MuiCardContent"}),{className:o,component:i="div",...l}=r,d={...r,component:i},m=(t=>{let{classes:e}=t;return(0,n.A)({root:["root"]},c,e)})(d);return(0,u.jsx)(p,{as:i,className:(0,a.A)(m.root,o),ownerState:d,ref:e,...l})})}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4740],{748:(e,t,r)=>{r.d(t,{kY:()=>s,Ic:()=>l});var a=r(26796),o=r(87021);let s={light:{background:"#FFFFFF",foreground:"#2C3E50",surface:"#F5F6FA",surfaceRaised:"#FFFFFF",paperBackground:"#F5F6FA",textSecondary:"#7F8C8D",textDisabled:"#9CA3AF",border:"#e5e7eb",heading:"#111",text:"#333",secondaryText:"#666",error:{background:"#fef2f2",border:"#fecaca",text:"#dc2626"},domain:{resource:"#009688",resourceSoft:"#4DB6AC",signal:"#7E57C2",startNode:"#795548",codeBackground:"#f5f5f5",http:{get:"#2e7d32",post:"#1565c0",put:"#e65100",patch:"#6a1b9a",delete:"#c62828"},transport:{stdio:{fg:"#1976d2",bg:"#e3f2fd"},websocket:{fg:"#2e7d32",bg:"#e8f5e8"},sse:{fg:"#f57c00",bg:"#fff3e0"},streamable:{fg:"#00796b",bg:"#e0f2f1"},default:{fg:"#757575",bg:"#f5f5f5"}}}},dark:{background:"#0f1319",foreground:"#eef1f5",surface:"#1a212b",surfaceRaised:"#242d3a",paperBackground:"#1a212b",textSecondary:"#b4bdca",textDisabled:"#6b7280",border:"#37404e",heading:"#f5f7fa",text:"#eef1f5",secondaryText:"#b4bdca",error:{background:"#2a1618",border:"#5a2a2e",text:"#ff6b6b"},domain:{resource:"#26a69a",resourceSoft:"#4DB6AC",signal:"#9575CD",startNode:"#a1887f",codeBackground:"#242d3a",http:{get:"#66bb6a",post:"#5b9dff",put:"#ffa726",patch:"#ba68c8",delete:"#ef5350"},transport:{stdio:{fg:"#90caf9",bg:"#1e2a3a"},websocket:{fg:"#a5d6a7",bg:"#1e2e22"},sse:{fg:"#ffcc80",bg:"#33281a"},streamable:{fg:"#80cbc4",bg:"#17322e"},default:{fg:"#b4bdca",bg:"#242d3a"}}}}},n=(0,o.h)("frontend/utils/theme");function l(){let{isDarkMode:e}=(0,a.useTheme)();return n.debug("useThemeUtils called with isDarkMode: ".concat(e)),{getThemeValue:(t,r)=>e?r:t,getThemeColor:t=>{let r=t.split("."),a=s[e?"dark":"light"];for(let e of r)if(!a||"object"!=typeof a||!(e in a))return n.warn("Theme color path not found: ".concat(t)),"";else a=a[e];return a},colors:e?s.dark:s.light,isDarkMode:e}}},17427:(e,t,r)=>{r.d(t,{A:()=>f});var a=r(95155),o=r(12115),s=r(25635),n=r(94049),l=r(99944),i=r(9957),c=r(52641),d=r(95436),u=r(55606),p=r(86973),h=r(9562);let f=e=>{var t;let{schema:r,values:f,onChange:m,size:x="small"}=e,[b,g]=(0,o.useState)({}),y=null!=(t=null==r?void 0:r.properties)?t:{},v=Array.isArray(null==r?void 0:r.required)?r.required:[],j=Object.keys(y);if(0===j.length)return(0,a.jsx)(s.default,{variant:"body2",color:"text.secondary",children:"This tool takes no parameters."});let k=(e,t)=>{let r={...f};void 0===t?delete r[e]:r[e]=t,m(r)};return(0,a.jsx)(n.default,{sx:{display:"flex",flexDirection:"column",gap:2},children:j.map(e=>{var t,r;let o=null!=(t=y[e])?t:{},m=v.includes(e)?"".concat(e," *"):e,j="string"==typeof o.description?o.description:"";if("boolean"===o.type)return(0,a.jsx)(l.A,{control:(0,a.jsx)(i.A,{size:x,checked:!0===f[e],onChange:t=>k(e,t.target.checked)}),label:(0,a.jsxs)(n.default,{children:[(0,a.jsx)(s.default,{variant:"body2",children:m}),j&&(0,a.jsx)(s.default,{variant:"caption",color:"text.secondary",children:j})]})},e);if(Array.isArray(o.enum)&&o.enum.length>0){let t=f[e];return(0,a.jsxs)(c.A,{size:x,fullWidth:!0,children:[(0,a.jsx)(d.A,{id:"schema-param-".concat(e),children:m}),(0,a.jsx)(u.A,{labelId:"schema-param-".concat(e),label:m,value:o.enum.includes(t)?t:"",onChange:t=>k(e,t.target.value),children:o.enum.map(e=>(0,a.jsx)(p.A,{value:e,children:String(e)},String(e)))}),j&&(0,a.jsx)(s.default,{variant:"caption",color:"text.secondary",sx:{mt:.5,mx:1.75},children:j})]},e)}if("number"===o.type||"integer"===o.type)return(0,a.jsx)(h.A,{fullWidth:!0,size:x,type:"number",label:m,value:void 0!==f[e]?String(f[e]):"",onChange:t=>{let r=t.target.value;if(""===r)return void k(e,void 0);let a="integer"===o.type?parseInt(r,10):parseFloat(r);k(e,Number.isNaN(a)?void 0:a)},helperText:j},e);if("object"===o.type||"array"===o.type){let t=null!=(r=b[e])?r:void 0!==f[e]?JSON.stringify(f[e],null,2):"",s=null;if(t.trim())try{JSON.parse(t)}catch(e){s="Not valid JSON yet"}return(0,a.jsx)(h.A,{fullWidth:!0,size:x,multiline:!0,minRows:2,label:"".concat(m," (JSON ").concat(o.type,")"),value:t,error:!!s,helperText:null!=s?s:j,onChange:t=>{let r=t.target.value;if(g(t=>({...t,[e]:r})),!r.trim())return void k(e,void 0);try{k(e,JSON.parse(r))}catch(e){}},slotProps:{input:{sx:{fontFamily:"monospace",fontSize:13}}}},e)}return(0,a.jsx)(h.A,{fullWidth:!0,size:x,label:m,value:void 0!==f[e]?String(f[e]):"",onChange:t=>k(e,""===t.target.value?void 0:t.target.value),helperText:j},e)})})}},26796:(e,t,r)=>{r.r(t),r.d(t,{ThemeProvider:()=>h,useTheme:()=>f});var a=r(95155),o=r(12115),s=r(87021),n=r(7160),l=r(29197),i=r(748),c=r(84563),d=r(29692);let u=(0,s.h)("frontend/contexts/ThemeContext"),p=(0,o.createContext)(void 0),h=e=>{let{children:t}=e,[r,s]=(0,o.useState)(!1),[h,f]=(0,o.useState)(!1);(0,o.useEffect)(()=>{(async()=>{u.debug("Loading theme preference from storage");let e=await (0,d.YM)(d.Zg.THEME,"light");u.info("Theme loaded from storage: ".concat(e));let t="dark"===e;f(t),t?document.documentElement.classList.add("dark-theme"):document.documentElement.classList.remove("dark-theme"),s(!0)})()},[]);let m=(0,o.useMemo)(()=>(function(e){let t="dark"===e?i.kY.dark:i.kY.light,r="dark"===e;return(0,l.A)({palette:{mode:e,primary:{main:r?"#4f93f5":"#007bff",light:r?"#6aa6f7":"#3395ff",dark:r?"#3a7ad4":"#0056b3"},secondary:{main:r?"#a3adba":"#6c757d"},error:{main:r?"#ff6b6b":"#dc2626",light:r?"#5a2a2e":"#fecaca",dark:r?"#2a1618":"#b91c1c"},warning:{main:r?"#e0a23c":"#f59e0b"},info:{main:r?"#56b6d6":"#3b82f6"},success:{main:r?"#3fae72":"#16a34a"},divider:t.border,background:{default:t.background,paper:t.surface},text:{primary:t.foreground,secondary:t.textSecondary,disabled:t.textDisabled}},typography:{fontFamily:"var(--font-geist-sans), Arial, sans-serif",h1:{fontWeight:700},h2:{fontWeight:700},h3:{fontWeight:600},h4:{fontWeight:600},h5:{fontWeight:600},h6:{fontWeight:600}},components:{MuiButton:{styleOverrides:{root:{textTransform:"none",borderRadius:"0.375rem"}}},MuiPaper:{styleOverrides:{root:{borderRadius:"0.5rem",backgroundImage:"none"}}},MuiTextField:{styleOverrides:{root:{"& .MuiOutlinedInput-root":{borderRadius:"0.375rem"}}}},MuiCard:{styleOverrides:{root:{borderRadius:"0.5rem",border:r?"1px solid ".concat(t.border):void 0,boxShadow:r?"0 4px 6px -1px rgba(0, 0, 0, 0.4), 0 2px 4px -1px rgba(0, 0, 0, 0.3)":"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)"}}},MuiMenu:{styleOverrides:{paper:{backgroundColor:t.surfaceRaised,backgroundImage:"none"}}},MuiPopover:{styleOverrides:{paper:{backgroundColor:t.surfaceRaised,backgroundImage:"none"}}},MuiTooltip:{styleOverrides:{tooltip:r?{backgroundColor:t.surfaceRaised,border:"1px solid ".concat(t.border),color:t.foreground}:void 0}}}})})(h?"dark":"light"),[h]);return u.debug("Rendering ThemeProvider with isDarkMode: ".concat(h)),(0,a.jsx)(p.Provider,{value:{toggleTheme:()=>{f(e=>{let t=!e,r=t?"dark":"light";return u.info("Toggling theme to: ".concat(r)),t?document.documentElement.classList.add("dark-theme"):document.documentElement.classList.remove("dark-theme"),(0,d.VH)(d.Zg.THEME,r),t})},isDarkMode:h},children:(0,a.jsxs)(n.A,{theme:m,children:[(0,a.jsx)(c.Ay,{}),t]})})},f=()=>{let e=(0,o.useContext)(p);if(!e)throw u.error("useTheme hook used outside of ThemeProvider"),Error("useTheme must be used within a ThemeProvider");return u.debug("useTheme hook accessed"),e}},40962:(e,t,r)=>{r.d(t,{A:()=>ef});var a=r(95155),o=r(12115),s=r(87021),n=r(748),l=r(36741),i=r(12857),c=r(48563),d=r(76530),u=r(14915),p=r(4484),h=r(80412),f=r(13548),m=r(20099),x=r(11414),b=r(26188),g=r(52277),y=r(59652),v=r(89296),j=r(97714),k=r(62291),A=r(47529),S=r(94929),w=r(81956),C=r(17897),O=r(70272),z=r(79299),T=r(28548),F=r(67891),P=r(84318),E=r(4543),U=r(8415);let R=e=>{let{transport:t,size:r="small"}=e,{colors:o}=(0,n.Ic)(),s=o.domain.transport,l=(()=>{switch(t){case"stdio":return{label:"STDIO",icon:(0,a.jsx)(F.A,{fontSize:"small"}),color:s.stdio.fg,bgColor:s.stdio.bg};case"websocket":return{label:"WebSocket",icon:(0,a.jsx)(P.A,{fontSize:"small"}),color:s.websocket.fg,bgColor:s.websocket.bg};case"sse":return{label:"SSE",icon:(0,a.jsx)(E.A,{fontSize:"small"}),color:s.sse.fg,bgColor:s.sse.bg};case"streamable":return{label:"HTTP Stream",icon:(0,a.jsx)(U.A,{fontSize:"small"}),color:s.streamable.fg,bgColor:s.streamable.bg};default:return{label:"UNKNOWN",icon:(0,a.jsx)(F.A,{fontSize:"small"}),color:s.default.fg,bgColor:s.default.bg}}})();return(0,a.jsx)(T.A,{icon:l.icon,label:l.label,size:r,sx:{backgroundColor:l.bgColor,color:l.color,fontWeight:500,fontSize:"small"===r?"0.75rem":"0.875rem",height:"small"===r?24:32,"& .MuiChip-icon":{color:l.color}}})};var N=r(2778),W=r(52363),I=r(65036),M=r(75912),D=r(91871),B=r(94049),J=r(25635),_=r(22003),L=r(99944),H=r(22822),q=r(41602),Y=r(23820),$=r(49501),K=r(17681),Q=r(16186),V=r(80411),Z=r(86631);let G=(0,s.h)("frontend/components/mcp/MCPServerManager/ServerUpdateDialog"),X=e=>{let{open:t,onClose:r,serverName:s,rootPath:n,installCommand:i,buildCommand:d,enabled:u,updateInfo:p,onToggle:h,onUpdated:f}=e,[m,x]=(0,o.useState)(null),[b,g]=(0,o.useState)(!1),[y,v]=(0,o.useState)(!1),[k,A]=(0,o.useState)(!1),[w,C]=(0,o.useState)(null),[O,z]=(0,o.useState)({}),[F,P]=(0,o.useState)(""),E=!!(i&&i.trim()),U=!!(d&&d.trim()),R=[{key:"stop",label:"Stop server",active:u},{key:"pull",label:"Pull latest changes",active:!0},{key:"install",label:"Install dependencies (".concat(i,")"),active:E},{key:"build",label:"Build (".concat(d,")"),active:U},{key:"restart",label:"Restart server",active:u}];(0,o.useEffect)(()=>{t&&(g(!1),v(!1),A(!1),C(null),z({}),P(""))},[t,s]),(0,o.useEffect)(()=>{if(t&&p.remoteUrl&&p.localSha&&p.remoteSha){let e=!1;return(0,V.Qz)(p.remoteUrl,p.localSha,p.remoteSha).then(t=>{e||x(t)}),()=>{e=!0}}x(null)},[t,p.remoteUrl,p.localSha,p.remoteSha]);let X=(0,o.useCallback)((e,t)=>{z(r=>({...r,[e]:t}))},[]),ee=(0,o.useCallback)((e,t)=>{P(r=>r+(r?"\n":"")+"--- ".concat(e," ---\n")+(t||"").trim()+"\n")},[]),et=async()=>{v(!0),C(null),G.info("Starting update for server ".concat(s));let e=(e,t)=>{X(e,"error"),C(t),v(!1)};try{u&&(X("stop","running"),await Promise.resolve(h(!1)),X("stop","done")),X("pull","running");let t=await (0,V.Qv)(n);if(!t.success)return void e("pull",t.error||"Failed to pull updates");if(ee("Pull","Updated ".concat((0,V.Fu)(t.oldSha)," -> ").concat((0,V.Fu)(t.newSha))),X("pull","done"),E){X("install","running");let t=await (0,Z.b)(n,i.trim());if(ee("Install",t.output),!t.success)return void e("install",t.message.text);X("install","done")}if(U){X("build","running");let t=await (0,Z.c)(n,d.trim());if(ee("Build",t.output),!t.success)return void e("build",t.message.text);X("build","done")}u&&(X("restart","running"),await Promise.resolve(h(!0)),X("restart","done")),G.info("Update completed for server ".concat(s)),A(!0),v(!1),null==f||f()}catch(e){G.error("Update failed for server ".concat(s),e),C(e.message||"Update failed"),v(!1)}},er=y||k||Object.keys(O).length>0,ea=p.hasLocalChanges&&!b;return(0,a.jsxs)(N.A,{open:t,onClose:y?void 0:r,maxWidth:"sm",fullWidth:!0,onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)(W.A,{component:"div",sx:{display:"flex",alignItems:"center",gap:1},children:[(0,a.jsx)(j.A,{color:"primary"}),"Update ",s]}),(0,a.jsxs)(I.A,{children:[(0,a.jsxs)(B.default,{sx:{display:"flex",alignItems:"center",gap:1,mb:1,flexWrap:"wrap"},children:[(0,a.jsx)(T.A,{size:"small",label:(0,V.Fu)(p.localSha),sx:{fontFamily:"monospace"}}),(0,a.jsx)(J.default,{variant:"body2",color:"text.secondary",children:"→"}),(0,a.jsx)(T.A,{size:"small",color:"primary",label:(0,V.Fu)(p.remoteSha),sx:{fontFamily:"monospace"}}),p.branch&&"HEAD"!==p.branch&&(0,a.jsxs)(J.default,{variant:"body2",color:"text.secondary",children:["on ",(0,a.jsx)("code",{children:p.branch})]}),(null==m?void 0:m.behindBy)!=null&&(0,a.jsxs)(J.default,{variant:"body2",color:"text.secondary",children:["(",m.behindBy," commit",1===m.behindBy?"":"s"," behind)"]})]}),p.repoRoot&&p.repoRoot.replace(/\\/g,"/").replace(/\/+$/,"").toLowerCase()!==n.replace(/\\/g,"/").replace(/\/+$/,"").toLowerCase()&&(0,a.jsxs)(J.default,{variant:"body2",color:"text.secondary",sx:{mb:1},children:["This server lives inside a larger repository — the update pulls"," ",(0,a.jsx)("code",{children:p.repoRoot})," as a whole (other servers from the same repository are updated along with it)."]}),m&&m.commits.length>0&&!er&&(0,a.jsx)(B.default,{sx:{mb:2,p:1,borderRadius:1,border:"1px solid",borderColor:"divider",maxHeight:160,overflow:"auto"},children:m.commits.map(e=>(0,a.jsxs)(J.default,{variant:"body2",sx:{fontSize:"0.8rem"},noWrap:!0,title:e.message,children:[(0,a.jsx)("code",{children:e.sha})," ",e.message]},e.sha))}),p.hasLocalChanges&&!er&&(0,a.jsxs)(_.A,{severity:"warning",sx:{mb:2},children:[(0,a.jsxs)(J.default,{variant:"body2",sx:{mb:1},children:["This repository has local changes to tracked files. Updating will ",(0,a.jsx)("strong",{children:"discard"})," them. Untracked files (e.g. a ",(0,a.jsx)("code",{children:".env"})," you created) and all FLUJO settings for this server are kept."]}),(0,a.jsx)(B.default,{component:"ul",sx:{m:0,pl:3,maxHeight:100,overflow:"auto"},children:p.dirtyFiles.map(e=>(0,a.jsx)("li",{children:(0,a.jsx)(J.default,{variant:"body2",component:"span",sx:{fontFamily:"monospace",fontSize:"0.8rem"},children:e})},e))}),(0,a.jsx)(L.A,{sx:{mt:1},control:(0,a.jsx)(H.A,{size:"small",checked:b,onChange:e=>g(e.target.checked)}),label:(0,a.jsx)(J.default,{variant:"body2",children:"Discard my local changes and update"})})]}),(0,a.jsx)(q.A,{dense:!0,disablePadding:!0,children:R.filter(e=>e.active).map(e=>(0,a.jsxs)(Y.Ay,{disableGutters:!0,sx:{py:.25},children:[(0,a.jsx)($.A,{sx:{minWidth:32},children:(e=>{switch(e){case"running":return(0,a.jsx)(S.default,{size:"small",color:"primary"});case"done":return(0,a.jsx)(l.A,{color:"success",fontSize:"small"});case"error":return(0,a.jsx)(c.A,{color:"error",fontSize:"small"});default:return(0,a.jsx)(Q.A,{color:"disabled",fontSize:"small"})}})(O[e.key])}),(0,a.jsx)(K.A,{primary:e.label,primaryTypographyProps:{variant:"body2",noWrap:!0,title:e.label}})]},e.key))}),w&&(0,a.jsxs)(_.A,{severity:"error",sx:{mt:2,whiteSpace:"pre-wrap"},children:[w,u&&(0,a.jsx)(J.default,{variant:"body2",sx:{mt:1},children:"The server was left stopped. Adjust the install/build commands via Edit, then re-enable it."})]}),k&&(0,a.jsxs)(_.A,{severity:"success",sx:{mt:2},children:["Server updated successfully",u?" and restarted":"","."]}),F&&(0,a.jsx)(B.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:F})]}),(0,a.jsxs)(M.A,{children:[(0,a.jsx)(D.A,{onClick:r,disabled:y,children:k?"Close":"Cancel"}),!k&&(0,a.jsx)(D.A,{variant:"contained",color:"primary",startIcon:(0,a.jsx)(j.A,{}),onClick:et,disabled:y||ea,children:y?"Updating…":w?"Retry Update":"Update"})]})]})};var ee=r(9562),et=r(41983),er=r(86946);let ea=(0,s.h)("frontend/components/mcp/MCPServerManager/FilesystemRootsModal"),eo=e=>{let{open:t,serverName:r,initialRoots:s,onClose:n,onSaved:l}=e,[i,c]=(0,o.useState)([]),[d,u]=(0,o.useState)(""),[h,f]=(0,o.useState)(!1),[m,x]=(0,o.useState)(null),b="bash"===r;(0,o.useEffect)(()=>{t&&(c(Array.isArray(s)?[...s]:[]),u(""),x(null))},[t,s]);let g=()=>{let e=d.trim();if(e){if(i.includes(e))return void x("That root is already in the list.");c(t=>[...t,e]),u(""),x(null)}},y=async()=>{f(!0),x(null);try{let e=await C.S.updateServerConfig(r,{roots:i});if(e&&"error"in e&&e.error)return void x("string"==typeof e.error?e.error:"Failed to save roots.");ea.info("Saved ".concat(i.length," root(s) for ").concat(r)),null==l||l(i),n()}catch(e){ea.warn("Failed to save filesystem roots",e),x(e instanceof Error?e.message:"Failed to save roots.")}finally{f(!1)}};return(0,a.jsxs)(N.A,{open:t,onClose:n,maxWidth:"sm",fullWidth:!0,onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)(W.A,{children:["Configure ",r," roots"]}),(0,a.jsxs)(I.A,{children:[(0,a.jsxs)(J.default,{variant:"body2",color:"text.secondary",sx:{mb:2},children:["Confine the built-in ",(0,a.jsx)("b",{children:r})," server to these folders. Leave the list empty for full host access (unless the ",(0,a.jsx)("code",{children:b?"FLUJO_BASH_ROOTS":"FLUJO_FS_ROOTS"})," environment variable is set, which always acts as a hard ceiling)."]}),b&&(0,a.jsxs)(_.A,{severity:"info",sx:{mb:2},children:["The bash ",(0,a.jsx)("code",{children:"cwd"})," fence is best-effort: a shell can still ",(0,a.jsx)("code",{children:"cd"})," elsewhere or use absolute paths, so ",(0,a.jsx)("code",{children:"FLUJO_FS_ROOTS"}),"/",(0,a.jsx)("code",{children:"FLUJO_BASH_ROOTS"})," and OS permissions remain the real boundary."]}),m&&(0,a.jsx)(_.A,{severity:"error",sx:{mb:2},onClose:()=>x(null),children:m}),(0,a.jsxs)(B.default,{sx:{display:"flex",gap:1,mb:1},children:[(0,a.jsx)(ee.A,{fullWidth:!0,size:"small",label:"Add a root folder (absolute path)",value:d,onChange:e=>u(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),g())},placeholder:"e.g. C:\\\\Users\\\\me\\\\project or /home/me/project"}),(0,a.jsx)(D.A,{variant:"outlined",startIcon:(0,a.jsx)(er.A,{}),onClick:g,disabled:!d.trim(),children:"Add"})]}),0===i.length?(0,a.jsx)(J.default,{variant:"body2",color:"text.secondary",sx:{mt:1},children:"No roots configured — the server has full host access."}):(0,a.jsx)(q.A,{dense:!0,children:i.map((e,t)=>(0,a.jsx)(Y.Ay,{secondaryAction:(0,a.jsx)(et.A,{edge:"end","aria-label":"remove root",onClick:()=>{c(e=>e.filter((e,r)=>r!==t))},children:(0,a.jsx)(p.A,{fontSize:"small"})}),children:(0,a.jsx)(J.default,{variant:"body2",sx:{wordBreak:"break-all"},children:e})},"".concat(e,"-").concat(t)))})]}),(0,a.jsxs)(M.A,{children:[(0,a.jsx)(D.A,{onClick:n,disabled:h,children:"Cancel"}),(0,a.jsx)(D.A,{onClick:y,variant:"contained",disabled:h,children:h?"Saving…":"Save"})]})]})};var es=r(80422),en=r(33567),el=r(29767),ei=r(78470),ec=r(8532),ed=r(84578),eu=r(9957),ep=r(1702);let eh=(0,s.h)("frontend/components/mcp/MCPServerManager/ServerCard"),ef=e=>{let{name:t,status:s,path:F,enabled:P,transport:E,onToggle:U=()=>{},onRetry:L=()=>{},onDelete:q=()=>{},onClick:Y,onEdit:$=()=>{},onAuthenticate:K,pickerMode:Q=!1,error:Z,stderrOutput:G,authorizationUrl:ee,selected:er=!1,onSelect:ea,selectionMode:ef=!1,hasOAuthTokens:em=!1,exposeAsMcpServer:ex=!1,enableMcpApps:eb=!1,updateInfo:eg,installCommand:ey,buildCommand:ev,onUpdated:ej,folder:ek,folders:eA=[],onSetFolder:eS,favorite:ew=!1,onToggleFavorite:eC,builtIn:eO=!1,serverConfig:ez}=e,[eT,eF]=(0,o.useState)(!1),[eP,eE]=(0,o.useState)(null),[eU,eR]=(0,o.useState)(!1),[eN,eW]=(0,o.useState)(!1),[eI,eM]=(0,o.useState)(""),[eD,eB]=(0,o.useState)("success"),[eJ,e_]=(0,o.useState)(!1),[eL,eH]=(0,o.useState)(!1),[eq,eY]=(0,o.useState)(!1),[e$,eK]=(0,o.useState)(null==ez?void 0:ez.roots);(0,o.useEffect)(()=>{eK(null==ez?void 0:ez.roots)},[null==ez?void 0:ez.roots]);let[eQ,eV]=(0,o.useState)(ex),[eZ,eG]=(0,o.useState)(eb),eX=(0,en.A)();(0,o.useEffect)(()=>{eV(ex)},[ex]),(0,o.useEffect)(()=>{eG(eb)},[eb]);let e0="".concat(window.location.origin,"/mcp-proxy/").concat(encodeURIComponent(t)),e1=async e=>{eV(e);let r=await C.S.updateServerConfig(t,{exposeAsMcpServer:e});"success"in r&&r.success?(eM(e?"Server is now exposed to external apps.":"Server is no longer exposed."),eB("success")):(eV(!e),eM("Failed to update exposure setting."),eB("error")),eW(!0)},e2=async e=>{eG(e);let r=await C.S.updateServerConfig(t,{enableMcpApps:e});"success"in r&&r.success?(eM(e?"This server may now render interactive apps in chat (sandboxed).":"Interactive apps disabled for this server."),eB("success")):(eG(!e),eM("Failed to update the MCP Apps setting."),eB("error")),eW(!0)},e5=()=>{navigator.clipboard.writeText(e0),eM("Endpoint URL copied to clipboard."),eB("success"),eW(!0)},e6=()=>{let e=window.location.origin;navigator.clipboard.writeText((0,O.CZ)(t,ez,e)),eM("Server JSON copied to clipboard."),eB("success"),eW(!0)},e7={connected:"success.main",disconnected:"text.secondary",error:"error.main",connecting:"info.main",initialization:"info.main",requires_authentication:"warning.main"}[s];(0,o.useEffect)(()=>{if(("connecting"===s||"initialization"===s)&&P&&!Q){e_(!0);let e=setTimeout(()=>{eh.debug("Polling status for server: ".concat(t)),L()},2e3);return()=>{clearTimeout(e),e_(!1)}}"connecting"!==s&&"initialization"!==s&&e_(!1)},[s,P,t,L]);let[e4,e8]=(0,o.useState)(null);(0,o.useEffect)(()=>()=>{e4&&clearTimeout(e4)},[e4]);let e9=async e=>{e.stopPropagation(),eh.debug("Reset OAuth tokens button clicked for server: ".concat(t)),eH(!0);try{let e=await fetch("/api/oauth/reset",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({serverName:t})});if(!e.ok){let t=await e.json();throw Error(t.error||"Failed to reset OAuth tokens")}let r=await e.json();eh.info("OAuth tokens reset successfully for ".concat(t),r),eM("OAuth tokens reset successfully. Server will require re-authentication."),eB("success"),eW(!0),setTimeout(()=>{L()},500)}catch(e){eh.error("Failed to reset OAuth tokens for ".concat(t),e),eM("Failed to reset OAuth tokens: ".concat(e instanceof Error?e.message:"Unknown error")),eB("error"),eW(!0)}finally{eH(!1)}},{getThemeValue:e3,getThemeColor:te,colors:tt}=(0,n.Ic)(),tr=()=>{eh.debug("Server restart initiated for: ".concat(t)),U(!1),setTimeout(()=>{U(!0),eh.info("Server ".concat(t," restarted"))},1e3)};return(0,a.jsxs)(el.A,{role:Q?"button":void 0,"aria-pressed":Q?er:void 0,sx:{cursor:"pointer",position:"relative",height:Q?"100%":void 0,transition:"box-shadow 0.3s ease, border-color 0.12s ease",border:e=>Q&&er?"2px solid ".concat(e.palette.primary.main):"2px solid transparent","&:hover":{boxShadow:3}},onClick:()=>{eh.debug("Server card clicked: ".concat(t)),Y()},children:[eC&&!eO&&(0,a.jsx)(ei.A,{title:ew?"Remove from favorites":"Add to favorites",arrow:!0,placement:"top",children:(0,a.jsx)(et.A,{size:"small","aria-label":ew?"remove from favorites":"add to favorites",onClick:e=>{e.stopPropagation(),eC()},sx:{position:"absolute",top:4,left:4,zIndex:2,color:ew?eX.palette.warning.main:eX.palette.text.secondary,backgroundColor:(0,ec.X4)(eX.palette.background.paper,.6),"&:hover":{backgroundColor:(0,ec.X4)(eX.palette.background.paper,.9)}},children:ew?(0,a.jsx)(k.A,{fontSize:"small"}):(0,a.jsx)(A.A,{fontSize:"small"})})}),(0,a.jsxs)(ed.A,{sx:{pb:1},children:[(0,a.jsxs)(B.default,{sx:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",mb:1},children:[(0,a.jsxs)(B.default,{sx:{display:"flex",alignItems:"center",flex:1},children:[ef&&ea&&(0,a.jsx)(H.A,{checked:er,onClick:e=>e.stopPropagation(),onChange:e=>ea(e.target.checked),size:"small",sx:{mr:1,p:.5}}),(0,a.jsx)(J.default,{variant:"h6",component:"h3",sx:{flex:1},children:t})]}),(0,a.jsxs)(B.default,{sx:{display:"flex",flexDirection:"column",alignItems:"flex-end",gap:.5},children:[(0,a.jsxs)(B.default,{sx:{display:"flex",alignItems:"center",gap:.5},children:[(null==eg?void 0:eg.updateAvailable)&&(0,a.jsx)(ei.A,{title:"Update available: ".concat((0,V.Fu)(eg.localSha)," → ").concat((0,V.Fu)(eg.remoteSha),". Click to update."),children:(0,a.jsx)(T.A,{icon:(0,a.jsx)(j.A,{}),label:"Update",color:"warning",size:"small",onClick:e=>{e.stopPropagation(),eh.debug("Update badge clicked for server: ".concat(t)),eR(!0)}})}),eO?(0,a.jsx)(ei.A,{title:"FLUJO's built-in server — can be enabled or disabled below, but not edited or removed.",children:(0,a.jsx)(T.A,{label:"Built-in",color:"primary",size:"small"})}):(0,a.jsx)(R,{transport:E,size:"small"})]}),(0,a.jsxs)(B.default,{sx:{display:"flex",alignItems:"center"},children:["connected"===s&&(0,a.jsx)(l.A,{color:"success",sx:{mr:.5},fontSize:"small"}),"disconnected"===s&&(0,a.jsx)(i.A,{color:"action",sx:{mr:.5},fontSize:"small"}),"error"===s&&(0,a.jsx)(c.A,{color:"error",sx:{mr:.5},fontSize:"small"}),"requires_authentication"===s&&(0,a.jsx)(h.A,{color:"warning",sx:{mr:.5},fontSize:"small"}),("connecting"===s||"initialization"===s)&&(0,a.jsx)(S.default,{size:"small",color:"primary",sx:{mr:.5}}),(0,a.jsx)(J.default,{variant:"body2",color:e7,children:"requires_authentication"===s?"Requires Authentication":s})]})]})]}),(0,a.jsx)(J.default,{variant:"body2",color:"text.secondary",sx:{mb:1,fontSize:"0.875rem"},noWrap:!0,title:eO?void 0:F,children:eO?"FLUJO's own backend API — flow authoring, execution and server management as MCP tools.":F}),eO&&!Q&&(0,a.jsxs)(B.default,{sx:{mt:1,mb:1,p:1,borderRadius:1,border:"1px solid",borderColor:"divider"},onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)(B.default,{sx:{display:"flex",alignItems:"center"},children:[(0,a.jsx)(x.A,{fontSize:"small",sx:{mr:.5,color:"primary.main"}}),(0,a.jsx)(ei.A,{title:"External MCP clients (Claude Code, Claude Desktop, Cursor, …) can drive FLUJO through this local endpoint.",children:(0,a.jsx)(J.default,{variant:"body2",sx:{fontWeight:500},children:"Exposed to external apps"})})]}),(0,a.jsxs)(B.default,{sx:{display:"flex",alignItems:"center",mt:.5},children:[(0,a.jsx)(J.default,{variant:"caption",sx:{flex:1,fontFamily:"monospace",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e0,children:e0}),(0,a.jsx)(ei.A,{title:"Copy endpoint URL",children:(0,a.jsx)(et.A,{size:"small",onClick:e5,children:(0,a.jsx)(g.A,{fontSize:"small"})})}),(0,a.jsx)(ei.A,{title:"Copy MCP server JSON",children:(0,a.jsx)(et.A,{size:"small",onClick:e6,children:(0,a.jsx)(y.A,{fontSize:"small"})})})]})]}),!eO&&!Q&&(0,a.jsxs)(B.default,{sx:{mt:1,mb:1,p:1,borderRadius:1,border:"1px solid",borderColor:"divider"},onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)(B.default,{sx:{display:"flex",alignItems:"center"},children:[(0,a.jsx)(x.A,{fontSize:"small",sx:{mr:.5,color:eQ?"primary.main":"text.disabled"}}),(0,a.jsx)(eu.A,{checked:eQ,onChange:e=>e1(e.target.checked),size:"small"}),(0,a.jsx)(ei.A,{title:"Re-expose this server's tools to external MCP clients (Claude Desktop, Cursor, …) at a local URL.",children:(0,a.jsx)(J.default,{variant:"body2",sx:{fontWeight:500},children:"Expose to external apps"})})]}),eQ&&(0,a.jsxs)(B.default,{sx:{display:"flex",alignItems:"center",mt:.5},children:[(0,a.jsx)(J.default,{variant:"caption",sx:{flex:1,fontFamily:"monospace",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e0,children:e0}),(0,a.jsx)(ei.A,{title:"Copy endpoint URL",children:(0,a.jsx)(et.A,{size:"small",onClick:e5,children:(0,a.jsx)(g.A,{fontSize:"small"})})}),(0,a.jsx)(ei.A,{title:"Copy MCP server JSON",children:(0,a.jsx)(et.A,{size:"small",onClick:e6,children:(0,a.jsx)(y.A,{fontSize:"small"})})})]})]}),!eO&&!Q&&(0,a.jsx)(B.default,{sx:{mt:1,mb:1,p:1,borderRadius:1,border:"1px solid",borderColor:"divider"},onClick:e=>e.stopPropagation(),children:(0,a.jsxs)(B.default,{sx:{display:"flex",alignItems:"center"},children:[(0,a.jsx)(b.A,{fontSize:"small",sx:{mr:.5,color:eZ?"primary.main":"text.disabled"}}),(0,a.jsx)(eu.A,{checked:eZ,onChange:e=>e2(e.target.checked),size:"small"}),(0,a.jsx)(ei.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,a.jsx)(J.default,{variant:"body2",sx:{fontWeight:500},children:"Render interactive apps"})})]})}),"error"===s&&(0,a.jsxs)(B.default,{sx:{mt:1,mb:1},children:[(0,a.jsxs)(B.default,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:.5},children:[(0,a.jsx)(J.default,{variant:"body2",fontWeight:"medium",color:"error",children:"Error:"}),(0,a.jsx)(D.A,{size:"small",color:"primary",onClick:e=>{e.stopPropagation(),eh.debug("View full error clicked for server: ".concat(t)),eF(!0)},children:"View Full Error"})]}),(0,a.jsx)(B.default,{sx:{maxHeight:"80px",overflow:"auto",p:1,borderRadius:1,bgcolor:e=>te("error.background"),color:e=>te("error.text"),border:"1px solid",borderColor:e=>te("error.border"),fontSize:"0.75rem",fontWeight:500,whiteSpace:"pre-wrap"},children:Z||"Unknown error"})]}),"requires_authentication"===s&&!Q&&(0,a.jsxs)(B.default,{sx:{mt:1,mb:1},children:[(0,a.jsx)(B.default,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:1},children:(0,a.jsx)(J.default,{variant:"body2",fontWeight:"medium",color:"warning.main",children:"Authentication Required"})}),(0,a.jsxs)(D.A,{variant:"contained",color:"warning",size:"small",startIcon:(0,a.jsx)(f.A,{}),onClick:async e=>{if(e.stopPropagation(),eh.debug("Authenticate button clicked for server: ".concat(t)),K)K();else try{let e=await fetch("/api/oauth/initiate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({serverName:t})});if(!e.ok){let t=await e.json();throw Error(t.error||"Failed to initiate OAuth")}let{authorizationUrl:a,alreadyAuthorized:o}=await e.json();if(o||!a){eh.info("Server ".concat(t," already authorized, no popup needed")),tr();return}let{openOAuthPopup:s}=await r.e(8198).then(r.bind(r,68198));await s({url:a,windowName:"oauth_".concat(t),onSuccess:e=>{eh.info("OAuth authentication successful for ".concat(t),e),eh.info("Automatically restarting server ".concat(t," after OAuth completion")),tr()},onError:e=>{eh.error("OAuth authentication failed for ".concat(t),e),eM("OAuth authentication failed"),eB("error"),eW(!0)}})}catch(e){eh.error("Failed to start OAuth authentication for ".concat(t),e),eM("Failed to start OAuth authentication"),eB("error"),eW(!0)}},sx:{width:"100%"},children:["Authenticate with ",t]})]})]}),eO&&!Q&&U&&(0,a.jsx)(ep.A,{sx:{justifyContent:"flex-start",px:2,py:1},onClick:e=>e.stopPropagation(),children:(0,a.jsxs)(B.default,{sx:{display:"flex",alignItems:"center"},children:[(0,a.jsx)(eu.A,{checked:P,onClick:e=>e.stopPropagation(),onChange:e=>{eh.debug("Built-in server ".concat(t," toggle changed to: ").concat(e.target.checked)),U(e.target.checked)},color:"primary",size:"small"}),(0,a.jsx)(J.default,{variant:"body2",sx:{ml:.5,fontWeight:500,color:P?"primary.main":"text.secondary"},children:P?"Enabled":"Disabled"}),("filesystem"===t||"bash"===t)&&(0,a.jsx)(ei.A,{title:"Configure ".concat(t," roots"),children:(0,a.jsxs)(D.A,{size:"small",variant:"text",startIcon:(0,a.jsx)(z.A,{fontSize:"small"}),sx:{ml:1.5,textTransform:"none"},onClick:e=>{e.stopPropagation(),eY(!0)},children:["Configure roots",e$&&e$.length?" (".concat(e$.length,")"):""]})})]})}),("filesystem"===t||"bash"===t)&&(0,a.jsx)(eo,{open:eq,serverName:t,initialRoots:e$,onClose:()=>eY(!1),onSaved:e=>eK(e)}),!eO&&!Q&&(0,a.jsxs)(ep.A,{sx:{justifyContent:"space-between",px:2,py:1},children:[(0,a.jsxs)(B.default,{sx:{display:"flex",alignItems:"center"},children:[(0,a.jsx)(eu.A,{checked:P,onClick:e=>e.stopPropagation(),onChange:e=>{eh.debug("Server ".concat(t," toggle changed to: ").concat(e.target.checked)),U(e.target.checked)},color:"primary",size:"small"}),(0,a.jsx)(J.default,{variant:"body2",sx:{ml:.5,fontWeight:500,color:P?"primary.main":"text.secondary"},children:P?"Enabled":"Disabled"}),P&&(0,a.jsx)(ei.A,{title:"Restart server",children:(0,a.jsx)(et.A,{size:"small",onClick:e=>{e.stopPropagation(),eh.debug("Restart button clicked for server: ".concat(t)),tr()},sx:{ml:1},children:(0,a.jsx)(d.A,{fontSize:"small"})})})]}),(0,a.jsxs)(B.default,{children:[(0,a.jsx)(ei.A,{title:"Retry connection",children:(0,a.jsx)(et.A,{color:"primary",onClick:e=>{e.stopPropagation(),eh.debug("Retry button clicked for server: ".concat(t)),e4&&clearTimeout(e4),e_(!0),L();let r=setTimeout(()=>{"connecting"!==s&&"initialization"!==s&&e_(!1),e8(null)},1e4);e8(r)},disabled:eJ,size:"small",children:eJ?(0,a.jsx)(S.default,{size:"small",color:"primary"}):(0,a.jsx)(d.A,{})})}),"streamable"===E&&em&&(0,a.jsx)(ei.A,{title:"Reset OAuth tokens",children:(0,a.jsx)(et.A,{color:"warning",onClick:e9,disabled:eL,size:"small",children:eL?(0,a.jsx)(S.default,{size:"small",color:"primary"}):(0,a.jsx)(m.A,{})})}),eS&&(0,a.jsx)(ei.A,{title:ek?"Folder: ".concat(ek):"Move to folder",children:(0,a.jsx)(et.A,{color:ek?"primary":"default",onClick:e=>{e.stopPropagation(),eE(e.currentTarget)},size:"small",children:(0,a.jsx)(v.A,{})})}),(0,a.jsx)(ei.A,{title:"Edit server",children:(0,a.jsx)(et.A,{color:"primary",onClick:e=>{e.stopPropagation(),$()},size:"small",children:(0,a.jsx)(u.A,{})})}),(0,a.jsx)(ei.A,{title:"Delete server",children:(0,a.jsx)(et.A,{color:"error",onClick:e=>{e.stopPropagation(),q()},size:"small",children:(0,a.jsx)(p.A,{})})})]})]}),eS&&(0,a.jsx)(w.A,{anchorEl:eP,open:!!eP,currentFolder:ek,folders:eA,onClose:()=>eE(null),onAssign:e=>eS(e)}),(0,a.jsxs)(N.A,{open:eT,onClose:()=>{eh.debug("Error modal closed for server: ".concat(t)),eF(!1)},maxWidth:"md",fullWidth:!0,onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)(W.A,{component:"div",children:["Error Details for ",t]}),(0,a.jsxs)(I.A,{children:[(0,a.jsx)(B.default,{sx:{p:2,borderRadius:1,bgcolor:e=>te("error.background"),color:e=>te("error.text"),border:"1px solid",borderColor:e=>te("error.border"),fontFamily:"monospace",fontSize:"0.875rem",fontWeight:500,whiteSpace:"pre-wrap",overflow:"auto",maxHeight:"300px",mb:2},children:Z||"Unknown error"}),G&&(0,a.jsxs)(B.default,{sx:{mt:2},children:[(0,a.jsx)(J.default,{variant:"h6",gutterBottom:!0,children:"Stderr Output:"}),(0,a.jsx)(B.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:G})]})]}),(0,a.jsxs)(M.A,{children:[(0,a.jsx)(D.A,{onClick:()=>eF(!1),children:"Close"}),(0,a.jsx)(D.A,{onClick:()=>{let e=[Z||"Unknown error",G?"\n\nStderr Output:\n".concat(G):""].join("");navigator.clipboard.writeText(e),eh.debug("Error copied to clipboard for server: ".concat(t)),eM("Error message copied to clipboard"),eB("success"),eW(!0)},color:"primary",children:"Copy to Clipboard"})]})]}),eg&&(0,a.jsx)(X,{open:eU,onClose:()=>eR(!1),serverName:t,rootPath:F,installCommand:ey,buildCommand:ev,enabled:P,updateInfo:eg,onToggle:U,onUpdated:ej}),(0,a.jsx)(es.A,{open:eN,autoHideDuration:3e3,onClose:()=>eW(!1),anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,a.jsx)(_.A,{onClose:()=>eW(!1),severity:eD,sx:{width:"100%"},children:eI||"Error message copied to clipboard"})})]})}},62640:(e,t,r)=>{r.d(t,{A:()=>O});var a=r(95155),o=r(12115),s=r(2778),n=r(52363),l=r(65036),i=r(94049),c=r(78470),d=r(41983),u=r(9562),p=r(28548),h=r(22003),f=r(4474),m=r(25635),x=r(41602),b=r(73707),g=r(49501),y=r(17681),v=r(75912),j=r(91871),k=r(80007),A=r(74482),S=r(40171),w=r(36944);let C=(0,r(87021).h)("frontend/components/shared/FolderPickerDialog"),O=e=>{let{open:t,title:r="Choose a folder",selectFiles:O=!1,initialPath:z,onClose:T,onSelect:F}=e,[P,E]=(0,o.useState)(null),[U,R]=(0,o.useState)(""),[N,W]=(0,o.useState)(!1),[I,M]=(0,o.useState)(null),D=(0,o.useCallback)(async e=>{W(!0),M(null);try{let t=e?"?path=".concat(encodeURIComponent(e)):"",r=await fetch("/api/browse".concat(t)),a=await r.json();if(!r.ok||a.error)return void M(a.error||"HTTP ".concat(r.status));E(a),R(a.path)}catch(e){C.warn("Browse failed",e),M("Could not reach the backend to browse folders.")}finally{W(!1)}},[]);(0,o.useEffect)(()=>{t?D(z||void 0):(E(null),M(null))},[t,z,D]);let B=e=>{F(e),T()};return(0,a.jsxs)(s.A,{open:t,onClose:T,maxWidth:"sm",fullWidth:!0,children:[(0,a.jsx)(n.A,{children:r}),(0,a.jsxs)(l.A,{dividers:!0,sx:{display:"flex",flexDirection:"column",gap:1.5},children:[(0,a.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,a.jsx)(c.A,{title:"Up one folder",children:(0,a.jsx)("span",{children:(0,a.jsx)(d.A,{size:"small",disabled:!(null==P?void 0:P.parent)||N,onClick:()=>(null==P?void 0:P.parent)&&void D(P.parent),children:(0,a.jsx)(S.A,{fontSize:"small"})})})}),(0,a.jsx)(c.A,{title:"Home folder",children:(0,a.jsx)("span",{children:(0,a.jsx)(d.A,{size:"small",disabled:N,onClick:()=>void D(),children:(0,a.jsx)(w.A,{fontSize:"small"})})})}),(0,a.jsx)(u.A,{fullWidth:!0,size:"small",value:U,onChange:e=>R(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),D(U))},placeholder:"Type a path and press Enter"})]}),P&&P.drives.length>0&&(0,a.jsx)(i.default,{sx:{display:"flex",gap:.75,flexWrap:"wrap"},children:P.drives.map(e=>(0,a.jsx)(p.A,{label:e,size:"small",variant:P.path.toLowerCase().startsWith(e.toLowerCase())?"filled":"outlined",onClick:()=>void D(e)},e))}),I&&(0,a.jsx)(h.A,{severity:"error",children:I}),(0,a.jsxs)(i.default,{sx:{minHeight:240,maxHeight:"45vh",overflow:"auto",border:1,borderColor:"divider",borderRadius:1},children:[N&&(0,a.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",py:4},children:(0,a.jsx)(f.default,{size:24})}),!N&&P&&0===P.entries.length&&(0,a.jsx)(m.default,{variant:"body2",color:"text.secondary",sx:{p:2},children:"This folder is empty."}),!N&&(0,a.jsx)(x.A,{dense:!0,disablePadding:!0,children:null==P?void 0:P.entries.map(e=>(0,a.jsxs)(b.A,{disabled:!e.isDirectory&&!O,onClick:()=>e.isDirectory?void D(e.path):B(e.path),children:[(0,a.jsx)(g.A,{sx:{minWidth:34},children:e.isDirectory?(0,a.jsx)(k.A,{fontSize:"small",color:"primary"}):(0,a.jsx)(A.A,{fontSize:"small"})}),(0,a.jsx)(y.A,{primary:e.name,primaryTypographyProps:{noWrap:!0}})]},e.path))})]})]}),(0,a.jsxs)(v.A,{children:[(0,a.jsx)(j.A,{onClick:T,children:"Cancel"}),(0,a.jsx)(j.A,{variant:"contained",disabled:!P||N,onClick:()=>P&&B(P.path),children:"Select this folder"})]})]})}},65818:(e,t,r)=>{r.d(t,{mO:()=>s,oO:()=>n});var a=r(38459);let o=["stdio","websocket","sse","streamable"];function s(e,t){switch(t){case"name-asc":case"name-desc":return(0,a.po)(e.name);case"status-connected":case"status-disconnected":{let t=e.status;if("connected"===t)return{key:"status:connected",label:"Connected"};if("error"===t)return{key:"status:error",label:"Error"};if("requires_authentication"===t)return{key:"status:auth",label:"Requires authentication"};return{key:"status:disconnected",label:"Disconnected"}}case"transport":{let t=e.transport||"unknown";return{key:"transport:".concat(t),label:({stdio:"Stdio",websocket:"WebSocket",sse:"SSE",streamable:"Streamable HTTP"})[t]||t}}default:return{key:"all",label:"All servers"}}}function n(e,t){let r=(e,r)=>{switch(t){case"name-asc":return e.name.localeCompare(r.name);case"name-desc":return r.name.localeCompare(e.name);case"status-connected":if("connected"===e.status&&"connected"!==r.status)return -1;if("connected"!==e.status&&"connected"===r.status)return 1;return e.name.localeCompare(r.name);case"status-disconnected":if("disconnected"===e.status&&"disconnected"!==r.status)return -1;if("disconnected"!==e.status&&"disconnected"===r.status)return 1;return e.name.localeCompare(r.name);case"transport":{var a,s;let t=o.indexOf(null!=(a=e.transport)?a:""),n=o.indexOf(null!=(s=r.transport)?s:"");if(t!==n)return t-n;return e.name.localeCompare(r.name)}default:return 0}};return[...e].sort((e,t)=>{let a=Number(!!t.favorite)-Number(!!e.favorite);return 0!==a?a:r(e,t)})}},70272:(e,t,r)=>{function a(e){let t={};if(!e)return t;for(let[r,a]of Object.entries(e))t[r]=a&&"object"==typeof a&&"value"in a?a.value:"string"==typeof a?a:"";return t}function o(e){let t,r=[],a=[];if("string"==typeof e)try{t=JSON.parse(e)}catch(e){return{servers:a,errors:["Invalid JSON: ".concat(e.message)]}}else t=e;if(!t||"object"!=typeof t)return{servers:a,errors:["Expected a JSON object."]};let o=t,s=o.mcpServers&&"object"==typeof o.mcpServers?o.mcpServers:o;if(0===Object.keys(s).length)return{servers:a,errors:['No servers found. Expected an "mcpServers" object.']};for(let[e,t]of Object.entries(s)){var n;if(!t||"object"!=typeof t){r.push('"'.concat(e,'": entry is not an object.'));continue}let o=function(e){let t=(e.transport||e.type||"").toString().toLowerCase().trim();if(!t)return"stdio";switch(t){case"stdio":return"stdio";case"http":case"streamable-http":case"streamable":case"streamablehttp":return"streamable";case"sse":return"sse";case"ws":case"websocket":return"websocket";default:return null}}(t);if(!o){r.push('"'.concat(e,'": unknown transport type "').concat(t.type||t.transport,'".'));continue}let s={};if(t.env&&"object"==typeof t.env)for(let[e,r]of Object.entries(t.env))s[e]="string"==typeof r?r:String(null!=r?r:"");let l={name:e,env:s,disabled:null!=(n=t.disabled)&&n,autoApprove:Array.isArray(t.autoApprove)?t.autoApprove:[],rootPath:"",_buildCommand:"",_installCommand:""};if("stdio"===o){if(!t.command||"string"!=typeof t.command){r.push('"'.concat(e,'": stdio server is missing a "command".'));continue}a.push({...l,transport:"stdio",command:t.command,args:Array.isArray(t.args)?t.args:[]})}else if("websocket"===o){let o=t.url||t.websocketUrl;if(!o){r.push('"'.concat(e,'": websocket server is missing a "url".'));continue}a.push({...l,transport:"websocket",websocketUrl:o})}else{let s=t.url||t.serverUrl;if(!s){r.push('"'.concat(e,'": ').concat(o,' server is missing a "url".'));continue}let n=t.headers&&"object"==typeof t.headers?t.headers:void 0;a.push({...l,transport:o,serverUrl:s,...n?{headers:n}:{}})}}return{servers:a,errors:r}}r.d(t,{_i:()=>s,CZ:()=>l,Kt:()=>n});let s=[{id:"claude",label:"Claude",fileName:"mcp_config.json",export:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(t.proxyBaseUrl||"").replace(/\/$/,""),o={};for(let t of e){if(t.exposeAsMcpServer){o[t.name]={type:"http",url:"".concat(r,"/mcp-proxy/").concat(t.name)};continue}let e={},s=a(t.env);switch(t.transport){case"stdio":e.command=t.command,e.args=t.args||[],Object.keys(s).length>0&&(e.env=s);break;case"streamable":e.type="http",e.url=t.serverUrl,t.headers&&Object.keys(t.headers).length>0&&(e.headers=a(t.headers)),Object.keys(s).length>0&&(e.env=s);break;case"sse":e.type="sse",e.url=t.serverUrl,t.headers&&Object.keys(t.headers).length>0&&(e.headers=a(t.headers)),Object.keys(s).length>0&&(e.env=s);break;case"websocket":e.type="ws",e.url=t.websocketUrl,Object.keys(s).length>0&&(e.env=s);break;default:Object.keys(s).length>0&&(e.env=s)}o[t.name]=e}return{mcpServers:o}},import:o},{id:"cline",label:"Cline",fileName:"cline_mcp_settings.json",export:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(t.proxyBaseUrl||"").replace(/\/$/,""),o={};for(let t of e){var s,n;let e={disabled:null!=(s=t.disabled)&&s,autoApprove:null!=(n=t.autoApprove)?n:[],timeout:60};if(t.exposeAsMcpServer){o[t.name]={...e,type:"streamableHttp",url:"".concat(r,"/mcp-proxy/").concat(t.name)};continue}let l=a(t.env),i={...e};switch(t.transport){case"stdio":i.command=t.command,i.args=t.args||[],Object.keys(l).length>0&&(i.env=l);break;case"streamable":i.type="streamableHttp",i.url=t.serverUrl,t.headers&&Object.keys(t.headers).length>0&&(i.headers=a(t.headers));break;case"sse":i.type="sse",i.url=t.serverUrl,t.headers&&Object.keys(t.headers).length>0&&(i.headers=a(t.headers));break;case"websocket":i.type="ws",i.url=t.websocketUrl;break;default:Object.keys(l).length>0&&(i.env=l)}o[t.name]=i}return{mcpServers:o}},import:function(e){return o(e)}}];function n(e){var t;return null!=(t=s.find(t=>t.id===e))?t:s[0]}function l(e,t,r){let a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"claude",o=(r||"").replace(/\/$/,"");return JSON.stringify(t?n(a).export([t],{proxyBaseUrl:o}):{mcpServers:{[e]:{type:"http",url:"".concat(o,"/mcp-proxy/").concat(e)}}},null,2)}},80411:(e,t,r)=>{r.d(t,{Fu:()=>i,M8:()=>s,Qv:()=>n,Qz:()=>l});let a=(0,r(87021).h)("frontend/components/mcp/MCPServerManager/utils/serverUpdates"),o=new Map;async function s(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=Date.now(),s={},n=[];for(let a of new Set(e.filter(Boolean))){let e=o.get(a);!t&&e&&r-e.at<6e5?s[a]=e.info:n.push(a)}if(n.length>0)try{let e=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"checkUpdatesBatch",paths:n})}),t=await e.json();if(e.ok&&t.results)for(let[e,a]of Object.entries(t.results))o.set(e,{at:r,info:a}),s[e]=a;else a.warn("Batch update check failed",t.error)}catch(e){a.warn("Batch update check request failed",e)}return s}async function n(e){try{let t=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"pullUpdates",savePath:e})}),r=await t.json();if(!t.ok)return{success:!1,error:r.error||"Failed to pull updates"};return{success:!0,oldSha:r.oldSha,newSha:r.newSha,updated:r.updated}}catch(e){return{success:!1,error:e.message||"Failed to pull updates"}}}async function l(e,t,r){let o=e.match(/github\.com[:/]([^/]+)\/([^/]+?)(?:\.git)?\/?$/i);if(!o)return null;try{let e=await fetch("https://api.github.com/repos/".concat(o[1],"/").concat(o[2],"/compare/").concat(t,"...").concat(r));if(!e.ok)return null;let a=await e.json(),s=Array.isArray(a.commits)?a.commits:[];return{behindBy:"number"==typeof a.total_commits?a.total_commits:null,commits:s.slice(-10).reverse().map(e=>{var t;return{sha:(e.sha||"").slice(0,7),message:((null==(t=e.commit)?void 0:t.message)||"").split("\n")[0]}})}}catch(e){return a.debug("GitHub compare preview failed (non-fatal)",e),null}}function i(e){return e?e.slice(0,7):""}},86631:(e,t,r)=>{r.d(t,{b:()=>s,c:()=>n});var a=r(56290);async function o(e,t){try{let r=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!r.ok||!r.body)return null;let o=null;return await (0,a.z)(r,e=>{if("stdout"===e.type||"stderr"===e.type)t(e.data);else if("result"===e.type){var r;o={success:e.success,output:null!=(r=e.commandOutput)?r:""}}}),o}catch(e){return console.error("Error streaming git command:",e),null}}let s=async(e,t,r)=>{if(r){let a=await o({action:"installStream",savePath:e,installCommand:t},r);if(a)return{success:a.success,message:a.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:a.output||"No output was returned from the installation process."}}try{let r=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"install",savePath:e,installCommand:t})}),a=await r.json();if(!r.ok)throw Error(a.error||"Failed to install dependencies");return{success:!0,message:{type:"success",text:"Dependencies installed successfully. You can now build the server."},output:a.commandOutput||"No output was returned from the installation process."}}catch(e){return console.error("Error installing dependencies:",e),{success:!1,message:{type:"error",text:"Error installing dependencies: ".concat(e.message||"Unknown error",". You can still try to build the server.")},output:e instanceof Response?await e.text():(null==e?void 0:e.message)||"Unknown error"}}},n=async(e,t,r)=>{if(r){let a=await o({action:"buildStream",savePath:e,buildCommand:t},r);if(a)return{success:a.success,message:a.success?{type:"success",text:"Server built successfully."}:{type:"error",text:"Error building server."},output:a.output||"No output was returned from the build process."}}try{let r=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"build",savePath:e,buildCommand:t})}),a=await r.json();if(!r.ok)throw Error(a.error||"Failed to build repository");return{success:!0,message:{type:"success",text:"Server built successfully."},output:a.commandOutput||"No output was returned from the build process."}}catch(e){return console.error("Error building server:",e),{success:!1,message:{type:"error",text:"Error building server: ".concat(e.message||"Unknown error",".")},output:e instanceof Response?await e.text():(null==e?void 0:e.message)||"Unknown error"}}}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5418],{8828:(t,e,n)=>{t.exports=n(83654)},11096:(t,e,n)=>{n.d(e,{A:()=>o});var r=n(15485),i=n(95155);let o=(0,r.A)((0,i.jsx)("path",{d:"M11 21h-1l1-7H7.5c-.58 0-.57-.32-.38-.66s.05-.08.07-.12C8.48 10.94 10.42 7.54 13 3h1l-1 7h3.5c.49 0 .56.33.47.51l-.07.15C12.96 17.55 11 21 11 21"}),"Bolt")},14806:(t,e,n)=>{t.exports=n(30125)},23718:(t,e,n)=>{n.d(e,{h:()=>h,n:()=>s});var r=n(12115),i=n(8828);let o=t=>{let e,n=new Set,r=(t,r)=>{let i="function"==typeof t?t(e):t;if(!Object.is(i,e)){let t=e;e=(null!=r?r:"object"!=typeof i||null===i)?i:Object.assign({},e,i),n.forEach(n=>n(e,t))}},i=()=>e,o={setState:r,getState:i,getInitialState:()=>a,subscribe:t=>(n.add(t),()=>n.delete(t)),destroy:()=>{console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},a=e=t(r,i,o);return o},{useDebugValue:a}=r,{useSyncExternalStoreWithSelector:u}=i,l=t=>t;function s(t,e=l,n){let r=u(t.subscribe,t.getState,t.getServerState||t.getInitialState,e,n);return a(r),r}let c=(t,e)=>{let n=(t=>t?o(t):o)(t),r=(t,r=e)=>s(n,t,r);return Object.assign(r,n),r},h=(t,e)=>t?c(t,e):c},26922:(t,e,n)=>{n.d(e,{A:()=>o});var r=n(15485),i=n(95155);let o=(0,r.A)([(0,i.jsx)("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2M12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8"},"0"),(0,i.jsx)("path",{d:"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z"},"1")],"Schedule")},30125:(t,e,n)=>{var r=n(12115),i="function"==typeof Object.is?Object.is:function(t,e){return t===e&&(0!==t||1/t==1/e)||t!=t&&e!=e},o=r.useState,a=r.useEffect,u=r.useLayoutEffect,l=r.useDebugValue;function s(t){var e=t.getSnapshot;t=t.value;try{var n=e();return!i(t,n)}catch(t){return!0}}var c="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(t,e){return e()}:function(t,e){var n=e(),r=o({inst:{value:n,getSnapshot:e}}),i=r[0].inst,c=r[1];return u(function(){i.value=n,i.getSnapshot=e,s(i)&&c({inst:i})},[t,n,e]),a(function(){return s(i)&&c({inst:i}),t(function(){s(i)&&c({inst:i})})},[t]),l(n),n};e.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:c},43621:(t,e,n)=>{n.d(e,{A:()=>function t(e){if("string"==typeof e||"number"==typeof e)return""+e;let n="";if(Array.isArray(e))for(let r=0,i;r<e.length;r++)""!==(i=t(e[r]))&&(n+=(n&&" ")+i);else for(let t in e)e[t]&&(n+=(n&&" ")+t);return n}})},55930:(t,e,n)=>{n.d(e,{A:()=>o});var r=n(15485),i=n(95155);let o=(0,r.A)((0,i.jsx)("path",{d:"M22 11V3h-7v3H9V3H2v8h7V8h2v10h4v3h7v-8h-7v3h-2V8h2v3z"}),"AccountTree")},57459:(t,e,n)=>{n.d(e,{x:()=>r});function r(t,e){if(Object.is(t,e))return!0;if("object"!=typeof t||null===t||"object"!=typeof e||null===e)return!1;if(t instanceof Map&&e instanceof Map){if(t.size!==e.size)return!1;for(let[n,r]of t)if(!Object.is(r,e.get(n)))return!1;return!0}if(t instanceof Set&&e instanceof Set){if(t.size!==e.size)return!1;for(let n of t)if(!e.has(n))return!1;return!0}let n=Object.keys(t);if(n.length!==Object.keys(e).length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(e,r)||!Object.is(t[r],e[r]))return!1;return!0}},76122:(t,e,n)=>{n.d(e,{Do:()=>u,WZ:()=>i,TG:()=>l,ny:()=>o,yX:()=>s,xN:()=>c,Qc:()=>a,I$:()=>rl,aQ:()=>rd,di:()=>rp,kO:()=>rb,rN:()=>nY,bi:()=>n9,_s:()=>nA,aE:()=>nt,Hm:()=>n5,tM:()=>eG,KE:()=>ng,tn:()=>eQ,xc:()=>eU,us:()=>n$,IO:()=>e7,e_:()=>nO,Fp:()=>nD,Mi:()=>nf,HF:()=>e1,Eo:()=>nT,b5:()=>nG,Tq:()=>ne,qX:()=>nX,q1:()=>nC,oj:()=>nP,aZ:()=>e6,aW:()=>n2,uD:()=>nE,Jo:()=>e4,U$:()=>e9,X6:()=>nd,oN:()=>nZ,ah:()=>nF,R4:()=>n_,r8:()=>re,ZO:()=>eZ,bK:()=>eJ,b$:()=>e2,uj:()=>nq,v5:()=>nI,Ue:()=>nb,Er:()=>nB,oB:()=>e5,kf:()=>ny,mW:()=>np,Q6:()=>nS,QE:()=>nk,kM:()=>nc,No:()=>rr,Ff:()=>nv,zj:()=>nx,s_:()=>nm,vS:()=>n6,qn:()=>ro,uL:()=>rn,YN:()=>nz});var r,i,o,a,u,l,s,c,h={value:()=>{}};function f(){for(var t,e=0,n=arguments.length,r={};e<n;++e){if(!(t=arguments[e]+"")||t in r||/[\s.]/.test(t))throw Error("illegal type: "+t);r[t]=[]}return new d(r)}function d(t){this._=t}function p(t,e,n){for(var r=0,i=t.length;r<i;++r)if(t[r].name===e){t[r]=h,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=n&&t.push({name:e,value:n}),t}function y(){}function g(t){return null==t?y:function(){return this.querySelector(t)}}function m(){return[]}function v(t){return null==t?m:function(){return this.querySelectorAll(t)}}function x(t){return function(){return this.matches(t)}}function w(t){return function(e){return e.matches(t)}}d.prototype=f.prototype={constructor:d,on:function(t,e){var n,r=this._,i=(t+"").trim().split(/^|\s+/).map(function(t){var e="",n=t.indexOf(".");if(n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),t&&!r.hasOwnProperty(t))throw Error("unknown type: "+t);return{type:t,name:e}}),o=-1,a=i.length;if(arguments.length<2){for(;++o<a;)if((n=(t=i[o]).type)&&(n=function(t,e){for(var n,r=0,i=t.length;r<i;++r)if((n=t[r]).name===e)return n.value}(r[n],t.name)))return n;return}if(null!=e&&"function"!=typeof e)throw Error("invalid callback: "+e);for(;++o<a;)if(n=(t=i[o]).type)r[n]=p(r[n],t.name,e);else if(null==e)for(n in r)r[n]=p(r[n],t.name,null);return this},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new d(t)},call:function(t,e){if((n=arguments.length-2)>0)for(var n,r,i=Array(n),o=0;o<n;++o)i[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw Error("unknown type: "+t);for(r=this._[t],o=0,n=r.length;o<n;++o)r[o].value.apply(e,i)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(e,n)}};var _=Array.prototype.find;function b(){return this.firstElementChild}var M=Array.prototype.filter;function E(){return Array.from(this.children)}function k(t){return Array(t.length)}function $(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function A(t,e,n,r,i,o){for(var a,u=0,l=e.length,s=o.length;u<s;++u)(a=e[u])?(a.__data__=o[u],r[u]=a):n[u]=new $(t,o[u]);for(;u<l;++u)(a=e[u])&&(i[u]=a)}function z(t,e,n,r,i,o,a){var u,l,s,c=new Map,h=e.length,f=o.length,d=Array(h);for(u=0;u<h;++u)(l=e[u])&&(d[u]=s=a.call(l,l.__data__,u,e)+"",c.has(s)?i[u]=l:c.set(s,l));for(u=0;u<f;++u)s=a.call(t,o[u],u,o)+"",(l=c.get(s))?(r[u]=l,l.__data__=o[u],c.delete(s)):n[u]=new $(t,o[u]);for(u=0;u<h;++u)(l=e[u])&&c.get(d[u])===l&&(i[u]=l)}function S(t){return t.__data__}function N(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}$.prototype={constructor:$,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var T="http://www.w3.org/1999/xhtml";let P={svg:"http://www.w3.org/2000/svg",xhtml:T,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function H(t){var e=t+="",n=e.indexOf(":");return n>=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),P.hasOwnProperty(e)?{space:P[e],local:t}:t}function I(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function B(t,e){return t.style.getPropertyValue(e)||I(t).getComputedStyle(t,null).getPropertyValue(e)}function C(t){return t.trim().split(/^|\s+/)}function L(t){return t.classList||new O(t)}function O(t){this._node=t,this._names=C(t.getAttribute("class")||"")}function j(t,e){for(var n=L(t),r=-1,i=e.length;++r<i;)n.add(e[r])}function V(t,e){for(var n=L(t),r=-1,i=e.length;++r<i;)n.remove(e[r])}function D(){this.textContent=""}function R(){this.innerHTML=""}function X(){this.nextSibling&&this.parentNode.appendChild(this)}function q(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Y(t){var e=H(t);return(e.local?function(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}:function(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===T&&e.documentElement.namespaceURI===T?e.createElement(t):e.createElementNS(n,t)}})(e)}function F(){return null}function K(){var t=this.parentNode;t&&t.removeChild(this)}function W(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function U(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function Z(t){return function(){var e=this.__on;if(e){for(var n,r=0,i=-1,o=e.length;r<o;++r)(n=e[r],t.type&&n.type!==t.type||n.name!==t.name)?e[++i]=n:this.removeEventListener(n.type,n.listener,n.options);++i?e.length=i:delete this.__on}}}function Q(t,e,n){return function(){var r,i=this.__on,o=function(t){e.call(this,t,this.__data__)};if(i){for(var a=0,u=i.length;a<u;++a)if((r=i[a]).type===t.type&&r.name===t.name){this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=o,r.options=n),r.value=e;return}}this.addEventListener(t.type,o,n),r={type:t.type,name:t.name,value:e,listener:o,options:n},i?i.push(r):this.__on=[r]}}function G(t,e,n){var r=I(t),i=r.CustomEvent;"function"==typeof i?i=new i(e,n):(i=r.document.createEvent("Event"),n?(i.initEvent(e,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(e,!1,!1)),t.dispatchEvent(i)}O.prototype={add:function(t){0>this._names.indexOf(t)&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var J=[null];function tt(t,e){this._groups=t,this._parents=e}function te(){return new tt([[document.documentElement]],J)}function tn(t){return"string"==typeof t?new tt([[document.querySelector(t)]],[document.documentElement]):new tt([[t]],J)}function tr(t,e){if(t=function(t){let e;for(;e=t.sourceEvent;)t=e;return t}(t),void 0===e&&(e=t.currentTarget),e){var n=e.ownerSVGElement||e;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,[(r=r.matrixTransform(e.getScreenCTM().inverse())).x,r.y]}if(e.getBoundingClientRect){var i=e.getBoundingClientRect();return[t.clientX-i.left-e.clientLeft,t.clientY-i.top-e.clientTop]}}return[t.pageX,t.pageY]}tt.prototype=te.prototype={constructor:tt,select:function(t){"function"!=typeof t&&(t=g(t));for(var e=this._groups,n=e.length,r=Array(n),i=0;i<n;++i)for(var o,a,u=e[i],l=u.length,s=r[i]=Array(l),c=0;c<l;++c)(o=u[c])&&(a=t.call(o,o.__data__,c,u))&&("__data__"in o&&(a.__data__=o.__data__),s[c]=a);return new tt(r,this._parents)},selectAll:function(t){if("function"==typeof t){var e;e=t,t=function(){var t;return t=e.apply(this,arguments),null==t?[]:Array.isArray(t)?t:Array.from(t)}}else t=v(t);for(var n=this._groups,r=n.length,i=[],o=[],a=0;a<r;++a)for(var u,l=n[a],s=l.length,c=0;c<s;++c)(u=l[c])&&(i.push(t.call(u,u.__data__,c,l)),o.push(u));return new tt(i,o)},selectChild:function(t){var e;return this.select(null==t?b:(e="function"==typeof t?t:w(t),function(){return _.call(this.children,e)}))},selectChildren:function(t){var e;return this.selectAll(null==t?E:(e="function"==typeof t?t:w(t),function(){return M.call(this.children,e)}))},filter:function(t){"function"!=typeof t&&(t=x(t));for(var e=this._groups,n=e.length,r=Array(n),i=0;i<n;++i)for(var o,a=e[i],u=a.length,l=r[i]=[],s=0;s<u;++s)(o=a[s])&&t.call(o,o.__data__,s,a)&&l.push(o);return new tt(r,this._parents)},data:function(t,e){if(!arguments.length)return Array.from(this,S);var n=e?z:A,r=this._parents,i=this._groups;"function"!=typeof t&&(v=t,t=function(){return v});for(var o=i.length,a=Array(o),u=Array(o),l=Array(o),s=0;s<o;++s){var c=r[s],h=i[s],f=h.length,d="object"==typeof(m=t.call(c,c&&c.__data__,s,r))&&"length"in m?m:Array.from(m),p=d.length,y=u[s]=Array(p),g=a[s]=Array(p);n(c,h,y,g,l[s]=Array(f),d,e);for(var m,v,x,w,_=0,b=0;_<p;++_)if(x=y[_]){for(_>=b&&(b=_+1);!(w=g[b])&&++b<p;);x._next=w||null}}return(a=new tt(a,r))._enter=u,a._exit=l,a},enter:function(){return new tt(this._enter||this._groups.map(k),this._parents)},exit:function(){return new tt(this._exit||this._groups.map(k),this._parents)},join:function(t,e,n){var r=this.enter(),i=this,o=this.exit();return"function"==typeof t?(r=t(r))&&(r=r.selection()):r=r.append(t+""),null!=e&&(i=e(i))&&(i=i.selection()),null==n?o.remove():n(o),r&&i?r.merge(i).order():i},merge:function(t){for(var e=t.selection?t.selection():t,n=this._groups,r=e._groups,i=n.length,o=r.length,a=Math.min(i,o),u=Array(i),l=0;l<a;++l)for(var s,c=n[l],h=r[l],f=c.length,d=u[l]=Array(f),p=0;p<f;++p)(s=c[p]||h[p])&&(d[p]=s);for(;l<i;++l)u[l]=n[l];return new tt(u,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var r,i=t[e],o=i.length-1,a=i[o];--o>=0;)(r=i[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=N);for(var n=this._groups,r=n.length,i=Array(r),o=0;o<r;++o){for(var a,u=n[o],l=u.length,s=i[o]=Array(l),c=0;c<l;++c)(a=u[c])&&(s[c]=a);s.sort(e)}return new tt(i,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],i=0,o=r.length;i<o;++i){var a=r[i];if(a)return a}return null},size:function(){let t=0;for(let e of this)++t;return t},empty:function(){return!this.node()},each:function(t){for(var e=this._groups,n=0,r=e.length;n<r;++n)for(var i,o=e[n],a=0,u=o.length;a<u;++a)(i=o[a])&&t.call(i,i.__data__,a,o);return this},attr:function(t,e){var n=H(t);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((null==e?n.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}}:"function"==typeof e?n.local?function(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}:function(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}:n.local?function(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}:function(t,e){return function(){this.setAttribute(t,e)}})(n,e))},style:function(t,e,n){return arguments.length>1?this.each((null==e?function(t){return function(){this.style.removeProperty(t)}}:"function"==typeof e?function(t,e,n){return function(){var r=e.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}:function(t,e,n){return function(){this.style.setProperty(t,e,n)}})(t,e,null==n?"":n)):B(this.node(),t)},property:function(t,e){return arguments.length>1?this.each((null==e?function(t){return function(){delete this[t]}}:"function"==typeof e?function(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}:function(t,e){return function(){this[t]=e}})(t,e)):this.node()[t]},classed:function(t,e){var n=C(t+"");if(arguments.length<2){for(var r=L(this.node()),i=-1,o=n.length;++i<o;)if(!r.contains(n[i]))return!1;return!0}return this.each(("function"==typeof e?function(t,e){return function(){(e.apply(this,arguments)?j:V)(this,t)}}:e?function(t){return function(){j(this,t)}}:function(t){return function(){V(this,t)}})(n,e))},text:function(t){return arguments.length?this.each(null==t?D:("function"==typeof t?function(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}:function(t){return function(){this.textContent=t}})(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?R:("function"==typeof t?function(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}:function(t){return function(){this.innerHTML=t}})(t)):this.node().innerHTML},raise:function(){return this.each(X)},lower:function(){return this.each(q)},append:function(t){var e="function"==typeof t?t:Y(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})},insert:function(t,e){var n="function"==typeof t?t:Y(t),r=null==e?F:"function"==typeof e?e:g(e);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})},remove:function(){return this.each(K)},clone:function(t){return this.select(t?U:W)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,e,n){var r,i,o=(t+"").trim().split(/^|\s+/).map(function(t){var e="",n=t.indexOf(".");return n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}),a=o.length;if(arguments.length<2){var u=this.node().__on;if(u){for(var l,s=0,c=u.length;s<c;++s)for(r=0,l=u[s];r<a;++r)if((i=o[r]).type===l.type&&i.name===l.name)return l.value}return}for(r=0,u=e?Q:Z;r<a;++r)this.each(u(o[r],e,n));return this},dispatch:function(t,e){return this.each(("function"==typeof e?function(t,e){return function(){return G(this,t,e.apply(this,arguments))}}:function(t,e){return function(){return G(this,t,e)}})(t,e))},[Symbol.iterator]:function*(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r,i=t[e],o=0,a=i.length;o<a;++o)(r=i[o])&&(yield r)}};let ti={passive:!1},to={capture:!0,passive:!1};function ta(t){t.stopImmediatePropagation()}function tu(t){t.preventDefault(),t.stopImmediatePropagation()}function tl(t){var e=t.document.documentElement,n=tn(t).on("dragstart.drag",tu,to);"onselectstart"in e?n.on("selectstart.drag",tu,to):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}function ts(t,e){var n=t.document.documentElement,r=tn(t).on("dragstart.drag",null);e&&(r.on("click.drag",tu,to),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}let tc=t=>()=>t;function th(t,{sourceEvent:e,subject:n,target:r,identifier:i,active:o,x:a,y:u,dx:l,dy:s,dispatch:c}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:u,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:s,enumerable:!0,configurable:!0},_:{value:c}})}function tf(t){return!t.ctrlKey&&!t.button}function td(){return this.parentNode}function tp(t,e){return null==e?{x:t.x,y:t.y}:e}function ty(){return navigator.maxTouchPoints||"ontouchstart"in this}function tg(t){return((t=Math.exp(t))+1/t)/2}th.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};let tm=function t(e,n,r){function i(t,i){var o,a,u=t[0],l=t[1],s=t[2],c=i[0],h=i[1],f=i[2],d=c-u,p=h-l,y=d*d+p*p;if(y<1e-12)a=Math.log(f/s)/e,o=function(t){return[u+t*d,l+t*p,s*Math.exp(e*t*a)]};else{var g=Math.sqrt(y),m=(f*f-s*s+r*y)/(2*s*n*g),v=(f*f-s*s-r*y)/(2*f*n*g),x=Math.log(Math.sqrt(m*m+1)-m);a=(Math.log(Math.sqrt(v*v+1)-v)-x)/e,o=function(t){var r,i,o=t*a,c=tg(x),h=s/(n*g)*(c*(((r=Math.exp(2*(r=e*o+x)))-1)/(r+1))-((i=Math.exp(i=x))-1/i)/2);return[u+h*d,l+h*p,s*c/tg(e*o+x)]}}return o.duration=1e3*a*e/Math.SQRT2,o}return i.rho=function(e){var n=Math.max(.001,+e),r=n*n;return t(n,r,r*r)},i}(Math.SQRT2,2,4);var tv,tx,tw=0,t_=0,tb=0,tM=0,tE=0,tk=0,t$="object"==typeof performance&&performance.now?performance:Date,tA="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function tz(){return tE||(tA(tS),tE=t$.now()+tk)}function tS(){tE=0}function tN(){this._call=this._time=this._next=null}function tT(t,e,n){var r=new tN;return r.restart(t,e,n),r}function tP(){tE=(tM=t$.now())+tk,tw=t_=0;try{tz(),++tw;for(var t,e=tv;e;)(t=tE-e._time)>=0&&e._call.call(void 0,t),e=e._next;--tw}finally{tw=0,function(){for(var t,e,n=tv,r=1/0;n;)n._call?(r>n._time&&(r=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:tv=e);tx=t,tI(r)}(),tE=0}}function tH(){var t=t$.now(),e=t-tM;e>1e3&&(tk-=e,tM=t)}function tI(t){!tw&&(t_&&(t_=clearTimeout(t_)),t-tE>24?(t<1/0&&(t_=setTimeout(tP,t-t$.now()-tk)),tb&&(tb=clearInterval(tb))):(tb||(tM=t$.now(),tb=setInterval(tH,1e3)),tw=1,tA(tP)))}function tB(t,e,n){var r=new tN;return e=null==e?0:+e,r.restart(n=>{r.stop(),t(n+e)},e,n),r}tN.prototype=tT.prototype={constructor:tN,restart:function(t,e,n){if("function"!=typeof t)throw TypeError("callback is not a function");n=(null==n?tz():+n)+(null==e?0:+e),this._next||tx===this||(tx?tx._next=this:tv=this,tx=this),this._call=t,this._time=n,tI()},stop:function(){this._call&&(this._call=null,this._time=1/0,tI())}};var tC=f("start","end","cancel","interrupt"),tL=[];function tO(t,e,n,r,i,o){var a=t.__transition;if(a){if(n in a)return}else t.__transition={};!function(t,e,n){var r,i=t.__transition;function o(l){var s,c,h,f;if(1!==n.state)return u();for(s in i)if((f=i[s]).name===n.name){if(3===f.state)return tB(o);4===f.state?(f.state=6,f.timer.stop(),f.on.call("interrupt",t,t.__data__,f.index,f.group),delete i[s]):+s<e&&(f.state=6,f.timer.stop(),f.on.call("cancel",t,t.__data__,f.index,f.group),delete i[s])}if(tB(function(){3===n.state&&(n.state=4,n.timer.restart(a,n.delay,n.time),a(l))}),n.state=2,n.on.call("start",t,t.__data__,n.index,n.group),2===n.state){for(s=0,n.state=3,r=Array(h=n.tween.length),c=-1;s<h;++s)(f=n.tween[s].value.call(t,t.__data__,n.index,n.group))&&(r[++c]=f);r.length=c+1}}function a(e){for(var i=e<n.duration?n.ease.call(null,e/n.duration):(n.timer.restart(u),n.state=5,1),o=-1,a=r.length;++o<a;)r[o].call(t,i);5===n.state&&(n.on.call("end",t,t.__data__,n.index,n.group),u())}function u(){for(var r in n.state=6,n.timer.stop(),delete i[e],i)return;delete t.__transition}i[e]=n,n.timer=tT(function(t){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=t&&o(t-n.delay)},0,n.time)}(t,n,{name:e,index:r,group:i,on:tC,tween:tL,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:0})}function tj(t,e){var n=tD(t,e);if(n.state>0)throw Error("too late; already scheduled");return n}function tV(t,e){var n=tD(t,e);if(n.state>3)throw Error("too late; already running");return n}function tD(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw Error("transition not found");return n}function tR(t,e){var n,r,i,o=t.__transition,a=!0;if(o){for(i in e=null==e?null:e+"",o){if((n=o[i]).name!==e){a=!1;continue}r=n.state>2&&n.state<5,n.state=6,n.timer.stop(),n.on.call(r?"interrupt":"cancel",t,t.__data__,n.index,n.group),delete o[i]}a&&delete t.__transition}}function tX(t,e){return t*=1,e*=1,function(n){return t*(1-n)+e*n}}var tq=180/Math.PI,tY={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function tF(t,e,n,r,i,o){var a,u,l;return(a=Math.sqrt(t*t+e*e))&&(t/=a,e/=a),(l=t*n+e*r)&&(n-=t*l,r-=e*l),(u=Math.sqrt(n*n+r*r))&&(n/=u,r/=u,l/=u),t*r<e*n&&(t=-t,e=-e,l=-l,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(e,t)*tq,skewX:Math.atan(l)*tq,scaleX:a,scaleY:u}}function tK(t,e,n,r){function i(t){return t.length?t.pop()+" ":""}return function(o,a){var u,l,s,c,h=[],f=[];return o=t(o),a=t(a),!function(t,r,i,o,a,u){if(t!==i||r!==o){var l=a.push("translate(",null,e,null,n);u.push({i:l-4,x:tX(t,i)},{i:l-2,x:tX(r,o)})}else(i||o)&&a.push("translate("+i+e+o+n)}(o.translateX,o.translateY,a.translateX,a.translateY,h,f),u=o.rotate,l=a.rotate,u!==l?(u-l>180?l+=360:l-u>180&&(u+=360),f.push({i:h.push(i(h)+"rotate(",null,r)-2,x:tX(u,l)})):l&&h.push(i(h)+"rotate("+l+r),s=o.skewX,c=a.skewX,s!==c?f.push({i:h.push(i(h)+"skewX(",null,r)-2,x:tX(s,c)}):c&&h.push(i(h)+"skewX("+c+r),!function(t,e,n,r,o,a){if(t!==n||e!==r){var u=o.push(i(o)+"scale(",null,",",null,")");a.push({i:u-4,x:tX(t,n)},{i:u-2,x:tX(e,r)})}else(1!==n||1!==r)&&o.push(i(o)+"scale("+n+","+r+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,h,f),o=a=null,function(t){for(var e,n=-1,r=f.length;++n<r;)h[(e=f[n]).i]=e.x(t);return h.join("")}}}var tW=tK(function(t){let e=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?tY:tF(e.a,e.b,e.c,e.d,e.e,e.f)},"px, ","px)","deg)"),tU=tK(function(t){return null==t?tY:(r||(r=document.createElementNS("http://www.w3.org/2000/svg","g")),r.setAttribute("transform",t),t=r.transform.baseVal.consolidate())?tF((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):tY},", ",")",")");function tZ(t,e,n){var r=t._id;return t.each(function(){var t=tV(this,r);(t.value||(t.value={}))[e]=n.apply(this,arguments)}),function(t){return tD(t,r).value[e]}}function tQ(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function tG(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function tJ(){}var t0="\\s*([+-]?\\d+)\\s*",t1="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",t2="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",t5=/^#([0-9a-f]{3,8})$/,t8=RegExp(`^rgb\\(${t0},${t0},${t0}\\)$`),t3=RegExp(`^rgb\\(${t2},${t2},${t2}\\)$`),t4=RegExp(`^rgba\\(${t0},${t0},${t0},${t1}\\)$`),t6=RegExp(`^rgba\\(${t2},${t2},${t2},${t1}\\)$`),t9=RegExp(`^hsl\\(${t1},${t2},${t2}\\)$`),t7=RegExp(`^hsla\\(${t1},${t2},${t2},${t1}\\)$`),et={aliceblue:0xf0f8ff,antiquewhite:0xfaebd7,aqua:65535,aquamarine:8388564,azure:0xf0ffff,beige:0xf5f5dc,bisque:0xffe4c4,black:0,blanchedalmond:0xffebcd,blue:255,blueviolet:9055202,brown:0xa52a2a,burlywood:0xdeb887,cadetblue:6266528,chartreuse:8388352,chocolate:0xd2691e,coral:0xff7f50,cornflowerblue:6591981,cornsilk:0xfff8dc,crimson:0xdc143c,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:0xb8860b,darkgray:0xa9a9a9,darkgreen:25600,darkgrey:0xa9a9a9,darkkhaki:0xbdb76b,darkmagenta:9109643,darkolivegreen:5597999,darkorange:0xff8c00,darkorchid:0x9932cc,darkred:9109504,darksalmon:0xe9967a,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:0xff1493,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:0xb22222,floralwhite:0xfffaf0,forestgreen:2263842,fuchsia:0xff00ff,gainsboro:0xdcdcdc,ghostwhite:0xf8f8ff,gold:0xffd700,goldenrod:0xdaa520,gray:8421504,green:32768,greenyellow:0xadff2f,grey:8421504,honeydew:0xf0fff0,hotpink:0xff69b4,indianred:0xcd5c5c,indigo:4915330,ivory:0xfffff0,khaki:0xf0e68c,lavender:0xe6e6fa,lavenderblush:0xfff0f5,lawngreen:8190976,lemonchiffon:0xfffacd,lightblue:0xadd8e6,lightcoral:0xf08080,lightcyan:0xe0ffff,lightgoldenrodyellow:0xfafad2,lightgray:0xd3d3d3,lightgreen:9498256,lightgrey:0xd3d3d3,lightpink:0xffb6c1,lightsalmon:0xffa07a,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:0xb0c4de,lightyellow:0xffffe0,lime:65280,limegreen:3329330,linen:0xfaf0e6,magenta:0xff00ff,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:0xba55d3,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:0xc71585,midnightblue:1644912,mintcream:0xf5fffa,mistyrose:0xffe4e1,moccasin:0xffe4b5,navajowhite:0xffdead,navy:128,oldlace:0xfdf5e6,olive:8421376,olivedrab:7048739,orange:0xffa500,orangered:0xff4500,orchid:0xda70d6,palegoldenrod:0xeee8aa,palegreen:0x98fb98,paleturquoise:0xafeeee,palevioletred:0xdb7093,papayawhip:0xffefd5,peachpuff:0xffdab9,peru:0xcd853f,pink:0xffc0cb,plum:0xdda0dd,powderblue:0xb0e0e6,purple:8388736,rebeccapurple:6697881,red:0xff0000,rosybrown:0xbc8f8f,royalblue:4286945,saddlebrown:9127187,salmon:0xfa8072,sandybrown:0xf4a460,seagreen:3050327,seashell:0xfff5ee,sienna:0xa0522d,silver:0xc0c0c0,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:0xfffafa,springgreen:65407,steelblue:4620980,tan:0xd2b48c,teal:32896,thistle:0xd8bfd8,tomato:0xff6347,turquoise:4251856,violet:0xee82ee,wheat:0xf5deb3,white:0xffffff,whitesmoke:0xf5f5f5,yellow:0xffff00,yellowgreen:0x9acd32};function ee(){return this.rgb().formatHex()}function en(){return this.rgb().formatRgb()}function er(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=t5.exec(t))?(n=e[1].length,e=parseInt(e[1],16),6===n?ei(e):3===n?new eu(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?eo(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?eo(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=t8.exec(t))?new eu(e[1],e[2],e[3],1):(e=t3.exec(t))?new eu(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=t4.exec(t))?eo(e[1],e[2],e[3],e[4]):(e=t6.exec(t))?eo(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=t9.exec(t))?ed(e[1],e[2]/100,e[3]/100,1):(e=t7.exec(t))?ed(e[1],e[2]/100,e[3]/100,e[4]):et.hasOwnProperty(t)?ei(et[t]):"transparent"===t?new eu(NaN,NaN,NaN,0):null}function ei(t){return new eu(t>>16&255,t>>8&255,255&t,1)}function eo(t,e,n,r){return r<=0&&(t=e=n=NaN),new eu(t,e,n,r)}function ea(t,e,n,r){var i;return 1==arguments.length?((i=t)instanceof tJ||(i=er(i)),i)?new eu((i=i.rgb()).r,i.g,i.b,i.opacity):new eu:new eu(t,e,n,null==r?1:r)}function eu(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}function el(){return`#${ef(this.r)}${ef(this.g)}${ef(this.b)}`}function es(){let t=ec(this.opacity);return`${1===t?"rgb(":"rgba("}${eh(this.r)}, ${eh(this.g)}, ${eh(this.b)}${1===t?")":`, ${t})`}`}function ec(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function eh(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function ef(t){return((t=eh(t))<16?"0":"")+t.toString(16)}function ed(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new ey(t,e,n,r)}function ep(t){if(t instanceof ey)return new ey(t.h,t.s,t.l,t.opacity);if(t instanceof tJ||(t=er(t)),!t)return new ey;if(t instanceof ey)return t;var e=(t=t.rgb()).r/255,n=t.g/255,r=t.b/255,i=Math.min(e,n,r),o=Math.max(e,n,r),a=NaN,u=o-i,l=(o+i)/2;return u?(a=e===o?(n-r)/u+(n<r)*6:n===o?(r-e)/u+2:(e-n)/u+4,u/=l<.5?o+i:2-o-i,a*=60):u=l>0&&l<1?0:a,new ey(a,u,l,t.opacity)}function ey(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}function eg(t){return(t=(t||0)%360)<0?t+360:t}function em(t){return Math.max(0,Math.min(1,t||0))}function ev(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}function ex(t,e,n,r,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*e+(4-6*o+3*a)*n+(1+3*t+3*o-3*a)*r+a*i)/6}tQ(tJ,er,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:ee,formatHex:ee,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return ep(this).formatHsl()},formatRgb:en,toString:en}),tQ(eu,ea,tG(tJ,{brighter(t){return t=null==t?1.4285714285714286:Math.pow(1.4285714285714286,t),new eu(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?.7:Math.pow(.7,t),new eu(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new eu(eh(this.r),eh(this.g),eh(this.b),ec(this.opacity))},displayable(){return -.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:el,formatHex:el,formatHex8:function(){return`#${ef(this.r)}${ef(this.g)}${ef(this.b)}${ef((isNaN(this.opacity)?1:this.opacity)*255)}`},formatRgb:es,toString:es})),tQ(ey,function(t,e,n,r){return 1==arguments.length?ep(t):new ey(t,e,n,null==r?1:r)},tG(tJ,{brighter(t){return t=null==t?1.4285714285714286:Math.pow(1.4285714285714286,t),new ey(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?.7:Math.pow(.7,t),new ey(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new eu(ev(t>=240?t-240:t+120,i,r),ev(t,i,r),ev(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new ey(eg(this.h),em(this.s),em(this.l),ec(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let t=ec(this.opacity);return`${1===t?"hsl(":"hsla("}${eg(this.h)}, ${100*em(this.s)}%, ${100*em(this.l)}%${1===t?")":`, ${t})`}`}}));let ew=t=>()=>t;function e_(t,e){var n=e-t;return n?function(e){return t+e*n}:ew(isNaN(t)?e:t)}let eb=function t(e){var n,r=1==(n=+e)?e_:function(t,e){var r,i,o;return e-t?(r=t,i=e,r=Math.pow(r,o=n),i=Math.pow(i,o)-r,o=1/o,function(t){return Math.pow(r+t*i,o)}):ew(isNaN(t)?e:t)};function i(t,e){var n=r((t=ea(t)).r,(e=ea(e)).r),i=r(t.g,e.g),o=r(t.b,e.b),a=e_(t.opacity,e.opacity);return function(e){return t.r=n(e),t.g=i(e),t.b=o(e),t.opacity=a(e),t+""}}return i.gamma=t,i}(1);function eM(t){return function(e){var n,r,i=e.length,o=Array(i),a=Array(i),u=Array(i);for(n=0;n<i;++n)r=ea(e[n]),o[n]=r.r||0,a[n]=r.g||0,u[n]=r.b||0;return o=t(o),a=t(a),u=t(u),r.opacity=1,function(t){return r.r=o(t),r.g=a(t),r.b=u(t),r+""}}}eM(function(t){var e=t.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),i=t[r],o=t[r+1],a=r>0?t[r-1]:2*i-o,u=r<e-1?t[r+2]:2*o-i;return ex((n-r/e)*e,a,i,o,u)}}),eM(function(t){var e=t.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*e),i=t[(r+e-1)%e],o=t[r%e],a=t[(r+1)%e],u=t[(r+2)%e];return ex((n-r/e)*e,i,o,a,u)}});var eE=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ek=RegExp(eE.source,"g");function e$(t,e){var n,r,i,o,a,u=eE.lastIndex=ek.lastIndex=0,l=-1,s=[],c=[];for(t+="",e+="";(i=eE.exec(t))&&(o=ek.exec(e));)(a=o.index)>u&&(a=e.slice(u,a),s[l]?s[l]+=a:s[++l]=a),(i=i[0])===(o=o[0])?s[l]?s[l]+=o:s[++l]=o:(s[++l]=null,c.push({i:l,x:tX(i,o)})),u=ek.lastIndex;return u<e.length&&(a=e.slice(u),s[l]?s[l]+=a:s[++l]=a),s.length<2?c[0]?(n=c[0].x,function(t){return n(t)+""}):(r=e,function(){return r}):(e=c.length,function(t){for(var n,r=0;r<e;++r)s[(n=c[r]).i]=n.x(t);return s.join("")})}function eA(t,e){var n;return("number"==typeof e?tX:e instanceof er?eb:(n=er(e))?(e=n,eb):e$)(t,e)}var ez=te.prototype.constructor;function eS(t){return function(){this.style.removeProperty(t)}}var eN=0;function eT(t,e,n,r){this._groups=t,this._parents=e,this._name=n,this._id=r}var eP=te.prototype;eT.prototype=(function(t){return te().transition(t)}).prototype={constructor:eT,select:function(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=g(t));for(var r=this._groups,i=r.length,o=Array(i),a=0;a<i;++a)for(var u,l,s=r[a],c=s.length,h=o[a]=Array(c),f=0;f<c;++f)(u=s[f])&&(l=t.call(u,u.__data__,f,s))&&("__data__"in u&&(l.__data__=u.__data__),h[f]=l,tO(h[f],e,n,f,h,tD(u,n)));return new eT(o,this._parents,e,n)},selectAll:function(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=v(t));for(var r=this._groups,i=r.length,o=[],a=[],u=0;u<i;++u)for(var l,s=r[u],c=s.length,h=0;h<c;++h)if(l=s[h]){for(var f,d=t.call(l,l.__data__,h,s),p=tD(l,n),y=0,g=d.length;y<g;++y)(f=d[y])&&tO(f,e,n,y,d,p);o.push(d),a.push(l)}return new eT(o,a,e,n)},selectChild:eP.selectChild,selectChildren:eP.selectChildren,filter:function(t){"function"!=typeof t&&(t=x(t));for(var e=this._groups,n=e.length,r=Array(n),i=0;i<n;++i)for(var o,a=e[i],u=a.length,l=r[i]=[],s=0;s<u;++s)(o=a[s])&&t.call(o,o.__data__,s,a)&&l.push(o);return new eT(r,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw Error();for(var e=this._groups,n=t._groups,r=e.length,i=n.length,o=Math.min(r,i),a=Array(r),u=0;u<o;++u)for(var l,s=e[u],c=n[u],h=s.length,f=a[u]=Array(h),d=0;d<h;++d)(l=s[d]||c[d])&&(f[d]=l);for(;u<r;++u)a[u]=e[u];return new eT(a,this._parents,this._name,this._id)},selection:function(){return new ez(this._groups,this._parents)},transition:function(){for(var t=this._name,e=this._id,n=++eN,r=this._groups,i=r.length,o=0;o<i;++o)for(var a,u=r[o],l=u.length,s=0;s<l;++s)if(a=u[s]){var c=tD(a,e);tO(a,t,n,s,u,{time:c.time+c.delay+c.duration,delay:0,duration:c.duration,ease:c.ease})}return new eT(r,this._parents,t,n)},call:eP.call,nodes:eP.nodes,node:eP.node,size:eP.size,empty:eP.empty,each:eP.each,on:function(t,e){var n,r,i,o,a,u,l=this._id;return arguments.length<2?tD(this.node(),l).on.on(t):this.each((n=l,r=t,i=e,u=(r+"").trim().split(/^|\s+/).every(function(t){var e=t.indexOf(".");return e>=0&&(t=t.slice(0,e)),!t||"start"===t})?tj:tV,function(){var t=u(this,n),e=t.on;e!==o&&(a=(o=e).copy()).on(r,i),t.on=a}))},attr:function(t,e){var n=H(t),r="transform"===n?tU:eA;return this.attrTween(t,"function"==typeof e?(n.local?function(t,e,n){var r,i,o;return function(){var a,u,l=n(this);return null==l?void this.removeAttributeNS(t.space,t.local):(a=this.getAttributeNS(t.space,t.local))===(u=l+"")?null:a===r&&u===i?o:(i=u,o=e(r=a,l))}}:function(t,e,n){var r,i,o;return function(){var a,u,l=n(this);return null==l?void this.removeAttribute(t):(a=this.getAttribute(t))===(u=l+"")?null:a===r&&u===i?o:(i=u,o=e(r=a,l))}})(n,r,tZ(this,"attr."+t,e)):null==e?(n.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}})(n):(n.local?function(t,e,n){var r,i,o=n+"";return function(){var a=this.getAttributeNS(t.space,t.local);return a===o?null:a===r?i:i=e(r=a,n)}}:function(t,e,n){var r,i,o=n+"";return function(){var a=this.getAttribute(t);return a===o?null:a===r?i:i=e(r=a,n)}})(n,r,e))},attrTween:function(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==e)return this.tween(n,null);if("function"!=typeof e)throw Error();var r=H(t);return this.tween(n,(r.local?function(t,e){var n,r;function i(){var i=e.apply(this,arguments);return i!==r&&(n=(r=i)&&function(e){this.setAttributeNS(t.space,t.local,i.call(this,e))}),n}return i._value=e,i}:function(t,e){var n,r;function i(){var i=e.apply(this,arguments);return i!==r&&(n=(r=i)&&function(e){this.setAttribute(t,i.call(this,e))}),n}return i._value=e,i})(r,e))},style:function(t,e,n){var r,i,o,a,u,l,s,c,h,f,d,p,y,g,m,v,x,w,_,b,M,E="transform"==(t+="")?tW:eA;return null==e?this.styleTween(t,(r=t,function(){var t=B(this,r),e=(this.style.removeProperty(r),B(this,r));return t===e?null:t===i&&e===o?a:a=E(i=t,o=e)})).on("end.style."+t,eS(t)):"function"==typeof e?this.styleTween(t,(u=t,l=tZ(this,"style."+t,e),function(){var t=B(this,u),e=l(this),n=e+"";return null==e&&(this.style.removeProperty(u),n=e=B(this,u)),t===n?null:t===s&&n===c?h:(c=n,h=E(s=t,e))})).each((f=this._id,x="end."+(v="style."+(d=t)),function(){var t=tV(this,f),e=t.on,n=null==t.value[v]?m||(m=eS(d)):void 0;(e!==p||g!==n)&&(y=(p=e).copy()).on(x,g=n),t.on=y})):this.styleTween(t,(w=t,M=e+"",function(){var t=B(this,w);return t===M?null:t===_?b:b=E(_=t,e)}),n).on("end.style."+t,null)},styleTween:function(t,e,n){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==e)return this.tween(r,null);if("function"!=typeof e)throw Error();return this.tween(r,function(t,e,n){var r,i;function o(){var o=e.apply(this,arguments);return o!==i&&(r=(i=o)&&function(e){this.style.setProperty(t,o.call(this,e),n)}),r}return o._value=e,o}(t,e,null==n?"":n))},text:function(t){var e,n;return this.tween("text","function"==typeof t?(e=tZ(this,"text",t),function(){var t=e(this);this.textContent=null==t?"":t}):(n=null==t?"":t+"",function(){this.textContent=n}))},textTween:function(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(null==t)return this.tween(e,null);if("function"!=typeof t)throw Error();return this.tween(e,function(t){var e,n;function r(){var r=t.apply(this,arguments);return r!==n&&(e=(n=r)&&function(t){this.textContent=r.call(this,t)}),e}return r._value=t,r}(t))},remove:function(){var t;return this.on("end.remove",(t=this._id,function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}))},tween:function(t,e){var n=this._id;if(t+="",arguments.length<2){for(var r,i=tD(this.node(),n).tween,o=0,a=i.length;o<a;++o)if((r=i[o]).name===t)return r.value;return null}return this.each((null==e?function(t,e){var n,r;return function(){var i=tV(this,t),o=i.tween;if(o!==n){r=n=o;for(var a=0,u=r.length;a<u;++a)if(r[a].name===e){(r=r.slice()).splice(a,1);break}}i.tween=r}}:function(t,e,n){var r,i;if("function"!=typeof n)throw Error();return function(){var o=tV(this,t),a=o.tween;if(a!==r){i=(r=a).slice();for(var u={name:e,value:n},l=0,s=i.length;l<s;++l)if(i[l].name===e){i[l]=u;break}l===s&&i.push(u)}o.tween=i}})(n,t,e))},delay:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?function(t,e){return function(){tj(this,t).delay=+e.apply(this,arguments)}}:function(t,e){return e*=1,function(){tj(this,t).delay=e}})(e,t)):tD(this.node(),e).delay},duration:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?function(t,e){return function(){tV(this,t).duration=+e.apply(this,arguments)}}:function(t,e){return e*=1,function(){tV(this,t).duration=e}})(e,t)):tD(this.node(),e).duration},ease:function(t){var e=this._id;return arguments.length?this.each(function(t,e){if("function"!=typeof e)throw Error();return function(){tV(this,t).ease=e}}(e,t)):tD(this.node(),e).ease},easeVarying:function(t){var e;if("function"!=typeof t)throw Error();return this.each((e=this._id,function(){var n=t.apply(this,arguments);if("function"!=typeof n)throw Error();tV(this,e).ease=n}))},end:function(){var t,e,n=this,r=n._id,i=n.size();return new Promise(function(o,a){var u={value:a},l={value:function(){0==--i&&o()}};n.each(function(){var n=tV(this,r),i=n.on;i!==t&&((e=(t=i).copy())._.cancel.push(u),e._.interrupt.push(u),e._.end.push(l)),n.on=e}),0===i&&o()})},[Symbol.iterator]:eP[Symbol.iterator]};var eH={time:null,delay:0,duration:250,ease:function(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}};te.prototype.interrupt=function(t){return this.each(function(){tR(this,t)})},te.prototype.transition=function(t){var e,n;t instanceof eT?(e=t._id,t=t._name):(e=++eN,(n=eH).time=tz(),t=null==t?null:t+"");for(var r=this._groups,i=r.length,o=0;o<i;++o)for(var a,u=r[o],l=u.length,s=0;s<l;++s)(a=u[s])&&tO(a,t,e,s,u,n||function(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))throw Error(`transition ${e} not found`);return n}(a,e));return new eT(r,this._parents,t,e)};let eI=t=>()=>t;function eB(t,{sourceEvent:e,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function eC(t,e,n){this.k=t,this.x=e,this.y=n}eC.prototype={constructor:eC,scale:function(t){return 1===t?this:new eC(this.k*t,this.x,this.y)},translate:function(t,e){return 0===t&0===e?this:new eC(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var eL=new eC(1,0,0);function eO(t){for(;!t.__zoom;)if(!(t=t.parentNode))return eL;return t.__zoom}function ej(t){t.stopImmediatePropagation()}function eV(t){t.preventDefault(),t.stopImmediatePropagation()}function eD(t){return(!t.ctrlKey||"wheel"===t.type)&&!t.button}function eR(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t).hasAttribute("viewBox")?[[(t=t.viewBox.baseVal).x,t.y],[t.x+t.width,t.y+t.height]]:[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]:[[0,0],[t.clientWidth,t.clientHeight]]}function eX(){return this.__zoom||eL}function eq(t){return-t.deltaY*(1===t.deltaMode?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function eY(){return navigator.maxTouchPoints||"ontouchstart"in this}function eF(t,e,n){var r=t.invertX(e[0][0])-n[0][0],i=t.invertX(e[1][0])-n[1][0],o=t.invertY(e[0][1])-n[0][1],a=t.invertY(e[1][1])-n[1][1];return t.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}function eK(){var t,e,n,r=eD,i=eR,o=eF,a=eq,u=eY,l=[0,1/0],s=[[-1/0,-1/0],[1/0,1/0]],c=250,h=tm,d=f("start","zoom","end"),p=0,y=10;function g(t){t.property("__zoom",eX).on("wheel.zoom",M,{passive:!1}).on("mousedown.zoom",E).on("dblclick.zoom",k).filter(u).on("touchstart.zoom",$).on("touchmove.zoom",A).on("touchend.zoom touchcancel.zoom",z).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function m(t,e){return(e=Math.max(l[0],Math.min(l[1],e)))===t.k?t:new eC(e,t.x,t.y)}function v(t,e,n){var r=e[0]-n[0]*t.k,i=e[1]-n[1]*t.k;return r===t.x&&i===t.y?t:new eC(t.k,r,i)}function x(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function w(t,e,n,r){t.on("start.zoom",function(){_(this,arguments).event(r).start()}).on("interrupt.zoom end.zoom",function(){_(this,arguments).event(r).end()}).tween("zoom",function(){var t=arguments,o=_(this,t).event(r),a=i.apply(this,t),u=null==n?x(a):"function"==typeof n?n.apply(this,t):n,l=Math.max(a[1][0]-a[0][0],a[1][1]-a[0][1]),s=this.__zoom,c="function"==typeof e?e.apply(this,t):e,f=h(s.invert(u).concat(l/s.k),c.invert(u).concat(l/c.k));return function(t){if(1===t)t=c;else{var e=f(t),n=l/e[2];t=new eC(n,u[0]-e[0]*n,u[1]-e[1]*n)}o.zoom(null,t)}})}function _(t,e,n){return!n&&t.__zooming||new b(t,e)}function b(t,e){this.that=t,this.args=e,this.active=0,this.sourceEvent=null,this.extent=i.apply(t,e),this.taps=0}function M(t,...e){if(r.apply(this,arguments)){var n=_(this,e).event(t),i=this.__zoom,u=Math.max(l[0],Math.min(l[1],i.k*Math.pow(2,a.apply(this,arguments)))),c=tr(t);if(n.wheel)(n.mouse[0][0]!==c[0]||n.mouse[0][1]!==c[1])&&(n.mouse[1]=i.invert(n.mouse[0]=c)),clearTimeout(n.wheel);else{if(i.k===u)return;n.mouse=[c,i.invert(c)],tR(this),n.start()}eV(t),n.wheel=setTimeout(function(){n.wheel=null,n.end()},150),n.zoom("mouse",o(v(m(i,u),n.mouse[0],n.mouse[1]),n.extent,s))}}function E(t,...e){if(!n&&r.apply(this,arguments)){var i=t.currentTarget,a=_(this,e,!0).event(t),u=tn(t.view).on("mousemove.zoom",function(t){if(eV(t),!a.moved){var e=t.clientX-c,n=t.clientY-h;a.moved=e*e+n*n>p}a.event(t).zoom("mouse",o(v(a.that.__zoom,a.mouse[0]=tr(t,i),a.mouse[1]),a.extent,s))},!0).on("mouseup.zoom",function(t){u.on("mousemove.zoom mouseup.zoom",null),ts(t.view,a.moved),eV(t),a.event(t).end()},!0),l=tr(t,i),c=t.clientX,h=t.clientY;tl(t.view),ej(t),a.mouse=[l,this.__zoom.invert(l)],tR(this),a.start()}}function k(t,...e){if(r.apply(this,arguments)){var n=this.__zoom,a=tr(t.changedTouches?t.changedTouches[0]:t,this),u=n.invert(a),l=n.k*(t.shiftKey?.5:2),h=o(v(m(n,l),a,u),i.apply(this,e),s);eV(t),c>0?tn(this).transition().duration(c).call(w,h,a,t):tn(this).call(g.transform,h,a,t)}}function $(n,...i){if(r.apply(this,arguments)){var o,a,u,l,s=n.touches,c=s.length,h=_(this,i,n.changedTouches.length===c).event(n);for(ej(n),a=0;a<c;++a)l=[l=tr(u=s[a],this),this.__zoom.invert(l),u.identifier],h.touch0?h.touch1||h.touch0[2]===l[2]||(h.touch1=l,h.taps=0):(h.touch0=l,o=!0,h.taps=1+!!t);t&&(t=clearTimeout(t)),o&&(h.taps<2&&(e=l[0],t=setTimeout(function(){t=null},500)),tR(this),h.start())}}function A(t,...e){if(this.__zooming){var n,r,i,a,u=_(this,e).event(t),l=t.changedTouches,c=l.length;for(eV(t),n=0;n<c;++n)i=tr(r=l[n],this),u.touch0&&u.touch0[2]===r.identifier?u.touch0[0]=i:u.touch1&&u.touch1[2]===r.identifier&&(u.touch1[0]=i);if(r=u.that.__zoom,u.touch1){var h=u.touch0[0],f=u.touch0[1],d=u.touch1[0],p=u.touch1[1],y=(y=d[0]-h[0])*y+(y=d[1]-h[1])*y,g=(g=p[0]-f[0])*g+(g=p[1]-f[1])*g;r=m(r,Math.sqrt(y/g)),i=[(h[0]+d[0])/2,(h[1]+d[1])/2],a=[(f[0]+p[0])/2,(f[1]+p[1])/2]}else{if(!u.touch0)return;i=u.touch0[0],a=u.touch0[1]}u.zoom("touch",o(v(r,i,a),u.extent,s))}}function z(t,...r){if(this.__zooming){var i,o,a=_(this,r).event(t),u=t.changedTouches,l=u.length;for(ej(t),n&&clearTimeout(n),n=setTimeout(function(){n=null},500),i=0;i<l;++i)o=u[i],a.touch0&&a.touch0[2]===o.identifier?delete a.touch0:a.touch1&&a.touch1[2]===o.identifier&&delete a.touch1;if(a.touch1&&!a.touch0&&(a.touch0=a.touch1,delete a.touch1),a.touch0)a.touch0[1]=this.__zoom.invert(a.touch0[0]);else if(a.end(),2===a.taps&&(o=tr(o,this),Math.hypot(e[0]-o[0],e[1]-o[1])<y)){var s=tn(this).on("dblclick.zoom");s&&s.apply(this,arguments)}}}return g.transform=function(t,e,n,r){var i=t.selection?t.selection():t;i.property("__zoom",eX),t!==i?w(t,e,n,r):i.interrupt().each(function(){_(this,arguments).event(r).start().zoom(null,"function"==typeof e?e.apply(this,arguments):e).end()})},g.scaleBy=function(t,e,n,r){g.scaleTo(t,function(){var t=this.__zoom.k,n="function"==typeof e?e.apply(this,arguments):e;return t*n},n,r)},g.scaleTo=function(t,e,n,r){g.transform(t,function(){var t=i.apply(this,arguments),r=this.__zoom,a=null==n?x(t):"function"==typeof n?n.apply(this,arguments):n,u=r.invert(a),l="function"==typeof e?e.apply(this,arguments):e;return o(v(m(r,l),a,u),t,s)},n,r)},g.translateBy=function(t,e,n,r){g.transform(t,function(){return o(this.__zoom.translate("function"==typeof e?e.apply(this,arguments):e,"function"==typeof n?n.apply(this,arguments):n),i.apply(this,arguments),s)},null,r)},g.translateTo=function(t,e,n,r,a){g.transform(t,function(){var t=i.apply(this,arguments),a=this.__zoom,u=null==r?x(t):"function"==typeof r?r.apply(this,arguments):r;return o(eL.translate(u[0],u[1]).scale(a.k).translate("function"==typeof e?-e.apply(this,arguments):-e,"function"==typeof n?-n.apply(this,arguments):-n),t,s)},r,a)},b.prototype={event:function(t){return t&&(this.sourceEvent=t),this},start:function(){return 1==++this.active&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(t,e){return this.mouse&&"mouse"!==t&&(this.mouse[1]=e.invert(this.mouse[0])),this.touch0&&"touch"!==t&&(this.touch0[1]=e.invert(this.touch0[0])),this.touch1&&"touch"!==t&&(this.touch1[1]=e.invert(this.touch1[0])),this.that.__zoom=e,this.emit("zoom"),this},end:function(){return 0==--this.active&&(delete this.that.__zooming,this.emit("end")),this},emit:function(t){var e=tn(this.that).datum();d.call(t,this.that,new eB(t,{sourceEvent:this.sourceEvent,target:g,type:t,transform:this.that.__zoom,dispatch:d}),e)}},g.wheelDelta=function(t){return arguments.length?(a="function"==typeof t?t:eI(+t),g):a},g.filter=function(t){return arguments.length?(r="function"==typeof t?t:eI(!!t),g):r},g.touchable=function(t){return arguments.length?(u="function"==typeof t?t:eI(!!t),g):u},g.extent=function(t){return arguments.length?(i="function"==typeof t?t:eI([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),g):i},g.scaleExtent=function(t){return arguments.length?(l[0]=+t[0],l[1]=+t[1],g):[l[0],l[1]]},g.translateExtent=function(t){return arguments.length?(s[0][0]=+t[0][0],s[1][0]=+t[1][0],s[0][1]=+t[0][1],s[1][1]=+t[1][1],g):[[s[0][0],s[0][1]],[s[1][0],s[1][1]]]},g.constrain=function(t){return arguments.length?(o=t,g):o},g.duration=function(t){return arguments.length?(c=+t,g):c},g.interpolate=function(t){return arguments.length?(h=t,g):h},g.on=function(){var t=d.on.apply(d,arguments);return t===d?g:t},g.clickDistance=function(t){return arguments.length?(p=(t*=1)*t,g):Math.sqrt(p)},g.tapDistance=function(t){return arguments.length?(y=+t,g):y},g}function eW(t,e){var n,r,i=typeof e;return null==e||"boolean"===i?ew(e):("number"===i?tX:"string"===i?(r=er(e))?(e=r,eb):e$:e instanceof er?eb:e instanceof Date?function(t,e){var n=new Date;return t*=1,e*=1,function(r){return n.setTime(t*(1-r)+e*r),n}}:!ArrayBuffer.isView(n=e)||n instanceof DataView?Array.isArray(e)?function(t,e){var n,r=e?e.length:0,i=t?Math.min(r,t.length):0,o=Array(i),a=Array(r);for(n=0;n<i;++n)o[n]=eW(t[n],e[n]);for(;n<r;++n)a[n]=e[n];return function(t){for(n=0;n<i;++n)a[n]=o[n](t);return a}}:"function"!=typeof e.valueOf&&"function"!=typeof e.toString||isNaN(e)?function(t,e){var n,r={},i={};for(n in(null===t||"object"!=typeof t)&&(t={}),(null===e||"object"!=typeof e)&&(e={}),e)n in t?r[n]=eW(t[n],e[n]):i[n]=e[n];return function(t){for(n in r)i[n]=r[n](t);return i}}:tX:function(t,e){e||(e=[]);var n,r=t?Math.min(e.length,t.length):0,i=e.slice();return function(o){for(n=0;n<r;++n)i[n]=t[n]*(1-o)+e[n]*o;return i}})(t,e)}eO.prototype=eC.prototype;let eU={error001:()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:t=>`Node type "${t}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:t=>`The old edge with id=${t} does not exist.`,error009:t=>`Marker type "${t}" doesn't exist.`,error008:(t,{id:e,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${t} handle id: "${"source"===t?n:r}", edge id: ${e}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:t=>`Edge type "${t}" not found. Using fallback type "default".`,error012:t=>`Node with id "${t}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(t="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${t}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs."},eZ=[[-1/0,-1/0],[1/0,1/0]],eQ=["Enter"," ","Escape"],eG={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:t,x:e,y:n})=>`Moved selected node ${t}. New position, x: ${e}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};!function(t){t.Strict="strict",t.Loose="loose"}(i||(i={})),function(t){t.Free="free",t.Vertical="vertical",t.Horizontal="horizontal"}(o||(o={})),function(t){t.Partial="partial",t.Full="full"}(a||(a={}));let eJ={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null};!function(t){t.Bezier="default",t.Straight="straight",t.Step="step",t.SmoothStep="smoothstep",t.SimpleBezier="simplebezier"}(u||(u={})),function(t){t.Arrow="arrow",t.ArrowClosed="arrowclosed"}(l||(l={})),function(t){t.Left="left",t.Top="top",t.Right="right",t.Bottom="bottom"}(s||(s={}));let e0={[s.Left]:s.Right,[s.Right]:s.Left,[s.Top]:s.Bottom,[s.Bottom]:s.Top};function e1(t){return null===t?null:t?"valid":"invalid"}let e2=t=>"id"in t&&"source"in t&&"target"in t,e5=t=>"id"in t&&"position"in t&&!("source"in t)&&!("target"in t),e8=t=>"id"in t&&"internals"in t&&!("source"in t)&&!("target"in t),e3=(t,e=[0,0])=>{let{width:n,height:r}=nE(t),i=t.origin??e,o=n*i[0],a=r*i[1];return{x:t.position.x-o,y:t.position.y-a}},e4=(t,e={nodeOrigin:[0,0]})=>0===t.length?{x:0,y:0,width:0,height:0}:ns(t.reduce((t,n)=>{let r="string"==typeof n,i=e.nodeLookup||r?void 0:n;return e.nodeLookup&&(i=r?e.nodeLookup.get(n):e8(n)?n:e.nodeLookup.get(n.id)),nu(t,i?nh(i,e.nodeOrigin):{x:0,y:0,x2:0,y2:0})},{x:1/0,y:1/0,x2:-1/0,y2:-1/0})),e6=(t,e={})=>{if(0===t.size)return{x:0,y:0,width:0,height:0};let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0};return t.forEach(t=>{if(void 0===e.filter||e.filter(t)){let e=nh(t);n=nu(n,e)}}),ns(n)},e9=(t,e,[n,r,i]=[0,0,1],o=!1,a=!1)=>{let u={...nv(e,[n,r,i]),width:e.width/i,height:e.height/i},l=[];for(let e of t.values()){let{measured:t,selectable:n=!0,hidden:r=!1}=e;if(a&&!n||r)continue;let i=t.width??e.width??e.initialWidth??null,s=t.height??e.height??e.initialHeight??null,c=nd(u,nc(e)),h=(i??0)*(s??0),f=o&&c>0;(!e.internals.handleBounds||f||c>=h||e.dragging)&&l.push(e)}return l};async function e7({nodes:t,width:e,height:n,panZoom:r,minZoom:i,maxZoom:o},a){if(0===t.size)return Promise.resolve(!0);let u=n_(e6(function(t,e){let n=new Map,r=e?.nodes?new Set(e.nodes.map(t=>t.id)):null;return t.forEach(t=>{t.measured.width&&t.measured.height&&(e?.includeHiddenNodes||!t.hidden)&&(!r||r.has(t.id))&&n.set(t.id,t)}),n}(t,a)),e,n,a?.minZoom??i,a?.maxZoom??o,a?.padding??.1);return await r.setViewport(u,{duration:a?.duration,ease:a?.ease,interpolate:a?.interpolate}),Promise.resolve(!0)}function nt({nodeId:t,nextPosition:e,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:o}){let a=n.get(t),u=a.parentId?n.get(a.parentId):void 0,{x:l,y:s}=u?u.internals.positionAbsolute:{x:0,y:0},c=a.origin??r,h=a.extent||i;if("parent"!==a.extent||a.expandParent)u&&nM(a.extent)&&(h=[[a.extent[0][0]+l,a.extent[0][1]+s],[a.extent[1][0]+l,a.extent[1][1]+s]]);else if(u){let t=u.measured.width,e=u.measured.height;t&&e&&(h=[[l,s],[l+t,s+e]])}else o?.("005",eU.error005());let f=nM(h)?nr(e,h,a.measured):e;return(void 0===a.measured.width||void 0===a.measured.height)&&o?.("015",eU.error015()),{position:{x:f.x-l+(a.measured.width??0)*c[0],y:f.y-s+(a.measured.height??0)*c[1]},positionAbsolute:f}}async function ne({nodesToRemove:t=[],edgesToRemove:e=[],nodes:n,edges:r,onBeforeDelete:i}){let o=new Set(t.map(t=>t.id)),a=[];for(let t of n){if(!1===t.deletable)continue;let e=o.has(t.id),n=!e&&t.parentId&&a.find(e=>e.id===t.parentId);(e||n)&&a.push(t)}let u=new Set(e.map(t=>t.id)),l=r.filter(t=>!1!==t.deletable),s=((t,e)=>{let n=new Set;return t.forEach(t=>{n.add(t.id)}),e.filter(t=>n.has(t.source)||n.has(t.target))})(a,l);for(let t of l)u.has(t.id)&&!s.find(e=>e.id===t.id)&&s.push(t);if(!i)return{edges:s,nodes:a};let c=await i({nodes:a,edges:s});return"boolean"==typeof c?c?{edges:s,nodes:a}:{edges:[],nodes:[]}:c}let nn=(t,e=0,n=1)=>Math.min(Math.max(t,e),n),nr=(t={x:0,y:0},e,n)=>({x:nn(t.x,e[0][0],e[1][0]-(n?.width??0)),y:nn(t.y,e[0][1],e[1][1]-(n?.height??0))});function ni(t,e,n){let{width:r,height:i}=nE(n),{x:o,y:a}=n.internals.positionAbsolute;return nr(t,[[o,a],[o+r,a+i]],e)}let no=(t,e,n)=>t<e?nn(Math.abs(t-e),1,e)/e:t>n?-nn(Math.abs(t-n),1,e)/e:0,na=(t,e,n=15,r=40)=>[no(t.x,r,e.width-r)*n,no(t.y,r,e.height-r)*n],nu=(t,e)=>({x:Math.min(t.x,e.x),y:Math.min(t.y,e.y),x2:Math.max(t.x2,e.x2),y2:Math.max(t.y2,e.y2)}),nl=({x:t,y:e,width:n,height:r})=>({x:t,y:e,x2:t+n,y2:e+r}),ns=({x:t,y:e,x2:n,y2:r})=>({x:t,y:e,width:n-t,height:r-e}),nc=(t,e=[0,0])=>{let{x:n,y:r}=e8(t)?t.internals.positionAbsolute:e3(t,e);return{x:n,y:r,width:t.measured?.width??t.width??t.initialWidth??0,height:t.measured?.height??t.height??t.initialHeight??0}},nh=(t,e=[0,0])=>{let{x:n,y:r}=e8(t)?t.internals.positionAbsolute:e3(t,e);return{x:n,y:r,x2:n+(t.measured?.width??t.width??t.initialWidth??0),y2:r+(t.measured?.height??t.height??t.initialHeight??0)}},nf=(t,e)=>ns(nu(nl(t),nl(e))),nd=(t,e)=>Math.ceil(Math.max(0,Math.min(t.x+t.width,e.x+e.width)-Math.max(t.x,e.x))*Math.max(0,Math.min(t.y+t.height,e.y+e.height)-Math.max(t.y,e.y))),np=t=>ny(t.width)&&ny(t.height)&&ny(t.x)&&ny(t.y),ny=t=>!isNaN(t)&&isFinite(t),ng=(t,e)=>{},nm=(t,e=[1,1])=>({x:e[0]*Math.round(t.x/e[0]),y:e[1]*Math.round(t.y/e[1])}),nv=({x:t,y:e},[n,r,i],o=!1,a=[1,1])=>{let u={x:(t-n)/i,y:(e-r)/i};return o?nm(u,a):u},nx=({x:t,y:e},[n,r,i])=>({x:t*i+n,y:e*i+r});function nw(t,e){if("number"==typeof t)return Math.floor((e-e/(1+t))*.5);if("string"==typeof t&&t.endsWith("px")){let e=parseFloat(t);if(!Number.isNaN(e))return Math.floor(e)}if("string"==typeof t&&t.endsWith("%")){let n=parseFloat(t);if(!Number.isNaN(n))return Math.floor(e*n*.01)}return console.error(`[React Flow] The padding value "${t}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}let n_=(t,e,n,r,i,o)=>{let a=function(t,e,n){if("string"==typeof t||"number"==typeof t){let r=nw(t,n),i=nw(t,e);return{top:r,right:i,bottom:r,left:i,x:2*i,y:2*r}}if("object"==typeof t){let r=nw(t.top??t.y??0,n),i=nw(t.bottom??t.y??0,n),o=nw(t.left??t.x??0,e),a=nw(t.right??t.x??0,e);return{top:r,right:a,bottom:i,left:o,x:o+a,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}(o,e,n),u=nn(Math.min((e-a.x)/t.width,(n-a.y)/t.height),r,i),l=t.x+t.width/2,s=t.y+t.height/2,c=e/2-l*u,h=n/2-s*u,f=function(t,e,n,r,i,o){let{x:a,y:u}=nx(t,[e,n,r]),{x:l,y:s}=nx({x:t.x+t.width,y:t.y+t.height},[e,n,r]);return{left:Math.floor(a),top:Math.floor(u),right:Math.floor(i-l),bottom:Math.floor(o-s)}}(t,c,h,u,e,n),d={left:Math.min(f.left-a.left,0),top:Math.min(f.top-a.top,0),right:Math.min(f.right-a.right,0),bottom:Math.min(f.bottom-a.bottom,0)};return{x:c-d.left+d.right,y:h-d.top+d.bottom,zoom:u}},nb=()=>"undefined"!=typeof navigator&&navigator?.userAgent?.indexOf("Mac")>=0;function nM(t){return null!=t&&"parent"!==t}function nE(t){return{width:t.measured?.width??t.width??t.initialWidth??0,height:t.measured?.height??t.height??t.initialHeight??0}}function nk(t){return(t.measured?.width??t.width??t.initialWidth)!==void 0&&(t.measured?.height??t.height??t.initialHeight)!==void 0}function n$(t,e={width:0,height:0},n,r,i){let o={...t},a=r.get(n);if(a){let t=a.origin||i;o.x+=a.internals.positionAbsolute.x-(e.width??0)*t[0],o.y+=a.internals.positionAbsolute.y-(e.height??0)*t[1]}return o}function nA(t,e){if(t.size!==e.size)return!1;for(let n of t)if(!e.has(n))return!1;return!0}function nz(){let t,e;return{promise:new Promise((n,r)=>{t=n,e=r}),resolve:t,reject:e}}function nS(t){return{...eG,...t||{}}}function nN(t,{snapGrid:e=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){let{x:o,y:a}=nC(t),u=nv({x:o-(i?.left??0),y:a-(i?.top??0)},r),{x:l,y:s}=n?nm(u,e):u;return{xSnapped:l,ySnapped:s,...u}}let nT=t=>({width:t.offsetWidth,height:t.offsetHeight}),nP=t=>t?.getRootNode?.()||window?.document,nH=["INPUT","SELECT","TEXTAREA"];function nI(t){let e=t.composedPath?.()?.[0]||t.target;return e?.nodeType===1&&(nH.includes(e.nodeName)||e.hasAttribute("contenteditable")||!!e.closest(".nokey"))}let nB=t=>"clientX"in t,nC=(t,e)=>{let n=nB(t),r=n?t.clientX:t.touches?.[0].clientX,i=n?t.clientY:t.touches?.[0].clientY;return{x:r-(e?.left??0),y:i-(e?.top??0)}},nL=(t,e,n,r,i)=>{let o=e.querySelectorAll(`.${t}`);return o&&o.length?Array.from(o).map(e=>{let o=e.getBoundingClientRect();return{id:e.getAttribute("data-handleid"),type:t,nodeId:i,position:e.getAttribute("data-handlepos"),x:(o.left-n.left)/r,y:(o.top-n.top)/r,...nT(e)}}):null};function nO({sourceX:t,sourceY:e,targetX:n,targetY:r,sourceControlX:i,sourceControlY:o,targetControlX:a,targetControlY:u}){let l=.125*t+.375*i+.375*a+.125*n,s=.125*e+.375*o+.375*u+.125*r,c=Math.abs(l-t),h=Math.abs(s-e);return[l,s,c,h]}function nj(t,e){return t>=0?.5*t:25*e*Math.sqrt(-t)}function nV({pos:t,x1:e,y1:n,x2:r,y2:i,c:o}){switch(t){case s.Left:return[e-nj(e-r,o),n];case s.Right:return[e+nj(r-e,o),n];case s.Top:return[e,n-nj(n-i,o)];case s.Bottom:return[e,n+nj(i-n,o)]}}function nD({sourceX:t,sourceY:e,sourcePosition:n=s.Bottom,targetX:r,targetY:i,targetPosition:o=s.Top,curvature:a=.25}){let[u,l]=nV({pos:n,x1:t,y1:e,x2:r,y2:i,c:a}),[c,h]=nV({pos:o,x1:r,y1:i,x2:t,y2:e,c:a}),[f,d,p,y]=nO({sourceX:t,sourceY:e,targetX:r,targetY:i,sourceControlX:u,sourceControlY:l,targetControlX:c,targetControlY:h});return[`M${t},${e} C${u},${l} ${c},${h} ${r},${i}`,f,d,p,y]}function nR({sourceX:t,sourceY:e,targetX:n,targetY:r}){let i=Math.abs(n-t)/2,o=Math.abs(r-e)/2;return[n<t?n+i:n-i,r<e?r+o:r-o,i,o]}function nX({sourceNode:t,targetNode:e,selected:n=!1,zIndex:r,elevateOnSelect:i=!1}){return void 0!==r?r:(i&&n?1e3:0)+Math.max(t.parentId?t.internals.z:0,e.parentId?e.internals.z:0)}function nq({sourceNode:t,targetNode:e,width:n,height:r,transform:i}){let o=nu(nh(t),nh(e));return o.x===o.x2&&(o.x2+=1),o.y===o.y2&&(o.y2+=1),nd({x:-i[0]/i[2],y:-i[1]/i[2],width:n/i[2],height:r/i[2]},ns(o))>0}let nY=(t,e)=>{let n;return t.source&&t.target?((t,e)=>e.some(e=>e.source===t.source&&e.target===t.target&&(e.sourceHandle===t.sourceHandle||!e.sourceHandle&&!t.sourceHandle)&&(e.targetHandle===t.targetHandle||!e.targetHandle&&!t.targetHandle)))(n=e2(t)?{...t}:{...t,id:(({source:t,sourceHandle:e,target:n,targetHandle:r})=>`xy-edge__${t}${e||""}-${n}${r||""}`)(t)},e)?e:(null===n.sourceHandle&&delete n.sourceHandle,null===n.targetHandle&&delete n.targetHandle,e.concat(n)):(ng("006",eU.error006()),e)};function nF({sourceX:t,sourceY:e,targetX:n,targetY:r}){let[i,o,a,u]=nR({sourceX:t,sourceY:e,targetX:n,targetY:r});return[`M ${t},${e}L ${n},${r}`,i,o,a,u]}let nK={[s.Left]:{x:-1,y:0},[s.Right]:{x:1,y:0},[s.Top]:{x:0,y:-1},[s.Bottom]:{x:0,y:1}},nW=({source:t,sourcePosition:e=s.Bottom,target:n})=>e===s.Left||e===s.Right?t.x<n.x?{x:1,y:0}:{x:-1,y:0}:t.y<n.y?{x:0,y:1}:{x:0,y:-1},nU=(t,e)=>Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2));function nZ({sourceX:t,sourceY:e,sourcePosition:n=s.Bottom,targetX:r,targetY:i,targetPosition:o=s.Top,borderRadius:a=5,centerX:u,centerY:l,offset:c=20,stepPosition:h=.5}){let[f,d,p,y,g]=function({source:t,sourcePosition:e=s.Bottom,target:n,targetPosition:r=s.Top,center:i,offset:o,stepPosition:a}){let u,l,c=nK[e],h=nK[r],f={x:t.x+c.x*o,y:t.y+c.y*o},d={x:n.x+h.x*o,y:n.y+h.y*o},p=nW({source:f,sourcePosition:e,target:d}),y=0!==p.x?"x":"y",g=p[y],m=[],v={x:0,y:0},x={x:0,y:0},[,,w,_]=nR({sourceX:t.x,sourceY:t.y,targetX:n.x,targetY:n.y});if(c[y]*h[y]==-1){"x"===y?(u=i.x??f.x+(d.x-f.x)*a,l=i.y??(f.y+d.y)/2):(u=i.x??(f.x+d.x)/2,l=i.y??f.y+(d.y-f.y)*a);let t=[{x:u,y:f.y},{x:u,y:d.y}],e=[{x:f.x,y:l},{x:d.x,y:l}];m=c[y]===g?"x"===y?t:e:"x"===y?e:t}else{let i=[{x:f.x,y:d.y}],a=[{x:d.x,y:f.y}];if(m="x"===y?c.x===g?a:i:c.y===g?i:a,e===r){let e=Math.abs(t[y]-n[y]);if(e<=o){let r=Math.min(o-1,o-e);c[y]===g?v[y]=(f[y]>t[y]?-1:1)*r:x[y]=(d[y]>n[y]?-1:1)*r}}if(e!==r){let t="x"===y?"y":"x",e=c[y]===h[t],n=f[t]>d[t],r=f[t]<d[t];(1===c[y]&&(!e&&n||e&&r)||1!==c[y]&&(!e&&r||e&&n))&&(m="x"===y?i:a)}let s={x:f.x+v.x,y:f.y+v.y},p={x:d.x+x.x,y:d.y+x.y};Math.max(Math.abs(s.x-m[0].x),Math.abs(p.x-m[0].x))>=Math.max(Math.abs(s.y-m[0].y),Math.abs(p.y-m[0].y))?(u=(s.x+p.x)/2,l=m[0].y):(u=m[0].x,l=(s.y+p.y)/2)}return[[t,{x:f.x+v.x,y:f.y+v.y},...m,{x:d.x+x.x,y:d.y+x.y},n],u,l,w,_]}({source:{x:t,y:e},sourcePosition:n,target:{x:r,y:i},targetPosition:o,center:{x:u,y:l},offset:c,stepPosition:h});return[f.reduce((t,e,n)=>t+(n>0&&n<f.length-1?function(t,e,n,r){let i=Math.min(nU(t,e)/2,nU(e,n)/2,r),{x:o,y:a}=e;if(t.x===o&&o===n.x||t.y===a&&a===n.y)return`L${o} ${a}`;if(t.y===a){let e=t.x<n.x?-1:1,r=t.y<n.y?1:-1;return`L ${o+i*e},${a}Q ${o},${a} ${o},${a+i*r}`}let u=t.x<n.x?1:-1,l=t.y<n.y?-1:1;return`L ${o},${a+i*l}Q ${o},${a} ${o+i*u},${a}`}(f[n-1],e,f[n+1],a):`${0===n?"M":"L"}${e.x} ${e.y}`),""),d,p,y,g]}function nQ(t){return t&&!!(t.internals.handleBounds||t.handles?.length)&&!!(t.measured.width||t.width||t.initialWidth)}function nG(t){let{sourceNode:e,targetNode:n}=t;if(!nQ(e)||!nQ(n))return null;let r=e.internals.handleBounds||nJ(e.handles),o=n.internals.handleBounds||nJ(n.handles),a=n1(r?.source??[],t.sourceHandle),u=n1(t.connectionMode===i.Strict?o?.target??[]:(o?.target??[]).concat(o?.source??[]),t.targetHandle);if(!a||!u)return t.onError?.("008",eU.error008(!a?"source":"target",{id:t.id,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle})),null;let l=a?.position||s.Bottom,c=u?.position||s.Top,h=n0(e,a,l),f=n0(n,u,c);return{sourceX:h.x,sourceY:h.y,targetX:f.x,targetY:f.y,sourcePosition:l,targetPosition:c}}function nJ(t){if(!t)return null;let e=[],n=[];for(let r of t)r.width=r.width??1,r.height=r.height??1,"source"===r.type?e.push(r):"target"===r.type&&n.push(r);return{source:e,target:n}}function n0(t,e,n=s.Left,r=!1){let i=(e?.x??0)+t.internals.positionAbsolute.x,o=(e?.y??0)+t.internals.positionAbsolute.y,{width:a,height:u}=e??nE(t);if(r)return{x:i+a/2,y:o+u/2};switch(e?.position??n){case s.Top:return{x:i+a/2,y:o};case s.Right:return{x:i+a,y:o+u/2};case s.Bottom:return{x:i+a/2,y:o+u};case s.Left:return{x:i,y:o+u/2}}}function n1(t,e){return t&&(e?t.find(t=>t.id===e):t[0])||null}function n2(t,e){if(!t)return"";if("string"==typeof t)return t;let n=e?`${e}__`:"";return`${n}${Object.keys(t).sort().map(e=>`${e}=${t[e]}`).join("&")}`}function n5(t,{id:e,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){let o=new Set;return t.reduce((t,a)=>([a.markerStart||r,a.markerEnd||i].forEach(r=>{if(r&&"object"==typeof r){let i=n2(r,e);o.has(i)||(t.push({id:i,color:r.color||n,...r}),o.add(i))}}),t),[]).sort((t,e)=>t.id.localeCompare(e.id))}let n8={nodeOrigin:[0,0],nodeExtent:eZ,elevateNodesOnSelect:!0,defaults:{}},n3={...n8,checkEquality:!0};function n4(t,e){let n={...t};for(let t in e)void 0!==e[t]&&(n[t]=e[t]);return n}function n6(t,e,n){let r=n4(n8,n);for(let n of t.values())if(n.parentId)n7(n,t,e,r);else{let t=nr(e3(n,r.nodeOrigin),nM(n.extent)?n.extent:r.nodeExtent,nE(n));n.internals.positionAbsolute=t}}function n9(t,e,n,r){let i=n4(n3,r),o=t.length>0,a=new Map(e),u=1e3*!!i?.elevateNodesOnSelect;for(let l of(e.clear(),n.clear(),t)){let t=a.get(l.id);if(i.checkEquality&&l===t?.internals.userNode)e.set(l.id,t);else{let n=nr(e3(l,i.nodeOrigin),nM(l.extent)?l.extent:i.nodeExtent,nE(l));t={...i.defaults,...l,measured:{width:l.measured?.width,height:l.measured?.height},internals:{positionAbsolute:n,handleBounds:l.measured?t?.internals.handleBounds:void 0,z:rt(l,u),userNode:l}},e.set(l.id,t)}void 0!==t.measured&&void 0!==t.measured.width&&void 0!==t.measured.height||t.hidden||(o=!1),l.parentId&&n7(t,e,n,r)}return o}function n7(t,e,n,r){let{elevateNodesOnSelect:i,nodeOrigin:o,nodeExtent:a}=n4(n8,r),u=t.parentId,l=e.get(u);if(!l)return void console.warn(`Parent node ${u} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);!function(t,e){if(!t.parentId)return;let n=e.get(t.parentId);n?n.set(t.id,t):e.set(t.parentId,new Map([[t.id,t]]))}(t,n);let{x:s,y:c,z:h}=function(t,e,n,r,i){let{x:o,y:a}=e.internals.positionAbsolute,u=nE(t),l=e3(t,n),s=nM(t.extent)?nr(l,t.extent,u):l,c=nr({x:o+s.x,y:a+s.y},r,u);"parent"===t.extent&&(c=ni(c,u,e));let h=rt(t,i),f=e.internals.z??0;return{x:c.x,y:c.y,z:f>=h?f+1:h}}(t,l,o,a,1e3*!!i),{positionAbsolute:f}=t.internals,d=s!==f.x||c!==f.y;(d||h!==t.internals.z)&&e.set(t.id,{...t,internals:{...t.internals,positionAbsolute:d?{x:s,y:c}:f,z:h}})}function rt(t,e){return(ny(t.zIndex)?t.zIndex:0)+(t.selected?e:0)}function re(t,e,n,r=[0,0]){let i=[],o=new Map;for(let n of t){let t=e.get(n.parentId);if(!t)continue;let r=nf(o.get(n.parentId)?.expandedRect??nc(t),n.rect);o.set(n.parentId,{expandedRect:r,parent:t})}return o.size>0&&o.forEach(({expandedRect:e,parent:o},a)=>{let u=o.internals.positionAbsolute,l=nE(o),s=o.origin??r,c=e.x<u.x?Math.round(Math.abs(u.x-e.x)):0,h=e.y<u.y?Math.round(Math.abs(u.y-e.y)):0,f=Math.max(l.width,Math.round(e.width)),d=Math.max(l.height,Math.round(e.height)),p=(f-l.width)*s[0],y=(d-l.height)*s[1];(c>0||h>0||p||y)&&(i.push({id:a,type:"position",position:{x:o.position.x-c+p,y:o.position.y-h+y}}),n.get(a)?.forEach(e=>{t.some(t=>t.id===e.id)||i.push({id:e.id,type:"position",position:{x:e.position.x+c,y:e.position.y+h}})})),(l.width<e.width||l.height<e.height||c||h)&&i.push({id:a,type:"dimensions",setAttributes:!0,dimensions:{width:f+(c?s[0]*c-p:0),height:d+(h?s[1]*h-y:0)}})}),i}function rn(t,e,n,r,i,o){let a=r?.querySelector(".xyflow__viewport"),u=!1;if(!a)return{changes:[],updatedInternals:u};let l=[],s=window.getComputedStyle(a),{m22:c}=new window.DOMMatrixReadOnly(s.transform),h=[];for(let r of t.values()){let t=e.get(r.id);if(!t)continue;if(t.hidden){e.set(t.id,{...t,internals:{...t.internals,handleBounds:void 0}}),u=!0;continue}let a=nT(r.nodeElement),s=t.measured.width!==a.width||t.measured.height!==a.height;if(a.width&&a.height&&(s||!t.internals.handleBounds||r.force)){let f=r.nodeElement.getBoundingClientRect(),d=nM(t.extent)?t.extent:o,{positionAbsolute:p}=t.internals;t.parentId&&"parent"===t.extent?p=ni(p,a,e.get(t.parentId)):d&&(p=nr(p,d,a));let y={...t,measured:a,internals:{...t.internals,positionAbsolute:p,handleBounds:{source:nL("source",r.nodeElement,f,c,t.id),target:nL("target",r.nodeElement,f,c,t.id)}}};e.set(t.id,y),t.parentId&&n7(y,e,n,{nodeOrigin:i}),u=!0,s&&(l.push({id:t.id,type:"dimensions",dimensions:a}),t.expandParent&&t.parentId&&h.push({id:t.id,parentId:t.parentId,rect:nc(y,i)}))}}if(h.length>0){let t=re(h,e,n,i);l.push(...t)}return{changes:l,updatedInternals:u}}async function rr({delta:t,panZoom:e,transform:n,translateExtent:r,width:i,height:o}){if(!e||!t.x&&!t.y)return Promise.resolve(!1);let a=await e.setViewportConstrained({x:n[0]+t.x,y:n[1]+t.y,zoom:n[2]},[[0,0],[i,o]],r);return Promise.resolve(!!a&&(a.x!==n[0]||a.y!==n[1]||a.k!==n[2]))}function ri(t,e,n,r,i,o){let a=i,u=r.get(a)||new Map;r.set(a,u.set(n,e)),a=`${i}-${t}`;let l=r.get(a)||new Map;if(r.set(a,l.set(n,e)),o){a=`${i}-${t}-${o}`;let u=r.get(a)||new Map;r.set(a,u.set(n,e))}}function ro(t,e,n){for(let r of(t.clear(),e.clear(),n)){let{source:n,target:i,sourceHandle:o=null,targetHandle:a=null}=r,u={edgeId:r.id,source:n,target:i,sourceHandle:o,targetHandle:a},l=`${n}-${o}--${i}-${a}`;ri("source",u,`${i}-${a}--${n}-${o}`,t,n,o),ri("target",u,l,t,i,a),e.set(r.id,r)}}function ra(t,e,n){let r=t;do{if(r?.matches?.(e))return!0;if(r===n)break;r=r?.parentElement}while(r);return!1}function ru({nodeId:t,dragItems:e,nodeLookup:n,dragging:r=!0}){let i=[];for(let[t,o]of e){let e=n.get(t)?.internals.userNode;e&&i.push({...e,position:o.position,dragging:r})}if(!t)return[i[0],i];let o=n.get(t)?.internals.userNode;return[o?{...o,position:e.get(t)?.position||o.position,dragging:r}:i[0],i]}function rl({onNodeMouseDown:t,getStoreItems:e,onDragStart:n,onDrag:r,onDragStop:i}){let o={x:null,y:null},a=0,u=new Map,l=!1,s={x:0,y:0},c=null,h=!1,d=null,p=!1,y=!1,g=null;return{update:function({noDragClassName:m,handleSelector:v,domNode:x,isSelectable:w,nodeId:_,nodeClickDistance:b=0}){function M({x:t,y:n}){let{nodeLookup:i,nodeExtent:a,snapGrid:l,snapToGrid:s,nodeOrigin:c,onNodeDrag:h,onSelectionDrag:f,onError:d,updateNodePositions:p}=e();o={x:t,y:n};let m=!1,v=u.size>1,x=v&&a?nl(e6(u)):null,w=v&&s?function({dragItems:t,snapGrid:e,x:n,y:r}){let i=t.values().next().value;if(!i)return null;let o={x:n-i.distance.x,y:r-i.distance.y},a=nm(o,e);return{x:a.x-o.x,y:a.y-o.y}}({dragItems:u,snapGrid:l,x:t,y:n}):null;for(let[e,r]of u){if(!i.has(e))continue;let o={x:t-r.distance.x,y:n-r.distance.y};s&&(o=w?{x:Math.round(o.x+w.x),y:Math.round(o.y+w.y)}:nm(o,l));let u=null;if(v&&a&&!r.extent&&x){let{positionAbsolute:t}=r.internals,e=t.x-x.x+a[0][0],n=t.x+r.measured.width-x.x2+a[1][0];u=[[e,t.y-x.y+a[0][1]],[n,t.y+r.measured.height-x.y2+a[1][1]]]}let{position:h,positionAbsolute:f}=nt({nodeId:e,nextPosition:o,nodeLookup:i,nodeExtent:u||a,nodeOrigin:c,onError:d});m=m||r.position.x!==h.x||r.position.y!==h.y,r.position=h,r.internals.positionAbsolute=f}if(y=y||m,m&&(p(u,!0),g&&(r||h||!_&&f))){let[t,e]=ru({nodeId:_,dragItems:u,nodeLookup:i});r?.(g,u,t,e),h?.(g,t,e),_||f?.(g,e)}}async function E(){if(!c)return;let{transform:t,panBy:n,autoPanSpeed:r,autoPanOnNodeDrag:i}=e();if(!i){l=!1,cancelAnimationFrame(a);return}let[u,h]=na(s,c,r);(0!==u||0!==h)&&(o.x=(o.x??0)-u/t[2],o.y=(o.y??0)-h/t[2],await n({x:u,y:h})&&M(o)),a=requestAnimationFrame(E)}function k(r){let{nodeLookup:i,multiSelectionActive:a,nodesDraggable:l,transform:s,snapGrid:f,snapToGrid:d,selectNodesOnDrag:p,onNodeDragStart:y,onSelectionDragStart:g,unselectNodesAndEdges:m}=e();h=!0,p&&w||a||!_||i.get(_)?.selected||m(),w&&p&&_&&t?.(_);let v=nN(r.sourceEvent,{transform:s,snapGrid:f,snapToGrid:d,containerBounds:c});if(o=v,(u=function(t,e,n,r){let i=new Map;for(let[o,a]of t)if((a.selected||a.id===r)&&(!a.parentId||!function t(e,n){if(!e.parentId)return!1;let r=n.get(e.parentId);return!!r&&(!!r.selected||t(r,n))}(a,t))&&(a.draggable||e&&void 0===a.draggable)){let e=t.get(o);e&&i.set(o,{id:o,position:e.position||{x:0,y:0},distance:{x:n.x-e.internals.positionAbsolute.x,y:n.y-e.internals.positionAbsolute.y},extent:e.extent,parentId:e.parentId,origin:e.origin,expandParent:e.expandParent,internals:{positionAbsolute:e.internals.positionAbsolute||{x:0,y:0}},measured:{width:e.measured.width??0,height:e.measured.height??0}})}return i}(i,l,v,_)).size>0&&(n||y||!_&&g)){let[t,e]=ru({nodeId:_,dragItems:u,nodeLookup:i});n?.(r.sourceEvent,u,t,e),y?.(r.sourceEvent,t,e),_||g?.(r.sourceEvent,e)}}d=tn(x);let $=(function(){var t,e,n,r,i=tf,o=td,a=tp,u=ty,l={},s=f("start","drag","end"),c=0,h=0;function d(t){t.on("mousedown.drag",p).filter(u).on("touchstart.drag",m).on("touchmove.drag",v,ti).on("touchend.drag touchcancel.drag",x).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(a,u){if(!r&&i.call(this,a,u)){var l=w(this,o.call(this,a,u),a,u,"mouse");l&&(tn(a.view).on("mousemove.drag",y,to).on("mouseup.drag",g,to),tl(a.view),ta(a),n=!1,t=a.clientX,e=a.clientY,l("start",a))}}function y(r){if(tu(r),!n){var i=r.clientX-t,o=r.clientY-e;n=i*i+o*o>h}l.mouse("drag",r)}function g(t){tn(t.view).on("mousemove.drag mouseup.drag",null),ts(t.view,n),tu(t),l.mouse("end",t)}function m(t,e){if(i.call(this,t,e)){var n,r,a=t.changedTouches,u=o.call(this,t,e),l=a.length;for(n=0;n<l;++n)(r=w(this,u,t,e,a[n].identifier,a[n]))&&(ta(t),r("start",t,a[n]))}}function v(t){var e,n,r=t.changedTouches,i=r.length;for(e=0;e<i;++e)(n=l[r[e].identifier])&&(tu(t),n("drag",t,r[e]))}function x(t){var e,n,i=t.changedTouches,o=i.length;for(r&&clearTimeout(r),r=setTimeout(function(){r=null},500),e=0;e<o;++e)(n=l[i[e].identifier])&&(ta(t),n("end",t,i[e]))}function w(t,e,n,r,i,o){var u,h,f,p=s.copy(),y=tr(o||n,e);if(null!=(f=a.call(t,new th("beforestart",{sourceEvent:n,target:d,identifier:i,active:c,x:y[0],y:y[1],dx:0,dy:0,dispatch:p}),r)))return u=f.x-y[0]||0,h=f.y-y[1]||0,function n(o,a,s){var g,m=y;switch(o){case"start":l[i]=n,g=c++;break;case"end":delete l[i],--c;case"drag":y=tr(s||a,e),g=c}p.call(o,t,new th(o,{sourceEvent:a,subject:f,target:d,identifier:i,active:g,x:y[0]+u,y:y[1]+h,dx:y[0]-m[0],dy:y[1]-m[1],dispatch:p}),r)}}return d.filter=function(t){return arguments.length?(i="function"==typeof t?t:tc(!!t),d):i},d.container=function(t){return arguments.length?(o="function"==typeof t?t:tc(t),d):o},d.subject=function(t){return arguments.length?(a="function"==typeof t?t:tc(t),d):a},d.touchable=function(t){return arguments.length?(u="function"==typeof t?t:tc(!!t),d):u},d.on=function(){var t=s.on.apply(s,arguments);return t===s?d:t},d.clickDistance=function(t){return arguments.length?(h=(t*=1)*t,d):Math.sqrt(h)},d})().clickDistance(b).on("start",t=>{let{domNode:n,nodeDragThreshold:r,transform:i,snapGrid:a,snapToGrid:u}=e();c=n?.getBoundingClientRect()||null,p=!1,y=!1,g=t.sourceEvent,0===r&&k(t),o=nN(t.sourceEvent,{transform:i,snapGrid:a,snapToGrid:u,containerBounds:c}),s=nC(t.sourceEvent,c)}).on("drag",t=>{let{autoPanOnNodeDrag:n,transform:r,snapGrid:i,snapToGrid:a,nodeDragThreshold:f,nodeLookup:d}=e(),y=nN(t.sourceEvent,{transform:r,snapGrid:i,snapToGrid:a,containerBounds:c});if(g=t.sourceEvent,("touchmove"===t.sourceEvent.type&&t.sourceEvent.touches.length>1||_&&!d.has(_))&&(p=!0),!p){if(!l&&n&&h&&(l=!0,E()),!h){let e=y.xSnapped-(o.x??0),n=y.ySnapped-(o.y??0);Math.sqrt(e*e+n*n)>f&&k(t)}(o.x!==y.xSnapped||o.y!==y.ySnapped)&&u&&h&&(s=nC(t.sourceEvent,c),M(y))}}).on("end",t=>{if(h&&!p&&(l=!1,h=!1,cancelAnimationFrame(a),u.size>0)){let{nodeLookup:n,updateNodePositions:r,onNodeDragStop:o,onSelectionDragStop:a}=e();if(y&&(r(u,!1),y=!1),i||o||!_&&a){let[e,r]=ru({nodeId:_,dragItems:u,nodeLookup:n,dragging:!1});i?.(t.sourceEvent,u,e,r),o?.(t.sourceEvent,e,r),_||a?.(t.sourceEvent,r)}}}).filter(t=>{let e=t.target;return!t.button&&(!m||!ra(e,`.${m}`,x))&&(!v||ra(e,v,x))});d.call($)},destroy:function(){d?.on(".drag",null)}}}function rs(t,e,n,r,i,o=!1){let a=r.get(t);if(!a)return null;let u="strict"===i?a.internals.handleBounds?.[e]:[...a.internals.handleBounds?.source??[],...a.internals.handleBounds?.target??[]],l=(n?u?.find(t=>t.id===n):u?.[0])??null;return l&&o?{...l,...n0(a,l,l.position,!0)}:l}function rc(t,e){return t?t:e?.classList.contains("target")?"target":e?.classList.contains("source")?"source":null}let rh=()=>!0;function rf(t,{handle:e,connectionMode:n,fromNodeId:r,fromHandleId:o,fromType:a,doc:u,lib:l,flowId:s,isValidConnection:c=rh,nodeLookup:h}){let f="target"===a,d=e?u.querySelector(`.${l}-flow__handle[data-id="${s}-${e?.nodeId}-${e?.id}-${e?.type}"]`):null,{x:p,y}=nC(t),g=u.elementFromPoint(p,y),m=g?.classList.contains(`${l}-flow__handle`)?g:d,v={handleDomNode:m,isValid:!1,connection:null,toHandle:null};if(m){let t=rc(void 0,m),e=m.getAttribute("data-nodeid"),a=m.getAttribute("data-handleid"),u=m.classList.contains("connectable"),l=m.classList.contains("connectableend");if(!e||!t)return v;let s={source:f?e:r,sourceHandle:f?a:o,target:f?r:e,targetHandle:f?o:a};v.connection=s,v.isValid=u&&l&&(n===i.Strict?f&&"source"===t||!f&&"target"===t:e!==r||a!==o)&&c(s),v.toHandle=rs(e,t,a,h,n,!0)}return v}let rd={onPointerDown:function(t,{connectionMode:e,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:o,isTarget:a,domNode:u,nodeLookup:l,lib:c,autoPanOnConnect:h,flowId:f,panBy:d,cancelConnection:p,onConnectStart:y,onConnect:g,onConnectEnd:m,isValidConnection:v=rh,onReconnectEnd:x,updateConnection:w,getTransform:_,getFromHandle:b,autoPanSpeed:M,dragThreshold:E=1,handleDomNode:k}){let $,A=nP(t.target),z=0,{x:S,y:N}=nC(t),T=rc(o,k),P=u?.getBoundingClientRect(),H=!1;if(!P||!T)return;let I=rs(i,T,r,l,e);if(!I)return;let B=nC(t,P),C=!1,L=null,O=!1,j=null,V={...I,nodeId:i,type:T,position:I.position},D=l.get(i),R={inProgress:!0,isValid:null,from:n0(D,V,s.Left,!0),fromHandle:V,fromPosition:V.position,fromNode:D,to:B,toHandle:null,toPosition:e0[V.position],toNode:null};function X(){H=!0,w(R),y?.(t,{nodeId:i,handleId:r,handleType:T})}function q(t){var o,u;let s;if(!H){let{x:e,y:n}=nC(t),r=e-S,i=n-N;if(!(r*r+i*i>E*E))return;X()}if(!b()||!V)return void Y(t);let p=_();$=function(t,e,n,r){let i=[],o=1/0;for(let a of function(t,e,n){let r=[],i={x:t.x-n,y:t.y-n,width:2*n,height:2*n};for(let t of e.values())nd(i,nc(t))>0&&r.push(t);return r}(t,n,e+250))for(let n of[...a.internals.handleBounds?.source??[],...a.internals.handleBounds?.target??[]]){if(r.nodeId===n.nodeId&&r.type===n.type&&r.id===n.id)continue;let{x:u,y:l}=n0(a,n,n.position,!0),s=Math.sqrt(Math.pow(u-t.x,2)+Math.pow(l-t.y,2));s>e||(s<o?(i=[{...n,x:u,y:l}],o=s):s===o&&i.push({...n,x:u,y:l}))}if(!i.length)return null;if(i.length>1){let t="source"===r.type?"target":"source";return i.find(e=>e.type===t)??i[0]}return i[0]}(nv(B=nC(t,P),p,!1,[1,1]),n,l,V),C||(!function t(){if(!h||!P)return;let[e,n]=na(B,P,M);d({x:e,y:n}),z=requestAnimationFrame(t)}(),C=!0);let y=rf(t,{handle:$,connectionMode:e,fromNodeId:i,fromHandleId:r,fromType:a?"target":"source",isValidConnection:v,doc:A,lib:c,flowId:f,nodeLookup:l});j=y.handleDomNode,L=y.connection,o=!!$,u=y.isValid,s=null,u?s=!0:o&&!u&&(s=!1),O=s;let g={...R,isValid:O,to:y.toHandle&&O?nx({x:y.toHandle.x,y:y.toHandle.y},p):B,toHandle:y.toHandle,toPosition:O&&y.toHandle?y.toHandle.position:e0[V.position],toNode:y.toHandle?l.get(y.toHandle.nodeId):null};O&&$&&R.toHandle&&g.toHandle&&R.toHandle.type===g.toHandle.type&&R.toHandle.nodeId===g.toHandle.nodeId&&R.toHandle.id===g.toHandle.id&&R.to.x===g.to.x&&R.to.y===g.to.y||(w(g),R=g)}function Y(t){if(H){($||j)&&L&&O&&g?.(L);let{inProgress:e,...n}=R,r={...n,toPosition:R.toHandle?R.toPosition:null};m?.(t,r),o&&x?.(t,r)}p(),cancelAnimationFrame(z),C=!1,O=!1,L=null,j=null,A.removeEventListener("mousemove",q),A.removeEventListener("mouseup",Y),A.removeEventListener("touchmove",q),A.removeEventListener("touchend",Y)}0===E&&X(),A.addEventListener("mousemove",q),A.addEventListener("mouseup",Y),A.addEventListener("touchmove",q),A.addEventListener("touchend",Y)},isValid:rf};function rp({domNode:t,panZoom:e,getTransform:n,getViewScale:r}){let i=tn(t);return{update:function({translateExtent:t,width:o,height:a,zoomStep:u=1,pannable:l=!0,zoomable:s=!0,inversePan:c=!1}){let h=[0,0],f=eK().on("start",t=>{("mousedown"===t.sourceEvent.type||"touchstart"===t.sourceEvent.type)&&(h=[t.sourceEvent.clientX??t.sourceEvent.touches[0].clientX,t.sourceEvent.clientY??t.sourceEvent.touches[0].clientY])}).on("zoom",l?i=>{let u=n();if("mousemove"!==i.sourceEvent.type&&"touchmove"!==i.sourceEvent.type||!e)return;let l=[i.sourceEvent.clientX??i.sourceEvent.touches[0].clientX,i.sourceEvent.clientY??i.sourceEvent.touches[0].clientY],s=[l[0]-h[0],l[1]-h[1]];h=l;let f=r()*Math.max(u[2],Math.log(u[2]))*(c?-1:1),d={x:u[0]-s[0]*f,y:u[1]-s[1]*f};e.setViewportConstrained({x:d.x,y:d.y,zoom:u[2]},[[0,0],[o,a]],t)}:null).on("zoom.wheel",s?t=>{if("wheel"!==t.sourceEvent.type||!e)return;let r=n(),i=t.sourceEvent.ctrlKey&&nb()?10:1,o=-t.sourceEvent.deltaY*(1===t.sourceEvent.deltaMode?.05:t.sourceEvent.deltaMode?1:.002)*u,a=r[2]*Math.pow(2,o*i);e.scaleTo(a)}:null);i.call(f,{})},destroy:function(){i.on("zoom",null)},pointer:tr}}let ry=t=>({x:t.x,y:t.y,zoom:t.k}),rg=({x:t,y:e,zoom:n})=>eL.translate(t,e).scale(n),rm=(t,e)=>t.target.closest(`.${e}`),rv=(t,e)=>2===e&&Array.isArray(t)&&t.includes(2),rx=t=>((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2,rw=(t,e=0,n=rx,r=()=>{})=>{let i="number"==typeof e&&e>0;return i||r(),i?t.transition().duration(e).ease(n).on("end",r):t},r_=t=>{let e=t.ctrlKey&&nb()?10:1;return-t.deltaY*(1===t.deltaMode?.05:t.deltaMode?1:.002)*e};function rb({domNode:t,minZoom:e,maxZoom:n,paneClickDistance:r,translateExtent:i,viewport:a,onPanZoom:u,onPanZoomStart:l,onPanZoomEnd:s,onDraggingChange:c}){let h={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{x:0,y:0,zoom:0},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},f=t.getBoundingClientRect(),d=eK().clickDistance(!ny(r)||r<0?0:r).scaleExtent([e,n]).translateExtent(i),p=tn(t).call(d);x({x:a.x,y:a.y,zoom:nn(a.zoom,e,n)},[[0,0],[f.width,f.height]],i);let y=p.on("wheel.zoom"),g=p.on("dblclick.zoom");function m(t,e){return p?new Promise(n=>{d?.interpolate(e?.interpolate==="linear"?eW:tm).transform(rw(p,e?.duration,e?.ease,()=>n(!0)),t)}):Promise.resolve(!1)}function v(){d.on("zoom",null)}async function x(t,e,n){let r=rg(t),i=d?.constrain()(r,e,n);return i&&await m(i),new Promise(t=>t(i))}return d.wheelDelta(r_),{update:function({noWheelClassName:t,noPanClassName:e,onPaneContextMenu:n,userSelectionActive:r,panOnScroll:i,panOnDrag:a,panOnScrollMode:f,panOnScrollSpeed:m,preventScrolling:x,zoomOnPinch:w,zoomOnScroll:_,zoomOnDoubleClick:b,zoomActivationKeyPressed:M,lib:E,onTransformChange:k}){r&&!h.isZoomingOrPanning&&v();let $=!i||M||r?function({noWheelClassName:t,preventScrolling:e,d3ZoomHandler:n}){return function(r,i){let o="wheel"===r.type,a=!e&&o&&!r.ctrlKey,u=rm(r,t);if(r.ctrlKey&&o&&u&&r.preventDefault(),a||u)return null;r.preventDefault(),n.call(this,r,i)}}({noWheelClassName:t,preventScrolling:x,d3ZoomHandler:y}):function({zoomPanValues:t,noWheelClassName:e,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:u,onPanZoomStart:l,onPanZoom:s,onPanZoomEnd:c}){return h=>{if(rm(h,e))return!1;h.preventDefault(),h.stopImmediatePropagation();let f=n.property("__zoom").k||1;if(h.ctrlKey&&u){let t=tr(h),e=f*Math.pow(2,r_(h));r.scaleTo(n,e,t,h);return}let d=1===h.deltaMode?20:1,p=i===o.Vertical?0:h.deltaX*d,y=i===o.Horizontal?0:h.deltaY*d;!nb()&&h.shiftKey&&i!==o.Vertical&&(p=h.deltaY*d,y=0),r.translateBy(n,-(p/f)*a,-(y/f)*a,{internal:!0});let g=ry(n.property("__zoom"));clearTimeout(t.panScrollTimeout),t.isPanScrolling||(t.isPanScrolling=!0,l?.(h,g)),t.isPanScrolling&&(s?.(h,g),t.panScrollTimeout=setTimeout(()=>{c?.(h,g),t.isPanScrolling=!1},150))}}({zoomPanValues:h,noWheelClassName:t,d3Selection:p,d3Zoom:d,panOnScrollMode:f,panOnScrollSpeed:m,zoomOnPinch:w,onPanZoomStart:l,onPanZoom:u,onPanZoomEnd:s});if(p.on("wheel.zoom",$,{passive:!1}),!r){let t=function({zoomPanValues:t,onDraggingChange:e,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;let i=ry(r.transform);t.mouseButton=r.sourceEvent?.button||0,t.isZoomingOrPanning=!0,t.prevViewport=i,r.sourceEvent?.type==="mousedown"&&e(!0),n&&n?.(r.sourceEvent,i)}}({zoomPanValues:h,onDraggingChange:c,onPanZoomStart:l});d.on("start",t);let e=function({zoomPanValues:t,panOnDrag:e,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return o=>{t.usedRightMouseButton=!!(n&&rv(e,t.mouseButton??0)),o.sourceEvent?.sync||r([o.transform.x,o.transform.y,o.transform.k]),i&&!o.sourceEvent?.internal&&i?.(o.sourceEvent,ry(o.transform))}}({zoomPanValues:h,panOnDrag:a,onPaneContextMenu:!!n,onPanZoom:u,onTransformChange:k});d.on("zoom",e);let r=function({zoomPanValues:t,panOnDrag:e,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:o}){return a=>{if(!a.sourceEvent?.internal){let u,l;if(t.isZoomingOrPanning=!1,o&&rv(e,t.mouseButton??0)&&!t.usedRightMouseButton&&a.sourceEvent&&o(a.sourceEvent),t.usedRightMouseButton=!1,r(!1),i&&(u=t.prevViewport,l=a.transform,u.x!==l.x||u.y!==l.y||u.zoom!==l.k)){let e=ry(a.transform);t.prevViewport=e,clearTimeout(t.timerId),t.timerId=setTimeout(()=>{i?.(a.sourceEvent,e)},150*!!n)}}}}({zoomPanValues:h,panOnDrag:a,panOnScroll:i,onPaneContextMenu:n,onPanZoomEnd:s,onDraggingChange:c});d.on("end",r)}let A=function({zoomActivationKeyPressed:t,zoomOnScroll:e,zoomOnPinch:n,panOnDrag:r,panOnScroll:i,zoomOnDoubleClick:o,userSelectionActive:a,noWheelClassName:u,noPanClassName:l,lib:s}){return c=>{let h=t||e,f=n&&c.ctrlKey;if(1===c.button&&"mousedown"===c.type&&(rm(c,`${s}-flow__node`)||rm(c,`${s}-flow__edge`)))return!0;if(!r&&!h&&!i&&!o&&!n||a||rm(c,u)&&"wheel"===c.type||rm(c,l)&&("wheel"!==c.type||i&&"wheel"===c.type&&!t)||!n&&c.ctrlKey&&"wheel"===c.type)return!1;if(!n&&"touchstart"===c.type&&c.touches?.length>1)return c.preventDefault(),!1;if(!h&&!i&&!f&&"wheel"===c.type||!r&&("mousedown"===c.type||"touchstart"===c.type)||Array.isArray(r)&&!r.includes(c.button)&&"mousedown"===c.type)return!1;let d=Array.isArray(r)&&r.includes(c.button)||!c.button||c.button<=1;return(!c.ctrlKey||"wheel"===c.type)&&d}}({zoomActivationKeyPressed:M,panOnDrag:a,zoomOnScroll:_,panOnScroll:i,zoomOnDoubleClick:b,zoomOnPinch:w,userSelectionActive:r,noPanClassName:e,noWheelClassName:t,lib:E});d.filter(A),b?p.on("dblclick.zoom",g):p.on("dblclick.zoom",null)},destroy:v,setViewport:async function t(t,e){let n=rg(t);return await m(n,e),new Promise(t=>t(n))},setViewportConstrained:x,getViewport:function(){let t=p?eO(p.node()):{x:0,y:0,k:1};return{x:t.x,y:t.y,zoom:t.k}},scaleTo:function(t,e){return p?new Promise(n=>{d?.interpolate(e?.interpolate==="linear"?eW:tm).scaleTo(rw(p,e?.duration,e?.ease,()=>n(!0)),t)}):Promise.resolve(!1)},scaleBy:function(t,e){return p?new Promise(n=>{d?.interpolate(e?.interpolate==="linear"?eW:tm).scaleBy(rw(p,e?.duration,e?.ease,()=>n(!0)),t)}):Promise.resolve(!1)},setScaleExtent:function(t){d?.scaleExtent(t)},setTranslateExtent:function(t){d?.translateExtent(t)},syncViewport:function(t){if(p){let e=rg(t),n=p.property("__zoom");(n.k!==t.zoom||n.x!==t.x||n.y!==t.y)&&d?.transform(p,e,null,{sync:!0})}},setClickDistance:function(t){let e=!ny(t)||t<0?0:t;d?.clickDistance(e)}}}!function(t){t.Line="line",t.Handle="handle"}(c||(c={}))},83654:(t,e,n)=>{var r=n(12115),i=n(14806),o="function"==typeof Object.is?Object.is:function(t,e){return t===e&&(0!==t||1/t==1/e)||t!=t&&e!=e},a=i.useSyncExternalStore,u=r.useRef,l=r.useEffect,s=r.useMemo,c=r.useDebugValue;e.useSyncExternalStoreWithSelector=function(t,e,n,r,i){var h=u(null);if(null===h.current){var f={hasValue:!1,value:null};h.current=f}else f=h.current;var d=a(t,(h=s(function(){function t(t){if(!l){if(l=!0,a=t,t=r(t),void 0!==i&&f.hasValue){var e=f.value;if(i(e,t))return u=e}return u=t}if(e=u,o(a,t))return e;var n=r(t);return void 0!==i&&i(e,n)?(a=t,e):(a=t,u=n)}var a,u,l=!1,s=void 0===n?null:n;return[function(){return t(e())},null===s?void 0:function(){return t(s())}]},[e,n,r,i]))[0],h[1]);return l(function(){f.hasValue=!0,f.value=d},[d]),c(d),d}}}]);