xiaozhi-client 1.9.4-beta.1 → 1.9.4-beta.10

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 (114) hide show
  1. package/dist/backend/Logger.js +3 -0
  2. package/dist/backend/Logger.js.map +1 -0
  3. package/dist/backend/WebServer.js +93 -0
  4. package/dist/backend/WebServer.js.map +1 -0
  5. package/dist/backend/WebServerLauncher.js +11 -17
  6. package/dist/backend/WebServerLauncher.js.map +1 -1
  7. package/dist/backend/managers/MCPServiceManagerSingleton.js +27 -0
  8. package/dist/backend/managers/MCPServiceManagerSingleton.js.map +1 -0
  9. package/dist/backend/package.json +31 -50
  10. package/dist/backend/templates/json5/xiaozhi.config.json5 +14 -14
  11. package/dist/cli/index.js +29 -0
  12. package/dist/cli/index.js.map +1 -0
  13. package/dist/config/index.js +2 -0
  14. package/dist/config/index.js.map +1 -0
  15. package/dist/frontend/assets/index-88NfCOo9.js.map +1 -1
  16. package/dist/shared-types/api-aP8BHcbg.d.ts +97 -0
  17. package/dist/shared-types/api.d.ts +202 -0
  18. package/dist/shared-types/api.js +50 -0
  19. package/dist/shared-types/api.js.map +1 -0
  20. package/dist/shared-types/app-oAmColIN.d.ts +91 -0
  21. package/dist/shared-types/chunk-BMOKIX3Q.js +51 -0
  22. package/dist/shared-types/chunk-BMOKIX3Q.js.map +1 -0
  23. package/dist/shared-types/config.d.ts +97 -0
  24. package/dist/shared-types/config.js +1 -0
  25. package/dist/shared-types/config.js.map +1 -0
  26. package/dist/shared-types/coze.d.ts +30 -0
  27. package/dist/shared-types/coze.js +1 -0
  28. package/dist/shared-types/coze.js.map +1 -0
  29. package/dist/shared-types/index.d.ts +186 -0
  30. package/dist/shared-types/index.js +4 -17
  31. package/dist/shared-types/index.js.map +1 -1
  32. package/dist/shared-types/mcp.d.ts +91 -0
  33. package/dist/shared-types/mcp.js +22 -0
  34. package/dist/shared-types/mcp.js.map +1 -0
  35. package/dist/shared-types/message-xoOM7ZuT.d.ts +154 -0
  36. package/dist/shared-types/timeout-CCp_IFHg.d.ts +39 -0
  37. package/dist/shared-types/toolApi-DYSy8ebd.d.ts +208 -0
  38. package/dist/shared-types/utils.d.ts +115 -0
  39. package/dist/shared-types/utils.js +15 -0
  40. package/dist/shared-types/utils.js.map +1 -0
  41. package/dist/shared-types/workflow-DDqq5Jgp.d.ts +83 -0
  42. package/package.json +31 -50
  43. package/templates/json5/xiaozhi.config.json5 +14 -14
  44. package/dist/backend/WebServerLauncher.d.ts +0 -1
  45. package/dist/backend/cli.d.ts +0 -1
  46. package/dist/backend/cli.js +0 -129
  47. package/dist/backend/cli.js.map +0 -1
  48. package/dist/cli.js +0 -2
  49. package/dist/docs/404/index.html +0 -19
  50. package/dist/docs/404.html +0 -19
  51. package/dist/docs/_next/static/JZ0ESgtaHnsqkxSabOqqU/_buildManifest.js +0 -1
  52. package/dist/docs/_next/static/JZ0ESgtaHnsqkxSabOqqU/_ssgManifest.js +0 -1
  53. package/dist/docs/_next/static/chunks/112-c9cbd8401d35f825.js +0 -4
  54. package/dist/docs/_next/static/chunks/2a9bc5d7-4c434acf20ba934a.js +0 -1
  55. package/dist/docs/_next/static/chunks/782-c26ca6c69e488d48.js +0 -1
  56. package/dist/docs/_next/static/chunks/799-fe0d35806fd12012.js +0 -1
  57. package/dist/docs/_next/static/chunks/9b1cb2c3-cc9ed703e6aef1a2.js +0 -1
  58. package/dist/docs/_next/static/chunks/app/[[...mdxPath]]/page-48f5c8f3210e0a8a.js +0 -1
  59. package/dist/docs/_next/static/chunks/app/_not-found/page-2e38866a1cbb77e4.js +0 -1
  60. package/dist/docs/_next/static/chunks/app/layout-e8f420537fd59e8d.js +0 -1
  61. package/dist/docs/_next/static/chunks/framework-b73126dabbf07067.js +0 -1
  62. package/dist/docs/_next/static/chunks/main-75dc65850b89d90d.js +0 -1
  63. package/dist/docs/_next/static/chunks/main-app-3303134270964ce6.js +0 -1
  64. package/dist/docs/_next/static/chunks/pages/_app-e698a68d07c8993d.js +0 -1
  65. package/dist/docs/_next/static/chunks/pages/_error-189a41ab5833da03.js +0 -1
  66. package/dist/docs/_next/static/chunks/polyfills-42372ed130431b0a.js +0 -1
  67. package/dist/docs/_next/static/chunks/webpack-10e2bf7d852ddb6e.js +0 -1
  68. package/dist/docs/_next/static/css/2d82b615fcca1590.css +0 -1
  69. package/dist/docs/_next/static/css/b03484a3c350cf6e.css +0 -1
  70. package/dist/docs/_next/static/css/b289318ef4b60b0a.css +0 -1
  71. package/dist/docs/_next/static/media/get-parameter.62eee93d.png +0 -0
  72. package/dist/docs/changelog/index.html +0 -585
  73. package/dist/docs/changelog/index.txt +0 -1079
  74. package/dist/docs/images/add-to-cherry-studio/step-1.png +0 -0
  75. package/dist/docs/images/add-to-cherry-studio/step-2.png +0 -0
  76. package/dist/docs/images/add-to-cherry-studio/step-3.png +0 -0
  77. package/dist/docs/images/add-to-cherry-studio/step-4.png +0 -0
  78. package/dist/docs/images/add-to-cherry-studio/step-5.png +0 -0
  79. package/dist/docs/images/add-to-cursor/step-1.png +0 -0
  80. package/dist/docs/images/add-to-cursor/step-2.png +0 -0
  81. package/dist/docs/images/add-to-cursor/step-3.png +0 -0
  82. package/dist/docs/images/coze-workflow/config-workflow-step-1.png +0 -0
  83. package/dist/docs/images/coze-workflow/config-workflow-step-2.png +0 -0
  84. package/dist/docs/images/coze-workflow/config-workflow-step-3.png +0 -0
  85. package/dist/docs/images/coze-workflow/get-parameter.png +0 -0
  86. package/dist/docs/images/integrate-to-cherry-studio.png +0 -0
  87. package/dist/docs/images/integrate-to-cursor.png +0 -0
  88. package/dist/docs/images/modelscope/step-1.png +0 -0
  89. package/dist/docs/images/modelscope/step-2.png +0 -0
  90. package/dist/docs/images/modelscope/step-3.png +0 -0
  91. package/dist/docs/images/modelscope/step-4.png +0 -0
  92. package/dist/docs/images/preview.png +0 -0
  93. package/dist/docs/images/use-multi-xiaozhi-mcp-endpoints/step-1.png +0 -0
  94. package/dist/docs/images/use-multi-xiaozhi-mcp-endpoints/step-2.png +0 -0
  95. package/dist/docs/images/use-multi-xiaozhi-mcp-endpoints/step-3.png +0 -0
  96. package/dist/docs/images/use-multi-xiaozhi-mcp-endpoints/step-4.png +0 -0
  97. package/dist/docs/images/use-multi-xiaozhi-mcp-endpoints/step-5.png +0 -0
  98. package/dist/docs/images/web-ui-preview.png +0 -0
  99. package/dist/docs/index.html +0 -22
  100. package/dist/docs/index.txt +0 -41
  101. package/dist/docs/quickstart/index.html +0 -64
  102. package/dist/docs/quickstart/index.txt +0 -185
  103. package/dist/docs/reference/command/index.html +0 -20
  104. package/dist/docs/reference/command/index.txt +0 -42
  105. package/dist/docs/usage/as-mcp/index.html +0 -36
  106. package/dist/docs/usage/as-mcp/index.txt +0 -101
  107. package/dist/docs/usage/coze-workflow/index.html +0 -35
  108. package/dist/docs/usage/coze-workflow/index.txt +0 -120
  109. package/dist/docs/usage/docker/index.html +0 -40
  110. package/dist/docs/usage/docker/index.txt +0 -154
  111. package/dist/docs/usage/modelscope/index.html +0 -32
  112. package/dist/docs/usage/modelscope/index.txt +0 -109
  113. package/dist/docs/usage/multi-endpoint/index.html +0 -32
  114. package/dist/docs/usage/multi-endpoint/index.txt +0 -118
package/dist/cli.js DELETED
@@ -1,2 +0,0 @@
1
- // 向后兼容包装脚本 - 重定向到新的路径
2
- export * from './backend/cli.js';
@@ -1,19 +0,0 @@
1
- <!DOCTYPE html><!--JZ0ESgtaHnsqkxSabOqqU--><html lang="en" dir="ltr"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/b03484a3c350cf6e.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/2d82b615fcca1590.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/b289318ef4b60b0a.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-10e2bf7d852ddb6e.js"/><script src="/_next/static/chunks/9b1cb2c3-cc9ed703e6aef1a2.js" async=""></script><script src="/_next/static/chunks/799-fe0d35806fd12012.js" async=""></script><script src="/_next/static/chunks/main-app-3303134270964ce6.js" async=""></script><script src="/_next/static/chunks/2a9bc5d7-4c434acf20ba934a.js" async=""></script><script src="/_next/static/chunks/782-c26ca6c69e488d48.js" async=""></script><script src="/_next/static/chunks/app/%5B%5B...mdxPath%5D%5D/page-48f5c8f3210e0a8a.js" async=""></script><script src="/_next/static/chunks/112-c9cbd8401d35f825.js" async=""></script><script src="/_next/static/chunks/app/layout-e8f420537fd59e8d.js" async=""></script><meta name="robots" content="noindex"/><meta name="theme-color" media="(prefers-color-scheme: light)" content="rgb(250,250,250)"/><meta name="theme-color" media="(prefers-color-scheme: dark)" content="rgb(17,17,17)"/><title>404: This page could not be found.</title><style>:root {
2
- --nextra-primary-hue: 212deg;
3
- --nextra-primary-saturation: 100%;
4
- --nextra-primary-lightness: 45%;
5
- --nextra-bg: 250,250,250;
6
- --nextra-content-width: 90rem;
7
- }
8
- .dark {
9
- --nextra-primary-hue: 204deg;
10
- --nextra-primary-saturation: 100%;
11
- --nextra-primary-lightness: 55%;
12
- --nextra-bg: 17,17,17;
13
- }
14
- ::selection {
15
- background: hsla(var(--nextra-primary-hue),var(--nextra-primary-saturation),var(--nextra-primary-lightness),.3);
16
- }
17
- html {
18
- background: rgb(var(--nextra-bg));
19
- }</style><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","system",null,["light","dark"],null,true,true)</script><a href="#nextra-skip-nav" class="nextra-skip-nav x:sr-only" type="button" data-headlessui-state="">Skip to Content</a><header class="nextra-navbar x:sticky x:top-0 x:z-30 x:w-full x:bg-transparent x:print:hidden x:max-md:[.nextra-banner:not([class$=hidden])~&amp;]:top-(--nextra-banner-height)"><div class="nextra-navbar-blur x:absolute x:-z-1 x:size-full nextra-border x:border-b x:backdrop-blur-md x:bg-nextra-bg/70"></div><nav style="height:var(--nextra-navbar-height)" class="x:mx-auto x:flex x:max-w-(--nextra-content-width) x:items-center x:gap-4 x:pl-[max(env(safe-area-inset-left),1.5rem)] x:pr-[max(env(safe-area-inset-right),1.5rem)] x:justify-end"><a class="x:flex x:items-center x:me-auto x:transition-opacity x:focus-visible:nextra-focus x:hover:opacity-75" aria-label="Home page" href="/"><b>Xiaozhi Client</b></a><div class="x:flex x:gap-4 x:overflow-x-auto nextra-scrollbar x:py-1.5 x:max-md:hidden"></div><div class="x:max-md:hidden"><div class="nextra-search x:relative x:flex x:items-center x:text-gray-900 x:dark:text-gray-300 x:contrast-more:text-gray-800 x:contrast-more:dark:text-gray-300"><input spellCheck="false" autoComplete="off" class="x:rounded-lg x:px-3 x:py-2 x:transition-all x:w-full x:md:w-64 x:text-base x:leading-tight x:md:text-sm x:bg-black/[.05] x:dark:bg-gray-50/10 x:placeholder:text-gray-600 x:dark:placeholder:text-gray-400 x:contrast-more:border x:contrast-more:border-current x:[&amp;::-webkit-search-cancel-button]:appearance-none" placeholder="Search documentation…" id="headlessui-combobox-input-_R_5ml7lb_" role="combobox" type="search" aria-expanded="false" aria-autocomplete="list" data-headlessui-state="" value=""/><kbd class="x:absolute x:my-1.5 x:select-none x:pointer-events-none x:end-1.5 x:transition-all x:h-5 x:rounded x:bg-nextra-bg x:px-1.5 x:font-mono x:text-[11px] x:font-medium x:text-gray-600 x:dark:text-gray-400 x:border nextra-border x:contrast-more:text-current x:items-center x:gap-1 x:flex x:max-sm:hidden not-prose x:invisible x:opacity-0">CTRL K</kbd></div></div><a href="https://github.com/shenjingnan/xiaozhi-client" target="_blank" rel="noreferrer" class="x:focus-visible:nextra-focus"><svg fill="currentColor" viewBox="3 3 18 18" height="24" aria-label="Project repository"><path d="M12 3C7.0275 3 3 7.12937 3 12.2276C3 16.3109 5.57625 19.7597 9.15374 20.9824C9.60374 21.0631 9.77249 20.7863 9.77249 20.5441C9.77249 20.3249 9.76125 19.5982 9.76125 18.8254C7.5 19.2522 6.915 18.2602 6.735 17.7412C6.63375 17.4759 6.19499 16.6569 5.8125 16.4378C5.4975 16.2647 5.0475 15.838 5.80124 15.8264C6.51 15.8149 7.01625 16.4954 7.18499 16.7723C7.99499 18.1679 9.28875 17.7758 9.80625 17.5335C9.885 16.9337 10.1212 16.53 10.38 16.2993C8.3775 16.0687 6.285 15.2728 6.285 11.7432C6.285 10.7397 6.63375 9.9092 7.20749 9.26326C7.1175 9.03257 6.8025 8.08674 7.2975 6.81794C7.2975 6.81794 8.05125 6.57571 9.77249 7.76377C10.4925 7.55615 11.2575 7.45234 12.0225 7.45234C12.7875 7.45234 13.5525 7.55615 14.2725 7.76377C15.9937 6.56418 16.7475 6.81794 16.7475 6.81794C17.2424 8.08674 16.9275 9.03257 16.8375 9.26326C17.4113 9.9092 17.76 10.7281 17.76 11.7432C17.76 15.2843 15.6563 16.0687 13.6537 16.2993C13.98 16.5877 14.2613 17.1414 14.2613 18.0065C14.2613 19.2407 14.25 20.2326 14.25 20.5441C14.25 20.7863 14.4188 21.0746 14.8688 20.9824C16.6554 20.364 18.2079 19.1866 19.3078 17.6162C20.4077 16.0457 20.9995 14.1611 21 12.2276C21 7.12937 16.9725 3 12 3Z"></path></svg></a><a href="https://qun.qq.com/universal-share/share?ac=1&amp;authKey=c08PvS2zvAF1NN%2F%2BuaOi0ze1AElTIsvFBLwbWUMFc2ixjaZYxqZTUQHzipwd8Kka&amp;busi_data=eyJncm91cENvZGUiOiIxMDU0ODg4NDczIiwidG9rZW4iOiJuSmJUN2cyUEVkNEQ5WXovM3RQbFVNcDluMGVibUNZTUQvL1RuQnFJRjBkZmRZQnRBRTdwU0szL3V2Y0dLc1ZmIiwidWluIjoiMzkxMTcyMDYwMCJ9&amp;data=9cH6_zEC-sN3xYlwzKEWiYF71RLY9CId5taN-gy6XZo7axSlSWDpd1Ojui5hYMQKIgEJYSPw59XYgF5vH2wLog&amp;svctype=4&amp;tempid=h5_group_info" target="_blank" rel="noreferrer" class="x:focus-visible:nextra-focus"><svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32"><path d="M824.8 613.2c-16-51.4-34.4-94.6-62.7-165.3C766.5 262.2 689.3 112 511.5 112 331.7 112 256.2 265.2 261 447.9c-28.4 70.8-46.7 113.7-62.7 165.3-34 109.5-23 154.8-14.6 155.8 18 2.2 70.1-82.4 70.1-82.4 0 49 25.2 112.9 79.8 159-26.4 8.1-85.7 29.9-71.6 53.8 11.4 19.3 196.2 12.3 249.5 6.3 53.3 6 238.1 13 249.5-6.3 14.1-23.8-45.3-45.7-71.6-53.8 54.6-46.2 79.8-110.1 79.8-159 0 0 52.1 84.6 70.1 82.4 8.5-1.1 19.5-46.4-14.5-155.8z" p-id="4686"></path></svg></a><button class="x:transition x:cursor-pointer nextra-hamburger x:md:hidden" aria-label="Menu" type="button" data-headlessui-state=""><svg viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" stroke-linecap="round" height="24" class=""><g><path d="M4 6h16"></path></g><path d="M4 12h16"></path><g><path d="M4 18h16"></path></g></svg></button></nav></header><aside class="nextra-mobile-nav x:flex x:flex-col x:fixed x:inset-0 x:pt-(--nextra-navbar-height) x:z-20 x:overscroll-contain x:[contain:layout_style] x:md:hidden x:[.nextra-banner:not([class$=hidden])~&amp;]:pt-[calc(var(--nextra-banner-height)+var(--nextra-navbar-height))] x:bg-nextra-bg x:[transform:translate3d(0,-100%,0)]"><div class="x:px-4 x:pt-4"><div class="nextra-search x:relative x:flex x:items-center x:text-gray-900 x:dark:text-gray-300 x:contrast-more:text-gray-800 x:contrast-more:dark:text-gray-300"><input spellCheck="false" autoComplete="off" class="x:rounded-lg x:px-3 x:py-2 x:transition-all x:w-full x:md:w-64 x:text-base x:leading-tight x:md:text-sm x:bg-black/[.05] x:dark:bg-gray-50/10 x:placeholder:text-gray-600 x:dark:placeholder:text-gray-400 x:contrast-more:border x:contrast-more:border-current x:[&amp;::-webkit-search-cancel-button]:appearance-none" placeholder="Search documentation…" id="headlessui-combobox-input-_R_mqrlb_" role="combobox" type="search" aria-expanded="false" aria-autocomplete="list" data-headlessui-state="" value=""/><kbd class="x:absolute x:my-1.5 x:select-none x:pointer-events-none x:end-1.5 x:transition-all x:h-5 x:rounded x:bg-nextra-bg x:px-1.5 x:font-mono x:text-[11px] x:font-medium x:text-gray-600 x:dark:text-gray-400 x:border nextra-border x:contrast-more:text-current x:items-center x:gap-1 x:flex x:max-sm:hidden not-prose x:invisible x:opacity-0">CTRL K</kbd></div></div><ul class="x:grid x:gap-1 x:p-4 x:overflow-y-auto nextra-scrollbar nextra-mask"><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/">介绍</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/quickstart/">快速上手</a></li><li class="open"><button class="x:transition x:cursor-pointer x:items-center x:justify-between x:gap-2 x:text-start x:w-full x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" data-href="/usage" type="button" data-headlessui-state="">使用姿势<svg viewBox="0 0 24 24" stroke="currentColor" fill="none" stroke-width="2" height="18" class="x:shrink-0 x:rounded-sm x:p-0.5 x:hover:bg-gray-800/5 x:dark:hover:bg-gray-100/5 x:motion-reduce:transition-none x:origin-center x:transition-all x:rtl:-rotate-180 x:ltr:rotate-90 x:rtl:-rotate-270"><path d="M9 5l7 7-7 7" stroke-linecap="round" stroke-linejoin="round"></path></svg></button><div class="x:transform-gpu x:transition-all x:ease-in-out x:motion-reduce:transition-none x:opacity-100" style="transition-duration:500ms"><ul class="x:grid x:gap-1 x:relative x:before:absolute x:before:inset-y-1 x:before:w-px x:before:bg-gray-200 x:before:content-[&quot;&quot;] x:dark:before:bg-neutral-800 x:ps-3 x:before:start-0 x:pt-1 x:ms-3"><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/usage/docker/">使用 Docker 部署</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/usage/modelscope/">使用 魔搭社区 MCP</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/usage/coze-workflow/">集成扣子工作流</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/usage/multi-endpoint/">配置多个小智接入点</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/usage/as-mcp/">作为 MCP 服务使用</a></li></ul></div></li><li class="open"><button class="x:transition x:cursor-pointer x:items-center x:justify-between x:gap-2 x:text-start x:w-full x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" data-href="/reference" type="button" data-headlessui-state="">参考手册<svg viewBox="0 0 24 24" stroke="currentColor" fill="none" stroke-width="2" height="18" class="x:shrink-0 x:rounded-sm x:p-0.5 x:hover:bg-gray-800/5 x:dark:hover:bg-gray-100/5 x:motion-reduce:transition-none x:origin-center x:transition-all x:rtl:-rotate-180 x:ltr:rotate-90 x:rtl:-rotate-270"><path d="M9 5l7 7-7 7" stroke-linecap="round" stroke-linejoin="round"></path></svg></button><div class="x:transform-gpu x:transition-all x:ease-in-out x:motion-reduce:transition-none x:opacity-100" style="transition-duration:500ms"><ul class="x:grid x:gap-1 x:relative x:before:absolute x:before:inset-y-1 x:before:w-px x:before:bg-gray-200 x:before:content-[&quot;&quot;] x:dark:before:bg-neutral-800 x:ps-3 x:before:start-0 x:pt-1 x:ms-3"><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/reference/command/">常用命令</a></li></ul></div></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/changelog/">更新日志</a></li></ul><div class="nextra-sidebar-footer x:border-t nextra-border x:flex x:items-center x:gap-2 x:py-4 x:mx-4 x:mt-auto"><button title="Change theme" class="x:cursor-pointer x:h-7 x:rounded-md x:px-2 x:text-xs x:font-medium x:transition-colors x:text-gray-600 x:dark:text-gray-400 x:flex x:items-center x:gap-2 x:grow" id="headlessui-listbox-button-_R_rerlb_" type="button" aria-haspopup="listbox" aria-expanded="false" data-headlessui-state=""><svg fill="currentColor" viewBox="2 2 20 20" stroke="currentColor" height="12"><path stroke-linecap="round" stroke-width="2" d="M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"></path></svg>Light</button></div></aside><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>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)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><div class="x:bg-gray-100 x:pb-[env(safe-area-inset-bottom)] x:dark:bg-neutral-900 x:print:bg-transparent"><hr class="nextra-border"/><footer class="x:mx-auto x:flex x:max-w-(--nextra-content-width) x:justify-center x:py-12 x:text-gray-600 x:dark:text-gray-400 x:md:justify-start x:pl-[max(env(safe-area-inset-left),1.5rem)] x:pr-[max(env(safe-area-inset-right),1.5rem)]">MIT <!-- -->2025<!-- --> © Xiaozhi Client.</footer></div><script src="/_next/static/chunks/webpack-10e2bf7d852ddb6e.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n3:I[6320,[],\"\"]\n4:I[7862,[],\"\"]\n5:I[6461,[],\"OutletBoundary\"]\n7:I[7320,[],\"AsyncMetadataOutlet\"]\n9:I[6461,[],\"ViewportBoundary\"]\nb:I[6461,[],\"MetadataBoundary\"]\nc:\"$Sreact.suspense\"\ne:I[7516,[],\"\"]\n:HL[\"/_next/static/css/b03484a3c350cf6e.css\",\"style\"]\n:HL[\"/_next/static/css/2d82b615fcca1590.css\",\"style\"]\n:HL[\"/_next/static/css/b289318ef4b60b0a.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"JZ0ESgtaHnsqkxSabOqqU\",\"p\":\"\",\"c\":[\"\",\"_not-found\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/b03484a3c350cf6e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/2d82b615fcca1590.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/b289318ef4b60b0a.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],\"$L2\"]}],{\"children\":[\"/_not-found\",[\"$\",\"$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__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"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.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$L6\",[\"$\",\"$L7\",null,{\"promise\":\"$@8\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$L9\",null,{\"children\":\"$La\"}],null],[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$c\",null,{\"fallback\":null,\"children\":\"$Ld\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"f:I[6659,[\"562\",\"static/chunks/2a9bc5d7-4c434acf20ba934a.js\",\"782\",\"static/chunks/782-c26ca6c69e488d48.js\",\"217\",\"static/chunks/app/%5B%5B...mdxPath%5D%5D/page-48f5c8f3210e0a8a.js\"],\"ThemeConfigProvider\"]\n10:I[1941,[\"562\",\"static/chunks/2a9bc5d7-4c434acf20ba934a.js\",\"782\",\"static/chunks/782-c26ca6c69e488d48.js\",\"217\",\"static/chunks/app/%5B%5B...mdxPath%5D%5D/page-48f5c8f3210e0a8a.js\"],\"LastUpdated\"]\n11:I[3015,[\"562\",\"static/chunks/2a9bc5d7-4c434acf20ba934a.js\",\"782\",\"static/chunks/782-c26ca6c69e488d48.js\",\"112\",\"static/chunks/112-c9cbd8401d35f825.js\",\"177\",\"static/chunks/app/layout-e8f420537fd59e8d.js\"],\"Search\"]\n12:I[2002,[\"562\",\"static/chunks/2a9bc5d7-4c434acf20ba934a.js\",\"782\",\"static/chunks/782-c26ca6c69e488d48.js\",\"112\",\"static/chunks/112-c9cbd8401d35f825.js\",\"177\",\"static/chunks/app/layout-e8f420537fd59e8d.js\"],\"ThemeProvider\"]\n13:I[4717,[\"562\",\"static/chunks/2a9bc5d7-4c434acf20ba934a.js\",\"782\",\"static/chunks/782-c26ca6c69e488d48.js\",\"217\",\"static/chunks/app/%5B%5B...mdxPath%5D%5D/page-48f5c8f3210e0a8a.js\"],\"SkipNavLink\"]\n14:I[8750,[\"562\",\"static/chunks/2a9bc5d7-4c434acf20ba934a.js\",\"782\",\"static/chunks/782-c26ca6c69e488d48.js\",\"217\",\"static/chunks/app/%5B%5B...mdxPath%5D%5D/page-48f5c8f3210e0a8a.js\"],\"ConfigProvider\"]\n15:I[6193,[\"562\",\"static/chunks/2a9bc5d7-4c434acf20ba934a.js\",\"782\",\"static/chunks/782-c26ca6c69e488d48.js\",\"217\",\"static/chunks/app/%5B%5B...mdxPath%5D%5D/page-48f5c8f3210e0a8a.js\"],\"\"]\n"])</script><script>self.__next_f.push([1,"2:[\"$\",\"html\",null,{\"lang\":\"en\",\"dir\":\"ltr\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$undefined\",[\"$\",\"style\",null,{\"children\":\":root {\\n --nextra-primary-hue: 212deg;\\n --nextra-primary-saturation: 100%;\\n --nextra-primary-lightness: 45%;\\n --nextra-bg: 250,250,250;\\n --nextra-content-width: 90rem;\\n}\\n.dark {\\n --nextra-primary-hue: 204deg;\\n --nextra-primary-saturation: 100%;\\n --nextra-primary-lightness: 55%;\\n --nextra-bg: 17,17,17;\\n}\\n::selection {\\n background: hsla(var(--nextra-primary-hue),var(--nextra-primary-saturation),var(--nextra-primary-lightness),.3);\\n}\\nhtml {\\n background: rgb(var(--nextra-bg));\\n}\"}],[\"$\",\"meta\",null,{\"name\":\"theme-color\",\"media\":\"(prefers-color-scheme: light)\",\"content\":\"rgb(250,250,250)\"}],[\"$\",\"meta\",null,{\"name\":\"theme-color\",\"media\":\"(prefers-color-scheme: dark)\",\"content\":\"rgb(17,17,17)\"}],\"$undefined\"]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"$Lf\",null,{\"value\":{\"copyPageButton\":true,\"darkMode\":true,\"docsRepositoryBase\":\"https://github.com/shenjingnan/xiaozhi-client/tree/main/docs\",\"editLink\":\"Edit this page\",\"feedback\":{\"content\":\"Question? Give us feedback\",\"labels\":\"feedback\"},\"i18n\":[],\"lastUpdated\":[\"$\",\"$L10\",null,{}],\"navigation\":{\"next\":true,\"prev\":true},\"search\":[\"$\",\"$L11\",null,{}],\"sidebar\":{\"defaultMenuCollapseLevel\":2,\"defaultOpen\":true,\"toggleButton\":true},\"themeSwitch\":{\"dark\":\"Dark\",\"light\":\"Light\",\"system\":\"System\"},\"toc\":{\"backToTop\":\"Scroll to top\",\"float\":true,\"title\":\"On This Page\"}},\"children\":[\"$\",\"$L12\",null,{\"attribute\":\"class\",\"defaultTheme\":\"system\",\"disableTransitionOnChange\":true,\"storageKey\":\"theme\",\"children\":[[\"$\",\"$L13\",null,{}],\"$undefined\",[\"$\",\"$L14\",null,{\"pageMap\":[{\"data\":{\"index\":{\"title\":\"介绍\"},\"quickstart\":{\"title\":\"快速上手\"},\"usage\":{\"title\":\"使用姿势\"},\"reference\":{\"title\":\"参考手册\"}}},{\"name\":\"index\",\"route\":\"/\",\"frontMatter\":{\"title\":\"Index\",\"filePath\":\"content/index.mdx\",\"timestamp\":1766638877000},\"title\":\"介绍\"},{\"name\":\"quickstart\",\"route\":\"/quickstart\",\"frontMatter\":{\"title\":\"快速上手\",\"filePath\":\"content/quickstart.mdx\",\"timestamp\":1766638877000},\"title\":\"快速上手\"},{\"name\":\"usage\",\"route\":\"/usage\",\"children\":[{\"data\":{\"docker\":{\"title\":\"使用 Docker 部署\"},\"modelscope\":{\"title\":\"使用 魔搭社区 MCP\"},\"coze-workflow\":{\"title\":\"集成扣子工作流\"},\"multi-endpoint\":{\"title\":\"配置多个小智接入点\"},\"as-mcp\":{\"title\":\"作为 MCP 服务使用\"}}},{\"name\":\"docker\",\"route\":\"/usage/docker\",\"frontMatter\":{\"title\":\"使用 Docker 部署\",\"filePath\":\"content/usage/docker.mdx\",\"timestamp\":1766638877000},\"title\":\"使用 Docker 部署\"},{\"name\":\"modelscope\",\"route\":\"/usage/modelscope\",\"frontMatter\":{\"title\":\"使用 魔搭社区 MCP\",\"filePath\":\"content/usage/modelscope.mdx\",\"timestamp\":1766638877000},\"title\":\"使用 魔搭社区 MCP\"},{\"name\":\"coze-workflow\",\"route\":\"/usage/coze-workflow\",\"frontMatter\":{\"title\":\"集成扣子工作流\",\"filePath\":\"content/usage/coze-workflow.mdx\",\"timestamp\":1766638877000},\"title\":\"集成扣子工作流\"},{\"name\":\"multi-endpoint\",\"route\":\"/usage/multi-endpoint\",\"frontMatter\":{\"title\":\"配置多个小智接入点\",\"filePath\":\"content/usage/multi-endpoint.mdx\",\"timestamp\":1766638877000},\"title\":\"配置多个小智接入点\"},{\"name\":\"as-mcp\",\"route\":\"/usage/as-mcp\",\"frontMatter\":{\"title\":\"作为 MCP 服务使用\",\"filePath\":\"content/usage/as-mcp.mdx\",\"timestamp\":1766638877000},\"title\":\"作为 MCP 服务使用\"}],\"title\":\"使用姿势\"},{\"name\":\"reference\",\"route\":\"/reference\",\"children\":[{\"data\":{\"command\":{\"title\":\"常用命令\"}}},{\"name\":\"command\",\"route\":\"/reference/command\",\"frontMatter\":{\"title\":\"常用命令\",\"filePath\":\"content/reference/command.mdx\",\"timestamp\":1766638877000},\"title\":\"常用命令\"}],\"title\":\"参考手册\"},{\"name\":\"changelog\",\"route\":\"/changelog\",\"frontMatter\":{\"title\":\"更新日志\",\"filePath\":\"content/changelog.mdx\",\"timestamp\":1766638877000},\"title\":\"更新日志\"}],\"navbar\":[\"$\",\"header\",null,{\"className\":\"nextra-navbar x:sticky x:top-0 x:z-30 x:w-full x:bg-transparent x:print:hidden x:max-md:[.nextra-banner:not([class$=hidden])~\u0026]:top-(--nextra-banner-height)\",\"children\":[[\"$\",\"div\",null,{\"className\":\"nextra-navbar-blur x:absolute x:-z-1 x:size-full nextra-border x:border-b x:backdrop-blur-md x:bg-nextra-bg/70\"}],[\"$\",\"nav\",null,{\"style\":{\"height\":\"var(--nextra-navbar-height)\"},\"className\":\"x:mx-auto x:flex x:max-w-(--nextra-content-width) x:items-center x:gap-4 x:pl-[max(env(safe-area-inset-left),1.5rem)] x:pr-[max(env(safe-area-inset-right),1.5rem)] x:justify-end\",\"children\":[[\"$\",\"$L15\",null,{\"href\":\"/\",\"className\":\"x:flex x:items-center x:me-auto x:transition-opacity x:focus-visible:nextra-focus x:hover:opacity-75\",\"aria-label\":\"Home page\",\"children\":\"$L16\"}],\"$L17\"]}]]}],\"footer\":\"$L18\",\"children\":[\"$L19\",\"$L1a\"]}]]}]}]}]]}]\n"])</script><script>self.__next_f.push([1,"1b:I[4730,[\"562\",\"static/chunks/2a9bc5d7-4c434acf20ba934a.js\",\"782\",\"static/chunks/782-c26ca6c69e488d48.js\",\"217\",\"static/chunks/app/%5B%5B...mdxPath%5D%5D/page-48f5c8f3210e0a8a.js\"],\"ClientNavbar\"]\n1d:I[2779,[\"562\",\"static/chunks/2a9bc5d7-4c434acf20ba934a.js\",\"782\",\"static/chunks/782-c26ca6c69e488d48.js\",\"217\",\"static/chunks/app/%5B%5B...mdxPath%5D%5D/page-48f5c8f3210e0a8a.js\"],\"Switchers\"]\n1e:I[8704,[\"562\",\"static/chunks/2a9bc5d7-4c434acf20ba934a.js\",\"782\",\"static/chunks/782-c26ca6c69e488d48.js\",\"217\",\"static/chunks/app/%5B%5B...mdxPath%5D%5D/page-48f5c8f3210e0a8a.js\"],\"LocaleSwitch\"]\n1f:I[6744,[\"562\",\"static/chunks/2a9bc5d7-4c434acf20ba934a.js\",\"782\",\"static/chunks/782-c26ca6c69e488d48.js\",\"217\",\"static/chunks/app/%5B%5B...mdxPath%5D%5D/page-48f5c8f3210e0a8a.js\"],\"ThemeSwitch\"]\n20:I[9838,[\"562\",\"static/chunks/2a9bc5d7-4c434acf20ba934a.js\",\"782\",\"static/chunks/782-c26ca6c69e488d48.js\",\"217\",\"static/chunks/app/%5B%5B...mdxPath%5D%5D/page-48f5c8f3210e0a8a.js\"],\"MobileNav\"]\n16:[\"$\",\"b\",null,{\"children\":\"Xiaozhi Client\"}]\n1c:T481,"])</script><script>self.__next_f.push([1,"M12 3C7.0275 3 3 7.12937 3 12.2276C3 16.3109 5.57625 19.7597 9.15374 20.9824C9.60374 21.0631 9.77249 20.7863 9.77249 20.5441C9.77249 20.3249 9.76125 19.5982 9.76125 18.8254C7.5 19.2522 6.915 18.2602 6.735 17.7412C6.63375 17.4759 6.19499 16.6569 5.8125 16.4378C5.4975 16.2647 5.0475 15.838 5.80124 15.8264C6.51 15.8149 7.01625 16.4954 7.18499 16.7723C7.99499 18.1679 9.28875 17.7758 9.80625 17.5335C9.885 16.9337 10.1212 16.53 10.38 16.2993C8.3775 16.0687 6.285 15.2728 6.285 11.7432C6.285 10.7397 6.63375 9.9092 7.20749 9.26326C7.1175 9.03257 6.8025 8.08674 7.2975 6.81794C7.2975 6.81794 8.05125 6.57571 9.77249 7.76377C10.4925 7.55615 11.2575 7.45234 12.0225 7.45234C12.7875 7.45234 13.5525 7.55615 14.2725 7.76377C15.9937 6.56418 16.7475 6.81794 16.7475 6.81794C17.2424 8.08674 16.9275 9.03257 16.8375 9.26326C17.4113 9.9092 17.76 10.7281 17.76 11.7432C17.76 15.2843 15.6563 16.0687 13.6537 16.2993C13.98 16.5877 14.2613 17.1414 14.2613 18.0065C14.2613 19.2407 14.25 20.2326 14.25 20.5441C14.25 20.7863 14.4188 21.0746 14.8688 20.9824C16.6554 20.364 18.2079 19.1866 19.3078 17.6162C20.4077 16.0457 20.9995 14.1611 21 12.2276C21 7.12937 16.9725 3 12 3Z"])</script><script>self.__next_f.push([1,"17:[\"$\",\"$L1b\",null,{\"className\":\"\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://github.com/shenjingnan/xiaozhi-client\",\"target\":\"_blank\",\"rel\":\"noreferrer\",\"children\":[[\"$\",\"svg\",null,{\"fill\":\"currentColor\",\"viewBox\":\"3 3 18 18\",\"height\":\"24\",\"aria-label\":\"Project repository\",\"children\":[\"$\",\"path\",null,{\"d\":\"$1c\"}]}],false],\"className\":\"x:focus-visible:nextra-focus\"}],[\"$\",\"a\",null,{\"href\":\"https://qun.qq.com/universal-share/share?ac=1\u0026authKey=c08PvS2zvAF1NN%2F%2BuaOi0ze1AElTIsvFBLwbWUMFc2ixjaZYxqZTUQHzipwd8Kka\u0026busi_data=eyJncm91cENvZGUiOiIxMDU0ODg4NDczIiwidG9rZW4iOiJuSmJUN2cyUEVkNEQ5WXovM3RQbFVNcDluMGVibUNZTUQvL1RuQnFJRjBkZmRZQnRBRTdwU0szL3V2Y0dLc1ZmIiwidWluIjoiMzkxMTcyMDYwMCJ9\u0026data=9cH6_zEC-sN3xYlwzKEWiYF71RLY9CId5taN-gy6XZo7axSlSWDpd1Ojui5hYMQKIgEJYSPw59XYgF5vH2wLog\u0026svctype=4\u0026tempid=h5_group_info\",\"target\":\"_blank\",\"rel\":\"noreferrer\",\"children\":[[\"$\",\"svg\",null,{\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"32\",\"height\":\"32\",\"children\":[\"$\",\"path\",null,{\"d\":\"M824.8 613.2c-16-51.4-34.4-94.6-62.7-165.3C766.5 262.2 689.3 112 511.5 112 331.7 112 256.2 265.2 261 447.9c-28.4 70.8-46.7 113.7-62.7 165.3-34 109.5-23 154.8-14.6 155.8 18 2.2 70.1-82.4 70.1-82.4 0 49 25.2 112.9 79.8 159-26.4 8.1-85.7 29.9-71.6 53.8 11.4 19.3 196.2 12.3 249.5 6.3 53.3 6 238.1 13 249.5-6.3 14.1-23.8-45.3-45.7-71.6-53.8 54.6-46.2 79.8-110.1 79.8-159 0 0 52.1 84.6 70.1 82.4 8.5-1.1 19.5-46.4-14.5-155.8z\",\"p-id\":\"4686\"}]}],false],\"className\":\"x:focus-visible:nextra-focus\"}],\"$undefined\"]}]\n"])</script><script>self.__next_f.push([1,"18:[\"$\",\"div\",null,{\"className\":\"x:bg-gray-100 x:pb-[env(safe-area-inset-bottom)] x:dark:bg-neutral-900 x:print:bg-transparent\",\"children\":[[\"$\",\"$L1d\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"x:mx-auto x:flex x:max-w-(--nextra-content-width) x:gap-2 x:py-2 x:px-4\",\"children\":[[\"$\",\"$L1e\",null,{}],[\"$\",\"$L1f\",null,{}]]}]}],[\"$\",\"hr\",null,{\"className\":\"nextra-border\"}],[\"$\",\"footer\",null,{\"className\":\"x:mx-auto x:flex x:max-w-(--nextra-content-width) x:justify-center x:py-12 x:text-gray-600 x:dark:text-gray-400 x:md:justify-start x:pl-[max(env(safe-area-inset-left),1.5rem)] x:pr-[max(env(safe-area-inset-right),1.5rem)]\",\"children\":[\"MIT \",2025,\" © Xiaozhi Client.\"]}]]}]\n"])</script><script>self.__next_f.push([1,"19:[\"$\",\"$L20\",null,{}]\n1a:[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n6:null\n"])</script><script>self.__next_f.push([1,"8:{\"metadata\":[],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"d:\"$8:metadata\"\n"])</script></body></html>
@@ -1,19 +0,0 @@
1
- <!DOCTYPE html><!--JZ0ESgtaHnsqkxSabOqqU--><html lang="en" dir="ltr"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/b03484a3c350cf6e.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/2d82b615fcca1590.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/b289318ef4b60b0a.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-10e2bf7d852ddb6e.js"/><script src="/_next/static/chunks/9b1cb2c3-cc9ed703e6aef1a2.js" async=""></script><script src="/_next/static/chunks/799-fe0d35806fd12012.js" async=""></script><script src="/_next/static/chunks/main-app-3303134270964ce6.js" async=""></script><script src="/_next/static/chunks/2a9bc5d7-4c434acf20ba934a.js" async=""></script><script src="/_next/static/chunks/782-c26ca6c69e488d48.js" async=""></script><script src="/_next/static/chunks/app/%5B%5B...mdxPath%5D%5D/page-48f5c8f3210e0a8a.js" async=""></script><script src="/_next/static/chunks/112-c9cbd8401d35f825.js" async=""></script><script src="/_next/static/chunks/app/layout-e8f420537fd59e8d.js" async=""></script><meta name="robots" content="noindex"/><meta name="theme-color" media="(prefers-color-scheme: light)" content="rgb(250,250,250)"/><meta name="theme-color" media="(prefers-color-scheme: dark)" content="rgb(17,17,17)"/><title>404: This page could not be found.</title><style>:root {
2
- --nextra-primary-hue: 212deg;
3
- --nextra-primary-saturation: 100%;
4
- --nextra-primary-lightness: 45%;
5
- --nextra-bg: 250,250,250;
6
- --nextra-content-width: 90rem;
7
- }
8
- .dark {
9
- --nextra-primary-hue: 204deg;
10
- --nextra-primary-saturation: 100%;
11
- --nextra-primary-lightness: 55%;
12
- --nextra-bg: 17,17,17;
13
- }
14
- ::selection {
15
- background: hsla(var(--nextra-primary-hue),var(--nextra-primary-saturation),var(--nextra-primary-lightness),.3);
16
- }
17
- html {
18
- background: rgb(var(--nextra-bg));
19
- }</style><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","system",null,["light","dark"],null,true,true)</script><a href="#nextra-skip-nav" class="nextra-skip-nav x:sr-only" type="button" data-headlessui-state="">Skip to Content</a><header class="nextra-navbar x:sticky x:top-0 x:z-30 x:w-full x:bg-transparent x:print:hidden x:max-md:[.nextra-banner:not([class$=hidden])~&amp;]:top-(--nextra-banner-height)"><div class="nextra-navbar-blur x:absolute x:-z-1 x:size-full nextra-border x:border-b x:backdrop-blur-md x:bg-nextra-bg/70"></div><nav style="height:var(--nextra-navbar-height)" class="x:mx-auto x:flex x:max-w-(--nextra-content-width) x:items-center x:gap-4 x:pl-[max(env(safe-area-inset-left),1.5rem)] x:pr-[max(env(safe-area-inset-right),1.5rem)] x:justify-end"><a class="x:flex x:items-center x:me-auto x:transition-opacity x:focus-visible:nextra-focus x:hover:opacity-75" aria-label="Home page" href="/"><b>Xiaozhi Client</b></a><div class="x:flex x:gap-4 x:overflow-x-auto nextra-scrollbar x:py-1.5 x:max-md:hidden"></div><div class="x:max-md:hidden"><div class="nextra-search x:relative x:flex x:items-center x:text-gray-900 x:dark:text-gray-300 x:contrast-more:text-gray-800 x:contrast-more:dark:text-gray-300"><input spellCheck="false" autoComplete="off" class="x:rounded-lg x:px-3 x:py-2 x:transition-all x:w-full x:md:w-64 x:text-base x:leading-tight x:md:text-sm x:bg-black/[.05] x:dark:bg-gray-50/10 x:placeholder:text-gray-600 x:dark:placeholder:text-gray-400 x:contrast-more:border x:contrast-more:border-current x:[&amp;::-webkit-search-cancel-button]:appearance-none" placeholder="Search documentation…" id="headlessui-combobox-input-_R_5ml7lb_" role="combobox" type="search" aria-expanded="false" aria-autocomplete="list" data-headlessui-state="" value=""/><kbd class="x:absolute x:my-1.5 x:select-none x:pointer-events-none x:end-1.5 x:transition-all x:h-5 x:rounded x:bg-nextra-bg x:px-1.5 x:font-mono x:text-[11px] x:font-medium x:text-gray-600 x:dark:text-gray-400 x:border nextra-border x:contrast-more:text-current x:items-center x:gap-1 x:flex x:max-sm:hidden not-prose x:invisible x:opacity-0">CTRL K</kbd></div></div><a href="https://github.com/shenjingnan/xiaozhi-client" target="_blank" rel="noreferrer" class="x:focus-visible:nextra-focus"><svg fill="currentColor" viewBox="3 3 18 18" height="24" aria-label="Project repository"><path d="M12 3C7.0275 3 3 7.12937 3 12.2276C3 16.3109 5.57625 19.7597 9.15374 20.9824C9.60374 21.0631 9.77249 20.7863 9.77249 20.5441C9.77249 20.3249 9.76125 19.5982 9.76125 18.8254C7.5 19.2522 6.915 18.2602 6.735 17.7412C6.63375 17.4759 6.19499 16.6569 5.8125 16.4378C5.4975 16.2647 5.0475 15.838 5.80124 15.8264C6.51 15.8149 7.01625 16.4954 7.18499 16.7723C7.99499 18.1679 9.28875 17.7758 9.80625 17.5335C9.885 16.9337 10.1212 16.53 10.38 16.2993C8.3775 16.0687 6.285 15.2728 6.285 11.7432C6.285 10.7397 6.63375 9.9092 7.20749 9.26326C7.1175 9.03257 6.8025 8.08674 7.2975 6.81794C7.2975 6.81794 8.05125 6.57571 9.77249 7.76377C10.4925 7.55615 11.2575 7.45234 12.0225 7.45234C12.7875 7.45234 13.5525 7.55615 14.2725 7.76377C15.9937 6.56418 16.7475 6.81794 16.7475 6.81794C17.2424 8.08674 16.9275 9.03257 16.8375 9.26326C17.4113 9.9092 17.76 10.7281 17.76 11.7432C17.76 15.2843 15.6563 16.0687 13.6537 16.2993C13.98 16.5877 14.2613 17.1414 14.2613 18.0065C14.2613 19.2407 14.25 20.2326 14.25 20.5441C14.25 20.7863 14.4188 21.0746 14.8688 20.9824C16.6554 20.364 18.2079 19.1866 19.3078 17.6162C20.4077 16.0457 20.9995 14.1611 21 12.2276C21 7.12937 16.9725 3 12 3Z"></path></svg></a><a href="https://qun.qq.com/universal-share/share?ac=1&amp;authKey=c08PvS2zvAF1NN%2F%2BuaOi0ze1AElTIsvFBLwbWUMFc2ixjaZYxqZTUQHzipwd8Kka&amp;busi_data=eyJncm91cENvZGUiOiIxMDU0ODg4NDczIiwidG9rZW4iOiJuSmJUN2cyUEVkNEQ5WXovM3RQbFVNcDluMGVibUNZTUQvL1RuQnFJRjBkZmRZQnRBRTdwU0szL3V2Y0dLc1ZmIiwidWluIjoiMzkxMTcyMDYwMCJ9&amp;data=9cH6_zEC-sN3xYlwzKEWiYF71RLY9CId5taN-gy6XZo7axSlSWDpd1Ojui5hYMQKIgEJYSPw59XYgF5vH2wLog&amp;svctype=4&amp;tempid=h5_group_info" target="_blank" rel="noreferrer" class="x:focus-visible:nextra-focus"><svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32"><path d="M824.8 613.2c-16-51.4-34.4-94.6-62.7-165.3C766.5 262.2 689.3 112 511.5 112 331.7 112 256.2 265.2 261 447.9c-28.4 70.8-46.7 113.7-62.7 165.3-34 109.5-23 154.8-14.6 155.8 18 2.2 70.1-82.4 70.1-82.4 0 49 25.2 112.9 79.8 159-26.4 8.1-85.7 29.9-71.6 53.8 11.4 19.3 196.2 12.3 249.5 6.3 53.3 6 238.1 13 249.5-6.3 14.1-23.8-45.3-45.7-71.6-53.8 54.6-46.2 79.8-110.1 79.8-159 0 0 52.1 84.6 70.1 82.4 8.5-1.1 19.5-46.4-14.5-155.8z" p-id="4686"></path></svg></a><button class="x:transition x:cursor-pointer nextra-hamburger x:md:hidden" aria-label="Menu" type="button" data-headlessui-state=""><svg viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" stroke-linecap="round" height="24" class=""><g><path d="M4 6h16"></path></g><path d="M4 12h16"></path><g><path d="M4 18h16"></path></g></svg></button></nav></header><aside class="nextra-mobile-nav x:flex x:flex-col x:fixed x:inset-0 x:pt-(--nextra-navbar-height) x:z-20 x:overscroll-contain x:[contain:layout_style] x:md:hidden x:[.nextra-banner:not([class$=hidden])~&amp;]:pt-[calc(var(--nextra-banner-height)+var(--nextra-navbar-height))] x:bg-nextra-bg x:[transform:translate3d(0,-100%,0)]"><div class="x:px-4 x:pt-4"><div class="nextra-search x:relative x:flex x:items-center x:text-gray-900 x:dark:text-gray-300 x:contrast-more:text-gray-800 x:contrast-more:dark:text-gray-300"><input spellCheck="false" autoComplete="off" class="x:rounded-lg x:px-3 x:py-2 x:transition-all x:w-full x:md:w-64 x:text-base x:leading-tight x:md:text-sm x:bg-black/[.05] x:dark:bg-gray-50/10 x:placeholder:text-gray-600 x:dark:placeholder:text-gray-400 x:contrast-more:border x:contrast-more:border-current x:[&amp;::-webkit-search-cancel-button]:appearance-none" placeholder="Search documentation…" id="headlessui-combobox-input-_R_mqrlb_" role="combobox" type="search" aria-expanded="false" aria-autocomplete="list" data-headlessui-state="" value=""/><kbd class="x:absolute x:my-1.5 x:select-none x:pointer-events-none x:end-1.5 x:transition-all x:h-5 x:rounded x:bg-nextra-bg x:px-1.5 x:font-mono x:text-[11px] x:font-medium x:text-gray-600 x:dark:text-gray-400 x:border nextra-border x:contrast-more:text-current x:items-center x:gap-1 x:flex x:max-sm:hidden not-prose x:invisible x:opacity-0">CTRL K</kbd></div></div><ul class="x:grid x:gap-1 x:p-4 x:overflow-y-auto nextra-scrollbar nextra-mask"><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/">介绍</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/quickstart/">快速上手</a></li><li class="open"><button class="x:transition x:cursor-pointer x:items-center x:justify-between x:gap-2 x:text-start x:w-full x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" data-href="/usage" type="button" data-headlessui-state="">使用姿势<svg viewBox="0 0 24 24" stroke="currentColor" fill="none" stroke-width="2" height="18" class="x:shrink-0 x:rounded-sm x:p-0.5 x:hover:bg-gray-800/5 x:dark:hover:bg-gray-100/5 x:motion-reduce:transition-none x:origin-center x:transition-all x:rtl:-rotate-180 x:ltr:rotate-90 x:rtl:-rotate-270"><path d="M9 5l7 7-7 7" stroke-linecap="round" stroke-linejoin="round"></path></svg></button><div class="x:transform-gpu x:transition-all x:ease-in-out x:motion-reduce:transition-none x:opacity-100" style="transition-duration:500ms"><ul class="x:grid x:gap-1 x:relative x:before:absolute x:before:inset-y-1 x:before:w-px x:before:bg-gray-200 x:before:content-[&quot;&quot;] x:dark:before:bg-neutral-800 x:ps-3 x:before:start-0 x:pt-1 x:ms-3"><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/usage/docker/">使用 Docker 部署</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/usage/modelscope/">使用 魔搭社区 MCP</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/usage/coze-workflow/">集成扣子工作流</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/usage/multi-endpoint/">配置多个小智接入点</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/usage/as-mcp/">作为 MCP 服务使用</a></li></ul></div></li><li class="open"><button class="x:transition x:cursor-pointer x:items-center x:justify-between x:gap-2 x:text-start x:w-full x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" data-href="/reference" type="button" data-headlessui-state="">参考手册<svg viewBox="0 0 24 24" stroke="currentColor" fill="none" stroke-width="2" height="18" class="x:shrink-0 x:rounded-sm x:p-0.5 x:hover:bg-gray-800/5 x:dark:hover:bg-gray-100/5 x:motion-reduce:transition-none x:origin-center x:transition-all x:rtl:-rotate-180 x:ltr:rotate-90 x:rtl:-rotate-270"><path d="M9 5l7 7-7 7" stroke-linecap="round" stroke-linejoin="round"></path></svg></button><div class="x:transform-gpu x:transition-all x:ease-in-out x:motion-reduce:transition-none x:opacity-100" style="transition-duration:500ms"><ul class="x:grid x:gap-1 x:relative x:before:absolute x:before:inset-y-1 x:before:w-px x:before:bg-gray-200 x:before:content-[&quot;&quot;] x:dark:before:bg-neutral-800 x:ps-3 x:before:start-0 x:pt-1 x:ms-3"><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/reference/command/">常用命令</a></li></ul></div></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/changelog/">更新日志</a></li></ul><div class="nextra-sidebar-footer x:border-t nextra-border x:flex x:items-center x:gap-2 x:py-4 x:mx-4 x:mt-auto"><button title="Change theme" class="x:cursor-pointer x:h-7 x:rounded-md x:px-2 x:text-xs x:font-medium x:transition-colors x:text-gray-600 x:dark:text-gray-400 x:flex x:items-center x:gap-2 x:grow" id="headlessui-listbox-button-_R_rerlb_" type="button" aria-haspopup="listbox" aria-expanded="false" data-headlessui-state=""><svg fill="currentColor" viewBox="2 2 20 20" stroke="currentColor" height="12"><path stroke-linecap="round" stroke-width="2" d="M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"></path></svg>Light</button></div></aside><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>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)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><div class="x:bg-gray-100 x:pb-[env(safe-area-inset-bottom)] x:dark:bg-neutral-900 x:print:bg-transparent"><hr class="nextra-border"/><footer class="x:mx-auto x:flex x:max-w-(--nextra-content-width) x:justify-center x:py-12 x:text-gray-600 x:dark:text-gray-400 x:md:justify-start x:pl-[max(env(safe-area-inset-left),1.5rem)] x:pr-[max(env(safe-area-inset-right),1.5rem)]">MIT <!-- -->2025<!-- --> © Xiaozhi Client.</footer></div><script src="/_next/static/chunks/webpack-10e2bf7d852ddb6e.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n3:I[6320,[],\"\"]\n4:I[7862,[],\"\"]\n5:I[6461,[],\"OutletBoundary\"]\n7:I[7320,[],\"AsyncMetadataOutlet\"]\n9:I[6461,[],\"ViewportBoundary\"]\nb:I[6461,[],\"MetadataBoundary\"]\nc:\"$Sreact.suspense\"\ne:I[7516,[],\"\"]\n:HL[\"/_next/static/css/b03484a3c350cf6e.css\",\"style\"]\n:HL[\"/_next/static/css/2d82b615fcca1590.css\",\"style\"]\n:HL[\"/_next/static/css/b289318ef4b60b0a.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"JZ0ESgtaHnsqkxSabOqqU\",\"p\":\"\",\"c\":[\"\",\"_not-found\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/b03484a3c350cf6e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/2d82b615fcca1590.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/b289318ef4b60b0a.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],\"$L2\"]}],{\"children\":[\"/_not-found\",[\"$\",\"$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__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"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.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$L6\",[\"$\",\"$L7\",null,{\"promise\":\"$@8\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$L9\",null,{\"children\":\"$La\"}],null],[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$c\",null,{\"fallback\":null,\"children\":\"$Ld\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"f:I[6659,[\"562\",\"static/chunks/2a9bc5d7-4c434acf20ba934a.js\",\"782\",\"static/chunks/782-c26ca6c69e488d48.js\",\"217\",\"static/chunks/app/%5B%5B...mdxPath%5D%5D/page-48f5c8f3210e0a8a.js\"],\"ThemeConfigProvider\"]\n10:I[1941,[\"562\",\"static/chunks/2a9bc5d7-4c434acf20ba934a.js\",\"782\",\"static/chunks/782-c26ca6c69e488d48.js\",\"217\",\"static/chunks/app/%5B%5B...mdxPath%5D%5D/page-48f5c8f3210e0a8a.js\"],\"LastUpdated\"]\n11:I[3015,[\"562\",\"static/chunks/2a9bc5d7-4c434acf20ba934a.js\",\"782\",\"static/chunks/782-c26ca6c69e488d48.js\",\"112\",\"static/chunks/112-c9cbd8401d35f825.js\",\"177\",\"static/chunks/app/layout-e8f420537fd59e8d.js\"],\"Search\"]\n12:I[2002,[\"562\",\"static/chunks/2a9bc5d7-4c434acf20ba934a.js\",\"782\",\"static/chunks/782-c26ca6c69e488d48.js\",\"112\",\"static/chunks/112-c9cbd8401d35f825.js\",\"177\",\"static/chunks/app/layout-e8f420537fd59e8d.js\"],\"ThemeProvider\"]\n13:I[4717,[\"562\",\"static/chunks/2a9bc5d7-4c434acf20ba934a.js\",\"782\",\"static/chunks/782-c26ca6c69e488d48.js\",\"217\",\"static/chunks/app/%5B%5B...mdxPath%5D%5D/page-48f5c8f3210e0a8a.js\"],\"SkipNavLink\"]\n14:I[8750,[\"562\",\"static/chunks/2a9bc5d7-4c434acf20ba934a.js\",\"782\",\"static/chunks/782-c26ca6c69e488d48.js\",\"217\",\"static/chunks/app/%5B%5B...mdxPath%5D%5D/page-48f5c8f3210e0a8a.js\"],\"ConfigProvider\"]\n15:I[6193,[\"562\",\"static/chunks/2a9bc5d7-4c434acf20ba934a.js\",\"782\",\"static/chunks/782-c26ca6c69e488d48.js\",\"217\",\"static/chunks/app/%5B%5B...mdxPath%5D%5D/page-48f5c8f3210e0a8a.js\"],\"\"]\n"])</script><script>self.__next_f.push([1,"2:[\"$\",\"html\",null,{\"lang\":\"en\",\"dir\":\"ltr\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$undefined\",[\"$\",\"style\",null,{\"children\":\":root {\\n --nextra-primary-hue: 212deg;\\n --nextra-primary-saturation: 100%;\\n --nextra-primary-lightness: 45%;\\n --nextra-bg: 250,250,250;\\n --nextra-content-width: 90rem;\\n}\\n.dark {\\n --nextra-primary-hue: 204deg;\\n --nextra-primary-saturation: 100%;\\n --nextra-primary-lightness: 55%;\\n --nextra-bg: 17,17,17;\\n}\\n::selection {\\n background: hsla(var(--nextra-primary-hue),var(--nextra-primary-saturation),var(--nextra-primary-lightness),.3);\\n}\\nhtml {\\n background: rgb(var(--nextra-bg));\\n}\"}],[\"$\",\"meta\",null,{\"name\":\"theme-color\",\"media\":\"(prefers-color-scheme: light)\",\"content\":\"rgb(250,250,250)\"}],[\"$\",\"meta\",null,{\"name\":\"theme-color\",\"media\":\"(prefers-color-scheme: dark)\",\"content\":\"rgb(17,17,17)\"}],\"$undefined\"]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"$Lf\",null,{\"value\":{\"copyPageButton\":true,\"darkMode\":true,\"docsRepositoryBase\":\"https://github.com/shenjingnan/xiaozhi-client/tree/main/docs\",\"editLink\":\"Edit this page\",\"feedback\":{\"content\":\"Question? Give us feedback\",\"labels\":\"feedback\"},\"i18n\":[],\"lastUpdated\":[\"$\",\"$L10\",null,{}],\"navigation\":{\"next\":true,\"prev\":true},\"search\":[\"$\",\"$L11\",null,{}],\"sidebar\":{\"defaultMenuCollapseLevel\":2,\"defaultOpen\":true,\"toggleButton\":true},\"themeSwitch\":{\"dark\":\"Dark\",\"light\":\"Light\",\"system\":\"System\"},\"toc\":{\"backToTop\":\"Scroll to top\",\"float\":true,\"title\":\"On This Page\"}},\"children\":[\"$\",\"$L12\",null,{\"attribute\":\"class\",\"defaultTheme\":\"system\",\"disableTransitionOnChange\":true,\"storageKey\":\"theme\",\"children\":[[\"$\",\"$L13\",null,{}],\"$undefined\",[\"$\",\"$L14\",null,{\"pageMap\":[{\"data\":{\"index\":{\"title\":\"介绍\"},\"quickstart\":{\"title\":\"快速上手\"},\"usage\":{\"title\":\"使用姿势\"},\"reference\":{\"title\":\"参考手册\"}}},{\"name\":\"index\",\"route\":\"/\",\"frontMatter\":{\"title\":\"Index\",\"filePath\":\"content/index.mdx\",\"timestamp\":1766638877000},\"title\":\"介绍\"},{\"name\":\"quickstart\",\"route\":\"/quickstart\",\"frontMatter\":{\"title\":\"快速上手\",\"filePath\":\"content/quickstart.mdx\",\"timestamp\":1766638877000},\"title\":\"快速上手\"},{\"name\":\"usage\",\"route\":\"/usage\",\"children\":[{\"data\":{\"docker\":{\"title\":\"使用 Docker 部署\"},\"modelscope\":{\"title\":\"使用 魔搭社区 MCP\"},\"coze-workflow\":{\"title\":\"集成扣子工作流\"},\"multi-endpoint\":{\"title\":\"配置多个小智接入点\"},\"as-mcp\":{\"title\":\"作为 MCP 服务使用\"}}},{\"name\":\"docker\",\"route\":\"/usage/docker\",\"frontMatter\":{\"title\":\"使用 Docker 部署\",\"filePath\":\"content/usage/docker.mdx\",\"timestamp\":1766638877000},\"title\":\"使用 Docker 部署\"},{\"name\":\"modelscope\",\"route\":\"/usage/modelscope\",\"frontMatter\":{\"title\":\"使用 魔搭社区 MCP\",\"filePath\":\"content/usage/modelscope.mdx\",\"timestamp\":1766638877000},\"title\":\"使用 魔搭社区 MCP\"},{\"name\":\"coze-workflow\",\"route\":\"/usage/coze-workflow\",\"frontMatter\":{\"title\":\"集成扣子工作流\",\"filePath\":\"content/usage/coze-workflow.mdx\",\"timestamp\":1766638877000},\"title\":\"集成扣子工作流\"},{\"name\":\"multi-endpoint\",\"route\":\"/usage/multi-endpoint\",\"frontMatter\":{\"title\":\"配置多个小智接入点\",\"filePath\":\"content/usage/multi-endpoint.mdx\",\"timestamp\":1766638877000},\"title\":\"配置多个小智接入点\"},{\"name\":\"as-mcp\",\"route\":\"/usage/as-mcp\",\"frontMatter\":{\"title\":\"作为 MCP 服务使用\",\"filePath\":\"content/usage/as-mcp.mdx\",\"timestamp\":1766638877000},\"title\":\"作为 MCP 服务使用\"}],\"title\":\"使用姿势\"},{\"name\":\"reference\",\"route\":\"/reference\",\"children\":[{\"data\":{\"command\":{\"title\":\"常用命令\"}}},{\"name\":\"command\",\"route\":\"/reference/command\",\"frontMatter\":{\"title\":\"常用命令\",\"filePath\":\"content/reference/command.mdx\",\"timestamp\":1766638877000},\"title\":\"常用命令\"}],\"title\":\"参考手册\"},{\"name\":\"changelog\",\"route\":\"/changelog\",\"frontMatter\":{\"title\":\"更新日志\",\"filePath\":\"content/changelog.mdx\",\"timestamp\":1766638877000},\"title\":\"更新日志\"}],\"navbar\":[\"$\",\"header\",null,{\"className\":\"nextra-navbar x:sticky x:top-0 x:z-30 x:w-full x:bg-transparent x:print:hidden x:max-md:[.nextra-banner:not([class$=hidden])~\u0026]:top-(--nextra-banner-height)\",\"children\":[[\"$\",\"div\",null,{\"className\":\"nextra-navbar-blur x:absolute x:-z-1 x:size-full nextra-border x:border-b x:backdrop-blur-md x:bg-nextra-bg/70\"}],[\"$\",\"nav\",null,{\"style\":{\"height\":\"var(--nextra-navbar-height)\"},\"className\":\"x:mx-auto x:flex x:max-w-(--nextra-content-width) x:items-center x:gap-4 x:pl-[max(env(safe-area-inset-left),1.5rem)] x:pr-[max(env(safe-area-inset-right),1.5rem)] x:justify-end\",\"children\":[[\"$\",\"$L15\",null,{\"href\":\"/\",\"className\":\"x:flex x:items-center x:me-auto x:transition-opacity x:focus-visible:nextra-focus x:hover:opacity-75\",\"aria-label\":\"Home page\",\"children\":\"$L16\"}],\"$L17\"]}]]}],\"footer\":\"$L18\",\"children\":[\"$L19\",\"$L1a\"]}]]}]}]}]]}]\n"])</script><script>self.__next_f.push([1,"1b:I[4730,[\"562\",\"static/chunks/2a9bc5d7-4c434acf20ba934a.js\",\"782\",\"static/chunks/782-c26ca6c69e488d48.js\",\"217\",\"static/chunks/app/%5B%5B...mdxPath%5D%5D/page-48f5c8f3210e0a8a.js\"],\"ClientNavbar\"]\n1d:I[2779,[\"562\",\"static/chunks/2a9bc5d7-4c434acf20ba934a.js\",\"782\",\"static/chunks/782-c26ca6c69e488d48.js\",\"217\",\"static/chunks/app/%5B%5B...mdxPath%5D%5D/page-48f5c8f3210e0a8a.js\"],\"Switchers\"]\n1e:I[8704,[\"562\",\"static/chunks/2a9bc5d7-4c434acf20ba934a.js\",\"782\",\"static/chunks/782-c26ca6c69e488d48.js\",\"217\",\"static/chunks/app/%5B%5B...mdxPath%5D%5D/page-48f5c8f3210e0a8a.js\"],\"LocaleSwitch\"]\n1f:I[6744,[\"562\",\"static/chunks/2a9bc5d7-4c434acf20ba934a.js\",\"782\",\"static/chunks/782-c26ca6c69e488d48.js\",\"217\",\"static/chunks/app/%5B%5B...mdxPath%5D%5D/page-48f5c8f3210e0a8a.js\"],\"ThemeSwitch\"]\n20:I[9838,[\"562\",\"static/chunks/2a9bc5d7-4c434acf20ba934a.js\",\"782\",\"static/chunks/782-c26ca6c69e488d48.js\",\"217\",\"static/chunks/app/%5B%5B...mdxPath%5D%5D/page-48f5c8f3210e0a8a.js\"],\"MobileNav\"]\n16:[\"$\",\"b\",null,{\"children\":\"Xiaozhi Client\"}]\n1c:T481,"])</script><script>self.__next_f.push([1,"M12 3C7.0275 3 3 7.12937 3 12.2276C3 16.3109 5.57625 19.7597 9.15374 20.9824C9.60374 21.0631 9.77249 20.7863 9.77249 20.5441C9.77249 20.3249 9.76125 19.5982 9.76125 18.8254C7.5 19.2522 6.915 18.2602 6.735 17.7412C6.63375 17.4759 6.19499 16.6569 5.8125 16.4378C5.4975 16.2647 5.0475 15.838 5.80124 15.8264C6.51 15.8149 7.01625 16.4954 7.18499 16.7723C7.99499 18.1679 9.28875 17.7758 9.80625 17.5335C9.885 16.9337 10.1212 16.53 10.38 16.2993C8.3775 16.0687 6.285 15.2728 6.285 11.7432C6.285 10.7397 6.63375 9.9092 7.20749 9.26326C7.1175 9.03257 6.8025 8.08674 7.2975 6.81794C7.2975 6.81794 8.05125 6.57571 9.77249 7.76377C10.4925 7.55615 11.2575 7.45234 12.0225 7.45234C12.7875 7.45234 13.5525 7.55615 14.2725 7.76377C15.9937 6.56418 16.7475 6.81794 16.7475 6.81794C17.2424 8.08674 16.9275 9.03257 16.8375 9.26326C17.4113 9.9092 17.76 10.7281 17.76 11.7432C17.76 15.2843 15.6563 16.0687 13.6537 16.2993C13.98 16.5877 14.2613 17.1414 14.2613 18.0065C14.2613 19.2407 14.25 20.2326 14.25 20.5441C14.25 20.7863 14.4188 21.0746 14.8688 20.9824C16.6554 20.364 18.2079 19.1866 19.3078 17.6162C20.4077 16.0457 20.9995 14.1611 21 12.2276C21 7.12937 16.9725 3 12 3Z"])</script><script>self.__next_f.push([1,"17:[\"$\",\"$L1b\",null,{\"className\":\"\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://github.com/shenjingnan/xiaozhi-client\",\"target\":\"_blank\",\"rel\":\"noreferrer\",\"children\":[[\"$\",\"svg\",null,{\"fill\":\"currentColor\",\"viewBox\":\"3 3 18 18\",\"height\":\"24\",\"aria-label\":\"Project repository\",\"children\":[\"$\",\"path\",null,{\"d\":\"$1c\"}]}],false],\"className\":\"x:focus-visible:nextra-focus\"}],[\"$\",\"a\",null,{\"href\":\"https://qun.qq.com/universal-share/share?ac=1\u0026authKey=c08PvS2zvAF1NN%2F%2BuaOi0ze1AElTIsvFBLwbWUMFc2ixjaZYxqZTUQHzipwd8Kka\u0026busi_data=eyJncm91cENvZGUiOiIxMDU0ODg4NDczIiwidG9rZW4iOiJuSmJUN2cyUEVkNEQ5WXovM3RQbFVNcDluMGVibUNZTUQvL1RuQnFJRjBkZmRZQnRBRTdwU0szL3V2Y0dLc1ZmIiwidWluIjoiMzkxMTcyMDYwMCJ9\u0026data=9cH6_zEC-sN3xYlwzKEWiYF71RLY9CId5taN-gy6XZo7axSlSWDpd1Ojui5hYMQKIgEJYSPw59XYgF5vH2wLog\u0026svctype=4\u0026tempid=h5_group_info\",\"target\":\"_blank\",\"rel\":\"noreferrer\",\"children\":[[\"$\",\"svg\",null,{\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"32\",\"height\":\"32\",\"children\":[\"$\",\"path\",null,{\"d\":\"M824.8 613.2c-16-51.4-34.4-94.6-62.7-165.3C766.5 262.2 689.3 112 511.5 112 331.7 112 256.2 265.2 261 447.9c-28.4 70.8-46.7 113.7-62.7 165.3-34 109.5-23 154.8-14.6 155.8 18 2.2 70.1-82.4 70.1-82.4 0 49 25.2 112.9 79.8 159-26.4 8.1-85.7 29.9-71.6 53.8 11.4 19.3 196.2 12.3 249.5 6.3 53.3 6 238.1 13 249.5-6.3 14.1-23.8-45.3-45.7-71.6-53.8 54.6-46.2 79.8-110.1 79.8-159 0 0 52.1 84.6 70.1 82.4 8.5-1.1 19.5-46.4-14.5-155.8z\",\"p-id\":\"4686\"}]}],false],\"className\":\"x:focus-visible:nextra-focus\"}],\"$undefined\"]}]\n"])</script><script>self.__next_f.push([1,"18:[\"$\",\"div\",null,{\"className\":\"x:bg-gray-100 x:pb-[env(safe-area-inset-bottom)] x:dark:bg-neutral-900 x:print:bg-transparent\",\"children\":[[\"$\",\"$L1d\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"x:mx-auto x:flex x:max-w-(--nextra-content-width) x:gap-2 x:py-2 x:px-4\",\"children\":[[\"$\",\"$L1e\",null,{}],[\"$\",\"$L1f\",null,{}]]}]}],[\"$\",\"hr\",null,{\"className\":\"nextra-border\"}],[\"$\",\"footer\",null,{\"className\":\"x:mx-auto x:flex x:max-w-(--nextra-content-width) x:justify-center x:py-12 x:text-gray-600 x:dark:text-gray-400 x:md:justify-start x:pl-[max(env(safe-area-inset-left),1.5rem)] x:pr-[max(env(safe-area-inset-right),1.5rem)]\",\"children\":[\"MIT \",2025,\" © Xiaozhi Client.\"]}]]}]\n"])</script><script>self.__next_f.push([1,"19:[\"$\",\"$L20\",null,{}]\n1a:[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n6:null\n"])</script><script>self.__next_f.push([1,"8:{\"metadata\":[],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"d:\"$8:metadata\"\n"])</script></body></html>
@@ -1 +0,0 @@
1
- self.__BUILD_MANIFEST=function(e,r,t){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:1,errorRate:1e-4,numBits:20,numHashes:14,bitArray:[1,0,0,e,e,e,e,r,r,e,r,r,r,e,e,r,e,e,e,e]},__routerFilterDynamic:{numItems:r,errorRate:1e-4,numBits:r,numHashes:NaN,bitArray:[]},"/_error":["static/chunks/pages/_error-189a41ab5833da03.js"],sortedPages:["/_app","/_error"]}}(1,0,1e-4),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
@@ -1 +0,0 @@
1
- self.__SSG_MANIFEST=new Set(["\u002F[[...mdxPath]]"]);self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB()
@@ -1,4 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[112],{1734:()=>{},3015:(e,t,n)=>{"use strict";n.d(t,{Search:()=>eQ});var o=n(7137),i=n(5487),s=n(49),l=n(4130),r=n(7205),a=n(6120);function u(e,t,n){let o,i=n.initialDeps??[],s=!0;function l(){var l,r,a;let u,d;n.key&&(null==(l=n.debug)?void 0:l.call(n))&&(u=Date.now());let c=e();if(!(c.length!==i.length||c.some((e,t)=>i[t]!==e)))return o;if(i=c,n.key&&(null==(r=n.debug)?void 0:r.call(n))&&(d=Date.now()),o=t(...c),n.key&&(null==(a=n.debug)?void 0:a.call(n))){let e=Math.round((Date.now()-u)*100)/100,t=Math.round((Date.now()-d)*100)/100,o=t/16,i=(e,t)=>{for(e=String(e);e.length<t;)e=" "+e;return e};console.info(`%c⏱ ${i(t,5)} /${i(e,5)} ms`,`
2
- font-size: .6rem;
3
- font-weight: bold;
4
- color: hsl(${Math.max(0,Math.min(120-120*o,120))}deg 100% 31%);`,null==n?void 0:n.key)}return(null==n?void 0:n.onChange)&&!(s&&n.skipInitialOnChange)&&n.onChange(o),s=!1,o}return l.updateDeps=e=>{i=e},l}function d(e,t){if(void 0!==e)return e;throw Error(`Unexpected undefined${t?`: ${t}`:""}`)}let c=e=>{let{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},p=e=>e,h=e=>{let t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1),o=[];for(let e=t;e<=n;e++)o.push(e);return o},m=(e,t)=>{let n=e.scrollElement;if(!n)return;let o=e.targetWindow;if(!o)return;let i=e=>{let{width:n,height:o}=e;t({width:Math.round(n),height:Math.round(o)})};if(i(c(n)),!o.ResizeObserver)return()=>{};let s=new o.ResizeObserver(t=>{let o=()=>{let e=t[0];if(null==e?void 0:e.borderBoxSize){let t=e.borderBoxSize[0];if(t)return void i({width:t.inlineSize,height:t.blockSize})}i(c(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(o):o()});return s.observe(n,{box:"border-box"}),()=>{s.unobserve(n)}},f={passive:!0},g="undefined"==typeof window||"onscrollend"in window,v=(e,t)=>{let n=e.scrollElement;if(!n)return;let o=e.targetWindow;if(!o)return;let i=0,s=e.options.useScrollendEvent&&g?()=>void 0:((e,t,n)=>{let o;return function(...i){e.clearTimeout(o),o=e.setTimeout(()=>t.apply(this,i),n)}})(o,()=>{t(i,!1)},e.options.isScrollingResetDelay),l=o=>()=>{let{horizontal:l,isRtl:r}=e.options;i=l?n.scrollLeft*(r&&-1||1):n.scrollTop,s(),t(i,o)},r=l(!0),a=l(!1);a(),n.addEventListener("scroll",r,f);let u=e.options.useScrollendEvent&&g;return u&&n.addEventListener("scrollend",a,f),()=>{n.removeEventListener("scroll",r),u&&n.removeEventListener("scrollend",a)}},x=(e,t,n)=>{if(null==t?void 0:t.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[n.options.horizontal?"inlineSize":"blockSize"])}return e[n.options.horizontal?"offsetWidth":"offsetHeight"]},b=(e,{adjustments:t=0,behavior:n},o)=>{var i,s;null==(s=null==(i=o.scrollElement)?void 0:i.scrollTo)||s.call(i,{[o.options.horizontal?"left":"top"]:e+t,behavior:n})};class y{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.measurementsCache=[],this.itemSizeCache=new Map,this.laneAssignments=new Map,this.pendingMeasuredCacheIndexes=[],this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let e=null,t=()=>e||(this.targetWindow&&this.targetWindow.ResizeObserver?e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{this._measureElement(e.target,e)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}):null);return{disconnect:()=>{var n;null==(n=t())||n.disconnect(),e=null},observe:e=>{var n;return null==(n=t())?void 0:n.observe(e,{box:"border-box"})},unobserve:e=>{var n;return null==(n=t())?void 0:n.unobserve(e)}}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([t,n])=>{void 0===n&&delete e[t]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:p,rangeExtractor:h,onChange:()=>{},measureElement:x,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...e}},this.notify=e=>{var t,n;null==(n=(t=this.options).onChange)||n.call(t,this,e)},this.maybeNotify=u(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var e;let t=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==t){if(this.cleanup(),!t)return void this.maybeNotify();this.scrollElement=t,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=(null==(e=this.scrollElement)?void 0:e.window)??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{this.scrollAdjustments=0,this.scrollDirection=t?this.getScrollOffset()<e?"forward":"backward":null,this.scrollOffset=e,this.isScrolling=t,this.maybeNotify()}))}},this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??("function"==typeof this.options.initialOffset?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{let n=new Map,o=new Map;for(let i=t-1;i>=0;i--){let t=e[i];if(n.has(t.lane))continue;let s=o.get(t.lane);if(null==s||t.end>s.end?o.set(t.lane,t):t.end<s.end&&n.set(t.lane,!0),n.size===this.options.lanes)break}return o.size===this.options.lanes?Array.from(o.values()).sort((e,t)=>e.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=u(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes],(e,t,n,o,i,s)=>(void 0!==this.prevLanes&&this.prevLanes!==s&&(this.lanesChangedFlag=!0),this.prevLanes=s,this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:n,getItemKey:o,enabled:i,lanes:s}),{key:!1,skipInitialOnChange:!0,onChange:()=>{this.notify(this.isScrolling)}}),this.getMeasurements=u(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:t,scrollMargin:n,getItemKey:o,enabled:i,lanes:s},l)=>{if(!i)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(let t of this.laneAssignments.keys())t>=e&&this.laneAssignments.delete(t);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMeasuredCacheIndexes=[]),0===this.measurementsCache.length&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let r=this.lanesSettling?0:this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[],this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1);let a=this.measurementsCache.slice(0,r),u=Array(s).fill(void 0);for(let e=0;e<r;e++){let t=a[e];t&&(u[t.lane]=e)}for(let i=r;i<e;i++){let e,s,r=o(i),d=this.laneAssignments.get(i);if(void 0!==d&&this.options.lanes>1){let o=u[e=d],i=void 0!==o?a[o]:void 0;s=i?i.end+this.options.gap:t+n}else{let o=1===this.options.lanes?a[i-1]:this.getFurthestMeasurement(a,i);s=o?o.end+this.options.gap:t+n,e=o?o.lane:i%this.options.lanes,this.options.lanes>1&&this.laneAssignments.set(i,e)}let c=l.get(r),p="number"==typeof c?c:this.options.estimateSize(i),h=s+p;a[i]={index:i,start:s,size:p,end:h,key:r,lane:e},u[e]=i}return this.measurementsCache=a,a},{key:!1,debug:()=>this.options.debug}),this.calculateRange=u(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,n,o)=>this.range=e.length>0&&t>0?function({measurements:e,outerSize:t,scrollOffset:n,lanes:o}){let i=e.length-1;if(e.length<=o)return{startIndex:0,endIndex:i};let s=S(0,i,t=>e[t].start,n),l=s;if(1===o)for(;l<i&&e[l].end<n+t;)l++;else if(o>1){let r=Array(o).fill(0);for(;l<i&&r.some(e=>e<n+t);){let t=e[l];r[t.lane]=t.end,l++}let a=Array(o).fill(n+t);for(;s>=0&&a.some(e=>e>=n);){let t=e[s];a[t.lane]=t.start,s--}s=Math.max(0,s-s%o),l=Math.min(i,l+(o-1-l%o))}return{startIndex:s,endIndex:l}}({measurements:e,outerSize:t,scrollOffset:n,lanes:o}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=u(()=>{let e=null,t=null,n=this.calculateRange();return n&&(e=n.startIndex,t=n.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,n,o,i)=>null===o||null===i?[]:e({startIndex:o,endIndex:i,overscan:t,count:n}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this._measureElement=(e,t)=>{let n=this.indexFromElement(e),o=this.measurementsCache[n];if(!o)return;let i=o.key,s=this.elementsCache.get(i);s!==e&&(s&&this.observer.unobserve(s),this.observer.observe(e),this.elementsCache.set(i,e)),e.isConnected&&this.resizeItem(n,this.options.measureElement(e,t,this))},this.resizeItem=(e,t)=>{let n=this.measurementsCache[e];if(!n)return;let o=t-(this.itemSizeCache.get(n.key)??n.size);0!==o&&((void 0!==this.shouldAdjustScrollPositionOnItemSizeChange?this.shouldAdjustScrollPositionOnItemSizeChange(n,o,this):n.start<this.getScrollOffset()+this.scrollAdjustments)&&this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=o,behavior:void 0}),this.pendingMeasuredCacheIndexes.push(n.index),this.itemSizeCache=new Map(this.itemSizeCache.set(n.key,t)),this.notify(!1))},this.measureElement=e=>{if(!e)return void this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))});this._measureElement(e,void 0)},this.getVirtualItems=u(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let n=[];for(let o=0,i=e.length;o<i;o++){let i=t[e[o]];n.push(i)}return n},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(0!==t.length)return d(t[S(0,t.length-1,e=>d(t[e]).start,e)])},this.getOffsetForAlignment=(e,t,n=0)=>{let o=this.getSize(),i=this.getScrollOffset();return"auto"===t&&(t=e>=i+o?"end":"start"),"center"===t?e+=(n-o)/2:"end"===t&&(e-=o),Math.max(Math.min(this.getTotalSize()+this.options.scrollMargin-o,e),0)},this.getOffsetForIndex=(e,t="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));let n=this.measurementsCache[e];if(!n)return;let o=this.getSize(),i=this.getScrollOffset();if("auto"===t)if(n.end>=i+o-this.options.scrollPaddingEnd)t="end";else{if(!(n.start<=i+this.options.scrollPaddingStart))return[i,t];t="start"}let s="end"===t?n.end+this.options.scrollPaddingEnd:n.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(s,t,n.size),t]},this.isDynamicMode=()=>this.elementsCache.size>0,this.scrollToOffset=(e,{align:t="start",behavior:n}={})=>{"smooth"===n&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(e,t),{adjustments:void 0,behavior:n})},this.scrollToIndex=(e,{align:t="auto",behavior:n}={})=>{"smooth"===n&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),e=Math.max(0,Math.min(e,this.options.count-1));let o=0,i=t=>{if(!this.targetWindow)return;let o=this.getOffsetForIndex(e,t);if(!o)return void console.warn("Failed to get offset for index:",e);let[i,l]=o;this._scrollToOffset(i,{adjustments:void 0,behavior:n}),this.targetWindow.requestAnimationFrame(()=>{let t=this.getScrollOffset(),n=this.getOffsetForIndex(e,l);if(!n)return void console.warn("Failed to get offset for index:",e);1.01>Math.abs(n[0]-t)||s(l)})},s=t=>{this.targetWindow&&(++o<10?this.targetWindow.requestAnimationFrame(()=>i(t)):console.warn(`Failed to scroll to index ${e} after 10 attempts.`))};i(t)},this.scrollBy=(e,{behavior:t}={})=>{"smooth"===t&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getScrollOffset()+e,{adjustments:void 0,behavior:t})},this.getTotalSize=()=>{var e;let t,n=this.getMeasurements();if(0===n.length)t=this.options.paddingStart;else if(1===this.options.lanes)t=(null==(e=n[n.length-1])?void 0:e.end)??0;else{let e=Array(this.options.lanes).fill(null),o=n.length-1;for(;o>=0&&e.some(e=>null===e);){let t=n[o];null===e[t.lane]&&(e[t.lane]=t.end),o--}t=Math.max(...e.filter(e=>null!==e))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:t,behavior:n})=>{this.options.scrollToFn(e,{behavior:n,adjustments:t},this)},this.measure=()=>{this.itemSizeCache=new Map,this.laneAssignments=new Map,this.notify(!1)},this.setOptions(e)}}let S=(e,t,n,o)=>{for(;e<=t;){let i=(e+t)/2|0,s=n(i);if(s<o)e=i+1;else{if(!(s>o))return i;t=i-1}}return e>0?e-1:0},O="undefined"!=typeof document?r.useLayoutEffect:r.useEffect;var C=n(9713),E=n(7043),w=n(7922),I=n(8954),T=n(2692),M=n(1151),_=n(8479),k=n(7027),R=n(6209),P=n(2341),F=n(7230),A=n(3932),D=n(7977),z=n(3036),L=n(2915),j=n(8436),B=n(6835);function N(e){var t,n,o,i;let s,l=(0,r.useRef)({value:"",selectionStart:null,selectionEnd:null});return t=e,n="blur",o=e=>{let t=e.target;j.A3(t)&&(l.current={value:t.value,selectionStart:t.selectionStart,selectionEnd:t.selectionEnd})},s=(0,F.Y)(o),(0,r.useEffect)(()=>{function e(e){s.current(e)}return(t=null!=t?t:window).addEventListener(n,e,void 0),()=>t.removeEventListener(n,e,i)},[t,n,i]),(0,_._)(()=>{if(!(0,B.X7)(e)&&j.A3(e)&&e.isConnected){if(e.focus({preventScroll:!0}),e.value!==l.current.value)e.setSelectionRange(e.value.length,e.value.length);else{let{selectionStart:t,selectionEnd:n}=l.current;null!==t&&null!==n&&e.setSelectionRange(t,n)}l.current={value:"",selectionStart:null,selectionEnd:null}}})}var V=n(7701),U=n(8995),W=n(1929),K=n(6515),X=n(7517),Y=n(7781),q=n(5966);function $(e,t){let n=(0,r.useRef)([]),o=(0,_._)(e);(0,r.useEffect)(()=>{let e=[...n.current];for(let[i,s]of t.entries())if(n.current[i]!==s){let i=o(t,e);return n.current=t,i}},[o,...t])}var H=n(2148),Z=n(9950),J=n(524),G=n(5798),Q=n(3509),ee=n(9599),et=n(1083),en=n(677),eo=n(1792);let ei=[];!function(e){function t(){"loading"!==document.readyState&&(e(),document.removeEventListener("DOMContentLoaded",t))}"undefined"!=typeof window&&"undefined"!=typeof document&&(document.addEventListener("DOMContentLoaded",t),t())}(()=>{function e(e){if(!j.Lk(e.target)||e.target===document.body||ei[0]===e.target)return;let t=e.target;t=t.closest(eo.Uo),ei.unshift(null!=t?t:e.target),(ei=ei.filter(e=>null!=e&&e.isConnected)).splice(10)}window.addEventListener("click",e,{capture:!0}),window.addEventListener("mousedown",e,{capture:!0}),window.addEventListener("focus",e,{capture:!0}),document.body.addEventListener("click",e,{capture:!0}),document.body.addEventListener("mousedown",e,{capture:!0}),document.body.addEventListener("focus",e,{capture:!0})});var es=n(4976),el=n(2299),er=n(9549),ea=n(615),eu=n(8416),ed=n(4542),ec=n(8566),ep=n(1750),eh=n(2278),em=n(6288),ef=n(3431),eg=n(5890),ev=Object.defineProperty,ex=(e,t,n)=>(((e,t,n)=>t in e?ev(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n)(e,"symbol"!=typeof t?t+"":t,n),n),eb=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))(eb||{}),ey=(e=>(e[e.Single=0]="Single",e[e.Multi=1]="Multi",e))(ey||{}),eS=(e=>(e[e.Pointer=0]="Pointer",e[e.Focus=1]="Focus",e[e.Other=2]="Other",e))(eS||{}),eO=(e=>(e[e.OpenCombobox=0]="OpenCombobox",e[e.CloseCombobox=1]="CloseCombobox",e[e.GoToOption=2]="GoToOption",e[e.SetTyping=3]="SetTyping",e[e.RegisterOption=4]="RegisterOption",e[e.UnregisterOption=5]="UnregisterOption",e[e.DefaultToFirstOption=6]="DefaultToFirstOption",e[e.SetActivationTrigger=7]="SetActivationTrigger",e[e.UpdateVirtualConfiguration=8]="UpdateVirtualConfiguration",e[e.SetInputElement=9]="SetInputElement",e[e.SetButtonElement=10]="SetButtonElement",e[e.SetOptionsElement=11]="SetOptionsElement",e[e.MarkInputAsMoved=12]="MarkInputAsMoved",e))(eO||{});function eC(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e=>e,n=null!==e.activeOptionIndex?e.options[e.activeOptionIndex]:null,o=t(e.options.slice()),i=o.length>0&&null!==o[0].dataRef.current.order?o.sort((e,t)=>e.dataRef.current.order-t.dataRef.current.order):(0,eo.wl)(o,e=>e.dataRef.current.domRef.current),s=n?i.indexOf(n):null;return -1===s&&(s=null),{options:i,activeOptionIndex:s}}let eE={1(e){var t;if(null!=(t=e.dataRef.current)&&t.disabled||1===e.comboboxState)return e;let n=e.inputElement?eg.Fc.Tracked((0,eg.JO)(e.inputElement)):e.inputPositionState;return{...e,activeOptionIndex:null,comboboxState:1,isTyping:!1,activationTrigger:2,inputPositionState:n,__demoMode:!1}},0(e){var t,n;if(null!=(t=e.dataRef.current)&&t.disabled||0===e.comboboxState)return e;if(null!=(n=e.dataRef.current)&&n.value){let t=e.dataRef.current.calculateIndex(e.dataRef.current.value);if(-1!==t)return{...e,activeOptionIndex:t,comboboxState:0,__demoMode:!1,inputPositionState:eg.Fc.Idle}}return{...e,comboboxState:0,inputPositionState:eg.Fc.Idle,__demoMode:!1}},3:(e,t)=>e.isTyping===t.isTyping?e:{...e,isTyping:t.isTyping},2(e,t){var n,o,i,s;if(null!=(n=e.dataRef.current)&&n.disabled||e.optionsElement&&!(null!=(o=e.dataRef.current)&&o.optionsPropsRef.current.static)&&1===e.comboboxState)return e;if(e.virtual){let{options:n,disabled:o}=e.virtual,s=t.focus===es.B.Specific?t.idx:(0,es.X)(t,{resolveItems:()=>n,resolveActiveIndex:()=>{var t,i;return null!=(i=null!=(t=e.activeOptionIndex)?t:n.findIndex(e=>!o(e)))?i:null},resolveDisabled:o,resolveId(){throw Error("Function not implemented.")}}),l=null!=(i=t.trigger)?i:2;return e.activeOptionIndex===s&&e.activationTrigger===l?e:{...e,activeOptionIndex:s,activationTrigger:l,isTyping:!1,__demoMode:!1}}let l=eC(e);if(null===l.activeOptionIndex){let e=l.options.findIndex(e=>!e.dataRef.current.disabled);-1!==e&&(l.activeOptionIndex=e)}let r=t.focus===es.B.Specific?t.idx:(0,es.X)(t,{resolveItems:()=>l.options,resolveActiveIndex:()=>l.activeOptionIndex,resolveId:e=>e.id,resolveDisabled:e=>e.dataRef.current.disabled}),a=null!=(s=t.trigger)?s:2;return e.activeOptionIndex===r&&e.activationTrigger===a?e:{...e,...l,isTyping:!1,activeOptionIndex:r,activationTrigger:a,__demoMode:!1}},4:(e,t)=>{var n,o,i,s;if(null!=(n=e.dataRef.current)&&n.virtual)return{...e,options:[...e.options,t.payload]};let l=t.payload,r=eC(e,e=>(e.push(l),e));null===e.activeOptionIndex&&null!=(i=(o=e.dataRef.current).isSelected)&&i.call(o,t.payload.dataRef.current.value)&&(r.activeOptionIndex=r.options.indexOf(l));let a={...e,...r,activationTrigger:2};return null!=(s=e.dataRef.current)&&s.__demoMode&&void 0===e.dataRef.current.value&&(a.activeOptionIndex=0),a},5:(e,t)=>{var n;if(null!=(n=e.dataRef.current)&&n.virtual)return{...e,options:e.options.filter(e=>e.id!==t.id)};let o=eC(e,e=>{let n=e.findIndex(e=>e.id===t.id);return -1!==n&&e.splice(n,1),e});return{...e,...o,activationTrigger:2}},6:(e,t)=>e.defaultToFirstOption===t.value?e:{...e,defaultToFirstOption:t.value},7:(e,t)=>e.activationTrigger===t.trigger?e:{...e,activationTrigger:t.trigger},8:(e,t)=>{var n,o;if(null===e.virtual)return{...e,virtual:{options:t.options,disabled:null!=(n=t.disabled)?n:()=>!1}};if(e.virtual.options===t.options&&e.virtual.disabled===t.disabled)return e;let i=e.activeOptionIndex;if(null!==e.activeOptionIndex){let n=t.options.indexOf(e.virtual.options[e.activeOptionIndex]);i=-1!==n?n:null}return{...e,activeOptionIndex:i,virtual:{options:t.options,disabled:null!=(o=t.disabled)?o:()=>!1}}},9:(e,t)=>e.inputElement===t.element?e:{...e,inputElement:t.element},10:(e,t)=>e.buttonElement===t.element?e:{...e,buttonElement:t.element},11:(e,t)=>e.optionsElement===t.element?e:{...e,optionsElement:t.element},12:e=>"Tracked"!==e.inputPositionState.kind?e:{...e,inputPositionState:eg.Fc.Moved}};class ew extends ef.u5{static new(e){var t;let{id:n,virtual:o=null,__demoMode:i=!1}=e;return new ew({id:n,dataRef:{current:{}},comboboxState:+!i,isTyping:!1,options:[],virtual:o?{options:o.options,disabled:null!=(t=o.disabled)?t:()=>!1}:null,activeOptionIndex:null,activationTrigger:2,inputElement:null,buttonElement:null,optionsElement:null,__demoMode:i,inputPositionState:eg.Fc.Idle})}reduce(e,t){return(0,er.Y)(t.type,eE,e,t)}constructor(e){super(e),ex(this,"actions",{onChange:e=>{let{onChange:t,compare:n,mode:o,value:i}=this.state.dataRef.current;return(0,er.Y)(o,{0:()=>null==t?void 0:t(e),1:()=>{let o=i.slice(),s=o.findIndex(t=>n(t,e));return -1===s?o.push(e):o.splice(s,1),null==t?void 0:t(o)}})},registerOption:(e,t)=>(this.send({type:4,payload:{id:e,dataRef:t}}),()=>{this.state.activeOptionIndex===this.state.dataRef.current.calculateIndex(t.current.value)&&this.send({type:6,value:!0}),this.send({type:5,id:e})}),goToOption:(e,t)=>(this.send({type:6,value:!1}),this.send({type:2,...e,trigger:t})),setIsTyping:e=>{this.send({type:3,isTyping:e})},closeCombobox:()=>{var e,t;this.send({type:1}),this.send({type:6,value:!1}),null==(t=(e=this.state.dataRef.current).onClose)||t.call(e)},openCombobox:()=>{this.send({type:0}),this.send({type:6,value:!0})},setActivationTrigger:e=>{this.send({type:7,trigger:e})},selectActiveOption:()=>{let e=this.selectors.activeOptionIndex(this.state);if(null!==e){if(this.actions.setIsTyping(!1),this.state.virtual)this.actions.onChange(this.state.virtual.options[e]);else{let{dataRef:t}=this.state.options[e];this.actions.onChange(t.current.value)}this.actions.goToOption({focus:es.B.Specific,idx:e})}},setInputElement:e=>{this.send({type:9,element:e})},setButtonElement:e=>{this.send({type:10,element:e})},setOptionsElement:e=>{this.send({type:11,element:e})}}),ex(this,"selectors",{activeDescendantId:e=>{var t,n;let o=this.selectors.activeOptionIndex(e);if(null!==o)return e.virtual?null==(n=e.options.find(t=>!t.dataRef.current.disabled&&e.dataRef.current.compare(t.dataRef.current.value,e.virtual.options[o])))?void 0:n.id:null==(t=e.options[o])?void 0:t.id},activeOptionIndex:e=>{if(e.defaultToFirstOption&&null===e.activeOptionIndex&&(e.virtual?e.virtual.options.length>0:e.options.length>0)){if(e.virtual){let{options:t,disabled:n}=e.virtual,o=t.findIndex(e=>{var t;return!(null!=(t=null==n?void 0:n(e))&&t)});if(-1!==o)return o}let t=e.options.findIndex(e=>!e.dataRef.current.disabled);if(-1!==t)return t}return e.activeOptionIndex},activeOption:e=>{var t,n;let o=this.selectors.activeOptionIndex(e);return null===o?null:e.virtual?e.virtual.options[null!=o?o:0]:null!=(n=null==(t=e.options[o])?void 0:t.dataRef.current.value)?n:null},isActive:(e,t,n)=>{var o;let i=this.selectors.activeOptionIndex(e);return null!==i&&(e.virtual?i===e.dataRef.current.calculateIndex(t):(null==(o=e.options[i])?void 0:o.id)===n)},shouldScrollIntoView:(e,t,n)=>!(e.virtual||e.__demoMode||0!==e.comboboxState||0===e.activationTrigger||!this.selectors.isActive(e,t,n)),didInputMove:e=>"Moved"===e.inputPositionState.kind});{let e=this.state.id,t=et.D.get(null);this.disposables.add(t.on(et.Q.Push,n=>{t.selectors.isTop(n,e)||0!==this.state.comboboxState||this.actions.closeCombobox()})),this.on(0,()=>t.actions.push(e)),this.on(1,()=>t.actions.pop(e))}this.disposables.group(e=>{this.on(1,t=>{t.inputElement&&(e.dispose(),e.add((0,eg.nY)(t.inputElement,t.inputPositionState,()=>{this.send({type:12})})))})})}}var eI=n(4945);let eT=(0,r.createContext)(null);function eM(e){let t=(0,r.useContext)(eT);if(null===t){let t=Error("<".concat(e," /> is missing a parent <Combobox /> component."));throw Error.captureStackTrace&&Error.captureStackTrace(t,e_),t}return t}function e_(e){let{id:t,virtual:n=null,__demoMode:o=!1}=e,i=(0,r.useMemo)(()=>ew.new({id:t,virtual:n,__demoMode:o}),[]);return(0,eI.X)(()=>i.dispose()),i}let ek=(0,r.createContext)(null);function eR(e){let t=(0,r.useContext)(ek);if(null===t){let t=Error("<".concat(e," /> is missing a parent <Combobox /> component."));throw Error.captureStackTrace&&Error.captureStackTrace(t,eR),t}return t}ek.displayName="ComboboxDataContext";let eP=(0,r.createContext)(null);function eF(e){let t=eM("VirtualProvider"),{options:n}=eR("VirtualProvider").virtual,o=(0,en.y)(t,e=>e.optionsElement),[i,s]=(0,r.useMemo)(()=>{if(!o)return[0,0];let e=window.getComputedStyle(o);return[parseFloat(e.paddingBlockStart||e.paddingTop),parseFloat(e.paddingBlockEnd||e.paddingBottom)]},[o]),l=function(e){let t=r.useReducer(()=>({}),{})[1],n={...e,onChange:(n,o)=>{var i;o?(0,a.flushSync)(t):t(),null==(i=e.onChange)||i.call(e,n,o)}},[o]=r.useState(()=>new y(n));return o.setOptions(n),O(()=>o._didMount(),[]),O(()=>o._willUpdate()),o}({observeElementRect:m,observeElementOffset:v,scrollToFn:b,...{enabled:0!==n.length,scrollPaddingStart:i,scrollPaddingEnd:s,count:n.length,estimateSize:()=>40,getScrollElement:()=>t.state.optionsElement,overscan:12}}),[u,d]=(0,r.useState)(0);(0,P.s)(()=>{d(e=>e+1)},[n]);let c=l.getVirtualItems(),p=(0,en.y)(t,e=>e.activationTrigger===eS.Pointer),h=(0,en.y)(t,t.selectors.activeOptionIndex);return 0===c.length?null:r.createElement(eP.Provider,{value:l},r.createElement("div",{style:{position:"relative",width:"100%",height:"".concat(l.getTotalSize(),"px")},ref:e=>{e&&(p||null!==h&&n.length>h&&l.scrollToIndex(h))}},c.map(t=>{var o;return r.createElement(r.Fragment,{key:t.key},r.cloneElement(null==(o=e.children)?void 0:o.call(e,{...e.slot,option:n[t.index]}),{key:"".concat(u,"-").concat(t.key),"data-index":t.index,"aria-setsize":n.length,"aria-posinset":t.index+1,style:{position:"absolute",top:0,left:0,transform:"translateY(".concat(t.start,"px)"),overflowAnchor:"none"}}))})))}let eA=r.Fragment,eD=eu.Ac.RenderStrategy|eu.Ac.Static,ez=(0,eu.FX)(function(e,t){let n=(0,r.useId)(),o=(0,H._)(),{value:i,defaultValue:s,onChange:l,form:a,name:u,by:d,invalid:c=!1,disabled:p=o||!1,onClose:h,__demoMode:m=!1,multiple:f=!1,immediate:g=!1,virtual:v=null,nullable:x,...b}=e,y=(0,I.K)(s),[S=f?[]:void 0,O]=(0,w.P)(i,l,y),C=e_({id:n,virtual:v,__demoMode:m}),T=(0,r.useRef)({static:!1,hold:!1}),M=(0,E.t)(d),k=(0,_._)(e=>v?null===d?v.options.indexOf(e):v.options.findIndex(t=>M(t,e)):C.state.options.findIndex(t=>M(t.dataRef.current.value,e))),R=(0,r.useCallback)(e=>(0,er.Y)(z.mode,{[ey.Multi]:()=>S.some(t=>M(t,e)),[ey.Single]:()=>M(S,e)}),[S]),F=(0,en.y)(C,e=>e.virtual),A=(0,_._)(()=>null==h?void 0:h()),z=(0,r.useMemo)(()=>({__demoMode:m,immediate:g,optionsPropsRef:T,value:S,defaultValue:y,disabled:p,invalid:c,mode:f?ey.Multi:ey.Single,virtual:v?F:null,onChange:O,isSelected:R,calculateIndex:k,compare:M,onClose:A}),[m,g,T,S,y,p,c,f,v,F,O,R,k,M,A]);(0,P.s)(()=>{var e;v&&C.send({type:eO.UpdateVirtualConfiguration,options:v.options,disabled:null!=(e=v.disabled)?e:null})},[v,null==v?void 0:v.options,null==v?void 0:v.disabled]),(0,P.s)(()=>{C.state.dataRef.current=z},[z]);let[L,j,B,N]=(0,en.y)(C,e=>[e.comboboxState,e.buttonElement,e.inputElement,e.optionsElement]),V=et.D.get(null),U=(0,en.y)(V,(0,r.useCallback)(e=>V.selectors.isTop(e,n),[V,n]));(0,D.j)(U,[j,B,N],()=>C.actions.closeCombobox());let K=(0,en.y)(C,C.selectors.activeOptionIndex),X=(0,en.y)(C,C.selectors.activeOption),Y=(0,W._)({open:L===eb.Open,disabled:p,invalid:c,activeIndex:K,activeOption:X,value:S}),[q,$]=(0,ep.b0)(),G=(0,r.useCallback)(()=>{if(void 0!==y)return null==O?void 0:O(y)},[O,y]),Q=(0,eu.Ci)();return r.createElement($,{value:q,props:{htmlFor:null==B?void 0:B.id},slot:{open:L===eb.Open,disabled:p}},r.createElement(Z.St,null,r.createElement(ek.Provider,{value:z},r.createElement(eT.Provider,{value:C},r.createElement(ee.El,{value:(0,er.Y)(L,{[eb.Open]:ee.Uw.Open,[eb.Closed]:ee.Uw.Closed})},null!=u&&r.createElement(J.CL,{disabled:p,data:null!=S?{[u]:S}:{},form:a,onReset:G}),Q({ourProps:null===t?{}:{ref:t},theirProps:b,slot:Y,defaultTag:eA,name:"Combobox"}))))))}),eL=(0,eu.FX)(function(e,t){let n=eM("Combobox.Button"),o=eR("Combobox.Button"),[i,u]=(0,r.useState)(null),d=(0,K.P)(t,u,n.actions.setButtonElement),c=(0,r.useId)(),{id:p="headlessui-combobox-button-".concat(c),disabled:h=o.disabled||!1,autoFocus:m=!1,...f}=e,[g,v,x]=(0,en.y)(n,e=>[e.comboboxState,e.inputElement,e.optionsElement]),b=N(v),y=g===eb.Open;(0,L.s)(y,{trigger:i,action:(0,r.useCallback)(e=>{if(null!=i&&i.contains(e.target)||null!=v&&v.contains(e.target))return L.r.Ignore;let t=e.target.closest('[role="option"]:not([data-disabled])');return j.sb(t)?L.r.Select(t):null!=x&&x.contains(e.target)?L.r.Ignore:L.r.Close},[i,v,x]),close:n.actions.closeCombobox,select:n.actions.selectActiveOption});let S=(0,_._)(e=>{switch(e.key){case ec.D.Space:case ec.D.Enter:e.preventDefault(),e.stopPropagation(),n.state.comboboxState===eb.Closed&&(0,a.flushSync)(()=>n.actions.openCombobox()),b();return;case ec.D.ArrowDown:e.preventDefault(),e.stopPropagation(),n.state.comboboxState===eb.Closed&&((0,a.flushSync)(()=>n.actions.openCombobox()),n.state.dataRef.current.value||n.actions.goToOption({focus:es.B.First})),b();return;case ec.D.ArrowUp:e.preventDefault(),e.stopPropagation(),n.state.comboboxState===eb.Closed&&((0,a.flushSync)(()=>n.actions.openCombobox()),n.state.dataRef.current.value||n.actions.goToOption({focus:es.B.Last})),b();return;case ec.D.Escape:if(n.state.comboboxState!==eb.Open)return;e.preventDefault(),n.state.optionsElement&&!o.optionsPropsRef.current.static&&e.stopPropagation(),(0,a.flushSync)(()=>n.actions.closeCombobox()),b();return;default:return}}),O=(0,k.O)(()=>{n.state.comboboxState===eb.Open?n.actions.closeCombobox():n.actions.openCombobox(),b()}),E=(0,ep.o2)([p]),{isFocusVisible:w,focusProps:I}=(0,s.o)({autoFocus:m}),{isHovered:T,hoverProps:M}=(0,l.M)({isDisabled:h}),{pressed:R,pressProps:P}=(0,C.Z)({disabled:h}),F=(0,W._)({open:g===eb.Open,active:R||g===eb.Open,disabled:h,invalid:o.invalid,value:o.value,hover:T,focus:w}),A=(0,eu.v6)({ref:d,id:p,type:(0,V.c)(e,i),tabIndex:-1,"aria-haspopup":"listbox","aria-controls":null==x?void 0:x.id,"aria-expanded":g===eb.Open,"aria-labelledby":E,disabled:h||void 0,autoFocus:m,onKeyDown:S},O,I,M,P);return(0,eu.Ci)()({ourProps:A,theirProps:f,slot:F,defaultTag:"button",name:"Combobox.Button"})}),ej=(0,eu.FX)(function(e,t){var n,o;let i=eM("Combobox.Input"),u=eR("Combobox.Input"),d=(0,r.useId)(),c=(0,Q.q)(),{id:p=c||"headlessui-combobox-input-".concat(d),onChange:h,displayValue:m,disabled:f=u.disabled||!1,autoFocus:g=!1,type:v="text",...x}=e,b=(0,r.useRef)(null),y=(0,K.P)(b,t,(0,Z.Xc)(),i.actions.setInputElement),[S,O]=(0,en.y)(i,e=>[e.comboboxState,e.isTyping]),C=(0,T.L)(),E=(0,_._)(()=>{i.actions.onChange(null),i.state.optionsElement&&(i.state.optionsElement.scrollTop=0),i.actions.goToOption({focus:es.B.Nothing})});$((e,t)=>{let[n,o]=e,[s,l]=t;if(i.state.isTyping)return;let r=b.current;r&&((l===eb.Open&&o===eb.Closed||n!==s)&&(r.value=n),requestAnimationFrame(()=>{if(i.state.isTyping||!r||(0,B.X7)(r))return;let{selectionStart:e,selectionEnd:t}=r;0===Math.abs((null!=t?t:0)-(null!=e?e:0))&&0===e&&r.setSelectionRange(r.value.length,r.value.length)}))},[(0,r.useMemo)(()=>{var e;return"function"==typeof m&&void 0!==u.value?null!=(e=m(u.value))?e:"":"string"==typeof u.value?u.value:""},[u.value,m]),S,O]),$((e,t)=>{let[n]=e,[o]=t;if(n===eb.Open&&o===eb.Closed){if(i.state.isTyping)return;let e=b.current;if(!e)return;let t=e.value,{selectionStart:n,selectionEnd:o,selectionDirection:s}=e;e.value="",e.value=t,null!==s?e.setSelectionRange(n,o,s):e.setSelectionRange(n,o)}},[S]);let w=(0,r.useRef)(!1),I=(0,_._)(()=>{w.current=!0}),M=(0,_._)(()=>{C.nextFrame(()=>{w.current=!1})}),k=(0,_._)(e=>{switch(i.actions.setIsTyping(!0),e.key){case ec.D.Enter:if(i.state.comboboxState!==eb.Open||w.current)return;if(e.preventDefault(),e.stopPropagation(),null===i.selectors.activeOptionIndex(i.state))return void i.actions.closeCombobox();i.actions.selectActiveOption(),u.mode===ey.Single&&i.actions.closeCombobox();break;case ec.D.ArrowDown:return e.preventDefault(),e.stopPropagation(),(0,er.Y)(i.state.comboboxState,{[eb.Open]:()=>i.actions.goToOption({focus:es.B.Next}),[eb.Closed]:()=>i.actions.openCombobox()});case ec.D.ArrowUp:return e.preventDefault(),e.stopPropagation(),(0,er.Y)(i.state.comboboxState,{[eb.Open]:()=>i.actions.goToOption({focus:es.B.Previous}),[eb.Closed]:()=>{(0,a.flushSync)(()=>i.actions.openCombobox()),u.value||i.actions.goToOption({focus:es.B.Last})}});case ec.D.Home:if(i.state.comboboxState===eb.Closed||e.shiftKey)break;return e.preventDefault(),e.stopPropagation(),i.actions.goToOption({focus:es.B.First});case ec.D.PageUp:return e.preventDefault(),e.stopPropagation(),i.actions.goToOption({focus:es.B.First});case ec.D.End:if(i.state.comboboxState===eb.Closed||e.shiftKey)break;return e.preventDefault(),e.stopPropagation(),i.actions.goToOption({focus:es.B.Last});case ec.D.PageDown:return e.preventDefault(),e.stopPropagation(),i.actions.goToOption({focus:es.B.Last});case ec.D.Escape:return i.state.comboboxState!==eb.Open?void 0:(e.preventDefault(),i.state.optionsElement&&!u.optionsPropsRef.current.static&&e.stopPropagation(),u.mode===ey.Single&&null===u.value&&E(),i.actions.closeCombobox());case ec.D.Tab:if(i.actions.setIsTyping(!1),i.state.comboboxState!==eb.Open)return;u.mode===ey.Single&&i.state.activationTrigger!==eS.Focus&&i.actions.selectActiveOption(),i.actions.closeCombobox()}}),R=(0,_._)(e=>{null==h||h(e),u.mode===ey.Single&&""===e.target.value&&E(),i.actions.openCombobox()}),P=(0,_._)(e=>{var t,n,o;let s=null!=(t=e.relatedTarget)?t:ei.find(t=>t!==e.currentTarget);if(!(null!=(n=i.state.optionsElement)&&n.contains(s))&&!(null!=(o=i.state.buttonElement)&&o.contains(s))&&i.state.comboboxState===eb.Open)return e.preventDefault(),u.mode===ey.Single&&null===u.value&&E(),i.actions.closeCombobox()}),F=(0,_._)(e=>{var t,n,o;let s=null!=(t=e.relatedTarget)?t:ei.find(t=>t!==e.currentTarget);null!=(n=i.state.buttonElement)&&n.contains(s)||null!=(o=i.state.optionsElement)&&o.contains(s)||u.disabled||u.immediate&&i.state.comboboxState!==eb.Open&&C.microTask(()=>{(0,a.flushSync)(()=>i.actions.openCombobox()),i.actions.setActivationTrigger(eS.Focus)})}),A=(0,ep.o2)(),D=(0,ed.MM)(),{isFocused:z,focusProps:L}=(0,s.o)({autoFocus:g}),{isHovered:j,hoverProps:N}=(0,l.M)({isDisabled:f}),V=(0,en.y)(i,e=>e.optionsElement),U=(0,W._)({open:S===eb.Open,disabled:f,invalid:u.invalid,hover:j,focus:z,autofocus:g}),X=(0,eu.v6)({ref:y,id:p,role:"combobox",type:v,"aria-controls":null==V?void 0:V.id,"aria-expanded":S===eb.Open,"aria-activedescendant":(0,en.y)(i,i.selectors.activeDescendantId),"aria-labelledby":A,"aria-describedby":D,"aria-autocomplete":"list",defaultValue:null!=(o=null!=(n=e.defaultValue)?n:void 0!==u.defaultValue?null==m?void 0:m(u.defaultValue):null)?o:u.defaultValue,disabled:f||void 0,autoFocus:g,onCompositionStart:I,onCompositionEnd:M,onKeyDown:k,onChange:R,onFocus:F,onBlur:P},L,N);return(0,eu.Ci)()({ourProps:X,theirProps:x,slot:U,defaultTag:"input",name:"Combobox.Input"})}),eB=ep.JU,eN=(0,eu.FX)(function(e,t){var n,o,i;let s=(0,r.useId)(),{id:l="headlessui-combobox-options-".concat(s),hold:a=!1,anchor:u,portal:d=!1,modal:c=!0,transition:p=!1,...h}=e,m=eM("Combobox.Options"),f=eR("Combobox.Options"),g=(0,Z.zn)(u);g&&(d=!0);let[v,x]=(0,Z.UF)(g),[b,y]=(0,r.useState)(null),S=(0,Z.G3)(),O=(0,K.P)(t,g?v:null,m.actions.setOptionsElement,y),[C,E,w,I,T]=(0,en.y)(m,e=>[e.comboboxState,e.inputElement,e.buttonElement,e.optionsElement,e.activationTrigger]),k=(0,z.g)(E||w),F=(0,z.g)(I),D=(0,ee.O_)(),[L,j]=(0,Y.p)(p,b,null!==D?(D&ee.Uw.Open)===ee.Uw.Open:C===eb.Open);(0,A.O)(L,E,m.actions.closeCombobox);let B=!f.__demoMode&&c&&C===eb.Open;(0,U.K)(B,F);let N=!f.__demoMode&&c&&C===eb.Open;(0,R.v)(N,{allowed:(0,r.useCallback)(()=>[E,w,I],[E,w,I])});let V=!(0,en.y)(m,m.selectors.didInputMove)&&L;(0,P.s)(()=>{var t;f.optionsPropsRef.current.static=null!=(t=e.static)&&t},[f.optionsPropsRef,e.static]),(0,P.s)(()=>{f.optionsPropsRef.current.hold=a},[f.optionsPropsRef,a]),(0,q.i)(C===eb.Open,{container:I,accept:e=>"option"===e.getAttribute("role")?NodeFilter.FILTER_REJECT:e.hasAttribute("role")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT,walk(e){e.setAttribute("role","none")}});let X=(0,ep.o2)([null==w?void 0:w.id]),$=(0,W._)({open:C===eb.Open,option:void 0}),H=(0,_._)(()=>{m.actions.setActivationTrigger(eS.Pointer)}),J=(0,_._)(e=>{e.preventDefault(),m.actions.setActivationTrigger(eS.Pointer)}),Q=(0,eu.v6)(g?S():{},{"aria-labelledby":X,role:"listbox","aria-multiselectable":f.mode===ey.Multi||void 0,id:l,ref:O,style:{...h.style,...x,"--input-width":(0,M.L)(L,E,!0).width,"--button-width":(0,M.L)(L,w,!0).width},onWheel:T===eS.Pointer?void 0:H,onMouseDown:J,...(0,Y.B)(j)}),et=L&&C===eb.Closed&&!e.static,eo=(0,G.O)(et,null==(n=f.virtual)?void 0:n.options),ei=(0,G.O)(et,f.value),es=(0,r.useCallback)(e=>f.compare(ei,e),[f.compare,ei]),el=(0,r.useMemo)(()=>{if(!f.virtual)return f;if(void 0===eo)throw Error("Missing `options` in virtual mode");return eo!==f.virtual.options?{...f,virtual:{...f.virtual,options:eo}}:f},[f,eo,null==(o=f.virtual)?void 0:o.options]);f.virtual&&Object.assign(h,{children:r.createElement(ek.Provider,{value:el},r.createElement(eF,{slot:$},h.children))});let er=(0,eu.Ci)(),ea=(0,r.useMemo)(()=>f.mode===ey.Multi?f:{...f,isSelected:es},[f,es]);return r.createElement(em.ZL,{enabled:!!d&&(e.static||L),ownerDocument:k},r.createElement(ek.Provider,{value:ea},er({ourProps:Q,theirProps:{...h,children:r.createElement(G.j,{freeze:et},"function"==typeof h.children?null==(i=h.children)?void 0:i.call(h,$):h.children)},slot:$,defaultTag:"div",features:eD,visible:V,name:"Combobox.Options"})))}),eV=(0,eu.FX)(function(e,t){var n,o,i;let s=eR("Combobox.Option"),l=eM("Combobox.Option"),a=(0,r.useId)(),{id:u="headlessui-combobox-option-".concat(a),value:d,disabled:c=null!=(i=null==(o=null==(n=s.virtual)?void 0:n.disabled)?void 0:o.call(n,d))&&i,order:p=null,...h}=e,[m]=(0,en.y)(l,e=>[e.inputElement]),f=N(m),g=(0,en.y)(l,(0,r.useCallback)(e=>l.selectors.isActive(e,d,u),[d,u])),v=s.isSelected(d),x=(0,r.useRef)(null),b=(0,F.Y)({disabled:c,value:d,domRef:x,order:p}),y=(0,r.useContext)(eP),S=(0,K.P)(t,x,y?y.measureElement:null),O=(0,_._)(()=>{l.actions.setIsTyping(!1),l.actions.onChange(d)});(0,P.s)(()=>l.actions.registerOption(u,b),[b,u]);let C=(0,en.y)(l,(0,r.useCallback)(e=>l.selectors.shouldScrollIntoView(e,d,u),[d,u]));(0,P.s)(()=>{if(C)return(0,el.e)().requestAnimationFrame(()=>{var e,t;null==(t=null==(e=x.current)?void 0:e.scrollIntoView)||t.call(e,{block:"nearest"})})},[C,x]);let E=(0,_._)(e=>{e.preventDefault(),e.button===eh.w.Left&&(c||(O(),(0,ea.Fr)()||requestAnimationFrame(()=>f()),s.mode===ey.Single&&l.actions.closeCombobox()))}),w=(0,_._)(()=>{if(c)return l.actions.goToOption({focus:es.B.Nothing});let e=s.calculateIndex(d);l.actions.goToOption({focus:es.B.Specific,idx:e})}),I=(0,X.J)(),T=(0,_._)(e=>I.update(e)),M=(0,_._)(e=>{if(!I.wasMoved(e)||c||g&&l.state.activationTrigger===eS.Pointer)return;let t=s.calculateIndex(d);l.actions.goToOption({focus:es.B.Specific,idx:t},eS.Pointer)}),k=(0,_._)(e=>{I.wasMoved(e)&&(c||g&&(s.optionsPropsRef.current.hold||l.state.activationTrigger===eS.Pointer&&l.actions.goToOption({focus:es.B.Nothing})))}),R=(0,W._)({active:g,focus:g,selected:v,disabled:c});return(0,eu.Ci)()({ourProps:{id:u,ref:S,role:"option",tabIndex:!0===c?void 0:-1,"aria-disabled":!0===c||void 0,"aria-selected":v,disabled:void 0,onMouseDown:E,onFocus:w,onPointerEnter:T,onMouseEnter:T,onPointerMove:M,onMouseMove:M,onPointerLeave:k,onMouseLeave:k},theirProps:h,slot:R,defaultTag:"div",name:"Combobox.Option"})}),eU=Object.assign(ez,{Input:ej,Button:eL,Label:eB,Options:eN,Option:eV});var eW=n(2693),eK=n(6444),eX=n(6193),eY=n.n(eX),eq=n(5506),e$=n(7856);let eH=e=>{let t,n,s=(0,i.c)(3);return s[0]===Symbol.for("react.memo_cache_sentinel")?(t=(0,o.jsx)("path",{d:"M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"}),s[0]=t):t=s[0],s[1]!==e?(n=(0,o.jsx)("svg",{viewBox:"0 0 16 16",fill:"currentColor",...e,children:t}),s[1]=e,s[2]=n):n=s[2],n},eZ=e=>{let t,n,s,l=(0,i.c)(4);return l[0]===Symbol.for("react.memo_cache_sentinel")?(t=(0,o.jsx)("circle",{className:"x:opacity-25",cx:12,cy:12,r:10,strokeWidth:4}),n=(0,o.jsx)("path",{className:"x:opacity-75",fill:"currentColor",stroke:"none",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"}),l[0]=t,l[1]=n):(t=l[0],n=l[1]),l[2]!==e?(s=(0,o.jsxs)("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",...e,children:[t,n]}),l[2]=e,l[3]=s):s=l[3],s};async function eJ(){window.pagefind=await import((0,eK.addBasePath)("/_pagefind/pagefind.js")),await window.pagefind.options({baseUrl:"/"})}let eG=new Set(["INPUT","SELECT","BUTTON","TEXTAREA"]);o.Fragment;let eQ=e=>{let t,n,s,l,a,u,d,c,p,h,m,f,g,v,x,b,y,S,O,C,E,w,I,T,M,_,k,R=(0,i.c)(60);R[0]!==e?({className:t,emptyResult:a,errorText:u,loading:d,placeholder:c,searchOptions:l,onSearch:n,...s}=e,R[0]=e,R[1]=t,R[2]=n,R[3]=s,R[4]=l,R[5]=a,R[6]=u,R[7]=d,R[8]=c):(t=R[1],n=R[2],s=R[3],l=R[4],a=R[5],u=R[6],d=R[7],c=R[8]);let P=void 0===a?"No results found.":a,F=void 0===u?"Failed to load search index.":u,A=void 0===d?"Loading…":d,D=void 0===c?"Search documentation…":c,[z,L]=(0,r.useState)(!0),[j,B]=(0,r.useState)("");R[9]===Symbol.for("react.memo_cache_sentinel")?(p=[],R[9]=p):p=R[9];let[N,V]=(0,r.useState)(p),[U,W]=(0,r.useState)(""),K=(0,r.useDeferredValue)(U);R[10]!==K||R[11]!==l?(h=()=>{(async e=>{if(!e){V([]),B("");return}if(L(!0),!window.pagefind)try{await eJ()}catch(e){B(e instanceof Error?"".concat(e.constructor.name,": ").concat(e.message):String(e)),L(!1);return}let t=await window.pagefind.debouncedSearch(e,l);if(!t)return;let n=await Promise.all(t.results.map(e1));L(!1),B(""),V(n.map(e2))})(K)},R[10]=K,R[11]=l,R[12]=h):h=R[12],R[13]!==K?(m=[K],R[13]=K,R[14]=m):m=R[14],(0,r.useEffect)(h,m);let X=(0,eq.useRouter)(),[Y,q]=(0,r.useState)(!1),$=(0,e$.useMounted)(),H=(0,r.useRef)(null);R[15]===Symbol.for("react.memo_cache_sentinel")?(f=()=>{let e=function(e){let t=document.activeElement;!t||eG.has(t.tagName)||t.isContentEditable||("/"===e.key||"k"===e.key&&!e.shiftKey&&(navigator.userAgent.includes("Mac")?e.metaKey:e.ctrlKey))&&(e.preventDefault(),H.current.focus({preventScroll:!0}))};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}},g=[],R[15]=f,R[16]=g):(f=R[15],g=R[16]),(0,r.useEffect)(f,g);let Z=(!$||Y)&&"x:invisible x:opacity-0";R[17]!==Z?(v=(0,eW.A)("x:absolute x:my-1.5 x:select-none x:pointer-events-none x:end-1.5 x:transition-all","x:h-5 x:rounded x:bg-nextra-bg x:px-1.5 x:font-mono x:text-[11px] x:font-medium x:text-gray-600 x:dark:text-gray-400","x:border nextra-border","x:contrast-more:text-current","x:items-center x:gap-1 x:flex","x:max-sm:hidden not-prose",Z),R[17]=Z,R[18]=v):v=R[18],R[19]!==$?(x=$&&navigator.userAgent.includes("Mac")?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("span",{className:"x:text-xs",children:"⌘"}),"K"]}):"CTRL K",R[19]=$,R[20]=x):x=R[20],R[21]!==v||R[22]!==x?(b=(0,o.jsx)("kbd",{className:v,children:x}),R[21]=v,R[22]=x,R[23]=b):b=R[23];let J=b;R[24]===Symbol.for("react.memo_cache_sentinel")?(y=e=>{q("focus"===e.type)},R[24]=y):y=R[24];let G=y;R[25]!==n?(S=e=>{let{value:t}=e.currentTarget;W(t),null==n||n(t)},R[25]=n,R[26]=S):S=R[26];let Q=S;R[27]!==X?(O=e=>{if(!e)return;H.current.blur();let[t,n]=e.url.split("#");location.pathname===t?location.href="#".concat(n):X.push(e.url),W("")},R[27]=X,R[28]=O):O=R[28];let ee=O;return R[29]!==t?(C=(0,eW.A)("nextra-search","x:relative x:flex x:items-center","x:text-gray-900 x:dark:text-gray-300","x:contrast-more:text-gray-800 x:contrast-more:dark:text-gray-300",t),R[29]=t,R[30]=C):C=R[30],R[31]!==Q||R[32]!==D||R[33]!==s||R[34]!==U?(E=(0,o.jsx)(ej,{spellCheck:!1,autoComplete:"off",type:"search",...s,ref:H,className:e3,onChange:Q,onFocus:G,onBlur:G,value:U,placeholder:D}),R[31]=Q,R[32]=D,R[33]=s,R[34]=U,R[35]=E):E=R[35],R[36]!==J||R[37]!==C||R[38]!==E?(w=(0,o.jsxs)("div",{className:C,children:[E,J]}),R[36]=J,R[37]=C,R[38]=E,R[39]=w):w=R[39],R[40]===Symbol.for("react.memo_cache_sentinel")?(I={to:"top end",gap:10,padding:16},R[40]=I):I=R[40],R[41]!==j||R[42]!==z||R[43]!==N?(T=(0,eW.A)("nextra-search-results","nextra-scrollbar x:max-md:h-full","x:border x:border-gray-200 x:text-gray-100 x:dark:border-neutral-800","x:z-30 x:rounded-xl x:py-2.5 x:shadow-xl","x:contrast-more:border x:contrast-more:border-gray-900 x:contrast-more:dark:border-gray-50","x:backdrop-blur-md x:bg-nextra-bg/70","x:motion-reduce:transition-none","x:origin-top x:transition x:duration-200 x:ease-out x:data-closed:scale-95 x:data-closed:opacity-0 x:empty:invisible",j||z||!N.length?["x:md:min-h-28 x:grow x:flex x:justify-center x:text-sm x:gap-2 x:px-8",j?"x:text-red-500 x:items-start":"x:text-gray-400 x:items-center"]:"x:md:max-h-[min(calc(100vh-5rem),400px)]!","x:w-full x:md:w-[576px]"),R[41]=j,R[42]=z,R[43]=N,R[44]=T):T=R[44],R[45]!==K||R[46]!==P||R[47]!==j||R[48]!==F||R[49]!==z||R[50]!==A||R[51]!==N?(M=j?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(eH,{height:"1.25em",className:"x:shrink-0"}),(0,o.jsxs)("div",{className:"x:grid",children:[(0,o.jsx)("b",{className:"x:mb-2",children:F}),j]})]}):z?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(eZ,{height:"20",className:"x:shrink-0 x:animate-spin"}),A]}):N.length?N.map(e4):K&&P,R[45]=K,R[46]=P,R[47]=j,R[48]=F,R[49]=z,R[50]=A,R[51]=N,R[52]=M):M=R[52],R[53]!==T||R[54]!==M?(_=(0,o.jsx)(eN,{transition:!0,anchor:I,className:T,children:M}),R[53]=T,R[54]=M,R[55]=_):_=R[55],R[56]!==ee||R[57]!==w||R[58]!==_?(k=(0,o.jsxs)(eU,{onChange:ee,children:[w,_]}),R[56]=ee,R[57]=w,R[58]=_,R[59]=k):k=R[59],k},e0=e=>{let t,n,s,l,r=(0,i.c)(8),{data:a}=e;return r[0]===Symbol.for("react.memo_cache_sentinel")?(t=(0,eW.A)("x:mx-2.5 x:mb-2 x:not-first:mt-6 x:select-none x:border-b x:border-black/10 x:px-2.5 x:pb-1.5 x:text-xs x:font-semibold x:uppercase x:text-gray-600 x:dark:border-white/20 x:dark:text-gray-300","x:contrast-more:border-gray-600 x:contrast-more:text-gray-900 x:contrast-more:dark:border-gray-50 x:contrast-more:dark:text-gray-50"),r[0]=t):t=r[0],r[1]!==a.meta.title?(n=(0,o.jsx)("div",{className:t,children:a.meta.title}),r[1]=a.meta.title,r[2]=n):n=r[2],r[3]!==a.sub_results?(s=a.sub_results.map(e6),r[3]=a.sub_results,r[4]=s):s=r[4],r[5]!==n||r[6]!==s?(l=(0,o.jsxs)(o.Fragment,{children:[n,s]}),r[5]=n,r[6]=s,r[7]=l):l=r[7],l};function e1(e){return e.data()}function e5(e){let t=e.url.replace(/\.html$/,"").replace(/\.html#/,"#");return{...e,url:t}}function e2(e){return{...e,sub_results:e.sub_results.map(e5)}}function e3(e){let{focus:t}=e;return(0,eW.A)("x:rounded-lg x:px-3 x:py-2 x:transition-all","x:w-full x:md:w-64","x:text-base x:leading-tight x:md:text-sm",t?"x:bg-transparent x:nextra-focus":"x:bg-black/[.05] x:dark:bg-gray-50/10","x:placeholder:text-gray-600 x:dark:placeholder:text-gray-400","x:contrast-more:border x:contrast-more:border-current","x:[&::-webkit-search-cancel-button]:appearance-none")}function e4(e){return(0,o.jsx)(e0,{data:e},e.url)}function e7(e){let{focus:t}=e;return(0,eW.A)("x:mx-2.5 x:break-words x:rounded-md","x:contrast-more:border",t?"x:text-primary-600 x:contrast-more:border-current x:bg-primary-500/10":"x:text-gray-800 x:dark:text-gray-300 x:contrast-more:border-transparent","x:block x:scroll-m-12 x:px-2.5 x:py-2")}function e6(e){return(0,o.jsxs)(eV,{as:eY(),value:e,href:e.url,className:e7,children:[(0,o.jsx)("div",{className:"x:text-base x:font-semibold x:leading-5",children:e.title}),(0,o.jsx)("div",{className:(0,eW.A)("x:mt-1 x:text-sm x:leading-[1.35rem] x:text-gray-600 x:dark:text-gray-400 x:contrast-more:dark:text-gray-50","x:[&_mark]:bg-primary-600/80 x:[&_mark]:text-white"),dangerouslySetInnerHTML:{__html:e.excerpt}})]},e.url)}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[562],{4934:(e,t,n)=>{n.d(t,{Zx:()=>k,bv:()=>w,vW:()=>H,we:()=>y});var l,r=n(7205),u=n(9967),o=n(2066),c=n(7444),f=n(6120),i=n(4968),s=n(2715);let a={...l||(l=n.t(r,2))},m=a.useInsertionEffect||(e=>e());function g(e){let t=r.useRef(()=>{});return m(()=>{t.current=e}),r.useCallback(function(){for(var e=arguments.length,n=Array(e),l=0;l<e;l++)n[l]=arguments[l];return null==t.current?void 0:t.current(...n)},[])}var d="undefined"!=typeof document?r.useLayoutEffect:r.useEffect;let v=!1,p=0,h=()=>"floating-ui-"+Math.random().toString(36).slice(2,6)+p++,C=a.useId||function(){let[e,t]=r.useState(()=>v?h():void 0);return d(()=>{null==e&&t(h())},[]),r.useEffect(()=>{v=!0},[]),e},b=r.createContext(null),x=r.createContext(null);function y(e){void 0===e&&(e={});let{nodeId:t}=e,n=function(e){var t;let{open:n=!1,onOpenChange:l,elements:u}=e,o=C(),c=r.useRef({}),[f]=r.useState(()=>(function(){let e=new Map;return{emit(t,n){var l;null==(l=e.get(t))||l.forEach(e=>e(n))},on(t,n){e.set(t,[...e.get(t)||[],n])},off(t,n){var l;e.set(t,(null==(l=e.get(t))?void 0:l.filter(e=>e!==n))||[])}}})()),i=null!=((null==(t=r.useContext(b))?void 0:t.id)||null),[s,a]=r.useState(u.reference),m=g((e,t,n)=>{c.current.openEvent=e?t:void 0,f.emit("openchange",{open:e,event:t,reason:n,nested:i}),null==l||l(e,t,n)}),d=r.useMemo(()=>({setPositionReference:a}),[]),v=r.useMemo(()=>({reference:s||u.reference||null,floating:u.floating||null,domReference:u.reference}),[s,u.reference,u.floating]);return r.useMemo(()=>({dataRef:c,open:n,onOpenChange:m,elements:v,events:f,floatingId:o,refs:d}),[n,m,v,f,o,d])}({...e,elements:{reference:null,floating:null,...e.elements}}),l=e.rootContext||n,u=l.elements,[o,f]=r.useState(null),[s,a]=r.useState(null),m=(null==u?void 0:u.domReference)||o,v=r.useRef(null),p=r.useContext(x);d(()=>{m&&(v.current=m)},[m]);let h=(0,i.we)({...e,elements:{...u,...s&&{reference:s}}}),y=r.useCallback(e=>{let t=(0,c.vq)(e)?{getBoundingClientRect:()=>e.getBoundingClientRect(),contextElement:e}:e;a(t),h.refs.setReference(t)},[h.refs]),R=r.useCallback(e=>{((0,c.vq)(e)||null===e)&&(v.current=e,f(e)),((0,c.vq)(h.refs.reference.current)||null===h.refs.reference.current||null!==e&&!(0,c.vq)(e))&&h.refs.setReference(e)},[h.refs]),T=r.useMemo(()=>({...h.refs,setReference:R,setPositionReference:y,domReference:v}),[h.refs,R,y]),M=r.useMemo(()=>({...h.elements,domReference:m}),[h.elements,m]),w=r.useMemo(()=>({...h,...l,refs:T,elements:M,nodeId:t}),[h,T,M,t,l]);return d(()=>{l.dataRef.current.floatingContext=w;let e=null==p?void 0:p.nodesRef.current.find(e=>e.id===t);e&&(e.context=w)}),r.useMemo(()=>({...h,context:w,refs:T,elements:M}),[h,T,M,w])}let R="active",T="selected";function M(e,t,n){let l=new Map,r="item"===n,u=e;if(r&&e){let{[R]:t,[T]:n,...l}=e;u=l}return{..."floating"===n&&{tabIndex:-1,"data-floating-ui-focusable":""},...u,...t.map(t=>{let l=t?t[n]:null;return"function"==typeof l?e?l(e):null:l}).concat(e).reduce((e,t)=>(t&&Object.entries(t).forEach(t=>{let[n,u]=t;if(!(r&&[R,T].includes(n)))if(0===n.indexOf("on")){if(l.has(n)||l.set(n,[]),"function"==typeof u){var o;null==(o=l.get(n))||o.push(u),e[n]=function(){for(var e,t=arguments.length,r=Array(t),u=0;u<t;u++)r[u]=arguments[u];return null==(e=l.get(n))?void 0:e.map(e=>e(...r)).find(e=>void 0!==e)}}}else e[n]=u}),e),{})}}function w(e){void 0===e&&(e=[]);let t=e.map(e=>null==e?void 0:e.reference),n=e.map(e=>null==e?void 0:e.floating),l=e.map(e=>null==e?void 0:e.item),u=r.useCallback(t=>M(t,e,"reference"),t),o=r.useCallback(t=>M(t,e,"floating"),n),c=r.useCallback(t=>M(t,e,"item"),l);return r.useMemo(()=>({getReferenceProps:u,getFloatingProps:o,getItemProps:c}),[u,o,c])}function E(e,t){return{...e,rects:{...e.rects,floating:{...e.rects.floating,height:t}}}}let H=e=>({name:"inner",options:e,async fn(t){let{listRef:n,overflowRef:l,onFallbackChange:r,offset:u=0,index:c=0,minItemsVisible:a=4,referenceOverflowThreshold:m=0,scrollRef:g,...d}=(0,o._3)(e,t),{rects:v,elements:{floating:p}}=t,h=n.current[c],C=(null==g?void 0:g.current)||p,b=p.clientTop||C.clientTop,x=0!==p.clientTop,y=0!==C.clientTop,R=p===C;if(!h)return{};let T={...t,...await (0,i.cY)(-h.offsetTop-p.clientTop-v.reference.height/2-h.offsetHeight/2-u).fn(t)},M=await (0,s.__)(E(T,C.scrollHeight+b+p.clientTop),d),w=await (0,s.__)(T,{...d,elementContext:"reference"}),H=(0,o.T9)(0,M.top),k=T.y+H,_=(C.scrollHeight>C.clientHeight?e=>e:o.LI)((0,o.T9)(0,C.scrollHeight+(x&&R||y?2*b:0)-H-(0,o.T9)(0,M.bottom)));if(C.style.maxHeight=_+"px",C.scrollTop=H,r){let e=C.offsetHeight<h.offsetHeight*(0,o.jk)(a,n.current.length)-1||w.top>=-m||w.bottom>=-m;f.flushSync(()=>r(e))}return l&&(l.current=await (0,s.__)(E({...T,y:k},C.offsetHeight+b+p.clientTop),d)),{y:k}}});function k(e,t){let{open:n,elements:l}=e,{enabled:o=!0,overflowRef:c,scrollRef:i,onChange:s}=t,a=g(s),m=r.useRef(!1),d=r.useRef(null),v=r.useRef(null);r.useEffect(()=>{if(!o)return;function e(e){if(e.ctrlKey||!t||null==c.current)return;let n=e.deltaY,l=c.current.top>=-.5,r=c.current.bottom>=-.5,o=t.scrollHeight-t.clientHeight,i=n<0?-1:1,s=n<0?"max":"min";!(t.scrollHeight<=t.clientHeight)&&(!l&&n>0||!r&&n<0?(e.preventDefault(),f.flushSync(()=>{a(e=>e+Math[s](n,o*i))})):/firefox/i.test((0,u.$t)())&&(t.scrollTop+=n))}let t=(null==i?void 0:i.current)||l.floating;if(n&&t)return t.addEventListener("wheel",e),requestAnimationFrame(()=>{d.current=t.scrollTop,null!=c.current&&(v.current={...c.current})}),()=>{d.current=null,v.current=null,t.removeEventListener("wheel",e)}},[o,n,l.floating,c,i,a]);let p=r.useMemo(()=>({onKeyDown(){m.current=!0},onWheel(){m.current=!1},onPointerMove(){m.current=!1},onScroll(){let e=(null==i?void 0:i.current)||l.floating;if(c.current&&e&&m.current){if(null!==d.current){let t=e.scrollTop-d.current;(c.current.bottom<-.5&&t<-1||c.current.top<-.5&&t>1)&&f.flushSync(()=>a(e=>e+t))}requestAnimationFrame(()=>{d.current=e.scrollTop})}}}),[l.floating,a,c,i]);return r.useMemo(()=>o?{floating:p}:{},[o,p])}}}]);