@axiom-lattice/gateway 4.1.7 → 4.2.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 (1126) hide show
  1. package/dist/chunk-K32XEQLH.mjs +28 -0
  2. package/dist/chunk-K32XEQLH.mjs.map +1 -0
  3. package/dist/{chunk-K4XELOSO.mjs → chunk-QKPZWWHH.mjs} +3 -2
  4. package/dist/{chunk-K4XELOSO.mjs.map → chunk-QKPZWWHH.mjs.map} +1 -1
  5. package/dist/embed/agent-chat-loader.js +1 -0
  6. package/dist/embed/embed-page-1c-75E4QIWF.js +1 -0
  7. package/dist/embed/embed-page-AgentDetailSideApp-6CVXM3P3.js +1 -0
  8. package/dist/embed/embed-page-AgentDetailSideApp-DRGKJ6C5.css +1 -0
  9. package/dist/embed/embed-page-AgentGovernanceWorkbench-4B3NJPCY.js +5 -0
  10. package/dist/embed/embed-page-AgentGovernanceWorkbench-SDS3GBCC.css +1 -0
  11. package/dist/embed/embed-page-ReactChart-OG5Z43H7.js +1 -0
  12. package/dist/embed/embed-page-ReactChart-VBM467ER.css +1 -0
  13. package/dist/embed/embed-page-ReactInfographic-IABAC7DO.js +574 -0
  14. package/dist/embed/embed-page-SkillFlow-GS4OUCJJ.js +1 -0
  15. package/dist/embed/embed-page-SkillFlow-VDPP5DFL.css +1 -0
  16. package/dist/embed/embed-page-TasksSideApp-F4XUHPTG.css +1 -0
  17. package/dist/embed/embed-page-TasksSideApp-I6Z7BOT2.js +241 -0
  18. package/dist/embed/embed-page-TeamWorkspace-DXKGNQ3C.css +1 -0
  19. package/dist/embed/embed-page-TeamWorkspace-LSCUIJDA.js +748 -0
  20. package/dist/embed/embed-page-TopologyRuntimeView-2NQ3OOYI.css +1 -0
  21. package/dist/embed/embed-page-TopologyRuntimeView-RY7NOUB7.js +6 -0
  22. package/dist/embed/embed-page-WorkflowAutomationView-MAYS27YJ.css +1 -0
  23. package/dist/embed/embed-page-WorkflowAutomationView-RNKIKDUX.js +3 -0
  24. package/dist/embed/embed-page-abap-QKV7XZRP.js +1 -0
  25. package/dist/embed/embed-page-abnf-534KGIL5.js +1 -0
  26. package/dist/embed/embed-page-abnf-NNWX7KPS.js +1 -0
  27. package/dist/embed/embed-page-accesslog-K5DAETBI.js +1 -0
  28. package/dist/embed/embed-page-actionscript-MLTGVDIY.js +1 -0
  29. package/dist/embed/embed-page-actionscript-YXZSI3FP.js +1 -0
  30. package/dist/embed/embed-page-ada-SMIJQ6T7.js +1 -0
  31. package/dist/embed/embed-page-ada-Z5BYNU6B.js +1 -0
  32. package/dist/embed/embed-page-agda-WCRTGDJB.js +1 -0
  33. package/dist/embed/embed-page-al-2LSX2G2U.js +1 -0
  34. package/dist/embed/embed-page-all-RTJLYZHS.js +1 -0
  35. package/dist/embed/embed-page-angelscript-4S3XC2EJ.js +1 -0
  36. package/dist/embed/embed-page-antlr4-OLOPZLHD.js +1 -0
  37. package/dist/embed/embed-page-apache-RGO2UM6T.js +1 -0
  38. package/dist/embed/embed-page-apacheconf-EKQ6F4ZQ.js +1 -0
  39. package/dist/embed/embed-page-apex-ZJTOIW4M.js +1 -0
  40. package/dist/embed/embed-page-apl-W7YETB5L.js +1 -0
  41. package/dist/embed/embed-page-applescript-I4PV6U4X.js +1 -0
  42. package/dist/embed/embed-page-applescript-M2D2KKDY.js +1 -0
  43. package/dist/embed/embed-page-aql-V6TCDQAH.js +1 -0
  44. package/dist/embed/embed-page-arcade-TSPLEDM5.js +1 -0
  45. package/dist/embed/embed-page-architecture-U656AL7Q-55BYHO3H.js +1 -0
  46. package/dist/embed/embed-page-architectureDiagram-VXUJARFQ-GDHKRBZH.js +36 -0
  47. package/dist/embed/embed-page-arduino-7N264XVW.js +1 -0
  48. package/dist/embed/embed-page-arduino-XUEUIP7S.js +1 -0
  49. package/dist/embed/embed-page-arff-M7PKJV7Y.js +1 -0
  50. package/dist/embed/embed-page-armasm-OAQGLAMS.js +1 -0
  51. package/dist/embed/embed-page-armasm-PTMJUNBD.js +1 -0
  52. package/dist/embed/embed-page-arturo-VYVR5YRA.js +1 -0
  53. package/dist/embed/embed-page-asciidoc-6GDV5NP4.js +1 -0
  54. package/dist/embed/embed-page-asciidoc-PDLRDQNM.js +1 -0
  55. package/dist/embed/embed-page-asm6502-LVC7KLV5.js +1 -0
  56. package/dist/embed/embed-page-asmatmel-B4D7TBZY.js +1 -0
  57. package/dist/embed/embed-page-aspectj-QZFNA4MK.js +1 -0
  58. package/dist/embed/embed-page-aspnet-4JJQ3PPT.js +1 -0
  59. package/dist/embed/embed-page-autohotkey-4QUCSDML.js +1 -0
  60. package/dist/embed/embed-page-autohotkey-SVPZNOL7.js +1 -0
  61. package/dist/embed/embed-page-autoit-IXYC6T6A.js +1 -0
  62. package/dist/embed/embed-page-autoit-PFZZYGX5.js +1 -0
  63. package/dist/embed/embed-page-avisynth-MVQJIFSP.js +1 -0
  64. package/dist/embed/embed-page-avrasm-XYNKWFKC.js +1 -0
  65. package/dist/embed/embed-page-avro-idl-4AA2QRRU.js +1 -0
  66. package/dist/embed/embed-page-awk-JNS3RERS.js +1 -0
  67. package/dist/embed/embed-page-awk-RMGF56MA.js +1 -0
  68. package/dist/embed/embed-page-axapta-6U5QN2JT.js +1 -0
  69. package/dist/embed/embed-page-bash-UJJ4GKW6.js +1 -0
  70. package/dist/embed/embed-page-bash-VYDNQBY7.js +1 -0
  71. package/dist/embed/embed-page-basic-6KLN4O27.js +1 -0
  72. package/dist/embed/embed-page-basic-EJRJ7W4E.js +1 -0
  73. package/dist/embed/embed-page-batch-AJOBLMJ2.js +1 -0
  74. package/dist/embed/embed-page-bbcode-CIP6MR7G.js +1 -0
  75. package/dist/embed/embed-page-bbj-OPFURIS3.js +1 -0
  76. package/dist/embed/embed-page-bicep-7BI3OTK4.js +1 -0
  77. package/dist/embed/embed-page-birb-LWSJQUWN.js +1 -0
  78. package/dist/embed/embed-page-bison-HDVOA2OF.js +1 -0
  79. package/dist/embed/embed-page-blockDiagram-VD42YOAC-6GQBPG3N.js +122 -0
  80. package/dist/embed/embed-page-bnf-7O24GKM6.js +1 -0
  81. package/dist/embed/embed-page-bnf-TCLPD45L.js +1 -0
  82. package/dist/embed/embed-page-bqn-LADFOREK.js +1 -0
  83. package/dist/embed/embed-page-brainfuck-B2QDW5Y5.js +1 -0
  84. package/dist/embed/embed-page-brainfuck-HUZY5LJA.js +1 -0
  85. package/dist/embed/embed-page-brightscript-4E54PL3L.js +1 -0
  86. package/dist/embed/embed-page-bro-DEBMJONL.js +1 -0
  87. package/dist/embed/embed-page-bsl-5HTEKAYP.js +1 -0
  88. package/dist/embed/embed-page-c-LFRMHVS4.js +1 -0
  89. package/dist/embed/embed-page-c-X5PJHL4T.js +1 -0
  90. package/dist/embed/embed-page-c-like-UPVRYRH5.js +1 -0
  91. package/dist/embed/embed-page-c4Diagram-YG6GDRKO-UBUOGTT3.js +10 -0
  92. package/dist/embed/embed-page-cal-MS5NKCDW.js +1 -0
  93. package/dist/embed/embed-page-capnproto-VVJPMDQX.js +1 -0
  94. package/dist/embed/embed-page-ceylon-TOPAPEAZ.js +1 -0
  95. package/dist/embed/embed-page-cfscript-P3X63VSB.js +1 -0
  96. package/dist/embed/embed-page-chaiscript-QZLDHGV3.js +1 -0
  97. package/dist/embed/embed-page-chunk-2AUFZBHG.js +1 -0
  98. package/dist/embed/embed-page-chunk-2AX46B4A.js +1 -0
  99. package/dist/embed/embed-page-chunk-2BEHY2KL.js +1 -0
  100. package/dist/embed/embed-page-chunk-2CM5KQAO.js +1 -0
  101. package/dist/embed/embed-page-chunk-2DKYYWQC.js +1 -0
  102. package/dist/embed/embed-page-chunk-2GFIRW6Z.js +1 -0
  103. package/dist/embed/embed-page-chunk-2GGHQJ6Z.js +1 -0
  104. package/dist/embed/embed-page-chunk-2IURSVR2.js +7 -0
  105. package/dist/embed/embed-page-chunk-2NLG2PBF.js +1 -0
  106. package/dist/embed/embed-page-chunk-2REOJOLY.js +1 -0
  107. package/dist/embed/embed-page-chunk-2SKSDKSN.js +1 -0
  108. package/dist/embed/embed-page-chunk-2V6IHON2.js +1 -0
  109. package/dist/embed/embed-page-chunk-2VJ7T35I.js +1 -0
  110. package/dist/embed/embed-page-chunk-2WL6TSEG.js +1 -0
  111. package/dist/embed/embed-page-chunk-2XLPEIWW.js +1 -0
  112. package/dist/embed/embed-page-chunk-2YRVPZIU.js +1 -0
  113. package/dist/embed/embed-page-chunk-33GTW5LX.js +1 -0
  114. package/dist/embed/embed-page-chunk-33LYY5FY.js +1 -0
  115. package/dist/embed/embed-page-chunk-342GWWY6.js +1 -0
  116. package/dist/embed/embed-page-chunk-34RH2U7Z.js +1 -0
  117. package/dist/embed/embed-page-chunk-37BFU4NL.js +1 -0
  118. package/dist/embed/embed-page-chunk-3C32LJTO.js +1 -0
  119. package/dist/embed/embed-page-chunk-3D3RUB6Q.js +1 -0
  120. package/dist/embed/embed-page-chunk-3DDNDQND.js +1 -0
  121. package/dist/embed/embed-page-chunk-3FQ3EELN.js +1 -0
  122. package/dist/embed/embed-page-chunk-3GRDXHWH.js +1 -0
  123. package/dist/embed/embed-page-chunk-3GTSDITA.js +1 -0
  124. package/dist/embed/embed-page-chunk-3IP6ESHH.js +1 -0
  125. package/dist/embed/embed-page-chunk-3J7LPOGR.js +1 -0
  126. package/dist/embed/embed-page-chunk-3KBA5YLX.js +1 -0
  127. package/dist/embed/embed-page-chunk-3MESXVLG.js +1 -0
  128. package/dist/embed/embed-page-chunk-3QOIYWK3.js +1 -0
  129. package/dist/embed/embed-page-chunk-3WBHNFJP.js +1 -0
  130. package/dist/embed/embed-page-chunk-3YID7Y73.js +1 -0
  131. package/dist/embed/embed-page-chunk-43APLD2U.js +1 -0
  132. package/dist/embed/embed-page-chunk-447KJWVF.js +1 -0
  133. package/dist/embed/embed-page-chunk-47OYOFAD.js +1 -0
  134. package/dist/embed/embed-page-chunk-4APB7U5B.js +1 -0
  135. package/dist/embed/embed-page-chunk-4BIOW547.js +3 -0
  136. package/dist/embed/embed-page-chunk-4BKXE5ON.js +14 -0
  137. package/dist/embed/embed-page-chunk-4BRWUEYH.js +1 -0
  138. package/dist/embed/embed-page-chunk-4C2ZTZLC.js +1 -0
  139. package/dist/embed/embed-page-chunk-4DT3DP4G.js +3 -0
  140. package/dist/embed/embed-page-chunk-4FS42IYM.js +1 -0
  141. package/dist/embed/embed-page-chunk-4JZFQLML.js +1 -0
  142. package/dist/embed/embed-page-chunk-4LC4UT4R.js +1 -0
  143. package/dist/embed/embed-page-chunk-4MNX7JDW.js +2 -0
  144. package/dist/embed/embed-page-chunk-4NIWV5BC.js +1 -0
  145. package/dist/embed/embed-page-chunk-4O7YNJLI.js +1 -0
  146. package/dist/embed/embed-page-chunk-4OTU4CRR.js +1 -0
  147. package/dist/embed/embed-page-chunk-4PR66FMJ.js +1 -0
  148. package/dist/embed/embed-page-chunk-4R5F5OQK.js +1 -0
  149. package/dist/embed/embed-page-chunk-4SGVKO3D.js +1 -0
  150. package/dist/embed/embed-page-chunk-4TEJCUD5.js +1 -0
  151. package/dist/embed/embed-page-chunk-4WOTSHAW.js +1 -0
  152. package/dist/embed/embed-page-chunk-4X5XHAMX.js +5 -0
  153. package/dist/embed/embed-page-chunk-4XVBSVFM.js +1 -0
  154. package/dist/embed/embed-page-chunk-4ZIJQUGM.js +1 -0
  155. package/dist/embed/embed-page-chunk-53PYTL4U.js +1 -0
  156. package/dist/embed/embed-page-chunk-53QS4RRO.js +1 -0
  157. package/dist/embed/embed-page-chunk-54DGJLXZ.js +1 -0
  158. package/dist/embed/embed-page-chunk-57BJJSAV.js +1 -0
  159. package/dist/embed/embed-page-chunk-5DAOHO64.js +1 -0
  160. package/dist/embed/embed-page-chunk-5HA2MCVW.js +1 -0
  161. package/dist/embed/embed-page-chunk-5HNRARTT.js +1 -0
  162. package/dist/embed/embed-page-chunk-5IG7MZQF.js +1 -0
  163. package/dist/embed/embed-page-chunk-5JDQ456X.js +7 -0
  164. package/dist/embed/embed-page-chunk-5LKQWBUZ.js +339 -0
  165. package/dist/embed/embed-page-chunk-5LZHM64O.js +1 -0
  166. package/dist/embed/embed-page-chunk-5OTSEOBG.js +1 -0
  167. package/dist/embed/embed-page-chunk-5WMGNRUZ.js +79 -0
  168. package/dist/embed/embed-page-chunk-5YNTYDFR.js +1 -0
  169. package/dist/embed/embed-page-chunk-62XZFSLM.js +1 -0
  170. package/dist/embed/embed-page-chunk-6433URSF.js +1 -0
  171. package/dist/embed/embed-page-chunk-6633JIZI.js +1 -0
  172. package/dist/embed/embed-page-chunk-664ZGB66.js +1 -0
  173. package/dist/embed/embed-page-chunk-66JWK64A.js +1 -0
  174. package/dist/embed/embed-page-chunk-66PSFC5S.js +1 -0
  175. package/dist/embed/embed-page-chunk-67RFPBNS.js +1 -0
  176. package/dist/embed/embed-page-chunk-6A6HYD7S.js +1 -0
  177. package/dist/embed/embed-page-chunk-6AF3OC6E.js +1 -0
  178. package/dist/embed/embed-page-chunk-6BL2XYV2.js +1 -0
  179. package/dist/embed/embed-page-chunk-6BUDTOPG.js +54 -0
  180. package/dist/embed/embed-page-chunk-6D23MLVG.js +1 -0
  181. package/dist/embed/embed-page-chunk-6DD7CBYV.js +1 -0
  182. package/dist/embed/embed-page-chunk-6DYN2PCR.js +1 -0
  183. package/dist/embed/embed-page-chunk-6E33CLHM.js +1 -0
  184. package/dist/embed/embed-page-chunk-6FFWZNBJ.js +1 -0
  185. package/dist/embed/embed-page-chunk-6G24DMH3.js +1 -0
  186. package/dist/embed/embed-page-chunk-6JFHQ7NQ.js +1 -0
  187. package/dist/embed/embed-page-chunk-6NWENUQ7.js +1 -0
  188. package/dist/embed/embed-page-chunk-6OKUWTCF.js +1 -0
  189. package/dist/embed/embed-page-chunk-6QTEF2NW.js +1 -0
  190. package/dist/embed/embed-page-chunk-6SFPT5PF.js +1 -0
  191. package/dist/embed/embed-page-chunk-6VRE3UPC.js +1 -0
  192. package/dist/embed/embed-page-chunk-6XNKALVC.js +1 -0
  193. package/dist/embed/embed-page-chunk-6XZZ6A3N.js +1 -0
  194. package/dist/embed/embed-page-chunk-6Y3UYJ6Z.js +1 -0
  195. package/dist/embed/embed-page-chunk-6ZXRL3VU.js +1 -0
  196. package/dist/embed/embed-page-chunk-72JNWX43.js +1 -0
  197. package/dist/embed/embed-page-chunk-734LUAPQ.js +1 -0
  198. package/dist/embed/embed-page-chunk-74YMVV5T.js +1 -0
  199. package/dist/embed/embed-page-chunk-75BP54HX.js +1 -0
  200. package/dist/embed/embed-page-chunk-76S2KVCN.js +1 -0
  201. package/dist/embed/embed-page-chunk-77SKWVKH.js +1 -0
  202. package/dist/embed/embed-page-chunk-7AKQRM6L.js +1 -0
  203. package/dist/embed/embed-page-chunk-7ASML425.js +1 -0
  204. package/dist/embed/embed-page-chunk-7BEP247X.js +1 -0
  205. package/dist/embed/embed-page-chunk-7CFGO35V.js +153 -0
  206. package/dist/embed/embed-page-chunk-7CW4T6JX.js +1 -0
  207. package/dist/embed/embed-page-chunk-7GLQRV3J.js +1 -0
  208. package/dist/embed/embed-page-chunk-7I5CUKLE.js +1 -0
  209. package/dist/embed/embed-page-chunk-7IYYKQJE.js +1 -0
  210. package/dist/embed/embed-page-chunk-7JBDPIC6.js +1 -0
  211. package/dist/embed/embed-page-chunk-7KSOII2E.js +1 -0
  212. package/dist/embed/embed-page-chunk-7MYHMZR7.js +1 -0
  213. package/dist/embed/embed-page-chunk-7OYMAA4V.js +1 -0
  214. package/dist/embed/embed-page-chunk-7Q3EEWYO.js +1 -0
  215. package/dist/embed/embed-page-chunk-7RPAJAU7.js +1 -0
  216. package/dist/embed/embed-page-chunk-7TH7FFVA.js +1 -0
  217. package/dist/embed/embed-page-chunk-7TMVQS3E.js +1 -0
  218. package/dist/embed/embed-page-chunk-7TY2R7O2.js +1 -0
  219. package/dist/embed/embed-page-chunk-7XMMIQFH.js +1 -0
  220. package/dist/embed/embed-page-chunk-A2LQIHX4.js +261 -0
  221. package/dist/embed/embed-page-chunk-A2QFCP3F.js +1 -0
  222. package/dist/embed/embed-page-chunk-A2XJ36CA.js +1 -0
  223. package/dist/embed/embed-page-chunk-A3QFY3IA.js +1 -0
  224. package/dist/embed/embed-page-chunk-A5CPK26D.js +1 -0
  225. package/dist/embed/embed-page-chunk-AAU4RSSU.js +1 -0
  226. package/dist/embed/embed-page-chunk-AB3Q2HOO.js +1 -0
  227. package/dist/embed/embed-page-chunk-ABFWMLOR.js +1 -0
  228. package/dist/embed/embed-page-chunk-ABIN3BPL.js +1 -0
  229. package/dist/embed/embed-page-chunk-ACIRZYZQ.js +1 -0
  230. package/dist/embed/embed-page-chunk-AEGLPY52.js +1 -0
  231. package/dist/embed/embed-page-chunk-AJPIJ5Q6.js +1 -0
  232. package/dist/embed/embed-page-chunk-AKPA6XS3.js +2 -0
  233. package/dist/embed/embed-page-chunk-ANZXYPYQ.js +1 -0
  234. package/dist/embed/embed-page-chunk-AO6KUNOD.js +1 -0
  235. package/dist/embed/embed-page-chunk-APIN6IE2.js +1 -0
  236. package/dist/embed/embed-page-chunk-AQ7P7MPQ.js +1 -0
  237. package/dist/embed/embed-page-chunk-AQLFD3FB.js +1 -0
  238. package/dist/embed/embed-page-chunk-AQTLXHTW.js +1 -0
  239. package/dist/embed/embed-page-chunk-ARHDAWDT.js +1 -0
  240. package/dist/embed/embed-page-chunk-ARM7QQNJ.js +1 -0
  241. package/dist/embed/embed-page-chunk-ARRA262W.js +1 -0
  242. package/dist/embed/embed-page-chunk-AWTS5ZYY.js +1 -0
  243. package/dist/embed/embed-page-chunk-AYOVLRHX.js +2167 -0
  244. package/dist/embed/embed-page-chunk-B43OSKKN.js +1 -0
  245. package/dist/embed/embed-page-chunk-B537QK4H.js +1 -0
  246. package/dist/embed/embed-page-chunk-B6767LVL.js +1 -0
  247. package/dist/embed/embed-page-chunk-BBSIPZIJ.js +2 -0
  248. package/dist/embed/embed-page-chunk-BDE6VTZO.js +1 -0
  249. package/dist/embed/embed-page-chunk-BDR2AV4C.js +1 -0
  250. package/dist/embed/embed-page-chunk-BEZUVEQG.js +1 -0
  251. package/dist/embed/embed-page-chunk-BHFBNKCC.js +1 -0
  252. package/dist/embed/embed-page-chunk-BIXWOREM.js +1 -0
  253. package/dist/embed/embed-page-chunk-BO56ESC4.js +1 -0
  254. package/dist/embed/embed-page-chunk-BOBSU3BS.js +1 -0
  255. package/dist/embed/embed-page-chunk-BOEM7RR2.js +1 -0
  256. package/dist/embed/embed-page-chunk-BOGY5UJK.js +1 -0
  257. package/dist/embed/embed-page-chunk-BOQ4YJRC.js +1 -0
  258. package/dist/embed/embed-page-chunk-BR7RHIPR.js +1 -0
  259. package/dist/embed/embed-page-chunk-BRF3QA4U.js +1 -0
  260. package/dist/embed/embed-page-chunk-BSHGJSTY.js +1 -0
  261. package/dist/embed/embed-page-chunk-BTZ6QKA5.js +1 -0
  262. package/dist/embed/embed-page-chunk-BXUFKFRH.js +1 -0
  263. package/dist/embed/embed-page-chunk-BYGKM25Z.js +1 -0
  264. package/dist/embed/embed-page-chunk-BZI3YCE7.js +1 -0
  265. package/dist/embed/embed-page-chunk-CADGB443.js +1 -0
  266. package/dist/embed/embed-page-chunk-CCNLQNKX.js +1 -0
  267. package/dist/embed/embed-page-chunk-CDFDSWNI.js +1 -0
  268. package/dist/embed/embed-page-chunk-CGMYXHWK.js +1 -0
  269. package/dist/embed/embed-page-chunk-CIVBRTV6.js +1 -0
  270. package/dist/embed/embed-page-chunk-CN3CMET4.js +1 -0
  271. package/dist/embed/embed-page-chunk-CT5EIC3O.js +1 -0
  272. package/dist/embed/embed-page-chunk-CTA4NVOR.js +1 -0
  273. package/dist/embed/embed-page-chunk-CTC4RKCL.js +1 -0
  274. package/dist/embed/embed-page-chunk-CUEEKFI2.js +1 -0
  275. package/dist/embed/embed-page-chunk-CUHPLIQJ.js +1 -0
  276. package/dist/embed/embed-page-chunk-CV7IET55.js +1 -0
  277. package/dist/embed/embed-page-chunk-CYZTUSN2.js +1 -0
  278. package/dist/embed/embed-page-chunk-CZBGTBTK.js +1 -0
  279. package/dist/embed/embed-page-chunk-CZXPKAAI.js +1 -0
  280. package/dist/embed/embed-page-chunk-D2R2NSRR.js +1 -0
  281. package/dist/embed/embed-page-chunk-D5AJQJD5.js +2 -0
  282. package/dist/embed/embed-page-chunk-D63UWHSO.js +1 -0
  283. package/dist/embed/embed-page-chunk-D6DA3A6A.js +1 -0
  284. package/dist/embed/embed-page-chunk-D73UXOFT.js +1 -0
  285. package/dist/embed/embed-page-chunk-DCS7FNFS.js +1 -0
  286. package/dist/embed/embed-page-chunk-DDTPPBJY.js +1 -0
  287. package/dist/embed/embed-page-chunk-DE7BGENS.js +1 -0
  288. package/dist/embed/embed-page-chunk-DEHJLLKN.js +1 -0
  289. package/dist/embed/embed-page-chunk-DHGHAGLL.js +1 -0
  290. package/dist/embed/embed-page-chunk-DIE6AVGX.js +1 -0
  291. package/dist/embed/embed-page-chunk-DM5ESF6C.js +1 -0
  292. package/dist/embed/embed-page-chunk-DQ4UEELI.js +1 -0
  293. package/dist/embed/embed-page-chunk-DVHOG6AY.js +31 -0
  294. package/dist/embed/embed-page-chunk-DWJV4T7Q.js +1 -0
  295. package/dist/embed/embed-page-chunk-DXVMFTPC.js +1 -0
  296. package/dist/embed/embed-page-chunk-DYBQVRXS.js +1 -0
  297. package/dist/embed/embed-page-chunk-DYPHXOEP.js +1 -0
  298. package/dist/embed/embed-page-chunk-DZRJEWQO.js +1 -0
  299. package/dist/embed/embed-page-chunk-E4OFRMJJ.js +1 -0
  300. package/dist/embed/embed-page-chunk-E7ECPW5G.js +1 -0
  301. package/dist/embed/embed-page-chunk-E7MYEYS3.js +1 -0
  302. package/dist/embed/embed-page-chunk-EAFE4NIS.js +1 -0
  303. package/dist/embed/embed-page-chunk-EAUQPBSN.js +1 -0
  304. package/dist/embed/embed-page-chunk-EBXTVXZF.js +1 -0
  305. package/dist/embed/embed-page-chunk-EG5CLCWE.js +1 -0
  306. package/dist/embed/embed-page-chunk-EGTJFOFF.js +1 -0
  307. package/dist/embed/embed-page-chunk-EKYNYNIX.js +1 -0
  308. package/dist/embed/embed-page-chunk-EPEKIAZP.js +37 -0
  309. package/dist/embed/embed-page-chunk-ER4O2WLO.js +1 -0
  310. package/dist/embed/embed-page-chunk-ESAZNCCX.js +1 -0
  311. package/dist/embed/embed-page-chunk-ESCA5JCS.js +1 -0
  312. package/dist/embed/embed-page-chunk-ESJEHJ5L.js +140 -0
  313. package/dist/embed/embed-page-chunk-ESLOGPBN.js +60 -0
  314. package/dist/embed/embed-page-chunk-ETP6AXEM.js +1 -0
  315. package/dist/embed/embed-page-chunk-ETY7U4DI.js +1 -0
  316. package/dist/embed/embed-page-chunk-EUOOO2LS.js +1 -0
  317. package/dist/embed/embed-page-chunk-EWKLGZMO.js +1 -0
  318. package/dist/embed/embed-page-chunk-EY64QEHF.js +1 -0
  319. package/dist/embed/embed-page-chunk-EY7WOIDX.js +1 -0
  320. package/dist/embed/embed-page-chunk-EYRF75EG.js +1 -0
  321. package/dist/embed/embed-page-chunk-EYZS7M3F.js +1 -0
  322. package/dist/embed/embed-page-chunk-F45LQ3RS.js +1 -0
  323. package/dist/embed/embed-page-chunk-F7IBVBXT.js +1 -0
  324. package/dist/embed/embed-page-chunk-FBXKGHOH.js +1 -0
  325. package/dist/embed/embed-page-chunk-FEEJAFK4.js +1 -0
  326. package/dist/embed/embed-page-chunk-FEOK4OPE.js +1 -0
  327. package/dist/embed/embed-page-chunk-FJ3EESJB.js +1 -0
  328. package/dist/embed/embed-page-chunk-FM5K6PQS.js +1 -0
  329. package/dist/embed/embed-page-chunk-FMMAQPSK.js +1 -0
  330. package/dist/embed/embed-page-chunk-FSDLV5QO.js +1 -0
  331. package/dist/embed/embed-page-chunk-FTXNVWT5.js +1 -0
  332. package/dist/embed/embed-page-chunk-FUIKRW55.js +1 -0
  333. package/dist/embed/embed-page-chunk-FVK265KY.js +1 -0
  334. package/dist/embed/embed-page-chunk-FWTICTEC.js +1 -0
  335. package/dist/embed/embed-page-chunk-FWXSX2W4.js +1 -0
  336. package/dist/embed/embed-page-chunk-FYBEULVS.js +1 -0
  337. package/dist/embed/embed-page-chunk-G5HXFDFC.js +1 -0
  338. package/dist/embed/embed-page-chunk-G5KW2SOV.js +1 -0
  339. package/dist/embed/embed-page-chunk-GAF3UVZE.js +1 -0
  340. package/dist/embed/embed-page-chunk-GFOWXZE5.js +1 -0
  341. package/dist/embed/embed-page-chunk-GH22I3LG.js +1 -0
  342. package/dist/embed/embed-page-chunk-GJCMO4YN.js +1 -0
  343. package/dist/embed/embed-page-chunk-GKA7H24K.js +1 -0
  344. package/dist/embed/embed-page-chunk-GL7A7IDD.js +1 -0
  345. package/dist/embed/embed-page-chunk-GNEIDEFX.js +1 -0
  346. package/dist/embed/embed-page-chunk-GPISFLXW.js +1 -0
  347. package/dist/embed/embed-page-chunk-GSWEZJ66.js +1 -0
  348. package/dist/embed/embed-page-chunk-GU7JLLYO.js +1 -0
  349. package/dist/embed/embed-page-chunk-GVZMVAXF.js +70 -0
  350. package/dist/embed/embed-page-chunk-GZBFDD4Y.js +1 -0
  351. package/dist/embed/embed-page-chunk-H3HFE6RK.js +1 -0
  352. package/dist/embed/embed-page-chunk-H3NYTZT4.js +3 -0
  353. package/dist/embed/embed-page-chunk-H7CZ6EXN.js +1 -0
  354. package/dist/embed/embed-page-chunk-H7HZ35QN.js +1 -0
  355. package/dist/embed/embed-page-chunk-H7XTOBKB.js +1 -0
  356. package/dist/embed/embed-page-chunk-HD5CA5Q2.js +1 -0
  357. package/dist/embed/embed-page-chunk-HDAHRUIT.js +1 -0
  358. package/dist/embed/embed-page-chunk-HGSQ4AUI.js +1 -0
  359. package/dist/embed/embed-page-chunk-HJJHFV6J.js +1 -0
  360. package/dist/embed/embed-page-chunk-HK4QMNL5.js +1 -0
  361. package/dist/embed/embed-page-chunk-HNWETJWB.js +1 -0
  362. package/dist/embed/embed-page-chunk-HQCMCYUS.js +1 -0
  363. package/dist/embed/embed-page-chunk-HQUXJKTG.js +1 -0
  364. package/dist/embed/embed-page-chunk-HTEALTO4.js +1 -0
  365. package/dist/embed/embed-page-chunk-HUKTQVZB.js +1 -0
  366. package/dist/embed/embed-page-chunk-HVN56UNP.js +1 -0
  367. package/dist/embed/embed-page-chunk-HVTV25TI.js +1 -0
  368. package/dist/embed/embed-page-chunk-HWNFA7PS.js +1 -0
  369. package/dist/embed/embed-page-chunk-I2JNPKJK.js +1 -0
  370. package/dist/embed/embed-page-chunk-I4BCBOUA.js +1 -0
  371. package/dist/embed/embed-page-chunk-I55FBKLU.js +3 -0
  372. package/dist/embed/embed-page-chunk-I5KTSZJX.js +1 -0
  373. package/dist/embed/embed-page-chunk-I7YQ2TGZ.js +1 -0
  374. package/dist/embed/embed-page-chunk-ICJOJGQ6.js +1 -0
  375. package/dist/embed/embed-page-chunk-IDJWNYLR.js +1 -0
  376. package/dist/embed/embed-page-chunk-IE6O7ZMQ.js +15 -0
  377. package/dist/embed/embed-page-chunk-IFCJLAOB.js +1 -0
  378. package/dist/embed/embed-page-chunk-IFEQPNI2.js +1 -0
  379. package/dist/embed/embed-page-chunk-IGBRMGDS.js +1 -0
  380. package/dist/embed/embed-page-chunk-IGIFLYCQ.js +1 -0
  381. package/dist/embed/embed-page-chunk-IGOT476M.js +1 -0
  382. package/dist/embed/embed-page-chunk-IHNNPY3P.js +1 -0
  383. package/dist/embed/embed-page-chunk-II6ODJLE.js +1 -0
  384. package/dist/embed/embed-page-chunk-IIIA5HUO.js +1 -0
  385. package/dist/embed/embed-page-chunk-IIYOOZDE.js +1 -0
  386. package/dist/embed/embed-page-chunk-IJPRKD63.js +1 -0
  387. package/dist/embed/embed-page-chunk-IK2TPQVX.js +1 -0
  388. package/dist/embed/embed-page-chunk-INGZ5SYE.js +1 -0
  389. package/dist/embed/embed-page-chunk-INUQ73SI.js +1 -0
  390. package/dist/embed/embed-page-chunk-IPI53MN3.js +1 -0
  391. package/dist/embed/embed-page-chunk-IPMWXKCK.js +1 -0
  392. package/dist/embed/embed-page-chunk-IRP2UOPH.js +1 -0
  393. package/dist/embed/embed-page-chunk-ISY7S7N6.js +1 -0
  394. package/dist/embed/embed-page-chunk-IT5VM3N7.js +1 -0
  395. package/dist/embed/embed-page-chunk-IX4WLWCY.js +28 -0
  396. package/dist/embed/embed-page-chunk-IYK5VAB3.js +1 -0
  397. package/dist/embed/embed-page-chunk-IZ6ZGFSG.js +1 -0
  398. package/dist/embed/embed-page-chunk-J4VBM2JB.js +1 -0
  399. package/dist/embed/embed-page-chunk-J7KNZGPV.js +1 -0
  400. package/dist/embed/embed-page-chunk-JADTV5YD.js +1 -0
  401. package/dist/embed/embed-page-chunk-JEW2Y2ED.js +1 -0
  402. package/dist/embed/embed-page-chunk-JFK56NZW.js +1 -0
  403. package/dist/embed/embed-page-chunk-JLWIJ4BP.js +1 -0
  404. package/dist/embed/embed-page-chunk-JNXBKMN6.js +1 -0
  405. package/dist/embed/embed-page-chunk-JOJ4VSO5.js +1 -0
  406. package/dist/embed/embed-page-chunk-JQQ6C3ST.js +1 -0
  407. package/dist/embed/embed-page-chunk-JUZFORQA.js +1 -0
  408. package/dist/embed/embed-page-chunk-JYEMOI5G.js +1 -0
  409. package/dist/embed/embed-page-chunk-JYQTTU7F.js +1 -0
  410. package/dist/embed/embed-page-chunk-K2NBNWDK.js +1 -0
  411. package/dist/embed/embed-page-chunk-K7I5Z2RN.js +1 -0
  412. package/dist/embed/embed-page-chunk-K7JAB46X.js +1 -0
  413. package/dist/embed/embed-page-chunk-KE32OJIP.js +1 -0
  414. package/dist/embed/embed-page-chunk-KEKB3BUG.js +1 -0
  415. package/dist/embed/embed-page-chunk-KG5A66WX.js +525 -0
  416. package/dist/embed/embed-page-chunk-KGP2RGEC.js +1 -0
  417. package/dist/embed/embed-page-chunk-KGX7G7XQ.js +1 -0
  418. package/dist/embed/embed-page-chunk-KM5NL7BL.js +1 -0
  419. package/dist/embed/embed-page-chunk-KQNRWZKR.js +1 -0
  420. package/dist/embed/embed-page-chunk-KUTM5AGJ.js +1 -0
  421. package/dist/embed/embed-page-chunk-KW44NUT4.js +1 -0
  422. package/dist/embed/embed-page-chunk-KWRAXHKX.js +1 -0
  423. package/dist/embed/embed-page-chunk-KZWWYO7Z.js +1 -0
  424. package/dist/embed/embed-page-chunk-L2QFIJ4P.js +1 -0
  425. package/dist/embed/embed-page-chunk-L3RQ76LD.js +1 -0
  426. package/dist/embed/embed-page-chunk-L6GX525D.js +1 -0
  427. package/dist/embed/embed-page-chunk-LDFGGZC6.js +1 -0
  428. package/dist/embed/embed-page-chunk-LEAHYMKH.js +1 -0
  429. package/dist/embed/embed-page-chunk-LH2NUQ2C.js +1 -0
  430. package/dist/embed/embed-page-chunk-LIJVWBYO.js +1 -0
  431. package/dist/embed/embed-page-chunk-LJBLK3MD.js +1 -0
  432. package/dist/embed/embed-page-chunk-LJJJJZT7.js +1 -0
  433. package/dist/embed/embed-page-chunk-LJZ2VDC6.js +1 -0
  434. package/dist/embed/embed-page-chunk-LKBECLX2.js +1 -0
  435. package/dist/embed/embed-page-chunk-LL4XKLOG.js +1 -0
  436. package/dist/embed/embed-page-chunk-LLFEIUVK.js +1 -0
  437. package/dist/embed/embed-page-chunk-LMLHHN2B.js +1 -0
  438. package/dist/embed/embed-page-chunk-LOLMAI3V.js +1 -0
  439. package/dist/embed/embed-page-chunk-LPXAKW7Q.js +1 -0
  440. package/dist/embed/embed-page-chunk-LRB5IXLV.js +1 -0
  441. package/dist/embed/embed-page-chunk-LW3LUJEG.js +1 -0
  442. package/dist/embed/embed-page-chunk-LWERP7BS.js +1 -0
  443. package/dist/embed/embed-page-chunk-M4ACA43K.js +1 -0
  444. package/dist/embed/embed-page-chunk-M5HO3OG6.js +1 -0
  445. package/dist/embed/embed-page-chunk-M7F46E23.js +1 -0
  446. package/dist/embed/embed-page-chunk-MASNBRHM.js +1 -0
  447. package/dist/embed/embed-page-chunk-MB65DZAX.js +14 -0
  448. package/dist/embed/embed-page-chunk-MB77ZI4D.js +1 -0
  449. package/dist/embed/embed-page-chunk-MEC3JUW7.js +1 -0
  450. package/dist/embed/embed-page-chunk-MG5LALIS.js +1 -0
  451. package/dist/embed/embed-page-chunk-MHSEFTKR.js +1 -0
  452. package/dist/embed/embed-page-chunk-MKV2QNSI.js +1 -0
  453. package/dist/embed/embed-page-chunk-MMHCEL7E.js +1 -0
  454. package/dist/embed/embed-page-chunk-MMXDBRLY.js +1 -0
  455. package/dist/embed/embed-page-chunk-MSYFW3OJ.js +1 -0
  456. package/dist/embed/embed-page-chunk-MVLHDASB.js +1 -0
  457. package/dist/embed/embed-page-chunk-N252QSMT.js +1 -0
  458. package/dist/embed/embed-page-chunk-N7NXBLSR.js +1 -0
  459. package/dist/embed/embed-page-chunk-NBNJGF7O.js +1 -0
  460. package/dist/embed/embed-page-chunk-NG7LKEPN.js +1 -0
  461. package/dist/embed/embed-page-chunk-NHOBB2JQ.js +1 -0
  462. package/dist/embed/embed-page-chunk-NIFSD4XH.js +1 -0
  463. package/dist/embed/embed-page-chunk-NJP7LGPJ.js +1 -0
  464. package/dist/embed/embed-page-chunk-NLMEH7HI.js +1 -0
  465. package/dist/embed/embed-page-chunk-NLZ6F3ON.js +1 -0
  466. package/dist/embed/embed-page-chunk-NMUKLFBY.js +1 -0
  467. package/dist/embed/embed-page-chunk-NMZP7U6I.js +1 -0
  468. package/dist/embed/embed-page-chunk-NN7VEJ2G.js +1 -0
  469. package/dist/embed/embed-page-chunk-NNNI4647.js +1 -0
  470. package/dist/embed/embed-page-chunk-NNZA747K.js +1 -0
  471. package/dist/embed/embed-page-chunk-NOMBKADH.js +1 -0
  472. package/dist/embed/embed-page-chunk-NQRVVPLU.js +1 -0
  473. package/dist/embed/embed-page-chunk-O2YMBFJK.js +1 -0
  474. package/dist/embed/embed-page-chunk-O6DJHMEC.js +1 -0
  475. package/dist/embed/embed-page-chunk-OAUK7LXS.js +1 -0
  476. package/dist/embed/embed-page-chunk-OCFVEAMV.js +1 -0
  477. package/dist/embed/embed-page-chunk-OEC4EWNI.js +1 -0
  478. package/dist/embed/embed-page-chunk-OF6SGGWX.js +1 -0
  479. package/dist/embed/embed-page-chunk-OJ7436DP.js +1 -0
  480. package/dist/embed/embed-page-chunk-OK6DC5YX.js +1 -0
  481. package/dist/embed/embed-page-chunk-ONZ74YHS.js +1 -0
  482. package/dist/embed/embed-page-chunk-OOZDPBUK.js +69 -0
  483. package/dist/embed/embed-page-chunk-OPME5GF2.js +1 -0
  484. package/dist/embed/embed-page-chunk-ORPDSJ5S.js +1 -0
  485. package/dist/embed/embed-page-chunk-ORPUVSKY.js +1 -0
  486. package/dist/embed/embed-page-chunk-OWGBADV6.js +3880 -0
  487. package/dist/embed/embed-page-chunk-OWTE7YMF.js +1 -0
  488. package/dist/embed/embed-page-chunk-OZKVHTL6.js +1 -0
  489. package/dist/embed/embed-page-chunk-OZUIA6GJ.js +1 -0
  490. package/dist/embed/embed-page-chunk-P4MXODKA.js +1 -0
  491. package/dist/embed/embed-page-chunk-P56KTNVT.js +1 -0
  492. package/dist/embed/embed-page-chunk-PADSMXWH.js +3 -0
  493. package/dist/embed/embed-page-chunk-PEFXE5Y4.js +1 -0
  494. package/dist/embed/embed-page-chunk-PHVA2KHO.js +1 -0
  495. package/dist/embed/embed-page-chunk-PJJPSDVD.js +1 -0
  496. package/dist/embed/embed-page-chunk-PKNTJERD.js +1 -0
  497. package/dist/embed/embed-page-chunk-PLAF2Q2L.js +1 -0
  498. package/dist/embed/embed-page-chunk-PLNJRORR.js +1 -0
  499. package/dist/embed/embed-page-chunk-PO2WVZC2.js +1 -0
  500. package/dist/embed/embed-page-chunk-PRYNHKKK.js +1 -0
  501. package/dist/embed/embed-page-chunk-PSTS2K7H.js +1 -0
  502. package/dist/embed/embed-page-chunk-PVL27S2O.js +1 -0
  503. package/dist/embed/embed-page-chunk-PVOA7ARZ.js +1 -0
  504. package/dist/embed/embed-page-chunk-PXADN2PY.js +1 -0
  505. package/dist/embed/embed-page-chunk-Q2HL7S3R.js +41 -0
  506. package/dist/embed/embed-page-chunk-Q2LWO44N.js +1 -0
  507. package/dist/embed/embed-page-chunk-Q2YEQQJF.js +1 -0
  508. package/dist/embed/embed-page-chunk-Q32Y7CP2.js +5 -0
  509. package/dist/embed/embed-page-chunk-Q3AOMIJ7.js +1 -0
  510. package/dist/embed/embed-page-chunk-Q4NFAO5G.js +1 -0
  511. package/dist/embed/embed-page-chunk-Q6ZPKMOZ.js +1 -0
  512. package/dist/embed/embed-page-chunk-QA2R2R55.js +165 -0
  513. package/dist/embed/embed-page-chunk-QANF3D34.js +1 -0
  514. package/dist/embed/embed-page-chunk-QBSFVKIB.js +1 -0
  515. package/dist/embed/embed-page-chunk-QCLLEPYT.js +1 -0
  516. package/dist/embed/embed-page-chunk-QDBK4ZDE.js +1 -0
  517. package/dist/embed/embed-page-chunk-QENDQ7H3.js +1 -0
  518. package/dist/embed/embed-page-chunk-QF7NBK3B.js +1 -0
  519. package/dist/embed/embed-page-chunk-QFTY233A.js +1 -0
  520. package/dist/embed/embed-page-chunk-QHV7PE5D.js +3 -0
  521. package/dist/embed/embed-page-chunk-QIJBDPZP.js +1 -0
  522. package/dist/embed/embed-page-chunk-QLA2XU73.js +1 -0
  523. package/dist/embed/embed-page-chunk-QNIB3Q7U.js +1 -0
  524. package/dist/embed/embed-page-chunk-QQLF4AV6.js +1 -0
  525. package/dist/embed/embed-page-chunk-QQUV5KZD.js +1 -0
  526. package/dist/embed/embed-page-chunk-QRKEL65F.js +1 -0
  527. package/dist/embed/embed-page-chunk-QRPDJVB7.js +1 -0
  528. package/dist/embed/embed-page-chunk-QVHTN5HT.js +1 -0
  529. package/dist/embed/embed-page-chunk-R2BGZIR7.js +1 -0
  530. package/dist/embed/embed-page-chunk-R2K4OIQO.js +1 -0
  531. package/dist/embed/embed-page-chunk-R4FTAO2H.js +1 -0
  532. package/dist/embed/embed-page-chunk-R54S6SKK.js +1 -0
  533. package/dist/embed/embed-page-chunk-R5I2GTYT.js +1 -0
  534. package/dist/embed/embed-page-chunk-R672RZXS.js +1 -0
  535. package/dist/embed/embed-page-chunk-RABAC5H3.js +1 -0
  536. package/dist/embed/embed-page-chunk-RG3BI65W.js +1 -0
  537. package/dist/embed/embed-page-chunk-RKPK7MLC.js +1 -0
  538. package/dist/embed/embed-page-chunk-RN7JLKLZ.js +1 -0
  539. package/dist/embed/embed-page-chunk-RNOETEGH.js +1 -0
  540. package/dist/embed/embed-page-chunk-RPK5SOLP.js +1 -0
  541. package/dist/embed/embed-page-chunk-RUOFG3OD.js +1 -0
  542. package/dist/embed/embed-page-chunk-RV2IAP52.js +1 -0
  543. package/dist/embed/embed-page-chunk-RXLB27EG.js +1 -0
  544. package/dist/embed/embed-page-chunk-S4XZPBRM.js +1 -0
  545. package/dist/embed/embed-page-chunk-SAML73QO.js +1 -0
  546. package/dist/embed/embed-page-chunk-SEH5ZYHX.js +1 -0
  547. package/dist/embed/embed-page-chunk-SL4X4KPS.js +1 -0
  548. package/dist/embed/embed-page-chunk-SMMEMIZS.js +1 -0
  549. package/dist/embed/embed-page-chunk-SMZUIXFD.js +1 -0
  550. package/dist/embed/embed-page-chunk-SQ4GANYE.js +1 -0
  551. package/dist/embed/embed-page-chunk-SRW4AAQ4.js +1 -0
  552. package/dist/embed/embed-page-chunk-SU5GXLKX.js +467 -0
  553. package/dist/embed/embed-page-chunk-SV2BM3WO.js +1 -0
  554. package/dist/embed/embed-page-chunk-SWGBMELE.js +1 -0
  555. package/dist/embed/embed-page-chunk-SYAPUMNM.js +1 -0
  556. package/dist/embed/embed-page-chunk-T4AZ556W.js +1 -0
  557. package/dist/embed/embed-page-chunk-T6QXBMXO.js +1 -0
  558. package/dist/embed/embed-page-chunk-TAOVZBLV.js +1 -0
  559. package/dist/embed/embed-page-chunk-TBRAGK3D.js +1 -0
  560. package/dist/embed/embed-page-chunk-TENLHB44.js +1 -0
  561. package/dist/embed/embed-page-chunk-TFSDCDJS.js +1 -0
  562. package/dist/embed/embed-page-chunk-TIGSOALR.js +1 -0
  563. package/dist/embed/embed-page-chunk-TKOSVUN2.js +1 -0
  564. package/dist/embed/embed-page-chunk-TLWGSINF.js +1 -0
  565. package/dist/embed/embed-page-chunk-TMUCZ7XO.js +1 -0
  566. package/dist/embed/embed-page-chunk-TP7772GL.js +1 -0
  567. package/dist/embed/embed-page-chunk-TPCI3CNJ.js +1 -0
  568. package/dist/embed/embed-page-chunk-TPGW6RUI.js +1 -0
  569. package/dist/embed/embed-page-chunk-TPQGFG2C.js +1 -0
  570. package/dist/embed/embed-page-chunk-TSZIWR3X.js +1 -0
  571. package/dist/embed/embed-page-chunk-TUFYJMMA.js +1 -0
  572. package/dist/embed/embed-page-chunk-TWDJUUXZ.js +1 -0
  573. package/dist/embed/embed-page-chunk-TWNAGURL.js +4 -0
  574. package/dist/embed/embed-page-chunk-TWU6UJLL.js +1 -0
  575. package/dist/embed/embed-page-chunk-TYA3PYZB.js +1 -0
  576. package/dist/embed/embed-page-chunk-U32PAI3Y.js +1 -0
  577. package/dist/embed/embed-page-chunk-U3B5KKSV.js +1 -0
  578. package/dist/embed/embed-page-chunk-U3YIXQYB.js +1 -0
  579. package/dist/embed/embed-page-chunk-U7OC25B3.js +1 -0
  580. package/dist/embed/embed-page-chunk-UBWHZLJN.js +1 -0
  581. package/dist/embed/embed-page-chunk-UCGT4CTV.js +1 -0
  582. package/dist/embed/embed-page-chunk-UCR4ZILJ.js +1 -0
  583. package/dist/embed/embed-page-chunk-UGBSF5HI.js +1 -0
  584. package/dist/embed/embed-page-chunk-UGCW7PZD.js +1 -0
  585. package/dist/embed/embed-page-chunk-UIZLGSJE.js +1 -0
  586. package/dist/embed/embed-page-chunk-UJODN4PG.js +1 -0
  587. package/dist/embed/embed-page-chunk-UPUUWWBK.js +1 -0
  588. package/dist/embed/embed-page-chunk-UR5VOXA3.js +1 -0
  589. package/dist/embed/embed-page-chunk-UZNSI2X3.js +1 -0
  590. package/dist/embed/embed-page-chunk-UZW2LQZV.js +1 -0
  591. package/dist/embed/embed-page-chunk-V2V73RFB.js +1 -0
  592. package/dist/embed/embed-page-chunk-V7R2Y72J.js +14 -0
  593. package/dist/embed/embed-page-chunk-VEYJHY36.js +1 -0
  594. package/dist/embed/embed-page-chunk-VNK6MED4.js +1 -0
  595. package/dist/embed/embed-page-chunk-VP2J7NES.js +1 -0
  596. package/dist/embed/embed-page-chunk-VRDH6A7Z.js +1 -0
  597. package/dist/embed/embed-page-chunk-VTUD3VPX.js +1 -0
  598. package/dist/embed/embed-page-chunk-VULBATQG.js +1 -0
  599. package/dist/embed/embed-page-chunk-VUOXEXHU.js +1 -0
  600. package/dist/embed/embed-page-chunk-VVTZ23LK.js +1 -0
  601. package/dist/embed/embed-page-chunk-VW3NF5NT.js +1 -0
  602. package/dist/embed/embed-page-chunk-VY6MAPHR.js +1 -0
  603. package/dist/embed/embed-page-chunk-WAANDEAQ.js +1 -0
  604. package/dist/embed/embed-page-chunk-WCKHIRD5.js +1 -0
  605. package/dist/embed/embed-page-chunk-WDS66MAN.js +1 -0
  606. package/dist/embed/embed-page-chunk-WLZW4FEZ.js +1 -0
  607. package/dist/embed/embed-page-chunk-WNEY2A2R.js +1 -0
  608. package/dist/embed/embed-page-chunk-WQOZWRIS.js +1 -0
  609. package/dist/embed/embed-page-chunk-WUYZIBLV.js +1 -0
  610. package/dist/embed/embed-page-chunk-WYJNNBFP.js +1 -0
  611. package/dist/embed/embed-page-chunk-X55NDWBH.js +1 -0
  612. package/dist/embed/embed-page-chunk-XA4KNRQW.js +1 -0
  613. package/dist/embed/embed-page-chunk-XAJFFWM3.js +1 -0
  614. package/dist/embed/embed-page-chunk-XIJHCNBW.js +1 -0
  615. package/dist/embed/embed-page-chunk-XNZ46IEF.js +1 -0
  616. package/dist/embed/embed-page-chunk-XO5WZF3D.js +1 -0
  617. package/dist/embed/embed-page-chunk-XPDEOKHX.js +1 -0
  618. package/dist/embed/embed-page-chunk-XQNO7AN3.js +1 -0
  619. package/dist/embed/embed-page-chunk-XR3Q4GDZ.js +1 -0
  620. package/dist/embed/embed-page-chunk-XRRCORI5.js +1 -0
  621. package/dist/embed/embed-page-chunk-XTMDFHMJ.js +1 -0
  622. package/dist/embed/embed-page-chunk-XUZKZF3V.js +1 -0
  623. package/dist/embed/embed-page-chunk-XWAJRAFC.js +1 -0
  624. package/dist/embed/embed-page-chunk-XWRBMESB.js +1 -0
  625. package/dist/embed/embed-page-chunk-XXT7RMBT.js +220 -0
  626. package/dist/embed/embed-page-chunk-XY5NGMFT.js +1 -0
  627. package/dist/embed/embed-page-chunk-XYCU2ZON.js +1 -0
  628. package/dist/embed/embed-page-chunk-XZ6CLWS2.js +1 -0
  629. package/dist/embed/embed-page-chunk-XZYJX7MY.js +1 -0
  630. package/dist/embed/embed-page-chunk-Y2JWLZJF.js +1 -0
  631. package/dist/embed/embed-page-chunk-Y4KTS6EE.js +1 -0
  632. package/dist/embed/embed-page-chunk-YBPVSBMU.js +1 -0
  633. package/dist/embed/embed-page-chunk-YEHTVTMO.js +1 -0
  634. package/dist/embed/embed-page-chunk-YFEUMUCL.js +1 -0
  635. package/dist/embed/embed-page-chunk-YFWCKZW7.js +1 -0
  636. package/dist/embed/embed-page-chunk-YHEFVON2.js +1 -0
  637. package/dist/embed/embed-page-chunk-YJBX3AFL.js +1 -0
  638. package/dist/embed/embed-page-chunk-YJZJFCLP.js +1 -0
  639. package/dist/embed/embed-page-chunk-YLUGLAWD.js +1 -0
  640. package/dist/embed/embed-page-chunk-YMMUR7L6.js +1 -0
  641. package/dist/embed/embed-page-chunk-YNIEMXW5.js +1 -0
  642. package/dist/embed/embed-page-chunk-YPK6G5D7.js +1 -0
  643. package/dist/embed/embed-page-chunk-Z26BSJ5Y.js +1 -0
  644. package/dist/embed/embed-page-chunk-Z2GE34ES.js +1 -0
  645. package/dist/embed/embed-page-chunk-Z6N3GKM5.js +1 -0
  646. package/dist/embed/embed-page-chunk-Z6PDLQOB.js +1 -0
  647. package/dist/embed/embed-page-chunk-ZESVZCWO.js +1 -0
  648. package/dist/embed/embed-page-chunk-ZITVGQ52.js +1 -0
  649. package/dist/embed/embed-page-chunk-ZNWEXQQ4.js +1 -0
  650. package/dist/embed/embed-page-chunk-ZQ6WYVOD.js +1 -0
  651. package/dist/embed/embed-page-chunk-ZR7ZLGLV.js +1 -0
  652. package/dist/embed/embed-page-chunk-ZT2EZUXI.js +1 -0
  653. package/dist/embed/embed-page-chunk-ZZCMWB6F.js +1 -0
  654. package/dist/embed/embed-page-cil-ZQIVHSN6.js +1 -0
  655. package/dist/embed/embed-page-cilkc-AJET62TW.js +1 -0
  656. package/dist/embed/embed-page-cilkcpp-FRBVBYEF.js +1 -0
  657. package/dist/embed/embed-page-classDiagram-2ON5EDUG-S5GEC2UC.js +1 -0
  658. package/dist/embed/embed-page-classDiagram-v2-WZHVMYZB-NL3HKXC3.js +1 -0
  659. package/dist/embed/embed-page-clean-OPHY52MY.js +1 -0
  660. package/dist/embed/embed-page-clike-5NRFTOCK.js +1 -0
  661. package/dist/embed/embed-page-clojure-4GC77VYK.js +1 -0
  662. package/dist/embed/embed-page-clojure-7B3FI7TH.js +1 -0
  663. package/dist/embed/embed-page-clojure-repl-56WG27Z3.js +1 -0
  664. package/dist/embed/embed-page-cmake-F3SKZMUJ.js +1 -0
  665. package/dist/embed/embed-page-cmake-UIBPQIVG.js +1 -0
  666. package/dist/embed/embed-page-cobol-7TW6OZHG.js +1 -0
  667. package/dist/embed/embed-page-code-highlighter-TBT4ICNZ.js +1 -0
  668. package/dist/embed/embed-page-coffeescript-BCKZ4N2E.js +1 -0
  669. package/dist/embed/embed-page-coffeescript-N2ENFNNR.js +1 -0
  670. package/dist/embed/embed-page-concurnas-MCN7VYPE.js +1 -0
  671. package/dist/embed/embed-page-cooklang-JSLOQBDM.js +1 -0
  672. package/dist/embed/embed-page-coq-WH3J7SKF.js +1 -0
  673. package/dist/embed/embed-page-coq-XRXAXI5X.js +1 -0
  674. package/dist/embed/embed-page-core-Q6IGWM4Q.js +1 -0
  675. package/dist/embed/embed-page-core-TQNBW2MM.js +1 -0
  676. package/dist/embed/embed-page-cos-MP7YM5FO.js +1 -0
  677. package/dist/embed/embed-page-cose-bilkent-S5V4N54A-KJMAAFJL.js +1 -0
  678. package/dist/embed/embed-page-cpp-FFAXKUCJ.js +1 -0
  679. package/dist/embed/embed-page-cpp-PRCT5QAC.js +1 -0
  680. package/dist/embed/embed-page-crmsh-PF5MF5PC.js +1 -0
  681. package/dist/embed/embed-page-crystal-GYFU35L2.js +1 -0
  682. package/dist/embed/embed-page-crystal-W2TOACW4.js +1 -0
  683. package/dist/embed/embed-page-csharp-DHR2XRZW.js +1 -0
  684. package/dist/embed/embed-page-csharp-UNF62ZBO.js +1 -0
  685. package/dist/embed/embed-page-cshtml-G7ML4LE3.js +1 -0
  686. package/dist/embed/embed-page-csp-UDQUZUZW.js +1 -0
  687. package/dist/embed/embed-page-csp-YPF3N7BE.js +1 -0
  688. package/dist/embed/embed-page-css-774MOM42.js +1 -0
  689. package/dist/embed/embed-page-css-EHGZALYG.js +1 -0
  690. package/dist/embed/embed-page-css-extras-SI7Q5IJ6.js +1 -0
  691. package/dist/embed/embed-page-csv-MT4GPPO7.js +1 -0
  692. package/dist/embed/embed-page-cue-BMTFVAKL.js +1 -0
  693. package/dist/embed/embed-page-cypher-QDHM3LFO.js +1 -0
  694. package/dist/embed/embed-page-d-KHBJT5ZU.js +1 -0
  695. package/dist/embed/embed-page-d-VF7XFFMN.js +1 -0
  696. package/dist/embed/embed-page-dagre-6UL2VRFP-QSIK5LGS.js +4 -0
  697. package/dist/embed/embed-page-dart-3L3U2DJ3.js +1 -0
  698. package/dist/embed/embed-page-dart-6AOCMAXR.js +1 -0
  699. package/dist/embed/embed-page-dataweave-LNNDNKWG.js +1 -0
  700. package/dist/embed/embed-page-dax-J2FYUNXR.js +1 -0
  701. package/dist/embed/embed-page-delphi-T3RKZ33G.js +1 -0
  702. package/dist/embed/embed-page-dhall-MGZ2X6D6.js +1 -0
  703. package/dist/embed/embed-page-diagram-PSM6KHXK-PLOM5KG7.js +24 -0
  704. package/dist/embed/embed-page-diagram-QEK2KX5R-RUNGK25X.js +43 -0
  705. package/dist/embed/embed-page-diagram-S2PKOQOG-LWDHM5TL.js +24 -0
  706. package/dist/embed/embed-page-diff-AZNWSOQ3.js +1 -0
  707. package/dist/embed/embed-page-diff-BYMKQAM5.js +1 -0
  708. package/dist/embed/embed-page-django-5BVMXLOO.js +1 -0
  709. package/dist/embed/embed-page-django-OLTKKRJC.js +1 -0
  710. package/dist/embed/embed-page-dns-LKEA7NVQ.js +1 -0
  711. package/dist/embed/embed-page-dns-zone-file-MLDJYBWW.js +1 -0
  712. package/dist/embed/embed-page-docker-7ZWVGIHF.js +1 -0
  713. package/dist/embed/embed-page-dockerfile-YJABIQ3Q.js +1 -0
  714. package/dist/embed/embed-page-dos-CZOUXBDN.js +1 -0
  715. package/dist/embed/embed-page-dot-USOBKZIN.js +1 -0
  716. package/dist/embed/embed-page-dsconfig-5E37MQM4.js +1 -0
  717. package/dist/embed/embed-page-dts-DPBFPVA5.js +1 -0
  718. package/dist/embed/embed-page-dust-OAZ4NEIP.js +1 -0
  719. package/dist/embed/embed-page-ebnf-XFC6NV6I.js +1 -0
  720. package/dist/embed/embed-page-ebnf-XSYP4JUB.js +1 -0
  721. package/dist/embed/embed-page-echarts-7KZDMH4F.js +1 -0
  722. package/dist/embed/embed-page-editorconfig-FQHUYGTR.js +1 -0
  723. package/dist/embed/embed-page-eiffel-Z22STSPG.js +1 -0
  724. package/dist/embed/embed-page-ejs-VHHMOK6Y.js +1 -0
  725. package/dist/embed/embed-page-elixir-BGO72I74.js +1 -0
  726. package/dist/embed/embed-page-elixir-H3KPRECP.js +1 -0
  727. package/dist/embed/embed-page-elm-HZWFYFUN.js +1 -0
  728. package/dist/embed/embed-page-elm-IZAWNYFC.js +1 -0
  729. package/dist/embed/embed-page-erDiagram-Q2GNP2WA-C6CZYEPF.js +60 -0
  730. package/dist/embed/embed-page-erb-AK646PXX.js +1 -0
  731. package/dist/embed/embed-page-erb-YBV2NO4W.js +1 -0
  732. package/dist/embed/embed-page-erlang-6LMYF4BN.js +1 -0
  733. package/dist/embed/embed-page-erlang-PXGHX7XB.js +1 -0
  734. package/dist/embed/embed-page-erlang-repl-UJPNMOCE.js +1 -0
  735. package/dist/embed/embed-page-etlua-XNKJ7UTQ.js +1 -0
  736. package/dist/embed/embed-page-excel-PCWQ5ZDK.js +1 -0
  737. package/dist/embed/embed-page-excel-formula-CEZ7KVDN.js +1 -0
  738. package/dist/embed/embed-page-factor-3PZO4CCJ.js +1 -0
  739. package/dist/embed/embed-page-false-OX3DNOF4.js +1 -0
  740. package/dist/embed/embed-page-firestore-security-rules-IQBOB7PZ.js +1 -0
  741. package/dist/embed/embed-page-fix-Q3F7Z2HQ.js +1 -0
  742. package/dist/embed/embed-page-flix-LVDGNPRS.js +1 -0
  743. package/dist/embed/embed-page-flow-4UPRJEF2.js +1 -0
  744. package/dist/embed/embed-page-flowDiagram-NV44I4VS-DLT3KEOP.js +162 -0
  745. package/dist/embed/embed-page-fortran-65P3TPQ7.js +1 -0
  746. package/dist/embed/embed-page-fortran-LWYFHCCB.js +1 -0
  747. package/dist/embed/embed-page-fsharp-BSA736XP.js +1 -0
  748. package/dist/embed/embed-page-fsharp-GDIVPYAB.js +1 -0
  749. package/dist/embed/embed-page-ftl-27Y3T2XT.js +1 -0
  750. package/dist/embed/embed-page-gams-7UM23CTD.js +1 -0
  751. package/dist/embed/embed-page-ganttDiagram-JELNMOA3-YXTLQI5X.js +267 -0
  752. package/dist/embed/embed-page-gap-JNDMTZYG.js +1 -0
  753. package/dist/embed/embed-page-gauss-4OCQQOQQ.js +1 -0
  754. package/dist/embed/embed-page-gcode-7ZDB2FDS.js +1 -0
  755. package/dist/embed/embed-page-gcode-U2UWK2IF.js +1 -0
  756. package/dist/embed/embed-page-gdscript-UOAGAMMO.js +1 -0
  757. package/dist/embed/embed-page-gedcom-WSTJUY6R.js +1 -0
  758. package/dist/embed/embed-page-gettext-BNGNGT6W.js +1 -0
  759. package/dist/embed/embed-page-gherkin-CPRNYA24.js +1 -0
  760. package/dist/embed/embed-page-gherkin-IVS5YUAH.js +1 -0
  761. package/dist/embed/embed-page-git-WWKMYMUR.js +1 -0
  762. package/dist/embed/embed-page-gitGraph-F6HP7TQM-AT36TKLZ.js +1 -0
  763. package/dist/embed/embed-page-gitGraphDiagram-NY62KEGX-U36ULO4Y.js +65 -0
  764. package/dist/embed/embed-page-glsl-2QJTMF6X.js +1 -0
  765. package/dist/embed/embed-page-glsl-6C6F26XK.js +1 -0
  766. package/dist/embed/embed-page-gml-67HHHYLB.js +1 -0
  767. package/dist/embed/embed-page-gml-ZFY32X23.js +1 -0
  768. package/dist/embed/embed-page-gn-KO2XPJDA.js +1 -0
  769. package/dist/embed/embed-page-go-HAQ77N2R.js +1 -0
  770. package/dist/embed/embed-page-go-SYFPAV4X.js +1 -0
  771. package/dist/embed/embed-page-go-module-XICPRQ5N.js +1 -0
  772. package/dist/embed/embed-page-golo-KQZ2PQG7.js +1 -0
  773. package/dist/embed/embed-page-gradle-7PN7DUJT.js +1 -0
  774. package/dist/embed/embed-page-gradle-GN34ZONG.js +1 -0
  775. package/dist/embed/embed-page-graphql-CVSK5MA2.js +1 -0
  776. package/dist/embed/embed-page-groovy-3R2X7GQD.js +1 -0
  777. package/dist/embed/embed-page-groovy-YCAJV7XB.js +1 -0
  778. package/dist/embed/embed-page-haml-6VEPXH2O.js +1 -0
  779. package/dist/embed/embed-page-haml-TYLXIXHD.js +1 -0
  780. package/dist/embed/embed-page-handlebars-7Y74ECRG.js +1 -0
  781. package/dist/embed/embed-page-handlebars-WVRARLIY.js +1 -0
  782. package/dist/embed/embed-page-haskell-7U743UEW.js +1 -0
  783. package/dist/embed/embed-page-haskell-BATAJHBH.js +1 -0
  784. package/dist/embed/embed-page-haxe-C234CZTQ.js +1 -0
  785. package/dist/embed/embed-page-haxe-PYBC3T4M.js +1 -0
  786. package/dist/embed/embed-page-hcl-BITT4ESF.js +1 -0
  787. package/dist/embed/embed-page-hlsl-KYOSJMB5.js +1 -0
  788. package/dist/embed/embed-page-hoon-NTFQ2YYJ.js +1 -0
  789. package/dist/embed/embed-page-hpkp-KN6XKLGI.js +1 -0
  790. package/dist/embed/embed-page-hsp-QFZDPSDA.js +1 -0
  791. package/dist/embed/embed-page-hsts-5COZ5S32.js +1 -0
  792. package/dist/embed/embed-page-html2canvas-HMTC4TFR.js +1 -0
  793. package/dist/embed/embed-page-htmlbars-L7NSSG62.js +1 -0
  794. package/dist/embed/embed-page-http-ALSJXSOJ.js +1 -0
  795. package/dist/embed/embed-page-http-E4UEITFW.js +1 -0
  796. package/dist/embed/embed-page-hy-5ROLZHNZ.js +1 -0
  797. package/dist/embed/embed-page-ichigojam-T6UG6OA7.js +1 -0
  798. package/dist/embed/embed-page-icon-74CJY73I.js +1 -0
  799. package/dist/embed/embed-page-icu-message-format-2RX6DV2B.js +1 -0
  800. package/dist/embed/embed-page-idris-OH6VYNRJ.js +1 -0
  801. package/dist/embed/embed-page-iecst-SJFFJ4PC.js +1 -0
  802. package/dist/embed/embed-page-ignore-QLXHF7QX.js +1 -0
  803. package/dist/embed/embed-page-index.es-N6YIYNKZ.js +23 -0
  804. package/dist/embed/embed-page-info-NVLQJR56-2XLQRFF4.js +1 -0
  805. package/dist/embed/embed-page-infoDiagram-WHAUD3N6-2U2VIHJP.js +2 -0
  806. package/dist/embed/embed-page-inform7-6Y7MAAME.js +1 -0
  807. package/dist/embed/embed-page-inform7-HZB3RNF4.js +1 -0
  808. package/dist/embed/embed-page-ini-7C2L4IDF.js +1 -0
  809. package/dist/embed/embed-page-ini-TMKFFGPD.js +1 -0
  810. package/dist/embed/embed-page-io-X5SCSO5G.js +1 -0
  811. package/dist/embed/embed-page-irpf90-A5FIGB26.js +1 -0
  812. package/dist/embed/embed-page-isbl-Q77V4FXF.js +1 -0
  813. package/dist/embed/embed-page-j-MA6BTTGA.js +1 -0
  814. package/dist/embed/embed-page-java-CYPVO64F.js +1 -0
  815. package/dist/embed/embed-page-java-O37XO6YL.js +1 -0
  816. package/dist/embed/embed-page-javadoc-LWLUAHHX.js +1 -0
  817. package/dist/embed/embed-page-javadoclike-BMEJGG2H.js +1 -0
  818. package/dist/embed/embed-page-javascript-GU26522Z.js +1 -0
  819. package/dist/embed/embed-page-javascript-M37PIZZC.js +1 -0
  820. package/dist/embed/embed-page-javastacktrace-ENINDMIF.js +1 -0
  821. package/dist/embed/embed-page-jboss-cli-Q2WN2KZS.js +1 -0
  822. package/dist/embed/embed-page-jexl-EU2C4LRG.js +1 -0
  823. package/dist/embed/embed-page-jolie-WJIQVPRR.js +1 -0
  824. package/dist/embed/embed-page-journeyDiagram-XKPGCS4Q-D4A2GN62.js +139 -0
  825. package/dist/embed/embed-page-jq-BRF5PIAN.js +1 -0
  826. package/dist/embed/embed-page-js-extras-WQMVOPIZ.js +1 -0
  827. package/dist/embed/embed-page-js-templates-YO6IJU6R.js +1 -0
  828. package/dist/embed/embed-page-jsdoc-ZKI7O6VF.js +1 -0
  829. package/dist/embed/embed-page-json-MRFYB7NT.js +1 -0
  830. package/dist/embed/embed-page-json-PSHSOWQY.js +1 -0
  831. package/dist/embed/embed-page-json5-VQKDKRNE.js +1 -0
  832. package/dist/embed/embed-page-jsonp-ANEJBBKD.js +1 -0
  833. package/dist/embed/embed-page-jsstacktrace-XYAXX4Z3.js +1 -0
  834. package/dist/embed/embed-page-jsx-FZEE3QI5.js +1 -0
  835. package/dist/embed/embed-page-julia-5W6JANPT.js +1 -0
  836. package/dist/embed/embed-page-julia-EY2DW2U2.js +1 -0
  837. package/dist/embed/embed-page-julia-repl-O5XO6CSL.js +1 -0
  838. package/dist/embed/embed-page-kanban-definition-3W4ZIXB7-5JTDNV4G.js +89 -0
  839. package/dist/embed/embed-page-katex-BO63LHUI.js +261 -0
  840. package/dist/embed/embed-page-keepalived-OPG3P3WJ.js +1 -0
  841. package/dist/embed/embed-page-keyman-CXJENJBT.js +1 -0
  842. package/dist/embed/embed-page-kotlin-62Q32YH3.js +1 -0
  843. package/dist/embed/embed-page-kotlin-V4IBLBDP.js +1 -0
  844. package/dist/embed/embed-page-kumir-TIJGTYC3.js +1 -0
  845. package/dist/embed/embed-page-kusto-BXI53DND.js +1 -0
  846. package/dist/embed/embed-page-lasso-2CPND7XH.js +1 -0
  847. package/dist/embed/embed-page-latex-F3X5K6QF.js +1 -0
  848. package/dist/embed/embed-page-latex-MVG52AHA.js +1 -0
  849. package/dist/embed/embed-page-latte-J3LVOB6S.js +1 -0
  850. package/dist/embed/embed-page-ldif-5OWTENAQ.js +1 -0
  851. package/dist/embed/embed-page-leaf-EYR425IG.js +1 -0
  852. package/dist/embed/embed-page-less-S6CBMQQZ.js +1 -0
  853. package/dist/embed/embed-page-less-WDPLNQ5B.js +1 -0
  854. package/dist/embed/embed-page-lilypond-IJV67NKP.js +1 -0
  855. package/dist/embed/embed-page-linker-script-MIX3HOEH.js +1 -0
  856. package/dist/embed/embed-page-liquid-CFWS6T2J.js +1 -0
  857. package/dist/embed/embed-page-lisp-C6XPBZ5U.js +1 -0
  858. package/dist/embed/embed-page-lisp-IM4ILKS7.js +1 -0
  859. package/dist/embed/embed-page-livecodeserver-6F3SUK5W.js +1 -0
  860. package/dist/embed/embed-page-livescript-GNIYPIHH.js +1 -0
  861. package/dist/embed/embed-page-livescript-HOLSYBIG.js +1 -0
  862. package/dist/embed/embed-page-llvm-IWL5DLNH.js +1 -0
  863. package/dist/embed/embed-page-llvm-K2USHCCC.js +1 -0
  864. package/dist/embed/embed-page-log-BLJX5RSC.js +1 -0
  865. package/dist/embed/embed-page-lolcode-6COIIRQ6.js +1 -0
  866. package/dist/embed/embed-page-lsl-KDZSWM6S.js +1 -0
  867. package/dist/embed/embed-page-lua-5KEV5KHK.js +1 -0
  868. package/dist/embed/embed-page-lua-F7VBLUI5.js +1 -0
  869. package/dist/embed/embed-page-magma-TTQUX26J.js +1 -0
  870. package/dist/embed/embed-page-makefile-4VQZE7FW.js +1 -0
  871. package/dist/embed/embed-page-makefile-LDN5QGHW.js +1 -0
  872. package/dist/embed/embed-page-markdown-GU3NFA6A.js +1 -0
  873. package/dist/embed/embed-page-markdown-ODPEZXUU.js +1 -0
  874. package/dist/embed/embed-page-markup-W6JMQ64H.js +1 -0
  875. package/dist/embed/embed-page-markup-templating-RYGNVTG7.js +1 -0
  876. package/dist/embed/embed-page-mata-D4O4BNGS.js +1 -0
  877. package/dist/embed/embed-page-mathematica-YSU2VUX4.js +1 -0
  878. package/dist/embed/embed-page-matlab-6TYO6LKK.js +1 -0
  879. package/dist/embed/embed-page-matlab-DCIHZIZM.js +1 -0
  880. package/dist/embed/embed-page-maxima-K2VWPGLA.js +1 -0
  881. package/dist/embed/embed-page-maxscript-3ARRWLS6.js +1 -0
  882. package/dist/embed/embed-page-mel-E3F6H7ZF.js +1 -0
  883. package/dist/embed/embed-page-mel-YGI273IY.js +1 -0
  884. package/dist/embed/embed-page-mercury-LXCDDOJN.js +1 -0
  885. package/dist/embed/embed-page-mermaid-4FMYB3TJ.js +1 -0
  886. package/dist/embed/embed-page-mermaid-TBO3M7GX.js +18 -0
  887. package/dist/embed/embed-page-metafont-33QDNLJC.js +1 -0
  888. package/dist/embed/embed-page-mindmap-definition-VGOIOE7T-LVIRJQDW.js +68 -0
  889. package/dist/embed/embed-page-mipsasm-HSMSNEPP.js +1 -0
  890. package/dist/embed/embed-page-mizar-OTR4FHWG.js +1 -0
  891. package/dist/embed/embed-page-mizar-ZDNSLX4H.js +1 -0
  892. package/dist/embed/embed-page-mojolicious-2VJDUL4M.js +1 -0
  893. package/dist/embed/embed-page-mongodb-E62Y62DN.js +1 -0
  894. package/dist/embed/embed-page-monkey-KOVSP7SE.js +1 -0
  895. package/dist/embed/embed-page-monkey-MWSXB6DH.js +1 -0
  896. package/dist/embed/embed-page-moonscript-7DWCIDI5.js +1 -0
  897. package/dist/embed/embed-page-moonscript-AIMMMW7W.js +1 -0
  898. package/dist/embed/embed-page-n1ql-TKR2PAQ4.js +1 -0
  899. package/dist/embed/embed-page-n1ql-VSPMFQEE.js +1 -0
  900. package/dist/embed/embed-page-n4js-VQSAFSQG.js +1 -0
  901. package/dist/embed/embed-page-nand2tetris-hdl-ZN4LQDMB.js +1 -0
  902. package/dist/embed/embed-page-naniscript-FX42SAZY.js +1 -0
  903. package/dist/embed/embed-page-nasm-FGR3ELJL.js +1 -0
  904. package/dist/embed/embed-page-neon-4JXYQJP3.js +1 -0
  905. package/dist/embed/embed-page-nevod-2EHVRC32.js +1 -0
  906. package/dist/embed/embed-page-nginx-3W4BPZZB.js +1 -0
  907. package/dist/embed/embed-page-nginx-672JEBEN.js +1 -0
  908. package/dist/embed/embed-page-nim-CNSA5KTJ.js +1 -0
  909. package/dist/embed/embed-page-nim-CS7GVCRH.js +1 -0
  910. package/dist/embed/embed-page-nix-H37VR2HL.js +1 -0
  911. package/dist/embed/embed-page-nix-ODG6AI37.js +1 -0
  912. package/dist/embed/embed-page-node-repl-F5RCYIN3.js +1 -0
  913. package/dist/embed/embed-page-nsis-LEW5NHHS.js +1 -0
  914. package/dist/embed/embed-page-nsis-P73IQUMW.js +1 -0
  915. package/dist/embed/embed-page-objectivec-GOD2BEHI.js +1 -0
  916. package/dist/embed/embed-page-objectivec-UO34JBT5.js +1 -0
  917. package/dist/embed/embed-page-ocaml-ODOKMPKS.js +1 -0
  918. package/dist/embed/embed-page-ocaml-PW67TSNU.js +1 -0
  919. package/dist/embed/embed-page-odin-42BCJRMU.js +1 -0
  920. package/dist/embed/embed-page-opencl-FWU2AVTW.js +1 -0
  921. package/dist/embed/embed-page-openqasm-D2QQCO47.js +1 -0
  922. package/dist/embed/embed-page-openscad-LZPRFY2W.js +1 -0
  923. package/dist/embed/embed-page-oxygene-HZG7OO7G.js +1 -0
  924. package/dist/embed/embed-page-oz-MQNQCKRU.js +1 -0
  925. package/dist/embed/embed-page-packet-BFZMPI3H-JUHAABU6.js +1 -0
  926. package/dist/embed/embed-page-parigp-MAX3X22G.js +1 -0
  927. package/dist/embed/embed-page-parser-2WFCRGYE.js +1 -0
  928. package/dist/embed/embed-page-parser3-C3KVU5ZC.js +1 -0
  929. package/dist/embed/embed-page-pascal-LVXMXCNE.js +1 -0
  930. package/dist/embed/embed-page-pascaligo-6RIW5OHU.js +1 -0
  931. package/dist/embed/embed-page-pcaxis-ZO5S5UAO.js +1 -0
  932. package/dist/embed/embed-page-peoplecode-EAE6M4AF.js +1 -0
  933. package/dist/embed/embed-page-perl-CAUIKKUT.js +1 -0
  934. package/dist/embed/embed-page-perl-NCR5YMVT.js +1 -0
  935. package/dist/embed/embed-page-pf-TXMTVH7H.js +1 -0
  936. package/dist/embed/embed-page-pgsql-M7L7YRCD.js +1 -0
  937. package/dist/embed/embed-page-php-IE2N3QI4.js +1 -0
  938. package/dist/embed/embed-page-php-QCBSAYIC.js +1 -0
  939. package/dist/embed/embed-page-php-extras-VRZO47SA.js +1 -0
  940. package/dist/embed/embed-page-php-template-U54UCRKN.js +1 -0
  941. package/dist/embed/embed-page-phpdoc-ZQWB2OXG.js +1 -0
  942. package/dist/embed/embed-page-pie-7BOR55EZ-GU56BHQJ.js +1 -0
  943. package/dist/embed/embed-page-pieDiagram-ADFJNKIX-JXFHXEAJ.js +30 -0
  944. package/dist/embed/embed-page-plaintext-OINTKMAM.js +1 -0
  945. package/dist/embed/embed-page-plant-uml-3RVWLPWM.js +1 -0
  946. package/dist/embed/embed-page-plsql-XQEBXO73.js +1 -0
  947. package/dist/embed/embed-page-pony-UEK5X7OI.js +1 -0
  948. package/dist/embed/embed-page-powerquery-DEKKCZY7.js +1 -0
  949. package/dist/embed/embed-page-powershell-EBW7RZTN.js +1 -0
  950. package/dist/embed/embed-page-powershell-UMB53SPC.js +1 -0
  951. package/dist/embed/embed-page-processing-56OIROQG.js +1 -0
  952. package/dist/embed/embed-page-processing-ZIDQ7SB3.js +1 -0
  953. package/dist/embed/embed-page-profile-6SSPU7PG.js +1 -0
  954. package/dist/embed/embed-page-prolog-7JA2UBRP.js +1 -0
  955. package/dist/embed/embed-page-prolog-L55HYSKT.js +1 -0
  956. package/dist/embed/embed-page-promql-L4YBO3EF.js +1 -0
  957. package/dist/embed/embed-page-properties-O3BOEJXJ.js +1 -0
  958. package/dist/embed/embed-page-properties-VGZTUJ5E.js +1 -0
  959. package/dist/embed/embed-page-protobuf-F7X2PLJJ.js +1 -0
  960. package/dist/embed/embed-page-protobuf-GS5HMEMS.js +1 -0
  961. package/dist/embed/embed-page-psl-HLKSMRWT.js +1 -0
  962. package/dist/embed/embed-page-pug-MI7HPGUX.js +1 -0
  963. package/dist/embed/embed-page-puppet-2HD3DPH2.js +1 -0
  964. package/dist/embed/embed-page-puppet-BRWZHTKL.js +1 -0
  965. package/dist/embed/embed-page-pure-FVSDVQ2B.js +1 -0
  966. package/dist/embed/embed-page-purebasic-PPHAGMQH.js +1 -0
  967. package/dist/embed/embed-page-purebasic-UVZDR2HE.js +1 -0
  968. package/dist/embed/embed-page-purescript-Q3TGKQZY.js +1 -0
  969. package/dist/embed/embed-page-purify-QTVE4GEG.js +8 -0
  970. package/dist/embed/embed-page-python-NO3SIOCK.js +1 -0
  971. package/dist/embed/embed-page-python-YAPGCWHR.js +1 -0
  972. package/dist/embed/embed-page-python-repl-EIGKWV4T.js +1 -0
  973. package/dist/embed/embed-page-q-5YCCZLRO.js +1 -0
  974. package/dist/embed/embed-page-q-FWJ5L5RH.js +1 -0
  975. package/dist/embed/embed-page-qml-PNZK27ST.js +1 -0
  976. package/dist/embed/embed-page-qml-YVZULPLY.js +1 -0
  977. package/dist/embed/embed-page-qore-QU7W2FQD.js +1 -0
  978. package/dist/embed/embed-page-qsharp-FNGNB3PK.js +1 -0
  979. package/dist/embed/embed-page-quadrantDiagram-AYHSOK5B-4BXTDPJ4.js +7 -0
  980. package/dist/embed/embed-page-r-52DQANKK.js +1 -0
  981. package/dist/embed/embed-page-r-B2QMYOFX.js +1 -0
  982. package/dist/embed/embed-page-racket-OA22GPFB.js +1 -0
  983. package/dist/embed/embed-page-radar-NHE76QYJ-A7QQXLRI.js +1 -0
  984. package/dist/embed/embed-page-reason-QQ4RYUQI.js +1 -0
  985. package/dist/embed/embed-page-reasonml-CQAWSREB.js +1 -0
  986. package/dist/embed/embed-page-regex-5JJLL4V6.js +1 -0
  987. package/dist/embed/embed-page-rego-OLGGN4OK.js +1 -0
  988. package/dist/embed/embed-page-renpy-72F6BTO6.js +1 -0
  989. package/dist/embed/embed-page-requirementDiagram-UZGBJVZJ-WA3XXOP7.js +64 -0
  990. package/dist/embed/embed-page-rescript-VYN4PAG7.js +1 -0
  991. package/dist/embed/embed-page-rest-YZNSQW6O.js +1 -0
  992. package/dist/embed/embed-page-rib-U4ELGIV2.js +1 -0
  993. package/dist/embed/embed-page-rip-ZA4CVYFN.js +1 -0
  994. package/dist/embed/embed-page-roboconf-5IGYRDNH.js +1 -0
  995. package/dist/embed/embed-page-roboconf-HKSGWVI6.js +1 -0
  996. package/dist/embed/embed-page-robotframework-ARNA4YNR.js +1 -0
  997. package/dist/embed/embed-page-routeros-DKQKHPKR.js +1 -0
  998. package/dist/embed/embed-page-rsl-WZYNFUWJ.js +1 -0
  999. package/dist/embed/embed-page-ruby-DLLZKK7A.js +1 -0
  1000. package/dist/embed/embed-page-ruby-TKJZO362.js +1 -0
  1001. package/dist/embed/embed-page-ruleslanguage-7CSB4CWD.js +1 -0
  1002. package/dist/embed/embed-page-rust-6JUJCSHC.js +1 -0
  1003. package/dist/embed/embed-page-rust-ZZUD5RKM.js +1 -0
  1004. package/dist/embed/embed-page-sankeyDiagram-TZEHDZUN-SAVUI2Q4.js +10 -0
  1005. package/dist/embed/embed-page-sas-6H3LYHVP.js +1 -0
  1006. package/dist/embed/embed-page-sas-EUBD2V4Z.js +1 -0
  1007. package/dist/embed/embed-page-sass-U6G7R7AZ.js +1 -0
  1008. package/dist/embed/embed-page-scala-HFYNBK2U.js +1 -0
  1009. package/dist/embed/embed-page-scala-OJM3677P.js +1 -0
  1010. package/dist/embed/embed-page-scheme-KBT7Z3ND.js +1 -0
  1011. package/dist/embed/embed-page-scheme-QQ2VPTFQ.js +1 -0
  1012. package/dist/embed/embed-page-scilab-LA3HLVKQ.js +1 -0
  1013. package/dist/embed/embed-page-scss-FDEUPWYR.js +1 -0
  1014. package/dist/embed/embed-page-scss-IH2AODYU.js +1 -0
  1015. package/dist/embed/embed-page-sequenceDiagram-WL72ISMW-C2QRTOTL.js +145 -0
  1016. package/dist/embed/embed-page-shell-O7OU7Y7F.js +1 -0
  1017. package/dist/embed/embed-page-shell-session-CPCKA76Q.js +1 -0
  1018. package/dist/embed/embed-page-smali-3HHDEBNE.js +1 -0
  1019. package/dist/embed/embed-page-smali-L7H7BQUY.js +1 -0
  1020. package/dist/embed/embed-page-smalltalk-KQLA6XRI.js +1 -0
  1021. package/dist/embed/embed-page-smalltalk-WMM37MR4.js +1 -0
  1022. package/dist/embed/embed-page-smarty-AF5LZRHA.js +1 -0
  1023. package/dist/embed/embed-page-sml-4ARWLXZU.js +1 -0
  1024. package/dist/embed/embed-page-sml-6BNN3PMR.js +1 -0
  1025. package/dist/embed/embed-page-solidity-5WL56MR7.js +1 -0
  1026. package/dist/embed/embed-page-solution-file-FJJU2R2L.js +1 -0
  1027. package/dist/embed/embed-page-soy-54PPSPCO.js +1 -0
  1028. package/dist/embed/embed-page-sparql-AC7LG2EE.js +1 -0
  1029. package/dist/embed/embed-page-splunk-spl-YBP24JOS.js +1 -0
  1030. package/dist/embed/embed-page-sqf-4E5P576B.js +1 -0
  1031. package/dist/embed/embed-page-sqf-CSHANDQB.js +1 -0
  1032. package/dist/embed/embed-page-sql-MGWNK6FE.js +1 -0
  1033. package/dist/embed/embed-page-sql-ZOJORZUC.js +1 -0
  1034. package/dist/embed/embed-page-sql_more-NACOUKSZ.js +1 -0
  1035. package/dist/embed/embed-page-squirrel-XG35KUR2.js +1 -0
  1036. package/dist/embed/embed-page-stan-GDB32LYB.js +1 -0
  1037. package/dist/embed/embed-page-stan-UJ7WCNJT.js +1 -0
  1038. package/dist/embed/embed-page-stata-DEQ57OIC.js +1 -0
  1039. package/dist/embed/embed-page-stata-WJUFDMUW.js +1 -0
  1040. package/dist/embed/embed-page-stateDiagram-FKZM4ZOC-6LDVHEHS.js +1 -0
  1041. package/dist/embed/embed-page-stateDiagram-v2-4FDKWEC3-UJYGEYF5.js +1 -0
  1042. package/dist/embed/embed-page-step21-6AYDKM5N.js +1 -0
  1043. package/dist/embed/embed-page-stylus-CFL6FZN3.js +1 -0
  1044. package/dist/embed/embed-page-stylus-MLEF22IY.js +1 -0
  1045. package/dist/embed/embed-page-subunit-OZQ2HNNA.js +1 -0
  1046. package/dist/embed/embed-page-supercollider-ZK2ECEDQ.js +1 -0
  1047. package/dist/embed/embed-page-swift-MNLMKF5F.js +1 -0
  1048. package/dist/embed/embed-page-swift-UJP2CPA4.js +1 -0
  1049. package/dist/embed/embed-page-systemd-DQXTIGWD.js +1 -0
  1050. package/dist/embed/embed-page-t4-cs-ZPHNHWPR.js +1 -0
  1051. package/dist/embed/embed-page-t4-templating-OA7FNPXM.js +1 -0
  1052. package/dist/embed/embed-page-t4-vb-XBX2HBI5.js +1 -0
  1053. package/dist/embed/embed-page-taggerscript-XVALJYA3.js +1 -0
  1054. package/dist/embed/embed-page-tap-EMOHKH5F.js +1 -0
  1055. package/dist/embed/embed-page-tap-HZHER7FY.js +1 -0
  1056. package/dist/embed/embed-page-tcl-GN4WSRHR.js +1 -0
  1057. package/dist/embed/embed-page-tcl-T3WWKS3Q.js +1 -0
  1058. package/dist/embed/embed-page-textile-OXFYF2DV.js +1 -0
  1059. package/dist/embed/embed-page-thrift-Q26IKVBC.js +1 -0
  1060. package/dist/embed/embed-page-timeline-definition-IT6M3QCI-OF6FTGVN.js +61 -0
  1061. package/dist/embed/embed-page-toml-ZVNI7WJB.js +1 -0
  1062. package/dist/embed/embed-page-tp-24NWOAQZ.js +1 -0
  1063. package/dist/embed/embed-page-treemap-KMMF4GRG-HPTV3SYE.js +1 -0
  1064. package/dist/embed/embed-page-tremor-443PBNWC.js +1 -0
  1065. package/dist/embed/embed-page-tsx-PX2Z4GDU.js +1 -0
  1066. package/dist/embed/embed-page-tt2-L43LNTGL.js +1 -0
  1067. package/dist/embed/embed-page-turtle-IXYYTHLU.js +1 -0
  1068. package/dist/embed/embed-page-twig-MZBQAWRC.js +1 -0
  1069. package/dist/embed/embed-page-twig-WSAAZNH3.js +1 -0
  1070. package/dist/embed/embed-page-typescript-5UWO3Y3K.js +1 -0
  1071. package/dist/embed/embed-page-typescript-BPIRCQG7.js +1 -0
  1072. package/dist/embed/embed-page-typoscript-UUKPTXPH.js +1 -0
  1073. package/dist/embed/embed-page-unrealscript-G2VHZRFN.js +1 -0
  1074. package/dist/embed/embed-page-uorazor-WYGVL7PT.js +1 -0
  1075. package/dist/embed/embed-page-uri-NRWWZBB7.js +1 -0
  1076. package/dist/embed/embed-page-v-LKVTPKDV.js +1 -0
  1077. package/dist/embed/embed-page-vala-EL5BNKYD.js +1 -0
  1078. package/dist/embed/embed-page-vala-MLIRE3PS.js +1 -0
  1079. package/dist/embed/embed-page-vbnet-5JKSIZ56.js +1 -0
  1080. package/dist/embed/embed-page-vbnet-KOGX2JTL.js +1 -0
  1081. package/dist/embed/embed-page-vbscript-637T6GXI.js +1 -0
  1082. package/dist/embed/embed-page-vbscript-html-YKWMMXG4.js +1 -0
  1083. package/dist/embed/embed-page-velocity-7Q63BBW2.js +1 -0
  1084. package/dist/embed/embed-page-verilog-B6EWQWMJ.js +1 -0
  1085. package/dist/embed/embed-page-verilog-G566LGG4.js +1 -0
  1086. package/dist/embed/embed-page-vhdl-R5JIOJNH.js +1 -0
  1087. package/dist/embed/embed-page-vhdl-RMOYZXLG.js +1 -0
  1088. package/dist/embed/embed-page-vim-47Q56RS4.js +1 -0
  1089. package/dist/embed/embed-page-vim-KBCAYMER.js +1 -0
  1090. package/dist/embed/embed-page-visual-basic-ZYE5FD6G.js +1 -0
  1091. package/dist/embed/embed-page-warpscript-65UOMFFU.js +1 -0
  1092. package/dist/embed/embed-page-wasm-MSBGNWUM.js +1 -0
  1093. package/dist/embed/embed-page-web-idl-7WW5RGOI.js +1 -0
  1094. package/dist/embed/embed-page-wgsl-FG3PI6M7.js +1 -0
  1095. package/dist/embed/embed-page-wiki-DGVS4GPN.js +1 -0
  1096. package/dist/embed/embed-page-wolfram-MOURXWVE.js +1 -0
  1097. package/dist/embed/embed-page-wren-PYL5ZRVR.js +1 -0
  1098. package/dist/embed/embed-page-x86asm-WQ6M3VHZ.js +1 -0
  1099. package/dist/embed/embed-page-xeora-JSPZIDKL.js +1 -0
  1100. package/dist/embed/embed-page-xl-DTY4E7YS.js +1 -0
  1101. package/dist/embed/embed-page-xml-P5QA5BKM.js +1 -0
  1102. package/dist/embed/embed-page-xml-doc-VAJOIYSW.js +1 -0
  1103. package/dist/embed/embed-page-xojo-L2PDU7MC.js +1 -0
  1104. package/dist/embed/embed-page-xquery-EWBQ7NVP.js +1 -0
  1105. package/dist/embed/embed-page-xquery-RUKMMBO2.js +1 -0
  1106. package/dist/embed/embed-page-xychartDiagram-PRI3JC2R-EWLR5Z3I.js +7 -0
  1107. package/dist/embed/embed-page-yaml-76KRB6BP.js +1 -0
  1108. package/dist/embed/embed-page-yaml-RR5MLWRK.js +1 -0
  1109. package/dist/embed/embed-page-yang-J62Y5RPD.js +1 -0
  1110. package/dist/embed/embed-page-zephir-OIOOQGNI.js +1 -0
  1111. package/dist/embed/embed-page-zig-75SL5ZWR.js +1 -0
  1112. package/dist/embed/embed-page.css +1 -0
  1113. package/dist/embed/embed-page.js +6 -0
  1114. package/dist/index.d.mts +19 -40
  1115. package/dist/index.d.ts +19 -40
  1116. package/dist/index.js +1157 -701
  1117. package/dist/index.js.map +1 -1
  1118. package/dist/index.mjs +885 -659
  1119. package/dist/index.mjs.map +1 -1
  1120. package/dist/{mcp-configs-SHRMQHIL.mjs → mcp-configs-IIKQM5GM.mjs} +2 -2
  1121. package/dist/mcpTransportRegistry-XMJ5Y2RG.mjs +13 -0
  1122. package/dist/mcpTransportRegistry-XMJ5Y2RG.mjs.map +1 -0
  1123. package/dist/open-DCAOL5CG.mjs +176 -0
  1124. package/dist/open-DCAOL5CG.mjs.map +1 -0
  1125. package/package.json +11 -8
  1126. /package/dist/{mcp-configs-SHRMQHIL.mjs.map → mcp-configs-IIKQM5GM.mjs.map} +0 -0
@@ -0,0 +1,28 @@
1
+ // src/services/open/mcpTransportRegistry.ts
2
+ var sessions = /* @__PURE__ */ new Map();
3
+ async function registerSession(sessionId, credential, parts) {
4
+ sessions.set(sessionId, { ...parts, credential });
5
+ }
6
+ async function getSession(sessionId) {
7
+ return sessions.get(sessionId) ?? null;
8
+ }
9
+ async function deleteSession(sessionId) {
10
+ const entry = sessions.get(sessionId);
11
+ if (!entry) return;
12
+ sessions.delete(sessionId);
13
+ await entry.transport.close().catch(() => void 0);
14
+ await entry.server.close().catch(() => void 0);
15
+ }
16
+ async function clearSessions() {
17
+ for (const sessionId of [...sessions.keys()]) {
18
+ await deleteSession(sessionId);
19
+ }
20
+ }
21
+
22
+ export {
23
+ registerSession,
24
+ getSession,
25
+ deleteSession,
26
+ clearSessions
27
+ };
28
+ //# sourceMappingURL=chunk-K32XEQLH.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/services/open/mcpTransportRegistry.ts"],"sourcesContent":["/**\n * Session registry for the Open MCP surface: sessionId → live\n * {server, transport, credential}. Sessions are created at initialize time\n * (inside the transport's sessionIdGenerator, so the registry key always\n * equals the transport-generated session id) and reused via the\n * Mcp-Session-Id header (SDK canonical stateful pattern).\n */\n\nimport type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport type { StreamableHTTPServerTransport } from \"@modelcontextprotocol/sdk/server/streamableHttp.js\";\n\nexport interface OpenMcpSession {\n server: McpServer;\n transport: StreamableHTTPServerTransport;\n credential: { credentialId: string; kind: string };\n}\n\nconst sessions = new Map<string, OpenMcpSession>();\n\nexport async function registerSession(\n sessionId: string,\n credential: { credentialId: string; kind: string },\n parts: { server: McpServer; transport: StreamableHTTPServerTransport },\n): Promise<void> {\n sessions.set(sessionId, { ...parts, credential });\n}\n\nexport async function getSession(\n sessionId: string,\n): Promise<OpenMcpSession | null> {\n return sessions.get(sessionId) ?? null;\n}\n\n/** Re-entry safe: deletes first, then closes (onsessionclosed re-invokes this → no-op). */\nexport async function deleteSession(sessionId: string): Promise<void> {\n const entry = sessions.get(sessionId);\n if (!entry) return;\n sessions.delete(sessionId);\n await entry.transport.close().catch(() => undefined);\n await entry.server.close().catch(() => undefined);\n}\n\n/** Test helper: drop all sessions. */\nexport async function clearSessions(): Promise<void> {\n for (const sessionId of [...sessions.keys()]) {\n await deleteSession(sessionId);\n }\n}\n"],"mappings":";AAiBA,IAAM,WAAW,oBAAI,IAA4B;AAEjD,eAAsB,gBACpB,WACA,YACA,OACe;AACf,WAAS,IAAI,WAAW,EAAE,GAAG,OAAO,WAAW,CAAC;AAClD;AAEA,eAAsB,WACpB,WACgC;AAChC,SAAO,SAAS,IAAI,SAAS,KAAK;AACpC;AAGA,eAAsB,cAAc,WAAkC;AACpE,QAAM,QAAQ,SAAS,IAAI,SAAS;AACpC,MAAI,CAAC,MAAO;AACZ,WAAS,OAAO,SAAS;AACzB,QAAM,MAAM,UAAU,MAAM,EAAE,MAAM,MAAM,MAAS;AACnD,QAAM,MAAM,OAAO,MAAM,EAAE,MAAM,MAAM,MAAS;AAClD;AAGA,eAAsB,gBAA+B;AACnD,aAAW,aAAa,CAAC,GAAG,SAAS,KAAK,CAAC,GAAG;AAC5C,UAAM,cAAc,SAAS;AAAA,EAC/B;AACF;","names":[]}
@@ -392,7 +392,8 @@ function convertToConnection(config) {
392
392
  return {
393
393
  ...baseConfig,
394
394
  transport: config.transport === "streamable_http" ? "http" : config.transport,
395
- url: config.url
395
+ url: config.url,
396
+ headers: config.headers
396
397
  };
397
398
  }
398
399
  }
@@ -429,4 +430,4 @@ export {
429
430
  convertToConnection,
430
431
  registerMcpServerConfigRoutes
431
432
  };
432
- //# sourceMappingURL=chunk-K4XELOSO.mjs.map
433
+ //# sourceMappingURL=chunk-QKPZWWHH.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/controllers/mcp-configs.ts"],"sourcesContent":["/**\n * MCP Server Config Controller\n * Handles MCP server configuration CRUD operations with automatic tool registration\n */\n\nimport { FastifyRequest, FastifyReply } from \"fastify\";\nimport {\n getStoreLattice,\n mcpManager,\n McpLatticeManager,\n} from \"@axiom-lattice/core\";\nimport type {\n McpServerConfigStore,\n McpServerConfigEntry,\n CreateMcpServerConfigRequest,\n UpdateMcpServerConfigRequest,\n McpServerConfig,\n McpTool,\n} from \"@axiom-lattice/protocols\";\nimport { randomUUID } from \"crypto\";\n\n/**\n * Get tenant ID from authenticated user context\n * Falls back to request headers for backward compatibility\n */\nfunction getTenantId(request: FastifyRequest): string {\n // First try to get from authenticated user context\n const userTenantId = (request as any).user?.tenantId;\n if (userTenantId) {\n return userTenantId;\n }\n\n // Fallback to request headers for backward compatibility\n return (request.headers[\"x-tenant-id\"] as string) || \"default\";\n}\n\n/**\n * MCP server config list response\n */\ninterface McpServerConfigListResponse {\n success: boolean;\n message: string;\n data: {\n records: McpServerConfigEntry[];\n total: number;\n };\n}\n\n/**\n * MCP server config response\n */\ninterface McpServerConfigResponse {\n success: boolean;\n message: string;\n data?: McpServerConfigEntry;\n}\n\n/**\n * Test connection response\n */\ninterface TestConnectionResponse {\n success: boolean;\n message: string;\n data?: {\n connected: boolean;\n latency?: number;\n error?: string;\n };\n}\n\n/**\n * List tools response\n */\ninterface ListToolsResponse {\n success: boolean;\n message: string;\n data?: {\n tools: McpTool[];\n };\n}\n\n/**\n * Get all MCP server configs for a tenant\n */\nexport async function getMcpServerConfigList(\n request: FastifyRequest,\n reply: FastifyReply\n): Promise<McpServerConfigListResponse> {\n const tenantId = getTenantId(request);\n\n try {\n const storeLattice = getStoreLattice(\"default\", \"mcp\");\n const store: McpServerConfigStore = storeLattice.store;\n\n const configs = await store.getAllConfigs(tenantId);\n\n return {\n success: true,\n message: \"MCP server configurations retrieved successfully\",\n data: {\n records: configs,\n total: configs.length,\n },\n };\n } catch (error) {\n console.error(\"Failed to get MCP server configs:\", error);\n return {\n success: false,\n message: \"Failed to retrieve MCP server configurations\",\n data: {\n records: [],\n total: 0,\n },\n };\n }\n}\n\n/**\n * Get MCP server config by key\n */\nexport async function getMcpServerConfig(\n request: FastifyRequest,\n reply: FastifyReply\n): Promise<McpServerConfigResponse> {\n const tenantId = getTenantId(request);\n const { key } = request.params as { key: string };\n\n try {\n const storeLattice = getStoreLattice(\"default\", \"mcp\");\n const store: McpServerConfigStore = storeLattice.store;\n\n const config = await store.getConfigByKey(tenantId, key);\n\n if (!config) {\n return {\n success: false,\n message: \"MCP server configuration not found\",\n };\n }\n\n return {\n success: true,\n message: \"MCP server configuration retrieved successfully\",\n data: config,\n };\n } catch (error) {\n console.error(\"Failed to get MCP server config:\", error);\n return {\n success: false,\n message: \"Failed to retrieve MCP server configuration\",\n };\n }\n}\n\n/**\n * Create new MCP server config\n */\nexport async function createMcpServerConfig(\n request: FastifyRequest,\n reply: FastifyReply\n): Promise<McpServerConfigResponse> {\n const tenantId = getTenantId(request);\n const body = request.body as CreateMcpServerConfigRequest & {\n id?: string;\n };\n\n try {\n const storeLattice = getStoreLattice(\"default\", \"mcp\");\n const store: McpServerConfigStore = storeLattice.store;\n\n // Check if key already exists\n const existing = await store.getConfigByKey(tenantId, body.key);\n if (existing) {\n reply.code(409);\n return {\n success: false,\n message: \"MCP server configuration with this key already exists\",\n };\n }\n\n const id = body.id || randomUUID();\n const config = await store.createConfig(tenantId, id, body);\n\n // Auto-connect and register tools\n try {\n await connectAndRegisterTools(config);\n // Update status to connected\n await store.updateConfig(tenantId, id, { status: \"connected\" });\n config.status = \"connected\";\n } catch (error) {\n console.warn(\"Failed to auto-connect MCP server:\", error);\n // Update status to error but don't fail the creation\n await store.updateConfig(tenantId, id, { status: \"error\" });\n config.status = \"error\";\n }\n\n reply.code(201);\n return {\n success: true,\n message: \"MCP server configuration created successfully\",\n data: config,\n };\n } catch (error) {\n console.error(\"Failed to create MCP server config:\", error);\n return {\n success: false,\n message: \"Failed to create MCP server configuration\",\n };\n }\n}\n\n/**\n * Update MCP server config\n */\nexport async function updateMcpServerConfig(\n request: FastifyRequest,\n reply: FastifyReply\n): Promise<McpServerConfigResponse> {\n const tenantId = getTenantId(request);\n const { key } = request.params as { key: string };\n const updates = request.body as Partial<UpdateMcpServerConfigRequest>;\n\n try {\n const storeLattice = getStoreLattice(\"default\", \"mcp\");\n const store: McpServerConfigStore = storeLattice.store;\n\n const existing = await store.getConfigByKey(tenantId, key);\n if (!existing) {\n reply.code(404);\n return {\n success: false,\n message: \"MCP server configuration not found\",\n };\n }\n\n // If config is being updated, we need to reconnect\n const shouldReconnect = updates.config !== undefined;\n\n const updated = await store.updateConfig(tenantId, existing.id, updates);\n\n if (!updated) {\n return {\n success: false,\n message: \"Failed to update MCP server configuration\",\n };\n }\n\n // Reconnect and re-register tools if config changed\n if (shouldReconnect) {\n try {\n // Reconnect single server without affecting others\n await mcpManager.reconnectServer(key);\n\n // Re-register tools with new config\n await mcpManager.registerToolsToToolLattice(key, updated.selectedTools);\n\n await store.updateConfig(tenantId, existing.id, { status: \"connected\" });\n updated.status = \"connected\";\n } catch (error) {\n console.warn(\"Failed to reconnect MCP server:\", error);\n await store.updateConfig(tenantId, existing.id, { status: \"error\" });\n updated.status = \"error\";\n }\n }\n\n return {\n success: true,\n message: \"MCP server configuration updated successfully\",\n data: updated,\n };\n } catch (error) {\n console.error(\"Failed to update MCP server config:\", error);\n return {\n success: false,\n message: \"Failed to update MCP server configuration\",\n };\n }\n}\n\n/**\n * Delete MCP server config by key or id\n */\nexport async function deleteMcpServerConfig(\n request: FastifyRequest,\n reply: FastifyReply\n): Promise<McpServerConfigResponse> {\n const tenantId = getTenantId(request);\n const { keyOrId } = request.params as { keyOrId: string };\n\n try {\n const storeLattice = getStoreLattice(\"default\", \"mcp\");\n const store: McpServerConfigStore = storeLattice.store;\n\n // Try to find by key first, then by id\n let config = await store.getConfigByKey(tenantId, keyOrId);\n let configKey = keyOrId;\n\n if (!config) {\n // Try to find by id\n config = await store.getConfigById(tenantId, keyOrId);\n if (config) {\n configKey = config.key;\n }\n }\n\n if (!config) {\n reply.code(404);\n return {\n success: false,\n message: \"MCP server configuration not found\",\n };\n }\n\n // Disconnect and remove from MCP manager\n try {\n if (mcpManager.hasServer(configKey)) {\n await mcpManager.removeServer(configKey);\n }\n } catch (error) {\n console.warn(\"Failed to remove from MCP manager:\", error);\n }\n\n const deleted = await store.deleteConfig(tenantId, config.id);\n\n if (!deleted) {\n return {\n success: false,\n message: \"Failed to delete MCP server configuration\",\n };\n }\n\n return {\n success: true,\n message: \"MCP server configuration deleted successfully\",\n };\n } catch (error) {\n console.error(\"Failed to delete MCP server config:\", error);\n return {\n success: false,\n message: \"Failed to delete MCP server configuration\",\n };\n }\n}\n\n/**\n * Test MCP server connection\n */\nexport async function testMcpServerConnection(\n request: FastifyRequest,\n reply: FastifyReply\n): Promise<TestConnectionResponse> {\n const tenantId = getTenantId(request);\n const { key } = request.params as { key: string };\n\n try {\n const storeLattice = getStoreLattice(\"default\", \"mcp\");\n const store: McpServerConfigStore = storeLattice.store;\n\n const config = await store.getConfigByKey(tenantId, key);\n if (!config) {\n reply.code(404);\n return {\n success: false,\n message: \"MCP server configuration not found\",\n };\n }\n\n // Test connection by creating a standalone client\n try {\n const testKey = `__test_${key}_${Date.now()}`;\n const connection = convertToConnection(config.config);\n const { latency } = await McpLatticeManager.testConnection(testKey, connection);\n\n return {\n success: true,\n message: \"Connection test successful\",\n data: {\n connected: true,\n latency,\n },\n };\n } catch (error) {\n return {\n success: true,\n message: \"Connection test failed\",\n data: {\n connected: false,\n error: error instanceof Error ? error.message : \"Unknown error\",\n },\n };\n }\n } catch (error) {\n console.error(\"Failed to test MCP server connection:\", error);\n return {\n success: false,\n message: \"Failed to test MCP server connection\",\n data: {\n connected: false,\n error: error instanceof Error ? error.message : \"Unknown error\",\n },\n };\n }\n}\n\n/**\n * List available tools from an MCP server\n */\nexport async function listMcpServerTools(\n request: FastifyRequest,\n reply: FastifyReply\n): Promise<ListToolsResponse> {\n const tenantId = getTenantId(request);\n const { key } = request.params as { key: string };\n\n try {\n const storeLattice = getStoreLattice(\"default\", \"mcp\");\n const store: McpServerConfigStore = storeLattice.store;\n\n const config = await store.getConfigByKey(tenantId, key);\n if (!config) {\n reply.code(404);\n return {\n success: false,\n message: \"MCP server configuration not found\",\n };\n }\n\n // Ensure server is connected\n if (!mcpManager.hasServer(key)) {\n await connectAndRegisterTools(config);\n }\n\n const tools = await mcpManager.getServerTools(key);\n\n return {\n success: true,\n message: \"Tools retrieved successfully\",\n data: {\n tools,\n },\n };\n } catch (error) {\n console.error(\"Failed to list MCP tools:\", error);\n return {\n success: false,\n message: \"Failed to retrieve tools\",\n };\n }\n}\n\n/**\n * Connect to MCP server and register tools\n */\nexport async function connectMcpServer(\n request: FastifyRequest,\n reply: FastifyReply\n): Promise<McpServerConfigResponse> {\n const tenantId = getTenantId(request);\n const { key } = request.params as { key: string };\n\n try {\n const storeLattice = getStoreLattice(\"default\", \"mcp\");\n const store: McpServerConfigStore = storeLattice.store;\n\n const config = await store.getConfigByKey(tenantId, key);\n if (!config) {\n reply.code(404);\n return {\n success: false,\n message: \"MCP server configuration not found\",\n };\n }\n\n await connectAndRegisterTools(config);\n\n // Update status\n const updated = await store.updateConfig(tenantId, config.id, {\n status: \"connected\",\n });\n\n return {\n success: true,\n message: \"MCP server connected successfully\",\n data: updated || config,\n };\n } catch (error) {\n console.error(\"Failed to connect MCP server:\", error);\n\n // Update status to error\n const storeLattice = getStoreLattice(\"default\", \"mcp\");\n const store: McpServerConfigStore = storeLattice.store;\n const config = await store.getConfigByKey(tenantId, key);\n if (config) {\n await store.updateConfig(tenantId, config.id, { status: \"error\" });\n }\n\n return {\n success: false,\n message: `Failed to connect MCP server: ${\n error instanceof Error ? error.message : \"Unknown error\"\n }`,\n };\n }\n}\n\n/**\n * Disconnect from MCP server\n */\nexport async function disconnectMcpServer(\n request: FastifyRequest,\n reply: FastifyReply\n): Promise<McpServerConfigResponse> {\n const tenantId = getTenantId(request);\n const { key } = request.params as { key: string };\n\n try {\n const storeLattice = getStoreLattice(\"default\", \"mcp\");\n const store: McpServerConfigStore = storeLattice.store;\n\n const config = await store.getConfigByKey(tenantId, key);\n if (!config) {\n reply.code(404);\n return {\n success: false,\n message: \"MCP server configuration not found\",\n };\n }\n\n // Disconnect from MCP manager\n if (mcpManager.hasServer(key)) {\n await mcpManager.removeServer(key);\n }\n\n // Update status\n const updated = await store.updateConfig(tenantId, config.id, {\n status: \"disconnected\",\n });\n\n return {\n success: true,\n message: \"MCP server disconnected successfully\",\n data: updated || config,\n };\n } catch (error) {\n console.error(\"Failed to disconnect MCP server:\", error);\n return {\n success: false,\n message: \"Failed to disconnect MCP server\",\n };\n }\n}\n\n/**\n * Test MCP server connection and list tools without saving config\n * Used for multi-step configuration flow\n */\nexport async function testMcpServerTools(\n request: FastifyRequest,\n reply: FastifyReply\n): Promise<ListToolsResponse> {\n const body = request.body as {\n config: McpServerConfig;\n };\n\n try {\n if (!body.config) {\n reply.code(400);\n return {\n success: false,\n message: \"config is required\",\n };\n }\n\n const testKey = `__test_${Date.now()}`;\n\n // Create standalone client for testing — does not affect global mcpManager\n const connection = convertToConnection(body.config);\n const { tools } = await McpLatticeManager.testConnection(testKey, connection);\n\n return {\n success: true,\n message: \"Tools retrieved successfully\",\n data: {\n tools,\n },\n };\n } catch (error) {\n console.error(\"Failed to test MCP server tools:\", error);\n return {\n success: false,\n message: `Failed to retrieve tools: ${\n error instanceof Error ? error.message : String(error)\n }`,\n };\n }\n}\n\n/**\n * Convert McpServerConfig to Connection format compatible with @langchain/mcp-adapters\n */\nexport function convertToConnection(config: McpServerConfig): any {\n const baseConfig = {\n env: config.env,\n };\n\n if (config.transport === \"stdio\") {\n return {\n ...baseConfig,\n transport: \"stdio\" as const,\n command: config.command!,\n args: config.args || [],\n };\n } else {\n // For HTTP/SSE transports\n return {\n ...baseConfig,\n transport: config.transport === \"streamable_http\" ? \"http\" : config.transport,\n url: config.url!,\n };\n }\n}\n\n/**\n * Helper function to connect to MCP server and register selected tools\n */\nasync function connectAndRegisterTools(\n config: McpServerConfigEntry\n): Promise<void> {\n // Add server to MCP manager\n const connection = convertToConnection(config.config);\n mcpManager.addServer(config.key, connection);\n\n // Connect only unconnected servers (new server gets connected)\n await mcpManager.connect();\n\n // Register tools for this server (handles unregister + filter + prefix)\n await mcpManager.registerToolsToToolLattice(config.key, config.selectedTools);\n}\n\n/**\n * Register MCP server config routes\n */\nexport function registerMcpServerConfigRoutes(app: any): void {\n // Get all configs\n app.get(\"/api/mcp-servers\", getMcpServerConfigList);\n\n // Get config by key\n app.get(\"/api/mcp-servers/:key\", getMcpServerConfig);\n\n // Create config\n app.post(\"/api/mcp-servers\", createMcpServerConfig);\n\n // Update config\n app.put(\"/api/mcp-servers/:key\", updateMcpServerConfig);\n\n // Delete config by key or id\n app.delete(\"/api/mcp-servers/:keyOrId\", deleteMcpServerConfig);\n\n // Test connection\n app.post(\"/api/mcp-servers/:key/test\", testMcpServerConnection);\n\n // List available tools\n app.get(\"/api/mcp-servers/:key/tools\", listMcpServerTools);\n\n // Connect to server\n app.post(\"/api/mcp-servers/:key/connect\", connectMcpServer);\n\n // Disconnect from server\n app.post(\"/api/mcp-servers/:key/disconnect\", disconnectMcpServer);\n\n // Test tools without saving config (for multi-step config flow)\n app.post(\"/api/mcp-servers/test-tools\", testMcpServerTools);\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/controllers/mcp-configs.ts"],"sourcesContent":["/**\n * MCP Server Config Controller\n * Handles MCP server configuration CRUD operations with automatic tool registration\n */\n\nimport { FastifyRequest, FastifyReply } from \"fastify\";\nimport {\n getStoreLattice,\n mcpManager,\n McpLatticeManager,\n} from \"@axiom-lattice/core\";\nimport type {\n McpServerConfigStore,\n McpServerConfigEntry,\n CreateMcpServerConfigRequest,\n UpdateMcpServerConfigRequest,\n McpServerConfig,\n McpTool,\n} from \"@axiom-lattice/protocols\";\nimport { randomUUID } from \"crypto\";\n\n/**\n * Get tenant ID from authenticated user context\n * Falls back to request headers for backward compatibility\n */\nfunction getTenantId(request: FastifyRequest): string {\n // First try to get from authenticated user context\n const userTenantId = (request as any).user?.tenantId;\n if (userTenantId) {\n return userTenantId;\n }\n\n // Fallback to request headers for backward compatibility\n return (request.headers[\"x-tenant-id\"] as string) || \"default\";\n}\n\n/**\n * MCP server config list response\n */\ninterface McpServerConfigListResponse {\n success: boolean;\n message: string;\n data: {\n records: McpServerConfigEntry[];\n total: number;\n };\n}\n\n/**\n * MCP server config response\n */\ninterface McpServerConfigResponse {\n success: boolean;\n message: string;\n data?: McpServerConfigEntry;\n}\n\n/**\n * Test connection response\n */\ninterface TestConnectionResponse {\n success: boolean;\n message: string;\n data?: {\n connected: boolean;\n latency?: number;\n error?: string;\n };\n}\n\n/**\n * List tools response\n */\ninterface ListToolsResponse {\n success: boolean;\n message: string;\n data?: {\n tools: McpTool[];\n };\n}\n\n/**\n * Get all MCP server configs for a tenant\n */\nexport async function getMcpServerConfigList(\n request: FastifyRequest,\n reply: FastifyReply\n): Promise<McpServerConfigListResponse> {\n const tenantId = getTenantId(request);\n\n try {\n const storeLattice = getStoreLattice(\"default\", \"mcp\");\n const store: McpServerConfigStore = storeLattice.store;\n\n const configs = await store.getAllConfigs(tenantId);\n\n return {\n success: true,\n message: \"MCP server configurations retrieved successfully\",\n data: {\n records: configs,\n total: configs.length,\n },\n };\n } catch (error) {\n console.error(\"Failed to get MCP server configs:\", error);\n return {\n success: false,\n message: \"Failed to retrieve MCP server configurations\",\n data: {\n records: [],\n total: 0,\n },\n };\n }\n}\n\n/**\n * Get MCP server config by key\n */\nexport async function getMcpServerConfig(\n request: FastifyRequest,\n reply: FastifyReply\n): Promise<McpServerConfigResponse> {\n const tenantId = getTenantId(request);\n const { key } = request.params as { key: string };\n\n try {\n const storeLattice = getStoreLattice(\"default\", \"mcp\");\n const store: McpServerConfigStore = storeLattice.store;\n\n const config = await store.getConfigByKey(tenantId, key);\n\n if (!config) {\n return {\n success: false,\n message: \"MCP server configuration not found\",\n };\n }\n\n return {\n success: true,\n message: \"MCP server configuration retrieved successfully\",\n data: config,\n };\n } catch (error) {\n console.error(\"Failed to get MCP server config:\", error);\n return {\n success: false,\n message: \"Failed to retrieve MCP server configuration\",\n };\n }\n}\n\n/**\n * Create new MCP server config\n */\nexport async function createMcpServerConfig(\n request: FastifyRequest,\n reply: FastifyReply\n): Promise<McpServerConfigResponse> {\n const tenantId = getTenantId(request);\n const body = request.body as CreateMcpServerConfigRequest & {\n id?: string;\n };\n\n try {\n const storeLattice = getStoreLattice(\"default\", \"mcp\");\n const store: McpServerConfigStore = storeLattice.store;\n\n // Check if key already exists\n const existing = await store.getConfigByKey(tenantId, body.key);\n if (existing) {\n reply.code(409);\n return {\n success: false,\n message: \"MCP server configuration with this key already exists\",\n };\n }\n\n const id = body.id || randomUUID();\n const config = await store.createConfig(tenantId, id, body);\n\n // Auto-connect and register tools\n try {\n await connectAndRegisterTools(config);\n // Update status to connected\n await store.updateConfig(tenantId, id, { status: \"connected\" });\n config.status = \"connected\";\n } catch (error) {\n console.warn(\"Failed to auto-connect MCP server:\", error);\n // Update status to error but don't fail the creation\n await store.updateConfig(tenantId, id, { status: \"error\" });\n config.status = \"error\";\n }\n\n reply.code(201);\n return {\n success: true,\n message: \"MCP server configuration created successfully\",\n data: config,\n };\n } catch (error) {\n console.error(\"Failed to create MCP server config:\", error);\n return {\n success: false,\n message: \"Failed to create MCP server configuration\",\n };\n }\n}\n\n/**\n * Update MCP server config\n */\nexport async function updateMcpServerConfig(\n request: FastifyRequest,\n reply: FastifyReply\n): Promise<McpServerConfigResponse> {\n const tenantId = getTenantId(request);\n const { key } = request.params as { key: string };\n const updates = request.body as Partial<UpdateMcpServerConfigRequest>;\n\n try {\n const storeLattice = getStoreLattice(\"default\", \"mcp\");\n const store: McpServerConfigStore = storeLattice.store;\n\n const existing = await store.getConfigByKey(tenantId, key);\n if (!existing) {\n reply.code(404);\n return {\n success: false,\n message: \"MCP server configuration not found\",\n };\n }\n\n // If config is being updated, we need to reconnect\n const shouldReconnect = updates.config !== undefined;\n\n const updated = await store.updateConfig(tenantId, existing.id, updates);\n\n if (!updated) {\n return {\n success: false,\n message: \"Failed to update MCP server configuration\",\n };\n }\n\n // Reconnect and re-register tools if config changed\n if (shouldReconnect) {\n try {\n // Reconnect single server without affecting others\n await mcpManager.reconnectServer(key);\n\n // Re-register tools with new config\n await mcpManager.registerToolsToToolLattice(key, updated.selectedTools);\n\n await store.updateConfig(tenantId, existing.id, { status: \"connected\" });\n updated.status = \"connected\";\n } catch (error) {\n console.warn(\"Failed to reconnect MCP server:\", error);\n await store.updateConfig(tenantId, existing.id, { status: \"error\" });\n updated.status = \"error\";\n }\n }\n\n return {\n success: true,\n message: \"MCP server configuration updated successfully\",\n data: updated,\n };\n } catch (error) {\n console.error(\"Failed to update MCP server config:\", error);\n return {\n success: false,\n message: \"Failed to update MCP server configuration\",\n };\n }\n}\n\n/**\n * Delete MCP server config by key or id\n */\nexport async function deleteMcpServerConfig(\n request: FastifyRequest,\n reply: FastifyReply\n): Promise<McpServerConfigResponse> {\n const tenantId = getTenantId(request);\n const { keyOrId } = request.params as { keyOrId: string };\n\n try {\n const storeLattice = getStoreLattice(\"default\", \"mcp\");\n const store: McpServerConfigStore = storeLattice.store;\n\n // Try to find by key first, then by id\n let config = await store.getConfigByKey(tenantId, keyOrId);\n let configKey = keyOrId;\n\n if (!config) {\n // Try to find by id\n config = await store.getConfigById(tenantId, keyOrId);\n if (config) {\n configKey = config.key;\n }\n }\n\n if (!config) {\n reply.code(404);\n return {\n success: false,\n message: \"MCP server configuration not found\",\n };\n }\n\n // Disconnect and remove from MCP manager\n try {\n if (mcpManager.hasServer(configKey)) {\n await mcpManager.removeServer(configKey);\n }\n } catch (error) {\n console.warn(\"Failed to remove from MCP manager:\", error);\n }\n\n const deleted = await store.deleteConfig(tenantId, config.id);\n\n if (!deleted) {\n return {\n success: false,\n message: \"Failed to delete MCP server configuration\",\n };\n }\n\n return {\n success: true,\n message: \"MCP server configuration deleted successfully\",\n };\n } catch (error) {\n console.error(\"Failed to delete MCP server config:\", error);\n return {\n success: false,\n message: \"Failed to delete MCP server configuration\",\n };\n }\n}\n\n/**\n * Test MCP server connection\n */\nexport async function testMcpServerConnection(\n request: FastifyRequest,\n reply: FastifyReply\n): Promise<TestConnectionResponse> {\n const tenantId = getTenantId(request);\n const { key } = request.params as { key: string };\n\n try {\n const storeLattice = getStoreLattice(\"default\", \"mcp\");\n const store: McpServerConfigStore = storeLattice.store;\n\n const config = await store.getConfigByKey(tenantId, key);\n if (!config) {\n reply.code(404);\n return {\n success: false,\n message: \"MCP server configuration not found\",\n };\n }\n\n // Test connection by creating a standalone client\n try {\n const testKey = `__test_${key}_${Date.now()}`;\n const connection = convertToConnection(config.config);\n const { latency } = await McpLatticeManager.testConnection(testKey, connection);\n\n return {\n success: true,\n message: \"Connection test successful\",\n data: {\n connected: true,\n latency,\n },\n };\n } catch (error) {\n return {\n success: true,\n message: \"Connection test failed\",\n data: {\n connected: false,\n error: error instanceof Error ? error.message : \"Unknown error\",\n },\n };\n }\n } catch (error) {\n console.error(\"Failed to test MCP server connection:\", error);\n return {\n success: false,\n message: \"Failed to test MCP server connection\",\n data: {\n connected: false,\n error: error instanceof Error ? error.message : \"Unknown error\",\n },\n };\n }\n}\n\n/**\n * List available tools from an MCP server\n */\nexport async function listMcpServerTools(\n request: FastifyRequest,\n reply: FastifyReply\n): Promise<ListToolsResponse> {\n const tenantId = getTenantId(request);\n const { key } = request.params as { key: string };\n\n try {\n const storeLattice = getStoreLattice(\"default\", \"mcp\");\n const store: McpServerConfigStore = storeLattice.store;\n\n const config = await store.getConfigByKey(tenantId, key);\n if (!config) {\n reply.code(404);\n return {\n success: false,\n message: \"MCP server configuration not found\",\n };\n }\n\n // Ensure server is connected\n if (!mcpManager.hasServer(key)) {\n await connectAndRegisterTools(config);\n }\n\n const tools = await mcpManager.getServerTools(key);\n\n return {\n success: true,\n message: \"Tools retrieved successfully\",\n data: {\n tools,\n },\n };\n } catch (error) {\n console.error(\"Failed to list MCP tools:\", error);\n return {\n success: false,\n message: \"Failed to retrieve tools\",\n };\n }\n}\n\n/**\n * Connect to MCP server and register tools\n */\nexport async function connectMcpServer(\n request: FastifyRequest,\n reply: FastifyReply\n): Promise<McpServerConfigResponse> {\n const tenantId = getTenantId(request);\n const { key } = request.params as { key: string };\n\n try {\n const storeLattice = getStoreLattice(\"default\", \"mcp\");\n const store: McpServerConfigStore = storeLattice.store;\n\n const config = await store.getConfigByKey(tenantId, key);\n if (!config) {\n reply.code(404);\n return {\n success: false,\n message: \"MCP server configuration not found\",\n };\n }\n\n await connectAndRegisterTools(config);\n\n // Update status\n const updated = await store.updateConfig(tenantId, config.id, {\n status: \"connected\",\n });\n\n return {\n success: true,\n message: \"MCP server connected successfully\",\n data: updated || config,\n };\n } catch (error) {\n console.error(\"Failed to connect MCP server:\", error);\n\n // Update status to error\n const storeLattice = getStoreLattice(\"default\", \"mcp\");\n const store: McpServerConfigStore = storeLattice.store;\n const config = await store.getConfigByKey(tenantId, key);\n if (config) {\n await store.updateConfig(tenantId, config.id, { status: \"error\" });\n }\n\n return {\n success: false,\n message: `Failed to connect MCP server: ${\n error instanceof Error ? error.message : \"Unknown error\"\n }`,\n };\n }\n}\n\n/**\n * Disconnect from MCP server\n */\nexport async function disconnectMcpServer(\n request: FastifyRequest,\n reply: FastifyReply\n): Promise<McpServerConfigResponse> {\n const tenantId = getTenantId(request);\n const { key } = request.params as { key: string };\n\n try {\n const storeLattice = getStoreLattice(\"default\", \"mcp\");\n const store: McpServerConfigStore = storeLattice.store;\n\n const config = await store.getConfigByKey(tenantId, key);\n if (!config) {\n reply.code(404);\n return {\n success: false,\n message: \"MCP server configuration not found\",\n };\n }\n\n // Disconnect from MCP manager\n if (mcpManager.hasServer(key)) {\n await mcpManager.removeServer(key);\n }\n\n // Update status\n const updated = await store.updateConfig(tenantId, config.id, {\n status: \"disconnected\",\n });\n\n return {\n success: true,\n message: \"MCP server disconnected successfully\",\n data: updated || config,\n };\n } catch (error) {\n console.error(\"Failed to disconnect MCP server:\", error);\n return {\n success: false,\n message: \"Failed to disconnect MCP server\",\n };\n }\n}\n\n/**\n * Test MCP server connection and list tools without saving config\n * Used for multi-step configuration flow\n */\nexport async function testMcpServerTools(\n request: FastifyRequest,\n reply: FastifyReply\n): Promise<ListToolsResponse> {\n const body = request.body as {\n config: McpServerConfig;\n };\n\n try {\n if (!body.config) {\n reply.code(400);\n return {\n success: false,\n message: \"config is required\",\n };\n }\n\n const testKey = `__test_${Date.now()}`;\n\n // Create standalone client for testing — does not affect global mcpManager\n const connection = convertToConnection(body.config);\n const { tools } = await McpLatticeManager.testConnection(testKey, connection);\n\n return {\n success: true,\n message: \"Tools retrieved successfully\",\n data: {\n tools,\n },\n };\n } catch (error) {\n console.error(\"Failed to test MCP server tools:\", error);\n return {\n success: false,\n message: `Failed to retrieve tools: ${\n error instanceof Error ? error.message : String(error)\n }`,\n };\n }\n}\n\n/**\n * Convert McpServerConfig to Connection format compatible with @langchain/mcp-adapters\n */\nexport function convertToConnection(config: McpServerConfig): any {\n const baseConfig = {\n env: config.env,\n };\n\n if (config.transport === \"stdio\") {\n return {\n ...baseConfig,\n transport: \"stdio\" as const,\n command: config.command!,\n args: config.args || [],\n };\n } else {\n // For HTTP/SSE transports\n return {\n ...baseConfig,\n transport: config.transport === \"streamable_http\" ? \"http\" : config.transport,\n url: config.url!,\n headers: config.headers,\n };\n }\n}\n\n/**\n * Helper function to connect to MCP server and register selected tools\n */\nasync function connectAndRegisterTools(\n config: McpServerConfigEntry\n): Promise<void> {\n // Add server to MCP manager\n const connection = convertToConnection(config.config);\n mcpManager.addServer(config.key, connection);\n\n // Connect only unconnected servers (new server gets connected)\n await mcpManager.connect();\n\n // Register tools for this server (handles unregister + filter + prefix)\n await mcpManager.registerToolsToToolLattice(config.key, config.selectedTools);\n}\n\n/**\n * Register MCP server config routes\n */\nexport function registerMcpServerConfigRoutes(app: any): void {\n // Get all configs\n app.get(\"/api/mcp-servers\", getMcpServerConfigList);\n\n // Get config by key\n app.get(\"/api/mcp-servers/:key\", getMcpServerConfig);\n\n // Create config\n app.post(\"/api/mcp-servers\", createMcpServerConfig);\n\n // Update config\n app.put(\"/api/mcp-servers/:key\", updateMcpServerConfig);\n\n // Delete config by key or id\n app.delete(\"/api/mcp-servers/:keyOrId\", deleteMcpServerConfig);\n\n // Test connection\n app.post(\"/api/mcp-servers/:key/test\", testMcpServerConnection);\n\n // List available tools\n app.get(\"/api/mcp-servers/:key/tools\", listMcpServerTools);\n\n // Connect to server\n app.post(\"/api/mcp-servers/:key/connect\", connectMcpServer);\n\n // Disconnect from server\n app.post(\"/api/mcp-servers/:key/disconnect\", disconnectMcpServer);\n\n // Test tools without saving config (for multi-step config flow)\n app.post(\"/api/mcp-servers/test-tools\", testMcpServerTools);\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1 @@
1
+ "use strict";var __axiomEmbedInternal=(()=>{var S="axiom-web-app-embed";var A=["axiom:ready","axiom:unread","axiom:error","axiom:message"];function M(t,e){return{source:S,version:1,type:t,payload:e}}function _(t,e){if(typeof t!="object"||t===null)return null;let n=t;return n.source!==S||n.version!==1||typeof n.type!="string"||!e.includes(n.type)?null:{type:n.type,payload:n.payload}}var G=/^[A-Za-z0-9._:@-]{1,128}$/,U=640,k=[],I=[],v=[],r=null,a=null,b=null,c=!1,O=!1;function d(t,e,n){let o=t[e];return typeof o=="number"&&Number.isFinite(o)?o:n}function f(t,e){let n=t[e];return typeof n=="string"&&n.length>0?n:null}function T(t,e,n){let o=t.offset;return typeof o!="object"||o===null?n:d(o,e,n)}function Y(){let t=document.currentScript,e=H=>{let g=t?.getAttribute(`data-${H}`);return typeof g=="string"&&g.length>0?g:null},n=window.AxiomChatSettings??{},o=f(n,"webAppId")??e("web-app-id");if(o===null)return console.warn("[AxiomChat] Missing webAppId (set window.AxiomChatSettings.webAppId or data-web-app-id)."),null;let u=t?.src||null,i=u!==null?new URL(u).origin:window.location.origin,s=f(n,"gatewayUrl")??e("gateway-url");return{base:(s!==null?s:i).replace(/\/+$/,""),webAppId:o,mode:n.mode==="inline"||e("mode")==="inline"?"inline":"bubble",containerSelector:f(n,"containerSelector")??e("container-selector"),bubble:!(n.bubble===!1||e("bubble")==="false"),width:d(n,"width",380),height:d(n,"height",640),position:n.position==="bottom-left"||e("position")==="bottom-left"?"bottom-left":"bottom-right",offsetX:d(n,"offsetX",T(n,"x",20)),offsetY:d(n,"offsetY",T(n,"y",20)),zIndex:d(n,"zIndex",9999),userId:f(n,"userId")??e("user-id")}}function E(t,e){let n=a;if(n===null)return;let o=n.contentWindow;o!==null&&o.postMessage(M(t,e),new URL(n.src).origin)}function $(){return window.innerWidth<=U}function y(t,e){let n=r;if(n===null)return;let o=Math.min(n.width,Math.max(window.innerWidth-n.offsetX*2,240)),u=Math.min(n.height,Math.max(window.innerHeight-n.offsetY*2,240));Object.assign(t.style,$()?{position:"fixed",inset:"0px",width:"100%",height:"100%",border:"none",display:e?"block":"none",zIndex:String(n.zIndex)}:{position:"fixed",bottom:`${n.offsetY}px`,left:n.position==="bottom-left"?`${n.offsetX}px`:"auto",right:n.position==="bottom-right"?`${n.offsetX}px`:"auto",width:`${o}px`,height:`${u}px`,border:"none",borderRadius:"16px",boxShadow:"0 12px 40px rgba(23, 32, 51, 0.24)",background:"#ffffff",display:e?"block":"none",zIndex:String(n.zIndex)})}function p(){if(a!==null)return a;let t=r;if(t===null)throw new Error("[AxiomChat] not configured");let e=document.createElement("iframe");if(e.src=`${t.base}/api/web-apps/${encodeURIComponent(t.webAppId)}/chat?mode=embed`,e.title="Agent chat",e.setAttribute("aria-label","Agent chat"),t.mode==="inline"){let n=t.containerSelector!==null?document.querySelector(t.containerSelector):null;n===null&&console.warn(`[AxiomChat] inline container not found: ${t.containerSelector??"(none)"}`),Object.assign(e.style,{width:"100%",height:"100%",border:"none",display:"block"}),(n??document.body).appendChild(e)}else y(e,c),document.body.appendChild(e);return e.addEventListener("load",()=>{E("axiom:hello",{webAppId:t.webAppId})}),a=e,e}function m(t){for(let e of I)e(t)}function R(){b!==null&&b.setAttribute("aria-expanded",c?"true":"false")}function h(){if(r!==null){if(r.mode==="bubble"){let t=p();c=!0,y(t,!0)}else p();R()}}function x(){r===null||r.mode!=="bubble"||a===null||(c=!1,y(a,!1),R())}function w(){c?x():h()}function N(t){if(typeof t!="object"||t===null)return!1;let e=t;return(e.role==="human"||e.role==="ai")&&typeof e.content=="string"}function L(t){if(typeof t!="string")return;let e=t.trim();if(e.length===0){m({code:"INVALID_REQUEST",message:"AxiomChat.sendMessage requires non-empty text."});return}r!==null&&a===null&&p(),E("axiom:send",{text:e})}function C(t){if(Array.isArray(t)===!1)return;let[e,n]=t;if(e==="onReady"&&typeof n=="function"){let o=n;O?o():k.push(o);return}if(e==="onError"&&typeof n=="function"){I.push(n);return}if(e==="onMessage"&&typeof n=="function"){v.push(n);return}if(e==="sendMessage"&&typeof n=="string"){L(n);return}e==="open"?h():e==="hide"?x():e==="toggle"&&w()}function z(){let t=r;if(t===null||t.bubble===!1||t.mode!=="bubble")return;let e=document.createElement("button");e.type="button",e.setAttribute("aria-label","Agent chat"),e.setAttribute("aria-expanded","false"),Object.assign(e.style,{position:"fixed",bottom:`${t.offsetY}px`,left:t.position==="bottom-left"?`${t.offsetX}px`:"auto",right:t.position==="bottom-right"?`${t.offsetX}px`:"auto",width:"56px",height:"56px",border:"none",borderRadius:"9999px",background:"#4f46e5",color:"#ffffff",cursor:"pointer",boxShadow:"0 8px 24px rgba(23, 32, 51, 0.28)",zIndex:String(t.zIndex+1),display:"flex",alignItems:"center",justifyContent:"center"}),e.innerHTML='<svg width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true"><path d="M4 5.5A2.5 2.5 0 0 1 6.5 3h11A2.5 2.5 0 0 1 20 5.5v8a2.5 2.5 0 0 1-2.5 2.5H9l-4.05 3.24A1 1 0 0 1 3.2 18.4V5.5Z" fill="currentColor"/></svg>',e.addEventListener("click",()=>{w()}),b=e,document.body.appendChild(e)}var P="__axiomChatMessageListener";function B(){if(r=Y(),r===null)return;let t=i=>{if(r===null||a===null||i.origin!==new URL(a.src).origin||i.source===null||i.source!==a.contentWindow)return;let s=_(i.data,A);if(s!==null){if(s.type==="axiom:ready"){if(r.userId!==null&&G.test(r.userId)){E("axiom:identity",{userId:r.userId}),O=!0;for(let l of k)l()}else m({code:"USER_ID_REQUIRED",message:"A stable userId must be configured for the embed."});return}if(s.type==="axiom:error"){let l=s.payload;m({code:typeof l.code=="string"?l.code:"UNKNOWN",message:typeof l.message=="string"?l.message:"Unknown error"});return}if(s.type==="axiom:message"){if(!N(s.payload))return;for(let l of v)l(s.payload)}}},e=window,n=e[P];typeof n=="function"&&window.removeEventListener("message",n),e[P]=t,window.addEventListener("message",t);let o=(i=>{i!==void 0&&C(i)});o.open=h,o.hide=x,o.toggle=w,o.sendMessage=L;let u=window.AxiomChat;if(Array.isArray(u))for(let i of u)C(i);window.AxiomChat=o,z(),r.mode==="inline"&&p()}B();})();
@@ -0,0 +1 @@
1
+ import{a}from"./embed-page-chunk-D63UWHSO.js";import"./embed-page-chunk-6Y3UYJ6Z.js";export default a();
@@ -0,0 +1 @@
1
+ import{l as C}from"./embed-page-chunk-A2LQIHX4.js";import"./embed-page-chunk-4BIOW547.js";import"./embed-page-chunk-EPEKIAZP.js";import"./embed-page-chunk-7CFGO35V.js";import"./embed-page-chunk-KGX7G7XQ.js";import"./embed-page-chunk-DVHOG6AY.js";import"./embed-page-chunk-S4XZPBRM.js";import"./embed-page-chunk-AYOVLRHX.js";import"./embed-page-chunk-BZI3YCE7.js";import{b as B}from"./embed-page-chunk-JLWIJ4BP.js";import"./embed-page-chunk-SU5GXLKX.js";import{Ua as T}from"./embed-page-chunk-OWGBADV6.js";import{q as P}from"./embed-page-chunk-4X5XHAMX.js";import{a as I}from"./embed-page-chunk-MB65DZAX.js";import"./embed-page-chunk-VW3NF5NT.js";import"./embed-page-chunk-5JDQ456X.js";import"./embed-page-chunk-ESLOGPBN.js";import{U as c,W as p,oa as D,va as b,xa as l}from"./embed-page-chunk-KG5A66WX.js";import{a as U}from"./embed-page-chunk-4BKXE5ON.js";import"./embed-page-chunk-IX4WLWCY.js";import"./embed-page-chunk-EUOOO2LS.js";import{e as u}from"./embed-page-chunk-6Y3UYJ6Z.js";var e=u(U());var t=u(I()),G={component_key:"workspace_assistants",data:{},message:"Assistants"},N=r=>{let i=r;if(typeof r=="string")try{i=JSON.parse(r)}catch{return{}}return i!==null&&typeof i=="object"&&!Array.isArray(i)?i:{}},H=({data:r})=>{let{assistantId:i,initialTab:F}=r??{},{get:m,put:f,del:A}=P(),y=T(),[g,w]=(0,e.useState)(null),[R,h]=(0,e.useState)([]),[E,v]=(0,e.useState)(!1),[L,S]=(0,e.useState)(null),d=(0,e.useCallback)(()=>{y(G)},[y]),a=(0,e.useCallback)(async()=>{v(!0),S(null);try{let s=(await m("/api/assistants")).data?.records??[];h(s),w(s.find(o=>o.id===i)??null)}catch{S("Failed to load agent")}finally{v(!1)}},[m,i]);(0,e.useEffect)(()=>{i&&a()},[a,i]);let _=(0,e.useCallback)(async(n,s)=>{let o=N(n.graphDefinition),k;try{k=await f(`/api/assistants/${n.id}`,{name:s.name!==void 0?s.name:n.name,description:s.description!==void 0?s.description:n.description,graphDefinition:{...o,...s}})}catch(z){throw l.error("Failed to save agent"),z}if(!k.success)throw l.error("Failed to save agent"),new Error("Failed to save agent");l.success("Saved"),await a()},[f,a]),j=(0,e.useCallback)(n=>{w(s=>s&&s.id===n.id?n:s),h(s=>s.map(o=>o.id===n.id?n:o))},[]),x=(0,e.useCallback)(async n=>{if(!(await A(`/api/assistants/${n}`)).success)throw new Error("Failed to delete agent");l.success("Agent deleted"),d()},[A,d]);return i?g?(0,t.jsx)("div",{style:{height:"100%",overflow:"auto"},children:(0,t.jsx)(B,{children:(0,t.jsx)(C,{assistant:g,allAssistants:R,onBack:d,onDeleted:x,onSave:_,onAssistantUpdated:j,onAgentListInvalidated:()=>void a(),initialTab:F})},g.id)}):E?(0,t.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%"},children:(0,t.jsx)(b,{})}):L?(0,t.jsx)("div",{style:{padding:24},children:(0,t.jsx)(c,{type:"error",showIcon:!0,message:"Failed to load agent","data-testid":"detail-error",action:(0,t.jsxs)(D,{children:[(0,t.jsx)(p,{size:"small",onClick:()=>void a(),children:"Retry"}),(0,t.jsx)(p,{size:"small",type:"primary",onClick:d,children:"Back to list"})]})})}):(0,t.jsx)("div",{style:{padding:24},children:(0,t.jsx)(c,{type:"warning",showIcon:!0,message:"Agent not found","data-testid":"detail-not-found",action:(0,t.jsx)(p,{size:"small",type:"primary",onClick:d,children:"Back to list"})})}):(0,t.jsx)("div",{style:{padding:24},children:(0,t.jsx)(c,{type:"warning",showIcon:!0,message:"Missing agent id","data-testid":"detail-missing-id"})})};export{H as AgentDetailSideApp};
@@ -0,0 +1 @@
1
+ .x-markdown-debug-panel{position:fixed;z-index:9999;right:0;background:#000000d9;border-radius:8px;padding:12px;font-family:SF Mono,Monaco,Inconsolata,Fira Mono,Droid Sans Mono,Source Code Pro,monospace;font-size:12px;color:#fff;width:180px;box-shadow:0 2px 8px #00000026;backdrop-filter:blur(8px);user-select:none;transition:box-shadow .2s}.x-markdown-debug-panel:hover{box-shadow:0 4px 12px #00000040}.x-markdown-debug-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.x-markdown-debug-row:last-child{margin-bottom:0}.x-markdown-debug-label{color:#ffffffa6;font-weight:500;min-width:60px}.x-markdown-debug-value{font-weight:600;min-width:50px;text-align:right}.x-markdown-debug-chart{margin-left:auto}.x-markdown-debug-actions{display:flex;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.1)}.x-markdown-debug-action{flex:1;padding:6px 12px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#fff;font-size:11px;font-family:inherit;cursor:pointer;transition:all .2s;font-weight:500}.x-markdown-debug-action:hover{background:#ffffff26;border-color:#ffffff4d}.x-markdown-debug-action:active{transform:scale(.98)}.x-markdown-debug-record-btn.recording{background:#ff4d4f33;border-color:#ff4d4f;animation:recording-pulse 1.5s ease-in-out infinite}@keyframes recording-pulse{0%,to{box-shadow:0 0 #ff4d4f66}50%{box-shadow:0 0 0 8px #ff4d4f00}}.x-markdown-debug-modal-overlay{position:fixed;inset:0;background:#000000bf;backdrop-filter:blur(4px);z-index:10000;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.x-markdown-debug-modal{background:#1e1e1ef2;border-radius:12px;box-shadow:0 8px 32px #0006;max-width:90vw;max-height:90vh;overflow:auto;animation:slideIn .3s ease-out;border:1px solid rgba(255,255,255,.1)}@keyframes slideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.x-markdown-debug-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid rgba(255,255,255,.1)}.x-markdown-debug-close-btn{width:32px;height:32px;border-radius:6px;background:#ffffff1a;border:none;color:#fff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.x-markdown-debug-close-btn:hover{background:#ff4d4f4d}.x-markdown-debug-modal-content{padding:24px}.x-markdown-debug-stats-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.x-markdown-debug-stat-item{background:#ffffff0d;border-radius:8px;padding:16px;border:1px solid rgba(255,255,255,.1)}.x-markdown-debug-stat-label{font-size:11px;color:#fff9;margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.x-markdown-debug-stat-value{font-size:20px;font-weight:700;color:#fff}.x-markdown-debug-chart-full{background:#ffffff05;border-radius:8px;border:1px solid rgba(255,255,255,.1)}.x-markdown-debug-chart-full .fps-line,.x-markdown-debug-chart-full .memory-line{filter:drop-shadow(0 0 4px currentColor)}.x-markdown-debug-legend{display:flex;gap:24px;justify-content:center;margin-top:16px}.x-markdown-debug-legend-item{display:flex;align-items:center;gap:8px;font-size:13px;color:#fffc}.x-markdown-debug-legend-color{width:12px;height:12px;border-radius:2px}@media (max-width: 768px){.x-markdown-debug-stats-summary{grid-template-columns:repeat(2,1fr)}}@keyframes x-markdown-fade-in{0%{opacity:0}to{opacity:1}}.x-markdown{--text-color: inherit;--font-size: inherit;--margin-block: 0 0 1em 0;--td-th-padding: .85em 1em;--pre-th-td-padding: 2px 0;--border-font-weight: 600;--padding-ul-ol: 0 0 0 1em;--margin-ul-ol: 0 0 1em 1.8em;--margin-li: .25em 0;--margin-pre: 1em 0;--padding-code-inline: .2em .4em;--margin-code-inline: 0 .2em;--code-inline-text: .85em;--small-border-radius: 2px;--image-margin: .5em 0;--hr-margin: 1.5em 0;--table-margin: 1em 0;font-size:var(--font-size);line-height:1.5714285714285714;width:100%;color:var(--text-color)}.x-markdown p,.x-markdown div,.x-markdown span,.x-markdown li{word-break:break-word;overflow-wrap:break-word}.x-markdown pre,.x-markdown code{word-break:break-word;overflow-wrap:break-word;white-space:pre-wrap}.x-markdown th,.x-markdown td{padding:var(--td-th-padding)}.x-markdown th{font-weight:var(--border-font-weight)}.x-markdown pre table{box-shadow:none}.x-markdown pre td,.x-markdown pre th{padding:var(--pre-th-td-padding);border:none;text-align:left}.x-markdown p{margin:var(--margin-block)}.x-markdown p:first-child{margin-top:0}.x-markdown p:last-child{margin-bottom:0}.x-markdown ul,.x-markdown ol{margin:var(--margin-ul-ol);padding:var(--padding-ul-ol)}.x-markdown ul:first-child,.x-markdown ol:first-child{margin-top:0}.x-markdown ul:last-child,.x-markdown ol:last-child{margin-bottom:0}.x-markdown ol>li{list-style:decimal}.x-markdown ul>li{list-style:disc}.x-markdown li{margin:var(--margin-li)}.x-markdown li:first-child{margin-top:0}.x-markdown li:last-child{margin-bottom:0}.x-markdown pre{margin:var(--margin-pre);overflow-x:auto}.x-markdown pre:first-child{margin-top:0}.x-markdown pre:last-child{margin-bottom:0}.x-markdown code{padding:var(--padding-code-inline);margin:var(--margin-code-inline);font-size:var(--code-inline-text);border-radius:var(--small-border-radius)}.x-markdown pre code{padding:0;margin:0;font-size:inherit;border-radius:0;line-height:2}.x-markdown img{max-width:100%;height:auto;margin:var(--image-margin)}.x-markdown hr{margin:var(--hr-margin)}.x-markdown table:not(pre){margin:var(--table-margin);border-collapse:collapse;display:block;width:max-content;max-width:100%;overflow:auto}.x-markdown table:not(pre):first-child{margin-top:0}.x-markdown table:not(pre):last-child{margin-bottom:0}.x-markdown .inline-katex .katex-display{display:inline-block;margin:0;text-align:initial;vertical-align:middle}.x-markdown .inline-katex .katex-display>.katex{display:inline-block;text-align:initial;white-space:normal}.x-markdown .inline-katex .katex-display>.katex>.katex-html{display:inline-block;position:static}.x-markdown .inline-katex .katex-display>.katex>.katex-html>.tag{position:static}.diff-container{border-collapse:collapse;background:var(--diffViewerBackground);color:var(--diffViewerColor);width:100%}.diff-container pre{white-space:pre-wrap;margin:0;line-height:25px}.diff-container.light-theme{--diffViewerBackground: #fff;--diffViewerColor: #212529;--addedBackground: #e6ffed;--addedColor: #24292e;--removedBackground: #ffeef0;--removedColor: #24292e;--wordAddedBackground: #acf2bd;--wordRemovedBackground: #fdb8c0;--addedGutterBackground: #cdffd8;--removedGutterBackground: #ffdce0;--gutterBackground: #f7f7f7;--gutterBackgroundDark: #f3f1f1;--highlightBackground: #fffbdd;--highlightGutterBackground: #fff5b1;--codeFoldGutterBackground: #dbedff;--codeFoldBackground: #f1f8ff;--emptyLineBackground: #fafbfc;--gutterColor: #212529;--addedGutterColor: #212529;--removedGutterColor: #212529;--codeFoldContentColor: #212529;--diffViewerTitleBackground: #fafbfc;--diffViewerTitleColor: #212529;--diffViewerTitleBorderColor: #eee}.diff-container.dark-theme{--diffViewerBackground: #2e303c;--diffViewerColor: #fff;--addedBackground: #044b53;--addedColor: white;--removedBackground: #632f34;--removedColor: white;--wordAddedBackground: #055d67;--wordRemovedBackground: #7d383f;--addedGutterBackground: #034148;--removedGutterBackground: #632b30;--gutterBackground: #2c2f3a;--gutterBackgroundDark: #262933;--highlightBackground: #2a3967;--highlightGutterBackground: #2d4077;--codeFoldGutterBackground: #21232b;--codeFoldBackground: #262831;--emptyLineBackground: #363946;--gutterColor: #464c67;--addedGutterColor: #8c8c8c;--removedGutterColor: #8c8c8c;--codeFoldContentColor: #555a7b;--diffViewerTitleBackground: #2f323e;--diffViewerTitleColor: #555a7b;--diffViewerTitleBorderColor: #353846}.diff-container .gutter{background-color:var(--gutterBackground)}.diff-container .gutter:hover{background-color:var(--gutterBackgroundDark)}.diff-container .diff-added{background-color:var(--addedBackground);color:var(--addedColor)}.diff-container .diff-added pre{color:var(--addedColor)}.diff-container .diff-removed{background-color:var(--removedBackground);color:var(--removedColor)}.diff-container .diff-removed pre{color:var(--removedColor)}.diff-container .gutter.diff-added{background-color:var(--addedGutterBackground)}.diff-container .gutter.diff-added .line-number{color:var(--addedGutterColor)}.diff-container .gutter.diff-removed{background-color:var(--removedGutterBackground)}.diff-container .gutter.diff-removed .line-number{color:var(--removedGutterColor)}.diff-container .line-number{color:var(--gutterColor)}.diff-container .word-diff.word-added{background-color:var(--wordAddedBackground)}.diff-container .word-diff.word-removed{background-color:var(--wordRemovedBackground)}.diff-container .highlighted-line{background-color:var(--highlightBackground)}.diff-container .highlighted-gutter{background-color:var(--highlightGutterBackground)!important}.diff-container .code-fold-gutter{background-color:var(--codeFoldGutterBackground)}.diff-container .code-fold{background-color:var(--codeFoldBackground)}.diff-container .code-fold .code-fold-content{color:var(--codeFoldContentColor)}.diff-container .empty-line{background-color:var(--emptyLineBackground)}.diff-container .title-block{background-color:var(--diffViewerTitleBackground);border-bottom-color:var(--diffViewerTitleBorderColor)}.diff-container .title-block .content-text{color:var(--diffViewerTitleColor)}.diff-container .title-block:last-child{border-left-color:var(--diffViewerTitleBorderColor)}.diff-container .line{vertical-align:baseline}.diff-container .content{width:100%}.diff-container .split-view .content{width:50%}.diff-container .gutter{user-select:none;text-align:right;min-width:50px;padding:0 10px}.diff-container .gutter:hover{cursor:pointer}.diff-container .gutter:hover pre{opacity:1}.diff-container .gutter pre{opacity:.5}.diff-container .empty-gutter .gutter:hover{background:inherit;cursor:initial}.diff-container .marker{user-select:none;width:25px;padding-left:10px;padding-right:10px}.diff-container .word-diff{display:inline-flex;border-radius:1px;padding:2px}.diff-container .code-fold{height:40px;font-size:14px;font-weight:700}.diff-container .code-fold a{cursor:pointer;text-decoration:underline!important}.diff-container .code-fold a pre{display:inline}.diff-container .title-block{border-bottom:1px solid;padding:10px}.diff-container .title-block:last-child{border-left:1px solid}.diff-container .highlighted-line .word-diff.word-added{background-color:var(--wordAddedBackground)}.diff-container .highlighted-line .word-diff.word-removed{background-color:var(--wordRemovedBackground)}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}
@@ -0,0 +1,5 @@
1
+ import{a as Re,b as Me,c as Tt,d as It,e as Dt,f as Rt,g as Pt,h as Ft,i as Et,j as Mt,k as Nt,l as Lt}from"./embed-page-chunk-A2LQIHX4.js";import{a as Ge}from"./embed-page-chunk-4BIOW547.js";import"./embed-page-chunk-EPEKIAZP.js";import"./embed-page-chunk-7CFGO35V.js";import"./embed-page-chunk-KGX7G7XQ.js";import{b as _e,e as Ve,f as At,g as Ct,h as xt,i as wt,l as vt,m as kt}from"./embed-page-chunk-DVHOG6AY.js";import{a as mt,b as gt,c as ut,d as ft,e as yt}from"./embed-page-chunk-SV2BM3WO.js";import"./embed-page-chunk-S4XZPBRM.js";import"./embed-page-chunk-AYOVLRHX.js";import"./embed-page-chunk-BZI3YCE7.js";import{b as St}from"./embed-page-chunk-JLWIJ4BP.js";import"./embed-page-chunk-SU5GXLKX.js";import{I as ot,Ia as ct,Ka as pt,L as rt,T as st,Ua as ht,ab as bt,bb as Ke,fa as it,j as De,la as lt,x as at,za as dt}from"./embed-page-chunk-OWGBADV6.js";import{l as Qe,q as fe}from"./embed-page-chunk-4X5XHAMX.js";import{a as E}from"./embed-page-chunk-MB65DZAX.js";import"./embed-page-chunk-VW3NF5NT.js";import"./embed-page-chunk-5JDQ456X.js";import"./embed-page-chunk-ESLOGPBN.js";import{Db as et,Fa as Je,Ia as Ie,Ja as Ye,La as Y,Ua as Xe,W as Z,_ as Se,aa as Te,ac as Ee,ea as Fe,ka as Oe,la as We,ma as qe,mc as tt,oa as Ze,ra as P,ta as V,wa as $e,wc as nt,xa as v,ya as ue}from"./embed-page-chunk-KG5A66WX.js";import{a as ge}from"./embed-page-chunk-4BKXE5ON.js";import"./embed-page-chunk-IX4WLWCY.js";import"./embed-page-chunk-EUOOO2LS.js";import{e as x}from"./embed-page-chunk-6Y3UYJ6Z.js";var u=x(ge());var X=x(ge());var J=x(ge());var Bt=x(ge());var se=x(E()),Ot=60,$t=72,ze=(0,Bt.memo)(({data:n})=>{let r=Re(n.type),p=Math.min(12+Math.sqrt(n.subAgentCount)*10,48);return(0,se.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center"},children:[(0,se.jsx)(Ve,{type:"target",position:_e.Top,style:{left:"50%",top:"50%",transform:"translate(-50%, -50%)",background:"transparent",border:"none",width:0,height:0},isConnectable:!1}),(0,se.jsx)("div",{title:n.label,style:{width:p,height:p,borderRadius:"50%",background:Me(r.color),display:"flex",alignItems:"center",justifyContent:"center",color:"#fff",fontSize:Math.max(10,p*.4),fontWeight:600,cursor:"pointer",boxShadow:"0 2px 8px rgba(0,0,0,0.15)"},children:n.label.charAt(0).toUpperCase()}),(0,se.jsx)("div",{style:{fontSize:11,maxWidth:120,textAlign:"center",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",marginTop:4},children:n.label}),(0,se.jsx)(Ve,{type:"source",position:_e.Top,style:{left:"50%",top:"50%",transform:"translate(-50%, -50%)",background:"transparent",border:"none",width:0,height:0},isConnectable:!1})]})});ze.displayName="AgentGraphNode";var Q=x(E()),sn=({assistants:n,onNodeClick:r})=>{let[p,d,g]=xt([]),[o,f,k]=wt([]),[c,S]=(0,J.useState)(null),H=(0,J.useMemo)(()=>({agent:ze}),[]),m=(0,J.useMemo)(()=>Dt(n),[n]);(0,J.useEffect)(()=>{let w=m.nodes.map(i=>({id:i.id})),F=m.edges.map(i=>({source:i.source,target:i.target})),N=new Map(m.nodes.map(i=>[i.id,i])),_=ft(w).force("link",ut(F).id(i=>i.id).distance(80)).force("charge",yt().strength(-220)).force("center",mt(0,0)).force("collide",gt(45)).stop();for(let i=0;i<300;i++)_.tick();let R=w.map(i=>({id:i.id,type:"agent",data:N.get(i.id),position:{x:i.x-Ot/2,y:i.y-$t/2}})),s=m.edges.map(i=>({id:`e${i.source}-${i.target}`,source:i.source,target:i.target,style:{stroke:"#1677ff",strokeWidth:2},type:"straight"}));d(R),f(s)},[m,d,f]);let I=(0,J.useMemo)(()=>c===null?p:p.map(w=>{let F=w.id===c||o.some(N=>N.source===c&&N.target===w.id||N.target===c&&N.source===w.id);return{...w,style:{opacity:F?1:.2,transition:"opacity 0.2s ease"}}}),[p,o,c]),K=(0,J.useMemo)(()=>c===null?o.map(w=>({...w,style:{stroke:"#1677ff",strokeWidth:1.5,opacity:.25,transition:"opacity 0.2s ease"}})):o.map(w=>{let F=w.source===c||w.target===c;return{...w,style:{stroke:"#1677ff",strokeWidth:F?2.5:1,opacity:F?1:.04,transition:"opacity 0.2s ease"}}}),[o,c]);return(0,Q.jsx)("div",{style:{width:"100%",height:"100%",background:"#fafafa",position:"relative"},children:(0,Q.jsxs)(Ct,{nodes:I,edges:K,onNodesChange:g,onEdgesChange:k,onNodeMouseEnter:(w,F)=>S(F.id),onNodeMouseLeave:()=>S(null),onNodeClick:(w,F)=>r?.(String(F.id)),nodeTypes:H,fitView:!0,fitViewOptions:{padding:.25},children:[(0,Q.jsx)(vt,{color:"#eee",gap:20}),(0,Q.jsx)(kt,{})]})})},Kt=n=>(0,Q.jsx)(At,{children:(0,Q.jsx)(sn,{...n})});var M=x(E()),ln=n=>{if(!n)return"\u2014";let r=Date.now()-new Date(n).getTime(),p=Math.floor(r/6e4);if(p<1)return"just now";if(p<60)return`${p}m ago`;let d=Math.floor(p/60);return d<24?`${d}h ago`:`${Math.floor(d/24)}d ago`},dn=n=>n===null?"#d9d9d9":n>=80?"#22c55e":n>=50?"#f59e0b":"#ef4444",cn=ct(({css:n})=>({row:n`
2
+ display: flex;
3
+ justify-content: space-between;
4
+ align-items: flex-end;
5
+ `})),_t={fontSize:16,fontWeight:700,lineHeight:1.2,cursor:"help"},Ue={fontSize:10,color:"rgba(0, 0, 0, 0.45)",whiteSpace:"nowrap",marginTop:1},je={display:"flex",flexDirection:"column",alignItems:"center"},Vt=({stats:n})=>{let{styles:r}=cn();if(!n)return(0,M.jsxs)("div",{style:{display:"flex",fontSize:11,color:"#d9d9d9"},children:[(0,M.jsx)("span",{style:{flex:1},children:"score \u2014"}),(0,M.jsx)("span",{style:{flex:1},children:"threads \u2014"})]});let p=n.evalScore!==null?Number(n.evalScore).toFixed(1):"\u2014",d=n.threadCount>0?n.threadCount:"\u2014",g=dn(n.evalScore),o=n.evalPassRate!==null?`${n.evalPassRate}%`:"\u2014";return(0,M.jsxs)("div",{className:r.row,children:[(0,M.jsxs)("div",{style:{display:"flex",gap:16,alignItems:"flex-end"},children:[(0,M.jsx)(Te,{title:`Eval score: ${p} \xB7 pass rate ${o} \xB7 ${n.evalRuns} runs`,children:(0,M.jsxs)("div",{style:je,children:[(0,M.jsx)("span",{style:{..._t,color:g},children:p}),(0,M.jsx)("span",{className:"lattice-stat-label",style:Ue,children:"eval score"})]})}),(0,M.jsx)(Te,{title:`Conversations: ${n.threadCount} total \xB7 ${n.last7d} in 7d \xB7 ${n.last30d} in 30d${n.lastActive?` \xB7 last active ${ln(n.lastActive)}`:""}`,children:(0,M.jsxs)("div",{style:je,children:[(0,M.jsx)("span",{style:{..._t,color:d==="\u2014"?"#d9d9d9":"#595959"},children:d}),(0,M.jsx)("span",{className:"lattice-stat-label",style:Ue,children:"threads"})]})})]}),n.daily7d.length>0&&(0,M.jsxs)("div",{style:je,children:[(0,M.jsx)(Rt,{values:n.daily7d,width:40,height:24,color:"#8c8c8c"}),(0,M.jsx)("span",{className:"lattice-stat-label",style:Ue,children:"7d threads"})]})]})};var C=x(E()),pn=[{key:"all",label:"All"},{key:"capability",label:"Capability"},{key:"orchestrator",label:"Orchestrator"},{key:"team",label:"Team"},{key:"workflow",label:"Workflow"}],Gt=({items:n,assistants:r=[],stats:p,loading:d,onItemClick:g,onOpenPlayground:o,onOpenEval:f,onCreate:k,onDelete:c})=>{let[S,H]=(0,X.useState)("all"),[m,I]=(0,X.useState)(null),[K,w]=(0,X.useState)(null),F=(0,X.useMemo)(()=>{let s=new Set;return n.forEach(i=>i.tags.forEach(te=>s.add(te))),Array.from(s).map(i=>({value:i,label:i}))},[n]),N=(0,X.useMemo)(()=>n.filter(s=>!(S!=="all"&&s.type!==S||m&&!s.tags.includes(m)||K&&s.status!==K)),[n,S,m,K]),_=[{key:"edit",icon:lt,label:"Edit",onClick:s=>g(s.id)},{key:"playground",icon:at,label:"Playground",onClick:s=>o(s.id)},{key:"eval",icon:rt,label:"Eval",onClick:s=>f(s.id)}];c&&_.push({key:"delete",icon:dt,label:"Delete",danger:!0,onClick:s=>c(s.id)});let R=(0,X.useMemo)(()=>[{mode:"graph",icon:it,label:"Graph",render:()=>(0,C.jsx)(Kt,{assistants:r,onNodeClick:g})}],[r,g]);return(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)("span",{"data-testid":"agent-list-state","data-loading":String(d),"data-count":N.length,hidden:!0,"aria-hidden":"true"}),(0,C.jsx)(bt,{title:"Agents",itemName:"agent",items:N,loading:d,keyExtractor:s=>s.id,tabs:pn,activeTab:S,onTabChange:s=>H(s),headerLeft:(0,C.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[(0,C.jsx)(Ke,{value:m,onChange:I,options:F,placeholder:"Domain",allLabel:"All domains"}),(0,C.jsx)(Ke,{value:K,onChange:w,options:[{value:"enabled",label:"Enabled"},{value:"draft",label:"Draft"},{value:"disabled",label:"Disabled"}],placeholder:"Status",allLabel:"All statuses"})]}),renderIcon:s=>{let i=Me(Re(s.type).color);return(0,C.jsx)("div",{title:`${s.type} agent`,style:{width:32,height:32,borderRadius:8,background:`${i}1A`,color:i,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:(0,C.jsx)(De,{size:18})})},renderPrimary:s=>(0,C.jsx)("span",{"data-testid":"agent-name","data-agent-id":s.id,children:s.name}),renderSecondary:s=>s.description||void 0,renderDetails:s=>(0,C.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,C.jsxs)("div",{style:{display:"flex",gap:4,flexWrap:"wrap",alignItems:"center"},children:[s.tags.map(i=>(0,C.jsx)(Ie,{color:"magenta",style:{margin:0,borderRadius:10,border:"none"},children:i},i)),(0,C.jsx)(Ie,{color:Re(s.type).color,style:{margin:0,borderRadius:10,border:"none"},children:s.type})]}),(0,C.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexShrink:0},children:[(0,C.jsx)(Te,{title:`Status: ${s.status}`,children:(0,C.jsx)("span",{style:{width:8,height:8,borderRadius:"50%",background:Tt(s.status),display:"inline-block",cursor:"help"}})}),(0,C.jsx)("span",{style:{fontSize:12,color:"#8c8c8c"},children:s.version})]})]}),renderFooter:s=>(0,C.jsx)("div",{style:{borderTop:"1px dashed #f0f0f0",paddingTop:10},children:(0,C.jsx)(Vt,{stats:p?.[s.id]})}),itemActions:_,actionsStyle:"icon",actionsPosition:"hover",onItemClick:s=>g(s.id),createLabel:"New Agent",onCreateClick:k,viewModeExtensions:R,emptyIcon:(0,C.jsx)(De,{size:48,style:{opacity:.5}}),emptyTitle:"No agents yet",emptyDescription:'Click "New Agent" to create one'})]})};var b=x(ge());var ie=x(ge());var ye=x(E()),{Text:mn}=Y,zt=({onSelect:n,value:r,placeholder:p="Select a parent agent to extend..."})=>{let[d,g]=(0,ie.useState)([]),[o,f]=(0,ie.useState)(!1),{get:k}=fe(),c=(0,ie.useCallback)(async()=>{f(!0);try{let m=await k("/api/assistants");m.success&&g(m.data?.records||[])}catch(m){console.error("Failed to fetch assistants:",m)}finally{f(!1)}},[k]);return(0,ie.useEffect)(()=>{c()},[c]),(0,ye.jsx)(Se,{showSearch:!0,allowClear:!0,value:r,placeholder:p,loading:o,onChange:m=>{if(!m){n(null);return}let I=d.find(K=>K.id===m);n(I||null)},onDropdownVisibleChange:m=>{m&&c()},optionFilterProp:"label",style:{width:"100%"},options:d.map(m=>({value:m.id,label:m.name||m.id,description:m.description})),optionRender:m=>(0,ye.jsxs)("div",{children:[(0,ye.jsx)("div",{children:m.label}),m.data.description&&(0,ye.jsx)(mn,{type:"secondary",style:{fontSize:12},children:m.data.description})]})})};var O=x(E()),{Text:Ut}=Y,jt=({subAgentKeys:n,decisions:r,onChange:p})=>{let{token:d}=Ye.useToken(),g=(f,k)=>{let c=r.map(S=>S.originalKey===f?{...S,clone:k,cloneKey:k?`${f}_clone`:void 0}:S);p(c)},o=(f,k)=>{let c=r.map(S=>S.originalKey===f?{...S,cloneKey:k}:S);p(c)};return n.length===0?null:(0,O.jsxs)("div",{children:[(0,O.jsx)(Ut,{type:"secondary",style:{display:"block",marginBottom:8},children:"Choose how to handle each sub-agent from the parent:"}),(0,O.jsx)($e,{size:"small",bordered:!0,dataSource:r,style:{borderRadius:d.borderRadius},renderItem:f=>(0,O.jsxs)($e.Item,{style:{display:"flex",flexDirection:"column",alignItems:"stretch",gap:8,padding:"8px 16px"},children:[(0,O.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,O.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[f.clone?(0,O.jsx)(Ee,{style:{color:d.colorPrimary}}):(0,O.jsx)(tt,{style:{color:d.colorTextSecondary}}),(0,O.jsx)(Ut,{style:{fontFamily:"monospace"},children:f.originalKey})]}),(0,O.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,O.jsx)(Ie,{color:f.clone?"blue":"default",children:f.clone?"Clone as new":"Reuse"}),(0,O.jsx)(Je,{size:"small",checked:f.clone,onChange:k=>g(f.originalKey,k)})]})]}),f.clone&&(0,O.jsx)(V,{size:"small",placeholder:"Enter key for the cloned agent",value:f.cloneKey,onChange:k=>o(f.originalKey,k.target.value),style:{fontFamily:"monospace",fontSize:12},addonBefore:"Key"})]})})]})};function Ht(n){return n.mode!=="local"||n.templateKey||typeof n.executable=="string"&&n.executable.trim().length>0?null:"Choose a template or enter a custom executable"}var t=x(E()),{TextArea:Wt}=V,{Text:ee}=Y,qt="/.well-known/agent-card.json",gn=[{value:"http://",label:"http://"},{value:"https://",label:"https://"}],Zt={react:"Executor: Directly executes tasks using tools. Best for single-step operations like search, code execution, and data retrieval.",deep_agent:"Orchestrator: Manages a sequential todo list to plan and assign todo items to sub-agents. Best for structured multi-step workflows.",team:"Team: Creates tasks with dependencies and dynamically spawns teammates. Like a swarm, teammates communicate via mailbox. Best for tasks requiring exploration and divergent thinking.",processing:"Workflow: Enforces a fixed workflow topology by delegating to sub-agents in a predefined order. Best for deterministic multi-step processes with validated delegation paths.",a2a_remote:"A2A Remote: Delegates to an external A2A-compatible agent server. Use for local CLI tools (Claude Code, Codex, OpenCode) or remote agents."};function Jt(n,r,p="https://"){let d=String(n??"").trim();if(!d)return"";let g=r==="http://"||r==="https://"?r:p,f=(/^https?:\/\//i.test(d)?d:`${g}${d.replace(/^\/+/,"")}`).replace(/\/+$/,"");return f.endsWith(qt)?f:`${f}${qt}`}function un(n){try{return new URL(n).port||void 0}catch{return}}function fn(n){return n.some(r=>r==="--port"||r==="-p"||/^--port=/.test(r)||/^-p=/.test(r))}function Yt(n,r){let p=[...n.args],d=un(r);return d&&!fn(p)&&p.push("--port",d),{...n,args:p,...n.env?{env:{...n.env}}:{}}}var Qt=({open:n,onCancel:r,onSuccess:p,initialMode:d,initialValues:g})=>{let[o]=P.useForm(),[f,k]=(0,b.useState)(!1),[c,S]=(0,b.useState)("learn"),[H,m]=(0,b.useState)(""),[I,K]=(0,b.useState)(null),[w,F]=(0,b.useState)([]),N=P.useWatch("type",o)||"react",_=N==="a2a_remote",[R,s]=(0,b.useState)("remote"),[i,te]=(0,b.useState)(void 0),[le,he]=(0,b.useState)([]),[de,ce]=(0,b.useState)(!1),ne=(0,b.useRef)(0),[Ne,be]=(0,b.useState)(!1),[ae,W]=(0,b.useState)(!1),{get:Ae,post:q,put:z}=fe(),Le=Qe("agent-architect"),{workspaceId:pe,trainingProjects:me,loading:oe}=pt(),[Ce,xe]=(0,b.useState)(null),Be=JSON.stringify(g??null),L=me.find(e=>e.id===Ce)??me[0]??null,[we,ve]=(0,b.useState)([]),Pe=(0,b.useCallback)(()=>{K(null),F([])},[]),re=(0,b.useCallback)(()=>{o.resetFields(),Pe(),S("learn"),m(""),ve([]),xe(null),s("remote"),te(void 0),he([]),W(!1),be(!1)},[o,Pe]);(0,b.useEffect)(()=>{if(n){re(),S(d??"learn");let e=g?.a2aMode;(e==="remote"||e==="local")&&s(e),o.setFieldsValue({type:"react",agentCardProtocol:"https://",a2aMode:"remote",timeout:3e5,...g})}},[n,o,d,Be,re]),(0,b.useEffect)(()=>{let e=++ne.current,a=!0;return n&&_?(o.setFieldValue("prompt",""),R==="local"?(ce(!0),Ae("/api/local-a2a/templates").then(A=>{a&&e===ne.current&&A?.data?.records&&he(A.data.records)}).catch(()=>{a&&e===ne.current&&he([])}).finally(()=>{a&&e===ne.current&&ce(!1)})):ce(!1)):ce(!1),()=>{a=!1,ne.current+=1}},[o,_,R,Ae,n]);let l=le.find(e=>e.key===i),h=(0,b.useCallback)(()=>{let e=Ht({mode:R,templateKey:i,executable:o.getFieldValue("commandExecutable")});return e?(W(!0),o.setFields([{name:"commandExecutable",errors:[e]}]),v.warning(e),!1):!0},[R,i,o]);(0,b.useEffect)(()=>{l&&o.setFieldsValue({agentCardProtocol:"http://"})},[o,l]);let T=(0,b.useCallback)(async()=>{if(!h())return;let e=Jt(o.getFieldValue("agentCardUrl"),o.getFieldValue("agentCardProtocol"),R==="local"?"http://":"https://");if(!e){v.warning("Please enter an A2A server URL first");return}be(!0);try{let a={agentCardUrl:e,apiKey:o.getFieldValue("apiKey")};if(R==="local"){let y=l;if(y)a.localRuntime={label:o.getFieldValue("name")||void 0,agentCardUrl:e,command:Yt(y.command,e)};else{let B=o.getFieldValue("commandArgs")||"",j=B?B.split(/\s+/).filter(Boolean):[],D=String(o.getFieldValue(["command","cwd"])||"").trim();a.localRuntime={label:o.getFieldValue("name")||void 0,agentCardUrl:e,command:{executable:String(o.getFieldValue("commandExecutable")||"").trim(),args:j,...D?{cwd:D}:{}}}}}let A=await q("/api/a2a/test-connection",a);if(A.data?.reachable){let y=A.data.agentCard;v.success(`Connected to "${A.data.agentName||e}"`)}else v.error(A.data?.error||"Connection failed")}catch{v.error("Connection test failed")}finally{be(!1)}},[o,q,R,l,h]),U=(0,b.useCallback)(e=>{if(K(e),!e){o.resetFields(["key","name","description","type","prompt"]),F([]);return}let a=typeof e.graphDefinition=="object"&&e.graphDefinition!==null?e.graphDefinition:{},A=a.key||e.id,y=e.name||a.name||"";o.setFieldsValue({key:`${A}_ext`,name:y?`${y} (Extended)`:"",description:e.description||a.description||"",type:a.type||"react",prompt:a.prompt||""});let B=a.subAgents||[];F(B.map(j=>({originalKey:j,clone:!1})))},[o]),ke=async(e,a)=>{let A=await Ae(`/api/assistants/${e}`);if(!A.success)throw new Error(`Failed to fetch sub-agent "${e}" for cloning`);let y=A.data,B=typeof y.graphDefinition=="object"?y.graphDefinition:{},j={id:a,name:`${y.name} (Clone)`,description:y.description||"",graphDefinition:{...B,key:a,name:`${y.name} (Clone)`}},D=await q("/api/assistants",j);if(!D.success)throw new Error(D.message||`Failed to clone sub-agent "${e}"`);return D.data},tn=e=>{let a={id:e.key,name:e.name,description:e.description||"",graphDefinition:{key:e.key,name:e.name,description:e.description||"",type:e.type,prompt:e.prompt||"",tools:[],skills:[],subAgents:e.type==="deep_agent"||e.type==="processing"?[]:void 0,middleware:[]}};if(e.type==="a2a_remote"&&(a.graphDefinition.agentCardUrl=Jt(e.agentCardUrl,e.agentCardProtocol,(e.a2aMode||R)==="local"?"http://":"https://"),e.apiKey&&(a.graphDefinition.apiKey=e.apiKey),e.timeout&&(a.graphDefinition.timeout=e.timeout),(e.a2aMode||R)==="local")){let A=l;if(A)a.graphDefinition.localRuntime={label:e.name||void 0,agentCardUrl:a.graphDefinition.agentCardUrl,command:Yt(A.command,a.graphDefinition.agentCardUrl)};else{let y=e.commandArgs||"",B=y?y.split(/\s+/).filter(Boolean):[],j=String(e.command?.cwd||"").trim();a.graphDefinition.localRuntime={label:e.name||void 0,agentCardUrl:a.graphDefinition.agentCardUrl,command:{executable:String(e.commandExecutable||"").trim(),args:B,...j?{cwd:j}:{}}}}}return a},nn=async(e,a)=>{if(!I)throw new Error("No parent agent selected");let A=w.filter(D=>D.clone);for(let D of A){if(!D.cloneKey||!D.cloneKey.trim())throw new Error(`Please provide a key for the cloned sub-agent "${D.originalKey}"`);if(!/^[a-zA-Z][a-zA-Z0-9_-]*$/.test(D.cloneKey))throw new Error(`Invalid key "${D.cloneKey}" for cloned sub-agent "${D.originalKey}". Key must start with a letter and contain only letters, numbers, underscores, or hyphens.`)}let y=[];for(let D of w)if(D.clone){let rn=await ke(D.originalKey,D.cloneKey);a.push(rn),y.push(D.cloneKey)}else y.push(D.originalKey);let B=typeof I.graphDefinition=="object"?I.graphDefinition:{},j={key:e.key,name:e.name,description:e.description||"",extendsAgent:I.id,type:e.type||B.type};return e.prompt&&e.prompt!==B.prompt&&(j.prompt=e.prompt),(y.length>0||B.subAgents&&B.subAgents.length>0)&&(j.subAgents=y),{id:e.key,name:e.name,description:e.description||"",graphDefinition:j}},an=async()=>{if(c==="learn"){let e=H.trim();if(!e){v.error("Please describe the training goal");return}if(!L){v.error("No shared training project available");return}k(!0);try{let a=`agent-${Ft(e+Date.now())}`,A=await q("/api/assistants",{id:a,name:a,graphDefinition:{key:a,name:a,description:"",type:"react",prompt:"To be trained",metadata:{trainingProjectId:L.id,learningPlaceholder:"true",architectureStatus:"undecided"}}});if(!A.data)throw new Error("Failed to create agent");let{roundTaskId:y}=await Mt({goal:e,targetAgentId:a,workspaceId:pe??void 0,projectId:L.id,existingThreadId:Et(Le.tenantId,a),files:we,post:q,put:z});v.success("Agent created \u2014 architect started building"),m(""),ve([]),S("learn"),p?.(A.data,{initialMessage:Nt({goal:e,roundTaskId:y,targetAgentId:a,targetMode:"placeholder",files:we,projectId:L.id,workspaceId:L.workspaceId??pe??void 0}),projectId:L.id}),r()}catch(a){v.error(a instanceof Error?a.message:"Failed to create agent")}finally{k(!1)}return}try{if(c==="scratch"&&_&&!h())return;let e=await o.validateFields();k(!0);let a=[],A=c==="scratch"?tn(e):await nn(e,a),y=await q("/api/assistants",A);if(y.success){v.success(c==="extend"?`Assistant created by extending "${I?.name}"`:"Assistant created successfully"),re();for(let B of a)p?.(B);p?.(y.data),r()}else v.error(y.message||"Failed to create assistant")}catch(e){if(e?.errorFields){let a={key:"Key (ID)",name:"Name",description:"Description",prompt:"System Prompt"},A=e.errorFields.map(y=>a[String((y.name??[])[0])]??String((y.name??[])[0])).filter(Boolean);v.warning(A.length>0?`Please complete the required fields: ${[...new Set(A)].join(", ")}`:"Please complete the required fields");return}v.error(e.message||"An error occurred while creating the assistant")}finally{k(!1)}},He=I?.graphDefinition?.subAgents||[],on=c==="extend"&&I&&He.length>0;return(0,t.jsxs)(ue,{title:"Create New Assistant",open:n,onCancel:()=>{re(),r()},footer:[(0,t.jsx)(Z,{onClick:()=>{re(),r()},children:"Cancel"},"cancel"),(0,t.jsx)(Z,{type:"primary",icon:c==="extend"?(0,t.jsx)(Ee,{}):c==="learn"?(0,t.jsx)(et,{}):(0,t.jsx)(nt,{}),loading:f,disabled:c==="learn"&&(oe||!L),onClick:an,children:c==="extend"?"Create (Extend)":c==="learn"?"Start Learning":"Create"},"submit")],width:760,children:[c==="extend"&&(0,t.jsxs)("div",{style:{marginBottom:20},children:[(0,t.jsx)(ee,{type:"secondary",style:{display:"block",marginBottom:8},children:"Parent Agent"}),(0,t.jsx)(zt,{value:I?.id,onSelect:U}),I&&(0,t.jsx)(ee,{type:"secondary",style:{display:"block",marginTop:4,fontSize:12},children:"Fields left unchanged will be inherited from the parent agent."})]}),c==="extend"&&I&&(0,t.jsx)(Oe,{style:{margin:"12px 0"}}),c==="learn"&&(0,t.jsxs)("div",{children:[(0,t.jsx)(ee,{style:{display:"block",marginBottom:8},children:"Describe what the agent should do."}),(0,t.jsx)(V.TextArea,{rows:3,value:H,onChange:e=>m(e.target.value),placeholder:"e.g. Handle price disputes using the price protection policy"}),L&&(0,t.jsxs)("div",{style:{marginTop:12},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,marginBottom:8},children:[(0,t.jsx)(ee,{type:"secondary",children:"Reference Files"}),(0,t.jsx)(Ge,{project:L,projects:me,value:L?.id??null,onChange:xe,loading:oe})]}),(0,t.jsx)(Pt,{projectId:L.id,value:we,onChange:ve}),(0,t.jsx)(ee,{type:"secondary",style:{display:"block",marginTop:6,fontSize:12},children:"Optional \u2014 uploaded to the shared training workspace and attached to the learning round; the architect reads them as round material."})]}),!L&&!oe&&(0,t.jsx)("div",{style:{marginTop:12},children:(0,t.jsx)(Ge,{project:L,projects:me,value:null,onChange:xe,loading:oe})})]}),c!=="learn"&&(0,t.jsxs)(P,{form:o,layout:"vertical",autoComplete:"off",initialValues:{type:"react",agentCardProtocol:"https://",a2aMode:"remote"},children:[(0,t.jsx)(P.Item,{name:"key",label:"Key (ID)",rules:[{required:!0,message:"Please enter a unique key"},{pattern:/^[a-zA-Z][a-zA-Z0-9_-]*$/,message:"Key must start with a letter and contain only letters, numbers, underscores, or hyphens"}],style:{marginBottom:16},children:(0,t.jsx)(V,{placeholder:"e.g., my_assistant"})}),(0,t.jsx)(P.Item,{name:"name",label:"Name",rules:[{required:!0,message:"Please enter a name"}],style:{marginBottom:16},children:(0,t.jsx)(V,{placeholder:"e.g., My Assistant"})}),(0,t.jsx)(P.Item,{name:"description",label:"Description",rules:[{required:!0,message:"Please enter a description"}],style:{marginBottom:16},children:(0,t.jsx)(Wt,{placeholder:"Enter a description for this assistant...",autoSize:{minRows:2,maxRows:4}})}),(0,t.jsx)(P.Item,{name:"type",label:"Agent Type",rules:[{required:!0}],style:{marginBottom:16},children:(0,t.jsx)(We,{options:[{value:"react",label:"Executor"},{value:"deep_agent",label:"Orchestrator"},{value:"team",label:"Team"},{value:"processing",label:"Workflow"},{value:"a2a_remote",label:"A2A Remote"}],block:!0})}),(0,t.jsx)(ee,{type:"secondary",style:{fontSize:12,display:"block",marginTop:-12,marginBottom:16,lineHeight:1.5},children:Zt[N]||Zt.react}),_&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(P.Item,{label:"Connection Mode",style:{marginBottom:16},children:(0,t.jsxs)(Fe.Group,{value:R,onChange:e=>{let a=e.target.value;s(a),o.setFieldValue("a2aMode",a),a==="local"&&o.setFieldValue("agentCardProtocol","http://"),te(void 0)},optionType:"button",buttonStyle:"solid",children:[(0,t.jsx)(Fe.Button,{value:"remote",children:"Remote URL"}),(0,t.jsx)(Fe.Button,{value:"local",children:"Local Managed"})]})}),(0,t.jsx)(P.Item,{name:"a2aMode",noStyle:!0,hidden:!0,children:(0,t.jsx)(V,{})}),R==="local"&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(P.Item,{label:"Template",style:{marginBottom:16},children:(0,t.jsx)(Se,{placeholder:"Choose a template...",allowClear:!0,loading:de,value:i,onChange:e=>{te(e),e&&W(!1)},options:le.map(e=>({value:e.key,label:e.name||e.key})),notFoundContent:de?void 0:(0,t.jsx)(ee,{type:"secondary",style:{padding:8,display:"block"},children:'No templates. Use "Custom Command" below.'})})}),!i&&(0,t.jsx)(t.Fragment,{children:ae?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(P.Item,{name:"commandExecutable",label:"Executable",rules:[{required:!0,whitespace:!0,message:"Executable is required"}],style:{marginBottom:16},children:(0,t.jsx)(V,{placeholder:"e.g. node, opencode, /usr/local/bin/my-server"})}),(0,t.jsx)(P.Item,{name:"commandArgs",label:"Arguments",style:{marginBottom:16},children:(0,t.jsx)(V,{placeholder:"e.g. --serve --port 4301"})}),(0,t.jsx)(P.Item,{name:["command","cwd"],label:"Working directory",style:{marginBottom:16},children:(0,t.jsx)(V,{placeholder:"e.g. /Users/me/project"})}),(0,t.jsx)(Z,{type:"link",onClick:()=>{W(!1),o.setFieldsValue({commandExecutable:"",commandArgs:"",command:{cwd:void 0}})},style:{padding:0,marginBottom:16,display:"block"},children:"- Hide Custom Command"})]}):(0,t.jsx)(Z,{type:"link",onClick:()=>W(!0),style:{padding:0,marginBottom:16,display:"block"},children:"+ Custom Command"})})]}),(0,t.jsx)(P.Item,{label:"Agent Card URL",required:!0,style:{marginBottom:16},children:(0,t.jsxs)(Ze.Compact,{style:{width:"100%"},children:[(0,t.jsx)(P.Item,{name:"agentCardProtocol",noStyle:!0,children:(0,t.jsx)(Se,{style:{width:100},options:gn})}),(0,t.jsx)(P.Item,{name:"agentCardUrl",noStyle:!0,rules:[{required:!0,message:"Please enter the A2A server URL"}],children:(0,t.jsx)(V,{placeholder:R==="local"?"localhost:4301":"host:port or full URL"})}),(0,t.jsx)(Z,{icon:(0,t.jsx)(Xe,{}),onClick:T,loading:Ne,children:"Test"})]})}),R==="remote"&&(0,t.jsx)(P.Item,{name:"apiKey",label:"API Key (optional)",style:{marginBottom:16},children:(0,t.jsx)(V.Password,{placeholder:"API key for authentication"})}),(0,t.jsx)(P.Item,{name:"timeout",label:"Timeout (ms)",style:{marginBottom:16},initialValue:3e5,children:(0,t.jsx)(qe,{min:1e3,max:36e5,style:{width:"100%"},placeholder:"300000"})})]}),!_&&(0,t.jsx)(P.Item,{name:"prompt",label:c==="extend"&&I?"System Prompt (leave unchanged to inherit from parent)":"System Prompt",rules:c==="scratch"?[{required:!0,message:"Please enter a system prompt"}]:[],children:(0,t.jsx)(Wt,{placeholder:c==="extend"&&I?"Leave empty to inherit parent's prompt, or enter a new prompt to override...":"Enter the system prompt for this agent...",autoSize:{minRows:4,maxRows:8},style:{fontFamily:"monospace",fontSize:13,lineHeight:1.6}})})]}),on&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(Oe,{style:{margin:"12px 0"}}),(0,t.jsx)(ee,{strong:!0,style:{display:"block",marginBottom:8},children:"Sub-Agents"}),(0,t.jsx)(jt,{subAgentKeys:He,decisions:w,onChange:F})]})]})};var $=x(E()),{Paragraph:yn,Text:Xt}=Y,hn=[{key:"manual",icon:De,title:"Manual Configuration",description:"Define the agent's identity, type, tools, and system prompt yourself."},{key:"external",icon:ot,title:"External Agent",description:"Connect an existing A2A-compatible agent by URL or manage a local runtime."},{key:"learn",icon:st,title:"Learn with Agent Architect",description:"Describe the goal and let Agent Architect build and evaluate the agent with training context."}],en=({open:n,onCancel:r,onSelectMethod:p,focusTriggerAfterClose:d=!0})=>(0,$.jsx)(ue,{title:"Choose how to create your agent",open:n,onCancel:r,footer:null,width:560,centered:!0,destroyOnHidden:!0,focusTriggerAfterClose:d,children:(0,$.jsxs)("div",{style:{padding:"8px 4px 4px"},children:[(0,$.jsx)(yn,{style:{color:"#595959",fontSize:15,margin:"8px 0 24px"},children:"Choose the path that best fits the agent you want to build."}),(0,$.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:hn.map(g=>{let o=g.icon;return(0,$.jsxs)(Z,{type:"default",onClick:()=>p(g.key),"aria-label":g.title,style:{display:"flex",flexDirection:"row",alignItems:"center",gap:16,width:"100%",minHeight:88,height:"auto",padding:16,borderRadius:16,textAlign:"left",whiteSpace:"normal"},children:[(0,$.jsx)("div",{style:{width:40,height:40,borderRadius:12,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,color:"#6366f1",background:"#eeeeff"},children:(0,$.jsx)(o,{size:19})}),(0,$.jsxs)("div",{style:{minWidth:0},children:[(0,$.jsx)(Xt,{strong:!0,style:{display:"block",fontSize:15,marginBottom:3},children:g.title}),(0,$.jsx)(Xt,{style:{color:"#737373",lineHeight:1.5},children:g.description})]})]},g.key)})}),(0,$.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,flexWrap:"wrap",marginTop:24},children:(0,$.jsx)(Z,{onClick:r,children:"Not now"})})]})});var G=x(E()),bn=n=>{let r=n;if(typeof n=="string")try{r=JSON.parse(n)}catch{return{}}return r!==null&&typeof r=="object"&&!Array.isArray(r)?r:{}},Da=()=>{let{get:n,del:r,put:p}=fe(),[d,g]=(0,u.useState)([]),[o,f]=(0,u.useState)({}),[k,c]=(0,u.useState)(null),[S,H]=(0,u.useState)(!1),[m,I]=(0,u.useState)(null),[K,w]=(0,u.useState)("graph"),[F,N]=(0,u.useState)(null),[_,R]=(0,u.useState)(null),[s,i]=(0,u.useState)(!1),[te,le]=(0,u.useState)(!0),[he,de]=(0,u.useState)(!1),[ce,ne]=(0,u.useState)("learn"),[Ne,be]=(0,u.useState)({}),[ae,W]=(0,u.useState)(null),[Ae,q]=(0,u.useState)(!1),z=(0,u.useCallback)(async()=>{H(!0);try{let[l,h]=await Promise.all([n("/api/assistants"),n("/api/assistants/stats").catch(()=>null)]);if(l.success&&l.data?.records&&g(l.data.records),h?.success&&h.data?.records){let T={};for(let U of h.data.records)T[U.id]=U;f(T),c(h.cache?.expiresAt??null)}}catch{v.error("Failed to load agents")}finally{H(!1)}},[n]);(0,u.useEffect)(()=>{z()},[z]);let Le=u.default.useMemo(()=>It(d),[d]),pe=d.find(l=>l.id===m)??null,me=(0,u.useCallback)((l,h="graph")=>{I(l),w(h),N(null),R(null)},[]),oe=ht(),Ce=(0,u.useCallback)((l,h)=>{let T=d.find(U=>U.id===l)?.name??"Agent";oe({component_key:"agent_detail_side_app",data:{assistantId:l,initialTab:h},message:T})},[d,oe]),xe=(0,u.useCallback)(()=>{le(!0),i(!0)},[]),Be=(0,u.useCallback)(l=>{let T={manual:{mode:"scratch",values:{}},external:{mode:"scratch",values:{type:"a2a_remote"}},learn:{mode:"learn",values:{}}}[l];ne(T.mode),be(T.values),le(!1),i(!1),de(!0)},[]),L=(0,u.useCallback)(async(l,h)=>{let T=bn(l.graphDefinition),U;try{U=await p(`/api/assistants/${l.id}`,{name:h.name!==void 0?h.name:l.name,description:h.description!==void 0?h.description:l.description,graphDefinition:{...T,...h}})}catch(ke){throw v.error("Failed to save agent"),ke}if(!U.success)throw v.error("Failed to save agent"),new Error("Failed to save agent");v.success("Saved"),z()},[p,z]),we=(0,u.useCallback)(l=>{g(h=>h.map(T=>T.id===l.id?l:T))},[]),ve=(0,u.useCallback)(l=>{W(l)},[]),Pe=(0,u.useCallback)(async()=>{if(ae){q(!0);try{(await r(`/api/assistants/${ae}`)).success?(v.success("Agent deleted"),g(h=>h.filter(T=>T.id!==ae)),z(),W(null)):v.error("Failed to delete agent")}catch{v.error("Failed to delete agent")}finally{q(!1)}}},[ae,r,z]),re=(0,u.useCallback)(async l=>{if(!(await r(`/api/assistants/${l}`)).success)throw new Error("Failed to delete agent");v.success("Agent deleted"),g(T=>T.filter(U=>U.id!==l)),z()},[r,z]);return(0,G.jsxs)("div",{style:{height:"100%",background:"#fafafa",overflow:"hidden"},children:[pe?(0,G.jsx)(St,{defaultProjectId:_??void 0,children:(0,G.jsx)(Lt,{assistant:pe,allAssistants:d,onBack:()=>I(null),onDeleted:re,onSave:L,onAssistantUpdated:we,onAgentListInvalidated:z,initialTab:K,initialMessage:F,initialProjectId:_})},pe.id):(0,G.jsx)(G.Fragment,{children:(0,G.jsx)(Gt,{items:Le,assistants:d,stats:o,statsExpiresAt:k,loading:S,onItemClick:l=>Ce(l,"graph"),onOpenPlayground:l=>Ce(l,"playground"),onOpenEval:l=>Ce(l,"eval"),onCreate:xe,onDelete:ve})}),(0,G.jsx)(en,{open:s,onCancel:()=>{le(!0),i(!1)},onSelectMethod:Be,focusTriggerAfterClose:te}),(0,G.jsx)(Qt,{open:he,initialMode:ce,initialValues:Ne,onCancel:()=>de(!1),onSuccess:(l,h)=>{de(!1),g(T=>T.some(ke=>ke.id===l.id)?T:[l,...T]),me(l.id,"graph"),N(h?.initialMessage??null),R(h?.projectId??null),z()}}),(0,G.jsx)(ue,{title:"Delete Agent",open:ae!==null,onCancel:()=>W(null),onOk:Pe,okText:"Delete",okButtonProps:{danger:!0,loading:Ae},cancelText:"Cancel",children:(0,G.jsx)("p",{children:"This action cannot be undone."})})]})};export{Da as AgentGovernanceWorkbench};
@@ -0,0 +1 @@
1
+ .react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.x-markdown-debug-panel{position:fixed;z-index:9999;right:0;background:#000000d9;border-radius:8px;padding:12px;font-family:SF Mono,Monaco,Inconsolata,Fira Mono,Droid Sans Mono,Source Code Pro,monospace;font-size:12px;color:#fff;width:180px;box-shadow:0 2px 8px #00000026;backdrop-filter:blur(8px);user-select:none;transition:box-shadow .2s}.x-markdown-debug-panel:hover{box-shadow:0 4px 12px #00000040}.x-markdown-debug-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.x-markdown-debug-row:last-child{margin-bottom:0}.x-markdown-debug-label{color:#ffffffa6;font-weight:500;min-width:60px}.x-markdown-debug-value{font-weight:600;min-width:50px;text-align:right}.x-markdown-debug-chart{margin-left:auto}.x-markdown-debug-actions{display:flex;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.1)}.x-markdown-debug-action{flex:1;padding:6px 12px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#fff;font-size:11px;font-family:inherit;cursor:pointer;transition:all .2s;font-weight:500}.x-markdown-debug-action:hover{background:#ffffff26;border-color:#ffffff4d}.x-markdown-debug-action:active{transform:scale(.98)}.x-markdown-debug-record-btn.recording{background:#ff4d4f33;border-color:#ff4d4f;animation:recording-pulse 1.5s ease-in-out infinite}@keyframes recording-pulse{0%,to{box-shadow:0 0 #ff4d4f66}50%{box-shadow:0 0 0 8px #ff4d4f00}}.x-markdown-debug-modal-overlay{position:fixed;inset:0;background:#000000bf;backdrop-filter:blur(4px);z-index:10000;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.x-markdown-debug-modal{background:#1e1e1ef2;border-radius:12px;box-shadow:0 8px 32px #0006;max-width:90vw;max-height:90vh;overflow:auto;animation:slideIn .3s ease-out;border:1px solid rgba(255,255,255,.1)}@keyframes slideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.x-markdown-debug-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid rgba(255,255,255,.1)}.x-markdown-debug-close-btn{width:32px;height:32px;border-radius:6px;background:#ffffff1a;border:none;color:#fff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.x-markdown-debug-close-btn:hover{background:#ff4d4f4d}.x-markdown-debug-modal-content{padding:24px}.x-markdown-debug-stats-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.x-markdown-debug-stat-item{background:#ffffff0d;border-radius:8px;padding:16px;border:1px solid rgba(255,255,255,.1)}.x-markdown-debug-stat-label{font-size:11px;color:#fff9;margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.x-markdown-debug-stat-value{font-size:20px;font-weight:700;color:#fff}.x-markdown-debug-chart-full{background:#ffffff05;border-radius:8px;border:1px solid rgba(255,255,255,.1)}.x-markdown-debug-chart-full .fps-line,.x-markdown-debug-chart-full .memory-line{filter:drop-shadow(0 0 4px currentColor)}.x-markdown-debug-legend{display:flex;gap:24px;justify-content:center;margin-top:16px}.x-markdown-debug-legend-item{display:flex;align-items:center;gap:8px;font-size:13px;color:#fffc}.x-markdown-debug-legend-color{width:12px;height:12px;border-radius:2px}@media (max-width: 768px){.x-markdown-debug-stats-summary{grid-template-columns:repeat(2,1fr)}}@keyframes x-markdown-fade-in{0%{opacity:0}to{opacity:1}}.x-markdown{--text-color: inherit;--font-size: inherit;--margin-block: 0 0 1em 0;--td-th-padding: .85em 1em;--pre-th-td-padding: 2px 0;--border-font-weight: 600;--padding-ul-ol: 0 0 0 1em;--margin-ul-ol: 0 0 1em 1.8em;--margin-li: .25em 0;--margin-pre: 1em 0;--padding-code-inline: .2em .4em;--margin-code-inline: 0 .2em;--code-inline-text: .85em;--small-border-radius: 2px;--image-margin: .5em 0;--hr-margin: 1.5em 0;--table-margin: 1em 0;font-size:var(--font-size);line-height:1.5714285714285714;width:100%;color:var(--text-color)}.x-markdown p,.x-markdown div,.x-markdown span,.x-markdown li{word-break:break-word;overflow-wrap:break-word}.x-markdown pre,.x-markdown code{word-break:break-word;overflow-wrap:break-word;white-space:pre-wrap}.x-markdown th,.x-markdown td{padding:var(--td-th-padding)}.x-markdown th{font-weight:var(--border-font-weight)}.x-markdown pre table{box-shadow:none}.x-markdown pre td,.x-markdown pre th{padding:var(--pre-th-td-padding);border:none;text-align:left}.x-markdown p{margin:var(--margin-block)}.x-markdown p:first-child{margin-top:0}.x-markdown p:last-child{margin-bottom:0}.x-markdown ul,.x-markdown ol{margin:var(--margin-ul-ol);padding:var(--padding-ul-ol)}.x-markdown ul:first-child,.x-markdown ol:first-child{margin-top:0}.x-markdown ul:last-child,.x-markdown ol:last-child{margin-bottom:0}.x-markdown ol>li{list-style:decimal}.x-markdown ul>li{list-style:disc}.x-markdown li{margin:var(--margin-li)}.x-markdown li:first-child{margin-top:0}.x-markdown li:last-child{margin-bottom:0}.x-markdown pre{margin:var(--margin-pre);overflow-x:auto}.x-markdown pre:first-child{margin-top:0}.x-markdown pre:last-child{margin-bottom:0}.x-markdown code{padding:var(--padding-code-inline);margin:var(--margin-code-inline);font-size:var(--code-inline-text);border-radius:var(--small-border-radius)}.x-markdown pre code{padding:0;margin:0;font-size:inherit;border-radius:0;line-height:2}.x-markdown img{max-width:100%;height:auto;margin:var(--image-margin)}.x-markdown hr{margin:var(--hr-margin)}.x-markdown table:not(pre){margin:var(--table-margin);border-collapse:collapse;display:block;width:max-content;max-width:100%;overflow:auto}.x-markdown table:not(pre):first-child{margin-top:0}.x-markdown table:not(pre):last-child{margin-bottom:0}.x-markdown .inline-katex .katex-display{display:inline-block;margin:0;text-align:initial;vertical-align:middle}.x-markdown .inline-katex .katex-display>.katex{display:inline-block;text-align:initial;white-space:normal}.x-markdown .inline-katex .katex-display>.katex>.katex-html{display:inline-block;position:static}.x-markdown .inline-katex .katex-display>.katex>.katex-html>.tag{position:static}.diff-container{border-collapse:collapse;background:var(--diffViewerBackground);color:var(--diffViewerColor);width:100%}.diff-container pre{white-space:pre-wrap;margin:0;line-height:25px}.diff-container.light-theme{--diffViewerBackground: #fff;--diffViewerColor: #212529;--addedBackground: #e6ffed;--addedColor: #24292e;--removedBackground: #ffeef0;--removedColor: #24292e;--wordAddedBackground: #acf2bd;--wordRemovedBackground: #fdb8c0;--addedGutterBackground: #cdffd8;--removedGutterBackground: #ffdce0;--gutterBackground: #f7f7f7;--gutterBackgroundDark: #f3f1f1;--highlightBackground: #fffbdd;--highlightGutterBackground: #fff5b1;--codeFoldGutterBackground: #dbedff;--codeFoldBackground: #f1f8ff;--emptyLineBackground: #fafbfc;--gutterColor: #212529;--addedGutterColor: #212529;--removedGutterColor: #212529;--codeFoldContentColor: #212529;--diffViewerTitleBackground: #fafbfc;--diffViewerTitleColor: #212529;--diffViewerTitleBorderColor: #eee}.diff-container.dark-theme{--diffViewerBackground: #2e303c;--diffViewerColor: #fff;--addedBackground: #044b53;--addedColor: white;--removedBackground: #632f34;--removedColor: white;--wordAddedBackground: #055d67;--wordRemovedBackground: #7d383f;--addedGutterBackground: #034148;--removedGutterBackground: #632b30;--gutterBackground: #2c2f3a;--gutterBackgroundDark: #262933;--highlightBackground: #2a3967;--highlightGutterBackground: #2d4077;--codeFoldGutterBackground: #21232b;--codeFoldBackground: #262831;--emptyLineBackground: #363946;--gutterColor: #464c67;--addedGutterColor: #8c8c8c;--removedGutterColor: #8c8c8c;--codeFoldContentColor: #555a7b;--diffViewerTitleBackground: #2f323e;--diffViewerTitleColor: #555a7b;--diffViewerTitleBorderColor: #353846}.diff-container .gutter{background-color:var(--gutterBackground)}.diff-container .gutter:hover{background-color:var(--gutterBackgroundDark)}.diff-container .diff-added{background-color:var(--addedBackground);color:var(--addedColor)}.diff-container .diff-added pre{color:var(--addedColor)}.diff-container .diff-removed{background-color:var(--removedBackground);color:var(--removedColor)}.diff-container .diff-removed pre{color:var(--removedColor)}.diff-container .gutter.diff-added{background-color:var(--addedGutterBackground)}.diff-container .gutter.diff-added .line-number{color:var(--addedGutterColor)}.diff-container .gutter.diff-removed{background-color:var(--removedGutterBackground)}.diff-container .gutter.diff-removed .line-number{color:var(--removedGutterColor)}.diff-container .line-number{color:var(--gutterColor)}.diff-container .word-diff.word-added{background-color:var(--wordAddedBackground)}.diff-container .word-diff.word-removed{background-color:var(--wordRemovedBackground)}.diff-container .highlighted-line{background-color:var(--highlightBackground)}.diff-container .highlighted-gutter{background-color:var(--highlightGutterBackground)!important}.diff-container .code-fold-gutter{background-color:var(--codeFoldGutterBackground)}.diff-container .code-fold{background-color:var(--codeFoldBackground)}.diff-container .code-fold .code-fold-content{color:var(--codeFoldContentColor)}.diff-container .empty-line{background-color:var(--emptyLineBackground)}.diff-container .title-block{background-color:var(--diffViewerTitleBackground);border-bottom-color:var(--diffViewerTitleBorderColor)}.diff-container .title-block .content-text{color:var(--diffViewerTitleColor)}.diff-container .title-block:last-child{border-left-color:var(--diffViewerTitleBorderColor)}.diff-container .line{vertical-align:baseline}.diff-container .content{width:100%}.diff-container .split-view .content{width:50%}.diff-container .gutter{user-select:none;text-align:right;min-width:50px;padding:0 10px}.diff-container .gutter:hover{cursor:pointer}.diff-container .gutter:hover pre{opacity:1}.diff-container .gutter pre{opacity:.5}.diff-container .empty-gutter .gutter:hover{background:inherit;cursor:initial}.diff-container .marker{user-select:none;width:25px;padding-left:10px;padding-right:10px}.diff-container .word-diff{display:inline-flex;border-radius:1px;padding:2px}.diff-container .code-fold{height:40px;font-size:14px;font-weight:700}.diff-container .code-fold a{cursor:pointer;text-decoration:underline!important}.diff-container .code-fold a pre{display:inline}.diff-container .title-block{border-bottom:1px solid;padding:10px}.diff-container .title-block:last-child{border-left:1px solid}.diff-container .highlighted-line .word-diff.word-added{background-color:var(--wordAddedBackground)}.diff-container .highlighted-line .word-diff.word-removed{background-color:var(--wordRemovedBackground)}
@@ -0,0 +1 @@
1
+ import{s as C}from"./embed-page-chunk-OOZDPBUK.js";import{Va as v}from"./embed-page-chunk-OWGBADV6.js";import{a as w}from"./embed-page-chunk-4X5XHAMX.js";import{a as x}from"./embed-page-chunk-MB65DZAX.js";import"./embed-page-chunk-VW3NF5NT.js";import"./embed-page-chunk-5JDQ456X.js";import"./embed-page-chunk-ESLOGPBN.js";import{ga as b}from"./embed-page-chunk-KG5A66WX.js";import{a as D}from"./embed-page-chunk-4BKXE5ON.js";import"./embed-page-chunk-IX4WLWCY.js";import"./embed-page-chunk-EUOOO2LS.js";import{e as d}from"./embed-page-chunk-6Y3UYJ6Z.js";var c=d(D());var E=d(w());var f=d(x());function p(s){if(!s||s.length===0)return{title:{text:"Chart",left:"left"},tooltip:{trigger:"axis"},legend:{right:0,orient:"vertical"},xAxis:{type:"category",data:[]},yAxis:{type:"value"},series:[{type:"line",name:"Series 1",data:[]}],grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0}};let i=s[0],t=Object.keys(i);if(t.length===0)return p([]);let r=t.filter(e=>{let n=i[e];return typeof n=="number"||!isNaN(Number(n))});if(r.length>0){let e=r[0],n=t.find(a=>!r.includes(a))||t[0],o=s.map((a,l)=>a[n]!==void 0?String(a[n]):`Item ${l+1}`),u=s.map(a=>{let l=a[e];return typeof l=="number"?l:Number(l)||0});return{title:{text:"Chart",left:"left"},tooltip:{trigger:"axis"},legend:{right:0,orient:"vertical",data:[e]},xAxis:{type:"category",data:o},yAxis:{type:"value"},series:[{type:"line",name:e,data:u}],grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0}}}return{title:{text:"Chart",left:"left"},tooltip:{trigger:"axis"},legend:{right:0,orient:"vertical"},xAxis:{type:"category",data:s.map((e,n)=>`Item ${n+1}`)},yAxis:{type:"value"},series:[{type:"bar",name:"Count",data:s.map(()=>1)}],grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0}}}function S(s){if(!s||typeof s!="object"||!s.series||!Array.isArray(s.series)||s.series.length===0)return null;let i=s.series.map((e,n)=>{if(!e||typeof e!="object"||!e.type||!e.data||!Array.isArray(e.data)||e.data.length===0)return null;let o={...e,name:e.name||`Series ${n+1}`};if(e.type==="pie"){let u=e.data.map((a,l)=>typeof a=="object"&&a!==null&&"value"in a?{value:a.value,name:a.name||`Item ${l+1}`}:typeof a=="number"?{value:a,name:`Item ${l+1}`}:null).filter(a=>a!==null);return u.length===0?null:{...o,data:u}}return o}).filter(e=>e!==null);if(i.length===0)return null;let t={...s,series:i},r=i[0].type;if(r!=="pie"){if(!t.xAxis)t.xAxis={type:"category",data:[]};else if(typeof t.xAxis=="object"&&!Array.isArray(t.xAxis)){let e=t.xAxis;if(e.type||(e.type="category"),e.type==="category"&&!e.data){let n=i[0].data;Array.isArray(n)&&n.length>0?Array.isArray(n[0])?e.data=n.map(o=>o[0]):e.data=n.map((o,u)=>`Item ${u+1}`):e.data=[]}t.xAxis=e}t.yAxis?typeof t.yAxis=="object"&&!Array.isArray(t.yAxis)&&(t.yAxis.type||(t.yAxis.type="value")):t.yAxis={type:"value"}}if(!t.title)t.title={text:"Chart",left:"left"};else if(typeof t.title=="object"){let e=t.title;e.left||(e.left="left"),e.text||(e.text="Chart"),t.title=e}if(t.tooltip||(t.tooltip={trigger:r==="pie"?"item":"axis"}),!t.legend)i.length>1&&(t.legend={right:0,orient:"vertical"});else if(typeof t.legend=="object"){let e=t.legend;t.legend=e}return r!=="pie"&&!t.grid&&(t.grid={left:"3%",right:"4%",bottom:"3%",containLabel:!0}),t}function j(s){let i=null;try{let n=typeof s=="string"?s:s.join("");i=(0,E.parse)(n)}catch(n){return{data:null,error:`Failed to parse JSON: ${n instanceof Error?n.message:String(n)}`}}if(!i||typeof i!="object")return{data:null,error:"Parsed data is not an object"};let t=i.series&&Array.isArray(i.series)&&i.series.length>0,r={table:Array.isArray(i.table)?i.table:void 0},e=null;if(i.echarts?e=i.echarts:t&&(e=i),e){let n=S(e);if(n)r.echarts=n;else if(r.table&&r.table.length>0)r.echarts=p(r.table);else return{data:null,error:"ECharts configuration is invalid or incomplete. Required: series array with at least one series containing type and data."}}else r.table&&r.table.length>0?r.echarts=p(r.table):r.echarts=p([]);return{data:r,error:null}}var T=s=>{let{children:i}=s,t=(0,c.useRef)(null),r=(0,c.useRef)(null),e=(0,c.useRef)(null),[n,o]=(0,c.useState)(null);(0,c.useEffect)(()=>{if(!t.current)return;r.current||(r.current=C(t.current));let a=null;if((typeof i=="string"||Array.isArray(i))&&(a=i),!a){r.current&&r.current.clear(),o(null);return}let{data:l,error:g}=j(a);if(g||!l){console.warn("ReactChart failed to parse chart data:",g||"Unknown parse error"),r.current&&r.current.clear(),o(null);return}if(l.table&&Array.isArray(l.table)&&o(l.table),l.echarts)try{r.current.setOption(l.echarts,!0)}catch(h){let m=h instanceof Error?h.message:"Failed to render chart";console.error("Failed to set ECharts option:",h),r.current&&r.current.clear(),o(null)}let y=()=>{r.current&&r.current.resize()};return e.current&&(e.current.disconnect(),e.current=null),t.current&&typeof ResizeObserver<"u"&&(e.current=new ResizeObserver(h=>{requestAnimationFrame(()=>{y()})}),e.current.observe(t.current)),window.addEventListener("resize",y),()=>{e.current&&(e.current.disconnect(),e.current=null),window.removeEventListener("resize",y)}},[i]),(0,c.useEffect)(()=>()=>{e.current&&(e.current.disconnect(),e.current=null),r.current&&(r.current.dispose(),r.current=null)},[]);let u=a=>{if(!a||a.length===0)return[];if(Array.isArray(a[0])){let l=a[0];return a.slice(1).map((y,h)=>{let m={};return y.forEach((R,A)=>{m[l[A]||`col_${A}`]=R}),m})}return a};return(0,f.jsxs)(b,{children:[(0,f.jsx)("div",{ref:t,style:{width:"100%",height:"400px",minHeight:"300px"}}),n&&n.length>0&&(0,f.jsx)("div",{style:{marginTop:16},children:(0,f.jsx)(v,{component_key:"chart_table_data",data:{dataSource:u(n),message:"Data Details"},interactive:!0,default_open_in_side_app:!0})})]})};export{T as ReactChart};
@@ -0,0 +1 @@
1
+ .x-markdown-debug-panel{position:fixed;z-index:9999;right:0;background:#000000d9;border-radius:8px;padding:12px;font-family:SF Mono,Monaco,Inconsolata,Fira Mono,Droid Sans Mono,Source Code Pro,monospace;font-size:12px;color:#fff;width:180px;box-shadow:0 2px 8px #00000026;backdrop-filter:blur(8px);user-select:none;transition:box-shadow .2s}.x-markdown-debug-panel:hover{box-shadow:0 4px 12px #00000040}.x-markdown-debug-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.x-markdown-debug-row:last-child{margin-bottom:0}.x-markdown-debug-label{color:#ffffffa6;font-weight:500;min-width:60px}.x-markdown-debug-value{font-weight:600;min-width:50px;text-align:right}.x-markdown-debug-chart{margin-left:auto}.x-markdown-debug-actions{display:flex;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.1)}.x-markdown-debug-action{flex:1;padding:6px 12px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#fff;font-size:11px;font-family:inherit;cursor:pointer;transition:all .2s;font-weight:500}.x-markdown-debug-action:hover{background:#ffffff26;border-color:#ffffff4d}.x-markdown-debug-action:active{transform:scale(.98)}.x-markdown-debug-record-btn.recording{background:#ff4d4f33;border-color:#ff4d4f;animation:recording-pulse 1.5s ease-in-out infinite}@keyframes recording-pulse{0%,to{box-shadow:0 0 #ff4d4f66}50%{box-shadow:0 0 0 8px #ff4d4f00}}.x-markdown-debug-modal-overlay{position:fixed;inset:0;background:#000000bf;backdrop-filter:blur(4px);z-index:10000;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.x-markdown-debug-modal{background:#1e1e1ef2;border-radius:12px;box-shadow:0 8px 32px #0006;max-width:90vw;max-height:90vh;overflow:auto;animation:slideIn .3s ease-out;border:1px solid rgba(255,255,255,.1)}@keyframes slideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.x-markdown-debug-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid rgba(255,255,255,.1)}.x-markdown-debug-close-btn{width:32px;height:32px;border-radius:6px;background:#ffffff1a;border:none;color:#fff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.x-markdown-debug-close-btn:hover{background:#ff4d4f4d}.x-markdown-debug-modal-content{padding:24px}.x-markdown-debug-stats-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.x-markdown-debug-stat-item{background:#ffffff0d;border-radius:8px;padding:16px;border:1px solid rgba(255,255,255,.1)}.x-markdown-debug-stat-label{font-size:11px;color:#fff9;margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.x-markdown-debug-stat-value{font-size:20px;font-weight:700;color:#fff}.x-markdown-debug-chart-full{background:#ffffff05;border-radius:8px;border:1px solid rgba(255,255,255,.1)}.x-markdown-debug-chart-full .fps-line,.x-markdown-debug-chart-full .memory-line{filter:drop-shadow(0 0 4px currentColor)}.x-markdown-debug-legend{display:flex;gap:24px;justify-content:center;margin-top:16px}.x-markdown-debug-legend-item{display:flex;align-items:center;gap:8px;font-size:13px;color:#fffc}.x-markdown-debug-legend-color{width:12px;height:12px;border-radius:2px}@media (max-width: 768px){.x-markdown-debug-stats-summary{grid-template-columns:repeat(2,1fr)}}@keyframes x-markdown-fade-in{0%{opacity:0}to{opacity:1}}.x-markdown{--text-color: inherit;--font-size: inherit;--margin-block: 0 0 1em 0;--td-th-padding: .85em 1em;--pre-th-td-padding: 2px 0;--border-font-weight: 600;--padding-ul-ol: 0 0 0 1em;--margin-ul-ol: 0 0 1em 1.8em;--margin-li: .25em 0;--margin-pre: 1em 0;--padding-code-inline: .2em .4em;--margin-code-inline: 0 .2em;--code-inline-text: .85em;--small-border-radius: 2px;--image-margin: .5em 0;--hr-margin: 1.5em 0;--table-margin: 1em 0;font-size:var(--font-size);line-height:1.5714285714285714;width:100%;color:var(--text-color)}.x-markdown p,.x-markdown div,.x-markdown span,.x-markdown li{word-break:break-word;overflow-wrap:break-word}.x-markdown pre,.x-markdown code{word-break:break-word;overflow-wrap:break-word;white-space:pre-wrap}.x-markdown th,.x-markdown td{padding:var(--td-th-padding)}.x-markdown th{font-weight:var(--border-font-weight)}.x-markdown pre table{box-shadow:none}.x-markdown pre td,.x-markdown pre th{padding:var(--pre-th-td-padding);border:none;text-align:left}.x-markdown p{margin:var(--margin-block)}.x-markdown p:first-child{margin-top:0}.x-markdown p:last-child{margin-bottom:0}.x-markdown ul,.x-markdown ol{margin:var(--margin-ul-ol);padding:var(--padding-ul-ol)}.x-markdown ul:first-child,.x-markdown ol:first-child{margin-top:0}.x-markdown ul:last-child,.x-markdown ol:last-child{margin-bottom:0}.x-markdown ol>li{list-style:decimal}.x-markdown ul>li{list-style:disc}.x-markdown li{margin:var(--margin-li)}.x-markdown li:first-child{margin-top:0}.x-markdown li:last-child{margin-bottom:0}.x-markdown pre{margin:var(--margin-pre);overflow-x:auto}.x-markdown pre:first-child{margin-top:0}.x-markdown pre:last-child{margin-bottom:0}.x-markdown code{padding:var(--padding-code-inline);margin:var(--margin-code-inline);font-size:var(--code-inline-text);border-radius:var(--small-border-radius)}.x-markdown pre code{padding:0;margin:0;font-size:inherit;border-radius:0;line-height:2}.x-markdown img{max-width:100%;height:auto;margin:var(--image-margin)}.x-markdown hr{margin:var(--hr-margin)}.x-markdown table:not(pre){margin:var(--table-margin);border-collapse:collapse;display:block;width:max-content;max-width:100%;overflow:auto}.x-markdown table:not(pre):first-child{margin-top:0}.x-markdown table:not(pre):last-child{margin-bottom:0}.x-markdown .inline-katex .katex-display{display:inline-block;margin:0;text-align:initial;vertical-align:middle}.x-markdown .inline-katex .katex-display>.katex{display:inline-block;text-align:initial;white-space:normal}.x-markdown .inline-katex .katex-display>.katex>.katex-html{display:inline-block;position:static}.x-markdown .inline-katex .katex-display>.katex>.katex-html>.tag{position:static}.diff-container{border-collapse:collapse;background:var(--diffViewerBackground);color:var(--diffViewerColor);width:100%}.diff-container pre{white-space:pre-wrap;margin:0;line-height:25px}.diff-container.light-theme{--diffViewerBackground: #fff;--diffViewerColor: #212529;--addedBackground: #e6ffed;--addedColor: #24292e;--removedBackground: #ffeef0;--removedColor: #24292e;--wordAddedBackground: #acf2bd;--wordRemovedBackground: #fdb8c0;--addedGutterBackground: #cdffd8;--removedGutterBackground: #ffdce0;--gutterBackground: #f7f7f7;--gutterBackgroundDark: #f3f1f1;--highlightBackground: #fffbdd;--highlightGutterBackground: #fff5b1;--codeFoldGutterBackground: #dbedff;--codeFoldBackground: #f1f8ff;--emptyLineBackground: #fafbfc;--gutterColor: #212529;--addedGutterColor: #212529;--removedGutterColor: #212529;--codeFoldContentColor: #212529;--diffViewerTitleBackground: #fafbfc;--diffViewerTitleColor: #212529;--diffViewerTitleBorderColor: #eee}.diff-container.dark-theme{--diffViewerBackground: #2e303c;--diffViewerColor: #fff;--addedBackground: #044b53;--addedColor: white;--removedBackground: #632f34;--removedColor: white;--wordAddedBackground: #055d67;--wordRemovedBackground: #7d383f;--addedGutterBackground: #034148;--removedGutterBackground: #632b30;--gutterBackground: #2c2f3a;--gutterBackgroundDark: #262933;--highlightBackground: #2a3967;--highlightGutterBackground: #2d4077;--codeFoldGutterBackground: #21232b;--codeFoldBackground: #262831;--emptyLineBackground: #363946;--gutterColor: #464c67;--addedGutterColor: #8c8c8c;--removedGutterColor: #8c8c8c;--codeFoldContentColor: #555a7b;--diffViewerTitleBackground: #2f323e;--diffViewerTitleColor: #555a7b;--diffViewerTitleBorderColor: #353846}.diff-container .gutter{background-color:var(--gutterBackground)}.diff-container .gutter:hover{background-color:var(--gutterBackgroundDark)}.diff-container .diff-added{background-color:var(--addedBackground);color:var(--addedColor)}.diff-container .diff-added pre{color:var(--addedColor)}.diff-container .diff-removed{background-color:var(--removedBackground);color:var(--removedColor)}.diff-container .diff-removed pre{color:var(--removedColor)}.diff-container .gutter.diff-added{background-color:var(--addedGutterBackground)}.diff-container .gutter.diff-added .line-number{color:var(--addedGutterColor)}.diff-container .gutter.diff-removed{background-color:var(--removedGutterBackground)}.diff-container .gutter.diff-removed .line-number{color:var(--removedGutterColor)}.diff-container .line-number{color:var(--gutterColor)}.diff-container .word-diff.word-added{background-color:var(--wordAddedBackground)}.diff-container .word-diff.word-removed{background-color:var(--wordRemovedBackground)}.diff-container .highlighted-line{background-color:var(--highlightBackground)}.diff-container .highlighted-gutter{background-color:var(--highlightGutterBackground)!important}.diff-container .code-fold-gutter{background-color:var(--codeFoldGutterBackground)}.diff-container .code-fold{background-color:var(--codeFoldBackground)}.diff-container .code-fold .code-fold-content{color:var(--codeFoldContentColor)}.diff-container .empty-line{background-color:var(--emptyLineBackground)}.diff-container .title-block{background-color:var(--diffViewerTitleBackground);border-bottom-color:var(--diffViewerTitleBorderColor)}.diff-container .title-block .content-text{color:var(--diffViewerTitleColor)}.diff-container .title-block:last-child{border-left-color:var(--diffViewerTitleBorderColor)}.diff-container .line{vertical-align:baseline}.diff-container .content{width:100%}.diff-container .split-view .content{width:50%}.diff-container .gutter{user-select:none;text-align:right;min-width:50px;padding:0 10px}.diff-container .gutter:hover{cursor:pointer}.diff-container .gutter:hover pre{opacity:1}.diff-container .gutter pre{opacity:.5}.diff-container .empty-gutter .gutter:hover{background:inherit;cursor:initial}.diff-container .marker{user-select:none;width:25px;padding-left:10px;padding-right:10px}.diff-container .word-diff{display:inline-flex;border-radius:1px;padding:2px}.diff-container .code-fold{height:40px;font-size:14px;font-weight:700}.diff-container .code-fold a{cursor:pointer;text-decoration:underline!important}.diff-container .code-fold a pre{display:inline}.diff-container .title-block{border-bottom:1px solid;padding:10px}.diff-container .title-block:last-child{border-left:1px solid}.diff-container .highlighted-line .word-diff.word-added{background-color:var(--wordAddedBackground)}.diff-container .highlighted-line .word-diff.word-removed{background-color:var(--wordRemovedBackground)}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}