@auto-ai/agent 2.1.168 → 2.1.172

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 (482) hide show
  1. package/dist/{404 → safe-a/404}/index.html +1 -1
  2. package/dist/{404.html → safe-a/404.html} +1 -1
  3. package/dist/safe-a/_next/static/chunks/08ce2af10358a8ab.js +1 -0
  4. package/dist/safe-a/_next/static/chunks/10f9223e5a712af5.css +1 -0
  5. package/dist/safe-a/_next/static/chunks/26aeb1c7cdca0bc7.js +1 -0
  6. package/dist/safe-a/_next/static/chunks/3051ec76bf1f7867.js +1 -0
  7. package/dist/safe-a/_next/static/chunks/4a33b6b9bc52fb1a.js +1 -0
  8. package/dist/safe-a/_next/static/chunks/53a59aecd3e0dfb5.js +1 -0
  9. package/dist/safe-a/_next/static/chunks/5ef8399eb6496949.js +1 -0
  10. package/dist/{_next/static/chunks/d55f4f3df263ad3d.js → safe-a/_next/static/chunks/8cccc3fe71fa849b.js} +1 -1
  11. package/dist/{_next/static/chunks/886a31720c72a306.css → safe-a/_next/static/chunks/98fff38c6425a797.css} +1 -1
  12. package/dist/{_next/static/chunks/b66a17ae6f8aeff3.js → safe-a/_next/static/chunks/bbf364bb7f0ab6f7.js} +1 -1
  13. package/dist/safe-a/_next/static/chunks/d704441569a382a1.js +1 -0
  14. package/dist/safe-a/_next/static/chunks/eac98d693efb6a1f.js +1 -0
  15. package/dist/safe-a/_next/static/chunks/f874690806ec289e.js +1 -0
  16. package/dist/{index.html → safe-a/index.html} +2 -2
  17. package/dist/{index.txt → safe-a/index.txt} +9 -9
  18. package/dist/{manage → safe-a/manage}/about/index.html +2 -2
  19. package/dist/{manage → safe-a/manage}/about/index.txt +11 -11
  20. package/dist/{manage → safe-a/manage}/env/index.html +2 -2
  21. package/dist/{manage → safe-a/manage}/env/index.txt +13 -13
  22. package/dist/{manage → safe-a/manage}/general/index.html +2 -2
  23. package/dist/{manage → safe-a/manage}/general/index.txt +11 -11
  24. package/dist/{manage → safe-a/manage}/index.html +2 -2
  25. package/dist/{manage → safe-a/manage}/index.txt +8 -8
  26. package/dist/safe-a/manage/mcp/index.html +2 -0
  27. package/dist/{manage → safe-a/manage}/mcp/index.txt +11 -11
  28. package/dist/{manage → safe-a/manage}/permissions/index.html +2 -2
  29. package/dist/{manage → safe-a/manage}/permissions/index.txt +11 -11
  30. package/dist/safe-a/manage/skills/index.html +2 -0
  31. package/dist/{manage → safe-a/manage}/skills/index.txt +11 -11
  32. package/dist/{manage → safe-a/manage}/task/index.html +2 -2
  33. package/dist/{manage → safe-a/manage}/task/index.txt +11 -11
  34. package/dist/{manage → safe-a/manage}/teams/index.html +2 -2
  35. package/dist/{manage → safe-a/manage}/teams/index.txt +11 -11
  36. package/dist/safe-a/manage/tools/index.html +2 -0
  37. package/dist/{manage → safe-a/manage}/tools/index.txt +11 -11
  38. package/dist/{agent-office.html → ws-test/agent-office.html} +226 -155
  39. package/dist/ws-test/ws-test.css +3329 -0
  40. package/dist/ws-test/ws-test.html +783 -0
  41. package/dist/{ws-test.html → ws-test/ws-test.js} +1952 -3514
  42. package/lib/launcher-env.js +12 -3
  43. package/package.json +6 -6
  44. package/skills-runtime/deploy-test-env/SKILL.md +1 -1
  45. package/skills-runtime/dev-task-flow/SKILL.md +4 -4
  46. package/skills-runtime/self-test-flow/SKILL.md +2 -2
  47. package/skills-runtime/workflow-hub/SKILL.md +1 -1
  48. package/tools-runtime/code-tool/index.cjs +8 -3
  49. package/tools-runtime/code-tool/src/workspace.ts +13 -7
  50. package/tools-runtime/git-tool/index.cjs +34 -8
  51. package/tools-runtime/git-tool/src/index.ts +1 -1
  52. package/tools-runtime/git-tool/src/workspace.test.ts +9 -9
  53. package/tools-runtime/git-tool/src/workspace.ts +53 -13
  54. package/dist/_next/static/chunks/0a4ab823884025be.css +0 -1
  55. package/dist/_next/static/chunks/257d36fba79aa4ab.js +0 -1
  56. package/dist/_next/static/chunks/2b18c967f27dd561.js +0 -1
  57. package/dist/_next/static/chunks/652e486c20710ca8.js +0 -1
  58. package/dist/_next/static/chunks/789aab39327312c3.js +0 -1
  59. package/dist/_next/static/chunks/7def01c245e03b59.js +0 -1
  60. package/dist/_next/static/chunks/a256978ef9393e3e.js +0 -1
  61. package/dist/_next/static/chunks/c242e5c1d3639838.js +0 -1
  62. package/dist/_next/static/chunks/d77e4439761aa20d.js +0 -1
  63. package/dist/manage/mcp/index.html +0 -2
  64. package/dist/manage/skills/index.html +0 -2
  65. package/dist/manage/tools/index.html +0 -2
  66. /package/dist/{_next/static/6_8Ppg2OmCO0VcGqmqnxR → safe-a/_next/static/-ohtVxolUnzQcSsncJVgK}/_buildManifest.js +0 -0
  67. /package/dist/{_next/static/6_8Ppg2OmCO0VcGqmqnxR → safe-a/_next/static/-ohtVxolUnzQcSsncJVgK}/_clientMiddlewareManifest.json +0 -0
  68. /package/dist/{_next/static/6_8Ppg2OmCO0VcGqmqnxR → safe-a/_next/static/-ohtVxolUnzQcSsncJVgK}/_ssgManifest.js +0 -0
  69. /package/dist/{_next → safe-a/_next}/static/chunks/01766c1e2fdff227.js +0 -0
  70. /package/dist/{_next → safe-a/_next}/static/chunks/04c9439163b67552.js +0 -0
  71. /package/dist/{_next → safe-a/_next}/static/chunks/05e1926dc5c477b7.js +0 -0
  72. /package/dist/{_next → safe-a/_next}/static/chunks/06b923aa1177f43f.js +0 -0
  73. /package/dist/{_next → safe-a/_next}/static/chunks/092c97532613af2a.js +0 -0
  74. /package/dist/{_next → safe-a/_next}/static/chunks/0b639ff4f1971d14.js +0 -0
  75. /package/dist/{_next → safe-a/_next}/static/chunks/0b69dba7f1e63f30.js +0 -0
  76. /package/dist/{_next → safe-a/_next}/static/chunks/0ce6504fc10ce408.js +0 -0
  77. /package/dist/{_next → safe-a/_next}/static/chunks/0e1e7d5f7a375308.js +0 -0
  78. /package/dist/{_next → safe-a/_next}/static/chunks/0e8139882ad093d2.js +0 -0
  79. /package/dist/{_next → safe-a/_next}/static/chunks/0ea5a62c3f30dc56.js +0 -0
  80. /package/dist/{_next → safe-a/_next}/static/chunks/0f1810e4c6b0dd0c.js +0 -0
  81. /package/dist/{_next → safe-a/_next}/static/chunks/0fa097a572705cfa.js +0 -0
  82. /package/dist/{_next → safe-a/_next}/static/chunks/0fb0d030e8dee231.js +0 -0
  83. /package/dist/{_next → safe-a/_next}/static/chunks/0fd3876e0d9e8acc.js +0 -0
  84. /package/dist/{_next → safe-a/_next}/static/chunks/106955e3cc6a6843.js +0 -0
  85. /package/dist/{_next → safe-a/_next}/static/chunks/1078bc1642db53ad.js +0 -0
  86. /package/dist/{_next → safe-a/_next}/static/chunks/108a0b77418f1d31.js +0 -0
  87. /package/dist/{_next → safe-a/_next}/static/chunks/13b54d70a1ee1de7.js +0 -0
  88. /package/dist/{_next → safe-a/_next}/static/chunks/13f94fc3dda88c90.js +0 -0
  89. /package/dist/{_next → safe-a/_next}/static/chunks/155374df9f6b4b9a.js +0 -0
  90. /package/dist/{_next → safe-a/_next}/static/chunks/16ea1d3cf6db8a53.js +0 -0
  91. /package/dist/{_next → safe-a/_next}/static/chunks/170f7361bd4d33e2.js +0 -0
  92. /package/dist/{_next → safe-a/_next}/static/chunks/17722e3ac4e00587.js +0 -0
  93. /package/dist/{_next → safe-a/_next}/static/chunks/179a5dac78ab2cb9.js +0 -0
  94. /package/dist/{_next → safe-a/_next}/static/chunks/1818d7a661948f6b.js +0 -0
  95. /package/dist/{_next → safe-a/_next}/static/chunks/18977fe8f51209aa.js +0 -0
  96. /package/dist/{_next → safe-a/_next}/static/chunks/19584f955475ce91.js +0 -0
  97. /package/dist/{_next → safe-a/_next}/static/chunks/1974f51c298bce94.js +0 -0
  98. /package/dist/{_next → safe-a/_next}/static/chunks/19c1491e85e22b3b.js +0 -0
  99. /package/dist/{_next → safe-a/_next}/static/chunks/19ca17e5015c42a3.js +0 -0
  100. /package/dist/{_next → safe-a/_next}/static/chunks/1a4b553856a8ffdf.js +0 -0
  101. /package/dist/{_next → safe-a/_next}/static/chunks/1acf2d9664500f51.js +0 -0
  102. /package/dist/{_next → safe-a/_next}/static/chunks/1b55c29b8cad4a50.js +0 -0
  103. /package/dist/{_next → safe-a/_next}/static/chunks/1bb28f71c19fa824.js +0 -0
  104. /package/dist/{_next → safe-a/_next}/static/chunks/1bfa645704d9149a.js +0 -0
  105. /package/dist/{_next → safe-a/_next}/static/chunks/1c9321874fea5f0d.js +0 -0
  106. /package/dist/{_next → safe-a/_next}/static/chunks/1d3e7886be9f671c.js +0 -0
  107. /package/dist/{_next → safe-a/_next}/static/chunks/1e17456ccebc9cd2.js +0 -0
  108. /package/dist/{_next → safe-a/_next}/static/chunks/1e43922998a0ed2f.js +0 -0
  109. /package/dist/{_next → safe-a/_next}/static/chunks/1f3da8a76b11d2aa.js +0 -0
  110. /package/dist/{_next → safe-a/_next}/static/chunks/1fec17d16aff9eed.js +0 -0
  111. /package/dist/{_next → safe-a/_next}/static/chunks/2046937bffedf074.js +0 -0
  112. /package/dist/{_next → safe-a/_next}/static/chunks/219a3413675ba6f1.js +0 -0
  113. /package/dist/{_next → safe-a/_next}/static/chunks/2326118ef1328bc5.js +0 -0
  114. /package/dist/{_next → safe-a/_next}/static/chunks/236775e4ec4f8a94.js +0 -0
  115. /package/dist/{_next → safe-a/_next}/static/chunks/242529c986baeb00.js +0 -0
  116. /package/dist/{_next → safe-a/_next}/static/chunks/270d7571d2eea071.js +0 -0
  117. /package/dist/{_next → safe-a/_next}/static/chunks/27c407347ce26b78.js +0 -0
  118. /package/dist/{_next → safe-a/_next}/static/chunks/27ff2e69b2fd19e5.js +0 -0
  119. /package/dist/{_next → safe-a/_next}/static/chunks/29676075a0390867.js +0 -0
  120. /package/dist/{_next → safe-a/_next}/static/chunks/2c6d585a97629311.js +0 -0
  121. /package/dist/{_next → safe-a/_next}/static/chunks/2df3e464b6247e75.js +0 -0
  122. /package/dist/{_next → safe-a/_next}/static/chunks/2e574acbf68e77ff.js +0 -0
  123. /package/dist/{_next → safe-a/_next}/static/chunks/2ec6d7ddb4c04987.js +0 -0
  124. /package/dist/{_next → safe-a/_next}/static/chunks/2f7d30e66e995b02.js +0 -0
  125. /package/dist/{_next → safe-a/_next}/static/chunks/2fab2306850ac97b.js +0 -0
  126. /package/dist/{_next → safe-a/_next}/static/chunks/2fcc6298b6dd7a82.js +0 -0
  127. /package/dist/{_next → safe-a/_next}/static/chunks/303d9c2a2c956f25.js +0 -0
  128. /package/dist/{_next → safe-a/_next}/static/chunks/32a7ca0a75a897da.js +0 -0
  129. /package/dist/{_next → safe-a/_next}/static/chunks/32b4d63e10d31351.js +0 -0
  130. /package/dist/{_next → safe-a/_next}/static/chunks/32b9bdd82a961878.js +0 -0
  131. /package/dist/{_next → safe-a/_next}/static/chunks/3509a66e019ceae3.js +0 -0
  132. /package/dist/{_next → safe-a/_next}/static/chunks/3520f1af0a1b7f66.js +0 -0
  133. /package/dist/{_next → safe-a/_next}/static/chunks/354aaa2e36b75b81.js +0 -0
  134. /package/dist/{_next → safe-a/_next}/static/chunks/3590c4a4f40cdb5d.js +0 -0
  135. /package/dist/{_next → safe-a/_next}/static/chunks/35f1637c2feb232d.js +0 -0
  136. /package/dist/{_next → safe-a/_next}/static/chunks/37bbbf907196a5bf.js +0 -0
  137. /package/dist/{_next → safe-a/_next}/static/chunks/37cfaa4963ac51f3.js +0 -0
  138. /package/dist/{_next → safe-a/_next}/static/chunks/3934bd57f459566e.js +0 -0
  139. /package/dist/{_next → safe-a/_next}/static/chunks/3a947667fddbdd53.js +0 -0
  140. /package/dist/{_next → safe-a/_next}/static/chunks/3aac5736e5781b46.js +0 -0
  141. /package/dist/{_next → safe-a/_next}/static/chunks/3ae23df392f9bed8.js +0 -0
  142. /package/dist/{_next → safe-a/_next}/static/chunks/3ae4e2529aa621fb.js +0 -0
  143. /package/dist/{_next → safe-a/_next}/static/chunks/3b2bb9f17546ee3e.js +0 -0
  144. /package/dist/{_next → safe-a/_next}/static/chunks/3bcd531d40d6c019.js +0 -0
  145. /package/dist/{_next → safe-a/_next}/static/chunks/3c695d1c2efbc749.js +0 -0
  146. /package/dist/{_next → safe-a/_next}/static/chunks/3d8e9a96a69193d4.js +0 -0
  147. /package/dist/{_next → safe-a/_next}/static/chunks/3dcb1dcf23e7ab9c.js +0 -0
  148. /package/dist/{_next → safe-a/_next}/static/chunks/3e2ea3a7fe64826d.js +0 -0
  149. /package/dist/{_next → safe-a/_next}/static/chunks/3e9c98df7d56e9b2.js +0 -0
  150. /package/dist/{_next → safe-a/_next}/static/chunks/3ec05a61e93547d3.js +0 -0
  151. /package/dist/{_next → safe-a/_next}/static/chunks/3f6fe8a1903009ea.js +0 -0
  152. /package/dist/{_next → safe-a/_next}/static/chunks/3fb4674edcb2d726.js +0 -0
  153. /package/dist/{_next → safe-a/_next}/static/chunks/3fd03b9ed21b30fc.js +0 -0
  154. /package/dist/{_next → safe-a/_next}/static/chunks/40268f8e3ff0314e.js +0 -0
  155. /package/dist/{_next → safe-a/_next}/static/chunks/40cc0252b2f1d855.js +0 -0
  156. /package/dist/{_next → safe-a/_next}/static/chunks/413a7be096275d7f.js +0 -0
  157. /package/dist/{_next → safe-a/_next}/static/chunks/459d401d9f9e5b9f.js +0 -0
  158. /package/dist/{_next → safe-a/_next}/static/chunks/45ab9a1f693d609c.js +0 -0
  159. /package/dist/{_next → safe-a/_next}/static/chunks/481a2858f7df907d.js +0 -0
  160. /package/dist/{_next → safe-a/_next}/static/chunks/49df9708d6328c4a.js +0 -0
  161. /package/dist/{_next → safe-a/_next}/static/chunks/4a340ea4ac145216.js +0 -0
  162. /package/dist/{_next → safe-a/_next}/static/chunks/4be779bcbd94352d.js +0 -0
  163. /package/dist/{_next → safe-a/_next}/static/chunks/4c33a1cc6db74105.js +0 -0
  164. /package/dist/{_next → safe-a/_next}/static/chunks/4d129d4e15c8c424.js +0 -0
  165. /package/dist/{_next → safe-a/_next}/static/chunks/4df298f5b420f474.js +0 -0
  166. /package/dist/{_next → safe-a/_next}/static/chunks/4dfbfdff43b8479b.js +0 -0
  167. /package/dist/{_next → safe-a/_next}/static/chunks/5069ee4aa806b0ea.js +0 -0
  168. /package/dist/{_next → safe-a/_next}/static/chunks/519049cd74a40910.js +0 -0
  169. /package/dist/{_next → safe-a/_next}/static/chunks/522518d740397639.js +0 -0
  170. /package/dist/{_next → safe-a/_next}/static/chunks/52e2164e45febae6.js +0 -0
  171. /package/dist/{_next → safe-a/_next}/static/chunks/534b5acf573aa491.js +0 -0
  172. /package/dist/{_next → safe-a/_next}/static/chunks/538cc02e54714b23.js +0 -0
  173. /package/dist/{_next → safe-a/_next}/static/chunks/53be52c43a14557c.js +0 -0
  174. /package/dist/{_next → safe-a/_next}/static/chunks/54c43751bf4c4da2.js +0 -0
  175. /package/dist/{_next → safe-a/_next}/static/chunks/55087cc98e6237f1.js +0 -0
  176. /package/dist/{_next → safe-a/_next}/static/chunks/55f8de91b4803778.js +0 -0
  177. /package/dist/{_next → safe-a/_next}/static/chunks/560ca23f77c0e819.js +0 -0
  178. /package/dist/{_next → safe-a/_next}/static/chunks/57bb853857f3de83.js +0 -0
  179. /package/dist/{_next → safe-a/_next}/static/chunks/588e6975a7bd6671.js +0 -0
  180. /package/dist/{_next → safe-a/_next}/static/chunks/5a0b630678282d4f.js +0 -0
  181. /package/dist/{_next → safe-a/_next}/static/chunks/5a3e355216280144.js +0 -0
  182. /package/dist/{_next → safe-a/_next}/static/chunks/5a4c198fd41e8ec4.js +0 -0
  183. /package/dist/{_next → safe-a/_next}/static/chunks/5b916c9dc09e323c.js +0 -0
  184. /package/dist/{_next → safe-a/_next}/static/chunks/5bad5163b6e015f5.js +0 -0
  185. /package/dist/{_next → safe-a/_next}/static/chunks/5ccd5a6ac9c2f980.js +0 -0
  186. /package/dist/{_next → safe-a/_next}/static/chunks/5d5333084191fb10.js +0 -0
  187. /package/dist/{_next → safe-a/_next}/static/chunks/5d79b7f202080232.js +0 -0
  188. /package/dist/{_next → safe-a/_next}/static/chunks/5ea79c109cbe8a86.js +0 -0
  189. /package/dist/{_next → safe-a/_next}/static/chunks/5ee72092303043ef.js +0 -0
  190. /package/dist/{_next → safe-a/_next}/static/chunks/5fc8a5235ddfa787.js +0 -0
  191. /package/dist/{_next → safe-a/_next}/static/chunks/61b3d4c00499dd14.js +0 -0
  192. /package/dist/{_next → safe-a/_next}/static/chunks/61ce261738313b8a.js +0 -0
  193. /package/dist/{_next → safe-a/_next}/static/chunks/62d925bcc8518b6f.js +0 -0
  194. /package/dist/{_next → safe-a/_next}/static/chunks/63ec034afca4b5d6.js +0 -0
  195. /package/dist/{_next → safe-a/_next}/static/chunks/644aa76620718c98.js +0 -0
  196. /package/dist/{_next → safe-a/_next}/static/chunks/648b653b36802fdc.js +0 -0
  197. /package/dist/{_next → safe-a/_next}/static/chunks/6522643341a0921c.js +0 -0
  198. /package/dist/{_next → safe-a/_next}/static/chunks/65fb49c8a7f59842.js +0 -0
  199. /package/dist/{_next → safe-a/_next}/static/chunks/65fe0975412ff703.js +0 -0
  200. /package/dist/{_next → safe-a/_next}/static/chunks/66b30159915524db.js +0 -0
  201. /package/dist/{_next → safe-a/_next}/static/chunks/66ed07a735eac6e3.js +0 -0
  202. /package/dist/{_next → safe-a/_next}/static/chunks/6785757cc05fec19.js +0 -0
  203. /package/dist/{_next → safe-a/_next}/static/chunks/67c9db5577080125.js +0 -0
  204. /package/dist/{_next → safe-a/_next}/static/chunks/68bd2bd64624e20d.js +0 -0
  205. /package/dist/{_next → safe-a/_next}/static/chunks/692e7ee14236fefb.js +0 -0
  206. /package/dist/{_next → safe-a/_next}/static/chunks/69cfdbc51cf2d3c3.js +0 -0
  207. /package/dist/{_next → safe-a/_next}/static/chunks/6ae709c575c74979.js +0 -0
  208. /package/dist/{_next → safe-a/_next}/static/chunks/6b652524b5ffdd9e.js +0 -0
  209. /package/dist/{_next → safe-a/_next}/static/chunks/6b7c3c962a14dc29.js +0 -0
  210. /package/dist/{_next → safe-a/_next}/static/chunks/6bc7c57f119ad4f6.js +0 -0
  211. /package/dist/{_next → safe-a/_next}/static/chunks/6c3b2d0be1c633b6.js +0 -0
  212. /package/dist/{_next → safe-a/_next}/static/chunks/6cc2f7f962cdd082.js +0 -0
  213. /package/dist/{_next → safe-a/_next}/static/chunks/6d4209e94b1aafe6.js +0 -0
  214. /package/dist/{_next → safe-a/_next}/static/chunks/6ddf95b168bfbc36.js +0 -0
  215. /package/dist/{_next → safe-a/_next}/static/chunks/6e61f670898cb297.css +0 -0
  216. /package/dist/{_next → safe-a/_next}/static/chunks/6f3afa83656eab67.js +0 -0
  217. /package/dist/{_next → safe-a/_next}/static/chunks/6f4460bd0b8a57af.js +0 -0
  218. /package/dist/{_next → safe-a/_next}/static/chunks/6fe835d41fdbd638.js +0 -0
  219. /package/dist/{_next → safe-a/_next}/static/chunks/70459a2a4c45653e.js +0 -0
  220. /package/dist/{_next → safe-a/_next}/static/chunks/7137c7537c459c31.js +0 -0
  221. /package/dist/{_next → safe-a/_next}/static/chunks/715c085d7c10eeda.js +0 -0
  222. /package/dist/{_next → safe-a/_next}/static/chunks/71d3a80bc9d53b07.js +0 -0
  223. /package/dist/{_next → safe-a/_next}/static/chunks/71e3a90489469c28.js +0 -0
  224. /package/dist/{_next → safe-a/_next}/static/chunks/72a56bd75075fd83.js +0 -0
  225. /package/dist/{_next → safe-a/_next}/static/chunks/72ef1696f44fcf61.js +0 -0
  226. /package/dist/{_next → safe-a/_next}/static/chunks/736441266ceb14e2.js +0 -0
  227. /package/dist/{_next → safe-a/_next}/static/chunks/73cbf0064096e28c.js +0 -0
  228. /package/dist/{_next → safe-a/_next}/static/chunks/751de74a23cc9036.js +0 -0
  229. /package/dist/{_next → safe-a/_next}/static/chunks/756b6c2e620386ff.js +0 -0
  230. /package/dist/{_next → safe-a/_next}/static/chunks/75a396e1752cd59d.js +0 -0
  231. /package/dist/{_next → safe-a/_next}/static/chunks/764c541428e1c6eb.js +0 -0
  232. /package/dist/{_next → safe-a/_next}/static/chunks/79128afded6e01d9.js +0 -0
  233. /package/dist/{_next → safe-a/_next}/static/chunks/7988d5ea63356e10.js +0 -0
  234. /package/dist/{_next → safe-a/_next}/static/chunks/7aa69fd5d97b7146.js +0 -0
  235. /package/dist/{_next → safe-a/_next}/static/chunks/7b9c09d0ce43f1c2.js +0 -0
  236. /package/dist/{_next → safe-a/_next}/static/chunks/7bdf0e5b41aeb209.css +0 -0
  237. /package/dist/{_next → safe-a/_next}/static/chunks/7d3bf918bccde738.js +0 -0
  238. /package/dist/{_next → safe-a/_next}/static/chunks/7dbb8abebf50d816.js +0 -0
  239. /package/dist/{_next → safe-a/_next}/static/chunks/7ef348801eff6590.js +0 -0
  240. /package/dist/{_next → safe-a/_next}/static/chunks/7f6e82ac63db5eff.js +0 -0
  241. /package/dist/{_next → safe-a/_next}/static/chunks/7fd45fb9cf0995f3.js +0 -0
  242. /package/dist/{_next → safe-a/_next}/static/chunks/8085c74f26fa2c4e.js +0 -0
  243. /package/dist/{_next → safe-a/_next}/static/chunks/84185f4bb07ccbd7.js +0 -0
  244. /package/dist/{_next → safe-a/_next}/static/chunks/85fc05549f7f100c.js +0 -0
  245. /package/dist/{_next → safe-a/_next}/static/chunks/87e12ecbe9521f9b.js +0 -0
  246. /package/dist/{_next → safe-a/_next}/static/chunks/88a999988f915988.js +0 -0
  247. /package/dist/{_next → safe-a/_next}/static/chunks/88bc97899d2ce4e5.js +0 -0
  248. /package/dist/{_next → safe-a/_next}/static/chunks/8bdc142fad5847ed.js +0 -0
  249. /package/dist/{_next → safe-a/_next}/static/chunks/8deb0392842e5a01.js +0 -0
  250. /package/dist/{_next → safe-a/_next}/static/chunks/8f038ff914c4b0df.js +0 -0
  251. /package/dist/{_next → safe-a/_next}/static/chunks/8f5be275907dd98c.js +0 -0
  252. /package/dist/{_next → safe-a/_next}/static/chunks/9037530b0f1d5783.js +0 -0
  253. /package/dist/{_next → safe-a/_next}/static/chunks/9078ad91aa20dca0.js +0 -0
  254. /package/dist/{_next → safe-a/_next}/static/chunks/92c3617a4e22a464.js +0 -0
  255. /package/dist/{_next → safe-a/_next}/static/chunks/932d3fcc2596e8d5.js +0 -0
  256. /package/dist/{_next → safe-a/_next}/static/chunks/937e26e6e01d9ec9.js +0 -0
  257. /package/dist/{_next → safe-a/_next}/static/chunks/93bfaf233e66b48c.js +0 -0
  258. /package/dist/{_next → safe-a/_next}/static/chunks/94029062f236cadc.js +0 -0
  259. /package/dist/{_next → safe-a/_next}/static/chunks/94e88cfda11697d2.js +0 -0
  260. /package/dist/{_next → safe-a/_next}/static/chunks/95c4d26e469d1d8f.js +0 -0
  261. /package/dist/{_next → safe-a/_next}/static/chunks/96026b5eb5d2566b.js +0 -0
  262. /package/dist/{_next → safe-a/_next}/static/chunks/962a27e9c634b823.js +0 -0
  263. /package/dist/{_next → safe-a/_next}/static/chunks/966fb5830ce1029c.js +0 -0
  264. /package/dist/{_next → safe-a/_next}/static/chunks/9724567275720686.js +0 -0
  265. /package/dist/{_next → safe-a/_next}/static/chunks/98e243fb5992a71c.js +0 -0
  266. /package/dist/{_next → safe-a/_next}/static/chunks/9a7b2a483b109c0a.js +0 -0
  267. /package/dist/{_next → safe-a/_next}/static/chunks/9b3df6b20a9625d5.js +0 -0
  268. /package/dist/{_next → safe-a/_next}/static/chunks/9c6c00fa68012026.js +0 -0
  269. /package/dist/{_next → safe-a/_next}/static/chunks/9cb28a1dacb7ea6d.js +0 -0
  270. /package/dist/{_next → safe-a/_next}/static/chunks/9ccf7a8bca1730bf.js +0 -0
  271. /package/dist/{_next → safe-a/_next}/static/chunks/9e96c84b86d1bbf3.js +0 -0
  272. /package/dist/{_next → safe-a/_next}/static/chunks/9f0ee4783140adf1.js +0 -0
  273. /package/dist/{_next → safe-a/_next}/static/chunks/9fefea69ec034a63.js +0 -0
  274. /package/dist/{_next → safe-a/_next}/static/chunks/a1b9abf15c0f7655.js +0 -0
  275. /package/dist/{_next → safe-a/_next}/static/chunks/a37aa474433d29e3.js +0 -0
  276. /package/dist/{_next → safe-a/_next}/static/chunks/a4776dc3e00e5ab0.js +0 -0
  277. /package/dist/{_next → safe-a/_next}/static/chunks/a5df6158856685f1.js +0 -0
  278. /package/dist/{_next → safe-a/_next}/static/chunks/a6737fc58619eae5.js +0 -0
  279. /package/dist/{_next → safe-a/_next}/static/chunks/a6a98f9278704b6a.js +0 -0
  280. /package/dist/{_next → safe-a/_next}/static/chunks/a6dad97d9634a72d.js +0 -0
  281. /package/dist/{_next → safe-a/_next}/static/chunks/a7277c96f3669bea.js +0 -0
  282. /package/dist/{_next → safe-a/_next}/static/chunks/a9fed5c43d754a96.js +0 -0
  283. /package/dist/{_next → safe-a/_next}/static/chunks/aa0a4c596151b22b.js +0 -0
  284. /package/dist/{_next → safe-a/_next}/static/chunks/aa867a1fa8b105e1.js +0 -0
  285. /package/dist/{_next → safe-a/_next}/static/chunks/ad4ba491cf12423f.js +0 -0
  286. /package/dist/{_next → safe-a/_next}/static/chunks/ad50a7d15cd9d9d8.js +0 -0
  287. /package/dist/{_next → safe-a/_next}/static/chunks/af7b0bd1b40ad066.js +0 -0
  288. /package/dist/{_next → safe-a/_next}/static/chunks/b24e3802454a5567.js +0 -0
  289. /package/dist/{_next → safe-a/_next}/static/chunks/b29a85c3dae2bb9c.js +0 -0
  290. /package/dist/{_next → safe-a/_next}/static/chunks/b30f1da4e57f459a.js +0 -0
  291. /package/dist/{_next → safe-a/_next}/static/chunks/b360c9fc22dbf831.js +0 -0
  292. /package/dist/{_next → safe-a/_next}/static/chunks/b3e79c76be269ccc.js +0 -0
  293. /package/dist/{_next → safe-a/_next}/static/chunks/b429be4e16fa1e00.js +0 -0
  294. /package/dist/{_next → safe-a/_next}/static/chunks/b61ec36c9bbca3e0.js +0 -0
  295. /package/dist/{_next → safe-a/_next}/static/chunks/b65565677c3e8c0a.js +0 -0
  296. /package/dist/{_next → safe-a/_next}/static/chunks/b66afb4b0be97af8.js +0 -0
  297. /package/dist/{_next → safe-a/_next}/static/chunks/b69f987a60b05db3.js +0 -0
  298. /package/dist/{_next → safe-a/_next}/static/chunks/b78822282754a47c.js +0 -0
  299. /package/dist/{_next → safe-a/_next}/static/chunks/b7f72bcb870dda3b.js +0 -0
  300. /package/dist/{_next → safe-a/_next}/static/chunks/b92c67520afabac2.js +0 -0
  301. /package/dist/{_next → safe-a/_next}/static/chunks/bbcf9daa108b22fb.js +0 -0
  302. /package/dist/{_next → safe-a/_next}/static/chunks/bc7bda699a7ccda1.js +0 -0
  303. /package/dist/{_next → safe-a/_next}/static/chunks/bd1f33816fa01c16.js +0 -0
  304. /package/dist/{_next → safe-a/_next}/static/chunks/bd2dcf98c9b362f6.js +0 -0
  305. /package/dist/{_next → safe-a/_next}/static/chunks/bd984c5404403e7d.js +0 -0
  306. /package/dist/{_next → safe-a/_next}/static/chunks/bdd88bcfd223f52a.js +0 -0
  307. /package/dist/{_next → safe-a/_next}/static/chunks/bf2262100cea8c64.js +0 -0
  308. /package/dist/{_next → safe-a/_next}/static/chunks/bf2c1c402dbcccdf.js +0 -0
  309. /package/dist/{_next → safe-a/_next}/static/chunks/bfc6ee42cec583d5.js +0 -0
  310. /package/dist/{_next → safe-a/_next}/static/chunks/c15069059c9d1f53.js +0 -0
  311. /package/dist/{_next → safe-a/_next}/static/chunks/c1615032cbbf5b56.js +0 -0
  312. /package/dist/{_next → safe-a/_next}/static/chunks/c2546d2b493dd907.js +0 -0
  313. /package/dist/{_next → safe-a/_next}/static/chunks/c3669d468d3f2b3a.js +0 -0
  314. /package/dist/{_next → safe-a/_next}/static/chunks/c3b49937059d3d70.js +0 -0
  315. /package/dist/{_next → safe-a/_next}/static/chunks/c5b5aba98d38ef23.js +0 -0
  316. /package/dist/{_next → safe-a/_next}/static/chunks/c5be27a596acfa18.js +0 -0
  317. /package/dist/{_next → safe-a/_next}/static/chunks/c6cc32860b96278f.js +0 -0
  318. /package/dist/{_next → safe-a/_next}/static/chunks/c725524ea13a50ab.js +0 -0
  319. /package/dist/{_next → safe-a/_next}/static/chunks/c8942bee3aebddae.js +0 -0
  320. /package/dist/{_next → safe-a/_next}/static/chunks/c8e45be36912e439.js +0 -0
  321. /package/dist/{_next → safe-a/_next}/static/chunks/c933951b3113492f.js +0 -0
  322. /package/dist/{_next → safe-a/_next}/static/chunks/c9813626ba898586.js +0 -0
  323. /package/dist/{_next → safe-a/_next}/static/chunks/ca2725c2b45709c1.js +0 -0
  324. /package/dist/{_next → safe-a/_next}/static/chunks/caf4049dc563940e.js +0 -0
  325. /package/dist/{_next → safe-a/_next}/static/chunks/cafadd69e03e6c4b.js +0 -0
  326. /package/dist/{_next → safe-a/_next}/static/chunks/cba2741f84ef36ed.js +0 -0
  327. /package/dist/{_next → safe-a/_next}/static/chunks/cccecf726769787f.js +0 -0
  328. /package/dist/{_next → safe-a/_next}/static/chunks/cd0e7e3cc303b4e4.js +0 -0
  329. /package/dist/{_next → safe-a/_next}/static/chunks/cd4556cbed1f8957.js +0 -0
  330. /package/dist/{_next → safe-a/_next}/static/chunks/cd5eec7d305aa041.js +0 -0
  331. /package/dist/{_next → safe-a/_next}/static/chunks/d09636e7bcf60ad1.js +0 -0
  332. /package/dist/{_next → safe-a/_next}/static/chunks/d2d432a9facf4278.js +0 -0
  333. /package/dist/{_next → safe-a/_next}/static/chunks/d2e37b6d5ff62bcb.js +0 -0
  334. /package/dist/{_next → safe-a/_next}/static/chunks/d33a24782888b869.js +0 -0
  335. /package/dist/{_next → safe-a/_next}/static/chunks/d33e49aabd798892.js +0 -0
  336. /package/dist/{_next → safe-a/_next}/static/chunks/d3990c1e87ef3e23.js +0 -0
  337. /package/dist/{_next → safe-a/_next}/static/chunks/d433c87b0bc69cda.js +0 -0
  338. /package/dist/{_next → safe-a/_next}/static/chunks/d47cd27ac08f5429.js +0 -0
  339. /package/dist/{_next → safe-a/_next}/static/chunks/d599ef4d0f84a93d.js +0 -0
  340. /package/dist/{_next → safe-a/_next}/static/chunks/d5e3d29f769997cc.js +0 -0
  341. /package/dist/{_next → safe-a/_next}/static/chunks/d69b21102305d19e.js +0 -0
  342. /package/dist/{_next → safe-a/_next}/static/chunks/d715e874b8ee8540.js +0 -0
  343. /package/dist/{_next → safe-a/_next}/static/chunks/d729414ff836cd53.js +0 -0
  344. /package/dist/{_next → safe-a/_next}/static/chunks/d82740475fc07e98.js +0 -0
  345. /package/dist/{_next → safe-a/_next}/static/chunks/d842d30dcb0f50a9.js +0 -0
  346. /package/dist/{_next → safe-a/_next}/static/chunks/d8af8dadd0889c71.js +0 -0
  347. /package/dist/{_next → safe-a/_next}/static/chunks/d9b92ed2d544fca5.js +0 -0
  348. /package/dist/{_next → safe-a/_next}/static/chunks/da346aeed70dd39a.js +0 -0
  349. /package/dist/{_next → safe-a/_next}/static/chunks/dbbd673619a7f82f.js +0 -0
  350. /package/dist/{_next → safe-a/_next}/static/chunks/dc0bc471de951daf.js +0 -0
  351. /package/dist/{_next → safe-a/_next}/static/chunks/dc2186b66132ca97.js +0 -0
  352. /package/dist/{_next → safe-a/_next}/static/chunks/de0ee516f6a1aa07.js +0 -0
  353. /package/dist/{_next → safe-a/_next}/static/chunks/e04bace22e04d63c.js +0 -0
  354. /package/dist/{_next → safe-a/_next}/static/chunks/e0c76ff7114dc8dc.js +0 -0
  355. /package/dist/{_next → safe-a/_next}/static/chunks/e11d4fd8de65621d.js +0 -0
  356. /package/dist/{_next → safe-a/_next}/static/chunks/e1999bcadd3448e5.js +0 -0
  357. /package/dist/{_next → safe-a/_next}/static/chunks/e3fe320ec1b8f889.js +0 -0
  358. /package/dist/{_next → safe-a/_next}/static/chunks/e42498eec0c8d570.js +0 -0
  359. /package/dist/{_next → safe-a/_next}/static/chunks/e4973ad5c183f17a.js +0 -0
  360. /package/dist/{_next → safe-a/_next}/static/chunks/e5275dcacbabc3e3.js +0 -0
  361. /package/dist/{_next → safe-a/_next}/static/chunks/e60ef129113f6e24.js +0 -0
  362. /package/dist/{_next → safe-a/_next}/static/chunks/e61019aedfdf554e.js +0 -0
  363. /package/dist/{_next → safe-a/_next}/static/chunks/e6324292aef80338.js +0 -0
  364. /package/dist/{_next → safe-a/_next}/static/chunks/e7003dbd5d8cb2d1.js +0 -0
  365. /package/dist/{_next → safe-a/_next}/static/chunks/e7bcbeb465fa49cf.js +0 -0
  366. /package/dist/{_next → safe-a/_next}/static/chunks/e7f1a043618e43cf.js +0 -0
  367. /package/dist/{_next → safe-a/_next}/static/chunks/e8105dbb23b8e514.js +0 -0
  368. /package/dist/{_next → safe-a/_next}/static/chunks/ea12d36cdfbaafa9.js +0 -0
  369. /package/dist/{_next → safe-a/_next}/static/chunks/ea2a84258a02d5c5.js +0 -0
  370. /package/dist/{_next → safe-a/_next}/static/chunks/ea36a5ae7c6ce34f.js +0 -0
  371. /package/dist/{_next → safe-a/_next}/static/chunks/eb2d81df9fe374a8.js +0 -0
  372. /package/dist/{_next → safe-a/_next}/static/chunks/eb9ae8e95cac1197.js +0 -0
  373. /package/dist/{_next → safe-a/_next}/static/chunks/ebb0ee69f6a7883e.js +0 -0
  374. /package/dist/{_next → safe-a/_next}/static/chunks/ebcbb5070eb8e29f.js +0 -0
  375. /package/dist/{_next → safe-a/_next}/static/chunks/ebcd85ff4a1db0dc.js +0 -0
  376. /package/dist/{_next → safe-a/_next}/static/chunks/ec7537a65499e7a4.js +0 -0
  377. /package/dist/{_next → safe-a/_next}/static/chunks/ee79511740d19885.js +0 -0
  378. /package/dist/{_next → safe-a/_next}/static/chunks/eed0c3ef6a5c3706.js +0 -0
  379. /package/dist/{_next → safe-a/_next}/static/chunks/ef51763a796dde8b.js +0 -0
  380. /package/dist/{_next → safe-a/_next}/static/chunks/f0cb9b2226c53ef9.js +0 -0
  381. /package/dist/{_next → safe-a/_next}/static/chunks/f0d9f0621f8ec46d.js +0 -0
  382. /package/dist/{_next → safe-a/_next}/static/chunks/f12f45a558c3fed2.js +0 -0
  383. /package/dist/{_next → safe-a/_next}/static/chunks/f1e5e295d4db5c0f.js +0 -0
  384. /package/dist/{_next → safe-a/_next}/static/chunks/f1f911d553a62027.js +0 -0
  385. /package/dist/{_next → safe-a/_next}/static/chunks/f235a8df2f905e6a.js +0 -0
  386. /package/dist/{_next → safe-a/_next}/static/chunks/f36595b9995a49a9.js +0 -0
  387. /package/dist/{_next → safe-a/_next}/static/chunks/f42a71992d139302.js +0 -0
  388. /package/dist/{_next → safe-a/_next}/static/chunks/f42d74f288f2229c.js +0 -0
  389. /package/dist/{_next → safe-a/_next}/static/chunks/f461a75ec3b0e4e9.js +0 -0
  390. /package/dist/{_next → safe-a/_next}/static/chunks/f50fd84e477dbaeb.js +0 -0
  391. /package/dist/{_next → safe-a/_next}/static/chunks/f659a364f48244ea.js +0 -0
  392. /package/dist/{_next → safe-a/_next}/static/chunks/f813c3d77459119f.js +0 -0
  393. /package/dist/{_next → safe-a/_next}/static/chunks/f9cb4b70f67c86d8.js +0 -0
  394. /package/dist/{_next → safe-a/_next}/static/chunks/fa39b9f8bced4bcd.js +0 -0
  395. /package/dist/{_next → safe-a/_next}/static/chunks/fa5b61b8e7219fe6.js +0 -0
  396. /package/dist/{_next → safe-a/_next}/static/chunks/facb82117d49a6e1.js +0 -0
  397. /package/dist/{_next → safe-a/_next}/static/chunks/fb05f79f5e4b514e.js +0 -0
  398. /package/dist/{_next → safe-a/_next}/static/chunks/fb0f4d868b87961b.js +0 -0
  399. /package/dist/{_next → safe-a/_next}/static/chunks/fb2f1266493dd820.js +0 -0
  400. /package/dist/{_next → safe-a/_next}/static/chunks/fc2efa33a196ee45.js +0 -0
  401. /package/dist/{_next → safe-a/_next}/static/chunks/fd3d43eb8557ee49.js +0 -0
  402. /package/dist/{_next → safe-a/_next}/static/chunks/fdfce6fa0b958336.js +0 -0
  403. /package/dist/{_next → safe-a/_next}/static/chunks/ff12eca45020947a.js +0 -0
  404. /package/dist/{_next → safe-a/_next}/static/chunks/ff6860dcd793aa23.js +0 -0
  405. /package/dist/{_next → safe-a/_next}/static/chunks/turbopack-3d84668fefd38b4b.js +0 -0
  406. /package/dist/{_next → safe-a/_next}/static/chunks/turbopack-63952675b1d69124.js +0 -0
  407. /package/dist/{_next → safe-a/_next}/static/chunks/turbopack-8b41433c9a94981f.js +0 -0
  408. /package/dist/{_next → safe-a/_next}/static/media/13bf9871fe164e7f-s.f2220059.woff2 +0 -0
  409. /package/dist/{_next → safe-a/_next}/static/media/3fe682a82f50d426-s.23358719.woff2 +0 -0
  410. /package/dist/{_next → safe-a/_next}/static/media/5c285b27cdda1fe8-s.p.a62025f2.woff2 +0 -0
  411. /package/dist/{_next → safe-a/_next}/static/media/70bc3e132a0a741e-s.p.15008bfb.woff2 +0 -0
  412. /package/dist/{_next → safe-a/_next}/static/media/71b036adf157cdcf-s.bd5f4d11.woff2 +0 -0
  413. /package/dist/{_next → safe-a/_next}/static/media/89b21bb081cb7469-s.51c18f09.woff2 +0 -0
  414. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_AMS-Regular.892f691b.ttf +0 -0
  415. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_AMS-Regular.c30af439.woff2 +0 -0
  416. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_AMS-Regular.e6a3cada.woff +0 -0
  417. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Caligraphic-Bold.2f97783e.woff +0 -0
  418. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Caligraphic-Bold.a36b8125.ttf +0 -0
  419. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Caligraphic-Bold.db991531.woff2 +0 -0
  420. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Caligraphic-Regular.2b13f013.woff +0 -0
  421. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Caligraphic-Regular.7c50032c.ttf +0 -0
  422. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Caligraphic-Regular.c20eee08.woff2 +0 -0
  423. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Fraktur-Bold.5fa2f5e4.woff +0 -0
  424. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Fraktur-Bold.d514bd28.woff2 +0 -0
  425. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Fraktur-Bold.e311399d.ttf +0 -0
  426. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Fraktur-Regular.18139813.woff +0 -0
  427. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Fraktur-Regular.2a73476d.ttf +0 -0
  428. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Fraktur-Regular.5d62e468.woff2 +0 -0
  429. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Main-Bold.6d137c77.ttf +0 -0
  430. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Main-Bold.c24b5ba7.woff +0 -0
  431. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Main-Bold.f4e2828d.woff2 +0 -0
  432. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Main-BoldItalic.079b33ae.woff +0 -0
  433. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Main-BoldItalic.c003d3ec.ttf +0 -0
  434. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Main-BoldItalic.f1884480.woff2 +0 -0
  435. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Main-Italic.26a3619b.woff +0 -0
  436. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Main-Italic.61da3e93.ttf +0 -0
  437. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Main-Italic.a3746929.woff2 +0 -0
  438. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Main-Regular.12644167.woff2 +0 -0
  439. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Main-Regular.876b86ad.ttf +0 -0
  440. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Main-Regular.d511f158.woff +0 -0
  441. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Math-BoldItalic.5c6a6a93.woff2 +0 -0
  442. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Math-BoldItalic.ad4dffd5.woff +0 -0
  443. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Math-BoldItalic.e73b3bf0.ttf +0 -0
  444. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Math-Italic.03974bc4.ttf +0 -0
  445. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Math-Italic.1cd2c488.woff +0 -0
  446. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Math-Italic.d8564edb.woff2 +0 -0
  447. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_SansSerif-Bold.a03f9428.woff2 +0 -0
  448. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_SansSerif-Bold.d4608ed5.ttf +0 -0
  449. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_SansSerif-Bold.ff51ef5c.woff +0 -0
  450. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_SansSerif-Italic.8ed740d6.woff +0 -0
  451. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_SansSerif-Italic.9245afda.woff2 +0 -0
  452. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_SansSerif-Italic.c0b22b1e.ttf +0 -0
  453. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_SansSerif-Regular.128c9bc2.woff2 +0 -0
  454. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_SansSerif-Regular.156dbd4e.ttf +0 -0
  455. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_SansSerif-Regular.ee7b0a16.woff +0 -0
  456. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Script-Regular.00d9a561.ttf +0 -0
  457. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Script-Regular.186c7155.woff2 +0 -0
  458. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Script-Regular.afc2fd5a.woff +0 -0
  459. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Size1-Regular.4450ef36.woff2 +0 -0
  460. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Size1-Regular.9aaff96b.ttf +0 -0
  461. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Size1-Regular.e5bf4c74.woff +0 -0
  462. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Size2-Regular.6a97527b.woff2 +0 -0
  463. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Size2-Regular.8fbd32af.woff +0 -0
  464. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Size2-Regular.f11810ed.ttf +0 -0
  465. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Size3-Regular.45ae8eba.woff +0 -0
  466. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Size3-Regular.54b7ce9d.woff2 +0 -0
  467. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Size3-Regular.9812ade2.ttf +0 -0
  468. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Size4-Regular.44a4d487.ttf +0 -0
  469. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Size4-Regular.927fc5b9.woff2 +0 -0
  470. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Size4-Regular.b211e3d3.woff +0 -0
  471. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Typewriter-Regular.68b6c3a9.woff +0 -0
  472. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Typewriter-Regular.a1a7ff52.ttf +0 -0
  473. /package/dist/{_next → safe-a/_next}/static/media/KaTeX_Typewriter-Regular.ff99d643.woff2 +0 -0
  474. /package/dist/{_next → safe-a/_next}/static/media/b886574ba42c3409-s.1f4af8e6.woff2 +0 -0
  475. /package/dist/{_next → safe-a/_next}/static/media/c3cb240f9c892514-s.d8e4bce2.woff2 +0 -0
  476. /package/dist/{_next → safe-a/_next}/static/media/c41ca59f1c34ba31-s.p.e20f337c.woff2 +0 -0
  477. /package/dist/{_next → safe-a/_next}/static/media/cc545e633e20c56d-s.f6f1950f.woff2 +0 -0
  478. /package/dist/{_next → safe-a/_next}/static/media/data-loading.be8d921a.png +0 -0
  479. /package/dist/{_next → safe-a/_next}/static/media/no-data.48c973b9.png +0 -0
  480. /package/dist/{favicon.ico → safe-a/favicon.ico} +0 -0
  481. /package/dist/{slash-command-ui-patch.css → safe-a/slash-command-ui-patch.css} +0 -0
  482. /package/dist/{slash-command-ui-patch.js → safe-a/slash-command-ui-patch.js} +0 -0
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,93479,e=>{"use strict";e.s(["Input",()=>r]);var t=e.i(18050),a=e.i(75157);function r(e){let{className:r,type:l="text",size:n="default",...s}=e;return(0,t.jsx)("input",{type:l,"data-slot":"input","data-size":n,className:(0,a.cn)("h-9 w-full appearance-none rounded-md border border-solid border-border bg-transparent px-3 text-sm outline-none transition-[color,box-shadow,border-color] duration-150 ease-in-out placeholder:text-muted-foreground hover:border-[var(--border-hover)] focus-visible:border-[var(--border-focus)] focus-visible:[box-shadow:var(--ring-focus-sm)] read-only:focus-visible:border-border read-only:focus-visible:[box-shadow:none] disabled:cursor-not-allowed disabled:opacity-50 disabled:focus-visible:border-border disabled:focus-visible:[box-shadow:none] data-[size=default]:h-9 data-[size=lg]:h-10 data-[size=sm]:h-7",r),...s})}},20783,e=>{"use strict";e.s(["composeRefs",()=>r,"useComposedRefs",()=>l]);var t=e.i(71645);function a(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function r(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return e=>{let r=!1,l=t.map(t=>{let l=a(t,e);return r||"function"!=typeof l||(r=!0),l});if(r)return()=>{for(let e=0;e<l.length;e++){let r=l[e];"function"==typeof r?r():a(t[e],null)}}}}function l(){for(var e=arguments.length,a=Array(e),l=0;l<e;l++)a[l]=arguments[l];return t.useCallback(r(...a),a)}},24687,e=>{"use strict";e.s(["Textarea",()=>r]);var t=e.i(18050),a=e.i(75157);function r(e){let{className:r,...l}=e;return(0,t.jsx)("textarea",{"data-slot":"textarea",className:(0,a.cn)("flex min-h-20 w-full rounded-md border border-solid border-border bg-transparent px-3 py-2 text-sm outline-none transition-[color,box-shadow,border-color] duration-150 ease-in-out placeholder:text-muted-foreground hover:border-[var(--border-hover)] focus-visible:border-[var(--border-focus)] focus-visible:[box-shadow:var(--ring-focus-sm)] read-only:focus-visible:border-border read-only:focus-visible:[box-shadow:none] disabled:cursor-not-allowed disabled:opacity-50 disabled:focus-visible:border-border disabled:focus-visible:[box-shadow:none]",r),...l})}},51239,e=>{e.v("/app/_next/static/media/data-loading.be8d921a.png")},2839,e=>{"use strict";e.s(["Loading",()=>s],2839);var t=e.i(18050),a=e.i(57688);let r={src:e.i(51239).default,width:951,height:482,blurWidth:8,blurHeight:4,blurDataURL:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAECAYAAACzzX7wAAAAj0lEQVR42gGEAHv/AAAAAAANERAObXJwYaGko5N/gYBwDg8PCgAAAAAAAAAAAAMEBAJic2xp2+3m7fL8+P7l6ujjUlhWTAYGBgUAAAAAADM3NTG6x8LB7fr1/vD89/7f9+3+wNXNzycpKB4AAAAAAJ+qpozL2dO/0NvWx9Td2c6gzrzRpcq8u2FpZk8CAgIBCRI7kCfNfAcAAAAASUVORK5CYII="};var l=e.i(87968),n=e.i(75157);function s(e){let{text:s="加载中",className:i,showImage:o=!0,imageSrc:c=r,imageAlt:u="加载中",imageSize:d=180,imageClassName:p}=e,m="string"==typeof c?{width:d,height:d}:{width:c.width,height:c.height};return(0,t.jsxs)("div",{className:(0,n.cn)("flex min-h-[180px] w-full flex-col items-center justify-center gap-2 py-4 text-[var(--ds-muted)]",i),role:"status","aria-live":"polite",children:[o?(0,t.jsx)("span",{className:(0,n.cn)("block shrink-0",p),style:{width:d},children:(0,t.jsx)(a.default,{src:c,alt:u,width:m.width,height:m.height,unoptimized:!0,draggable:!1,sizes:"".concat(d,"px"),className:"h-auto w-full object-contain"})}):null,(0,t.jsxs)("span",{className:"flex items-center",children:[(0,t.jsx)(l.Spinner,{className:"mr-2"}),s]})]})}},92715,e=>{"use strict";e.s(["AppTable",()=>d],92715);var t=e.i(18050),a=e.i(85413),r=e.i(71645),l=e.i(75157);let n=r.forwardRef((e,a)=>{let{className:r,...n}=e;return(0,t.jsx)("div",{className:"relative w-full overflow-auto",children:(0,t.jsx)("table",{ref:a,className:(0,l.cn)("w-full caption-bottom border-collapse",r),...n})})});n.displayName="Table";let s=r.forwardRef((e,a)=>{let{className:r,...n}=e;return(0,t.jsx)("thead",{ref:a,className:(0,l.cn)("[&_tr]:table [&_tr]:w-full [&_tr]:table-fixed [&_tr]:border-b",r),...n})});s.displayName="TableHeader";let i=r.forwardRef((e,a)=>{let{className:n,viewportFit:s=!0,viewportReserveBottom:i=16,viewportPaginationReserve:o=0,style:c,...u}=e,d=r.useRef(null),p=r.useCallback(e=>{d.current=e,"function"==typeof a?a(e):a&&(a.current=e)},[a]),[m,f]=r.useState(void 0);return r.useLayoutEffect(()=>{var e,t;if(!s)return void f(void 0);let a=()=>{var e,t;let a=d.current;if(!a)return;let r=a.getBoundingClientRect().top;f(Math.max(80,Math.floor((null!=(t=null==(e=window.visualViewport)?void 0:e.height)?t:window.innerHeight)-r-(i+o))))};a();let r=new ResizeObserver(()=>{a()});try{r.observe(document.body)}catch(e){}return window.addEventListener("resize",a),null==(e=window.visualViewport)||e.addEventListener("resize",a),null==(t=window.visualViewport)||t.addEventListener("scroll",a),window.addEventListener("scroll",a,!0),()=>{var e,t;r.disconnect(),window.removeEventListener("resize",a),null==(e=window.visualViewport)||e.removeEventListener("resize",a),null==(t=window.visualViewport)||t.removeEventListener("scroll",a),window.removeEventListener("scroll",a,!0)}},[s,i,o]),(0,t.jsx)("tbody",{ref:p,className:(0,l.cn)("block overflow-y-auto [&_tr:last-child]:border-b-0 [&_tr:last-child_td]:border-b-0 [&_tr]:table [&_tr]:w-full [&_tr]:table-fixed",n),style:s&&void 0!==m?{...c,maxHeight:m}:c,...u})});i.displayName="TableBody";let o=r.forwardRef((e,a)=>{let{className:r,hoverable:n=!0,...s}=e;return(0,t.jsx)("tr",{ref:a,className:(0,l.cn)("border-b transition-colors [&>td]:transition-colors data-[state=selected]:[&>td]:!bg-[var(--ds-item-active)]",n&&"group/table-row",r),...s})});o.displayName="TableRow";let c=r.forwardRef((e,a)=>{let{className:r,...n}=e;return(0,t.jsx)("th",{ref:a,className:(0,l.cn)("h-10 border-b border-[var(--border-subtle)] bg-[var(--surface-2)] px-3 text-left align-middle text-[14px] font-medium !text-[var(--ds-text)] text-muted-foreground",r),...n})});c.displayName="TableHead";let u=r.forwardRef((e,a)=>{let{className:r,...n}=e;return(0,t.jsx)("td",{ref:a,className:(0,l.cn)("border-x-0 border-b border-t-0 border-solid border-[var(--border-subtle)] p-3 align-middle transition-colors group-has-[td:hover]/table-row:!bg-[var(--ds-item-hover)]",r),...n})});function d(e){let{rows:r,columns:d,getRowKey:p,className:m,rowClassName:f,headerRowClassName:g,emptyText:h,emptyNode:x,bodyProps:b}=e;return(0,t.jsx)("div",{className:(0,l.cn)("overflow-hidden border border-[var(--ds-border)]",m),children:(0,t.jsxs)(n,{children:[(0,t.jsx)(s,{children:(0,t.jsx)(o,{className:(0,l.cn)("bg-[var(--ds-main-tint)] hover:bg-[var(--ds-main-tint)]",g),children:d.map(e=>(0,t.jsx)(c,{className:e.headerClassName,children:e.title},e.key))})}),(0,t.jsx)(i,{...b,children:r.length?r.map(e=>(0,t.jsx)(o,{className:"function"==typeof f?f(e):f,children:d.map(a=>(0,t.jsx)(u,{className:a.cellClassName,children:a.render(e)},a.key))},p(e))):(0,t.jsx)(o,{hoverable:!1,children:(0,t.jsx)(u,{colSpan:d.length,className:"py-6",children:null!=x?x:(0,t.jsx)(a.Empty,{text:h})})})})]})})}u.displayName="TableCell"},62427,e=>{"use strict";e.s(["clearRuntimeMcpItemConfig",()=>j,"deleteRuntimeMcp",()=>p,"deleteRuntimeSkill",()=>C,"deleteRuntimeTool",()=>d,"exportRuntimeMcpUrl",()=>f,"exportRuntimeSkillUrl",()=>k,"exportRuntimeToolUrl",()=>m,"importRuntimeMcp",()=>h,"importRuntimeTool",()=>g,"installCloudSkill",()=>N,"listBaseSkills",()=>n,"listCloudSkillCatalog",()=>w,"listInstalledSkills",()=>s,"listInstalledTools",()=>l,"listMcpServers",()=>r,"listRuntimeMcpPackages",()=>u,"listRuntimeTools",()=>c,"loadBaseSkillMd",()=>i,"loadRemoteMcpJson",()=>x,"loadRuntimeMcpItemConfig",()=>v,"saveBaseSkillMd",()=>o,"saveRemoteMcpJson",()=>b,"saveRuntimeMcpItemConfig",()=>y]);var t=e.i(29250),a=e.i(36845);async function r(e,r,l){let n=await (0,t.get)((0,a.buildMcpServersListUrl)(e,r,l));return{servers:Array.isArray(n.servers)?n.servers:[]}}async function l(e,r,l){let n=await (0,t.get)((0,a.buildToolInstalledListUrl)(e,r,l));return{tools:Array.isArray(n.tools)?n.tools:[]}}async function n(e,r,l){let n=await (0,t.get)((0,a.buildSkillBaseListUrl)(e,r,l));return{skills:Array.isArray(n.skills)?n.skills:[]}}async function s(e,r,l){let n=await (0,t.get)((0,a.buildSkillInstalledListUrl)(e,r,l));return{skills:Array.isArray(n.skills)?n.skills:[]}}async function i(e,r,l,n){return(0,t.get)((0,a.buildBaseSkillMdUrl)(e,r,l,n))}async function o(e,r,l,n,s){await (0,t.put)((0,a.buildBaseSkillMdUrl)(e,r,l,n),{content:s})}async function c(e,r,l){let n=await (0,t.get)((0,a.buildToolsRuntimeFilesUrl)(e,r,l));return{runtimeToolsDir:"string"==typeof n.runtimeToolsDir?n.runtimeToolsDir:"",items:Array.isArray(n.items)?n.items.filter(e=>!!(e&&e.id)):[]}}async function u(e,r,l){let n=await (0,t.get)((0,a.buildMcpRuntimeFilesUrl)(e,r,l));return{mcpRuntimeDir:"string"==typeof n.mcpRuntimeDir?n.mcpRuntimeDir:"",items:Array.isArray(n.items)?n.items.filter(e=>!!(e&&e.id)):[]}}async function d(e,r,l,n){return(0,t.del)((0,a.buildToolsRuntimeDeleteUrl)(e,r,l,n))}async function p(e,r,l,n){return(0,t.del)((0,a.buildMcpRuntimeDeleteUrl)(e,r,l,n))}function m(e,t,r,l){return(0,a.buildToolsRuntimeExportUrl)(e,t,r,l)}function f(e,t,r,l){return(0,a.buildMcpRuntimeExportUrl)(e,t,r,l)}async function g(e,r,l,n){let s=new FormData;return s.append("file",n),(0,t.post)((0,a.buildToolsRuntimeImportUrl)(e,r,l),s,{type:"file"})}async function h(e,r,l,n){let s=new FormData;return s.append("file",n),(0,t.post)((0,a.buildMcpRuntimeImportUrl)(e,r,l),s,{type:"file"})}async function x(e,r,l){return(0,t.get)((0,a.buildRemoteMcpJsonUrl)(e,r,l))}async function b(e,r,l,n){await (0,t.post)((0,a.buildRemoteMcpJsonUrl)(e,r,l),{content:n})}async function v(e,r,l,n,s){return(0,t.get)((0,a.buildRuntimeMcpItemConfigUrl)(e,r,l,n,s))}async function y(e,r,l,n,s,i){await (0,t.put)((0,a.buildRuntimeMcpItemConfigUrl)(e,r,l,n,s),{server:i})}async function j(e,r,l,n,s){await (0,t.del)((0,a.buildRuntimeMcpItemConfigUrl)(e,r,l,n,s))}async function C(e,r,l,n){return(0,t.del)((0,a.buildSkillsRuntimeDeleteUrl)(e,r,l,n))}function k(e,t,r,l){return(0,a.buildSkillsRuntimeExportUrl)(e,t,r,l)}async function w(e,r,l,n,s,i){let o=await (0,t.get)((0,a.buildCloudSkillCatalogUrl)(e,r,l,n,s,i));return{items:Array.isArray(o.items)?o.items:[],totalPages:Number(o.totalPages||0)}}async function N(e,r,l,n){await (0,t.post)((0,a.buildCloudSkillInstallUrl)(e,r,l),{id:n})}},53925,e=>{"use strict";e.s(["ResourceImportDialog",()=>d],53925);var t=e.i(18050),a=e.i(71645),r=e.i(72064),l=e.i(75157),n=e.i(19455);function s(e){return e<1024?"".concat(e," B"):e<1048576?"".concat((e/1024).toFixed(1)," KB"):"".concat((e/1048576).toFixed(1)," MB")}function i(e){let{uploadUrl:i,accept:o,disabled:c=!1,multiple:u=!1,maxFileSize:d=0x3200000,autoUpload:p=!1,method:m="POST",transport:f="xhr",fieldName:g="file",headers:h,extraFormData:x,autoRetryTimes:b=0,autoRetryDelayMs:v=800,selectionOnly:y=!1,className:j,emptyTitle:C="点击或拖拽文件到此处",emptyHint:k="支持上传文件",onFilesChange:w,onUploadSuccess:N,onUploadError:S,onValidationError:A}=e,T=a.useId(),R=a.useRef(null),E=a.useRef(new Map),M=a.useRef(new Map),I=a.useRef([]),[U,P]=a.useState(!1),[O,D]=a.useState([]),z=a.useMemo(()=>o?o.split(",").map(e=>e.trim().toLowerCase()).filter(Boolean):[],[o]);a.useEffect(()=>{I.current=O,null==w||w(O)},[O,w]),a.useEffect(()=>()=>{for(let e of E.current.values())e.abort();for(let e of M.current.values())e.abort();for(let e of I.current)e.previewUrl&&URL.revokeObjectURL(e.previewUrl)},[]);let B=a.useCallback((e,t)=>{D(a=>a.map(a=>a.id===e?{...a,...t}:a))},[]),L=a.useCallback(async(e,t)=>{let a=I.current.find(t=>t.id===e);if(!a||c)return;B(e,{status:t>0?"retrying":"uploading",progress:0,error:"",retryCount:t});let r=new FormData;if(x)for(let[e,t]of Object.entries(x))r.append(e,t);r.append(g,a.file);try{let t="";if("fetch"===f){let a=new AbortController;M.current.set(e,a);let l=await fetch(i,{method:m,headers:h,body:r,signal:a.signal}),n=await l.text();try{t=n?JSON.parse(n):""}catch(e){t=n}if(!l.ok)throw Error("上传失败:".concat(l.status," ").concat(l.statusText))}else t=await new Promise((t,a)=>{let l=new XMLHttpRequest;if(E.current.set(e,l),l.open(m,i,!0),h)for(let[e,t]of Object.entries(h))l.setRequestHeader(e,t);l.upload.onprogress=t=>{if(!t.lengthComputable)return;let a=Math.min(100,Math.round(t.loaded/t.total*100));B(e,{progress:a})},l.onerror=()=>a(Error("网络异常,上传失败")),l.onabort=()=>a(Error("__ABORTED__")),l.onload=()=>{l.status>=200&&l.status<300?t(function(e){let t=e.responseText||"";try{return JSON.parse(t)}catch(e){return t}}(l)):a(Error("上传失败:".concat(l.status," ").concat(l.statusText)))},l.send(r)});B(e,{status:"success",progress:100,error:""});let a=I.current.find(t=>t.id===e);a&&(null==N||N(a,t))}catch(l){let a=l instanceof Error?l.message:String(l);if("__ABORTED__"===a)return void B(e,{status:"selected",progress:0,error:""});if(t<b){B(e,{status:"retrying",error:"重试中(".concat(t+1,"/").concat(b,")")}),await new Promise(e=>window.setTimeout(e,v)),await L(e,t+1);return}B(e,{status:"error",error:a});let r=I.current.find(t=>t.id===e);r&&(null==S||S(r,a))}finally{E.current.delete(e),M.current.delete(e)}},[v,b,c,x,g,h,m,S,N,f,B,i]),_=a.useCallback(e=>{L(e,0)},[L]),F=a.useCallback(e=>{var t,a;null==(t=E.current.get(e))||t.abort(),null==(a=M.current.get(e))||a.abort()},[]),H=a.useCallback(()=>{for(let e of I.current)("selected"===e.status||"error"===e.status)&&_(e.id)},[_]),K=a.useCallback(e=>{if(c||!e.length)return;let t=new Set(I.current.map(e=>"".concat(e.file.name,"::").concat(e.file.size))),a=[];for(let r of e){let e="".concat(r.name,"::").concat(r.size);if(!t.has(e)){if(!function(e,t){if(!t.length)return!0;let a=e.name.toLowerCase(),r=(e.type||"").toLowerCase();return t.some(e=>e.startsWith(".")?a.endsWith(e):e.endsWith("/*")?r.startsWith("".concat(e.slice(0,-1))):r===e)}(r,z)){null==A||A("文件类型不支持:".concat(r.name));continue}if(r.size>d){null==A||A("文件过大(最大 ".concat(s(d),"):").concat(r.name));continue}t.add(e),a.push({id:"".concat(Date.now(),"-").concat(Math.random().toString(36).slice(2,8)),file:r,status:"selected",progress:0,error:"",retryCount:0,previewUrl:r.type.startsWith("image/")?URL.createObjectURL(r):""})}}if(!a.length)return;let r=u?[...I.current,...a]:[a[a.length-1]];if(!u)for(let e of I.current)e.previewUrl&&URL.revokeObjectURL(e.previewUrl);if(D(r),p&&!y)for(let e of a)_(e.id)},[z,p,c,d,u,A,y,_]),J=a.useCallback(e=>{let t=e.target.files;t&&(K(Array.from(t)),e.target.value="")},[K]),V=a.useCallback(e=>{var t;e.preventDefault(),e.stopPropagation(),P(!1),c||K(Array.from(null!=(t=e.dataTransfer.files)?t:[]))},[K,c]);return(0,t.jsxs)("div",{className:(0,l.cn)("flex min-h-0 w-full flex-col gap-3",j),children:[(0,t.jsx)("input",{ref:R,id:T,type:"file",hidden:!0,accept:o,multiple:u,disabled:c,onChange:J}),(0,t.jsxs)("label",{htmlFor:T,onDragOver:e=>{e.preventDefault(),c||P(!0)},onDragLeave:e=>{e.preventDefault(),P(!1)},onDrop:V,className:(0,l.cn)("flex min-h-[124px] cursor-pointer flex-col items-center justify-center gap-1 rounded-lg border border-dashed border-[var(--ds-border)] px-4 py-6 text-center transition-colors hover:border-[var(--ds-border-hover)] hover:bg-[var(--ds-main-tint)]",U&&"bg-[var(--ds-accent)]/5 border-[var(--ds-accent)]",c&&"cursor-not-allowed opacity-60"),children:[(0,t.jsx)(r.default,{name:"Upload",size:20,className:"text-[var(--ds-muted)]"}),(0,t.jsx)("div",{className:"text-[var(--ds-text)]",children:C}),(0,t.jsx)("div",{className:"text-[var(--ds-muted)]",children:k})]}),O.length?(0,t.jsx)("div",{className:"space-y-2",children:O.map(e=>(0,t.jsx)("div",{className:"rounded-md border border-[var(--ds-border)] p-2.5",children:(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("div",{className:"truncate text-[var(--ds-text)]",children:e.file.name}),(0,t.jsx)("div",{className:"text-[var(--ds-muted)]",children:s(e.file.size)}),e.previewUrl?(0,t.jsx)("img",{src:e.previewUrl,alt:e.file.name,className:"mt-2 h-14 w-14 rounded object-cover"}):null,"uploading"===e.status||"retrying"===e.status?(0,t.jsx)("div",{className:"mt-2 h-1.5 w-full overflow-hidden rounded bg-[var(--ds-main-tint)]",children:(0,t.jsx)("div",{className:"h-full bg-[var(--ds-accent)] transition-all",style:{width:"".concat(e.progress,"%")}})}):null,"error"===e.status?(0,t.jsx)("div",{className:"mt-1 text-[var(--ds-danger)]",children:e.error||"上传失败"}):null]}),y?null:(0,t.jsxs)("div",{className:"flex items-center gap-1",children:["success"===e.status?(0,t.jsx)(r.default,{name:"CheckCircle2",size:16,className:"text-[var(--ds-accent)]"}):null,"selected"===e.status||"error"===e.status?(0,t.jsxs)(n.Button,{type:"button",size:"sm",variant:"outline",disabled:c,onClick:()=>_(e.id),children:["error"===e.status?(0,t.jsx)(r.default,{name:"RefreshCw",size:14,className:"mr-1"}):null,"error"===e.status?"重试":"上传"]}):null,"uploading"===e.status||"retrying"===e.status?(0,t.jsxs)(n.Button,{type:"button",size:"sm",variant:"outline",onClick:()=>F(e.id),children:[(0,t.jsx)(r.default,{name:"XCircle",size:14,className:"mr-1"}),"取消"]}):null]})]})},e.id))}):null,!y&&!p&&O.some(e=>"selected"===e.status||"error"===e.status)?(0,t.jsx)("div",{className:"flex justify-end",children:(0,t.jsx)(n.Button,{type:"button",size:"sm",onClick:H,disabled:c,children:"上传"})}):null]})}var o=e.i(76639),c=e.i(13354),u=e.i(29250);function d(e){let{open:r,onOpenChange:l,title:s,description:d,uploadUrl:p,resetKey:m}=e,[f,g]=(0,a.useState)(!1),[h,x]=(0,a.useState)(null),b=(0,a.useCallback)(()=>{l(!1),x(null)},[l]),v=(0,a.useCallback)(async()=>{if(!h)return void c.appToast.info("请先选择 zip 文件");let e=new FormData;e.append("file",h),g(!0);try{let t=await (0,u.bridgeFetch)(p,{method:"POST",body:e}),a=Number(t.imported||0),r=Number(t.overwritten||0),l=Array.isArray(t.rejected)?t.rejected.length:0;c.appToast.success("导入完成:导入 ".concat(a,",覆盖 ").concat(r)+(l>0?",拒绝 ".concat(l):"")),b()}catch(e){c.appToast.error("导入失败:".concat(e instanceof Error?e.message:String(e)))}finally{g(!1)}},[b,h,p]);return(0,t.jsx)(o.Dialog,{open:r,onOpenChange:e=>{l(e),e||x(null)},children:(0,t.jsxs)(o.DialogContent,{className:"flex min-h-[320px] max-w-[560px] flex-col",children:[(0,t.jsxs)(o.DialogHeader,{children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(o.DialogTitle,{children:s}),(0,t.jsx)(o.DialogDescription,{children:d})]}),(0,t.jsx)(o.DialogClose,{className:"sidebar-icon-btn","aria-label":"关闭",onClick:b,children:"✕"})]}),(0,t.jsxs)("div",{className:"m-3 flex flex-1 flex-col gap-3",children:[(0,t.jsx)(i,{uploadUrl:p,accept:".zip,application/zip",maxFileSize:0x3200000,multiple:!1,disabled:f,selectionOnly:!0,emptyTitle:"点击或拖拽 zip 文件到此处",emptyHint:"支持 .zip 格式,最大 50MB",onFilesChange:e=>{var t,a;x(null!=(a=null==(t=e[0])?void 0:t.file)?a:null)},onValidationError:e=>{c.appToast.info(e)}},"".concat(r?"open":"closed","-").concat(null!=m?m:p)),(0,t.jsxs)("div",{className:"mt-auto flex justify-end pt-2",children:[(0,t.jsx)(n.Button,{className:"mr-[12px]",type:"button",variant:"plain-outline",size:"lg",onClick:b,children:"取消"}),(0,t.jsx)(n.Button,{type:"button",size:"lg",variant:"default",disabled:f||null==h,onClick:()=>void v(),children:f?"导入中…":"确定"})]})]})]})})}},55242,e=>{"use strict";e.s(["AppDialog",()=>n]);var t=e.i(18050),a=e.i(71645),r=e.i(76639),l=e.i(75157);function n(e){let{open:n,onOpenChange:s,title:i,children:o,footer:c,width:u="max-w-3xl",minHeight:d}=e,p=(0,a.useId)();return(0,t.jsx)(r.Dialog,{open:n,onOpenChange:s,children:(0,t.jsxs)(r.DialogContent,{"aria-labelledby":p,className:(0,l.cn)(u,d?"!min-h-[--min-h]":""),style:d?{"--min-h":d}:void 0,children:[(0,t.jsxs)(r.DialogHeader,{children:[(0,t.jsx)(r.DialogTitle,{id:p,children:i}),(0,t.jsx)(r.DialogClose,{"aria-label":"关闭"})]}),(0,t.jsx)(r.DialogBody,{className:"!px-4 !py-3",children:o}),c?(0,t.jsx)("div",{className:"flex flex-shrink-0 justify-end gap-2 border-t border-[var(--ds-border)] bg-[var(--ds-sidebar)] px-4 py-3",children:c}):null]})})}},98183,(e,t,a)=>{"use strict";function r(e){let t={};for(let[a,r]of e.entries()){let e=t[a];void 0===e?t[a]=r:Array.isArray(e)?e.push(r):t[a]=[e,r]}return t}function l(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function n(e){let t=new URLSearchParams;for(let[a,r]of Object.entries(e))if(Array.isArray(r))for(let e of r)t.append(a,l(e));else t.set(a,l(r));return t}function s(e){for(var t=arguments.length,a=Array(t>1?t-1:0),r=1;r<t;r++)a[r-1]=arguments[r];for(let t of a){for(let a of t.keys())e.delete(a);for(let[a,r]of t.entries())e.append(a,r)}return e}Object.defineProperty(a,"__esModule",{value:!0}),!function(e,t){for(var a in t)Object.defineProperty(e,a,{enumerable:!0,get:t[a]})}(a,{assign:function(){return s},searchParamsToUrlQuery:function(){return r},urlQueryToSearchParams:function(){return n}})},95057,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),!function(e,t){for(var a in t)Object.defineProperty(e,a,{enumerable:!0,get:t[a]})}(a,{formatUrl:function(){return n},formatWithValidation:function(){return i},urlObjectKeys:function(){return s}});let r=e.r(90809)._(e.r(98183)),l=/https?|ftp|gopher|file/;function n(e){let{auth:t,hostname:a}=e,n=e.protocol||"",s=e.pathname||"",i=e.hash||"",o=e.query||"",c=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?c=t+e.host:a&&(c=t+(~a.indexOf(":")?"["+a+"]":a),e.port&&(c+=":"+e.port)),o&&"object"==typeof o&&(o=String(r.urlQueryToSearchParams(o)));let u=e.search||o&&"?"+o||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||l.test(n))&&!1!==c?(c="//"+(c||""),s&&"/"!==s[0]&&(s="/"+s)):c||(c=""),i&&"#"!==i[0]&&(i="#"+i),u&&"?"!==u[0]&&(u="?"+u),""+n+c+(s=s.replace(/[?#]/g,encodeURIComponent))+(u=u.replace("#","%23"))+i}let s=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function i(e){return n(e)}},18967,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),!function(e,t){for(var a in t)Object.defineProperty(e,a,{enumerable:!0,get:t[a]})}(a,{DecodeError:function(){return g},MiddlewareNotFoundError:function(){return v},MissingStaticPage:function(){return b},NormalizeError:function(){return h},PageNotFoundError:function(){return x},SP:function(){return m},ST:function(){return f},WEB_VITALS:function(){return r},execOnce:function(){return l},getDisplayName:function(){return c},getLocationOrigin:function(){return i},getURL:function(){return o},isAbsoluteUrl:function(){return s},isResSent:function(){return u},loadGetInitialProps:function(){return p},normalizeRepeatedSlashes:function(){return d},stringifyError:function(){return y}});let r=["CLS","FCP","FID","INP","LCP","TTFB"];function l(e){let t,a=!1;return function(){for(var r=arguments.length,l=Array(r),n=0;n<r;n++)l[n]=arguments[n];return a||(a=!0,t=e(...l)),t}}let n=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,s=e=>n.test(e);function i(){let{protocol:e,hostname:t,port:a}=window.location;return e+"//"+t+(a?":"+a:"")}function o(){let{href:e}=window.location,t=i();return e.substring(t.length)}function c(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function u(e){return e.finished||e.headersSent}function d(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?"?"+t.slice(1).join("?"):"")}async function p(e,t){let a=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await p(t.Component,t.ctx)}:{};let r=await e.getInitialProps(t);if(a&&u(a))return r;if(!r)throw Object.defineProperty(Error('"'+c(e)+'.getInitialProps()" should resolve to an object. But found "'+r+'" instead.'),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return r}let m="undefined"!=typeof performance,f=m&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class g extends Error{}class h extends Error{}class x extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message="Cannot find module for page: "+e}}class b extends Error{constructor(e,t){super(),this.message="Failed to load static file for page: "+e+" "+t}}class v extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function y(e){return JSON.stringify({message:e.message,stack:e.stack})}},73668,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"isLocalURL",{enumerable:!0,get:function(){return n}});let r=e.r(18967),l=e.r(52817);function n(e){if(!(0,r.isAbsoluteUrl)(e))return!0;try{let t=(0,r.getLocationOrigin)(),a=new URL(e,t);return a.origin===t&&(0,l.hasBasePath)(a.pathname)}catch(e){return!1}}},84508,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"errorOnce",{enumerable:!0,get:function(){return r}});let r=e=>{}},22016,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),!function(e,t){for(var a in t)Object.defineProperty(e,a,{enumerable:!0,get:t[a]})}(a,{default:function(){return h},useLinkStatus:function(){return b}});let r=e.r(90809),l=e.r(18050),n=r._(e.r(71645)),s=e.r(95057),i=e.r(8372),o=e.r(18581),c=e.r(18967),u=e.r(84395);e.r(33525);let d=e.r(91949),p=e.r(73668),m=e.r(99781);e.r(84508);let f=e.r(65165);function g(e){return"string"==typeof e?e:(0,s.formatUrl)(e)}function h(e){var t;let a,r,s,[h,b]=(0,n.useOptimistic)(d.IDLE_LINK_STATUS),v=(0,n.useRef)(null),{href:y,as:j,children:C,prefetch:k=null,passHref:w,replace:N,shallow:S,scroll:A,onClick:T,onMouseEnter:R,onTouchStart:E,legacyBehavior:M=!1,onNavigate:I,ref:U,unstable_dynamicOnHover:P,...O}=e;a=C,M&&("string"==typeof a||"number"==typeof a)&&(a=(0,l.jsx)("a",{children:a}));let D=n.default.useContext(i.AppRouterContext),z=!1!==k,B=!1!==k?null===(t=k)||"auto"===t?f.FetchStrategy.PPR:f.FetchStrategy.Full:f.FetchStrategy.PPR,{href:L,as:_}=n.default.useMemo(()=>{let e=g(y);return{href:e,as:j?g(j):e}},[y,j]);M&&(r=n.default.Children.only(a));let F=M?r&&"object"==typeof r&&r.ref:U,H=n.default.useCallback(e=>(null!==D&&(v.current=(0,d.mountLinkInstance)(e,L,D,B,z,b)),()=>{v.current&&((0,d.unmountLinkForCurrentNavigation)(v.current),v.current=null),(0,d.unmountPrefetchableInstance)(e)}),[z,L,D,B,b]),K={ref:(0,o.useMergedRef)(H,F),onClick(e){M||"function"!=typeof T||T(e),M&&r.props&&"function"==typeof r.props.onClick&&r.props.onClick(e),D&&(e.defaultPrevented||function(e,t,a,r,l,s,i){let{nodeName:o}=e.currentTarget;if(!("A"===o.toUpperCase()&&function(e){let t=e.currentTarget.getAttribute("target");return t&&"_self"!==t||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.nativeEvent&&2===e.nativeEvent.which}(e)||e.currentTarget.hasAttribute("download"))){if(!(0,p.isLocalURL)(t)){l&&(e.preventDefault(),location.replace(t));return}if(e.preventDefault(),i){let e=!1;if(i({preventDefault:()=>{e=!0}}),e)return}n.default.startTransition(()=>{(0,m.dispatchNavigateAction)(a||t,l?"replace":"push",null==s||s,r.current)})}}(e,L,_,v,N,A,I))},onMouseEnter(e){M||"function"!=typeof R||R(e),M&&r.props&&"function"==typeof r.props.onMouseEnter&&r.props.onMouseEnter(e),D&&z&&(0,d.onNavigationIntent)(e.currentTarget,!0===P)},onTouchStart:function(e){M||"function"!=typeof E||E(e),M&&r.props&&"function"==typeof r.props.onTouchStart&&r.props.onTouchStart(e),D&&z&&(0,d.onNavigationIntent)(e.currentTarget,!0===P)}};return(0,c.isAbsoluteUrl)(_)?K.href=_:M&&!w&&("a"!==r.type||"href"in r.props)||(K.href=(0,u.addBasePath)(_)),s=M?n.default.cloneElement(r,K):(0,l.jsx)("a",{...O,...K,children:a}),(0,l.jsx)(x.Provider,{value:h,children:s})}let x=(0,n.createContext)(d.IDLE_LINK_STATUS),b=()=>(0,n.useContext)(x);("function"==typeof a.default||"object"==typeof a.default&&null!==a.default)&&void 0===a.default.__esModule&&(Object.defineProperty(a.default,"__esModule",{value:!0}),Object.assign(a.default,a),t.exports=a.default)},19573,e=>{"use strict";e.s(["ToolsManageView",()=>j],19573);var t=e.i(18050),a=e.i(71645),r=e.i(65934),l=e.i(87243),n=e.i(13354),s=e.i(50711),i=e.i(19455),o=e.i(94055),c=e.i(94197),u=e.i(92715);function d(e){let{items:a,saveBusy:r,onToggle:l,onExport:n,onRemove:s,className:i}=e,d=[{key:"name",title:"名称",headerClassName:"",cellClassName:"",render:e=>e.label||e.name},{key:"description",title:"详情",headerClassName:"",cellClassName:"",render:e=>e.description||"-"},{key:"enabled",title:"启用/未启用",headerClassName:"",cellClassName:"whitespace-nowrap text-[var(--ds-text)]",render:e=>(0,t.jsx)("span",{className:"inline-flex items-center gap-2",children:(0,t.jsx)(o.AccentSwitch,{checked:!!e.enabled,disabled:r,onCheckedChange:t=>l(e.name,t),"aria-label":"".concat(e.enabled?"禁用":"启用"," ").concat(e.name)})})},{key:"actions",title:"操作",headerClassName:"w-[128px] ",cellClassName:"w-[128px]",render:e=>{let a=!0===e.canManage;return(0,t.jsxs)("div",{className:"inline-flex items-center justify-end gap-1",children:[(0,t.jsx)(c.IconTooltipButton,{icon:"Download",label:a?"导出":"系统内置工具不可导出",ariaLabel:"导出 ".concat(e.label||e.name),disabled:r||!a,onClick:()=>n(e.name)}),(0,t.jsx)(c.IconTooltipButton,{icon:"Trash2",label:a?"删除":"系统内置工具不可删除",tone:"danger",ariaLabel:"删除 ".concat(e.label||e.name),disabled:r||!a,onClick:()=>{s(e.name)}})]})}}];return(0,t.jsx)(u.AppTable,{rows:a,columns:d,getRowKey:e=>"tools:".concat(e.name),className:i})}var p=e.i(36845),m=e.i(53925);function f(e){let{open:a,onOpenChange:r,wsUrl:l,apiBase:n,agent:s}=e;return(0,t.jsx)(m.ResourceImportDialog,{open:a,onOpenChange:r,title:"导入工具 zip",description:"选择一个 zip 文件并导入到 tools-runtime。",uploadUrl:(0,p.buildToolsRuntimeImportUrl)(l,n,s),resetKey:s})}var g=e.i(68499),h=e.i(72064),x=e.i(56708),b=e.i(62427);function v(e){return(null!=e.packageId?String(e.packageId).trim():"")||e.name}function y(e){let t=null!=e.packageId?String(e.packageId).trim():"";return!0===e.deletable&&t.length>0}function j(){let e=(0,r.useAppStore)(e=>e.wsUrl),o=(0,r.useAppStore)(e=>e.apiBase),c=(0,r.useAppStore)(e=>e.agentConfig),u=(0,r.useAppStore)(e=>e.patchAgentConfig),{currentAgent:p,loadAgentConfig:m}=(0,l.useSession)(),j=(0,s.usePersistAgentConfigField)("tools"),C=c.tools,[k,w]=(0,a.useState)([]),[N,S]=(0,a.useState)(!1),[A,T]=(0,a.useState)(!1),[R,E]=(0,a.useState)(!1);(0,a.useEffect)(()=>{m()},[m]);let M=(0,a.useCallback)(async(e,t)=>{T(!0);try{await j(e,{silent:t})}finally{T(!1)}},[j]),I=(0,a.useCallback)(async()=>{w([]),S(!0);try{var t;let a=await (0,b.listInstalledTools)(e,o,p());w(null!=(t=a.tools)?t:[])}catch(e){w([]),n.appToast.error("加载失败:".concat(e instanceof Error?e.message:String(e)))}finally{S(!1)}},[e,o,p]);(0,a.useEffect)(()=>{I()},[I]);let U=(0,a.useCallback)(e=>k.find(t=>t.name===e),[k]),P=(0,a.useMemo)(()=>k.slice().sort((e,t)=>e.name.localeCompare(t.name)).map(e=>(function(e,t){var a,r;let l=null!=e.packageName?String(e.packageName).trim():"";return{name:e.name,label:(e.displayName&&e.displayName!==e.name?"".concat(e.displayName," · "):"")+e.name+("system"===(r=e.layer)?" [系统]":"agent"===r?" [Agent]":""),description:null!=(a=e.searchHint)?a:"",enabled:t,packageId:l,canManage:y({deletable:e.deletable,packageId:l})}})(e,C.includes(e.name))),[k,C]),O=(0,a.useCallback)(async t=>{let a=U(t);if(!a||!y({deletable:a.deletable,packageId:a.packageName}))return void n.appToast.error("系统内置工具不可删除");if(await (0,g.confirmAlertDialog)({title:"确认删除工具包?",description:"工具名:".concat(t),confirmText:"删除",cancelText:"取消"}))try{await (0,b.deleteRuntimeTool)(e,o,p(),v({packageId:a.packageName,name:a.name}));let r=C.filter(e=>e!==t);u({tools:r}),await M(r,!0),await I()}catch(e){n.appToast.error("删除失败:".concat(e instanceof Error?e.message:String(e)))}},[U,e,o,p,C,u,M,I]),D=(0,a.useCallback)(t=>{let a=U(t);if(!a||!y({deletable:a.deletable,packageId:a.packageName}))return void n.appToast.error("系统内置工具不可导出");window.open((0,b.exportRuntimeToolUrl)(e,o,p(),v({packageId:a.packageName,name:a.name})),"_blank","noopener")},[U,e,o,p]),z=(0,a.useCallback)((e,t)=>{let a=t?[...new Set([...C,e])].sort():C.filter(t=>t!==e).sort();u({tools:a}),M(a,!0)},[C,u,M]);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(x.ManageChromeHeaderActions,{children:(0,t.jsxs)(i.Button,{id:"btnAgentPickerToolImport",type:"button",variant:"plain-outline",size:"lg",className:"inline-flex items-center justify-center gap-1.5",onClick:()=>E(!0),children:[(0,t.jsx)(h.default,{name:"Import",size:16,className:"align-middle"}),"导入自定义工具"]})}),N?(0,t.jsx)("p",{className:"px-3 py-6 text-center text-[var(--ds-muted)]",children:"加载中…"}):(0,t.jsx)(d,{items:P,saveBusy:A,onToggle:z,onExport:D,onRemove:O}),(0,t.jsx)(f,{open:R,onOpenChange:e=>{E(e),e||I()},wsUrl:e,apiBase:o,agent:p()})]})}},37991,e=>{"use strict";e.s(["McpManageView",()=>w],37991);var t=e.i(18050),a=e.i(71645),r=e.i(65934),l=e.i(87243),n=e.i(13354),s=e.i(50711),i=e.i(51419),o=e.i(55242),c=e.i(92715),u=e.i(19455),d=e.i(94055),p=e.i(94197);function m(e){let{items:a,saveBusy:r,onToggleStatus:l,onEdit:n,className:s}=e,i=[{key:"name",title:"名称",headerClassName:"",cellClassName:"",render:e=>e.label||e.name},{key:"description",title:"详情",headerClassName:"",cellClassName:"",render:e=>e.description||"-"},{key:"source",title:"来源",headerClassName:"",cellClassName:"",render:()=>"远程"},{key:"status",title:"状态",headerClassName:"",cellClassName:"whitespace-nowrap py-2 align-middle",render:e=>l?(0,t.jsx)("span",{className:"inline-flex items-center justify-end gap-2 text-[var(--ds-text)]",children:(0,t.jsx)(d.AccentSwitch,{checked:!e.disabled,disabled:r,onCheckedChange:t=>{l(e.name,t)},"aria-label":"".concat(e.disabled?"启用":"禁用"," ").concat(e.name)})}):(0,t.jsx)("span",{className:"text-[var(--ds-text)]",children:e.installed?"已安装":"未安装"})},...n?[{key:"actions",title:"操作",headerClassName:"w-[72px] ",cellClassName:"w-[72px]",render:e=>(0,t.jsx)("div",{className:"inline-flex justify-end",children:(0,t.jsx)(p.IconTooltipButton,{icon:"Edit",label:"编辑 MCP 配置",ariaLabel:"编辑 ".concat(e.name),disabled:r,onClick:()=>n(e.name)})})}]:[]];return(0,t.jsx)(c.AppTable,{rows:a,columns:i,getRowKey:e=>"mcp:".concat(e.name),className:s})}var f=e.i(36845),g=e.i(53925);function h(e){let{open:a,onOpenChange:r,wsUrl:l,apiBase:n,agent:s}=e;return(0,t.jsx)(g.ResourceImportDialog,{open:a,onOpenChange:r,title:"导入 MCP zip",description:"选择一个 zip 文件并导入到 mcp-runtime。",uploadUrl:(0,f.buildMcpRuntimeImportUrl)(l,n,s),resetKey:s})}var x=e.i(62427);function b(e){return(null!=e.packageId?String(e.packageId).trim():"")||e.id}function v(e){let{open:r,onOpenChange:l,itemId:s,source:i,wsUrl:c,apiBase:d,agent:p,onSaved:m}=e,[f,g]=(0,a.useState)(""),[h,b]=(0,a.useState)(!1),[v,y]=(0,a.useState)(!1),j="remote"===i?"remote":"runtime";(0,a.useEffect)(()=>{if(!r||!s.trim())return;let e=!1;return b(!0),g("加载中…"),(0,x.loadRuntimeMcpItemConfig)(c,d,p,s,j).then(t=>{if(e)return;let a=t.overlay;a&&"object"==typeof a&&!Array.isArray(a)?g(JSON.stringify(a,null,2)):g("{}")}).catch(t=>{e||(n.appToast.error("加载 MCP 配置失败:".concat(t instanceof Error?t.message:String(t))),l(!1))}).finally(()=>{e||b(!1)}),()=>{e=!0}},[r,s,c,d,p,j,l]);let C=(0,a.useCallback)(async()=>{let e;if(!s.trim())return;let t=f.trim();try{e=t?JSON.parse(t):{}}catch(e){n.appToast.error("JSON 解析失败:".concat(e instanceof Error?e.message:String(e)));return}if(!e||"object"!=typeof e||Array.isArray(e))return void n.appToast.error("配置必须是 JSON 对象");if("mcpServers"in e&&null!=e.mcpServers)return void n.appToast.error("请填写标准 server 配置(command/args/env),不要嵌套 mcpServers");let a=0===Object.keys(e).length;y(!0);try{a?await (0,x.clearRuntimeMcpItemConfig)(c,d,p,s,j):await (0,x.saveRuntimeMcpItemConfig)(c,d,p,s,j,e),n.appToast.success("MCP 配置已保存"),l(!1),null==m||m()}catch(e){n.appToast.error("保存失败:".concat(e instanceof Error?e.message:String(e)))}finally{y(!1)}},[s,f,c,d,p,j,l,m]);return(0,t.jsx)(o.AppDialog,{open:r,onOpenChange:l,title:"编辑 MCP 配置 · ".concat(s),width:"max-w-4xl",minHeight:"420px",footer:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(u.Button,{type:"button",variant:"plain-outline",size:"lg",disabled:v,onClick:()=>l(!1),children:"取消"}),(0,t.jsx)(u.Button,{type:"button",size:"lg",disabled:v||h,onClick:()=>void C(),children:"保存"})]}),children:(0,t.jsx)("textarea",{className:"focus-visible:ring-[var(--ds-accent)]/30 min-h-[320px] w-full resize-y rounded-md border border-[var(--ds-border)] bg-[var(--ds-bg)] p-3 font-mono leading-6 text-[var(--ds-text)] outline-none focus-visible:ring-2",spellCheck:!1,value:f,disabled:h,onChange:e=>g(e.target.value)})})}var y=e.i(68499),j=e.i(72064),C=e.i(56708);let k=[{value:"basic",label:"本地MCP"},{value:"installed",label:"远程MCP"}];function w(){let e=(0,r.useAppStore)(e=>e.wsUrl),f=(0,r.useAppStore)(e=>e.apiBase),g=(0,r.useAppStore)(e=>e.agentConfig),w=(0,r.useAppStore)(e=>e.setAgentConfig),{currentAgent:N,loadAgentConfig:S}=(0,l.useSession)(),A=(0,s.usePersistAgentConfigField)("mcpServers"),T=g.mcpServers,R=(0,a.useMemo)(()=>[...T].sort().join("\0"),[T]),[E,M]=(0,a.useState)([]),[I,U]=(0,a.useState)([]),[P,O]=(0,a.useState)(!1),[D,z]=(0,a.useState)(!1),[B,L]=(0,a.useState)("basic"),[_,F]=(0,a.useState)(!1),[H,K]=(0,a.useState)(!1),[J,V]=(0,a.useState)(""),[q,W]=(0,a.useState)(!1),[G,X]=(0,a.useState)(""),[Y,Z]=(0,a.useState)(),[Q,$]=(0,a.useState)(!1);(0,a.useEffect)(()=>{S()},[S]);let ee=(0,a.useCallback)(async(e,t)=>{z(!0);try{await A(e,{silent:t})}finally{z(!1)}},[A]),et=(0,a.useCallback)(e=>E.find(t=>t.id===e),[E]),ea=(0,a.useCallback)(e=>{let t=et(e);X(e),Z(null==t?void 0:t.source),$(!0)},[et]),er=(0,a.useCallback)(async()=>{M([]),O(!0);try{var t;let a=await (0,x.listMcpServers)(e,f,N());M((null!=(t=a.servers)?t:[]).map(e=>{var t,a,r;return{...e,id:e.name,label:e.name+(e.disabled?"(已禁用)":""),description:null!=(a=null!=(t=e.description)?t:e.source)?a:"",source:null!=(r=e.source)?r:"",installed:!!e.installed,packageId:e.packageId}}))}catch(e){M([]),n.appToast.error("加载失败:".concat(e instanceof Error?e.message:String(e)))}finally{O(!1)}},[e,f,N]),el=(0,a.useCallback)(async t=>{var a;let r=et(t),l=null!=(a=null==r?void 0:r.source)?a:"";if("runtime"!==l&&"remote"!==l)return void n.appToast.error("基础MCP不可删除");if(await (0,y.confirmAlertDialog)({title:"确认删除 MCP?",description:"服务器名:".concat(t),confirmText:"删除",cancelText:"取消"}))try{if("remote"===l){let a=await (0,x.loadRemoteMcpJson)(e,f,N()),r={};try{r=JSON.parse(String(a.content||"{}"))}catch(e){r={mcpServers:{}}}(!r.mcpServers||Array.isArray(r.mcpServers)||"object"!=typeof r.mcpServers)&&(r.mcpServers={}),delete r.mcpServers[t],await (0,x.saveRemoteMcpJson)(e,f,N(),JSON.stringify(r,null,2))}else{let a=r?b(r):t;await (0,x.deleteRuntimeMcp)(e,f,N(),a)}let a=T.filter(e=>e!==t);U(e=>e.filter(e=>e!==t)),w({...g,mcpServers:a}),await ee(a,!0),await er()}catch(e){n.appToast.error("删除失败:".concat(e instanceof Error?e.message:String(e)))}},[et,e,f,N,T,g,w,ee,er]);(0,a.useEffect)(()=>{("basic"===B||"installed"===B)&&er()},[B,er]),(0,a.useEffect)(()=>{("basic"===B||"installed"===B)&&U([...T])},[B,T,R]);let en=(0,a.useCallback)(async e=>{let t=[...new Set(e)].sort();w({...g,mcpServers:t}),await ee(t,!0)},[g,w,ee]),es=(0,a.useCallback)(async(e,t)=>{let a=t?[...new Set([...I,e])]:I.filter(t=>t!==e);U(a);try{await en(a)}catch(e){U(I),n.appToast.error("切换启用状态失败: ".concat(e))}},[I,en]),ei=(0,a.useMemo)(()=>E.filter(e=>"remote"!==e.source).slice().sort((e,t)=>e.id.localeCompare(t.id)),[E]),eo=(0,a.useMemo)(()=>E.filter(e=>"remote"===e.source).slice().sort((e,t)=>{let a=+!I.includes(e.id),r=+!I.includes(t.id);return a!==r?a-r:e.id.localeCompare(t.id)}).map(e=>({...e,name:e.id,label:e.label,description:e.description||"",installed:!0,source:e.source,disabled:!I.includes(e.id)})),[E,I]),ec=(0,a.useCallback)(t=>{window.open((0,x.exportRuntimeMcpUrl)(e,f,N(),b(t)),"_blank","noopener")},[e,f,N]),eu=(0,a.useCallback)(async(e,t)=>{let a=t?[...new Set([...I,e])]:I.filter(t=>t!==e);U(a);try{await en(a)}catch(e){U(I),n.appToast.error("切换启用状态失败: ".concat(e))}},[I,en]),ed=(0,a.useCallback)(()=>{K(!0),V(""),(0,x.loadRemoteMcpJson)(e,f,N()).then(e=>{V("string"==typeof e.content?e.content:'{\n "mcpServers": {}\n}\n')}).catch(e=>{n.appToast.error("加载 mcp.json 失败:".concat(e instanceof Error?e.message:String(e))),K(!1)})},[e,f,N]),ep=(0,a.useCallback)(async()=>{let t=function(e){let t,a=e.trim();if(!a)return"请输入 JSON 配置内容";try{t=JSON.parse(a)}catch(e){return"JSON 解析失败:".concat(e instanceof Error?e.message:String(e))}if(!t||"object"!=typeof t||Array.isArray(t))return"JSON 根节点必须是对象";let r=t.mcpServers;if(!r||"object"!=typeof r||Array.isArray(r))return"mcpServers 不能为空,且需包含至少一个 server";let l=Object.keys(r).filter(e=>e.trim());if(!l.length)return"mcpServers 不能为空,且需包含至少一个 server";let n=new Set;for(let e of l){let t=e.trim();!t||n.has(t)||n.add(t)}return n.size?null:"未解析到有效的 server 名称"}(J);if(t)return void n.appToast.error(t);W(!0);try{await (0,x.saveRemoteMcpJson)(e,f,N(),J.trim()),n.appToast.success("已保存全局 mcp.json。"),K(!1),await er()}catch(e){n.appToast.error("保存 mcp.json 失败:".concat(e instanceof Error?e.message:String(e)))}finally{W(!1)}},[e,f,N,J,er]),em=[{key:"name",title:"名称",headerClassName:" text-[var(--ds-muted)]",cellClassName:" text-[var(--ds-text)]",render:e=>e.label},{key:"description",title:"详情",headerClassName:" text-[var(--ds-muted)]",cellClassName:" text-[var(--ds-text)]",render:e=>e.description||"-"},{key:"enabled",title:"启用/未启用",headerClassName:"w-14 w-[112px] text-right text-[var(--ds-muted)]",cellClassName:"w-[112px] py-2 text-right align-middle",render:e=>(0,t.jsx)("span",{className:"inline-flex justify-end",children:(0,t.jsx)(d.AccentSwitch,{checked:I.includes(e.id),disabled:D,onCheckedChange:t=>{es(e.id,t)},"aria-label":"选择 ".concat(e.label)})})},{key:"actions",title:"操作",headerClassName:"w-[168px] text-[var(--ds-muted)]",cellClassName:"w-[168px]",render:e=>{var a;let r=null!=(a=e.source)?a:"",l="runtime"===r,n="runtime"===r||"remote"===r;return(0,t.jsxs)("div",{className:"inline-flex items-center justify-end gap-1",children:[(0,t.jsx)(p.IconTooltipButton,{icon:"Download",label:l?"导出":"仅 runtime MCP 支持导出",ariaLabel:"导出 ".concat(e.label),disabled:D||!l,onClick:()=>ec(e)}),(0,t.jsx)(p.IconTooltipButton,{icon:"Edit",label:"编辑 MCP 配置",ariaLabel:"编辑 ".concat(e.label),disabled:D,onClick:()=>ea(e.id)}),(0,t.jsx)(p.IconTooltipButton,{icon:"Trash2",label:n?"删除":"基础MCP不可删除",tone:"danger",ariaLabel:"删除 ".concat(e.label),disabled:D||!n,onClick:()=>{el(e.id)},iconClassName:"text-red-500"})]})}}];return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(C.ManageChromeHeaderActions,{children:(0,t.jsxs)("div",{className:"flex flex-wrap items-center",children:[(0,t.jsxs)(u.Button,{type:"button",variant:"plain-outline",size:"lg",onClick:ed,className:"mr-[12px]",children:[(0,t.jsx)(j.default,{name:"Edit",size:16,className:"align-middle"}),"编辑远程MCP"]}),(0,t.jsxs)(u.Button,{id:"btnAgentImportMcp",type:"button",variant:"plain-outline",size:"lg",className:"inline-flex items-center justify-center gap-1.5",onClick:()=>F(!0),children:[(0,t.jsx)(j.default,{name:"Import",size:16,className:"align-middle"}),"导入本地MCP"]})]})}),(0,t.jsxs)(i.AppTabs,{tabs:k,value:B,listVariant:"line",onChange:e=>L(e),children:[(0,t.jsx)(i.AppTabsPanel,{value:"basic",children:(0,t.jsx)("div",{className:"flex min-h-0 flex-1 flex-col gap-3",children:(0,t.jsx)("div",{className:"min-h-0",children:P?(0,t.jsx)("p",{className:"px-3 py-6 text-center text-[var(--ds-muted)]",children:"加载中…"}):(0,t.jsx)(c.AppTable,{rows:ei,columns:em,getRowKey:e=>e.id})})})}),(0,t.jsx)(i.AppTabsPanel,{value:"installed",children:(0,t.jsx)(m,{items:eo,saveBusy:D,onToggleStatus:eu,onEdit:ea})})]}),(0,t.jsx)(h,{open:_,onOpenChange:e=>{F(e),e||er()},wsUrl:e,apiBase:f,agent:N()}),(0,t.jsx)(v,{open:Q,onOpenChange:$,itemId:G,source:Y,wsUrl:e,apiBase:f,agent:N(),onSaved:()=>{er(),ee(g.mcpServers,!0)}}),(0,t.jsx)(o.AppDialog,{open:H,onOpenChange:K,title:"编辑全局MCP",width:"max-w-4xl",minHeight:"420px",footer:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(u.Button,{type:"button",variant:"plain-outline",size:"lg",disabled:q,onClick:()=>K(!1),children:"取消"}),(0,t.jsx)(u.Button,{type:"button",size:"lg",disabled:q,onClick:()=>void ep(),children:"保存"})]}),children:(0,t.jsx)("textarea",{className:"focus-visible:ring-[var(--ds-accent)]/30 min-h-[320px] w-full resize-y rounded-md border border-[var(--ds-border)] bg-[var(--ds-bg)] p-3 leading-6 text-[var(--ds-text)] outline-none focus-visible:ring-2",spellCheck:!1,value:J,onChange:e=>V(e.target.value)})})]})}},18900,69051,e=>{"use strict";function t(e){let t=null==e?"":String(e);return""===t?'""':/[\s#"'\\\n]/.test(t)||t!==t.trim()?'"'.concat(t.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):t}function a(e){let t=String(e).split(/\r?\n/),a={},r=/^\s*(?:export\s+)?([A-Za-z_][A-Za-z0-9_]*)\s*=\s*(.*)$/;for(let e=0;e<t.length;e++){let l=t[e],n=r.exec(l);n&&(a[n[1]]=function(e){let t=e.trimEnd();return t.length>=2&&'"'===t[0]&&'"'===t[t.length-1]?t.slice(1,-1).replace(/\\(.)/g,(e,t)=>"n"===t?"\n":'"'===t?'"':"\\"===t?"\\":"\\".concat(t)):t.length>=2&&"'"===t[0]&&"'"===t[t.length-1]?t.slice(1,-1):e}(n[2]))}return a}function r(e,a){let r=Array.isArray(e)?e:[],l=new Set;for(let e=0;e<r.length;e++){let t=r[e];t&&"object"==typeof t&&"string"==typeof t.key&&l.add(t.key)}let n=[];for(let e=0;e<r.length;e++){let l=r[e];if(!l||"object"!=typeof l||"string"!=typeof l.key)continue;let s=l.key;if(!Object.prototype.hasOwnProperty.call(a,s))continue;let i=a[s];null!=i&&""!==String(i).trim()&&n.push("".concat(s,"=").concat(t(String(i))))}let s=Object.keys(a).filter(e=>!l.has(e)).sort();for(let e=0;e<s.length;e++){let r=s[e],l=a[r];null!=l&&""!==String(l).trim()&&n.push("".concat(r,"=").concat(t(String(l))))}let i=n.join("\n");return i.length>0?"".concat(i,"\n"):""}e.s(["buildEnvFileContentFromForm",()=>r,"parseEnvContentToMap",()=>a],18900),e.s(["loadDemoSingleMessage",()=>c,"loadSystemEnv",()=>s,"saveSystemEnv",()=>i,"saveSystemMcpJson",()=>o],69051);var l=e.i(29250),n=e.i(36845);async function s(e,t,a){return(0,l.get)((0,n.buildSystemEnvApiUrl)(e,t,a))}async function i(e,t,a,r){await (0,l.patch)((0,n.buildSystemEnvApiUrl)(e,t,a),{content:r})}async function o(e,t,a,r){await (0,l.patch)((0,n.buildSystemMcpJsonApiUrl)(e,t,a),{content:r})}async function c(){return(0,l.get)("/api/demo/single-message")}},62849,e=>{"use strict";e.s(["EnvManageView",()=>_],62849);var t=e.i(18050),a=e.i(71645),r=e.i(56708),l=e.i(19455),n=e.i(72064),s=e.i(51419),i=e.i(76639),o=e.i(93479),c=e.i(67489),u=e.i(13354),d=e.i(87243),p=e.i(67327);let m=["llm","git","geelib","tutui","system"],f={llm:"llm设置",git:"git设置",geelib:"geelib设置",tutui:"tutui设置",system:"系统设置"};function g(e){let t={...f};if(!e||"object"!=typeof e)return t;for(let a of m){let r=e[a];"string"==typeof r&&r.trim()&&(t[a]=r.trim())}return t}var h=e.i(18900),x=e.i(94606),b=e.i(75157),v=e.i(82136),y=e.i(69051),j=e.i(70074),C=e.i(65934);let k=[{id:"env-zhixiao",name:"zhixiao",baseUrl:"https://claudecode-internal.geelib.360.cn",model:"MiniMax-M2.7",isDefault:!0},{id:"env-backup",name:"backup-provider",baseUrl:"https://api.anthropic.com",model:"Claude-Sonnet-4",isDefault:!1}],w=[{key:"name",name:"名称",required:!0},{key:"description",name:"备注"},{key:"ANTHROPIC_BASE_URL",name:"接口地址",required:!0},{key:"ANTHROPIC_AUTH_TOKEN",name:"认证变量"},{key:"ANTHROPIC_API_KEY",name:"API秘钥",required:!0},{key:"model",name:"模型映射"}],N=[{label:"主模型",required:!0,value:"main",placeholder:"Model ID"},{value:"haiku",label:"Haiku模型",placeholder:"与主模型相同"},{value:"sonnet",label:"Sonnet模型",placeholder:"与主模型相同"},{value:"opus",label:"Opus模型",placeholder:"与主模型相同"}];function S(e){return"MODEL_".concat(e.toUpperCase())}function A(){return Object.fromEntries(N.map(e=>[e.value,""]))}let T="custom",R=new Set(["name","description"]),E="model",M="__empty__",I=[{value:"anthropic",label:"anthropic"},{value:"openai",label:"openai"}];function U(){return Object.fromEntries(w.filter(e=>e.key!==E).map(e=>[e.key,""]))}function P(e){let{open:r,onOpenChange:n,onSaved:f}=e,k=(0,a.useId)(),P=(0,C.useAppStore)(e=>e.wsUrl),O=(0,C.useAppStore)(e=>e.apiBase),D=(0,C.useAppStore)(e=>e.agentConfig),z=(0,C.useAppStore)(e=>e.setAgentConfig),B=(0,C.useAppStore)(e=>e.setStatus),{currentAgent:L,loadAgentConfig:_}=(0,d.useSession)(),{sendReloadAgentConfig:F}=(0,p.useWebSocketSender)(),[H,K]=(0,a.useState)(!0),[J,V]=(0,a.useState)(!1),[q,W]=(0,a.useState)(!1),[G,X]=(0,a.useState)([]),[Y,Z]=(0,a.useState)(g(void 0)),[Q,$]=(0,a.useState)({}),[ee,et]=(0,a.useState)({}),[ea,er]=(0,a.useState)(U),[el,en]=(0,a.useState)(A),es=(0,a.useMemo)(()=>new Set(G.map(e=>e.key)),[G]),ei=(0,a.useMemo)(()=>(function(e){let t={};for(let e of m)t[e]=[];for(let a of e)m.includes(a.group)&&t[a.group].push(a);return t})(G),[G]),eo=(0,a.useMemo)(()=>{let e=[{value:T,label:"自定义设置"}];for(let t of m)ei[t].length&&e.push({value:t,label:Y[t]});return e},[ei,Y]),ec=(0,a.useCallback)(e=>{et(function(e,t,a){let r={};for(let l of t){let t=e[l.key];if("string"==typeof t&&t.length>0){r[l.key]=t;continue}let n=a[l.key];r[l.key]="string"==typeof n?n:""}return r}(e,G,Q));let t=U();for(let a of w)R.has(a.key)||a.key===E||"string"==typeof e[a.key]&&(t[a.key]=e[a.key]);let a=A();for(let t of N){let r=S(t.value);"string"==typeof e[r]&&(a[t.value]=e[r])}er(t),en(a),W(!1)},[G,Q]),eu=(0,a.useCallback)(async()=>{try{let e=await (0,y.loadSystemEnv)(P,O,L()),t="string"==typeof e.content?e.content:"",a=function(e){if(!Array.isArray(e))return[];let t=[];for(let a of e){if(!a||"object"!=typeof a)continue;let e="string"==typeof a.key?a.key.trim():"",r="string"==typeof a.group?a.group.trim():"";e&&m.includes(r)&&t.push({key:e,group:r,label:"string"==typeof a.label&&a.label.trim()?a.label.trim():e,placeholder:"string"==typeof a.placeholder?a.placeholder:""})}return t}(e.schema),r=(0,h.parseEnvContentToMap)(t);X(a),Z(g(e.groupLabels)),$(function(e,t){let a={};for(let l of e){var r;a[l.key]=null!=(r=t[l.key])?r:""}return a}(a,r))}catch(e){u.appToast.error("加载环境变量表单配置失败:".concat(e instanceof Error?e.message:String(e))),X([]),$({})}},[P,O,L]);(0,a.useEffect)(()=>{r&&(K(!0),Promise.all([_(),eu()]).finally(()=>{K(!1)}))},[r,_,eu]),(0,a.useEffect)(()=>{r&&!H&&ec({...D.env})},[r,D.env,ec,H]);let ed=(0,a.useCallback)((e,t)=>{W(!0),et(a=>({...a,[e]:t}))},[]),ep=(0,a.useCallback)((e,t)=>{W(!0),er(a=>({...a,[e]:t}))},[]),em=(0,a.useCallback)((e,t)=>{W(!0),en(a=>({...a,[e]:t}))},[]),ef=(0,a.useCallback)(async e=>{if(e)return void n(!0);(!q||await (0,x.confirmDiscardFlyoutChanges)())&&n(!1)},[q,n]),eg=(0,a.useCallback)(async()=>{let e=function(e,t){var a,r;for(let t of w)if(t.key!==E&&t.required&&!String(null!=(a=e[t.key])?a:"").trim())return{ok:!1,message:"请填写".concat(t.name)};for(let e of N)if("required"in e&&e.required&&!String(null!=(r=t[e.value])?r:"").trim())return{ok:!1,message:"请填写".concat(e.label)};return{ok:!0}}(ea,el);if(!e.ok)return void u.appToast.info(e.message);let t=function(e,t){let a={};for(let r of t){let t=Object.prototype.hasOwnProperty.call(e,r.key)?e[r.key]:"",l=String(null!=t?t:"").trim();l&&(a[r.key]=l)}return a}(ee,G),a=function(e,t,a){var r,l;let n={};for(let t of w){if(R.has(t.key)||t.key===E)continue;let l=t.key.trim(),s=String(null!=(r=e[t.key])?r:"");if(s.trim()){if(a.has(l))return{ok:!1,message:"自定义变量不能与固定表单重复:".concat(l)};n[l]=s}}for(let e of N){let r=S(e.value),s=String(null!=(l=t[e.value])?l:"");if(s.trim()){if(a.has(r))return{ok:!1,message:"自定义变量不能与固定表单重复:".concat(r)};n[r]=s}}return{ok:!0,env:n}}(ea,el,es);if(!a.ok)return void u.appToast.info(a.message);let r={...t,...a.env};V(!0);try{var l,s,i,o;let e=C.useAppStore.getState();await (0,v.saveAgentConfig)(P,O,L(),{tools:e.agentConfig.tools.slice(),disallowedTools:e.agentConfig.disallowedTools.slice(),mcpServers:e.agentConfig.mcpServers.slice(),skills:e.agentConfig.skills.slice(),agentTeams:e.agentConfig.agentTeams.slice(),model:e.agentConfig.model,rules:e.agentConfig.rules.slice(),effort:null!=(l=e.agentConfig.effort)?l:null,background:null!=(s=e.agentConfig.background)&&s,isolation:null!=(i=e.agentConfig.isolation)?i:"",whentouse:null!=(o=e.agentConfig.whentouse)?o:"",env:r}),z({...e.agentConfig,env:{...r}}),C.useAppStore.getState().wsConnected&&F();let t=C.useAppStore.getState();B("环境变量已保存"+(t.wsConnected?",已请求 worker 重新加载配置":""),(0,j.resolveInfoStatusClass)(t.bridgeReady,t.wsConnected)),u.appToast.success(C.useAppStore.getState().wsConnected?"已保存到 agent.json,并已请求 worker 重新加载配置。":"已保存到 agent.json。重连 WebSocket 后子进程环境将同步。"),W(!1),await (null==f?void 0:f()),n(!1)}catch(e){u.appToast.error("保存环境变量失败:".concat(e instanceof Error?e.message:String(e)))}finally{V(!1)}},[ee,G,ea,el,es,P,O,L,z,F,B,n,f]);return(0,t.jsx)(i.Dialog,{open:r,onOpenChange:e=>void ef(e),children:(0,t.jsxs)(i.DialogContent,{"aria-labelledby":k,className:"max-w-4xl",children:[(0,t.jsxs)(i.DialogHeader,{children:[(0,t.jsx)("div",{className:"min-w-0 flex-1",children:(0,t.jsx)(i.DialogTitle,{id:k,children:"添加服务商"})}),(0,t.jsx)(i.DialogClose,{"aria-label":"关闭"})]}),(0,t.jsx)(i.DialogBody,{className:"flex min-h-[420px] flex-col overflow-hidden !py-4",children:H?(0,t.jsx)("div",{className:"py-8 text-center text-[var(--ds-muted)]",children:"加载中…"}):(0,t.jsxs)(s.AppTabs,{tabs:eo,defaultValue:T,listVariant:"line",className:"min-h-0 flex-1",contentClassName:"min-h-0 overflow-y-auto",children:[(0,t.jsx)(s.AppTabsPanel,{value:T,children:(0,t.jsx)("div",{className:"divide-y divide-[var(--ds-border)]",children:w.map(e=>{if(e.key===E)return(0,t.jsxs)("div",{className:"flex flex-col gap-3 py-4 first:pt-0",children:[(0,t.jsx)("span",{className:"text-[var(--ds-muted)]",children:e.name}),(0,t.jsx)("div",{className:"grid grid-cols-2 gap-x-4 gap-y-4",children:N.map(e=>{let a="custom-env-model-".concat(e.value),r="string"==typeof el[e.value]?el[e.value]:"";return(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsxs)("label",{className:"text-[var(--ds-text)]",htmlFor:a,children:[e.label,"required"in e&&e.required?(0,t.jsx)("span",{className:"ml-0.5 text-destructive",children:"*"}):null]}),(0,t.jsx)(o.Input,{id:a,type:"text",spellCheck:!1,autoComplete:"off",placeholder:e.placeholder,className:"border-[var(--ds-border)] bg-[var(--ds-bg)] placeholder:text-[var(--text-placeholder)]",value:r,onChange:t=>em(e.value,t.target.value)})]},e.value)})})]},e.key);let a="custom-env-field-".concat(e.key),r="string"==typeof ea[e.key]?ea[e.key]:"";return(0,t.jsxs)("div",{className:"flex flex-col gap-2 py-4 first:pt-0",children:[(0,t.jsxs)("label",{className:"text-[var(--ds-text)]",htmlFor:a,children:[e.name,e.required?(0,t.jsx)("span",{className:"ml-0.5 text-destructive",children:"*"}):null]}),(0,t.jsx)(o.Input,{id:a,type:"text",spellCheck:!1,autoComplete:"off",placeholder:"请输入".concat(e.name),className:(0,b.cn)("border-[var(--ds-border)] bg-[var(--ds-bg)] placeholder:text-[var(--text-placeholder)]",e.className),value:r,onChange:t=>ep(e.key,t.target.value)})]},e.key)})})}),m.map(e=>{let a=ei[e];return a.length?(0,t.jsx)(s.AppTabsPanel,{value:e,children:(0,t.jsx)("div",{className:"divide-y divide-[var(--ds-border)]",children:a.map(e=>(e=>{let a="agent-env-field-".concat(e.key),r="string"==typeof ee[e.key]?ee[e.key]:"";if("LLM_PROVIDER"===e.key){let l="anthropic"===r||"openai"===r?r:"";return(0,t.jsxs)("div",{className:"flex flex-col gap-2 first:pt-0",children:[(0,t.jsx)("label",{className:"text-basic text-[var(--ds-text)]",htmlFor:a,children:e.label}),(0,t.jsxs)(c.Select,{value:l||M,onValueChange:t=>ed(e.key,t===M?"":t),children:[(0,t.jsx)(c.SelectTrigger,{id:a,className:(0,b.cn)("h-10 w-full border-[var(--ds-border)] bg-[var(--ds-bg)]",!l&&"text-[var(--text-placeholder)]"),children:(0,t.jsx)(c.SelectValue,{placeholder:"请选择"})}),(0,t.jsxs)(c.SelectContent,{children:[(0,t.jsx)(c.SelectItem,{value:M,children:"请选择"}),I.map(e=>(0,t.jsx)(c.SelectItem,{value:e.value,children:e.label},e.value))]})]})]},e.key)}return(0,t.jsxs)("div",{className:"flex flex-col gap-2 py-4 first:pt-0",children:[(0,t.jsx)("label",{className:"text-[var(--ds-text)]",htmlFor:a,children:e.label}),(0,t.jsx)(o.Input,{id:a,type:"text",spellCheck:!1,autoComplete:"off",placeholder:e.placeholder,className:"h-10 border-[var(--ds-border)] bg-[var(--ds-bg)] placeholder:text-[var(--text-placeholder)]",value:r,onChange:t=>ed(e.key,t.target.value)})]},e.key)})(e))})},e):null})]})}),(0,t.jsxs)("div",{className:"flex shrink-0 justify-end gap-2 border-t border-[var(--ds-border)] bg-[var(--ds-sidebar)] px-4 py-3",children:[(0,t.jsx)(l.Button,{type:"button",variant:"plain-outline",size:"lg",disabled:H||J,onClick:()=>void ef(!1),className:"cursor-pointer",children:"取消"}),(0,t.jsx)(l.Button,{type:"button",size:"lg",disabled:H||J,onClick:()=>void eg(),className:"cursor-pointer",children:J?"保存中…":"保存"})]})]})})}var O=e.i(85413),D=e.i(94197),z=e.i(68499);function B(e){let{row:a,onSetDefault:r,onTest:n,onEdit:s,onDelete:i}=e,o="".concat(a.baseUrl," · ").concat(a.model);return(0,t.jsxs)("article",{className:(0,b.cn)("group flex w-full items-center gap-4 rounded-xl border border-solid bg-[var(--ds-bg)] px-4 py-3.5 transition-[border-color,box-shadow]",a.isDefault?"border-[color:var(--ds-ok)]":"border-[color:var(--ds-border)] hover:shadow-[0_2px_12px_rgba(0,0,0,0.06)]"),children:[(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-3",children:[(0,t.jsx)("span",{className:(0,b.cn)("size-2 shrink-0 rounded-full",a.isDefault?"bg-[var(--ds-ok)]":"bg-[var(--ds-muted)]"),"aria-hidden":"true"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("h3",{className:"truncate font-semibold text-[var(--ds-text)]",children:a.name}),(0,t.jsx)("p",{className:"mt-1 truncate text-[var(--ds-muted)]",title:o,children:o})]})]}),(0,t.jsxs)("div",{className:"pointer-events-none invisible flex shrink-0 items-center opacity-0 transition-opacity group-focus-within:pointer-events-auto group-focus-within:visible group-focus-within:opacity-100 group-hover:pointer-events-auto group-hover:visible group-hover:opacity-100",children:[(0,t.jsx)(l.Button,{type:"button",variant:"plain",size:"sm",disabled:a.isDefault,className:"h-8 cursor-pointer !px-0 text-[var(--ds-text)] hover:text-[var(--ds-accent)] disabled:cursor-not-allowed disabled:text-[var(--ds-muted)] disabled:opacity-60",onClick:()=>r(a.id),children:"设为默认"}),(0,t.jsx)(l.Button,{type:"button",variant:"plain",size:"sm",className:"h-8 cursor-pointer px-2 text-[var(--ds-text)] hover:text-[var(--ds-accent)]",onClick:()=>n(a.id),children:"测试"}),(0,t.jsx)(D.IconTooltipButton,{icon:"Edit",label:"编辑",ariaLabel:"编辑 ".concat(a.name),onClick:()=>s(a.id)}),(0,t.jsx)(D.IconTooltipButton,{icon:"Trash2",label:a.isDefault?"默认服务商不可删除":"删除",tone:"danger",disabled:a.isDefault,ariaLabel:"删除 ".concat(a.name),onClick:()=>i(a.id)})]})]})}function L(){let[e,r]=(0,a.useState)(()=>k.map(e=>({...e}))),l=(0,a.useCallback)(e=>{r(t=>t.map(t=>({...t,isDefault:t.id===e}))),u.appToast.success("已设为默认服务商")},[]),n=(0,a.useCallback)(t=>{var a;let r=e.find(e=>e.id===t);u.appToast.info("正在测试「".concat(null!=(a=null==r?void 0:r.name)?a:t,"」连接…"))},[e]),s=(0,a.useCallback)(t=>{var a;let r=e.find(e=>e.id===t);u.appToast.info("编辑「".concat(null!=(a=null==r?void 0:r.name)?a:t,"」功能开发中"))},[e]),i=(0,a.useCallback)(async t=>{let a=e.find(e=>e.id===t);a&&!a.isDefault&&await (0,z.confirmAlertDialog)({title:"确认删除服务商?",description:"服务商「".concat(a.name,"」将被永久删除,此操作不可恢复。"),confirmText:"删除",cancelText:"取消"})&&(r(e=>e.filter(e=>e.id!==t)),u.appToast.success("已删除服务商"))},[e]);return(0,t.jsx)("div",{className:"mt-4 flex flex-col gap-3",children:0===e.length?(0,t.jsx)(O.Empty,{text:"暂无服务商"}):e.map(e=>(0,t.jsx)(B,{row:e,onSetDefault:l,onTest:n,onEdit:s,onDelete:e=>void i(e)},e.id))})}function _(){let[e,s]=(0,a.useState)(!1);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.ManageChromeHeaderActions,{children:(0,t.jsx)("div",{className:"flex flex-wrap items-center",children:(0,t.jsxs)(l.Button,{type:"button",variant:"plain-outline",size:"lg",onClick:()=>s(!0),className:"mr-[12px]",children:[(0,t.jsx)(n.default,{name:"Create",size:16,className:"align-middle"}),"添加服务商"]})})}),(0,t.jsx)(L,{}),(0,t.jsx)(P,{open:e,onOpenChange:s})]})}},39721,e=>{"use strict";e.s(["SkillsManageView",()=>M],39721);var t=e.i(18050),a=e.i(71645),r=e.i(65934),l=e.i(87243),n=e.i(13354),s=e.i(50711),i=e.i(51419),o=e.i(92715),c=e.i(19455),u=e.i(94055),d=e.i(94197),p=e.i(72064),m=e.i(93479),f=e.i(75157);function g(e){let{className:a,...r}=e;return(0,t.jsx)("nav",{role:"navigation","aria-label":"pagination","data-slot":"pagination",className:(0,f.cn)("flex w-full justify-end",a),...r})}let h=a.forwardRef((e,a)=>{let{className:r,...l}=e;return(0,t.jsx)("ul",{ref:a,"data-slot":"pagination-content",className:(0,f.cn)("flex flex-row flex-wrap items-center justify-end gap-1",r),...l})});h.displayName="PaginationContent";let x=a.forwardRef((e,a)=>{let{className:r,...l}=e;return(0,t.jsx)("li",{ref:a,"data-slot":"pagination-item",className:(0,f.cn)("",r),...l})});x.displayName="PaginationItem",a.forwardRef((e,a)=>{let{className:r,isActive:l,size:n="icon",...s}=e;return(0,t.jsx)("a",{ref:a,"aria-current":l?"page":void 0,"data-slot":"pagination-link","data-active":l?"true":void 0,className:(0,f.cn)((0,c.buttonVariants)({variant:l?"outline":"ghost",size:n}),r),...s})}).displayName="PaginationLink";var b=e.i(62427),v=e.i(2839);function y(e){let{active:r,wsUrl:l,apiBase:s,agent:i,onAfterInstall:u,className:d}=e,[f,y]=(0,a.useState)(""),[j,C]=(0,a.useState)(1),[k,w]=(0,a.useState)(0),[N,S]=(0,a.useState)([]),[A,T]=(0,a.useState)(!1),[R,E]=(0,a.useState)(""),[M,I]=(0,a.useState)({}),U=(0,a.useRef)(0),P=(0,a.useCallback)(async()=>{let e=++U.current;T(!0),E("");try{let t=await (0,b.listCloudSkillCatalog)(l,s,i,f,j,10);if(e!==U.current)return;let a=Array.isArray(t.items)?t.items:[],r=[];for(let e of a)e&&"object"==typeof e&&e.id&&r.push({id:String(e.id),title:String(e.title||""),skillName:String(e.skillName||""),description:"string"==typeof e.description?e.description:"",installed:!!e.installed});S(r),w(t.totalPages)}catch(t){if(e!==U.current)return;S([]),w(0),E(t instanceof Error?t.message:String(t))}finally{e===U.current&&T(!1)}},[l,s,i,f,j]);(0,a.useEffect)(()=>{if(!r){y(""),C(1),w(0),S([]),E(""),I({}),U.current+=1;return}P()},[r,P]);let O=(0,a.useMemo)(()=>{if(A)return"加载中…";if(R)return"加载失败:".concat(R);let e=N.reduce((e,t)=>e+ +!!t.installed,0);return"已安装 ".concat(e," 项")},[A,R,N]),D=(0,a.useCallback)(async(e,t)=>{I(t=>({...t,[e]:!0}));try{await (0,b.installCloudSkill)(l,s,i,e),n.appToast.success("云端技能已安装:".concat(t)),await P(),null==u||u()}catch(e){n.appToast.error("安装失败:".concat(e instanceof Error?e.message:String(e)))}finally{I(t=>{let a={...t};return delete a[e],a})}},[l,s,i,P,u]);if((0,a.useCallback)(e=>{C(1),y(e)},[]),!r)return null;let z=k>0?"第 ".concat(j,"/").concat(k," 页"):"第 0/0 页",B=A||j<=1,L=A||k<=0||j>=k,_=[{key:"name",title:"名称",headerClassName:"",cellClassName:" text-[var(--ds-text)]",render:e=>e.skillName?"".concat(e.skillName):e.id},{key:"description",title:"详情",headerClassName:"",cellClassName:" text-[var(--ds-text)]",render:e=>(0,t.jsxs)(t.Fragment,{children:[e.title,e.description?" — ".concat(e.description):""]})},{key:"status",title:"状态",headerClassName:"",cellClassName:"whitespace-nowrap text-[var(--ds-text)]",render:e=>e.installed?"已安装":"未安装"},{key:"actions",title:"操作",headerClassName:"w-[96px] text-right ",cellClassName:"w-[116px] text-right",render:e=>{let a=!!M[e.id],r=!!e.installed;return!a&&r?"-":(0,t.jsx)(c.Button,{type:"button",size:"sm",variant:"outline",disabled:a||r,onClick:()=>void D(e.id,e.title||e.skillName||e.id),children:a?"安装中…":r?"已安装":"安装"})}}];return(0,t.jsx)("div",{className:d,children:(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,t.jsxs)("div",{className:"relative max-w-md",children:[(0,t.jsx)(m.Input,{type:"search",value:f,onChange:e=>y(e.target.value),placeholder:"搜索名称 / 详情",className:"h-8 pl-8","aria-label":"搜索已安装 Skill"}),(0,t.jsx)(p.default,{name:"Search",size:16,className:"pointer-events-none absolute left-2.5 top-1/2 size-4 -translate-y-1/2 text-[var(--ds-muted)]","aria-hidden":!0})]}),(0,t.jsx)("div",{className:"text-[var(--ds-muted)]",children:O}),(0,t.jsx)(o.AppTable,{rows:N,columns:_,getRowKey:e=>e.id,className:"min-h-0 flex-1 rounded-md",bodyProps:{viewportPaginationReserve:64},emptyNode:A?(0,t.jsx)(v.Loading,{text:"加载中…",className:"min-h-[200px]"}):void 0}),(0,t.jsx)(g,{className:"mx-0 w-full",children:(0,t.jsxs)(h,{className:"w-full flex-wrap justify-end gap-2",children:[(0,t.jsx)(x,{children:(0,t.jsxs)(c.Button,{type:"button",variant:"outline",size:"sm",disabled:B,className:"gap-1",onClick:()=>C(e=>Math.max(1,e-1)),"aria-label":"上一页",children:[(0,t.jsx)(p.default,{name:"ChevronLeft",size:16,className:"shrink-0"}),"上一页"]})}),(0,t.jsx)(x,{children:(0,t.jsx)("span",{className:"flex h-9 min-w-[6.5rem] items-center justify-center text-[var(--ds-muted)]",children:z})}),(0,t.jsx)(x,{children:(0,t.jsxs)(c.Button,{type:"button",variant:"outline",size:"sm",disabled:L,className:"gap-1",onClick:()=>C(e=>e+1),"aria-label":"下一页",children:["下一页",(0,t.jsx)(p.default,{name:"ChevronRight",size:16,className:"shrink-0",strokeWidth:1})]})})]})})]})})}var j=e.i(36845),C=e.i(53925);function k(e){let{open:a,onOpenChange:r,wsUrl:l,apiBase:n,agent:s}=e;return(0,t.jsx)(C.ResourceImportDialog,{open:a,onOpenChange:r,title:"导入 Skill zip",description:"选择一个 zip 文件并导入到 skills-runtime。",uploadUrl:(0,j.buildSkillsRuntimeImportUrl)(l,n,s),resetKey:s})}var w=e.i(55242);function N(e){let{open:r,onOpenChange:l,skillName:s,wsUrl:i,apiBase:o,agent:u,onSaved:d}=e,[p,m]=(0,a.useState)(""),[f,g]=(0,a.useState)(!1),[h,x]=(0,a.useState)(!1);(0,a.useEffect)(()=>{if(!r||!s.trim())return;let e=!1;return g(!0),m(""),(0,b.loadBaseSkillMd)(i,o,u,s).then(t=>{e||m("string"==typeof t.content?t.content:"")}).catch(t=>{e||(n.appToast.error("加载 SKILL.md 失败:".concat(t instanceof Error?t.message:String(t))),l(!1))}).finally(()=>{e||g(!1)}),()=>{e=!0}},[r,s,i,o,u,l]);let v=(0,a.useCallback)(async()=>{if(s.trim()){x(!0);try{await (0,b.saveBaseSkillMd)(i,o,u,s,p),n.appToast.success("SKILL.md 已保存"),l(!1),null==d||d()}catch(e){n.appToast.error("保存失败:".concat(e instanceof Error?e.message:String(e)))}finally{x(!1)}}},[s,i,o,u,p,l,d]);return(0,t.jsx)(w.AppDialog,{open:r,onOpenChange:l,title:"编辑 SKILL.md · /".concat(s),width:"max-w-4xl",minHeight:"420px",footer:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(c.Button,{type:"button",variant:"plain-outline",size:"lg",disabled:f||h,onClick:()=>l(!1),children:"取消"}),(0,t.jsx)(c.Button,{type:"button",size:"lg",disabled:f||h,onClick:()=>void v(),children:"保存"})]}),children:f?(0,t.jsx)("p",{className:"py-6 text-center text-[var(--ds-muted)]",children:"加载中…"}):(0,t.jsx)("textarea",{className:"focus-visible:ring-[var(--ds-accent)]/30 min-h-[320px] w-full resize-y rounded-md border border-[var(--ds-border)] bg-[var(--ds-bg)] p-3 leading-6 text-[var(--ds-text)] outline-none focus-visible:ring-2",spellCheck:!1,value:p,placeholder:"Markdown 源码…",onChange:e=>m(e.target.value)})})}function S(e){let{items:r,saveBusy:l,onToggleEnabled:n,onExport:s,onRemove:i,className:c}=e,[f,g]=(0,a.useState)(""),h=(0,a.useMemo)(()=>r.filter(e=>(function(e,t){var a;let r=t.trim().toLowerCase();return!r||"".concat(e.name," ").concat(null!=(a=e.description)?a:"").toLowerCase().includes(r)})(e,f)),[r,f]),x=[{key:"name",title:"名称",headerClassName:"",cellClassName:"",render:e=>"/".concat(e.name)},{key:"description",title:"详情",headerClassName:"",cellClassName:"",render:e=>e.description||"-"},{key:"status",title:"状态",headerClassName:"w-[160px] ",cellClassName:"w-[160px] text-[var(--ds-text)]",render:()=>"已安装"},{key:"enabled",title:"启用/未启用",headerClassName:"w-[160px] text-right ",cellClassName:"w-[160px] py-2 text-right align-middle",render:e=>(0,t.jsx)("span",{className:"inline-flex items-center justify-end gap-2",children:(0,t.jsx)(u.AccentSwitch,{checked:e.enabled,disabled:l,onCheckedChange:t=>n(e.name,t),"aria-label":"".concat(e.enabled?"禁用":"启用"," ").concat(e.name)})})},{key:"actions",title:"操作",headerClassName:"w-[128px] ",cellClassName:"w-[128px]",render:e=>(0,t.jsxs)("div",{className:"inline-flex items-center justify-end gap-1",children:[(0,t.jsx)(d.IconTooltipButton,{icon:"Download",label:"导出",ariaLabel:"导出 ".concat(e.name),disabled:l,onClick:()=>s(e.name)}),(0,t.jsx)(d.IconTooltipButton,{icon:"Trash2",label:"删除",tone:"danger",ariaLabel:"删除 ".concat(e.name),disabled:l,onClick:()=>{i(e.name)}})]})}],b=f.trim();return(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,t.jsxs)("div",{className:"relative max-w-md",children:[(0,t.jsx)(m.Input,{type:"search",value:f,onChange:e=>g(e.target.value),placeholder:"搜索名称 / 详情",className:"h-8 pl-8","aria-label":"搜索已安装 Skill"}),(0,t.jsx)(p.default,{name:"Search",size:16,className:"pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-[var(--ds-muted)]"})]}),(0,t.jsx)(o.AppTable,{rows:h,columns:x,getRowKey:e=>"skills:".concat(e.name),className:c,emptyText:b?"无匹配的 Skill":void 0})]})}var A=e.i(68499),T=e.i(56708);function R(e,t){var a,r,l;let n=(l=null!=(r=null!=(a=e.description)?a:e.whenToUse)?r:"")?l.length>100?l.slice(0,100):l:"";return{...e,id:e.name,label:"/".concat(e.name),description:n,isRuntime:t,canManage:e.canManage}}let E=[{value:"installed",label:"已安装Skill"},{value:"cloud_catalog",label:"Skill商店"}];function M(){let e=(0,r.useAppStore)(e=>e.wsUrl),m=(0,r.useAppStore)(e=>e.apiBase),f=(0,r.useAppStore)(e=>e.agentConfig),g=(0,r.useAppStore)(e=>e.patchAgentConfig),{currentAgent:h,loadAgentConfig:x}=(0,l.useSession)(),j=(0,s.usePersistAgentConfigField)("skills"),C=f.skills,w=(0,a.useMemo)(()=>[...C].sort().join("\0"),[C]),[M,I]=(0,a.useState)([]),[U,P]=(0,a.useState)([]),[O,D]=(0,a.useState)([]),[z,B]=(0,a.useState)(!1),[L,_]=(0,a.useState)(!1),[F,H]=(0,a.useState)(!1),[K,J]=(0,a.useState)("basic"),[V,q]=(0,a.useState)(!1),[W,G]=(0,a.useState)(""),[X,Y]=(0,a.useState)(!1);(0,a.useEffect)(()=>{x()},[x]);let Z=(0,a.useCallback)(async(e,t)=>{H(!0);try{await j(e,{silent:t})}finally{H(!1)}},[j]),Q=(0,a.useCallback)(async()=>{I([]),B(!0);try{var t;let a=await (0,b.listBaseSkills)(e,m,h());I((null!=(t=a.skills)?t:[]).map(e=>R(e,!1)))}catch(e){I([]),n.appToast.error("加载失败:".concat(e instanceof Error?e.message:String(e)))}finally{B(!1)}},[e,m,h]),$=(0,a.useCallback)(async()=>{P([]),_(!0);try{var t;let a=await (0,b.listInstalledSkills)(e,m,h());P((null!=(t=a.skills)?t:[]).map(e=>R(e,!0)))}catch(e){P([]),n.appToast.error("加载失败:".concat(e instanceof Error?e.message:String(e)))}finally{_(!1)}},[e,m,h]),ee=(0,a.useCallback)(async()=>{await Promise.all([Q(),$()])},[Q,$]),et=(0,a.useCallback)(async t=>{if(await (0,A.confirmAlertDialog)({title:"确认删除 Skill 包?",description:"Skill:".concat(t),confirmText:"删除",cancelText:"取消"}))try{await (0,b.deleteRuntimeSkill)(e,m,h(),t);let a=C.filter(e=>e!==t);D(e=>e.filter(e=>e!==t)),g({skills:a}),await Z(a,!0),await ee()}catch(e){n.appToast.error("删除失败:".concat(e instanceof Error?e.message:String(e)))}},[e,m,h,C,g,Z,ee]);(0,a.useEffect)(()=>{"basic"===K&&Q(),"installed"===K&&$()},[K,Q,$]);let ea=(0,a.useCallback)(()=>{ee()},[ee]);(0,a.useEffect)(()=>{"basic"===K&&D([...C])},[K,C,w]);let er=(0,a.useCallback)(e=>{let t=[...new Set(e)].sort();g({skills:t}),Z(t,!0)},[g,Z]),el=(0,a.useMemo)(()=>U.slice().sort((e,t)=>e.label.localeCompare(t.label)).map(e=>({name:e.id,installed:!0,description:e.description||"",enabled:C.includes(e.id)})),[U,C]),en=(0,a.useCallback)((e,t)=>{let a=t?[...new Set([...C,e])].sort():C.filter(t=>t!==e);g({skills:a}),D(a),Z(a,!0)},[C,g,Z]),es=(0,a.useCallback)(t=>{window.open((0,b.exportRuntimeSkillUrl)(e,m,h(),t),"_blank","noopener")},[e,m,h]),ei=(0,a.useCallback)(e=>{G(e.id),Y(!0)},[]),eo=[{key:"name",title:"名称",headerClassName:" text-[var(--ds-muted)]",cellClassName:" text-[var(--ds-text)]",render:e=>e.label},{key:"description",title:"详情",headerClassName:" text-[var(--ds-muted)]",cellClassName:" text-[var(--ds-text)]",render:e=>e.description||"-"},{key:"enabled",title:"启用/未启用",headerClassName:"w-[102px] text-right text-[var(--ds-muted)]",cellClassName:"w-[102px] py-2 text-right align-middle",render:e=>(0,t.jsx)("span",{className:"inline-flex justify-end",children:(0,t.jsx)(u.AccentSwitch,{checked:O.includes(e.id),disabled:F,onCheckedChange:t=>{let a=t?[...new Set([...O,e.id])]:O.filter(t=>t!==e.id);D(a),er(a)},"aria-label":"选择 ".concat(e.label)})})},{key:"actions",title:"操作",headerClassName:"w-[104px] text-right text-[var(--ds-muted)]",cellClassName:"w-[104px] py-2 text-right align-middle",render:e=>(0,t.jsxs)("span",{className:"inline-flex justify-end gap-1",children:[(0,t.jsx)(d.IconTooltipButton,{icon:"Edit",label:"编辑",disabled:F,ariaLabel:"编辑 ".concat(e.label),onClick:()=>ei(e)}),(0,t.jsx)(d.IconTooltipButton,{icon:"Trash2",label:"系统技能不可删除",tone:"danger",disabled:!0,ariaLabel:"删除 ".concat(e.label)})]})}];return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(T.ManageChromeHeaderActions,{children:(0,t.jsxs)(c.Button,{id:"btnAgentImportSkill",type:"button",variant:"plain-outline",size:"lg",className:"inline-flex items-center justify-center gap-1.5",onClick:()=>q(!0),children:[(0,t.jsx)(p.default,{name:"Import",size:16,className:"align-middle"}),"导入Skill"]})}),(0,t.jsxs)(i.AppTabs,{tabs:E,value:K,listVariant:"line",onChange:e=>J(e),children:[(0,t.jsx)(i.AppTabsPanel,{value:"basic",children:(0,t.jsx)("div",{className:"flex min-h-0 flex-1 flex-col gap-3",children:(0,t.jsx)("div",{className:"min-h-0",children:z?(0,t.jsx)(v.Loading,{text:"加载中…",className:"min-h-[200px]"}):(0,t.jsx)(o.AppTable,{rows:M,columns:eo,getRowKey:e=>e.id})})})}),(0,t.jsx)(i.AppTabsPanel,{value:"installed",children:L?(0,t.jsx)(v.Loading,{text:"加载中…",className:"min-h-[200px]"}):(0,t.jsx)(S,{items:el,saveBusy:F,onToggleEnabled:en,onExport:es,onRemove:et})}),(0,t.jsx)(i.AppTabsPanel,{value:"cloud_catalog",className:"flex min-h-0 flex-1 flex-col",children:(0,t.jsx)(y,{active:"cloud_catalog"===K,wsUrl:e,apiBase:m,agent:h(),onAfterInstall:ea,className:"min-h-0 flex-1"})})]}),(0,t.jsx)(k,{open:V,onOpenChange:e=>{q(e),e||ee()},wsUrl:e,apiBase:m,agent:h()}),(0,t.jsx)(N,{open:X,onOpenChange:Y,skillName:W,wsUrl:e,apiBase:m,agent:h(),onSaved:()=>void ee()})]})}},69230,e=>{"use strict";e.s(["SettingsRouteBoundary",()=>i]);var t=e.i(18050),a=e.i(22016),r=e.i(18566),l=e.i(82787),n=e.i(97249),s=e.i(65934);function i(e){let{children:i}=e,o=(0,r.usePathname)(),c=(0,s.useAppStore)(e=>e.agentId),u=(0,n.buildAppNavHref)(l.MANAGE_DEFAULT_HREF,{ensureAgent:!0,agent:c});return o&&!(0,l.isManageRouteEnabled)((0,n.normalizeAppPathname)(o))?(0,t.jsxs)("div",{className:"manage-page-wrap flex min-h-0 flex-1 flex-col",children:[(0,t.jsx)("div",{className:"manage-page-header flex shrink-0 items-start justify-between gap-4 pb-4",children:(0,t.jsxs)("div",{className:"manage-page-title-block",children:[(0,t.jsx)("h1",{className:"manage-page-title",children:"页面不可用"}),(0,t.jsx)("p",{className:"manage-page-desc",children:"当前设置页未开放或已被禁用。"})]})}),(0,t.jsx)("div",{className:"manage-page-body flex min-h-0 min-w-0 flex-1 flex-col items-center justify-center gap-3 text-[var(--ds-muted)]",children:(0,t.jsx)(a.default,{className:"text-zinc-900 underline underline-offset-4",href:u,prefetch:!1,children:"返回默认设置页"})})]}):(0,t.jsx)(t.Fragment,{children:i})}}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,93479,e=>{"use strict";e.s(["Input",()=>n]);var t=e.i(18050),r=e.i(75157);function n(e){let{className:n,type:o="text",size:i="default",...a}=e;return(0,t.jsx)("input",{type:o,"data-slot":"input","data-size":i,className:(0,r.cn)("h-9 w-full appearance-none rounded-md border border-solid border-border bg-transparent px-3 text-sm outline-none transition-[color,box-shadow,border-color] duration-150 ease-in-out placeholder:text-muted-foreground hover:border-[var(--border-hover)] focus-visible:border-[var(--border-focus)] focus-visible:[box-shadow:var(--ring-focus-sm)] read-only:focus-visible:border-border read-only:focus-visible:[box-shadow:none] disabled:cursor-not-allowed disabled:opacity-50 disabled:focus-visible:border-border disabled:focus-visible:[box-shadow:none] data-[size=default]:h-9 data-[size=lg]:h-10 data-[size=sm]:h-7",n),...a})}},20783,e=>{"use strict";e.s(["composeRefs",()=>n,"useComposedRefs",()=>o]);var t=e.i(71645);function r(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function n(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return e=>{let n=!1,o=t.map(t=>{let o=r(t,e);return n||"function"!=typeof o||(n=!0),o});if(n)return()=>{for(let e=0;e<o.length;e++){let n=o[e];"function"==typeof n?n():r(t[e],null)}}}}function o(){for(var e=arguments.length,r=Array(e),o=0;o<e;o++)r[o]=arguments[o];return t.useCallback(n(...r),r)}},24687,e=>{"use strict";e.s(["Textarea",()=>n]);var t=e.i(18050),r=e.i(75157);function n(e){let{className:n,...o}=e;return(0,t.jsx)("textarea",{"data-slot":"textarea",className:(0,r.cn)("flex min-h-20 w-full rounded-md border border-solid border-border bg-transparent px-3 py-2 text-sm outline-none transition-[color,box-shadow,border-color] duration-150 ease-in-out placeholder:text-muted-foreground hover:border-[var(--border-hover)] focus-visible:border-[var(--border-focus)] focus-visible:[box-shadow:var(--ring-focus-sm)] read-only:focus-visible:border-border read-only:focus-visible:[box-shadow:none] disabled:cursor-not-allowed disabled:opacity-50 disabled:focus-visible:border-border disabled:focus-visible:[box-shadow:none]",n),...o})}},51239,e=>{e.v("/app/_next/static/media/data-loading.be8d921a.png")},2839,e=>{"use strict";e.s(["Loading",()=>a],2839);var t=e.i(18050),r=e.i(57688);let n={src:e.i(51239).default,width:951,height:482,blurWidth:8,blurHeight:4,blurDataURL:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAECAYAAACzzX7wAAAAj0lEQVR42gGEAHv/AAAAAAANERAObXJwYaGko5N/gYBwDg8PCgAAAAAAAAAAAAMEBAJic2xp2+3m7fL8+P7l6ujjUlhWTAYGBgUAAAAAADM3NTG6x8LB7fr1/vD89/7f9+3+wNXNzycpKB4AAAAAAJ+qpozL2dO/0NvWx9Td2c6gzrzRpcq8u2FpZk8CAgIBCRI7kCfNfAcAAAAASUVORK5CYII="};var o=e.i(87968),i=e.i(75157);function a(e){let{text:a="加载中",className:u,showImage:s=!0,imageSrc:l=n,imageAlt:c="加载中",imageSize:f=180,imageClassName:d}=e,p="string"==typeof l?{width:f,height:f}:{width:l.width,height:l.height};return(0,t.jsxs)("div",{className:(0,i.cn)("flex min-h-[180px] w-full flex-col items-center justify-center gap-2 py-4 text-[var(--ds-muted)]",u),role:"status","aria-live":"polite",children:[s?(0,t.jsx)("span",{className:(0,i.cn)("block shrink-0",d),style:{width:f},children:(0,t.jsx)(r.default,{src:l,alt:c,width:p.width,height:p.height,unoptimized:!0,draggable:!1,sizes:"".concat(f,"px"),className:"h-auto w-full object-contain"})}):null,(0,t.jsxs)("span",{className:"flex items-center",children:[(0,t.jsx)(o.Spinner,{className:"mr-2"}),a]})]})}},98183,(e,t,r)=>{"use strict";function n(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function o(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function i(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,o(e));else t.set(r,o(n));return t}function a(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];for(let t of r){for(let r of t.keys())e.delete(r);for(let[r,n]of t.entries())e.append(r,n)}return e}Object.defineProperty(r,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(r,{assign:function(){return a},searchParamsToUrlQuery:function(){return n},urlQueryToSearchParams:function(){return i}})},95057,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(r,{formatUrl:function(){return i},formatWithValidation:function(){return u},urlObjectKeys:function(){return a}});let n=e.r(90809)._(e.r(98183)),o=/https?|ftp|gopher|file/;function i(e){let{auth:t,hostname:r}=e,i=e.protocol||"",a=e.pathname||"",u=e.hash||"",s=e.query||"",l=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?l=t+e.host:r&&(l=t+(~r.indexOf(":")?"["+r+"]":r),e.port&&(l+=":"+e.port)),s&&"object"==typeof s&&(s=String(n.urlQueryToSearchParams(s)));let c=e.search||s&&"?"+s||"";return i&&!i.endsWith(":")&&(i+=":"),e.slashes||(!i||o.test(i))&&!1!==l?(l="//"+(l||""),a&&"/"!==a[0]&&(a="/"+a)):l||(l=""),u&&"#"!==u[0]&&(u="#"+u),c&&"?"!==c[0]&&(c="?"+c),""+i+l+(a=a.replace(/[?#]/g,encodeURIComponent))+(c=c.replace("#","%23"))+u}let a=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function u(e){return i(e)}},18967,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(r,{DecodeError:function(){return b},MiddlewareNotFoundError:function(){return m},MissingStaticPage:function(){return y},NormalizeError:function(){return g},PageNotFoundError:function(){return A},SP:function(){return p},ST:function(){return h},WEB_VITALS:function(){return n},execOnce:function(){return o},getDisplayName:function(){return l},getLocationOrigin:function(){return u},getURL:function(){return s},isAbsoluteUrl:function(){return a},isResSent:function(){return c},loadGetInitialProps:function(){return d},normalizeRepeatedSlashes:function(){return f},stringifyError:function(){return v}});let n=["CLS","FCP","FID","INP","LCP","TTFB"];function o(e){let t,r=!1;return function(){for(var n=arguments.length,o=Array(n),i=0;i<n;i++)o[i]=arguments[i];return r||(r=!0,t=e(...o)),t}}let i=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,a=e=>i.test(e);function u(){let{protocol:e,hostname:t,port:r}=window.location;return e+"//"+t+(r?":"+r:"")}function s(){let{href:e}=window.location,t=u();return e.substring(t.length)}function l(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function c(e){return e.finished||e.headersSent}function f(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?"?"+t.slice(1).join("?"):"")}async function d(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await d(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&c(r))return n;if(!n)throw Object.defineProperty(Error('"'+l(e)+'.getInitialProps()" should resolve to an object. But found "'+n+'" instead.'),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n}let p="undefined"!=typeof performance,h=p&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class b extends Error{}class g extends Error{}class A extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message="Cannot find module for page: "+e}}class y extends Error{constructor(e,t){super(),this.message="Failed to load static file for page: "+e+" "+t}}class m extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function v(e){return JSON.stringify({message:e.message,stack:e.stack})}},73668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return i}});let n=e.r(18967),o=e.r(52817);function i(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,o.hasBasePath)(r.pathname)}catch(e){return!1}}},84508,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},22016,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(r,{default:function(){return g},useLinkStatus:function(){return y}});let n=e.r(90809),o=e.r(18050),i=n._(e.r(71645)),a=e.r(95057),u=e.r(8372),s=e.r(18581),l=e.r(18967),c=e.r(84395);e.r(33525);let f=e.r(91949),d=e.r(73668),p=e.r(99781);e.r(84508);let h=e.r(65165);function b(e){return"string"==typeof e?e:(0,a.formatUrl)(e)}function g(e){var t;let r,n,a,[g,y]=(0,i.useOptimistic)(f.IDLE_LINK_STATUS),m=(0,i.useRef)(null),{href:v,as:x,children:P,prefetch:w=null,passHref:j,replace:E,shallow:N,scroll:O,onClick:C,onMouseEnter:T,onTouchStart:S,legacyBehavior:_=!1,onNavigate:R,ref:U,unstable_dynamicOnHover:L,...I}=e;r=P,_&&("string"==typeof r||"number"==typeof r)&&(r=(0,o.jsx)("a",{children:r}));let k=i.default.useContext(u.AppRouterContext),M=!1!==w,z=!1!==w?null===(t=w)||"auto"===t?h.FetchStrategy.PPR:h.FetchStrategy.Full:h.FetchStrategy.PPR,{href:B,as:D}=i.default.useMemo(()=>{let e=b(v);return{href:e,as:x?b(x):e}},[v,x]);_&&(n=i.default.Children.only(r));let F=_?n&&"object"==typeof n&&n.ref:U,K=i.default.useCallback(e=>(null!==k&&(m.current=(0,f.mountLinkInstance)(e,B,k,z,M,y)),()=>{m.current&&((0,f.unmountLinkForCurrentNavigation)(m.current),m.current=null),(0,f.unmountPrefetchableInstance)(e)}),[M,B,k,z,y]),G={ref:(0,s.useMergedRef)(K,F),onClick(e){_||"function"!=typeof C||C(e),_&&n.props&&"function"==typeof n.props.onClick&&n.props.onClick(e),k&&(e.defaultPrevented||function(e,t,r,n,o,a,u){let{nodeName:s}=e.currentTarget;if(!("A"===s.toUpperCase()&&function(e){let t=e.currentTarget.getAttribute("target");return t&&"_self"!==t||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.nativeEvent&&2===e.nativeEvent.which}(e)||e.currentTarget.hasAttribute("download"))){if(!(0,d.isLocalURL)(t)){o&&(e.preventDefault(),location.replace(t));return}if(e.preventDefault(),u){let e=!1;if(u({preventDefault:()=>{e=!0}}),e)return}i.default.startTransition(()=>{(0,p.dispatchNavigateAction)(r||t,o?"replace":"push",null==a||a,n.current)})}}(e,B,D,m,E,O,R))},onMouseEnter(e){_||"function"!=typeof T||T(e),_&&n.props&&"function"==typeof n.props.onMouseEnter&&n.props.onMouseEnter(e),k&&M&&(0,f.onNavigationIntent)(e.currentTarget,!0===L)},onTouchStart:function(e){_||"function"!=typeof S||S(e),_&&n.props&&"function"==typeof n.props.onTouchStart&&n.props.onTouchStart(e),k&&M&&(0,f.onNavigationIntent)(e.currentTarget,!0===L)}};return(0,l.isAbsoluteUrl)(D)?G.href=D:_&&!j&&("a"!==n.type||"href"in n.props)||(G.href=(0,c.addBasePath)(D)),a=_?i.default.cloneElement(n,G):(0,o.jsx)("a",{...I,...G,children:r}),(0,o.jsx)(A.Provider,{value:g,children:a})}let A=(0,i.createContext)(f.IDLE_LINK_STATUS),y=()=>(0,i.useContext)(A);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,92715,e=>{"use strict";e.s(["AppTable",()=>u],92715);var t=e.i(18050),r=e.i(85413),a=e.i(71645),l=e.i(75157);let s=a.forwardRef((e,r)=>{let{className:a,...s}=e;return(0,t.jsx)("div",{className:"relative w-full overflow-auto",children:(0,t.jsx)("table",{ref:r,className:(0,l.cn)("w-full caption-bottom border-collapse",a),...s})})});s.displayName="Table";let n=a.forwardRef((e,r)=>{let{className:a,...s}=e;return(0,t.jsx)("thead",{ref:r,className:(0,l.cn)("[&_tr]:table [&_tr]:w-full [&_tr]:table-fixed [&_tr]:border-b",a),...s})});n.displayName="TableHeader";let i=a.forwardRef((e,r)=>{let{className:s,viewportFit:n=!0,viewportReserveBottom:i=16,viewportPaginationReserve:o=0,style:c,...d}=e,u=a.useRef(null),p=a.useCallback(e=>{u.current=e,"function"==typeof r?r(e):r&&(r.current=e)},[r]),[m,f]=a.useState(void 0);return a.useLayoutEffect(()=>{var e,t;if(!n)return void f(void 0);let r=()=>{var e,t;let r=u.current;if(!r)return;let a=r.getBoundingClientRect().top;f(Math.max(80,Math.floor((null!=(t=null==(e=window.visualViewport)?void 0:e.height)?t:window.innerHeight)-a-(i+o))))};r();let a=new ResizeObserver(()=>{r()});try{a.observe(document.body)}catch(e){}return window.addEventListener("resize",r),null==(e=window.visualViewport)||e.addEventListener("resize",r),null==(t=window.visualViewport)||t.addEventListener("scroll",r),window.addEventListener("scroll",r,!0),()=>{var e,t;a.disconnect(),window.removeEventListener("resize",r),null==(e=window.visualViewport)||e.removeEventListener("resize",r),null==(t=window.visualViewport)||t.removeEventListener("scroll",r),window.removeEventListener("scroll",r,!0)}},[n,i,o]),(0,t.jsx)("tbody",{ref:p,className:(0,l.cn)("block overflow-y-auto [&_tr:last-child]:border-b-0 [&_tr:last-child_td]:border-b-0 [&_tr]:table [&_tr]:w-full [&_tr]:table-fixed",s),style:n&&void 0!==m?{...c,maxHeight:m}:c,...d})});i.displayName="TableBody";let o=a.forwardRef((e,r)=>{let{className:a,hoverable:s=!0,...n}=e;return(0,t.jsx)("tr",{ref:r,className:(0,l.cn)("border-b transition-colors [&>td]:transition-colors data-[state=selected]:[&>td]:!bg-[var(--ds-item-active)]",s&&"group/table-row",a),...n})});o.displayName="TableRow";let c=a.forwardRef((e,r)=>{let{className:a,...s}=e;return(0,t.jsx)("th",{ref:r,className:(0,l.cn)("h-10 border-b border-[var(--border-subtle)] bg-[var(--surface-2)] px-3 text-left align-middle text-[14px] font-medium !text-[var(--ds-text)] text-muted-foreground",a),...s})});c.displayName="TableHead";let d=a.forwardRef((e,r)=>{let{className:a,...s}=e;return(0,t.jsx)("td",{ref:r,className:(0,l.cn)("border-x-0 border-b border-t-0 border-solid border-[var(--border-subtle)] p-3 align-middle transition-colors group-has-[td:hover]/table-row:!bg-[var(--ds-item-hover)]",a),...s})});function u(e){let{rows:a,columns:u,getRowKey:p,className:m,rowClassName:f,headerRowClassName:b,emptyText:x,emptyNode:v,bodyProps:g}=e;return(0,t.jsx)("div",{className:(0,l.cn)("overflow-hidden border border-[var(--ds-border)]",m),children:(0,t.jsxs)(s,{children:[(0,t.jsx)(n,{children:(0,t.jsx)(o,{className:(0,l.cn)("bg-[var(--ds-main-tint)] hover:bg-[var(--ds-main-tint)]",b),children:u.map(e=>(0,t.jsx)(c,{className:e.headerClassName,children:e.title},e.key))})}),(0,t.jsx)(i,{...g,children:a.length?a.map(e=>(0,t.jsx)(o,{className:"function"==typeof f?f(e):f,children:u.map(r=>(0,t.jsx)(d,{className:r.cellClassName,children:r.render(e)},r.key))},p(e))):(0,t.jsx)(o,{hoverable:!1,children:(0,t.jsx)(d,{colSpan:u.length,className:"py-6",children:null!=v?v:(0,t.jsx)(r.Empty,{text:x})})})})]})})}d.displayName="TableCell"},62427,e=>{"use strict";e.s(["clearRuntimeMcpItemConfig",()=>w,"deleteRuntimeMcp",()=>p,"deleteRuntimeSkill",()=>C,"deleteRuntimeTool",()=>u,"exportRuntimeMcpUrl",()=>f,"exportRuntimeSkillUrl",()=>j,"exportRuntimeToolUrl",()=>m,"importRuntimeMcp",()=>x,"importRuntimeTool",()=>b,"installCloudSkill",()=>N,"listBaseSkills",()=>s,"listCloudSkillCatalog",()=>S,"listInstalledSkills",()=>n,"listInstalledTools",()=>l,"listMcpServers",()=>a,"listRuntimeMcpPackages",()=>d,"listRuntimeTools",()=>c,"loadBaseSkillMd",()=>i,"loadRemoteMcpJson",()=>v,"loadRuntimeMcpItemConfig",()=>h,"saveBaseSkillMd",()=>o,"saveRemoteMcpJson",()=>g,"saveRuntimeMcpItemConfig",()=>y]);var t=e.i(29250),r=e.i(36845);async function a(e,a,l){let s=await (0,t.get)((0,r.buildMcpServersListUrl)(e,a,l));return{servers:Array.isArray(s.servers)?s.servers:[]}}async function l(e,a,l){let s=await (0,t.get)((0,r.buildToolInstalledListUrl)(e,a,l));return{tools:Array.isArray(s.tools)?s.tools:[]}}async function s(e,a,l){let s=await (0,t.get)((0,r.buildSkillBaseListUrl)(e,a,l));return{skills:Array.isArray(s.skills)?s.skills:[]}}async function n(e,a,l){let s=await (0,t.get)((0,r.buildSkillInstalledListUrl)(e,a,l));return{skills:Array.isArray(s.skills)?s.skills:[]}}async function i(e,a,l,s){return(0,t.get)((0,r.buildBaseSkillMdUrl)(e,a,l,s))}async function o(e,a,l,s,n){await (0,t.put)((0,r.buildBaseSkillMdUrl)(e,a,l,s),{content:n})}async function c(e,a,l){let s=await (0,t.get)((0,r.buildToolsRuntimeFilesUrl)(e,a,l));return{runtimeToolsDir:"string"==typeof s.runtimeToolsDir?s.runtimeToolsDir:"",items:Array.isArray(s.items)?s.items.filter(e=>!!(e&&e.id)):[]}}async function d(e,a,l){let s=await (0,t.get)((0,r.buildMcpRuntimeFilesUrl)(e,a,l));return{mcpRuntimeDir:"string"==typeof s.mcpRuntimeDir?s.mcpRuntimeDir:"",items:Array.isArray(s.items)?s.items.filter(e=>!!(e&&e.id)):[]}}async function u(e,a,l,s){return(0,t.del)((0,r.buildToolsRuntimeDeleteUrl)(e,a,l,s))}async function p(e,a,l,s){return(0,t.del)((0,r.buildMcpRuntimeDeleteUrl)(e,a,l,s))}function m(e,t,a,l){return(0,r.buildToolsRuntimeExportUrl)(e,t,a,l)}function f(e,t,a,l){return(0,r.buildMcpRuntimeExportUrl)(e,t,a,l)}async function b(e,a,l,s){let n=new FormData;return n.append("file",s),(0,t.post)((0,r.buildToolsRuntimeImportUrl)(e,a,l),n,{type:"file"})}async function x(e,a,l,s){let n=new FormData;return n.append("file",s),(0,t.post)((0,r.buildMcpRuntimeImportUrl)(e,a,l),n,{type:"file"})}async function v(e,a,l){return(0,t.get)((0,r.buildRemoteMcpJsonUrl)(e,a,l))}async function g(e,a,l,s){await (0,t.post)((0,r.buildRemoteMcpJsonUrl)(e,a,l),{content:s})}async function h(e,a,l,s,n){return(0,t.get)((0,r.buildRuntimeMcpItemConfigUrl)(e,a,l,s,n))}async function y(e,a,l,s,n,i){await (0,t.put)((0,r.buildRuntimeMcpItemConfigUrl)(e,a,l,s,n),{server:i})}async function w(e,a,l,s,n){await (0,t.del)((0,r.buildRuntimeMcpItemConfigUrl)(e,a,l,s,n))}async function C(e,a,l,s){return(0,t.del)((0,r.buildSkillsRuntimeDeleteUrl)(e,a,l,s))}function j(e,t,a,l){return(0,r.buildSkillsRuntimeExportUrl)(e,t,a,l)}async function S(e,a,l,s,n,i){let o=await (0,t.get)((0,r.buildCloudSkillCatalogUrl)(e,a,l,s,n,i));return{items:Array.isArray(o.items)?o.items:[],totalPages:Number(o.totalPages||0)}}async function N(e,a,l,s){await (0,t.post)((0,r.buildCloudSkillInstallUrl)(e,a,l),{id:s})}},53925,e=>{"use strict";e.s(["ResourceImportDialog",()=>u],53925);var t=e.i(18050),r=e.i(71645),a=e.i(72064),l=e.i(75157),s=e.i(19455);function n(e){return e<1024?"".concat(e," B"):e<1048576?"".concat((e/1024).toFixed(1)," KB"):"".concat((e/1048576).toFixed(1)," MB")}function i(e){let{uploadUrl:i,accept:o,disabled:c=!1,multiple:d=!1,maxFileSize:u=0x3200000,autoUpload:p=!1,method:m="POST",transport:f="xhr",fieldName:b="file",headers:x,extraFormData:v,autoRetryTimes:g=0,autoRetryDelayMs:h=800,selectionOnly:y=!1,className:w,emptyTitle:C="点击或拖拽文件到此处",emptyHint:j="支持上传文件",onFilesChange:S,onUploadSuccess:N,onUploadError:k,onValidationError:R}=e,M=r.useId(),T=r.useRef(null),A=r.useRef(new Map),U=r.useRef(new Map),D=r.useRef([]),[E,z]=r.useState(!1),[B,O]=r.useState([]),I=r.useMemo(()=>o?o.split(",").map(e=>e.trim().toLowerCase()).filter(Boolean):[],[o]);r.useEffect(()=>{D.current=B,null==S||S(B)},[B,S]),r.useEffect(()=>()=>{for(let e of A.current.values())e.abort();for(let e of U.current.values())e.abort();for(let e of D.current)e.previewUrl&&URL.revokeObjectURL(e.previewUrl)},[]);let L=r.useCallback((e,t)=>{O(r=>r.map(r=>r.id===e?{...r,...t}:r))},[]),P=r.useCallback(async(e,t)=>{let r=D.current.find(t=>t.id===e);if(!r||c)return;L(e,{status:t>0?"retrying":"uploading",progress:0,error:"",retryCount:t});let a=new FormData;if(v)for(let[e,t]of Object.entries(v))a.append(e,t);a.append(b,r.file);try{let t="";if("fetch"===f){let r=new AbortController;U.current.set(e,r);let l=await fetch(i,{method:m,headers:x,body:a,signal:r.signal}),s=await l.text();try{t=s?JSON.parse(s):""}catch(e){t=s}if(!l.ok)throw Error("上传失败:".concat(l.status," ").concat(l.statusText))}else t=await new Promise((t,r)=>{let l=new XMLHttpRequest;if(A.current.set(e,l),l.open(m,i,!0),x)for(let[e,t]of Object.entries(x))l.setRequestHeader(e,t);l.upload.onprogress=t=>{if(!t.lengthComputable)return;let r=Math.min(100,Math.round(t.loaded/t.total*100));L(e,{progress:r})},l.onerror=()=>r(Error("网络异常,上传失败")),l.onabort=()=>r(Error("__ABORTED__")),l.onload=()=>{l.status>=200&&l.status<300?t(function(e){let t=e.responseText||"";try{return JSON.parse(t)}catch(e){return t}}(l)):r(Error("上传失败:".concat(l.status," ").concat(l.statusText)))},l.send(a)});L(e,{status:"success",progress:100,error:""});let r=D.current.find(t=>t.id===e);r&&(null==N||N(r,t))}catch(l){let r=l instanceof Error?l.message:String(l);if("__ABORTED__"===r)return void L(e,{status:"selected",progress:0,error:""});if(t<g){L(e,{status:"retrying",error:"重试中(".concat(t+1,"/").concat(g,")")}),await new Promise(e=>window.setTimeout(e,h)),await P(e,t+1);return}L(e,{status:"error",error:r});let a=D.current.find(t=>t.id===e);a&&(null==k||k(a,r))}finally{A.current.delete(e),U.current.delete(e)}},[h,g,c,v,b,x,m,k,N,f,L,i]),J=r.useCallback(e=>{P(e,0)},[P]),_=r.useCallback(e=>{var t,r;null==(t=A.current.get(e))||t.abort(),null==(r=U.current.get(e))||r.abort()},[]),F=r.useCallback(()=>{for(let e of D.current)("selected"===e.status||"error"===e.status)&&J(e.id)},[J]),H=r.useCallback(e=>{if(c||!e.length)return;let t=new Set(D.current.map(e=>"".concat(e.file.name,"::").concat(e.file.size))),r=[];for(let a of e){let e="".concat(a.name,"::").concat(a.size);if(!t.has(e)){if(!function(e,t){if(!t.length)return!0;let r=e.name.toLowerCase(),a=(e.type||"").toLowerCase();return t.some(e=>e.startsWith(".")?r.endsWith(e):e.endsWith("/*")?a.startsWith("".concat(e.slice(0,-1))):a===e)}(a,I)){null==R||R("文件类型不支持:".concat(a.name));continue}if(a.size>u){null==R||R("文件过大(最大 ".concat(n(u),"):").concat(a.name));continue}t.add(e),r.push({id:"".concat(Date.now(),"-").concat(Math.random().toString(36).slice(2,8)),file:a,status:"selected",progress:0,error:"",retryCount:0,previewUrl:a.type.startsWith("image/")?URL.createObjectURL(a):""})}}if(!r.length)return;let a=d?[...D.current,...r]:[r[r.length-1]];if(!d)for(let e of D.current)e.previewUrl&&URL.revokeObjectURL(e.previewUrl);if(O(a),p&&!y)for(let e of r)J(e.id)},[I,p,c,u,d,R,y,J]),V=r.useCallback(e=>{let t=e.target.files;t&&(H(Array.from(t)),e.target.value="")},[H]),K=r.useCallback(e=>{var t;e.preventDefault(),e.stopPropagation(),z(!1),c||H(Array.from(null!=(t=e.dataTransfer.files)?t:[]))},[H,c]);return(0,t.jsxs)("div",{className:(0,l.cn)("flex min-h-0 w-full flex-col gap-3",w),children:[(0,t.jsx)("input",{ref:T,id:M,type:"file",hidden:!0,accept:o,multiple:d,disabled:c,onChange:V}),(0,t.jsxs)("label",{htmlFor:M,onDragOver:e=>{e.preventDefault(),c||z(!0)},onDragLeave:e=>{e.preventDefault(),z(!1)},onDrop:K,className:(0,l.cn)("flex min-h-[124px] cursor-pointer flex-col items-center justify-center gap-1 rounded-lg border border-dashed border-[var(--ds-border)] px-4 py-6 text-center transition-colors hover:border-[var(--ds-border-hover)] hover:bg-[var(--ds-main-tint)]",E&&"bg-[var(--ds-accent)]/5 border-[var(--ds-accent)]",c&&"cursor-not-allowed opacity-60"),children:[(0,t.jsx)(a.default,{name:"Upload",size:20,className:"text-[var(--ds-muted)]"}),(0,t.jsx)("div",{className:"text-[var(--ds-text)]",children:C}),(0,t.jsx)("div",{className:"text-[var(--ds-muted)]",children:j})]}),B.length?(0,t.jsx)("div",{className:"space-y-2",children:B.map(e=>(0,t.jsx)("div",{className:"rounded-md border border-[var(--ds-border)] p-2.5",children:(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("div",{className:"truncate text-[var(--ds-text)]",children:e.file.name}),(0,t.jsx)("div",{className:"text-[var(--ds-muted)]",children:n(e.file.size)}),e.previewUrl?(0,t.jsx)("img",{src:e.previewUrl,alt:e.file.name,className:"mt-2 h-14 w-14 rounded object-cover"}):null,"uploading"===e.status||"retrying"===e.status?(0,t.jsx)("div",{className:"mt-2 h-1.5 w-full overflow-hidden rounded bg-[var(--ds-main-tint)]",children:(0,t.jsx)("div",{className:"h-full bg-[var(--ds-accent)] transition-all",style:{width:"".concat(e.progress,"%")}})}):null,"error"===e.status?(0,t.jsx)("div",{className:"mt-1 text-[var(--ds-danger)]",children:e.error||"上传失败"}):null]}),y?null:(0,t.jsxs)("div",{className:"flex items-center gap-1",children:["success"===e.status?(0,t.jsx)(a.default,{name:"CheckCircle2",size:16,className:"text-[var(--ds-accent)]"}):null,"selected"===e.status||"error"===e.status?(0,t.jsxs)(s.Button,{type:"button",size:"sm",variant:"outline",disabled:c,onClick:()=>J(e.id),children:["error"===e.status?(0,t.jsx)(a.default,{name:"RefreshCw",size:14,className:"mr-1"}):null,"error"===e.status?"重试":"上传"]}):null,"uploading"===e.status||"retrying"===e.status?(0,t.jsxs)(s.Button,{type:"button",size:"sm",variant:"outline",onClick:()=>_(e.id),children:[(0,t.jsx)(a.default,{name:"XCircle",size:14,className:"mr-1"}),"取消"]}):null]})]})},e.id))}):null,!y&&!p&&B.some(e=>"selected"===e.status||"error"===e.status)?(0,t.jsx)("div",{className:"flex justify-end",children:(0,t.jsx)(s.Button,{type:"button",size:"sm",onClick:F,disabled:c,children:"上传"})}):null]})}var o=e.i(76639),c=e.i(13354),d=e.i(29250);function u(e){let{open:a,onOpenChange:l,title:n,description:u,uploadUrl:p,resetKey:m}=e,[f,b]=(0,r.useState)(!1),[x,v]=(0,r.useState)(null),g=(0,r.useCallback)(()=>{l(!1),v(null)},[l]),h=(0,r.useCallback)(async()=>{if(!x)return void c.appToast.info("请先选择 zip 文件");let e=new FormData;e.append("file",x),b(!0);try{let t=await (0,d.bridgeFetch)(p,{method:"POST",body:e}),r=Number(t.imported||0),a=Number(t.overwritten||0),l=Array.isArray(t.rejected)?t.rejected.length:0;c.appToast.success("导入完成:导入 ".concat(r,",覆盖 ").concat(a)+(l>0?",拒绝 ".concat(l):"")),g()}catch(e){c.appToast.error("导入失败:".concat(e instanceof Error?e.message:String(e)))}finally{b(!1)}},[g,x,p]);return(0,t.jsx)(o.Dialog,{open:a,onOpenChange:e=>{l(e),e||v(null)},children:(0,t.jsxs)(o.DialogContent,{className:"flex min-h-[320px] max-w-[560px] flex-col",children:[(0,t.jsxs)(o.DialogHeader,{children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(o.DialogTitle,{children:n}),(0,t.jsx)(o.DialogDescription,{children:u})]}),(0,t.jsx)(o.DialogClose,{className:"sidebar-icon-btn","aria-label":"关闭",onClick:g,children:"✕"})]}),(0,t.jsxs)("div",{className:"m-3 flex flex-1 flex-col gap-3",children:[(0,t.jsx)(i,{uploadUrl:p,accept:".zip,application/zip",maxFileSize:0x3200000,multiple:!1,disabled:f,selectionOnly:!0,emptyTitle:"点击或拖拽 zip 文件到此处",emptyHint:"支持 .zip 格式,最大 50MB",onFilesChange:e=>{var t,r;v(null!=(r=null==(t=e[0])?void 0:t.file)?r:null)},onValidationError:e=>{c.appToast.info(e)}},"".concat(a?"open":"closed","-").concat(null!=m?m:p)),(0,t.jsxs)("div",{className:"mt-auto flex justify-end pt-2",children:[(0,t.jsx)(s.Button,{className:"mr-[12px]",type:"button",variant:"plain-outline",size:"lg",onClick:g,children:"取消"}),(0,t.jsx)(s.Button,{type:"button",size:"lg",variant:"default",disabled:f||null==x,onClick:()=>void h(),children:f?"导入中…":"确定"})]})]})]})})}},55242,e=>{"use strict";e.s(["AppDialog",()=>s]);var t=e.i(18050),r=e.i(71645),a=e.i(76639),l=e.i(75157);function s(e){let{open:s,onOpenChange:n,title:i,children:o,footer:c,width:d="max-w-3xl",minHeight:u}=e,p=(0,r.useId)();return(0,t.jsx)(a.Dialog,{open:s,onOpenChange:n,children:(0,t.jsxs)(a.DialogContent,{"aria-labelledby":p,className:(0,l.cn)(d,u?"!min-h-[--min-h]":""),style:u?{"--min-h":u}:void 0,children:[(0,t.jsxs)(a.DialogHeader,{children:[(0,t.jsx)(a.DialogTitle,{id:p,children:i}),(0,t.jsx)(a.DialogClose,{"aria-label":"关闭"})]}),(0,t.jsx)(a.DialogBody,{className:"!px-4 !py-3",children:o}),c?(0,t.jsx)("div",{className:"flex flex-shrink-0 justify-end gap-2 border-t border-[var(--ds-border)] bg-[var(--ds-sidebar)] px-4 py-3",children:c}):null]})})}},37991,e=>{"use strict";e.s(["McpManageView",()=>S],37991);var t=e.i(18050),r=e.i(71645),a=e.i(65934),l=e.i(87243),s=e.i(13354),n=e.i(50711),i=e.i(51419),o=e.i(55242),c=e.i(92715),d=e.i(19455),u=e.i(94055),p=e.i(94197);function m(e){let{items:r,saveBusy:a,onToggleStatus:l,onEdit:s,className:n}=e,i=[{key:"name",title:"名称",headerClassName:"",cellClassName:"",render:e=>e.label||e.name},{key:"description",title:"详情",headerClassName:"",cellClassName:"",render:e=>e.description||"-"},{key:"source",title:"来源",headerClassName:"",cellClassName:"",render:()=>"远程"},{key:"status",title:"状态",headerClassName:"",cellClassName:"whitespace-nowrap py-2 align-middle",render:e=>l?(0,t.jsx)("span",{className:"inline-flex items-center justify-end gap-2 text-[var(--ds-text)]",children:(0,t.jsx)(u.AccentSwitch,{checked:!e.disabled,disabled:a,onCheckedChange:t=>{l(e.name,t)},"aria-label":"".concat(e.disabled?"启用":"禁用"," ").concat(e.name)})}):(0,t.jsx)("span",{className:"text-[var(--ds-text)]",children:e.installed?"已安装":"未安装"})},...s?[{key:"actions",title:"操作",headerClassName:"w-[72px] ",cellClassName:"w-[72px]",render:e=>(0,t.jsx)("div",{className:"inline-flex justify-end",children:(0,t.jsx)(p.IconTooltipButton,{icon:"Edit",label:"编辑 MCP 配置",ariaLabel:"编辑 ".concat(e.name),disabled:a,onClick:()=>s(e.name)})})}]:[]];return(0,t.jsx)(c.AppTable,{rows:r,columns:i,getRowKey:e=>"mcp:".concat(e.name),className:n})}var f=e.i(36845),b=e.i(53925);function x(e){let{open:r,onOpenChange:a,wsUrl:l,apiBase:s,agent:n}=e;return(0,t.jsx)(b.ResourceImportDialog,{open:r,onOpenChange:a,title:"导入 MCP zip",description:"选择一个 zip 文件并导入到 mcp-runtime。",uploadUrl:(0,f.buildMcpRuntimeImportUrl)(l,s,n),resetKey:n})}var v=e.i(62427);function g(e){return(null!=e.packageId?String(e.packageId).trim():"")||e.id}function h(e){let{open:a,onOpenChange:l,itemId:n,source:i,wsUrl:c,apiBase:u,agent:p,onSaved:m}=e,[f,b]=(0,r.useState)(""),[x,g]=(0,r.useState)(!1),[h,y]=(0,r.useState)(!1),w="remote"===i?"remote":"runtime";(0,r.useEffect)(()=>{if(!a||!n.trim())return;let e=!1;return g(!0),b("加载中…"),(0,v.loadRuntimeMcpItemConfig)(c,u,p,n,w).then(t=>{if(e)return;let r=t.overlay;r&&"object"==typeof r&&!Array.isArray(r)?b(JSON.stringify(r,null,2)):b("{}")}).catch(t=>{e||(s.appToast.error("加载 MCP 配置失败:".concat(t instanceof Error?t.message:String(t))),l(!1))}).finally(()=>{e||g(!1)}),()=>{e=!0}},[a,n,c,u,p,w,l]);let C=(0,r.useCallback)(async()=>{let e;if(!n.trim())return;let t=f.trim();try{e=t?JSON.parse(t):{}}catch(e){s.appToast.error("JSON 解析失败:".concat(e instanceof Error?e.message:String(e)));return}if(!e||"object"!=typeof e||Array.isArray(e))return void s.appToast.error("配置必须是 JSON 对象");if("mcpServers"in e&&null!=e.mcpServers)return void s.appToast.error("请填写标准 server 配置(command/args/env),不要嵌套 mcpServers");let r=0===Object.keys(e).length;y(!0);try{r?await (0,v.clearRuntimeMcpItemConfig)(c,u,p,n,w):await (0,v.saveRuntimeMcpItemConfig)(c,u,p,n,w,e),s.appToast.success("MCP 配置已保存"),l(!1),null==m||m()}catch(e){s.appToast.error("保存失败:".concat(e instanceof Error?e.message:String(e)))}finally{y(!1)}},[n,f,c,u,p,w,l,m]);return(0,t.jsx)(o.AppDialog,{open:a,onOpenChange:l,title:"编辑 MCP 配置 · ".concat(n),width:"max-w-4xl",minHeight:"420px",footer:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(d.Button,{type:"button",variant:"plain-outline",size:"lg",disabled:h,onClick:()=>l(!1),children:"取消"}),(0,t.jsx)(d.Button,{type:"button",size:"lg",disabled:h||x,onClick:()=>void C(),children:"保存"})]}),children:(0,t.jsx)("textarea",{className:"focus-visible:ring-[var(--ds-accent)]/30 min-h-[320px] w-full resize-y rounded-md border border-[var(--ds-border)] bg-[var(--ds-bg)] p-3 font-mono leading-6 text-[var(--ds-text)] outline-none focus-visible:ring-2",spellCheck:!1,value:f,disabled:x,onChange:e=>b(e.target.value)})})}var y=e.i(68499),w=e.i(72064),C=e.i(56708);let j=[{value:"basic",label:"本地MCP"},{value:"installed",label:"远程MCP"}];function S(){let e=(0,a.useAppStore)(e=>e.wsUrl),f=(0,a.useAppStore)(e=>e.apiBase),b=(0,a.useAppStore)(e=>e.agentConfig),S=(0,a.useAppStore)(e=>e.setAgentConfig),{currentAgent:N,loadAgentConfig:k}=(0,l.useSession)(),R=(0,n.usePersistAgentConfigField)("mcpServers"),M=b.mcpServers,T=(0,r.useMemo)(()=>[...M].sort().join("\0"),[M]),[A,U]=(0,r.useState)([]),[D,E]=(0,r.useState)([]),[z,B]=(0,r.useState)(!1),[O,I]=(0,r.useState)(!1),[L,P]=(0,r.useState)("basic"),[J,_]=(0,r.useState)(!1),[F,H]=(0,r.useState)(!1),[V,K]=(0,r.useState)(""),[W,q]=(0,r.useState)(!1),[X,G]=(0,r.useState)(""),[Q,Y]=(0,r.useState)(),[Z,$]=(0,r.useState)(!1);(0,r.useEffect)(()=>{k()},[k]);let ee=(0,r.useCallback)(async(e,t)=>{I(!0);try{await R(e,{silent:t})}finally{I(!1)}},[R]),et=(0,r.useCallback)(e=>A.find(t=>t.id===e),[A]),er=(0,r.useCallback)(e=>{let t=et(e);G(e),Y(null==t?void 0:t.source),$(!0)},[et]),ea=(0,r.useCallback)(async()=>{U([]),B(!0);try{var t;let r=await (0,v.listMcpServers)(e,f,N());U((null!=(t=r.servers)?t:[]).map(e=>{var t,r,a;return{...e,id:e.name,label:e.name+(e.disabled?"(已禁用)":""),description:null!=(r=null!=(t=e.description)?t:e.source)?r:"",source:null!=(a=e.source)?a:"",installed:!!e.installed,packageId:e.packageId}}))}catch(e){U([]),s.appToast.error("加载失败:".concat(e instanceof Error?e.message:String(e)))}finally{B(!1)}},[e,f,N]),el=(0,r.useCallback)(async t=>{var r;let a=et(t),l=null!=(r=null==a?void 0:a.source)?r:"";if("runtime"!==l&&"remote"!==l)return void s.appToast.error("基础MCP不可删除");if(await (0,y.confirmAlertDialog)({title:"确认删除 MCP?",description:"服务器名:".concat(t),confirmText:"删除",cancelText:"取消"}))try{if("remote"===l){let r=await (0,v.loadRemoteMcpJson)(e,f,N()),a={};try{a=JSON.parse(String(r.content||"{}"))}catch(e){a={mcpServers:{}}}(!a.mcpServers||Array.isArray(a.mcpServers)||"object"!=typeof a.mcpServers)&&(a.mcpServers={}),delete a.mcpServers[t],await (0,v.saveRemoteMcpJson)(e,f,N(),JSON.stringify(a,null,2))}else{let r=a?g(a):t;await (0,v.deleteRuntimeMcp)(e,f,N(),r)}let r=M.filter(e=>e!==t);E(e=>e.filter(e=>e!==t)),S({...b,mcpServers:r}),await ee(r,!0),await ea()}catch(e){s.appToast.error("删除失败:".concat(e instanceof Error?e.message:String(e)))}},[et,e,f,N,M,b,S,ee,ea]);(0,r.useEffect)(()=>{("basic"===L||"installed"===L)&&ea()},[L,ea]),(0,r.useEffect)(()=>{("basic"===L||"installed"===L)&&E([...M])},[L,M,T]);let es=(0,r.useCallback)(async e=>{let t=[...new Set(e)].sort();S({...b,mcpServers:t}),await ee(t,!0)},[b,S,ee]),en=(0,r.useCallback)(async(e,t)=>{let r=t?[...new Set([...D,e])]:D.filter(t=>t!==e);E(r);try{await es(r)}catch(e){E(D),s.appToast.error("切换启用状态失败: ".concat(e))}},[D,es]),ei=(0,r.useMemo)(()=>A.filter(e=>"remote"!==e.source).slice().sort((e,t)=>e.id.localeCompare(t.id)),[A]),eo=(0,r.useMemo)(()=>A.filter(e=>"remote"===e.source).slice().sort((e,t)=>{let r=+!D.includes(e.id),a=+!D.includes(t.id);return r!==a?r-a:e.id.localeCompare(t.id)}).map(e=>({...e,name:e.id,label:e.label,description:e.description||"",installed:!0,source:e.source,disabled:!D.includes(e.id)})),[A,D]),ec=(0,r.useCallback)(t=>{window.open((0,v.exportRuntimeMcpUrl)(e,f,N(),g(t)),"_blank","noopener")},[e,f,N]),ed=(0,r.useCallback)(async(e,t)=>{let r=t?[...new Set([...D,e])]:D.filter(t=>t!==e);E(r);try{await es(r)}catch(e){E(D),s.appToast.error("切换启用状态失败: ".concat(e))}},[D,es]),eu=(0,r.useCallback)(()=>{H(!0),K(""),(0,v.loadRemoteMcpJson)(e,f,N()).then(e=>{K("string"==typeof e.content?e.content:'{\n "mcpServers": {}\n}\n')}).catch(e=>{s.appToast.error("加载 mcp.json 失败:".concat(e instanceof Error?e.message:String(e))),H(!1)})},[e,f,N]),ep=(0,r.useCallback)(async()=>{let t=function(e){let t,r=e.trim();if(!r)return"请输入 JSON 配置内容";try{t=JSON.parse(r)}catch(e){return"JSON 解析失败:".concat(e instanceof Error?e.message:String(e))}if(!t||"object"!=typeof t||Array.isArray(t))return"JSON 根节点必须是对象";let a=t.mcpServers;if(!a||"object"!=typeof a||Array.isArray(a))return"mcpServers 不能为空,且需包含至少一个 server";let l=Object.keys(a).filter(e=>e.trim());if(!l.length)return"mcpServers 不能为空,且需包含至少一个 server";let s=new Set;for(let e of l){let t=e.trim();!t||s.has(t)||s.add(t)}return s.size?null:"未解析到有效的 server 名称"}(V);if(t)return void s.appToast.error(t);q(!0);try{await (0,v.saveRemoteMcpJson)(e,f,N(),V.trim()),s.appToast.success("已保存全局 mcp.json。"),H(!1),await ea()}catch(e){s.appToast.error("保存 mcp.json 失败:".concat(e instanceof Error?e.message:String(e)))}finally{q(!1)}},[e,f,N,V,ea]),em=[{key:"name",title:"名称",headerClassName:" text-[var(--ds-muted)]",cellClassName:" text-[var(--ds-text)]",render:e=>e.label},{key:"description",title:"详情",headerClassName:" text-[var(--ds-muted)]",cellClassName:" text-[var(--ds-text)]",render:e=>e.description||"-"},{key:"enabled",title:"启用/未启用",headerClassName:"w-14 w-[112px] text-right text-[var(--ds-muted)]",cellClassName:"w-[112px] py-2 text-right align-middle",render:e=>(0,t.jsx)("span",{className:"inline-flex justify-end",children:(0,t.jsx)(u.AccentSwitch,{checked:D.includes(e.id),disabled:O,onCheckedChange:t=>{en(e.id,t)},"aria-label":"选择 ".concat(e.label)})})},{key:"actions",title:"操作",headerClassName:"w-[168px] text-[var(--ds-muted)]",cellClassName:"w-[168px]",render:e=>{var r;let a=null!=(r=e.source)?r:"",l="runtime"===a,s="runtime"===a||"remote"===a;return(0,t.jsxs)("div",{className:"inline-flex items-center justify-end gap-1",children:[(0,t.jsx)(p.IconTooltipButton,{icon:"Download",label:l?"导出":"仅 runtime MCP 支持导出",ariaLabel:"导出 ".concat(e.label),disabled:O||!l,onClick:()=>ec(e)}),(0,t.jsx)(p.IconTooltipButton,{icon:"Edit",label:"编辑 MCP 配置",ariaLabel:"编辑 ".concat(e.label),disabled:O,onClick:()=>er(e.id)}),(0,t.jsx)(p.IconTooltipButton,{icon:"Trash2",label:s?"删除":"基础MCP不可删除",tone:"danger",ariaLabel:"删除 ".concat(e.label),disabled:O||!s,onClick:()=>{el(e.id)},iconClassName:"text-red-500"})]})}}];return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(C.ManageChromeHeaderActions,{children:(0,t.jsxs)("div",{className:"flex flex-wrap items-center",children:[(0,t.jsxs)(d.Button,{type:"button",variant:"plain-outline",size:"lg",onClick:eu,className:"mr-[12px]",children:[(0,t.jsx)(w.default,{name:"Edit",size:16,className:"align-middle"}),"编辑远程MCP"]}),(0,t.jsxs)(d.Button,{id:"btnAgentImportMcp",type:"button",variant:"plain-outline",size:"lg",className:"inline-flex items-center justify-center gap-1.5",onClick:()=>_(!0),children:[(0,t.jsx)(w.default,{name:"Import",size:16,className:"align-middle"}),"导入本地MCP"]})]})}),(0,t.jsxs)(i.AppTabs,{tabs:j,value:L,listVariant:"line",onChange:e=>P(e),children:[(0,t.jsx)(i.AppTabsPanel,{value:"basic",children:(0,t.jsx)("div",{className:"flex min-h-0 flex-1 flex-col gap-3",children:(0,t.jsx)("div",{className:"min-h-0",children:z?(0,t.jsx)("p",{className:"px-3 py-6 text-center text-[var(--ds-muted)]",children:"加载中…"}):(0,t.jsx)(c.AppTable,{rows:ei,columns:em,getRowKey:e=>e.id})})})}),(0,t.jsx)(i.AppTabsPanel,{value:"installed",children:(0,t.jsx)(m,{items:eo,saveBusy:O,onToggleStatus:ed,onEdit:er})})]}),(0,t.jsx)(x,{open:J,onOpenChange:e=>{_(e),e||ea()},wsUrl:e,apiBase:f,agent:N()}),(0,t.jsx)(h,{open:Z,onOpenChange:$,itemId:X,source:Q,wsUrl:e,apiBase:f,agent:N(),onSaved:()=>{ea(),ee(b.mcpServers,!0)}}),(0,t.jsx)(o.AppDialog,{open:F,onOpenChange:H,title:"编辑全局MCP",width:"max-w-4xl",minHeight:"420px",footer:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(d.Button,{type:"button",variant:"plain-outline",size:"lg",disabled:W,onClick:()=>H(!1),children:"取消"}),(0,t.jsx)(d.Button,{type:"button",size:"lg",disabled:W,onClick:()=>void ep(),children:"保存"})]}),children:(0,t.jsx)("textarea",{className:"focus-visible:ring-[var(--ds-accent)]/30 min-h-[320px] w-full resize-y rounded-md border border-[var(--ds-border)] bg-[var(--ds-bg)] p-3 leading-6 text-[var(--ds-text)] outline-none focus-visible:ring-2",spellCheck:!1,value:V,onChange:e=>K(e.target.value)})})]})}}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,50711,e=>{"use strict";e.s(["usePersistAgentConfig",()=>o,"usePersistAgentConfigField",()=>l]);var t=e.i(71645),n=e.i(65934),s=e.i(67327),r=e.i(13354),i=e.i(82136),a=e.i(70074);function o(){let e=(0,n.useAppStore)(e=>e.wsUrl),o=(0,n.useAppStore)(e=>e.apiBase),{sendReloadAgentConfig:l}=(0,s.useWebSocketSender)(),u=(0,t.useCallback)(()=>n.useAppStore.getState().agentId.trim()||"qihoo",[]);return(0,t.useCallback)(async t=>{let s=!!(null==t?void 0:t.silent),c=n.useAppStore.getState();try{await (0,i.saveAgentConfig)(e,o,u(),(0,i.prepareAgentConfigForSave)(c.agentConfig));let t=n.useAppStore.getState();t.wsConnected&&l(),s?(t.appendLog("agent-config","已写入 agent.json"),t.setStatus("agent.json 已保存".concat(t.wsConnected?",已请求同步 worker":"(未连接 WS 则下次连上后 reload)"),(0,a.resolveInfoStatusClass)(t.bridgeReady,t.wsConnected))):r.appToast.success(t.wsConnected?"已保存并已请求 worker 重新加载 agent.md + agent.json。":"已保存。重连 WebSocket 后生效。")}catch(e){r.appToast.error("保存失败:".concat(e instanceof Error?e.message:String(e)))}},[e,o,l,u])}function l(e){let o=(0,n.useAppStore)(e=>e.wsUrl),l=(0,n.useAppStore)(e=>e.apiBase),{sendReloadAgentConfig:u}=(0,s.useWebSocketSender)(),c=(0,t.useCallback)(()=>n.useAppStore.getState().agentId.trim()||"qihoo",[]);return(0,t.useCallback)(async(t,s)=>{let g=!!(null==s?void 0:s.silent),p=n.useAppStore.getState();try{await (0,i.saveAgentConfig)(o,l,c(),(0,i.prepareAgentConfigForSave)(p.agentConfig,{[e]:t}));let s=n.useAppStore.getState();s.wsConnected&&u(),g?(s.appendLog("agent-config","已写入 agent.json"),s.setStatus("agent.json 已保存".concat(s.wsConnected?",已请求同步 worker":"(未连接 WS 则下次连上后 reload)"),(0,a.resolveInfoStatusClass)(s.bridgeReady,s.wsConnected))):r.appToast.success(s.wsConnected?"已保存并已请求 worker 重新加载 agent.md + agent.json。":"已保存。重连 WebSocket 后生效。")}catch(e){r.appToast.error("保存失败:".concat(e instanceof Error?e.message:String(e)))}},[o,l,u,c,e])}},20090,e=>{"use strict";e.s(["clearActiveWebSocket",()=>r,"isWebSocketOpen",()=>n,"sendActiveWebSocketJson",()=>i,"setActiveWebSocket",()=>s]);let t=null;function n(e){return null!==e&&e.readyState===WebSocket.OPEN}function s(e){t=e}function r(e){t===e&&(t=null)}function i(e){let s=t;return!!n(s)&&(s.send(JSON.stringify(e)),!0)}},70074,e=>{"use strict";function t(e,t){return e?"ready":t?"pending":"idle"}e.s(["resolveInfoStatusClass",()=>t])},67327,e=>{"use strict";e.s(["useWebSocketSender",()=>r]);var t=e.i(71645),n=e.i(65934),s=e.i(20090);function r(){let e=(0,t.useCallback)(e=>{let t=(0,s.sendActiveWebSocketJson)(e);return t&&n.useAppStore.getState().appendLog("→",e),t},[]),r=(0,t.useCallback)(()=>e({type:"reloadAgentConfig"}),[e]),i=(0,t.useCallback)(t=>e({type:"restartSubprocess",reason:null!=t?t:"persist-session-overrides"}),[e]),a=(0,t.useCallback)(()=>e({type:"reloadAgentPrompt"}),[e]),o=(0,t.useCallback)((t,n)=>{let s=String(t||"").trim();return!!s&&e({type:"permission.response",requestId:s,behavior:n})},[e]);return{sendJson:e,sendReloadAgentConfig:r,sendRestartSubprocess:i,sendReloadAgentPrompt:a,sendPermissionResponse:o}}},33848,e=>{"use strict";e.s(["ownerWindow",()=>t.getWindow]);var t=e.i(29315)},62372,e=>{"use strict";e.s(["visuallyHidden",()=>n,"visuallyHiddenInput",()=>s]);let t={clipPath:"inset(50%)",overflow:"hidden",whiteSpace:"nowrap",border:0,padding:0,width:1,height:1,margin:-1},n={...t,position:"fixed",top:0,left:0},s={...t,position:"absolute"}},73577,e=>{"use strict";e.s(["useValueChanged",()=>r]);var t=e.i(71645),n=e.i(977),s=e.i(76477);function r(e,r){let i=t.useRef(e),a=(0,s.useStableCallback)(r);(0,n.useIsoLayoutEffect)(()=>{i.current!==e&&a(i.current)},[e,a]),(0,n.useIsoLayoutEffect)(()=>{i.current=e},[e])}},55227,e=>{"use strict";e.s(["deleteSession",()=>r,"listSessions",()=>s,"listWorkspaceFiles",()=>l,"loadSessionOverrides",()=>i,"loadSessionReplay",()=>a,"saveSessionOverrides",()=>o]);var t=e.i(29250),n=e.i(36845);async function s(e,s,r){return(0,t.get)((0,n.buildSessionsListUrl)(e,s,r))}async function r(e,s,r,i){return(0,t.del)((0,n.buildSessionDeleteUrl)(e,s,r,i))}async function i(e,s,r,i){return(0,t.get)((0,n.buildSessionOverridesUrl)(e,s,r,i))}async function a(e,s,r,i){let a=await (0,t.get)((0,n.buildSessionReplayUrl)(e,s,r,i));return{envelopes:Array.isArray(a.envelopes)?a.envelopes:[],messageCount:"number"==typeof a.messageCount?a.messageCount:void 0}}async function o(e,s,r,i,a){await (0,t.patch)((0,n.buildSessionOverridesUrl)(e,s,r,i),a)}async function l(e,s,r,i){return(0,t.get)((0,n.buildWorkspaceFilesListUrl)(e,s,r,i))}},82136,e=>{"use strict";e.s(["loadAgentConfig",()=>o,"prepareAgentConfigForSave",()=>a,"saveAgentConfig",()=>l]);var t=e.i(29250),n=e.i(36845),s=e.i(75675);function r(e){var t;let n={},r=null==e?void 0:e.env;if(r&&"object"==typeof r&&!Array.isArray(r))for(let[e,t]of Object.entries(r))"string"==typeof e&&e.trim()&&(n[e]=null==t?"":String(t));return{tools:Array.isArray(null==e?void 0:e.tools)?e.tools.map(String):[...s.DEFAULT_AGENT_CONFIG.tools],disallowedTools:Array.isArray(null==e?void 0:e.disallowedTools)?e.disallowedTools.map(String):[...s.DEFAULT_AGENT_CONFIG.disallowedTools],mcpServers:Array.isArray(null==e?void 0:e.mcpServers)?e.mcpServers.map(String):[...s.DEFAULT_AGENT_CONFIG.mcpServers],skills:Array.isArray(null==e?void 0:e.skills)?e.skills.map(String):[...s.DEFAULT_AGENT_CONFIG.skills],model:"string"==typeof(null==e?void 0:e.model)?e.model:s.DEFAULT_AGENT_CONFIG.model,agentTeams:Array.isArray(null==e?void 0:e.agentTeams)?e.agentTeams.map(String):[...s.DEFAULT_AGENT_CONFIG.agentTeams],rules:Array.isArray(null==e?void 0:e.rules)?e.rules.map(String):[...s.DEFAULT_AGENT_CONFIG.rules],env:n,effort:"string"==typeof(t=null==e?void 0:e.effort)||"number"==typeof t||null==t?t:s.DEFAULT_AGENT_CONFIG.effort,background:(null==e?void 0:e.background)===!0||s.DEFAULT_AGENT_CONFIG.background,isolation:(null==e?void 0:e.isolation)==="worktree"||(null==e?void 0:e.isolation)==="remote"?e.isolation:"",whentouse:"string"==typeof(null==e?void 0:e.whentouse)?e.whentouse:s.DEFAULT_AGENT_CONFIG.whentouse}}function i(e){var t,n,s,r,i,a,o;return{...e,tools:(null!=(t=e.tools)?t:[]).slice(),disallowedTools:(null!=(n=e.disallowedTools)?n:[]).slice(),mcpServers:(null!=(s=e.mcpServers)?s:[]).slice(),skills:(null!=(r=e.skills)?r:[]).slice(),agentTeams:(null!=(i=e.agentTeams)?i:[]).slice(),rules:(null!=(a=e.rules)?a:[]).slice(),env:{...null!=(o=e.env)?o:{}}}}function a(e,t){return i({...r(e),...t})}async function o(e,s,i){var a,o,l;let u=await (0,t.get)((0,n.buildAgentApiUrl)(e,s,i));return{agentType:"string"==typeof(null==(a=u.agent)?void 0:a.agentType)&&u.agent.agentType.trim()?u.agent.agentType.trim():"string"==typeof(null==(o=u.agent)?void 0:o.name)?u.agent.name.trim():"",config:r(null==(l=u.agent)?void 0:l.config)}}async function l(e,s,r,a){await (0,t.patch)((0,n.buildAgentApiUrl)(e,s,r),{config:i(a)})}},87243,e=>{"use strict";e.s(["useSession",()=>l]);var t=e.i(71645),n=e.i(29250),s=e.i(68499),r=e.i(13354),i=e.i(65934),a=e.i(82136),o=e.i(55227);function l(){let e=(0,i.useAppStore)(e=>e.wsUrl),l=(0,i.useAppStore)(e=>e.apiBase),u=(0,i.useAppStore)(e=>e.agentId),c=(0,t.useCallback)(async t=>{let n=i.useAppStore.getState(),s=n.agentId.trim()||"qihoo";n.setSessionsMeta("加载中…");try{let u=await (0,o.listSessions)(e,l,s),c=u.sessions||[],g=null!=u.agent?String(u.agent):s;if(n.setBrandAgent(g),n.setLastSessions(c,"".concat(c.length,"个会话 · agent: ").concat(g)),(null==t?void 0:t.activateFirstIfEmpty)&&!i.useAppStore.getState().sessionId.trim()&&c.length>0){var r,a;let e=null==(a=c[0])||null==(r=a.sessionId)?void 0:r.trim();e&&i.useAppStore.getState().selectSession(e,"history")}}catch(e){n.resetSessions("加载失败: ".concat(e)),n.appendLog("sessions",String(e))}},[e,l]),g=(0,t.useCallback)(async()=>{let t=i.useAppStore.getState(),s=t.agentId.trim()||"qihoo";try{let n=await (0,a.loadAgentConfig)(e,l,s);t.setAgentConfig(n.config)}catch(e){t.resetAgentConfig(),t.appendLog("agent-config","load failed ".concat(e instanceof n.ApiError?e.message:String(e)))}},[e,l]),p=(0,t.useCallback)(async t=>{if(!t||!await (0,s.confirmAlertDialog)({title:"确认删除会话?",description:"确认删除此会话,删除之后将不可恢复。",confirmText:"删除",cancelText:"取消"}))return!1;let a=i.useAppStore.getState().sessionId.trim()===t,g=u.trim()||"qihoo";try{let n=await (0,o.deleteSession)(e,l,g,t);if(i.useAppStore.getState().appendLog("sessions-delete",n),a){let e=i.useAppStore.getState();e.startDraftSession(),e.resetChat(),e.clearLog()}return await c(),a}catch(e){return e instanceof n.ApiError?(i.useAppStore.getState().appendLog("sessions-delete",{error:!0,status:e.status,body:e.body}),r.appToast.error("删除失败: ".concat(e.message))):(i.useAppStore.getState().appendLog("sessions-delete",String(e)),r.appToast.error("删除请求失败: ".concat(e))),!1}},[e,l,u,c]);return{loadSessions:c,loadAgentConfig:g,deleteSessionById:p,currentAgent:(0,t.useCallback)(()=>i.useAppStore.getState().agentId.trim()||"qihoo",[])}}},87968,e=>{"use strict";e.s(["Spinner",()=>r]);var t=e.i(18050),n=e.i(72064),s=e.i(75157);function r(e){let{className:r}=e;return(0,t.jsx)(n.default,{name:"Loader2",size:16,className:(0,s.cn)("animate-spin text-muted-foreground",r)})}},92413,e=>{"use strict";function t(e){return(e.summary||e.firstPrompt||e.sessionId||"(无标题)").slice(0,120)}function n(e){let t=new Map;for(let n of e){let e=function(e){let t=new Date(e.lastModified||e.createdAt||0);if(!Number.isFinite(t.getTime()))return"未知日期";let n=t.getFullYear(),s=String(t.getMonth()+1).padStart(2,"0");return"".concat(n,"-").concat(s)}(n),s=t.get(e);s?s.push(n):t.set(e,[n])}return[...t.keys()].sort((e,t)=>t.localeCompare(e)).map(e=>{var n;return{key:e,items:null!=(n=t.get(e))?n:[]}})}function s(e){let t=e.split("-"),n=t[0]&&/^[0-9a-fA-F]{8}$/.test(t[0])?t[0]:e.slice(0,8);return"".concat(n,"...")}function r(e){return String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}e.s(["escapeHtml",()=>r,"groupSessionsByMonth",()=>n,"sessionTitle",()=>t,"shortUuidTitle",()=>s])},8279,e=>{"use strict";e.s(["avatarBgForLabel",()=>s,"initialsFromLabel",()=>n]);let t=["#9A3B32","#1db887","#4da3ff","#8b5cf6","#e84855","#f5c518"];function n(e){let t=e.trim();if(!t)return"?";let n=t.split(/\s+/).filter(Boolean);if(n.length>=2){var s,r;let e=null==(s=n[0])?void 0:s.slice(0,1),t=null==(r=n[1])?void 0:r.slice(0,1);if(e&&t)return"".concat(e).concat(t).toUpperCase()}return t.slice(0,2).toUpperCase()}function s(e){var n;let s=String(e||"?"),r=0;for(let e=0;e<s.length;e++)r=(r+17*s.charCodeAt(e))%t.length;return null!=(n=t[r])?n:t[0]}},52727,e=>{"use strict";e.s(["addTeamMember",()=>m,"createAgent",()=>p,"deleteAgentItem",()=>S,"getAgentDetail",()=>g,"listAgents",()=>l,"listAgentsForManage",()=>u,"removeTeamMember",()=>A,"updateAgent",()=>d]);var t=e.i(29250),n=e.i(36845);function s(e){let t=null!=e.id?String(e.id).trim():"";if(!t)return null;let n="string"==typeof e.displayName&&e.displayName.trim()?e.displayName.trim():t;return{id:t,displayName:n}}function r(e){if("string"==typeof e.whentouse)return e.whentouse;let t=e.config;if(t&&"object"==typeof t&&!Array.isArray(t)){let e=t.whentouse;if("string"==typeof e)return e}return""}function i(e){let t=e.agentTeamMembers;if(!Array.isArray(t))return[];let n=[];for(let e of t){if(!e||"object"!=typeof e)continue;let t=null!=e.agentType?String(e.agentType).trim():"";t&&n.push({agentType:t,whentouse:"string"==typeof e.whentouse?e.whentouse:""})}return n}function a(e){let t=s(e);return t?{...t,whentouse:r(e),agentTeamMembers:i(e)}:null}function o(e,t){let n=e&&"object"==typeof e?e:{},s=n.env&&"object"==typeof n.env&&!Array.isArray(n.env)?Object.fromEntries(Object.entries(n.env).map(e=>{let[t,n]=e;return[t,null==n?"":String(n)]})):{},r={tools:Array.isArray(n.tools)?n.tools.map(String):[],disallowedTools:Array.isArray(n.disallowedTools)?n.disallowedTools.map(String):[],mcpServers:Array.isArray(n.mcpServers)?n.mcpServers.map(String):[],skills:Array.isArray(n.skills)?n.skills.map(String):[],agentTeams:Array.isArray(n.agentTeams)?n.agentTeams.map(String):[],rules:Array.isArray(n.rules)?n.rules.map(String):[],model:"string"==typeof n.model?n.model:"",background:!0===n.background,isolation:"string"==typeof n.isolation?n.isolation:"",whentouse:"string"==typeof t?t:"",env:s,effort:null};return("string"==typeof n.effort||"number"==typeof n.effort)&&(r.effort=n.effort),r}async function l(e,t){return(await c(e,t)).map(s).filter(e=>null!=e)}async function u(e,t){return(await c(e,t)).map(a).filter(e=>null!=e)}async function c(e,s){let r=(await (0,t.get)((0,n.buildAgentsListUrl)(e,s))).agents;return Array.isArray(r)?r.filter(e=>null!=e&&"object"==typeof e):[]}async function g(e,s,i){let a=i.trim(),o=(await (0,t.get)((0,n.buildAgentItemUrl)(e,s,a))).agent,l=o&&"string"==typeof o.prompt?o.prompt:"",u=(null==o?void 0:o.config)&&"object"==typeof o.config?o.config:null;return{id:a,prompt:l,whentouse:r({whentouse:null==o?void 0:o.whentouse,config:null==o?void 0:o.config}),config:u}}async function p(e,s,r){let i=r.id.trim();await (0,t.post)((0,n.buildAgentsListUrl)(e,s),{name:i,prompt:r.prompt});let a=await g(e,s,i);return await (0,t.patch)((0,n.buildAgentItemUrl)(e,s,i),{config:o(a.config,r.whentouse)}),i}async function d(e,s,r){let i=r.id.trim();if(!i)throw Error("缺少 agent id");return await (0,t.patch)((0,n.buildAgentItemUrl)(e,s,i),{prompt:r.prompt,config:o(r.baseConfig,r.whentouse)}),i}function f(e){return e&&"object"==typeof e?i(e):[]}async function m(e,s,r,i){let a=r.trim(),o=i.trim();if(!a)throw Error("缺少 leader id");if(!o)throw Error("缺少 agentType");return f((await (0,t.post)((0,n.buildAgentTeamMembersUrl)(e,s,a),{agentType:o})).agent)}async function A(e,s,r,i){let a=r.trim(),o=i.trim();if(!a)throw Error("缺少 leader id");if(!o)throw Error("缺少 agentType");return f((await (0,t.del)((0,n.buildAgentTeamMemberUrl)(e,s,a,o))).agent)}async function S(e,s,r){let i=r.trim();if(!i)throw Error("缺少 agent id");try{await (0,t.del)((0,n.buildAgentItemUrl)(e,s,i))}catch(r){if(r instanceof t.ApiError&&400===r.status&&String(r.message).includes("missing required query parameter: agent"))return void await (0,t.del)((0,n.buildAgentApiUrl)(e,s,i));throw r}}},94065,e=>{e.v(t=>Promise.all(["static/chunks/a256978ef9393e3e.js","static/chunks/bdd88bcfd223f52a.js","static/chunks/d55f4f3df263ad3d.js","static/chunks/e42498eec0c8d570.js","static/chunks/cd4556cbed1f8957.js","static/chunks/6e61f670898cb297.css"].map(t=>e.l(t))).then(()=>t(20291)))},72234,e=>{e.v(t=>Promise.all(["static/chunks/bdd88bcfd223f52a.js","static/chunks/c242e5c1d3639838.js"].map(t=>e.l(t))).then(()=>t(37991)))},58332,e=>{e.v(t=>Promise.all(["static/chunks/789aab39327312c3.js","static/chunks/bdd88bcfd223f52a.js"].map(t=>e.l(t))).then(()=>t(19573)))},48583,e=>{e.v(t=>Promise.all(["static/chunks/bdd88bcfd223f52a.js","static/chunks/257d36fba79aa4ab.js"].map(t=>e.l(t))).then(()=>t(39721)))},2578,e=>{e.v(t=>Promise.all(["static/chunks/1f3da8a76b11d2aa.js","static/chunks/cd4556cbed1f8957.js","static/chunks/6ddf95b168bfbc36.js"].map(t=>e.l(t))).then(()=>t(31862)))},1861,e=>{e.v(t=>Promise.all(["static/chunks/ec7537a65499e7a4.js","static/chunks/e42498eec0c8d570.js"].map(t=>e.l(t))).then(()=>t(62849)))}]);
@@ -1,2 +0,0 @@
1
- <!DOCTYPE html><!--6_8Ppg2OmCO0VcGqmqnxR--><html lang="zh-CN" class="sora_a6e0e515-module__NbNjtG__variable dm_sans_fa25cdfd-module__fB5nTW__variable jetbrains_mono_2b1eae20-module__XfFTLG__variable font-sans"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/app/_next/static/media/5c285b27cdda1fe8-s.p.a62025f2.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/app/_next/static/media/70bc3e132a0a741e-s.p.15008bfb.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/app/_next/static/media/c41ca59f1c34ba31-s.p.e20f337c.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/app/_next/static/chunks/7bdf0e5b41aeb209.css" data-precedence="next"/><link rel="stylesheet" href="/app/_next/static/chunks/886a31720c72a306.css" data-precedence="next"/><link rel="stylesheet" href="/app/_next/static/chunks/0a4ab823884025be.css" data-precedence="next"/><link rel="stylesheet" href="/app/_next/static/chunks/6e61f670898cb297.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/app/_next/static/chunks/9ccf7a8bca1730bf.js"/><script src="/app/_next/static/chunks/522518d740397639.js" async=""></script><script src="/app/_next/static/chunks/40268f8e3ff0314e.js" async=""></script><script src="/app/_next/static/chunks/32b4d63e10d31351.js" async=""></script><script src="/app/_next/static/chunks/66b30159915524db.js" async=""></script><script src="/app/_next/static/chunks/turbopack-63952675b1d69124.js" async=""></script><script src="/app/_next/static/chunks/bf2c1c402dbcccdf.js" async=""></script><script src="/app/_next/static/chunks/61b3d4c00499dd14.js" async=""></script><script src="/app/_next/static/chunks/7988d5ea63356e10.js" async=""></script><script src="/app/_next/static/chunks/d77e4439761aa20d.js" async=""></script><script src="/app/_next/static/chunks/b7f72bcb870dda3b.js" async=""></script><script src="/app/_next/static/chunks/5bad5163b6e015f5.js" async=""></script><script src="/app/_next/static/chunks/8085c74f26fa2c4e.js" async=""></script><script src="/app/_next/static/chunks/652e486c20710ca8.js" async=""></script><script src="/app/_next/static/chunks/2b18c967f27dd561.js" async=""></script><script src="/app/_next/static/chunks/bdd88bcfd223f52a.js" async=""></script><script src="/app/_next/static/chunks/6ddf95b168bfbc36.js" async=""></script><script src="/app/_next/static/chunks/7def01c245e03b59.js" async=""></script><script src="/app/_next/static/chunks/e42498eec0c8d570.js" async=""></script><script src="/app/_next/static/chunks/cd4556cbed1f8957.js" async=""></script><script src="/app/_next/static/chunks/d55f4f3df263ad3d.js" async=""></script><meta name="next-size-adjust" content=""/><title>Claude Code测试平台</title><meta name="description" content="Claude Code测试平台"/><script src="/app/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><section aria-label="Notifications alt+T" tabindex="-1" aria-live="polite" aria-relevant="additions text" aria-atomic="false"></section><!--$?--><template id="B:0"></template><div class="flex min-h-[40vh] flex-1 items-center justify-center gap-2 text-zinc-500"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-loader-circle animate-spin text-muted-foreground" aria-hidden="true"><path d="M21 12a9 9 0 1 1-6.219-8.56"></path></svg> 加载中</div><!--/$--><script>requestAnimationFrame(function(){$RT=performance.now()});</script><script src="/app/_next/static/chunks/9ccf7a8bca1730bf.js" id="_R_" async=""></script><div hidden id="S:0"><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$--><div class="ws-config-hidden" aria-hidden="true"><input readOnly="" hidden="" value=""/><input readOnly="" hidden="" value=""/><input readOnly="" hidden="" value=""/><input readOnly="" hidden="" value="qihoo"/></div><div class="app" data-ui-layer="presentation" data-topology="local-first"><aside class="sidebar " data-region="sidebar-panels"><div class="sidebar-brand"><div class="sidebar-brand-title-row flex items-center justify-between"><div class="logo flex min-w-0 items-center gap-2"><span class="truncate text-zinc-900">Claude Code测试平台</span></div><span data-slot="tooltip" class="inline-flex"><button type="button" class="sidebar-icon-btn" title="收起侧边栏" aria-label="收起侧边栏"><svg xmlns="http://www.w3.org/2000/svg" width="17" height="17" viewBox="0 0 1024 1024" color="#8f8f8f" fill="#8f8f8f" aria-hidden="true"><path d="M331.05 85.333h361.9c34.346 0 62.72 0 85.76 1.878 24.02 1.962 46.08 6.186 66.773 16.725a170.67 170.67 0 0 1 74.581 74.581c10.539 20.694 14.763 42.752 16.725 66.731 1.878 23.125 1.878 51.456 1.878 85.76v361.941c0 34.347 0 62.72-1.878 85.76-1.962 24.022-6.186 46.08-16.725 66.774a170.67 170.67 0 0 1-74.581 74.581c-20.694 10.539-42.752 14.763-66.731 16.725-23.083 1.878-51.456 1.878-85.76 1.878H331.008c-34.347 0-62.72 0-85.76-1.878-24.021-1.962-46.08-6.186-66.773-16.725a170.67 170.67 0 0 1-74.582-74.581c-10.538-20.694-14.762-42.752-16.725-66.731-1.835-23.125-1.835-51.456-1.835-85.76V331.008c0-34.347 0-62.72 1.878-85.76 1.962-24.021 6.186-46.08 16.725-66.773a170.67 170.67 0 0 1 74.581-74.582c20.694-10.538 42.752-14.762 66.731-16.725 23.125-1.835 51.456-1.835 85.76-1.835zm95.617 768H691.2c36.565 0 61.397 0 80.597-1.621 18.688-1.493 28.288-4.267 34.944-7.68a85.33 85.33 0 0 0 37.291-37.29c3.413-6.657 6.187-16.214 7.68-34.945 1.579-19.2 1.621-44.032 1.621-80.597V332.8c0-36.565 0-61.397-1.621-80.597-1.493-18.688-4.267-28.288-7.68-34.944a85.33 85.33 0 0 0-37.29-37.291c-6.657-3.413-16.214-6.187-34.945-7.68-19.2-1.621-44.032-1.621-80.597-1.621H426.667zm-85.334-682.666H332.8c-36.565 0-61.397 0-80.597 1.621-18.688 1.493-28.288 4.267-34.944 7.68a85.33 85.33 0 0 0-37.291 37.29c-3.413 6.657-6.187 16.214-7.68 34.945-1.621 19.2-1.621 44.032-1.621 80.597v358.4c0 36.565 0 61.397 1.621 80.597 1.493 18.688 4.267 28.288 7.68 34.944a85.33 85.33 0 0 0 37.29 37.291c6.657 3.413 16.214 6.187 34.945 7.68 19.2 1.621 44.032 1.621 80.597 1.621h8.533z"></path></svg></button></span></div></div><div class="new-chat"><div class="mb-4 ml-2 mr-2 mt-2 flex cursor-pointer items-center gap-2.5 rounded-2xl px-2 py-2 text-zinc-700 transition-colors hover:bg-white/70" title="开启新对话" aria-label="开启新对话"><span class="flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-[var(--ds-item-active)] text-[var(--ds-accent)]" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M12 5v14M5 12h14"></path></svg></span><span class="min-w-0 font-medium">新会话</span></div></div><div class="sidebar-drawers px-[10px]"><div class="m-[.45rem_0_0] flex cursor-pointer items-center rounded-[var(--ds-radius-sm)] p-[.45rem_.75rem] hover:bg-[var(--ds-item-active)] hover:text-zinc-900" role="button" tabindex="0"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" class="mr-3 text-zinc-700" viewBox="0 0 1024 1024" color="currentColor" fill="currentColor" aria-hidden="true"><path d="m259.413 120.036-149.22 106.666-49.606-69.404L209.92 50.63l49.607 69.405zM814.08 50.63l149.39 106.667-49.607 69.404-149.276-106.666 49.607-69.405zM78.28 554.667a433.778 433.778 0 1 1 867.555 0 433.778 433.778 0 0 1-867.556 0M512 206.222a348.444 348.444 0 1 0 0 696.89 348.444 348.444 0 0 0 0-696.89m-47.787 356.125V327.623h85.334v217.145l153.258 153.316-60.302 60.302-165.831-165.774a42.67 42.67 0 0 1-12.516-30.152z"></path></svg><span class="text-zinc-900">定时任务</span></div><div class="m-[.45rem_0_0] flex cursor-pointer items-center rounded-[var(--ds-radius-sm)] p-[.45rem_.75rem] bg-[var(--ds-item-active)] text-[var(--ds-accent)]" role="button" tabindex="0" aria-current="page"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" class="mr-3 text-zinc-700" viewBox="0 0 1024 1024" color="currentColor" fill="currentColor" aria-hidden="true"><path d="M424.64 115.392A170.432 170.432 0 0 1 714.304 254.4a166.464 166.464 0 0 1 137.728 282.752l-307.84 307.712 94.912 94.848a36.736 36.736 0 0 1-51.712 51.84L466.624 870.784a36.544 36.544 0 0 1 0-51.712l333.568-333.568a93.312 93.312 0 0 0-131.648-132.096l-3.008 2.88v.128L428.352 592.96a36.544 36.544 0 0 1-56.064-5.44c-.576-.768-.96-1.664-1.472-2.432a36.3 36.3 0 0 1-4.352-23.68l.32-1.92a36.4 36.4 0 0 1 5.12-12.608l4.8-5.76 236.992-236.416 6.72-7.488A97.28 97.28 0 0 0 476.288 167.04L136.576 507.008a36.544 36.544 0 0 1-51.712-51.712l339.84-339.84zm94.912 94.4a36.544 36.544 0 0 1 51.008 52.352L329.024 497.856a98.368 98.368 0 1 0 138.624 139.52l240.64-243.584a36.672 36.672 0 0 1 52.096 51.328l-240.64 243.584A171.584 171.584 0 1 1 277.952 445.44z"></path></svg><span class="text-zinc-900">MCP</span></div><div class="m-[.45rem_0_0] flex cursor-pointer items-center rounded-[var(--ds-radius-sm)] p-[.45rem_.75rem] hover:bg-[var(--ds-item-active)] hover:text-zinc-900" role="button" tabindex="0"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" class="mr-3 text-zinc-700" viewBox="0 0 1024 1024" color="currentColor" fill="currentColor" aria-hidden="true"><path d="M938.667 981.333H85.333C38.4 981.333 0 942.933 0 896V298.667c0-46.934 38.4-85.334 85.333-85.334h192V128c0-46.933 38.4-85.333 85.334-85.333h298.666c46.934 0 85.334 38.4 85.334 85.333v85.333h192c46.933 0 85.333 38.4 85.333 85.334V896c0 46.933-38.4 85.333-85.333 85.333m-277.334-832c0-12.8-8.533-21.333-21.333-21.333H384c-12.8 0-21.333 8.533-21.333 21.333v64h298.666zM938.667 320c0-12.8-8.534-21.333-21.334-21.333H106.667c-12.8 0-21.334 8.533-21.334 21.333v128h213.334c17.066 0 32 10.667 38.4 23.467L388.267 576H633.6l51.2-104.533C691.2 456.533 706.133 448 723.2 448h213.333V320zm0 213.333H750.933l-51.2 104.534c-6.4 14.933-21.333 23.466-38.4 23.466H362.667c-17.067 0-32-10.666-38.4-23.466l-51.2-104.534H85.333v341.334c0 12.8 8.534 21.333 21.334 21.333h810.666c12.8 0 21.334-8.533 21.334-21.333z"></path></svg><span class="text-zinc-900">Tools</span></div><div class="m-[.45rem_0_0] flex cursor-pointer items-center rounded-[var(--ds-radius-sm)] p-[.45rem_.75rem] hover:bg-[var(--ds-item-active)] hover:text-zinc-900" role="button" tabindex="0"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" class="mr-3 text-zinc-700" viewBox="0 0 1088 1024" color="currentColor" fill="currentColor" aria-hidden="true"><path d="M370.24 127.232c16.384-44.736 79.68-44.672 96.128 0L556.8 373.504l246.208 90.432c44.8 16.384 44.8 79.68 0 96.128L556.8 650.496 466.368 896.64c-16.448 44.8-79.744 44.8-96.128 0l-90.432-246.208L33.536 560c-44.736-16.448-44.736-79.744 0-96.128l246.272-90.432 90.432-246.272zm-22.464 283.84a51.2 51.2 0 0 1-30.4 30.4L125.44 512l192 70.528a51.2 51.2 0 0 1 28.16 25.28l2.24 5.12 70.528 191.936 70.528-192 2.176-5.12a51.2 51.2 0 0 1 28.16-25.216l192-70.528-192-70.528a51.2 51.2 0 0 1-30.336-30.4l-70.528-192-70.528 192zM756.608 32.64a12.8 12.8 0 0 1 24 0l29.44 80a12.8 12.8 0 0 0 7.552 7.68l80 29.376a12.8 12.8 0 0 1 0 24l-80 29.44a12.8 12.8 0 0 0-7.616 7.552l-29.376 80a12.8 12.8 0 0 1-24 0l-29.44-80a12.8 12.8 0 0 0-7.552-7.616l-80-29.376a12.8 12.8 0 0 1 0-24l80-29.44a12.8 12.8 0 0 0 7.616-7.552l29.376-80zm0 700.672a12.8 12.8 0 0 1 24 0l29.44 80a12.8 12.8 0 0 0 7.552 7.616l80 29.376a12.8 12.8 0 0 1 0 24l-80 29.44a12.8 12.8 0 0 0-7.616 7.552l-29.376 80a12.8 12.8 0 0 1-24 0l-29.44-80a12.8 12.8 0 0 0-7.552-7.552l-80-29.44a12.8 12.8 0 0 1 0-24l80-29.44a12.8 12.8 0 0 0 7.616-7.552z"></path></svg><span class="text-zinc-900">Skills</span></div><div class="m-[.45rem_0_0] flex cursor-pointer items-center rounded-[var(--ds-radius-sm)] p-[.45rem_.75rem] hover:bg-[var(--ds-item-active)] hover:text-zinc-900" role="button" tabindex="0"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" class="mr-3 text-zinc-700" viewBox="0 0 1103 1024" color="currentColor" fill="currentColor" aria-hidden="true"><path d="M995.146 703.015a136.665 136.665 0 0 0-159.035 15.754L770.89 680.96V494.277a54.11 54.11 0 0 0-27.097-46.868L576.41 350.996v-82.55a137.846 137.846 0 1 0-88.616 0v82.55L320.41 447.409a54.11 54.11 0 0 0-27.097 46.868V680.88l-65.22 37.81a136.665 136.665 0 0 0-158.957-15.754 138.08 138.08 0 0 0-50.491 188.18 136.82 136.82 0 0 0 187.313 50.412 137.85 137.85 0 0 0 66.009-146.196l59.864-34.816 173.056 99.643a54.51 54.51 0 0 0 54.194 0l172.898-99.564 59.943 34.816a138.08 138.08 0 0 0 66.009 146.274 136.743 136.743 0 0 0 187.313-50.412 138.004 138.004 0 0 0-50.097-188.259m-828.337 170.3a58.604 58.604 0 0 1-80.266-21.583 59.077 59.077 0 0 1 21.583-80.66 58.604 58.604 0 0 1 80.266 21.662 59.077 59.077 0 0 1-21.583 80.66zm306.097-735.469a59.077 59.077 0 1 1 118.154 0 59.077 59.077 0 0 1-118.154 0m209.211 549.18-150.134 86.488-150.134-86.489v-172.82l150.134-86.488 150.134 86.489zM977.423 851.81a58.683 58.683 0 0 1-80.266 21.662 59.156 59.156 0 0 1-21.504-80.58 58.683 58.683 0 0 1 80.187-21.662 59.077 59.077 0 0 1 21.583 80.58"></path></svg><span class="text-zinc-900">Agent / Teams</span></div></div><div class="sidebar-drawers"><div class="sidebar-drawer m-[.35rem_.35rem_0] mt-4"><button type="button" class="flex w-full cursor-pointer items-center !border-none !bg-transparent p-[.45rem_.75rem] text-left text-[12px] font-[600] text-zinc-400 hover:text-zinc-600 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ds-accent)] focus-visible:ring-offset-2" aria-expanded="true" aria-controls="sessionList" aria-label="收起历史会话列表">历史会话<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down ml-1 shrink-0 text-[var(--ds-muted)]" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><div class="sidebar-drawer-body sidebar-drawer-body--sessions"><div id="sessionList"><p class="sidebar-drawer-empty">(暂无会话)</p></div></div></div></div><div class="shrink-0 border-t border-solid border-[var(--ds-border)] transition flex items-center gap-2 p-[1rem_.75rem]"><div class="relative min-w-0 flex-1"><div class="flex min-w-0 cursor-pointer items-center gap-2 rounded-lg px-0.5 py-0.5"><span class="inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-full text-xs font-semibold text-white" style="background:var(--avatar-bg)">QI</span><span class="min-w-0 truncate text-[var(--ds-text)]">qihoo</span></div></div><span data-slot="tooltip" class="inline-flex"><button type="button" tabindex="0" data-slot="button" data-size="icon-sm" aria-label="设置" class="group/button inline-flex shrink-0 items-center justify-center cursor-pointer !pl-[16px] !pr-[16px] [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg]:align-middle [&amp;_svg:not([class*=&#x27;size-&#x27;]):not([width])]:size-4 [&amp;_svg]:stroke-current [&amp;_svg[fill=none]_path]:fill-none [&amp;_svg:not([fill=none])_path]:fill-current bg-transparent border-0 size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg text-[var(--ds-muted)] hover:bg-[var(--ds-item-hover)] focus-visible:ring-2 focus-visible:ring-[var(--ds-accent)]"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings shrink-0" aria-hidden="true"><path d="M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"></path><circle cx="12" cy="12" r="3"></circle></svg></button></span></div></aside><main class="main overflow-x-auto manage-main" data-region="manage-shell"><div class="main-content"><!--$--><!--$?--><template id="B:1"></template><!--/$--><!--$--><!--/$--><!--/$--></div></main><aside class="stage-thread-flyout" data-region="stage-thread-flyout" aria-hidden="true" style="--stage-flyout-width:760px"></aside></div></div><script>$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};
2
- $RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div hidden id="S:1"><div class="manage-page-wrap flex min-h-0 flex-1 flex-col"><div class="manage-page-header flex shrink-0 items-start justify-between gap-[var(--space-4)] pb-[var(--space-4)]"><div class="manage-page-title-block flex items-center"><div class="mr-[16px] rounded-md bg-[var(--green-light)] px-4 py-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" class="text-[var(--green-dark)]" viewBox="0 0 1024 1024" color="currentColor" fill="currentColor" aria-hidden="true"><path d="M424.64 115.392A170.432 170.432 0 0 1 714.304 254.4a166.464 166.464 0 0 1 137.728 282.752l-307.84 307.712 94.912 94.848a36.736 36.736 0 0 1-51.712 51.84L466.624 870.784a36.544 36.544 0 0 1 0-51.712l333.568-333.568a93.312 93.312 0 0 0-131.648-132.096l-3.008 2.88v.128L428.352 592.96a36.544 36.544 0 0 1-56.064-5.44c-.576-.768-.96-1.664-1.472-2.432a36.3 36.3 0 0 1-4.352-23.68l.32-1.92a36.4 36.4 0 0 1 5.12-12.608l4.8-5.76 236.992-236.416 6.72-7.488A97.28 97.28 0 0 0 476.288 167.04L136.576 507.008a36.544 36.544 0 0 1-51.712-51.712l339.84-339.84zm94.912 94.4a36.544 36.544 0 0 1 51.008 52.352L329.024 497.856a98.368 98.368 0 1 0 138.624 139.52l240.64-243.584a36.672 36.672 0 0 1 52.096 51.328l-240.64 243.584A171.584 171.584 0 1 1 277.952 445.44z"></path></svg></div><div class="pt-2"><h1 class="manage-page-title">MCP管理</h1><p class="manage-page-desc">管理外部工具与数据源。可以导入、编辑、移除或禁用 MCP 服务。</p></div></div><div class="manage-page-header-actions self-start"></div></div><div class="manage-page-body flex min-h-0 min-w-0 flex-1 flex-col"><!--$--><div data-orientation="horizontal" data-activation-direction="none" data-slot="tabs" class="group/tabs flex min-h-0 min-w-0 flex-1 flex-col"><div data-orientation="horizontal" data-activation-direction="none" role="tablist" data-slot="tabs-list" data-variant="line" class="group/tabs-list inline-flex items-center h-11" style="border-bottom:1px solid var(--border-hover)"><button type="button" data-active="" data-orientation="horizontal" aria-disabled="false" tabindex="-1" role="tab" aria-selected="true" id="base-ui-_R_al5fiv5tebtb_" data-composite-item-active="" data-slot="tabs-trigger" class="transition-colors cursor-pointer disabled:pointer-events-none disabled:opacity-50 group-data-[variant=default]/tabs-list:h-8 relative inline-flex pb-[1px] items-center justify-center gap-1.5 h-[calc(100%-2px)] bg-transparent border-0 mr-4 text-[var(--ds-muted)] mb-[-2px] hover:text-[var(--ds-text)] data-[active]:text-[var(--ds-accent)] data-[active]:font-medium data-[active]:after:absolute data-[active]:after:bottom-[-1px] data-[active]:after:left-0 data-[active]:after:right-0 data-[active]:after:h-[2px] data-[active]:after:bg-[var(--ds-accent)] data-[active]:after:content-[&quot;&quot;] group-data-[variant=pill]/tabs-list:h-9 group-data-[variant=pill]/tabs-list:px-5 group-data-[variant=pill]/tabs-list:mr-0 group-data-[variant=pill]/tabs-list:mb-0 group-data-[variant=pill]/tabs-list:pb-0 group-data-[variant=pill]/tabs-list:rounded-full group-data-[variant=pill]/ group-data-[variant=pill]/tabs-list:font-semibold group-data-[variant=pill]/tabs-list:text-[#828282] group-data-[variant=pill]/tabs-list:data-[active]:bg-[#fff] group-data-[variant=pill]/tabs-list:data-[active]:text-[#333333] group-data-[variant=pill]/tabs-list:data-[active]:font-bold group-data-[variant=pill]/tabs-list:data-[active]:shadow-[0_2px_10px_rgba(15,23,42,0.08)] group-data-[variant=pill]/tabs-list:data-[active]:after:[content:none]">本地MCP</button><button type="button" data-orientation="horizontal" aria-disabled="false" tabindex="-1" role="tab" aria-selected="false" id="base-ui-_R_il5fiv5tebtb_" data-slot="tabs-trigger" class="transition-colors cursor-pointer disabled:pointer-events-none disabled:opacity-50 group-data-[variant=default]/tabs-list:h-8 relative inline-flex pb-[1px] items-center justify-center gap-1.5 h-[calc(100%-2px)] bg-transparent border-0 mr-4 text-[var(--ds-muted)] mb-[-2px] hover:text-[var(--ds-text)] data-[active]:text-[var(--ds-accent)] data-[active]:font-medium data-[active]:after:absolute data-[active]:after:bottom-[-1px] data-[active]:after:left-0 data-[active]:after:right-0 data-[active]:after:h-[2px] data-[active]:after:bg-[var(--ds-accent)] data-[active]:after:content-[&quot;&quot;] group-data-[variant=pill]/tabs-list:h-9 group-data-[variant=pill]/tabs-list:px-5 group-data-[variant=pill]/tabs-list:mr-0 group-data-[variant=pill]/tabs-list:mb-0 group-data-[variant=pill]/tabs-list:pb-0 group-data-[variant=pill]/tabs-list:rounded-full group-data-[variant=pill]/ group-data-[variant=pill]/tabs-list:font-semibold group-data-[variant=pill]/tabs-list:text-[#828282] group-data-[variant=pill]/tabs-list:data-[active]:bg-[#fff] group-data-[variant=pill]/tabs-list:data-[active]:text-[#333333] group-data-[variant=pill]/tabs-list:data-[active]:font-bold group-data-[variant=pill]/tabs-list:data-[active]:shadow-[0_2px_10px_rgba(15,23,42,0.08)] group-data-[variant=pill]/tabs-list:data-[active]:after:[content:none]">远程MCP</button></div><div class="min-h-0 min-w-0 flex-1"><div data-orientation="horizontal" data-activation-direction="none" id="base-ui-_R_cl5fiv5tebtb_" role="tabpanel" tabindex="0" data-index="-1" data-slot="tabs-content" class="min-h-0 min-w-0 outline-none mt-4"><div class="flex min-h-0 flex-1 flex-col gap-3"><div class="min-h-0"><div class="overflow-hidden border border-[var(--ds-border)]"><div class="relative w-full overflow-auto"><table class="w-full caption-bottom border-collapse"><thead class="[&amp;_tr]:table [&amp;_tr]:w-full [&amp;_tr]:table-fixed [&amp;_tr]:border-b"><tr class="border-b transition-colors [&amp;&gt;td]:transition-colors data-[state=selected]:[&amp;&gt;td]:!bg-[var(--ds-item-active)] group/table-row bg-[var(--ds-main-tint)] hover:bg-[var(--ds-main-tint)]"><th class="h-10 border-b border-[var(--border-subtle)] bg-[var(--surface-2)] px-3 text-left align-middle text-[14px] font-medium !text-[var(--ds-text)] text-[var(--ds-muted)]">名称</th><th class="h-10 border-b border-[var(--border-subtle)] bg-[var(--surface-2)] px-3 text-left align-middle text-[14px] font-medium !text-[var(--ds-text)] text-[var(--ds-muted)]">详情</th><th class="h-10 border-b border-[var(--border-subtle)] bg-[var(--surface-2)] px-3 align-middle text-[14px] font-medium !text-[var(--ds-text)] w-[112px] text-right text-[var(--ds-muted)]">启用/未启用</th><th class="h-10 border-b border-[var(--border-subtle)] bg-[var(--surface-2)] px-3 text-left align-middle text-[14px] font-medium !text-[var(--ds-text)] w-[168px] text-[var(--ds-muted)]">操作</th></tr></thead><tbody class="block overflow-y-auto [&amp;_tr:last-child]:border-b-0 [&amp;_tr:last-child_td]:border-b-0 [&amp;_tr]:table [&amp;_tr]:w-full [&amp;_tr]:table-fixed"><tr class="border-b transition-colors [&amp;&gt;td]:transition-colors data-[state=selected]:[&amp;&gt;td]:!bg-[var(--ds-item-active)]"><td class="border-x-0 border-b border-t-0 border-solid border-[var(--border-subtle)] p-3 align-middle transition-colors group-has-[td:hover]/table-row:!bg-[var(--ds-item-hover)] py-6" colSpan="4"><div class="flex min-h-[180px] w-full flex-col items-center justify-center gap-2 py-4 text-[var(--ds-muted)]" role="status" aria-live="polite"><span class="block shrink-0" style="width:180px"><img alt="暂无数据" draggable="false" loading="lazy" width="973" height="482" decoding="async" data-nimg="1" class="h-auto w-full object-contain" style="color:transparent" src="/app/_next/static/media/no-data.48c973b9.png"/></span><span>暂无数据</span></div></td></tr></tbody></table></div></div></div></div></div></div></div><!--/$--></div></div></div><script>$RC("B:1","S:1")</script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[13354,[\"/app/_next/static/chunks/bf2c1c402dbcccdf.js\",\"/app/_next/static/chunks/61b3d4c00499dd14.js\",\"/app/_next/static/chunks/7988d5ea63356e10.js\"],\"AppToaster\"]\n3:I[39756,[\"/app/_next/static/chunks/bf2c1c402dbcccdf.js\",\"/app/_next/static/chunks/61b3d4c00499dd14.js\",\"/app/_next/static/chunks/7988d5ea63356e10.js\"],\"default\"]\n4:I[37457,[\"/app/_next/static/chunks/bf2c1c402dbcccdf.js\",\"/app/_next/static/chunks/61b3d4c00499dd14.js\",\"/app/_next/static/chunks/7988d5ea63356e10.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"5:I[21199,[\"/app/_next/static/chunks/bf2c1c402dbcccdf.js\",\"/app/_next/static/chunks/61b3d4c00499dd14.js\",\"/app/_next/static/chunks/7988d5ea63356e10.js\",\"/app/_next/static/chunks/d77e4439761aa20d.js\",\"/app/_next/static/chunks/b7f72bcb870dda3b.js\",\"/app/_next/static/chunks/5bad5163b6e015f5.js\",\"/app/_next/static/chunks/8085c74f26fa2c4e.js\",\"/app/_next/static/chunks/652e486c20710ca8.js\",\"/app/_next/static/chunks/2b18c967f27dd561.js\",\"/app/_next/static/chunks/bdd88bcfd223f52a.js\",\"/app/_next/static/chunks/6ddf95b168bfbc36.js\",\"/app/_next/static/chunks/7def01c245e03b59.js\",\"/app/_next/static/chunks/e42498eec0c8d570.js\",\"/app/_next/static/chunks/cd4556cbed1f8957.js\",\"/app/_next/static/chunks/d55f4f3df263ad3d.js\"],\"WorkspaceShell\"]\n"])</script><script>self.__next_f.push([1,"a:I[68027,[\"/app/_next/static/chunks/bf2c1c402dbcccdf.js\",\"/app/_next/static/chunks/61b3d4c00499dd14.js\",\"/app/_next/static/chunks/7988d5ea63356e10.js\"],\"default\"]\n:HL[\"/app/_next/static/chunks/7bdf0e5b41aeb209.css\",\"style\"]\n:HL[\"/app/_next/static/chunks/886a31720c72a306.css\",\"style\"]\n:HL[\"/app/_next/static/chunks/0a4ab823884025be.css\",\"style\"]\n:HL[\"/app/_next/static/media/5c285b27cdda1fe8-s.p.a62025f2.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/app/_next/static/media/70bc3e132a0a741e-s.p.15008bfb.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/app/_next/static/media/c41ca59f1c34ba31-s.p.e20f337c.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/app/_next/static/chunks/6e61f670898cb297.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"6_8Ppg2OmCO0VcGqmqnxR\",\"p\":\"/app\",\"c\":[\"\",\"manage\",\"mcp\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"(workspace)\",{\"children\":[\"manage\",{\"children\":[[\"route\",\"mcp\",\"oc\"],{\"children\":[\"__PAGE__\",{}]}]}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/app/_next/static/chunks/7bdf0e5b41aeb209.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/app/_next/static/chunks/886a31720c72a306.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/app/_next/static/chunks/0a4ab823884025be.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/app/_next/static/chunks/bf2c1c402dbcccdf.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/app/_next/static/chunks/61b3d4c00499dd14.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/app/_next/static/chunks/7988d5ea63356e10.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"zh-CN\",\"className\":\"sora_a6e0e515-module__NbNjtG__variable dm_sans_fa25cdfd-module__fB5nTW__variable jetbrains_mono_2b1eae20-module__XfFTLG__variable font-sans\",\"children\":[\"$\",\"body\",null,{\"children\":[[\"$\",\"$L2\",null,{}],[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}]]}],{\"children\":[\"(workspace)\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"script\",\"script-0\",{\"src\":\"/app/_next/static/chunks/d77e4439761aa20d.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/app/_next/static/chunks/b7f72bcb870dda3b.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/app/_next/static/chunks/5bad5163b6e015f5.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/app/_next/static/chunks/8085c74f26fa2c4e.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/app/_next/static/chunks/652e486c20710ca8.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-5\",{\"src\":\"/app/_next/static/chunks/2b18c967f27dd561.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:1:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:1:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:1:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:1:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}],{\"children\":[\"manage\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"route\",\"mcp\",\"oc\"],[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",\"$L6\",{},null,false]},null,false]},[\"$L7\",[],[]],false]},null,false]},[\"$L8\",[],[]],false],\"$L9\",false]],\"m\":\"$undefined\",\"G\":[\"$a\",[\"$Lb\",\"$Lc\",\"$Ld\"]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"f:I[97367,[\"/app/_next/static/chunks/bf2c1c402dbcccdf.js\",\"/app/_next/static/chunks/61b3d4c00499dd14.js\",\"/app/_next/static/chunks/7988d5ea63356e10.js\"],\"OutletBoundary\"]\n11:I[11533,[\"/app/_next/static/chunks/bf2c1c402dbcccdf.js\",\"/app/_next/static/chunks/61b3d4c00499dd14.js\",\"/app/_next/static/chunks/7988d5ea63356e10.js\"],\"AsyncMetadataOutlet\"]\n"])</script><script>self.__next_f.push([1,"13:I[5014,[\"/app/_next/static/chunks/bf2c1c402dbcccdf.js\",\"/app/_next/static/chunks/61b3d4c00499dd14.js\",\"/app/_next/static/chunks/7988d5ea63356e10.js\",\"/app/_next/static/chunks/d77e4439761aa20d.js\",\"/app/_next/static/chunks/b7f72bcb870dda3b.js\",\"/app/_next/static/chunks/5bad5163b6e015f5.js\",\"/app/_next/static/chunks/8085c74f26fa2c4e.js\",\"/app/_next/static/chunks/652e486c20710ca8.js\",\"/app/_next/static/chunks/2b18c967f27dd561.js\",\"/app/_next/static/chunks/bdd88bcfd223f52a.js\",\"/app/_next/static/chunks/6ddf95b168bfbc36.js\",\"/app/_next/static/chunks/7def01c245e03b59.js\",\"/app/_next/static/chunks/e42498eec0c8d570.js\",\"/app/_next/static/chunks/cd4556cbed1f8957.js\",\"/app/_next/static/chunks/d55f4f3df263ad3d.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"14:I[97367,[\"/app/_next/static/chunks/bf2c1c402dbcccdf.js\",\"/app/_next/static/chunks/61b3d4c00499dd14.js\",\"/app/_next/static/chunks/7988d5ea63356e10.js\"],\"ViewportBoundary\"]\n16:I[97367,[\"/app/_next/static/chunks/bf2c1c402dbcccdf.js\",\"/app/_next/static/chunks/61b3d4c00499dd14.js\",\"/app/_next/static/chunks/7988d5ea63356e10.js\"],\"MetadataBoundary\"]\n17:\"$Sreact.suspense\"\n"])</script><script>self.__next_f.push([1,"6:[\"$\",\"$1\",\"c\",{\"children\":[\"$Le\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/app/_next/static/chunks/6e61f670898cb297.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/app/_next/static/chunks/bdd88bcfd223f52a.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/app/_next/static/chunks/6ddf95b168bfbc36.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/app/_next/static/chunks/7def01c245e03b59.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/app/_next/static/chunks/e42498eec0c8d570.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/app/_next/static/chunks/cd4556cbed1f8957.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-5\",{\"src\":\"/app/_next/static/chunks/d55f4f3df263ad3d.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$Lf\",null,{\"children\":[\"$L10\",[\"$\",\"$L11\",null,{\"promise\":\"$@12\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"7:[\"$\",\"div\",\"l\",{\"className\":\"flex min-h-[40vh] flex-1 items-center justify-center gap-2 text-zinc-500\",\"children\":[[\"$\",\"$L13\",null,{\"ref\":\"$undefined\",\"iconNode\":[[\"path\",{\"d\":\"M21 12a9 9 0 1 1-6.219-8.56\",\"key\":\"13zald\"}]],\"className\":\"lucide-loader-circle animate-spin text-muted-foreground\",\"size\":16,\"color\":\"currentColor\",\"strokeWidth\":2,\"aria-hidden\":\"true\"}],\" 加载中\"]}]\n8:[\"$\",\"div\",\"l\",{\"className\":\"flex min-h-[40vh] flex-1 items-center justify-center gap-2 text-zinc-500\",\"children\":[[\"$\",\"$L13\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$7:props:children:0:props:iconNode\",\"className\":\"lucide-loader-circle animate-spin text-muted-foreground\",\"size\":16,\"color\":\"currentColor\",\"strokeWidth\":2,\"aria-hidden\":\"true\"}],\" 加载中\"]}]\n9:[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$L14\",null,{\"children\":\"$L15\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$L16\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$17\",null,{\"fallback\":null,\"children\":\"$L18\"}]}]}]]}]\nb:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/app/_next/static/chunks/7bdf0e5b41aeb209.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\nc:[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/app/_next/static/chunks/886a31720c72a306.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\nd:[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/app/_next/static/chunks/0a4ab823884025be.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n"])</script><script>self.__next_f.push([1,"19:I[56708,[\"/app/_next/static/chunks/bf2c1c402dbcccdf.js\",\"/app/_next/static/chunks/61b3d4c00499dd14.js\",\"/app/_next/static/chunks/7988d5ea63356e10.js\",\"/app/_next/static/chunks/d77e4439761aa20d.js\",\"/app/_next/static/chunks/b7f72bcb870dda3b.js\",\"/app/_next/static/chunks/5bad5163b6e015f5.js\",\"/app/_next/static/chunks/8085c74f26fa2c4e.js\",\"/app/_next/static/chunks/652e486c20710ca8.js\",\"/app/_next/static/chunks/2b18c967f27dd561.js\",\"/app/_next/static/chunks/bdd88bcfd223f52a.js\",\"/app/_next/static/chunks/6ddf95b168bfbc36.js\",\"/app/_next/static/chunks/7def01c245e03b59.js\",\"/app/_next/static/chunks/e42498eec0c8d570.js\",\"/app/_next/static/chunks/cd4556cbed1f8957.js\",\"/app/_next/static/chunks/d55f4f3df263ad3d.js\"],\"ManageFeatureChrome\"]\n"])</script><script>self.__next_f.push([1,"1a:I[52157,[\"/app/_next/static/chunks/bf2c1c402dbcccdf.js\",\"/app/_next/static/chunks/61b3d4c00499dd14.js\",\"/app/_next/static/chunks/7988d5ea63356e10.js\",\"/app/_next/static/chunks/d77e4439761aa20d.js\",\"/app/_next/static/chunks/b7f72bcb870dda3b.js\",\"/app/_next/static/chunks/5bad5163b6e015f5.js\",\"/app/_next/static/chunks/8085c74f26fa2c4e.js\",\"/app/_next/static/chunks/652e486c20710ca8.js\",\"/app/_next/static/chunks/2b18c967f27dd561.js\",\"/app/_next/static/chunks/bdd88bcfd223f52a.js\",\"/app/_next/static/chunks/6ddf95b168bfbc36.js\",\"/app/_next/static/chunks/7def01c245e03b59.js\",\"/app/_next/static/chunks/e42498eec0c8d570.js\",\"/app/_next/static/chunks/cd4556cbed1f8957.js\",\"/app/_next/static/chunks/d55f4f3df263ad3d.js\"],\"PreloadChunks\"]\n"])</script><script>self.__next_f.push([1,"e:[\"$\",\"$17\",null,{\"fallback\":null,\"children\":[\"$\",\"$L19\",null,{\"headerIcon\":\"Mcp\",\"title\":\"MCP管理\",\"description\":\"管理外部工具与数据源。可以导入、编辑、移除或禁用 MCP 服务。\",\"showTitle\":true,\"children\":[\"$\",\"$17\",null,{\"fallback\":[\"$\",\"div\",null,{\"className\":\"flex min-h-[40vh] flex-1 items-center justify-center gap-2 text-zinc-500\",\"children\":[[\"$\",\"$L13\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$7:props:children:0:props:iconNode\",\"className\":\"lucide-loader-circle animate-spin text-muted-foreground\",\"size\":16,\"color\":\"currentColor\",\"strokeWidth\":2,\"aria-hidden\":\"true\"}],\" 加载中\"]}],\"children\":[[\"$\",\"$L1a\",null,{\"moduleIds\":\"$undefined\"}],\"$L1b\"]}]}]}]\n"])</script><script>self.__next_f.push([1,"1c:I[37991,[\"/app/_next/static/chunks/bf2c1c402dbcccdf.js\",\"/app/_next/static/chunks/61b3d4c00499dd14.js\",\"/app/_next/static/chunks/7988d5ea63356e10.js\",\"/app/_next/static/chunks/d77e4439761aa20d.js\",\"/app/_next/static/chunks/b7f72bcb870dda3b.js\",\"/app/_next/static/chunks/5bad5163b6e015f5.js\",\"/app/_next/static/chunks/8085c74f26fa2c4e.js\",\"/app/_next/static/chunks/652e486c20710ca8.js\",\"/app/_next/static/chunks/2b18c967f27dd561.js\",\"/app/_next/static/chunks/bdd88bcfd223f52a.js\",\"/app/_next/static/chunks/6ddf95b168bfbc36.js\",\"/app/_next/static/chunks/7def01c245e03b59.js\",\"/app/_next/static/chunks/e42498eec0c8d570.js\",\"/app/_next/static/chunks/cd4556cbed1f8957.js\",\"/app/_next/static/chunks/d55f4f3df263ad3d.js\"],\"McpManageView\"]\n"])</script><script>self.__next_f.push([1,"1b:[\"$\",\"$L1c\",null,{}]\n"])</script><script>self.__next_f.push([1,"15:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n10:null\n"])</script><script>self.__next_f.push([1,"12:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Claude Code测试平台\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Claude Code测试平台\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"18:\"$12:metadata\"\n"])</script></body></html>