@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
@@ -0,0 +1,783 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <title>Agent 会话</title>
7
+ <link rel="stylesheet" href="/ws-test.css" />
8
+ </head>
9
+ <body>
10
+ <div class="ws-config-hidden" aria-hidden="true">
11
+ <input id="wsUrl" type="text" spellcheck="false" />
12
+ <input id="apiBase" type="text" spellcheck="false" />
13
+ <input id="sessionId" type="text" spellcheck="false" />
14
+ <input id="agentId" type="hidden" value="qihoo" />
15
+ </div>
16
+ <div class="app">
17
+ <aside class="sidebar">
18
+ <div class="sidebar-top">
19
+ <div class="sidebar-brand">
20
+ <div class="sidebar-brand-title-row">
21
+ <div class="agent-switch-wrap" id="agentSwitchWrap">
22
+ <button
23
+ type="button"
24
+ class="sidebar-agent-brand"
25
+ id="brandAgentSwitchBtn"
26
+ title="切换 Agent"
27
+ aria-label="当前 Agent,点击切换"
28
+ aria-haspopup="listbox"
29
+ aria-expanded="false"
30
+ >
31
+ <span class="sidebar-agent-name" id="brandAgentName">Agent</span>
32
+ <svg class="sidebar-agent-chevron" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
33
+ <path d="m6 9 6 6 6-6"/>
34
+ </svg>
35
+ </button>
36
+ </div>
37
+ </div>
38
+ </div>
39
+ <button
40
+ type="button"
41
+ class="btn-sidebar-new-chat"
42
+ id="btnNewSession"
43
+ title="开启新对话"
44
+ aria-label="开启新对话"
45
+ >
46
+ <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true">
47
+ <path d="M12 5v14M5 12h14"/>
48
+ </svg>
49
+ <span>新对话</span>
50
+ </button>
51
+ </div>
52
+
53
+ <div class="sidebar-sessions-wrap">
54
+ <div id="sessionList" class="sidebar-session-list" role="tablist" aria-label="历史会话"></div>
55
+ <span id="sessionListMeta" class="session-tabs-meta" hidden></span>
56
+ </div>
57
+
58
+ <nav class="sidebar-nav" aria-label="管理导航">
59
+ <button type="button" class="sidebar-nav-row" id="btnManageAgents" title="返回办公室" aria-label="返回办公室">
60
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
61
+ <rect x="4" y="4" width="16" height="16" rx="4"/>
62
+ <circle cx="12" cy="10" r="2.6"/>
63
+ <path d="M7.5 17.5c.8-2.2 2.4-3.5 4.5-3.5s3.7 1.3 4.5 3.5"/>
64
+ </svg>
65
+ <span>办公室</span>
66
+ </button>
67
+ <button type="button" class="sidebar-nav-row is-active" data-add="tools" title="工具" aria-label="工具">
68
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
69
+ <path d="M14.7 6.3a4.5 4.5 0 0 0-5.9 5.9L3.9 17a1.9 1.9 0 1 0 2.7 2.7l4.8-4.9a4.5 4.5 0 0 0 5.9-5.9l-2.7 2.7-2.4-.3-.3-2.4 2.8-2.6z"/>
70
+ </svg>
71
+ <span>工具</span>
72
+ </button>
73
+ <button type="button" class="sidebar-nav-row" data-add="skills" title="Skill" aria-label="Skill">
74
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
75
+ <path d="M12 3 9.8 8.1 4.5 10.2l5.3 2.1L12 17.5l2.2-5.2 5.3-2.1-5.3-2.1Z"/>
76
+ <path d="M18.5 15.5 17.5 18l-2.5 1 2.5 1 1 2.5 1-2.5 2.5-1-2.5-1Z"/>
77
+ </svg>
78
+ <span>Skill</span>
79
+ </button>
80
+ <button type="button" class="sidebar-nav-row" data-add="mcp" title="MCP" aria-label="MCP">
81
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
82
+ <rect x="3" y="4" width="8" height="6" rx="1.8"/>
83
+ <rect x="13" y="4" width="8" height="6" rx="1.8"/>
84
+ <rect x="8" y="14" width="8" height="6" rx="1.8"/>
85
+ <path d="M11 7h2M12 10v4"/>
86
+ </svg>
87
+ <span>MCP</span>
88
+ </button>
89
+ <button type="button" class="sidebar-nav-row" id="btnManageSchedules" data-add="schedules" title="定时任务" aria-label="定时任务">
90
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
91
+ <circle cx="12" cy="12" r="10"/>
92
+ <polyline points="12 6 12 12 16 14"/>
93
+ </svg>
94
+ <span>定时任务</span>
95
+ </button>
96
+ <button type="button" class="sidebar-nav-row" data-add="agentTeams" title="Teams" aria-label="Teams">
97
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
98
+ <circle cx="8" cy="8" r="2.8"/>
99
+ <circle cx="16.2" cy="9.2" r="2.4"/>
100
+ <path d="M3.2 18c.8-2.7 2.8-4.2 4.8-4.2s4 1.5 4.8 4.2"/>
101
+ <path d="M13.2 18c.6-2 2.2-3.2 4-3.2 1.6 0 3.1 1 3.8 2.7"/>
102
+ </svg>
103
+ <span>Teams</span>
104
+ </button>
105
+ <button type="button" class="sidebar-nav-row" id="btnManageRepo" data-add="repo" title="文件管理" aria-label="文件管理">
106
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
107
+ <path d="M6 14a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h4.5L13 6H18a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2H6z"/>
108
+ <path d="M6 14h12"/>
109
+ </svg>
110
+ <span>文件</span>
111
+ </button>
112
+ </nav>
113
+
114
+ <div class="sidebar-footer">
115
+ <button type="button" class="sidebar-nav-row" id="btnEditAgentEnv" title="设置" aria-label="设置">
116
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
117
+ <circle cx="12" cy="12" r="3.1"/>
118
+ <path d="M19.4 15a1 1 0 0 0 .2 1.1l.1.1a1.8 1.8 0 1 1-2.6 2.6l-.1-.1a1 1 0 0 0-1.1-.2 1 1 0 0 0-.6.9V20a1.8 1.8 0 1 1-3.6 0v-.2a1 1 0 0 0-.6-.9 1 1 0 0 0-1.1.2l-.1.1a1.8 1.8 0 1 1-2.6-2.6l.1-.1a1 1 0 0 0 .2-1.1 1 1 0 0 0-.9-.6H4a1.8 1.8 0 1 1 0-3.6h.2a1 1 0 0 0 .9-.6 1 1 0 0 0-.2-1.1l-.1-.1a1.8 1.8 0 1 1 2.6-2.6l.1.1a1 1 0 0 0 1.1.2h.1a1 1 0 0 0 .6-.9V4a1.8 1.8 0 1 1 3.6 0v.2a1 1 0 0 0 .6.9h.1a1 1 0 0 0 1.1-.2l.1-.1a1.8 1.8 0 1 1 2.6 2.6l-.1.1a1 1 0 0 0-.2 1.1v.1a1 1 0 0 0 .9.6H20a1.8 1.8 0 1 1 0 3.6h-.2a1 1 0 0 0-.9.6z"/>
119
+ </svg>
120
+ <span>设置</span>
121
+ </button>
122
+ </div>
123
+ </aside>
124
+
125
+ <main class="main">
126
+ <header class="main-header">
127
+ <h1 class="main-header-title" id="mainTitle">Agent</h1>
128
+ <p class="main-header-sub" id="mainSub" hidden></p>
129
+ </header>
130
+ <div class="main-scroll">
131
+ <div class="main-body">
132
+ <div id="repoManageView" class="repo-manage-view" hidden>
133
+ <div class="repo-manage-layout">
134
+ <aside class="repo-tree-panel" aria-label="目录树">
135
+ <div class="repo-tree-panel-title">目录</div>
136
+ <div id="repoTreeList" class="repo-tree-list"></div>
137
+ </aside>
138
+ <section class="repo-content-panel">
139
+ <div id="repoEntriesWrap" class="repo-entries-wrap">
140
+ <table class="repo-entries-table" id="repoEntriesTable">
141
+ <thead>
142
+ <tr>
143
+ <th>文件名称</th>
144
+ </tr>
145
+ </thead>
146
+ <tbody id="repoEntriesBody"></tbody>
147
+ </table>
148
+ <div id="repoEntriesState" class="repo-panel-state" hidden></div>
149
+ </div>
150
+ <div id="repoFilePreview" class="repo-file-preview" hidden>
151
+ <div class="repo-file-preview-header">
152
+ <span id="repoFilePreviewTitle" class="repo-file-preview-title"></span>
153
+ <div class="repo-file-preview-actions">
154
+ <a id="btnRepoFileDownload" class="btn-repo-file-action btn-repo-file-download" href="#" download>下载</a>
155
+ <button type="button" id="btnRepoFileDelete" class="btn-repo-file-action btn-repo-file-delete">删除</button>
156
+ </div>
157
+ </div>
158
+ <div id="repoFilePreviewBody" class="repo-file-preview-body"></div>
159
+ <div id="repoFilePreviewState" class="repo-panel-state" hidden></div>
160
+ </div>
161
+ </section>
162
+ </div>
163
+ </div>
164
+ <div id="chatWorkspace" class="chat-workspace">
165
+ <div id="pendingPromptsBar" class="pending-prompts-bar" hidden>
166
+ <div class="pending-prompts-title">待执行</div>
167
+ <div id="pendingPromptsList" class="pending-prompts-list"></div>
168
+ </div>
169
+ <div id="chatThread" class="chat-thread" aria-live="polite">
170
+ <div id="chatLoading" class="chat-loading" hidden>
171
+ <div class="chat-loading-inner">
172
+ <span class="chat-loading-spinner" aria-hidden="true"></span>
173
+ <span id="chatLoadingText">已连接,等待 worker ready…</span>
174
+ </div>
175
+ </div>
176
+ </div>
177
+ </div>
178
+ </div>
179
+ </div>
180
+
181
+ <div class="composer" id="chatComposer">
182
+ <div class="composer-inner">
183
+ <div class="composer-meta">
184
+ <div id="status" class="conn-status">未连接</div>
185
+ <span class="composer-meta-sep" aria-hidden="true"></span>
186
+ <span class="prompt-session-info" id="promptSessionInfo"></span>
187
+ </div>
188
+ <div class="composer-card">
189
+ <div class="composer-prompt-wrap" id="composerPromptWrap">
190
+ <div
191
+ id="prompt"
192
+ class="prompt-editor"
193
+ contenteditable="true"
194
+ role="textbox"
195
+ aria-multiline="true"
196
+ data-placeholder="询问任何问题,输入 @ 引用 workspace 文件"
197
+ aria-autocomplete="list"
198
+ aria-controls="promptFileSuggestions"
199
+ aria-expanded="false"
200
+ ></div>
201
+ <ul id="promptFileSuggestions" class="prompt-file-suggestions" role="listbox" aria-label="文件候选"></ul>
202
+ <div id="composerUploadToast" class="composer-upload-toast" hidden aria-live="polite"></div>
203
+ </div>
204
+ <div class="composer-card-footer">
205
+ <div class="composer-tools-left" aria-label="输入工具栏">
206
+ <input type="file" id="workspaceUploadInput" class="workspace-upload-input" multiple accept="*/*" />
207
+ <label
208
+ for="workspaceUploadInput"
209
+ class="sidebar-icon-btn composer-action-btn"
210
+ id="btnWorkspaceUpload"
211
+ title="上传文件到 workspace"
212
+ aria-label="上传文件到 workspace"
213
+ >
214
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
215
+ <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" />
216
+ <polyline points="17 8 12 3 7 8" />
217
+ <line x1="12" y1="3" x2="12" y2="15" />
218
+ </svg>
219
+ </label>
220
+ <button type="button" class="sidebar-icon-btn composer-action-btn" id="btnToolResults" title="下载 tool-results 文件" aria-label="下载 tool-results 文件">
221
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
222
+ <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" />
223
+ <polyline points="7 10 12 15 17 10" />
224
+ <line x1="12" y1="15" x2="12" y2="3" />
225
+ </svg>
226
+ </button>
227
+ <div class="composer-model-field" id="composerModelField">
228
+ <input
229
+ type="text"
230
+ id="composerModelInput"
231
+ class="composer-model-input"
232
+ placeholder="模型 ID(如 anthropic/claude-3.5-haiku)"
233
+ spellcheck="false"
234
+ autocomplete="off"
235
+ aria-label="模型"
236
+ aria-autocomplete="list"
237
+ aria-controls="composerModelSuggestions"
238
+ aria-expanded="false"
239
+ />
240
+ <ul id="composerModelSuggestions" class="composer-model-suggestions" role="listbox" aria-label="模型候选"></ul>
241
+ </div>
242
+ <select id="composerModeSelect" class="composer-mode-select" aria-label="权限模式">
243
+ <option value="">默认</option>
244
+ <option value="acceptEdits">acceptEdits</option>
245
+ <option value="plan">plan</option>
246
+ <option value="default">default</option>
247
+ <option value="dontAsk">dontAsk</option>
248
+ <option value="bypassPermissions">bypassPermissions</option>
249
+ </select>
250
+ <select id="composerToolAskSelect" class="composer-mode-select" aria-label="工具确认模式">
251
+ <option value="1">自动</option>
252
+ <option value="0">手动</option>
253
+ </select>
254
+ </div>
255
+ <div class="composer-tools-right" aria-label="发送操作">
256
+ <button type="button" class="sidebar-icon-btn composer-action-btn" id="btnAbort" disabled title="中断" aria-label="中断">
257
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
258
+ <rect x="5" y="5" width="14" height="14" rx="2" ry="2" />
259
+ </svg>
260
+ </button>
261
+ <button type="button" class="sidebar-icon-btn composer-action-btn" id="btnSend" disabled title="发送" aria-label="发送">
262
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
263
+ <line x1="22" y1="2" x2="11" y2="13" />
264
+ <polygon points="22 2 15 22 11 13 2 9 22 2" />
265
+ </svg>
266
+ </button>
267
+ </div>
268
+ </div>
269
+ </div>
270
+ </div>
271
+ </div>
272
+ </main>
273
+ </div>
274
+
275
+ <div id="agentPickerModal" class="agent-md-modal" aria-hidden="true">
276
+ <div class="agent-md-modal-backdrop" id="agentPickerModalBackdrop"></div>
277
+ <div id="agentPickerModalCard" class="agent-md-modal-card" role="dialog" aria-modal="true" aria-labelledby="agentPickerModalTitle">
278
+ <div class="agent-md-modal-head">
279
+ <h2 id="agentPickerModalTitle">选择</h2>
280
+ <div id="agentPickerSessionTabStrip" class="session-tabs agent-picker-session-tab-strip" hidden role="tablist" aria-label="分类">
281
+ <div id="agentPickerSessionTabList" class="session-tabs-list"></div>
282
+ </div>
283
+ <div class="modal-head-actions">
284
+ <button
285
+ type="button"
286
+ class="agent-md-modal-icon-btn"
287
+ id="btnAgentPickerMcpJson"
288
+ style="display: none"
289
+ aria-label="编辑json"
290
+ title="编辑json"
291
+ >
292
+ <svg viewBox="0 0 24 24" aria-hidden="true">
293
+ <path d="M12 20h9"></path>
294
+ <path d="M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4Z"></path>
295
+ </svg>
296
+ </button>
297
+ <button
298
+ type="button"
299
+ class="agent-md-modal-icon-btn"
300
+ id="btnAgentPickerToolImport"
301
+ style="display: none"
302
+ aria-label="导入 zip"
303
+ title="导入 zip"
304
+ >
305
+ <svg viewBox="0 0 24 24" aria-hidden="true">
306
+ <path d="M14 2H7a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7z"></path>
307
+ <path d="M14 2v5h5"></path>
308
+ <path d="M12 17V11"></path>
309
+ <path d="M9.5 13.5 12 11l2.5 2.5"></path>
310
+ </svg>
311
+ </button>
312
+ <button type="button" class="agent-md-modal-close" id="btnAgentPickerClose" aria-label="关闭">&times;</button>
313
+ </div>
314
+ </div>
315
+ <input type="search" class="agent-picker-search" id="agentPickerSearch" placeholder="筛选…" />
316
+ <div class="agent-picker-scroll" id="agentPickerList"></div>
317
+ <div class="agent-md-modal-foot">
318
+ <button type="button" class="btn-agent-md-cancel" id="btnAgentPickerCancel">取消</button>
319
+ <button type="button" class="btn-primary" id="btnAgentPickerOk">确定</button>
320
+ </div>
321
+ <input type="file" id="agentPickerToolImportInput" accept=".zip,application/zip" style="display: none" />
322
+ </div>
323
+ </div>
324
+
325
+ <div id="mcpJsonInputModal" class="agent-md-modal" aria-hidden="true">
326
+ <div class="agent-md-modal-backdrop" id="mcpJsonInputModalBackdrop"></div>
327
+ <div class="agent-md-modal-card" role="dialog" aria-modal="true" aria-labelledby="mcpJsonInputModalTitle">
328
+ <div class="agent-md-modal-head">
329
+ <h2 id="mcpJsonInputModalTitle">添加远端 MCP JSON</h2>
330
+ <button type="button" class="agent-md-modal-close" id="btnMcpJsonInputModalClose" aria-label="关闭">
331
+ &times;
332
+ </button>
333
+ </div>
334
+ <textarea id="mcpJsonInputEditor" class="agent-md-editor" spellcheck="false" placeholder='{\n "mcpServers": {\n "my_remote_mcp": {\n "type": "stdio",\n "command": "node",\n "args": ["server.js"]\n }\n }\n}'></textarea>
335
+ <div class="agent-md-modal-foot">
336
+ <button type="button" class="btn-agent-md-cancel" id="btnMcpJsonInputCancel">取消</button>
337
+ <button type="button" class="btn-primary" id="btnMcpJsonInputConfirm">确认添加</button>
338
+ </div>
339
+ </div>
340
+ </div>
341
+
342
+ <div id="mcpItemConfigModal" class="agent-md-modal" aria-hidden="true">
343
+ <div class="agent-md-modal-backdrop" id="mcpItemConfigModalBackdrop"></div>
344
+ <div class="agent-md-modal-card" role="dialog" aria-modal="true" aria-labelledby="mcpItemConfigModalTitle">
345
+ <div class="agent-md-modal-head">
346
+ <h2 id="mcpItemConfigModalTitle">编辑 MCP 配置</h2>
347
+ <button type="button" class="agent-md-modal-close" id="btnMcpItemConfigModalClose" aria-label="关闭">
348
+ &times;
349
+ </button>
350
+ </div>
351
+ <p id="mcpItemConfigHint" class="tool-files-sub" style="margin: 0 1rem 0.5rem; line-height: 1.4">
352
+ 标准 mcp.json 单条 server 配置(与 Cursor mcp.json 相同):<code>{ "command": "...", "args": [...], "env": {...} }</code>。runtime MCP 保存到当前包目录 <code>.mcp.json</code>;remote MCP 保存到 agent <code>.mcp.json</code>。
353
+ </p>
354
+ <textarea id="mcpItemConfigEditor" class="agent-md-editor" spellcheck="false" placeholder="加载中…"></textarea>
355
+ <div class="agent-md-modal-foot">
356
+ <button type="button" class="btn-agent-md-cancel" id="btnMcpItemConfigCancel">取消</button>
357
+ <button type="button" class="btn-primary" id="btnMcpItemConfigSave">保存</button>
358
+ </div>
359
+ </div>
360
+ </div>
361
+
362
+ <div id="agentMdModal" class="agent-md-modal" aria-hidden="true">
363
+ <div class="agent-md-modal-backdrop" id="agentMdModalBackdrop"></div>
364
+ <div class="agent-md-modal-card" role="dialog" aria-modal="true" aria-labelledby="agentMdModalTitle">
365
+ <div class="agent-md-modal-head">
366
+ <h2 id="agentMdModalTitle">编辑 agent.md</h2>
367
+ <button type="button" class="agent-md-modal-close" id="btnAgentMdModalClose" aria-label="关闭">
368
+ &times;
369
+ </button>
370
+ </div>
371
+ <textarea id="agentMdEditor" class="agent-md-editor" spellcheck="false" placeholder="加载中…"></textarea>
372
+ <div class="agent-md-modal-foot">
373
+ <button type="button" class="btn-agent-md-cancel" id="btnAgentMdCancel">取消</button>
374
+ <button type="button" class="btn-primary" id="btnAgentMdSave">保存</button>
375
+ </div>
376
+ </div>
377
+ </div>
378
+
379
+ <div id="skillMdModal" class="agent-md-modal" aria-hidden="true">
380
+ <div class="agent-md-modal-backdrop" id="skillMdModalBackdrop"></div>
381
+ <div class="agent-md-modal-card" role="dialog" aria-modal="true" aria-labelledby="skillMdModalTitle">
382
+ <div class="agent-md-modal-head">
383
+ <h2 id="skillMdModalTitle">编辑 SKILL.md</h2>
384
+ <button type="button" class="agent-md-modal-close" id="btnSkillMdModalClose" aria-label="关闭">
385
+ &times;
386
+ </button>
387
+ </div>
388
+ <textarea id="skillMdEditor" class="agent-md-editor" spellcheck="false" placeholder="加载中…"></textarea>
389
+ <div class="agent-md-modal-foot">
390
+ <button type="button" class="btn-agent-md-cancel" id="btnSkillMdCancel">取消</button>
391
+ <button type="button" class="btn-primary" id="btnSkillMdSave">保存</button>
392
+ </div>
393
+ </div>
394
+ </div>
395
+
396
+ <div id="toolFilesModal" class="agent-md-modal" aria-hidden="true">
397
+ <div class="agent-md-modal-backdrop" id="toolFilesModalBackdrop"></div>
398
+ <div class="agent-md-modal-card modal-unified" role="dialog" aria-modal="true" aria-labelledby="toolFilesModalTitle">
399
+ <div class="agent-md-modal-head">
400
+ <h2 id="toolFilesModalTitle">tool-results 文件下载</h2>
401
+ <div class="modal-head-actions modal-head-actions--close-only">
402
+ <button type="button" class="agent-md-modal-close" id="btnToolFilesModalClose" aria-label="关闭">
403
+ &times;
404
+ </button>
405
+ </div>
406
+ </div>
407
+ <div class="tool-files-body">
408
+ <p class="tool-files-meta" id="toolFilesMeta"></p>
409
+ <div id="toolFilesList" class="tool-files-list"></div>
410
+ </div>
411
+ <div class="agent-md-modal-foot">
412
+ <button type="button" class="btn-agent-md-cancel" id="btnToolFilesClose">取消</button>
413
+ </div>
414
+ </div>
415
+ </div>
416
+
417
+ <div id="permissionDialog" class="agent-md-modal" aria-hidden="true">
418
+ <div class="agent-md-modal-backdrop" id="permissionDialogBackdrop"></div>
419
+ <div class="agent-md-modal-card modal-unified" role="dialog" aria-modal="true" aria-labelledby="permissionDialogTitle">
420
+ <div class="agent-md-modal-head">
421
+ <h2 id="permissionDialogTitle">工具权限请求</h2>
422
+ <div class="modal-head-actions modal-head-actions--close-only">
423
+ <button type="button" class="agent-md-modal-close" id="btnPermissionDialogClose" aria-label="关闭">
424
+ &times;
425
+ </button>
426
+ </div>
427
+ </div>
428
+ <div class="tool-files-body">
429
+ <p id="permissionDialogDesc" style="margin-bottom: 0.75rem; color: var(--ds-text-soft); font-size: 0.8rem;"></p>
430
+ <div id="permissionDialogInput" style="background: var(--ds-bg-subtle, #1a1d23); border: 1px solid var(--ds-border, #2a2d35); border-radius: 6px; padding: 0.75rem; font-family: var(--font-mono, monospace); font-size: 0.75rem; white-space: pre-wrap; word-break: break-all; max-height: 240px; overflow: auto; color: var(--ds-text, #e1e4e8);"></div>
431
+ </div>
432
+ <div class="agent-md-modal-foot" style="display: flex; gap: 0.5rem; justify-content: flex-end;">
433
+ <button type="button" class="btn-permission-deny" id="btnPermissionDeny">拒绝</button>
434
+ <button type="button" class="btn-permission-allow" id="btnPermissionAllow">允许</button>
435
+ </div>
436
+ </div>
437
+ </div>
438
+
439
+ <div id="agentEnvModal" class="agent-md-modal" aria-hidden="true">
440
+ <div class="agent-md-modal-backdrop" id="agentEnvModalBackdrop"></div>
441
+ <div id="agentEnvModalCard" class="agent-md-modal-card modal-unified agent-picker--tabbed" role="dialog" aria-modal="true" aria-labelledby="agentEnvModalTitle">
442
+ <div class="agent-md-modal-head">
443
+ <h2 id="agentEnvModalTitle">设置</h2>
444
+ <div id="agentEnvSessionTabStrip" class="session-tabs agent-picker-session-tab-strip" hidden role="tablist" aria-label="环境变量、编辑 agent.md、设置">
445
+ <div id="agentEnvSessionTabList" class="session-tabs-list"></div>
446
+ </div>
447
+ <div class="modal-head-actions">
448
+ <button type="button" class="agent-md-modal-close" id="btnAgentEnvModalClose" aria-label="关闭">
449
+ &times;
450
+ </button>
451
+ </div>
452
+ </div>
453
+ <div class="agent-env-tab-panels">
454
+ <div id="agentEnvPanelEnv" class="tool-files-body agent-env-panel" hidden>
455
+ <div id="agentEnvList" class="tool-files-list"></div>
456
+ </div>
457
+ <div
458
+ id="agentEnvPanelAgentMd"
459
+ class="tool-files-body agent-env-panel agent-env-panel--md"
460
+ hidden
461
+ >
462
+ <p class="tool-files-meta" style="margin: 0; font-size: 0.75rem; color: var(--ds-text-soft)">
463
+ 与磁盘上 <code>agent.md</code> 相同;点底部 <strong>保存</strong> 与 <code>config.env</code> 一并提交。
464
+ </p>
465
+ <textarea
466
+ id="agentEnvAgentMdEditor"
467
+ class="agent-md-editor"
468
+ spellcheck="false"
469
+ placeholder="加载中…"
470
+ aria-label="agent.md 源码"
471
+ ></textarea>
472
+ </div>
473
+ <div id="agentEnvPanelSettings" class="tool-files-body agent-env-panel" hidden>
474
+ <div style="display: grid; gap: 0.45rem">
475
+ <label for="agentEnvAgentTypeInput" style="font-size: 0.78rem; color: var(--ds-text-soft)">
476
+ <code>agentType</code>(只读)
477
+ </label>
478
+ <input
479
+ id="agentEnvAgentTypeInput"
480
+ class="agent-env-kv-input"
481
+ type="text"
482
+ aria-label="agent type"
483
+ readonly
484
+ />
485
+ <label for="agentEnvWhenToUseInput" style="font-size: 0.78rem; color: var(--ds-text-soft)">
486
+ <code>agent.json.whentouse</code>
487
+ </label>
488
+ <textarea
489
+ id="agentEnvWhenToUseInput"
490
+ class="agent-md-editor"
491
+ spellcheck="false"
492
+ placeholder="输入该 agent 的使用时机描述(whentouse)"
493
+ aria-label="agent.json whentouse"
494
+ style="min-height: 110px"
495
+ ></textarea>
496
+ <div class="agent-env-team-block">
497
+ <label>绑定队员(agentTeams)</label>
498
+ <p id="agentEnvTeamEmpty" class="agent-env-team-empty" hidden>尚未绑定队员</p>
499
+ <div id="agentEnvTeamChips" class="agent-env-team-chips"></div>
500
+ <div class="agent-env-team-add">
501
+ <select id="agentEnvTeamPick" aria-label="选择队员">
502
+ <option value="">选择要添加的 Agent…</option>
503
+ </select>
504
+ <button type="button" class="btn-primary" id="btnAgentEnvAddTeamMember">添加</button>
505
+ </div>
506
+ </div>
507
+ <label for="agentEnvToolsInput" style="font-size: 0.78rem; color: var(--ds-text-soft)">
508
+ <code>agent.json.tools</code>(逗号或换行分隔)
509
+ </label>
510
+ <textarea
511
+ id="agentEnvToolsInput"
512
+ class="agent-md-editor"
513
+ spellcheck="false"
514
+ placeholder="只读展示当前 tools"
515
+ aria-label="agent.json tools"
516
+ style="min-height: 80px"
517
+ readonly
518
+ ></textarea>
519
+ <label for="agentEnvModelInput" style="font-size: 0.78rem; color: var(--ds-text-soft)">
520
+ <code>agent.json.model</code>
521
+ </label>
522
+ <input
523
+ id="agentEnvModelInput"
524
+ class="agent-env-kv-input"
525
+ type="text"
526
+ spellcheck="false"
527
+ placeholder="例如:sonnet"
528
+ aria-label="agent.json model"
529
+ />
530
+ <label for="agentEnvEffortInput" style="font-size: 0.78rem; color: var(--ds-text-soft)">
531
+ <code>agent.json.effort</code>
532
+ </label>
533
+ <select
534
+ id="agentEnvEffortInput"
535
+ class="agent-env-kv-input"
536
+ aria-label="agent.json effort"
537
+ >
538
+ <option value="low">low</option>
539
+ <option value="medium">medium</option>
540
+ <option value="high">high</option>
541
+ <option value="max">max</option>
542
+ </select>
543
+ <label for="agentEnvBackgroundInput" style="font-size: 0.78rem; color: var(--ds-text-soft)">
544
+ <code>agent.json.background</code>
545
+ </label>
546
+ <select
547
+ id="agentEnvBackgroundInput"
548
+ class="agent-env-kv-input"
549
+ aria-label="agent.json background"
550
+ >
551
+ <option value="false">false</option>
552
+ <option value="true">true</option>
553
+ </select>
554
+ <label for="agentEnvIsolationInput" style="font-size: 0.78rem; color: var(--ds-text-soft)">
555
+ <code>agent.json.isolation</code>
556
+ </label>
557
+ <select
558
+ id="agentEnvIsolationInput"
559
+ class="agent-env-kv-input"
560
+ aria-label="agent.json isolation"
561
+ >
562
+ <option value="">(空)</option>
563
+ <option value="worktree">worktree</option>
564
+ <option value="remote">remote</option>
565
+ </select>
566
+ </div>
567
+ </div>
568
+ </div>
569
+ <div class="agent-md-modal-foot">
570
+ <button type="button" class="btn-agent-md-cancel" id="btnAgentEnvCancel">取消</button>
571
+ <button type="button" class="btn-primary" id="btnAgentEnvSave">保存</button>
572
+ </div>
573
+ </div>
574
+ </div>
575
+
576
+ <div id="mcpPackageModal" class="agent-md-modal" aria-hidden="true">
577
+ <div class="agent-md-modal-backdrop" id="mcpPackageModalBackdrop"></div>
578
+ <div class="agent-md-modal-card modal-unified" role="dialog" aria-modal="true" aria-labelledby="mcpPackageModalTitle">
579
+ <div class="agent-md-modal-head">
580
+ <h2 id="mcpPackageModalTitle">MCP 管理</h2>
581
+ <div class="modal-head-actions modal-head-actions--close-only">
582
+ <button type="button" class="agent-md-modal-close" id="btnMcpPackageModalClose" aria-label="关闭">
583
+ &times;
584
+ </button>
585
+ </div>
586
+ </div>
587
+ <div class="tool-files-body">
588
+ <div class="modal-body-actions">
589
+ <button type="button" class="btn-system-settings" id="btnMcpPackageImport">导入 zip</button>
590
+ </div>
591
+ <p class="tool-files-meta" id="mcpPackageMeta"></p>
592
+ <div id="mcpPackageList" class="tool-files-list"></div>
593
+ </div>
594
+ <div class="agent-md-modal-foot">
595
+ <button type="button" class="btn-agent-md-cancel" id="btnMcpPackageClose">取消</button>
596
+ </div>
597
+ <input type="file" id="mcpPackageImportInput" accept=".zip,application/zip" style="display: none" />
598
+ </div>
599
+ </div>
600
+
601
+ <div id="skillPackageModal" class="agent-md-modal" aria-hidden="true">
602
+ <div class="agent-md-modal-backdrop" id="skillPackageModalBackdrop"></div>
603
+ <div class="agent-md-modal-card modal-unified" role="dialog" aria-modal="true" aria-labelledby="skillPackageModalTitle">
604
+ <div class="agent-md-modal-head">
605
+ <h2 id="skillPackageModalTitle">Skill 管理</h2>
606
+ <div class="modal-head-actions modal-head-actions--close-only">
607
+ <button type="button" class="agent-md-modal-close" id="btnSkillPackageModalClose" aria-label="关闭">
608
+ &times;
609
+ </button>
610
+ </div>
611
+ </div>
612
+ <div class="tool-files-body">
613
+ <div class="modal-body-actions">
614
+ <button type="button" class="btn-system-settings" id="btnSkillPackageImport">导入 zip</button>
615
+ <button type="button" class="btn-system-settings" id="btnSkillPackageImportClawhub">
616
+ 从 SkillHub 导入
617
+ </button>
618
+ </div>
619
+ <div style="display: flex; gap: 0.5rem; margin-bottom: 0.65rem">
620
+ <input
621
+ id="skillPackageClawhubInput"
622
+ type="text"
623
+ placeholder="粘贴 SkillHub skill 链接或 slug"
624
+ style="
625
+ flex: 1;
626
+ min-width: 0;
627
+ border: 1px solid var(--ds-separator);
628
+ border-radius: 10px;
629
+ padding: 0.45rem 0.7rem;
630
+ background: var(--ds-page);
631
+ color: var(--ds-text);
632
+ font-size: 13px;
633
+ "
634
+ />
635
+ </div>
636
+ <p class="tool-files-meta" id="skillPackageMeta"></p>
637
+ <div id="skillPackageList" class="tool-files-list"></div>
638
+ </div>
639
+ <div class="agent-md-modal-foot">
640
+ <button type="button" class="btn-agent-md-cancel" id="btnSkillPackageClose">取消</button>
641
+ </div>
642
+ <input type="file" id="skillPackageImportInput" accept=".zip,application/zip" style="display: none" />
643
+ </div>
644
+ </div>
645
+
646
+ <div id="runGroupModal" class="agent-md-modal" aria-hidden="true">
647
+ <div class="agent-md-modal-backdrop" id="runGroupModalBackdrop"></div>
648
+ <div class="agent-md-modal-card modal-unified" role="dialog" aria-modal="true" aria-labelledby="runGroupModalTitle">
649
+ <div class="agent-md-modal-head">
650
+ <h2 id="runGroupModalTitle">Run 消息详情</h2>
651
+ <div class="modal-head-actions modal-head-actions--close-only">
652
+ <button type="button" class="agent-md-modal-close" id="btnRunGroupModalClose" aria-label="关闭">
653
+ &times;
654
+ </button>
655
+ </div>
656
+ </div>
657
+ <div class="run-group-modal-body">
658
+ <div id="runGroupModalBody" class="chat-thread run-group-modal-chat-thread"></div>
659
+ </div>
660
+ </div>
661
+ </div>
662
+
663
+ <div id="scheduleManageModal" class="agent-md-modal" aria-hidden="true">
664
+ <div class="agent-md-modal-backdrop" id="scheduleManageModalBackdrop"></div>
665
+ <div id="scheduleManageModalCard" class="agent-md-modal-card modal-unified" role="dialog" aria-modal="true" aria-labelledby="scheduleManageModalTitle">
666
+ <div class="agent-md-modal-head">
667
+ <h2 id="scheduleManageModalTitle">定时任务</h2>
668
+ <div class="modal-head-actions modal-head-actions--close-only">
669
+ <button type="button" class="agent-md-modal-close" id="btnScheduleManageModalClose" aria-label="关闭">
670
+ &times;
671
+ </button>
672
+ </div>
673
+ </div>
674
+ <div class="tool-files-body">
675
+ <p id="scheduleManageMeta" class="tool-files-meta" style="margin: 0 0 0.5rem"></p>
676
+ <div class="schedule-manage-toolbar">
677
+ <button type="button" class="btn-system-settings" id="btnScheduleRefresh">刷新</button>
678
+ <button type="button" class="btn-system-settings" id="btnScheduleCreateToggle">新建任务</button>
679
+ </div>
680
+ <div id="scheduleCreateForm" class="schedule-create-form" hidden>
681
+ <div class="schedule-create-row">
682
+ <label for="scheduleTaskNameInput">任务名称</label>
683
+ <input id="scheduleTaskNameInput" type="text" maxlength="120" placeholder="例如:每日巡检" spellcheck="false" />
684
+ </div>
685
+ <div class="schedule-create-row">
686
+ <label for="schedulePromptInput">Prompt</label>
687
+ <textarea id="schedulePromptInput" placeholder="到期后发送给 agent 的提示词"></textarea>
688
+ </div>
689
+ <div class="schedule-create-row">
690
+ <label>触发方式</label>
691
+ <div style="display:flex;gap:0.75rem;align-items:center;font-size:0.78rem">
692
+ <label><input type="radio" name="scheduleTriggerMode" value="delay" checked /> 相对分钟</label>
693
+ <label><input type="radio" name="scheduleTriggerMode" value="cron" /> Cron</label>
694
+ <label><input type="checkbox" id="scheduleRecurringInput" /> 循环</label>
695
+ </div>
696
+ </div>
697
+ <div class="schedule-create-row" id="scheduleDelayRow">
698
+ <label for="scheduleDelayMinutesInput">delayMinutes(1~10080)</label>
699
+ <input id="scheduleDelayMinutesInput" type="number" min="1" max="10080" value="5" />
700
+ </div>
701
+ <div class="schedule-create-row" id="scheduleCronRow" hidden>
702
+ <label for="scheduleCronInput">Cron(5 段,本地时区)</label>
703
+ <input id="scheduleCronInput" type="text" placeholder="30 9 * * *" />
704
+ </div>
705
+ <div class="schedule-create-actions">
706
+ <button type="button" class="btn-agent-md-cancel" id="btnScheduleCreateCancel">取消</button>
707
+ <button type="button" class="btn-agent-md-save" id="btnScheduleCreateSubmit">创建</button>
708
+ </div>
709
+ </div>
710
+ <div class="schedule-manage-table-wrap">
711
+ <table class="schedule-manage-table">
712
+ <thead>
713
+ <tr>
714
+ <th>ID</th>
715
+ <th>任务名称</th>
716
+ <th>Cron</th>
717
+ <th>下次执行</th>
718
+ <th>Prompt</th>
719
+ <th>类型</th>
720
+ <th>状态</th>
721
+ <th>操作</th>
722
+ </tr>
723
+ </thead>
724
+ <tbody id="scheduleTaskTableBody"></tbody>
725
+ </table>
726
+ <div id="scheduleManageEmpty" class="schedule-manage-empty" hidden>暂无定时任务</div>
727
+ </div>
728
+ </div>
729
+ </div>
730
+ </div>
731
+
732
+ <div id="scheduleRunsModal" class="agent-md-modal" aria-hidden="true">
733
+ <div class="agent-md-modal-backdrop" id="scheduleRunsModalBackdrop"></div>
734
+ <div id="scheduleRunsModalCard" class="agent-md-modal-card modal-unified" role="dialog" aria-modal="true" aria-labelledby="scheduleRunsModalTitle">
735
+ <div class="agent-md-modal-head">
736
+ <h2 id="scheduleRunsModalTitle">执行记录</h2>
737
+ <div class="modal-head-actions modal-head-actions--close-only">
738
+ <button type="button" class="agent-md-modal-close" id="btnScheduleRunsModalClose" aria-label="关闭">
739
+ &times;
740
+ </button>
741
+ </div>
742
+ </div>
743
+ <div class="tool-files-body">
744
+ <p id="scheduleRunsMeta" class="tool-files-meta" style="margin: 0 0 0.5rem"></p>
745
+ <div class="schedule-manage-toolbar">
746
+ <button type="button" class="btn-system-settings" id="btnScheduleRunsRefresh">刷新</button>
747
+ </div>
748
+ <div class="schedule-manage-table-wrap">
749
+ <table class="schedule-manage-table">
750
+ <thead>
751
+ <tr>
752
+ <th>Run ID</th>
753
+ <th>创建时间</th>
754
+ <th>触发</th>
755
+ <th>状态</th>
756
+ <th>耗时</th>
757
+ <th>结果摘要</th>
758
+ <th>操作</th>
759
+ </tr>
760
+ </thead>
761
+ <tbody id="scheduleRunsTableBody"></tbody>
762
+ </table>
763
+ <div id="scheduleRunsEmpty" class="schedule-manage-empty" hidden>暂无执行记录</div>
764
+ </div>
765
+ <pre id="scheduleRunResultPre" class="schedule-runs-result-pre" hidden></pre>
766
+ </div>
767
+ </div>
768
+ </div>
769
+
770
+ </div>
771
+
772
+ <div id="sidebarHoverTip" class="sidebar-hover-tip" role="tooltip" hidden></div>
773
+ <div
774
+ class="agent-switch-dropdown"
775
+ id="agentSwitchDropdown"
776
+ role="listbox"
777
+ aria-label="切换 agent"
778
+ hidden
779
+ ></div>
780
+ <script src="https://cdn.jsdelivr.net/npm/marked@12.0.2/marked.min.js"></script>
781
+ <script src="/ws-test.js"></script>
782
+ </body>
783
+ </html>